Scikit learn 属性错误:';str';对象没有属性';参数';由于新版本的sklearn
我正在使用sklearn进行主题建模。在尝试从网格搜索输出获取对数似然时,我得到以下错误: AttributeError:'str'对象没有属性'parameters' 我想我理解的问题是:“参数”在旧版本中使用,而我使用的是sklearn的新版本(0.22),这是错误的。我还搜索了新版本中使用的术语,但找不到它。代码如下:Scikit learn 属性错误:';str';对象没有属性';参数';由于新版本的sklearn,scikit-learn,python-3.7,gridsearchcv,log-likelihood,Scikit Learn,Python 3.7,Gridsearchcv,Log Likelihood,我正在使用sklearn进行主题建模。在尝试从网格搜索输出获取对数似然时,我得到以下错误: AttributeError:'str'对象没有属性'parameters' 我想我理解的问题是:“参数”在旧版本中使用,而我使用的是sklearn的新版本(0.22),这是错误的。我还搜索了新版本中使用的术语,但找不到它。代码如下: # Get Log Likelyhoods from Grid Search Output n_components = [10, 15, 20, 25, 30] log_
# Get Log Likelyhoods from Grid Search Output
n_components = [10, 15, 20, 25, 30]
log_likelyhoods_5 = [round(gscore.mean_validation_score) for gscore in model.cv_results_ if gscore.parameters['learning_decay']==0.5]
log_likelyhoods_7 = [round(gscore.mean_validation_score) for gscore in model.cv_results_ if gscore.parameters['learning_decay']==0.7]
log_likelyhoods_9 = [round(gscore.mean_validation_score) for gscore in model.cv_results_ if gscore.parameters['learning_decay']==0.9]
# Show graph
plt.figure(figsize=(12, 8))
plt.plot(n_components, log_likelyhoods_5, label='0.5')
plt.plot(n_components, log_likelyhoods_7, label='0.7')
plt.plot(n_components, log_likelyhoods_9, label='0.9')
plt.title("Choosing Optimal LDA Model")
plt.xlabel("Num Topics")
plt.ylabel("Log Likelyhood Scores")
plt.legend(title='Learning decay', loc='best')
plt.show()
提前谢谢 有一个键“params”,用于存储所有候选参数的参数设置命令列表。您可以从sklearn文档中查看GridSearchCv文档 在代码中,
gscore
是cv\u results\u
的字符串键值
cv_结果
的输出是字符串键的字典,如'params'、'split0_test_score'等(您可以参考文档),其值为list
或array
等
因此,您需要对代码进行以下更改:
log_likelyhoods_5 = [round(model.cv_results_['mean_test_score'][index]) for index, gscore in enumerate(model.cv_results_['params']) if gscore['learning_decay']==0.5]
我仍然收到一个错误:NameError:未定义名称“model”。此外,我甚至尝试使用“best_lda_model”而不是“model”,但仍然得到了名称错误:名称“best_lda_model”未定义。@PiyushGhasiya,model是您在GridSearchCV代码中使用的分类模型。你能展示一下你应用GridSearchCv代码的代码吗?“平均检验分数”现在是“平均测试分数”。使用“平均测试分数”。为了确认,您可以查看gridA.cv\u results\uuu.keys(),在运行上述注释后,您可以看到没有“平均值验证分数”。