线性回归是数据科学中的一个重要分支,它涉及根据一个或多个自变量预测因变量的值。在时间序列预测领域,有多种算法,如移动平均、ARIMA、回归等。线性回归是一种简单的预测模型算法,它只考虑一个自变量来预测因变量的值,例如,通过观察学历来预测工资,或者通过观察年龄来预测身高等。
在众多时间序列建模算法中,如回归、XGBoost、长短期记忆(LSTM)、循环神经网络等,本文将重点介绍简单的线性回归,以预测基于折扣的产品销售情况。线性回归是一种监督式机器学习模型,主要用于预测。在这种模型中,使用训练数据构建模型,然后使用损失函数测试模型的准确性。
线性回归是最著名的时间序列预测技术之一,用于预测建模。顾名思义,它假设一组自变量与因变量之间存在线性关系。线性回归模型的方程式如下:
y = mx + c
其中,y是因变量,m是直线的斜率,x是自变量,c是常数。
回归分析有多种类型,每种回归的应用取决于数据集和问题陈述。以下是几种不同的回归类型:
线性回归是机器学习中最简单的回归算法之一。它包括一个因变量和一个或多个与因变量线性相关的自变量。如果自变量的数量超过一个,则采用多元线性回归。
当因变量是离散的,如是或否、真或假时,使用逻辑回归。通常使用S形曲线表示因变量和自变量之间的关系。使用逻辑回归的前提是自变量之间不应存在多重共线性,且数据集应足够大,值的分布应大致相等。
logit(p) = ln(p/(1-p)) = b0 + b1X1 + b2X2 + b3X3 + ... + bkXk
其中p指的是特征发生的概率。
多项式回归与多元线性回归类似,但因变量和自变量之间的关系不是线性的。当数据点以非线性方式出现时,使用这种回归。多项式回归算法将数据点转换为指定度数的多项式特征,并使用线性技术对它们进行建模。数据点可以使用多项式线最佳拟合,但应注意该模型容易过拟合,因此建议仔细分析曲线以避免模型拟合中的任何问题。
岭回归与简单线性回归相同,它假设目标变量和自变量之间存在线性关系。当数据集中自变量之间存在高相关性时,使用岭回归。如果相关性高,则模型会引入偏差。因此,在岭回归的方程中引入偏差矩阵。它是一种非常强大的回归算法,模型不易过拟合。它是一种使用L2正则化的正则化线性回归。
β = (X^T X + λ*I)^-1 X^T y
其中λ(lambda)解决了多重共线性问题。
LASSO(最小绝对收缩和选择算子)适用于表现出高水平多重共线性的模型,因为它鼓励具有少量特征的简单模型。这种模型也用于避免过拟合问题,因为它对模型进行正则化,使其适用于各种数据点。
Lasso回归算法使用收缩。收缩是指数据值向中心点即均值收缩。当有大量自变量时,使用这种回归,因为它自动执行特征选择。
让看看使用肥皂销售数据集和商店的折扣百分比进行简单线性回归。首先,导入所有依赖项,从sklearn模块导入线性回归。
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn import metrics
soap_sale = pd.read_excel('soap_sales.xlsx', header=0, parse_dates=[0], index_col=0, squeeze=True)
print(soap_sale.head())