数据挖掘是从大量数据中挖掘出有趣模式和知识的过程或方法,其中涉及机器学习、统计数据和数据库系统交叉处的方法。
商务智能、Web搜索、生物信息学、卫生保健信息学、金融、数字图书馆和数字政府等。
P ( ∣ v − μ ∣ > ϵ ) ≤ 2 e − 2 ϵ 2 N P(| v- \mu | > \epsilon) \leq 2 e^{-2 \epsilon^2 N} P(∣v−μ∣>ϵ)≤2e−2ϵ2N
霍夫丁不等式说明,抽样比例 v v v与总体比例 μ \mu μ的差距大于某个边距值 ϵ \epsilon ϵ的概率,小于等于一个由 ϵ \epsilon ϵ和样本大小 N N N得到的关系式的值。
在统计学中我们通过霍夫丁不等式来限定抽样集与总体集中的频率与概率关系。通过将其推广到机器学习中,可以得到类似的单个hypothesis的 E i n E_{in} Ein与 E o u t E_{out} Eout差距限定不等式。然而当考虑到一组hypothesis数量多的假设集时,即使对单个hypothesis遇到bad data使其 E i n E_{in} Ein与 E o u t E_{out} Eout差别比较大的概率十分低,但总体而言其中有一个或几个hypothesis遇到bad data使其 E i n E_{in} Ein与 E o u t E_{out} Eout差别较大。我们将假设集中假设的数量 M M M通过union bound引入不等式中,最终得到 P D ( B A D D ) ≤ 2 M e − 2 ϵ 2 N P_D(BAD D) \leq 2M e^{-2 \epsilon^2 N} PD(BADD)≤2Me−2ϵ2N。在有限的假设数量时,只要样本数量 N N N足够,我们依然能让这组data保证取到的hypothesis的 E i n E_{in} Ein与 E o u t E_{out} Eout差距不大,从而可以挑选 E i n E_{in} Ein最小的hypothesis,也即 E o u t E_{out} Eout最小的hypothesis,作为结果。
属性类型 | 描述 | 操作 | 举例 |
---|---|---|---|
标称属性(nominal) | 仅仅是不同的名字,用于区分属性( = , ≠ =, \neq =,=) | 众数,熵,列联相关, χ 2 \chi^2 χ2检验 | 邮政编码,员工ID,性别 |
序数属性(ordinal) | 序数属性的值可以确定对象的序( < , > <, > <,>) | 中值,百分位 | 矿石硬度(好,较好,最好) |
区间属性(interval) | 值之间的差是有意义的( + , − +, - +,−) | 均值,标准差,皮尔逊相关 | 日历日期,摄氏温度 |
比率属性(ratio) | 差和比率都有意义( × , ÷ \times, \div ×,÷) | 几何平均,调和平均,百分比变差 | 质量,长度,绝对温度 |
标称属性和序数属性统称为分类的或定性的属性,区间属性和比率属性统称为定量的或数值属性。
属性只有两个类别或状态,用0和1编码。如果他的两种状态具有同等的价值并且有相同的权重,则称为对称的二元属性,比如男女性别。如果其状态的结果不是同样重要的,其中更关注1编码的结果(通常是稀疏的),称其为非对称的二元属性,比如covid-19核酸检测的阴阳性结果。
欧几里得距离 d = Σ k = 1 n ( p k − q k ) 2 d=\sqrt {\Sigma_{k=1}^{n}(p_k-q_k)^2} d=Σk=1n(pk−qk)2。
闵可夫斯基距离 d = ⟮ Σ k = 1 n ∣ ( p k − q k ) ∣ r ⟯ 1 r d=\lgroup \Sigma_{k=1}^{n}|(p_k-q_k)|^r\rgroup^{\frac{1}{r}} d=⟮Σk=1n∣(pk−qk)∣r⟯r1是欧氏距离的推广。当 r = 1 r=1 r=1时,称为曼哈顿距离( L 1 L_1 L1范数);当 r = 2 r=2 r=2时,称为欧几里得距离( L 2 L_2 L2范数);当 r = ∞ r=\infty r=∞时,称为切比雪夫距离(上确界距离, L m a x L_{max} Lmax范数, L ∞ L_\infty L∞范数),它是对象属性间的最大距离。
马氏距离 d m ( x ) = ( x − μ ) Σ − 1 ( x − μ ) T d_m(x) = \sqrt{(x-\mu) \Sigma^{-1} (x-\mu)^T} dm(x)=(x−μ)Σ−1(x−μ)T,其中 x x x是一个均值为 μ \mu μ的协方差矩阵为 Σ \Sigma Σ的多变量矢量。对两个服从统一分布并且协方差矩阵为 Σ \Sigma Σ的变量(样本) p p p和 q q q来说,其差异程度可以由马氏距离表示为 d m ( p , q ) = ( p − q ) Σ − 1 ( p − q ) T d_m(p,q)= \sqrt{(p-q) \Sigma^{-1} (p-q)^T} dm(p,q)=(p−q)Σ−1(p−q)T。马氏距离排除了变量之间的相关性的干扰,且尺度无关(不受量纲影响)。
简单匹配系数(SMC): S M C = f 11 + f 00 f 00 + f 10 + f 01 + f 11 SMC = \frac{f_{11}+f_{00}}{f_{00}+f_{10}+f_{01}+f_{11}} SMC=f00+f10+f01+f11f11+f00
Jaccard系数: J = f 11 f 10 + f 01 + f 11 J = \frac{f_{11}}{f_{10}+f_{01}+f_{11}} J=f10+f01+f11f11
广义Jaccard系数(Tinamoto系数): E J ( p , q ) = p ⋅ q ∥ p ∥ 2 + ∥ q ∥ 2 − p ⋅ q EJ(p,q) = \frac{p \cdot q}{\parallel p \parallel ^2 + \parallel q \parallel ^2 - p \cdot q} EJ(p,q)=∥p∥2+∥q∥2−p⋅qp⋅q
余弦相似度: c o s ( x , y ) = x ⋅ y ∥ x ∥ × ∥ y ∥ cos(x,y) = \frac{x \cdot y}{\parallel x \parallel \times \parallel y \parallel} cos(x,y)=∥x∥×∥y∥x⋅y
相关系数: r ( X , Y ) = Cov ( X , Y ) Var [ X ] Var [ Y ] r(X, Y)=\frac{\operatorname{Cov}(X, Y)}{\sqrt{\operatorname{Var}[X] \operatorname{Var}[Y]}} r(X,Y)=Var[X]Var[Y]Cov(X,Y)或 r ( X , Y ) = Cov ( X , Y ) σ X σ Y r(X, Y)=\frac{\operatorname{Cov}(X, Y)}{{\sigma_X \sigma_Y}} r(X,Y)=σXσYCov(X,Y)。
在第 k k k个属性上,计算相似度 s k ( p , q ) s_k(p,q) sk(p,q),在区间 [ 0 , 1 ] [0,1] [0,1]中。
对于第 k k k个属性,定义一个指示变量 δ k \delta_k δk,如果第 k k k个属性是非对称属性,并且两个对象在该属性的值都是0,或者如果有一个对象的第 k k k个属性具有缺失值,则 δ k = 0 \delta_k = 0 δk=0,否则 δ k = 1 \delta_k = 1 δk=1。
总相似度为 s i m i l a r i t y ( p , q ) = Σ k = 1 n δ k s k ( p , q ) Σ k = 1 n δ k similarity(p,q) = \frac{\Sigma_{k=1}^{n}\delta_k s_k (p,q)}{\Sigma_{k=1}^{n}\delta_k} similarity(p,q)=Σk=1nδkΣk=1nδksk(p,q)。
当某些属性更重要时,可以使用不同权值对不同属性的相似度进行加权,则上式变为 s i m i l a r i t y ( p , q ) = Σ k = 1 n w k δ k s k ( p , q ) Σ k = 1 n δ k similarity(p,q) = \frac{\Sigma_{k=1}^{n} w_k \delta_k s_k (p,q)}{\Sigma_{k=1}^{n}\delta_k} similarity(p,q)=Σk=1nδkΣk=1nwkδksk(p,q)。
主要任务:数据清理(data cleaning)、数据集成(data integration)、数据规约(data reduction)、数据变换(data transformation)、数据离散化(data discretization)。
分箱(binning)
回归(regression)
聚类(cluster)
曲线拟合
给定模型上的假设检验
数据集成将多个数据源的数据合并,存放在一个一致的数据存储中,如数据仓库中。
数据分析者或计算机如何才能确信一个数据库中的某个属性与另一个数据库中的某个属性指的是相同的属性。
一个属性如果可以由另一个或另一组属性导出,则这个属性可能就是冗余的。有些冗余可以被相关分析检测到。对于分类的属性,使用 χ 2 \chi ^2 χ2(卡方)检验。对于数值属性(numerical),使用相关系数和协方差。
χ 2 检 验 \chi ^2检验 χ2检验
协方差
相关系数(皮尔森相关系数)
数据归约可以得到数据集的简约表示,它小得多,在规约后的数据集上挖掘将产生相同或几近相同的分析结果。
可以使用的策略:数据聚合(data aggregation)、数据压缩(data compression)、数量规约(numerosity reduction)、维归约(dimensionality reduction)、离散化和概念层次生成(Discretization and concept hierarchy generation)等。
把两个或者多个属性组合成单个属性。
使用变换得到原数据的规约表示或压缩表示。如果原数据可以从压缩后的数据中重构而不损失信息则称该数据归约是无损的,如果只能近似的重构原数据,则该数据归约称为有损的。
用替代的、较小的数据表示替换原数据,分为参数化方法和非参数化方法。参数方法使用模型估计数据,因此只需要存放模型参数(离群点可能也需要存放),回归模型就是一个例子。非参数化方法包括直方图(histograms)、聚类(clustering)、抽样(sampling)等。
特征选择的方法:
过滤法(Filters):
优点
缺点
包裹法(Wrappers):
优点
缺点
五种不同的特征选择方法:
顺序前向选择(SFS)
顺序后向选择(SBS)
双向搜索
顺序浮动前向选择
顺序浮动后向选择
数据变换策略包括:光滑(smoothing)、属性构造、聚集、规范化、离散化等。数据预处理任务之间存在着重叠,因此这一部分只讨论规范化和离散化。
规范化可以避免对度量单位选择的依赖性。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性和具有较小初始值域的属性相比权重过大。
最小-最大规范化
z − s c o r e z-score z−score规范化
小数定标规范化
对数值数据进行离散化,根据不同的标准可以划分为监督的和非监督的、自顶向下的和自底向上的(分裂的和合并的)。
常用的方法有:
决策树是一个树结构,其每一个非叶节点表示一个属性上的测试,每个分支代表该测试的一个输出,每个叶节点存放一个类别。决策树学习的基本思想是对所有的属性进行评估,选择一个最好的属性作为树的根节点,然后为该属性的每个可能值创建划分节点,并将数据集按取值划分到不同的节点上,然后用与每个子结点相关联的训练实例重复整个过程,以选择树中该点处要测试的最佳属性。
为了决定一个最佳划分,需要对节点进行不纯性度量,理想的情况是每个分区应当是纯的(落在一个给定分区的所有元组都属于相同的类)。
不纯性度量包括基尼(Gini Index)指数、熵(Entropy)和分类错误率(Misclassification error)等。
基尼指数
熵
分类错误率
过拟合
欠拟合
简记Actual Class为AC,Predicted Class为PC
准确率: A c c u r a c y = T P + T N T P + F N + F P + T N Accuracy = \frac{TP+TN}{TP+FN+FP+TN} Accuracy=TP+FN+FP+TNTP+TN
精确率: P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
召回率: R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
F 1 F_1 F1分数: F 1 = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l F_1 = 2 \times \frac{Precision \times Recall}{Precision + Recall} F1=2×Precision+RecallPrecision×Recall
ROC曲线,横坐标为假阳率 F P R = F P N FPR = \frac{FP}{N} FPR=NFP,纵坐标为真阳率 T P R = T P P TPR = \frac{TP}{P} TPR=PTP。AUC面积是ROC曲线下的面积,ROC曲线一般位于 y = x y=x y=x之上,所以AUC取值一般在 0.5 ∼ 1 0.5 \sim 1 0.5∼1之间,值越大说明模型的性能越好。
神经网络通过调整权值进行学习,从而能够正确的对训练数据进行分类,然后在测试阶段对未知数据进行分类。
特点:
批量梯度下降(BGD):在每一次迭代时计算完所有的样本后进行梯度的更新。
随机梯度下降(SGD):在每一次迭代时每计算完一个样本后都进行梯度的更新。
逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,网络学习结束。
P ( h ∣ D ) = P ( D ∣ h ) P ( h ) P ( D ) P(h|D) = \frac{P(D|h)P(h)}{P(D)} P(h∣D)=P(D)P(D∣h)P(h)
极大后验假设(MAP)
极大似然假设(ML)
为随机传送的消息设计一个编码,其中遇到消息 i i i的概率为 p i p_i pi,为了传输随机消息所需的传送位数最小,需要为可能性较大的消息赋予较短的编码。用最小描述长度解释极大后验假设就是使假设描述长度和给定假设下数据描述长度之和最小化的假设。 h m a x = arg min h ∈ H L C H ( h ) + L C D ∣ h ( h ) h_{max} = \underset{h \in H}{\arg \min } L_{C_H}(h) + L_{C_{D \mid h}}(h) hmax=h∈HargminLCH(h)+LCD∣h(h),其中 C H C_H CH和 C D ∣ h C_{D \mid h} CD∣h是 H H H的最优编码和给定 h h h时 D D D的最优编码。
新实例的最可能分类可通过合并所有假设的预测得到,用后验概率加权。如果新实例的可能分类可取集合 V V V中的任一值 v j v_j vj,那么概率 P ( v j ∣ D ) P(v_j \mid D) P(vj∣D)表示新实例的正确分类为 v j v_j vj的概率: P ( v j ∣ D ) = Σ h i ∈ H P ( v j ∣ h i ) P ( h i ∣ D ) P(v_j \mid D) = \Sigma_{h_i \in H} P(v_j \mid h_i)P(h_i \mid D) P(vj∣D)=Σhi∈HP(vj∣hi)P(hi∣D)。新实例的最优分类为使 P ( v j ∣ D ) P(v_j \mid D) P(vj∣D)最大的 v j v_j vj值,即 arg max v j ∈ V Σ h i ∈ H P ( v j ∣ h i ) P ( h i ∣ D ) \underset{v_j \in V}{\arg \max } \Sigma_{h_i \in H} P(v_j \mid h_i)P(h_i \mid D) vj∈VargmaxΣhi∈HP(vj∣hi)P(hi∣D)。
贝叶斯最优分类器开销很大,需要计算每个假设的后验概率,一个可替代的、非最优的方法是Gibbs算法:按照当前的后验概率分布使用一随机抽取的假设。Gibbs算法的误分类率的期望值最多为贝叶斯最优分类器的两倍。
贝叶斯方法的新实例的分类目标是在给定描述实例的属性值 < a 1 , a 2 , . . . , a n >
朴素贝叶斯方法就是假设给定目标值时属性值之间相互条件独立,即 P ( a 1 , a 2 , . . . , a n ∣ v j ) = ∏ i = 1 n P ( a i ∣ v j ) P(a_1,a_2,...,a_n \mid v_j) = \prod_{i=1}^n P(a_i \mid v_j) P(a1,a2,...,an∣vj)=∏i=1nP(ai∣vj)。朴素贝叶斯使用的方法即为 v N B = arg max v j ∈ V ∏ i = 1 n P ( a i ∣ v j ) P ( v j ) v_{NB} = \underset{v_j \in V}{\arg \max } \prod_{i=1}^n P(a_i \mid v_j) P(v_j) vNB=vj∈Vargmax∏i=1nP(ai∣vj)P(vj)。
假定所有的实例对应于n维空间 R n R^n Rn中的点,一个实例的最近邻是根据标准欧式距离定义的。在最近邻学习中,目标函数值可以是离散值也可以是实值。
训练算法:
分类算法:
其中,如果a=b,那么 δ ( a , b ) = 1 \delta(a,b) = 1 δ(a,b)=1,否则 δ ( a , b ) = 0 \delta(a,b) = 0 δ(a,b)=0。在实值目标函数中将公式变为 f ^ ( x q ) ← Σ i = 1 k f ( x i ) k \hat{f}(x_q) \leftarrow \frac{\Sigma_{i=1}^{k} f(x_i)}{k} f^(xq)←kΣi=1kf(xi)。
距离加权最近邻算法:将较大的权值赋给较近的近邻。
如果各个维度的量纲差距很大,那么在计算距离时模长大的维度会支配模长小的维度,造成距离失去意义。
给定一个新的查询实例 x q x_q xq,局部加权回归的一般做法是建立一个逼近 f ^ \hat{f} f^,使 f ^ \hat{f} f^拟合环绕 x q x_q xq的邻域内的训练样例。然后用这个逼近来计算 f ^ ( x q ) \hat{f} (x_q) f^(xq)的值,也就是为查询实例估计的目标值输出。
同:
异:
懒惰(消极)学习:延迟了如何从训练数据中泛化的决策,直到遇到一个新的查询实例时才进行泛化。懒惰学习可以通过很多局部逼近的组合表示目标函数(局部逼近或全局逼近)。懒惰学习在训练时需要较少的计算,但在预测新查询的目标值时需要较多的计算时间。
积极学习:在见到新的查询之前就做好了泛化的工作。积极学习必须在训练时提交单个的全局逼近(必须全局逼近)。积极学习在训练时需要较多的时间,在预测新查询的目标值时需要较少的时间。
集成学习是指将许多弱学习器组合起来以获得一个强学习器的技术。
同质(homogeneous)集成:所有的个体学习器都是同一个种类的。
异质(heterogeneous)集成:所有的个体学习器不全是一个种类的。
Stacking算法分为两层,第一层是用不同的算法(因此Stacking一般是异质集成)形成多个弱分类器,然后将其输出用于训练第二层的元分类器,使用元分类器对第一层分类器进行组合。
伪代码
Input:
DataSet D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} D=(x1,y1),(x2,y2),...,(xm,ym)
First-level learning algorithm L 1 , L 2 , . . . , L T L_1, L_2,...,L_T L1,L2,...,LT
second-level learning algorithm L L L
Process:
for t = 1 , . . . , T t = 1,...,T t=1,...,T:
h t = L t ( D ) h_t = L_t(D) ht=Lt(D) %在数据集D上使用不同的学习算法训练第一层的分类器
end;
D ′ = ∅ D \prime = \emptyset D′=∅ %创建一个新的数据集用来训练元分类器
for i = 1 , . . . , m i=1,...,m i=1,...,m:
for t = 1 , . . . , T t = 1,...,T t=1,...,T:
z i t = h t ( x i ) z_{it}=h_t(x_i) zit=ht(xi) %用 h t h_t ht对实例 x i x_i xi进行分类
end;
D ′ = D ′ ⋃ { ( ( z i 1 , z i 2 , . . . , z i t ) , y i ) } D \prime = D \prime \bigcup \lbrace ((z_{i1},z_{i2},...,z_{it}),y_i) \rbrace D′=D′⋃{((zi1,zi2,...,zit),yi)}
end;
h ′ = L ( D ′ ) h \prime = L(D \prime) h′=L(D′) %在数据集 D ′ D \prime D′上使用算法 L L L训练元分类器 h ′ h \prime h′
Output:
H ( x ) = h ′ ( h 1 ( x ) , h 2 ( x ) , . . . , h T ( x ) ) H(x) = h \prime (h_1(x), h_2(x), ..., h_T(x)) H(x)=h′(h1(x),h2(x),...,hT(x))
对训练样本随机抽样,让基学习器在不同的训练集进行训练而得到不同的弱分类器,最后通过投票的方式或平均的方式进行集成。(同质集成)
伪代码
Getting L L L samples by bootstrap sampling
From whice we derive:
L L L classifiers ∈ { − 1 , 1 } : c 1 , c 2 , . . . , c L \in \lbrace -1, 1 \rbrace:c^1,c^2,...,c^L ∈{−1,1}:c1,c2,...,cL or
L L L Estimated probabilites ∈ [ − 1 , 1 ] : p 1 , p 2 , . . . , p L \in \lbrack -1, 1 \rbrack:p^1,p^2,...,p^L ∈[−1,1]:p1,p2,...,pL
The aggregate classifier becomes
c b a g = s i g n ( 1 L Σ b = 1 L c b ( x ) ) c_{bag} = sign(\frac{1}{L} \Sigma_{b=1}^L c^b(x)) cbag=sign(L1Σb=1Lcb(x)) or c b a g = 1 L Σ b = 1 L p b ( x ) c_{bag} = \frac{1}{L} \Sigma_{b=1}^L p^b(x) cbag=L1Σb=1Lpb(x)
首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2,如此重复进行,直到弱学习器数达到事先指定的数目T。对于训练好的弱分类器,如果是分类任务按照权重进行投票,而对于回归任务进行加权,得到最终的强学习器。(同质集成)
伪代码
Input:
Instance distribution D D D
Base learning algorithm L L L
Number of learning round T T T
Process:
D 1 = D D_1 = D D1=D %初始化分布
for t = 1 , 2 , . . . , T t=1,2,...,T t=1,2,...,T
h t = L ( D t ) h_t=L(D_t) ht=L(Dt) %在分布 D t D_t Dt上训练弱分类器 h t h_t ht
ϵ t = Pr x ∼ D t , y I [ h t ( x ) ≠ y ] \epsilon_{t}=\operatorname{Pr}_{x \sim D_{t}, y} I\left[h_{t}(x) \neq y\right] ϵt=Prx∼Dt,yI[ht(x)=y] %计算 h t h_t ht的错误
D t + 1 = A d j u s t _ D i s t r i b u t i o n ( D t , ϵ t ) D_{t+1}=Adjust \_ Distribution\left(D_{t}, \epsilon_{t}\right) Dt+1=Adjust_Distribution(Dt,ϵt) %调整分布,对分类错误的数据加大权重
end;
Output:
H ( x ) = C o m b i n e _ O u t p u t s ( { h t ( x ) } ) H(x)= Combine \_ Outputs \left(\left\{h_{t}(x)\right\}\right) H(x)=Combine_Outputs({ht(x)})
统计上:当假设空间对于可用数据量来说太大时,数据上有许多相同精度的假设,学习算法只能够选择其中一个,这样有可能导致所选假设在未见数据上的准确性很差,把多个可能假设集合起来可以降低这种风险。
计算上:许多学习算法是通过执行某种形式的局部搜索来工作的,这些搜索可能会陷入局部最优。通过从多个不同的起始点运行局部搜索构造的集成比任何单个分类器都能更好的逼近真实的目标函数。
表示上:在大多数机器学习的应用场合中实际目标假设并不在假设空间之中,如果假设空间在某种集成运算下不封闭,那么我们通过把假设空间中的一系列假设集成起来就有可能表示出不在假设空间中的目标假设。
基于规则的分类器是使用一组“if…then…”规则来对记录进行分类的技术。规则的左边称为规则前件或前提,规则右边称为规则后件。一般用覆盖率(coverage)和准确率(accuracy)度量规则的质量。
像决策树一样具有高度的表达能力;易于解释,易于生成;可以快速分类新实例,性能可与决策树相媲美。
一个记录可能触发多条规则(不满足互斥规则)
一条记录可能不会触发任何规则(不满足穷举规则)
规则的建立可以使用直接方法和间接方法。直接方法直接从数据中提取分类规则,如RIPPER,CN2;间接方法从其他分类模型(如决策树和神经网络)中提取分类规则,如C4.5rules。
直接从数据中提取规则,规则基于某种评估度量以贪心的方式增长。该算法从包含多个类的数据集中一次提取一个类的规则。
算法开始时决策表(规则集)为空,接下来用Learn-One-Rule函数提取类C的覆盖当前训练记录集的最佳规则。如果一个规则覆盖大多数的类C训练记录,没有或仅覆盖极少的其他类训练记录(这样的规则具有高准确率,不必是高覆盖率的,因为每个类可以有多个规则),那么该规则是可取的。一旦找到这样的规则,就删掉它所覆盖的训练记录,并把新规则追加到决策表中。重复这个过程,直至满足终止条件。
聚类分析,简称聚类,是一个把数据对象划分成子集的过程。每个子集是一个簇,使得簇中的对象彼此相似,但与其他簇中的对象不相似。(非监督的)
层次的与划分的
互斥的、重叠的与模糊的
完全的与部分的
单链(MIN):两个簇的邻近度定义为两个不同簇中任意两点之间的最短距离(最大相似度)。
全链(MAX):两个簇的邻近度定义为两个不同簇中任意两点之间的最长距离(最小相似度)。
组平均:两个簇的邻近度定义为不同簇的所有点对邻近度的平均值。
Ward方法:两个簇合并时导致的平方误差的增量。
单链擅长处理非椭圆形的簇,但对噪声和离群点很敏感。全链对噪声和离群点不太敏感,但是它可能使大的簇破裂,并偏好球形。
首先,选择k个初始质心,其中k是用户指定的参数,即所期望的簇的个数。每个点指派到最近的质心,而指派到一个质心的点集为一个簇。然后,根据指派到簇的点,更新每个簇的质心。重复指派和更新步骤,直到质心不再发生变化。
选择k个点作为初始质心
repeat
将每个点指派到最近的质心,形成k个簇
重新计算每个簇的质心
until
质心不再发生变化
考虑邻近度度量为欧几里得距离的数据,使用误差的平方和(SSE)作为度量聚类质量的目标函数。假设簇划分为 C 1 , C 2 , . . . , C k C_1,C_2,...,C_k C1,C2,...,Ck,则目标函数为 S S E = ∑ i = 1 k ∑ x ∈ C i d i s t 2 ( c i , x ) SSE=\sum_{i=1}^{k} \sum_{x \in C_{i}} d i s t^{2}\left(c_{i}, x\right) SSE=∑i=1k∑x∈Cidist2(ci,x),其中 c i c_i ci表示第 i i i个簇的质心(均值),计算公式为 c i = 1 m i ∑ x ∈ C i x c_i=\frac{1}{m_i} \sum_{x \in C_i} x ci=mi1∑x∈Cix,例如3个二维点 ( 1 , 1 ) , ( 2 , 3 ) , ( 6 , 2 ) (1,1),(2,3),(6,2) (1,1),(2,3),(6,2)的质心是 ( ( 1 + 2 + 6 ) / 3 , ( 1 + 3 + 2 ) / 3 ) = ( 3 , 2 ) ((1+2+6)/3, (1+3+2)/3)=(3,2) ((1+2+6)/3,(1+3+2)/3)=(3,2)。公式中 x x x是一个点, C i C_i Ci是第 i i i个簇, c i c_i ci是簇 C i C_i Ci的质心, m i m_i mi是第 i i i个簇中点的个数。
k-means算法的结果依赖于初始簇中心的随机选择,实践中为了得到好的结果,通常以不同的初始簇中心多次运行k-means算法,然后选取具有最小SSE的簇集。
用后处理降低SSE:
总SSE只不过是每个簇SSE的和,通过在簇上进行诸如分裂和合并的操作,可以改变总SSE。
通过增加簇的个数来降低总SSE的策略
通过减少簇的个数来降低总SSE的策略
k-means算法的缺点:
k-means算法的改进,降低它对离群点的敏感性。不采用簇中对象的均值作为参照点,而是挑选实际对象来代表簇,每个簇使用一个代表对象,其余的每个对象被分配到与其最为相似的代表性对象所在的簇中。
该算法的一个实现是围绕中心点(PAM)算法。随机选择代表对象,然后考虑用一个非代表对象替换一个代表对象是否能够提高聚类质量。尝试所有可能的替换,直到结果聚类的质量不可能被任何替换提高。
DBSCAN is a Density Based Spatial Clustering of Applications with Noise.具有噪声应用的基于密度的空间聚类。
根据基于中心的密度进行点分类:
repeat:
从数据库中抽出一个未处理的点;
IF 抽出的点是核心点 THEN 找出所有从该点 密度可达 的对象,形成一个簇;
ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一个点;
UNTIL 所有的点都被处理。
优点:
缺点:
用于评估簇的各方面的评估度量或指标一般分成如下三类:
关联规则挖掘任务分解为两个主要的子任务:频繁项集的产生和规则的产生。
项集:设 I = { i 1 , i 2 , . . . , i d } I=\lbrace i_1, i_2, ... , i_d \rbrace I={i1,i2,...,id}是所有项的集合,在关联分析中,包含一个或多个项的集合被称为项集。如果一个项集包含 k k k个项,则称它为 k − k- k−项集。
频繁项集:支持度大于等于最小支持度阈值的项集。
关联规则:形如 X → Y X \rightarrow Y X→Y的蕴含表达式,其中 X X X和 Y Y Y是不相交的项集。
支持度计数( σ \sigma σ):包含特定项集的事务个数。
支持度(s):关联规则包含的项集出现的次数在总事务数中的比例。 s ( X → Y ) = σ ( X ⋃ Y ) N s(X \rightarrow Y) = \frac{\sigma (X \bigcup Y)}{N} s(X→Y)=Nσ(X⋃Y)。
置信度(c): Y Y Y在包含 X X X的事务中出现的频繁程度。 c ( X → Y ) = σ ( X ⋃ Y ) σ ( X ) c(X \rightarrow Y) = \frac{\sigma (X \bigcup Y)}{\sigma (X)} c(X→Y)=σ(X)σ(X⋃Y)
极大频繁项集:极大频繁项集是这样的频繁项集,它的直接超集都不是频繁的。
闭项集:项集是闭的,如果它的直接超集都不具有和它相同的支持度计数。
闭频繁项集:如果一个项集是闭项集,并且它的支持度大于等于最小支持度阈值。
注:极大频繁项集一定是闭频繁项集,因为任何极大频繁项集都不可能和它的直接超集有相同的支持度计数。
穷举所有的规则是困难的,因此可以使用频繁项集的方法减少规则的产生。产生频繁项集时可以使用支持度度量。帮助减小频繁项集产生时所需要探查的候选项集的个数。该方法基于先验原理:如果一个项集是频繁的,那么它的所有子集一定是频繁的。相反的,如果一个项集是非频繁的,那么它的所有超集也一定是非频繁的。这种剪枝策略依赖于支持度的一个性质,即一个项集的支持度不会超过它的子集的支持度。(支持度度量的反单调性)
该算法需要的总迭代次数是 k m a x + 1 k_{max} + 1 kmax+1, k m a x k_{max} kmax是频繁项集的最大长度。
在产生新的候选k-项集时,可以使用以下方法:
定理:如果规则 X → Y − X X \rightarrow Y - X X→Y−X不满足置信度阈值,则形如 X ′ → Y − X ′ X \prime \rightarrow Y - X \prime X′→Y−X′的规则也一定不满足置信度阈值。比如 c ( A B C → D ) ≥ c ( A B → C D ) ≥ c ( A → B C D ) c(ABC \rightarrow D) \geq c(AB \rightarrow CD) \geq c(A \rightarrow BCD) c(ABC→D)≥c(AB→CD)≥c(A→BCD),即如果 A B C → D ABC \rightarrow D ABC→D具有低置信度,则可以丢弃后件包含 D D D的所有规则。
FP树是通过每次读取数据集的一个事务并将每个事务映射到FP树中的路径来构造的。由于不同的事务会有若干个相同的项,因此它们的路径会有部分重叠。路径的重叠的部分越多,使用FP树获得的压缩的效果越好。
树根节点用null标记,最开始找到频繁1-项集并按支持度递减的顺序排序。然后根据事务拓展FP树,每个节点上标记覆盖的次数。
客观兴趣度度量
主观兴趣度度量
对于一组数据,比如 x 1 ( 1 , 2 ) , x 2 ( 2 , 6 ) , x 3 ( 4 , 2 ) , x 4 ( 5 , 2 ) x_1(1,2), x_2(2,6), x_3(4,2), x_4(5,2) x1(1,2),x2(2,6),x3(4,2),x4(5,2),因为数据是二维的(即两列),所以协方差矩阵是一个 2 × 2 2 \times 2 2×2的矩阵。协方差矩阵的元素 ( i , j ) = (i,j)= (i,j)=(第 i i i维的所有元素-第 i i i维的均值) ⋅ \cdot ⋅ (第 j j j维的所有元素-第 j j j维的均值) / / / 行数 − 1 -1 −1(即样本数 − 1 -1 −1)。
总体标准差: σ = Σ i = 1 n ( x i − x ‾ ) 2 n \sigma = \sqrt{\frac{\Sigma_{i=1}^{n}(x_i-\overline{x})^2}{n}} σ=nΣi=1n(xi−x)2
样本标准差: σ = Σ i = 1 n ( x i − x ‾ ) 2 n − 1 \sigma = \sqrt{\frac{\Sigma_{i=1}^{n}(x_i-\overline{x})^2}{n-1}} σ=n−1Σi=1n(xi−x)2
由霍夫丁不等式论证机器学习的可行性