《金融大数据分析》-课件 第13章 聚类分析.pptx
第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均值法:程序代码数据读取及处理创建一个Standa