Запустите анализ основных компонентов (PCA) в наборе данных, чтобы уменьшить количество функций (компонентов) с 64 до 2

У меня возникла эта проблема из-за срабатывания триггера. Работа после удаления триггера.

-2
задан ParPro 13 July 2018 в 18:34
поделиться

1 ответ

На самом деле это не проблема PCA, а просто переименование ваших столбцов: набор данных digits имеет 64 столбца, и вы пытаетесь назвать столбцы в соответствии с именами столбцов для 4 столбцов в iris набор данных.

Из-за характера набора данных цифр (пикселей) на столбцах действительно нет соответствующей схемы именования. Так что просто не переименуйте их.

digits = datasets.load_digits()      

x = pd.DataFrame(digits.data)     

pca = decomposition.PCA(n_components=2)
pca.fit(x)
x = pca.transform(x)

# Here is the result of your PCA (2 components)
>>> x
array([[ -1.25946636,  21.27488332],
       [  7.95761139, -20.76869904],
       [  6.99192268,  -9.9559863 ],
       ..., 
       [ 10.80128366,  -6.96025224],
       [ -4.87210049,  12.42395326],
       [ -0.34438966,   6.36554934]])

Тогда вы можете построить первый компьютер против второго, если это то, что вы собираетесь (что я собрал из вашего кода)

plt.scatter(x[:,0], x[:,1], s=40)
plt.show()

2
ответ дан sacul 17 August 2018 в 12:15
поделиться
  • 1
    Благодарю. Сегодня я только что познакомился с наборами данных, поэтому все это для меня совершенно новое. – ParPro 13 July 2018 в 18:56
  • 2
    хотя после plt.scatter (x [:, 0], x [,, 1], c = colormap [model.labels_], s = 40) Я продолжаю получать ошибку «индекс 8 выходит за рамки для оси 0 с размером 8 " – ParPro 13 July 2018 в 19:14
  • 3
    Довольно уверен, что это проблема с вашей цветовой палитрой, но я не уверен, что вы пытаетесь достичь TBH – sacul 13 July 2018 в 19:39
Другие вопросы по тегам:

Похожие вопросы: