Войти
или
Зарегистрироваться
Маркетплейс
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Онлайн Компилятор
Компилятор Python (lite)
Редактор HTML Code
Статья Автор:
Деникина Н.В., Деникин А.В.
Первая модель: Предсказание цен на мороженое
Вы работаете в сети киосков с мороженым. У вас есть данные за последние 10 дней. Нужно предсказать продажи на завтра!
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # Наши данные за 10 дней data = { 'температура': [15, 18, 22, 25, 28, 31, 17, 20, 26, 29], 'продано_мороженого': [47, 56, 68, 78, 85, 95, 52, 62, 81, 89] } df = pd.DataFrame(data) print(df)
×
Визуализируем данные
plt.figure(figsize=(10, 6)) plt.scatter(df['температура'], df['продано_мороженого'], color='red', s=100, alpha=0.6, label='Реальные данные') plt.xlabel('Температура (°C)', fontsize=12) plt.ylabel('Продано мороженого (шт)', fontsize=12) plt.title('Как температура влияет на продажи', fontsize=14) plt.legend() plt.grid(True, alpha=0.3) plt.show()
×
Создаём и обучаем модель
# Подготовка данных (X должен быть двумерным массивом) X = df[['температура']] # Двойные квадратные скобки! y = df['продано_мороженого'] # Создаём модель model = LinearRegression() # Обучаем модель model.fit(X, y) print(f"Коэффициент k = {model.coef_[0]:.2f}") print(f"Свободный член b = {model.intercept_:.2f}")
×
Делаем предсказание
# Предсказываем для температур от 10 до 35 градусов temperatures_new = pd.DataFrame({'температура': [10, 15, 20, 25, 30, 35]}) predictions = model.predict(temperatures_new) # Показываем результаты for temp, pred in zip(temperatures_new['температура'], predictions): print(f"При {temp}°C продастся примерно {pred:.0f} штук мороженого")
×
Визуализируем линию регрессии
plt.figure(figsize=(10, 6)) # Реальные точки plt.scatter(df['температура'], df['продано_мороженого'], color='red', s=100, alpha=0.6, label='Реальные данные') # Линия регрессии - создаем DataFrame для предсказаний temp_line = np.linspace(10, 35, 100) temp_line_df = pd.DataFrame({'температура': temp_line}) # ✅ Правильный формат predictions_line = model.predict(temp_line_df) plt.plot(temp_line, predictions_line, color='blue', linewidth=2, label='Линия регрессии') plt.xlabel('Температура (°C)', fontsize=12) plt.ylabel('Продано мороженого (шт)', fontsize=12) plt.title('Линейная регрессия: предсказание продаж', fontsize=14) plt.legend() plt.grid(True, alpha=0.3) plt.show()
×
Печать