我正在尝试绘制仅使用数据集中的两个要素的分类器的ROC曲线。谁能告诉我如何解决下面的错误。
from sklearn.metrics import roc_curve, auc
from scipy import interp
from sklearn.cross_validation import StratifiedKFold
from sklearn.svm import SVC
X_train2 = X_train[:, [0, 1]]
X_train2
cv = StratifiedKFold(y_train, n_folds=3, random_state=1)
fig = plt.figure(figsize=(7, 5))
mean_tpr = 0.0
mean_fpr = np.linspace(0, 1, 100)
all_tpr = []
for i, (train, test) in enumerate(cv):
probas = SVC.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])
fpr, tpr, thresholds = roc_curve(y_train[test], probas[:, 1], pos_label=1)
mean_tpr += interp(mean_fpr, fpr, tpr)
mean_tpr[0] = 0.0
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, lw=1, label='ROC fold %d (area = %0.2f)'% (i+1, roc_auc))
这是错误:
TypeError Traceback (most recent call last)
<ipython-input-163-3eea9731f8d5> in <module>()
1 from sklearn.svm import SVC
2 for i, (train, test) in enumerate(cv):
----> 3 probas = SVC.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])
4 fpr, tpr, thresholds = roc_curve(y_train[test], probas[:, 1], pos_label=1)
5 mean_tpr += interp(mean_fpr, fpr, tpr)
TypeError: unbound method fit() must be called with SVC instance as first argument (got ndarray instance instead)
新错误:进行更改后,我收到以下错误:
以下是代码:
estimator= SVC(C=10)
for i, (train, test) in enumerate(cv):
probas = estimator.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])
fpr, tpr, thresholds = roc_curve(y_train[test], probas[:, 1], pos_label=1)
mean_tpr += interp(mean_fpr, fpr, tpr)
mean_tpr[0] = 0.0
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, lw=1, label='ROC fold %d (area = %0.2f)'% (i+1, roc_auc))
这是错误:
AttributeError:当probability = False时,predict_proba不可用
答案 0 :(得分:2)
错误信息非常明确:&#34; fit()必须使用SVC实例作为第一个参数调用&#34;。
fit()
是SVC类的一种方法。您需要先创建一个SVC
类实例,然后在其上调用fit()
:
estimator = SVC(probability=True)
probas = estimator.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])
答案 1 :(得分:0)
首先需要实例化支持向量分类器:
svc = SVC()
probas = SVC.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])
这将创建一个default parameters的分类器。