二元logistic回归多分类变量结果解读(【机器学习】Logistic 分类回归算法 (二元分类 & 多元分类))
🤵♂️ 个人主页: @计算机魔术师
👨💻 作者简介:CSDN内容合伙人 ,全栈领域优质创作者 。该文章收录专栏 ✨— 机器学习 —✨
一 、线性回归能用于分类吗?
l
o
g
i
s
t
i
c
logistic
logistic(数理逻辑)回归算法(预测离散值y
y
y 的 非常常用的学习算法假设有如下的八个点(
y
=
1
或
)
y=1 或 0)
y=1或0),我们需要建立一个模型得到准确的判断 ,那么应该如何实现呢 我们尝试使用之前文章所学的线性回归h
θ
(
x
)
=
θ
T
∗
x
h_\theta(x) = \theta^T*x
hθ(x)=θT∗x 来拟合数据(θ
\theta
θ是参数列向量 ,注意这里的x
x
x是关于x
i
x_i
xi的向量,其中x
=
1
,
即
x
∗
θ
=
常数项
x_0=1, 即 x_0*\theta_0 = 常数项
x0=1,即x0∗θ0=常数项) ,并在0~1设置一个阈值y
=
0.5
所对应的
x
0.5
值
y = 0.5 所对应的 x_{0.5} 值
y=0.5所对应的x0.5值 ,x
x
x 大于x
0.5
x_{0.5}
x0.5 的点则为1 ,否则为0 ,预测会得到如下粉丝直线 ,上一篇文章: 【机器学习】浅谈正规方程法&梯度下降
假设我们再增加一个数据点 ,如下图右方 ,按照如上算法对应的拟合直线h
θ
(
x
)
h_\theta(x)
hθ(x)则如下蓝色直线 ,此时得到错误的预测 (对于结果为1也小于x
0.5
x_{0.5}
x0.5)
所以综上所诉 ,用线性回归来用于分类问题通常不是一个好主意,并且线性回归的值会远远偏离0或1 ,这显示不太合理 。所以梯度下降算法中引出 logistic regression 算法
二 、二元分类
2.1假设函数
我们希望能把
h
θ
(
x
)
=
θ
T
∗
x
h_\theta(x) = \theta^T*x
hθ(x)=θT∗x 结果在 0 ~ 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−x1s
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
⇒
y\Rightarrow0
y⇒0 令h
θ
(
x
)
=
g
(
θ
T
∗
x
)
=
1
1
+
e
−
θ
T
∗
x
h_\theta(x) =g( \theta^T*x) = \frac{1}{1 + e ^{- \theta^T*x}}
hθ(x)=g(θT∗x)=1+e−θT∗x1 那么我们的函数结果结果就会在0 ~ 1 之间那现在我们所要做的便是需要求得参数
θ
\theta
θ 拟合模型如下图 ,假设肿瘤案例 ,如下
x
x
x为一个病人 同样的用列向量表示x
x
x的参数 ,那么参数一tumorSize便是肿瘤的大小 ,那么我们可以假设输出结果为 0.7 ,意思就是医生会告诉这个病人很不幸 ,会有很大(70%)的概率得到肿瘤 。 那么公式可以表示为h
θ
(
x
)
=
P
(
y
=
1
∣
x
;
θ
)
h_\theta(x) = P(y=1|x;\theta)
hθ(x)=P(y=1∣x;θ) 即在x
x
x的条件下 求给定y
y
y (概率参数为θ
\theta
θ)的概率那么在
y
y
y只有 0 和 1 的情况下 ,有如下公式 (二者为对立事件 ,符合全概率公式)P
(
y
=
1
∣
x
;
θ
)
+
P
(
y
=
∣
x
;
θ
)
=
1
P(y=1|x;\theta)+ P(y=0 |x;\theta)= 1
P(y=1∣x;θ)+P(y=0∣x;θ)=11
−
P
(
y
=
∣
x
;
θ
)
=
P
(
y
=
1
∣
x
;
θ
)
1 - P(y=0 |x;\theta)= P(y=1|x;\theta)
1−P(y=0∣x;θ)=P(y=1∣x;θ)概率结果只在0 ~ 1中
假设如下那么此时我们可以设置阈值
g
(
z
)
g(z)
g(z) = 0.5 ,大于 0.5 的点则为1 ,否则为0即在
z
<
z<0
z<0(即θ
T
∗
x
\theta^T*x
θT∗x)中g
(
z
)
g(z)
g(z)< 0.5, 此时预测为0 ,在z
>
z>0
z>0(即θ
T
∗
x
\theta^T*x
θT∗x) 时,g
(
z
)
>
g(z)>0
g(z)>0 预测值为12.1.1 案例一
我们假设他的各个
θ
\theta
θ 参数向量参数为-3,1 ,1此时如果满足
g
(
z
)
g(z)
g(z)> 0.5 , 也就是横坐标z
z
z(这里的z
z
z 是对应线性方程) 大于零 ,预测 y 为 1 条件则如下:
化简为条件x
1
+
x
2
>
=
3
x_1 + x_2 >=3
x1+x2>=3 , 这个条件所对应的几何意义:即一条切割线的右侧,此时
s
i
g
o
m
i
d
函数的
z
坐标
>
sigomid函数的z坐标>0
sigomid函数的z坐标>0, y值 大于0.5
此时该切割线分割除了两个区域 ,分别是
y
=
与
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满足条件为
可以得到其决策边界decision boundory ——x
1
2
+
x
2
2
=
1
x_1^2+x_2^2 =1
x12+x22=1 强调: 决策边界并不是数据集的属性 ,而是假设函数以及其参数的属性 ,数据集则是用于拟合参数θ
\theta
θ不同的高阶多项式 会得到不一样的决策边界
如:
2.2 拟合logistic回归参数
θ
i
\theta_i
θi
代价函数
我们给定如数据集
有m
m
m个样本 ,同样将每一个x
x
x用n
+
1
n+1
n+1维向量表示(向量每个元素即特征 ,其中x
为
1
x0为1
x0为1 ) 分类标签y
y
y只有 0 ,1结果 那么我们如何选择参数θ
\theta
θ呢?在往篇文章中我们线性回归的均方差代价函数
可以变化如下:
简化函数,我们省略上标
因为s
i
g
o
m
i
d
sigomid
sigomid 是复杂的非线性函数 ,如果直接以函数作为代价函数 ,那么所求模型对应代价函数为非凹函数,会有非常多的局部最优,如下图
我们不能保证其可以下降到函数最优我们往往希望找到如下的凹型代价函数 ,以可以找到参数最优 。
故我们需要找到另外的代价函数保证我们可以找到全局最小值三 、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)
为了方便理解我们可以画出 ,对数函数的图像l
o
g
(
z
)
log(z)
log(z) (z
=
h
θ
(
x
)
)
z = h_\theta(x))
z=hθ(x)) ) 从图中我们也可以看到作为代价函数 很好的性质当
C
o
s
t
⇒
Cost \Rightarrow 0
Cost⇒0时 ,即代价函数为0 ,此时有h
θ
(
x
)
⇒
1
h_\theta(x)\Rightarrow1
hθ(x)⇒1 即模型拟合优秀当
C
o
s
t
⇒
∞
Cost \Rightarrow\infty
Cost⇒∞时 ,即代价函数⇒
∞
\Rightarrow\infty
⇒∞ ,此时h
θ
(
x
)
⇒
h_\theta(x) \Rightarrow 0
hθ(x)⇒0即为 。此时说明模型拟合非常差显然当
y
=
1
y=1
y=1 时 这个代价函数满足我们的要求
3.2 当
y
=
y=0
y=0代价函数图像
对应
y
=
y=0
y=0的情况下:
如下图当
C
o
s
t
⇒
Cost \Rightarrow 0
Cost⇒0时 ,即代价函数为⇒
\Rightarrow0
⇒0 ,此时有h
θ
(
x
)
⇒
h_\theta(x)\Rightarrow0
hθ(x)⇒0 即模型拟合优秀当
C
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!