机器学习——线性回归到广义线性模型

线性回归(Linear Regression)

构建的模型由线性函数组成的回归问题就可以称之为线性回归,也可以理解为输出值是输入变量的线性组合。

回归的概念

机器学习中通常按照输出值类型的不同把问题分为回归问题和分类问题:
回归问题中预测的结果通常是一个实数,是一种定量输出,且输入变量与输出变量均为连续变量。
分类问题中预测的结果通常是有限个离散变量,是一种定性输出。

线性关系

若两个变量之间存在一次方函数关系,就称它们之间存在线性关系,也可以理解为一阶导数为常数的函数。

线性回归模型

给定一个数据集 D = { ( x 1 , y 1 ) ,   , ( x m , y m ) } D = {\{(x_1, y_1),\cdots,(x_m,y_m)\}} 。共有m组数据,其中每一个 x i = [ x i 1 , . . . , x i n ] x_i = [x_{i1},...,x_{in}] 代表 x i x_i 有n个特征, y y 为对应的标签,也就是输出数据。我们想通过一个x的函数 h ( x ) h(x) 去拟合标签 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 y' 是我们模型的输出,θ = [θ01,···,θn]是线性模型的参数。最终的目标是使得模型输出的 y y' 尽可能的等于标签y,这样才能说明我们的模型拟合数据的能力强。

目标函数(损失函数)

那我们如何去评价我们的模型拟合数据的程度呢?所以我们提出目标函数:
(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}
目标函数越小,证明我们的模型越好。既然是最小化目标函数,为什么我们不用简单的目标值和实际值的绝对值作为目标函数呢?具体证明如下:

证明

具体证明见
主要思想:我们尽量让模型的输出和标签之间的误差呈现一个均值为0的正态分布,为了最小化这个误差得到上面的公式(2)。
当然我们也可以定义别的损失函数,形式都差不多,但是不同的数学证明代表的实际意义不同。

最小二乘法

接下来我们的任务就是 m i n { y ( θ ) } min \{y(\theta)\}

梯度下降

我们使用梯度下降的方法一步步降低损失函数的大小。

正规方程组

SKlearn用法

class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1) #默认参数值

参数含义和使用方法看我

局部加权线性回归

局部加权线性回归:目的是解决对不规则函数进行回归时容易出现的欠拟合与过拟合问题——离预测点越近的点权重越大,离预测点越远的点权重越小。

总结

线性回归:主要思想是通过输入数据的线性组合去拟合目标。通过实际值和预测值的误差是高斯分布求出损失函数,最后最小化损失函数得到线性回归的模型。我们再用这个模型去预测别的数据。
线性回归简单、易于使用,但是现实生活中数据的特征和目标之间并不是简单的线性组合,所以并不能很好的解决具体问题。所以线性回归常用于数据特征稀疏,并且数据过大的问题中,可以通过线性回归进行特征筛选。在比赛中也可以用线性回归做一个Baseline。

逻辑斯特回归(Logistic Regression)

LR是一个分类问题,且只能处理二分类问题。本质上他将线性回归结果通过一个sigmoid函数把输出变成0~1之间的概率,通过阶跃函数进行分类。

广义线性模型(Generalized Linear Models)

未完待续····
参考文献:https://blog.csdn.net/sinat_37965706/article/details/69204397

猜你喜欢

转载自blog.csdn.net/weixin_41246832/article/details/82916841