版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python与财经大数据分析基础第11章——建立上市公司价值分类判断指标体系——应用机器学习
王彦超教授博士生导师中央财经大学会计学院CONTENTS目录11.1Sklearn概述和安装11.2K-最近邻算法11.3K-均值算法11.4降维算法11.5线性回归11.6逻辑回归11.7朴素贝叶斯11.8决策树11.9随机森林11.10支持向量机11.11Adaboost算法11.12应用实践11.13实操练习题
应用场景分析:机器学习是一门多领域交叉学科,涉及概率论、统计学等学科。机器学习这一术语看似高深,其实在生活的方方面面,如人脸识别、手机相册依据人物自动分类功能等均运用了机器学习的思想和方法。机器学习是计算机模拟人类学习和决策行为的科学,选择合适的算法模型训练数据,实现预测功能。Sklearn是Python中传统机器学习的首选库,本章重点介绍sklearn库的算法逻辑及应用。通过本章的学习,将掌握基本的机器学习方法,构造机器学习模型流程和评估模型效果。机器学习之SklearnSklearn概述和安装K-最近邻算法K-均值算法降维算法线性回归逻辑回归朴素贝叶斯决策树随机森林支持向量机Adaboost算法案例应用:建立科技上市公司价值分类判断指标体系11.1Sklearn概述和安装11.1Sklearn概述和安装Sklearn,全称scikit-learn,是Python中机器学习的库,建立在Numpy、Scipy、Matplotlib等库基础之上,涵盖了机器学习样例数据、数据预处理、模型验证、特征选择、分类、回归、聚类、降维等几乎所有环节,功能十分强大。Sklearn的建模和优化有统一的形式,分类和回归算法都是类似的思想,逻辑大致如图11-1所示:首先导入数据,选择合适的算法将数据进行拟合训练,得到一个模型;接着把需要预测的数据输入该模型中,进行预测;最后输出结果。11.1Sklearn概述和安装安装Scikit-learn需要:Python(≥2.7或≥3.4)、NumPy(≥1.8.2)、SciPy(≥0.13.3)。注意:Scikit-learn0.20是支持Python2.7和Python3.4的最后一个版本。Scikit-learn0.21将需要Python3.5或更高版本。需要先安装Scikit-learn库。如果已经安装Scikit-learn库,请输入以下代码,验证是否安装成功。如果没有报错,则为成功安装。In[1]:importsklearn本教材使用的Scikit-learn版本为1.0.2。不同版本在代码编写上略有差异,建议读者在学习时安装相同的版本。11.2K-最近邻算法11.2K-最近邻算法(K-NearestNeighbor)(1)原理KNN算法的核心思想是用距离最近的k个样本数据来代表目标数据的分类。可以做出类比:判断一个人消费水平,可以通过其身边朋友来判断。具体而言,如果一个样本在特征空间中的k个最相邻样本的大多数属于一个类别,则该样本也属于这个类别,并具有这个类别的样本特征。该方法在确定分类决策上,只依据最近邻的一个或几个样本类别决定待分样本的所属类别。11.2K-最近邻算法(K-NearestNeighbor)(1)原理如图所示,已知存在两个类别,一类为“正方形”,另一类为“三角形”,若判断新加入的蓝色属于什么类别,当k=3时,则离蓝色最近的3个“邻居”是a、b和c,多数属于“三角形”,所以蓝色被划分为“三角形”;而当k=5时,则离蓝色最近的5个“邻居”是a、b、c、d和e,多数属于“正方形”,所以蓝色被划分为“正方形”。11.2K-最近邻算法(K-NearestNeighbor)(2)KNN算法代码实现Python中的Sklearn模块提供了KNN算法实现分类和预测的功能,该功能存在于子模块neighbors中。其中,KNeighborClassifier类可以解决分类问题,而KNeighborsRegressor类可以解决预测问题。neighbors.KNeighborsClassifier()、neighbors.KNeighborsRegressor()基本语法:neighbors.KNeighborsClassifier(n_neighbors=5,weights=’uniform’,algorithm=’auto’,leaf_size=30,p=2,metric=’minkowski’,metric_params=None,n_jobs=1)neighbors.KNeighborsRegressor(n_neighbors=5,weights=’uniform’,algorithm=’auto’,leaf_size=30,p=2,metric=’minkowski’,metric_params=None,n_jobs=1)11.2K-最近邻算法(K-NearestNeighbor)(2)KNN算法代码实现参数说明:n_neighbors:用于指定近邻样本个数k,默认为5。weights:用于指定近邻样本的投票权重,默认为’uniform’,表示所有近邻样本的投票权重一样;如果为’distance’,则表示投票权重与距离成反比,即近邻样本与未知类别的样本点距离越远,权重越小,反之,权值越大。algorithm:用于指定近邻样本的搜寻算法,如果为’ball_tree’,表示使用球树搜寻法寻找近邻样本;如果为’kd_tree’,表示使用KD树搜寻法寻找近邻样本;如果为’brute’,表示使用暴力搜寻法寻找近邻样本。默认为’auto’,表示KNN算法会根据数据特征自动选择最佳的搜寻算法。11.2K-最近邻算法(K-NearestNeighbor)(2)KNN算法代码实现参数说明:leaf_size:用于指定球树或kd树叶子节点所包含的最小样本量,用于控制树的生长条件,会影响树的查询速度,默认为30。metric:用于指定距离的度量指标,默认为闵可夫斯基距离。p:当参数metric为闵可夫斯基距离时,p=1,表示计算点之间的曼哈顿距离;p=2,表示计算点之间的欧氏距离;该参数的默认值为2。metric_params:为metric参数所对应的距离指标添加关键字参数。n_jobs:用于设置KNN算法并行计算所需的CPU数量,默认为1,表示仅使用1个CPU运行算法,即不使用并行运算功能。11.3K-均值算法11.3K-均值算法(K-Means)(1)原理K-Means聚类算法是一种迭代求解的聚类分析算法。算法思想是:随机选择k个对象作为初始聚类中心,计算每个对象和各个聚类中心之间的距离,将其分配给距离最近的聚类中心。聚类中心及分配给它们的对象就代表着一个聚类。每分配一个样本,聚类的中心会根据聚类中现有的对象被重新计算。此过程将不断重复,直至满足设置的终止条件。其具体的算法步骤如下:11.3K-均值算法(K-Means)(1)原理首先明确k值(随机),即希望数据经过聚类得到k个聚类;在数据集中随机选择k个样本作为质心;分别计算每个样本到k个质心的距离,样本属于距离最小的质心所属的聚类;第一轮将所有的样本聚类后得到k个聚类,然后按均值重新计算每个聚类的质心;如果新计算出来的质心和原来的质心之间的距离小于某一个设置的临界值,表示重新计算的质心位置变化不大,数据整体趋于稳定,或表示数据已经收敛,聚类已经达到期望结果,算法可终止;反之,如果新质心和原来质心的距离变化很大,需要重复迭代3-5步骤,直至位置变化不大,达到收敛状态。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理①首先给定需要进行聚类划分的样本集。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理②假设将样本分为2类,则随机选择2个聚类中心(k=2)。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理③遍历每一个绿点,计算每个样本点到质心的距离,并将数据点划分到离它最近的质心的类中。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理④计算2个数据集的各自的质心(红点、蓝点的均值),将聚类中心移动到均值处,变成新的聚类中心。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理⑤计算出目前红点的均值和蓝点的均值,找到新的聚类中心。11.3K-均值算法(K-Means)(2)图解K-Means算法的原理⑥重复上述③④⑤步骤(计算质心-分配-重新计算),不断迭代,直至新的聚类中心位置不再改变以及各个数据点的位置也不再发生改变,如图14-7所示。11.3K-均值算法(K-Means)(3)K-Means算法代码实现Python的Sklearn模块提供了有关K-Means算法分类的功能,该功能存在于子模块cluster中,利用sklearn.cluster.k_means()函数可以建立K-Means模型。sklearn.cluster.k_means()基本语法:sklearn.cluster.k_means(X,n_clusters,init='k-means++',precompute_distances='deprecated',n_init=10,max_iter=300,random_state=None,copy_x=True)11.3K-均值算法(K-Means)(3)K-Means算法代码实现sklearn.cluster.k_means()参数说明:n_clusters:用于指定生成的聚类数,即产生的质心数。init:有三个可选值:’k-means++’,‘random’,或者传递一个ndarray向量。此参数指定初始化方法,默认值为‘k-means++’。‘k-means++’用一种特殊的方法选定初始质心从而能加速迭代过程的收敛;‘random’随机从训练数据中选取初始质心;如果传递的是一个ndarray,则应该形如(n_clusters,n_features)并给出初始质心。precompute_distances:三个可选值,‘auto’,True或者False。预计算距离,计算速度更快但占用更多内存。‘auto’:如果样本数乘以聚类数大于14million的话则不予计算距离;True:总是预先计算距离;False:永远不预先计算距离。11.3K-均值算法(K-Means)(3)K-Means算法代码实现sklearn.cluster.k_means()参数说明:n_init:用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。max_iter:用于指定执行一次k_means算法所进行的最大迭代数。random_state:可选用于初始化质心的生成器(generator)。如果值为一个整数,则确定一个seed。默认值为numpy的随机数生成器。copy_x:布尔型,默认值=True。当precomputingdistances时,将数据中心化会得到更准确的结果。如果把此参数值设为True,原始数据不会被改变。如果是False,则会直接在原始数据上做修改,并在函数返回时将其还原。11.4降维算法(PCA)11.4降维算法(PCA)(1)原理主成分分析(PrincipalComponentAnalysis,PCA)是一种无监督的多元统计分析方法。基本思想是在尽量保证数据信息的前提下,将高维数据简化为低维数据,即通过获取数据的主要投影方向,实现数据向主要特征方向上的映射,最终达到数据降维、去噪的效果。11.4降维算法(PCA)(2)图解原理如图所示,给出一个投影方向,坐标系中的点投影到这一条直线上,每个“红点”就是点在投影方向的投影,PCA算法使得这些“红点”到原点的方差最大。按照右图给出的投影方向,投出来的点到原点的平方和远远小于左图中的方差和,所以我们会选择左图的投影方式。11.4降维算法(PCA)(2)PCA算法步骤对所有的样本数据进行中心化,也称为数据中心平移到坐标原点。求取样本的协方差矩阵。对协方差矩阵进行特征值分解。取出最大的n个特征值对应的特征向量,将所有特征向量标准化后,组成特征向量矩阵W。对样本集中的每一个样本,转化为新的样本,得到输出样本集。11.5线性回归11.5
线性回归(1)线性回归介绍线性回归模型是机器学习模型中应用最广泛的模型之一,这是因为线性模型的形式非常简洁,同时在应对实际问题时容易建模。虽然线性模型结构较为简单,但其中蕴含重要的机器学习基本思想,非线性模型也是通过线性基础引入层次结构或者高维映射形成。下面简要介绍一下线性回归模型的分析原理。11.5
线性回归(2)算法简要流程机器学习模型以数据集为基础,第一步需要确定解决问题所需要的数据集,第二步需要实现线性模型算法,Sklearn库提供了相应的函数,只需要提前声明之后引用该函数,即可使用线性模型。第三步,模型在数据集上训练,调整模型的相关参数,使模型在数据集上的预测效果达到最优。11.6逻辑回归11.6逻辑回归(1)逻辑回归介绍逻辑回归虽然被称为回归,但实际上是分类模型,且在二分类的问题上有较好分类效果,其简单、可并行、可解释性强的特点使其深受科研人员、业界研发人员的喜爱。逻辑回归的本质即为:假设数据服从这个分布,使用极大似然估计做参数的估计。逻辑回归的分布实质上是连续型的概率分布,其分布函数与密度函数分别如下所示,其中µ表示位置参数,γ>0表示形状参数。11.6逻辑回归(2)逻辑回归的优劣势逻辑回归模型的优点非常明显:模型清晰,背后模型计算的概率值经得起推敲;输出值落在0至1之间,具有概率意义;建模简单,运算过程也非常高效;可以使用L1、L2正则化的方法解决过拟合的问题;可以使用L2正则化的方法解决多重共线性的问题。逻辑回归模型也存在一些缺点:不能够很好地处理特征间关系,实际上是由逻辑回归的计算形式决定;当特征维度上升时,模型运算性能不够好;逻辑回归模型容易出现欠拟合现象,精准度常常不够高。11.7朴素贝叶斯11.7朴素贝叶斯(1)朴素贝叶斯介绍
朴素贝叶斯(NaiveBayes)是一个非常简单,但是实用性很强的分类模型,与基于线性假设的模型(线性分类器和支持向量机分类器)不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。朴素贝叶斯法是典型的生成学习方法,实际上学习到生成数据的机制,属于生成模型。11.7朴素贝叶斯(2)朴素贝叶斯的优缺点
朴素贝叶斯模型的优点:第一,对大数据集训练速度快、支持增量式运算;第二,实时对新增样本进行训练、结果可解释性强、对小规模的数据表现很好;第三,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批进行增量训练。朴素贝叶斯模型的缺点:第一,给定输出类别的情况下,假设属性之间相互独立,朴素贝叶斯方法就拥有最小的误差率,但实际应用中很难成立;第二,需要知道先验概率,且先验概率很多时候取决于假设,假设的模型很多,有时由于假设的先验模型导致预测效果佳。第三,通过先验和数据决定后验概率,进而决定分类,分类决策存在错误率。第四,输入数据的表达形式很敏感。11.8决策树11.8
决策树(1)决策树介绍决策树的思想,基于常用的“ifelse”思想进行拓展,不过,决策树算法会更为复杂一些。11.8
决策树(2)决策树含义决策树的结构为树形,下面对其进行解释。根节点:最顶部节点。叶子节点:每条路径最末尾的节点,也就是最外层节点。非叶子节点:一些条件节点,会有更多分支,也叫做分支节点。分支:分叉。11.8
决策树(3)决策树优缺点决策树优点:第一,能够同时处理数值型和连续型的数据。其他技术通常只支持一种数据类型,可以查看算法文章以获得更多的信息。第二,能够简单地解释和理解其原理,且能够以可视化的方式来显示决策树。第三,数据准备工作较少。其他技术通常需要正则化后的数据,处理缺失数据。但需注意该模块目前不支持缺失数据的处理。第四,可处理带有多输出的问题。11.8
决策树(3)决策树优缺点决策树优点:第五,该算法为白盒模型,如果在模型中可以观察到特定情况,则可以通过简单的布尔逻辑条件来表达这一情况。相比之下,黑盒模型(例如人造神经网络)的结果可能不太容易表现出来。第六,可以使用统计测试来验证模型,这使得模型可靠性更强。第七,能够良好地辨别“人造数据”。11.8
决策树(3)决策树优缺点决策树缺点:第一,决策树学习器能够为当前问题创建出超复杂的树,但是这个树的泛化能力较差,这种低效现象称为“过拟合”。可以通过对叶子节点设置最小值或给树的深度设置最大值等“修剪机制”来避免过拟合现象。第二,文本决策树稳定性较弱,可能会因为细微的改变而产生一个完全不同的树。这个问题可以通过树的整体方法来缓解。11.9随机森林11.9随机森林(1)随机森林介绍随机森林是一种以决策树为基础的更高级算法。与决策树一样,随机森林可以用于回归和分类。顾名思义,随机森林是用随机的方式构建出一个森林,这一森林由很多相互不关联的决策树组成。理论上,随机森林的表现一般要优于单一的决策树,因为随机森林是基于多个决策树投票的结果。简单来说,在随机森林中,每个决策树都有自己的结果,通过统计每个决策树的结果,选择投票数最多的结果作为其最终结果。11.9随机森林(2)构建随机森林的四个步骤①一个样本容量为N的样本,有放回的抽取N次,每次抽取1个,最终形成了N个样本。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。②当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m<<M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。③决策树形成过程中每个节点都要按照步骤2来分裂。④按照步骤1~3建立大量的决策树,这样就构成了随机森林了。11.9随机森林(3)随机森林的优缺点随机森林的优点:第一,可以出来很高维度(特征多)的数据,不用降维,无需做特征选择。第二,可以判断特征的重要程度。第三,可以判断不同特征之间的相互影响。第四,训练速度比较快,容易做成并行方法。第五,对于不平衡的数据集来说,可以平衡误差。第六,如果有很大一部分的特征遗失,仍可以维持准确度。随机森林的缺点:第一,对于有不同取值属性的数据,取值划分较多的属性会对随机森林产生更大的影响,在这种数据上产出的属性权值是不可信的。第二,已经被证明,随机森林在某些噪音较大的分类或回归问题上会过拟合。11.10支持向量机11.10
支持向量机(1)支持向量机介绍支持向量机模型是英文直译过来的名称,英文为supportvectormachines,简称SVM,是一种二分类模型,其基本模型是定义在特征空间上的间隔最大的线性分类器;SVM还包括核技巧,这使其成为实质上的非线性分类器。SVM的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的学习算法就是求解凸二次规划的最优化算法。11.10
支持向量机(1)支持向量机介绍支持向量机学习的基本想法,是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如图所示,即为分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。11.10
支持向量机(2)支持向量机优缺点支持向量机优点:支持向量机是一种有坚实理论基础的适用小样本的机器学习方法,基本上不涉及概率测度及大数定律等,也简化了通常的分类和回归等问题;计算的复杂性取决于支持向量的数目,而不是样本空间的维数,因此在处理维度较多的现实问题时拥有更高的效率;少数支持向量决定了最终结果,因此对异常值不敏感,这可以抓住关键样本、剔除大量冗余样本,屏蔽异常样本对模型的影响,具有较好的鲁棒性;支持向量机模型的泛化能力较强,解决实际问题的能力较为出色。11.10
支持向量机(2)支持向量机优缺点支持向量机缺点:支持向量机模型也存在一定缺点:不能够很好地处理大样本数据集,巨大的数据量将会导致训练模型的时间变长;解决多分类问题较为困难,传统的支持向量机模型能够解决二分类问题,但对于多分类问题则需要构建多个二分类的支持向量机模型组合来解决;支持向量机模型对于参数与核函数的选择较为敏感,当参数或者核函数发生变化时,模型效果有明显变化。11.11Adaboost算法11.11Adaboost算法(1)Adaboost算法介绍
Adaboost算法是一种集成学习算法,集成学习按照个体学习器之间是否存在依赖关系可以分为两类:一类是个体学习器之间存在强依赖关系,另一类是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度搬家服务合同协议-含家电拆装与安装服务3篇
- 2024年活动中心设备更新与维护合同
- 2025版办公家具维修保养及翻新服务合同3篇
- 2025版建筑工程智慧工地施工监测与信息化数据服务合同3篇
- 电器退货管理制度内容
- 消防安全重点部位管理制度流程
- 市场进货管理制度内容
- 桥梁工程监理合同填写规范
- 学校食堂管理制度、工作流程
- 2024年电子商务运营合作项目合同
- DB45T 2760-2023 电子政务外网网络技术规范
- 2025版中考物理复习课件 09 专题五 类型3 电学综合应用题(不含效率)(10年6考)
- 2024年度承包合同:石灰石生产线承包2篇
- 2024年度社区养老社会工作服务项目协议书3篇
- 蜜雪冰城合作加盟合同
- 浙江省杭州市2023-2024学年高二上学期期末学业水平测试政治试题 含解析
- 人力资源规划
- 《北京大学介绍》课件
- 夜泊牛渚怀古
- 关于家长与学生评议教师制度
- 《大学生职业生涯规划与就业指导》教学教案
评论
0/150
提交评论