Я работаю с данными покемонов, и у меня есть фрейм данных только с числовым значением (stat, type, id, ...), этот фрейм данных имеет около 12000 строк, и каждая строка представляет битву между двумя покемонами. Последний столбец моего информационного кадра посвящен уровням покемонов, я выделяю победителя покемона (победителя матча) на 3 уровня (верхний, средний, низкий) и затем применяю PCA к информационному фрейму с целью наблюдения кластера (один для каждый уровень) на плоскости.
Вот мой код:
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
features = ['id_pkmn1','id_pkmn2','id_type1_pkmn1','id_type2_pkmn1','id_type1_pkmn2',
'id_type2_pkmn2','pv_1','atq_1','def_1','atqspe_1','defspe_1','spd_1',
'pv_2','atq_2','def_2','atqspe_2','defspe_2','spd_2']
# Separating out the features
x = df_number.loc[:, features].values
# Separating out the target
y = df_number.loc[:,['tiers']].values
# Standardizing the features
x = StandardScaler().fit_transform(x)
pca = PCA(n_components=2)
principalComponents = pca.fit_transform(x)
principalDf = pd.DataFrame(data = principalComponents
, columns = ['principal component 1', 'principal component 2'])
finalDf = pd.concat([principalDf, df_number[['tiers']]], axis = 1)
fig = plt.figure(figsize = (8,8))
ax = fig.add_subplot(1,1,1)
ax.set_xlabel('Principal Component 1', fontsize = 15)
ax.set_ylabel('Principal Component 2', fontsize = 15)
ax.set_title('2 component PCA', fontsize = 20)
targets = ['toptier','middletier','lowtier']
colors = ['r', 'g', 'b']
for target, color in zip(targets,colors):
indicesToKeep = finalDf['tiers'] == target
ax.scatter(finalDf.loc[indicesToKeep, 'principal component 1']
, finalDf.loc[indicesToKeep, 'principal component 2']
, c = color
, s = 50)
ax.legend(targets)
ax.grid()
вот результат:
Мой вопрос : Как я могу это интерпретировать? Что это значит?