| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 人工智能 -> 山东大学2019级机器学习实验一思路分析 -> 正文阅读 |
|
|
[人工智能]山东大学2019级机器学习实验一思路分析 |
山东大学2019级机器学习实验一思路分析实验说明
中间的字段说明就不再写上了 实验分析前提说明,默认大家已经掌握了贝叶斯模型是什么,怎么使用贝叶斯模型,不知道的可以点击链接查看添加链接描述。然后实验步骤依次如下:
数据预处理这里的数据预处理总共有四种,分别是补充缺失值、文字转成数值、日期格式、无关属性删除 补充缺失值这次实验的缺失值比较特殊,一个是年份的位置(work_year)有缺失值,剩下有缺失值的位置位于f0-f4以及pub_dero_bankrup。补充可以采取pandas内置函数。inplace=true可以直接改变df中的值
文字转成数值这个没用到 日期格式这个我把日期直接当成无关属性了,如果加上精度可能会更高。我可以提供思路,自己懒得写了,对于Series,可以使用describe函数获取日期的起始日期,算一个日期差,然后离散化处理即可。 无关属性删除这个也是之前把我误导到一个误区的地方,误以为这个应该在训练中不断调整,也就是说,一开始确定一些属性为有关属性,然后依次增加属性,看精度的变化,如果精度有提升,就加入该属性,如果下降,就不加入该属性。后来,当我和王一讨论的时候才发现,无关属性删除在预处理中操作的,也就是说选什么属性有我们自己来定,这个选择看个人了。 训练模型大家其实一开始都很懵,模型都不知道是什么,怎么训练,输入输出是什么。这时候,我们要回归贝叶斯模型的定义,贝叶斯模型的输入是一个x,x具有很多属性,输出是它属于哪个类别,判断依据是不同属性的概率,所以说关键就在于概率。通过训练集,得到每个属性的不同取值的概率,就完成我们的任务了。但是这里会有两个问题,也就是说明中提到的。一个是连续数据离散化,另一个就是零概率平滑处理。 连续数据离散化我认为的连续数据就是那个取值相对较多的数据(王一指导),然后离散化的方法可以使用上学期Python课上学到的pandas.cut
就可以进行离散化了,这里做一些修改,因为我们需要划分的区间,所以做一些修改得到区间
零概率平滑处理所谓零概率事件,就是测试集属性的取值在训练集中没有,这里处理的方式是询问商志达和王一得到的——拉普拉斯修正(百度了解一下),在训练集得到概率的时候,计算ELSE概率作为没有出现的属性取值的概率。具体代码如下
测试模型这个应该就不用在多说了,就是每次取出一行,通过之前得到的区间对连续值进行离散化处理,然后计算1和0的概率作比较,就可以了 个人结果我这边用了一些我认为有用的数据,得到了92.1的精度,个人感觉还可以。
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/15 12:06:36- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |