数据分析之美 决策树R语言实现

Python017

数据分析之美 决策树R语言实现,第1张

数据分析之美:决策树R语言实现

R语言实现决策树

1.准备数据

[plain] view plain copy

>install.packages("tree")

>library(tree)

>library(ISLR)

>attach(Carseats)

>High=ifelse(Sales<=8,"No","Yes") //set high values by sales data to calssify

>Carseats=data.frame(Carseats,High) //include the high data into the data source

>fix(Carseats)

2.生成决策树

[plain] view plain copy

>tree.carseats=tree(High~.-Sales,Carseats)

>summary(tree.carseats)

[plain] view plain copy

//output training error is 9%

Classification tree:

tree(formula = High ~ . - Sales, data = Carseats)

Variables actually used in tree construction:

[1] "ShelveLoc" "Price" "Income" "CompPrice" "Population"

[6] "Advertising" "Age" "US"

Number of terminal nodes: 27

Residual mean deviance: 0.4575 = 170.7 / 373

Misclassification error rate: 0.09 = 36 / 400

3. 显示决策树

[plain] view plain copy

>plot(tree . carseats )

>text(tree .carseats ,pretty =0)

4.Test Error

[plain] view plain copy

//prepare train data and test data

//We begin by using the sample() function to split the set of observations sample() into two halves, by selecting a random subset of 200 observations out of the original 400 observations.

>set . seed (1)

>train=sample(1:nrow(Carseats),200)

>Carseats.test=Carseats[-train,]

>High.test=High[-train]

//get the tree model with train data

>tree. carseats =tree (High~.-Sales , Carseats , subset =train )

//get the test error with tree model, train data and predict method

//predict is a generic function for predictions from the results of various model fitting functions.

>tree.pred = predict ( tree.carseats , Carseats .test ,type =" class ")

>table ( tree.pred ,High. test)

High. test

tree. pred No Yes

No 86 27

Yes 30 57

>(86+57) /200

[1] 0.715

5.决策树剪枝

[plain] view plain copy

/**

Next, we consider whether pruning the tree might lead to improved results. The function cv.tree() performs cross-validation in order to cv.tree() determine the optimal level of tree complexitycost complexity pruning is used in order to select a sequence of trees for consideration.

For regression trees, only the default, deviance, is accepted. For classification trees, the default is deviance and the alternative is misclass (number of misclassifications or total loss).

We use the argument FUN=prune.misclass in order to indicate that we want the classification error rate to guide the cross-validation and pruning process, rather than the default for the cv.tree() function, which is deviance.

If the tree is regression tree,

>plot(cv. boston$size ,cv. boston$dev ,type=’b ’)

*/

>set . seed (3)

>cv. carseats =cv. tree(tree .carseats ,FUN = prune . misclass ,K=10)

//The cv.tree() function reports the number of terminal nodes of each tree considered (size) as well as the corresponding error rate(dev) and the value of the cost-complexity parameter used (k, which corresponds to α.

>names (cv. carseats )

[1] " size" "dev " "k" " method "

>cv. carseats

$size //the number of terminal nodes of each tree considered

[1] 19 17 14 13 9 7 3 2 1

$dev //the corresponding error rate

[1] 55 55 53 52 50 56 69 65 80

$k // the value of the cost-complexity parameter used

[1] -Inf 0.0000000 0.6666667 1.0000000 1.7500000

2.0000000 4.2500000

[8] 5.0000000 23.0000000

$method //miscalss for classification tree

[1] " misclass "

attr (," class ")

[1] " prune " "tree. sequence "

[plain] view plain copy

//plot the error rate with tree node size to see whcih node size is best

>plot(cv. carseats$size ,cv. carseats$dev ,type=’b ’)

/**

Note that, despite the name, dev corresponds to the cross-validation error rate in this instance. The tree with 9 terminal nodes results in the lowest cross-validation error rate, with 50 cross-validation errors. We plot the error rate as a function of both size and k.

*/

>prune . carseats = prune . misclass ( tree. carseats , best =9)

>plot( prune . carseats )

>text( prune .carseats , pretty =0)

//get test error again to see whether the this pruned tree perform on the test data set

>tree.pred = predict ( prune . carseats , Carseats .test , type =" class ")

>table ( tree.pred ,High. test)

High. test

tree. pred No Yes

No 94 24

Yes 22 60

>(94+60) /200

[1] 0.77

我觉得很不错!

