Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5549

Рейтинг: 958

Нарушения: 10

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5549

Рейтинг: 958

Нарушения: 10

Пишу курсач для маги, в нём улучшаю алгоритм из диплома с бакалавриата. 

Ну короче в чём тема: я немного по объёму но сильно по смыслу поменял алгоритм классификации. 

Ранее весь класс был преобразован в один вектором, теперь он разбит на много блоков и каждый из них в свой вектор. 

Чтобы классифицировать методом к ближайших соседей. 

Ну и способ разбиения тестовых данных поменялся. 

 

Та вот. В дипломе при обучении на данных размером 60000 и при тестах на данных размером по 1000 было 70% точности

А сейчас при обучении на 60 данных по 1000 (в сумме тоже 60000) и тестах на данных размером 1000 стало 91% точности

 

Причём в дипломе классификация по 6 классам, а сейчас по 10. А по 6 классам классифицировать офк легче чем по 10. 

 

Ну тут три варианта: 

либо я что-то не так делал раньше.

либо я что-то не так делаю сейчас.

либо алгоритм стал прям ваще лучше. 

 

И собственно я знаю что вы не скажете, откуда такой рост точности, и я не скажу, ибо не понимаю математику и машинное обучение. 

 

Вопрос: чё мне в курсаче писать? Я ведь должен одновременно написать, что мне удалось повысить точность, и при этом не сильно обосраться в попытках объяснить это. Просто тихой сапой умолчать про все тайнодвижения и сказать что "ну я прокачал алгоритм и точность выросла"? Или добавить "Алгоритм разбивки данных тоже поменялся, поэтому нельзя напрямую сравнивать результаты, но в целом стало точнее"? 

Данил Низамов

Пользователь

Регистрация: 17.08.2021

Сообщения: 468

Рейтинг: 320

Данил Низамов

Регистрация: 17.08.2021

Сообщения: 468

Рейтинг: 320

Если accuracy улучшилась, то это хорошо. Плохо это может быть только в этих случаях

1) Модель переобучилась на твоей выборке и у тебя недостаточно репрезентативная и большая тестовая выборка, чтобы это идентифицировать

2) Accuracy не лучшая метрика во многих случаях, особенно если есть преобладающие классы. Другие метрики пробовал?

3) Ты поделил выборку на тестовую и обучающую, не выделив отдельно валидационную выборку. Из-за этого модель переобучилась

4) Ты используешь в обучении фичи с очень высокой корреляцией с target variable. Это равносильно использованию самой target variable для обучения, из-за чего модель переобучается

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

Если по этим пунктам все ок, то можешь смело писать, что прокачал модель и результат стал лучше PepeLove.png

Zemlenika

Пользователь

Регистрация: 23.06.2016

Сообщения: 23288

Рейтинг: 11677

Zemlenika

Регистрация: 23.06.2016

Сообщения: 23288

Рейтинг: 11677

Kujivunia сказал(а):

Пишу курсач для маги, в нём улучшаю алгоритм из диплома с бакалавриата. 

Ну короче в чём тема: я немного по объёму но сильно по смыслу поменял алгоритм классификации. 

Ранее весь класс был преобразован в один вектором, теперь он разбит на много блоков и каждый из них в свой вектор. 

Чтобы классифицировать методом к ближайших соседей. 

Ну и способ разбиения тестовых данных поменялся. 

 

Та вот. В дипломе при обучении на данных размером 60000 и при тестах на данных размером по 1000 было 70% точности

А сейчас при обучении на 60 данных по 1000 (в сумме тоже 60000) и тестах на данных размером 1000 стало 91% точности

 

Причём в дипломе классификация по 6 классам, а сейчас по 10. А по 6 классам классифицировать офк легче чем по 10. 

 

Ну тут три варианта: 

либо я что-то не так делал раньше.

либо я что-то не так делаю сейчас.

либо алгоритм стал прям ваще лучше. 

 

И собственно я знаю что вы не скажете, откуда такой рост точности, и я не скажу, ибо не понимаю математику и машинное обучение. 

 

Вопрос: чё мне в курсаче писать? Я ведь должен одновременно написать, что мне удалось повысить точность, и при этом не сильно обосраться в попытках объяснить это. Просто тихой сапой умолчать про все тайнодвижения и сказать что "ну я прокачал алгоритм и точность выросла"? Или добавить "Алгоритм разбивки данных тоже поменялся, поэтому нельзя напрямую сравнивать результаты, но в целом стало точнее"? 

Нажмите, чтобы раскрыть...

Что значит размер 60000? Если речь о форме исходных данных, то это нормально, что при разделении их на мелкие части нейронка обучается лучше, это же база. 

 

HappySanic

Пользователь

Регистрация: 01.08.2016

Сообщения: 552

Рейтинг: 519

HappySanic

Регистрация: 01.08.2016

Сообщения: 552

Рейтинг: 519

img

Для классификации точность это хорошая метрика, скорее всего просто алгоритм улучшился, если он сторонний. Попробуй ещё добавить слоев dropout, оно чутку лучше справляется с оверфиттингом