ValueError: Input contains NaN, infinity or a value too large for dtype('float32')

在训练模型时遇到ValueError: Input contains NaN, infinity or a value too large for dtype('float32')。解决方案是使用sklearn.preprocessing.Imputer进行缺失值填充。Imputer的strategy参数可以选择用均值、中位数或众数替换缺失值。在实例中,通过设置strategy='mean'将缺失值替换为数据列的均值,从而解决了报错。" 111852367,10293744,Python一维数组与Numpy数组详解,"['Python编程', '数据结构', '数组操作', 'Numpy库']
摘要由CSDN通过智能技术生成

背景:

在训练模型 fit(x_train,y_train) 时遇到报错 ValueError: Input contains NaN, infinity or a value too large for dtype('float32') 

 

解决:

from sklearn.preprocessing import Imputer

df = Imputer().fit_transform(df)

 

其实我遇到这个报错主要由于我的数据当中有大量的缺失值,而sklearn.preprocessing.Imputer恰恰是填补缺失值的一个重要的方法,它的详细参数包括:

sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)

参数说明:

missing_values:缺失值,可以为整数或NaN(缺失值numpy.nan用字符串‘NaN’表示),默认为NaN

strategy:替换策略,字符串,默认用均值‘mean’替换

①若为mean时,用特征列的均值替换

②若为median时,用特征列的中位数替换

③若为most_frequent时,用特征列的众数替换

axis:指定轴数,默认axis=0代表列,axis=1代表行

copy:设置为True代表不在原数据集上修改,设置为Fal

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值