Мне нужно выполнить поиск в сетке по параметрам, перечисленным ниже, для классификатора логистической регрессии, используя отзыв для оценки и перекрестной проверки три раза.
Данные находятся в CSV-файле (11,1 МБ), ссылка для скачивания: https://drive.google.com/file/d/1cQFp7HteaaL37CefsbMNuHqPzkINCVzs/view?usp=sharing
У меня есть grid_values = {'gamma':[0.01, 0.1, 1, 10, 100]}
Мне нужно применить штраф L1 e L2 вЛогистическая регрессия
Я не смог проверить, будут ли баллы выполняться, потому что у меня следующая ошибка: Неверный параметр гамма для оценщика LogisticRegression. Проверьте список доступных параметров с помощью estimator.get_params().keys()
.
Это мой код:
from sklearn.model_selection import train_test_split
df = pd.read_csv('fraud_data.csv')
X = df.iloc[:,:-1]
y = df.iloc[:,-1]
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
def LogisticR_penalty():
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
grid_values = {'gamma':[0.01, 0.1, 1, 10, 100]}
#train de model with many parameters for "C" and penalty='l1'
lr_l1 = LogisticRegression(penalty='l1')
grid_lr_l1 = GridSearchCV(lr_l1, param_grid = grid_values, cv=3, scoring = 'recall')
grid_lr_l1.fit(X_train, y_train)
y_decision_fn_scores_recall = grid_lr_l1.decision_function(X_test)
lr_l2 = LogisticRegression(penalty='l2')
grid_lr_l2 = GridSearchCV(lr_l2, param_grid = grid_values, cv=3 , scoring = 'recall')
grid_lr_l2.fit(X_train, y_train)
y_decision_fn_scores_recall = grid_lr_l2.decision_function(X_test)
#The precision, recall, and accuracy scores for every combination
#of the parameters in param_grid are stored in cv_results_
results = pd.DataFrame()
results['l1_results'] = pd.DataFrame(grid_lr_l1.cv_results_)
results['l1_results'] = results['l2_results'].sort_values(by='mean_test_precision_score', ascending=False)
results['l2_results'] = pd.DataFrame(grid_lr_l2.cv_results_)
results['l2_results'] = results['l2_results'].sort_values(by='mean_test_precision_score', ascending=False)
return results
LogisticR_penalty()
Я ожидал от .cv_results_ средних значений теста для каждой комбинации параметров, которые я должен быть доступенздесь: mean_test_precision_score, но не уверен
Вывод: ValueError: Неверный параметр гамма для оценщика LogisticRegression. Проверьте список доступных параметров с помощью estimator.get_params().keys()
.