《金融大数据分析》-课件 第13章 聚类分析_第1页
《金融大数据分析》-课件 第13章 聚类分析_第2页
《金融大数据分析》-课件 第13章 聚类分析_第3页
《金融大数据分析》-课件 第13章 聚类分析_第4页
《金融大数据分析》-课件 第13章 聚类分析_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章聚类分析本章的学习目标为:理解聚类分析的使用范围熟悉如何使用K均值方法实现聚类分析熟悉使用程序实现聚类分析案例:贷款违约在监督学习的章节中,我们讨论过如何用监督学习的方法对贷款违约进行预测。使用监督学习方法的前提是我们需要一些标记过的数据作为例子以供模型来学习。在贷款违约的案例中,作为例子的数据中有贷款者的信息,也有贷款是否违约的信息。案例:贷款违约假设,如表13.1我们没有贷款是否违约的信息,能否通过贷款者以及贷款特点等数据来对贷款的风险进行分类呢?表13.1贷款数据聚类分析方法:简介聚类分析(Clustering)是一类对无标识数据进行分类的无监督学习方法。例如,如果违约与未违约的人群在我们的特征有着显著的区别,那么我们可能有方法通过这些区别将数据分到不同的子集中。聚类分析的目标则是使用算法通过我们已有的特征来对数据进行分类。在贷款违约的例子中,我们需要将数据分成两个聚类(即违约人群和未违约人群)。但是在其他应用中,我们可能需要对数据区分到更多的聚类中。聚类分析方法:K均值法

图13.1:聚类分析聚类分析方法:K均值法𝐾均值方法中的𝐾表示的是聚类的数量。如果我们需要将数据分到违约与不违约的两类中,那么𝑘=2。而图13.1中的数据则适合将𝑘设为3

图13.1:聚类分析K均值法:定义首先我们需要定义什么是好的分类。通常来说,好的分类可以令每个分类中数据的差别最小化。因为我们的数据中没有标签𝑦变量。因此,我们只能通过特征变量𝑥来定义数据中的差别。最常用的定义方法数据点之间距离的两个数据之间的平方欧几里德距离。两个数据点𝑥(𝑖),𝑥(𝑗)的距离定义如下:

K均值法:定义

K均值法:算法流程以下算法可以让我们很快的找到较好的分类又不至于消耗太多的计算资源:

将所有数据点随机分到𝐾个聚类中重复以下步骤,直到分类停止变化:对于每个聚类𝑘,计算出聚类𝑘的中心点,即:将每个数据点重新分类,每个数据点的新分类为与其拥有最近中心点的聚类

K均值法:步骤图13.2展示的是𝐾均值聚类方法的步骤。

图13.2:K聚类分析步骤K均值法:步骤在第一步,聚类明显有严重的问题。许多相邻的数据点被分到两个不同的子集中,同时许多相隔很远的数据被分到了同一个子集中。这是因为起始的分类是随机的。接下来的每一步中,分类质量都在不断提高。同时,每个聚类的中心点(如三角形所示)也慢慢分离

K均值法:缺点K均值方法能够在无标签的情况下为我们提供快速且有效数据分类的算法。但该算法也有许多短板:在许多数据中,子集的分类不会像我们生成的数据那样明显。我们用K均值方法只能达到局部最好的分类,而不是整体最好的分类。分类的效果随着我们随机初始化的取值不同而变化。因此,我们最好进行多次随机初始化并进行分类,并选取多次分类中效果最好的一个。

K均值法:缺点该方法对我们每个特征变量的方差特别敏感。最好在分类前先将方差进行缩放。这样不同特征的距离更具有可比性。K均值方法需要我们首先确定聚类的数量𝐾。在很多问题中,我们需要多少聚类并不是特别明确。在图13.3中,我们选择了𝐾=5而不是3。因此许多貌似应属于同一类的数据被强行分到了两个不同的子集里。在这种情况下,我们可以考虑另一种聚类方法(层次聚类)。

K均值法:缺点图13.3:错误的K值图13.3展示了选择错误K值的分类结果。K均值法:程序代码我们使用贷款违约数据为例。在本例子中,我们不使用之前在监督学习章节中的目标变量isDefault(即贷款违约变量)。我们试图仅仅使用四个特征变量对数据进行聚类。最后,我们检验聚类的结果是否能给我们提供一些有用的信息。’

K均值法:程序代码导入库使用pandas存储数据。导入sklearn.preprocessing库中的StandardScaler类,用于数据标准化。导入sklearn.cluster模块中的KMeans类,用于数据聚类分析。

K均值法:程序代码数据读取及处理读取名为’train_sample_small.csv’的CSV文件中的数据,并将其存储在train_sample变量中。定义一个特征列表fea_cols,包含四个特征名称’employmentYear’,‘homeOwnership’,‘annualIncome’,‘dti’

K均值法:程序代码数据读取及处理使用中位数来填补缺失值

K均值法:程序代码数据读取及处理创建一个StandardScaler对象,用于对数据进行标准化处理使用scaler的fit方法计算数据集train_sample的平均值和标准偏差

K均值法:程序代码数据读取及处理使用transform方法对train_sample中的特征数据进行标准化处理(处理后的特征都是平均值为0,标准方差为1)将标准化处理后的数据train_x_standardized转化为DataFrame格式,并将结果存储train_x_standardized中,同时定义列名为特征列表fea_cols

K均值法:程序代码数据读取及处理从原始数据中选择fea_cols中定义的列,用于后续的聚类分析。

K均值法:程序代码进行KMeans聚类分析创建KMeans对象用于聚类分析,设置聚类数为2,随机状态为0。使用特征变量对kmeans进行训练,并将结果添加到原始DataFrame中作为新的列‘cluster’,表示每个样本的聚类标签。K均值法:程序代码进行KMeans聚类分析对聚类后的数据进行分组,计算每组的‘isDefault’列的平均值,并生成新的DataFrame显示聚类结果。K均值法:程序代码结果分析我们要求程序根据四个特征(‘employmentYear’,‘homeOwnership’,‘annualIncome’,‘dti’),对样本进行了聚类。因为我们没有使用目标变量isDefault(是否违约),因此这一过程是无监督学习。但是我们的聚类同样含有isDefault的信息。我们检验聚类结果中贷款违约的概率。

K均值法:程序代码结果分析不难发现,编号1的聚类中违约率基本为0。而编号为0的聚类样本的违约率是0.21。可见,虽然在模型训练的过程中,我们没有可供学习的样本,无监督学习仍然可以帮助我们得到有用的信息。

聚类分析:习题请阐述K均值分析方法与K

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论