0
点赞
收藏
分享

微信扫一扫

Matlab建模之数据准备


1.1、从excel、txt读取数据

%从excel中读取数据
a = xlsread('/Users/macbookpro/Documents/s1.xls',1,'A2,H99')

第一个变量是EXCEL所在的路径以及文件名称;1表示位于sheet1;‘A2,H99’表示读入数据的范围 

%TXT存取数据
a = linspace(1,30,8)%产生等差数组(起始值,终止值,元素个数)

save /Users/macbookpro/Documents/exper.txt a -ascii%把变量a以ASCII码的形式存储在exper.txt文件中

b = load('/Users/macbookpro/Documents/exper.txt')%读取文本

[name,type,x,y,answer] = textread('/Users/macbookpro/Documents/t.txt','%s Type%d %f %n %s',2,'headerlines',1)%2是读取次数,headlines表示从第1+1行开始读取
%可以在“2,”后面加上'delimiter',',' 读数据时自动跳过分隔符

前两个语句运训的结果: 

Matlab建模之数据准备_数据可视化

Matlab建模之数据准备_数据可视化_02

Matlab建模之数据准备_数据的统计_03

把MATLAB里的信息写到TXT中

file_h = fopen('/Users/macbookpro/Documents/math114.txt','w');
fprintf(file_h, '%6.2f %12.8f', 3.14, -2.718);
fprintf(file_h, '\n %6f %12f', 3.14, 2.718);
fprintf(file_h, '%.2f %.8f', 3.14, -2.718);
fclose(file_h);

运行结果: 

Matlab建模之数据准备_数据降维_04

⚠️:如果\n 不行 可以尝试更改为\r\n

1.2,读取图片

%读取图片
clc,clear,close all
a1 = imread('/Users/macbookpro/Documents/ReadImages/000.bmp');
[m,n] = size(a1);

dirname = '/Users/macbookpro/Documents/ReadImages/ImageChips';
files = dir(fullfile(dirname,'*.bmp'));
a = zeros(m,n,19);%0举证 行,列,个数
pic = [];
for ii = 1:length(files)
filename = fullfile(dirname,files(ii).name);
a(:,:,ii) = imread(filename);
pic = [pic,a(:,:,ii)];%a(:,:,ii)第ii个图像的所有行,所有列
end
double(pic);
figure
imshow(pic,[])%显示灰度图像pic

Matlab建模之数据准备_数据可视化_05

1.3,读取视频

%% 读取视频数据
videoFReader = vision.VideoFileReader('vippedtracking.mp4');

% 播放视频文件
videoPlayer = vision.VideoPlayer;
while ~isDone(videoFReader)
videoFrame = step(videoFReader);
step(videoPlayer, videoFrame);
end
release(videoPlayer);

%% 设置播放方式
% 重置播放器
reset(videoFReader)
% 增加播放器的尺寸
r = groot;
scrPos = r.ScreenSize;
% Size/position is always a 4-element vector: [x0 y0 dx dy]
dx = scrPos(3); dy = scrPos(4);
videoPlayer = vision.VideoPlayer('Position',[dx/8, dy/8, dx*(3/4), dy*(3/4)]);
while ~isDone(videoFReader)
videoFrame = step(videoFReader);
step(videoPlayer, videoFrame);
end
release(videoPlayer);
reset(videoFReader)

%% 获取视频中的图像
videoFrame = step(videoFReader);
n = 0;
while n~=15
videoFrame = step(videoFReader);
n = n+1;
end
figure, imshow(videoFrame)
release(videoPlayer);
release(videoFReader)

2、数据预处理

2.1、缺失值处理

1.删除法(样本量大而缺失值所占比列较少(<5%))

2.插补法(均值插补、回归插补、极大似然估计)【以最有可能的值来插补缺失值】

2.2 噪声过滤

1,回归法(符合线性趋势)

2,均值平滑法(对具有有序特征的变量用临近的若干数据的均值来替代原始数据)

3,离群点分析法

4,小波过滤法【小波去燥】(本质:函数逼近,寻找实际信号空间到小波函数空间的最佳映射,实际:特征值的提取和低通滤波功能)

2.3数据集成(将若干分散的数据源中的数据,逻辑地或物理地集中到一个统一的数据集合中)

核心任务:将相互关联的分布式异构数据集成到一起,让用户能以透明的方式访问这些数据。【低代价、高效率使用异构数据】

常用方法(联邦数据库、中间件集成方法和数据仓库方法)——倾向于数据库系统构建

⚠️:对于建模更多的是数据的融合(数据表的集成)——内接(子集)、外接(加入了其他的元素字段)

2.4 数据规约

目的:得到能够与原始数据集近似等效甚至更好但数据量却较少的数据集

1,属性选择(找出最小属性集———删除不想干或冗余的属性(或维))

