Пользовательская функция оценки GridsearchCV - PullRequest
0 голосов
/ 05 января 2019

Я хотел бы реализовать пользовательскую функцию оценки для GridsearchCV. Я попытался взглянуть на этот пример https://stats.stackexchange.com/questions/110599/how-to-get-both-mse-and-r2-from-a-sklearn-gridsearchcv,, но мой код заканчивается бесконечным циклом, он продолжает работать без каких-либо результатов ... Вот код, который я использую:

from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.metrics.scorer import make_scorer

def my_custom_loss_func(y_true, y_pred):
    ps = precision_score(y_true, y_pred)    
    perc_bet =  np.count_nonzero(y_pred)/len(y_pred)

    result = (ps + perc_bet) / (1/ps)

    return result

scorer = make_scorer(my_custom_loss_func, greater_is_better=True)

model = SGDClassifier(random_state=0)
grid_values = {
    'tol': [0.0001, 0.005]
}

grid = GridSearchCV(model, param_grid = grid_values, scoring=scorer, n_jobs=-1, return_train_score=False)
grid.fit(X_train_scaled, y_train)

print('Grid best parameter: ', grid.best_params_)
print('Grid best score: ', grid.best_score_)

Я запускаю этот код в блокноте Jupyter.

Заранее спасибо!

...