python - TypeError:参数值不可迭代或分布
问题描述
我是 Python 新手,想实现一个简单的矩阵分解分类器。
正如我在另一篇文章中所读到的,有一些可以使用的可能性,我选择了sklearn decomposition.NMF
:https ://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html
不幸的是,我收到以下错误:
TypeError: Parameter value is not iterable or distribution (key='n_components', value=2)
我正在尝试这个:
self.clf = decomposition.NMF()
self.random_parameters = [
{"n_components": 2, "init": None, "solver": 'cd', "beta_loss": 'frobenius', "tol": 0.0001, "max_iter": 200,"random_state": None, "alpha": 0.0, "l1_ratio": 0.0, "verbose": 0, "shuffle": False}
]
有趣的是,我RandomForestClassifier
从Sklearn
之前实现过,效果很好:
self.clf = ensemble.RandomForestClassifier()
self.random_parameters = [
{"n_estimators": stats.randint(20, 200), "criterion": ["gini"], "max_depth": stats.randint(1, 1500)},
{"n_estimators": stats.randint(20, 200), "criterion": ["gini"], "max_depth": [None]}]
我也从 sklearn 网站得到了这个:https ://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
我在谷歌上搜索了几个小时,不幸的是找不到合适的解决方案。
如果有人可以提供帮助,我将不胜感激!最良好的祝愿并保持健康!
解决方案
对于n_estimators,尝试传递一个变量列表,我认为它会起作用!
self.clf = ensemble.RandomForestClassifier()
self.random_parameters = [ {"n_estimators": [20,50,100,200] , "criterion": ["gini"], "max_depth": stats.randint(1, 1500)}, { “n_estimators”:[20,50,100,200],“标准”:[“gini”],“max_depth”:[None]}]
推荐阅读
- javascript - 什么是 n ,如何在 Javascript 滑块图像的脚本中定义函数
- wait - 为什么在类中通知时不抛出 IllegalMonitorStateException
- r - 使用函数均值 [R] 时出现“参数不是数字或逻辑:返回 NA”错误
- xcode - Xcode source control won't commit
- python - 在训练时测量决策树的准确性
- javascript - 在 react-native 中将画布转换为图像数据
- javascript - 如果 monorepo 应该只包含一种语言项目?
- node.js - 在 aws lambda 上使用 webshot 时遇到问题
- javascript - 如何使用 localStorage 中的数据渲染 React 组件?
- html - 图像高度与宽度相同