目次 |
---|
以下は4個以上の自治体に存在する項目名に対して
1.各点にランダムにクラスタを割り当てる 2.クラスタの重心を計算する。 3.点のクラスタを、一番近い重心のクラスタに変更する 4.変化がなければ終了。変化がある限りは 2. に戻る。
import pandas as pd import numpy as np from sklearn.cluster import KMeans # データセットを読み込み cust_df = pd.read_csv("datasets_2times.csv",header=None) print(cust_df) cust_array = np.array([cust_df[1].tolist(),cust_df[2].tolist(),cust_df[3].tolist(),cust_df[4].tolist(),cust_df[5].tolist(),cust_df[6].tolist(),cust_df[7].tolist(),cust_df[8].tolist(),cust_df[9].tolist(),cust_df[10].tolist(), cust_df[11].tolist(),cust_df[12].tolist(),cust_df[13].tolist(),cust_df[14].tolist(),cust_df[15].tolist(),cust_df[16].tolist(),cust_df[17].tolist(),cust_df[18].tolist(),cust_df[19].tolist(),cust_df[20].tolist(), cust_df[21].tolist(),cust_df[22].tolist(),cust_df[23].tolist(),cust_df[24].tolist(),cust_df[25].tolist(),cust_df[26].tolist(),cust_df[27].tolist(),cust_df[28].tolist(),cust_df[29].tolist(),cust_df[30].tolist(), cust_df[31].tolist(),cust_df[32].tolist(),cust_df[33].tolist(),cust_df[34].tolist(),cust_df[35].tolist(),cust_df[36].tolist(),cust_df[37].tolist(),cust_df[38].tolist(),cust_df[39].tolist(),cust_df[40].tolist(), cust_df[41].tolist(),cust_df[42].tolist(),cust_df[43].tolist(),cust_df[44].tolist(),cust_df[45].tolist(),cust_df[46].tolist(),cust_df[47].tolist(),cust_df[48].tolist(),cust_df[49].tolist(),cust_df[50].tolist() ], np.float32) # 行列を転置 cust_array = cust_array.T print(cust_array) # クラスタ分析を実行 (クラスタ数=50) pred = KMeans(n_clusters=50, init='k-means++',).fit_predict(cust_array) print(pred) cust_df[51]=pred print(cust_df) cust_df.to_csv("k-means_2times_50.csv",index=False,encoding="utf-8-sig");