![](/img/trans.png)
[英]ImportError: cannot import name '_ClassNamePrefixFeaturesOutMixin' from 'sklearn.base'
[英]ImportError: cannot import name '_UnstableArchMixin' from 'sklearn.base'
我的環境是anaconda3(python 3.7)。
我使用此代碼測試sklearn.cluster
:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
plt.figure()
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.2, 0.2, 0.2], random_state =9) #生成測試數據
for index,k in enumerate((2,3,4,5)):
plt.subplot(2,2,index+1)
y_pred = KMeans(n_clusters=k, random_state=9).fit_predict(X)
score=metrics.calinski_harabaz_score(X, y_pred)
plt.scatter(X[:, 0], X[:, 1], c=y_pred,s=10,edgecolor='k')
plt.text(.99, .01, ('k=%d, score: %.2f' % (k,score)),transform=plt.gca().transAxes, size=10,horizontalalignment='right')
plt.show()
但是當我在pycharm中運行此代碼時,錯誤消息是:
Traceback (most recent call last):
File "E:/test/test1.py", line 5, in <module>
from sklearn.cluster import KMeans
File "E:\Anaconda37\lib\site-packages\sklearn\cluster\__init__.py", line 6, in <module>
from .spectral import spectral_clustering, SpectralClustering
File "E:\Anaconda37\lib\site-packages\sklearn\cluster\spectral.py", line 17, in <module>
from ..manifold import spectral_embedding
File "E:\Anaconda37\lib\site-packages\sklearn\manifold\__init__.py", line 5, in <module>
from .locally_linear import locally_linear_embedding, LocallyLinearEmbedding
File "E:\Anaconda37\lib\site-packages\sklearn\manifold\locally_linear.py", line 12, in <module>
from ..base import BaseEstimator, TransformerMixin, _UnstableArchMixin
ImportError: cannot import name '_UnstableArchMixin' from 'sklearn.base' (E:\Anaconda37\lib\site-packages\sklearn\base.py)
我該如何解決?
我修改了此文件E:\\Anaconda37\\Lib\\site-packages\\sklearn\\manifold\\locally_linear.py
from ..base import BaseEstimator, TransformerMixin, _UnstableArchMixi
改成:
from ..base import BaseEstimator, TransformerMixin
和
class LocallyLinearEmbedding(BaseEstimator, TransformerMixin,_UnstableArchMixin):
改成
class LocallyLinearEmbedding(BaseEstimator, TransformerMixin):
然后錯誤消失了。我在python3.6中檢查了此文件,該文件中沒有_UnstableArchMixin
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.