遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

关于逻辑回归与线性回归

参考:https://blog.csdn.net/weixin_39445556/article/details/83930186

https://blog.csdn.net/weixin_39445556/article/details/81416133

对应线性回归的概率解释(当然线性回归还有代数解释--参考线性代数第5章)

假设每行样本的目标值y ,由W' X 决定,那么w,x 定下来后,y就是会在 均值在 w x =u 附近变化,而且是呈正太分布的,

那么这些样本 的联合概率P(y1,y2....)的规律最大化时对应的W就是外面要找的,回归系数。--参考上面的链接

 

对应logistic回归,回归函数改成下面的g(z)--这个参考托马斯微积分第6章,6解人口Euler方法

然后每个样本属于正例(正例是人为规定的)的概率就是g(z), 并且每个样本是否属于正例的概率是p=g(z)--参考下文图中的定义 ,明显 不属于的概率是1-p即 1-g(z)

由于是伯努利分布(0,1分布),所以出现当前这N个样本情况的联合分布概率是,这N行样本分布概率的乘积(考虑各样本--各记录独立)

并且当这个概率最大时对应的那一组W就是需要的回归系数。

这里假设每行(每个样本)的p都不一样,但是这个p由 W'X  完全确定,X是特征(列属性取值),W'是要确定的回归系数。

如果g(z)=0.9999, 那说明这行样本属于正例的概率是99.999%,但是这行样本结果仍然可能是反例。W'X只是决定了二分的参数p,切每行不一样。

 

现在问题变成了求对数似然函数的极值(最小值),这个可以对这个函数进行梯度下降算法来实现。

 

clc
clear
X=rand(10,5) *10  -- 10个样本,每样本5特征
y=round(rand(10,1))
b=glmfit(X,y,'binomial', 'link', 'logit')
yfit= glmval(b,X,'logit')
b_v=b(2:6);  -- 第一个参数是b截距,后面是5个系数
x=X(1,:)';
z=(b_v'* x + b(1));
p1=1./(1+exp(-z))
p2= glmval(b,x', 'logit')  -都使用logit模型 1/(1 +exp(-z))
View Code

 

posted on 2020-04-17 08:10  遗忘海岸  阅读(198)  评论(0编辑  收藏  举报