chinapnr / How-to-Python-and-Machine-Learning-book-code

How to Python and Machine Learning book code repository
46 stars 35 forks source link

ch13 利用pca进行图像压缩出现以下错误,请问有出现相同错误的同学吗? #8

Open gaoya-J opened 4 years ago

gaoya-J commented 4 years ago

Traceback (most recent call last): File "F:/C-Practice/PCA-MNIST.py", line 36, in instances.append(x[y==i][0]) IndexError: index 0 is out of bounds for axis 0 with size 0

Yimeng-Zhang commented 4 years ago

看上去是输入数据为空导致的呢,能在之前步骤看下是否成功读取了图像数据吗

gaoya-J commented 4 years ago

这是写得代码: `import numpy as np import matplotlib import matplotlib.pyplot as plt

from sklearn.datasets import fetch_mldata

sklearn 没有fetch_mldata了,在网上查到可以导入fetch_openml

from sklearn.datasets import fetch_openml from sklearn.decomposition import PCA

mnist=fetch_openml('mnist_784') x=mnist["data"] y=mnist["target"]

pca=PCA() pca.fit(x)

'''cumsum=np.cumsum(pca.explained_varianceratio) d=np.argmax(cumsum>=0.9)+1

plt.plot(cumsum) plt.ylim(0,1.1) plt.xlabel('no.of principals',fontsize=16) plt.ylabel('explained variance ratio',fontsize=16) plt.show()'''

Xr=[] for n in [5,15,35,85]: pca=PCA(n_components=n) X_reduced=pca.fit_transform(x) X_recovered=pca.inverse_transform(X_reduced) Xr.append(X_recovered)

instances=[] for i in range(10): instances.append(x[y==i][0]) for j in range(1,5): instances.append(Xr[j-1][y==i][0])

def plot_digits(instances): images = [instance.reshape(28,28) for instance in instances] row_images=[] for row in range(5): rimages=images[row5:(row+1)5] row_images.append(np.concatenate(rimages,axis=1)) image=np.concatenate(row_images,axis=0) plt.imshow(image,cmap=matplotlib.cm.binary) plt.axis("off")

plt.figure(figsize=(7,4)) plt.subplot(121) plot_digits(instances[:25]) plt.subplot(122) plot_digits(instances[25:]) plt.show() `

gaoya-J commented 4 years ago

使用fetch_openml读取的mnist数据集截图: 01

gaoya-J commented 4 years ago

请问是要怎么改才能解决这个错误啊? Traceback (most recent call last): File "F:\C-Practice\test.py", line 51, in instances.append(x[y==i][0]) IndexError: index 0 is out of bounds for axis 0 with size 0

Yimeng-Zhang commented 4 years ago

我明天测试下回复你

gaoya-J commented 4 years ago

我明天测试下回复你 你好,请问你那边测试有出现和我一样的问题吗?

chaosjeyli commented 3 years ago

我明天测试下回复你

作者您好,我也遇到了一样的问题,不知道有没有有没有解决了