Альфа-Аналитика — это B2B-платформа, предоставляющая продвинутые аналитические инструменты для бизнеса. Проект является MVP (Minimum Viable Product) и демонстрирует, как экспертиза Альфа-Банка в области данных и машинного обучения может быть монетизирована для помощи корпоративным клиентам в принятии ключевых решений.
Платформа включает в себя три основных модуля:
- Геоаналитика (Location Analysis): Оценка потенциала новых торговых точек.
- Прогнозирование спроса (Demand Forecasting): Прогноз спроса на различные товарные категории.
- Сегментация клиентов (Client Segmentation): Разделение B2B-клиентов на сегменты для персонализированных маркетинговых кампаний.
Проект состоит из REST API на FastAPI, веб-интерфейса на Streamlit и скриптов для обучения моделей.
- Задача: Предсказать потенциальную месячную выручку для новой точки продаж.
- Входные данные: Пешеходный трафик, средний чек в районе, район города.
- Результат: Прогноз выручки, оценка привлекательности локации и персональные рекомендации.
- Задача: Спрогнозировать объем продаж для определенной категории товаров на несколько месяцев вперед.
- Входные данные: Категория товара, регион, экономический индекс.
- Результат: Помесячный прогноз спроса с доверительными интервалами и рекомендации по закупкам.
- Задача: Определить сегмент 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 # Этот файл
-
Клонируйте репозиторий:
git clone https://github.com/ArtemChik103/alfa cd alfa -
Создайте и активируйте виртуальное окружение:
python -m venv venv source venv/bin/activate # Для Linux/macOS venv\Scripts\activate # Для Windows
-
Установите зависимости:
pip install -r requirements.txt
Для полноценной работы системы необходимо выполнить следующие шаги:
Если у вас нет данных, вы можете сгенерировать их с помощью специального скрипта:
python data/generate.pyЭтот скрипт создаст файлы с данными в директории data/synthetic/.
После генерации данных необходимо обучить все модели:
python train_models.pyОбученные модели будут сохранены в директории models/saved_models/.
Запустите FastAPI сервер, который будет предоставлять доступ к моделям:
uvicorn api.main:app --reload --port 8000API будет доступен по адресу http://localhost:8000. Для просмотра документации (Swagger) перейдите по адресу http://localhost:8000/docs.
В отдельном терминале запустите Streamlit приложение:
streamlit run web/app.py --server.port 8501Веб-приложение будет доступно по адресу http://localhost:8501.
GET /: Проверка состояния API.POST /analyze-location: Анализ потенциала локации.POST /forecast-demand: Прогноз спроса.POST /segment-client: Сегментация B2B-клиента.GET /models/status: Получение статуса загруженных моделей.
Подробное описание запросов и ответов доступно в документации Swagger по адресу /docs.