大数据处理之道 (MATLAB 篇(二))
一:起因 (0)开始个人非常抵触MATLAB编程语言的,肯能是部分编程人员的通病 —— 学会c/c++或者java,就会鄙视其他的语言,懒得尝试其他语言。直到有一天……他发现,他或者她发现自己精通的这门语言实在是解决不了这个问题时,才做出改变。 (1)最近一直在处理大数据,从MB ----> GB的变化,是一次质的飞跃,相应的工具也在变 从widows到linux,从单机单核 到 hadoop多节点的计算 (2)问题来了,面对海量的数据,如何从中挖掘实用的信息或者发现潜在的现象,可视化工具可能是必不可少的 ; (3)可视化工具可以说百度一大篇,可是作为研究者的我们,程序猿的我们可能更希望能够抽象出一种数学模型,对现实的现象进行非常好的描述和刻画 (4)Python(数据清洗和处理) + MATLAB(模型分析) 或 c++/java/hadoop(数据清洗和处理) + MATLAB(模型分析) (5)先前的一篇博文可以参考?? c++ fstream + string 处理大数据? 二:MATLAB函数讲解 (1)MATLAB函数的学习,个人认为help + 百度 已经足够 了,这也是比较迅速的学习和应用的方法 (2)有其他语言做基础,MATLAB上手是非常容易的 (3)多元线性回归(regress)
clc clear all close all X = load('G:zyp_thanksmulti regression交通流预测数据DLdatajia1.csv'); Y = load('G:zyp_thanksmulti regression交通流预测数据DLlabel.csv'); xlabel('test x轴'); ylabel('test y轴'); title('回归分析表') [b,bint,r,rint,stats]=regress( Y,X,0.9); %returns a p-by-1 vector b of coefficient estimates for a multilinear %regression of the responses in y on the predictors in X. X is an n-by-p %matrix of p predictors at each of n observations. y is an n-by-1 vector of %observed responses.uses a 100*(1-alpha)% confidence level Y_Predict = X*b; %两个曲线 plot(Y,'r'); hold on plot(Y_Predict,'b'); ERROR = abs(Y_Predict - Y); %平均绝对误差 mean(ERROR) (4)函数说明: 进行线性回归时,有4个基本假定:① 因变量与自变量之间存在线性关系;② 残差是独立的;③ 残差满足方差奇性;④ 残差满足正态分布。 (5) pca + regress
clear all close all X = load('G:zyp_thanksmulti regression交通流预测数据DLdata.csv'); Y = load('G:zyp_thanksmulti regression交通流预测数据DLlabel.csv'); %PCA [coef,score1,latent,t2] = princomp(X); %return …… the scores are the data formed by transforming the origtinal %data into the space of the principal components …… X =X*coef'; % 原来的 X_Model = X(1:600,1:10);%读取前600行 前 10列 Y_Model = Y(1:600);%读取前600行 X_Test = X(601:1052,1:10); Y_Test = Y(601:1052); b=regress( Y_Model,X_Model ); %训练集 Y_Predict = X_Model*b; %两个曲线 plot(Y_Model,'b'); ERROR = abs(Y_Predict - Y_Model); %平均绝对误差 mean(ERROR) %测试集 % 修饰图形 xlabel('时间间隔(10min)');% x轴的注释 ylabel('速度值(km/h)'); title('MultiLinear_Testpca');%图形标题 legend('训练集-真实值','训练集-预测值'); % 图形注释 grid on; %显示格线 Y_Predict = X_Test*b; %两个曲线 figure,plot(Y_Test,'b'); ERROR = abs(Y_Predict - Y_Test); %平均绝对误差 mean(ERROR) % 修饰图形 xlabel('时间间隔(10min)');% x轴的注释 ylabel('速度值(km/h)'); title('MultiLinear_Testpca');%图形标题 legend('测试集-真实值','测试集-预测值'); % 图形注释 grid on; %显示格线 (6)函数解释说明 ?princomp函数 贡献率:每一维数据对于区分整个数据的贡献,贡献率最大的显然是主成分,第二大的是次主成分...[coef,score,t2] = princomp(x);(个人观点): (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |