Перейти к публикации
  • Сейчас на странице   Всего пользователей: 2   (0 пользователей, 2 гостя)

Rooster

Программирование, т. 7

  

536 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)

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

 

Впрочем я вероятно могу тебе сказать выбрать лучшую если ты ответишь на мой предыдущий вопрос.

 

Ты чо рофлер ? Есть различные метрики для оценки классификаторов, у каждого своя специфика.

Мой случай: дохуя классов, дизбаланс данных.

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

В гугле если и можно найти инфу о дизбалансе, то о кейсе, когда классов действительно ДОХУЯ овермало инфы.

 

 

 

Чувак, я тоже профан в этой области и сам учу, но при этом у меня такие мысли: 

 

 

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

 

accuracy - наиболее хуевая метрика для данных, в которых один класс преобладает над другими. Предположим, тебе надо определить болен человек или нет. В тестовом датасете у тебя 97% здоровых людей (класс А) и 3% больных (класс В).

Если ты константно задашь все ответы для теста как класс А, то ты получишь accuracy 0.97, но какой в этом толк, если твой классификатор не умеет определять, что человек болен, понимаешь о чем я?

accuracy - 0.97

в риаллайфе - провал


Изменено пользователем Supremus

Поделиться сообщением


Ссылка на сообщение

Лол челик ушел так и не узнал что надо юзать cross-entropy / accuracy ))))


 


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

 

Впрочем я вероятно могу тебе сказать выбрать лучшую если ты ответишь на мой предыдущий вопрос.

 

Ты чо рофлер ? Есть различные метрики для оценки классификаторов, у каждого своя специфика.
Мой случай: дохуя классов, дизбаланс данных.
Наиболее важно для меня понимать какие метрики лучше подходят для такого случая, я не собираюсь изобретать свой алгоритм оценки, для начала мне достаточно уже существующего, с настройкой параметров/весов/етц я разберусь сам.
В гугле если и можно найти инфу о дизбалансе, то о кейсе, когда классов действительно ДОХУЯ овермало инфы.

 

Ну если ты мне не доверяешь это твое дело 

 

Удачи в гугле


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение

Лол челик ушел так и не узнал что надо юзать cross-entropy / accuracy ))))

Я буду сильно благодарен, если ты объяснишь почему. Пока что у меня складывается впечатление, что ты вообще не понимаешь о чем говоришь.

Поделиться сообщением


Ссылка на сообщение

 

Лол челик ушел так и не узнал что надо юзать cross-entropy / accuracy ))))

Я буду сильно благодарен, если ты объяснишь почему. Пока что у меня складывается впечатление, что ты вообще не понимаешь о чем говоришь.

 

 

Я тебе задал вопрос

 

Не вижу ответа


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение

очевидно напрашивающицся вывод это тестировать каждый класс отдельно, не?

 

при 97-3 здоров-болен твои 100-0 дают полный accuracy как 97, но надо оценивать каждый класс отдельно

например точность = (1 - %ошибок) где %ошибок = кол-во ошикбо / кол-во представителей класса в абсолютной величине

 

по итогу

1 - (3 / 97) = 96.9% точность

1 - (3 / 3) = 0% точность

Поделиться сообщением


Ссылка на сообщение
(изменено)

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

 

очевидно напрашивающицся вывод это тестировать каждый класс отдельно, не?

при 97-3 здоров-болен твои 100-0 дают полный accuracy как 97, но надо оценивать каждый класс отдельно
например точность = (1 - %ошибок) где %ошибок = кол-во ошикбо / кол-во представителей класса в абсолютной величине

по итогу
1 - (3 / 97) = 96.9% точность
1 - (3 / 3) = 0% точность

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

Изменено пользователем Supremus

Поделиться сообщением


Ссылка на сообщение

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

 

Превосходно просто

 

Как ты будешь определять что он хорошо отработал в продакшене ?


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

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

 

Превосходно просто

 

Как ты будешь определять что он хорошо отработал в продакшене ?

 

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


Изменено пользователем Supremus

Поделиться сообщением


Ссылка на сообщение

 

 

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

 

Превосходно просто

 

Как ты будешь определять что он хорошо отработал в продакшене ?

 

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

 

 

Как ты будешь определять что он хорошо отработал в продакшене используя эти ресурсы ?


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

