个人用数据挖掘笔记(待补充)

文章目录

零、复习事前准备

记得看每一章mooc的ppt重点标注!

一、绪论

数据挖掘 :从巨量数据 中获取正确的、新颖的、潜在有用的、最终可理解的模式的非平凡过程

期末主观题

字数不多于8000字,但也不要少于一张A4纸!

教师联系:周三的下午3:40分。

二、数据仓库&OLAP理论

数据仓库

面向主题的 (分析特点主题域)、集成的 (集成多个数据源)、稳定的 (进入仓库后不会改变,历史数据不会被更新)、反映历史数据变化 (保留历史数据)的数据集合。用于支持管理决策&信息全局共享

ETL:从数据库抽取 、将数据清洗&转化加载 数据。

数据仓库多维建模

多维数据模型 :通过多个维度对数据进行观察与建模,以数据立方体 为单位。(将一张表格的多个维度转化为一个n维空间的物体)
数据立方体并非实际物理存储的范式!

概念分层(把底层概念映射到更高层、更一般的概念)

维度分层
数值分层

建模方式

数据立方体组成

维度表 :记录了每一个维度 及其下对应的类别
事实表 :记录度量值 与和维度表关联的码

星形模型(Star schema)

事实表在中心 (有大量数据,没有冗余 ),周围每个维度连接一个表

雪花模型(Snowflake schema)

星形模型的变种,部分维度表可以多级进行细化

事实星座型(Fact constellation schema)

