大数据处理之道 (MATLAB 篇<三>)

一:起因

(1)最近一直在处理大数据,从MB ----> GB的变化,是一次质的飞跃,相应的工具也在变 从widows到linux,从单机单核 到 hadoop多节点的计算

(2)问题来了,面对海量的数据,如何从中挖掘实用的信息或者发现潜在的现象,可视化工具可能是必不可少的 ;

(3)可视化工具可以说百度一大篇,可是作为研究者的我们,程序猿的我们可能更希望能够抽象出一种数学模型,对现实的现象进行非常好的描述和刻画

(4)Python(数据清洗和处理) + MATLAB(模型分析) 或 c++/java/hadoop(数据清洗和处理) + MATLAB(模型分析

(5)先前的一篇博文可以参考   c++ fstream + string 处理大数据 以及 大数据处理之道
(MATLAB 篇(二))

(6)程序猿鄙视学习MATLAB的人,是因为对MATLAB的理解不够深入,MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室);说起处理矩阵(其实就是数值型的数组嘛)计算问题那是首屈一指的快,简便。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。

二:MATLAB学习(遍历文件夹,矩阵的重新组合,pca)

(1)  save(tofilename, ‘ANS‘, ‘-ASCII‘)   保存结果ANS矩阵到制定路径tofilename中

(2)num2str(num)  将数字转化为string型;

(3)strcat(rootpath,num2str(i),‘\*.csv‘)  字符串拼接函数 用于绝对路径的生成

(4)[coef,score,latent,t2] = princomp(data); 主要成分分析法,latent是贡献率排序的(从大到小),score是生成的新数据,根据贡献率排序的

三:PCA讲解

(1)特征抽取是指将高纬度的特征经过某个函数映射至低纬度作为新的特征。常用的特征抽取方法就是PCA

(2)当贡献率累加至95%(当要求不是特别严格时,85%以上也可以),以后的维数会不再显示;所以根据贡献率(例如前两位已经到达95%),那么最后可以降至2维,即可以只选取SCORE的前两列来表示原始数据。

(3)PCA算法步骤:

设有m条n维数据。

1)将原始数据按列组成n行m列矩阵X

2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3)求出协方差矩阵C=\frac{1}{m}XX^\mathsf{T}

4)求出协方差矩阵的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

6)Y=PX即为降维到k维后的数据

四:程序(注释比较详细)

clc;
clear all;
close all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:7
    %源文件夹路径
    rootpath = 'G:\zyp_thanks\metro_test\resultMergeODByDay_6\';
    %输出路径
    torootpath = 'G:\zyp_thanks\metro_test\resultMergeODByDay_6_zhengyu\';
    %源文件夹路径(获取指定类型的文件)
    path = strcat(rootpath,num2str(i),'\*.csv');
    %输出路径
    topath = strcat(torootpath,num2str(i),'\');
    %创建输出文件夹
    mkdir(topath);
    dirs=dir(path);   % 替换成你想要的路径。读取某个目录的指定类型文件列表,返回结构数组。
    dataDir=strcat(rootpath,num2str(i),'\');%数据目录
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    dircell=struct2cell(dirs)';    % 结构体(struct)转换成元胞类型(cell),转置一下是让文件名按列排列。
    filenames=dircell(:,1);   % 第一列是文件名

    [m n] = size(filenames);

    for i=1:m
        strfilename = [dataDir filenames{i}];
        tofilename = [topath filenames{i}];
        %fprintf('文件%d:%s\n',i,strfilename);
       X = load(strfilename);
       %A,B是获取的不需要改变的数据,下面作为合并用的
       A = X(:,1:2);
       B = X(:,6:7);
       %获取三维向量,用作pca变换
       data = X(:,3:5);
      %pca
      [coef,score,latent,t2] = princomp(data);
      newdata = score(:,1:2);%前 2列
      ANS = [A newdata B];
      save(tofilename, 'ANS', '-ASCII')
    end
end
时间: 2024-10-07 10:51:49

大数据处理之道 (MATLAB 篇<三>)的相关文章

大数据处理之道 (MATLAB 篇(二))

一:起因 (0)开始个人非常抵触MATLAB编程语言的,肯能是部分编程人员的通病 -- 学会c/c++或者java,就会鄙视其他的语言,懒得尝试其他语言.直到有一天--他发现,他或者她发现自己精通的这门语言实在是解决不了这个问题时,才做出改变. (1)最近一直在处理大数据,从MB ----> GB的变化,是一次质的飞跃,相应的工具也在变 从widows到linux,从单机单核 到 hadoop多节点的计算 (2)问题来了,面对海量的数据,如何从中挖掘实用的信息或者发现潜在的现象,可视化工具可能是

大数据处理之道 (MATLAB 篇)

一:起因 (1)最近一直在处理大数据,从MB ----> GB的变化,是一次质的飞跃,相应的工具也在变 从widows到linux,从单机单核 到 hadoop多节点的计算 (2)问题来了,面对海量的数据,如何从中挖掘实用的信息或者发现潜在的现象,可视化工具可能是必不可少的 : (3)可视化工具可以说百度一大篇,可是作为研究者的我们,程序猿的我们可能更希望能够抽象出一种数学模型,对现实的现象进行非常好的描述和刻画 (4)Python(数据清洗和处理) + MATLAB(模型分析) 或 c++/j

大数据处理之道 (Gibbs Sampling)

一:简介以及学习的途径 (1)吉布斯采样(Gibbs Sampling)及相关算法  (学习向Gibbs sampling, EM,  MCMC算法 等的好地方) 1) 推荐大家读Bishop的Pattern Recognition and Machine Learning,讲的很清楚,偏理论一些: 2) 读artificial Intelligence,2.3版,都有: 3) 如果英语好的话,最方便的就是查wikipedia,这个说的最清楚(研究生推荐读一读这个) 4)不要什么都百度去,百度在

