主成分分析 R语言

主成分分析(Principal Component Analysis,PCA),
是相同种统计办法。通过正交变换将同一组或者在相关性的变量转换为同一组线性不系的变量,转换后的立刻组变量叫主成分。

参考 
http://hbase.apache.org/book.html\#\_architecture

原理:

每当用统计分析方法研究多变量的课题时,变量个数太多便见面增多课题的繁杂。人们自然想变量个数较少要博得的信息比多。在重重景,变量之间是发出必然的相关涉嫌之,当半单变量之间有肯定相关涉嫌经常,可以说为即简单独变量反映是课题的音信发生必然的叠。主成分分析是于原提出的享有变量,将还的变量(关系密不可分的变量)删去多余,建立尽可能少的新变量,使得这些新变量是少点儿非系的,而且这些新变量在映现课题的音方面尽可能保持原来的音讯。

进行主成分分析主要步骤如下:

  1. 指标数量标准
  2. 指标内的相关性判定;
  3. 规定主成分个数m;
  4. 主成分Fi表达式;
  5. 主成分Fi命名;

主成分分析(principal component
analysis,PCA)是平种降维技术,把多个变量化为可知体现原始变量大部分音之个别几只主成分。
设X有p个变量,为n*p阶矩阵,即n个样本的p维向量。首先对X的p个变量寻找正规化线性组合,使她的方差达到极致充分,这个新的变量称为第一兆成分,抽取第一预示成分后,第二预告成分的抽取方法及第一兆成分相同,依次类推,直到各主成分累积方差及总方差的自然比重。

主成分分析实例

p=princomp(USArrests,cor=TRUE)
summary(p,loadings=TRUE)

语言 1

—-Standard deviation 标准差 其平方为方差=特征值
—-Proportion of Variance 方差贡献率
—-Cumulative Proportion 方差累计贡献率

screeplot(p,type="lines")

语言 2

贪图备受的触及在第三个成分的狂跌曾更换得够呛平静了,因而选择面前少独变量就可知博得比较好的消息说明,这吗不怕象征继少独变量可以舍。

呢得以应用loadings参数中体现的系数值对主成分进行构建方程
y=-0.536murder-0.583assault-0.278urbanpop-0.543rape
y=0.418murder+0.188assault-0.873urbanpop-0.167rape

pre<-predict(p)
pre

语言 3

对个主成分的值进行前瞻的结果

Architecture

65. Overview

65.1. NoSQL?

HBase是一律种”NoSQL”数据库。“NoSQL”一般仰仗的长短关系项目数据库,我们领略,关系项目数据库支持SQL,也就是说HBase不支持SQL。非关系型数据库有过多种植,BerkeleyDB是千篇一律种本地非关系型数据库,然而,HBase是分布式数据库。从技术上来讲,HBase更如是“Data
Store”,而未是“Data
Base”,因为它缺少许多关乎项目数据库的特色,比如:列类型、辅助索引、触发器、查询语言等等。(PS:意思是,从技术之角度讲,HBase更如一个数存储,而非像数据库)

HBase集群扩展通过增加RegionServer来实现。如果一个集群从10扩张至20独RegionServer,那么,不仅仅是储存容量增加一倍,连处理能力吗会见增加一倍。对于涉嫌项目数据库而言,也可以为此scale做到这样,但是得指出的凡,这要特地之硬件与存储设备。HBase特性如下:

  • 高一致性读写:HBase不是一个“最终一致性”的多寡存储。这使它重切合高快的集结任务。
  • 机动分区:HBase的表通过region被分布在集结众多中,而region是自行拆分并更分布数据行的。
  • 自动RegionServer容灾
  • Hadoop/HDFS集成:HBase支持HDFS作为其的分布式文件系统
  • MapReduce:HBase支持通过MapReduce基于HBase作为数据源的雅量之并行处理
  • Java Client API:HBase支持通过Java
    API编程的章程来拜访
  • Thrift/REST
    API:HBase也支持Thrift和REST这样的非Java的客户端
  • Block Cache and Bloom Filters
  • Operational
    Management:HBase提供web界面

65.2. When Should I Use HBase?

