1.逻辑回归模型
按照音译logistic regression应该是逻辑斯蒂回归,太难听了,就简称逻辑回归吧。
1.1 二项逻辑回归模型
二项逻辑回归模型是一种二分类模型,尽管它叫“回归”。
模型如下:
P(Y=1|x)=e(w⋅x+b)1+e(w⋅x+b)....(1)
P(Y=0|x)=11+e(w⋅x+b)....(2)
其中参数 w∈Rn , b∈R 。
对于给定的输入实例 x ,按照上式,求得
1.2模型的参数估计
极大似然估计:已知某个参数能使这个样本出现概率最大,我们当然不再选择其他小概率样本,就把这个参数作为估计的真实值。
似然函数: 也就样本出现的概率。
对于逻辑回归模型,可以应用极大似然估计法估计模型参数。
给定训练数据
对于逻辑回归,其似然函数为:
∏i=1N[π(xi)]yi[1−π(xi)]1−yi.....(3)
其中 π(xi)=(1)式
将似然函数改写为对数似然函数, L(w)=log((3)式)
之后采用低度下降算法或者拟牛顿法,求得 L(w) 的最大值,就可以得到 w 值。
1.3自己的体会
其实逻辑回归可以看做是单层神经网络,输入层是N个神经元,输出就是两个神经元,使用的激活函数是
1.4实现
以前用TensorFlow写过逻辑回归,这里就不写了,使用sklearn工具实现以下。
#coding:utf-8
import numpy as np
from sklearn.linear_model import LogisticRegression
X = np.array([[0.1,0.2],[0.2,0.3],[1.5,1.8],[2.1,2.6]])
Y = np.array([0,0,1,1])
lr = LogisticRegression() # 这里有许多参数需要设置
lr.fit(X,Y)
pred = lr.predict([[1.6,2.0]])
print(pred)
>>>
[1]
# setting an array element with a sequence.意思是数据的行数列数不匹配