学习《机器学习100天》第15天 朴素贝叶斯分类器(Naive Bayes Classifier)和黑盒机器学习(Black Box Machine Learning)
项目地址 https://github.com/MLEveryday/100-Days-Of-ML-Code
原项目这一天的任务:
学习不同类型的朴素贝叶斯分类器同时开始Bloomberg的课程(https://bloomberg.github.io/foml/#home)。课程列表中的第一个是黑盒机器学习。它给出了预测函数,特征提取,学习算法,性能评估,交叉验证,样本偏差,非平稳性,过度拟合和超参数调整的整体观点。
一、朴素贝叶斯分类器
1、先验概率与后验概率
2、贝叶斯定理(Bayesian Theorem)
提出者:18世纪英国数学家托马斯·贝叶斯(Thomas Bayes)。 wikipedia 上的简介:
所谓的贝叶斯定理源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有 N 个白球,M 个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆向概率问题。
3、朴素贝叶斯分类算法
3.1、定义:贝叶斯分类算法是一类分类算法的总称,以贝叶斯定理为基础,故统称为贝叶斯分类算法。而朴素贝叶斯分类算法是贝叶斯分类算法中最简单常见的一种分类方法。
3.2、分类问题
小时候看电视,我经常会问大人,这个人是好人还是坏人。把一个人划分为好人或坏人,就是一个分类问题。一个人会表现出一些行为特征,我会有一些判断的准则,根据这些特征,得出是好人还是坏人的结论。这些判断的准则可以看成是一个分类器。
二、Bloomberg的课程
Black Box Machine Learning(观看地址https://www.youtube.com/watch?v=MsD28INtSv8&t=0s&index=2&list=PLnZuxOufsXnvftwTB1HL6mel1V32w0ThI需要能访问google的网络环境)课程主页(https://bloomberg.github.io/foml/#home)可以下载课件
1、机器学习能用来干什么?
二分类:垃圾邮件
多分类:根据症状,判断是普通感冒、流行感冒、肺炎等
回归问题:根据历史股票价格,判断将来的股票价格
2、机器学习是什么?
哪些不是机器学习:基于规则的方法
关键概念:
通用机器学习问题类型:分类、多分类和回归
预测函数:给定输入x,预测输出y
训练数据:输出x,输出y的集合
监督学习算法:利用训练数据,产生预测函数
输入数据的类型:文本文档、变长时间序列、图像文件、声音记录、DNA序列
预测函数预期的输入数据类型:定长数字矩阵、浮点数、
特征抽取:把输入的原始数据转化为特征矩阵
独热向量编码:二进制特征集合,有精确的非零值
分类变量:一个变量,取几个可能值中的一个
如何评估预测函数的性能:损失函数
k折交叉验证(k-Fold Cross Validation):把数据分成相同大小的k份。每次取出一份作为测试集,其余作为训练集,训练出一个模型。最后取平均值。
过拟合:在训练集上性能很好,但测试集上性能很差。
如何解决过拟合:降低模型复杂度,获取更多训练数据
参考:
1、朴素贝叶斯分类器(Naive Bayesian Classifier) https://blog.****.net/qq_32690999/article/details/78737393#_9
2、贝叶斯通俗易懂推导 https://blog.****.net/jiangjiang_jian/article/details/81346797
3、带你搞懂朴素贝叶斯分类算法 https://blog.****.net/amds123/article/details/70173402
4、Foundations of Machine Learning https://bloomberg.github.io/foml/#home