统计分析——数据的预处理
来源:互联网 发布:独立域名 编辑:程序博客网 时间:2024/06/06 04:30
统计分析——数据的预处理
一. 数据的清洗
1. 数据清洗
A 异常值处理
I 删除
II 视为缺失值
III 平均值修正
IV 不处理
B 缺失值处理
I 删除
II 不处理
III 插补方法
a. 均值(mean)中位数(medium)众数(mode)
b. 使用固定值
c. 最近临插补:找与缺失样本临近样本
d. 回归方法:ployfit
e. 插值法:interp1函数,interp2函数,interp3函数,拉格朗日插值,牛顿插值
2. 数据的平滑处理
A smooth函数
B smoothts函数
C medfiltl函数
3. 数据的标准化变换
A 标准差标准化:
I
a. Z=zscore(X);
result: z=(X-mean(X))./std(X)
b. [Z,mu,sigma]=zscore(X);
mu=mean(X) sigma=std(X)
c. [Z,mu,sigma]=zscore(X,flag,dim);
i. flag=0 样本容量为n-1
flag=1 样本容量为n
ii. dim=1 列变换
dim=2 行变换
注:均值和标准差受离群值点的影响很大,经常用中位数M取代均值,其次用绝对值差取代标准差 (W是平均数或中位数)
B 极差归一化( )
I [R,xmin,xmax]=rescore(x,dim);
dim=1 列变换
dim=2 行变换
(代码见附录)
附录
一. 拉格朗日插值函数lagrange_interp()
function [ yi ] = lagrange_interp (X,Y,xi)n=length(X); %得到已知数据长度m=length(xi); %得到待插值数据长度yi=zeros(size(xi));for j=1:m %待插值数据有m个,计算每个插值结果 for i=1:n %已知的n个数据构造中间值temp=1; %temp用于存储中间值 for k=1:n if(i~=k) %和自身标号相同的不相乘 temp=temp*(xi(j)-X(k))/(X(i)-X(k)); end end yi(j)=Y(i)*temp+yi(j); endendend
二. 牛顿插值函数newton_interp()
function yi=newton_interp(X,Y,xi)syms t; %定义自变量t,用于字符公式if(length(X)==length(Y)) n=length(X); c(1:n)=0.0;else disp('X和Y的维数不相等!'); return;endf=Y(1); %f用来记录得到的牛顿插值公式的字符串表达式l=1;for i=1:n-1 y1=zeros(1,n-i); for j=i+1:n y1(j)=(Y(j)-Y(i))/(X(j)-X(i)); end c(i)=y1(i+1); %c记录差分 l=l*(t-X(i)); %l记录(x-x0)(x-x1)……的值 f=f+c(i)*l; %累加得到差分公式 Y=y1;endf=simplify(f); %简化得到的牛顿插值公式m=length(xi); %开始输出for i=1:m yi(i)=subs(f,'t',xi(i)); % 根据公式计算需要的值endyi=double(yi); % 转换为数值型,为返回值end
三. 极差标准化程序rescore.m
function [R,xmin,xrange] = rscore(x,dim)%极差归一化变换% R = rscore(X) 对X进行极差归一化变换,这里X可以是一个向量、矩阵或高维数组。% 若X是一个向量,返回变换后结果向量R = (X–min(X))./range(X);若X是一个矩阵,% 则用X的每一列的最小值和极差对该列进行极差归一化变换,返回变换后矩阵R;若X是% 一个高维数组,则沿X的首个非单一维方向计算最小值和极差,然后对X进行极差归一化% 变换,返回变换后高维数组R. 例如X是一个1×1×1×4的4维数组,由于X的前三维均% 为单一维,于是计算X的第4维方向上的最小值和极差,对X进行极差归一化变换,返回% 的R也是一个1×1×1×4的4维数组。%% [R,xmin,xrange] = rscore(X) 还返回X的最小值xmin = min(X)和极差xrange = range(X).%% [...] = rscore(X,dim) 用dim参数指定沿X的哪个维进行极差归一化变换,例如% dim = 1,表示对X的各列进行极差归一化变换;dim = 2,表示对X的各行进行极差归一化变换。%% 请参考zscore, min 和 range 函数的用法.% Copyright 2009 - 2010 xiezhh. % $Revision: 1.0.0.0 $ $Date: 2009/12/2 15:58:36 $if isequal(x,[]), z = []; return; endif nargin < 2 % Figure out which dimension to work along. dim = find(size(x) ~= 1, 1); if isempty(dim), dim = 1; endend% Compute X's min and range, and standardize itxmin = min(x,[],dim);xrange = range(x,dim);xrange0 = xrange;xrange0(xrange0==0) = 1;R = bsxfun(@minus,x, xmin);R = bsxfun(@rdivide, R, xrange0);
参考文献
[1]MATLAB数据分析与数据挖掘实战
[2]MATLAB统计分析与应用40个案例分析
- 统计分析——数据的预处理
- 数据的统计分析
- 地统计分析笔记——探索数据
- 数据统计分析——基本概念_01
- 常用的数据统计分析软件
- 数据统计分析的归一化问题
- R编程入门经典--大数据时代的统计分析语言——互动出版网
- SPSS——数据预处理
- 基于R统计分析——探索性数据分析
- 数据统计分析——常用统计检验方法
- 中兴面试——数据统计分析师(西安)
- 社会统计分析—基础知识
- 机器学习sklearn—数据的特征预处理
- 如何正确的使用百度统计分析数据
- R语言数据统计分析的基本函数
- 统计分析和数据挖掘的应用
- 数据预处理的过程
- 数据预处理的形式
- 搭建集群后再namenode上查看进程发现除了三个基本进程还可能有别的进程,例如本来在子节点出现的进程出现在了主节点上
- Tomcat 8.0简易发布网站方法
- 2004年分区联赛普级组之三 FBI树
- 机器学习笔记1-Supervised learning
- 程序员必读诗
- 统计分析——数据的预处理
- Hibernate二级缓存详解
- 解决集群搭建找不到datanode的问题
- php 网页发送post请求
- 域内socket
- NHibernate使用入门(十四)
- 设计模式之装饰者模式
- JVM内存模型
- POJ 2449 A*k短路