mutual_info_regression 使用报错Found array with 0 sample(s) (shape=(0, 1))

做数据分析时,使用mutual_info_regression有时会遇到以下报错信息:

Found array with 0 sample(s) (shape=(0, 1)) while a minimum of 1 is required.

就比如这个场景

make_mi_scores(X2_pca.iloc[:,:10],y_train)
make_mi_scores

这个问题一直让我费解,因为我的df明明有数据啊

最后我找到源代码,看到这处报错的164行代码:

产生思考:这个问题是不是和我的解释变量X的类型是不是discrete离散型的有关系?

我定义的函数make_mi_scores中是这样指定了每个Xi的类型

discrete_features =[pd.api.types.is_numeric_dtype(t) for t in X.dtypes ]

def make_mi_scores(X,y):
    X =X.copy()
    discrete_features =[pd.api.types.is_numeric_dtype(t) for t in X.dtypes ]
    MI_scores =mutual_info_regression(X,y,discrete_features=discrete_features,random_state=21)
    MI_scores =pd.Series(MI_scores, name='MI_scores', index=X.columns)
    MI_scores =MI_scores.sort_values()
    return MI_scores

改变代码进行执行,发现成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值