Я пытаюсь предсказать диабет, где 1 = диабетик и 0 = не диабетик, и я использую случайный лес и дерево решений.Мои данные значительно несбалансированы, поэтому мои классификаторы предсказывают 0 по чувствительности и 99 по специфичности.Пробовал несколько методов, включая пересчет моих данных с помощью SMOTE.Теперь я хочу оптимизировать модель для точности, чтобы увеличить истинную положительную скорость, но когда я запускаю gridsearch, она выдает мне следующую ошибку:
UndefinedMetricWarning: Точность не определена и устанавливается равной 0,0 из-за отсутствия прогнозаsamples.
Я все равно пытался предсказать, и результаты те же, что и в тех случаях, когда я не использовал оптимизацию точности.
Мой код выглядит так:
cl = RandomForestClassifier()
params = {
'n_estimators': [100, 300, 500, 800, 1000],
'criterion': ['gini', 'entropy'],
'bootstrap': [True, False],
'max_features': ['auto', 'sqrt', 'log2'],
'max_depth' : [4,5,6,7,8],
}
scorers = {
'precision_score': make_scorer(precision_score),
'recall_score': make_scorer(recall_score),
'accuracy_score': make_scorer(accuracy_score)
}
clff = GridSearchCV(estimator=cl, scoring= scorers, param_grid=params, refit='precision_score', cv=5, verbose=0)
forestscore= clff.fit(X_train, y_train)
Может ли кто-нибудь помочь мне понять, что делать и в чем проблема?