Python机器学习使用boruta库进行特征选择时报错的解决方法

 1代码:

#导包
from boruta import BorutaPy

# estimator表示已创建的模型对象 
# n_estimators=800,random_state=66,max_iter=10 可调参数
feature_select = Borutapy(estimator,n_estimators=800,random_state=66,max_iter=10)

# 进行特征选择
feature_select.fit(x,y)  # x是数据的特征 ,y是目标值

 2报错:

AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

3原因 

 如果numpy 的版本在1.20以上, 会报错。

查看numpy的版本号:

 

4解决方法 

 方法1:

把numpy的版本更换为1.20以下 

方法2: 

可以直接修改boruta.py的源码。

在目录 anaconda3 \Lib\site-packages\boruta中找到 boruta_py.py文件,进行修改。

修改前:np.int → 修改后:np.int64

修改前:np.float → 修改后:np.float64

修改前:np.bool → 修改后:np.bool_

具体如下:

修改之前

 

修改之后 

 

注意: 

 修改之后需要重启内核!

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Boruta 特征选择方法是一种比较常用的特征选择方法,其主要思想是通过比较每个特征与随机生成的“影子特征”之间的重要性,来判断哪些特征是重要的。 在 Python 中,可以使用 boruta 包来实现 Boruta 特征选择使用方法如下: ```python from boruta import BorutaPy from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_digits # 加载数据 digits = load_digits() X = digits.data y = digits.target # 初始化随机森林分类器 rf = RandomForestClassifier(n_jobs=-1, class_weight='balanced', max_depth=5) # 初始化 Boruta 特征选择器 feat_selector = BorutaPy(rf, n_estimators='auto', verbose=2) # 进行特征选择 feat_selector.fit(X, y) # 打印结果 print(feat_selector.support_) print(feat_selector.ranking_) ``` 但是,Boruta 特征选择方法可能会导致计算量很大,因为它需要比较每个特征与随机生成的“影子特征”之间的重要性。因此,可以采用以下几种方式来优化: 1. 对数据进行降维处理,降低维度后再进行 Boruta 特征选择。可以使用 PCA 或 LDA 等降维方法。 2. 设置 n_estimators 参数,控制随机森林中决策树的数量,从而控制计算量。可以根据数据集大小和计算资源来调整这个参数。 3. 使用并行计算,加快计算速度。可以使用 joblib 或 multiprocessing 等来实现并行计算。 4. 对数据进行采样,减少数据量。可以使用随机采样或分层采样等方法。 5. 调整其他 Boruta 参数,比如 max_iter、perc 和 two_step 等,从而控制计算量。 通过以上方法,可以有效地优化 Boruta 特征选择方法,提高特征选择的速度和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值