波士顿建立于1630年;市区面积 232,1 平方千米、陆地面积125,4 平方千米、水体面积106,7平方千米、大都会区面积 11684.7 平方千米;海拔43米。

美国“最古老的城市”。

由于定型较早的缘故,波士顿非常紧凑。根据美国人口调查局资料,该市的总面积为89.6平方英里(232.1平方千米);其中陆地面积为48.4平方英里(125.4平方千米),水域面积为41.2平方英里(106.7平方千米,占46.0%)。而其它许多人口相仿的城市,如丹佛有154.9平方英里,而夏洛特有280.5平方英里。在50万人口以上的美国城市中,只有旧金山和华盛顿的面积小于波士顿。波士顿的海拔高度,以洛根国际机场为标准, 是19英尺(5.8米)。 波士顿的最高点是贝勒维尔山,海拔330英尺(101米)。与波士顿毗邻的城镇有温索普、里维尔、切尔西、艾弗瑞、萨默维尔、剑桥、水城、牛顿、布鲁克兰、尼达姆、戴得汉姆、坎顿、米尔顿和昆西,通常都被认为是大波士顿的一部分。

后湾和波士顿南区的大部分是用垃圾碎石填海形成,面积是波士顿最初的3座小山区域的2倍半。最初的3座小山中只有最小的灯塔山被削低以后被保留了部分。市中心区域及近邻地区主要由低层砖砌或石砌建筑组成,有许多联邦建筑风格的古老建筑,其中一些与现代高层建筑混杂在一起,特别是在金融区、政府中心、南波士顿滨水地区和后湾,有波士顿公共图书馆、基督教科学派教堂、科普来广场、纽伯里街等许多杰出的地标建筑,还有新英格兰最高的2座建筑:约翰·汉考克塔楼和慎重塔楼。约翰·汉考克塔楼的近旁有伯克莱大厦(老约翰·汉考克大厦)及其醒目的气象塔。在由单户居住的别墅和多户居住的砖木结构的联排式房屋构成的住宅区中,则散布着一些较小的商业区。目前,南区历史地区仍保留着美国规模最大的维多利亚时期街区。

波士顿公园(Boston Common)位于金融区和灯塔山附近,是美国最古老的公园。连同附近的波士顿公共花园,都属于“翡翠项链”(一系列环绕城市的公园)的一部分,并且都是由弗雷德里克·劳·奥姆斯泰德所设计。主要公园还有沿着查尔斯河的河岸休闲公园。其他公园则散布全市。主要的公园与海滩都靠近查尔斯镇、城堡岛,或沿着多尔切斯特、南波士顿和东波士顿的海岸线。该市最大的公园是弗兰克林公园,包括动物园、阿诺德植物园,和石溪国家保留地。

查尔斯河将波士顿市区和剑桥、水城以及邻近的查尔斯镇分隔开来,向东面是波士顿港和波士顿港岛国家休闲区。尼本赛特河构成波士顿南区与昆西、米尔顿2市的界河。神秘河则将查尔斯镇与切尔西和艾弗瑞分开,而切尔西溪与波士顿港将波士顿和东波士顿分开。

气候

冬季的灯塔山波士顿和整个新英格兰地区一样,属于大陆性气候。但是由于濒临大西洋的地理位置,气候也明显受到海洋的影响。波士顿的气候变化迅速,气温突然连续几天升到30摄氏度以上并不罕见。夏季炎热潮湿,而冬季寒冷,多风并且多雪。甚至在5月和10月也降过雪,当然这极为罕见。

波士顿的春天可能变得很热,气温升到华氏90度;但也可能到5月下旬还很寒冷,只有华氏40度,由于寒冷的海水。最热的月份在7月,平均气温为27.7摄氏度,最低气温为18.4摄氏度,通常很潮湿。最冷的月份是1月,平均气温为35.8华氏度(2.1摄氏度),最低气温为21.6华氏度(-5.6摄氏度)。夏季气温超过90华氏度,冬季气温低于10华氏度并不罕见,但很少会持续多日。记录的最高气温是104华氏度(40摄氏度) 1911年, 7月4日。有记录的最低气温是 -18华氏度(-28摄氏度),1934年2月9日。

该市年平均降雨量为42英寸(108毫米),平均降雪正好也是42英寸(108厘米),远高于远离该市的内陆地区。马萨诸塞伸入北大西洋的地理位置也使它极易受东北风影响,一次暴风雪就可能降雪超过20英寸(50厘米)。雾极为常见,特别在春季和初夏。热带风暴或飓风偶尔也会袭击该地区,特别是在初秋。

