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里的信息写到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);
运行结果:
⚠️:如果\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
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);
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)
更加具体的数据分布形状图
%%读取数据
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')
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;%显示色际的颜色栏
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)
5.数据降维
主成分分析法