存在多个事实表 与维度表相关联。(星型模式的汇集

对数据立方体的度量(数值函数)

分布类函数:count(),sum(),min(),max()

代数类函数:avg(),min_N(),max_N(),standard_deviation()

整体类函数:rank(),median(),mode()

OLTP与OLAP

OLTP(联机事务处理)传统关系数据库 常用,主要是事务处理

OLAP(联机分析处理):数据仓库 常用,支持复杂分析操作,侧重决策支持

为什么需要可分离的数据仓库 而不是DBMS:

1.直接在数据库上进行OLAP查询会大大降低性能

2.若将并发机制&恢复机制用于OLAP,会危害并行事务运行 ,从而大大降低OLAP吞吐量

常见OLAP操作

上卷 (Roll up):将某个维度的概念分层 通过向上攀升/规约,使得其维度发生改变,(将数据进行"聚集",维度的类别通常是变少

eg:cities维度被向上攀升为了countries

下钻 (Drill down):上卷的逆操作,从高层的概括细化到底层。维度的类别通常是变多

eg:将quarters变为了months。


切片 (Slice):在给定的维度中进行选择 ,"切下"一个截面/做一个投影

eg:在time维度下是'Q2'的截面。

切块 (Dice):通过更多个维度 进行的投影/"切块"

eg:在location维度、time维度与item维度三个维度下进行切块。

转轴/旋转 (pivot/rotate):通过不同的视角,将3维的立体块变为2维的平面序列

数据湖(不断演进,可扩展的大数据存储、处理、分析的设施)


湖仓一体 :结合了数据湖数据仓库

集中化数据平台:以数据物理集中化 为原则的、中心式单体式 架构,其最大特征就是统一的ETL (采集清晰提供),导致集中化管理压力大,数据处理相应变慢,数据延迟影响准确性。
数据网格(去中心化)

数据中台:



三、数据预处理

数据清理(处理脏数据,使之有用)

冗余数据识别&消除,噪点平滑,不一致数据消除等。

空缺值处理(提升完整性)

剔除法 (直接去除,适用于样本量大 ):简单易行,但会导致样本量的损失统计效果的削弱
均值插补 (用平均值或众数来填充):简单易行,但会产生有偏估计方差标准差 会变小。
回归插补 (处理变量之间的相关关系):更可靠,但容易忽视随机误差
极大似然估计适用于任何总体 ):一致且有效,但并非所有缺失值都可以求得似然估计(似然估计的方程可能难以求解或没有解)

一致性检验(提升一致性)

所有的数据都应从外部条件相同的条件 下获取,且具备一致的单位/量纲等衡量单位!

离群点处理(提升准确性)

由于系统误差等因素,往往会产生一些数据变为离群点/异常值 ,大部分场合需要将这些数据视作噪声而丢弃,也有少部分情况下需要对这些离群点进行研究。

基于统计学的离群点检测
  1. 简单统计分析 :对数据进行描述性统计分析,看看是否有值超出了预期的合理范围。
  2. 3 σ 3\sigma 3σ探测方法:如果总体为正态总体 ,则超过 3 σ 3\sigma 3σ的 0.27 0.27% 0.27的数据可以认为是离群点( P ( ∣ X − μ ∣ ≥ 3 σ ) = 0.0027 P(|X-\mu|\geq3\sigma)=0.0027 P(∣X−μ∣≥3σ)=0.0027)
  3. 作图法:利用散点图/柱状图来直观观察出离群点。
  4. 四分展布法:计算四分位点。
    (1)将所有数据升序 排序后四等分 ,分位点分别为 25 % , 50 % , 75 % 25\%,50\%,75\% 25%,50%,75%。
    (2)计算四分展布 d F d_F dF:计算上四分位数 F u F_u Fu( 75 % 75\% 75%)与下四分位数 F l F_l Fl( 25 % 25\% 25%)之差。
    (3)得到截断点 F l − 1.5 d F F_l-1.5d_F Fl−1.5dF与 F u + 1.5 d F F_u+1.5d_F Fu+1.5dF。
    (4)在上下截断点区间外 的数据为离群点。
  5. 基于分布的单个属性检测

不一致检验

零假设 H 0 H_0 H0:全体样本数据满足同一个分布模型,

备择假设 H 1 H_1 H1:数据来自其他不同分布的模型,

如果分布检验导致 H 1 H_1 H1被接受,则该点为离群点。

常用格拉布斯/Grubbs检验、Dixon检验、t分布检验。

格拉布斯检验:

  1. 对于测定的 n n n个数据 a 1 a_1 a1~ a n a_n an,先升序 排序,
    计算平均值 x ‾ \overline{x} x与标准差 s s s。
  2. 对于某个可疑值 a i a_i ai,计算 G i = ( a i − x ‾ ) s G_i=\frac{(a_i-\overline{x})}{s} Gi=s(ai−x)(此时的 i i i是升序下的排列序号!)
  3. 将 G i G_i Gi值与格拉布斯表在置信概率为 p p p的情况下给出的临界值 G p ( n ) G_p(n) Gp(n)相比较,若前者更大 则为离群点。
基于距离的离群点检测

常用欧氏距离 (直线距离)与马氏距离 ( D M ( x ) = ( x − μ ) T Σ − 1 ( x − μ ) D_M(x)=\sqrt{(x-\mu)^T\Sigma^{-1}(x-\mu)} DM(x)=(x−μ)TΣ−1(x−μ) ,其中 Σ \Sigma Σ是协方差矩阵)测定,

当某些点的距离与总体中至少 p p p个点的距离大于 d d d,则为离群点。

基于密度的离群点检测

当某个点的局部密度显著低于他的大部分近邻时,这个点为离群点。

基于模型的离群点检测

聚类模型 中,落在簇之外的就是离散点。

噪声处理(提升准确性)

噪声:随机的错误或方差

分箱法(处理有序数据,利用周围的值使之平滑)

将数据排序,并分成一个个区间范围 的"箱",根据箱子内的值来考虑消除噪声(因此属于局部平滑 ),通常用平均值/中位数/最值 来替换。

箱子的宽度 越大,光滑的效果越明显。

去重处理(提升冗余性)

通常选择删除其他重复的数据 ,或综合所有重复的数据得到整合过的新数据。

数据规约(提升冗余性)

精简数据,使之变小,但依旧可以产生几乎相同的效果。

维度规约(删除不相干的属性/随机变量)

小波变化 (DWT):通过加权平均等方式钝化图像 ,常用于图像处理,计算机视觉相关,数据清理等。

主成分分析(PCA,常用于图像压缩)

降低数据维度,找出 k k k个最能代表原本数据的正交维度 ,称为主成分
中心化 后进行特征值分解 ,选出 k k k个最大的特征向量。

特征选择

特征子集搜索:找到最小 的、且最能描述类别 的特征组合

评价函数:衡量 哪个特征子集的效果最好

穷举法、启发式搜索 、随机搜索

启发式搜索:逐步向前选择、逐步向后删除、逐步向前选择&逐步向后删除的结合、决策树归纳

样本量规约

线性回归模型 :将散点拟合到一条直线 h θ ( x ) = θ 1 x + θ 0 h_{\theta}(x)=\theta_1x+\theta_0 hθ(x)=θ1x+θ0(最小二乘法

直方图分箱 法分类后,用频率 来表示。(箱的宽度区间样本个数 相似)

聚类 :将数据划分为群/簇 ,簇内的样本性质相似

直径:两个簇中最远的两个样本的距离

形心距离:簇中每个成员距离簇形心平均距离

抽样 :无放回抽样、放回抽样、簇抽样 (分为簇后抽若干个簇)、分层抽样 (分层之后在每个层抽样)
数据立方体聚集 :即 数据仓库OLAP相关,见前)

均衡性处理(提升均衡性)

数据增强(不增加数据)

有监督 的数据增强:数据变换(如图片镜像翻转,图片色彩变换等)
无监督 的数据增强:生成对抗网络(GAN)

格式转换(提升标准性)

把原始数据转化为适合数据挖掘的形式

数据变换(提升标准性)

通过汇总/聚集 ,让数据形式更适合数据挖掘 (光滑、聚集、规范化(Min-Max规范化、Z-score规范化、小数定标规范化)、离散化等)

可溯源性保证(提升可溯源性)

数据获取 及其处理过程可溯源

数据集成

结合多个数据源的数据存在一个一致的数据存储中。

数据规约&扩充

在可能获得相同/相似结果 的前提下,对数据缩减/扩充

数据转换

将原始数据转换为适用于数据挖掘的格式。

四、关联规则

反映一个事物与其他事物的相互依存性&关联性 ,寻找关联规则就是发现数据中的规律

关联规则模型

规则(形如"如果...那么..."(if...then...)) :通过置信度支持度来衡量规则的好坏。

置信度:反映了这条规则的可信度。

对于规则if A,then B,其置信度 C o n f i d e n c e ( A , B ) = P ( B ∣ A ) Confidence(A,B)=P(B|A) Confidence(A,B)=P(B∣A)。

支持度:在所有交易集中A与B同时发生的概率

项目&项集

令 I = { i 1 , i 2 , . . . i m } I=\{i_1,i_2,...i_m\} I={i1,i2,...im}为 m m m个不同项目的集合,每个 i k ( k = 1 , 2 , . . . , m ) i_k(k=1,2,...,m) ik(k=1,2,...,m)称为一个项目

集合 I I I为项集 。其元素个数 m m m为项集的长度 ,也可称其为 m m m-项集

交易

交易 T T T是项集 I I I上的一个子集,即 T ⊆ I T\subseteq I T⊆I,但通常 T ⊂ I T\subset I T⊂I。

每一个交易 T T T有其唯一标识交易号TID 。交易的全体构成了交易集 D D D。其交易个数为 ∣ D ∣ |D| ∣D∣。

项集的支持度(项集出现的概率)

对于项集 X ⊂ I X\subset I X⊂I,其支持度 s u p p o r t ( X ) = c o u n t ( X ⊆ T ) ∣ D ∣ support(X)=\frac{count(X\subseteq T)}{|D|} support(X)=∣D∣count(X⊆T)。

其中 c o u n t ( X ⊆ T ) count(X\subseteq T) count(X⊆T)指 D D D中交易包含X的数量

项集的最小支持度&频繁集

项集的最小支持度:发现关联规则需要的最小支持阈值 s u p m i n sup_{min} supmin,大于等于 s u p m i n sup_{min} supmin的项集称为频繁集

通常若一个 k k k-项集满足 s u p m i n sup_{min} supmin,则称之为 k k k-频繁集,记为 L k L_{k} Lk。

关联规则

即 R : X ⇒ Y R:X\Rightarrow Y R:X⇒Y
X ⊂ I , Y ⊂ I , X ∩ Y = ∅ X\subset I,Y\subset I,X\cap Y=\empty X⊂I,Y⊂I,X∩Y=∅

eg: R:牛奶 ⇒ \Rightarrow ⇒面包

关联规则的支持度

s u p p o r t ( X ⇒ Y ) = c o u n t ( X ∪ Y ) ∣ D ∣ support(X\Rightarrow Y)=\frac{count(X\cup Y)}{|D|} support(X⇒Y)=∣D∣count(X∪Y)(也就是对应项集 { X , Y } \{X,Y\} {X,Y}的支持度)

最小支持度为 s u p m i n sup_{min} supmin。

上例中, ∣ D ∣ = 4 |D|=4 ∣D∣=4, c o u n t ( A ∪ C ) = 2 count(A\cup C)=2 count(A∪C)=2,故关联规则支持度为 50 % 50\% 50%。

关联规则置信度

c o n f i d e n c e ( X ⇒ Y ) = s u p p o r t ( X ∪ Y ) s u p p o r t ( X ) confidence(X\Rightarrow Y)=\frac{support(X\cup Y)}{support(X)} confidence(X⇒Y)=support(X)support(X∪Y)

最小置信度为 c o n f m i n conf_{min} confmin。

通常需要选择支持度与置信度均较高的关联规则!

强关联规则

若 R : X ⇒ Y R:X\Rightarrow Y R:X⇒Y满足 s u p p o r t ( X ⇒ Y ) ≥ s u p m i n support(X\Rightarrow Y)\geq sup_{min} support(X⇒Y)≥supmin且 c o n f i d e n c e ( X ⇒ Y ) ≥ c o n f m i n confidence(X\Rightarrow Y)\geq conf_{min} confidence(X⇒Y)≥confmin,则称其为强关联规则 (否则为弱关联规则 )。(即置信度与支持度都较高

关联规则挖掘步骤:找到所有的频繁项集,并由频繁项集产生强关联规则。

关联分析算法------Apriori算法

通过迭代检索出所有的频繁项集,并构造出满足用户最小信任度的规则。

潜在频繁项集

为了避免去计算所有项目集的支持度(因为频繁项集只占很少一部分

若潜在频繁 k k k项集记为 C k C_{k} Ck,频繁 k k k项集的集合为 L k L_{k} Lk, m m m个项构成的 k k k项集为 C m k C_{m}^k Cmk,则 L k ⊆ C k ⊆ C m k L_{k}\subseteq C_k\subseteq C_m^k Lk⊆Ck⊆Cmk。

普通的频繁项集是潜在频繁项集的一部分

频繁项集的子集也是频繁项集。(因此要通过已知的频繁项集构造更大的项集,即潜在频繁项集,可能会成为频繁k项集的集合 。)

非频繁项集的超集 一定非频繁。(即包含了它的集合,例如:若 { D } \{D\} {D}不是频繁项集,则 { A , D } , { C , D } \{A,D\},\{C,D\} {A,D},{C,D}也不是。)
Apriori剪枝原则:如果一个项集不是频繁的,将不产生/测试他的超集。

如图所示,我们可以得到各个商品的支持度与置信度。

当项集大小 k = 1 k=1 k=1时,我们可以得到支持度分别为50%,75%,75%,25%,75%,因此根据最小支持度得到频繁k项集 L 1 = { A , B , C , E } L_1=\{A,B,C,E\} L1={A,B,C,E}。

同理, k = 2 k=2 k=2时,可以得到 L 2 = { { A , C } , { B , C } , { B , E } , { C , E } } L_2=\{\{A,C\},\{B,C\},\{B,E\},\{C,E\}\} L2={{A,C},{B,C},{B,E},{C,E}}。支持度分为别50%,50%,75%,50%。

同理, k = 3 k=3 k=3时,有 L 3 = { { B , C , E } } L_3=\{\{B,C,E\}\} L3={{B,C,E}},支持度为50%。

于是我们得到频繁项集 { B , C , E } \{B,C,E\} {B,C,E}。其非空子集有 { B } , { C } , { E } , { B , C } , { B , E } , { C , E } \{B\},\{C\},\{E\},\{B,C\},\{B,E\},\{C,E\} {B},{C},{E},{B,C},{B,E},{C,E},可以发现,满足最小置信度的有:
B → C E B\rightarrow CE B→CE,置信度为66.7%。
C → B E C\rightarrow BE C→BE,置信度为66.7%。
E → B C E\rightarrow BC E→BC,置信度为66.7%。
C E → B CE\rightarrow B CE→B,置信度为1。
B E → C BE\rightarrow C BE→C,置信度为66.7%。
B C → E BC\rightarrow E BC→E,置信度为1。

Apriori算法改进

如果频繁集中包含的项数过多 的话,则负载 会变得很大(因为最多可能需要I/O操作 2 n 2^n 2n次)。

划分:只扫描数据库两次 ,第一次划分找出局部频繁,第二次求出全局频繁。

采样:频繁模式(牺牲精度换取有效性)

基于约束的关联挖掘

反单调性:当项集 S S S不满足约束时,超集也不满足。

单调性:当项集 S S S满足约束时,子集合 也满足。

简洁性:不查看事务数据库,项集 S S S是否满足约束 C C C。
m i n ( S . p r i c e ) ≤ v min(S.price)\leq v min(S.price)≤v是简洁的。
s u m ( S . p r i c e ) ≥ v sum(S.price)\geq v sum(S.price)≥v不是简洁的。

对于之前的例子,如果我们设置普通约束 s u m ( S . p r i c e < 5 ) sum(S.price<5) sum(S.price<5),有:

如果设置反单调约束,有:

其中,因为 { 5 } \{5\} {5}本身已经不满足,因此不考虑包含 { 5 } \{5\} {5}的超集。

其他关联规则算法

FP-growth算法(频率模式增长)

五、分类与回归

分类问题(类似softmax)

函数 f ( x ) f(x) f(x)的值域是有限个离散点

分类求解方法:

1.寻找每个类的固有特征 :适用于一类、多类问题 (如图像识别某个特定对象或者多个形象)

2.寻找类之间差异 :适用于两类问题(往往用向量机找到两类之间的间隔)

回归问题(用曲线拟合离散点)

函数 f ( x ) f(x) f(x)的值域是整个实数域

回归问题可以看做是分类问题的推广,是类别数不可数的分类问题

回归求解方法:插值法、曲线拟合法(最小二乘法(偏差平方和最小),最小 ε \varepsilon ε带:偏差最大最小(化为两类问题)

分类算法

决策树支持向量机(SVM)K-近邻(KNN) 、Logistics回归、朴素贝叶斯、人工神经网络、集成学习

决策树

每个节点表示某个属性 ,每个分叉路径代表每种可能的属性值

构造决策树

选择拥有最高信息增益 ( G a i n Gain Gain)的属性作为该节点的分裂属性/划分属性

1.计算 D D D中元组的信息熵 I n f o ( D ) = − ∑ i = 1 m p i l o g 2 ( p i ) Info(D)=-\sum_{i=1}^{m}p_ilog_2{(p_i)} Info(D)=−∑i=1mpilog2(pi)。
p i p_i pi表示对应类型发生的概率。

2.用属性 A A A将 D D D进行划分,有 I n f o A ( D ) = ∑ j = 1 v ∣ D j ∣ ∣ D ∣ × I n f o ( D j ) Info_A{(D)}=\sum_{j=1}^v{\frac{|D_j|}{|D|}\times Info(D_j)} InfoA(D)=∑j=1v∣D∣∣Dj∣×Info(Dj)

3.计算信息增益 G a i n ( A ) = I n f o ( D ) − I n f o A ( D ) Gain(A)=Info(D)-Info_A{(D)} Gain(A)=Info(D)−InfoA(D)

(4.计算增益率 G a i n R a t e ( a ) = G a i n ( A ) I n f o A ( D ) GainRate(a)=\frac{Gain(A)}{Info_A{(D)}} GainRate(a)=InfoA(D)Gain(A))

(5.基尼指数:表示数据的不纯度 , G i n i ( D ) = 1 − ∑ i = 1 m p i 2 Gini(D)=1-\sum_{i=1}^mp_i^2 Gini(D)=1−∑i=1mpi2,
G i n i A ( D ) = ∑ ∣ D i ∣ ∣ D ∣ G i n i ( D i ) Gini_A(D)=\sum\frac{|D_i|}{|D|}Gini(D_i) GiniA(D)=∑∣D∣∣Di∣Gini(Di),不纯度降低 Δ G i n i ( A ) = G i n i ( D ) − G i n i A ( D ) \Delta Gini(A)=Gini(D)-Gini_A(D) ΔGini(A)=Gini(D)−GiniA(D))

以上图为例,计算六个维度哪一个信息增益最大。

1.首先计算根节点的信息熵,17条记录里8个好瓜,9个坏瓜。故
E n t ( D ) = − ∑ k = 1 2 p k l o g 2 p k = − ( 8 17 l o g 2 8 17 + 9 17 l o g 2 8 17 ) = 0.998 Ent(D)=-\sum_{k=1}^{2}p_klog_2p_k=-(\frac{8}{17}log_2\frac{8}{17}+\frac{9}{17}log_2\frac{8}{17})=0.998 Ent(D)=−∑k=12pklog2pk=−(178log2178+179log2178)=0.998

2.我们以属性"色泽"为例,有三个取值{青绿、乌黑、浅白},得到
E n t ( D 1 ) = − ( 3 6 l o g 2 3 6 + 3 6 l o g 2 3 6 ) = 1.000 Ent(D^1)=-(\frac{3}{6}log_2\frac{3}{6}+\frac{3}{6}log_2\frac{3}{6})=1.000 Ent(D1)=−(63log263+63log263)=1.000(青绿里面3个好瓜3个坏瓜,下同)
E n t ( D 2 ) = − ( 4 6 l o g 2 4 6 + 2 6 l o g 2 2 6 ) = 0.918 Ent(D^2)=-(\frac{4}{6}log_2\frac{4}{6}+\frac{2}{6}log_2\frac{2}{6})=0.918 Ent(D2)=−(64log264+62log262)=0.918
E n t ( D 3 ) = − ( 1 5 l o g 2 1 5 + 4 5 l o g 2 4 5 ) = 0.722 Ent(D^3)=-(\frac{1}{5}log_2\frac{1}{5}+\frac{4}{5}log_2\frac{4}{5})=0.722 Ent(D3)=−(51log251+54log254)=0.722

于是得到属性"色泽"的信息增益
G a i n ( D , 色泽 ) = 0.998 − ( 6 17 × 1.000 + 5 17 × 0.918 + 5 17 × 0.722 ) = 0.109 Gain(D,色泽)=0.998-(\frac{6}{17}\times1.000+\frac{5}{17}\times0.918+\frac{5}{17}\times0.722)=0.109 Gain(D,色泽)=0.998−(176×1.000+175×0.918+175×0.722)=0.109

同理得到 G a i n ( D , 根蒂 ) = 0.143 , G a i n ( D , 敲声 ) = 0.141 , G a i n ( D , 纹理 ) = 0.381 , G a i n ( D , 脐部 ) = 0.289 , G a i n ( D , 触感 ) = 0.006 Gain(D,根蒂)=0.143,Gain(D,敲声)=0.141,Gain(D,纹理)=0.381,Gain(D,脐部)=0.289,Gain(D,触感)=0.006 Gain(D,根蒂)=0.143,Gain(D,敲声)=0.141,Gain(D,纹理)=0.381,Gain(D,脐部)=0.289,Gain(D,触感)=0.006。

因此属于"纹理"的信息增益最大,将被选为划分属性

支持向量机(SVM,两类问题)

通常,数据是线性不可分的,所以我们需要要通过核函数 ,让平面维度的数据增加一维变为立体的,然后用一个超平面 将二者分开。

朴素贝叶斯(有稳定的分类效率,适合增量式训练,常用于文本分类)

贝叶斯公式: P ( L i ∣ A ) = P ( A ∣ L i ) × P ( L i ) P ( A ) P(L_i|A)=\frac{P(A|L_i)\times P(L_i)}{P(A)} P(Li∣A)=P(A)P(A∣Li)×P(Li)

拉普拉斯平滑 :为了解决在连乘的时候遇到未出现的值,导致连乘结果变为0 ,令此时的 P ( J j ∣ Y = C k ) = m k j + λ m k + O j λ P(J_j|Y=C_k)=\frac{m_{kj}+\lambda}{m_k+O_j\lambda} P(Jj∣Y=Ck)=mk+Ojλmkj+λ,其中 λ > 0 \lambda>0 λ>0,往往 λ = 1 \lambda=1 λ=1。 O j O_j Oj为 j j j对应的特征个数。

对于正态分布, P ( X j = F j ∣ Y = C k ) = 1 2 π σ k 2 e x p ( − ( F j − μ k ) 2 2 σ k 2 ) P(X_j=F_j|Y=C_k)=\frac{1}{\sqrt{2\pi\sigma_k^2}}exp(-\frac{(F_j-\mu_k)^2}{2\sigma_k^2}) P(Xj=Fj∣Y=Ck)=2πσk2 1exp(−2σk2(Fj−μk)2)。

六、聚类(一种无监督学习)

将数据集划分为若干组或簇 ,使得同一类的数据对象之间有较高的相似度。

划分聚类:K-means算法

(标记若干个类别中心后,数据划分到距离最近的中心)

对于输入样本 S = x 1 , x 2 , . . . x m S=x_1,x_2,...x_m S=x1,x2,...xm:

1.选择初始的 k k k个类别中心 μ 1 , μ 2 , . . . μ k \mu_1,\mu_2,...\mu_k μ1,μ2,...μk,

2.对于每个样本 x i x_i xi,将其标记为距离类别中心最近的类别:
l a b e l i = arg max ⁡ 1 ≤ j ≤ k ∣ ∣ x i − μ j ∣ ∣ label_i=\argmax\limits_{1\leq j\leq k}||x_i-\mu_j|| labeli=1≤j≤kargmax∣∣xi−μj∣∣

3.把每个类别的中心更新为该类别下所有样本的均值:
μ j = 1 ∣ c j ∣ ∑ i ∈ c j x i \mu_j=\frac{1}{|c_j|}\sum\limits_{i\in c_j}x_i μj=∣cj∣1i∈cj∑xi

重复2.和3.直到类别中心的变化率小于某个阈值。
终止条件 :迭代次数、簇中心变化率、最小平方误差(MSE)
K-means算法对初值很敏感,因此如果簇中存在异常点,会导致均值偏离验证!

层次聚类

自下而上聚类:数据慢慢合并,最后变为一类。

以该图为例,不同物种有着不同的长度(length)。

1.计算两两之间的长度差的绝对值,并构造距离矩阵

2.挑选出表格中距离最小对应的两个物种,将他们归为一类[RD,BD],其长度为所有的均值(此处为3.3),再次计算距离矩阵

3.同理,得到[PW,KW],重复计算距离矩阵

4.重复,最后我们得到聚类[[[BD,RD],[PW,KW]],[HW,FW]]
层次聚类不可伸缩,不可逆!

性能度量

外部指标(类似F1指数)

对于 m m m个样本,我们定义:
a a a:聚类中相同 类别,模型中相同 类别的个数。
b b b:聚类中相同 类别,模型中不同 类别的个数。
c c c:聚类中不同 类别,模型中相同 类别的个数。
d d d:聚类中不同 类别,模型中不同 类别的个数。

Jaccard系数: J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca

FM指数: F M I = a a + b ⋅ a a + c FMI=\sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}} FMI=a+ba⋅a+ca

Rand指数: 2 ( a + d ) m ( m − 1 ) \frac{2(a+d)}{m(m-1)} m(m−1)2(a+d)

内部指标

对于 k k k个簇,我们定义:
a v g avg avg:簇内样本间平均距离
d i a m diam diam:簇内样本间最远距离
d m i n d_{min} dmin:两个簇之间最近的样本距离
d c e n d_{cen} dcen:两个簇中心之间的距离

DB指数: D B I = 1 k ∑ i = 1 k max ⁡ j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( μ i , μ j ) ) DBI=\frac{1}{k}\sum\limits_{i=1}^{k}\max\limits_{j\neq i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)}) DBI=k1i=1∑kj=imax(dcen(μi,μj)avg(Ci)+avg(Cj))

