PCA не может получить цвет на графике рассеяния - PullRequest
0 голосов
/ 25 ноября 2018

Я делаю мини-проект самостоятельно.Я пытаюсь это сделать с PCA.После того, как я построил свой график, я не могу вывести цвет.Это шаги ниже для моего кода.Перед этим я масштабировал и преобразовывал данные.После масштабирования я сделал PCA.Это шаги.Первый:

from sklearn.decomposition import PCA
pca= PCA(n_components= 2)
pca.fit(scaled_data)

x_pca= pca.transform(scaled_data)

principaldf= pd.DataFrame(data=x_pca, 
                      columns=['principal component 1', 
                              'principal component 2'])

После этого я объединил оба кадра данных и получил это.

new_df= principaldf.join(df_features)
new_df.head()

enter image description here

Затем я попытался построить график с кодом ниже:

color= ['r','g']
plt.scatter(x_pca[:, 0], x_pca[:, 1],
     edgecolor='none', alpha=0.5, c= color)
plt.xlabel('component 1')
plt.ylabel('component 2')

Я получил эту ошибку

V alueError: 'c'Аргумент имеет 2 элемента, что недопустимо для использования с 'x' с размером 261, 'y' с размером 261.

enter image description here

Может кто-нибудь пожалуйста посоветовать или помочь?Надеюсь, мой вопрос был достаточно ясен.Спасибо!

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете попробовать что-то вроде:

Назначить числовые значения для Gender:

new_df['Gender'] = new_df['Gender'].replace({'Male':0, 'Female':1})

Затем построить график с использованием цвета и карты:

plt.scatter(x_pca[:, 0], x_pca[:, 1], edgecolor='none', alpha=0.5,
            c=new_df['Gender'], cmap='RdYlGn')

Когда выпередать список из 2 элементов, например ['r', 'g'], он не знает, какие точки должны быть какого цвета

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