SKLearn如何获取LinearSVC分类器的决策概率

我在使用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, 

回答:

你不能做到这一点。但是你可以使用sklearn.svm.SVC,设置kernel='linear'probability=True

这样可能会运行得更久,但你可以通过使用predict_proba方法从这个分类器中获取概率。

clf=sklearn.svm.SVC(kernel='linear',probability=True)clf.fit(X,y)clf.predict_proba(X_test)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注