数据清理
缺失值处理
常见方法分为三类:数据删除,数据插补,不处理
- 数据插补:最为常见的是数据插补。
插补方法 |
---|
取均值/中位数/众数插补 |
使用固定值(政府等发布的可信数值) |
最近邻插补(根据相近数值取平均或者时间序列预测缺失数据) |
回归分析(工作量大) |
插值法(高端,可以使用) |
- 数据删除:删除即将含有缺失部分的数据整条删除。
- 不处理:某些算法会将缺失值作为特征考虑
异常值处理
异常值确定方法:
-
正态分布方法:平均值\(\pm 3\sigma\)范围内的是正常值
-
箱型图法:确定上四分位数和下四分位数.
\(Let\ \ IQR=上四分位数-下四分位数\)
正常数据的范围是:\((下四分位数-1.5*IQR , 上四分位数+1.5*IQR).\)
函数plotbox : 用箱线图可视化摘要统计量 - MATLAB boxplot - MathWorks 中国
主成分分析
主成分分析 (PCA) - MATLAB & Simulink - MathWorks 中国
-
构建相关系数矩阵或协方差矩阵
两个变量的协方差\(cov(x,y)=\frac{\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{n-1}\)
协方差矩阵\(C= \begin{bmatrix} cov(x,x) & cov(x,y) \\ cov(x,y) & cov(y,y) \end{bmatrix}\)
-
再求协方差矩阵的特征向量、特征值。
-
每一个新变量就是用对应的特征向量乘旧变量构成的向量。
例如对矩阵C,\(Z_1=\vec{v}\cdot \vec x\) .
-
得到了新变量后,可以按特征值占比大小给变量排序,让后累加取到>85%时的新变量,其它变量剔除,从而实现降维。
每个特征向量特征值占比:\(\frac{\lambda_i}{\sum\lambda}\)
如果,前三个新变量的占比总和>85%则就取前三个变量分析。
Matlab求特征值占比比例
data = %数据读入
data = zscore(data);%数据标准化很重要
CorrCoefMatrix = corrcoef(data);%matlab自带函数计算相关系数矩阵,列表示随机变量,行表示观测值
[coeff latent explained] = pcacov(CorrCoefMatrix)
%coeff: 特征向量(注意与pca函数的变量score进行区分).
%latent: 特征值.
%explained:每个特征值占比,字面上即每个特征值对系统有多少解释,用百分比表示。explained=100*latent/sum(latent);
主成分分析降维
如果数据的维数过高可以用主成分分析降维。
原始数据的主成分分析 - MATLAB pca - MathWorks 中国
data_1 = pca(data);
TSNE降维
data_1 = tsne(data,'NumDimensions','2');%TSNE降维
标签:特征值,变量,cov,数据,插补,data,预处理
From: https://www.cnblogs.com/cxy1114blog/p/18459121