【发布时间】:2018-06-20 07:55:02
【问题描述】:
我正在使用 Scikit-learn 将我的训练数据转换为多项式特征,然后将其拟合到线性模型。
model = Pipeline([('poly', PolynomialFeatures(degree=3)),
('linear', LinearRegression(fit_intercept=False))])
model.fit(X, y)
但是会报错
TypeError: A sparse matrix was passed, but dense data is required
我知道我的数据是sparse matrix 格式。所以当我尝试将我的数据转换为dense matrix 时,它会显示memory error。因为我的数据很大(50k~)。由于这些大量数据,我无法将其转换为密集矩阵。
我还找到了Github Issues 请求此功能的位置。但仍未实施。
那么请有人告诉我如何在 Scikit-learn 的 PolynomialFeatures 中使用稀疏数据格式而不将其转换为密集格式?
【问题讨论】:
-
正如您已经在 github 问题上讨论过的那样,我们在 stackoverflow 上几乎无能为力。也许您可以尝试实现自己的版本,并在遇到困难时来这里。
-
好像开发者已经为the same here 做了PR。请看一下。
-
公平积分。尝试仅选择列的子集以创建多项式特征。
标签: scikit-learn sparse-matrix data-science polynomials sklearn-pandas