文章目录
1、线性回归(Linear Regression)
构建的模型由线性函数组成的回归问题就可以称之为线性回归,也可以理解为输出值是输入变量的线性组合。
1.1.1回归的概念
机器学习中通常按照输出值类型的不同把问题分为回归问题和分类问题:
回归问题中预测的结果通常是一个实数,是一种定量输出,且输入变量与输出变量均为连续变量。
分类问题中预测的结果通常是有限个离散变量,是一种定性输出。
1.1.2线性关系
若两个变量之间存在一次方函数关系,就称它们之间存在线性关系,也可以理解为一阶导数为常数的函数。
1.2线性回归模型
给定一个数据集
D
=
{
(
x
1
,
y
1
)
,
⋯
 
,
(
x
m
,
y
m
)
}
D = {\{(x_1, y_1),\cdots,(x_m,y_m)\}}
D={(x1,y1),⋯,(xm,ym)}。共有m组数据,其中每一个
x
i
=
[
x
i
1
,
.
.
.
,
x
i
n
]
x_i = [x_{i1},...,x_{in}]
xi=[xi1,...,xin]代表
x
i
x_i
xi有n个特征,
y
y
y为对应的标签,也就是输出数据。我们想通过一个x的函数
h
(
x
)
h(x)
h(x)去拟合标签
y
y
y.
(1)
y
′
=
h
θ
(
x
)
=
θ
0
+
θ
1
x
1
+
⋯
+
θ
n
x
n
=
θ
T
x
y'=h_\theta\left(x\right){=}\theta_{0}+\theta_{1}{x_{1}}+\cdots+\theta_{n}{x_{n}} = \theta^T{x}\tag{1}
y′=hθ(x)=θ0+θ1x1+⋯+θnxn=θTx(1)
其中
y
′
y'
y′是我们模型的输出,θ = [θ0,θ1,···,θn]是线性模型的参数。最终的目标是使得模型输出的
y
′
y'
y′尽可能的等于标签y,这样才能说明我们的模型拟合数据的能力强。
1.3目标函数(损失函数)
那我们如何去评价我们的模型拟合数据的程度呢?所以我们提出目标函数:
(2)
y
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
2
y(\theta)=\frac 1 {2} \sum_{i =1}^{m} {(h_\theta(x^i)-y^i)^2}\tag{2}
y(θ)=21i=1∑m(hθ(xi)−yi)2(2)
目标函数越小,证明我们的模型越好。
既然是最小化目标函数,为什么我们不用简单的目标值和实际值的绝对值作为目标函数呢?具体证明如下:
证明
具体证明见我
主要思想:我们尽量让模型的输出和标签之间的误差呈现一个均值为0的正态分布,为了最小化这个误差得到上面的公式(2)。
当然我们也可以定义别的损失函数,形式都差不多,但是不同的数学证明代表的实际意义不同。
1.4最小二乘法
接下来我们的任务就是
m
i
n
{
y
(
θ
)
}
min \{y(\theta)\}
min{y(θ)}
最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。如何实现最小二乘法?我们可以通过梯度下降、牛顿法、正规方程组来求解。
1.4.1梯度下降
梯度下降有一个大家族,常用的应该是(Mini-batch Gradient Descent)。在深度学习中,通过一个数据来决定梯度方向效果可能不好(SGD),但是用太多的数据内存可能就放不下(Batch Gradient Descent)而且耗时,所以我们采用小批量梯度下降,结合两者优点。后续可能会专门写优化器,在此不再细说。
1.4.2 牛顿法
优点:速度快
1.4.3 正规方程组
根据矩阵求导,最终得到
(3)
θ
=
(
X
T
X
)
−
1
X
T
Y
\theta= (X^TX)^{-1}X^TY\tag{3}
θ=(XTX)−1XTY(3)
1.5 SKlearn用法
1.5.1 参数定义
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1) #默认参数值
参数含义和使用方法看我
1.6 局部加权线性回归
局部加权线性回归:目的是解决对不规则函数进行回归时容易出现的欠拟合与过拟合问题——离预测点越近的点权重越大,离预测点越远的点权重越小。
1.7 总结
线性回归:主要思想是通过输入数据的线性组合去拟合目标。通过实际值和预测值的误差是高斯分布求出损失函数,最后最小化损失函数得到线性回归的模型。我们再用这个模型去预测别的数据。
线性回归简单、易于使用,但是现实生活中数据的特征和目标之间并不是简单的线性组合,所以并不能很好的解决具体问题。所以线性回归常用于数据特征稀疏,并且数据过大的问题中,可以通过线性回归进行特征筛选。在比赛中也可以用线性回归做一个Baseline。
2、逻辑斯特回归(Logistic Regression)
LR是一个分类问题,且只能处理二分类问题。本质上他将线性回归结果通过一个sigmoid函数把输出变成0~1之间的概率,通过阶跃函数进行分类。
3、广义线性模型(Generalized Linear Models)
未完待续····
参考文献:https://blog.csdn.net/sinat_37965706/article/details/69204397