调用sklearn的RandomForestClassifier和ExtraTreeClassifier出现的参数错误

  今天准备在集群上运行我的新代码的时候,突然冒出来这个错误,有点懵,查阅资料找到了原因。

 报错如下:

ValueError: Invalid parameter min_impurity_decrease for estimator DecisionTreeClassifier. Check the list of available parameters with estimator.get_params().keys().

  一开始把将断点设置在出错的文件(sklearn.base.py),然后依次调试,发现estmator.params一切都正常,仔细观察报错的地方—> Invalid parameter min_impurity_decrease for estimator DecisionTreeClassifier.
  这说明min_impurity_decrease参数在DecisionTreeClassifier中是没有的,或者是无效的。
  接下来查看服务器上sklearn的版本是 0.18.1,而我在本地调试通过sklearn的版本信息0.19.1
  查看sklearn 0.19.1RandomForestClassifier的官方文档详细信息。如下:
参数信息
  仔细看min_impurity_decrease 参数
iii
  所以在sklearn 0.18.1中是没有min_impurity_decrease 这个参数的。如果要用这个参数的话就要将sklearn的版本升级到 0.19.1。就可以了
  但是服务器是不能联网的,所以呀,又要离线安装,离线安装就要考虑要不要手动卸载以前的sklearn 0.18.1,事实是,不需要卸载以前的sklearn版本,直接下载sklrean 0.19.1的安装包,然后pip install 包名就好了。pip会自动卸载以前的sklearn版本,然后安装新版本。
  示意图如下:
iiss
  然后程序就正常运行啦,have a nice day!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是因为您尝试使用一个未定义的参数,或者参数名称拼写错误,导致模型构建失败。 在您的代码中,您使用了 `'alpha': [0.0001, 0.001, 0.01]` 作为参数,但是这个参数实际上是用于设置 `SGDClassifier` 模型的,而不是 `Perceptron` 模型。因此,您需要将这个参数参数网格中移除,或者将其替换为 `Perceptron` 模型支持的参数。 例如,以下代码演示了如何使用正确的参数设置来构建一个 `Pipeline` 模型: ``` from sklearn.preprocessing import StandardScaler from sklearn.linear_model import Perceptron from sklearn.pipeline import Pipeline from sklearn.model_selection import GridSearchCV, StratifiedKFold # 数据预处理 scaler = StandardScaler() merged_train_norm_vec = scaler.fit_transform(merged_train_norm_vec) # 参数设置 param_grid = {'penalty': ['l1', 'l2', 'elasticnet', 'none'], 'alpha': [0.0001, 0.001, 0.01], 'max_iter': [100, 500, 1000], 'tol': [0.001, 0.01, 0.1]} # 模型构建 model = Pipeline([('scaler', scaler), ('Perceptron', Perceptron())]) # 交叉验证 k = 10 cv = StratifiedKFold(n_splits=k, shuffle=True) # 网格搜索 grid = GridSearchCV(model, param_grid, cv=cv, scoring='accuracy') grid.fit(merged_train_norm_vec, y_merged_train) # 输出最优参数和分类准确率 print('Best params:', grid.best_params_) print('Best score:', grid.best_score_) ``` 在这个例子中,我们使用了 `Perceptron` 模型,并设置了 `penalty`、`max_iter` 和 `tol` 等参数。您可以根据您的需要修改这些参数,或者添加其他支持的参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值