逻辑回归 Logistic Regression 算法是一种被广泛使用的分类算法,属于线性分类的一种。通过分析数据中的正负样本,学习样本特征到样本标签的转换函数,Logistic Regression 可用于实现广告点击率的预测。
图1 线性分类
图2 非线性分类
模型原理:
对于图1所示的线性可分问题,需要找到一条直线,区分出两个不同类的点,这条直线也称超曲面。上述超曲面可以用线性方程描述,即:
L := Wx+b=0
其中W是权重,b是偏置。在本算法中,通过对训练样本学习,最终得到该超平面,将数据分成正负两个类别。为了能将两个类据分开,需要用某个阈值作为判别准则,常见的阈值函数有符号函数Sgn、Sigmoid函数、ReLU 函数等,其形式分别是
Sgn:
Sigmoid函数:
ReLU函数:
以下主要讨论Sigmoid函数,首先从图像容易知道它的定义域为,值域为(0,1),它是个同胚映射,其次分析它的导数,分析函数性质,求导是常用方法。
-
函数性质总结:
- 1.定义域为(-∞∞)
- 2.值域为 ( 0 , 1 ) (0,1) (0,1)
- 3.在定义域中是连续光滑函数
- 4.在定义域内处处可导,且导数为 f ( x ) = f ( x ) ( 1 − f ( x ) ) f(x)=f(x)(1-f(x)) f(x)=f(x)(1−f(x))
以下用python实现其函数功能:
import numpy as np
def Sig(x):
'''
:param x:
输入x
:return:
输出 Sigmoid(x) 值
'''
return 1.0/(1+np.exp(-x))
Sigmoid函数的输出为(0,1),二分类器,相当于离散型随机变量,符合(0,1)分布,取正例的概率为:
P
(
y
=
1
∣
X
,
W
,
b
)
=
S
i
g
m
o
i
d
(
W
X
+
b
)
=
1
(
1
+
e
x
p
(
−
W
X
+
b
)
)
P(y=1|X,W,b)=Sigmoid(WX+b)={1 \over (1+exp(-WX+b))}
P(y=1∣X,W,b)=Sigmoid(WX+b)=(1+exp(−WX+b))1
取负例概率为:
P
(
y
=
0
∣
X
,
W
,
b
)
=
1
−
P
(
y
=
1
∣
X
,
W
,
b
)
=
e
x
p
(
−
W
X
+
b
)
(
1
+
e
x
p
(
−
W
X
+
b
)
)
P(y=0|X,W,b)=1-P(y=1|X,W,b)={exp(-WX+b) \over (1+exp(-WX+b))}
P(y=0∣X,W,b)=1−P(y=1∣X,W,b)=(1+exp(−WX+b))exp(−WX+b)
对于上述的模型,需要求解的是参数W 和b,确定好这两个参数,就完成了分类器的设计
。