DI指数:
D I = min ⁡ 1 ≤ i ≤ k { min ⁡ j ≠ i ( d m i n ( C i , C j ) max ⁡ 1 ≤ l ≤ k d i a m ( C l ) ) } DI=\min\limits_{1\leq i\leq k}\{\min\limits_{j\neq i}(\frac{d_{min}(C_i,C_j)}{\max\limits_{1\leq l\leq k}diam(C_l)})\} DI=1≤i≤kmin{j=imin(1≤l≤kmaxdiam(Cl)dmin(Ci,Cj))}

距离计算

曼哈顿距离欧氏距离

七、文本挖掘

文本数据是半结构化数据 ,既不是完全无结构也不是完全结构化。

有结构化的字段:标题、坐着、出版日期等

非结构化的文本:摘要、内容。

文本挖掘从非结构化文本 中获取有用或感兴趣的模式的过程,目的是从文档集合中搜寻只是而并不试图改进自然语言理解,只是利用该领域成果 尽可能多的提取知识

离散型表示方式

独热编码(one-hot,某一个维度是1,其他是0的向量)

1.不同词向量互相正交 ,无法衡量词汇之间的联系。

2.无法反映不同词汇的重要程度,仅仅只能反映是否出现。

3.独热编码是高维稀疏矩阵 ,会浪费计算&存储资源

