数据分析笔试记录--广联达

广联达笔试

  • 题目类型:15单选 60 2问答 20 2编程 20
    • 单选
    • 问答
    • 编程
    • 相关问题
      • 数据不平衡处理方法
      • K折交叉验证
      • 集成学习
      • 集中趋势和离中趋势
      • 聚类性能度量

题目类型:15单选 60 2问答 20 2编程 20

单选

1.“点击率问题”是这样一个预测问题,99%的人是不会点击的,而1%的人是会点击的,所以这是一个非常不平衡的数据集,假设,现在我们已经建了一个模型来分类,而且有了99%的准确率,我们可以下的结论是:
A:无法下结论
B.模型的准确率很高了,我们不需要再做什么了
C.模型预测的准确率不高,我们需要做点什么改进模型
D.其他选项都不对
答案:A
分析:
TP:真正类 TN:真负类 FP:假正类(预测为正实际为负) FN:假负类(预测为负实际为正)
准确率(Accuracy): (TP+TN)/(TP+FP+TN+FN)
查准率(Precision):TP/(TP+FP)
召回率(Recall): TP/(TP+FN)
准确率为99%可以为TP=0,TN=99,此时一个正例都没预测出来

2.截取logfile文件中含有suc的行,并且只输出最后一列,下列操作正确的是:
C.grep ‘suc’ logfile | awk ‘{print $NF}’

3.在K折交叉验证中,以下对K的哪种说法是对的:
A.在选择K时,要最小化数据集之间的方差
B.选取高的K值不一定总是好的,因为较高的K值会减慢你评估结果的速度
C.选择更大的K,就会有更小的偏差(因为训练集更加接近总数据集)
D.其他选项均正确
答案:B
解析:
偏差:期望输出与真实标记的差别,刻画了学习算法本身的拟合能力;
方差:度量了不同大小的训练集的变动导致学习性能的变化,即刻画了数据扰动带来的影响。
噪声:样本真实标记与实际标记的差别,表达了在当前学习任务中,任何学习算法所能达到的期望泛化误差的下届,即刻画了学习问题本身的难度
偏差-方差:测试集小时,评估结果的方差较大,训练集小时,评估结果的偏差较大。
训练程度越深,偏差越小,方差越大,泛化误差先变小后变大
数据分析笔试记录--广联达_第1张图片
4.通常来讲,对模型预测效果的排序正确的是:
A.Bagging>Boosting>Random Forest>Single Tree
B.Boosting>Random Forest>Bagging>Single Tree
C.Boosting>Random Forest>Single Tree>Bagging
D.Boosting>Bagging>Random Forest>Single Tree
答案:B
解析:
Boosting在每一轮训练中会重点考虑上一轮被误分的样本
RF在Bagging的基础上添加了属性扰动;

5.以下哪种算法是并行实现的:
A.随机森林和XGBoost
B.XGBoost
C.梯度提升树
D.随机森林
答案:D
解析:
XGBoost本质上还是一个串行模型。
XGBoost不是在Tree粒度上并行的,而是在特征粒度上。
决策树最耗时的一个步骤就是特征排序(因为要做最佳特征分割)。XGBoost训练开始前预先将特征进行排序放在一个block中,后面在迭代过程中直接调用这个块可以大大减小计算量。并且在节点分裂过程中,计算特征的增益时,就可以直接调用这个块开多线程进行。

6.抽取30个手机用户,计算出他们通话时间的方差,要用样本方差推断总体方差,假定前提是所有用户的通话时间应服从:
A.F分布
B.卡方分布
C.t分布
D.正态分布
答案: D
解析
单正态总体方差的检验用卡方检验;
两正态总体方差比的检验用F检验;
单正态总体,方差已知,总体均值用u检验,方差未知用t检验;
两正态总体,方差未知但相等,总体均值用t检验;方差已知,总体均值用u检验;
大样本情况下,非正态总体也可以用u检验;样本量不是很大的情况下可以用近似t检验;
成对数据检验用t检验;

