前提・実現したいこと
要素をいくつかもつデータを教師なしの学習としてクラスタリングしたい。
(下記に示したURLを参考にしているため0列目は0と1の2クラス分類としてラベルとしている。後半では使用していません。)
該当のソースコード
test.csv(11row × 784列)(文字数制限のため略)
csv
10,0,1,0,0,1,… # 文字数制限のため略
python
1# http://neuro-educator.com/ml9/ 2 3# 1:ライブラリのインポート-------------------------------- 4import numpy as np #numpyという行列などを扱うライブラリを利用 5import pandas as pd #pandasというデータ分析ライブラリを利用 6import matplotlib.pyplot as plt #プロット用のライブラリを利用 7from sklearn import cluster, preprocessing #機械学習用のライブラリを利用 8from mlxtend.plotting import plot_decision_regions #学習結果をプロットする外部ライブラリを利用 9 10# 2:データセットを読み込む-------------------------------- 11df_wine_all=pd.read_csv('test.csv', header=None) 12 13df_wine=df_wine_all[[0,1,2,3…,782,783]] 14 15# df_wine.columns = [u'class', u'color', u'proline'] 16 17df_wine.columns = [u'class', u'1', u'2', u'3',…, u'782', u'783'] # 文字数制限のため略 18 19pd.DataFrame(df_wine) #この行を実行するとデータが見れる 20 21# 3:データの整形------------------------------------------------------- 22# X=df_wine[["color","proline"]] 23 24X=df_wine[['1','2','3',…,'782','783']] # 文字数制限のため略 25 26sc=preprocessing.StandardScaler() 27sc.fit(X) 28X_norm=sc.transform(X) 29 30# 4:プロットしてみる------------------------------------------ 31%matplotlib inline 32 33x=X_norm[:,0] 34y=X_norm[:,1] 35z=df_wine["class"] 36plt.subplot(2, 1, 1) 37plt.scatter(x,y, c=z) 38plt.show
想定では、11個の点がプロットされているはずなのですが、以下になっていました。
やはりそのあとのコードでも望みのクラスタリングはできませんでした。
python
1# 解説4:ミニバッチk-meansやk-meansを実施--------------------------------- 2#km=cluster.MiniBatchKMeans(n_clusters=3, batch_size=100) 3km=cluster.KMeans(n_clusters=2) 4z_km=km.fit(X_norm) 5# 5: 結果をプロット----------------------------------------------- 6plt.subplot(2, 1, 2) 7plt.scatter(x,y, c=z_km.labels_) 8plt.scatter(z_km.cluster_centers_[:,0],z_km.cluster_centers_[:,1],s=250, marker='*',c='red') 9plt.show
参考にしたコード
参考にしたURL
上記のサイトを利用していました。
たくさんの要素を持つデータをクラスタリングするには何が不足しているのでしょうか。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
win10
google colab
python 3.7
20200406 追記
teratailにipynbをアップするにはどのようにしたらよいのでしょうか。もし可能ならその方がすぐにコード実行して頂けると思いました。
20200411 X_norm print表示追加
20200411 22:35
ipynb souce code
test.csv
の共有アドレスです。
https://drive.google.com/file/d/1MCnKuZHdJTkzBalz-DL6l8zftFeW5gNF/view?usp=sharing
https://drive.google.com/file/d/1lNMzApau8gFsYXQsTGUfxFRTtnsGSIxg/view?usp=sharing
閲覧とダウンロードが可能です。
20200412 xlim利用結果追加
20200419 表幅調整
20200423 訂正
当初こちらで質問するためにデータ量をアップしやすい軽いものをアップしてしまい大変申し訳ありませんでした。
実際のデータが以下になります。
https://drive.google.com/file/d/1KSUjqC85fqnaxjTiRJbviPD8OlEW7Z_x/view?usp=sharing
回答2件
あなたの回答
tips
プレビュー