我正在嘗試為具有不平衡類的分類問題執行以下代碼。該代碼來自支持向量機的 sci-kit 學習教程頁面,但是當我嘗試運行它時出現“類型錯誤”。print(__doc__)import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svmfrom sklearn.datasets import make_blobs# we create two clusters of random pointsn_samples_1 = 1000n_samples_2 = 100centers = [[0.0, 0.0], [2.0, 2.0]]clusters_std = [1.5, 0.5]X, y = make_blobs(n_samples=[n_samples_1, n_samples_2], centers=centers, cluster_std=clusters_std, random_state=0, shuffle=False)# fit the model and get the separating hyperplaneclf = svm.SVC(kernel='linear', C=1.0)clf.fit(X, y)# fit the model and get the separating hyperplane using weighted classeswclf = svm.SVC(kernel='linear', class_weight={1: 10})wclf.fit(X, y)# plot the samplesplt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired, edgecolors='k')# plot the decision functions for both classifiersax = plt.gca()xlim = ax.get_xlim()ylim = ax.get_ylim()# create grid to evaluate modelxx = np.linspace(xlim[0], xlim[1], 30)yy = np.linspace(ylim[0], ylim[1], 30)YY, XX = np.meshgrid(yy, xx)xy = np.vstack([XX.ravel(), YY.ravel()]).T# get the separating hyperplaneZ = clf.decision_function(xy).reshape(XX.shape)# plot decision boundary and marginsa = ax.contour(XX, YY, Z, colors='k', levels=[0], alpha=0.5, linestyles=['-'])# get the separating hyperplane for weighted classesZ = wclf.decision_function(xy).reshape(XX.shape)# plot decision boundary and margins for weighted classesb = ax.contour(XX, YY, Z, colors='r', levels=[0], alpha=0.5, linestyles=['-'])plt.legend([a.collections[0], b.collections[0]], ["non weighted", "weighted"], loc="upper right")plt.show()
1 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
你在運行什么版本的 scikit-learn?
import sklearn
sklearn.__version__
當我在 0.19.1 上時,我遇到了同樣的錯誤,但這在 0.20.1 上就消失了。
添加回答
舉報
0/150
提交
取消