厦门网站制作公司推荐,作文网投稿网站,丹麦做网站公司有哪些,网站建设需要写语句吗1.正则化线性回归
对于线性回归的求解#xff0c;我们之前推导了两种学习算法#xff1a;一种基于梯度下降#xff0c;一种基于正规方程。
正则化线性回归的代价函数为#xff1a; J ( θ ) 1 2 m [ ∑ i 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 λ ∑ j 1 n θ j 2 …1.正则化线性回归
对于线性回归的求解我们之前推导了两种学习算法一种基于梯度下降一种基于正规方程。
正则化线性回归的代价函数为 J ( θ ) 1 2 m [ ∑ i 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 λ ∑ j 1 n θ j 2 ] J(\theta) \frac{1}{2m} \left[ \sum_{i1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right)^2 \lambda \sum_{j1}^{n} \theta_j^2 \right] J(θ)2m1[i1∑m(hθ(x(i))−y(i))2λj1∑nθj2] 如果我们要使用梯度下降法令这个代价函数最小化因为我们未对其进行正则化所以梯度下降算法将分两种情形 上面的算法中 1,2, . . . , 时的更新式子进行调整可得 θ j : θ j ( 1 − a λ m ) − a 1 m ∑ i 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j : \theta_j \left(1 - a \frac{\lambda}{m}\right) - a \frac{1}{m} \sum_{i1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) x_j^{(i)} θj:θj(1−amλ)−am1i1∑m(hθ(x(i))−y(i))xj(i)可以看出正则化线性回归的梯度下降算法的变化在于每次都在原有算法更新规则的基础上令值减少了一个额外的值。
我们同样也可以利用正规方程来求解正则化线性回归模型方法如下所示 图中的矩阵尺寸为 ( 1) ∗ ( 1)
2.正则化的逻辑回归模型
针对逻辑回归问题我们在之前已经学习过两种优化算法我们首先学习了使用梯度下降法来优化代价函数()接下来学习了更高级的优化算法这些高级优化算法需要你自己设计代价函数()。 自己计算导数同样对于逻辑回归我们也给代价函数增加一个正则化的表达式得到代价函数 J ( θ ) 1 m ∑ i 1 m [ − y ( i ) log ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] λ 2 m ∑ j 1 n θ j 2 J(\theta) \frac{1}{m} \sum_{i1}^{m} \left[ -y^{(i)} \log \left( h_{\theta}(x^{(i)}) \right) - (1 - y^{(i)}) \log \left( 1 - h_{\theta}(x^{(i)}) \right) \right] \frac{\lambda}{2m} \sum_{j1}^{n} \theta_j^2 J(θ)m1i1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]2mλj1∑nθj2 Python 代码
import numpy as np
def costReg(theta, X, y, learningRate):theta np.matrix(theta)X np.matrix(X)y np.matrix(y)first np.multiply(-y, np.log(sigmoid(X*theta.T)))second np.multiply((1 - y), np.log(1 - sigmoid(X*theta.T)))reg (learningRate / (2 * len(X))* np.sum(np.power(theta[:,1:the
ta.shape[1]],2))return np.sum(first - second) / (len(X)) reg要最小化该代价函数通过求导得出梯度下降算法为 注看上去同线性回归一样但是知道 h ( ) ( ) ℎ_() (^) h(x)g(TX)所以与线性回归不同