分类基础

Report
分类基础
林琛
博士、副教授
有的时候也表示为
二元分类
y  {  1,  1}
• 假设你是一个房产中介,过去登录在系统中若干套房子的
销售记录,以下是这些房子的基本信息和销售情况
编号
面积
地点
楼层
建造年
代
装修
价格
售出
1
92.64
东浦路
8
2008
精
168万
是
2
107.26
禾祥东
路
22
2000
一般
160万
否
3
96
后浦东
里
2
2012
无
132万
否
4
642
厦禾路
35
2007
豪华
4567万
否
5
97
湖光路
5
1993
一般
129万
否
6
50
厦禾路
3
2005
精
105万
是
6
77
东浦路
3
2003
精
128万
是
1…
98
东浦路
27
2009
无
100
?
尝试使用线性
回归拟合训练
数据
y
0.5
面积
线性回归方法的几个缺陷:
1. 线性回归的值域无法表示类别型标记
2. 缺乏直观的分类依据
Logistic Regression
• 0<h(x)<1
– 单调性
• Logistic分布
– 大于0,小于1
– 加和为1
• 因此,h(x)的值可以解释为y=1的概率
– 1-h(x)是y=0的概率
1
y
0
h ( x )  0.5
h ( x )  0.5
Logistic函数/
Sigmoid函数
多元logistic regression的决策面
1
y
0
z0
z0
x2
x1
线性可分
给定一个数据集,如果存在某个超平面S:wx+b=0,能够将数据集的正实例和负实例
完全正确的划分到超平面的两侧,则称该数据集为线性可分数据集,否则称该数据集
为线性不可分
损失函数
• Linear regression的损失函数
• Logistic regression的损失函数
– Y=1
h : 0.1 , 0.3 , 0.7 , 0.9
Cost : 2.3 , 1.2 , 0.36 , 0.1
– Y=0
y=1
h : 0.1 , 0.3 , 0.7 , 0.9
Cost : 0.81 , 0.49 , 0.09 , 0.01
课堂测试(1)
• 采用gradient decent方法计算logistic
regression的模型参数
Logistic regression的一些扩展
• 正则化logistic regression
• 多类分类
– One v.s. all
• max h1/h2/h3
• 不平衡分类
– 癌症病人的初期诊断
Fisher线性判别
y
Linear
Discriminate Analysis
从n维x空间到一维y空间的投
影
满足:
• X空间上的点同一类的投
影到y空间上聚集在一起
• 不同类的点分开
背景(1)
• 向量
– 对应Rn空间中无数多条线段
– 方向、长度
• 标准向量
– 起点为原点
• 例子
– 特征向量->样本
• 标准向量的终点
– 模型参数向量
背景(2)
• 向量的运算
– 加减
• 线段首尾相接
– 点乘(内积)
• 模,长度 ‖ w‖
• 夹角
cos  
• 正交/垂直
w·w
v ·w
‖ v‖ ‖ w‖
v ·w  0
– 叉乘(外积)
• 正交向量
‖ u  v‖‖ u‖ ‖ v‖sin 
背景(3)
• 直线(平面、超平面)与投影
x ·v
v ·v
v
wx  b
‖ w‖
示意图
度量:均值和离散度
• N维x空间
– 类均值向量
– 类内离散度矩阵
– 总类内离散度矩阵
– 类间离散度矩阵
• 1维y空间
– 投影类均值
– 投影总类内离散度
– 投影类间离散度
Fisher判别算法
• 最优化
• 可得
• 算法
– 把训练样本分成两个子集
– 分别计算子集的均值和离散度矩阵
– 计算类内离散度矩阵的逆
– 求解向量
Fisher线性判别解法
• 分子分母都有w,转化为带约束优化问题:
– 分母是一个常数c,最大分子 arg m ax w T S W
w
b
– 拉格朗日乘子法
T
s .t .w S wW  c
• 先通过偏导=0求W*
• 代入求\lambda
乘以Sw-1
两个标量
注意到我们只需要W的方向而不需要大小,所
以这两个的比例是多少相当于伸缩W,不重要
使用
• 开源软件
– ALGLIB in C# / C++ / Pascal / VBA
– MatLab
–R
• 分类
– 最终的分类策略可以有很多种
• 中点
• 范围
• 最近邻
• 降维/特征选择
SVM:最大间隔
如果数据集本身线性可分:
能将两类数据正确划分
且间隔最大
的直线
间隔的定义
• 分割超平面
wx  b
• 超平面(w,b)关于样本点(xi, yi)的几何间隔为
 i  yi
w xi  b
‖ w‖
为什么要乘以yi
直线一边是正
直线另一边是负
• 超平面(w,b)关于训练数据集的几何间隔为
所有样本点的最小值
  m in  i
