【问题标题】:Prevent Imputer from losing values防止 Imputer 丢失值
【发布时间】:2018-06-22 10:57:30
【问题描述】:

目前我正在尝试用 pandas 估算一个因变量。 (不要问为什么。) 这是数据集

y.head(15)

Out[138]: 
0     13495.0
1     16500.0
2     16500.0
3     13950.0
4     17450.0
5     15250.0
6     17710.0
7     18920.0
8     23875.0
9         NaN
10    16430.0
11    16925.0
12    20970.0
13    21105.0
14    24565.0
Name: price, dtype: float64

如果我尝试估算这个变量,就会发生一些奇怪的事情:

len(y) # 15

from sklearn.preprocessing import Imputer, 
mean_imputer_y = Imputer(strategy="mean", axis=0)
imputed_y = mean_imputer_y.fit_transform(y)

len(imputed_y) # 14

这显然与 Imputer 应该做的完全相反。我不想删除 NaN。我想估算一下。

对这种行为有什么解释吗?我做错了什么?

感谢您的帮助!

【问题讨论】:

    标签: python pandas dataframe regression imputation


    【解决方案1】:

    您应该使用 axis=1 而不是 0 。

    from sklearn.preprocessing import Imputer
    mean_imputer_y = Imputer(strategy="mean", axis=1,missing_values=np.nan)
    
    mean_imputer_y.fit_transform(df.Val)
    
    
    array([[13495. , 16500. , 16500. , 13950. , 17450. , 15250. , 17710. ,
            18920. , 23875. , 18117.5, 16430. , 16925. , 20970. , 21105. ,
            24565. ]])
    

    【讨论】:

    • 但这种行为的原因是我最感兴趣的。这不应该取决于轴。为什么会这样?
    • 对于 ML 过程可以有两个方向,列或行,这也是 imputer 所需的信息@Bestname
    • 这是否意味着 NaN 值允许用于列但不允许行的 ML? @文
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多