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

Понимание бизнеса

Я буду работать с рекламным CSV-файлом из клиента и помещать его во фрейм данных с именем ad_data. Этот набор данных содержит следующие функции:

  • «Ежедневное время, проведенное на сайте»: время, проведенное потребителем на сайте в минутах.
  • «Возраст»: возраст клиента в годах.
  • «Доход от площади»: сред. Доход географического района потребителя
  • «Ежедневное использование Интернета»: Ср. минут в день потребитель находится в Интернете
  • «Тематическая строка объявления»: заголовок рекламного объявления.
  • «Город»: город потребителя
  • «Мужчина»: был ли потребитель мужчиной или нет
  • «Страна»: Страна потребителя
  • «Временная метка»: время, когда потребитель нажал на рекламу или закрыл окно.
  • «Нажали на объявление»: 0 или 1 означают нажатие на объявление.

Исследовательский анализ данных

Я проверил, что набор данных уже чист. Итак, мы можем продолжить исследовательскую аналитику данных. Я создаю морской график столбца «Возраст», чтобы увидеть распределение возраста клиентов. Мы видим, что большая часть клиентов находится в возрасте 30 лет.

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

Затем я создаю совместный график, чтобы показать распределение KDE ежедневного времени, проведенного на сайте, по сравнению с возрастом. Основываясь на этом графике, мы видим, что большинство клиентов тратят около 80 минут на приложение в день.

Я создаю совместный график ежедневного времени, проведенного на сайте, и ежедневного использования Интернета.

Данные обучения и тестирования

Теперь, когда я немного изучил данные, мне нужно сделать прогноз, чтобы узнать, будут ли они нажимать на рекламу. Начнем с разделения данных на наборы для обучения и тестирования.

Я установил переменную «X», равную числовым характеристикам клиентов, и переменную «Y», равную столбцу Clicked on Ad. Я использую model_selection.train_test_split из библиотеки SKLearn, чтобы разделить данные на наборы для обучения и тестирования. Я установил test_size=0.3 и random_state=101. Это означает, что я разделил существующий набор данных на 70% для обучения данных и 30% для проверки данных.

Обучение модели

Теперь пришло время обучить нашу модель на наших обучающих данных! Мне нужно импортировать LogisticRegression из библиотеки sklearn.linear_model. Затем создайте экземпляр модели LogisticRegression() с именем lm. Тренируйтесь/подбирайте lm на тренировочных данных.

Прогнозы и оценки

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

В этой части мы уже сделали прогноз. Но давайте попробуем посчитать вероятность кликов по объявлениям или нет.

Давайте подсчитаем результаты различий между истинным значением и прогнозами с вариантным порогом.

Мы видим, что использование порога 0,4 дает нам меньше неправильных прогнозов. Это означает, что этот порог имеет лучшую точность.

Вы можете увидеть полный скрипт Python на моем GitHub.

Спасибо.
Увидимся в другом исследовании данных.

BR,
Эрвиндра Русли,
специалист по обработке и анализу данных, студентка школы Пурвадхика.