- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机器学习实验基于Logistic回归和Sigmoid函数的分类
[实验项目]
基于 Logistic回归和Sigmoid函数的分类
[实验目的]
分析已知样本,求出回归系数,利用梯度上升法不断精确回归系数,并分别输出至二维坐标中
[实验原理]
Sigmoid函数:对于任何输入,输出为0到1之间的数,根据其大于0.5或小于0.5分为两类
[设计内容]
logistic回归的一般过程
(1)收集数据:采用任意方法收集数据。
(2)准备数据:由于需要进行距离计算,因此要求数据类型为数值型。另外,结构化数据格式则最佳。
(3)分析数据:采用任意方法对数据进行分析。
(4)训练算法:大部分时间将用于训练,训练的目的是为了找到最佳的分类回归系数。
(5)测试算法:一旦训练步驟完成,分类将会很快。
(6)使用算法:首先,我们需要输入一些数据,并将其转换成对应的结构化数值;接着,基于训练好的回归系数就可以对这些数值进行简单的回归计算,判定它们属于哪个类别,在这之后,我们就可以在输出的类别上做一些其他分析工作。
[设计过程] — 包括程序数据结构设计过程,代码模块设计,程序流程图等。
函数logistic_grad_ascent(X,y,num):
logistic回归函数,X为已知数据(本实验中为二维数组),y为每组数据对应的概率值(0到1之间),n为迭代次数(自行添加的)
函数sigmoid(z)= 1.0 ./ (1.0 + exp(-z)):
其中z=theta0+theat1*x1+theta2*x2(x1,x2为q1x.data中的数据)
主程序:
读取q1x.data;q1y.data并取出数据,做循环,根据q1y中的概率分两类打印出q1x中的点至二维坐标中,再调用logistic_grad_ascent函数得到theta,根据theta画出最佳拟合直线;
[主要数据结构] — 包括代码主要数据结构,及其注释。
由于两个函数及学习数据已经给出,此处只附自己写的主程序
load q1y.dat
load q1x.dat %读取数据
x=q1x(:,1);
y=q1x(:,2);
X = [x,y];
p=q1y(:,1); %将数据赋给变量
for i=1:99 %根据点的类别画出两种点x和o
if p(i)==1
plot (x(i),y(i),bx)
else if p(i)==0
plot(x(i),y(i),bo)
end
end
hold on
end
%带入函数求回归系数;迭代次数为10
[theta, ll] = logistic_grad_ascent(X,p,10);
a = [0:0.1:8];
b = (-theta(1)-theta(2)*a)/theta(3);
plot(a,b) %画出拟合直线
text(8,(-theta(1)-theta(2)*8)/theta(3), \leftarrow 10); %标注
[theta, ll] = logistic_grad_ascent(X,p,50);
a = [0:0.1:8];
b = (-theta(1)-theta(2)*a)/theta(3);
plot(a,b)
text(8,(-theta(1)-theta(2)*8)/theta(3), \leftarrow 50);
[theta, ll] = logistic_grad_ascent(X,p,500);
a = [0:0.1:8];
b = (-theta(1)-theta(2)*a)/theta(3);
plot(a,b)
text(8,(-theta(1)-theta(2)*8)/theta(3), \leftarrow 500);
[theta, ll] = logistic_grad_ascent(X,p,5000);
a = [0:0.1:8];
b = (-theta(1)-theta(2)*a)/theta(3);
plot(a,b)
text(8,(-theta(1)-theta(2)*8)/theta(3), \leftarrow 5000);
[theta, ll] = logistic_grad_ascent(X,p,10000);
a = [0:0.1:8];
b = (-theta(1)-theta(2)*a)/theta(3);
plot(a,b)
text(8,(-theta(1)-theta(2)*8)/theta(3), \leftarrow 10000);
[代码调试过程] — 包括程序编译、执行过程中遇到的主要错误,及解决过程说明。
从文件中读取数据时行列弄反
Theta0,theta1,theta2次序弄错
您可能关注的文档
最近下载
- 血清酶变化的生理病理机制.ppt VIP
- 2025年秋季新教材部编版小学道德与法治三年级上册全册道法核心素养教案(教学设计)含教学反思.docx VIP
- 《智能机械与机器人》课件——3室内喷涂机器人施工工艺.pptx VIP
- 公司出门条模板.doc VIP
- 最新五年级(上册)《生活生命与安全》(全册)教案.docx
- 科学开学第一课.ppt VIP
- 《智能机械与机器人》课件——地面抹平机器人.pptx VIP
- (统编版2025新教材)道德与法治三年级上册开学第一课.pptx
- 1.2《我们都是社会的一员》【课件】2025-2026学年度统编版道德与法治八年级上册.pptx VIP
- 《智能机械与机器人》课件——地面整平机器人.pptx VIP
文档评论(0)