1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

时间:2022-10-13 19:59:55

相关推荐

【数学建模暑期培训】Matlab数据分析 数据处理 数据挖掘

文章目录

数据预处理任务数据集成数据变换数据清洗数据规约主要处理函数

数据预处理任务

数据清洗:去掉数据中的噪声,纠正不一致数据集成:将多个数据源合并成一致的数据存储,构成一个完整的数据集,如数据仓库数据规约(删减):通过聚集、删除冗余属性或聚类等方法来压缩数据数据变换:数据集的规范化

数据集成

数据挖掘需要的数据往往分布在不同的数据源中,数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。在数据集成时,来自多个数据源的现实世界实体的表达形式是不一样的,不一定是匹配的,要考虑实体识别问题和属性是不一的,不一定是匹配的,要考虑实体识别问题和属性冗余问题,从而把源数据在最低层上加以转换、提炼和集成。

实体识别:解决单位问题属性冗余问题:对于冗余属性要先分析检测到后再将其删除。 有些冗余属性可以用相关分析检测到。给定两个数值型的属性A和B,有些冗余属性可以用相关分析检测到。给定两个数值型的属性A和B,根据其属性值,可以用相关系数度量一个属性在多大程度上蕴含另一个属性。

数据变换

简单函数变换

使得数据保持正态分布所以对数据进行简单的函数变换。

x2x^2x2可将左偏数据将其变为正太分布

logxlogxlogx可将右偏数据将其变为正太分布

归一化映射

求梯度时数据差异较大时,导致不收敛状况,所以对其进行归一化。分为最小-最大规范化、零-均值规范化、小数定标规范化。

数据清洗

删除无关数据及异常值,缺失值处理。

缺失值处理

处理缺失值的方法可分为三类:删除记录、数据差插补和不处理。其中常用数据插补方法见下表。

回归方法使用繁琐对于国赛试题不建议使用。拉格朗日插值法。缺点:插值函数与需插值点个数有关,当插值点个数改变的时候,插值函数也需改变,所以较繁琐。牛顿插值法。

%% 拉格朗日插值和牛顿插值对比clear;% 参数初始化inputfile = '../data/catering_sale.xls' ; % 销量数据文件index =2; % 销量数据所在下标outputfile ='../tmp/sales2.xls'; % 插值后数据存放%% 读入数据num = readmatrix(inputfile);data = num(:,index);%% 去除异常值data = de_abnormal(data);%% 调用拉格朗日进行插值la_data = ployinterp_column(data,'lagrange');%% 调用牛顿算进行插值new_data = ployinterp_column(data,'newton');%% 结果写入文件rows = size(data,1);% result = cell(rows+1,3);% result{1,1}='原始值';% result{1,2}='拉格朗日插值';% result{1,3}='牛顿插值';% % result(2:end,1)= num2cell(data);% result(2:end,2)= num2cell(la_data);% result(2:end,3)= num2cell(new_data);result = [data,la_data,new_data];writematrix(result,outputfile);disp('拉格朗日插值和牛顿插值结果已写入数据文件!');

异常值处理方法

异常值发现方法:箱型图法

画箱形图的代码

%% 餐饮销量数据缺失值及异常值检测clear;% 初始化参数catering_sale = '../data/catering_sale.xls'; % 餐饮数据index = 2; % 销量数据所在列 %% 读入数据num = readmatrix(catering_sale);sales =num(2:end,index);rows = size(sales,1);%% 缺失值检测 并打印结果nanvalue = find(isnan(sales));if isempty(nanvalue) % 没有缺失值disp('没有缺失值!');elserows_ = size(nanvalue,1);disp(['缺失值个数为:' num2str(rows_) ',缺失率为:' num2str(rows_/rows) ]);end%% 异常值检测 % 箱形图上下界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);% 箱形图figurehold on;boxplot(sales,'whisker',1.5,'outliersize',6);rows = size(indexes,1);flag =0;for i =1:rowsif flag ==0text(1+0.01,indexes(i,1),num2str(indexes(i,1)));flag=1;elsetext(1-0.017*length(num2str(indexes(i,1))),indexes(i,1),num2str(indexes(i,1)));flag=0;endendhold off;disp('餐饮销量数据缺失值及异常值检测完成!

数据规约

即产生更小但保持原数据完整性的新数据集,因为在大数据集上进行复杂的数据分析和挖掘往往需要很长的时间。数据规约包括属性规约、数值规约

属性规约:主要是通过属性合并创建新属性维数,或者直接通过删除不相关的属性维数来减少数据维数,从而提高数据挖掘的效率、降低计算成本。属性规约的目标是寻找出最小的属性子集并确保新数据子集的概率分布、并尽可能地接近原数据集的概率分布,常用方法有合并属性、逐步向前选择、逐步向后删除、决策树归纳、主成分分析等。数值规约: 通过选择替代的、较小的数据来减少数据量,包括有参数方和无参数方法,前者指使用一个模型来评估数据,只需存放参数而不需要存放实际数据,无参数方法则需要存放实际数据,如直方图、聚类、抽样、参数回归。

%% 主成分分析 降维clear;% 参数初始化inputfile = '../data/principal_component.xls';outputfile = '../tmp/dimention_reducted.xls'; % 降维后的数据proportion = 0.95 ; % 主成分的比例%% 数据读取num = readmatrix(inputfile);%% 主成分分析[coeff,~,latent] = pca(num);%% 计算累计贡献率,确认维度sum_latent = cumsum(latent/sum(latent)); % 累计贡献率dimension = find(sum_latent>proportion);dimension= dimension(1);%% 降维data = num * coeff(:,1:dimension); xlswrite(outputfile,data);disp('主成分特征根:');disp(latent');disp('主成分单位特征向量');disp(coeff);disp('累计贡献率');disp(sum_latent');disp(['主成分分析完成,降维后的数据在' outputfile]);

主要处理函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。