0. Введение

Привет всем, второй проект Data Science Bootcamp в партнерстве с Istanbul Data Science Academy и Hepsiburada завершился презентациями и до сих пор был очень поучительным. опыт. Ниже я попытаюсь объяснить второй проект, который мы сделали в тот период, который был проектом прогнозирования цен на смартфоны с регрессией и веб-скрапингом с использованием Python в сочетании с NumPy, pandas, matplotlib, seaborn, запросы, BeautifulSoup, scikit-learn, и время.

Прежде всего, вы можете посетить репозиторий проекта на GitHub здесь.

1. Постановка задачи

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

Для этой цели мы создали множество регрессионных моделей, используя данные, взятые из Интернета.

2. Методология

Мы описали следующую дорожную карту как методологию проекта;

  • Сбор данных с помощью веб-скрейпинга
  • Очистка и преобразование данных
  • Исследовательский анализ данных (EDA)
  • Выбор функций и моделирование
  • Предсказание модели
  • Интерпретация результатов

3. Сбор данных с помощью парсинга веб-страниц

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

getAndParseURL()

Используя эту функцию, мы можем заставить HTML-код данного URL работать.

получить ссылки на страницы ()

С помощью этой функции мы записали все ссылки на страницы в пустой список для товаров.

получитьссылки на продукты()

С помощью этой функции мы записывали все ссылки на товары в пустой список для каждой страницы.

получить кадр данных ()

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

получитьрезультат()

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

Итак, если мы вызовем функцию getResult() после определения всех 5 функций, она вернет весь фрейм данных. Ниже приведен наш обзор данных;

4. Очистка и преобразование данных

После того, как мы очистили и преобразовали данные в dataframe, мы сделали некоторые преобразования в столбцах, например, взяли только числовое значение из строкового значения, используя функции split и replace, как показано ниже;

Наконец, мы применили следующие методы для обработки «отсутствующих» значений;

  • Заполнение с помощью mode
  • Заполнение средним
  • Заполнение истинно обоснованным значением
  • Удаление строк

В качестве примера для кода обработки значения «Отсутствует» ;

После очистки и преобразования данных распределение целевой переменной (PRICE) выглядит следующим образом;

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

5. Исследовательский анализ данных (EDA)

Мы визуализировали некоторые функции по отношению к целевой переменной, которой является PRICE, чтобы увидеть, существует ли какая-либо линейная зависимость, как показано ниже;

Как видно из гистограммы выше, эти 6 признаков имеют положительную или отрицательную линейную или полиномиальную связь с целевой переменной PRICE, также вы можете увидеть тепловую карту корреляции, приведенную ниже;

6. Выбор функций и моделирование

Мы отсортировали набор данных по году выпуска продукта для тестирования построенной модели с использованием самых последних данных. В процессе моделирования мы применили метод OneHotEncoding для следующих функций:

  • Screen_Tech
  • Модель ЦП
  • GPU_Model
  • Операционная_система
  • Charge_Type

Мы использовали следующий метод в процессе построения модели;

Приведенный ниже код показывает нам процесс построения, прогнозирования, оценки и перекрестной проверки K-Fold модели линейной регрессии с методом разделения обучения-валидации-теста;

7. Прогнозирование модели и интерпретация результатов

Мы использовали R2-Score и MSE в качестве оценочных показателей при прогнозировании модели и сделали их для train-validation-test (%60-%20-%20) с разделением , train-test(%80-%20) разделение и 10-кратная перекрестная проверка.

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

8. Заключение

Это конец статьи. В этой статье я попытаюсь подробно объяснить второй проект нашего учебного курса Data Science Bootcamp. Напоминаем, что вы можете посетить репозиторий проекта на GitHub здесь. Если вы хотите, вы можете подписаться на меня на Medium. Надеюсь увидеть вас в моей следующей статье…