Написано в сотрудничестве с Джулией Тауссиг, Анной Хаас, Аланной Бесоу, Патриком Кэвинсом и Уильямом Холдером

Заявление о проблеме

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

Сегодня перед нами была поставлена ​​задача: предсказать, составляет ли доход человека ›50 000 долларов (50 000 долларов США) с учетом определенной информации профиля, и, более конкретно, рассчитать прогнозируемую вероятность дохода, составляющего› 50 000 долларов США для каждой строки в тестовом наборе. Нам дали ограничение, что мы могли использовать не более 20 функций для создания модели и прогнозирования заработка людей ›50 000 долларов США.

Людям в проектных / продуктовых командах часто приходится балансировать качество, стоимость и время. Перед нами была поставлена ​​задача науки о данных с ограничением количества функций для имитации ограничения «дешевой» модели, и нам было дано 7 часов на совместную работу (с использованием различных методов коммуникации, так как три члена команды находились в Денвере, а два члена команды были в Сиэтл) для оптимизации модели и представления прогнозов. Приведенный выше блок продукта показывает, что если у нас есть ограничения по времени и вводимым параметрам, качество продукта может пострадать. Мы сделали все возможное, чтобы создать высококачественную модель, несмотря на эти ограничения, и это хорошая практика, учитывая, что обычно в нашей отрасли существует потребность в балансе качества, стоимости и времени.

Исследовательский анализ данных (EDA), разработка и очистка функций

Данные, которые использовались для этого анализа, были извлечены Барри Беккером из базы данных Бюро переписи населения США 1994 года, расположенной по адресу http://www.census.gov/ftp/pub/DES/www/welcome.html. Данные и словарь данных можно найти на странице конкурса Kaggle Доход взрослого населения от переписи:
Прогнозируйте, превышает ли доход 50 тыс. Долларов в год на основе данных переписи
по адресу https://www.kaggle.com/uciml/adult- перепись-доход .

Был набор данных о поездах и набор тестовых данных. Был исследован набор данных о поездах. Было 32561 строка (к счастью, без нулевых значений) и 14 столбцов. Шесть столбцов содержали данные о целочисленных типах данных (возраст, fnlwgt, образование, прирост капитала, потери капитала и часы в неделю), а остальные столбцы содержали данные об объектах данных (рабочий класс, образование, семейное положение, род занятий, отношения, пол, страна происхождения и заработная плата). Функция Pandas get_dummies использовалась для создания макетов для каждой категориальной функции, и в результате получился фрейм данных с более чем 100 столбцами. Список ниже включает таблицы с информацией о каждой категориальной переменной.

  • Столбец рабочего класса имел 9 различных значений (значение «?» Не было удалено, потому что оно могло стать более информативным с большим контекстом во время анализа).

  • В столбце «Образование» было 16 различных значений.

  • В столбце семейного положения было 7 различных значений.

  • Столбец отношений имел 6 различных значений.

  • В столбце «род занятий» было 15 различных значений (значение «?» Не было удалено, потому что оно могло стать более информативным благодаря большему контексту во время анализа).

  • Столбец пола имел два значения. Обратите внимание, что набор данных очень несбалансирован в отношении мужчин, поскольку мужчины составляют примерно людей, представленных в наборе данных. Прискорбно видеть значительное снижение корреляции между заработной платой ›50 000 долларов от мужчин к женщинам, но, надеюсь, данные выглядят совсем иначе сейчас, спустя более двух десятилетий после того, как они были собраны.

  • В столбце "Родная страна" было 42 значения. 15 наиболее часто встречающихся значений в наборе данных показаны в таблице ниже слева. В таблице посередине показаны 15 стран с самой высокой долей заработной платы ›50 тыс. Долл. США. Справа показаны 15 стран происхождения с самым высоким соотношением заработной платы ›50 тыс. Долларов США. Знак «?» значение не было удалено, потому что оно могло стать более информативным с большим контекстом во время анализа.

  • Целевой столбец, столбец заработной платы, имел два возможных значения: заработная плата ≤50 тыс. Долларов США и заработная плата ›50 тыс. Долларов США. Обратите внимание, что набор данных несбалансирован в сторону заработной платы ≤ 50 000 долларов США, поскольку более 75% людей в наборе данных имеют заработную плату ≤ 50 000 долларов США. Списки ниже отображают частоту каждого значения заработной платы в наборе данных и долю каждого значения заработной платы в наборе данных.

