Каковы методы и практики измерения качества данных?

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

Например, если у меня есть ящик, содержащий 12 виджетов, и я знаю, что каждый виджет весит 1 фунт, должна быть некоторая "проверка" качества данных, чтобы убедиться, что кейс весит, возможно, 13 фунтов.

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

За исключением изображений, мои данные - это 99% текста (включая высоту, ширину, цвет...).

Я изучал ИИ в школе, но мало что сделал за пределами этого.

Являются ли стандартные методы искусственного интеллекта подходом? Если да, то как мне сопоставить проблему с алгоритмом? Некоторые языки легче в этом, чем другие? У них есть лучшие библиотеки?

Благодарю.

3 ответа

ИИ - это один путь, естественный интеллект - это другой.

Ваша задача идеально подходит для Amazon's Mechanical Turk. Разделите ваше пространство данных на очень маленькие проверяемые атомы и назначьте их в виде HIT на Mechanical Turk. Имейте некоторое совпадение, чтобы дать вам ощущение последовательности ответов HIT.

Был магазин с множеством чертежей САПР, которые нужно было сгруппировать по сходству. Они разбили это и установили это на Механическом Турке к очень удовлетворительным результатам. Я мог часами гуглить и больше не найти эту ссылку.

Смотрите здесь для соответствующего сообщения на форуме.

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

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

Некоторыми примерами классификаторов являются байесовские сети, нейронные сети, списки решений и деревья решений. Байесовские сети часто используются для классификации спама. Письма классифицируются как "спам" или "не спам" с вероятностью.

На ваш вопрос вы хотели бы классифицировать ваши объекты как "высокое качество" или "не высокое качество".

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

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

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

Это сложный ответ. Например, что определяет лампа? Я мог бы погуглить изображения некоторых сумасшедших ламп. Или даже посмотрите определение лампы ( http://dictionary.reference.com/dic?q=lamp). Нет никаких физических требований к тому, как должна выглядеть лампа. В этом суть проблемы ИИ.

Что касается данных, вы можете настроить модульное тестирование в проекте, чтобы убедиться, что 12 widget() весит менее 13 фунтов в widetBox(). Независимо от того, вам нужно иметь данные под рукой, чтобы иметь возможность проверить подобные вещи.

Я надеюсь, что смог ответить на ваш вопрос несколько. Это немного смело, и мои ответы широки, но, надеюсь, это, по крайней мере, направит вас в правильном направлении.

Другие вопросы по тегам