我正在使用scikit learn的linearSVC分类器进行文本挖掘。我将y值作为标签0/1,将X值作为文本文档的TfidfVectorizer。
我用下面这样的管道
pipeline = Pipeline([
('count_vectorizer', TfidfVectorizer(ngram_range=(1, 2))),
('classifier', LinearSVC())
])
对于预测,我想得到一个数据点被分类为 1,范围(0,1)
我现在使用决策功能
pipeline.decision_function(test_X)
然而,它返回的正值和负值似乎表明了信心。我也不太清楚他们的意思。
但是,是否有方法获得0-1范围内的值?
例如,这里是一些数据点的决策函数的输出
-0.40671879072078421,
-0.40671879072078421,
-0.64549376401063352,
-0.40610652684648957,
-0.40610652684648957,
-0.64549376401063352,
-0.64549376401063352,
-0.5468745098794594,
-0.33976011539714374,
0.36781572474117097,
-0.094943829974515004,
0.37728641897721765,
0.2856211778200019,
0.11775493140003235,
0.19387473663623439,
-0.062620918785563556,
-0.17080866610522819,
0.61791016307670399,
0.33631340372946961,
0.87081276844501176,
1.026991628346146,
0.092097790098391641,
-0.3266704728249083,
0.050368652422013376,
-0.046834129250376291,
如果坚持使用LinearSVC类,可以将其包装在一个sklearn.calibration.CalibratedClassifierCV对象中,并安装校准后的分类器,这将为您提供一个概率分类器。
输出如下:
它显示每个数据点的每个类的概率。
你不能。 但是,可以将
sklearn.svm.SVC
与kernel='linear'
和probability=True
一起使用它可能运行得更长,但是您可以使用
predict_proba
方法从这个分类器中获得概率。相关问题 更多 >
编程相关推荐