| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【机器学习】Logistic 分类回归算法 (二元分类 & 多元分类) -> 正文阅读 |
|
[人工智能]【机器学习】Logistic 分类回归算法 (二元分类 & 多元分类) |
【机器学习】logistics分类一、线性回归能用于分类吗?
假设有如下的八个点( y = 1 或 0 ) y=1 或 0) y=1或0),我们需要建立一个模型得到准确的判断,那么应该如何实现呢
上一篇文章: 【机器学习】浅谈正规方程法&梯度下降 所以梯度下降算法中引出 logistic regression 算法 二、二元分类2.1假设函数
这里引入 s i g m o i d sigmoid sigmoid 函数 (也叫做 l o g i s t i c logistic logistic 函数) —— g ( x ) = 1 1 + e ? x g(x) = \frac{1}{1 + e ^{-x}} g(x)=1+e?x1? s i g m o i d sigmoid sigmoid函数图像是一个区间在 0 ~ 1的S型函数, x ? ∞ x \Rightarrow\infty x?∞则 y ? 1 y\Rightarrow1 y?1, x ? ? ∞ x \Rightarrow-\infty x??∞则 y ? 0 y\Rightarrow0 y?0
那现在我们所要做的便是需要求得参数 θ \theta θ 拟合模型
概率结果只在0 ~ 1中
即在 z < 0 z<0 z<0(即 θ T ? x \theta^T*x θT?x)中 g ( z ) g(z) g(z)< 0.5, 此时预测为0,在 z > 0 z>0 z>0(即 θ T ? x \theta^T*x θT?x) 时, g ( z ) > 0 g(z)>0 g(z)>0 预测值为1 2.1.1 案例一
此时如果满足
g
(
z
)
g(z)
g(z)> 0.5 , 也就是横坐标
z
z
z(这里的
z
z
z 是对应线性方程) 大于零,预测 y 为 1 条件则如下: 即一条切割线的右侧,此时
s
i
g
o
m
i
d
函数的
z
坐标
>
0
sigomid函数的z坐标>0
sigomid函数的z坐标>0 , y值 大于0.5 此时该切割线分割除了两个区域,分别是
y
=
0
与
y
=
1
y=0 与 y=1
y=0与y=1的 情况,我们把这条边界,称为决策边界,这些都是关于假设函数的属性,决定于其参数,与数据集属性无关 2.1.2例子二有数据集如下: 那我们的预测y=1时,
s
i
g
o
m
i
d
sigomid
sigomid横坐标
z
z
z满足条件为
2.2 拟合logistic回归参数 θ i \theta_i θi?
我们给定如数据集
在往篇文章中我们线性回归的均方差代价函数可以变化如下: 我们往往希望找到如下的凹型代价函数,以可以找到参数最优。 三、logistic代价函数3.1 当 y = 1 y=1 y=1代价函数图像对该代价函数,我们可以画出当
y
=
1
y=1
y=1时的图像。(由于
s
i
g
o
m
i
d
sigomid
sigomid 函数值域在0~1,对应代价函数横坐标为0 ~1)
显然当 y = 1 y=1 y=1 时 这个代价函数满足我们的要求 3.2 当 y = 0 y=0 y=0代价函数图像对应
y
=
0
y=0
y=0的情况下:
同样的符合代价函数性质 至此,我们定义了关于单变量数据样本的分类代价函数,我们所选择的代价函数可以为我们解决代价函数为非凹函数的问题以及求解参数最优,接下来我们使用梯度下降算法来拟合 l o g i s t i c logistic logistic 算法 四、 代价函数与梯度下降为了避免让代价函数分为 y = 1 , y = 0 y = 1,y= 0 y=1,y=0两种情况 ,我们要找一个方法来把这两个式子合并成一个等式,以便更简单写出代价函数,并推导出梯度下降。 公式如下图蓝色字体公式: 由于 y 只有两个情况 0,1 ,利用该性质 当y = 1 时,y=0情况的多项式消去,y = 0 时同理,这样就成功表达了两种不同情况的函数
4.1 线性回归与logistic回归的梯度下降规则我们可以惊奇的发现以上公式与线性回归时所用来梯度下降的方程一样 那么线性回归和
虽然在梯度下降算法看起来规则相同,但假设的定义发生了变化,所以梯度下降和logistic回归是完全不一样的算法
关于向量化,可以参考文章 【机器学习】向量化计算 – 机器学习路上必经路
数据标准化可参考文章: 【机器学习】梯度下降之数据标准化 五、高级优化算法高级优化算法,与梯度下降相比能够大大提高
l
o
g
i
s
t
i
c
logistic
logistic 回归速度,也使得算法更加适合大型数据集机器学习问题。
缺点
在实际解决问题中,我们很少通过自己编写代码求平方根或者求逆矩阵,我们往往都是使用别人写的好的数据科学库,如 有如下例子(求两个参数) 在logistic回归中,我们使用如下的
θ
\theta
θ参数向量 (使用参数向量化) 六、多元分类:一对多例如将邮件分为亲人,朋友,同事。例如将天气分类,下雨,晴天等、我们可以将这些用数字0,1,2表达,以上这些都是多类别分类 与二分类图像不同(右图) 我们要做的就是将这数据集转换为三个独立的二元分类问题, 我们将创建一个新的**”伪“训练集**,其中第二类第三类为负类,第一类为正类(如下图右侧)
每个分类器都对应与之的情况训练,y = 1, 2, 3 的情况 我们训练了逻辑回归分类器 h θ i ( x ) = P ( y = i ∣ x ; θ ) ( i = 1 , 2 , 3 ) h_\theta^i(x) = P(y=i|x;\theta) (i=1,2,3) hθi?(x)=P(y=i∣x;θ)(i=1,2,3),用于预测 y = i y= i y=i 的概率,为了做出预测,我们向分类器输入一个 x x x,期望获得预测,我们需要在这三个回归分类器中运行输入 x x x,选出结果中概率最大的一个(最可信)的那个分类器,就是我们要的类别。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:48:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |