数据挖掘与分析(基于MATLAB)——数据探索

数据挖掘中特别的列

列或者字段代表了每条记录里的数据。

只有一种值的列:

单值的列对于区分不同行不包含任何信息,它们缺乏任何信息内容,在数据挖掘中应当被忽略。

列的值各不相同:

另一个极端是列在每一行上几乎都不相同,由于每一个记录上这些数值几乎不同,所以它们妨碍了数据挖掘算法从不同行间找出规律。

派生变量:

如:电话号码和地址包含地理信息;
发动机的识别号码包含了生产年份、制造商、型号和原产地等;
客户号码也可能知道哪些是最新客户;
重要的特性应该作为派生变量提取出来,而忽略原始列。

异常值分析

异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点。异常值分析也称为离群点分析。

3 σ 3{\sigma} 3σ原则

如果数据服从正态分布,在 3 σ 3{\sigma} 3σ原则下,异常值被定义为一组测定值中与平均值的偏差超过三倍标准差的值。在正态分布的假设下,距离平均值 3 σ 3{\sigma} 3σ之外的值出现的概率为 P ( ∣ x − μ ∣ > 3 σ ) < = 0.003 P(|x-{\mu}|>3{\sigma})<=0.003 P(xμ>3σ)<=0.003

箱线图分析

异常值通常被定义为小于 Q L − 1.5 I Q R Q_L-1.5IQR QL1.5IQR或大于 Q U + 1.5 I Q R Q_U+1.5IQR QU+1.5IQR的值。 Q L Q_L QL被称为下四分位数, Q U Q_U QU被称为上四分位数。 I Q R IQR IQR表示四分位数间距。是上四分位数与下四分位数的插值。

function []=loss_detecting(sales)
%% 缺失值检测,并打印结果
rows = size(sales,1);
%% 缺失值检测 并打印结果
nanvalue = find(isnan( sales));
if isempty(nanvalue) %  没有缺失值
    disp('没有缺失值!');
else
    rows_ = size(nanvalue,1);
    disp(['缺失值个数为:' num2str(rows_) ',缺失率为:' num2str(rows_/rows) ]);
end

异常值检测函数:

function [] = abnormal_detecting(sales)
%% 异常值检测
% 箱形图上下界
q_= prctile(sales,[25,75]);
p25=q_(1,1);
p75=q_(1,2);
upper = p75+ 1.5*(p75-p25);
lower = p25-1.5*(p75-p25);
upper_indexes = sales(sales>upper);
lower_indexes = sales(sales<lower);
indexes =[upper_indexes;lower_indexes];
indexes = sort(indexes);
% 箱形图
figure
hold on;
boxplot(sales,'whisker',1.5,'outliersize',6);
rows = size(indexes,1);
flag =0;
for i =1:rows
  if flag ==0
    text(1+0.01,indexes(i,1),num2str(indexes(i,1)));
    flag=1;
  else
      text(1-0.017*length(num2str(indexes(i,1))),indexes(i,1),num2str(indexes(i,1)));
    flag=0;
  end
end
hold off;
disp('数据缺失值及异常值检测完成!');

一致性分析

该问题主要集中在重复存放的数据未能进行一致性更新造成的。

数据特征分析

分布分析

能揭示数据的分布特征和分布类型。

定量数据的分布分析

对于定量、变量而言,选择组数和组宽是做频率分布分析时最主要的问题。
一般按照以下的步骤进行:
(1)求极差;
(2)决定组距和组数;
(3)决定分点;
(4)列出频率分布表;
(5)绘制频率分布直方图;
遵循的原则有:
(1)各组之间必须是相互排斥的;
(2)各组必须将所有的数据包含在内;
(3)各组的组宽最好相等。

定性数据分析

画出条形图和饼图。

统计量分析

集中趋势度量

(1)均值
一般采用加权均值;
截断均值是去掉高、低极端值后的平均数。
(2)中位数
将某一数据集 x : { x 1 , x 2 , . . . , x n } x:{\{x_1,x_2,...,x_n}\} x:{x1,x2,...,xn}从小到大排序: { x ( 1 ) , x ( 2 ) , . . . , x ( n ) } \{x_{(1)},x_{(2)},...,x_{(n)}\} {x(1),x(2),...,x(n)}
当n为奇数时, M = x ( n + 1 2 ) M=x_{(\frac{n+1}{2})} M=x(2n+1)
当n为偶数时, M = 1 2 ( x ( n 2 ) + x ( n + 1 2 ) ) M=\frac{1}{2}(x_{(\frac{n}{2})}+x_{(\frac{n+1}{2})}) M=21(x(2n)+x(2n+1))
(3)众数
众数是指数据集中出现最频繁的值。

