Бесплатный урок: Магазин угадывает спрос
Знакомьтесь — ваш будущий клиент
Представьте Алексея. Он владеет небольшим интернет-магазином электроники: наушники, зарядки, чехлы, кабели. Каждую неделю он решает одну и ту же задачу — сколько товара заказать у поставщика.
Алексей садится за компьютер, открывает заказы за прошлый месяц и думает: «Наверное, возьму побольше — вдруг спрос вырастет». Он заказывает. Вот что происходит:
Два товара — наушники и чехлы — ушли почти полностью. Алексей молодец. Но два других — зарядка и кабель — лежат мёртвым грузом. Он потратил около 65 000 ₽ на товар, который не продал. Деньги заморожены, склад забит, а через полгода эти кабели Lightning будут стоить в два раза дешевле.
Это не выдумка. Так работает большинство малых магазинов — и теряет десятки тысяч рублей каждый месяц на «лишнем» товаре.
Почему интуиция не работает
«Я просто буду заказывать меньше», — скажете вы. Но тогда вы теряете продажи: если спрос вырастет, а товара нет — клиент уйдёт к конкуренту. Алексей попробовал три подхода:
Все три метода опираются на одну переменную (сезонность, прошлый год, ощущение), но реальный спрос зависит от десятков факторов: цена, реклама, погода, действия конкурентов, день недели, акции. Человек просто не способен удержать все связи в голове.
Кажется, задача неразрешима. Но есть подход, который умеет находить закономерности в десятках переменных.
Как ML решает эту задачу
Вместо того чтобы придумывать правила, мы показываем компьютеру примеры: вот данные о ценах, рекламе и погоде — и вот, сколько товаров продалось. Модель находит закономерности сама.
Проще говоря: мы кормим компьютер историческими данными — и он учится предсказывать будущее. Чем больше примеров, тем точнее.
Код за 10 строк
Давайте предскажем спрос на зарядки. Модели нужны три фактора: цена товара, день недели (пятница = больше заказов) и расходы на рекламу. Вот обучающие данные Алексея:
# Обучающие данные: [цена, день_недели, реклама_₽] → продано_штук
X = [[1990, 1, 3000], # пн, 12 шт
[1990, 5, 3000], # пт, 22 шт
[2490, 3, 1500], # ср, 8 шт
[2490, 5, 5000], # пт, 19 шт
[1790, 2, 4000], # вт, 18 шт
[1790, 5, 4000], # пт, 28 шт
[2290, 4, 2000], # чт, 11 шт
[2290, 5, 3500]] # пт, 21 шт
y = [12, 22, 8, 19, 18, 28, 11, 21]
# Обучаем модель
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
# Предсказываем: пятница, цена 1990₽, реклама 3500₽
prediction = model.predict([[1990, 5, 3500]])
print(f"Прогноз: {prediction[0]:.0f} штук")
# Вывод: Прогноз: 25 штук
Пятница, привлекательная цена, умеренная реклама — модель ожидает 25 продаж. Это гораздо точнее, чем «на глазок».
Если scikit-learn не установлен, вот та же логика на чистом Python:
# Простейшая линейная регрессия вручную
# y = w1*цена + w2*день + w3*реклама + bias
def predict(price, day, ads):
# Веса, вычисленные из 8 примеров
w1, w2, w3, bias = -0.013, 2.5, 0.003, 28
return w1 * price + w2 * day + w3 * ads + bias
result = predict(1990, 5, 3500)
print(f"Прогноз: {result:.0f} штук")
# → 25 штук
Результат: модель против интуиции
Давайте сравним. Алексей решает, сколько зарядок заказать на следующую неделю. Прогноз — примерно 25 продаж.
Продал: 42 штуки.
Продал: 28 штук.
Экономия за одну неделю: 93 600 ₽
За месяц — около 375 000 ₽. Это не абстрактная теория — это разница между бизнесом, который растёт, и бизнесом, который тонет в мёртвых запасах. И это всего лишь одна простая ML-модель на трёх признаках.
Чему вы научитесь дальше
Этот урок — первая страница курса «Машинное обучение с нуля до героя». Дальше вас ждут:
Это лишь начало
В полном курсе — 30 уроков и 5 проектов: практика с примером результата и разбором частых ошибок в каждом уроке, поддержка сообщества и доступ навсегда.
Понравилось? Продолжайте бесплатно — первый урок уже пройден
Откройте полный курс прямо сейчас: следующие уроки уже ждут вас, а доступ — навсегда.
Перейти к полному курсу