数据挖掘学习笔记2-数据预处理

一、数据清洗
1.数据缺失:①忽视(删除) 仅占比较小(2-3%)时可用②填充——固定填充;根据经验、样本猜测
2.离群点(正常)V.S. 异常点
离群点是相对概念(根据平均距离算)
3.重复数据
①使用滑动窗口,窗口内两两比较(假设:高度疑似的数据是紧挨的→生成KEY(根据相关知识),按key排序)

二、数据转换
1.类型转换
2.标准化(编码化,需要注意非顺序类的编码化,如果默认按0、1、2编码,则暗含了距离的属性。可用多位表示等间距)
(v-min)/(max-min) (new_max - new_min(通常为1、0)) 映射到0-1区间
或(v-μ)/Σ
3.采样
1.数据聚集取平均,数据更稳定
2.调整类别比例(整体准确率不适用于不平衡数据集——用G-mean=(Acc+ * Acc-)^1/2或F-measure)
3.over-sampling向上采样:样本中较少的类别,采用中间距离随机自我复制
4.boundary sampling边界采样:用于数据量太大
三、数据描述
可视化:
1.高维:matlab中的box plots(将数据拆分为每一维)、parallel coordinates(将数据用折线表示,每个维度为一个轴)
2.文本可视化:citespace(显示引用的次数)、Gephi(社交网络)
四、特征选择和提取 算法:PCA LDA
选择:
1.利用熵
H(X)=﹣Σp(x)log(p(x)) 熵(越大说明不确定性越大,最大为1)
H(X | S)= P(S = a)
H(X | S = a) + P(S = b)
H(X | S = b)
gain(S,X) = H(S) - H(S | X) 信息增益
2.选择属性
分支定界法:假设S1属性集包含S2,则J(S1)>J(S2)(J为效能) 可得最优解
贪心算法为非最优解但速度较快
提取:
1.边缘检测:差分(做差值,若差值很大则可能为边缘点)
2.主成分分析(PCA):属性的variance就是信息,若v越大则该属性越重要;去中心化;去相关性:Y=PX(旋转)XXT = QDQT (特征分解,D为对角阵)YYT = PQD(PQ)T 则令P=QT 即可将YYT 转化为对角阵(去相关性);投影到一条线上(降维):投影前投影后差距最小(距离)
PCA实际上是把特征投影到特征值最大的特征向量上,matlab函数:[V,D] = eig(s)
PCA用于非监督学习
3.线性判别分析(LDA):用于监督学习(有标签)
投影降维,还要保证不同组的数据分开(没有重合,距离尽可能大)fisher准则 MAX J = (μ1 - μ2)2 /(S12 +S22 )
Sw = S1 + S2
SB = (μ1 - μ2)*(μ1 - μ2)T
w = argmax(wT SB w)/(wT Sw w) = Sw-1 *(μ1 - μ2) (两分类问题)
多维:Si = Σ(x-μi)(x-μi)T μi=(Σx)/Ni
Sw=ΣSi
SB=ΣNi(μi-μ)(μi-μ)T (μi为某一类样本的均值,μ为全部样本的均值,Ni为样本数)
LDA的限制:
1.只能投影到C-1或更小的维度上,因为SB的秩小于等于C-1
2.Sw可能是不可逆矩阵,当样本数小于输入特征的维度时,Sw不可逆,此时需要先用PCA降维,才能用LDA
3.LDA有可能不起作用,当μ1=μ2=…时,LDA无法找到可投影的维度

你可能感兴趣的:(数据挖掘)