Машинное обучение, как правило, представляет собой изучение статистических компьютерных алгоритмов, которые автоматически улучшаются с помощью данных. В отличие от типичных компьютерных алгоритмов, которые полагаются на человеческий ввод в выборе подхода, алгоритмы машинного обучения делают вывод и предсказывают наилучшее направление на основе самих данных. Машинное обучение является подмножеством искусственного интеллекта, и алгоритмы машинного обучения часто называют «оценщиками», поскольку они оценивают желаемый результат.
Линейная регрессия. Линейная регрессия — это тихий и простой метод статистической регрессии, используемый для прогнозного анализа. Это задача, в которой модель пытается предсказать непрерывные значения (в отличие от категоризированных значений). Это один из самых простых методов регрессии. Результаты легко интерпретировать, что является одним из его ключевых преимуществ.
Задача: на меня возложена ответственность за оценку продаж, произведенных различными рекламными носителями, на основе прошлой эффективности этих носителей.
Проблема кодирования:
Мы начнем с импорта библиотек.
Pandas
для управления нашими данными.Matplotlib
для построения наших данных и результатов.Warnings
чтобы очистить ненужные флагиNumpy
универсальный стандарт для работы с числовыми данными в Python
Не импортируйте всю библиотеку sklearn
; это массово и займет много времени. Импортируйте только те инструменты, которые вам нужны.
import pandas as pd import seaborn as sns from sklearn.cluster import KMeans import warnings warnings.filterwarnings('ignore') import matplotlib.pyplot as plt import numpy as np
Импорт данных
df = pd.read_csv('Advertising.csv') df.head()
Разделите ваши данные на X: функции и Y: метка, чтобы начать разделение обучения и тестирования.
X = df.drop('sales',axis=1) y = df['sales'] from sklearn.model_selection import train_test_split
Запустите свой поезд | тестовый сплит с вашим предпочтительным размером теста
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)
Он разбивает ваши данные на тестовые и обучающие.
Создание модели (оценщик)
Импорт класса модели из семейства моделей
from sklearn.linear_model import LinearRegression model = LinearRegression()
Модель Fit/Train на обучающих данных
model.fit(X_train,y_train)
Вы можете предварительно просмотреть прогнозируемые данные модели, запустив функцию model.predict для тестовых данных, чтобы получить показатель производительности в тестовом наборе.
model.predict(X_test)
Оценка тестового набора
К наиболее распространенным показателям оценки относятся
- Средняя абсолютная ошибка (MAE)
- Среднеквадратическая ошибка (MSE)
- Среднеквадратическая ошибка (RMSE)
test_predictions = model.predict(X_test) from sklearn.metrics import mean_absolute_error,mean_squared_error MAE = mean_absolute_error(y_test,test_predictions) MSE = mean_squared_error(y_test,test_predictions) RMSE = np.sqrt(MSE)
Развертывание модели
Как только мы будем удовлетворены производительностью тестовых данных, мы можем развернуть нашу модель.
final_model = LinearRegression() final_model.fit(X,y)
Получить коэффициенты
final_model.coef_
Сохранение модели
from joblib import dump,load dump(final_model, 'sales_model.joblib')
Загрузка модели
loaded_model = load('sales_model.joblib') loaded_model.coef
Использование модели для прогнозирования ожидаемых продаж.
Если бы организация инвестировала 149 единиц в рекламу на телевидении, 22 единицы в рекламу на радио и 12 единиц в рекламу в газетах, прогнозируемые единицы кампании продаж, основанные на нашей модели, будут даны как;
#149 TV, 22 Radio, 12 Newspaper #Sales? campaign = [[149,22,12]] loaded_model.predict(campaign) array([13.893032])
Линейная регрессия имеет свои ограничения;
- Чувствителен к выбросам.
- Склонен к недообучению
- Переоснащение сложных моделей
- Предположение о независимости данных
Другие методы регрессии пытались улучшить ограничения линейной регрессии. Моя следующая статья будет о полиномиальной регрессии для прогнозирования данных.