You need to enable JavaScript to run this app. 使用NumPy计算特征相关性提取特征时,出现numpy模块无corroef属性报错该如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用NumPy计算特征相关性提取特征时,出现numpy模块无corroef属性报错该如何解决

AttributeError报错修复方案

根因

触发AttributeError: module 'numpy' has no attribute 'corroef'的直接原因是NumPy方法名拼写错误,NumPy官方提供的皮尔逊相关系数计算方法为np.corrcoef,不存在拼写为corroef的接口。
除了拼写错误,原代码还存在3处逻辑bug,会在拼写修正后继续触发报错,需要同步调整:

  • 特征名取值逻辑错误:原代码feature_name = X_train[0]会直接读取DataFrame中列名为0的列数据,不是全量特征名列表,正确取法为feature_name = X_train.columns.tolist()
  • TopN特征选取逻辑错误:原代码将np.argsort返回的相关值索引直接传入X_train.iloc做行切片,索引和行索引错位,根本没法正确取出高相关的特征名
  • 变量重名风险:NaN替换的列表推导式中用了和外层特征循环重名的变量i,容易引发作用域污染导致后续逻辑异常

修正后完整代码

cor_list = []
# 正确获取全量特征列名
feature_name = X_train.columns.tolist()
print(feature_name)
# 逐特征计算与训练集目标值的皮尔逊相关系数
for feat in feature_name:
    # 修正方法拼写错误:corroef -> corrcoef
    cor = np.corrcoef(X_train[feat], y_train)[0, 1]
    cor_list.append(cor)
# 将常量特征导致的NaN相关值替换为0
cor_list = [0 if np.isnan(cor_val) else cor_val for cor_val in cor_list]
# 按相关系数绝对值排序,取TopN个高相关特征
top_corr_pos = np.argsort(np.abs(cor_list))[-num_feats:]
cor_feature = [feature_name[pos] for pos in top_corr_pos]
return cor_feature

内容的提问来源于stack exchange,提问作者Roaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 14:15:04