并无是富有的题材还可用HBase

第一、确保您闹足的数额。如果你来大批的多少实行,那么HBase是一个没错的抉择。如果你不过发数千要百万之数,那么下传统的涉项目数据库可能还好,因为实际你的这些数量可能只需要一个还是少只节点就会处理得收,这样的话集众多中之另的节点就处于空闲状态。

次、确保您切莫需要为此到关系项目数据库的特征(比如:固定类型的排、辅助索引、事务、查询语言等等)。基于关系项目数据库构建的施用不可知由此简单的改观JDBC驱动来传到HBase中。从RDBMS到HBase是一点一滴相反的点滴法设计。

其三、确保您出足的硬件。因为当DataNode数量仅次于5之时刻HDFS将未能够健康办事了。

65.3. What Is The Difference Between HBase and Hadoop/HDFS?

HDFS是一个分布式的文件系统,适合储存大文件,但它不能够提供高效的个性化的当文件被寻觅。HBase是构建于HDFS基础之上的,并且它支持对大表的遭的记录进行快速搜索和换代。HBase内部以数据存放于HDFS中叫索引的“StoreFiles”上坐供应高速搜索。

69. Master

HMaster是Master Server的一个落实。Master
Server负责监视集众多中兼有的RegionServer实例,并且它们呢是有着元数据变动之一个对外接口。在分布式集众多被,典型的Master运行在NameNode那台机器上。

69.3. Interface

HMasterInterface接口是操作元数据的重大接口,提供以下操作:

  • Table (createTable, modifyTable,
    removeTable, enable, disable)
  • ColumnFamily (addColumn, modifyColumn,
    removeColumn)
  • Region (move, assign, unassign)

  • RegionServer


HRegionServer是RegionServer的实现,它承受服务并保管regions。在分布式集众多被,一个RegionServer通常运行于一个DataNode上。

70.1. Interface

HRegionRegionInterface既涵盖数据的操作为隐含region维护的操作

  • Data (get, put, delete, next,
    etc.)
  • Region (splitRegion, compactRegion,
    etc.)

70.5. RegionServer Splitting Implementation

region
server处理写请求,它们为累积在内存中一个于memstore的地方。一旦memstore文件满了,内容将给描绘到磁盘上作为store
file。这个波称为memstore flush。随着store
file的连累积,RegionServer将统一它们变成那个文件,以减少store
file的数据。在每次刷新或者联合之后,region中数的数会发生改变。RegionServer根据切分策略来查阅是否region太好了或当于切分。

逻辑上,region切分的操作特别简短。找一个方便的职位,将region中之多少切分成稀独新的region。然而,这个处理的长河并无略。当切分发生的时,数据并无是及时为重新写到之中心创建的幼女region上。

 

 

71. Regions

语言 4

73. HDFS

语言 5

Data Model

以HBase中,数据让贮存在表中,有行和排。这些术语和涉嫌项目数码发生部分层,当然这不是一个不胜好之类比,但是它们对咱寻思HBase的表示一个多维的map很有帮扶。

Table

  由多尽组成

Row

  HBase中的行由一个row
key和一个或多个列成。Rows在仓储的早晚以row
key的字典序存储。正因为这么,row
key的设计虽显得甚主要。基于这一点,相关连的行相互之间有附近。通常,row
key是一个网站的域名。如果您的row
key是域名,你当以倒置的主意囤它们(比如:org.apache.www,org.apache.mail,org.apache.jira等等)。这样的话,所有的apache域名在表中凡相近的岗位,而未是被域名之率先片段分离。

Column

  HBase中的列由一个列簇和一个列修饰符组成,它们之间为此冒号分隔(:)

Column Family

  列簇由同密密麻麻之排和其的值组成,这是根据性考虑的。每一个列簇都起一样多元之贮存属性,比如:是否它的价应为缓存到内存中,它们的多少怎样吃抽,它们的row
key怎样被编码,等等。表中的各级一行还生同样之列簇,即使一个加的行在给定的列簇上从来不存储任何数据。

