Pull to refresh

Comments 16

Precision-recall-f-score в их стандартном определении — это все хорошо и мило, когда у вас бинарная классификация. Но как посчитать их же, когда у вас мульти-класс? В частности, в наивном определении, внезапно, precision оказывается строго равным recall.

Вопросы с мультиклассом — это отдельная интересная область. Ее можно решать и как One vs. All, и как взвешенную сумму ошибочных предсказаний, и как (если) эти классы можно упорядочить, и как регрессию и прочие подходы.

На практике наиболее интересным и жизнеспособным для бизнеса является выделение множеств классов, которые хорошо или плохо отличимы друг от друга. Например, если мы говорим о поведении пользователя на сайте, то можно отличать человека который больше никогда не придет на сайт, от человека который зайдет завтра, но вводя третий класс: люди которые зайдут через 3 дня, но не зайдут завтра, мы теряем точность, т.к. этот третий класс перемешивается с обоими по сходным признакам.
Ее можно решать и как One vs. All, и как взвешенную сумму ошибочных предсказаний

Простите, а почему у вас в одном ряду стоит методология решения (OVR) и метрика оценки (кстати, что вы складываете в "сумме ошибочных предсказаний"?)?


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

И как это на метрики влияет? Предположим, в бизнес-задаче есть четыре класса, из них два друг от друга плохо отличимы — что дальше?

Простите, а почему у вас в одном ряду стоит методология решения (OVR) и метрика оценки (кстати, что вы складываете в «сумме ошибочных предсказаний»?)?


Методология решения определит и метрики, которые можно демонстрировать. Сумма ошибочных предсказаний – это сумма sampl'ов в которых была допущена ошибка. Не очень понятен вопрос.

И как это на метрики влияет?


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

Эм, это как? Вот у нас есть мультиклассификатор, черный такой ящик. Мы не знаем, что в нем — то ли OVR, то ли OVO, то ли дерево решений, то ли сетка. На входе — данные, на выходе — классификация. Так как же его внутренность влияет на метрики? (ну кроме возможности-невозможности смотреть на вероятности и их кривые)


Сумма ошибочных предсказаний – это сумма sampl'ов в которых была допущена ошибка. Не очень понятен вопрос.

Да так, люди разное считают за ошибки.


Давайте теперь сведем задачу бинарной классификации к двуклассовой задаче (правда, смешно звучит)? Тогда ваша взвешенная сумма ошибок — это (FN/(TP+FN))+(FP/(FP+TN)), оно же false negative rate + false positive rate, правильно? Или я где-то ошибся?


Это сводит нашу задачу мультиклассификации к задаче бинарной классификации

Повторюсь: в бизнес-задаче — четыре класса. Все их надо друг от друга отличать. Как вы сведете эту задачу к бинарной классификации (ну, кроме OVR/OVO, но про это мы уже говорили)?

Пример: если из 100 застрахованных за возмещением обращаются 7 человек, то модель, предсказывающая отсутствие страхового случая, будет иметь точность 93%, не имея никакой предсказательной силы.


Это как? Как статистические 93% (7 обращений на 100 случаев) превратились в точность предсказывающей модели? Что это за модель?

И про отсутствие предсказательной силы, хорошо бы раскрыть. Если метеорит упадет с вероятностью 0,01%, то с точность в 99,9% он не упадет прямо сейчас. Или у вас какое-то другое определение предсказательности?
Точность (Accuracy) определяется как отношение верных ответов модели к общему числу ответов модели.

Есть модель, которая просто для всех людей предсказывает, что они не обратятся за страховым случаем (константая модель). Эта модель для 100 человек предсказала, что они не обратятся. Она была верной в 93 случаях – 93 человека и правда не обратились, таким образом, точность составила 93/100 = 93%.