7.如果p值小于显著性水平α,那么:
A.没有显著性统计学差异
B.有显著性差异
C.无效数据
D.不能拒绝原假设
答案B
解析
p值:指的是在假设检验中,利用样本观察值能作出拒绝原假设的最小显著性水平;
显著性水平α:指的是犯第一类错误的概率为α(第一类错误:原假设为真却被拒绝了)
p<=α:拒绝原假设,有显著性差异
p>α:接受原假设,无显著性差异

8.对于如下图的双峰分布,以下哪种对集中趋势的度量最合适:
A.平均数
B.中位数
C.众数
D.
答案:中位数
解析
当有两个异常值的时候,选用中位数做集中趋势的度量

9.enrrolled表有两个字段,sid代表学生ID,cid代表课程ID,以下哪个查询能找到参加了多门课程的学生:
A.select distinct e1.sid from enrrolled as e1,enrrolled as e2 where e1.sid!=e2.sid and e1.cid !=e2.cid
B.select distinct e1.sid from enrrolled as e1,enrrolled as e2 where e1.sid=e2.sid and e1.cid != e2.cid
C.select dintinct e1.sid from enrrolled as e1,enrrolled as e 2where e1.sid!=e2.sid and e1.cid =e2.cid
D.select dintinct e1.sid from enrrolled as e1,enrrolled as e 2where e1.sid=e2.sid and e1.cid =e2.cid
答案 B

10.有样本均值为 x ˉ \bar{x} xˉ,样本量为n,样本中位数m,总体均值估计的最佳方式是:
A. m / ( n − 1 ) m/\sqrt{(n-1)} m/(n1)
B.m
C. x ˉ / ( n − 1 ) \bar{x}/\sqrt{(n-1)} xˉ/(n1)
D. x ˉ \bar{x} xˉ
答案 D

11.假设95%的置信区间落在(20%,30%),他们的边际误差是多少:
A.25%
B.10%
C.95%
D.5%
答案 D
解析
置信区间为[a,b],边际误差=(b-a)/2
边际误差也称绝对误差。

12.当我们构造线性模型时,我们注意变量间的相关性,在相关矩阵中搜索相关系数时,如果我们发现三对变量的相关系数是(Var1和Var2,Var2和Var3,Var3和Var1)是-0.98,0.45,1.23,我们可以得出什么结论()
1.Var1和Var2是非常相关的;
2.因为Var1和Var2是非常相关的,我们可以去除其中一个
3.Var3和Var1的1.23相关系数是不可能的;
A.1 AND 2
B.1
C.1 AND 3
D.1,2 AND 3
答案 D

13.命题A:随机变量X和Y独立,命题B:随机变量X和Y不相关。A是B的——条件:
A.不充分不必要
B.必要不充分
C.充分不必要
D.充要
答案 C
解析
充分不必要条件:有A一定有B,有B不一定有A,则A是B的充分不必要条件
必要不充分:B是A的必要不充分条件

14.数据分布如下图所示,以下哪种对集中趋势的度量最合适:
数据分析笔试记录--广联达_第2张图片
A.其他三种都可
B.众数
C.中位数
D.平均数
答案 C
解析

问答

1.什么是过拟合?如何避免过拟合
答案在训练集上表现很好,在验证集和测试集上表现很差
数据分析笔试记录--广联达_第3张图片
产生过拟合的原因:
1.样本问题:(1)样本里的噪音数据干扰过大,大到导致模型过分的记住了噪声特征,反而忽略了真实的输入输出间的关系;
(2)样本抽取错误,包括(但不限于)样本量太少、抽样方法错误、抽样时没有足够正确的考虑业务场景或业务特点等导致抽样的数据不能有效的代表业务逻辑或业务场景;
(3)建模时使用了样本中太多无关的输入变量
2.训练过度
解决办法:
1.early stoping
一般做法为,在训练过程中,记录到目前为止最好的验证准确性,当连续n次没有达到最佳的精度时停止;
2.数据集扩增
a.从数据源头采集更多的数据
b.复制原有数据并加上随机噪声
c.重采样
d.根据当前数据集估计的数据分布,用该分布产生更多的数据
3.正则化
在目标函数或代价函数优化时,在目标函数或代价函数后面添加正则项,一般为L1、L2正则。
数据分析笔试记录--广联达_第4张图片
上图的曲线是代价函数的等值线,黑色方框是L1正则项的函数,两者的交点更容易出现在坐标轴上。也就是说L1更容易得到稀疏解。
数据分析笔试记录--广联达_第5张图片
由上图可看出L2函数图像与损失函数的等值线更容易在象限内相交,L2正则起到了使得各特征系数变小加剧的效果,更小的系数意味着更低的复杂度。
总结:正则项降低了模型的复杂度,从而避免了模型过分拟合训练数据。
4.dropout
神经网络中的一种避免过拟合的方法,通过随机修改ANN中隐藏层的神经元个数来防止ANN过拟合(即让部分神经元失活,这样就阻断了部分神经元之间的协同作用,从而强制要求一个神经元和随机挑选出来的神经元共同进行工作,减少了部分神经元间的联合适应性)

