質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

975閲覧

python データの読み込みがうまくいきません。

pd0rnb

総合スコア1

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/29 09:46

編集2020/08/29 12:30

前提・実現したいこと

データの分布を、ガウス混合モデルを使用して可視化したいのですが、
def gen_data()内のreturnするところで
Instance of 'tuple' has no 'data' member
Instance of 'tuple' has no 'target' member
というエラーが出てしまいます。
エラー解消方法をいろいろと調べてみたのですが、解決に至りませんでした。
エラー内容
解決方があれば教えて頂きたいです。よろしくお願いします。

発生している問題・エラーメッセージ

Instance of 'tuple' has no 'data' member Instance of 'tuple' has no 'target' member

該当のソースコード

import numpy as np from sklearn.datasets import load_iris from sklearn.decomposition import PCA from sklearn.cluster import KMeans as KM from sklearn.mixture import GaussianMixture as GMM from matplotlib import pyplot as plt from skfuzzy.cluster import cmeans def target_to_color(target): if type(target) == np.ndarray: return (target[0], target[1], target[2]) else: return "rgb"[target] def plot_data(data, target, filename="fig.png"): plt.figure() plt.scatter(data[:,0], data[:,1], c=[target_to_color(t) for t in target]) plt.savefig(filename) def gen_data(): iris = load_iris() pca = PCA(n_components=2) return pca.fit_transform(iris.data), iris.target def main(): data, target = gen_data() plot_data(data, target, filename="origin.png") gmm = GMM(n_components=3, max_iter=1000) gmm.fit(data) gmm_target = gmm.predict(data) gmm_target_proba = gmm.predict_proba(data) plot_data(data, gmm_target, filename="gmm.png") plot_data(data, gmm_target_proba, filename="gmm_proba.png") if __name__ == "__main__": main()

補足情報

Python 3.8.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/08/29 10:38 編集

> モジュールやpythonは最新バージョンに更新してあります。 バージョンを明記してください。 ※質問に追記してください。 エラーメッセージは全文掲載してください。(ユーザー名等は隠してもらって構いません)
pd0rnb

2020/08/29 10:54

失礼しました。追伸いたしました。 エラーはこちらの二行のみになります。 実行すると、ターミナル上にエラーメッセージは出てこないのですが、ソースコードの該当箇所に下線と問題点(エラー内容)がでてきます。
guest

回答1

0

質問のコードを実行しましたがエラーは再現しませんでした。

Python 3.8.3、scikit-learn 0.23.1

実行したコードは下記です。

Python

1import numpy as np 2from sklearn.datasets import load_iris 3from sklearn.decomposition import PCA 4from sklearn.cluster import KMeans as KM 5from sklearn.mixture import GaussianMixture as GMM 6from matplotlib import pyplot as plt 7#from skfuzzy.cluster import cmeans 8 9def target_to_color(target): 10 if type(target) == np.ndarray: 11 return (target[0], target[1], target[2]) 12 else: 13 return "rgb"[target] 14 15def plot_data(data, target, filename="fig.png"): 16 plt.figure() 17 plt.scatter(data[:,0], data[:,1], c=[target_to_color(t) for t in target]) 18 plt.savefig(filename) 19 20def gen_data(): 21 iris = load_iris() 22 pca = PCA(n_components=2) 23 return pca.fit_transform(iris.data), iris.target 24 25def main(): 26 data, target = gen_data() 27 plot_data(data, target, filename="origin.png") 28 29 gmm = GMM(n_components=3, max_iter=1000) 30 gmm.fit(data) 31 gmm_target = gmm.predict(data) 32 gmm_target_proba = gmm.predict_proba(data) 33 plot_data(data, gmm_target, filename="gmm.png") 34 plot_data(data, gmm_target_proba, filename="gmm_proba.png") 35 36if __name__ == "__main__": 37 main() 38

投稿2020/08/29 10:53

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pd0rnb

2020/08/29 12:32

ご回答ありがとうございます。 貼り付けて頂いたソースコードでも、同様のエラーが出てしまいます。 環境の問題なのでしょうか…
meg_

2020/08/29 13:18

google colabでも試しましたが問題なくグラフまで表示されました。 コードの問題ではなさそうです。 一度ターミナルやjupyter notebookで試してみてはどうでしょうか?
meg_

2020/08/29 13:21

質問に追加された画像を見ると、irisはBunch型なのにtupleとして認識?されているような感じですね。 こちらは何かしらのIDEの画面でしょうか?その辺りの環境についても質問に書いたりタグ設定すると詳しい方が見てくれるかもしれません。
pd0rnb

2020/08/30 09:57

色々試していただき誠にありがとうございます。 google colabで試してみたところ、無事作動しましたが、jupyterでは作動しませんでした。 jupyterは私自身が使用しているpythonと紐づけれらているので、私のpythonアプリかIDEがおかしいのですかね。 最インストール等検討しようと思います...
meg_

2020/08/30 12:09

jupyter notebookでも問題なく実行出来ました。(Python 3.8.3)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問