首页 > 编程语言 >实验二:逻辑回归算法实验

实验二:逻辑回归算法实验

时间:2022-11-03 21:12:05浏览次数:39  
标签:逻辑 函数 回归 算法 实验 数据 预测

| 20大数据三班 |
| 学号 201613334 |

 

 

【实验目的】

1.理解逻辑回归算法原理,掌握逻辑回归算法框架;
2.理解逻辑回归的sigmoid函数;
3.理解逻辑回归的损失函数;
4.针对特定应用场景及数据,能应用逻辑回归算法解决实际分类问题。

【实验内容】

1.根据给定的数据集,编写python代码完成逻辑回归算法程序,实现如下功能:

建立一个逻辑回归模型来预测一个学生是否会被大学录取。假设您是大学部门的管理员,您想根据申请人的两次考试成绩来确定他们的入学机会。您有来自以前申请人的历史数据,可以用作逻辑回归的训练集。对于每个培训示例,都有申请人的两次考试成绩和录取决定。您的任务是建立一个分类模型,根据这两门考试的分数估计申请人被录取的概率。
算法步骤与要求:

(1)读取数据;(2)绘制数据观察数据分布情况;(3)编写sigmoid函数代码;(4)编写逻辑回归代价函数代码;(5)编写梯度函数代码;(6)编写寻找最优化参数代码(可使用scipy.opt.fmin_tnc()函数);(7)编写模型评估(预测)代码,输出预测准确率;(8)寻找决策边界,画出决策边界直线图。

2. 针对iris数据集,应用sklearn库的逻辑回归算法进行类别预测。

要求:

(1)使用seaborn库进行数据可视化;(2)将iri数据集分为训练集和测试集(两者比例为8:2)进行三分类训练和预测;(3)输出分类结果的混淆矩阵。

【实验报告要求】

1.对照实验内容,撰写实验过程、算法及测试结果;
2.代码规范化:命名规则、注释;
3.实验报告中需要显示并说明涉及的数学原理公式;
4.查阅文献,讨论逻辑回归算法的应用场景;

 

一、实验过程

1.1 导入相关包

1.2 读取并查看数据

1.3 依据数据绘图

(图片细节)

1.4 sigmoid函数

(图片细节)

1.5 代价函数并计算此时代价

1.6 梯度函数

1.7 寻找最优化参数

1.8 模型评估

1.9 寻找决策边界,画出决策边界直线图

(图片细节)

 

 

二、实验过程

2.1 再次导入相关包

2.2 导入数据并转换格式

2.3 查看数据

2.4 使用seaborn库进行数据可视化

2.5 将iri数据集分为训练集和测试集(两者比例为8:2)进行三分类训练和预测

2.6 输出分类结果的混淆矩阵

 

 

三、说明涉及的数学原理公式

1. sigmoid函数

2. 代价函数

3. 梯度函数

 

 

四、逻辑回归算法的应用场景

逻辑回归的应用
逻辑回归模型广泛用于各个领域,包括机器学习,大多数医学领域和社会科学。例如,最初由Boyd 等人开发的创伤和损伤严重度评分(TRISS)被广泛用于预测受伤患者的死亡率,使用逻辑回归 基于观察到的患者特征(年龄,性别,体重指数,各种血液检查的结果等)分析预测发生特定疾病(例如糖尿病,冠心病)的风险。逻辑回归模型也用于预测在给定的过程中,系统或产品的故障的可能性。还用于市场营销应用程序,例如预测客户购买产品或中止订购的倾向等。在经济学中它可以用来预测一个人选择进入劳动力市场的可能性,而商业应用则可以用来预测房主拖欠抵押贷款的可能性。条件随机字段是逻辑回归到顺序数据的扩展,用于自然语言处理。

逻辑回归模型现在同样是很多分类算法的基础组件,比如 分类任务中基于GBDT算法+LR逻辑回归实现的信用卡交易反欺诈,CTR(点击通过率)预估等,其好处在于输出值自然地落在0到1之间,并且有概率意义。模型清晰,有对应的概率学理论基础。它拟合出来的参数就代表了每一个特征(feature)对结果的影响。也是一个理解数据的好工具。但同时由于其本质上是一个线性的分类器,所以不能应对较为复杂的数据情况。很多时候我们也会拿逻辑回归模型去做一些任务尝试的基线(基础水平)。
————————————————
版权声明:本文为CSDN博主「JeffDingAI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yichao_ding/article/details/111186843

 

实验完成

 

 

 

标签:逻辑,函数,回归,算法,实验,数据,预测
From: https://www.cnblogs.com/ViceVavina/p/16855849.html

相关文章

  • 实验四
    实验任务五vectorInt.hpp#pragmaonce#include<iostream>#include<cassert>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorInt(......
  • 实验3
    task_11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,charte......
  • 蓄水池抽样算法
    不一次性将数据读入内存,只遍历一次数据即可等概率抽取子集数据,真是神奇。测试例子:0到99一百个数字中随机抽取10个数,每个数被抽到概率1/10;重复1000次抽样,结果统计每个数字......
  • 实验三
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明void......
  • 实验6:开源控制器实践——RYU
    一、实验要求(一)基本要求1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。查看网络拓扑2.阅读Ryu文档的TheFirstApplic......
  • 实验七:基于REST API的SDN北向应用实践
    一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境1.下载虚拟机软件OracleVisua......
  • 使用Wireshark完成实验3-IP
    1、使用Wireshark打开ip-ethereal-trace-1,如图 电脑IP地址为192.168.1.1022、如图,IP包头中上层协议字段的值为1,代表为ICMP 3、如图,IP头中有20字节  IP数据......
  • 实验7:基于REST API的SDN北向应用实践
    实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。实验要求(一)基本要求编写Python程序,调用OpenDayligh......
  • 实验3
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明......
  • 实验四 类与数组,指针
    实验任务5:task5.hpp#pragmaonce#include<iostream>#defineMAXSIZE10000usingnamespacestd;classvectorInt{public: //构造函数与析构函数 vectorInt(in......