2.什么是有监督学习和无监督学习?Kmeans属于哪一类,并简述其原理
解析
有监督学习:训练样本有标记信息(例如在分类学习中,已知训练样本的类别)
无监督学习:训练样本无标记信息(目标是通过对无标记的训练样本的学习来揭示数据的内在性质和规律,为进一步的数据分析提供基础)
Kmeans:属于无监督学习,是一种聚类学习方法;
kmeans聚类
一种原型聚类算法,k均值算法针对聚类所得的簇划分 C = C 1 , C 2 , . . . , C k C={C_1,C_2,...,C_k} C=C1,C2,...,Ck最小化平方误差:
E = ∑ i = 1 k ∑ x ∈ C i ∥ x − u i ∥ 2 E=\sum_{i=1}^k\sum_{x\in C_i} \begin{Vmatrix} x-u_i \end{Vmatrix}^2 E=i=1kxCixui2
其中 u i u_i ui是簇 C i C_i Ci的均值向量。描述了簇内样本围绕均值向量的紧密程度,E越小,簇内样本相似度越高。
上述问题的求解是NP难问题,kmeans算法采用贪心策略,通过迭代优化来近似求解上式。
算法过程:
1.从样本集D中随机选择k个样本作为初始均值向量;
2.计算每个样本到均值向量的距离,将其划入其最近的那个均值向量一类;
3.重新计算均值向量
4.重复2-3,直到均值向量不在更新
其中所用到的距离度量为欧式距离;

编程

1.有一个中国轨道拼图,随便给出两个城市之间的距离T和拼图盒里剩余的轨道C,你需要给出所有能连接上两个城市的轨道组合。
例:
Input:C=[2,5,1,3,2],T=5
output:[[1,2,2],
[5],
[2,3]]
2.你在注册一个网站时输入一个英文字符串为用户名,如果这个字符串加上这个字符串所有非空子集的数量作为你的密码,请给出你的密码生成器;
例:
Input =‘abc’
Output=‘abc7’

相关问题

数据不平衡处理方法

