天天看点

报错ImportError:cannot import name 'fetch_openml' from 'sklearn.datasets'及问题解决方案

对多层感知机权重在MINIST数据集上的可视化实现实验中,遇到报错。

首先,代码如下:

import matplotlib.pyplot as plt

from sklearn.datasets import fetch_openml

from sklearn.neural_network import MLPClassifier

print(__doc__)

X,y=fetch_openml('mnist_784',version=1,return_X_y=True)

X=X/255.

X_train,X_test=X[:60000],X[60000:]

y_train,y_test=y[:60000],y[60000:]

mlp=MLPClassifier(hidden_layer_sizes=(50,),max_iter=10,alpha=1e-4,solver='sgd',verbose=10,tol=1e-4,random_state=1,learning_rate_init=.1)

mlp.fit(X_train,y_train)

print("Training set score:%f"% mlp.score(X_train,y_train))

print("Test set score:%f"% mlp.score(X_test,y_test))

fig,axes=plt.subplots(4,4)

vmin,vmax=mlp.coefs_[0].min(),mlp.corfs_[0].max()

for coef,ax in zip(mlp.coefs_[0].T,axes.rave()):

    ax.matshow(coef.reshape(28,28),cmap=plt.cm.gray,vmin=.5*vmin,vmax=.5*vmax)

    ax.set_xticks(())

    ax.set_yticks(())

plt.show()

报错ImportError:cannot import name 'fetch_openml' from 'sklearn.datasets',一般对于这种ImportError,需要升级对应的第三方库(spyder也同步升级),升级后不再报错。