做网站哪个比较好,wordpress管理密码,定兴网站建设,产品营销推广方式线性回归可以说是机器学习中最基本的问题类型了#xff0c;这里就对线性回归的原理和算法做一个小结。 一、线性回归的模型函数和损失函数 线性回归遇到的问题一般是这样的。我们有m个样本#xff0c;每个样本对应于n维特征和一个结果输出#xff0c;如下#xff1a; \((x_…线性回归可以说是机器学习中最基本的问题类型了这里就对线性回归的原理和算法做一个小结。 一、线性回归的模型函数和损失函数 线性回归遇到的问题一般是这样的。我们有m个样本每个样本对应于n维特征和一个结果输出如下 \((x_1^{(0)}, x_2^{(0)}, ...x_n^{(0)}, y_0), (x_1^{(1)}, x_2^{(1)}, ...x_n^{(1)},y_1), ... (x_1^{(m)}, x_2^{(m)}, ...x_n^{(m)}, y_m)\) 我们的问题是对于一个新的$(x_1^{(x)}, x_2^{(x)}, ...x_n^{(x)} \(, 他所对应的\)y_x$是多少呢 如果这个问题里面的y是连续的则是一个回归问题否则是一个分类问题。 对于n维特征的样本数据如果我们决定使用线性回归那么对应的模型是这样的 \(h_\theta(x_1, x_2, ...x_n) \theta_0 \theta_{1}x_1 ... \theta_{n}x_{n}\), 其中$\theta_i $ (i 0,1,2... n)为模型参数$x_i $ (i 0,1,2... n)为每个样本的n个特征值。这个表示可以简化我们增加一个特征$x_0 1 $ 这样\(h_\theta(x_0, x_1, ...x_n) \sum\limits_{i0}^{n}\theta_{i}x_{i}\)。 进一步用矩阵形式表达更加简洁如下 \(h_\mathbf{\theta}(\mathbf{X}) \mathbf{X\theta}\) 其中 假设函数\(h_\mathbf{\theta}(\mathbf{X})\)为mx1的向量,\(\mathbf{\theta}\)为nx1的向量里面有n个代数法的模型参数。\(\mathbf{X}\)为mxn维的矩阵。m代表样本的个数n代表样本的特征数。 得到了模型我们需要求出需要的损失函数一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下 \(J(\theta_0, \theta_1..., \theta_n) \sum\limits_{i0}^{m}(h_\theta(x_0, x_1, ...x_n) - y_i)^2\) 进一步用矩阵形式表达损失函数 \(J(\mathbf\theta) \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})\) 由于矩阵法表达比较的简洁后面我们将统一采用矩阵方式表达模型函数和损失函数。 二、线性回归的算法 对于线性回归的损失函数\(J(\mathbf\theta) \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y})\)我们常用的有两种方法来求损失函数最小化时候的\(\mathbf{\theta}\)参数一种是梯度下降法一种是最小二乘法。由于已经在其它篇中单独介绍了梯度下降法和最小二乘法可以点链接到对应的文章链接去阅读。 如果采用梯度下降法则\(\mathbf{\theta}\)的迭代公式是这样的 \(\mathbf\theta \mathbf\theta - \alpha\mathbf{X}^T(\mathbf{X\theta} - \mathbf{Y})\) 通过若干次迭代后我们可以得到最终的\(\mathbf{\theta}\)的结果 如果采用最小二乘法则\(\mathbf{\theta}\)的结果公式如下 $ \mathbf{\theta} (\mathbf{X^{T}X})^{-1}\mathbf{X^{T}Y} $ 当然线性回归还有其他的常用算法比如牛顿法和拟牛顿法这里不详细描述。 三、线性回归的推广多项式回归 回到我们开始的线性模型\(h_\theta(x_1, x_2, ...x_n) \theta_0 \theta_{1}x_1 ... \theta_{n}x_{n}\), 如果这里不仅仅是x的一次方比如增加二次方那么模型就变成了多项式回归。这里写一个只有两个特征的p次方多项式回归的模型 \(h_\theta(x_1, x_2) \theta_0 \theta_{1}x_1 \theta_{2}x_{2} \theta_{3}x_1^{2} \theta_{4}x_2^{2} \theta_{5}x_{1}x_2\) 我们令\(x_0 1, x_1 x_1, x_2 x_2, x_3 x_1^{2}, x_4 x_2^{2}, x_5 x_{1}x_2\) ,这样我们就得到了下式 \(h_\theta(x_1, x_2) \theta_0 \theta_{1}x_1 \theta_{2}x_{2} \theta_{3}x_3 \theta_{4}x_4 \theta_{5}x_5\) 可以发现我们又重新回到了线性回归这是一个五元线性回归可以用线性回归的方法来完成算法。对于每个二元样本特征\((x_1,x_2)\),我们得到一个五元样本特征\((1, x_1, x_2, x_{1}^2, x_{2}^2, x_{1}x_2)\)通过这个改进的五元样本特征我们重新把不是线性回归的函数变回线性回归。 四、线性回归的推广广义线性回归 在上一节的线性回归的推广中我们对样本特征端做了推广这里我们对于特征y做推广。比如我们的输出\(\mathbf{Y}\)不满足和\(\mathbf{X}\)的线性关系但是\(ln\mathbf{Y}\) 和\(\mathbf{X}\)满足线性关系模型函数如下 \(ln\mathbf{Y} \mathbf{X\theta}\) 这样对与每个样本的输入y我们用 lny去对应 从而仍然可以用线性回归的算法去处理这个问题。我们把 Iny一般化假设这个函数是单调可微函数\(\mathbf{g}(.)\),则一般化的广义线性回归形式是 \(\mathbf{g}(\mathbf{Y}) \mathbf{X\theta}\) 或者 \(\mathbf{Y} \mathbf{g^{-1}}(\mathbf{X\theta})\) 这个函数\(\mathbf{g}(.)\)我们通常称为联系函数。 五、线性回归的正则化 为了防止模型的过拟合我们在建立线性模型的时候经常需要加入正则化项。一般有L1正则化和L2正则化。 线性回归的L1正则化通常称为Lasso回归它和一般线性回归的区别是在损失函数上增加了一个L1正则化的项L1正则化的项有一个常数系数\(\alpha\)来调节损失函数的均方差项和正则化项的权重具体Lasso回归的损失函数表达式如下 \(J(\mathbf\theta) \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y}) \alpha||\theta||_1\) 其中n为样本个数\(\alpha\)为常数系数需要进行调优。\(||\theta||_1\)为L1范数。 Lasso回归可以使得一些特征的系数变小甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。 Lasso回归的求解办法一般有坐标轴下降法coordinate descent和最小角回归法 Least Angle Regression由于它们比较复杂在我的这篇文章单独讲述 线程回归的正则化-Lasso回归小结 线性回归的L2正则化通常称为Ridge回归它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项和Lasso回归的区别是Ridge回归的正则化项是L2范数而Lasso回归的正则化项是L1范数。具体Ridge回归的损失函数表达式如下 \(J(\mathbf\theta) \frac{1}{2}(\mathbf{X\theta} - \mathbf{Y})^T(\mathbf{X\theta} - \mathbf{Y}) \frac{1}{2}\alpha||\theta||_2^2\) 其中\(\alpha\)为常数系数需要进行调优。\(||\theta||_2\)为L2范数。 Ridge回归在不抛弃任何一个特征的情况下缩小了回归系数使得模型相对而言比较的稳定但和Lasso回归比这会使得模型的特征留的特别多模型解释性差。 Ridge回归的求解比较简单一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式和普通线性回归类似。 令\(J(\mathbf\theta)\)的导数为0得到下式 \(\mathbf{X^T(X\theta - Y) \alpha\theta} 0\) 整理即可得到最后的\(\theta\)的结果 \(\mathbf{\theta (X^TX \alpha E)^{-1}X^TY}\) 其中E为单位矩阵。 除了上面这两种常见的线性回归正则化还有一些其他的线性回归正则化算法区别主要就在于正则化项的不同和损失函数的优化方式不同这里就不累述了。 欢迎转载转载请注明出处。欢迎沟通交流 微信nickchen121 转载于:https://www.cnblogs.com/nickchen121/p/11214779.html