机器人之ML15: 机器学习2
小标 2018-10-17 来源 : 阅读 2068 评论 0

摘要:本文主要向大家介绍了机器人之ML15: 机器学习2,通过具体的内容向大家展现,希望对大家学习机器人有所帮助。

本文主要向大家介绍了机器人之ML15: 机器学习2,通过具体的内容向大家展现,希望对大家学习机器人有所帮助。


十、逻辑分类器

1.预测函数

g(z) = 1 / (1+e^-z) 
z = t0 + t1x1 + t2x2 + … + tnxn 
h(x1, …, xn) = 1 / (1+e^-(t0 + t1x1 + t2x2 + … + tnxn)) 
J(t0, …, tn) = sigma((h(x1, …, xn) - y)^2) / 2m 
t0, …, tn ? -> J(t0, …, tn) min 
若可证明K(t0, …, tn)和J(t0, …, tn)是同极函数,则可以通过使K函数取极值的模型参数(t0, …, tn)间接地表示使成本函数J取极小值的参数。 
J(t)+r||t||(l1/l2(缺省)) 
||t||(l1):t向量各元素绝对值之和 
||t||(l2):t向量各元素平方值之和 
r||t||称为正则项,避免由于t向量过大造成模型过拟合,其中r称为正则强度,越大正则强度越高,对t的惩罚力度越大,反而反之。 
代码:log1.py 
多元分类:首先把问题转化为二元分类问题,即y=A是一个类别,y={B, C, D}作为另一个类别,然后计算这两个类别的概率,接着,把y=B作为一个类别,把y={A, C, D}作为另一个类别,在计算这两个类别的概率,以此类推,总共需要4个预测函数,选出其中概率最高的那个类别,作为未知类别样本的分类。 
坐飞机  不坐飞机 

                    坐火车   不坐火车 

                                         自驾   不自驾 
A 1     0        0 
B 0     1        0 
C 0     0        1 
D 0     0        0 
模型1 模型2  模型3 … 
0.97   0.02 
0.01   0.01 
代码:log2.py

十一、朴素贝叶斯分类器

警察用劣质检测器测试酒驾,该检测器有5%的概率把一个正常司机判断为酒驾,已知有0.1%的司机会酒驾。假设警察拦下一个司机,做呼气测试,检测器显示酒驾,该司机究竟有多大概率真的酒驾? 
1000个司机中有1个酒驾,另外999个正常 
1/(1+999x5%)=1.96% 
贝叶斯定理: 
P(A|B)=P(A)P(B|A)/P(B) 
P(A|B)P(B)=P(B|A)P(A) 
P(A,B) = P(B,A) 
B: 检测器显示酒驾的概率 
A: 司机真正酒驾的概率 
P(A|B)=0.1%x100%/(0.1%x100%+(1-0.1%)x5%)=1.96% 
在B事件发生的条件下A事件发生的概率P(A|B),等于A事件发生的概率P(A)乘以A事件发生的条件下B事件发生的概率P(B|A)比上B事件发生的概率P(B)。 
求输入样本x被标记为c类的概率p(c|x),当c取所有可能标记事,对应概率最大的就是x的所属的类别。 
p(c|x)=p(c)p(x|c)/p(x) 
p(c|x)&p(c)p(x|c)=p(c,x) 
=p(c,x1,x2,…,xn) 
=p(x1,x2,…,xn,c) 
=p(x1|x2,…,xn,c)p(x2,…,xn,c) 
=p(x1|x2,…,xn,c)p(x2|x3,…,xn,c)p(x3,…,xn,c) 
=p(x1|x2,…,xn,c)p(x2|x3,…,xn,c)p(x3|x4,…,xn,c)…p(xn|c)p(c) 
朴素:输入样本中的n个特征(x1,x2,…,xn)是条件独立的,其中任何一个特征都与其它特征无关。 
=p(x1|c)p(x2|c)p(x3|c)…p(xn|c)p(c) 
代码:nb.py

十二、划分训练集和测试集

          model_selection12

sklearn.cross_validation.train_test_split(输入, 输出, 

    test_size=测试集占比, random_state=混合度)-> 
训练输入, 测试输入, 训练输出, 测试输出 
代码:split.py

十三、交叉验证

1.只做一次训练集和测试集的划分,多得到的性能指标不具有一般性,通过多次划分和评估,取其平均值,获得更具一般意义的评价指标。 
2.分类问题的三个验证指标 
1)查准率(P):对于特定类别,预测正确的样本数/预测样本数 
2)召回率(R):对于特定类别,预测正确的样本数/实际样本数 
3)F1得分:2PR/(P+R),[0, 1] 
sklearn.model_selection.cross_val_score(模型对象, 

     输入样本, 输出样本, cv=验证次数, scoring=指标名)-> 
由验证次数个指标值组成的数组 
指标名: precision_weighted - 查准率 

            recall_weighted - 召回率 

            f1_weighted - F1得分 
代码:cv.py

十四、混淆矩阵

混淆矩阵中每行表示一个实际分类的样本,每列表示预测分类的样本,主对角线上的值表示被正确预测的样本数,用主对角线上的值比上其所在列各元素之和就是该类别的查准率,用主对角线上的值比上其所在行各元素之和就是该类别的召回率。理想情况是所有的非零元素都落在主对角线上。 
sklearn.metrics.confusion_matrix(实际输出, 预测输出)->混淆矩阵 
sklearn.metrics.classification_report(实际输出, 预测输出)->性能报告 
代码:cm.py

十五、基于随机森林分类器的汽车品质评估

代码:car.py

十六、验证曲线和学习曲线

1.验证曲线:模型的性能指标与该模型超参数之间的函数关系。 
sklearn.model_selection.validation_curve(模型对象, 

    输入样本,输出样本,超参数名,超参数取值序列,cv=交叉验证次数)->训练集得分列表,测试集得分列表 
得分列表矩阵 

                  1次验证  2次验证 … 
超参数值1  0.98       0.97      … 
超参数值2  0.99       0.96      … 
… 
代码:vc.py 
并不是模型越复杂性能越好。 
2.学习曲线:模型的性能指标与训练该模型所使用的训练样本数量之间的函数关系。 
sklearn.model_selection.learning_curve(模型对象, 

    输入样本,输出样本,train_sizes=训练集大小序列, 

    cv=交叉验证次数)->训练集得分列表,测试集得分列表 
得分列表矩阵 

                     1次验证  2次验证 … 
训练集大小1  0.98       0.97      … 
训练集大小2  0.99       0.96      … 

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能智能机器人频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved