Logistic Regression
Logistic Regression是一种被广泛使用的分类算法,通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数。
通常用于将数据映射到不同类别的函数成为阈值函数,常用的阈值函数为Sigmoid函数,形式为:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1
Sigmoid函数的图像:
从Sigmoid的图像可以看出函数的值域为(0,1),在0附近变化比较明显
Sigmoid函数的python代码:
def sig(x):
'''Sigmoid函数
input: x(mat):feature * w
output: sigmoid(x)(mat):Sigmoid值
'''
return 1.0 / (1 + np.exp(-x))
因此对于输入向量X,其属于正例和反例的概率为:
正 例 的 概 率 : P ( y = 1 ∣ X , W , b ) = 1 1 + e − ( W X + b ) 反 例 的 概 率 : P ( y = 1 ∣ X , W , b ) = e − ( W X + b ) 1 + e − ( W X + b ) 正例的概率: P(y=1|X,W,b)=\frac{1}{1+e^{-(WX+b)}}\\反例的概率: P(y=1|X,W,b)=\frac{e^{-(WX+b)}}{1+e^{-(WX+b)}} 正例的概率:P(y=1∣X,W,b)=1+e−(WX+b)1反例的概率:P(y=1∣X,W,b)=1+e−(WX+b)e−(WX+b)
对于Logistic Regression算法来说,如何定义W和b使得算法最优?(什么是最优)
为了求解最优的权重矩阵W和偏置向量b,需要定义损失函数
对于上述的Logistic Regression算法,属于类别 y 的概率是
P ( y ∣ X , W , b ) = σ ( W X + b ) y ( 1 − σ ( W X + b ) ) 1 − y P(y|X,W,b)=\sigma(WX+b)^y(1-\sigma(WX+b))^{1-y} P(y∣X,W,b)=σ(WX+b)y(1−σ(WX+b))1−y
其中 σ 表示的是Sigmoid函数。
在此用极大似然法进行估计。假设训练数据集有m个训练样本{
{X1,Y1},{X2,Y2},……{Xn,Yn}},则其似然函数为:
L W , b = ∏ i = 1 m [ h W , b ( X i ) y i ( 1 − h W , b ( X i ) ) 1 −