Вступление

В этом проекте мы будем использовать ряд различных контролируемых алгоритмов для точного прогнозирования доходов людей с использованием набора данных для взрослых, собранных из репозитория машинного обучения UCI. Затем мы выберем лучший алгоритм-кандидат из предварительных результатов и далее оптимизируем этот алгоритм для наилучшего моделирования данных. Наша цель в этой реализации - построить модель, которая точно предсказывает, зарабатывает ли человек больше 50 000 долларов.

Данные

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

Целевая переменная: доход (‹= 50K,› 50K)

Импорт библиотек и загрузка данных

Сначала мы загрузим библиотеки Python, которые собираемся использовать, а также данные для взрослых. Последний столбец будет нашей целевой переменной «доход», а остальные будут характеристиками.

Анализ данных

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

Предварительная обработка данных

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

Нормализация

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

Предварительная обработка категориальных функций

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

Выбор функций

Наличие нерелевантных функций в ваших данных может снизить точность моделей и заставить вашу модель обучаться на основе нерелевантных функций.

Оценка эффективности

При прогнозировании событий мы можем получить 4 типа результатов: истинно положительные, истинно отрицательные, ложные и ложно отрицательные. Цель проекта - правильно определить, какие люди зарабатывают более 50 тысяч долларов в год. Поэтому мы должны с умом выбирать нашу метрику оценки.

Разделение данных

Теперь, когда все категориальные переменные преобразованы и все числовые характеристики нормализованы, нам нужно разделить наши данные на обучающие и тестовые наборы. Мы делим 80% на обучение и 20% на тестирование.

Прогноз

Некоторые из доступных алгоритмов классификации в scikit-learn:

  • Гауссовский наивный байесовский (GaussianNB)
  • Деревья решений
  • Ансамблевые методы (AdaBoost, Random Forest, ..)
  • Классификатор стохастического градиентного спуска (SGDC)
  • Логистическая регрессия

Гауссовский NB и классификатор случайного леса

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

Настройка модели и оценка производительности:

Логистическая регрессия

Классификатор дерева решений

Классификатор градиентного спуска

Наблюдения

  • GaussianNB: 84.01%
  • Деревья решений: 85,31%
  • Случайный лес: 84,49%
  • GDC: 84,05%
  • Логистическая регрессия: 76,02%

Точность оптимизированной модели и оценка F по данным тестирования случайного классификатора лесов составляют 84,49% и 71,20% соответственно. Эти оценки немного лучше, чем у неоптимизированной модели, но время вычислений намного больше. Тесты наивных предикторов для точности и F-балла составляют 24,78% и 29,17% соответственно, что намного хуже, чем результаты, полученные с помощью обученной модели.

Заключение

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