机器学习

您所在的位置:网站首页 最小二乘法表达式和推导过程 机器学习

机器学习

2024-07-02 05:58:21| 来源: 网络整理| 查看: 265

回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系。回归模型是表示输入变量到输出变量之间映射的函数。回归问题的学习等价于函数拟合:使用一条函数曲线使其很好的拟合已知函数且很好的预测未知数据。回归问题按照输入变量的个数可以分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归。

再写一遍:一可以加深理解和记忆,二练习latex语法,三后面latex公式直接从这里套用。 latex符号大全

求和符号、上标、下标、左括号、右括号分数、偏导符号上横线\overline{x}, x ‾ \overline{x} x下划线\underline{x}, x ‾ \underline{x} x​帽子\hat{x}, x ^ \hat{x} x^循环小数\dot{x}, x ˙ \dot{x} x˙ 一、 最小二乘法-公式推导 一元回归

在这里插入图片描述

设拟合直线的方程式为: y = a + b x y=a+bx y=a+bx $y=a+bx$ 现有样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x n , y n ) (x_1,y_1),(x_2,y_2)...(x_n,y_n) (x1​,y1​),(x2​,y2​)...(xn​,yn​) $(x_1,y_1),(x_2,y_2)...(x_n,y_n)$ 设 d i d_i di​为样本点到拟合线的距离,即误差: d i = y i − ( a + b x i ) d_i=y_i−(a+bx_i) di​=yi​−(a+bxi​) $d_i=y_i−(a+bx_i)$ 设 D D D 为差方和(为什么要取平方 => 防止正负相互抵消) D = ∑ i = 1 n d i 2 = ∑ i = 1 n ( y i − a − b x i ) 2 D = \sum_{i=1}^{n} d_{i}^{2} = \sum_{i=1}^{n}\left(y_{i}-a-bx_{i}\right)^{2} D=i=1∑n​di2​=i=1∑n​(yi​−a−bxi​)2 $$ D = \sum_{i=1}^{n} d_{i}^{2} = \sum_{i=1}^{n}\left(y_{i}-a-bx_{i}\right)^{2} $$ 我们要求 D D D最小,就是求 D D D的最小值。 最小值(一阶导数等于0,二阶大于等于0)最大值(一阶导数等于0,二阶小于等于0)因为 D D D为平方和,所以求一阶导数为0时,就满足 D D D最小

解答为什么求偏导

偏差平方和,恒大于等于0.同时可以知道,这玩意是不可能达到最大值的(只要足够偏离的话,那肯定是越来越大的),因此在偏导数为0时取到的是最小值咯~(取极值的条件嘛,偏导数为0)

对a求一阶偏导 ∂ D ∂ a = ∑ i = 1 n 2 ( y i − a − b x i ) ( − 1 ) = − 2 ∑ i = 1 n ( y i − a − b x i ) = − 2 ( ∑ i = 1 n y i − ∑ i = 1 n a − b ∑ i = 1 n x i ) = − 2 ( n y ˉ − n a − n b x ˉ ) \begin{aligned} \frac{\partial D}{\partial a} &=\sum_{i=1}^{n} 2\left(y_{i}-a-b x_{i}\right)(-1) \\ &=-2 \sum_{i=1}^{n}\left(y_{i}-a-b x_{i}\right) \\ &=-2\left(\sum_{i=1}^{n} y_{i}-\sum_{i=1}^{n} a-b \sum_{i=1}^{n} x_{i}\right) \\ &=-2(n \bar{y}-n a-n b \bar{x}) \end{aligned} ∂a∂D​​=i=1∑n​2(yi​−a−bxi​)(−1)=−2i=1∑n​(yi​−a−bxi​)=−2(i=1∑n​yi​−i=1∑n​a−bi=1∑n​xi​)=−2(nyˉ​−na−nbxˉ)​

$$ \begin{aligned} \frac{\partial D}{\partial a} &=\sum_{i=1}^{n} 2\left(y_{i}-a-b x_{i}\right)(-1) \\ &=-2 \sum_{i=1}^{n}\left(y_{i}-a-b x_{i}\right) \\ &=-2\left(\sum_{i=1}^{n} y_{i}-\sum_{i=1}^{n} a-b \sum_{i=1}^{n} x_{i}\right) \\ &=2(n \bar{y}-n a-n b \bar{x}) \end{aligned} $$

