Skip to main content
 首页 » 编程设计

python之带有 predict_proba 的 SGDClassifier

2025年05月04日13qlqwjy

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