Logistics Art Project,Lesson 3 Part 2 logistic regression

 2023-11-12 阅读 15 评论 0

摘要:logistic regression簡單來說就是將output variable(這里表示成y)分成兩類的一種分類算法 其實就是y服從伯努力分布,那這里我們需要模擬什么呢? 我們需要模擬的是y = 1的概率,所以我們設 由于概率P需要滿足 大于等于0 而且 小于等于1 所以我們的模擬函數也需要滿足 那么我

logistic regression簡單來說就是將output variable(這里表示成y)分成兩類的一種分類算法


其實就是y服從伯努力分布,那這里我們需要模擬什么呢?

我們需要模擬的是y = 1的概率,所以我們設


由于概率P需要滿足 大于等于0 而且 小于等于1

所以我們的模擬函數也需要滿足


那么我們該如何選擇我們的模擬函數呢?

logistic function,?

為何選擇這個函數?

At least, I don't know at the moment, nor do I care. Because it's not our topic today.

然后我們介紹下logistic function



所以將y的分布用模擬函數表示出來就為:



寫在一起變為:




假設我們的模擬是100%正確,那么對于給定的x和θ,得到y的概率為1

但是我們不能保證我們的模擬是100%正確,所以我們只能盡量使P變大

然后我們求θ的極大似然估計

最大化P就等價于最大化L(θ)


取對數



然后用梯度下降法求得l(θ)的極大值點




最后介紹一下感知器算法:







然后我們看看matlab程序


clc; clear; close all;load datax.dat;
load datay.dat;X = [ones(size(datax, 1),1) datax];
Y = datay;m = size(X,1);
n = size(X,2)-1;%initialize
theta = zeros(n+1,1);
thetaold = ones(n+1,1);while ( ((theta-thetaold)'*(theta-thetaold)) > 0.0000001 )%calculate delllthetadellltheta = zeros(n+1,1);for j=1:n+1,for i=1:m,dellltheta(j,1) = dellltheta(j,1) + [Y(i,1) - (1/(1 + exp(-theta'*X(i,:)')))]*X(i,j);end;end;%calculate hessianH = zeros(n+1, n+1);for j=1:n+1,for k=1:n+1,for i=1:m,H(j,k) = H(j,k) -[1/(1 + exp(-theta'*X(i,:)'))]*[1-(1/(1 + exp(-theta'*X(i,:)')))]*[X(i,j)]*[X(i,k)];end;end;end;thetaold = theta;theta = theta - inv(H)*dellltheta;(theta-thetaold)'*(theta-thetaold)
end%part b
figure(1); hold on;
X0 = []; Y0 = []; X1 = []; Y1 = [];%training points
for i=1:m,if Y(i)==0X0 = [X0 X(i,2)];Y0 = [Y0 X(i,3)];elseX1 = [X1 X(i,2)];Y1 = [Y1 X(i,3)];end;
end;
scatter(X0, Y0, 'o');
scatter(X1, Y1, '+');%decision boundary
Xb = -2:0.01:8;
Yb = (0.5 - theta(1) - theta(2)*Xb)/(theta(3));
plot(Xb, Yb);




注意這里他采用的是牛頓法求??l(θ) /??θ = 0



版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/171658.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息