TypeError:参数值不可编辑或分布

2024-05-23 18:49:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有趣的是,我在Sklearn之前实现了RandomForestClassifier,效果非常好:

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

我在谷歌上搜索了几个小时,不幸的是找不到合适的解决方案

如果有人能帮忙,我将非常感激!祝你身体健康


Tags: httpsorgselfnonestatsrandomsklearnscikit
2条回答

对于n\u估计器,尝试传递一个变量列表,我认为它会起作用

self.clf=employ.RandomForestClassifier()
self.random_参数=[ {“n_估计量”:[20,50100200],“标准”:[“基尼”],“最大深度”:stats.randint(11500)}, {“n_估计值”:[20,50100200],“标准”:[“基尼”],“最大深度”:[None]}]

试试这个:

“n_组件”:[2]

相关问题 更多 >