簡體   English   中英

我嘗試在 sklearn 中進行估算,但出現錯誤

[英]I try imputing in sklearn but I have an error

我嘗試下面的代碼,但我有一些錯誤。

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 將naninf-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, 3], [4, np.nan, 6], [10, np.nan, 9], [np.nan, np.inf, -np.inf]]
X = np.nan_to_num(X, nan=-9999, posinf=33333333, 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]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM