【问题标题】:SGDClassifier with predict_proba带有 predict_proba 的 SGDClassifier
【发布时间】:2018-05-27 02:30:11
【问题描述】:

我正在使用 sklearn 库来训练和测试我的数据。

targetDataCsv =  pd.read_csv("target.csv","rt"))
testNormalizedCsv = csv.reader(open("testdf_new.csv","rt",encoding="utf-8"))
traningNormalizedCsv = pd.read_csv("traindf_new.csv", skiprows=1,nrows=99999)
df = pd.read_csv("testdf_new.csv", skiprows=1, nrows=9999)

我想使用 SGDClassifier 的 partial_fit 方法,因为我的训练数据有超过 200000 行。

 X = traningNormalizedCsv.values
 y = targetDataCsv.values   
 clf = SGDClassifier()
 clf.partial_fit(X, y)

但是这个分类器没有 predict_proba 方法来获取我的测试数据的目标概率。

   clf.predict_proba(df.values)

请提出建议。

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    正如您在doc 中看到的那样 - 此方法仅适用于 log loss 和修改后的 Huber loss。

    所以你必须改变你的损失函数。

    from sklearn.linear_model import SGDClassifier
    import numpy as np
    X = np.random.random_sample((1000,3))
    y = np.random.binomial(3, 0.5, 1000)
    model = SGDClassifier(loss="modified_huber")
    model.partial_fit(X, y, classes=np.unique(y))
    print(model.predict_proba([[0.5,0.6,0.7]]))
    

    输出例如:[[ 0. 0. 1. 0.]]

    【讨论】:

      猜你喜欢
      • 2014-10-09
      • 2020-06-14
      • 2017-10-15
      • 2020-11-01
      • 2013-06-08
      • 1970-01-01
      • 2015-02-17
      • 2017-04-02
      • 2020-05-20
      相关资源
      最近更新 更多