1. Есть люди, которую делают некую работу.
2. Эту работу нужно автоматизировать.
3. Для проверки того, работает ли решение на достаточно приемлемом уровне или нет - будут использоваться все те же люди, на все это естественно будет уходить определенное количество времени, довольно немалое. Следовательно, проверка на продакшене - дело затратное, но позволительное, если есть подозрения в том, что решение работает.

Если тебе есть что сказать - скажи, я не понимаю к чему эта полемика с вопросами далекими от темы.

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


Изменено пользователем Supremus

Поделиться сообщением


Ссылка на сообщение

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

N не имеет значения - на каждую из 5 или 25 болезней свой класс отводится

у тебя есть правильный ответ. надо бинарно оценивать ответ программы - они совпадают или нет?

если не совпадают то в класс нужного ответа заносится ошибка, всё

 

в результате ты получаешь свои 25 классов

каждому классу Х считаешь

 

рейт_Х = 1 - (кол-во_ошибок_Х / кол-во_представителей_Х)

 

и дальше просто делаешь (рейт_Х + рейт_У + рейт_Ы) / 3 = ?

на все классы или на подмножество "малопредставленых" = похуй

Поделиться сообщением


Ссылка на сообщение

скорее всего тебе к ошибкам 1 и 2 рода. и больше ко вторымм, чтобы не упускать мелкие классы


нажал сюда

 

Поделиться сообщением


Ссылка на сообщение

1. Есть люди, которую делают некую работу.

2. Эту работу нужно автоматизировать.

3. Для проверки того, работает ли решение на достаточно приемлемом уровне или нет - будут использоваться все те же люди, на все это естественно будет уходить определенное количество времени, довольно немалое.

 

Если тебе есть что сказать - скажи, я не понимаю к чему эта полемика с вопросами далекими от темы.

Вначале разговора ты написал, что ты в этом разбираешься. Есть конкретная проблема, которую я раз 25 уже описал.

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

 

Ну я в этом разбираюсь больше чем кто-то либо из твоей конторы допустим

 

Забавно что ты ожидаешь помощи ответив на 0 / 2 моих вопросов

Введи в гугле "метрик мульти класс класефекашен нид ту ворк вери вел" )))))))))))


towBCf6.pngimage.png.6f88ac9ad688355eb803ba0b32e309ca.pngimage.png.c05354238865437022b3e4a97a835dbd.pngimage.png.0e8329f2b07e208ae8ef4e3f6878d126.png

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

скорее всего тебе к ошибкам 1 и 2 рода. и больше ко вторымм, чтобы не упускать мелкие классы

это не совсем то как по мне, тут нет теста против гипотезы (если ты о статстическом тесте говоришь), чтоб разделять ошибки по этим типам

 

ему нужны только метрики - промахи по правильному типу и bias в выдаче неправильного типа

если мы посчитаем среднее по всем классам то эти метрики идентичны, но если делать выборку какого-то подмножества, они дают много инфы не только по тому как много ошибок, но и откуда+куда ответы перетекают (если это важно знать)


Изменено пользователем TheDeadSkin

Поделиться сообщением


Ссылка на сообщение

N не имеет значения - на каждую из 5 или 25 болезней свой класс отводится

 

 

 

у тебя есть правильный ответ. надо бинарно оценивать ответ программы - они совпадают или нет?

если не совпадают то в класс нужного ответа заносится ошибка, всё

 

в результате ты получаешь свои 25 классов

каждому классу Х считаешь

 

рейт_Х = 1 - (кол-во_ошибок_Х / кол-во_представителей_Х)

 

и дальше просто делаешь (рейт_Х + рейт_У + рейт_Ы) / 3 = ?

на все классы или на подмножество "малопредставленых" = похуй

 

скорее всего тебе к ошибкам 1 и 2 рода. и больше ко вторымм, чтобы не упускать мелкие классы

Похуй, в общем, спасибо, парни, за хоть какую-то помощь, пожалуй для начала просто заюзаю F-меру (среднее гармоническое между точностью и полнотой), а там видно будет.

 

Чел с ником вова стал бы охуенным политиком, слов дохуя - толку нихуя.

Поделиться сообщением


Ссылка на сообщение
(изменено)

пожалуй для начала просто заюзаю F-меру (среднее гармоническое между точностью и полнотой), а там видно будет.

это тоже не в ту степь, если я не ошибаюсь она юзается только на бинарные параметры

тебе же нужна классификация ошибок по конкретным типам объектов

 

а вову просили выпилить как дауна из верхних в почти каждом топане мастерской где он появился

