前提・実現したいこと
k-meansでクラスター解析するプログラムを作っています。
その時の各パラメータを標準化するときにエラーが生じました。
大変初心者で初歩的なところを間違えている可能性もあるのですが
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
27 28 for i in range(3): ---> 29 hoge_array[i] = stdsc.fit_transform(hoge_array[i]) 30 ValueError: Expected 2D array, got 1D array instead: array=[1.085 1.085 1.085 ... 0.576 1.492 1.544]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
該当のソースコード
import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn.externals import joblib from sklearn.preprocessing import StandardScaler #ファイル名とクラスター数の決定 filename = 'hoge.sav' k = 20 #データの読み込み hoge_df = pd.read_csv('cluster_a,b,c.csv') #データの行列化(df⇒array) hoge_array = np.array([hoge_df['a'].tolist(), hoge_df['b'].tolist(), hoge_df['c'].tolist() ], np.float) #データの標準化 stdsc = StandardScaler() for i in range(3): hoge_array[i] = stdsc.fit_transform(hoge_array[i]) #行列の転置 hoge_array = hoge_array.T print(hoge_array)
試したこと
①stdsc.fit_transform(hoge_array[i].reshape(-1,1))
下記のエラーメッセージが表示されました。
could not broadcast input array from shape (2144,1) into shape (2144)
②stdsc.fit_transform(hoge_array[i].reshape(1,-1))
エラーはないのですが、出力が全て0になりました。
回答1件
あなたの回答
tips
プレビュー