Как составить график cv_results_ replacecy grid_scores_ из GridSearchCV? - PullRequest
0 голосов
/ 11 мая 2019

Я ищу способ построения графика cv_results_ из GridSearchCV в sklearn.Но использованный код из примера grid_scores_

n_topics = [10, 15, 20, 25, 30]
log_likelyhoods_5 = [round(gscore.mean_validation_score) for gscore in 
model.grid_scores_ if gscore.parameters['learning_decay']==0.5]
log_likelyhoods_7 = [round(gscore.mean_validation_score) for gscore in 
model.grid_scores_ if gscore.parameters['learning_decay']==0.7]
log_likelyhoods_9 = [round(gscore.mean_validation_score) for gscore in 
model.grid_scores_ if gscore.parameters['learning_decay']==0.9]

Я меняю grid_scores_ на cv_results

results = pd.DataFrame(model.cv_results_)
og_likelyhoods_5 = [round(results['mean_test_score'][gscore]) for gscore in 
results['params'] if results['params'][gscore]['learning_decay']==0.5]
log_likelyhoods_7 = [round(results['mean_test_score'][gscore]) for gscore in 
results['params'] if results['params'][gscore]['learning_decay']==0.7]
log_likelyhoods_9 = [round(results['mean_test_score'][gscore]) for gscore in 
results['params'] if results['params'][gscore]['learning_decay']==0.9]

cv_results, включая ['params']

0     {'learning_decay': 0.5, 'n_components': 10}
1     {'learning_decay': 0.5, 'n_components': 15}
2     {'learning_decay': 0.5, 'n_components': 20}
3     {'learning_decay': 0.5, 'n_components': 25}
4     {'learning_decay': 0.5, 'n_components': 30}
5     {'learning_decay': 0.7, 'n_components': 10}
6     {'learning_decay': 0.7, 'n_components': 15}
7     {'learning_decay': 0.7, 'n_components': 20}
8     {'learning_decay': 0.7, 'n_components': 25}
9     {'learning_decay': 0.7, 'n_components': 30}
10    {'learning_decay': 0.9, 'n_components': 10}
11    {'learning_decay': 0.9, 'n_components': 15}
12    {'learning_decay': 0.9, 'n_components': 20}
13    {'learning_decay': 0.9, 'n_components': 25}
14    {'learning_decay': 0.9, 'n_components': 30}

У меня ошибка

Traceback (most recent call last):
File "finallda.py", line 134, in <module>
log_likelyhoods_5 = [round(results['mean_test_score'][gscore]) for gscore 
in len(results['params']) if results['params'][gscore] 
['learning_decay']==0.5]
KeyError: "None of [['learning_decay', 'n_components']] are in the [index]"

Мне нужно извлечь ['mean_test_score'] Состояние скважины:

gscore.parameters['learning_decay']==0.5
gscore.parameters['learning_decay']==0.7
gscore.parameters['learning_decay']==0.9

1 Ответ

1 голос
/ 12 мая 2019

Я немного запутался, поэтому, пожалуйста, приведите минимальный пример.Пожалуйста, покажите, какой пример вы использовали.Это сработало?

В Traceback я вижу только один шаг, поэтому ошибка не в библиотеке, а в вашем коде, верно?

Ошибка строки:

og_likelyhoods_5 = [round(results['mean_test_score'][gscore]) for gscore in 
results['params'] if results['params'][gscore]['learning_decay']==0.5]

Пожалуйста, разверните список со списком (вы делаете несколько шагов в одной строке, что является сложным) в цикл for, чтобы точно увидеть, как выглядит список и где отсутствует ключ.

Надеюсь, это поможет!

...