gpt4 book ai didi

machine-learning - 部分拟合多元 SGDRegressor

转载 作者:行者123 更新时间:2023-11-30 09:29:59 25 4
gpt4 key购买 nike

我目前正在尝试使用 scikits learn 中的 SGDRegressor 来解决大型数据集 X ~= (10^6,10^4) 上的多变量目标问题。因此,我使用以下代码部分生成设计矩阵 (X),其中每次迭代都会生成大约 (10^3,10^4) 大小的批处理:

design = self.__iterX__(events)
reglins = [linear_model.SGDRegressor(fit_intercept=True) for i in range(nTargets)]

for X,times in design:
for i in range(nTargets):
reglins[i].partial_fit(X,y.ix[times].values[:,i])

但是我得到以下堆栈跟踪:

File ".../Enthought/Canopy_64bit/User/lib/python2.7/site-    packages/sklearn/linear_model/stochastic_gradient.py", line 841, in partial_fit
coef_init=None, intercept_init=None)
File ".../Enthought/Canopy_64bit/User/lib/python2.7/site-packages/sklearn/linear_model/stochastic_gradient.py", line 812, in _partial_fit
sample_weight, n_iter)
File ".../Enthought/Canopy_64bit/User/lib/python2.7/site-packages/sklearn/linear_model/stochastic_gradient.py", line 948, in _fit_regressor
intercept_decay)
File "sgd_fast.pyx", line 508, in sklearn.linear_model.sgd_fast.plain_sgd (sklearn/linear_model/sgd_fast.c:8651)
ValueError: floating-point under-/overflow occurred.

环顾四周,这似乎是由于没有正确标准化 X 造成的。我知道 scikits learn 有多种功能,但是考虑到我在 block 中生成 X,是否足以简单地规范化每个 block ,或者我是否需要找出一种方法来一次规范化整个列?

顺便问一下,partial_fit 函数不允许多变量目标是否有特殊原因?

最佳答案

您可以安装一个 block 并应用于其他 block :

from sklearn import preprocessing
scaler = preprocessing.StandardScaler()
x1 = scalar.fit_transform(X_block_1)
xn = scalar.transform(X_block_n)

您可以选择其他标准化方法from this page

关于machine-learning - 部分拟合多元 SGDRegressor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com