我试图为包括nearestcentroid
在内的不同分类器绘制决策边界,但当我使用以下代码时
if hasattr(clf, "decision_function"): Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()]) else: Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]
我收到一个错误提示说‘NearestCentroid’对象没有属性’predict_proba’。我该如何解决这个问题?
回答:
你可以创建自己的predict_proba
方法:
from sklearn.utils.extmath import softmaxfrom sklearn.metrics.pairwise import pairwise_distancesdef predict_proba(self, X): distances = pairwise_distances(X, self.centroids_, metric=self.metric) probs = softmax(distances) return probsclf = NearestCentroid()clf.predict_proba = predict_proba.__get__(clf)clf.fit(X_train, y_train)clf.predict_proba(X_test)