1 / 59

林琛 博士 、 副 教授

分类. 林琛 博士 、 副 教授. 本讲要点. 分类基础 分类过程 分类算法 KNN ,决策树,神经网络 分类评估 分类高级 预处理与特征选择 不平衡分类,多类分类,多标记分类 集成分类算法 Adaboost , bagging, 随机森林. 分类过程. 步骤 1 :训练 已标注的训练集 分类“模型”表达 步骤 2 :预测 构建测试 集 应用分类“模型”预测类别 评估. 一个例子.  借助适合于当地使用的彩色蘑菇图册,逐一辨认当地食用菌或毒蘑菇是一个很好的方法。.

Download Presentation

林琛 博士 、 副 教授

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 分类 林琛 博士、副教授

  2. 本讲要点 • 分类基础 • 分类过程 • 分类算法 • KNN,决策树,神经网络 • 分类评估 • 分类高级 • 预处理与特征选择 • 不平衡分类,多类分类,多标记分类 • 集成分类算法 • Adaboost, bagging, 随机森林

  3. 分类过程 • 步骤1:训练 • 已标注的训练集 • 分类“模型”表达 • 步骤2:预测 • 构建测试集 • 应用分类“模型”预测类别 • 评估

  4. 一个例子  借助适合于当地使用的彩色蘑菇图册,逐一辨认当地食用菌或毒蘑菇是一个很好的方法。 • 看形状:毒蘑菇一般比较黏滑,菌盖上常沾些杂物或生长一些像补丁状的斑块。菌柄上常有菌环(像穿了超短裙一样)。无毒蘑菇很少有菌环。 • 观颜色:毒蘑多呈金黄、粉红、白、黑、绿。无毒蘑菇多为咖啡、淡紫或灰红色。 • 闻气味:毒蘑菇有土豆或萝卜味。无毒蘑菇为苦杏或水果味。 • 看分泌物:将采摘的新鲜野蘑菇撕断菌杆,无毒的分泌物清亮如水,个别为白色,菌面撕断不变色;有毒的分泌物稠浓,呈赤褐色,撕断后在空气中易变色 毒蘑菇? 凭经验知道

  5. K近邻(KNN) • 基本思想 • 对于一个测试样本 • 找出最接近测试样本的训练样本 • 决定测试样本的标签 • 实例投影到 n维空间 • 多少个?K怎么选 • 怎样判断相似度? • 怎么决定? _ . _ _ _ + + _ + xq _ +

  6. K的选择 . . . . . . . . . . K=1 最近邻 K=2 • 常用方法: • 不断增加k直到达到一个较好的预测值 • 交叉验证: • 将训练集分成若干部分,用其中一些作为训练,另一些作为检验 • 十折、五折…… K=3:实线,预测红 K=5:虚线,预测蓝

  7. 相似度度量的选择 • 相似度 • 数值描述两个对象的相似程度 • 通常范围[0,1] • 一般是对称的 • 相异度 • 数值描述两个对象的差异程度 • 范围[0,1]或者>0(可以到无穷大) • 一般是对称的 • 严格的测度需要满足三角不等式

  8. 简单属性的相似度/相异度及变换 • 回顾: 属性(特征)种类(Lecture 2) • 标称(Nominal),满足相异性,如身份证号 • 序数(Ordinal),满足相异性,有序性,如门牌号 • 区间(Interval),满足相异性,有序性,可加性,如日期 • 比率(Ratio),满足全部:如长度

  9. 复杂对象的相似度测量 • 明氏距离Minkowski Distance • 曼哈顿距离(城市街区距离):p=1 • 欧式距离 :p=2 • 余弦相似度Cosine Similarity • 皮尔逊积矩相关系数Pearson Correlation • 杰卡德相似度Jaccard Similarity • 编辑距离Edit Distance 请给出上述距离/相似度的值域

  10. 相似度量的选择 • Google 的新闻是自动分类和整理的。所谓新闻的分类无非是要把相似的新闻放到一类中。计算机其实读不懂新闻,它只能快速计算。这就要求我们设计一个算法来算出任意两篇新闻的相似性。为了做到这一点,你打算采取什么样的相似度? • 吴军《数学之美》 • 考虑如下的一个图形,欧氏距离适合用来测度相似性吗?

  11. 规范化 假设属性:收入的范围是 $12,000 ~$98,000 。希望规范化到 [0.0, 1.0]. 则$73,600 规范化后的值是: • 最小-最大规范化 • 首先确定新的数值范围 • Z-score 规范化 • 确定均值μ,标准差σ • 小数定标规范化 • 通过移动属性的小数点 上例中假设μ = 54,000, σ = 16,000. 换算$73,600 上例中换算$73,600 0.736 其中j是使得Max(|ν’|) < 1的最小整数

  12. 规范化方法比较 • 最小-最大规范化 • 最小,最大值是全局的 • 如果测试数据和训练数据不一致,则会出现“越界” • 线性变换 • Z-score规范化 • 不受孤立点影响 • 需要保存参数,对测试集进行统一处理 • 小数定标规范化 • 需要保存参数,对测试集进行统一处理 • 线性变换

  13. 投票策略 • 多数投票 • 指派到k近邻的多数类 • 加权投票 • 对噪音数据的鲁棒性 • 距离越近权重越大

  14. 查找最近邻 • 穷举 • 将数据集中的点与查询点逐一进行距离比较 • 索引 • 划分互不重叠的空间 • 在空间里查找最近邻 • K-d tree • K指的不是KNN ,指的是特征维度

  15. K-d树构建 树节点数据结构: Node-data //数据集中某个数据点 Range //该节点所代表的空间范围 Split //垂直于分割超平面的方向轴 Left //由位于该节点分割超平面左子空间内所有数据点所构成的k-d树Right //由位于该节点分割超平面右子空间内所有数据点所构成的k-d树parent //父节点 createKDTree//构建k-d树算法 Input:Data-set,Range Output:k-d tree If (Data-set为空) Return 空的k-d tree; Else //调用节点生成程序: Split=argmax(sd); Node-data=median(d[split]); Data-set' = Data-set\Node-data; createKDTree(dataLeft,leftRange); createKDTree(dataRight,rightRange); 看一个例子

  16. K-d树上的最近邻查找 6个二维数据点{(2,3),(5,4),(9,),(4,7),(8,1),(7,2)} 对于给定点(2,4.5),查找最近邻 算法维护数据结构:路径堆栈,当前最近邻,当前最近距离 1,在k-d树上查找最近区域 路径<(7.2),(5,4)(4,7)> 2,根据堆栈回溯比较每个最近邻 在k-d树上二叉查找 从堆栈最顶端弹出(4,7),距离:3.202 弹出(5.4),距离:3.041<3.202 考虑(5,4)的左空间是否需要搜索 在(2,4.5)的圆心上画半径为3.041的圆 发现与(5,4)的左空间交集 把(2,3)列入路径 弹出(2,3),距离1.5 弹出(7,2),考虑右空间是否需要搜索 在(2,4.5)的圆心上画半径为1.5的圆 不与(7,2)的右空间交集 结束 K-d树划分空间

  17. LSH • 局部敏感哈希(Locality Sensitive Hashing) • 用于Jaccard Similarity • 特征维数很高 变换特征顺序 第一个非零位 minHashing1(A,B,C,D,E)分别为1, 2, 1, 3, 4 经过多次随机变换特征顺序,得到minh 如n=6,Sig(A )= (2,1,5,0,3,2) Sig(B)=(2,1,3,2,8,0), 近似计算sim(A,B)≈2/6 = 0.33

  18. KNN扩展到回归问题上 • 回归问题: • 在教材里被称为“预测” • 和分类的不同 • 分类:离散 • 回归:数值 • 一个典型的回归问题 • 推荐系统 • KNN方法:协同过滤

  19. 协同过滤:k近邻 K近邻的基本思想: 利用偏好相似的用户进行推荐 v u u1 u2 u3 • 直接反馈(评分矩阵)特点: • 稀疏 • 动态 • 新评分 • 新用户 • 新项目

  20. 基于项目的协同过滤 v u

  21. 具体实现(1) • 怎么选择相似的用户/项目? • 相似性的计算 • 基于评分的

  22. 具体实现(2) • 选择多少个相似的用户/项目? • 定值K • 阈值法T • 一个朴素算法 • 输入:评分矩阵 • 输出:预测评分矩阵 • For each 用户对 • 计算相似度 • End • For each 需要预测的用户-项目 • 预测评分 • End

  23. 具体实现(3) • 用户打分偏差? • 规范化 • 能找到足够多的在目标项目上评分的相似用户吗?(数据稀疏) • 预处理

  24. 对协同过滤的改进(偏差) 展示的是以平均值来调整用户评分偏差 同样可以用z-score,方差等方法来调整 • 偏好漂移 • 越老的评分越不可信 • 衰减因子

  25. 对协同过滤的改进(数据稀疏) • 方案1:填空 • 方案2:相似用户在相似项目上的评分

  26. 对协同过滤的改进(数据稀疏) • 方案3:降维 • 评分矩阵分解 • 相似矩阵分解(SVD) item item Similarity matrix user user

  27. 对协同过滤的改进(数据稀疏) 图(距离) 图(传播) 随机游走 • 最短路径 • 最大流 0.6 1.0 0.5 0.4 0.8 1.0 1.0 1.0 0.2

  28. 问题 • 自由讨论以下问题 • 协同过滤算法能适应大规模的推荐系统吗?(可伸缩性) • 存储空间 • 计算效率 • 协同过滤算法如何应对不断增长的评分矩阵? • 针对新项目,新用户怎么预测评分?(冷启动)

  29. 基于规则的分类 • 如果你有一些分类知识,用IF-THEN规则表示 R: IF age = youth AND student = yes THEN buys_computer = yes • 如果有多条规则 IFage = young AND student = noTHENbuys_computer = no IFage = young AND student = yesTHENbuys_computer = yes IFage = mid-age THENbuys_computer = yes IFage = old AND credit_rating = excellent THENbuys_computer= no IFage = old AND credit_rating = fairTHENbuys_computer = yes • 如何排序 • 训练集:买电脑

  30. 规则排序 • 规模序方案:将最高优先权赋予具有“最苛刻”要求的触发规则 • 规则前件的规模(如触发属性的多少) • 规则序方案:预先确定规则的次序 • 基于类的序:最普遍的类->最少见的类 • 规则质量的度量 • 覆盖率ncovers= # of tuples covered by R • 准确率ncorrect= # of tuples correctly classified by R

  31. age? <=30 overcast >40 31..40 student? credit rating? yes excellent fair no yes no yes no yes 如何生成规则:决策树方法 • 决策树:是一种从标记类的训练元组中学习到的树结构,其中 • 内部节点(矩形):表示一个属性上的测试 • 分支:一个测试输出 • 可以是二叉或者非二叉的 • 叶节点(椭圆形):存放一个类标号

  32. 归纳决策树的基本算法 • 贪婪的,自顶向下的重复分治法 • 创建根节点,所有候选属性集合 • 递归调用划分数据集的过程(参数:候选属性集合,元组集合) • 找出最好的属性及其分裂准则 • 如果是离散属性且允许多路划分,删除该属性 • 对分裂属性的每个分枝 • 以满足该条件的训练集合与当前候选属性集合为输入 • 递归调用划分过程 • +该节点到根节点 • 停止分裂 • 如果所有训练实例都是同类 • 属性列表为空 • 多数表决 • 训练元祖为空 • 叶子节点

  33. 属性选择 • 同时选择测试属性及如何分裂 • 背景:熵 • 随机变量的不确定性越大,把它搞清楚所需要的信息量也要越大 • 反之组分越纯信息量越小 • 信息增益(ID3) • 增益率(C4.5) • Gini指标(CART)

  34. 离散值属性的信息增益 • 假设按照属性A划分D中的元组 • 这样划分的信息量 • 原信息量 • 信息增益 • 选择信息增益最大的属性 • 即分后信息量最小,最纯的划分

  35. 连续值属性的信息增益 • 找到最优的分裂点 • 对A按照升序排列 • 考虑所有可能的分裂点(一般是两个相邻值的中点) (ai+ai+1)/2 • 计算最小信息增益 • 元组划分(二叉) • D1 :A ≤ split-point • D2 :A > split-point

  36. 使用信息增益构造决策树 属性”age” 原信息量(不划分) 课堂小quiz:计算Gain(income)=?

  37. 增益率 课堂小quiz:一般来说,信息增益偏向选择具有多个不同值的属性还是少量值的属性?为什么? • 利用分裂信息对信息增益进行了规范化 • 分裂信息:分裂产生的信息量 • 增益率

  38. 使用增益率构造决策树 age? <=30 >40 31..40 ? 原信息量(不划分)

  39. Gini指标 • 考虑属性上的二元划分(二叉树) • 离散属性 • 划分为两个子集 • 对于每个子集中的元组 • 其中pj是类j 出现在 D中的相对频率 • 该二元划分 • 选择最小Gini指标的属性和划分 • 连续值属性 • 考虑所有可能的分裂点(相邻值的中点)

  40. 使用Gini指标归纳决策树 同理,Gini{low,high} =0.458 Gini{medium,high} =0.450 最优划分:{low, medium}和{high} Income属性的二元划分 {low, medium} {high} {low, high} {medium} {medium, high} {low}

  41. 比较 分裂准则 特点 偏向大量值的属性 偏向少量值的属性 偏向平衡的划分 偏向不平衡的划分 • 信息增益 • 增益率 • Gini指标 课堂小quiz:为左右两栏连线 答案:信息增益和Gini指标偏向大量值的属性 增益率偏向少量值的属性和不平衡的划分 Gini指标偏向平衡的划分

  42. 剪枝 • 过拟合 • 由于数据中的噪声和离群点,许多分支反映的是训练数据中的异常 • 测试数据是未观测到的,可能效果不好。 • 剪枝 • 先剪枝 • 例如,一旦发现分裂准则不满足预定义的阈值,则停止划分 • 后剪枝 • 完全生长树后检查 • 代价复杂度(CART) • 由底向上,如果某个内部节点的子树的树叶节点个数和树的错误率(误分类元组所占百分比)比剪去子树代价复杂度高,则剪枝 • 由叶子替换子树

  43. age? <=30 overcast >40 31..40 student? credit rating? yes excellent fair no yes no yes no yes 由决策树提取分类规则 • 沿着树中由根节点到每个叶节点的路径,提取IF –Then 规则 • 由于决策树的分支是互斥和穷举的 • 互斥:没有两个规则被相同的元组所触发 • 穷举:所有属性值组合都存在一个对应规则 • 因此,规则的序不重要 课堂小quiz:提取该决策树的规则?

  44. 神经网络 • 原型:生物神经元之间的相互连接从而让信息传递的部位披称为突触(Synapse)。突触按其传递信息的不同机制,可分为化学突触和电突触、其中化学突触占大多数,其神经冲动传递借助于化学递质的作用。生物神经元的结构大致描述如下图所示。

  45. bias x0 w0 x1 w1 f å output y xn wn Input vector x weight vector w weighted sum Activation function MP模型 • 神经元的形式化数学描述 • 多输出、单输入 • 兴奋和抑制 • 阈值特性(偏倚)

  46. 感知器模型 Output vector • 模拟神经网络 • 前馈网络 • 层间无反馈 Output layer Hidden layer wij Input layer Input vector: X

  47. 训练神经网络 • 后向传播算法 • 初始化权重和阈值(偏倚) • -1.0~1.0 • 向前传播输入 • 根据激励函数计算上一层的输出 • 作为下一层的输入 • 向后传播误差 • 对于输出层单元,误差=(真实值-输出值)x导数 • 对于隐藏层单元,误差=(反向连接误差加权和)x导数 • 更新权重和偏倚:+步长x误差x输出 • 重复直至收敛

  48. 后向传播更新算法 第一步:随机初始化 Logistic函数 1 1 第二步:向前传播 4 6 2 0 5 1 3 1 第三步:向后传播更新权重和偏倚,步长=0.9 节点6,误差0.474x(1-0.474)(1-0.474)=0.1311,更新权重 W46=--0.3+0.9x0.1311x0.332=-0.261 W56=-0.2+0.9x0.1311x0.525=-0.138 6=-0.4+0.9x-0.0087=-0.408 2. 节点5,误差=0.525x(1-0.525)x0.1311x-0.2=-0.0065

  49. 以上分类器的讨论 • 形状 • KNN:任意形状,线性 • 决策树:矩形 • ANN:任意形状,特别是非线性 • 增量学习 • KNN • 并行计算 • ANN • 计算开销 • 更复杂的情况 • 不平衡分类 • 多类分类 • 多标记分类

  50. 分类效果的评估 混淆矩阵: 课堂小quiz:癌症识别应该用什么评估指标? • 准确率:正确分类的元组百分比 Accuracy = (TP + TN)/All • 误差率:1 –accuracy,或者 Error rate = (FP + FN)/All • 精度:正确分类的正例占结果比率 Precision=TP/(TP+FP) • 召回率:发现的正例占正例比重 Recall=TP/(TP+FN) • F-score • 灵敏度: 正确识别的正例 • Sensitivity = TP/P • 特效性:正确识别的负例 • Specificity = TN/N

More Related