数据处理难度:大数据+分布均衡<大数据+分布不均衡<小数据+数据均衡<小数据+数据不均衡
解决方法:
基于数据层面的解决方法:
1.采样
(1)欠采样:从多数样类样本中随机采取少量样本,再和原来的少数类样本合并形成训练集
优点:简单
缺点:丢失重要信息,过拟合
(2)过采样:从少数类样本中有放回的进行随机采样,再和原来的多数类样本合并形成训练集
优点:简单,对数据质量的要求不高
缺点:过拟合
2.数据合成:人为的合成一些样本量较少的类的数据,来达到正负样本的平衡
代表算法:SMOTE
算法流程:
(1).采用最近邻算法,计算出每个少数类样本的K个近邻(对少数类点进行KNN算法)
(2).从K个近邻中随机取N个样本进行随机线性插值
(3).构造新的少数类样本:
N E W = x i + r a n d ( 0 , 1 ) ∗ ( y j − x i ) j = 1 , 2 , . . . . , N NEW = x_i + rand(0,1)*(y_j-x_i) j=1,2,....,N NEW=xi+rand(0,1)(yjxi)j=1,2,....,N
缺点:a)因为每个少数类都生成了新的样本,故增加了样本之间重叠的可能性,容易造成样本重叠问题; b)生成一些没有提供有益信息的样本;c)不能对缺失值和类别变量做处理
优点:不易过拟合,保留了信息
数据分析笔试记录--广联达_第6张图片
SMOTE算法的改进:Bolderlin-SMOTE
与原始的SMOTE算法不同的是,原始的SMOTE是对所有的少数类样本生成新的样本,而改进的SMOTE算法是先根据规则判定出少数类样本的边界样本,再根据这些边界样本生成新的样本。
判定边界样本的一个简单规则为:K个近邻中一半以上都是多数类样本的少数类样本称为边界样本,也就是说只对那些周围一半以上都是多数类样本的少数类样本生成新的样本。
假设a为少数类中的一个样本,此时少数类样本分为三类:
(i)噪音样本:该少数类样本的最近邻都来自于不同于样本a的其他类别
(ii)危险样本:该少数类样本的最近邻都来自于同一个类别(不同于a的类别)
(iii)安全样本:所有样本都来自于同一个类别
数据分析笔试记录--广联达_第7张图片
SMOTE算法的改进:ADASYN
主要思想为根据数据的分布情况为不同的少数类样本生成数量不同的样本。首先根据平衡程度确定需要生成的少数类样本数量,然后计算少数类样本x的分布比列。
3.基于聚类算法的过采样方法:
假设样本为二分类样本,对该样本的正负类进行聚类,在聚类之后在采用过采样的方法来平衡数据。例如有一个二分类数据集,其正负比例为1000:50,首先使用kmeans算法对其聚类,得到正类600,300,100,负类30,20。然后对所有类别进行过采样,得到正类600,600,600,负类为(600+600+600)/2,即:900,900.最终得到正类1800,负类1800.
优点:即解决了类间数据不平衡的问题,又解决了类内数据不平衡的问题。
4.欠采样方法的改进
(1)EasyEnsemble:多次欠采样(有放回采样),产生不同的训练集,然后训练n个模型,然后组合分类器的结果得到最终的结果。
(2)BalanceCascade(利用增量训练的思想boosting):先通过欠采样,产生一个训练集进行模型训练,然后对分类正确的多数类样本不放回,再从较小的多数类样本中进行欠采样,训练第二个分类器,以此类推,最后组合分类器的结果得到最终的结果。
(3)NearMiss(利用KNN来选择那些最具有代表性的多数类样本):首先计算每个样本点之间的样本,然后通过一定的规则来保留多数类样本。
规则1:选择离N个近邻的负样本的平均距离最近的正样本
规则2:选择离N个负样本最远的平均距离最小的正样本
规则3:首先对每一个负样本,保留M个近邻样本;然后那些到N近邻平均距离最大的正样本将被选择。
缺点:计算代价很大
5.调权重: 调整正负样本在模型表现中的表决权,一次来平衡样本。比如正负样本绝对量的比值为1:10,为了抵消这种量级上的不平衡,在模型中可以给予模型正负样本10:0的表决权重。也就是10个正样本相当于一个负样本。
基于算法层面的解决办法:
从算法的角度出发,考虑不同误分类情况代价的差异性对算法进行优化。
代表:代价敏感学习方法
在大量不平衡分类问题中,稀有类是分类的重点,在这种情况下,正确的识别出稀有类更有价值。反过来说,错分稀有类样本应该付出更高的代价。代价敏感学习就是分别赋予不同的错分代价,他能很好的处理不平衡的问题。
其他方法
一分类(或异常检测)方法:对于数据极度不平衡的样本,我们可以将其看作一分类或异常检测问题。这类方法的重点不在于捕捉类别间的差异,而是对其中一类进行建模,经典的工作包括One-class SVM等。调整SVM以惩罚稀有类别的错误分类。
处理经验
1.在数据量不是很多的情况下,采用数据合成的方法;
2.在负样本很多,正样本很少且正负比例悬殊比较大的情况下采用一分类或异常检测(癌症检测);
3.在正负样本都比较多且正负比例悬殊不是特别大的情况下采用采样或加权方法。
参考:https://www.cnblogs.com/kamekin/p/9824294.html
https://www.cnblogs.com/huangyc/p/9688156.html

