🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1981閲覧

クラスタリングの分散値

uedayuya

総合スコア17

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2019/11/11 06:07

###やりたいこと
csvデータをクラスタリングし、クラスごとの分散値平均値を出す。
###できていること
クラスタリング、平均値を出すこと
###できていないこと,試したこと
分散値を出すこと
以下のコードで試してみたがvariance()でエラーが出た。

python

1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4from sklearn import datasets 5from sklearn.cluster import KMeans 6# データの読み込み 7f_data = pd.read_csv("csv/4-5/potential4-5.csv", encoding="utf-8") 8 9# データをラベルと入力データに分離する (使うのは最後) 10y_data = f_data.loc[:,["angle"]] 11x_data = f_data.iloc[:, range(0,400)] 12#print(x_data.head(20) ) 13 14input_data = x_data.iloc[:, range(0,400)].values 15 16 17pred = KMeans(n_clusters=30).fit_predict(input_data) 18x_data["cluster"] = pred 19 20 21print(x_data['cluster'].value_counts()) 22print(x_data[x_data['cluster']==0].mean()) 23print(x_data[x_data['cluster']==0].variance()) 24print(x_data[x_data['cluster']==1].mean()) 25print(x_data[x_data['cluster']==1].variance()) 26print(x_data[x_data['cluster']==2].mean()) 27print(x_data[x_data['cluster']==2].variance()) 28print(x_data[x_data['cluster']==3].mean()) 29print(x_data[x_data['cluster']==3].variance()) 30print(x_data[x_data['cluster']==4].mean()) 31print(x_data[x_data['cluster']==4].variance()) 32print(x_data[x_data['cluster']==5].mean()) 33print(x_data[x_data['cluster']==5].variance()) 34print(x_data[x_data['cluster']==6].mean()) 35print(x_data[x_data['cluster']==6].variance()) 36print(x_data[x_data['cluster']==7].mean()) 37print(x_data[x_data['cluster']==7].variance()) 38print(x_data[x_data['cluster']==8].mean()) 39print(x_data[x_data['cluster']==8].variance()) 40print(x_data[x_data['cluster']==9].mean()) 41print(x_data[x_data['cluster']==9].variance()) 42print(x_data[x_data['cluster']==10].mean()) 43print(x_data[x_data['cluster']==10].variance()) 44print(x_data[x_data['cluster']==11].mean()) 45print(x_data[x_data['cluster']==11].variance()) 46print(x_data[x_data['cluster']==12].mean()) 47print(x_data[x_data['cluster']==12].variance()) 48print(x_data[x_data['cluster']==13].mean()) 49print(x_data[x_data['cluster']==13].variance()) 50print(x_data[x_data['cluster']==14].mean()) 51print(x_data[x_data['cluster']==14].variance()) 52print(x_data[x_data['cluster']==15].mean()) 53print(x_data[x_data['cluster']==15].variance()) 54print(x_data[x_data['cluster']==16].mean()) 55print(x_data[x_data['cluster']==16].variance()) 56print(x_data[x_data['cluster']==17].mean()) 57print(x_data[x_data['cluster']==17].variance()) 58print(x_data[x_data['cluster']==18].mean()) 59print(x_data[x_data['cluster']==18].variance()) 60print(x_data[x_data['cluster']==19].mean()) 61print(x_data[x_data['cluster']==19].variance()) 62print(x_data[x_data['cluster']==20].mean()) 63print(x_data[x_data['cluster']==20].variance()) 64print(x_data[x_data['cluster']==21].mean()) 65print(x_data[x_data['cluster']==21].variance()) 66print(x_data[x_data['cluster']==22].mean()) 67print(x_data[x_data['cluster']==22].variance()) 68print(x_data[x_data['cluster']==23].mean()) 69print(x_data[x_data['cluster']==23].variance()) 70print(x_data[x_data['cluster']==24].mean()) 71print(x_data[x_data['cluster']==24].variance()) 72print(x_data[x_data['cluster']==25].mean()) 73print(x_data[x_data['cluster']==25].variance()) 74print(x_data[x_data['cluster']==26].mean()) 75print(x_data[x_data['cluster']==26].variance()) 76print(x_data[x_data['cluster']==27].mean()) 77print(x_data[x_data['cluster']==27].variance()) 78print(x_data[x_data['cluster']==28].mean()) 79print(x_data[x_data['cluster']==28].variance()) 80print(x_data[x_data['cluster']==29].mean()) 81print(x_data[x_data['cluster']==29].variance()) 82print(x_data[x_data['cluster']==30].mean()) 83print(x_data[x_data['cluster']==30].variance())

エラーの内容は以下です。

File "kmeans.py", line 64, in <module> print(x_data[x_data['cluster']==0].variance()) File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\pandas\core\generic.py", line 5179, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'variance'

よろしくお願いします

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

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

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

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

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

tetsunosuke

2019/11/11 06:28

実際のCSVデータがどんなものかわからず細かい検証はできませんが、var() ではないのかな?
uedayuya

2019/11/11 06:50

お答えいただきありがとうございます。無事に分散値を出すことができました
guest

回答1

0

自己解決

以下のコードで問題がなかった

python

1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4from sklearn import datasets 5from sklearn.cluster import KMeans 6# データの読み込み 7f_data = pd.read_csv("csv/4-5/potential4-5.csv", encoding="utf-8") 8 9# データをラベルと入力データに分離する (使うのは最後) 10y_data = f_data.loc[:,["angle"]] 11x_data = f_data.iloc[:, range(0,400)] 12#print(x_data.head(20) ) 13 14input_data = x_data.iloc[:, range(0,400)].values 15 16 17pred = KMeans(n_clusters=30).fit_predict(input_data) 18x_data["cluster"] = pred 19 20 21print(x_data['cluster'].value_counts()) 22for num,i in enumerate(range(30)): 23 print(num,"mean") 24 print(x_data[x_data['cluster']==num].mean()) 25 print(num,"var") 26 print(x_data[x_data['cluster']==num].var()) 27

投稿2019/11/11 06:51

uedayuya

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問