После применения PCA на моем фрейме данных это дает мне странную цифру, как это означает или как я могу интерпретировать это? - PullRequest
0 голосов
/ 28 января 2020

Я работаю с данными покемонов, и у меня есть фрейм данных только с числовым значением (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()

вот результат: enter image description here

Мой вопрос : Как я могу это интерпретировать? Что это значит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...