对b求一阶偏导 ∂ D ∂ b = ∑ i = 1 n 2 ( y i − a − b x i ) ( − x i ) = − 2 ∑ i = 1 n ( x i y i − a x i − b x i 2 ) = − 2 ( ∑ i = 1 n x i y i − a ∑ i = 1 n x i − b ∑ i = 1 n x i 2 ) = − 2 ( ∑ i = 1 n x i y i − a n x ‾ − b ∑ i = 1 n x i 2 ) \begin{aligned} \frac{\partial D}{\partial b} &=\sum_{i=1}^{n}2\left(y_i-a-bx_i\right)(-x_i)\\ &=-2\sum_{i=1}^{n}\left(x_iy_i-ax_i-bx_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-a\sum_{i=1}^{n}x_i-b\sum_{i=1}^{n}x_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2\right) \end{aligned} ∂b∂D​​=i=1∑n​2(yi​−a−bxi​)(−xi​)=−2i=1∑n​(xi​yi​−axi​−bxi2​)=−2(i=1∑n​xi​yi​−ai=1∑n​xi​−bi=1∑n​xi2​)=−2(i=1∑n​xi​yi​−anx−bi=1∑n​xi2​)​

$$ \begin{aligned} \frac{\partial D}{\partial b} &=\sum_{i=1}^{n}2\left(y_i-a-bx_i\right)(-x_i)\\ &=-2\sum_{i=1}^{n}\left(x_iy_i-ax_i-bx_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-a\sum_{i=1}^{n}x_i-b\sum_{i=1}^{n}x_i^2\right)\\ &=-2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2\right) \end{aligned} $$ 令偏导等于 0 − 2 ( n y ‾ − n a − n b x ‾ ) = 0 -2(n\overline{y}-na-nb\overline{x})=0 −2(ny​−na−nbx)=0 得:

= > => => a = y ‾ − b x ‾ (1) a=\overline{y}-b\overline{x} \tag{1} a=y​−bx(1)

$$ a=\overline{y}-b\overline{x} \tag{1} $$

− 2 ( ∑ i = 1 n x i y i − a n x ‾ − b ∑ i = 1 n x i 2 ) = 0 -2\left(\sum_{i=1}^{n}x_iy_i-an\overline{x}-b\sum_{i=1}^{n}x_i^2 \right) = 0 −2(i=1∑n​xi​yi​−anx−bi=1∑n​xi2​)=0,将公式(1)代入得:

= > ∑ i = 1 n x i y i − n x ˉ y ˉ + n b x ˉ 2 − b ∑ i = 1 n x i 2 = 0 =>\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}+n b \bar{x}^{2}-b \sum_{i=1}^{n} x_{i}^{2}=0 =>i=1∑n​xi​yi​−nxˉyˉ​+nbxˉ2−bi=1∑n​xi2​=0

= > ∑ i = 1 n x i y i − n x ˉ y ˉ = b ( ∑ i = 1 n x i 2 − n x ˉ 2 ) =>\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}=b\left(\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}\right) =>i=1∑n​xi​yi​−nxˉyˉ​=b(i=1∑n​xi2​−nxˉ2)

= > b = ∑ i = 1 n x i y i − n x ˉ y ˉ ∑ i = 1 n x i 2 − n x ˉ 2 (2) =>b=\frac{\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}}{\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}} \tag{2} =>b=∑i=1n​xi2​−nxˉ2∑i=1n​xi​yi​−nxˉyˉ​​(2)

$$ b=\frac{\sum_{i=1}^{n} x_{i} y_{i}-n \bar{x} \bar{y}}{\sum_{i=1}^{n} x_{i}^{2}-n \bar{x}^{2}} \tag{2} $$

实在是,想偷个懒,还有这个斜杠删除线是怎么敲出来的 在这里插入图片描述

二、线性回归-公式推导 多元回归 1. 拟合平面

h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2 hθ​(x)=θ0​+θ1​x1​+θ2​x2​ h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_\theta(x)=\sum_{i=0}^{n}\theta_ix_i=\theta^Tx hθ​(x)=∑i=0n​θi​xi​=θTx

