我正在尝试估算代表矩阵中空值的不同占位符的值。例如,每当“?”时我想估算一个值。存在于 numpy 2darray 中。
为此,我创建了一个 Imputer
,如下所示:
from sklearn import preprocessing
imputer = preprocessing.Imputer(missing_values="?", strategy='mean', axis=0, copy=False)
data = imputer.fit_transform(data)
但我收到此错误:
/usr/local/lib/python2.7/dist-packages/sklearn/preprocessing/imputation.pyc in _get_mask(X, value_to_mask)
27 def _get_mask(X, value_to_mask):
28 """Compute the boolean mask X == missing_values."""
---> 29 if value_to_mask == "NaN" or np.isnan(value_to_mask):
30 return np.isnan(X)
31 else:
NotImplementedError: Not implemented for this type
我是否误解了missing_values
可以设置的内容?
我的印象是它可以是任何字符串,而不仅仅是“NaN”,这就是 scikit-learn 源似乎建议的内容。
最佳答案
类型"integer or string"
真正的意思是“要么是整数,要么是字符串'NaN'
”。输入fit
/fit_transform
应该仍然是数字。 ( "NaN"
作为字符串传递的唯一原因是传递 np.nan
可能会导致困惑的情况,因为它不等于自身,即 np.nan == np.nan
计算结果为 False
。)
关于python - scikit learn 插补 NaN 以外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22472700/