离中趋势度量

(1)极差
(2)标准差
(3)变异系数
变异系数度量标准差相对于均值的离中程度。
C V = s x ‾ ∗ 100 CV=\frac{s}{\overline{x}}*100% CV=xs100
(4)四分位数间距:
其值越大,说明数据的变异程度越大,反之,说明数据的变异程度越小。

% 众数
mode_ = mode(sales);
% 极差
range_ = range(sales);
% 四分位数间距
q1=prctile(sales,25);
q2=prctile(sales,75);
distance=q3-q1;

贡献度分析

贡献度分析又称帕累托分析,它的原理是帕累托法则,又称20/80定律。比如:对于一个公司来讲,80%的利润常常来自于20%最畅销的产品,而其它80%的产品只产生了20%的利润。
帕累托分析也可以称为累计占比分析。

function [] = dish_pareto(num)
%% 帕累托图作图
rows = size(num,1);
hold on;
% 计算累计系数
yy_ = cumsum(num(:,end));
yy=yy_/yy_(end)*100;
[hAx,hLine1,hLine2]=plotyy(1:rows,num(:,end),1:rows,yy,'bar','plot');
set(hAx(1),'XTick',[])%去掉x轴的刻度
set(hLine1,'BarWidth',0.5);
set(hAx(2), 'XTick', 1:rows);  
set(hAx(2),'XTickLabel',raw(2:end,2));
ylabel(hAx(1),'盈利:元') % left y-axis
ylabel(hAx(2),'累计百分比:%') % right y-axis
set(hLine2,'LineStyle','-')
set(hLine2,'Marker','d')
% 标记 80% 点
index = find(yy>=80);
plot(index(1),yy(index(1))*100,'d', 'markerfacecolor', [ 1, 0, 0 ] );
text(index(1),yy(index(1))*93,[num2str(yy(index(1))) '%'] );
hold off;
disp('餐饮菜品盈利数据帕累托图作图完成!');

相关性分析

计算相关系数

(1)Pearson相关系数
一般用于分析两个连续型变量之间的关系。
在这里插入图片描述
相关系数的取值范围:-1<=r<=1
在这里插入图片描述
(2)Spearman秩相关系数
Pearson线性相关系数要求连续变量的取值服从正态分布。不服从正态分布的变量,分类或等级变量至今的关联性可采用Spearman秩相关系数。
计算公式:
在这里插入图片描述
对两个变量成对的取值分别按照从小到大(或者从大到小的顺序)编秩。 R i R_i Ri代表 x i x_i xi的秩次, Q i Q_i Qi代表 y i y_i yi的秩次。 R i − Q i R_i-Q_i RiQi x i , y i x_i,y_i xi,yi的秩次之差。
在这里插入图片描述
(3)判定系数
它是相关系数的平方,用 r 2 r^2 r2表示;用来衡量回归方程对y的解释程度。 r 2 r^2 r2越接近于1,表明x与y之间的相关性越强; r 2 r^2 r2越接近于0,表明两个变量之间几乎没有直线相关关系。

matlab主要数据探索函数

统计特征函数

MATLAB主要的统计特征函数

函数名函数功能
mean()计算数据样本的算术平均数
geomean()计算数据样本的几何平均数
var()计算数据样本的方差
std()计算数据样本对的标准差
corr()计算数据样本的spearman(Pearson)相关系数矩阵
cov()计算数据样本的协方差矩阵
moment()计算数据样本的指定阶中心距

几点说明:
var
使用格式:v=var(X),计算样本X的方差v。若X为向量,则计算向量的样本方差;若X为矩阵,则v为X的各列向量的样本方差构成的行向量。
corr
使用格式:R=corr(x,y,‘name’,‘value’),计算列向量x,y的相关系数矩阵R。