最大间隔
• 表示为下面的约束最优化问题
– 最大间隔
– 正确分割
\gamma的值不影响,令其=1
最大问题转化为等价的最小问题
m ax w , b 
s .t . y i (
w xi  b
‖ w‖

)
m in w , b
m ax w , b
‖ w‖
s .t . y i ( w x i  b )  
1
2
‖ w‖ s .t . y i ( w x i  b )  1  0
2
课堂小测试
求最大间隔分离超平面
• 正例: (3,3),(4,3)
• 负例: (1,1)
m in w1 , w 2 , b
1
2
( w1  w 2 )
2
2
s .t .3 w1  3 w 2  b  1
4 w1  3 w w  b  1
 w1  w 2  b  1
b  2
w1  w 2 
1
2
可以看出
只有距离分割超平面最近的样本点是决定性作用的
称为支持向量
支持向量的个数一般很少,所以SVM由重要的训练样本
决定
SVM算法
• 拉格朗日函数
1
w
L ( w , b , a )  ‖ w‖   i a i y i ( w x i  b )   i a i
2
• 对w,b求偏导数并令其等于0,求得w,b
 w L ( w , b , a )  w   i ai y i xi  0
 b L ( w , b , a )   i ai yi  0
w   i a i y i xi
 i ai yi  0
• 代入求对a的极大
m ax a 
1
2
 i  j ai a j y i y j ( xi x j )   i ai
s .t . i a i y i  0
ai  0
可以把极大转为极小问题,
符号正变为负
课堂小测试
求最大间隔分离超平面
• 正例: (3,3),(4,3)
• 负例: (1,1)
m in a
1
2
 i  j a i a j y i y j ( xi x j )   i a i
 9 a1  12.5 a 2  a 3  21 a1 a 2  6 a1 a 3  7 a 2 a 3  a1  a 2  a 3
2
2
2
s .t .a1  a 2  a 3  0
ai  0
代入得:
2
2
s ( a1 , a 2 )  4 a1  6.5 a 2  10 a1 a 2  2 a1  2 a 2
a1  1 / 4, a 2  0, a 3  1 / 4
w1  w 2 
b  2
1
2
求偏导
(1.5,-1)是极值点,但不满足约束条件ai>=0
所以在边界上达到极值
SVM和LR的损失函数
• Cost function of logistic regression
cost1x
– Y=1:z>>0
– Y=0:z<<0
m in J (  )  1 / 2‖ ‖
2
s .t . y  0,  x   1
T
 y  1,  x  1
T
线性支持向量机的扩展
• 数据集线性不可分
– 大部分样本线性可分,除了一些离群点
• 软间隔
– 不能用直线(线性模型)分开,但可以用曲线
(非线性模型)分开
• 核技巧
软间隔
• 某些样本不满足间隔大于等于1的约束条件
• 对每个样本引进一个松弛变量
– 使每个样本到分界线的间隔大于等于1-松弛变量
– 对于每个松弛变量,相当于支付了一个代价
m in J (  )  1 / 2‖ w‖  C  i  i
2
s .t . y i ( w·x i  b )  1   i
惩罚参数:对误分类的惩罚大小
i  0
– 这样的模型叫做线性支持向量机(线性核)
非线性分类问题
• 非线性可分问题
– 无法用线性模型(直线)正确分开
– 可以用一个超曲面将正负例正确分开
– 可以进行一个非线性变换,将非线性问题转换
为线性问题
动画展示
• 非线性变换
z   ( x )  ( x1 , x 2 )
2
2
核函数
• 定义
– 如果存在一个映射\phi,使得对所有的输入x,z,函数k
满足:
k ( x , z )   ( x )· ( z )
– K称为核函数
• 一般直接 定义核函数
– 通常直接计算核函数比较容易
– Cost function中只涉及到核函数
• 常见的核
– 多项式核:
– 高斯核:
– 字符串核:
使用SVM分类器
• 建议使用开源软件如LibSVM、SVM-light等
• 需要确定的参数
–C
– Kernel
• Linear kernel
• Non-linear kernel
– Kernel参数
一般步骤
1. 数据格式转换
2. 特征归一化
3. 在交叉验证上重复
1. 选择参数 C
2. 选择kernel和相应参数
3. 计算交叉验证精度
1. 如果满意,停止
4. 以最优参数C及Kernel进行训练
5. 预测
课堂测试
• 当使用libSVM中出现了以下问题时,你应该
怎么调整参数?
– 在交叉验证中偏差很大,采用线性核
– 在交叉验证中偏差很大,采用非线性核
– 在交叉验证中方差很大,降低C值
– 在交叉验证中方差很大,提高C值

similar documents