看属性与挖掘目标的关联程度、属性本身的数据质量(评估结果)

利用数据相关性分析、数据统计分析、数据可视化、主成分分析

2,样本选择(数据抽样)

2.5数据变换

1,标准化(将数据按比略缩放,使之落入一个小的特定区间)

1)0-1标准化(离差标准化)

2)Z标准化(标准差标准化)

2,离散化

1)方法:决策树、Navie Bays等

2)能有效客服数据中隐藏的缺陷,使模型结果更加稳定

有利于对非线性关系进行诊断和描述——减少模型自由度,但是大大提高了模型灵活度

3,语义转换

对于某些有字符型构成的属性,通常用整型数据来表示原始的属性值含义

3.数据统计

3.1.基本描述性统计

1,表示位置的统计量:算术平均值、中位数

2,表示数据散度的统计量:标准差、方差和极差

3,表示分布形状的统计量:偏度、峰度

3.2分布描述性统计

随机变量的特性:(概率)分布函数或(概率)密度函数

分位数:区间(0,1) 使分布函数为F(x)=a的x为这个分布的a分位数

4数据可视化

4.1基本可视化

plot函数:plot(x,y) y矩阵的行数与x的向量长度相等,以y的列数绘图

%基本可视化
clc,clear all close all
X = xlsread('/Users/macbookpro/Documents/t2.xlsx');
N = size(X,1);
id = 1:N;
figure
plot(id',X(:,2),'LineWidth',1)%LineWidth线宽
set(gca,'linewidth',2); %设置坐标轴的粗细
xlabel('编号','fontsize',12);
ylabel('dv1','fontsize',12);
title('变量dv1分布图','fontsize',12);

Matlab建模之数据准备_数据预处理_06


4.2 数据分布形状可视化

%数据分布形状可视化
%同时绘制变量dv1~dv4的柱状分布图
figure
subplot(2,2,1);
hist(X(:,2));
title('dv1 柱状分布图','fontsize', 12)
subplot(2,2,2);
hist(X(:,3));
title('dv2 柱状图','fontsize',12)
subplot(2,2,3);
hist(X(:,4));
title('dv3 柱状图','fontsize',12)
subplot(2,2,4);
hist(X(:,5));
title('dv4 柱状图','fontsize',12)

Matlab建模之数据准备_数据的统计_07

更加具体的数据分布形状图

%%读取数据
clc,clear all,close all
X = xlsread('/Users/macbookpro/Documents/t2.xlsx');
dv1 = X(:,2);

%% 绘制变量dv1的形状度量指标
h = -5:0.5:5
n = hist(dv1,h);
figure
bar(h,n)

%% 计算常用的形状度量指标
mn = mean(dv1); %均值
sdev = std(dv1); %标准差
mdsprd = iqr(dv1); %四分位数
mnad = mad(dv1); %中位数
rng = range(dv1); %极差
%% 标示度量数值
x = round(quantile(dv1,[0.25,0.5,0.75]));
y = (n(h == x(1)) + n(h == x(3)))/2;
line(x,[y,y,y],'marker','x','color','r')
x = round(mn + sdev *[-1,0,1]);
y = (n(h == x(1)) + n(h== x(3)))/2;
line(x,[y,y,y],'marker','o','color',[0 0.5 0])
x = round(mn + mnad*[-1,0,1]);
y = round(n(h == x(1)) + n(h==x(3)))/2
line(x,[y,y,y],'marker','*','color',[0.75 0 0.75])
x = round([min(dv1),max(dv1)]);
line(x,[1,1],'marker','.','color',[0 0.75 0.75])
legend('Data','Midspread','Std Dev','Mean Abs Dev','Range')

Matlab建模之数据准备_数据预处理_08

4.3数据关联可视化

%%读取数据
clc,clear all,close all
X = xlsread('/Users/macbookpro/Documents/t2.xlsx');
Vars = X(:,7:12);
%% 绘制变量相关性关联图
figure
plotmatrix(Vars);
%% 绘制变量间相关性强度图
covmat = corrcoef(Vars);
figure
imagesc(covmat);
grid;%显示或隐藏轴网络格
colorbar;%显示色际的颜色栏

Matlab建模之数据准备_数据可视化_09

Matlab建模之数据准备_数据预处理_10

4.4数据分组可视化

%读取数据
clc,clear all,close all
X = xlsread('/Users/macbookpro/Documents/t2.xlsx');
dv1 = X(:,2);
eva = X(:,12);
%Boxplot
figure
boxplot(X(:,2:12))
figure
boxplot(dv1,eva)

Matlab建模之数据准备_数据的统计_11

Matlab建模之数据准备_数据的统计_12

5.数据降维

主成分分析法


举报

相关推荐

0 条评论