Ale*_*nov 4 python nltk scikit-learn
我正在尝试使用LinearSVC分类器
更新:添加了导入
import nltk
from nltk.tokenize import word_tokenize
from nltk.classify.scikitlearn import SklearnClassifier
from sklearn.svm import LinearSVC, SVC
LinearSVC_classifier = SklearnClassifier(LinearSVC())
LinearSVC_classifier.train(featuresets)
Run Code Online (Sandbox Code Playgroud)
但是当我试图用概率对它进行分类时
LinearSVC_classifier.prob_classify(feats)
Run Code Online (Sandbox Code Playgroud)
发生AttributeError:
AttributeError:'LinearSVC' object has no attribute 'predict_proba'
Run Code Online (Sandbox Code Playgroud)
我检查了sklearn文档,它告诉我这个函数存在.
如何解决?
据sklearn 文档,该方法" predict_proba "不是"定义LinearSVC "
解决方法:
LinearSVC_classifier = SklearnClassifier(SVC(kernel='linear',probability=True))
Run Code Online (Sandbox Code Playgroud)
将SVC与线性内核一起使用,概率参数设置为True.正如这里所解释的那样.
您可以_predict_proba_lr()
使用predict_proba
. 像这样的东西:
from sklearn import svm
clf=svm.LinearSVC()
clf.fit(X_train,Y_train)
res= clf._predict_proba_lr(X_test,Y_test)
Run Code Online (Sandbox Code Playgroud)
res 将是每个类别针对样本的概率的二维数组。
鉴于您的问题,没有提及像 NLTK 这样的外部包装器(标签除外),因此很难掌握您真正需要的东西!
Vivek Kumar 的评论适用。LinearSVC 不支持概率,而 SVC 支持。
现在一些补充说明:
似乎以前有人观察过这个问题。
归档时间: |
|
查看次数: |
9055 次 |
最近记录: |