由于sklearn数据集的更新,其中的一些模块发生了变化,之前的一些调用会开始报错。
解决方案如下:
from sklearn.cross_validation import train_test_split from sklearn.datasets import fetch_lfw_people from sklearn.grid_search import GridSearchCV from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.decomposition import RandomizedPCA from sklearn.svm import SVC
我们会发现上述代码的第一行和第三行以及第六行发生报错,这是由于sklearn中的关于cross_validation、grid_search 、RandomizedPCA模块发生的改变。通过将cross_validation、grid_search 改为model_section即可。而RandomizedPCA模块被新的版本更新掉了,我们需要将其改为PCA,且在后续的调用中增加一句(svd_solver='randomized')即可。
即
from sklearn.model_selection import train_test_split from sklearn.datasets import fetch_lfw_people from sklearn.model_selection import GridSearchCV from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.decomposition import PCA from sklearn.svm import SVC
pca = PCA(svd_solver='randomized', n_components=n_components, whiten=True).fit(X_train)