Проект по науке о данных, применяемый для создания онлайн-контента

Я написал несколько статей на Medium: моя цель - поделиться ими с как можно большим количеством читателей.

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

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

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

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

Обратите внимание, что предоставленная ссылка является партнерской ссылкой Amazon: я могу заработать на этой рекомендации.

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

Этот проект обычно состоит из 4 шагов.

Планирование проекта

  1. Удалить исторические данные со страницы статистики Medium
  2. Подготовьте данные, чтобы они подходили для машинного обучения
  3. Создайте модель прогнозирующего машинного обучения
  4. Оцените точность прогнозов

Давайте подумаем о нескольких препятствиях, которые мы можем встретить на этом пути:

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

Удалить данные

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

Исторические данные читателей находятся на веб-странице статистики в средних аккаунтах.

Вместе с R есть два хорошо известных пакета, используемых для парсинга сети: rvest, который является частью tidyverse, и RSelenium, который был разработан rOpenSci. Оба пакета можно установить через CRAN.

Как правило, я выбираю RSelenium, когда мне нужно взаимодействовать с веб-сайтом перед очисткой данных (перемещаться, щелкать…), и rvest, когда практически все данные можно найти внутри исходного кода веб-страницы.

🎉 Данные читателей доступны напрямую из исходного кода страницы, по крайней мере, за последние 30 дней. Это лучший сценарий, поскольку вам просто нужно прочитать исходный код страницы, чтобы получить интересующие данные. Однако для отображения более старых точек данных требуется щелчок, поэтому в какой-то момент нам может понадобиться RSelenium ...

… Но мне не предоставили доступ к странице статистики (код ошибки 401). Согласно этому сопоставлению кода ошибки, вход в систему требуется перед переходом на страницу статистики ...

… Но Medium отправляет волшебные ссылки внутри писем, чтобы пользователи могли пройти аутентификацию и войти в систему, поэтому моему RSelenium боту придется проверять мой почтовый ящик и щелкать эту ссылку, чтобы продолжить… На этом я решил закончить путешествие по парсингу. 😌

У меня есть базовые знания о парсинге веб-страниц, и мне было бы очень интересно узнать от вас, если вы знаете, как программно перейти на страницу статистики аккаунта Medium!

Практическое решение

Это один из тех моментов, когда вы можете превратить всего несколько точек данных в возможность.

Я вручную скачал каждую страницу за последние 4 месяца, которые я писал на Medium. Все данные о ежедневных читателях размещены на этих загруженных веб-страницах.

Качество данных

Несколько дней спустя я выполнил новое извлечение, чтобы убедиться, что данные считывателей остались неизменными: нет процесса пересчета или корректировок после окончания дня.

Однако последний день, данные за который неполные, будет проигнорирован в остальной части исследования.

Обработка данных

Я использую rvest для навигации по загруженным веб-страницам, как если бы я действительно посещал страницу статистики!

Значения атрибута data-tooltip содержат количество читателей на заданную дату. Первый прост, в то время как второй требует нескольких операций для создания даты, соответствующей стандарту ISO.

Извлечение количества читателей в основном заключается в извлечении первых чисел из необработанного текста.

месяц извлекается как обычный текст и сопоставляется с его соответствующим номером (1 января… 12 декабря). день завершает исходный текст, а год - 2020 год. Их объединение создает дату в удобном формате.

Теперь у нас есть исторические данные читателей за каждый день:

Вывод

Это был первый шаг этого проекта по науке о данных: найти и загрузить данные.

Было невозможно использовать инструменты веб-скрапинга для автоматического сбора данных. В любом случае, если это можно будет сделать позже, остальная часть конвейера будет по-прежнему действительна (пока Medium не изменяет исходный код 😊).

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

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

…Быть в курсе!

использованная литература