Особенности
Первое, что вам нужно сделать, это решить, какую информацию вы будете использовать в качестве доказательства, чтобы классифицировать прогноз пользователя как точный или нет. Например, вы могли бы начать с простых вещей, таких как личность пользователя, делающего прогноз, и его историческая точность при прогнозировании по тем же или аналогичным товарам. Эта информация будет предоставлена нижестоящим инструментам машинного обучения в виде функций , которые будут использоваться для классификации предсказаний пользователей.
Данные обучения, разработки и тестирования
Вы захотите разделить свои 100 тыс. Исторических примеров на три части: обучение, разработка и тестирование. Вы должны поместить большую часть данных, скажем, 80%, в ваш обучающий набор. Это будет набор данных, который вы используете для обучения вашего классификатора точности прогнозирования. Вообще говоря, чем больше данных вы используете для обучения вашего классификатора, тем более точной будет полученная модель.
Два других набора данных, разработка и тестирование, будут использоваться для оценки производительности вашего классификатора. Вы будете использовать набор разработки для оценки точности различных конфигураций вашего классификатора или вариаций в представлении функции. Он называется набором разработки, поскольку вы используете его для постоянной оценки эффективности классификации при разработке вашей модели или системы.
Позже, после того, как вы построите модель, которая достигает хорошей производительности на данных разработки, вам, вероятно, понадобится объективная оценка того, насколько хорошо ваш классификатор будет работать с новыми данными. Для этого вы будете использовать набор тестов , чтобы оценить, насколько хорошо классификатор работает с данными, отличными от того, что вы использовали для его разработки.
Классификатор / ML-пакеты
После того, как у вас есть предварительный набор функций, и вы разбили данные на обучение, разработку и тестирование, вы готовы выбрать пакет машинного обучения и классификатор. Вот несколько хороших пакетов, которые поддерживают многочисленные типы классификаторов:
Какой классификатор вы должны использовать, зависит от многих факторов, в том числе от того, какие прогнозы вы хотели бы сделать (например, двоичные, мультиклассовые), какие функции вы хотели бы использовать, а также от количества данных обучения, которые вы хотите использовать.
Например, если вы просто делаете двоичную классификацию того, является ли предикат пользователя точным или нет, вы можете попробовать support-vector-machines (SVM) . Их основная формулировка ограничена выполнением бинарных предсказаний. Но, если это все, что вам нужно, они часто являются хорошим выбором, поскольку они могут привести к очень точным моделям.
Однако время, необходимое для обучения SVM, плохо масштабируется с размером обучающих данных. Для обучения значительным объемам данных вы можете использовать что-то вроде случайные леса . Когда случайные леса и SVM обучаются на наборах данных одинакового размера, случайные леса обычно создают модель, которая либо точна, либо почти точна, как модель SVM. Тем не менее, случайные леса могут позволить вам использовать больше обучающих данных, и использование большего количества обучающих данных обычно повышает точность вашей модели .
Копаем глубже
Вот несколько указателей на другие хорошие места, чтобы начать машинное обучение