Работа с неточным (неправильным) набором данных

Это описание моей проблемы:

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

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

Теперь у меня есть следующие вопросы:

  • Как мы должны поступать с ненадежными данными в науке о данных?
  • Есть ли способ выяснить эти искажения, а затем более точно сообщить о 10% самых богатых людей, используя алгоритмы машинного обучения? -Как мы можем оценить наши ошибки в этом исследовании? Поскольку у нас есть немаркированный набор данных, следует ли мне искать методы маркировки? Или я должен использовать неконтролируемые методы? Или мне следует работать с полууправляемыми методами обучения?
  • Есть ли какая-нибудь идея или приложение в машинном обучении, которое пытается улучшить качество собираемых данных?

Пожалуйста, представьте мне любые идеи или ссылки, которые могут помочь мне в этом вопросе.

Заранее спасибо.


person Ardeshir    schedule 23.06.2015    source источник
comment
Не могли бы вы добавить больше конкретики к этой проблеме? Можете ли вы просто опубликовать крошечный образец ваших данных. Еще лучше, также разместите большой образец ваших данных в Dropbox. Вы получаете отпор со стороны сообществ SO и DS, потому что вы говорите в общих чертах. Поэтому ответы, которые вы получите, будут общими. Никому не помогают: В: Могу ли я улучшить данные с помощью вменения? О: Да, вы можете использовать стандартные методы вменения.   -  person AN6U5    schedule 07.07.2015
comment
Я предоставлю вам большой образец в течение нескольких дней. Надеюсь, это поможет... Спасибо   -  person Ardeshir    schedule 09.07.2015


Ответы (1)


В: Как мы должны поступать с ненадежными данными в науке о данных?

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

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

О: Алгоритмы машинного обучения — это не волшебные палочки, они ничего не могут понять, если вы не скажете им, что ищете. Можете ли вы описать, что означает «ненадежный»? Если да, вы можете, как я уже упоминал, использовать разработку функций или написать код, который исправит данные. В противном случае никакой ML-алгоритм вам не поможет, без описания того, чего именно вы хотите добиться

В: Есть ли в машинном обучении какая-либо идея или приложение, которое пытается улучшить качество собираемых данных?

О: Я так не думаю только потому, что сам вопрос слишком открытый. Что означает «качество данных»?

Как правило, вот несколько вещей, которые вы должны учитывать:

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

2) Вам не нужно использовать все функции исходных данных. Некоторые функции исходного набора данных не имеют смысла, и вам не нужно их использовать. Попробуйте запустить машину повышения градиента или классификатор случайного леса из scikit-learn в вашем наборе данных, чтобы выполнить классификацию (или регрессию, если вы делаете регрессию). Эти алгоритмы также оценивают важность каждой функции исходного набора данных. Часть ваших признаков будет иметь очень малое значение для классификации, поэтому вы можете полностью их исключить или попытаться каким-то образом объединить неважные признаки вместе, чтобы получить что-то более важное.

person Maksim Khaitovich    schedule 23.06.2015
comment
Спасибо за ваше время и ответ, Максим. Я понимаю, что ML делает именно то, что мы хотим. Таким образом, я ищу идею, которая поможет мне объяснить мою проблему, решаемую с помощью ML. - person Ardeshir; 24.06.2015
comment
Ненадежные данные означают, что домохозяйства лгут правительству. Эти домохозяйства искажают свой доход и богатство, чтобы несправедливо получить больше государственных услуг. Следовательно, эти мошеннические заявления в исходных данных приведут к неверным результатам и шаблонам. - person Ardeshir; 24.06.2015
comment
Хммм... Ну, если мошенничество не очень массовое, то проблем с алгоритмом ML не будет. Большинство алгоритмов машинного обучения не требуют, чтобы ваши данные были на 100 % чистыми, небольшой процент аномалий не нарушит их. Так что вы, вероятно, могли бы просто игнорировать плохие данные. С другой стороны, вы можете использовать статистические методы для проверки ваших данных и, возможно, выявления аномалий. - person Maksim Khaitovich; 24.06.2015
comment
Кстати, еще одна интересная идея. Вы тренируете регрессор на своих данных, который предсказывает ответ человека. Скажем, доход человека по другим параметрам. Затем вы запускаете прогноз для всех людей в вашем наборе обучающих данных. Если для какого-то конкретного человека ваша модель выдает КРАЙНЕ отличный результат от сообщаемого - это, вероятно, ваше мошенническое утверждение. - person Maksim Khaitovich; 24.06.2015
comment
Большое спасибо за ответ и идею. Есть ли у вас какие-либо ссылки или связанные с ними работы? - person Ardeshir; 25.06.2015
comment
Эээ, только на русском, сорри :) Но это довольно базовые вещи, такие же моменты можно найти практически в любой статье по Feature Engineering - person Maksim Khaitovich; 28.06.2015
comment
@Ardeshire Я думал об этом немного больше. Вы также можете погуглить что-то под названием «обнаружение мошенничества», это скорее статистика, чем ML, но стоит попробовать, возможно, этот подход поможет вам найти мошеннические записи данных. Я изучал это на курсе: coursera.org/course/datasci - person Maksim Khaitovich; 29.06.2015
comment
Спасибо за внимание, Максим. - person Ardeshir; 30.06.2015