python - scikit learn 插补 NaN 以外的值

标签 python numpy scikit-learn

我正在尝试估算代表矩阵中空值的不同占位符的值。例如,每当“?”时我想估算一个值。存在于 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/

相关文章:

python - Pandas one liner 通过特定列上的唯一计数过滤行

Python Tkinter - 顶级 MoveInAnimation

python - 导入wx.lib.py时为"Import Error: NumPy not found"

python - sklearn KMedoids 返回空集群

python - 导入模块时将记录器对象作为参数

python - 标记化规则优先级 Pyparsing

Python- np.mean() 给出错误的方法?

python - 如何将图像的每一帧的二维数组写入csv?

python - 10倍交叉验证并获得RMSE

python - 在逻辑回归中使用排名数据