🤵♂️ 个人主页: @计算机魔术师
👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。
该文章收录专栏
✨— 机器学习 —✨
【机器学习】logistics分类
一、线性回归能用于分类吗?
(数理逻辑)回归算法(预测离散值
的 非常常用的学习算法
假设有如下的八个点(,我们需要建立一个模型得到准确的判断,那么应该如何实现呢
- 我们尝试使用之前文章所学的线性回归
来拟合数据(
是参数列向量,注意这里的
是关于
的向量,其中
),并在0~1设置一个阈值
,
大于
的点则为1,否则为0,预测会得到如下粉丝直线,
上一篇文章: 【机器学习】浅谈正规方程法&梯度下降
所以梯度下降算法中引出 logistic regression 算法
二、二元分类
2.1假设函数
我们希望能把
结果在 0 ~ 1 之间,
这里引入 函数 (也叫做
函数) ——
函数图像是一个区间在 0 ~ 1的S型函数,
则
,
则
- 令
那么我们的函数结果结果就会在0 ~ 1 之间
那现在我们所要做的便是需要求得参数 拟合模型
如下图,假设肿瘤案例,如下
为一个病人 同样的用列向量表示
的参数,那么参数一tumorSize便是肿瘤的大小,那么我们可以假设输出结果为 0.7 ,意思就是医生会告诉这个病人很不幸,会有很大(70%)的概率得到肿瘤。
- 那么公式可以表示为
- 即在
的条件下 求给定
(概率参数为
)的概率
概率结果只在0 ~ 1中
- 假设如下
那么此时我们可以设置阈值
= 0.5,大于 0.5 的点则为1,否则为0
即在 (即
)中
< 0.5, 此时预测为0,在
(即
) 时,
预测值为1
2.1.1 案例一
此时如果满足 > 0.5 , 也就是横坐标
(这里的
是对应线性方程) 大于零,预测 y 为 1 条件则如下:
即一条切割线的右侧,此时 , y值 大于0.5
此时该切割线分割除了两个区域,分别是 的 情况,我们把这条边界,称为决策边界,这些都是关于假设函数的属性,决定于其参数,与数据集属性无关
2.1.2例子二
有数据集如下:
那我们的预测y=1时,横坐标
满足条件为
- 强调: 决策边界并不是数据集的属性,而是假设函数以及其参数的属性,数据集则是用于拟合参数
不同的高阶多项式 会得到不一样的决策边界
如:
2.2 拟合logistic回归参数 
- 代价函数
我们给定如数据集
- 那么我们如何选择参数
呢?
在往篇文章中我们线性回归的均方差代价函数可以变化如下:
我们往往希望找到如下的凹型代价函数,以可以找到参数最优。
三、logistic代价函数
3.1 当
代价函数图像
对该代价函数,我们可以画出当时的图像。(由于
函数值域在0~1,对应代价函数横坐标为0 ~1)
- 从图中我们也可以看到作为代价函数 很好的性质
-
当
时,即代价函数为0,此时有
即模型拟合优秀
-
当
时,即代价函数
,此时
即为 。此时说明模型拟合非常差
显然当 时 这个代价函数满足我们的要求
3.2 当
代价函数图像
对应 的情况下:
- 如下图
-
当
时,即代价函数为
,此时有
即模型拟合优秀
-
当
时,即代价函数
,此时
即为 。函数惩罚很大
同样的符合代价函数性质
至此,我们定义了关于单变量数据样本的分类代价函数,我们所选择的代价函数可以为我们解决代价函数为非凹函数的问题以及求解参数最优,接下来我们使用梯度下降算法来拟合 算法
四、 代价函数与梯度下降
为了避免让代价函数分为 两种情况 ,我们要找一个方法来把这两个式子合并成一个等式,以便更简单写出代价函数,并推导出梯度下降。
公式如下图蓝色字体公式:
由于 y 只有两个情况 0,1 ,利用该性质 当y = 1 时,y=0情况的多项式消去,y = 0 时同理,这样就成功表达了两种不同情况的函数
- 通过将式子合并为一个等式,代价函数(cost function) 变化为如下(参考:统计学的极大似然法:
为不同模型已知数据寻找参数的方法,即选取概率最大的参数
)
最大似然函数参考文章
- 同样,将微积分求其偏导
- 并用此公式更新每个参数 (注意是:同步更新)
4.1 线性回归与logistic回归的梯度下降规则
我们可以惊奇的发现以上公式与线性回归时所用来梯度下降的方程一样
那么线性回归和logistic
回归是同一种算法吗?
线性回归和logistic在梯度下降更新的函数区别在于:
- 对于线性回归 :
- 对于logistic回归:
虽然在梯度下降算法看起来规则相同,但假设的定义发生了变化,所以梯度下降和logistic回归是完全不一样的算法
- 我们用此算法更新各个参数,可以通过for进行实现,也可以通过向量化进行实现。
关于向量化,可以参考文章 【机器学习】向量化计算 – 机器学习路上必经路
数据标准化可参考文章: 【机器学习】梯度下降之数据标准化
五、高级优化算法
高级优化算法,与梯度下降相比能够大大提高 回归速度,也使得算法更加适合大型数据集机器学习问题。
除了使用梯度下降算法,还有诸多如下算法
- 不需要选择学习率
( 存在智能内循环,智能选择最佳的学习率
- 下降速率快得多
缺点
- 太过于复杂了
在实际解决问题中,我们很少通过自己编写代码求平方根或者求逆矩阵,我们往往都是使用别人写的好的数据科学库,如numpy
有如下例子(求两个参数)
在logistic回归中,我们使用如下的参数向量 (使用参数向量化)
六、多元分类:一对多
例如将邮件分为亲人,朋友,同事。例如将天气分类,下雨,晴天等、我们可以将这些用数字0,1,2表达,以上这些都是多类别分类
与二分类图像不同(右图)
我们要做的就是将这数据集转换为三个独立的二元分类问题, 我们将创建一个新的**”伪“训练集**,其中第二类第三类为负类,第一类为正类(如下图右侧)
- 同理,将其他两类样本如上创建
伪
数据集,以及对应的拟合分类器,进行一个标准的逻辑回归分类器,得到对应边界
每个分类器都对应与之的情况训练,y = 1, 2, 3 的情况
我们训练了逻辑回归分类器 ,用于预测
的概率,为了做出预测,我们向分类器输入一个
,期望获得预测,我们需要在这三个回归分类器中运行输入
,选出结果中概率最大的一个(最可信)的那个分类器,就是我们要的类别。
文章出处登录后可见!