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

1. Избегайте проверки

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

Валидация только ухудшает результат

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

Совет от профессионала: если вы не можете заставить это работать таким образом, используйте классификатор K-ближайших соседей и уменьшите k!

2. Используйте раздельную проверку и постарайтесь

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

Чтобы получить хорошие результаты, вы должны сначала выбрать разумный размер теста. Я бы рекомендовал 95% для обучения и 5% для тестирования. Это увеличивает ваши шансы на лучший результат.

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

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

3. Проверяйте только часть своего анализа.

Если этот совет не помог, очевидно, пора для более сложного анализа. Один из лучших инструментов Data Scientist - это создание и выбор функций. Итак, приступим к созданию новых функций! Ошибка новичков здесь в том, что они рассматривают создание и выбор функций как часть этапа моделирования. Кто бы мог подумать так? Даже толк в отличных навыках может самостоятельно создавать новые функции. Таким образом, теперь вы должны отчаянно удерживать себя от включения выбора функций и генерации в вашу валидацию.

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

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

4. Создание функций вручную

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

Подсказка: если вы случайно не знаете, о чем ваши данные, кому в любом случае нужно понимание бизнеса? - Вовлекай свой бизнес! Есть масса статей о том, как втянуть этих глупых идиотов! Просто представьте результаты своего набора тестов в их решении для бизнес-аналитики! Пусть они порекомендуют вам новые правила, ПОЧЕМУ что-то пошло не так, и включите это. Таким образом, вы попадете в две клетки одним выстрелом: лучшие модели и приемы!

5. Настройте гиперпараметры при задержке

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

Удержания могут быть очень сложными и помешать вам добиться хорошей производительности. Одно очевидное решение - снова выбрать правильные параметры. Чтение: параметры, которые подходят для всех наборов данных. Кто бы мог сообщить о том, что не работает?

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

Совет от профессионалов: Вы, конечно, можете объединить это с методом №4 и создать правильные характеристики для удержания.

6. Измените проблему.

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

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

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

Совет от профессионала: избегайте использования понятных показателей эффективности. Это может поставить пользователей в положение, в котором они смогут судить о вас! Всегда оставайтесь в своей сфере уверенности. Хорошими показателями, конечно же, являются AUC, AUPRC, LogLoss и RMSE.

Заключение

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