机器学习算法简介

Download Report

Transcript 机器学习算法简介

第八章
机器学习算法简介
邹权(博士)
计算机科学系
提要
8.1 机器学习问题
8.2 机器学习算法
8.3 机器学习应用
8.4 WEKA平台简介
8.1 机器学习问题
• 概念
– 人工智能(Artificial Intelligence, AI)
– 机器学习(machine learning, ML)
– 模式识别(Pattern Recognition, PR)
• 研究内容
– 分类(classify)、聚类(cluster)、回归(regress)
– 有监督学习(supervised learning) 、无监督学习
(unsupervised learning) 、半监督学习(semisupervised learning)
输入
数
据
采
集
预
处
理
特
征
提
取
分
类
器
分类结果
x
h
3.00
x2
红苹果
2.50
橙子
2.00
1.50
x1
0.60
0.80
1.00
1.20
1.40
待识模式
数据采集及预
处理
特征提取与选
择
识别结果
模式分类
分类
训练
训练模式
数据采集及预
处理
特征提取与选
择
分类器设计
不同的分类方法效果不同
8.2 机器学习算法
• 分类
– 朴素贝叶斯(Native Bayes)
– Fisher线性判别
– 支持向量机(support vector machine, SVM)
– K近邻(k nearest neighbors, kNN)
• 聚类
– K均值(K means)
贝叶斯分类器的错误率估计
p 2 x 
p  1 x 
贝叶斯公式
P( cj|x) =
P(x|cj)P(cj)
P(x)

先验概率P(cj)

联合概率P(x|cj)

后验概率P(cj|x)
最小错误率
决策
Bayes最小错误率决策例解
 两类细胞识别问题:正常类(ω1)和类异常(ω2)
 根据已有知识和经验,两类的先验概率为:
正常(ω1): P(ω1)=0.9
异常(ω2): P(ω2)=0.1
对某一样本观察值x,通过计算或查表得
到:
p(x|ω1)=0.2, p(x|ω2)=0.4
 如何对细胞x进行分类?
p(x|ω )
1
p(x|ω2)
最小错误率
决策
Bayes最小错误率决策例解(2)
 利用贝叶斯公式计算两类的后验概率:
P(1 | x) 
P(1 ) p( x | 1 )
2
 P( ) p(x |  )
j 1
P(2 | x) 
j
j
P(2 ) p( x | 2 )
2
 P( ) p(x |  )
j 1
0.9  0.2

 0.818
0.9  0.2  0.1  0.4
j
0.4  0.1

 0.182
0.2  0.9  0.4  0.1
j
j  argmax P(i | x)  1
i
x  1
决策结果
Fisher线性判别函数分类器
Fisher准则的基本原理:找到一个最合适的投影
轴,使两类样本在该轴上投影之间的距离尽
可能远,而每一类样本的投影尽可能紧凑,
从而使分类效果为最佳。
Fisher线性判别
Fisher准则的基本原理:找到一个最合适的投影
轴,使两类样本在该轴上投影之间的距离尽
可能远,而每一类样本的投影尽可能紧凑,
从而使分类效果为最佳。
Fisher
Fisher线性判别图例
x2
w1
H: g=0
w2
x1
Fisher准则的描述:用投影后数据的统计性质
(均值和离散度的函数)作为判别优劣的标准。
SVM-线性可分
SVM-线性不可分

以到原点的距离作为第3维
(实际上分布在一个旋转抛物面上)
8.3 机器学习应用
• 多媒体处理
– 人脸识别、指纹识别
– 视频跟踪
– 哼唱找歌
• 自然语言处理
– 机器翻译
– 信息检索(google, baidu)
– 中文输入法
• 生物信息处理
– 基因挖掘
– 大分子功能预测
– 基因调控关系
• 网络安全
– 垃圾邮件过滤
– 敏感图片识别
– 病毒检测
8.4 WEKA
• 全名:怀卡托智能分析环境(Waikato
Environment for Knowledge Analysis)
• 下载:http://www.cs.waikato.ac.nz/ml/weka
• 功能:分类、回归、聚类、关联规则
• 特点:可视化操作、可调用编程
• 开发:JAVA、开源
• 荣誉: ACM SIGKDD的最高服务奖(2005.8)
数据格式
图形化操作
http://you.video.sina.com.cn/b/8235896-1272335572.html
编程操作---第一个程序
public class Console {
public static void main(String[] args) {
try{
BufferedReader br = new BufferedReader(new FileReader("train.arff"));
Instances ins = new Instances(br);
ins.setClassIndex(ins.numAttributes()-1);
Classifier c1 = new J48();
c1.buildClassifier(ins);
System.out.println(c1.toString());}
catch(Exception ex){} }}
编程操作----注意事项
• 不要忘了在工程中导入weka.jar包
• 不要忘了import相应的类
Pancake Flipping Problem
• The chef is sloppy; he prepares
an unordered stack of pancakes
of different sizes
• The waiter wants to rearrange
them (so that the smallest
winds up on top, and so on,
down to the largest at the
bottom)
• He does it by flipping over
several from the top, repeating
this as many times as necessary
Christos Papadimitrou et al
flip pancakes