ここの PCA チュートリアル ( PCA-tutorial )の結果を再現しようとしましたが、いくつかの問題があります。
私が理解していることから、PCAを適用する手順に従っているはずです。しかし、私の結果はチュートリアルの結果と似ていません (または、似ていて正しく解釈できませんか?)。n_components=4 を使用すると、次のグラフn_components4が得られます。おそらくどこかで何かが欠けているので、これまでのコードも追加しました。
私の2番目の問題は、グラフ内のポイントに注釈を付けることです。ラベルがあり、各ポイントに対応するラベルを取得したいです。私はいくつかのことを試しましたが、これまでのところ成功していません。
データセットも追加し、CSV として保存しました。
,チーズ,枝肉,その他の肉類,魚介類,油脂,砂糖,生じゃがいも,生野菜,その他の野菜,じゃがいも加工品,加工野菜,生果実,穀類,飲料,清涼飲料,酒類,菓子類 イングランド,105,245,685,147,193,156,720,253,488,198,360, 1102,1472,57,1374,375,54 Wales,103,227,803,160,235,175,874,265,570,203,365,1137,1582,73,1256,475,64 Scotland,103,242,750,122,184,147,566,171,418,220,337,957,1462,53,1572,458,62 NIreland,66,267,586,93,209,139,1033,143,355,187,334,674,1494 ,47,1506,135,41
では、これらの問題のいずれかについて何か考えはありますか?
`
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import decomposition
demo_df = pd.read_csv('uk_food_data.csv')
demo_df.set_index('Unnamed: 0', inplace=True)
target_names = demo_df.index
tran_ne = demo_df.T
pca = decomposition.PCA(n_components=4)
comps = pca.fit(tran_ne).transform(tran_ne)
plt.scatter(comps[0,:], comps[1, :])
plt.title("PCA Analysis UK Food");
plt.xlabel("PC1");
plt.ylabel("PC2");
plt.grid();
plt.savefig('PCA_UK_Food.png', dpi=125)
`