本文主要是介绍NLP09_机器学习、监督学习、模型搭建流程、朴素贝叶斯、系统评估、准确率,精确率召回率,F1-Measure,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于概率的系统
给定数据集,X代表特征信息,y代表标签
最终学习到x到y的映射关系f
模型f可以表示线性回归、逻辑回归、神经网络
nlp依赖于机器学习
机器学习
算法分类
监督学习,给定标签。无监督学习只有特征,没有标签
朴素贝叶斯:用于文本分类(垃圾邮件过滤,情感分析)上
逻辑回归:
CRF:
HMM:常用于语言识别
LDA:抽取文本主题
GMM:高斯回归模型
监督学习
无监督学习,
因为没有标签,也就不会产生f这样一个模型,所以更多的是做数据分析
比如将数据进行聚类分析
工业界主流还是监督学习。
K-means常用作聚类操作,占绝大多数聚类场景
PCA:根据协方差矩阵进行降维
MF:矩阵分解,最常用于推荐系统
LDA:用于文本分析,分析出主题
生成模型和判别模型
生成模型:已经训练好了模型,来生成文本或t图片。模型要记住猫和狗的特点,然后可以用于生成猫或狗的图片
判别模型:只记住猫和狗的区别,而不去记住他们的各自特点,所以也不能用于生成图片。基于x,去做出判断y,得到最大的概率
AI模型的搭建流程
1、首先要有数据,
2、然后清洗数据,要很重视
3、接着特征工程,也就是确定x,我要从数据里面提取出来关键的信息,也就是特征。
特征工程占据很大成本,70%的时间是在设计特征工程,然后就是一些调参的工作
特征的好坏决定选择模型以后准确率的一个上限,
好的特征可以让你经过调参和选择模型,让系统的准确率达到很高,
坏的特战可能最高的准确率存在一个上限瓶颈。
4、建模
5、预测
端到端的流程
将特征工程这一步去掉,不做特征工程,这就是端到端的过程
我只是把数据灌进去,然后通过算法去学习。相当于把特征工程和建模整合到了模型里。
但是不是所有的领域都可以使用端到端的方式, NLP领域这种方式大部分情况效果不好。
但是图像识别领域有很好的效果。
我们把数据分为训练集和测试集,训练集上训练模型
朴素贝叶斯
适合于文本分类,如:垃圾邮件识别
计算邮件中每个单词出现的概率
先验信息
贝叶斯定理
条件独立
垃圾邮件预测
假定我已经将邮件中的句子通过分词工具切分
其实最终要的就是邮件是正常还是垃圾的一个概率。
例子
给出垃圾邮件和正常邮件各3个
先计算先验概率,计算出垃圾邮件和正常邮件所占的比例
构建词库v
注意几点问题:
1、在计算正常邮件和垃圾邮件中单词出现概率中,避免出现单词计算概率为0的情况,所以加了add-one soomthing平滑项
2、在最终预测时出现概率连乘,这样最终的乘积可能会是一个小数点后位数太多,超过了计算机的表示范围,所以报错overflow。为避免这种情况,所以一般计算概率的对数,对数函数是严格递增函数,不影响最终结果的判断,同时也会将连乘变为了对数的相加,更简单
评估系统
评估方法:
1、准确率
但样本比例不均衡时,准确率这种评估方法不适用,比如负样本90%,正样本10%
比如做一个癌症检测模型,我在训练集中有1000个人,只有5个人是确诊癌症患者,作为正样本。
当我训练模型以后,假如我对测试数据都判断为未得癌症,那这个判断的准确率能达到99。5%,显然这个概率很高,但是它的意义却不大
2、精确率和召回率
selected表示系统判断有癌症的人群,假如判断出10个有癌症,但是实际上只有8个有,还有两个是判断错的,那么精确率就是80%
no selected表示系统判断为没有得癌症的人群,
correct表示实际确实得癌症的,not correct表示实际没有癌症的。
召回率就是看Correct这一列,总共实际的癌症患者是10个,但是系统只判断出8个,另外两个判断为没有得癌症,所以召回率是80%
TP:true positive
FN:false negative
精确率和召回率是一个互斥关系,精确率增加的同时,召回率在下降
所以一般是要求精确率和召回率都大于某个设定的阈值,那么就满足上线的标准。
考虑怎样把精确率和召回率合并到一起,组合成一个数字来表示评估的标准
F1-Measure
基于精确率和召回率得到的一个计算公式
目的就是将对系统的多个维度的评价合并成一个维度去考虑。
可以计算出正样本的F1和负样本的F1,最后做平均得到整体样本的一个F1
如果是三个维度以上,类似,最后做平均即可
正样本和负样本,是考虑全部样本的结果
比如对于正常邮件,是以正常邮件和垃圾邮件总和中去找的,也就是系统判断的正常邮件的结果
准确率是(16+3)/25
这篇关于NLP09_机器学习、监督学习、模型搭建流程、朴素贝叶斯、系统评估、准确率,精确率召回率,F1-Measure的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!