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

Введение

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

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

машинное обучение сложно.

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

Часть №1: Что такое предвзятость?

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

Так что же такое предвзятость в контексте машинного обучения? Все модели машинного обучения имеют предвзятость, и предвзятость не обязательно должна быть низкой или высокой. Предвзятость — это всего лишь склонность модели делать выводы на основе признаков. Что важно в предвзятости, так это то, что она может увеличиваться по мере того, как модель перегружается информацией. По сути, это происходит всякий раз, когда комбинация решателя и веса достигает своего пика. Это означает, что модель прогнозирует с максимальной эффективностью для данных, которые мы ей предоставили. Вторая часть очень важна, и мы поймем, почему это так, сразу после того, как поговорим об «идеальной посадке».

Часть №2: «Идеальная фигура»

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

«Баланс предвзятости»

Баланс смещения — это игра, в которую нужно играть со своей моделью, чтобы гарантировать, что модель предсказывает с эффективностью. Есть два обстоятельства, которые могут полностью испортить работу модели, связанной с предвзятостью:

  • Переоснащение. В оценках параметров практически нет смещения.
  • Underfitting — в оценках параметров слишком много систематической ошибки.

Переоснащение

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

Недооснащение

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

Часть №3: Смягчите вашу модель

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



Переоснащение

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



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

Недооснащение

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

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

Вывод: все данные разные

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

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



Мой метод прогнозного моделирования и «шагового процесса обучения
Обзор различных шагов, которые я предпринимаю, чтобы превратить данные в модели машинного обученияtowardsdatascience.com»



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

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