
1. 概述
1.1. 相似性是许多数据科学方法和商业问题解决方案的基础
-
1.1.1. 共通之处
-
1.1.2. 很多数据挖掘过程通常基于相似性或寻找“合适”的相似性来对个体进行分组
-
1.1.3. 分类模型生成分类边界来将目标变量值相同的个体归为同一组
1.2. 相似性可以用于分类和回归
1.3. 亚马逊和Netflix这样的现代零售商利用相似性来推荐相似的商品或基于相似的用户提供推荐服务
2. 相似性和距离
2.1. 两个个体之间相似性的一个常用的替代指标是,两者在由特征向量定义的实例空间中的距离
2.2. 只有在对象被表示为数据后,才能更精确地讨论对象间的相似性或距离
2.3. 两个对象在由特征定义的空间中距离越近,两者就越相似
2.4. 作为组织数据实例(重要对象的代表)空间的方法,为了服务于特定目的,相似的实例会被相似地对待
2.5. 分类树和线性分类器都能通过构建分区边界来区分不同类别
2.6. 欧几里得距离不仅限于二维
3. 最近邻推理
3.1. 有了度量距离的方法,就可以用它来解决数据分析工作中的许多问题了
3.2. 最近邻的概念来进行预测建模
-
3.2.1. 分类
-
3.2.2. 概率估计
-
3.2.3. 回归
3.3. 近邻的数量及其影响
-
3.3.1. 计算所使用的最近邻的数目没有单一标准,但奇数更能避免二元类问题中多数票决方式的平局问题
-
3.3.2. 最近邻算法通常简写为k-最近邻,其中k指代所选取的最近邻数
- 3.3.2.1. k越大,得到的平均估计值越平滑
-
3.3.3. 分类问题中新个体的目标变量预测值会是整个数据集中占多数的类
-
3.3.4. 回归问题中新个体的目标变量值是所有目标变量值的平均值
-
3.3.5. 类概率估计问题中新个体的目标变量值则是“基础比率”概率值
-
3.3.6. 加权表决或相似性适度投票
-
3.3.7. 加权评分有一个好处,就是削弱了决定最近邻个数的重要性
- 3.3.7.1. 每个最近邻的贡献度与距离挂钩,所以越远的近邻自然影响越小,故而在使用加权评分法时,k的取值不像在多数票决法或未加权平均法中那样关键
3.4. 几何解释、过拟合和复杂度控制
-
3.4.1. 没有明确的边界,但是由实例间的相邻关系构造的隐性区域确实存在
-
3.4.2. 1-最近邻分类器
- 3.4.2.1. 1-最近邻分类器同样能完美地预测训练个体,但经常也可以对其他个体做出合理预测:因为它用的是与之最相似的训练个体
-
3.4.3. 查询表不含任何相似性的概念,所以它只会完美预测某个特定的训练个体,而对其他个体则给予一样的默认预测
3.5. 最近邻方法的问题
-
3.5.1. 易理解性
-
3.5.1.1. 做出特定判断的理由和整个模型的易理解性
-
3.5.1.2. 整个最近邻模型判定新个体的方法也非常容易解释,这种通过寻找最相似的实例并以它们的分类或值来进行预测的思路,对许多人来说都非常直观
-
-
3.5.2. 维度和领域知识
-
3.5.2.1. 当属性过多,或与判断相似性不相关的属性过多时,也会存在严重的问题
-
3.5.2.2. 实例的相似性会大大地被过多的无关变量所误导或扰乱
-
3.5.2.3. 解决无关属性过多的问题的方法有很多,其中一个是特征选择,即审慎地选择应进入数据挖掘模型的特征
-
3.5.2.4. 在相似性计算中注入领域知识的方法是手动调整相似性/距离函数
-
-
3.5.3. 计算效率
-
3.5.3.1. 最近邻方法的优势之一是训练速度快,因为其仅需要对个体进行存储,而无须构建模型
-
3.5.3.2. 一些商业数据库和数据挖掘系统会用kd树和散列方法等专门的数据结构提升最近邻查询的效率
-
4. 其他距离函数
4.1. 欧几里得距离(Euclidean distance)可能是数据科学领域应用最广的距离度量方法
- 4.1.1. 它在每个维度使用距离的平方,因而有时也叫“L2范数”,记作“||·||2”
4.2. 曼哈顿距离(Manhattan distance)(或称L1范数)是两个数据点不同维度上的距离(非平方项)的和
4.3. 杰卡德距离(Jaccard distance)
- 4.3.1. 它能把两个对象作为特|X征∩集Y合| 进行处理
4.4. 余弦距离(cosine distance)
-
4.4.1. 常在文本分类中用于度量两篇文档的相似性
-
4.4.2. 信息检索的文献中更常使用余弦相似性
-
4.4.3. 在文本分类中,每个词和记号都对应一个维度,文章在每个维度上的位置则指的是文章中每个词出现的次数
-
4.4.4. 尤其适用于需要忽略实例间尺度差异的情况
- 4.4.4.1. 就是需要忽略向量的幅度的情况
4.5. 编辑距离或莱文斯坦距离
-
4.5.1. 常用于生物领域,以计算等位基因串的遗传距离
-
4.5.2. 如果数据项包含需要在意顺序的字符串或序列,那么我们通常会使用编辑距离
5. 组合函数
5.1. 计算近邻的评分
5.2. 多数票决分类
5.3. 多数票决得分函数
5.4. 相似性适度分类
5.5. 相似性适度评分
5.6. 相似性适度回归
6. 聚类
6.1. 聚类是相似性这一基本概念的另一种应用
6.2. 其基本思路是,找出个体(如用户、企业、威士忌等)的某种分组,使得同一组内的个体之间相似,不同组内的个体之间不相似
6.3. 有监督建模方法是基于目标变量值已知的数据来发现能够预测特定目标变量的值的模式
6.4. 无监督建模则不关注目标变量,而是寻找数据中其他形式的规律
6.5. 层次聚类
-
6.5.1. 这种方法之所以是聚类方法,是因为它根据数据点的相似性对其进行了分组
-
6.5.2. 层次聚类关注的是不同实例间的相似性,以及如何依据相似性将它们进行链接
-
6.5.3. 层次聚类的好处之一是,数据分析师可以在决定获取的簇个数之前看到分组情况,即数据相似性的“格局”
6.6. 根据形心的聚类
-
6.6.1. 另一种考虑聚类数据的方法是关注簇本身,即实例构成的组
-
6.6.2. 最常用的基于形心的聚类算法称作k-均值聚类
- 6.6.2.1. k-均值的“均值”指的是形心,即簇中实例在每个维度上的值的算术平均值(平均值)
-
6.6.3. 失真度
-
6.6.3.1. 簇中所有数据点与其对应簇形心的距离平方之和
-
6.6.3.2. 失真度越低,聚类越优良
-
-
6.6.4. k-均值算法之类的形心算法通常需要注意的一点是如何确定恰当的k值
-
6.6.5. 随着k的增大,聚类的质量终会趋于稳定
-
6.6.5.1. 如果该度量方法是最小值最优,则聚类的质量收敛于底部
-
6.6.5.2. 如果为最大值最优,则聚类的质量收敛于顶部
-
-
6.6.6. 任何聚类过程都可以应用这种展示形心的方法
- 6.6.6.1. 但这样是否有意义,则取决于数据的值本身是否有意义
6.7. 虽然我们不期望每个簇都有意义且有趣,但聚类往往可以在数据中发掘出出乎意料的结构
- 6.7.1. 簇还能使我们发现崭新且有意思的数据挖掘机会
6.8. 无论产生聚类的方式如何,最终我们都会知道每个数据点被分配到哪个簇
6.9. 簇形心实际上描述了簇成员的平均水平
6.10. 特性描述关注的是组内共性,而差异描述则关注的是组间差异
- 6.10.1. 两种方式没有哪个绝对更好,具体要取决于你的使用目的
6.11. 即使聚类结果似乎揭露了有趣的信息,我们也经常不清楚如何用该结果来优化决策