я бы не удивился если его познания в этом вопросе на уровне абсолютного нуля


Изменено пользователем TheDeadSkin

Поделиться сообщением


Ссылка на сообщение

 

пожалуй для начала просто заюзаю F-меру (среднее гармоническое между точностью и полнотой), а там видно будет.

это тоже не в ту степь, если я не ошибаюсь она юзается только на бинарные параметры

тебе же нужна классификация ошибок по конкретным типам объектов

 

а вову просили выпилить как дауна из верхних в почти каждом топане мастерской где он появился

я бы не удивился если его познания в этом вопросе на уровне абсолютного нуля

 

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

В общем, енивей спасибо.

Lorenest понравилось это

Поделиться сообщением


Ссылка на сообщение

считать ошибки без классификации по типам объектов тебе нихуя не даст по твоему изначальному вопросу

мало того, может это конечно я даун, но по-моему F это именно бинарная метрика, да ещё и один из которых надо как positive выставить

и она вот вообще нихуя не работает на многоклассвые проблемы, только на N=2

 

Supremus, on 16 Sept 2017 - 17:47, said:

кейсы с большим кол-вом классов и несбалансированным датасетом.

Supremus, on 16 Sept 2017 - 18:10, said:

В большей степени меня интересует точность на нескольки "слабораспространенных" классах.

вот в таком описаном кейсе тебе F нихуя не сделает вообще

пусть у тебя N=7 классов, среди них C1...C3 хорошо представленые классы (например вместе они 80% данных), С4...С7 слабопредставленые

 

любая метрика расчитаная на бинарные проблемы (типа как F) тебе даст полную хуйню в отношении проблемы малопредставленых классов

вообще по-моему ты её даже не присобачишь к этой проблеме т.к. она расчитана на бинарную проблему - болен/здоров, дотер/нормальный человек, вова/не-вова, да ещё и в формате стат-теста где нужно проверять против чего-то с 4 выводами, т.е. проверять на болезнь, проверять на дотера, на вову и тогда выдача больного больному true positive, выдача дотера нормальному человеку это false positive и т.д.

когда классов >2 ты не заставишь её дать инфу вообще если не начинать рассматривать ошибки не просто "есть ошибка/нет ошибки" а добавлять сюда "где ошибка"

 

1) выдача C1 (настоящему) программой класса С6 это ошибка

2) выдача С1 С2 тоже ошибка

3) С6 С1 тоже

4) С6 С5 тоже

 

это 4 ошибки, где тут false positive? где тут вообще positive хоть какой-то?

ты можешь адаптировать F под эту проблему превратив в бинарную например решив что мы тестим на 2 группах классов - большие (С1 - С3) м малые (С4 - С7)

тогда можешь извращаться и тестить на выдачу большим больших, малым малых. например positive это малый класс, таким образом 2 и 4 это не ошибки, а 3 это false positive

 

тестить правильную выдачу внутри группы F уже не поможет

 

да и вообще, F это хуёвая метрика для твоего вопроса. она не универсальная даже для бинарных вопросов

вот если ты сделаешь для каждого класса Ci свой рейт ошибок и посчитаешь среднее то тогда это уже что-то и этим можно по-разному манипурировать группируя классы в любой способ

 

например корректное опознание всех больших классов, но неверное всех мелких внутри этой группы тебе даёт 80% тотал рейт, но при этом по методу выше рейты будут 1, 1, 1, 0, 0, 0, 0 со средним 42%

любое улучшение нулевых рейтов будет двигать метрику вверх, ухуддшение еденичек - вниз

идеал всё ещё 100%, полный провал 0%

 

единственная проблема что она даёт больше веса мелким классам чем должно по отношению к тотал рейту, но это решается например тем что твоя финальная оценка это среднее тотал рейта и классового рейта

по итогу это уменьшит силу колебаний общей функции оценки от изменений точности по мелким классам когда изменения тотал рейту ошибок это на 0.1%, но всё ещё учитывает их куда больше чем раньше

Lorenest и Supremus понравилось это

Поделиться сообщением


Ссылка на сообщение

в моей шараге таких умных слов не употребляли.

 

это ещё тервер или какой-то другой предмет?


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

Поделиться сообщением


Ссылка на сообщение

МЛ/АИ это и есть теорвер со статистикой, только куда более продвинутые

 

то что мы тут называем метрикой я бы сказал что чем-то похоже на heuristic function, только для него, а не для АИ

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...