θ 0 \theta_0 θ0​是偏置项, x = ( x 0 , x 1 , x 2 . . . x n ) x=(x_0,x_1,x_2 ... x_n) x=(x0​,x1​,x2​...xn​),为了满足 θ 0 \theta_0 θ0​起作用, x 0 = 1 x_0=1 x0​=1(相当于1式中省略了)。

在这里插入图片描述 红色的点表示真实值, 垂线与平面交点为预测值,高度差代表误差

2. 误差分析

真实值与预测值之间一定存在误差(用 ε \varepsilon ε 来表示误差)

$\varepsilon$

对于每一个样本 y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)} y(i)=θTx(i)+ε(i):

y ( i ) y^{(i)} y(i) 为真实值 θ T \theta^T θT 为参数矩阵 x ( i ) x^{(i)} x(i) 为第i条数据的属性矩阵 ε ( i ) \varepsilon^{(i)} ε(i) 为第i条数据所产生的误差,服从均值为 0 0 0 方差为 θ 2 \theta^2 θ2 的高斯分布(正太分布) $y^{(i)}=\theta^Tx^{(i)}+\varepsilon^{(i)}$

高斯分布: 在高斯分布中, 越靠近0的位置, 产生的偏差越小, 出现的概率就越大; 越远离0的位置, 产生的偏差越 大, 出现的概率就越小。(最大似然估计就是从此处的概率得出, 此处越接近0, 概率p越大) 在这里插入图片描述

3. 误差与高斯分布-公式代换

在这里插入图片描述

4. 似然函数与对数似然

似然函数: 似然函数是根据样本去估计参数的值的一个函数, 即是由数据去计算参数的大小为多大时, 参数和我们的数据组合后更接近真实值。(总而言之, 似然函数就是为了求解参数的函数)

对数似然: 对数似然相对于似然函数的有点在于运算方便。似然函数求取的方法是迭乘, 数字较大时会很不方便;对数似然求取的方法是迭加。(相比于似然函数而言, 对数似然较为实用) 在这里插入图片描述 在这里插入图片描述

5. 极大似然估计

极大似然估计: 极大似然估计即 L ( θ ) L(θ) L(θ) 或 log L ( θ ) L(θ) L(θ) 越大越好, 那么下式越小越好,这就是最小二乘法的工作。 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ)=21​i=1∑m​(hθ​(x(i))−y(i))2

矩阵转置公式:

( A T ) T = A (A^T)^T=A (AT)T=A ( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT ( λ A ) T = λ A T (\lambda A)^T=\lambda A^T (λA)T=λAT ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT B T A T = ( A B ) T B^TA^T=(AB)^T BTAT=(AB)T

矩阵(向量)求导公式: ∂ A x ⃗ ∂ x ⃗ = A T ∂ A x ⃗ ∂ x ⃗ T = A ∂ ( x ⃗ T A ) ∂ x ⃗ = A ∂ y ∂ x ⃗ = ∂ ( x ⃗ T A x ⃗ ) ∂ x ⃗ = ( A T + A ) x ⃗ = A x ⃗ + A T x ⃗ A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] x ⃗ = ( x 1 x 2 ⋮ x n ) A ⋅ x ⃗ = ( a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n ) ∂ y ⃗ ∂ x ⃗ = ∂ A x ⃗ ∂ x ⃗ = [ a 11 a 21 ⋯ a m 1 a 12 a 22 ⋯ a m 2 ⋮ ⋮ ⋱ ⋮ a 1 n a 2 n ⋯ a m n ] = A T \begin{aligned} \frac{\partial A\vec{x}}{\partial \vec{x}}&=A^T\\ \\ \frac{\partial A\vec{x}}{\partial \vec{x}^T}&=A\\ \\ \frac{\partial (\vec{x}^T A)}{\partial \vec{x}}&=A\\ \\ \frac{\partial y}{\partial \vec{x}}=\frac{\partial(\vec{x}^TA\vec{x})}{\partial\vec{x}}&=(A^T+A)\vec{x}=A\vec x+A^T \vec x \end{aligned} \\ A=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right] \quad \vec{x}=\left(\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right) \quad A \cdot \vec{x}=\left(\begin{array}{c} a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \\ \vdots \\ \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \end{array}\right)\\ \frac{\partial\vec{y}}{\partial\vec{x}}= \frac{\partial A\vec{x}}{\partial\vec{x}}= \left[\begin{array}{cccc} a_{11} & a_{21} & \cdots & a_{m1}\\ a_{12} & a_{22} & \cdots & a_{m2}\\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{array}\right]= A^T ∂x ∂Ax ​∂x T∂Ax ​∂x ∂(x TA)​∂x ∂y​=∂x ∂(x TAx )​​=AT=A=A=(AT+A)x =Ax +ATx ​A=⎣⎢⎢⎢⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​⋯⋯⋱⋯​a1n​a2n​⋮amn​​⎦⎥⎥⎥⎤​x =⎝⎜⎜⎜⎛​x1​x2​⋮xn​​⎠⎟⎟⎟⎞​A⋅x =⎝⎜⎜⎜⎜⎜⎛​a11​x1​+a12​x2​+⋯+a1n​xn​a21​x1​+a22​x2​+⋯+a2n​xn​⋮am1​x1​+am2​x2​+⋯+amn​xn​​⎠⎟⎟⎟⎟⎟⎞​∂x ∂y ​​=∂x ∂Ax ​=⎣⎢⎢⎢⎡​a11​a12​⋮a1n​​a21​a22​⋮a2n​​⋯⋯⋱⋯​am1​am2​⋮amn​​⎦⎥⎥⎥⎤​=AT

