【机器学习】Logistic Regression逻辑回归原理与java实现
1、基于概率的机器学习算法
机器学习算法可以分为基于概率、基于距离、基于树和基于神经网络四类。基于概率的机器学习算法本质上是计算每个样本属于对应类别的概率,然后利用极大似然估计法对模型进行训练。基于概率的机器学习算法的损失函数为负的log似然函数。
基于概率的机器学习算法包括朴素贝叶斯算法、Logistic Regression算法、Softmax Regression算法和Factorization Machine算法等。
2、逻辑回归算法原理
2.1、分离超平面
Logistic Regression算法是二分类线性分类算法,分离超平面采用线性函数:
W x + b = 0 Wx + b = 0 Wx+b=0
x x x是样本特征矩阵,特征数为 m m m,其中 W ( 1 ∗ m ) W(1*m) W(1∗m)是权重矩阵。通过分类超平面可以将数据分成正负两个类别,类别为正的样本标签标记为1,类别为负的样本标签标记为0。
2.2、阈值函数
通过阈值函数可以将样本到分离超平面的距离映射到不同的类别,Logistic Regression算法中阈值函数采用Sigmoid函数:
f ( x ) = 1 1 + e − x f(x) = \frac{1}{
{1 + {e^{ - x}}}} f(x)=1+e−x1
sigmoid函数的图像如下:
对于样本 x x x,其到分离超平面的几何距离 D D D为:
D = W x + b D = Wx + b D=Wx+b
2.3、样本概率
假设样本 x x x为正类别,则其概率为:
p ( y = 1 ∣ x , W , b ) = σ ( W x + b ) = 1 1 + e − ( W x + b ) p\left( {y = 1\left| {x,W,b} \right.} \right) = \sigma \left( {Wx + b} \right) = \frac{1}{
{1 + {e^{ - \left( {Wx + b} \right)}}}} p(y=1∣x,W,b)=σ(Wx+b)=1+e−(Wx+b)1
负类别样本的概率:
p ( y = 0 ∣ x , W , b ) = 1 − p ( y = 1 ∣ x , W , b ) = e − ( W x + b ) 1 + e − ( W x + b ) p\left( {y = 0\left| {x,W,b} \right.} \right) = 1 - p\left( {y = 1\left| {x,W,b} \right.} \right) = \frac{
{
{e^{ - \left( {Wx + b} \right)}}}}{
{1 + {e^{ - \left( {Wx + b} \right)}}}} p(y=0∣x,W,b)=1−p(y=1∣x,W,b)=1+e−(Wx+b)e−(Wx+b)
将两种类别合并,属于类别 y y y的概率为:
p ( y ∣ x , W , b ) = σ ( W x + b ) y ( 1 − σ ( W x + b ) ) 1 − y p\left( {y\left| {x,W,b} \right.} \right) = \sigma {\left( {Wx + b} \right)^y}{\left( {1 - \sigma \left( {Wx + b} \right)} \right)^{1 - y}} p(y∣x,W,b)=σ(Wx+b)y(1−σ(Wx+b))1−y
2.4、损失函数
设训练数据集有 n n n个训练样本 { ( x 1 ,