Column Qualifier

  一个列修饰符被补充加至列簇中为让指定的多少有提供索引。假设,给一定的列簇是content,那么,一个列修饰符可能是content:html,其它的尚闹或是content:pdf。虽然,列簇在说明创建的上就是稳了,但是列修饰符是勿确定的,而且不同的推行或产生不通之列修饰符。

Cell

语言 6

Timestamp

  一个timestamp被描绘在每个value的旁,它是一个value的版本修饰符。默认的,timestamp代表数量被RegionServer写副的日,你也可以在描写多少的早晚指定一个异的timestamp值

20. Conceptual View

语言 7

在这个事例中,有一个表叫“webtable”,它富含两履行数据(com.cnn.www和com.example.www)和老三单列簇(contents,anchor,people)。对于第一实践(com.cnn.www),anchor包含两列(anchor:cssnsi.com,anchor:my.look.ca),contents包含一排(contents:html)。row
key为“com.cnn.www”的实行有5独版本,而row
key为“com.example.www”的履行有1单版。contents:html列包含全体网站的HTML。

在这表中的空的只有元格并无占空间

生图是一个效仿,目的在讲说明方面我们所说之,便于我们明白:

语言 8

21. Physical View

尽管,在概念上,表看起如是单排一行的,但大体上,它们是本列簇给储存的。一个新的列修饰符可以于随机时刻让填补加到列簇中。

语言 9

以前头的概念视图中的亏欠的只元格是未受积存的。因此,请求contents:html列并且timestamp为t8将回到没有价值。然而,如果非点名timestamp,那么某列的大多数分值都见面吃归。如果指定多只版本,只有找到的率先独照面受归,因为数量是依照timestamp降序存储的。

22. Namespace

一个命名空间是发明底一个逻辑分组

23. Table

24. Row

实践仍row key字典升序存储

25. Column Family

Columns in Apache HBase
are grouped into column
families.

列簇中负有的排列成员还产生雷同之前缀。例如,列courses:history和courses:math都是courses这个列簇的积极分子。用冒号分隔列簇和列修饰符。列簇前缀必须由得以打印输出的字符组成。列修饰符可以由任意字节组成。列簇必须于表明被定义的时刻即便声称好,因此列就无欲在表明创建的时光定义了,并且可以随时新增。

物理上,所有的列簇成员给储存于共。

26. Cells

A {row, column, version} tuple exactly specifies a cell in
HBase.

27. Data Model Operations

数据模型有4独第一操作,分别是Get、Put、Scan和Delete。这些操作是运在表上的。

27.1. Get

回到指定行的性

27.2. Put

补给加新的行到表中,或者更新都在的实行

27.3. Scans

环视特定属性之多行

27.4. Delete

起表中删除一行

28. Versions

在HBase中,{row,column,version}可以规定一个单元格。当行和排于裁减成字节的时段,版本用long类型指定。在HBase中,版本为降序存储,所以,最近底值总是第一给察觉。

29. Sort Order

于有所的数据模型操作,HBase以数据给贮存时的依次返回。首先按行排序,其次按列簇,再从按列修饰符,最后是timestamp。(PS:前是三单是字典升序,最后一个timestamp是降序)

30. Column Metadata

非存储列的首数据,因此,HBase可以支持各一行来不少排,行及履行内可以有多种不同的排。

31. Joins

HBase不直join操作,至少不支持关系项目数据库那种join。在HBase中,读取数据通过Get和Scan。

33. Schema Creation

语言 10

34. Table Schema Rules Of Thumb

  • regions的轻重在10~50GB之间
  • cells的大小非跳10MB
  • 突出的,每个表底列簇于1~3只里面。HBase的申不应有让设计改为模仿关系项目数据库的阐明
  • 一个有1~2只列簇的表所拥有的regions大约在50~100个左右
  • 保障您的列簇名字尽可能的缺乏

  • HBase as a MapReduce Job Data Source and Data Sink


HBase可以当作MapReduce作业的数据源。对于读写HBase的MapReduce作业,建议采用TableMapper和TableReducer。

设您运行HBase作为数据源的MapReduce作业,你得以布局文件中指定表和列名。

当您于HBase读取数据的时刻,TableInputFormat请求regions的列表并且作为一个map。

 

54. HBase MapReduce Examples

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图