\begin{aligned} \frac{\partial A\vec{x}}{\partial \vec{x}}&=A^T\\ \\ \frac{\partial A\vec{x}}{\partial \vec{x}^T}&=A\\ \\ \frac{\partial (\vec{x}^T A)}{\partial \vec{x}}&=A\\ \\ \frac{\partial y}{\partial \vec{x}}=\frac{\partial(\vec{x}^T\cdot{A}\cdot\vec{x})}{\partial\vec{x}}&=(A^T+A)\cdot \vec{x} \end{aligned} \\ A=\left[\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right] \quad \vec{x}=\left(\begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{array}\right) \quad A \cdot \vec{x}=\left(\begin{array}{c} a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \\ \vdots \\ \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \end{array}\right)\\ \frac{\partial\vec{y}}{\partial\vec{x}}= \frac{\partial A\vec{x}}{\partial\vec{x}}= \left[\begin{array}{cccc} a_{11} & a_{21} & \cdots & a_{m1}\\ a_{12} & a_{22} & \cdots & a_{m2}\\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{array}\right]= A^T

latex 矩阵写法: 0 1 1 0 ( 0 − i i 0 ) [ 0 − 1 1 0 ] { 1 0 0 − 1 } ∣ a b c d ∣ ∥ i 0 0 − i ∥ \begin{gathered} \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \quad \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} \quad \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \quad \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} i & 0 \\ 0 & -i \end{Vmatrix} \end{gathered} 01​10​(0i​−i0​)[01​−10​]{10​0−1​}∣∣∣∣​ac​bd​∣∣∣∣​∥∥∥∥​i0​0−i​∥∥∥∥​​

$$ \begin{gathered} \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \quad \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} \quad \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \quad \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} \quad \begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} i & 0 \\ 0 & -i \end{Vmatrix} \end{gathered} $$

