Автоматическая очистка данных

10

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

Один из способов решения этой проблемы - вручную просмотреть данные и проверить, но есть ли другие способы? (Бьюсь об заклад, есть!)

Какие из них лучше и почему?

andreister
источник
Google Refine может стоить посмотреть.
Дмитрий Владимирович Мастеров

Ответы:

6

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

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

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

jonsca
источник
3
Печать данных - это ручная проверка.
andreister
@andreister Я считаю, что проверка по пунктам в электронной таблице - это проверка вручную, но хорошо, я вижу, к чему вы клоните.
Jonsca
5

Вы не можете действительно удалить знающего человека из цикла и ожидать разумных результатов. Это не означает, что человек должен смотреть на каждый отдельный элемент в отдельности, но в конечном итоге требуются некоторые реальные знания, чтобы узнать, являются ли резюме / графики данных разумными. (Например: может ли переменная A быть отрицательной, может ли переменная B быть больше, чем переменная A, или есть 4 или 5 вариантов выбора для категориальной переменной C?)

Как только вы ознакомитесь с данными, вы, вероятно, сможете выработать ряд правил, которые вы могли бы использовать для автоматического тестирования данных. Проблема в том, что могут возникнуть другие ошибки, о которых вы не задумывались. (Например, ошибка программирования в процессе сбора данных, которая дублирует переменную A в переменную C.)

Wayne
источник
Отличный ответ. Я бы только добавил, чтобы убедиться, что синтаксис, используемый для очистки переменных, сохранен в документации, с комментариями, если не с описательными отрывками о том, почему все изменилось. :)
Мишель
1

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

Если у вас есть много функций, уменьшение размерности является обязательным. PCA достаточно эффективен для этого.

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

vonPetrushev
источник