词袋模型(bag of words,BOW)

不考虑词汇之间的上下文联系,仅考虑词汇的词频权重 ,将词汇装入一个个"袋子"。

向量中元素表示单词词频 ,其长度等于词典长度。
分词 → \rightarrow →统计词频 → \rightarrow →特征标准化

1.丢失了词的位置信息 ,词的位置不一样语义会有很大的差别.

2.单词词频并不与该词的重要程度完全正相关,如文中大量出现的词汇比如"你"、"我"以及一些介词等对于区分文本类别意义不大。

词频-逆文档频率(TF-IDF)

单词在其所在文本中词频越高,且在其他文本中词频越少,则可以很好的表征单词所在的文本。
I D F = − l o g ( D F ) IDF=-log(DF) IDF=−log(DF)
T F I D F = T F ∗ I D F TFIDF = TF*IDF TFIDF=TF∗IDF

其中 T F TF TF为单词在所在文档的频率, D F DF DF为单词在其他文档的频率。

1.不能反映位置信息

2.IDF精度不高 ,适用于频度较小的词。

3.TF-IDF严重依赖于语料库,对语料库要求高

分布型/连续型表示方式

N-gram(基于统计语言模型)

基于词频统计

与词袋模型的区别:

1.词袋模型只是简单的计算单词频度,而n-gram计算两个词在一个窗口下出现的频率,强调词与词间的关系

