如何解决我尝试在sklearn中进行插补,但出现错误
我尝试下面的代码,但是有一些错误。
imp=SimpleImputer(missing_values='NaN',strategy="mean")
col = veriler.iloc[:,1:4].values
type(col) ##numpy.ndarray
imp=imp.fit(col)
ValueError:输入包含NaN,无穷大或对于dtype('float64')而言太大的值。
解决方法
您需要将无穷大值转换为有界值才能应用插补。 np.nan_to_num将nan
,inf
和-inf
剪辑为可行的值。
例如:
import numpy as np
from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer(missing_values=np.nan,strategy='mean')
X = [[7,np.inf,3],[4,np.nan,6],[10,5,9]]
X = np.nan_to_num(X,nan=-9999,posinf=33333333,neginf=-33333333)
imp_mean.fit(X)
>>> SimpleImputer(add_indicator=False,copy=True,fill_value=None,missing_values=nan,strategy='mean',verbose=0)
对于变换,也可以应用:
X = [[np.nan,2,9],[np.nan,-np.inf]]
X = np.nan_to_num(X,neginf=-33333333)
print(imp_mean.transform(X))
>>>
[[-9.9990000e+03 2.0000000e+00 3.0000000e+00]
[ 4.0000000e+00 -9.9990000e+03 6.0000000e+00]
[ 1.0000000e+01 -9.9990000e+03 9.0000000e+00]
[-9.9990000e+03 3.3333333e+07 -3.3333333e+07]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。