Объяснение того, как оценить модель классификации в науке о данных

Предположим, мы хотим классифицировать данные по ряду возможных результатов. Мы могли бы использовать двоичный классификатор, чтобы сгруппировать элементы в два соответствующих класса.

В качестве примера рассмотрим, что мы хотим разделить электронные письма на два класса: связанные с работой и не связанные с работой.

Мы могли бы создать два набора электронных писем, а затем обучить на них бинарную модель. После обучения модели мы можем протестировать модель на реальных электронных письмах, чтобы оценить, насколько хорошо она классифицирует электронные письма. Но как тогда узнать, насколько хороша наша модель? В этой статье мы расскажем о соответствующем механизме оценки для оценки точности классификационной модели машинного обучения.

Статья Цель

Эта статья призвана проиллюстрировать, как оценить модель классификации.

В частности, в нем объясняется, что такое матрица неточностей, а также анализируется чувствительность и специфичность.

Термины чувствительность и специфичность широко используются в статистических тестах, поэтому это понятие необходимо знать всем специалистам по данным.

Более того, точность большинства, если не всех моделей машинного обучения классификации, измеряется их специфичностью и чувствительностью. Поэтому это одна из самых важных тем, с которой должны быть знакомы все специалисты по данным, поскольку она объясняет концепции, лежащие в основе двух наиболее распространенных показателей.

Я постараюсь объяснить концепции, используя несколько вариантов использования.

Специфичность и чувствительность широко используются в проектах по науке о данных, где мы пытаемся разделить элементы данных на разные группы.

1. Давайте разберемся, в чем заключаются проблемы классификации.

Давайте рассмотрим следующие три случая использования, в которых мы попытаемся разделить входные данные на две группы:

  1. Команда A: это техническая группа, которая пытается создать модель машинного обучения для классификации входящих писем, чтобы определить, является ли электронное письмо спамом. Команда хочет обучить модель, чтобы она могла правильно классифицировать электронные письма.
  2. Команда B: команда B - это медицинская бригада, которая готовит лекарство от гриппа. Они хотят оценить, может ли лекарство вылечить болезнь, используя машинную модель.
  3. И наконец, команда C: эта команда состоит из специалистов по финансовым моделям, которые предсказывают, не выполнит ли клиент свой ссуду или нет. Они хотят обучить модель, которая сможет правильно классифицировать клиентов.

Все три варианта использования вращаются вокруг концепции классификации входных данных на две группы.

  1. Команды начинают со сбора исходных данных.
  2. Затем они правильно маркируют элементы данных для обучения модели.
  3. Затем они собирают по 100 предметов для тестирования и маркируют их соответственно.
  4. Затем они получают модель для получения результатов на тестовом наборе. Результаты, полученные с помощью модели, вместе с фактическими метками теперь можно использовать для оценки модели.

2. Давайте проанализируем результаты, чтобы оценить модель.

Во-первых, необходимо подготовить матрицу путаницы, как показано ниже.

Это известно как матрица путаницы. Давайте разберемся, что такое истинно положительный, истинно отрицательный, ложноположительный и ложно отрицательный термины.

Команда 1: Фильтрация электронной почты:

Когда электронное письмо является спамом, и модель предсказывает, что это спам, тогда это действительно положительный результат (TP).

Если спам-электронное письмо ошибочно определено как не спам-электронное письмо, оно считается ложноотрицательным (FN).

Команда 2: Медицинское обследование:

Модель предсказывает, что пациента можно вылечить с помощью лекарства, и лекарство действительно вылечило пациента, тогда оно считается истинно положительным (TP).

Если модель предсказывает, что пациента можно вылечить с помощью лекарства, но лекарство не вылечило пациента, то это ложноположительный результат (FP).

Команда 3: Финансовое моделирование:

Когда модель точно предсказывает, что клиент не выплатит ссуду для клиента, который фактически не выплачивал ссуду, тогда это истинно положительный результат (TP). Если модель предсказывает, что клиент не выполнит дефолт, и клиент на самом деле не выполнил дефолт по ссуде, то это истинно отрицательный (TN).

