运行我的代码时无法获取predict_proba

2024-05-15 04:51:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为不太大的数据集(1000条记录)构建算法

但它有大约2000列

我得到了这个错误

  File "C:\Users\User\anaconda3\lib\site-packages\sklearn\svm\_base.py", line 603, in _check_proba
    raise AttributeError("predict_proba is not available when "

AttributeError: predict_proba is not available when  probability=False

这是我的密码

multilabel_binarizer = MultiLabelBinarizer()
multilabel_binarizer.fit(df['Result'])
y = multilabel_binarizer.transform(df['Result'])
    
X = df[df.columns.difference(["Result"])]

xtrain, xval, ytrain, yval = train_test_split(X, y, test_size=0.2, random_state=9)
lr = SVC(gamma='auto')
clf = OneVsRestClassifier(lr)
clf.fit(xtrain, ytrain)
y_pred = clf.predict(xval)

如何避免这种错误

当我为LogisticRegression运行相同的代码时,效果很好


Tags: dfis错误notresultpredictfitavailable
1条回答
网友
1楼 · 发布于 2024-05-15 04:51:53

这是因为逻辑回归默认输出概率。SVM的默认输出是二进制(-1,1),这是由算法本身的设计给出的(找到最佳分离超平面,目标在一侧或另一侧)

如果希望SVM输出概率,则需要在实例化SVC类时指定probability=True

lr = SVC(gamma='auto', probability=True)

这将在内部使用不同的机制从SVM获得概率输出

相关问题 更多 >

    热门问题