Skip to content

ArtemChik103/alfa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Альфа-Аналитика для Бизнеса

Альфа-Аналитика — это B2B-платформа, предоставляющая продвинутые аналитические инструменты для бизнеса. Проект является MVP (Minimum Viable Product) и демонстрирует, как экспертиза Альфа-Банка в области данных и машинного обучения может быть монетизирована для помощи корпоративным клиентам в принятии ключевых решений.

Платформа включает в себя три основных модуля:

  1. Геоаналитика (Location Analysis): Оценка потенциала новых торговых точек.
  2. Прогнозирование спроса (Demand Forecasting): Прогноз спроса на различные товарные категории.
  3. Сегментация клиентов (Client Segmentation): Разделение B2B-клиентов на сегменты для персонализированных маркетинговых кампаний.

Проект состоит из REST API на FastAPI, веб-интерфейса на Streamlit и скриптов для обучения моделей.

🚀 Основные возможности

📍 Геоаналитика

  • Задача: Предсказать потенциальную месячную выручку для новой точки продаж.
  • Входные данные: Пешеходный трафик, средний чек в районе, район города.
  • Результат: Прогноз выручки, оценка привлекательности локации и персональные рекомендации.

📈 Прогнозирование спроса

  • Задача: Спрогнозировать объем продаж для определенной категории товаров на несколько месяцев вперед.
  • Входные данные: Категория товара, регион, экономический индекс.
  • Результат: Помесячный прогноз спроса с доверительными интервалами и рекомендации по закупкам.

👥 Сегментация B2B-клиентов

  • Задача: Определить сегмент B2B-клиента на основе его покупательского поведения.
  • Входные данные: Давность последней покупки (Recency), частота покупок (Frequency), средний оборот (Monetary), размер компании.
  • Результат: Название сегмента, его описание и рекомендации по работе с клиентом.

🛠️ Технологический стек

  • Бэкенд (API): FastAPI, Uvicorn
  • Фронтенд (Web): Streamlit, Plotly, Folium
  • Машинное обучение: Scikit-learn, Prophet, LightGBM, XGBoost, Joblib
  • Обработка данных: Pandas, NumPy
  • Основной язык: Python 3.10+

📁 Структура проекта

alfa/
│
├── api/
│   └── main.py             # FastAPI приложение для API
│
├── data/
│   └── generate.py         # Скрипт для генерации синтетических данных
│
├── models/
│   ├── client_segmenter.py   # Модель сегментации клиентов
│   ├── demand_forecaster.py  # Модель прогнозирования спроса
│   ├── location_analyzer.py  # Модель анализа локаций
│   └── saved_models/       # Директория для сохранения обученных моделей
│
├── reports/
│   └── sample_predictions.json # Примеры предсказаний
│
├── synthetic_data/
│   └── *.csv               # Сгенерированные данные
│
├── utils/
│   └── data_preprocessing.py # Функции предобработки данных
│
├── web/
│   └── app.py              # Streamlit веб-приложение
│
├── train_models.py         # Скрипт для обучения всех моделей
├── requirements.txt        # Список зависимостей Python
└── README.md               # Этот файл

⚙️ Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/ArtemChik103/alfa
    cd alfa
  2. Создайте и активируйте виртуальное окружение:

    python -m venv venv
    source venv/bin/activate  # Для Linux/macOS
    venv\Scripts\activate     # Для Windows
  3. Установите зависимости:

    pip install -r requirements.txt

🚀 Использование

Для полноценной работы системы необходимо выполнить следующие шаги:

1. Генерация синтетических данных

Если у вас нет данных, вы можете сгенерировать их с помощью специального скрипта:

python data/generate.py

Этот скрипт создаст файлы с данными в директории data/synthetic/.

2. Обучение моделей

После генерации данных необходимо обучить все модели:

python train_models.py

Обученные модели будут сохранены в директории models/saved_models/.

3. Запуск API

Запустите FastAPI сервер, который будет предоставлять доступ к моделям:

uvicorn api.main:app --reload --port 8000

API будет доступен по адресу http://localhost:8000. Для просмотра документации (Swagger) перейдите по адресу http://localhost:8000/docs.

4. Запуск веб-интерфейса

В отдельном терминале запустите Streamlit приложение:

streamlit run web/app.py --server.port 8501

Веб-приложение будет доступно по адресу http://localhost:8501.

📚 API Эндпоинты

  • GET /: Проверка состояния API.
  • POST /analyze-location: Анализ потенциала локации.
  • POST /forecast-demand: Прогноз спроса.
  • POST /segment-client: Сегментация B2B-клиента.
  • GET /models/status: Получение статуса загруженных моделей.

Подробное описание запросов и ответов доступно в документации Swagger по адресу /docs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages