【发布时间】:2017-06-28 02:07:28
【问题描述】:
我在这里做错了什么?我有一个大型数据集,我想使用 Scikit-learn 的 SGDClassifier 进行部分拟合
我做以下事情
from sklearn.linear_model import SGDClassifier
import pandas as pd
chunksize = 5
clf2 = SGDClassifier(loss='log', penalty="l2")
for train_df in pd.read_csv("train.csv", chunksize=chunksize, iterator=True):
X = train_df[features_columns]
Y = train_df["clicked"]
clf2.partial_fit(X, Y)
我收到了错误
Traceback(最近一次调用最后一次):文件“/predict.py”,第 48 行,在 sys.exit(0 if main() else 1) 文件“/predict.py”,第 44 行,在 main predict() 文件“/predict.py”,第 38 行,在预测中 clf2.partial_fit(X, Y) 文件“/Users/anaconda/lib/python3.5/site-packages/sklearn/linear_model/stochastic_gradient.py”, 第 512 行,在 partial_fit coef_init=无,intercept_init=无)文件“/Users/anaconda/lib/python3.5/site-packages/sklearn/linear_model/stochastic_gradient.py”, 第 349 行,在 _partial_fit _check_partial_fit_first_call(self, classes) 文件“/Users/anaconda/lib/python3.5/site-packages/sklearn/utils/multiclass.py”, 第 297 行,在 _check_partial_fit_first_call 中 raise ValueError("类必须在第一次调用时传递" ValueError: 类必须在第一次调用时传递给 partial_fit。
【问题讨论】:
-
"所有调用 partial_fit 的类。可以通过 np.unique(y_all) 获得,其中 y_all 是整个数据集的目标向量。第一次调用 partial_fit 和可以在后续调用中省略。注意 y 不需要包含类中的所有标签。 scikit-learn.org/stable/modules/generated/…
-
@JackManey 请发表您的评论作为答案,以便提问者接受和/或关闭问题。
标签: python scikit-learn