namevalue说明
Typepearson皮尔森相关系数
TypeKendall卡德尔系数
TypeSpearman斯皮尔曼系数
Rowsall全部数据,默认选项
Rowscomplete只使用没有缺失值的行
Rowspairwise计算R(i,j)只使用第i和j列中没有缺失值的数据

(6)cov
使用格式:R=cov(X),计算样本X的协方差矩阵R。样本X可为向量或矩阵。当X为向量时,R表示X的方差;当X为矩阵时,cov(X)计算方差矩阵。
R=cov(x,y)。函数等价于cov([x,y])。参数x,y为长度相等的列向量。
(7)moment
使用格式:m=moment(X,order)计算样本X的order阶次的中心矩m,参数order为正整数。样本X可为向量、矩阵或多维数组。
说明:一阶中心矩为0,二阶中心矩为用除数n得到的方差。其中n为向量X的长度或矩阵X的行数。

统计作图函数

作图函数名作图函数功能
pie()绘制饼形图
hist()绘制二维条形直方图
boxplot()绘制样本数据的箱线图
errorbar()绘制误差条形图

pie

使用格式:pie(X).绘制矩阵X中非负数据的饼形图。若X中非负元素和小于1,则函数仅画出部分饼形图,且非负元素X(i,j)的值直接限定饼形图中扇形大小;若X中非负元素和大于等于1,则非负元素X(i,j)代表饼形图中扇形大小通过X(i,j)/Y的大小来决定,其中Y为矩阵X非负元素和。
例题:

x=[1,3,1.5,4,1.5];
explode=[1,0,0,0,0];% 第一个元素为1表示饼图中第一部分分离出来
pie(x,explode); % 画出饼形图

boxplot

使用格式:boxplot(X,notch),绘制矩阵样本X的箱型图。notch=1时,绘制矩阵样本X的带刻槽的凹盒图。参量notch=0时,绘制矩阵样本X的无刻槽的矩形箱型图。

x1=normrnd(4,5,100,1);
x2=normrnd(8,6,100,1);
boxplot([x1,x2],1);

errorbar

使用格式:errorbar(X,Y,L,U),绘制误差条形图。参量X,Y,L,U必须为同型向量或矩阵。若同为向量则在点(X(i),Y(i))画出向下长为L(i),向上长为U(i)的误差棒;若同为矩阵,则在点(X(i,j),Y(i,j))处画出向下长为L(i,j),向上长为U(i,j)的误差棒。

x=0:pi/10:pi;
y=2*x.*sin(x);
e=std(y).*ones(size(x)); % 产生误差棒长度
errorbar(x,y,e,e);
参考文献

张良均等. MATLAB数据分析与挖掘实战. 机械工业出版社,2015.

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB数据分析与挖掘实战 及配套实验数据和源代码 【简介】 随着企业的泛互联网化和企业信息化程度的不断提高,大数据的概念被提了出来,在大数据时代,数据对企业突显出越来越重要的价值,企业对数据的价值也越来越重视。目前国内不少高校将数据挖掘引入本科教学中,在数学、电子信息、金融等专业开设了数据挖掘技术相关的课程,但目前这一课程的教学仍主要限于理论介绍。以数学类专业为例,目前高校存在的困境主要 有:  师资队伍建设问题:缺少统计学及应用数学专业 的 双师型 教师  师范院校的统计学及应用数学专业在大数据时代该如何准确定位?  课程设置该怎样跟进与完善?  实践环节应该如何加强?  产学研以及院校合作怎样才能落到实处? 顶尖数据挖掘教学实训平台(TipDM T6 ,简称 T6 )是专门针对高校数据挖掘课程中,学员实际应用能力差这一教学弱点设计开发的一系列教学模块。能够让老师在讲解数据挖掘算法理论的同时,通过实用的建模工具来模拟实际应用案例,在实验室环境下体验实际应用,由此弥补学员实践经验的不足。在教学过程中,强化应用和 动手,做到理论与实践的有机结合,使学生受益,老师授课方便。 【适用对象】  有数据挖掘相关教学课程的高校、研究所和培训机构。  用数据挖掘进行科研的高校、研究所。  适用专业:统计学、数学与应用数学,以及金融、医疗、管理、电子商务等有数据挖掘教学专业。 特别说明:提供数据挖掘建模软件,同时协助指导教师构建特定专业的挖掘模型及编写相应实训指导书 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值