Skearn预处理StandardScaler出现 ValueError 的错误

在用sklearn做机器学习的时候,我们经常要对数据进行预处理,而又经常使用标准化预处理数据,但是,使用StandardScaler有可能会出现ValueError 的错误。具体的错误如下面所示:
这里写图片描述
通过查看sklearn的帮助文档,发现:StandardScaler 能够接受 scipy.sparse 作为输入,只要参数 with_mean=False 被准确传入它的构造器。否则会出现 ValueError 的错误,因为默认的中心化会破坏稀疏性,并且经常会因为分配过多的内存而使执行崩溃。
然后,再查看fit_transform方法的帮助文档:
fit_transform(X, y=None, **fit_params)
参数:X : numpy array of shape [n_samples, n_features]
y : numpy array of shape [n_samples]
发现传入的numpy数组为一个二维的矩阵,如果是一维的数组,可以构造为二维的矩阵(自己的理解)。
接下来,就说怎么处理这种问题,其实也就是构造一个二维的矩阵,并只取第一列数据也就是样本y[n_samples]。

y_Standard = StandardScaler_y.fit_transform(y[:, None])[:,0]

这样就行了。

帮助文档:
http://sklearn.apachecn.org/cn/0.19.0/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler

http://sklearn.apachecn.org/cn/0.19.0/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler.fit_transform

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值