大量的数据,不需要模型,只需要输入和输出,黑箱处理,建议作为检验的办法,不过可以和其他方法进行组合或改进,可以拿来做评价和分类。
DNNs的监督学习
适用于大数据预测,其难点在于时延和维数的计算。
优化问题,对各省发展状况进行评判。
数据包络分析方法(DEA, Data Envelopment Analysis):
python代码实现
matlab代码实现
lingo代码实现
支持向量机实现是通过某种事先选择的非线性映射(核函数)将输入向量映射到一个高维特征空间,在这个空间中构造最优分类超平面。主要用于分类。
假设农场主,圈养了一批羊群,但为预防狼群袭击羊群,你需要搭建一个篱笆来把羊群围起来。但是篱笆应该建在哪里呢?你很可能需要依据牛群和狼群的位置建立一个“分类器”,比较下图这几种不同的分类器,我们可以看到SVM完成了一个很完美的解决方案。
聚类分析是根据事物本身的特性研究个体分类的方法,原则是同一类中的个体有较大的相似性,不同类中的个体差异很大
判别分析是根据表明事物特点的变量值和它们所属的类,求出判别函数。根据判别函数对未知所属类别的事物进行分类的一种分析方法
PPT公式推导
判别分析一般步骤:
1. 已知分类的训练样本
2. 判别分析方法
3. 得到判别函数
4. 建立判别准则
5. 未知样品的判别归类
距离判别法
(1) 马氏距离
(2) 两个总体的距离判别法
(3) 多个总体的距离判别法
(2) 考虑错判损失的贝叶斯判别
费歇尔判别法
基本思想:通过将多维数据投影到某一方向上,使得投影后类与类之间尽可能的分开,然后再选择合适的判别准则。费歇尔判别法就是要找一个由p个变量组成的线性函数,使得各类中点的函数值尽可能接近,而不同类之间的函数值尽可能的远离。
逐步判别法
基本思想:在判别问题中,当判别变量个数较多时,如果不加选择地一概采用来建立判别函数,不仅计算量大,还由于变量之间的相关性,可能使求解逆矩阵的计算精度下降,建立判别函数不稳定。因此适当地筛选变量的问题就成为一个很重要的事情。凡是具有筛选变量能力的判别分析法就统称为逐步判别法。
多维标度法: 是一种在低维空间展示“距离”数据结构的多元数据分析技术,简称MDS
假如给一组城市,总能从地图上测出任何一对城市之间的距离。但如果只有若干城市的距离,如何确定这些城市之间的相对位置。假定知道只是哪两个城市最近,那两个城市次近等,是否还能确定它们之间的相对位置。
假定通过调查了解了10种饮料产品在消费者心中的相似程度,能否确定这些产品在这些产品的消费者心理空间种的相对位置。
已知上图美国十个城市之间的飞行距离,我们如何在平面坐标上标出这10个城市之间的相对位置,试着尽可能接近表中的距离数据呢。
聚类算法总结对比
给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K 特点:计算量大。很适合发现中小规模的数据库中小规模的数据库中的球状簇。 k-means算法可视化 优点: 能够处理大量数据(T级别); 缺点: 运行速度慢。 CLARA的有效性主要取决于样本的大小。如果任何一个最佳抽样中心点不在最佳的K个中心之中,则CLARA将永远不能找到数据集合的最佳聚类。同时这也是为了聚类效率做付出的代价。 CLARANS聚类则是将CLARA和PAM有效的结合起来,CLARANS在任何时候都不把自身局限于任何样本,CLARANS在搜素的每一步都以某种随机性选取样本。算法步骤如下(算法步骤摘自百度文库): 输入参数 numlocal( 表示抽样的次数) 和 maxneighbor(表示一个节点可以与任意特定邻居进行比较的数目)。令:i=1,i用来表示已经选样的次数 mincost为最小代价,初始时设为大数。 设置当前节点 current 为 Gn 中的任意一个节点。 令 j =1。( j 用来表示已经与 current 进行比较的邻居的个数) 考虑当前点的一个随机的邻居S,并计算两个节点的代价差。 如果S的代价较低,则 current := S,转到步骤3。 否则,令 j=j+1。如果 j <= maxneighbor , 则转到步骤4。 否则 ,当 j>maxneighbor,当前节点为本次选样最小代价节点. 如果其代价小于 mincost,令mincost为当前节点的代价,bestnode为当前的节点。 令 i= i+1,如果 i > numlocal,输出 bestnode,运算中止.否则,转到步骤2。 对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。 特点:较小的计算开销。然而这种技术不能更正错误的决定。 BIRCH算法的主要优点有: 节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针。 聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快。 可以识别噪音点,还可以对数据集进行初步分类的预处理 BIRCH算法的主要缺点有: 由于CF Tree对每个节点的CF个数有限制,导致聚类的结果可能和真实的类别分布不同. 对高维特征的数据聚类效果不好。此时可以选择Mini Batch K-Means 如果数据集的分布簇不是类似于超球体,或者说不是凸的,则聚类效果不好。 BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)平衡迭代规约和聚类算法 比较适合于数据量大,类别数K也比较多的情况。它运行速度很快,只需要单遍扫描数据集就能进行聚类。 BIRCH算法利用了一个树结构来帮助我们快速的聚类,这个数结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)每个节点包括叶子节点都有若干个CF,而内部节点的CF有指向孩子节点的指针,所有的叶子节点用一个双向链表链接起来。 在聚类特征树中,一个聚类特征CF是这样定义的:每一个CF(Clustering Feature)是一个三元组,可以用(N,LS,SS)表示。其中N代表了这个CF中拥有的样本点的数量,这个好理解;LS代表了这个CF中拥有的样本点各特征维度的和向量,SS代表了这个CF中拥有的样本点各特征维度的平方和。举个例子如下图,在CF Tree中的某一个节点的某一个CF中,有下面5个样本(3,4), (2,6), (4,5), (4,7), (3,8)。 则它对应的 如果把这个性质放在CF Tree上,也就是说,在CF Tree中,对于每个父节点中的CF节点,它的(N,LS,SS)三元组的值等于这个CF节点所指向的所有子节点的三元组之和。如下图所示: 对于CF Tree,我们一般有几个重要参数,第一个参数是每个内部节点的最大CF数B,第二个参数是每个叶子节点的最大CF数L,第三个参数是针对叶子节点中某个CF中的样本点来说的,它是叶节点每个CF的最大样本半径阈值T,也就是说,在这个CF中的所有样本点一定要在半径小于T的一个超球体内。对于上图中的CF Tree,限定了B=7, L=5, 也就是说内部节点最多有7个CF,而叶子节点最多有5个CF。 聚类特征树CF Tree的生成 算法过程: 2)(可选)将第一步建立的CF Tree进行筛选,去除一些异常CF节点,这些节点一般里面的样本点很少。对于一些超球体距离非常近的元组进行合并 3)(可选)利用其它的一些聚类算法比如K-Means对所有的CF元组进行聚类,得到一颗比较好的CF Tree.这一步的主要目的是消除由于样本读入顺序导致的不合理的树结构,以及一些由于节点CF个数限制导致的树结构分裂。 4)(可选)利用第三步生成的CF Tree的所有CF节点的质心,作为初始质心点,对所有的样本点按距离远近进行聚类。这样进一步减少了由于CF Tree的一些限制导致的聚类不合理的情况。 从上面可以看出,BIRCH算法的关键就是步骤1,也就是CF Tree的生成,其他步骤都是为了优化最后的聚类结果。 只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。 特点:能克服基于距离的算法只能发现“类圆形”的聚类的缺点。 Dbscan聚类算法可视化 优点: 缺点: 一般将数据点分以下三类: 核心点: 在半径Eps内含有超过MinPts数目的点 边界点: 在半径Eps内点的数量小于MinPts,但是落在核心点的领域内 Eps领域: 简单来讲就是与点p的距离小于Eps的所有的点的集合,可以表示为 N E p s ( p ) N_{Eps}(p) NEps(p) 直接密度可达:如果点p在核心对象q的Eps领域内,则称对象q出发是直接密度可达的。 密度可达:对于对象链: p 1 , p 2 , . . . , p n , p n + 1 p_1,p_2,...,p_n,p_{n+1} p1,p2,...,pn,pn+1是从 p s p_s ps关于Eps和MinPts直接密度可达的,则对象 p n p_n pn是从对象 p 1 p_1 p1关于Eps和MinPts密度可达的。 常用的评估方法:轮廓系数(Sihouette Coefficient): 计算样本i到同簇其它样本到平均距离 a i a_i ai。 a i a_i ai越小,说明样本i越应该被聚类到该簇(将 a i a_i ai称为样本i到簇内不相似度)。 OPTICS(Ordering Point To Identify the Cluster Structure),它可视为DBSCAN算法的一种改进算法。与DBSCAN算法相比,OPTICS算法的改进主要在于对输入参数不敏感。 OPTICS算法不显示地生成数据聚类,它只是对数据对象集合中的对象进行排序,得到一个有序的对象列表,其中包含了足够的信息用来提取聚类。事实上,利用该有序的对象列表,还可以对数据的分布和关联作进一步分析。 将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。 特点:处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。 Wave-Cluster方法的主要思想是把多维数据看作一个多维信号来处理。它首先将数据空间划分成网格结构,然后通过小波变换将数据空间变换成频域空间,在频域空间通过与一个核函数作卷积后,数据的自然聚类属性就显现出来。Wave-Cluster方法是一个多分辨率的算法,高分辨率可以获得细节的信息,低分辨率可以获得轮廓信息。方法的时间复杂度是D(疗),其中疗是数据库中对象的个数。 详细介绍 三个相关性系数(pearson, spearman, kendall)反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。 person correlation coefficient(皮尔森相关性系数) 缺点:对数据要求比较高;实验数据之间的差距不能太大,也就是说 皮尔森相关性系数受异常值的影响比较大。 spearman correlation coefficient(斯皮尔曼相关性系数) 斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制 不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了 而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小! 由于斯皮尔曼相关性系数没有那些数据条件要求,适用的范围就广多了。生物实验数据分析中,尤其是在分析多组学交叉的数据中说明不同组学数据之间的相关性时,使用的频率很高。 kendall correlation coefficient(肯德尔相关性系数) 分类变量可以理解成有类别的变量,可以分为 举个例子。比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。 (例:因变量组Y1234,自变量组X1234,各自变量组相关性比较强,问哪一个因变量与哪一个自变量关系比较紧密?) 典型相关分析的基本思想 Canonical Correlation Analysis 首先,CCA研究的是两组变量 X = ( x 1 , x 2 , . . . , x n ) X=(x_1,x_2,...,x_n) X=(x1,x2,...,xn)和 Y = ( y 1 , y 2 , . . . , y n ) Y=(y_1,y_2,...,y_n) Y=(y1,y2,...,yn)之间的相关关系。通常相关系数衡量,如下公式: ρ x y = C o v ( X , Y ) V a r ( X ) V a r ( Y ) \rho_{xy}=\frac{Cov(X,Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}} ρxy=Var(X)Var(Y)Cov(X,Y) 通过找到任意非零向量 α = ( α 1 , α 2 , . . . , α n ) \alpha=(\alpha_1,\alpha_2,...,\alpha_n) α=(α1,α2,...,αn)和 β = ( β 1 , β 2 , . . . , β m ) \beta =(\beta_1,\beta_2,...,\beta_m) β=(β1,β2,...,βm)将两组变量线性组合,得: U = α 1 X 1 + α 2 X 2 + . . . + α n X n = α ‘ X U=\alpha_1X_1+\alpha_2X_2+...+\alpha_nX_n=\alpha^`X U=α1X1+α2X2+...+αnXn=α‘X 这样,CCA将研究X和Y的相关问题转换为研究U和V的相关问题,只需要找到 α \alpha α和 β \beta β使得U和V的相关系数最大即可。 详解 计量经济学,去年的X对今年的Y有没影响(1) K-means算法
(2) K-medoids算法
(3) Clarans算法
2. 基于层次的方法
(1) Birch算法
N = 5 N=5 N=5
L S = ( 3 + 2 + 4 + 4 + 3 , 4 + 6 + 5 + 7 + 8 ) = ( 16 , 30 ) LS=(3+2+4+4+3 , 4+6+5+7+8)=(16, 30) LS=(3+2+4+4+3,4+6+5+7+8)=(16,30)
S S = ( 3 2 + 2 2 + 4 2 + 4 2 + 3 2 + 4 2 + 6 2 + 5 2 + 7 2 + 8 2 ) = ( 54 + 190 ) = 244 SS =(3^2+2^2+4^2+4^2+3^2+4^2+6^2+5^2+7^2+8^2)=(54+190)=244 SS=(32+22+42+42+32+42+62+52+72+82)=(54+190)=244
CF有一个很好的性质,就是满足线性关系,
也就是 C F 1 + C F 2 = ( N 1 + N 2 , L S 1 + L S 2 , S S 1 + S S 2 ) CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2) CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2)
1) 将所有的样本依次读入,在内存中建立一颗CF Tree, 建立的方法参考上一节。(2) Cure算法
(3) Chameleon算法
3. 基于密度的方法
(1) Dbscan算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)具有噪声的基于密度的聚类方法
计算样本 i i i到其它某簇 C j C_j Cj的所有样本的平均距离 b i j b_{ij} bij,称为样本 i i i与簇 C j C_j Cj的不相似度。定义为样本i的簇间不相似度: b i = m i n ( b i 1 , b i 2 , . . . , b i k ) b_i=min(b_{i_1},b_{i_2},...,b_{i_k}) bi=min(bi1,bi2,...,bik)
(2) Optics算法
(3) Denclue算法
4. 基于网格的方法
(1) Sting算法
(2) Clique算法
(3) Wave-Cluster算法
关联与因果
1. pearson、spearman、kendall等级相关分析
皮尔森相关系数 = 它们之间的协方差 / 各自标准差的乘积
肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。
无序的,比如性别(男、女)、血型(A、B、O、AB);
有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。
通常需要求相关性系数的都是有序分类变量。
详细计算案例2. 典型相关分析
V = β 1 Y 1 + β 2 Y 2 + . . . + β m Y m = β ‘ Y V =\beta_1Y_1+\beta_2Y_2+...+\beta_mY_m=\beta^`Y V=β1Y1+β2Y2+...+βmYm=β‘Y3. 格兰杰因果关系检验