python jupyternotebookを用いて、pandasを用いて、あるcsvの処理をしてクラスタリングしたく考えております。
当該csvを読み込み、「階級」という列の、アルファベットが入っている箇所を
数字に置き換えて、元のCSVで空欄になっている行がnanなので、それを削除したのち、numpy配列にしました。
その後kMeansを行い、print() を行えば、要素ごとに0,1,の様なクラスタの番号が
出るのかと思ったのですが、違う結果(下記【出力】の欄)になってしまいました。。同じことをirisデータセットで行った時は、要素ごとにクラスタの番号が表示されたのですが。。
なぜこのようになるのか、また対処方法につき、ご教示いただけますと幸いです。なお、notebookの入力欄の下に、オレンジ色の枠で、下記の様なメッセージ?が表示されました。
【環境】Windows10 64bit, chrome
【コード】
import numpy as np
import pandas as pd
csv_in = 'data.csv'
df = pd.read_csv(csv_in, delimiter=',', encoding='shift-jis')
df = df[['生年月日','階級']]
df = df.replace('7S', '7')
df = df.replace('7F', '7')
df = df.replace('6S', '7')
df = df.replace('6F', '7')
df.dropna(inplace=True)
df3=np.array(df)
from sklearn.cluster import KMeans
kmeans=KMeans(n_clusters=2)
km=kmeans.fit(df3)
print(km)
【オレンジ色の欄】
C:\Users\honda\Miniconda3\envs\stats\lib\site-packages\IPython\core\interactiveshell.py:2785: DtypeWarning: Columns (8) have mixed types. Specify dtype option on import or set low_memory=False.
interactivity=interactivity, compiler=compiler, result=result)
【出力】
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
n_clusters=2, n_init=10, n_jobs=1, precompute_distances='auto',
random_state=None, tol=0.0001, verbose=0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/11 04:55