数据预处理

数据清理

缺失值处理

常见方法分为三类:数据删除,数据插补,不处理

  1. 数据插补:最为常见的是数据插补。
插补方法
取均值/中位数/众数插补
使用固定值(政府等发布的可信数值)
最近邻插补(根据相近数值取平均或者时间序列预测缺失数据)
回归分析(工作量大)
插值法(高端,可以使用)
  1. 数据删除:删除即将含有缺失部分的数据整条删除。
  2. 不处理:某些算法会将缺失值作为特征考虑

异常值处理

异常值确定方法:

  1. 正态分布方法:平均值\(\pm 3\sigma\)范围内的是正常值

  2. 箱型图法:确定上四分位数下四分位数.

    \(Let\ \ IQR=上四分位数-下四分位数\)

    正常数据的范围是:\((下四分位数-1.5*IQR , 上四分位数+1.5*IQR).\)

    函数plotbox : 用箱线图可视化摘要统计量 - MATLAB boxplot - MathWorks 中国

主成分分析

主成分分析 (PCA) - MATLAB & Simulink - MathWorks 中国

  1. 构建相关系数矩阵或协方差矩阵

    两个变量的协方差\(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}\)

  2. 再求协方差矩阵的特征向量、特征值。

  3. 每一个新变量就是用对应的特征向量乘旧变量构成的向量。

    例如对矩阵C,\(Z_1=\vec{v}\cdot \vec x\) .

  4. 得到了新变量后,可以按特征值占比大小给变量排序,让后累加取到>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降维
posted @ 2024-10-11 19:38  West11  阅读(41)  评论(0)    收藏  举报