2.词袋模型目的是对一篇文章编码,而n-gram是对词编码,颗粒度有巨大差异。

Word2Vec

一个单隐藏层的神经网络。

可以学习到语义和语法信息 (考虑了上下文 ),且词向量维度小通用性强 ,可以应用到各种NLP任务中。

缺点

词和向量是一对一的关系,无法解决多义词 的问题;

word2vec是一种静态的模型,虽然通用性强,但无法针对特定的任务做动态优化。

Glove:基于全局词频统计的词表征算法

ELMO算法:可以根据上下文信息对word embedding 进行调整,解决无法多义词的问题

类比评估

例如:对于一个词向量,变换时(如形容词变成比较级或者最高级)如果存在相同的变换方向,则这种词向量为"好向量"。

外部指标:命名实体识别、词义消歧、文本分类等

文本预处理(分词)

将连续的字序列根据一定规范组合成词序列。

文本摘要

对大型文档或文档集合做简要概述。

信息抽取(关键字抽取)

文本分类

未知文本类型 进行分类。

基于深度学习的方法:RNN、CNN、Bert、word2Vec词向量训练等。

非深度学习方法:FastText

文本聚类:常用K-Means聚类与层次聚类

八、Web挖掘

PageRank算法(独立与查询,主流方法)

锚定文本(anchor text)标记、词频统计 等因素相结合,对检索出的结果进行相关度排序
链入网页数、链入网页质量、链入网页的链出网页数。
(如果某个网页被其他很多网页链入,则PageRank值较高;如果一个PageRank值较高的网页链接到其他网页,则该网页的PageRank值也会提高。)

HITS算法(查询相关)

分为两类页面:
中心网页 (Hub):指向权威网页 (authority)。

权威网页:被多个Hub指向的网页。

指向都是单向的 ,好的Hub应该指向多个authority,好的authority应该被多个hub指向(多对多)。

提高网站的权重

Web数据预处理

九、多媒体挖掘

文本查询 :Query by text,QBT

十、高级数据挖掘

相关推荐
新手上路狂踩坑35 分钟前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
qingyunliushuiyu1 小时前
企业为何需要可视化数据分析系统
数据挖掘·数据分析·数据采集·数据可视化·数据分析系统
stm 学习ing2 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉2 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
dundunmm3 小时前
数据挖掘之认识数据
人工智能·机器学习·信息可视化·数据挖掘
bohu833 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
初学者7.4 小时前
Webpack学习笔记(3)
笔记·学习·webpack
bohu835 小时前
sentinel学习笔记5-资源指标数据统计
笔记·sentinel·statisticslot
璞~5 小时前
MQTT 课程概览 (学习笔记)02
笔记·学习
小王爱吃月亮糖5 小时前
C++进阶-1-单继承、多继承、虚继承
开发语言·c++·笔记·学习·visual studio