Путаница с матрицей идеальный результат. Может ли это быть правдой? - PullRequest
0 голосов
/ 02 февраля 2020

Я изучаю ML. И я хочу проверить качество моей модели.

Вот пример кода:

log_reg = LogisticRegression(max_iter=1000, solver='liblinear', C=1)
log_reg.fit(X_train, y_train)
confusion_matrix(y_test, log_reg.predict(X_test))

И я получил:

array([[ 979,    0],
       [   0, 1052]], dtype=int64)

Так что это означает, что эта модель идеально? Может быть, я делаю некоторые ошибки. Я не думаю, что 100% TN и TF - это хорошо, потому что это слишком хорошо, чтобы быть правдой.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Если это слишком хорошо, чтобы быть правдой, это, вероятно, так. Проверьте, нет ли утечки информации в ваш тестовый набор данных. Информация о тестовом наборе может попасть в обучение по нескольким причинам. Прочитайте в Google и поймите источники. Один общий источник связан с нормализацией. Если вы вместе нормализовали / стандартизировали данные поезда и теста, вы передаете информацию о среднем и стандартном отклонении данных тренировки в данные теста. Кроме того, убедитесь, что ваш тестовый набор данных не перемешивается случайным образом, если вы используете данные временных рядов. Набор данных временных рядов имеет автокорреляцию, предыдущий момент содержит информацию о следующем моменте времени. Если вы передадите точку t-1 для обучения и t-точку для тестирования, она будет работать очень хорошо. Сказав это, есть также хорошая вероятность, что если существует гиперплоскость, которая идеально разделяет ваш набор данных, вы можете получить такие результаты. Большинство наборов игрушечных данных могут быть идеально разделены с использованием сложных методов.

0 голосов
/ 03 февраля 2020
  1. Не волнуйтесь, все сталкивались с этой проблемой. Подобные результаты заставляют вас встать и поделиться ими со всеми. К сожалению, почти каждый раз весьма вероятно, что что-то не так.

  2. Я думаю, что произошла «утечка информации», что означает, что входные данные содержат некоторые функции, которые используются / используются вместо всех функций. В этом случае модели не обобщают. Тем не менее, я думаю, что довольно легко определить, когда произошла утечка информации.

Например, один из способов проверить, если вы подозреваете, что произошла «утечка информации», - это посмотреть график важности функций. Если только одна или две функции имеют очень большое значение по сравнению с другими функциями, то весьма вероятно, что что-то не так с вашими входными данными или подходом моделирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...