K折交叉验证

原始数据集D需要划分为三部分:验证集,训练集,测试集
用来研究对比不同算法的泛化性能时,用测试集上的判别效果来评估模型在实际使用中的泛化能力;
将训练数据划分为:训练集和验证集,基于验证集上的性能来进行模型选择和调参。
目的: 为了防止模型过于复杂而引起的过拟合;可以用来做模型选择和模型评估。
方法: 将数据集划分为K个大小相似的互斥子集,每个子集都尽量保持分布的一致性(即从数据集中分层采样得到。然后每次用k-1个自己的并集作为训练集,余下的子集作为测试集,这样就可获得K组训练集/测试集,从而可进行K次训练和测试,最终返回这k次训练结果的均值。
p次k折交叉验证: 为了减小因为样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果为p次k折交叉验证的均值。
优点:可以有效避免过拟合和欠拟合,最终的结果也具有说服性;
缺点:k值的选取,计算代价更高
适用于样本量足够的情况
留一法(Leave-One-Out,简称LOO):假设样本集D有M个样本,令k=M,称为留一法。优点:留一法被实际评估的模型与期望评估的用D训练出来的模型比较相似。因此,留一法的评估结果往往认为比较准确。缺点:在数据集比较大时,计算开销非常大,且留一法的估计结果未必比其他评估方法准确。
留出法直接将训练集划分为两个互斥的集合,其中一个作为训练集,另外一个作为测试集,用来对泛化误差作为估计。为了减小由于不同的划分而引入的差别,通常采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
常见做法是:将大约2/3~4/5的样本用于训练,剩余样本用于测试
优点:简单
缺点:不同的划分可能会导致评估结果不同,并且划分后的数据集的分布可能会和原始数据集的分布不同;划分后用到的训练集变小了不少。
适用于:样本量足够的情况
自助法留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,会导致一些因训练规模不同而导致的估计偏差。
假设样本集D含有m个样本,有放回的随机抽取m个样本放入D’中作为训练集,D\D’作为测试集,这样就保证了实际评估的模型与期望评估的模型都是使用m个训练样本,而仍有约1/3的样本没有出现在训练集中而用来测试,这样得到的结果也成为包外估计。
该方法适用于样本集较小、难以划分有效训练/测试集的时候。缺点:改变了初始数据集的分布,会引入估计偏差。

集成学习

集成学习方法分为:个体学习器间存在强依赖关性、必须串行生成的序列化方法,代表为Bagging和RF。个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表:Boosting
Boosting:将一组弱学习器提升为强学习器的算法。工作机制为:先从初始训练集训练出一个基学习器,再根据基学习器的表现对样本分布进行调整,使得先前的基学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一次基学习器,如此重复进行,直至基学习器的数量达到预先指定的值,再将这T个基学习器进行加权结合。代表算法:AdaBoost.
从偏差-方差分解的角度来看,Boosting主要关注降低偏差。
AdaBoost:
优点:
(1)不容易发生过拟合;
(2)精度高;
(3)模型参数少,只需调整基分类器的参数;
(4)相对于Bagging和RF,AdaBoost充分考虑了每个分类器的权重;
(5)可选择不同的基学习器来构建弱学习器;简单,不用做特征筛选;
缺点:
(1)弱学习器的数量不好确定(可采用交叉验证确定);
(2)数据不平衡容易导致分类精度下降;
(3)训练耗时;
(4)对异常值敏感,在迭代中,异常值可能获得较高权重,从而影响最终强学习器的预测准确性。
Bagging:从样本集D(m个样本)中采用有放回抽样方法随机抽取m个样本,形成T个采样集,然后基于每个采样集训练基学习器,再将这些基学习器进行结合。在预测输出进行结合时,对分类任务Bagging采用的是简单投票法,对回归任务采用的是简单平均法。标准的AdaBoost只适用于二分类(可修改用于多分类或回归任务),Bagging能不经修改地应用于多分类和回归等任务。Bagging的分类精度弱于Boosting
从偏差-方差分解的角度来看,Bagging主要关注降低方差(方差对应于扰动)
优点:
(1)能不经修改的应用于多分类任务和回归任务;
(2)自主采样过程使得有约36.8%的样本用作验证集对泛化性能进行‘包外估计’。(包外样本在基学习器为决策树时用来辅助剪枝,或者在估计决策树中个节点的后验概率时以辅助零训练样本节点的处理;在基学习器为神经网络时,可用包外样本来辅助早期停止以减小过拟合的风险)
(3)可并行实现,高效
缺点:
RF:RF是Bagging的一个扩展变体。RF是以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性的选择。也就是在每次选择划分属性时,先从所有属性中随机取k个属性,再从这k个属性中选择最优划分属性。
RF优点:
(1)简单,容易实现,计算开销小;
(2)训练效率优于bagging;
(3)与bagging相比,bagging中基学习器的多样性仅来自于样本扰动(对初始训练集采样),RF的多样性不仅来源于样本扰动,还有属性扰动
(4)能用于高维数据,且不用做特征选择;
(5)对于不平衡数据,RF可以平衡误差
(6)可处理部分缺失数据
(7)有一定的抗过拟合能力
(8)可输出特征重要性
缺点:
(1)对小数据或低维数据,效果不太好
(2)当噪声较大时,容易发生过拟合。

集中趋势和离中趋势

集中趋势指的是一组数据向某中心靠拢的倾向,测度集中趋势即寻找数据的一般水平的代表值或中心值。集中趋势的度量也称为中心或中心位置的度量。
众数:==较少受极端值的影响;==不稳定,受分组和样本变动影响;不能做进一步的代数运算
应用:快速、粗略的寻求一组数据的代表值;次数分布中有极端值时,有时用众数;粗略估计次数分布的形态,一般用平均数和众数的差值,当作分布是否偏态的指标;
**中位数:**计算简单,容易理解;大小不受制于全体数据,极端值不影响中位数;受抽样影响大,不如平均数稳定;不能进一步做代数运算;
应用:当一组观察数据中出现两个极端值时,不能随意舍去极端数值,只能用中数作为代表值;当次数分布的两端数据或个别数据不清楚时,只能用中位数作为集中趋势的代表值;
**平均数:**反应灵敏,计算严密,计算简单,可进行代数运算,较少受抽样变动的影响;
缺点:容易受极端数值的影响;若出现模糊不清的数据时,无法计算算术平均;
在正态分布中,三者在数轴上完全重合;
右偏(正偏):平均数>中位数(正中间的那个数)>众数(最高点为众数)
数据分析笔试记录--广联达_第8张图片
左偏(负偏态):平均数<中位数<众数
数据分析笔试记录--广联达_第9张图片
离中趋势指的是一组数据中各数据以不同程度的距离偏离中心(均值)的趋势,又称为标志变动度。
描述指标主要有:全距、四分差、平均差、方差、标准差等
全距(极差):最大值与最小值之差
优点:计算简便;缺点:未考虑中间变量值的变动情况
分位差:是一组数据中剔除了一部分极端值之后重新计算类似于极差的指标。常用的有四分位差、八分位差、十分位差
四分位差= (第三个四分位数-第一个四分位数)/2
平均差:是数据组中各数据值与其算术平均值的离差绝对值的算数平均数
优点:平均差受极端值影响较小;缺点:数字处理方法不够理想
方差是指数组中各数值与其算数平均值离差平方和的算数平均数
标准差方差的平方根;方差和标准差的主要区别是量纲的不同,标准差的量纲与随机变量、数学期望有相同的量纲。
**标准差系数(离散系数/变异系数)**标准差与其算数平均的比值,是以其数学期望为单位去度量随机变量取值波动程度的特征数。因为标准差的量纲和均值的量纲一样,所以变异系数是一个无量纲的量,消除了两个对波动的影响。
离散系数通常可以进行多个总体的对比,通过离散系数的比较,可以说明不同总体平均指标(一般为均值)的代表性或稳定性大小。一般来说,离散系数越小,说明平均指标的代表性越好。

聚类性能度量

聚类的性能度量亦称为聚类的‘有效性指标’。聚类的目标:簇内相似度尽可能高,簇间相似度尽可能低。
聚类性能度量大致分为两类:
1.将聚类结果与某个参考模型相比较,称为”外部指标”
2.直接考察聚类结果而不利用任何模型,称为“内部指标”
对数据集D={ x 1 , x 2 , . . . , x m x_1,x_2,...,x_m x1,x2,...,xm},假定通过聚类给出的簇划分为 C = C 1 , C 2 , . . . , C k C={C_1,C_2,...,C_k} C=C1,C2,...,Ck,参考模型给出的簇划分为 C ∗ = C 1 ∗ , C 2 ∗ , . . . , C m ∗ C^*={C^*_1,C^*_2,...,C^*_m} C=C1,C2,...,Cm,定义
a:在C中隶属于相同簇且在 C ∗ C^* C中隶属于相同簇的样本对数;
b:在C中隶属于相同簇且在 C ∗ C^* C中不隶属于相同簇的样本对数;
c.:在C中不隶属于相同簇且在 C ∗ C^* C中隶属于相同簇的样本对数;
d:在C中不隶属于相同簇且在 C ∗ C^* C中不隶属于相同簇的样本对数;
常用的聚类性能“外部指标”:
(1).Jaccard系数(JC):
J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca
(2)FM指数(简称FMI):
a a + b + a a + c \sqrt{\frac{a}{a+b}+\frac{a}{a+c}} a+ba+a+ca
(3)Rand指数(简称RI):
R I = 2 ( a + d ) m ( m + 1 ) RI=\frac{2(a+d)}{m(m+1)} RI=m(m+1)2(a+d)
上述性能指标值越大越好;
还有:
DB指数,DI指数等
距离
有序属性:可用闵可夫斯基距离
无序属性:VDM距离
令: m u , a m_{u,a} mu,a表示在属性u上取值为a的样本数, m u , a , i m_{u,a,i} mu,a,i表示第i个样本簇在属性为u上取值为a的样本数,k为样本簇数,则属性a,b之间的VDM距离为:
V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ p VDM_{p}(a,b)=\begin{matrix} \sum_{i=1}^k \begin{vmatrix} \frac{m_{u,a,i}}{m_{u,a}} -\frac{m_{u,b,i}}{m_{u,b}}\end{vmatrix}\end{matrix}^p VDMp(a,b)=i=1kmu,amu,a,imu,bmu,b,ip
混合属性:闵可夫斯基距离和VDM距离结合
原型聚类
亦称基于原型的聚类,此类聚类算法假设聚类结构能够通过一组原型刻画(原型:样本空间中具有代表性的点)
kmeans聚类
一种原型聚类算法,k均值算法针对聚类所得的簇划分 C = C 1 , C 2 , . . . , C k C={C_1,C_2,...,C_k} C=C1,C2,...,Ck最小化平方误差:
E = ∑ i = 1 k ∑ x ∈ C i ∥ x − u i ∥ 2 E=\sum_{i=1}^k\sum_{x\in C_i} \begin{Vmatrix} x-u_i \end{Vmatrix}^2 E=i=1kxCixui2
其中 u i u_i ui是簇 C i C_i Ci的均值向量。描述了簇内样本围绕均值向量的紧密程度,E越小,簇内样本相似度越高。
上述问题的求解是NP难问题,kmeans算法采用贪心策略,通过迭代优化来近似求解上式。
算法过程:
1.从样本集D中随机选择k个样本作为初始均值向量;
2.计算每个样本到均值向量的距离,将其划入其最近的那个均值向量一类;
3.重新计算均值向量
4.重复2-3,直到均值向量不在更新
其中所用到的距离度量为欧式距离;
数据分析笔试记录--广联达_第10张图片
优点: 计算简单,速度快
缺点: 需要预先知道簇的个数
学习向量量化(LVQ)
一种原型聚类算法,但是该算法假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类(可看作通过聚类来形成类别’子类‘结构,每个子类对应于一个聚类簇)
算法步骤:
1.确定原型向量个数q,各原型向量的类别标记为 t 1 , t 2 , . . . , t q {t_1,t_2,...,t_q} t1,t2,...,tq,学习率 η ∈ ( 0 , 1 ) η\in (0,1) η(0,1)
2.初始化原型向量,例如对第q个类别标记为 t q t_q tq的样本中随机选择一个作为原型向量;
3.随机选取一个有标记训练样本,找出与其最近的训练样本,并根据两者的标记是否相同来更新原型向量(原理:若与最近的原型向量的标记相同,则更新后的原型向量向其靠拢,若不同,则更新后的原型向量远离其);
4.重复步骤3,直到满足停止条件(例如已达到最大迭代次数、原型向量不再更新或更新很小);
学得原型向量之后,就可以对簇进行划分,对于任意样本,它将被划分入与其距离最近的原型向量所代表的簇中;
学习原型向量的原理:使得原型向量离其标记相同的样本尽可能的近,不同的尽可能的远
高斯混合聚类
k均值,LVQ利用原型向量来刻画聚类结构的不同,而高斯混合聚类是利用概率模型(高斯分布)来表达聚类原型。簇的划分由原型对应的后验概率确定。
高斯混合模型模型的EM算法:先根据当前参数来计算每个样本属于每个高斯分布的后验概率(E步),再更新模型参数(M步)
算法步骤:
1.初始化高斯混合分布的模型参数;
2.根据初始化的高斯混合分布分别计算每个样本属于每个高斯分布的后验概率;
3.更新高斯混合分布的参数;
4.重复2-3,直到:达到最大迭代轮数或似然函数增长很少或不再增长;
5.根据上面确定的高斯混合分布,确定簇划分;
使用高斯混合模型的首要假设是数据点符合高斯分布;相应于kmeans假设数据点是呈圆形的,高斯混合模型假设数据点是呈椭圆形的,给出了更多簇的可能性;
优点: 高斯混合模型使用了均值和标准差,可以使簇呈椭圆形而不仅仅限制为圆形,kmeans是高斯混合模型的特殊情况,是在方差在所有维度上接近于0的情况,此种情况,簇呈圆形;高斯混合模型使用概率,可以使一个数据点属于多个簇。如点x有80%的概率属于一个簇,20%的概率属于另一个簇
密度聚类
亦称“基于密度聚类”,此类算法假设聚类结构能够通过样本分布的紧密程度确定;
通常密度聚类算法是从样本密度的角度来考虑样本之间的连接性,并基于可连接样本不断扩大聚类簇以获得最终的结果。
DBSCAN:一种典型的基于密度的聚类算法。它是基于一组领域参数来刻画样本分布的紧密程度。DBSCAN中将簇定义为:由密度可达关系导出的最大的密度相连的样本集合。即是满足连接性和最大性的非空样本集合。实际上,若x为核心对象,则由其密度可达的样本组成的集合就满足连接性和最大性。
算法步骤:
1.确定每个样本的 ϵ \epsilon ϵ领域;
2.找出所有的核心对象;
3.寻找每一个核心对象的密度可达样本生成的簇,直到所有的核心对象均被访问;
优点: 不需要知道簇的个数
缺点: 需要给出半径和最少具有的点数
层次聚类
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的策略,也可以采用“自顶向下”的策略。
ACNES是一种采用自底向上聚合策略的层次聚类算法。先将数据集中的每一个样本看作一个初始的聚类簇,然后在算法运行的每一步中,找出距离最近的两个簇进行合并,不断重复该过程,直到达到预设的聚类簇个数。簇间距离有以下几种计算方式:最小距离(两个簇的最近样本间的距离),最大距离(两个簇的最远的两个样本间的距离),平均距离(两个簇所有样本间距离的平均),利用这三种距离的相应AGNES算法被称为’单链接‘,’全链接‘,’均链接’。
优点 :不需要预先知道簇的个数;对距离的选择不敏感
缺点 :效率低

你可能感兴趣的:(数据分析)