机器学习自我总结第二周
机器学习第二周:逻辑回归
逻辑回归是一种分类算法
1.什么是分类
- 接收的消息是否是垃圾消息(是,不是)
- 肿瘤是良性还是恶性(0-良性 1-恶性)
-…
对于以上的问题我们都可以用是和否来表示
分类需要建立一个模型
如果按照一般的线性回归模型,讲肿瘤的大小作为因变量,输出0-良性,1-恶性。
假设用线性回归的假设函数hθ(x)h_θ(x)hθ(x),会让我们认为,当我们的的值输出小于0.5的时候,所得的是良性,当我们输出的值大于0.5的时候,所得的是恶性。但是,线性回归会使得到的h(x)的值远大于1或者是远小于1,会发现此时的图像,若小于0.5,不一定就是良性,就会出现偏差,所以线性回归的假设函数,并不适用于分类问题。
所以此时我们就需要构造一个新的假设函数使得输出的值永远处于(0,1)之间,及0<=hθ(x)<=10<=h_\theta(x)<=10<=hθ(x)<=1
构造新的假设函数
要使得输出的值永远在(0,1)之间,逻辑回归的假设函数是hθ(x)=g(θTX)h_\theta(x) = g(\theta^TX)hθ(x)=g(θTX)
其中的g代表的是逻辑函数一个S型的函数公式为,g(x)=11+e−xg(x) = \frac{1}{1+e^{-x}}g(x)=1+e−x1,将x=θTXx=θ^TXx=θTX带入,得g(x)=11+e−θTxg(x) = \frac{1}{1+e^{-θ^Tx}}g(x)=1+e−θTx1
由图可得,函数的区间就是(0,1),因此可以用作分类,当大于0.5的时候,恶性,小于0.5的时候良性。且,当里面的θTx\theta^TxθTx大于零的时候,趋向1,当小于零的时候趋向零
所以到现在为止:
- 我们建立的模型需要使0<=hθ(x)<=10<=h_\theta(x)<=10<=hθ(x)<=1
- 建立为g(z)=11+e−zg(z) = \frac{1}{1+e^{-z}}g(z)=1+e−z1
- 带入得逻辑函数的假设函数hθ(x)=g(θTX)=11+e−θTxh_\theta(x) = g(\theta^TX) = \frac{1}{1+e^{-θ^Tx}}hθ(x)=g(θTX)=1+e−θTx1
hθ(x)h_\theta(x)hθ(x) 的作用是给定x,通过已经确定的参数计算得出变量等于正向类的可能性
判断边界
所谓判断边界就是确定分类时各自的界限,让我们更直观的看出假设函数的目的。
可以从图像上更直观的体现出分类
假设参数θ已知,要判断取1还是0,就判断 θTX\theta^TXθTX 的值
若对于hθ(x)=g(θ0+θ1x1+θ2x2)h_\theta(x) =g(\theta_0+ \theta_1x_1 +\theta_2x_2 )hθ(x)=g(θ0+θ1x1+θ2x2),已知θ012θ_{012}θ012分别为-3 1 1,就得出 函数-3 + x1 + x2 >= 0,就可以分类的分界线。
代价函数
与线性回归方程类似,逻辑回归也需要一个最适合的θ值(或者多个),要找到这些就一样用代价函数。首先线形回归的代价函数为 j(θ)=12m∑i=1m(hθx(i)−y(i))2j(θ) = \frac{1}{2m}\sum^{m}_{i = 1}(h_θx^{(i)}-y^{(i)})^2 j(θ)=2m1i=1∑m(hθx(i)−y(i))2
因为hθ(x)h_\theta(x)hθ(x)不同,对于逻辑回归,我们需要做一些改动
逻辑回归的代价函数为:j(θ)=1m∑i=1mCost(hθ(x(i)),y(i))j(θ) = \frac{1}{m}\sum^{m}_{i = 1}Cost(h_θ(x^{(i)}),y^{(i)}) j(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
其中Cost(hθ(x(i)),y(i))Cost(h_θ(x^{(i)}),y^{(i)})Cost(hθ(x(i)),y(i)):Cost(hθ(x),y)={−log(1−h(x)),if y=0−log(h(x)),if y=1Cost(h_θ(x),y)=\{^ {-log(h(x)),if \ y = 1} _{-log(1-h(x)),if \ y = 0}Cost(hθ(x),y)={−log(1−h(x)),if y=0−log(h(x)),if y=1
将其合并,并带入代价函数J(θ)得:J(θ)=−1m∑i=1m[y(i)log(h(x(i))+(1−y(i))log(1−hθ(x(i)))]J(\theta)=-\frac{1}{m}\sum^{m}_{i = 1}[y^{(i)}log(h(x^{(i)})+(1-y^{(i)})log(1-h_\theta (x^{(i)}))]J(θ)=−m1i=1∑m[y(i)log(h(x(i))+(1−y(i))log(1−hθ(x(i)))]
…式子真的很长,但是其目的也是为了找出参数的θ的最优值,因此在此基础之上,我们同样需要用梯度下降去解决代价函数。
梯度下降:θj:=θj−αϕϕθjj(θ)\theta_j:=\theta_j -\alpha\frac{\phi}{\phi\theta_j}j(\theta)θj:=θj−αϕθjϕj(θ),带入可得:
θj:=θj−α1m∑i=1m(hθx(i)−y(i))xj(i)\theta_j:=\theta_j -\alpha \frac{1}{m}\sum^{m}_{i = 1}(h_θx^{(i)}-y^{(i)})x_j^{(i)}θj:=θj−αm1i=1∑m(hθx(i)−y(i))xj(i)
样子和线形回归类似,但是因为他们的假设函数不同 因此是不同的
以上属于二元分类,生活中更多是多类别分类
比如说同样是天气,但是要区分,晴天,雨天,阴天。此时需要想办法把它变成多个二元分类。
此时我们需要构造一个分类器
我们设晴天为正向类,雨天和阴天两者一起为负向类,此时我们令一个hθ(1)(x)h_\theta^{(1)}(x)hθ(1)(x),这样紫就可以得出一个第一个决策边界,区分晴天和其他天气
接着我们设雨天为正向类同样的,其他天气为负向类,这样可以得到一个hθ(2)(x)h_\theta^{(2)}(x)hθ(2)(x),这个可以得到第二个决策边界,区分雨天和其他天气
最后我们设阴天为正向类同样的,其他天气为负向类,这样可以得到一个hθ(3)(x)h_\theta^{(3)}(x)hθ(3)(x),这个可以得到第三个决策边界,区分阴天和其他天气
这样可以得到三个决策边界,最后每一个分别带入参数θ和x,得到每一个的正向量的概率P,因此得以判断是哪一类。
正则化:
当我们估计一个东西的值,使用普通的线形回归如,h(x)=θ0+θ1x1h(x) = \theta_0+\theta_1x_1h(x)=θ0+θ1x1,此时构造出来的模型,误差会很大,称之为欠拟合
当我们估计一个东西的值,十分精确的对应每一个值建立出的模型,虽然很适合我们的的训练集,但是喃,当我们放入一个新的值的时候,效果并不是那么好,称为过度拟合,一般过度拟合的式子就是由于他是多项式,且x的次数会很高(这样拟合会很好),如:h(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4h(x) = \theta_0+\theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4h(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4
因此,防止过度拟合的情况发生,根据过度拟合出现的条件我们可反推出
- 舍弃部分不是很重要的特征
- 保留特征,减小参数的大小(正则化)
正则化,就是减小参数θ的值,对θ值的“惩罚”。用正则化参λ进行一系列操作,如:
J(θ)=12m[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2]J(\theta) = \frac1{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 + \lambda\sum_{j=1}^{n}\theta_j^2]J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
后面这一块就是对θ值的“惩罚”,使得θ的值变小。
但是对于正则化的λ也要选择合适,若太大,就会导致其他的θ值都趋近于0,使得我们需要的图像变成只有θ0 的直线。
正则化线形回归
正则化线形回归的代价函数为:J(θ)=12m[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2]J(\theta) = \frac1{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 + \lambda\sum_{j=1}^{n}\theta_j^2]J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
梯度下降:θ0:=θ0−a1m∑i=1m(hθ(x(i))−y(i))x0(i)\theta_0 : = \theta_0 -a\frac1m\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}θ0:=θ0−am1i=1∑m(hθ(x(i))−y(i))x0(i)
θj:=θj−a[1m∑i=1m(hθ(x(i))−y(i))xj(i)+λmθj]\theta_j : = \theta_j - a[\frac1m\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} + \fracλm\theta_j]θj:=θj−a[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
同样的正规方程求解正则化线性回归模型:
正则化逻辑回归
一样的在后面对θ进行“惩罚”:J(θ)=−1m∑i=1m[y(i)log(h(x(i))+(1−y(i))log(1−hθ(x(i)))]+λ2m∑j=1nθj2J(\theta)=-\frac{1}{m}\sum^{m}_{i = 1}[y^{(i)}log(h(x^{(i)})+(1-y^{(i)})log(1-h_\theta (x^{(i)}))]+ \fracλ{2m}\sum_{j=1}^{n}\theta_j^2J(θ)=−m1i=1∑m[y(i)log(h(x(i))+(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2
其梯度下降为:θ0:=θ0−a1m∑i=1m(hθ(x(i))−y(i))x0(i)\theta_0 : = \theta_0 -a\frac1m\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}θ0:=θ0−am1i=1∑m(hθ(x(i))−y(i))x0(i)
θj:=θj−a[1m∑i=1m(hθ(x(i))−y(i))xj(i)+λmθj]\theta_j : = \theta_j - a[\frac1m\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} + \fracλm\theta_j]θj:=θj−a[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]