大数据处理之道(预处理方法)

一:为什么要预处理数据? (1)现实世界的数据是肮脏的(不完整,含噪声,不一致) (2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据:数据仓库须要对高质量的数据进行一致地集成) (3)原始数据中存在的问题: 不一致 -- 数据内含出现不一致情况 反复 不完整 -- 感兴趣的属性没有 含噪声 -- 数据中存在着错误.或异常(偏离期望值)的数据 高维度 二:数据预处理的方法 (1)数据清洗 -- 去噪声和无关数据 (2)数据集成 -- 将多个数据源中的数据结合起来存放

大数据处理之道(实验方法&lt;二&gt;)

一:交叉验证(crossvalidation)(附实验的三种方法)方法简介 (1) 定义:交叉验证(Cross-validation)主要用于建模应用中,例如PCR(Principal Component Regression) .PLS(Partial least squares regression)回归建模中.在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和.这个过程一直进行,直到所有的样本都被预报了一次而且仅

大数据处理之道 (htmlparser获取数据&lt;一&gt;)

一:简介 (1)HTML Parser是一个用于解析Html的Java的库,可采用线性或嵌套两种方式.主要用于网页的转换或提取,他有一些特性:过滤器filter,遍历器visitors,通常的标签tagName和易用的JavaBeans.它是一个快速,健壮,并严格测试过的组件. (2)个人理解:HTMLParser遍历了网页的内容以后,以树(森林)结构保存了结果,各个节点代表HTML中的标签和属性值,非常类似于XML解析器解析后的结果,也类似与html dom的结构:HTMLParser访问结果

大数据处理之道 (htmlparser 过滤器&lt;二&gt;)

一:起因 (1)最近用于任务需要一直在爬取网页HTML的内容,与类似于爬虫的HtmlParser接触的比较多,爬取无非就是过滤自己想要的信息,因此Filter是核心,当然String类中的matches(regex)函数和contains(str)函数也是非常有用的 (2)经常和爬虫打交道就会分析各式各样的网站设计以及布局:用的设计的非常有规律,如QQ空间,微博信息等爬取非常简单(当时要想翻页的话,就得模拟登陆了),有些静态网站也是比较容易爬取的:其他的就麻烦了,信息全部写在JS里面,你就会哭了

大数据处理之道(十分钟学会Python)

一:python 简介 (1)Python的由来 Python(英语发音:/?pa?θ?n/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991 年.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结 在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的

关于举办大数据处理技术培训的通知

各有关单位: 中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培养及企业内训的专业培训机构.中心凭借科学院的强大师资力量,在总结多年大型软件开发和组织经验的基础上,自主研发出一整套课程体系,其目的是希望能够切实帮助中国软件企业培养高级软件技术人才,提升整体研发能力,迄今为止已先后为国家培养了数万名计算机专业人员,并先后为数千家大型国内外企业进行过专门的定制培训服务. 随着互联网.移动互联网和物联网的发展,我们已