Workclass_self-emp-not-inc (самозанятый без дохода) имел самую высокую корреляцию с заработной платой ›50 000 долларов США (корреляция приблизительно 0,139), в то время как workclass_private имел самую низкую корреляцию с заработной платой› 50 000 долларов США (корреляция приблизительно -0,0785). Эти характеристики имели самую сильную корреляцию с заработной платой ›50 000 долларов США, поэтому они были использованы в дальнейшем анализе и моделировании.

Характеристика образования имела 16 возможных значений. Характеристика номера образования, которая присваивает номера уровню образования, имела диапазон значений от 1 (дошкольное) до 16 (докторская степень), и не учитывала сходства между некоторыми уровнями образования и долей заработной платы ›50 тыс. Долларов США. Например, у Assoc-acdm и Assoc-voice одинаковые пропорции заработной платы ›50 тыс. Долларов США, поэтому имело смысл сгруппировать их вместе. Функция образования была изменена на числовую характеристику путем группировки уровней образования с аналогичными пропорциями заработной платы ›50 тыс. Долларов США, что привело к замене значений дошкольного образования на 0, 1–4 на 1, 5–6 на 2, 7–8 на 3, С 9-го, 10-го и с 11-го по 4-й, 12-й с 5, HS-Grad с 6, Some-College с 7, Assoc-acdm и Assoc -ocal с 8, бакалавры с 9, магистры с 10, профшкола с 11 и Докторантура с 12. Эта новая функция образования была названа edu_scale, и ее соотношение к заработной плате ›50 тыс. Долларов США составляет 0,342, что больше, чем соотношение исходной числовой функции образования с заработной платой› 50 тыс. Долларов США, что составляет прибл. 0,335.

Были изучены семейное положение и ценности отношений, и была создана новая функция. Он назывался is_married и имел значение 1, если семейное положение было Женат-гражданский-супруг или Женат-AF-супруга, и значения 0 в противном случае.

Ценности профессии были исследованы. Четыре профессии с наибольшим соотношением к заработной плате ›50 000 долларов США были выбраны для использования в будущем моделировании, и они перечислены ниже.

  • профессия_ Управленческий (отношение к заработной плате ›50 тыс. долл. США: 0,215)
  • профессия_ Проф-специальность (отношение к заработной плате ›50k USD: 0.186)
  • профессия_ Защитные услуги (отношение к заработной плате ›50 000 долларов США: 0,0281)
  • профессия_ Техподдержка (соотношение к заработной плате ›50k USD: 0,0257)

Оглядываясь назад, можно сказать, что некоторые профессии с наименьшей корреляцией с заработной платой ›50 000 долларов США можно было бы использовать для улучшения модели.

Половой признак был преобразован в фиктивную переменную. Значениям мужчин было присвоено числовое значение 1, тогда как значениям женщин было присвоено числовое значение 0.

Характеристика страны проживания была преобразована в фиктивную переменную is_USA, поскольку уроженец США имел самую высокую корреляцию с заработной платой ›50 000 долларов США (корреляция: 0,0345). Оглядываясь назад, было бы интересно включить ценности родной страны с самой низкой корреляцией с заработной платой ›50k.

Были изучены сочетания характеристик (две характеристики, умноженные друг на друга, такие как edu_scale и is_married) и их корреляция с заработной платой ›50 000 долларов США. Единственная комбинация характеристик, которая имела значительно высокую корреляцию с заработной платой ›50 000 долларов США, - это edu_scale * is_married (корреляция была приблизительно 0,530). Эта комбинация функций имела корреляцию с заработной платой ›50 000 долларов США, что было больше, чем корреляция с заработной платой› 50 000 долларов США любой из функций, используемых для создания этой комбинации функций (edu_scale и is_married). Поэтому комбинация функций edu_scale * is_married была включена в дальнейший анализ и моделирование.

