数据挖掘(Data Mining),就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,利用统计、计算机、数学等领域的方法提取隐含在其中的信息和知识的过程。
数据挖掘技术具有的特点:
(1)处理的数据规模十分庞大。
(2)非精确性查询(分析)。
(3)快速响应变更。
(4)发现规则。
(5)动态变化
数据挖掘的原理是利用算法对处理好的输入和输出数据进行训练,并得到模型, 然后再对模型进行验证,使得模型能够在一定程度上刻画出数据由输入到输出的关系, 然后再利用该模型,对新输入的数据进行计算,从而得到对我们有用的新的输出。
按照不同的情况,关联规则挖掘可分为如下几种情况:
1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
3.基于规则中涉及的数据的维数,关联规则可以分为单维的和多维的。
回归(regression )是确定两种或两种以上变数间相互定量关系的一种统计分析方法。
回归在数据挖掘中是最为基础的方法,也是应用领域和应用场景最多的方法,只要是量化型问题, 我们一般都会先尝试用回归方法来研究或分析。
聚类分析(Cluster Analysis)又称群分析,是根据“物以类聚”的道理,对样品进行分类的一种多元统计分析方法,它们讨论的对象是大量的样品,要求能合理地按各自的特性来进行合理的分类,没有任何模式可供参考或依循,即是在没有先验知识的情况下进行的。
预测(forecasting)是预计未来事件的一门科学,它包含采集历史数据,并基于这些数据建立某种数学模型,且用来推算于将来,来外推与将来,它也可以是对未来的主观或直觉的预期,还可以是上述的综合。
在数据挖掘中, 诊断的对象是离群点或称为孤立点。 离群点是不符合一般数据模型的点,它们与数据的其它部分不同或不一致。
数据挖掘过程:
(1)目标的定义(Definition)
(2)数据的准备(Preparation)
(3)数据的探索(Explore)
(4)模型的建立(Modeling)
(5)模型的评估(Evaluation)
(6)模型的部署(Deployment)
选择数据就是从数据源中搜索所有与业务对象有关的内部和外部数据信息,并从中选择出适用于数据挖掘应用的数据。
数据的质量分析通常包括如下几个方面的内容:
(1)缺失数据
(2)数据错误
(3)度量标准错误
(4)编码不一致
(5)无效的元数据
探索数据是对数据进行初步研究,以便投资者更好地了解数据的特征,为建模的变量选择和算法选择提供依据。
数据探索或探索性数据分析具有启发式、开放式等特点。
数据探索的方法主要有:
1)描述统计
2)数据的可视化
3)数据探索的建模活动
三种简单的验证方式:
简单验证:就是将训练集分为训练集和验证集。使用训练集进行训练得到模型,使用验证集修正模型参数。
交叉验证:
1.二分验证。同简单验证中的概念基本一致。
2.k次交叉验证。
把数据集分成K份,每个子集互不相交且大小相同,依次从K份中选出1份作为验证集,其余K-1份作为训练集,这样进行K次单独的模型训练和验证,最后将K次验证结果取平均值,作为此模型的验证误差。当K=m时,就变为留一法。可见留一法是K折交叉验证的特例。
留1交叉验证:假设数据集一共有m个样本,依次从数据集中选出1个样本作为验证集,其余m-1个样本作为训练集,这样进行m次单独的模型训练和验证,最后将m次验证结果取平均值,作为此模型的验证误差。
3. 多次K折交叉验证(Repeated K-Fold Cross Validation)
每次用不同的划分方式划分数据集,每次划分完后的其他步骤和K折交叉验证一样。例如:10 次 10 折交叉验证,即每次进行10次模型训练和验证,这样一共做10次,也就是总共做100次模型训练和验证,最后将结果平均。这样做的目的是让结果更精确一些。(研究发现,重复K折交叉验证可以提高模型评估的精确度,同时保持较小的偏差。)
4. 蒙特卡洛交叉验证(Monte Carlo Cross Validation)
即将留出法(holdout)进行多次。每次将数据集随机划分为训练集和验证集,这样进行多次单独的模型训练和验证,最后将这些验证结果取平均值,作为此模型的验证误差。与单次验证(holdout)相比,这种方法可以更好地衡量模型的性能。与K折交叉验证相比,这种方法能够更好地控制模型训练和验证的次数,以及训练集和验证集的比例。缺点是有些观测值可能从未被选入验证子样本,而有些观测值可能不止一次被选中。(偏差大,方差小)
总结:在数据较少的情况下,使用K折交叉验证来对模型进行评估是一个不错的选择。如果数据特别少,那么可以考虑用留一法。当数据较多时,使用留出法则非常合适。如果我们需要更精确一些的结果,则可以使用蒙特卡洛交叉验证。
数据的属性:是一个数据字段,表示数据对象的一个特征。
数据的存放形式:结构化数据,非结构化数据,半结构化数据。
数据质量分析
分析的目的:
保证数据的正确性
保证数据的有效性
缺失值 数据错误 度量 标准错误 编码不一致
值分析
总记录数 唯一值数 空值占比 正数占比 负数占比
频次与直方图分析
影像数据质量的因素:准确性 完整性 一致性 可信性 可解释性
数据预处理的任务:数据清洗 数据集成 数据归约 数据变换
数据清洗的任务是:确实值处理 噪声过滤
对缺失值处理的方法:1.插补法 2.删除法
其中的插补法有:1.均值插补 2.回归插补 3.极大似然估计
噪声过滤
噪声即数据中存在的数据随机误差。
常用的噪声过滤方法:
回归法:使用一个函数拟合数据来使得数据光滑,达到去噪效果。
均值平滑法:对具有序列特征的变量用邻近的若干数据的均值 来替换原始数据的方法。
离群点分析:
是通过聚类等方法来检测离群点,并将其删除。从而实现去噪的方法。
小波去噪法:是一个函数逼近问题,如何使用小波母函数伸缩和平移所占成的函数空间中,根据提出的衡量准则,寻找对原始信号的最佳逼近,以完成原信号和噪声信号的区分。
数据集成就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中。对于数据表集成,主要有内接和外接两种方式。
数据归约的目的是得到能够与原始数据集近似等效,甚至更好但数据量较少的数据集。这样,对于归约后的数据集进行挖掘将更有效,且能够产生相同(或几乎相同)的挖掘效果。
数据归约常用的策略有:
属性选择(通过删除不相关或冗余的属性来减少数据量)
样本选择(数据抽样)
数据变换是将数据从一种表示形式变为另一种表现形式的过程。常用的数据变换方式是:
(1) 数据的标准化
(2) 数据的离散化
(3) 语义转换
(1) 数据的标准化
数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。最典型的是
1)0-1标准化(0-1 Normalization)
2)Z标准化(Zero-Mean Normalization)
(2) 数据的离散化
数据离散化指把连续型数据切分为若干“段”,也称为bin,是数据分析中常用的手段。
数据离散化的原因
1) 算法需要
2) 克服数据中隐藏的缺陷,使模型结果更加稳定
3) 有利于对非线性关系进行诊断和描述
(3) 语义转换
语义转换指的是通过改变属性值的数据类型的方式,使得属性值含义得到更简洁表示。
例如:
{非常好、好、一般、差、非常差}
转换为
{1、2、3、4、5}
定义:在已有的数据的基础上使用作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。简称DE。
特点:让数据说话 分析方法灵活 DE的结果简单直观
常用的手段:衍生变量 数据的统计 数据可视化 样本选择 数据降维
衍生变量:
通过已经存在的变量的不同形式的组合而衍生出来的变量。
衍生变量计算原则:能够客观反映事物的特征;衍生变量与数据挖掘的业务目标有一定的联系
方法:
评价型衍生变量:主要用于评价挖掘实物的好坏。
衍生变量的数据收集与集成:一般将不同的表中的数据集合在一起。
使用join()函数实现。
数据的统计:
基本描述性统计:
表示位置的统计量:算数平均值 中位数 mean()返回的是平均值 median()返回中位数
表示数据散度的统计量:标准差 方差是标准差的平方 std()返回样本的标准差 var()返回方差 range()返回极差。
表示分布形状的统计量:偏度反应分布的对称性。峰度用来衡量偏离正态分布的尺度之一。skewness()返回x的偏度。Kurtosis()返回峰度。
分布描述性统计:随机变量的特性完全是由它的概率分布函数或概率密度函数来描述。使用的是定积分:
分位数的定义是:对于0 < a < 1,使某分布函数f(x) = a的x,成为这个分布的a分位数,记作:xa。
在使用一元回归分析之前先将数据进行展示:
数据可视化:
基本可视化使用plot()函数绘制各变量的分布趋势,来了解数据的基本特征。
数据分布形状可视化:使用hist()函数绘制柱状分布图。直观反映了数据的集中程度。
将常用统计量绘制在分布图中,更有利于对数据特征的把握。
数据关联情况可视化:
变量相互关联图可以得到两个变量之间的数据关联趋势
变量相关性强度图:
从宏观上表现了变量间的关联强度
数据分组可视化
箱体图可以得到各变量的数据分布特征。
关系箱体图
得到两个变量之间的关系特征
样本选择
随机取样法 实际中,使用类似于产生随机数的方法抽取样本数据。随机取样法适合样本数据足够大,同时样本数据质量均衡的情况。
顺序取样法 按照一定的顺序,从样本的母体中抽取数据样本,通常直接按照编号的顺序从头开始选择样品。适用于样本数据质量均衡的情况。
监督取样法 对数据样品进行监督之后再抽取样本。本方法适用于样本数据质量较差的情况。
数据降维
PCA主成分分析是其中的一种方法。
将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来的变量。
PCA的典型步骤:
对原始数据进行标准化处理
计算样本相关系数矩阵
计算相关系数矩阵的特征值和响应的特征向量
选择重要的主成分,写出主成分表达式
计算主成分得分
数据降维中的相关系数降维:
相关系数用r表示,r在-1和1之间。相关系数r的绝对值大小即|r|,表示两个变量之间的直线相关强度。相关系数r的正负号,表示相关的方向,分别是正相关和负相关。
//2021.6.2 下午17:36学习笔记
关联规则挖掘的目标是发现数据项集之间的关联关系或相关关系,是数据挖掘的一个重要课题。
Aprior算法
关联规则的基本概念:
项与项集
事务
项集的频数(支持度计数)
关联规则
关联规则的支持度(support)
关联规则的置信度(confidence)
最小支持度与最小置信度
频繁项集
强关联规则
关联规则的分类
基于规则中处理的变量的类别
基于规则中数据的抽象层次
基于规则中涉及到的数据的维数(单维的,多维的)
Aprior算法
第一步:找出事务数据库中所有大于等于用户指定的最小支持度的数据项集。
第二步:利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后强度关联规则。
FP-tree
该方法采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。
Apropr算法的基本思想
为找出Lk(频繁k项集),通过Lk-1与自身连接,产生候选k项集,该候选项集记作Ck;其中Lk-1的元素是可连接的。
Ck是Lk的超集,即它的成员可以是也可以不是频繁的,但所有的频繁项集都包含在Ck中。扫描数据库,确定Ck中每一个候选的计数,从而确定Lk(计数值不小于最小支持度计数的所有候选是频繁的,从而属于Lk)。然而,Ck可能很大,这样所涉及的计算量就很大。为压缩Ck,使用Apriori性质:任何非频繁的(k-1)项集都不可能是频繁k项集的子集。因此,如果一个候选k项集的(k-1)项集不在Lk中,则该候选项也不可能是频繁的,从而可以由Ck中删除。
Apriori算法的步骤:
①扫描全部数据,产生候选1-项集的集合C1;
②根据最小支持度,由候选1-项集的集合C1产生频繁1-项集的集合L1;
③对k>1,重复执行步骤④、⑤、⑥;
④由Lk执行连接和剪枝操作,产生候选(k+l)-项集的集合Ck+1;
⑤根据最小支持度,由候选(k+l)-项集的集合Ck+1,产生频繁(k+1)-项集的集合Lk+1;
⑥若L≠Φ,则k=k+1,跳往步骤④;否则,跳往步骤⑦;
⑦根据最小置信度,由频繁项集产生强关联规则,结束。
FP-Growth算法:
第一步:按以下步骤构造FP-tree:
(a) 扫描事务数据库D 一次。收集频繁项的集合F和它们的支持度。对F按支持度降序排序,结果为频繁项表L。
(b) 创建FP-树的根结点,以“null”标记它。对于D中每个事务Trans,执行:选择Trans中的频繁项,并按L中的次序排序。设排序后的频繁项表为[p|P],其中,p是第一个元素,而P是剩余元素的表。调用insert_tree([p|P], T)。该过程执行情况如下。如果T有子女N使得N.item-name = p.item-name,则N的计数增加1;否则创建一个新结点N,将其计数设置为1,链接到它的父结点T,并且通过结点链结构将其链接到具有相同item-name的结点。如果P非空,递归地调用insert_tree(P, N)。
第二步:根据FP-tree挖掘频繁项集,该过程实现如下:
(1) if Tree 含单个路径P then
(2) for 路径 P 中结点的每个组合(记作β)
(3) 产生模式β∪α,其支持度support = β中结点的最小支持度
(4) else for each a i 在 Tree 的头部 {
(5) 产生一个模式β = a i ∪α,其支持度support = a i .support
(6) 构造β的条件模式基,然后构造β的条件FP-树Treeβ
(7) if Treeβ ≠∅ then
(8) 调用 FP_growth (Treeβ, β);}
对FP-Growth算法流程的归纳:
1)扫描数据,得到所有频繁一项集的的计数。然后删除支持度低于阈值的项,将1项频繁集放入项头表,并按照支持度降序排列。
2)扫描数据,将读到的原始数据(每条事务)剔除非频繁1项集,并按照支持度降序排列。
3)读入排序后的数据集,插入FP树,插入时按照排序后的顺序,插入FP树中,排序靠前的节点是祖先节点,而靠后的是子孙节点。如果有共用的祖先,则对应的公用祖先节点计数加1。插入后,如果有新节点出现,则项头表对应的节点会通过节点链表链接上新节点。直到所有的数据都插入到FP树后,FP树的建立完成。
4)从项目表的底部项依次向上找到项头表项对应的条件模式基。从条件模式基递归挖掘得到项头表项项的频繁项集。
5)如果不限制频繁项集的项数,则返回步骤4所有的频繁项集,否则只返回满足项数要求的频繁项集。
支持度(support): 支持度是模式为真的任务相关的元组(或事务)所占的百分比。对于形如“A⇒B”的关联规则,支持度定义为:
支 持 度 ( A ⇒ B ) = 包 含 A 和 B 的 元 组 数 /元 组 总 数 。
置信度(certainty): 每个发现的模式都有一个表示其有效性或值得信赖性的度量。对于形如“A⇒B”的关联规则,其有效性度量为置信度,定义为:
置 信 度 ( A ⇒ B ) = 包 含 A 和 B 的 元 组 数 /包 含 A 的 元 组 数
,其中A、B是项目的集合。
强关联规则(合格的关联规则): 同时满足用户定义的最小置信度和最小支持度阈值的关联规则,称为强关联规则(strong association rule),并被认为是有趣的。
算法实例:构造FP-TREE,根据FP-TREE挖掘频繁项集。
//2021.6.2日 晚上19:01学习笔记
实物之间的关系可以抽象为变量之间的关系。变量之间的关系分为两类:
回归方法就是处理变量之间的相关关系的一种数学方法。
步骤如下:
(1)收集一组包含因变量和自变量的数据。
(2)选定因变量和自变量之间的模型,即一个数学式子,利用数据按照一定准则(如最小二乘)计算模型中的系数。
(3)利用统计分析方法对不同的模型进行比较,找出效果最好的模型。
(4)判断得到的模型是否适合于这组数据。
(5)利用模型对因变量作出预测或解释。
一元回归
Matlab函数:
LinearModel.fit
regress
其中,
在使用一元回归分析之前先将数据进行展示:
三个任务:
利用样本估计模型参数
对估计结果进行检验
利用模型对新样本进行推断
一元非线性回归
使用曲线去拟合。
Matlab函数:
fitnlm
一元多项式回归模型的一般形式为:
多元回归
建立多元线性回归建模的基本步骤如下:
对于问题进行分析,选择因变量和解释变量,作出因变量与各解释变量的散点图,初步设定多元线性回归模型的参数个数。
输入因变量和自变量观测样本,计算参数。
分析数据异常点。
做显著性检验,若通过,则对模型做预测。
对模型进一步研究,如残差的正态性检验,残差的异常方差检验、残差的自相关性检验等。
逐步回归
对全部因子按其对y影响程度大小(偏回归平方的大小),从大到小地依次逐个引入回归方程,并随时对回归方程当时所含的全部变量进行检验,看其是否仍然显著,如不显著就将其剔除,直到回归方程中所含的所有变量对y的作用都显著时,才考虑引入新的变量。再在剩下的未选因子中,选出对y作用最大者,检验其显著性,显著者,引入方程,不显著,则不引入。直到最后再没有显著因子可
以引入,也没有不显著的变量需要剔除为止。
逐步回归步骤
逻辑回归
分类方法是解决分类问题的方法,是数据挖掘、机器学习和模式识别中一个重要的研究领域。分类算法通过对已知类别训练的分析,从中发现分类规则,以此预测新数据的类别。
分类方法概要
分类的定义:对现有的数据进行学习,得到一个目标函数或规则,把每个属性集x映射到一个预先定义的类标号y。
目标函数或规则也称分类模型(classification model),分类模型有两个主要作用:
一是描述性建模,即作为解释性的工具,用于区分不同类中的对象;
二是预测性建模,即用于预测未知记录的类标号。
分类原理
上图展示了解决分类问题的一般方法。首先,需要一个训练集(training set),它由类标号已知的记录组成。使用训练集建立分类模型,该模型随后将运用于检验集(test set),检验集由类标号未知的记录组成。
分类方法
K-近邻分类方法通过计算每个训练样例到待分类样品的距离,取和待分类样品距离最近的K个训练样例,K个样品中哪个类别的训练样例占多数,则待分类元组就属于哪个类别。
KNN算法具体步骤如下:(描述1)
step1:初始化距离为最大值。
step2:计算未知样本和每个训练样本的距离dist。
step3:得到目前K个最邻近样本中的最大距离maxdist。
step4:如果dist小于maxdist,则将该训练样本作为K-最近邻样本。
step5:重复步骤step2、step3、step4,直到未知样本和所有训练样本的距离都算完。
step6:统计K个最近邻样本中每个类别出现的次数
step7:选择出现频率最大的类别作为未知样本的类别。
KNN算法思想描述(描述2)
假设X_test为待标记的样本,X_train为已标记的数据集,算法原理的伪代码如下:
step1: 遍历X_train中的所有样本,计算每个样本与X_test
的距离,并把距离保存在Distance数组中。
step2: 对Distance数组进行排序,取距离最近的k个点,记
为X_knn。
step3: 在X_knn中统计每个类别的个数,即class0在X_knn
中有几个样本,class1在X_knn中有几个样本等。
step4: 待标记样本的类别,就是在X_knn中样本个数最多的
那个类别。
k近邻实例
重点
优点:对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
缺点:该方法的不足之处是计算量较大,因为对每一个待分类的样本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。
改进:针对上述不足,主要有以下两类改进方法:
1)对于计算量大的问题目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。
2)对样本进行组织与整理,分群分层,尽可能将计算压缩到在接近测试样本领域的小范围内,避免盲目地与训练样本集中的每个样本进行距离计算。
贝叶斯分类
贝叶斯分类是一类利用概率统计知识进行分类的算法,其分类原理是贝叶斯定理。
假设X,Y是一对随机变量,它们的联合概率P(X=x,Y=y)是指X取值x且Y取值y的概率,条件概率是指一随机变量在另一随机变量取值已知的情况下取某一特定值的概率。例如,条件概率P(Y=y∣X=x)是指在变量X取值x的情况下,变量Y取值y的概率。X和Y的联合概率和条件概率满足如下关系:
对此式变形,可得到下面公式,称为贝叶斯定理:
Matlab具体实现步骤:
神经网络
人工神经网络ANN是一种应用类似于大脑神经突出联结的结构进行信息处理。
神经网络特点
(1)至少含有一个隐藏层的多层神经网络是一种普适近似(universal approximator),即可以用来近似任何目标函数。由于ANN具有丰富的假设空间,因此对于给定的问题,选择合适的拓扑结构来防止模型的过分拟合是很重要的。
(2)ANN可以处理冗余特征,因为权值在训练过程中自动学习。冗余特征的权值非常小。
(3)神经网络对训练数据中的噪声非常敏感。处理噪声问题的一种方法是使用确认集来确定模型的泛化误差,另一种方法是每次迭代把权值减少—个因子。
(4)ANN权值学习使用的梯度下降方法经常会收敛到局部极小值。避免局部极小值的方法是在权值更新公式中加上一个动量项(momentum term)。
(5)训练ANN是一个很耗时的过程,特别是当隐藏结点数量很大时。然而,测试样例分类时非常快。
Logistis的原理
Matlab实现logistic:
(1)预测值域 0-1,适合二分类问题,还可以作为某种情况发生的概率,比如股票涨跌概率,信用评分中好坏人的概率等。
(2)模型的值呈S-形曲线,符合某种特殊问题的预测,比如流行病学对危险因素与疾病风险关系的预测。
(3)不足之处是对数据和场景的适应能力有局限,不如神经网络和决策树那样的同样算法适应性那么强。
判别分析
判别分析(Discriminant Analysis,简称DA)技术是根据观察或测量到的若干变量值判断研究对象如何分类的方法。具体地讲,就是已知一定数量案例的一个分组变量(grouping variable)和这些案例的一些特征变量,确定分组变量和特征变量之间的数量关系,建立判别函数(discriminant function),然后便可以利用这一数量关系对其他已知特征变量信息、但未知分组类型所属的案例进行判别分组。
判别分析的基本模型就是判别函数,它表示为分组变量与满足假设的条件的判别变量的线性函数关系,其数学形式为:
其中, 是判别函数值,又简称为判别值(discriminant score);
为各判别变量; 为相应的判别系数(dicriminant coefficient or weight),表示各判别变量对于判别函数值的影响,其中 是常数项。
判别分析的特点
判别分析的特点是根据已掌握的、历史上每个类别的若干样本的数据信息,总结出客观事物分类的规律性,建立判别公式和判别准则。当遇到新的样本点时,只要根据总结出来的判别公式和判别准则,就能判别该样本点所属的类别。判别分析按照判别的组数来区分,可以分为两组判别分析和多组判别分析。
支持向量机
SVM构建了一个分割两类的超平面(这也可以扩展到多类问题)。在构建的过程中,SVM算法试图使两类之间的分割达到最大化,如下图所示。
SVM的基本思想
支持向量机的基本思想:与分类器平行的两个平面,此两个平面能很好地分开两类不同的数据,且穿越两类数据区域集中的点,现在欲寻找最佳超几何分隔平面使之与两个平面间的距离最大,如此便能实现分类总误差最小。
理论基础:
支持向量机实例
SVM特点
(1)SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他的分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
(2)SVM通过最大化决策边界的边缘来控制模型的能力。尽管如此,用户必须提供其他参数,如使用的核函数类型,为了引入松弛变量所需的代价函数C等,当然一些SVM工具都会有默认设置,一般选择默认的设置就可以了.
(3)通过对数据中每个分类属性值引入一个亚变量,SVM可以应用于分类数据。例如,如果婚姻状况有三个值(单身,已婚,离异),可以对每一个属性值引入一个二元变量。
决策树
决策树是一种监督式的学习方法,产生一种类似流程图的树结构。决策树对数据进行处理是利用归纳算法产生分类规则和决策树,再对新数据进行预测分析。树的终端节点”叶子节点(leaf nodes)”,表示分类结果的类别(class),每个内部节点表示一个变量的测试,分枝(branch)为测试输出,代表变量的一个可能数值。为达到分类目的,变量值在数据上测试,每一条路径代表一个分类规则。
适用的问题
决策树是用来处理分类问题,适用目标变量属于类别型的变量,目前也已扩展到可以处理连续型变量,如CART模型。但不同的决策树算法,对于数据类型有不同的需求和限制。
构建决策树步骤
1、选择适当的算法训练样本建构决策树
决策树是通过递归分割(recursive partitioning)建立而成,递归分割是一种把数据分割成不同小的部分的迭代过程。决策树学习主要利用信息论中的信息增益(information gain),寻找数据集中有最大信息量的变量,建立数据的一个节点,再根据变量的不同值建立树的分枝,每个分枝子集中重复建树的下层结果和分枝的过程,一直到完成建立整株决策树。
2、适当的修剪决策树
当决策树产生时,因为数据中的噪音或离群值,许多分枝反映的是训练资料中的异常情形,树剪枝就是在处理这些过度配适的问题。树剪枝通常使用统计测量值剪去最不可靠的分枝,可用的统计测量有卡方值或信息增益等,如此可以加速分类结果的产生,同时也提高测试数据能够正确分类的能力。
3、从决策树中萃取知识规则
决策树的算法基本上是一种贪心算法,是由上至下的逐次搜索方式,渐次产生决策树模型结构。
常用算法有:(1)ID3算法
(2)C4.5算法
(3)C5.0算法
(4)CART算法
决策树特点
决策树最为显著的优点在于,利用它来解释一个受训模型是非常容易的,而且算法将最为重要的判断因素都很好地安排在了靠近树根部位置。这意味着,决策树不仅对分类很有价值,而且对决策过程的解释也很有帮助。像贝叶斯分类器一样,可以通过观察内部结构来理解它的工作方式,同时这也有助于在分类过程之外进一步作出其他的决策。
因为决策树要寻找能够使信息增益达到最大化的分界线,因此它也可以接受数值型数据作为输入。能够同时处理分类数据和数值数据,对于许多问题的处理都是很有帮助的——这些问题往往是传统的统计方法(比如回归)所难以应对的。另一方面,决策树并不擅长于对数值结果进行预测。一颗回归树可以将数据拆分成一系列具有最小方差的均值,但是如果数据非常复杂,则树就会变得非常庞大,以至于我们无法借此来作出准确的决策。
与贝叶斯决策树相比,决策树的主要优点是它能够很容易地处理变量之间的相互影响。一个用决策树构建的垃圾邮件过滤器可以很容易的判断出: “onlie” 和 “pharmacy” 在分开时并不代表垃圾信息,但当它们组合在一起时则为垃圾信息。
分类的评判
正确率
灵敏性
精度
负元正确率
错误率
特效性
错正率
正元正确率
ROC曲线
//截止到2021.6.2号 晚上23:07为止
//2021.6.3日下午18:09开始学习笔记
对K-近邻算法原理的总结(自己总结):
即将准备分类的样本同已经分类过的样本逐一计算之间的距离,然后将所有的距离进行从小到大的排序,然后取前K个最近的距离,然后遍历这K个最近样本距离中的每一个样本的类别,统计所有类别在这K个样本中的数量,那么准备分类的样本的类别就是这其中数量最多的类别。
这里的距离可以使用欧式距离。
采用最典型的划分方法,将80%的样本作为训练样本,剩下的20%作为测试样本。
两个样本之间的距离:
通过聚类,人们能意识到密集和稀疏的区域,发现全局的分布模式,以及数据属性之间的有趣的相互关系。
聚类的定义
将物理或抽象对象的集合分成由类似的对象组成的多个类或簇的过程被称为聚类。
聚类方法的应用场景
客户细分
销售片区划分
聚类分析在市场机会研究中的应用
量化投资
用户画像聚类
//截止到2021.6.3日 晚上北三 21:22
//2021/6/29号 17:23学习笔记
K-means方法:
工作原理
首先随机从数据集中选取 K个点,每个点初始地代表每个簇的聚类中心,然后计算剩余各个样本到聚类中心的距离,将它赋给最近的簇,接着重新计算每一簇的平均值,整个过程不断重复,如果相邻两次调整没有明显变化,说明数据聚类形成的簇已经收敛。
算法步骤
(1)从n个数据对象任意选择k个对象作为初始聚类中心。
(2)循环第(3)步到第(4)步直到每个聚类不再发生变化为止。
(3)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分。
(4)重新计算每个聚类的均值(中心对象),直到聚类中心不再变化。这种划分使得下式最小:
K-means方法的特点:
(1)在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。
(2)在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。
(3) K-means算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。
(4)K-means算法对一些离散点和初始K值敏感,不同的距离初始值对同样的数据样本可能得到不同的结果。
层次聚类
层次聚类算法是通过将数据组织为若干组并形成一个相应的树来进行聚类的。在实际应用中一般有两种层次聚类方法。上图描述了一个凝聚层次聚类方法AGENES和一个分裂层次聚类方法DIANA在一个包括五个对象的数据的集合{a,b,c,d,e}上的处理的过程。
层次聚类的特点:
1、在凝聚的层次聚类和分裂的层次聚类的所有方法中,都需要用户提供所希望得到的聚类的单个数量和阈值作为聚类分析的终止条件,但是对于复杂的数据来说这是很难事先判定的。尽管层次聚类的方法实现得很简单,但是偶尔会遇见合并或分裂点的抉择的困难。这样的抉择特别关键,因为只要其中的两个对象被合并或者分裂,接下来的处理将只能在新生成的簇中完成。已形成的处理就不能被撤消,两个聚类之间也不能交换对象。如果在某个阶段没有选择对合并或分裂的决策,就非常可能导致质量不高的聚类结果。而且这种聚类方法不具有特别好的可伸缩性,因为它们合并或分裂的决策需要经过检测和估算大量的对象或簇。
2、层次聚类算法由于要使用距离矩阵,所以它的时间和空间复杂性都很高O( ),几乎不能在大数据集上使用。层次聚类算法只处理符合某静态模型的簇而忽略了不同簇间的信息,而且忽略了簇间的互连性(簇间距离较近的数据对的多少)和近似度(簇间数据对的相似度)。
神经网络聚类:
左图展示了一个简单的神经网络结构——感知器。感知器包含两种结点:几个输入结点,用来表示输入属性;一个输出结点,用来提供模型输出。神经网络结构中的结点通常叫作神经元或单元。在感知器中,每个输入结点都通过一个加权的链连接到输出结点。这个加权的链用来模拟神经元间神经键连接的强度。像生物神经系统一样,训练一个感知器模型就相当于不断调整链的权值,直到能拟合训练数据的输入输出关系为止。
模糊C-均值方法:
FCM算法的特点:
FCM算法用隶属度确定每个样本属于某个聚类的程度。它与K平均算法和中心点算法等相比,计算量可大大减少,因为它省去了多重迭代的反复计算过程,效率将大大提高。同时,模糊聚类分析可根据数据库中的相关数据计算形成模糊相似矩阵,形成相似矩阵之后,直接对相似矩阵进行处理即可,无须多次反复扫描数据库。根据实验要求动态设定m值,以满足不同类型数据挖掘任务的需要,适于高维度的数据的处理,具有较好的伸缩性,便于找出异常点。但m值根据经验或者实验得来,具有不确定性,可能影响实验结果。并且,由于梯度法的搜索方向总是沿着能量减小的方向,使得算法存在易陷入局部极小值和对初始化敏感的缺点。为克服上述缺点,可在FCM算法中引入全局寻优法来摆脱FCM聚类运算时可能陷入的局部极小点,优化聚类效果。
高斯混合聚类方法:
1、混合模型
2、参数估计
3、EM最大似然估计算法
参数估计
贝叶斯推理
最大似然估计
最大后验估计
4.贝叶斯估计
最大似然估计混合模型参数
EM最大似然估计:
EM最大似然估计算法介绍:
高斯混合聚类方法
GMM的优点是投影后样本点不是得到一个确定的分类标记,而是得到每个类的概率,这是一个重要信息。GMM每一步迭代的计算量比较大,大于k-means。GMM的求解办法基于EM算法,因此有可能陷入局部极值,这和初始值的选取十分相关了。GMM不仅可以用在聚类上,也可以用在概率密度估计上。
类别数的确定方法:
第9讲 预测方法
定义:
从预测学来看,它是阐述预测方法的一门学科和理论,预测方法是采用科学的判断和计量方法,对未来事件的可能变化情况作出事先推测的一种技术。
预测的方法很多,前面介绍的回归方法、分类方法都可以用来进行预测,但预测方法中又有一些比较特殊的方法,比如灰色预测和马尔科夫预测等。
预测的概念:
预测是指根据客观事物的发展趋势和变化规律对特定的对象未来发展趋势或状态作出科学的推断与判断,即预测就是根据过去和现在估计未来。
预测的基本原理:
常用的预测方法:
灰色预测模型:
灰色系统理论认为:尽管系统的行为现象是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据预处理后的数据序列称为生成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列,通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。
灰色预测通过鉴别系统因素之间发展趋势的相异程度,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物的未来发展趋势。灰色预测的数据是通过生成数据的模型所得到的预测值的逆处理结果。灰色预测是以灰色模型为基础的,在诸多的灰色模型中,以灰色系统中单序列一阶线性微分方程模型 最为常用。
灰色预测的实例:
对原始数据进行累加。
构造累加矩阵B与常数向量。
求解灰参数。
将参数带入预测模型进行数据预测。
马尔可夫预测:
马尔可夫过程的特征:
马尔可夫预测的实例:
第10讲 诊断方法
离群点诊断方法,简称诊断方法,是数据挖掘领域中的一项重要的挖掘技术,其目标是发现数据集中行为异常的少量数据对象,这些数据对象称为离群点或孤立点(outLier)。
离群点(outlier)是指数值中,远离数值的一般水平的极端大值和极端小值。
离群点诊断:给出n个数据点或对象的集合,及预期的离群点的数目k,发现与剩余的数据相比是显著差异的、异常的或不一致的前k个对象。
形成离群点的主要原因:
(1)首先可能是采样中的误差,如记录的偏误、工作人员出现笔误、计算错误等,都有可能产生极端大值或者极端小值。
(2)其次可能是被研究现象本身由于受各种偶然非正常的因素影响而引起的。
离群点方法分类:
基于统计的离群点分析:
基于距离的离群点诊断:
基于距离方法的两种不同策略:
(1)采用给定邻域半径,依据点的邻域中包含的对象多少来判定离群点。如果一个点的邻域内包含的对象少于整个数据集的一定比例则标识它为离群点,也就是将没有足够邻居的对象看成是基于距离的离群点。
(2)利用k最近邻距离的大小来判定离群。使用k-最近邻的距离度量一个对象是否远离大部分点,一个对象的离群程度由到它的k-最近邻的距离给定。这种方法对k的取值比较敏感。k太小(例如1),则少量的邻近离群点可能导致较低的离群程度。k太大,则点数少于k的簇中所有的对象可能都成了离群点。
实例解释:
基于密度的离群点挖掘
应用实例:
基于聚类的离群点挖掘
基于聚类的离群点挖掘
应用实例
第11讲 时间序列方法
数据挖掘的基础是数据,在大数据的众多数据类型中,有一类特殊的数据,这类数据具有一定的序列特征,其中最常见的是时序数据,如统计年鉴中的各月平均气温、某公司的各月财务数据、股票的价格等。由于这类数据具有特殊的特征,在对这类数据进行挖掘时,方法也会有所不同,分析或挖掘这个数据的方法称为时间序列方法。
时间序列就是一组按照一定的时间间隔排列的数据,其时间间隔可以是任意的时间单位,如小时、日、周、月等。
影响时间序列的构成因素为:
(1)趋势性(Trend),指现象随时间推移朝着一定方向呈现出持续渐进的上升、下降或平稳的变化或移动。
(2)周期性(Cyclic),指时间序列表现为循环于趋势线上方和下方的点序列并持续一段时间以上的有规则变动。
(3)季节性变化(Seasonal variation),指现象受季节性影响,按一固定周期呈现出的周期波动变化。
(4)不规则变化(Irregular movement),指现象受偶然因素的影响而呈现出的不规则波动。
时间序列分析方法包括以下两类:
(1)确定性时序分析:指暂时过滤掉随机性因素(如季节因素、趋势变动)进行确定性分析的方法,其基本思想是用一个确定的时间函数 来拟合时间序列,不同的变化采取不同的函数形式来描述,不同变化的叠加采用不同的函数叠加来描述。具体可分为趋势预测法(最小二乘)、平滑预测法、分解分析法等;
(2)随机性时序分析:其基本思想是通过分析不同时刻变量的相关关系,揭示其相关结构,利用这种相关结构建立自回归、滑动平均、自回归滑动平均混合模型来对时间序列进行预测。
时间序列的一般流程:
平稳时间序列分析方法
移动平均法:
指数平滑法:
季节指数预测法:
季节性水平模型:
季节性趋势模型:
(1)计算历年同季平均数 。
(2)建立趋势预测模型求趋势值 ,直接用原始数据时间序列建立线性回归模型即可。
(3)计算出趋势值后,再计算出历年同季的平均值 。
(4)计算趋势季节指数 ,用同季平均数与趋势值同季平均数之比来计算。
(5)对趋势季节指数进行修正。
(6)求预测值。将预测值的趋势只乘以该期的趋势季节指数,即预测模型为:
时间序列模型:
ARIMA模型:
基本思想:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。
ARCH模型
GARCH模型
第12讲 智能优化方法
概要: 智能优化算法又称为现代启发式算法,是一种具有全局优化性能、通用性强、且适合于并行处理的算法。
智能优化算法一般具有严密的理论依据,而不是单纯凭借专家经验,理论上可以在一定的时间内找到最优解或近似最优解。
常用的智能优化算法:
1)遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。
2)模拟退火算法是基于Mente-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。
3)粒子群优化算法是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。
4)蚁群算法是一种用来在图中寻找优化路径的概率型算法,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
5)禁忌搜索算法是一种全局性邻域搜索算法,模拟人类具有记忆功能的寻优特征。它通过局部邻域搜索机制和相应的禁忌准则来避免迂回搜索,并通过破禁水平来释放一些被禁忌的优良状态,进而保证多样化的有效探索,以最终实现全局优化。
遗传算法:
遗传算法是从一组随机产生的初始解(种群)开始的,这个种群由经过基因编码的一定数量的个体组成,每个个体实际上是带有染色体特征的实体。因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。初始种群产生后,按照优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样,后代种群比前代更加适应环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。
补充内容:
粒子群算法
粒子群算法(PSO)属于群智能算法的一种,是通过模拟鸟群捕食行为设计的。假设区域里就只有一块食物(即通常优化问题中所讲的最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自的信息,让其他的鸟知道自己的位置,通过这样的协作,来判断自己找到的是不是最优解,同时也将最优解的信息传递给整个鸟群,最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,即问题收敛。
重点:
遗传算法的步骤:
1、初始参数:种群规模 、交叉概率 、变异概率 、进化代数 。
2、染色体编码:由种群个体的表现型集合所组成的空间称为问题空间,由种群基因型个体所组成的空间称为编码空间。由问题空间向编码空间的映射称作编码,而由编码空间向问题空间的映射称为解码。
3、适应度函数:适应度函数是用来衡量个体优劣,度量个体适应度的函数。在遗传算法中根据适应值对个体进行选择,以保证适应性能好的个体有更多的机会繁殖后代,使优良特性得以遗传。
4、约束条件的处理:目前尚无处理各种约束条件的一般方法,根据具体问题可选择以下三种方法,即罚函数法、搜索空间限定法和可行解变换法。
5、遗传算子:遗传算法中包含3个模拟生物基因遗传操作的遗传算子:选择、交叉和变异。遗传算法利用遗传算子产生新一代群体来实现群体进化,算子的设计是遗传策略的主要组成部分,也是调整和控制进化过程的基本工具。
6、搜索终止条件:① 遗传操作中连续多次前后两代群体中最优个体的适应度相差在某个任意小的正数所确定的范围内;② 达到遗传操作的最大进化代数。
模拟退火算法:
模拟退火算法的思想源于固体的退火过程,即将固体加热至足够高的温度,再缓慢冷却;升温时,固体内部粒子随温度升高变为无序状,内能增大,而缓慢冷却粒子又逐渐趋于有序,从理论上讲,如果冷却过程足够缓慢,那么冷却中任一温度下固体都能达到热平衡,而冷却到低温时将达到这一低温下的内能最小状态。物理退火过程和模拟退火算法的类比关系如上图所示。
模拟退火算法步骤
1、符号说明
控制参数的初值 控制参数 的衰减函数
控制参数 的终值 Markov链的长度
2、算法基本步骤
(1)令T=T0,即开始退火的初始温度,随机生成一个初始解x0,并计算相应的目标函数值 ;
(2)令T等于冷却进度表中的下一个值Ti;
(3)根据当前解xi进行扰动(扰动方式可以参考后面的实例),产生一个新解xj,计算相应的目标函数值 ,得到 ;
(4)若 ,则新解xj被接受,作为新的当前解;若 ,则新解xj按概率 接受, 为当前温度;
(5)在温度 下,重复Lk次的扰动和接受过程,即步骤(3)、(4)。
(6)判断T是否已到达Tf,是,则终止算法,否,转到步骤(2)继续执行;
3、算法说明
(1) 状态表达;(2) 新解的产生;(3) 收敛的一般性条件;(4) 参数的选择;(5)算法停止准则。
算法实例:
补充内容:
粒子群算法
粒子群算法(PSO)属于群智能算法的一种,是通过模拟鸟群捕食行为设计的。假设区域里就只有一块食物(即通常优化问题中所讲的最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自的信息,让其他的鸟知道自己的位置,通过这样的协作,来判断自己找到的是不是最优解,同时也将最优解的信息传递给整个鸟群,最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,即问题收敛。
步骤:
初始化.
首先,我们需要设置最大的速度区间,防止超出最大的区间。位置信息即为整个搜索空间,我们在速度区间和搜索空间上随机初始化速度和位置。设置群体规模m。
个体极值与全局最优解。
个体极值为每个粒子找到的历史上最优的位置信息,并从这些个体历史最优解中找到一个全局最优解,并与历史最优解比较,选出最佳的作为当前的历史最优解。
更新速度和位置的公式。
终止条件。
有两种终止条件可以选择,一是最大代数: ;二是相邻两代之间的偏差在一个指定的范围内即停止。我们在实验中选择第一种。
补充知识点-蚁群算法
蚁群算法的基本原理:
1、蚂蚁在路径上释放信息素。
2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。
3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。
4、最优路径上的信息素浓度越来越大。
5、最终蚁群找到最优寻食路径。
//截止到:2021/6/29日晚上18:01