类型错误:参数值不是可迭代的或分布的



我是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}
]

有趣的是,我之前实现了SklearnRandomForestClassifier,并且效果很好:

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], "标准": ["基尼"], "max_depth": stats.randint(1,1500(}, {"n_estimators": [20,50,100,200], "标准": ["基尼"], "max_depth": [无]}]

试试这个:

"n_components":[2]

最新更新