《商务数据分析》读书笔记(六)

6.相似性,近邻,和聚类

基本概念:计算用数据描述的相似性; 用相似性预测;作为基于相似性分割的聚类

基本技巧:找到相似条目;最近邻方法;聚类理论;计算相似性的距离矩阵

相似性和距离

最近邻推理

例子:威士忌分析

最近邻预测模型

多少近邻和多大影响

几何解释,过拟合,和复杂度控制

最近邻理论的问题

关于相似性和近邻一些重要的技术细节

异质属性

*其他距离函数

*组合函数:从近邻计算分数

聚类

例子:重访威士忌分析

分层聚类

重访最近邻:围绕质心的聚类

例子:聚类商务新闻故事

理解聚类结果

*用监督学习生成聚类描述

退后一步:解决商务问题VS数据探索

总结

 

第六章 相似性,近邻和聚类

 

这一章讲了很多相似性的实际应用案例,也是我学习商业问题数据分析思路的好材料。

 

选择距离最近的几个样本点,综合它们的结果(用1/距离**2作为权重,它趋近于更小,甚至0),决定预测点的目标值。

权重计分减少了决定要用几个最近邻的重要性。因为加上了与距离平方呈倒数的权重,那些距离远的样本点的权重会大大降低,也就不用考虑太多。有些方法甚至k=n(全部样本数),因为它们使用权重来减少远距离点的影响。

 

 

几何解释,过拟合和复杂度控制

可视化模型很有教益,对于很多模型甚至不止本领域,可视化都有用。

KNN模型边界没有规律,反复无常,而且k越小,越厉害,对变化越敏感。k=1,模型最复杂。

 

联想之前提到的控制模型复杂度的通用方法,我们可以用交叉验证或是网状交叉验证(或说嵌套交叉验证)的方法,变换不同k值,来生成不同复杂度的模型,择优选用。

 

 

可理解性

在实际应用中,算法的可理解性非常重要。在医学和法律领域,KNN可以很好的给人解释。

但是在授权方面,KNN有他的局限,比如有个人申请抵押贷款,银行用了KNN,它不能给人答复“你的抵押申请被拒绝了,因为和你相似的一个人没有履行义务”!!!

KNN的特性就是解释性不强,所以,如果对算法有可理解性和辩护性(给别人解释为什么要用这个算法)的要求,KNN应该避免。

 

维度和域知识

KNN模型需要给特征值进行缩放,否则范围较大的特征值相当于有了更大的权重。涉及距离计算的时候,要特别注意这一点。

还有一个问题,是将不重要的特征考虑进去。

 

knn相对于其他模型必须进行特征选择,其他模型比如引入了惩罚函数的逻辑回归,在数值上避免了不相关特征的影响。

特征选择这个过程需要领域知识,不光是进行特征筛选,还可以用于手动添加不同模特征的权重。

 

计算效率

在生成模型的过程中,除了存储原始数据,基本不须计算耗费。但是在分类或预测的时候,需要耗费更多计算资源,如时间,因此,KNN对于需要快速决策的场合并不适合。比如线上购物决策。

 

一些关于相似性和近邻的重要技术细节

异质属性

 

欧几里得距离度量:

聚类

没有预先设定目标值的分组

聚类问题:

我们理解我们的客户是谁吗?

我们能开发更好的产品吗?

在数据中找到自然组分叫非监督分割,或聚类。

在数据探索中常常用到聚类。是为了对

某一个商务内容有一定的理解。

 

分级聚类 。

计算两两样本点之间的距离,最近的两个形成一类,然后将这一类当做一个样本点,如此迭代,直到最后所有样本都被分类为止。

《商务数据分析》读书笔记(六)_第1张图片

《商务数据分析》读书笔记(六)_第2张图片

好处是可以允许分析师看到各个组分——数据相似性的地貌——在决定要从中抽取的聚类数目之前。可以选择几个分类。层级聚类可以输出dendrogram——系统树图。

 

基于质心的聚类:

最流行的基于质心的聚类是k均值聚类(k-means聚类)。

k意味着想找到多少个类,means意味着质心(因为质心是通过各个特征值平均找到的)。

 

1)从N个样本随机选取K个样本作为质心

2)对剩余的每个样本测量其到每个质心的距离,并把它归到最近的质心的类

3)重新计算已经得到的各个类的质心

4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束


至于计算时间,k均值算法效率很高,相对于层级聚类。

这里举了一个给大量新闻故事(文本)聚类的例子,其中涉及到文本挖掘,需要先看一下第十章。

K均值聚类常被用于前期数据探索。

比如本章举了一个例子,将大量的关于APPLE的新闻用k均值聚类分成9种。每种各进行一些描述。

其中有些很有趣,有些根本没任何意义。

统计中有一句话:有相关性不等于有因果性。

文本分析类似:句法相似不代表语义相似。

尽管如此,聚类仍然可以让我们提前看到隐藏的结构。聚类可以给我们提供新的有趣的数据挖掘的建议。

理解聚类的结果

聚类的结果或是系统树图或是几个样本群。我们能从中得到什么理解?这点很重要,因为我们经常用聚类进行数据探索。最重要的就是理解是否发现了某些新的东西,如果有,是什么?

方法之一是从集群中随机抽出几个看看。

做数据挖掘(事实上任何事情)之前,为了提高效率,要尽己所能的定义目标。

如果CRISP-DM展示的,我们应该为业务理解、数据理解小循环中,投入足够多的时间,知道我们有一个坚定的,具体的我们要解决的问题定义。

努力思考我们到底要什么东西,还有,反向思考,如果我们得到了自己想要的结果,我们就真的能够解决眼前的商务问题了吗?要先设定框架,然后再具体去试试,养成规划的习惯。

 

与此相比,非监督问题经常更具有探索性。我们有个概念如果我们能够给公司,新闻或威士忌聚类,我们能够更好地理解业务,因此能够改善些东西。然而,我们可能并没有准确的规划。但是这有一种平衡,如果在初始阶段我们没有在问题定义上投入足够多的时间,在评估阶段我们要花更多时间。(总之就是问题定义非常重要,如果你不知道自己要去哪儿,就永远无法成功到达)

对于聚类问题,评估阶段需要充分应用创造力和业务知识。

 

书中举了一个用聚类改善决策的例子:

他们聚类了GE资本现存的客户基于他们在信用卡,付账和账单上的相似性以及对公司的盈利能力。最终,他们将所有客户聚成5类(花得多还的多,花的多但是不按时还。。。)。对于不同类的客户,要设定不同的信用额度

这就是一个例子,他们用聚类找到了更好的进行精准预测的思路。

当然,总结聚类结果这个过程少不了业务知识。聚类结果反过来应用到了最初的信用额度划线决策中!

 

总结

你可能感兴趣的:(读书笔记)