首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scikit学习SVC预测概率不像预期的那样工作

Scikit学习SVC预测概率不像预期的那样工作
EN

Stack Overflow用户
提问于 2017-03-27 01:48:29
回答 5查看 28.9K关注 0票数 24

利用SVM分类器建立了情感分析器。我用probability=True训练模型,它可以给我概率。但是,当我将我的模型腌制并在以后再次加载时,这个概率就不再起作用了。

模式:

代码语言:javascript
运行
复制
from sklearn.svm import SVC, LinearSVC
pipeline_svm = Pipeline([
    ('bow', CountVectorizer()),
    ('tfidf', TfidfTransformer()),
    ('classifier', SVC(probability=True)),])

# pipeline parameters to automatically explore and tune
param_svm = [
  {'classifier__C': [1, 10, 100, 1000], 'classifier__kernel': ['linear']},
  {'classifier__C': [1, 10, 100, 1000], 'classifier__gamma': [0.001, 0.0001], 'classifier__kernel': ['rbf']},
]

grid_svm = GridSearchCV(
    pipeline_svm,
    param_grid=param_svm,
    refit=True,
    n_jobs=-1, 
    scoring='accuracy',
    cv=StratifiedKFold(label_train, n_folds=5),)

svm_detector_reloaded = cPickle.load(open('svm_sentiment_analyzer.pkl', 'rb'))
print(svm_detector_reloaded.predict([""""Today is awesome day"""])[0])

给我:

AttributeError: predict_proba在probability=False时不可用

EN

回答 5

Stack Overflow用户

发布于 2020-03-12 23:03:48

用途:SVM(probability=True)

代码语言:javascript
运行
复制
grid_svm = GridSearchCV(
    probability=True
    pipeline_svm,
    param_grid=param_svm,
    refit=True,
    n_jobs=-1, 
    scoring='accuracy',
    cv=StratifiedKFold(label_train, n_folds=5),)
票数 14
EN

Stack Overflow用户

发布于 2020-12-29 23:48:00

添加(probability=True)时,根据上面的建议初始化分类器,解决了我的错误:

代码语言:javascript
运行
复制
clf = SVC(kernel='rbf', C=1e9, gamma=1e-07, probability=True).fit(xtrain,ytrain)
票数 7
EN

Stack Overflow用户

发布于 2019-11-22 16:15:39

您可以使用CallibratedClassifierCV进行概率分数输出。

代码语言:javascript
运行
复制
from sklearn.calibration import CalibratedClassifierCV

model_svc = LinearSVC()
model = CalibratedClassifierCV(model_svc) 
model.fit(X_train, y_train)

使用泡菜保存模型。

代码语言:javascript
运行
复制
import pickle
filename = 'linearSVC.sav'
pickle.dump(model, open(filename, 'wb'))

基于pickle.load的负载模型。

model = pickle.load(open(filename, 'rb'))

现在开始预测。

代码语言:javascript
运行
复制
pred_class = model.predict(pred)
probability = model.predict_proba(pred)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43036711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档