Машинное обучение, как правило, представляет собой изучение статистических компьютерных алгоритмов, которые автоматически улучшаются с помощью данных. В отличие от типичных компьютерных алгоритмов, которые полагаются на человеческий ввод в выборе подхода, алгоритмы машинного обучения делают вывод и предсказывают наилучшее направление на основе самих данных. Машинное обучение является подмножеством искусственного интеллекта, и алгоритмы машинного обучения часто называют «оценщиками», поскольку они оценивают желаемый результат.

Линейная регрессия. Линейная регрессия — это тихий и простой метод статистической регрессии, используемый для прогнозного анализа. Это задача, в которой модель пытается предсказать непрерывные значения (в отличие от категоризированных значений). Это один из самых простых методов регрессии. Результаты легко интерпретировать, что является одним из его ключевых преимуществ.

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

Проблема кодирования:

Мы начнем с импорта библиотек.

  • 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])

Линейная регрессия имеет свои ограничения;

  • Чувствителен к выбросам.
  • Склонен к недообучению
  • Переоснащение сложных моделей
  • Предположение о независимости данных

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