LR模型(逻辑回归模型)

1.逻辑回归模型

按照音译logistic regression应该是逻辑斯蒂回归,太难听了,就简称逻辑回归吧。

1.1 二项逻辑回归模型

二项逻辑回归模型是一种二分类模型,尽管它叫“回归”。
模型如下:

P(Y=1|x)=e(wx+b)1+e(wx+b)....(1)

P(Y=0|x)=11+e(wx+b)....(2)

其中参数 wRn , bR
对于给定的输入实例 x ,按照上式,求得 P(Y=1|x) P(Y=0|x) ,哪个大,那么实例 x 就是哪个类别。

1.2模型的参数估计

极大似然估计:已知某个参数能使这个样本出现概率最大,我们当然不再选择其他小概率样本,就把这个参数作为估计的真实值。

似然函数: 也就样本出现的概率。

对于逻辑回归模型,可以应用极大似然估计法估计模型参数。
给定训练数据 T={(x1,y1),(x2,y2),...(xN,yN)} xiRn,yi{0,1}
对于逻辑回归,其似然函数为:

i=1N[π(xi)]yi[1π(xi)]1yi.....(3)

其中 π(xi)=(1)
将似然函数改写为对数似然函数, L(w)=log((3))
之后采用低度下降算法或者拟牛顿法,求得 L(w) 的最大值,就可以得到 w 值。

1.3自己的体会

其实逻辑回归可以看做是单层神经网络,输入层是N个神经元,输出就是两个神经元,使用的激活函数是 sigmod() ,损失函数是 L(w) ,对损失函数最小化,求得 w 值。

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.意思是数据的行数列数不匹配

猜你喜欢

转载自blog.csdn.net/liushui94/article/details/78882508