版权声明: https://blog.csdn.net/Dr_destiny/article/details/82805136
1.关于Logistic Regression的一些基本问题
(1) Logistic Regression的名字
虽然字面上Logistic Regression是一种回归方法,但实际上,它是一种分类(Classification) 方法。
(2) 假设
hθ(x)的内在含义
在Logistic Regression回归中,假设函数的形式如下:
hθ(x)=1+e−θTx1
这就是所谓的Logistic函数或者Sigmoid函数。
该函数的值域是(0,1),可以将其输出解释为:对于输入
x,
hθ(x)是该输入所对应输出
y=1的概率。
(3) Logistic Regression的梯度下降推导
先说结论:Logistic Regression的参数更新表达式在形式上和线性回归是一样的,只不过假设
hθ(x)的形式不同,接下来是推导过程:
θj:=θj−α∂θj∂J(θ)
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))] # 关于为什么
J(θ)这样表示,这里就不赘述了,详情参见吴恩达的机器学习课程。
∴∂θj∂J(θ)=−m1i=1∑m[y(i)hθ(x(i))1∂θj∂hθ(x(i))−(1−y(i))1−hθ(xi)1∂θj∂hθ(x(i))]=−m1i=1∑m[y(i)(1−e−θTx(i))(−(1−e−θTx(i))2xj(i)e−θTx(i))−(1−y(i))−e−θTx(i)1−e−θTx(i)((−(1−e−θTx(i))2xj(i)e−θTx(i)))]=−m1i=1∑m[1−e−θTx(i)−y(i)xj(i)e−θTx(i)−1−e−θTx(i)(1−y(i))xj(i)]=−m1i=1∑m1−eθTx(i)xj(i)(y(i)(1−eθTx(i))−1)=m1i=1∑m(hθ(x(i))−y(i))xj(i)
可以看出,Logistic Regression的参数更新表达式在形式上和线性回归是一样的。
2.关于正则化的一些基本问题
(1) 正则化的初衷
我的理解是:因为不知道哪些项会导致过拟合,所以干脆将所有系数变小。(虽然这样的方法比较粗暴,但是管用啊!)(当然,正则化系数也不能太大,否则反而会造成欠拟合)
(2) 关于添加特征和运用正则化后的模型预测效果
这一点是从课程测验里总结出来的:
- 添加一个新特征,
hθ(x)在训练集数据上会表现得更好(这个很好理解,添加特征能使模型更加拟合训练集数据,但是对于新数据会导致更加严重的过拟合)
- 运用正则化后,
hθ(x)在预测新数据时表现得不一定更好(说不定本来就拟合得很好,结果用了正则化,所有系数变小,反而不如正则化之前的表现了)
(3) 关于Logistic Regression的cost function正则化表达式
这一条是在我做完本章作业之后加上的,因为自己忘记了一个很重要的细节:
Logistic Regression的正则化cost function如下:
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2
重点就在于后面的正则项!!!
θ0不进行正则化所以正则项里并没有包含
θ0。但是在matlab的矩阵中是从theta(1)开始的,所以我在参照公式编程的时候忘记正则项里并没有包含
θ0 这一点!!!浪费了我好长时间。
一定要记住这个教训!