После того, как команда соберет фактические и прогнозируемые результаты, они могут создать матрицу путаницы.

Последний шаг - вычислить показатели чувствительности и специфичности.

3. Формулы

После того, как мы вычислили истинно положительные, истинно отрицательные, ложноположительные и ложноотрицательные метрики, мы можем вычислить чувствительность и специфичность наших моделей.

Чувствительность:

Чувствительность известна как истинно положительный показатель. Он также известен как Отзыв. По сути, он информирует нас о доле реальных положительных случаев, которые были предсказаны нашей моделью как положительные.

Поэтому, когда значение чувствительности высокое, это означает, что наша модель хорошо предсказывает истинные положительные результаты. Это отношение истинных положительных результатов ко всем положительным результатам.

Специфика:

Специфичность известна как истинно отрицательная ставка. Он информирует нас о доле фактических отрицательных случаев, которые были предсказаны нашей моделью как отрицательные. Это соотношение истинных негативов ко всем негативам.

Поэтому, когда значение специфичности велико, это означает, что наша модель хороша в предсказании истинного негатива.

4. Что лучше, чувствительность или специфичность?

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

Причины, по которым я представил три приведенных выше варианта использования, должны помочь нам разобраться в этом вопросе.

Короткий ответ: это зависит от проблемы, которую мы пытаемся решить.

Мы можем построить кривую ROC, и мы должны стремиться к тому, чтобы площадь под кривой была 1. Чем больше площадь, тем лучше модель. Площадь под кривой называется AUC.

Пример использования 1: фильтрация электронной почты

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

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

В этом случае лучше иметь более высокую специфичность, чем чувствительность, потому что мы не хотим потерять ценное электронное письмо, не связанное со спамом, в качестве спама.

Поэтому для первого варианта использования важно иметь модель с высокой специфичностью.

Пример использования 2: тест на лекарство

Рассмотрим пример с лекарством. Если чувствительность высока, это означает, что модель хорошо предсказывает, что лекарство может правильно вылечить болезнь, когда оно действительно может правильно вылечить болезнь. С другой стороны, если чувствительность низкая, то модель покажет, что лекарство не может вылечить пациентов, даже если лекарство может вылечить болезнь.

Кроме того, если специфичность высока, это означает, что истинно отрицательный показатель высок, и в результате модель хороша для определения того, когда лекарство не может правильно вылечить болезнь. С другой стороны, если специфичность низкая, тогда модель может ошибочно классифицировать, что пациент может быть вылечен, и в результате мы закончим тем, что неправильно дадим неправильное лекарство.

Следовательно, для второго варианта использования важно иметь модель с высокой специфичностью.

Вариант использования 3: прогнозирование по умолчанию

Для нашего третьего примера, когда составители финансовых моделей оценивают дефолт, будет катастрофой неправильно классифицировать клиента как человека, который не может выполнить дефолт, когда он / она, вероятно, совершит дефолт.

В этом случае безопаснее, чтобы модель имела более высокую чувствительность.

Код Python

Мы можем использовать вспомогательную векторную машину, классификаторы логистической регрессии и деревьев решений среди многих моделей для классификации данных.

Этот фрагмент кода иллюстрирует, как мы можем получить матрицу путаницы и вывести результат:

from sklearn.tree import DecisionTreeClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.svm import SVC
svc = SVC(kernel='linear', C=5).fit(X_train, y_train)
predicted = svc.predict(X_test)
cm = confusion_matrix(y_test, predicted)
dtc = DecisionTreeClassifier(max_depth=10).fit(X_train, y_train)
predicted = dt.predict(X_test)
cm = confusion_matrix(y_test, predicted)
lrc = LogisticRegression().fit(X_train, y_train)
predicted = lr.predict(X_test)
cm = confusion_matrix(y_test, predicted)

Резюме

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

Специфичность и чувствительность используются в проектах по науке о данных, где мы пытаемся сгруппировать элементы данных в два кластера.

Короче говоря, чувствительность - это истинно положительный показатель, а специфичность - это истинно отрицательный показатель.