Были также оценены числовые характеристики. См. Тепловую карту ниже (созданную с использованием Python, Pandas и Seaborn). Функция education_num была заменена на edu_scale, как описано ранее. Функция fnlwgt имела низкую степень корреляции с заработной платой ›50 000 долларов США, поэтому она не часто использовалась в дальнейшем EDA или моделировании. Характеристики возраста, количества часов в неделю, прироста капитала и убытков имели высокую корреляцию с заработной платой ›50 тыс. Долларов США, поэтому они были включены в дальнейший EDA и моделирование.

Распределение числовых характеристик было проанализировано с использованием функции парного графика Морского Борна. В общем, раздачи нормально не раздавались.

Особенностями фокуса в дальнейшем моделировании и EDA были: пол, прирост капитала, потеря капитала, часы в неделю, is_USA, edu_scale * is_married, workclass_private, workclass_selfemp_notinc, возраст, род занятий_ Управляющий-менеджер, профессия_ Проф-специальность, род занятий_ Техподдержка и род занятий_ Защит-сер.

Моделирование

После того, как очистка данных и разработка функций были завершены, команда приступила к оценке моделей, которые включали EDA на основе моделей, чтобы лучше понять влияние функций на данные. Команда остановилась на списке из 13 функций, показанных выше (успешно меньше, чем максимум из 20 функций). Были оценены несколько различных моделей и ансамблевых методов, чтобы определить, какая модель работает лучше всего. Были построены и проанализированы следующие модели классификации: логистическая регрессия, k-ближайшие соседи (KNN), дерево решений, случайный лес и машина опорных векторов. Наряду с этими моделями мы пробовали такие методы повышения, как AdaBoost, Gradient Boosting и XGBoost. Мы решили использовать точность в качестве меры для выбора нашей модели, потому что проблема, которую мы пытались решить, не способствовала сокращению ложноотрицательных результатов по сравнению с ложными срабатываниями и наоборот. Большинство моделей, разработанных командой, дали аналогичные результаты со средней точностью около 0,84. При первоначальной оценке дерево решений показало наилучшие результаты с точностью 0,853. Обладая этими знаниями, мы использовали gridsearch, чтобы найти оптимальные гиперпараметры для модели дерева решений. Поиск по сетке дал небольшое улучшение с новым показателем точности 0,856. С выбранными гиперпараметрами мы попробовали метод ансамбля и достигли наивысшего показателя точности 0,862 (с использованием AdaBoost). Последняя модель, на которой мы основывали наши прогнозы, имела точность 0,874 на обучающих данных и точность 0,867 на тестовых данных, показывая только очень незначительное указание на переобучение (окончательная модель, которую мы построили, была оптимизированным деревом решений с использованием AdaBoost).

Заключение

Мы обсудили создание моделей науки о данных в контексте баланса качества, стоимости и времени. Хотя это во многом ограничивало (поскольку время и количество функций были ограничены), мы научились тщательно оценивать данные и создавать модели с близкими оценками точности обучения и тестирования в команде. Последняя модель, на которой мы основывали наши прогнозы, имела показатель точности обучения 0,874 и показатель точности теста 0,867. Мы узнали, что действительно возможно найти баланс между качеством, стоимостью и временем, и мы смогли создать хорошую модель в команде, учитывая сильную командную работу и общение.

Источники:

Рисунок 1 (Изображение): Доминго, Рене Т. Подход QCD к менеджменту. Http://www.rtdonline.com/BMA/MM/qcd.htm

Данные, которые использовались для этого анализа, были извлечены Барри Беккером из базы данных Бюро переписи населения США 1994 года, расположенной по адресу http://www.census.gov/ftp/pub/DES/www/welcome.html.

Данные и словарь данных можно найти на странице конкурса Kaggle Доход взрослого населения от переписи:
Предсказать, превышает ли доход 50 тыс. Долларов в год на основе данных переписи
: https://www.kaggle.com/uciml/adult- перепись-доход .