У меня возникла эта проблема из-за срабатывания триггера. Работа после удаления триггера.
На самом деле это не проблема 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()