分类问题:Logistic回归算法

分类问题

Logistic回归算法

分类问题:Logistic回归算法

如果使用直线来拟合数据的话,我们将分类器输出阈值设为0.5,若h θ ( x ) ⩾ 0.5 h_\theta(x)\geqslant0.5 h θ​(x )⩾0 .5,则可以预测y = 1 y=1 y =1,否则认为y = 0 y=0 y =0。但是如果我们再训练集中再添加一个Tumor Size很大的点,再运行线性回归我们会得到另一条直线去拟合数据,此时如果再选择0.5作为阈值则分类结果不理想。所以线性回归通常不是解决分类问题的好方法。

当面对一个分类问题时,我们应该如何选择假设方程?

分类问题:Logistic回归算法

在logistic回归模型中我们通常将假设函数定义为h θ ( x ) = g ( θ T x ) h_\theta(x)=g(\theta^Tx)h θ​(x )=g (θT x ),其中g g g是关于z z z的函数:g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}}g (z )=1 +e −z 1 ​,称为logistic函数或sigmoid函数。由此我们可以得到假设函数的形式为:h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}h θ​(x )=1 +e −θT x 1 ​。有logistic函数的图像可以看出,其定义域为(− ∞ -\infty −∞,+ ∞ +\infty +∞)值域为(0,1),因此假设函数h θ ( x ) h_\theta(x)h θ​(x )的值就一定在0和1之间。

; 决策界限(decision boundary)

上面我们知道了logistic回归的假设函数形式,那么这个假设函数在何时会预测y = 1 y=1 y =1,何时预测y = 0 y=0 y =0呢?具体地说,这个假设函数输出的是给定x x x和参数θ \theta θ时,y = 1 y=1 y =1的估计概率。因此我们可以设定当h θ ( x ) ⩾ 0.5 h_\theta(x)\geqslant0.5 h θ​(x )⩾0 .5时认为y = 1 y=1 y =1,否则认为y = 0 y=0 y =0。

分类问题:Logistic回归算法

由sigmoid函数图像可以看出,当z ⩾ 0 z\geqslant0 z ⩾0时,g ( z ) ⩾ 0.5 g(z)\geqslant0.5 g (z )⩾0 .5,即θ T x ⩾ 0 \theta^Tx\geqslant0 θT x ⩾0时,h θ ( x ) ⩾ 0.5 h_\theta(x)\geqslant0.5 h θ​(x )⩾0 .5,此时我们预测y = 1 y=1 y =1。

例如,假设我们已经拟好了参数θ = [ − 3 , 1 , 1 ] T \theta=[-3,1,1]^T θ=[−3 ,1 ,1 ]T,由上述可知,当假设函数h θ ( x ) ≥ 0.5 h_\theta(x)\ge0.5 h θ​(x )≥0 .5,即θ T x ≥ 0 \theta^Tx\ge0 θT x ≥0时,我们可以预测y = 1 y=1 y =1,所以只要任何一个x x x满足等式x 1 + x 2 ≥ 3 x_1+x_2\ge3 x 1 ​+x 2 ​≥3,那么我们就能预测y = 1 y=1 y =1。

分类问题:Logistic回归算法

其中x 1 + x 2 = 3 x_1+x_2=3 x 1 ​+x 2 ​=3这条直线也就是决策边界,他将整个平面分成了两部分,其中一片区域假设函数预测y = 1 y=1 y =1,另一区域预测y = 0 y=0 y =0。

决策边界是假设函数的一个属性,他包括参数θ 0 , θ 1 , θ 2 \theta_0,\theta_1,\theta_2 θ0 ​,θ1 ​,θ2 ​,在上图例子中我们给出了一个训练集,但是即使我们去掉这个数据集,这条决策边界以及我们预测的y = 1 y=1 y =1和y = 0 y=0 y =0的区域,他们都是假设函数的属性,决定于其参数,与具体的数据集无关。 只要我们有具体的参数θ \theta θ ,我们就将完全确定决策边界。

如何拟合Logistic回归模型中参数 θ \theta θ 的值?

在线性回归中,我们定义代价函数J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(\theta)={ \frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta}\left ( x^{i} \right )-y^{i} \right )^2}J (θ)=2 m 1 ​∑i =1 m ​(h θ​(x i )−y i )2,但是在Logistic回归模型中假设函数的形式为h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}h θ​(x )=1 +e −θT x 1 ​,此时将其代入代价函数中,得到的代价函数是一个非凸函数,存在多个局部最优解(如下图左),此时若运行梯度下降算法计算代价函数的最小值,那么很可能得不到全局最优解。因此我们需要另外找一个代价函数来保证利用梯度下降法能够找到全局最小值。

分类问题:Logistic回归算法

下面是我们针对Logistic回归模型定义的代价函数C o s t ( h θ ( x ) , y ) Cost(h_\theta(x),y)C o s t (h θ​(x ),y )(注意:代价函数是为了根据训练集的数据来找到代价最小时的参数θ \theta θ,因此关于x , y x,y x ,y的值都是训练集中已经给出的,我们要做的是找到合适的θ \theta θ来拟合数据。)

如果y = 1 y=1 y =1时:

分类问题:Logistic回归算法

如果y = 0 y=0 y =0时:

分类问题:Logistic回归算法

下面我们使用稍微简单一点的方法来写代价函数来替换上面的写法。这个式子是根据统计学中的极大似然估计得到的。

分类问题:Logistic回归算法

根据这个代价函数,我们要找出使得J ( θ ) J(\theta)J (θ)取得最小值的参数θ \theta θ。如果我们试着减小代价函数j ( θ ) j(\theta)j (θ)的取值,我们将得到某组参数θ \theta θ,最后,如果给我们一个新的样本具有某些特征值x x x,我们就可以用拟合训练样本的参数θ \theta θ来输出这种预测。此外,假设函数输出的取值h θ ( x ) h_\theta(x)h θ​(x )实际上就是y = 1 y=1 y =1的概率。

分类问题:Logistic回归算法

接下来要做的就是弄清楚如何最小化代价函数J ( θ ) J(\theta)J (θ),这样我们才能为训练拟合出参数θ \theta θ。

最小化代价函数J ( θ ) J(\theta)J (θ)使用的是梯度下降法:

分类问题:Logistic回归算法

这里的1 m \frac{1}{m}m 1 ​是常数,应该可以并入到学习率α \alpha α里面,最后得到的代价函数为:

分类问题:Logistic回归算法

我们可以看到Logistic回归的代价函数和线性回归的代价函数式子是完全一样的,但是我们要注意的是,Logistic回归算法中的假设函数h θ ( x ) h_\theta(x)h θ​(x )的定义发生了变化。因此,即使更新参数的规则看起来基本相同,但由于假设函数的定义不同,所以他和线性回归的梯度下降实际上是两个完全不同的东西。

; 多元分类:一对多

下面就是一个多元分类的例子,我们要做的就是把这个训练集转化为三个独立的二元分类问题。

分类问题:Logistic回归算法
实际上每个分类器h θ ( i ) ( x ) h_{\theta}^{(i)}(x)h θ(i )​(x )计算的是正类别的概率,例如第二个分类器将正方形作为正类别,那么h θ ( 2 ) ( x ) h_{\theta}^{(2)}(x)h θ(2 )​(x )的值就等于给定x x x和θ \theta θ时,y = 2 y=2 y =2的概率。

Original: https://blog.csdn.net/weixin_44320429/article/details/122728164
Author: 周八营业的代码人
Title: 分类问题:Logistic回归算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/664473/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球