Размер и качество набора данных

«Мусор на входе, мусор на выходе»

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

Размер набора данных

Грубо говоря, ваша модель должна обучаться как минимум на порядок большему количеству примеров, чем обучаемых параметров. Простые модели на больших наборах данных обычно превосходят сложные модели на небольших наборах данных. Google добился больших успехов в обучении простых моделей линейной регрессии на больших наборах данных.

Что считается «много» данных? Это зависит от проекта. Рассмотрим относительный размер этих наборов данных:

Набор данных Размер (количество примеров)
Набор данных цветка ириса 150 (всего комплекта)
MovieLens (набор данных 20M) 20 000 263 (всего набора)
Умный ответ Google Gmail 238 000 000 (обучающий набор)
Google Книги 468 000 000 000 (всего набора)
Гугл переводчик триллионы

Как видите, наборы данных бывают разных размеров.

Качество набора данных

Бесполезно иметь много данных, если это плохие данные; качество тоже имеет значение. Но что считать «качеством»? Это нечеткий термин. Подумайте о том, чтобы применить эмпирический подход и выбрать вариант, дающий наилучший результат. С таким мышлением качественный набор данных позволит вам добиться успеха в решении бизнес-проблемы, которая вас волнует. Другими словами, данные хороши , если они выполняют поставленную перед ними задачу.

Однако при сборе данных полезно иметь более конкретное определение качества. Некоторые аспекты качества, как правило, соответствуют более эффективным моделям:

  • надежность
  • представление функции
  • минимизация перекоса

Надежность

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

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

Что делает данные ненадежными? Вспомните из Ускоренного курса по машинному обучению , что многие примеры в наборах данных ненадежны из-за одного или нескольких следующих факторов:

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

Google Translate сосредоточился на надежности, чтобы выбрать «лучшее подмножество» своих данных; то есть некоторые данные имели метки более высокого качества, чем другие части.

Представление функции

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

Раздел « Преобразование ваших данных » этого курса будет посвящен представлению функций.

Обучение против предсказания

Допустим, вы получаете отличные результаты в автономном режиме. Затем в вашем живом эксперименте эти результаты не подтверждаются. Что может происходить?

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