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


请提出建议。

最佳答案

如您在doc中所见-此方法仅适用于日志丢失和修改的Huber丢失。

因此,您必须更改损失函数。

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.]]

关于python - SGDClassifier与predict_proba,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47788981/

10-12 18:43