矩阵式求解: 当我们的数据集含有m个样本,每个样本有n个特征时,数据x可以写成m*(n+1)维的矩阵(+1是添加一列1,用于与截断b相乘),θ则为n+1维的列向量(+1是截断b),y为m维的列向量代表每m个样本结果的预测值。则矩阵式的推导如下所示: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) = 1 2 ( θ T X T − y T ) ( X θ − y ) = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) 求导: ∂ J ( θ ) ∂ θ = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y 偏导等于0: θ = ( X T X ) − 1 X T y \begin{aligned} J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\\ &=\frac{1}{2}(X\theta-y)^T(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\\ \textbf{求导:}\\ \frac{\partial J(\theta)}{\partial\theta}&=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty\\ \textbf{偏导等于0:}\\ \theta&=(X^TX)^{-1}X^Ty \end{aligned} J(θ)求导:∂θ∂J(θ)​偏导等于0:θ​=21​i=1∑m​(hθ​(x(i))−y(i))2=21​(Xθ−y)T(Xθ−y)=21​(θTXT−yT)(Xθ−y)=21​(θTXTXθ−θTXTy−yTXθ+yTy)=21​(2XTXθ−XTy−(yTX)T)=XTXθ−XTy=(XTX)−1XTy​

$$ \begin{aligned} J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2\\ &=\frac{1}{2}(X\theta-y)^T(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\\ &=\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\\ \textbf{求导:}\\ \frac{\partial J(\theta)}{\partial\theta}&=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty\\ \textbf{偏导等于0:}\\ \theta&=(X^TX)^{-1}X^Ty \end{aligned} $$ 6. 梯度下降算法

如果X的特征数 n n n 不是很大,通常情况下 X T X X^TX XTX是可以求逆的,但是如果 n n n 非常大, X T X X^TX XTX 不可逆,则用梯度下降法求解参数 θ θ θ。

在一元函数中叫做求导,在多元函数中就叫做求梯度。梯度下降是一个最优化算法,通俗的来讲也就是沿着梯度下降的方向来求出一个函数的极小值。比如一元函数中,加速度减少的方向,总会找到一个点使速度达到最小。通常情况下,数据不可能完全符合我们的要求,所以很难用矩阵去求解,所以机器学习就应该用学习的方法,因此我们采用梯度下降,不断迭代,沿着梯度下降的方向来移动,求出极小值。梯度下降法包括批量梯度下降法和随机梯度下降法(SGD)以及二者的结合mini批量下降法(通常与SGD认为是同一种,常用于深度学习中)

梯度下降一般过程

初始化 θ \theta θ (随机)

求 J ( θ ) J(\theta) J(θ) 对 θ \theta θ 的偏导 在这里插入图片描述

更新 θ \theta θ

在这里插入图片描述 其中α为学习率,沿着负梯度方向迭代,更新后的θ使得J(θ)更小。因为J(θ)是凸函数,所以GD求出的最优解是全局最优解。

批量梯度下降法 是求出整个数据集的梯度,再去更新θ,所以每次迭代都是在求全局最优解。 在这里插入图片描述 随机梯度下降法 是求一个样本的梯度后就去跟新θ,所以每次迭代都是求局部最优解,但是总是朝着全局最优解前进,最后总会到达全局最优解。 在这里插入图片描述

7. 使用正则项防止过拟合

在机器学习中,有时为了防止模型太复杂容易过拟合,通常会在模型上加入正则项,抑制模型复杂度,防止过拟合。在线性回归中有两种常用的正则,一个是L1正则,一个是L2正则。 一般L2的效果更好一些。L1能够产生稀疏模型,能够帮助我们去除某些特征,因此可以用于特征选择。

加入 L1正则 的称为 Lasso回归: 在这里插入图片描述 加入 L2正则 的成为 Ridge回归 也叫 岭回归:

在这里插入图片描述

三、代码实现 import numpy as np class LinearRegression(object): def __init__(self): self.theta = [0] self.loss = [] def fit(self,x_data,y_data,alpha=0.01,iters=1): x_data = np.array(x_data) y_data = np.array(y_data) feat_n = x_data.shape[1] #特征数量 print(x_data) print(x_data.shape) x_data = np.insert(x_data,feat_n-1,1,axis=1) #插入一列1 self.theta = self.theta*(feat_n+1) print(x_data) print(x_data.shape) #随机梯度下降 for i in range(iters): for x,y in zip(x_data,y_data): predict = self.__pre(x) err = y-predict self.theta = self.theta + np.multiply(alpha*err,x) self.loss.append(self.cost(x[:-1].reshape(-1,feat_n),y)) def __pre(self,x): return np.dot(x,self.theta) def predict(self,x): x = np.array(x) x = np.insert(x,x.shape[1]-1,1,axis=1) return self.__pre(x) def cost(self,x,y): return (1/2.0)*sum(np.power(self.predict(x)-y,2)) def get_weight(self): return self.theta[:-1] def get_loss(self): return self.loss def get_intercept(self): return self.theta[-1]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