波士顿和整个新英格兰地区一样,拥有独特的不发r音的口音,称为新英格兰口音或波士顿口音(波士顿英语);而当地烹调的材质取用海鲜和乳制品较多。

爱尔兰裔美国人在波士顿政治和宗教机构中影响很大。

许多人认为波士顿是一个很有教养的城市,也许是因为知识分子的名声;波士顿许多文起源于它的大学。[27] 该市拥有一些华丽的剧院,有卡特拉庄严剧院(Cutler Majestic Theatre)、波士顿歌剧院、王安表演艺术中心、舒伯特剧院和Orpheum 剧院。著名的表演艺术团体有波士顿芭蕾舞团、波士顿交响乐团、波士顿抒情歌剧团、波士顿巴洛克和亨德尔与海顿协会(美国最古老的合唱队)。这里每年还有许多重要事件,如新年前夕的首夜演出,和在美国独立日期间持续一周的海港节(Harborfest),举行波士顿流行音乐会,并在查尔斯河岸燃放焰火。

由于该市在美国革命中扮演的重要角色,一些与该时期有关的历史遗迹被作为波士顿国家历史公园的一部分得到保护。其中许多是沿着自由之路(Freedom Trail),这条路线是用一条红色线或植入地面的砖块标出来。该市还拥有几个优秀的美术馆,包括波士顿美术博物馆和加德纳博物馆。马萨诸塞大学在哥伦比亚角的校园内设有约翰·肯尼迪图书馆。市内还有波士顿图书馆 (Boston Athenaeum,美国最古老的独立图书馆之一)、波士顿儿童博物馆、公牛与小莺酒馆(Bull &Finch Pub,该建筑因拍摄电视剧《干杯》而著称)、波士顿科学博物馆和新英格兰水族馆。

波士顿还是音乐流派硬核朋克(hardcore punk)的诞生地之一。波士顿的音乐家对这种音乐形式贡献甚大。1990年代,波士顿拥有顶级的第三波斯卡(third wave ska)和斯卡朋克(ska punk)现场表演,著名乐队有麦迪麦迪波斯顿(The Mighty Mighty Bosstones)、The Allstonians、Skavoovie and the Epitones、Dropkick Murphys等。1980年代,硬核朋克摇滚组织了一次这种音乐流派的乐队荟萃演出“这是波士顿,不是洛杉矶”。当时一些夜总会都以这种流派的乐队表演著称,不过所有那些夜总会均已在城市改造时被夷为平地。

媒体

《波士顿环球报》(由纽约时报公司拥有)和《波士顿先驱报》是波士顿主要的2份日报。该市的其他出版物还有《波士顿凤凰报》、《波士顿杂志》、《每周深入报道》、《不合时宜的波士顿人》和《Metro 国际》的波士顿版。《波士顿环球报》还专为该市的公立中学发行一种学生版。报纸《Teens in Print》(T.i.P.)由该市十几岁的孩子写作,每季度发行一期。

波士顿拥有新英格兰最大的广播市场,在全美国排名第11位。[28] 主要的调幅电台有谈话台WRKO 680 AM、体育台/谈话台WEEI 850 AM和新闻台WBZ 1030 AM。多种调频电台服务该地区,例如国家公共广播(NPR)。大学广播电台有WZBC(波士顿学院)、WERS(爱默森大学)、WUMB(UMass Boston)和WMFO(塔夫脱大学)。

划给波士顿电视台的指定市场区域(DMA)包括曼彻斯特 (新罕布什尔州),是美国第七大市场。[29] 在波士顿经营电视业务的有哥伦比亚广播公司(CBS)的WBZ 4、美国广播公司(ABC)的WCVB 5、国家广播公司(NBC)的WHDH 7、福克斯广播公司的WFXT 25等。波士顿还是公共广播公司(PBS)的WGBH 2节目的主要制作地点。大部分波士顿电视台都将发射台设在尼达姆和牛顿附近。

美国各地口音区别还是不算特别大的。波士顿口音属于东新英格兰方言,相对其他美国方言有较重的英国腔,从一些元音和对r的处理可以分辨出来。波士顿口音比较著名的是肯尼迪总统。语言由于使用者的原因多多少少都是会带有口音的,美国的普通话叫做General American,通用美语。至于各种方言好听不好听,也是依人而定的。洛杉矶当然说的是加州方言了,准确点儿说,洛杉矶跟橙县、圣迭戈说的都是南加州方言。