【问题标题】:Error while calculating probabilities using CalibratedClassifierCV python使用 CalibratedClassifierCV python 计算概率时出错
【发布时间】:2019-09-11 14:09:17
【问题描述】:

我正在尝试使用 SGDClassifier(loss='hinge') 对文本进行分类,我也想获得它们的概率。由于对于 SGDClassifier(loss='hinge') 没有 predict_proba(),所以我浏览了this 的帖子并知道它可以通过 CalibratedClassifierCV 实现

我有一个带有小文本的数据框及其对应的类

import pandas as pd
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.calibration import CalibratedClassifierCV

df = pd.DataFrame({'Name':['An Apple a day','Apple is a fruit','Oranges are grown in asia','Chalk and duster','Cheese is very nice','Duster is used to wipe from chalk','I like Oranges'],'Class':['apple','apple','oranges','duster','cheese','duster','oranges']})
sgd = Pipeline([('vect', CountVectorizer()),
                ('tfidf', TfidfTransformer()),
                ('clf', SGDClassifier(loss='hinge', penalty='l2',alpha=1e-3, random_state=42, max_iter=5)),
              ])

sgd = CalibratedClassifierCV(sgd, cv=3, method='sigmoid')

sgd.fit(df['Name'], df['Class']) #--> This line gives me error

报错

Traceback (most recent call last):

  File "<ipython-input-27-bf5d0ceadb82>", line 1, in <module>
    calibrated_clf.fit(df['Name'], df['Class'])

  File "C:\Users\20300975\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\calibration.py", line 133, in fit
    force_all_finite=False)

  File "C:\Users\20300975\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 756, in check_X_y
    estimator=estimator)

  File "C:\Users\20300975\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 527, in check_array
    array = np.asarray(array, dtype=dtype, order=order)

  File "C:\Users\20300975\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\numeric.py", line 501, in asarray
    return array(a, dtype, copy=False, order=order)

ValueError: could not convert string to float: 'An Apple a day'

有人对此有任何想法吗?

【问题讨论】:

    标签: python scikit-learn svm text-classification


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2017-04-28
    • 2020-04-22
    相关资源
    最近更新 更多