В примере с метеоритом в постановке задачи не раскрываете период, за который считается вероятность, поэтому непонятно, откуда появляется прямо сейчас.
Вот у нас есть мультиклассификатор, черный такой ящик. Мы не знаем, что в нем — то ли OVR, то ли OVO, то ли дерево решений, то ли сетка. На входе — данные, на выходе — классификация. Так как же его внутренность влияет на метрики? (ну кроме возможности-невозможности смотреть на вероятности и их кривые


Вопрос в том, что вы подаете на обучение. Пример: есть три класса 1, 2 и 3, при этом класс 2 — это белый шум, куда по ошибке входят элементы и из 1го и 3го класса. В этом случае, строя классификатор 1 vs 3 (обучая только на элементах 1го и 3его класса), вы получаете условно «хорошие» значения метрик, а добавляя элементы класс 2 в классификатор, ухудшаете все метрики и классификатор выглядит плохим.

Тогда ваша взвешенная сумма ошибок — это (FN/(TP+FN))+(FP/(FP+TN)),


Не совсем — я имел ввиду, что просто количество ошибок это:

(FN+FP)/(TP+FN+FP+TN),
а взвешенное (w1*FN+w2*FP)/(TP+FN+FP+TN)

(ну, кроме OVR/OVO, но про это мы уже говорили)?


Кроме OVR и OVO, мы, например, можем обобщить и рассматривать один подмножества классов против других подмножеств классов в структуре. Например, сначала определить 1+2 vs 3+4 и или 1 vs 3+4 и 2 vs 3+4, — тут вопрос, какие классификаторы будут иметь большую точность и какими имеет смысл пользоваться. Если рассматривать крайнюю дилемму, то OVO – мало шума, но и мало данных для обучения (не используются другие сэмплы), OVR – много данных, но и может быть много шума, поэтому имеет смысл часто поподбирать именно какие подмножества классов против каких хорошо различаются.
Вопрос в том, что вы подаете на обучение.

Так и это не зависит от того, что там внутри.


Пример: есть три класса 1, 2 и 3, при этом класс 2 — это белый шум, куда по ошибке входят элементы и из 1го и 3го класса.

Эээ, а зачем нам такой второй класс? Давайте говорить о нормальных примерах, где все классы имеют смысл.


Не совсем — я имел ввиду, что просто количество ошибок это:

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


Кроме OVR и OVO, мы, например, можем обобщить и рассматривать один подмножества классов против других подмножеств классов в структуре.

Получили решающее дерево. И? Как это на метрики-то повлияло?

Эээ, а зачем нам такой второй класс? Давайте говорить о нормальных примерах, где все классы имеют смысл.

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

Получили решающее дерево. И? Как это на метрики-то повлияло?


Это влияет на постановку задачи: что от чего различается и это, естественно, определяет метрики. Непонятно, какого влияния вы ожидаете.
И добавление более плохого класса ухудшает качество описанным способом.

"Качество" — это не метрика. Какую метрику ухудшает "добавление плохого класса"?


Это влияет на постановку задачи: что от чего различается и это, естественно, определяет метрики.

Еще раз говорю: задача поставлена в виде "у нас есть четыре класса, нам надо различать в них". Мы же про метрики, понятные для бизнеса, да?

До точности, еще дойдем.

Вы написали пример:
Пример: если из 100 застрахованных за возмещением обращаются 7 человек, то модель, предсказывающая отсутствие страхового случая, будет иметь точность 93%, не имея никакой предсказательной силы.


Про точность тут ничего не сказано (вернее она 100%, т.к. говорим о свершившемся факте). Значит либо посылки не верные, либо выводы.

Есть модель, которая просто для всех людей предсказывает, что они не обратятся за страховым случаем (константая модель). Эта модель для 100 человек предсказала, что они не обратятся. Она была верной в 93 случаях – 93 человека и правда не обратились, таким образом, точность составила 93/100 = 93%.

Вы повторили мои слова, в вашем примере ничего этого нет.

Николай, для человека, который использует статистические методы, вы крайне небрежны в формулировах
Имеется в виду модель, которая всегда возвращает отсутствие страхового случая. Автор немного плохо сформулировал.
Про метеорит (да и про страховку) правильнее говорить не упадет (не обратиться за возмещением) в течении некоторого срока (да-да, прям как у Яндекса с дождями в погоде)
Автор не «немного плохо сформулировал», а никак не сформулировал. Не понятно на кого рассчитана статья. Ввел r2, дал определение из учебника, но никаких выводов и следствий не привел. Просто:
То есть коэффициент детерминации позволяет оценить улучшение предсказания моделью.

И как позвольте спросить? Или это статья для людей разбирающихся, тогда зачем формулу давал? Кстати, классическая формула проще.

А зачем, позвольте спросить, нужна модель, которая «всегда возвращает отсутствие». Зачем нам такая модель, которая всегда дает один ответ?
А зачем, позвольте спросить, нужна модель, которая «всегда возвращает отсутствие». Зачем нам такая модель, которая всегда дает один ответ?

Для сравнения метрик. Это, на самом деле, удобно, в начале разработки какого-нибудь алгоритма иметь рядом результаты "наивных" предикторов (константного и рандомного). Если "наш" алгоритм показывает (релевантные) метрики хуже, чем наивные алгоритмы — он бесполезен.

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

А также учитывать множество внешних факторов, которые не будут учтены. Например, спящий перед входом бездомный.

Но если при обучении модели использовать метрику, которая зависит от бизнеса, качество моделей сразу вырастает.

Какую метрику? Метрика зависящая от бизнеса… т.е. бизнес это переменная, а метрика функция от нее зависящая? Как интересно
Sign up to leave a comment.