Skip to content
/ Machine_learning Public template

Данный репозиторий содержит в себе реализацию базовых алгоритмов машинного обучения для следующего датасета: https://www.kaggle.com/datasets/tan5577/coffee-sales-csv

Notifications You must be signed in to change notification settings

Korobokkk/Machine_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning — ML YADRO 2025

В данном репозитории реализованы базовые алгоритмы машинного обучения в рамках трека ML YADRO 2025. Работа выполнена на реальном датасете продаж кофе и посвящена задаче регрессии.


Содержание

  1. Описание проекта
  2. Датасет
  3. Среда и инструменты
  4. Структура репозитория
  5. Постановка задачи
  6. Основные этапы работы
  7. Используемые модели и результаты
  8. Сравнение методов
  9. Общие выводы и ограничения

1. Описание проекта

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

2. Датасет

Источник данных: https://www.kaggle.com/datasets/tan5577/coffee-sales-csv

Датасет содержит информацию о продажах кофе, включая:

  • название напитка,
  • стоимость,
  • дату и время покупки,
  • день недели и месяц.

Размер данных: 3547 наблюдений, 11 признаков.

3. Среда и инструменты

Язык: Python Среда выполнения: Google Colab

Основные библиотеки:

  • numpy
  • pandas
  • matplotlib
  • seaborn
  • scikit-learn

4. Структура репозитория

Source.ipynb Первая лабораторная работа. Полный цикл анализа данных, обучения и сравнения моделей.

SourceDecemberUpdate.ipynb (в разработке) Обновлённая версия работы на том же датасете с изменённым техническим заданием и подходами к анализу.

Далее для удобства каждый пункт будет подразбит на 2 подпункта:

  • Подпункт 1 дляSource.ipynb
  • Подпункт 2 дляSourceDecemberUpdate.ipynb

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

5.1 Постановка задачи Source.ipynb

Задача регрессии. Необходимо предсказать стоимость кофе (money) на основе:

  • названия напитка (coffee_name);
  • месяца покупки (Month_name).

Ограничения:

  • Для исключения "хардкодинга" запрещено использование прямого поиска значений по справочнику;
  • модель должна выявлять закономерности в данных;
  • целевая точность — выше 90%.

5.2 Постановка задачи SourceDecemberUpdate.ipynb

6. Основные этапы работы

6.1 Основные этапы работы Source.ipynb

Загрузка и анализ данных

  • Данные загружаются из CSV-файла
  • Пропущенные значения отсутствуют
  • Категориальные признаки приведены к типу category
  • Признак cash_type удалён из-за отсутствия вариативности

Первичный анализ данных

Проведена визуализация:

  • зависимости цены от месяца;
  • популярности напитков по месяцам;
  • распределения цен по типам кофе;
  • корреляционной матрицы числовых признаков.

Удалось выявить:

  • наличие сезонности;
  • слабая линейная корреляция между признаками;
  • ключевая роль признака coffee_name.

Обработка признаков

  • Категориальные признаки закодированы числовыми маппингами(часть категориальных признаков можно было не переводить, поскольку в датасете были числовые аналоги, что было замечено слишком поздно
  • Данные нормализованы для моделей, чувствительных к масштабу
  • Выполнено разбиение на обучающую и тестовую выборки в пропорции 3:1

6.2 Основные этапы работы SourceDecemberUpdate.ipynb

7. Используемые модели и результаты

7.1 Используемые модели и результаты Source.ipynb

Linear Regression

  • R² на тестовой выборке: около 0.5%
  • Модель не улавливает зависимости в данных
  • Используется как пример неподходящего выбора алгоритма

RandomForestRegressor

  • R² на обучающей выборке: 97.98%

  • R² на тестовой выборке: 97.64%

  • Наиболее точная модель в рамках работы

  • Анализ важности признаков:

    • coffee_name — около 89%
    • Month_name — около 11%

KNeighborsRegressor

  • Подбор параметра k выполнен экспериментально

    • Лучший результат при k = 10
    • R² на тестовой выборке: около 97.5%
  • Результат сопоставим с Random Forest (незначительно ниже на текущих данных (~0.14%))

7.2 Используемые модели и результаты SourceDecemberUpdate.ipynb

8. Сравнение методов

8.1 Сравнение методов Source.ipynb

Модель R² (test)
Linear Regression ~0.005
KNeighborsRegressor (k = 10) ~0.975
RandomForestRegressor ~0.976

RandomForestRegressor показал наилучший результат, однако правильно настроенный KNN даёт близкую по качеству модель.

8.2 Сравнение методов SourceDecemberUpdate.ipynb

9. Общие выводы и ограничения

9.1 Общие выводы и ограничения Source.ipynb

  • Получена высокая точность предсказания (97.64%)
  • Качество модели в наибольшей степени зависит от выбора признаков
  • Избыточное количество признаков приводит к шуму и риску переобучения
  • Неподходящий алгоритм может давать результат хуже случайного угадывания

Практическое применение модели:

  • анализ сезонности и ценовой политики;
  • выявление аномалий в системе учёта;
  • поддержка аналитических и управленческих решений.

Ограничения:

  • модель не предназначена для долгосрочного прогнозирования без переобучения;
  • при появлении новых данных требуется повторное обучение.

9.2 Общие выводы и ограничения SourceDecemberUpdate.ipynb

About

Данный репозиторий содержит в себе реализацию базовых алгоритмов машинного обучения для следующего датасета: https://www.kaggle.com/datasets/tan5577/coffee-sales-csv

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published