我正在使用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)
由于我的训练数据超过200000行,我想使用SGDClassifier的partial_fit方法。
X = traningNormalizedCsv.values y = targetDataCsv.values clf = SGDClassifier() clf.partial_fit(X, y)
但是这个分类器没有predict_proba方法来获取我的测试数据的目标概率。
clf.predict_proba(df.values)
请提供建议。
回答:
如您在文档中所见 – 此方法仅适用于对数损失和改进的Huber损失。
所以您需要更改损失函数。
from sklearn.linear_model import SGDClassifierimport numpy as npX = 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.]]