├── fba.xlsx ├── mpg.xlsx ├── pew.xlsx ├── .gitignore ├── boston.xlsx ├── mtcars.xlsx ├── titanic.docx ├── titanic.xlsx ├── README.md ├── hds.html ├── fba.txt ├── pew.txt ├── dbook.R ├── mtcars_new.txt ├── mtcars.txt ├── fba.Rmd ├── titanic.Rmd ├── dbook_old.R ├── fba.md ├── pew.Rmd ├── mpg.Rmd ├── titanic_submission.tsv ├── titanic.md ├── mtcars.Rmd ├── boston.Rmd ├── mpg.md ├── boston.md ├── mtcars.md ├── mpg.txt ├── firstforest.csv ├── titanic_test.csv └── boston.txt /fba.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/fba.xlsx -------------------------------------------------------------------------------- /mpg.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/mpg.xlsx -------------------------------------------------------------------------------- /pew.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/pew.xlsx -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | backup 2 | ch2/mtcars_new.txt 3 | .Rhistory 4 | *_files 5 | -------------------------------------------------------------------------------- /boston.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/boston.xlsx -------------------------------------------------------------------------------- /mtcars.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/mtcars.xlsx -------------------------------------------------------------------------------- /titanic.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/titanic.docx -------------------------------------------------------------------------------- /titanic.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jykim/dbook/HEAD/titanic.xlsx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 자료모음 2 | 데이터 과학 입문서 [헬로 데이터 과학의](http://www.yes24.com/24/goods/24349374) 각 장에 해당하는 자료를 제공합니다. 3 | 책에 대한 좀더 자세한 설명은 [저의 홈페이지를](http://www.hellodatascience.com/) 참조하시기 바랍니다. 4 | -------------------------------------------------------------------------------- /hds.html: -------------------------------------------------------------------------------- 1 |
2 |

본 R 예제는 데이터 과학 입문서인 헬로 데이터 과학의 부록으로 제공됩니다. 좀더 자세한 설명은 제 블로그나 페이스북을 참조하시기 바랍니다.

-------------------------------------------------------------------------------- /fba.txt: -------------------------------------------------------------------------------- 1 | Trial Air Helium 2 | 1 25 25 3 | 2 23 16 4 | 3 18 25 5 | 4 16 14 6 | 5 35 23 7 | 6 15 29 8 | 7 26 25 9 | 8 24 26 10 | 9 24 22 11 | 10 28 26 12 | 11 25 12 13 | 12 19 28 14 | 13 27 28 15 | 14 25 31 16 | 15 34 22 17 | 16 26 29 18 | 17 20 23 19 | 18 22 26 20 | 19 33 35 21 | 20 29 24 22 | 21 31 31 23 | 22 27 34 24 | 23 22 39 25 | 24 29 32 26 | 25 28 14 27 | 26 29 28 28 | 27 22 30 29 | 28 31 27 30 | 29 25 33 31 | 30 20 11 32 | 31 27 26 33 | 32 26 32 34 | 33 28 30 35 | 34 32 29 36 | 35 28 30 37 | 36 25 29 38 | 37 31 29 39 | 38 28 30 40 | 39 28 26 41 | -------------------------------------------------------------------------------- /pew.txt: -------------------------------------------------------------------------------- 1 | "religion" "<$10k" "$10-20k" "$20-30k" "$30-40k" "$40-50k" "$50-75k" "$75-100k" "$100-150k" ">150k" "Don't know" 2 | "Agnostic" 27 34 60 81 76 137 122 109 84 96 3 | "Atheist" 12 27 37 52 35 70 73 59 74 76 4 | "Buddhist" 27 21 30 34 33 58 62 39 53 54 5 | "Catholic" 418 617 732 670 638 1116 949 792 633 1489 6 | "Don't know" 15 14 15 11 10 35 21 17 18 116 7 | "Evangelical Prot" 575 869 1064 982 881 1486 949 723 414 1529 8 | "Hindu" 1 9 7 9 11 34 47 48 54 37 9 | "Historically Black Prot" 228 244 236 238 197 223 131 81 78 339 10 | "Jehovah's Witness" 20 27 24 24 21 30 15 11 6 37 11 | "Jewish" 19 19 25 25 30 95 69 87 151 162 12 | "Mainline Prot" 289 495 619 655 651 1107 939 753 634 1328 13 | "Mormon" 29 40 48 51 56 112 85 49 42 69 14 | "Muslim" 6 7 9 10 9 23 16 8 6 22 15 | "Orthodox" 13 17 23 32 32 47 38 42 46 73 16 | "Other Christian" 9 7 11 13 13 14 18 14 12 18 17 | "Other Faiths" 20 33 40 46 49 63 46 40 41 71 18 | "Other World Religions" 5 2 3 4 2 7 3 4 4 8 19 | "Unaffiliated" 217 299 374 365 341 528 407 321 258 597 20 | -------------------------------------------------------------------------------- /dbook.R: -------------------------------------------------------------------------------- 1 | 2 | printf <- function(...) 3 | { 4 | print(sprintf(...), quote=F) 5 | } 6 | 7 | print.head <- function(tbl, n = 5) 8 | { 9 | kable(head(tbl, n)) 10 | } 11 | 12 | load.packages <- function(pkgs) 13 | { 14 | if(class(pkgs) == "character") 15 | pkgs = c(pkgs) 16 | for(pkg in pkgs){ 17 | if(!(pkg %in% installed.packages()[,"Package"])){ 18 | printf("installing %s", pkg) 19 | install.packages(pkg, repos="http://cran.us.r-project.org") 20 | } 21 | library(pkg,character.only=TRUE) 22 | printf("loading %s", pkg) 23 | } 24 | } 25 | 26 | multiplot <- function(..., plotlist=NULL, file, cols=1, layout=NULL) { 27 | library(grid) 28 | 29 | # Make a list from the ... arguments and plotlist 30 | plots <- c(list(...), plotlist) 31 | 32 | numPlots = length(plots) 33 | 34 | # If layout is NULL, then use 'cols' to determine layout 35 | if (is.null(layout)) { 36 | # Make the panel 37 | # ncol: Number of columns of plots 38 | # nrow: Number of rows needed, calculated from # of cols 39 | layout <- matrix(seq(1, cols * ceiling(numPlots/cols)), 40 | ncol = cols, nrow = ceiling(numPlots/cols)) 41 | } 42 | 43 | if (numPlots==1) { 44 | print(plots[[1]]) 45 | 46 | } else { 47 | # Set up the page 48 | grid.newpage() 49 | pushViewport(viewport(layout = grid.layout(nrow(layout), ncol(layout)))) 50 | 51 | # Make each plot, in the correct location 52 | for (i in 1:numPlots) { 53 | # Get the i,j matrix positions of the regions that contain this subplot 54 | matchidx <- as.data.frame(which(layout == i, arr.ind = TRUE)) 55 | 56 | print(plots[[i]], vp = viewport(layout.pos.row = matchidx$row, 57 | layout.pos.col = matchidx$col)) 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /mtcars_new.txt: -------------------------------------------------------------------------------- 1 | "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" 2 | "Mazda RX4" 21 6 160 110 3.9 2.62 16.46 0 1 4 4 3 | "Mazda RX4 Wag" 21 6 160 110 3.9 2.875 17.02 0 1 4 4 4 | "Datsun 710" 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1 5 | "Hornet 4 Drive" 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 6 | "Hornet Sportabout" 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2 7 | "Valiant" 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1 8 | "Duster 360" 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4 9 | "Merc 240D" 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2 10 | "Merc 230" 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2 11 | "Merc 280" 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4 12 | "Merc 280C" 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4 13 | "Merc 450SE" 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3 14 | "Merc 450SL" 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3 15 | "Merc 450SLC" 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3 16 | "Cadillac Fleetwood" 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4 17 | "Lincoln Continental" 10.4 8 460 215 3 5.424 17.82 0 0 3 4 18 | "Chrysler Imperial" 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 19 | "Fiat 128" 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1 20 | "Honda Civic" 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 21 | "Toyota Corolla" 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1 22 | "Toyota Corona" 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1 23 | "Dodge Challenger" 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2 24 | "AMC Javelin" 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2 25 | "Camaro Z28" 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4 26 | "Pontiac Firebird" 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2 27 | "Fiat X1-9" 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1 28 | "Porsche 914-2" 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2 29 | "Lotus Europa" 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 30 | "Ford Pantera L" 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4 31 | "Ferrari Dino" 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6 32 | "Maserati Bora" 15 8 301 335 3.54 3.57 14.6 0 1 5 8 33 | "Volvo 142E" 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2 34 | -------------------------------------------------------------------------------- /mtcars.txt: -------------------------------------------------------------------------------- 1 | "model" "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb" 2 | "Mazda RX4" 21 6 160 110 3.9 2.62 16.46 0 1 4 4 3 | "Mazda RX4 Wag" 21 6 160 110 3.9 2.875 17.02 0 1 4 4 4 | "Datsun 710" 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1 5 | "Hornet 4 Drive" 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 6 | "Hornet Sportabout" 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2 7 | "Valiant" 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1 8 | "Duster 360" 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4 9 | "Merc 240D" 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2 10 | "Merc 230" 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2 11 | "Merc 280" 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4 12 | "Merc 280C" 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4 13 | "Merc 450SE" 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3 14 | "Merc 450SL" 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3 15 | "Merc 450SLC" 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3 16 | "Cadillac Fleetwood" 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4 17 | "Lincoln Continental" 10.4 8 460 215 3 5.424 17.82 0 0 3 4 18 | "Chrysler Imperial" 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 19 | "Fiat 128" 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1 20 | "Honda Civic" 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 21 | "Toyota Corolla" 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1 22 | "Toyota Corona" 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1 23 | "Dodge Challenger" 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2 24 | "AMC Javelin" 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2 25 | "Camaro Z28" 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4 26 | "Pontiac Firebird" 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2 27 | "Fiat X1-9" 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1 28 | "Porsche 914-2" 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2 29 | "Lotus Europa" 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 30 | "Ford Pantera L" 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4 31 | "Ferrari Dino" 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6 32 | "Maserati Bora" 15 8 301 335 3.54 3.57 14.6 0 1 5 8 33 | "Volvo 142E" 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2 34 | -------------------------------------------------------------------------------- /fba.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "헬로 데이터 과학: 통계적 추론" 3 | author: "Jin Young Kim" 4 | output: 5 | html_document: 6 | keep_md: true 7 | toc: true 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | 13 | 이번에는 R로 통계적 추론의 과정을 실습해보자. 우선 GitHub 페이지에서 다운받은 파일을 다음과 같이 불러들여 살펴보자. 14 | 15 | ```{r, message=FALSE} 16 | source("dbook.R") 17 | load.packages(c("dplyr", "ggplot2", "tidyr", "knitr")) 18 | ht = read.table("fba.txt", header = T) 19 | head(ht) 20 | ``` 21 | 22 | #### 탐색적 분석 23 | 24 | 본격적인 통계적 추론에 나서기 이전에 탐색적 분석을 수행해 보자. 우선 두 조건 하에서 각 시도에 대한 거리를 살펴보자. 25 | 26 | ```{r, fig.height=4} 27 | par(mfrow=c(1,2)) 28 | plot(ht$Air, xlab="Trial", ylab="Distance (air-filled)") 29 | lines(supsmu(ht$Trial, ht$Air)) 30 | plot(ht$Helium, xlab="Trial", ylab="Distance (helium-filled)") 31 | lines(supsmu(ht$Trial, ht$Helium)) 32 | ``` 33 | 34 | 위 플롯에서 몇 가지 경향을 관찰할 수 있다. 35 | 36 | 1. 시도횟수가 늘어나면서 양쪽 모두 평균 거리가 늘어나는 경향을 보인다. 이는 킥을 한 사람(키커)의 학습효과 때문일 것이라고 추정해볼 수 있다. 37 | 1. 양쪽 플롯에서 모두 평균에 훨씬 못 미치는 값이 발견된다. 이는 키커의 실수에 기인했을 가능성이 있다. 38 | 39 | 위 발견은 통계적 추론을 시행하는 데 몇 가지 시사점을 준다. 40 | 41 | 1. 공의 운동거리는 시도횟수와 양의 상관 관계를 갖는다. 따라서 공기와 헬륨 공의 비교에서 시도횟수의 효과를 제거하기 위해서는 각 시도 횟수별 데이터를 묶어서 비교하는 것이 바람직할 것이다. 42 | 1. 키커의 실수가 결과에 미치는 영향을 막기 위해 일정 기준에 못 미치는 결과를 제거하고 결과를 분석하는 것을 생각해볼 수 있다. 43 | 44 | #### 데이터 가공하기 45 | 46 | 이제 탐색적 분석의 결론을 적용해 보자. 여기서 우리가 관심을 갖는 값은 두 조건 하에서 공의 운동 거리가 갖는 차이니, 여기에 해당하는 속성을 추가하자. 그리고 위에서 설명한 대로 일정 기준에 못 미치는 결과를 제거하도록 하자. 47 | 48 | ```{r} 49 | ht$Diff = ht$Helium - ht$Air 50 | htf = filter(ht, Air >= 15 & Helium >= 15) 51 | head(htf) 52 | nrow(ht) 53 | nrow(htf) 54 | ``` 55 | 56 | #### 통계적 추론 57 | 58 | 이제 위 분석 결과를 가지고 모집단에 대한 일반화된 결론을 도출해보자. R에서는 t.test() 함수를 통해 아래와 같이 다양한 조건으로 신뢰구간과 가설검정을 수행할 수 있다. 59 | 60 | ```{r} 61 | # 전체 데이터에 대한 통계적 추론 () 62 | t.test(ht$Air, ht$Helium) 63 | # 전체 데이터에 대한 통계적 추론 (대응 표본) 64 | t.test(ht$Air, ht$Helium, paired = T) 65 | # 가공된 부분 데이터에 대한 통계적 추론 (대응 표본) 66 | t.test(htf$Air, htf$Helium, paired = T) 67 | ``` 68 | 69 | 위 결과를 보면 대응 표본을 사용한 경우, 그리고 부분 데이터를 사용한 경우가 그렇지 않은 경우에 비해 좁은 신뢰구간과 더 낮은 p-value를 얻는 것을 확인할 수 있다. 70 | -------------------------------------------------------------------------------- /titanic.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: '헬로 데이터 과학: 분류 실습' 3 | author: "Jin Young Kim" 4 | output: 5 | html_document: 6 | keep_md: yes 7 | toc: yes 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | 13 | 이번에는 캐글에 입문하는 사람들을 위해 캐글에서 제공하는 예측 문제를 바탕으로 실제 캐글에서 제공하는 문제를 풀어 답을 제출하고, 퍼블릭 리더보드에서 순위를 확인하는 과정을 알아보자. 이 과정에서 앞서 공부한 데이터 문제 해결의 과정을 실습해보는 의미도 있다. 14 | 15 | 여기서 사용할 문제는 '타이타닉호의 생존자 예측'으로, 타이타닉 호에 탑승한 승객의 생존 여부를 예측하는 것이다. 최근에 있었던 세월호 사태와 같이 대형 인명사고 이후에 많은 사람들의 생존 여부가 밝혀지지 않은 경우 예측 모델을 사용하면 승객들의 생사를 확인하는데 도움을 받을 수 있을 것이다. (물론 이는 생사가 알려진 승객과 알려지지 않은 승객의 집단이 무작위로 추출되었을 때만 가능한 일이다.) 16 | 17 | 여기에 사용되는 데이터셋은 타이타닉호에 탑승한 승객들의 다양한 신상정보와 (나이, 객실, 성별 등) 생존여부를 기록한 것으로, 이 데이터셋은 캐글(Kaggle)의 홈페이지에서 구할 수 있다. 우선 이 데이터를 가지고 탐색적 데이터 분석을 수행해보고, 이를 바탕으로 승객들의 생존 여부를 예측하는 작업을 수행한다. 본 실습에는 R을 사용한다. (R은 캐글 참가자들이 가장 많이 사용하는 프로그래밍 언어이기도 하다.) 18 | 19 | 20 | ```{r, message=FALSE} 21 | source("dbook.R") 22 | load.packages(c("ggplot2", "rpart", "rpart.plot")) 23 | train <- read.csv("titanic_train.csv") 24 | test <- read.csv("titanic_test.csv") 25 | ``` 26 | 27 | 28 | #### 개별 속성 분석 29 | 30 | 우선 데이터의 전체적인 분포를 알아보자. 아래는 데이터의 속성별 값의 분포를 보여준다. 31 | 32 | ```{r} 33 | summary(train) 34 | ``` 35 | 36 | 이제 예측 목표가 되는 생존 여부의 분포를 알아보자. 주어진 학습 데이터의 경우 약 38%의 승객이 생존한 것을 알 수 있다. 37 | 38 | ```{r} 39 | table(train$Survived) 40 | ``` 41 | 42 | 43 | 이중 수치형 속성인 티켓 가격과 나이의 확률 분포를 알아보면 다음과 같다. 티켓 가격은 상대적으로 저렴한 50불 미만이 대부분이고, 나이는 20-40대의 청장년 층과 그들의 자녀일 것으로 추정되는 어린 아이가 많은 것을 알 수 있다. 44 | 45 | ```{r, fig.width=8, fig.height=4} 46 | par(mfrow=c(1,2)) 47 | plot(density(train$Fare), main="", xlab="Fare Distribution") 48 | plot(density(train[!is.na(train$Age),]$Age), main="", xlab="Age Distribution") 49 | ``` 50 | 51 | #### 속성간 관계 분석 52 | 53 | 이제 속성간 관계를 살펴보자. 다음은 타이타닉호의 탑승자 가운데 남녀 및 각 객실의 생존 비율을 비교한 모자이크 플롯이다. 상대적으로 남성이, 그리고 3등석 손님의 사망률이 높았음을 알 수 있다. 54 | 55 | ```{r, fig.width=8} 56 | par(mfrow=c(1,2)) 57 | mosaicplot(table(ifelse(train$Survived==1, "Survived","Dead"), train$Sex), main="", cex=1.2) 58 | mosaicplot(table(ifelse(train$Survived==1, "Survived","Dead"), train$Pclass), main="", cex=1.2) 59 | ``` 60 | 61 | 아래는 타이타닉호 탑승객의 나이와 생존 여부의 관계를 나타낸 그래프다. 왼쪽 박스플롯은 얼핏 생존자의 나이가 약간 어리지만 두 그룹간의 큰 차이가 없는 것으로 보인다. 하지만 오른쪽의 스케터플롯을 보면 사망자중 20대와 노인의 비율이 높고, 생존자중에는 아이의 비율이 높은 것을 알 수 있다. 이처럼 시각화의 종류에 따라 같은 데이터에서 다른 결론을 도출할 수 있다. 62 | 63 | ```{r, fig.width=8} 64 | par(mfrow=c(1,2)) 65 | boxplot(Age ~ Survived, train, xlab="Survival", ylab="Age", cex=1.2) 66 | plot(Age ~ jitter(Survived), train, cex=1.2) 67 | ``` 68 | 69 | 마지막으로 두 수치 속성 간의 관계를 나타내는 데에는 스케터플롯이 적절하다. 스케터플롯의 각 점에 색상과 모양을 추가하면 더 많은 정보를 한눈에 볼 수 있다. 아래 플롯은 나이와 요금의 (로그 스케일) 스케터플롯에 색상과 (생존 여부) 모양을 (성별) 추가한 결과다. 젊은 남성으로 낮은 요금을 지불한 승객의 경우 사망 확률이 매우 높은 것을 알 수 있다. 70 | 71 | ```{r, warning=F} 72 | qplot(jitter(Age), jitter(log(Fare)), data=train, color=factor(Survived), shape=factor(Sex)) 73 | ``` 74 | 75 | #### 모델 만들기 76 | 77 | 이제 기본적인 예측 모델을 만들어 보자. 기본 모델을 만드는 이유에는 데이터를 잘 이해하는 것도 있으니 해석이 쉬운 의사결정트리를 만들어 보자. 아래는 데이터에 주어진 속성을 가지고 만든 의사결정트리를 시각화한 결과다. 승객의 성과 나이, 객실 유형이 예측에 있어 첫번째 기준이 되는 것을 알 수 있다. 78 | 79 | ```{r} 80 | fit <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked, data=train, method="class") 81 | rpart.plot(fit) 82 | ``` 83 | 84 | 마지막으로 모델을 실제 테스트 데이터 적용하여 제출용 파일을 만들어 보자. R에서는 predict() 함수를 사용하여 만들어진 모델을 새로운 데이터에 적용할 수 있다. 85 | 86 | ```{r} 87 | Prediction <- predict(fit, test, type = "class") 88 | submit <- data.frame(PassengerId = test$PassengerId, Survived = Prediction) 89 | head(submit) 90 | write.csv(submit, file = "titanic_submission.tsv", row.names = FALSE) 91 | ``` -------------------------------------------------------------------------------- /dbook_old.R: -------------------------------------------------------------------------------- 1 | 2 | check.and.install.packages <- function(list.of.packages) 3 | { 4 | new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])] 5 | if(length(new.packages)) install.packages(new.packages, repos="http://cran.us.r-project.org") 6 | } 7 | 8 | eval.ci <- function(pop, level = 0.95, boot.r = 1000, debug = F) 9 | { 10 | alpha = (1-level)/2 11 | #t1 = qt(alpha, length(pop)-1) 12 | #t2 = qt(level + alpha, length(pop)-1) 13 | 14 | # Analytical C.I. 15 | n = length(pop) 16 | z1 = qnorm(alpha) 17 | z2 = qnorm(level + alpha) 18 | stderr.a = sd(pop) / sqrt(length(pop)) 19 | ci95.a = c( mean(pop) + stderr.a * z1, mean(pop) + stderr.a * z2) 20 | 21 | # Bootstrapped C.I. 22 | bsm = aaply(seq(1, boot.r), 1, function(i){ 23 | sample.i = pop[sample(length(pop), length(pop), replace=T)] 24 | if(i <= 10 & debug) 25 | print(cbind(t(sample.i[1:10]), mean(sample.i))) 26 | mean(sample.i) 27 | }) 28 | stderr.b = sd(bsm) 29 | ci95.b = quantile( bsm, c(alpha, level + alpha) ) 30 | # Visualize 31 | if( debug ){ 32 | plot(density(bsm), lty=2, xlab = "Sample Mean" ,main = sprintf("Comparing the Sampling Distribution & Confidence Interval")) 33 | x <- seq(-5, 5, length=100) 34 | lines(x, dnorm(x, mean(pop), stderr.a)) 35 | arrows(ci95.a[1], 0.1, ci95.a[2], 0.1, code = 3) 36 | arrows(ci95.b[1], 0.2, ci95.b[2], 0.2, code = 3, lty=2) 37 | } 38 | data.frame(stderr.a=stderr.a , stderr.b=stderr.b, 39 | ci95.a1=ci95.a[1], ci95.b1=ci95.b[1], 40 | ci95.a2=ci95.a[2], ci95.b2=ci95.b[2]) 41 | } 42 | 43 | build.model <- function(feats, tgt){ 44 | model.str = sprintf("%s ~ %s", tgt, paste(feats, collapse=" + ")) 45 | print(model.str) 46 | eval(model.str) 47 | } 48 | 49 | build.model.nmo <- function(dt, idx.tgt){ 50 | build.model(colnames(dt)[-idx.tgt], colnames(dt)[idx.tgt]) 51 | } 52 | 53 | rmse <- function(c1, c2){ 54 | sqrt(mean((c1 - c2) ^ 2)) 55 | } 56 | 57 | accuracy <- function(tbl){ 58 | sum_diag = 0 59 | for(i in 1:sqrt(length(tbl))){ 60 | sum_diag = sum_diag + tbl[i, i] 61 | } 62 | sum_diag / sum(tbl) 63 | } 64 | 65 | get.ctab <- function(pred, act){ 66 | table(ifelse(pred > 0, "W (pred)", "L (pred)"), ifelse(act > 0, "W (act)", "L (act)")) 67 | } 68 | 69 | cval.model <- function(cvt, fun.model, k.fold, ...){ 70 | cvt$fold = sample(1:k.fold, nrow(cvt), replace=T) 71 | crt = data.frame() 72 | for(i in 1:k.fold){ 73 | cvtr = cvt[cvt$fold != i,] 74 | cvte = cvt[cvt$fold == i,] 75 | cvte$res = predict(fun.model(cvtr, ...), cvte) 76 | crt = rbind(crt, cvte) 77 | } 78 | crt 79 | } 80 | 81 | 82 | cval.model2 <- function(cvt, fun.model, k.fold, predict = predict(...) , ...){ 83 | cvt$fold = sample(1:k.fold, nrow(cvt), replace=T) 84 | crt = data.frame() 85 | for(i in 1:k.fold){ 86 | cvtr = cvt[cvt$fold != i,] 87 | cvte = cvt[cvt$fold == i,] 88 | cvte$res = predict(fun.model(cvtr, ...), cvte) 89 | #cvte$red = cvte[[idx.tgt]] - cvte$res 90 | crt = rbind(crt, cvte) 91 | } 92 | crt 93 | } 94 | 95 | 96 | eval.model <- function(cvt, idx.tgt, fun.model, ratio.train = 0.5){ 97 | cvt$fold = rbinom(nrow(cvt), 1, ratio.train) 98 | cvtr = cvt[cvt$fold == 1,] 99 | cvte = cvt[cvt$fold == 0,] 100 | cvtr$res = predict(fun.model(cvtr), cvtr) 101 | cvte$res = predict(fun.model(cvtr), cvte) 102 | list(r=cvtr, e=cvte) 103 | } 104 | 105 | plot.vss <- function(vs) 106 | { 107 | vss = summary(vs) 108 | par(mfrow=c(2,2)) 109 | plot(vss$rsq) 110 | lines(vss$adjr2) 111 | plot(vss$rss, type="l") 112 | plot(vss$cp, type="l") 113 | plot(vss$bic, type="l") 114 | vss 115 | } -------------------------------------------------------------------------------- /fba.md: -------------------------------------------------------------------------------- 1 | # 헬로 데이터 과학: 통계적 추론 2 | Jin Young Kim 3 | 4 | 이번에는 R로 통계적 추론의 과정을 실습해보자. 우선 GitHub 페이지에서 다운받은 파일을 다음과 같이 불러들여 살펴보자. 5 | 6 | 7 | ```r 8 | source("dbook.R") 9 | load.packages(c("dplyr", "ggplot2", "tidyr", "knitr")) 10 | ``` 11 | 12 | ``` 13 | ## [1] loading dplyr 14 | ## [1] loading ggplot2 15 | ## [1] loading tidyr 16 | ## [1] loading knitr 17 | ``` 18 | 19 | ```r 20 | ht = read.table("fba.txt", header = T) 21 | head(ht) 22 | ``` 23 | 24 | ``` 25 | ## Trial Air Helium 26 | ## 1 1 25 25 27 | ## 2 2 23 16 28 | ## 3 3 18 25 29 | ## 4 4 16 14 30 | ## 5 5 35 23 31 | ## 6 6 15 29 32 | ``` 33 | 34 | #### 탐색적 분석 35 | 36 | 본격적인 통계적 추론에 나서기 이전에 탐색적 분석을 수행해 보자. 우선 두 조건 하에서 각 시도에 대한 거리를 살펴보자. 37 | 38 | 39 | ```r 40 | par(mfrow=c(1,2)) 41 | plot(ht$Air, xlab="Trial", ylab="Distance (air-filled)") 42 | lines(supsmu(ht$Trial, ht$Air)) 43 | plot(ht$Helium, xlab="Trial", ylab="Distance (helium-filled)") 44 | lines(supsmu(ht$Trial, ht$Helium)) 45 | ``` 46 | 47 | ![](fba_files/figure-html/unnamed-chunk-2-1.png) 48 | 49 | 위 플롯에서 몇 가지 경향을 관찰할 수 있다. 50 | 51 | 1. 시도횟수가 늘어나면서 양쪽 모두 평균 거리가 늘어나는 경향을 보인다. 이는 킥을 한 사람(키커)의 학습효과 때문일 것이라고 추정해볼 수 있다. 52 | 1. 양쪽 플롯에서 모두 평균에 훨씬 못 미치는 값이 발견된다. 이는 키커의 실수에 기인했을 가능성이 있다. 53 | 54 | 위 발견은 통계적 추론을 시행하는 데 몇 가지 시사점을 준다. 55 | 56 | 1. 공의 운동거리는 시도횟수와 양의 상관 관계를 갖는다. 따라서 공기와 헬륨 공의 비교에서 시도횟수의 효과를 제거하기 위해서는 각 시도 횟수별 데이터를 묶어서 비교하는 것이 바람직할 것이다. 57 | 1. 키커의 실수가 결과에 미치는 영향을 막기 위해 일정 기준에 못 미치는 결과를 제거하고 결과를 분석하는 것을 생각해볼 수 있다. 58 | 59 | #### 데이터 가공하기 60 | 61 | 이제 탐색적 분석의 결론을 적용해 보자. 여기서 우리가 관심을 갖는 값은 두 조건 하에서 공의 운동 거리가 갖는 차이니, 여기에 해당하는 속성을 추가하자. 그리고 위에서 설명한 대로 일정 기준에 못 미치는 결과를 제거하도록 하자. 62 | 63 | 64 | ```r 65 | ht$Diff = ht$Helium - ht$Air 66 | htf = filter(ht, Air >= 15 & Helium >= 15) 67 | head(htf) 68 | ``` 69 | 70 | ``` 71 | ## Trial Air Helium Diff 72 | ## 1 1 25 25 0 73 | ## 2 2 23 16 -7 74 | ## 3 3 18 25 7 75 | ## 4 5 35 23 -12 76 | ## 5 6 15 29 14 77 | ## 6 7 26 25 -1 78 | ``` 79 | 80 | ```r 81 | nrow(ht) 82 | ``` 83 | 84 | ``` 85 | ## [1] 39 86 | ``` 87 | 88 | ```r 89 | nrow(htf) 90 | ``` 91 | 92 | ``` 93 | ## [1] 35 94 | ``` 95 | 96 | #### 통계적 추론 97 | 98 | 이제 위 분석 결과를 가지고 모집단에 대한 일반화된 결론을 도출해보자. R에서는 t.test() 함수를 통해 아래와 같이 다양한 조건으로 신뢰구간과 가설검정을 수행할 수 있다. 99 | 100 | 101 | ```r 102 | # 전체 데이터에 대한 통계적 추론 () 103 | t.test(ht$Air, ht$Helium) 104 | ``` 105 | 106 | ``` 107 | ## 108 | ## Welch Two Sample t-test 109 | ## 110 | ## data: ht$Air and ht$Helium 111 | ## t = -0.3703, df = 70.666, p-value = 0.7123 112 | ## alternative hypothesis: true difference in means is not equal to 0 113 | ## 95 percent confidence interval: 114 | ## -2.946828 2.023751 115 | ## sample estimates: 116 | ## mean of x mean of y 117 | ## 25.92308 26.38462 118 | ``` 119 | 120 | ```r 121 | # 전체 데이터에 대한 통계적 추론 (대응 표본) 122 | t.test(ht$Air, ht$Helium, paired = T) 123 | ``` 124 | 125 | ``` 126 | ## 127 | ## Paired t-test 128 | ## 129 | ## data: ht$Air and ht$Helium 130 | ## t = -0.4198, df = 38, p-value = 0.677 131 | ## alternative hypothesis: true difference in means is not equal to 0 132 | ## 95 percent confidence interval: 133 | ## -2.687423 1.764346 134 | ## sample estimates: 135 | ## mean of the differences 136 | ## -0.4615385 137 | ``` 138 | 139 | ```r 140 | # 가공된 부분 데이터에 대한 통계적 추론 (대응 표본) 141 | t.test(htf$Air, htf$Helium, paired = T) 142 | ``` 143 | 144 | ``` 145 | ## 146 | ## Paired t-test 147 | ## 148 | ## data: htf$Air and htf$Helium 149 | ## t = -1.5547, df = 34, p-value = 0.1293 150 | ## alternative hypothesis: true difference in means is not equal to 0 151 | ## 95 percent confidence interval: 152 | ## -3.6914943 0.4914943 153 | ## sample estimates: 154 | ## mean of the differences 155 | ## -1.6 156 | ``` 157 | 158 | 위 결과를 보면 대응 표본을 사용한 경우, 그리고 부분 데이터를 사용한 경우가 그렇지 않은 경우에 비해 좁은 신뢰구간과 더 낮은 p-value를 얻는 것을 확인할 수 있다. 159 | -------------------------------------------------------------------------------- /pew.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: '헬로 데이터 과학: 데이터 준비하기' 3 | author: "김진영" 4 | output: 5 | html_document: 6 | self_contained: yes 7 | toc: yes 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | 13 | #### 환경 설정하기 14 | 15 | 이번에는 R로 데이터를 준비하는 과정을 살펴보자. 이 장의 내용은 Hadley Wickham교수의 논문에 일부 기반한다. [^1] 우선 2장에서 설명한대로 GitHub에서 다운받은 파일이 있는 곳으로 작업 디렉토리를 설정하자. (단축키: Ctrl+Shift+H) 이후 이 책에서 제공하는 R 라이브러리를 로딩하고, 이 장에서 사용할 패키지를 불러오자. 16 | 17 | [^1]: Tidy Data http://vita.had.co.nz/papers/tidy-data.pdf 18 | 19 | ```{r, message=FALSE} 20 | source("dbook.R") 21 | load.packages(c("stringr", "reshape2", "dplyr", "ggplot2")) 22 | ``` 23 | 24 | 우선 원본 데이터를 불러와서 살펴보자. 테이블의 각 속성이 서로 다른 소득 구간에 속하는 사람들의 분포를 나타내는 것을 알 수 있다. 이 데이터는 각 행이 개별 속성을 포함해야 한다는 표준 테이블의 원칙을 [^1] 어기고 있다. 25 | 26 | ```{r} 27 | # pew.txt을 읽어들이고 확인한다. 28 | pew.raw <- read.delim("pew.txt", check.names=FALSE, stringsAsFactors=FALSE) 29 | head(pew.raw) 30 | ``` 31 | 32 | #### 표준 테이블로 변환하기 33 | 34 | 35 | 앞서 편리한 분석을 위해서는 표준 테이블로 변환해야 한다고 언급했다. 표준 테이블은 각 행에 관찰 항목이, 그리고 각 열에 개별 속성이 들어간 테이블이다. R에서는 이를 위해 melt() 함수를 사용한다. 36 | 37 | ```{r, warning=FALSE} 38 | # religion 속성을 제외한 다른 속성을 측정값(measure)으로 변환한다. 39 | pew.tidy <- melt(pew.raw, "religion") 40 | 41 | # 데이터의 속성 이름을 지정한다. 42 | names(pew.tidy) <- c("religion", "income", "count") 43 | head(pew.tidy) 44 | ``` 45 | 46 | #### 소득 속성 추가하기 47 | 48 | 그리고 구간 형태로 되어있는 소득을 구간별 평균과 같은 수치값으로 바꾸는 자료 변환 작업이 필요하다. 이 작업을 위해 우선 주어진 범위를 수치형으로 바꾸는 range.to.number() 함수를 다음과 같이 정의하자. 49 | 50 | ```{r} 51 | # 범위 형태의 문자열을 숫자로 바꾸는 함수 52 | range.to.number <- function(v){ 53 | # 정규식을 사용하여 범위 문자열에서 숫자 문자열을 모두 추출한다. 54 | range.values = str_extract_all(v, "\\d+") 55 | # 숫자가 추출되면, 숫자 문자열을 수치형으로 바꾸고 그 평균을 구한다. 56 | if(length(range.values[[1]]) > 0) 57 | mean(sapply(range.values, as.integer)) 58 | else 59 | NA 60 | } 61 | ``` 62 | 63 | range.to.number() 함수는 문자열에서 숫자를 추출하고, 문자열이 발견되지 않는 경우 NA를 반환한다. NA는 R에서 값이 존재하지 않는 경우에 사용되는 기호다. 64 | 65 | ```{r} 66 | range.to.number("$10k") 67 | range.to.number("$10-20k") 68 | range.to.number("No Number") 69 | ``` 70 | 71 | 이제 위 함수를 실제 데이터에 적용해보자. 그런데 일부 항목에서 숫자 형태의 소득을 구하는 데 실패하는 것을 알 수 있다. 이는 일부 항목의 소득 구간이 숫자가 아닌 ‘Don’t Know/refused’라는 텍스트 형태이기 때문이다. 이번 분석에서는 해당 항목을 제외하도록 하자. sapply()는 첫번째 인자로 주어지는 속성 벡터에 두번쨰 인자로 주어지는 함수를 적용하는 명령이다. 72 | 73 | ```{r} 74 | # 소득 값을 숫자로 변환한다. 75 | pew.tidy$income.usd = sapply(pew.tidy$income, range.to.number) * 1000 76 | head(pew.tidy$income.usd) 77 | ``` 78 | 79 | 정리 작업을 완료한 테이블을 살펴보자. 아래 표에서 income.usd는 원본 데이터의 소득 구간에 해당하는 미국 달러 단위의 소득 수준을 나타낸다. 80 | 81 | ```{r} 82 | # 변환에 실패한 항목을 버린다. 83 | pew.tidy = na.omit(pew.tidy) 84 | head(pew.tidy) 85 | 86 | ``` 87 | 이제 위 데이터를 시각화해보자. 아래 플롯은 정리된 테이블을 바탕으로 각 종교별 교인들의 구간별 소득 분포를 시각적으로 보여준다. 위 테이블에 있는 데이터를 그대로 옮겨 놓으면 아래와 같은 플롯이 완성된다. 88 | 89 | ```{r} 90 | qplot(income.usd, religion, data = pew.tidy, size=count) 91 | ``` 92 | 93 | #### 데이터 집계하기 94 | 이제 위 데이터를 집계하는 방법을 생각해보자. 이런 집계가 가능한 것은 데이터를 표준 테이블 형태로 변형했기 때문이다. 우선 쉽게 생각할 수 있는 집계 방법은 종교 집단에 따라 총 신자 수 및 평균 소득을 구하는 것이다. 95 | 96 | ```{r} 97 | pew.agg = pew.tidy %>% # 원본 데이터를 98 | group_by(religion) %>% # religion을 기준으로 그룹화하고 99 | summarize(total.count = sum(count), # 전체 교인의 명수와 100 | avg.income.usd = mean(income.usd*count) / sum(count)) # 평균 소득을 계산한다 101 | head(pew.agg) 102 | ``` 103 | 104 | 위에서 구한 통계값을 막대 그래프로 나타낸 결과는 다음과 같다. coord_flip() 함수는 세로 바 형태의 그래프를 가로로 회전하는 기능을 한다. 105 | 106 | ```{r, fig.width=10} 107 | # 종교별 전체 교인의 수 차트 108 | q1 = qplot(x=religion, y=total.count, data=pew.agg, geom="bar", # 차트의 XY축과 데이터 및 형태를 지정한다 109 | width=0.5, stat="identity") + coord_flip() # 차트의 세부 모양과 방향을 지정한다 110 | 111 | # 종교별 평균 소득 플롯 112 | q2 = qplot(x=religion, y=avg.income.usd, data=pew.agg, geom="bar", 113 | width=0.5, stat="identity") + coord_flip() 114 | 115 | # 위에서 만든 두개의 플롯을 한 화면에 출력한다. (cols는 열의 개수) 116 | multiplot(q1, q2, cols=2) 117 | ``` 118 | 119 | 120 | -------------------------------------------------------------------------------- /mpg.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "헬로 데이터 과학: 탐색적 데이터 분석" 3 | author: "Jin Young Kim" 4 | output: 5 | html_document: 6 | keep_md: true 7 | toc: true 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | #### 개별 속성 분석하기 13 | 14 | 이번에는 R로 탐색적 분석의 과정을 살펴보자. 우선 2장에서 설명한대로 GitHub에서 다운받은 파일이 있는 곳으로 작업 디렉토리를 설정하자. (단축키: Ctrl+Shift+H) 그 후 이 책에서 제공하는 R 라이브러리를 로딩하고, 이 장에서 사용할 패키지를 불러오자. 15 | 16 | 17 | ```{r, message=FALSE} 18 | source("dbook.R") 19 | load.packages(c("dplyr", "ggplot2", "tidyr", "knitr")) 20 | mpg = read.table("mpg.txt", header=T, sep="\t") 21 | ``` 22 | 23 | 아래는 우리가 사용할 MPG 데이터에서 10건의 표본을 추출한 것이다. dplyr 패키지에서 제공하는 sample_n() 함수는 주어진 데이터에서 n개의 표본을 추출한다. knitr 패키지에서 제공하는 kable() 함수는 테이블을 보기좋게 출력해준다. 표본 데이터를 눈으로 보면서 데이터에 익숙해지도록 하자. 24 | 25 | ```{r,out.width=100} 26 | kable(sample_n(mpg,10)) 27 | ``` 28 | 29 | 데이터의 값과 함께 각 속성의 데이터형도 살펴보자. R에서는 str()함수를 사용하여 주어진 데이터의 자료형을 확인할 수 있다. R에서 Factor는 카테고리형 데이터를 가리키며 levels는 각 속성에 존재하는 카테고리의 개수를 가리킨다. int나 num은 정수 및 실수형 데이터를 가리킨다. 30 | 31 | ```{r} 32 | str(mpg) 33 | ``` 34 | 35 | 개별 데이터를 살펴본 후에는 summary() 함수를 통해 데이터를 요약하는 다양한 통계값을 계산하여 살펴볼 수 있다. 이런 통계값은 데이터의 유형에 따라 달라진다. 예컨대 연속된 수치에 대해서는 평균 및 중간값 등을, 그리고 범주 및 순서를 나타내는 속성에 대해서는 최빈값을 계산할 수 있을 것이다. 아래는 MPG 데이터의 다양한 속성들의 통계값이다. 36 | 37 | ```{r} 38 | summary(mpg) 39 | ``` 40 | 41 | 데이터에 적절한 시각화를 적용하여 전체 값의 분포를 한눈에 볼 수 있다. 아래는 MPG 데이터셋의 고속도로 연비(hwy)를 확률 밀도 그래프(density plot), 히스토그램(histogram), 그리고 점플롯(dotplot)으로 표현한 것이다. 이 시각화 결과에 따르면 데이터에 크게 두 가지 그룹의 차량이 (세단과 SUV) 있다는 사실이 드러난다. 이중 히스토그램과 점플롯에서는 개별 데이터의 분포를 좀 더 뚜렷이 볼 수 있다. 42 | 43 | ```{r, fig.height=3, fig.width=10} 44 | a = ggplot(mpg, aes(hwy)) # 기본 플롯을 만듦 45 | p1 = a + geom_density() # 기본 플롯을 확률밀도함수 형태로 출력 46 | p2 = a + geom_histogram() # 기본 플롯을 히스토그램 형태로 출력 47 | p3 = a + geom_dotplot() # 기본 플롯을 점플롯 형태로 출력 48 | multiplot(p1, p2, p3, cols=3) 49 | ``` 50 | 51 | #### 속성 간의 관계 분석하기 52 | 53 | 이제 속성 간의 관계를 분석하는 과정을 MPG 데이터를 통해 알아보도록 하자. 우선 아래 표는 수치형 속성 간의 상관계수를 나타낸 것이다. 연비(hwy/cty)와 실린더 수 (cyl) 및 배기량(disp)이 높은 상관 관계를 가지는 것을 볼 수 있다. 54 | 55 | ```{r} 56 | mpg.num = select(mpg, displ, year, cyl, cty, hwy) 57 | round(cor(mpg.num), 3) 58 | ``` 59 | 60 | 하지만 상관계수가 데이터에 존재하는 모든 트렌드를 요약하는 것은 아니다. 같은 데이터에 해당하는 아래 스케터플롯을 보면 각 속성 쌍의 관계가 다양한 양상의 띈다는 것을 알 수 있다. 61 | 62 | ```{r, fig.width = 7, fig.height = 7} 63 | plot(mpg.num) 64 | ``` 65 | 66 | 이렇게 모든 속성 간의 관계를 상관도와 스케터플롯을 통해 관찰한 후에는 관심이 가는 개별 속성 간의 관계를 자세히 살펴보아야 할 것이다. 두 속성 간의 관계를 알아보는 방법은 대상 속성의 유형의 조합에 따라 달라진다. 우선 두 카테고리형 속성 간의 관계를 생각해보자. 두 속성이 모두 제한된 카테고리의 값을 갖기 때문에, 이를 분석하는 데에는 각 카테고리의 조합에 속하는 항목의 수를 나타내는 교차 테이블이나 모자이크 플롯이 적절하다. 67 | 68 | 다음 표와 모자이크 플롯은 MPG 데이터셋에서 실린더 수와 구동방식의 관계를 나타낸다. 후륜 방식은 대부분 대형차에, 그리고 전륜 방식은 소/중형차에 사용되는 것을 알 수 있다. 같은 데이터를 모자이크 플롯으로 보면 대부분의 차가 사륜 구동 혹은 전륜 구동을 띄고 있다는 사실, 그리고 실린더 수의 분포가 구동방식에 따라 다르다는 사실을 한눈에 알 수 있다. 69 | 70 | ```{r} 71 | # cyl과 drv 속성의 교차 테이블을만든다. 72 | table(mpg$cyl, mpg$drv) 73 | mosaicplot(table(mpg$drv, mpg$cyl), cex=1.2, main="") 74 | ``` 75 | 76 | 다음으로 카테고리형 속성과 수치형 속성 간의 관계를 분석하는 경우에는 제한된 종류의 값을 갖는 카테고리형 속성의 특성을 고려하여 각 카테고리별 데이터의 분포를 볼 수 있다. 여기에는 박스플롯이 널리 사용되는데, 박스플롯은 주어진 데이터의 25% 및 75%에 해당하는 백분위 값을 박스로 표시하고, 여기에 50%에 해당하는 중앙값을 가운데 굵은 선으로 표시한 플롯이다. 77 | 78 | 데이터를 대표하는 통계값을 한눈에 보기 위해 박스플롯을 사용한다면, 개별 데이터 값을 관찰하기 위해서는 스케터플롯을 사용한다. 단, 이 경우 jitter() 함수를 사용하여 같은 카테고리를 갖는 값들이 서로 겹치지 않도록 노이즈를 더해준다. 아래 플롯은 실린더 수(cyl)와 고속도로 연비(hwy)의 상관 관계를 보여준다. 79 | 80 | 81 | ```{r, fig.width=10} 82 | par(mfrow=c(1,2)) 83 | plot(jitter(mpg$cyl), mpg$hwy, xlab="Year", ylab="MPG(hwy)") 84 | boxplot(hwy ~ cyl, filter(mpg, cyl != 5), xlab="Year", ylab="MPG(hwy)") 85 | ``` 86 | 87 | 또한 두 수치형 속성 간의 관계는 스케터플롯으로 확인하는 것이 가장 일반적이다. 아래 왼쪽의 스케터플롯에서는 배기량과 도시 연비의 상관 관계를 보여준다(상관계수:-0.799). 배기량과 도시 연비가 대체로 음의 상관 관계를 갖지만, 어느 정도 배기량이 높아지면 상관 관계가 희박해진다. 이에 반해 도시 연비와 고속도로 연비에 관한 아래 오른쪽의 스케터플롯에서는 대부분의 값들이 좀 더 추세선 근처에 모여 있는 것을 알 수 있다(상관계수:0.956). 88 | 89 | ```{r, fig.width=10} 90 | p1 = ggplot(mpg, aes(hwy, cty)) + geom_point() + geom_smooth() 91 | p2 = ggplot(mpg, aes(displ, cty)) + geom_point() + geom_smooth() 92 | multiplot(p2,p1, cols=2) 93 | ``` 94 | 95 | 탐색적 분석에서는 두 개 이상의 속성 간의 관계를 동시에 보고 싶은 경우도 생긴다. 이럴 때는 기존의 스케터플롯이 유용한데, X와 Y의 위치에 두 가지 속성의 관계를 표시하는 스케터플롯의 각 점에 색상, 크기, 레이블 등의 다양한 속성을 추가할 수 있기 때문이다. 96 | 97 | 다시 MPG 데이터셋을 살펴보면 아래 차트에는 고속도로 연비(hwy)를 X축, 도시 주행시 연비(cty)를 Y축으로 하고, 여기에 배기량(disp)을 점의 크기에, 그리고 실린더의 개수(cyl)를 점의 색상에 적용했다. 아래 그래프를 보면 크고 밝은 점이 (실린더 수가 많고 배기량이 높은 차량) 그래프 좌측 하단에 몰려있는 것을 볼 수 있다. 이처럼 스케터플롯을 사용해 네 가지 속성의 관계를 동시에 확인할 수 있다. 98 | 99 | ```{r} 100 | ggplot(mpg, aes(hwy, cty)) + 101 | geom_point(aes(color = cyl, size = displ)) 102 | ``` 103 | 104 | 마지막으로 산포도 그래프에 텍스트 레이블을 적용한 사례를 살펴보자. 아래 그래프는 점 대신 각 차량 모델의 연비를 그래프에 나타낸다. 이때 레이블의 색상으로 제조사를 구분할 수 있도록 하였다. 105 | 106 | ```{r} 107 | # 메이저 제조사의 목록을 구하기 108 | majors = mpg %>% 109 | group_by() %>% # 데이터를 제조사 기준으로 그룹하여 110 | summarize(count=n()) %>% # 제조사별 모델의 개수를 구하고 111 | filter(count > 10) # 적어도 10대 이상의 모델이 있는 제조사만 남긴다 112 | 113 | # 메이저 제조사의 모델을 구하기 114 | mpg.majors = mpg %>% 115 | filter(manufacturer %in% majors$manufacturer) %>% # 메이저 제조사의 차량만 남기고 116 | distinct(model) # 차량별로 한대씩만 남긴다. 117 | 118 | # 모델별 연비에 모델 이름을 추가한 플롯 119 | ggplot(mpg.majors, aes(hwy, cty)) + # 기본 플롯에 120 | geom_text(aes(label = model, color = manufacturer), size = 4, # 텍스트 레이블을 더하고 121 | position=position_jitter(width=1, height=2)) # 레이블이 겹치지 않도록 노이즈를 더한다. 122 | ``` 123 | 124 | 위 플롯을 보면 연비가 낮은 대부분의 차량은 4륜 구동의 SUV 및 트럭임을 알 수 있다. 또한 높은 연비를 자랑하는 차량은 대부분 한국/일본산이거나 그리고 독일의 폭스바겐에서 만들어진 것들이다. 또한 독일 아우디에서 만든 차량은 고속도로 연비에 비해 도시 연비가 좋지 않다는 것도 알 수 있다. 125 | 126 | -------------------------------------------------------------------------------- /titanic_submission.tsv: -------------------------------------------------------------------------------- 1 | "PassengerId","Survived" 2 | 892,"0" 3 | 893,"0" 4 | 894,"0" 5 | 895,"0" 6 | 896,"1" 7 | 897,"0" 8 | 898,"1" 9 | 899,"0" 10 | 900,"1" 11 | 901,"0" 12 | 902,"0" 13 | 903,"0" 14 | 904,"1" 15 | 905,"0" 16 | 906,"1" 17 | 907,"1" 18 | 908,"0" 19 | 909,"0" 20 | 910,"0" 21 | 911,"1" 22 | 912,"0" 23 | 913,"0" 24 | 914,"1" 25 | 915,"0" 26 | 916,"1" 27 | 917,"0" 28 | 918,"1" 29 | 919,"0" 30 | 920,"0" 31 | 921,"0" 32 | 922,"0" 33 | 923,"0" 34 | 924,"0" 35 | 925,"0" 36 | 926,"0" 37 | 927,"0" 38 | 928,"0" 39 | 929,"0" 40 | 930,"0" 41 | 931,"0" 42 | 932,"0" 43 | 933,"0" 44 | 934,"0" 45 | 935,"1" 46 | 936,"1" 47 | 937,"0" 48 | 938,"0" 49 | 939,"0" 50 | 940,"1" 51 | 941,"1" 52 | 942,"0" 53 | 943,"0" 54 | 944,"1" 55 | 945,"1" 56 | 946,"0" 57 | 947,"0" 58 | 948,"0" 59 | 949,"0" 60 | 950,"0" 61 | 951,"1" 62 | 952,"0" 63 | 953,"0" 64 | 954,"0" 65 | 955,"1" 66 | 956,"0" 67 | 957,"1" 68 | 958,"1" 69 | 959,"0" 70 | 960,"0" 71 | 961,"1" 72 | 962,"1" 73 | 963,"0" 74 | 964,"0" 75 | 965,"0" 76 | 966,"1" 77 | 967,"0" 78 | 968,"0" 79 | 969,"1" 80 | 970,"0" 81 | 971,"1" 82 | 972,"1" 83 | 973,"0" 84 | 974,"0" 85 | 975,"0" 86 | 976,"0" 87 | 977,"0" 88 | 978,"1" 89 | 979,"0" 90 | 980,"1" 91 | 981,"1" 92 | 982,"1" 93 | 983,"0" 94 | 984,"1" 95 | 985,"0" 96 | 986,"0" 97 | 987,"0" 98 | 988,"1" 99 | 989,"0" 100 | 990,"0" 101 | 991,"0" 102 | 992,"1" 103 | 993,"0" 104 | 994,"0" 105 | 995,"0" 106 | 996,"1" 107 | 997,"0" 108 | 998,"0" 109 | 999,"0" 110 | 1000,"0" 111 | 1001,"0" 112 | 1002,"0" 113 | 1003,"1" 114 | 1004,"1" 115 | 1005,"1" 116 | 1006,"1" 117 | 1007,"0" 118 | 1008,"0" 119 | 1009,"1" 120 | 1010,"0" 121 | 1011,"1" 122 | 1012,"1" 123 | 1013,"0" 124 | 1014,"1" 125 | 1015,"0" 126 | 1016,"0" 127 | 1017,"1" 128 | 1018,"0" 129 | 1019,"1" 130 | 1020,"0" 131 | 1021,"0" 132 | 1022,"0" 133 | 1023,"0" 134 | 1024,"0" 135 | 1025,"0" 136 | 1026,"0" 137 | 1027,"0" 138 | 1028,"0" 139 | 1029,"0" 140 | 1030,"0" 141 | 1031,"0" 142 | 1032,"0" 143 | 1033,"1" 144 | 1034,"0" 145 | 1035,"0" 146 | 1036,"0" 147 | 1037,"0" 148 | 1038,"0" 149 | 1039,"0" 150 | 1040,"0" 151 | 1041,"0" 152 | 1042,"1" 153 | 1043,"0" 154 | 1044,"0" 155 | 1045,"1" 156 | 1046,"0" 157 | 1047,"0" 158 | 1048,"1" 159 | 1049,"0" 160 | 1050,"0" 161 | 1051,"1" 162 | 1052,"1" 163 | 1053,"0" 164 | 1054,"1" 165 | 1055,"0" 166 | 1056,"0" 167 | 1057,"0" 168 | 1058,"0" 169 | 1059,"0" 170 | 1060,"1" 171 | 1061,"0" 172 | 1062,"0" 173 | 1063,"0" 174 | 1064,"0" 175 | 1065,"0" 176 | 1066,"0" 177 | 1067,"1" 178 | 1068,"1" 179 | 1069,"0" 180 | 1070,"1" 181 | 1071,"1" 182 | 1072,"0" 183 | 1073,"0" 184 | 1074,"1" 185 | 1075,"0" 186 | 1076,"1" 187 | 1077,"0" 188 | 1078,"1" 189 | 1079,"0" 190 | 1080,"0" 191 | 1081,"0" 192 | 1082,"0" 193 | 1083,"0" 194 | 1084,"0" 195 | 1085,"0" 196 | 1086,"0" 197 | 1087,"0" 198 | 1088,"1" 199 | 1089,"0" 200 | 1090,"0" 201 | 1091,"0" 202 | 1092,"1" 203 | 1093,"1" 204 | 1094,"0" 205 | 1095,"1" 206 | 1096,"0" 207 | 1097,"0" 208 | 1098,"1" 209 | 1099,"0" 210 | 1100,"1" 211 | 1101,"0" 212 | 1102,"0" 213 | 1103,"0" 214 | 1104,"0" 215 | 1105,"1" 216 | 1106,"0" 217 | 1107,"0" 218 | 1108,"1" 219 | 1109,"0" 220 | 1110,"1" 221 | 1111,"0" 222 | 1112,"1" 223 | 1113,"0" 224 | 1114,"1" 225 | 1115,"0" 226 | 1116,"1" 227 | 1117,"1" 228 | 1118,"0" 229 | 1119,"1" 230 | 1120,"0" 231 | 1121,"0" 232 | 1122,"0" 233 | 1123,"1" 234 | 1124,"0" 235 | 1125,"0" 236 | 1126,"0" 237 | 1127,"0" 238 | 1128,"0" 239 | 1129,"0" 240 | 1130,"1" 241 | 1131,"1" 242 | 1132,"1" 243 | 1133,"1" 244 | 1134,"0" 245 | 1135,"0" 246 | 1136,"0" 247 | 1137,"0" 248 | 1138,"1" 249 | 1139,"0" 250 | 1140,"1" 251 | 1141,"1" 252 | 1142,"1" 253 | 1143,"0" 254 | 1144,"0" 255 | 1145,"0" 256 | 1146,"0" 257 | 1147,"0" 258 | 1148,"0" 259 | 1149,"0" 260 | 1150,"1" 261 | 1151,"0" 262 | 1152,"0" 263 | 1153,"0" 264 | 1154,"1" 265 | 1155,"1" 266 | 1156,"0" 267 | 1157,"0" 268 | 1158,"0" 269 | 1159,"0" 270 | 1160,"0" 271 | 1161,"0" 272 | 1162,"0" 273 | 1163,"0" 274 | 1164,"1" 275 | 1165,"1" 276 | 1166,"0" 277 | 1167,"1" 278 | 1168,"0" 279 | 1169,"0" 280 | 1170,"0" 281 | 1171,"0" 282 | 1172,"0" 283 | 1173,"1" 284 | 1174,"1" 285 | 1175,"1" 286 | 1176,"0" 287 | 1177,"0" 288 | 1178,"0" 289 | 1179,"0" 290 | 1180,"0" 291 | 1181,"0" 292 | 1182,"0" 293 | 1183,"1" 294 | 1184,"0" 295 | 1185,"0" 296 | 1186,"0" 297 | 1187,"0" 298 | 1188,"1" 299 | 1189,"0" 300 | 1190,"0" 301 | 1191,"0" 302 | 1192,"0" 303 | 1193,"0" 304 | 1194,"0" 305 | 1195,"0" 306 | 1196,"1" 307 | 1197,"1" 308 | 1198,"0" 309 | 1199,"1" 310 | 1200,"0" 311 | 1201,"1" 312 | 1202,"0" 313 | 1203,"0" 314 | 1204,"0" 315 | 1205,"1" 316 | 1206,"1" 317 | 1207,"1" 318 | 1208,"0" 319 | 1209,"0" 320 | 1210,"0" 321 | 1211,"0" 322 | 1212,"0" 323 | 1213,"0" 324 | 1214,"0" 325 | 1215,"0" 326 | 1216,"1" 327 | 1217,"0" 328 | 1218,"1" 329 | 1219,"0" 330 | 1220,"0" 331 | 1221,"0" 332 | 1222,"1" 333 | 1223,"0" 334 | 1224,"0" 335 | 1225,"1" 336 | 1226,"0" 337 | 1227,"0" 338 | 1228,"0" 339 | 1229,"0" 340 | 1230,"0" 341 | 1231,"0" 342 | 1232,"0" 343 | 1233,"0" 344 | 1234,"0" 345 | 1235,"1" 346 | 1236,"0" 347 | 1237,"0" 348 | 1238,"0" 349 | 1239,"1" 350 | 1240,"0" 351 | 1241,"1" 352 | 1242,"1" 353 | 1243,"0" 354 | 1244,"0" 355 | 1245,"0" 356 | 1246,"0" 357 | 1247,"0" 358 | 1248,"1" 359 | 1249,"0" 360 | 1250,"0" 361 | 1251,"1" 362 | 1252,"0" 363 | 1253,"1" 364 | 1254,"1" 365 | 1255,"0" 366 | 1256,"1" 367 | 1257,"0" 368 | 1258,"0" 369 | 1259,"0" 370 | 1260,"1" 371 | 1261,"0" 372 | 1262,"0" 373 | 1263,"1" 374 | 1264,"0" 375 | 1265,"0" 376 | 1266,"1" 377 | 1267,"1" 378 | 1268,"0" 379 | 1269,"0" 380 | 1270,"0" 381 | 1271,"0" 382 | 1272,"0" 383 | 1273,"0" 384 | 1274,"1" 385 | 1275,"1" 386 | 1276,"0" 387 | 1277,"1" 388 | 1278,"0" 389 | 1279,"0" 390 | 1280,"0" 391 | 1281,"0" 392 | 1282,"0" 393 | 1283,"1" 394 | 1284,"0" 395 | 1285,"0" 396 | 1286,"0" 397 | 1287,"1" 398 | 1288,"0" 399 | 1289,"1" 400 | 1290,"0" 401 | 1291,"0" 402 | 1292,"1" 403 | 1293,"0" 404 | 1294,"1" 405 | 1295,"0" 406 | 1296,"0" 407 | 1297,"0" 408 | 1298,"0" 409 | 1299,"0" 410 | 1300,"1" 411 | 1301,"1" 412 | 1302,"1" 413 | 1303,"1" 414 | 1304,"0" 415 | 1305,"0" 416 | 1306,"1" 417 | 1307,"0" 418 | 1308,"0" 419 | 1309,"0" 420 | -------------------------------------------------------------------------------- /titanic.md: -------------------------------------------------------------------------------- 1 | # 헬로 데이터 과학: 분류 실습 2 | Jin Young Kim 3 | 4 | 이번에는 캐글에 입문하는 사람들을 위해 캐글에서 제공하는 예측 문제를 바탕으로 실제 캐글에서 제공하는 문제를 풀어 답을 제출하고, 퍼블릭 리더보드에서 순위를 확인하는 과정을 알아보자. 이 과정에서 앞서 공부한 데이터 문제 해결의 과정을 실습해보는 의미도 있다. 5 | 6 | 여기서 사용할 문제는 '타이타닉호의 생존자 예측'으로, 타이타닉 호에 탑승한 승객의 생존 여부를 예측하는 것이다. 최근에 있었던 세월호 사태와 같이 대형 인명사고 이후에 많은 사람들의 생존 여부가 밝혀지지 않은 경우 예측 모델을 사용하면 승객들의 생사를 확인하는데 도움을 받을 수 있을 것이다. (물론 이는 생사가 알려진 승객과 알려지지 않은 승객의 집단이 무작위로 추출되었을 때만 가능한 일이다.) 7 | 8 | 여기에 사용되는 데이터셋은 타이타닉호에 탑승한 승객들의 다양한 신상정보와 (나이, 객실, 성별 등) 생존여부를 기록한 것으로, 이 데이터셋은 캐글(Kaggle)의 홈페이지에서 구할 수 있다. 우선 이 데이터를 가지고 탐색적 데이터 분석을 수행해보고, 이를 바탕으로 승객들의 생존 여부를 예측하는 작업을 수행한다. 본 실습에는 R을 사용한다. (R은 캐글 참가자들이 가장 많이 사용하는 프로그래밍 언어이기도 하다.) 9 | 10 | 11 | 12 | ```r 13 | source("dbook.R") 14 | load.packages(c("ggplot2", "rpart", "rpart.plot")) 15 | ``` 16 | 17 | ``` 18 | ## [1] loading ggplot2 19 | ## [1] loading rpart 20 | ## [1] loading rpart.plot 21 | ``` 22 | 23 | ```r 24 | train <- read.csv("titanic_train.csv") 25 | test <- read.csv("titanic_test.csv") 26 | ``` 27 | 28 | 29 | #### 개별 속성 분석 30 | 31 | 우선 데이터의 전체적인 분포를 알아보자. 아래는 데이터의 속성별 값의 분포를 보여준다. 32 | 33 | 34 | ```r 35 | summary(train) 36 | ``` 37 | 38 | ``` 39 | ## PassengerId Survived Pclass 40 | ## Min. : 1.0 Min. :0.0000 Min. :1.000 41 | ## 1st Qu.:223.5 1st Qu.:0.0000 1st Qu.:2.000 42 | ## Median :446.0 Median :0.0000 Median :3.000 43 | ## Mean :446.0 Mean :0.3838 Mean :2.309 44 | ## 3rd Qu.:668.5 3rd Qu.:1.0000 3rd Qu.:3.000 45 | ## Max. :891.0 Max. :1.0000 Max. :3.000 46 | ## 47 | ## Name Sex Age 48 | ## Abbing, Mr. Anthony : 1 female:314 Min. : 0.42 49 | ## Abbott, Mr. Rossmore Edward : 1 male :577 1st Qu.:20.12 50 | ## Abbott, Mrs. Stanton (Rosa Hunt) : 1 Median :28.00 51 | ## Abelson, Mr. Samuel : 1 Mean :29.70 52 | ## Abelson, Mrs. Samuel (Hannah Wizosky): 1 3rd Qu.:38.00 53 | ## Adahl, Mr. Mauritz Nils Martin : 1 Max. :80.00 54 | ## (Other) :885 NA's :177 55 | ## SibSp Parch Ticket Fare 56 | ## Min. :0.000 Min. :0.0000 1601 : 7 Min. : 0.00 57 | ## 1st Qu.:0.000 1st Qu.:0.0000 347082 : 7 1st Qu.: 7.91 58 | ## Median :0.000 Median :0.0000 CA. 2343: 7 Median : 14.45 59 | ## Mean :0.523 Mean :0.3816 3101295 : 6 Mean : 32.20 60 | ## 3rd Qu.:1.000 3rd Qu.:0.0000 347088 : 6 3rd Qu.: 31.00 61 | ## Max. :8.000 Max. :6.0000 CA 2144 : 6 Max. :512.33 62 | ## (Other) :852 63 | ## Cabin Embarked 64 | ## :687 : 2 65 | ## B96 B98 : 4 C:168 66 | ## C23 C25 C27: 4 Q: 77 67 | ## G6 : 4 S:644 68 | ## C22 C26 : 3 69 | ## D : 3 70 | ## (Other) :186 71 | ``` 72 | 73 | 이제 예측 목표가 되는 생존 여부의 분포를 알아보자. 주어진 학습 데이터의 경우 약 38%의 승객이 생존한 것을 알 수 있다. 74 | 75 | 76 | ```r 77 | table(train$Survived) 78 | ``` 79 | 80 | ``` 81 | ## 82 | ## 0 1 83 | ## 549 342 84 | ``` 85 | 86 | 87 | 이중 수치형 속성인 티켓 가격과 나이의 확률 분포를 알아보면 다음과 같다. 티켓 가격은 상대적으로 저렴한 50불 미만이 대부분이고, 나이는 20-40대의 청장년 층과 그들의 자녀일 것으로 추정되는 어린 아이가 많은 것을 알 수 있다. 88 | 89 | 90 | ```r 91 | par(mfrow=c(1,2)) 92 | plot(density(train$Fare), main="", xlab="Fare Distribution") 93 | plot(density(train[!is.na(train$Age),]$Age), main="", xlab="Age Distribution") 94 | ``` 95 | 96 | ![](titanic_files/figure-html/unnamed-chunk-4-1.png) 97 | 98 | #### 속성간 관계 분석 99 | 100 | 이제 속성간 관계를 살펴보자. 다음은 타이타닉호의 탑승자 가운데 남녀 및 각 객실의 생존 비율을 비교한 모자이크 플롯이다. 상대적으로 남성이, 그리고 3등석 손님의 사망률이 높았음을 알 수 있다. 101 | 102 | 103 | ```r 104 | par(mfrow=c(1,2)) 105 | mosaicplot(table(ifelse(train$Survived==1, "Survived","Dead"), train$Sex), main="", cex=1.2) 106 | mosaicplot(table(ifelse(train$Survived==1, "Survived","Dead"), train$Pclass), main="", cex=1.2) 107 | ``` 108 | 109 | ![](titanic_files/figure-html/unnamed-chunk-5-1.png) 110 | 111 | 아래는 타이타닉호 탑승객의 나이와 생존 여부의 관계를 나타낸 그래프다. 왼쪽 박스플롯은 얼핏 생존자의 나이가 약간 어리지만 두 그룹간의 큰 차이가 없는 것으로 보인다. 하지만 오른쪽의 스케터플롯을 보면 사망자중 20대와 노인의 비율이 높고, 생존자중에는 아이의 비율이 높은 것을 알 수 있다. 이처럼 시각화의 종류에 따라 같은 데이터에서 다른 결론을 도출할 수 있다. 112 | 113 | 114 | ```r 115 | par(mfrow=c(1,2)) 116 | boxplot(Age ~ Survived, train, xlab="Survival", ylab="Age", cex=1.2) 117 | plot(Age ~ jitter(Survived), train, cex=1.2) 118 | ``` 119 | 120 | ![](titanic_files/figure-html/unnamed-chunk-6-1.png) 121 | 122 | 마지막으로 두 수치 속성 간의 관계를 나타내는 데에는 스케터플롯이 적절하다. 스케터플롯의 각 점에 색상과 모양을 추가하면 더 많은 정보를 한눈에 볼 수 있다. 아래 플롯은 나이와 요금의 (로그 스케일) 스케터플롯에 색상과 (생존 여부) 모양을 (성별) 추가한 결과다. 젊은 남성으로 낮은 요금을 지불한 승객의 경우 사망 확률이 매우 높은 것을 알 수 있다. 123 | 124 | 125 | ```r 126 | qplot(jitter(Age), jitter(log(Fare)), data=train, color=factor(Survived), shape=factor(Sex)) 127 | ``` 128 | 129 | ![](titanic_files/figure-html/unnamed-chunk-7-1.png) 130 | 131 | #### 모델 만들기 132 | 133 | 이제 기본적인 예측 모델을 만들어 보자. 기본 모델을 만드는 이유에는 데이터를 잘 이해하는 것도 있으니 해석이 쉬운 의사결정트리를 만들어 보자. 아래는 데이터에 주어진 속성을 가지고 만든 의사결정트리를 시각화한 결과다. 승객의 성과 나이, 객실 유형이 예측에 있어 첫번째 기준이 되는 것을 알 수 있다. 134 | 135 | 136 | ```r 137 | fit <- rpart(Survived ~ Pclass + Sex + Age + SibSp + Parch + Fare + Embarked, data=train, method="class") 138 | rpart.plot(fit) 139 | ``` 140 | 141 | ![](titanic_files/figure-html/unnamed-chunk-8-1.png) 142 | 143 | 마지막으로 모델을 실제 테스트 데이터 적용하여 제출용 파일을 만들어 보자. R에서는 predict() 함수를 사용하여 만들어진 모델을 새로운 데이터에 적용할 수 있다. 144 | 145 | 146 | ```r 147 | Prediction <- predict(fit, test, type = "class") 148 | submit <- data.frame(PassengerId = test$PassengerId, Survived = Prediction) 149 | head(submit) 150 | ``` 151 | 152 | ``` 153 | ## PassengerId Survived 154 | ## 1 892 0 155 | ## 2 893 0 156 | ## 3 894 0 157 | ## 4 895 0 158 | ## 5 896 1 159 | ## 6 897 0 160 | ``` 161 | 162 | ```r 163 | write.csv(submit, file = "titanic_submission.tsv", row.names = FALSE) 164 | ``` 165 | -------------------------------------------------------------------------------- /mtcars.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: '헬로 데이터 과학: R 맛보기' 3 | author: "김진영" 4 | output: 5 | html_document: 6 | self_contained: yes 7 | toc: yes 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | 13 | ### R 작업을 위한 환경 구축 14 | 15 | 우선 이 책에서 제공하는 R 라이브러리를 로딩하자. R 라이브러리는 R 실습에서 자주 사용되는 힘수를 모은 것으로 여기에 대한 자세한 설명은 부록에서 제공한다. 16 | 17 | ```{r} 18 | source("dbook.R") 19 | ``` 20 | 21 | 이제 자주 사용하는 패키지를 설치할 차례다. 위 글에서 설명했듯이, R에서는 기본적으로 다양한 통계 및 시각화 기능을 제공하지만, R의 진정한 힘은 패키지 형태로 제공되는 부가적인 기능에서 나온다. 다음은 이 책에서 자주 사용할 패키지를 설치하는 명령어다. 22 | 23 | ```{r, message=FALSE} 24 | load.packages(c("stringr", "ggplot2", "dplyr", "knitr")) 25 | ``` 26 | 27 | ### R의 기본 기능 28 | #### 변수 정의하기 29 | R에서는 다음과 같이 다양한 형태의 변수를 제공한다. 30 | 31 | ```{r} 32 | # 수치 / 문자열 / 배열 자료형을 정의한다 33 | v1 = 1 34 | v2 = "abc" 35 | v3 = c(1,2,3) 36 | 37 | # 테이블 형태의 자료형인 데이터 프레임을 정의한다 38 | df1 = data.frame( 39 | Name=c("Jerry","Tom","Smith"), 40 | Math=c(50,60,75)) 41 | df1 42 | ``` 43 | 44 | 45 | #### 데이터 읽고 쓰기 46 | 이제 실제로 데이터를 불러와서 다루는 방법을 알아보자. R 실습 절차는 앞에서 소개한 엑셀 실습 절차뿐만 아니라 실습 데이터 역시 mtcars 데이터셋을 그대로 사용한다. 이 데이터는 R에 기본적으로 mtcars라는 이름으로 설치되어있기 때문에 그냥 mtcars라는 명령을 실행하면 데이터를 볼 수 있다. 그리고 summary() 함수를 사용하면 각 속성별로 값의 분포를 볼 수 있다. 47 | 48 | ```{r} 49 | summary(mtcars) 50 | ``` 51 | 52 | R에서도 보통 디스크에 파일 형태로 저장된 데이터를 불러와서 작업하게 된다. 여기서는 실습을 위해 mtcars 데이터를 파일로 저장하고 다시 읽어보자. 데이터를 파일로 저장하거나 불러들이는데 write.table() 및 read.table() 함수를 사용하는데, 다음은 mtcars 데이터를 저장하고 이를 cars라는 이름으로 다시 불러들이는 방법이다. (R에서는 파일 이외에도 관계형 데이터베이스, 웹 주소 등 다양한 형태의 데이터를 사용할 수 있다.) 53 | 54 | ```{r} 55 | write.table(mtcars, "mtcars_new.txt") 56 | cars = read.table("mtcars_new.txt", header=T) 57 | ``` 58 | 59 | 앞으로는 원본 데이터인 mtcars를 두고 cars를 사용할 것이다. 이처럼 원본 데이터를 가공된 데이터와 별도로 보관하는 것은 좋은 습관인데, 이렇게 하면 원본 데이터를 언제든지 다시 살펴보고 재가공할 수 있기 때문이다. 60 | 61 | 어떤 경우에는 R에서 가공한 데이터를 엑셀 등의 프로그램에서 쓰고 싶을 것이다. 이런 경우에는 위에서처럼 데이터를 파일에 저장하고 다시 불러들여도 되지만, 클립보드에 저장하면 더 편리한데, 이를 위해서는 위의 파일명 대신 "clipboard"를 사용하면 된다. 이렇게 저장한 데이터를 엑셀로 불러들일 때에는 앞에서 설명한 것처럼 ‘텍스트 마법사’를 사용하면 된다. 62 | 63 | ```{r, eval=F} 64 | write.table(cars, "clipboard") 65 | ``` 66 | 67 | #### 데이터 살펴보기 68 | R의 기본 자료형은 테이블 형태의 데이터 프레임이다. 대부분의 데이터는 한 화면에 들어오지는 않는다. 데이터의 첫 몇 항목만 보기 위해서는 head()라는 함수를 사용한다. head() 함수를 실행하면 아래와 같이 cars의 첫 여섯 줄이 출력된다. 69 | 70 | ```{r} 71 | head(cars) 72 | ``` 73 | 74 | 만약 첫 10줄을 보고 싶다면 다음과 같이 실행하면 된다. 이렇게 R의 함수는 대부분 다양한 옵션을 제공하는데, 함수에 대한 설명을 보고 싶으면 "? 함수명"을 입력하면 된다. 75 | 76 | ```{r} 77 | head(cars, n=10) 78 | ``` 79 | 80 | head()가 데이터의 첫 부분을 보여준다면 tail()은 마지막을 보여준다. 실행 방법은 head()와 동일하다. 81 | 82 | ```{r} 83 | tail(cars) 84 | ``` 85 | 86 | R에서는 기본적으로 데이터의 각 행과 열에 이름이 주어진다. 주어진 데이터의 각 행과 열에 대한 이름은 rownames() 및 colnames() 함수를 사용하여 볼 수 있다. 다음은 cars 데이터의 행과 열의 이름을 보는 방법이다. 87 | 88 | ```{r} 89 | rownames(cars) 90 | colnames(cars) 91 | ``` 92 | 93 | 데이터를 실제로 다루기 위해서는 각 속성을 선택할 수 있어야 한다. R에서는 데이터 이름과 속성 이름 사이에 $를 사용하여 데이터의 속성을 선택할 수 있다. 다음은 mpg 속성을 보는 명령이다. 94 | 95 | ```{r} 96 | cars$mpg 97 | ``` 98 | 99 | ### 데이터 준비하기 100 | 101 | #### 기본 가공법 102 | 103 | 이번에는 기존 속성의 값을 가공해서 새로운 속성을 만드는 방법을 알아보자. 우선 위에서 살펴본대로 자동차의 이름이 각 행의 이름으로 들어가 있는데, 작업의 편의를 위해 이를 model이라는 이름의 별도 속성으로 만들어 보자. 104 | 105 | ```{r} 106 | cars$model = rownames(cars) 107 | rownames(cars) = NULL 108 | ``` 109 | 110 | model이라는 속성을 보면 첫 단어가 해당 모델의 제조사 이름이다. stringr 라이브러리의 word() 함수는 문자열 형태의 속성에서 단어를 추출하는 기능을 제공한다. 아래는 model 속성의 첫 단어를 추출하여 maker라는 속성을 만드는 예다. 이 작업을 완료한 후에 데이터를 head() 명령으로 다시 살펴보면 두개의 속성이 추가된 것을 알 수 있다. 111 | 112 | ```{r} 113 | cars$maker = word(cars$model, 1) 114 | head(cars) 115 | ``` 116 | 117 | #### 고급 가공법 (dplyr) 118 | 119 | 이제 dplyr 라이브러리를 사용하여 데이터를 본격적으로 가공해보자. 데이터 가공에는 행과 열을 선택하는 필터링, 그룹을 만들어 통계 값을 계산하는 집계, 데이터의 순서를 변경하는 정렬 등의 연산이 포함되는데, dplyr 라이브러리에서는 이련 개별 연산에 해당하는 함수를 제공하며, 이들을 '%>%'라는 기호를 사용하여 연결할 수 있다. 120 | 121 | 우선 데이터에서 필요한 행과 열을 선택하는 과정을 알아보자. 위에서 만든 cars 데이터에서 실린더 개수(cyl)가 4개인 차의 제조사, 모델, 연비를 선택한다고 하자. R에서 이를 실행하는 명령과 그 결과는 다음과 같다(아래 코드에서 주석은 #로 표시한다). 122 | 123 | ```{r} 124 | cars.small.narrow = # 결과를 cars.small.narrow라는 변수에 저장한다. 125 | cars %>% # cars 데이터를 사용한다. 126 | filter(cyl == 4) %>% # cyl 값이 4인 데이터만 남긴다. 127 | select(maker, model, mpg, cyl) # 주어진 네 속성만 선택한다. 128 | cars.small.narrow 129 | ``` 130 | 131 | 이번에는 데이터를 집계하는 과정을 알아보자. 우선 집계를 위한 기준 속성을 선택하고, 집계된 그룹별로 계산할 통계 값을 적어주는 것이 순서다. 아래 명령은 cars 데이터를 제조사별로 집계하고, 각 그룹별로 연비의 평균을 구하는 과정을 보여준다. 132 | 133 | ```{r} 134 | makers = 135 | cars %>% 136 | group_by(maker) %>% # 제조사 기준으로 데이터를 집계한다. 137 | summarize( maker.mpg = mean(mpg)) # 제조사별 평균 mpg 138 | head(makers) 139 | ``` 140 | 141 | 마지막으로 두 테이블을 특정한 속성값을 기준으로 병합하는 과정을 알아보자. 이는 여러 원본과 가공절차를 거친 데이터를 합쳐서 분석하고자 할 때 필수적인 과정이다. 여기서는 원본 데이터인 cars와 제조사별 집계 데이터인 makers를 제조사명을 기준으로 병합하는 과정을 보여준다. 여기서 by=”maker”는 제조사명을 기준으로 두 테이블을 병합하라는 뜻이다. 142 | 143 | ```{r} 144 | cars.makers = merge(cars, makers, by="maker") 145 | head(cars.makers) 146 | ``` 147 | 148 | ### 데이터 분석하기 149 | 이제 R의 데이터 분석 기능을 간단히 소개하자. 3장과 4장에서 이를 좀더 자세히 설명한다. 150 | #### 요약 통계 151 | 152 | 우선 개별 속성 및 두 속성간의 값의 분포를 보기 위해서는 table() 함수를 이용한다. 153 | ```{r} 154 | table(cars$cyl) 155 | table(cars$gear, cars$cyl) 156 | ``` 157 | 158 | #### 기본 시각화 159 | 160 | 마지막으로 R에서 데이터를 시작화하는 과정을 알아보자. R은 기본적으로 히스토그램, 분산 차트와 같은 다양한 시각화 기능을 제공하며, 고급 시각화 기능이 필요하다면 ggplot2 등의 라이브러리를 사용하면 된다. 수치형 속성의 분포를 보기 위해 히스토그램을 사용한다. 아래는 mpg 속성의 값을 시각화하는 과정이다. 161 | 162 | ```{r ch2_plot_basic} 163 | hist(cars$mpg) 164 | ``` 165 | 166 | R에서 가장 흔히 사용하는 시각화는 두 속성간의 관계를 한눈에 보여주는 분산 차트이다. 아래 명령은 무게(wt)와 연비(mpg)속성간의 관계를 보여주는 스케터플롯을 보여준다. 무게 증가에 따라 연비가 떨어지는 추세가 확연히 나타난다. 167 | 168 | ```{r} 169 | plot(cars$wt, cars$mpg) 170 | ``` 171 | 172 | ```{r, fig.width=8} 173 | par(mfrow=c(1,2)) 174 | plot(mpg ~ cyl, cars) 175 | plot(mpg ~ factor(cyl), cars) 176 | ``` 177 | 178 | 179 | #### 고급 시각화 (ggplot2) 180 | 때로는 둘 이상의 속성의 관계를 관찰해야 한다. R에서는 ggplot2 라이브러리에서 제공하는 qplot이라는 명령어를 사용하여 세 가지 이상 속성의 관계를 한눈에 볼 수 있다. 아래는 wt와 mpg 속성 간의 관계를 XY 축에 나타내고, cyl 값을 색상으로 표시하는 사례다. 이때 factor() 함수는 숫자를 카테고리 형태의 데이터로 인식하라는 명령이다. 아래 플롯에서는 연비(mpg)가 실린더 개수(cyl) 및 무게(wt)와 높은 상관 관계를 보임을 알 수 있다. 이런 종류의 시각화에는 엑셀에서 지원하지 않기 때문에, R을 사용할 이유가 된다. 181 | 182 | ```{r ch2_plot_adv} 183 | qplot(wt, mpg, data=cars, color=wt) 184 | qplot(wt, mpg, data=cars, color=factor(cyl)) 185 | ``` 186 | 187 | ### 맺음말 188 | 본 R 예제는 데이터 과학 입문서인 [헬로 데이터 과학](http://www.yes24.com/24/goods/24349374)의 부록으로 제공됩니다. 189 | -------------------------------------------------------------------------------- /boston.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "헬로 데이터 과학: 회귀 분석" 3 | author: "Jin Young Kim" 4 | output: 5 | html_document: 6 | keep_md: true 7 | toc: true 8 | toc_depth: 2 9 | includes: 10 | in_header: "hds.html" 11 | --- 12 | 13 | 이번에는 R을 사용하여 기계학습을 이용한 문제 해결의 과정을 사례로 배워보도록 하자. 기계학습의 다양한 기법 가운데 수치 형태의 속성을 예측하는 회귀 분석을 수행하고 그 결과를 평가하는 방법을 배워보도록 하자. 14 | 15 | 이번 실습에 사용할 데이터셋 역시 보스턴의 지역별 집값에 영향을 끼치는 요인을 정리한 것으로, 다양한 변인을 조합하여 각 지역의 집값을 예측하는 것이 목표다. 우선 아래와 같이 작업 파일을 R로 불러 살펴보도록 하자. 16 | 17 | ```{r, message=FALSE} 18 | source("dbook.R") 19 | load.packages(c("plyr","dplyr", "ggplot2", "tidyr", "rpart", "randomForest")) 20 | bos = read.table("boston.txt", sep="\t", header=T) 21 | head(bos) 22 | summary(bos) 23 | ``` 24 | 25 | #### 탐색적 분석 26 | 27 | 이제 집값(medv)에 영향을 미치는 다양한 변인을 살펴보자. 우선 R에서 상관도 테이블을 만들어서 클립보드로 그 내용을 내보내자. 28 | 29 | 30 | ```{r, fig.width=10, fig.height=10} 31 | plot(bos[,c(1:13, 14)]) 32 | ``` 33 | 34 | 이제 클립보드의 상관도 테이블을 엑셀로 읽어서 (붙여넣기: Ctrl+V) 조건부 서식을 적용하도록 하자. 아래 플롯은 집값에 영향을 끼치는 변인들을 요약한다. 각 변수간의 상관도를 색상으로 표시하는데, 파란 색은 양의 상관도를, 붉은 색은 음의 상관도를 가진다. 아래 플롯을 보면 집값(medv)과 상관도가 가장 높은 속성은 역시 집의 크기를 결정하는 방의 개수(rm)인 것을 알 수 있다. 35 | 36 | ```{r, eval=FALSE} 37 | ctab = round(cor(bos),3) 38 | write.table(ctab, "clipboard") 39 | ``` 40 | 41 | 또한 우리가 예측하고자 하는 집값의 분포를 살펴보자. 아래 플롯을 보면 대체로 정규 분포를 띄지만 고가의 주택이 밀집한 지역이 많이 존재하는 것을 알 수 있다. 이처럼 예측대상인 변수가 정규 분포를 따르지 않는 것은 선형 모델의 정확도에 문제를 가져올 수 있다. 42 | 43 | ```{r, fig.width=10} 44 | par(mfrow=c(1,2)) 45 | hist(bos$medv, main="Density of Median (medv)") 46 | plot(density(bos$medv), main="Density of Median (medv)") 47 | ``` 48 | 49 | #### 학습 모델 만들기 50 | 51 | 이제 실제 학습 모델을 만들어보자. 이 장에서는 단순하면서 해석이 용이하지만 예측 성능에 한계가 있는 선형 회귀 모델과 의사결정트리 기법, 그리고 해석이 힘들지만 높은 예측 성능을 보이는 랜덤포레스트(RandomForest) 모델을 사용하여 서로 다른 모델의 특성과 성능을 비교 분석해보자. 52 | 53 | 54 | ```{r} 55 | # 주어진 데이터로 선형 모델을 만든다 56 | lm.m <- function(tbl){ 57 | lm(medv ~ crim + zn + indus + chas + nox + rm + age + 58 | dis + rad + tax + ptratio + black + lstat, tbl) 59 | } 60 | 61 | # 주어진 데이터로 의사결정트리 모델을 만든다 62 | rpart.m <- function(tbl){ 63 | rpart(medv ~ crim + zn + indus + chas + nox + rm + age + 64 | dis + rad + tax + ptratio + black + lstat, tbl) 65 | } 66 | 67 | # 주어진 데이터로 랜덤포레스트 모델을 만든다 68 | randomForest.m <- function(tbl){ 69 | randomForest(medv ~ crim + zn + indus + chas + nox + rm + age + 70 | dis + rad + tax + ptratio + black + lstat, tbl) 71 | } 72 | ``` 73 | 74 | 우선 간단한 선형 모델로 시작해보자. 아래는 R로 선형회귀 모델을 학습하고 각 변수의 계수(coefficient)를 시각화한 결과다. 위의 상관도 분석에서 집값과 관련성이 높은 것으로 조사된 속성들이 꼭 높은 양의 상관 관계를 보이지는 않는 것을 알 수 있다. 이는 주어진 데이터의 많은 속성들이 서로 높은 상관 관계를 가지며, 따라서 이들 중 일부만 알아도 예측에는 충분하기 때문이다. 75 | 76 | ```{r, fig.width=10, fig.height=4} 77 | lm1 = lm.m(bos) 78 | barplot(lm1$coefficients) 79 | ``` 80 | 81 | 이번에는 R에서 의사결정트리를 이용하여 주어진 데이터로 학습한 결과다. 의사 결정의 각 단계가 트리 형태로 표현되는 것을 볼 수 있다. 아래 트리 왼쪽의 설명은 트리의 각 노드를 따라가면서 집값이 결정되는 과정을 나타낸다. 트리의 각 노드의 기준이 차례로 적용되어 최종 집값이 계산되는 것을 볼 수 있다. 82 | 83 | 아래 학습된 트리의 모양을 보면 어떤 속성이 의사결정에서 우선시되어야 하는지를 알 수 있다. 위 트리에서는 가구당 방의 개수(rm)를 최우선 기준으로, 그리고 주민의 소득 수준(lstat) 및 범죄율(crim) 등을 2차 기준으로 하는 의사결정트리가 학습되었다. 앞에서 살펴본 선형회귀 모델에서 높은 계수를 가지는 속성이 의사결정트리에 꼭 사용되는 것은 아니라는 점을 알 수 있다. 84 | 85 | ```{r, fig.height=7} 86 | rp1 = rpart.m(bos) 87 | plot(rp1) 88 | text(rp1) 89 | ``` 90 | 91 | 이처럼 직관적으로 해석할 수 있는 선형 모델과 의사결정 트리와 달리 의사결정 트리에 기반한 비선형 모델인 랜덤포레스트는 실제로 수많은 트리의 집합(forest)으로 구성되어 있기 때문에, 학습한 결과를 한눈에 살펴보기 어렵다. 92 | 93 | 하지만 R의 랜덤포레스트 라이브러리는 학습 결과의 이해를 돕는 몇 가지 차트를 제공한다. 우선 아래 왼쪽의 차트는 학습 모델에 포함된 트리의 개수에 따른 에러율의 변화를 보여준다. 트리 개수가 200개를 넘어가면 에러율이 안정화되는 것을 확인할 수 있다. 그리고 아래 오른쪽의 차트는 학습된 트리 집합 전체를 바탕으로 계산된 각 속성의 중요도를 보여준다. 여기서 IncNodePurity는 각 속성이 전체 예측 결과의 품질을 얼마나 높이는지를 나타내는 지표로 이해하면 된다. 94 | 95 | 96 | ```{r, fig.width=8, fig.height=4} 97 | rf1 = randomForest.m(bos) 98 | par(mfrow=c(1,2)) 99 | plot(rf1, log="y", main="Error Rate ~ # of Trees") 100 | varImpPlot(rf1, main="Variable Importance") 101 | ``` 102 | 103 | #### 학습 모델 평가하기 104 | 105 | 지금까지 주어진 데이터를 가지고 다양한 모델을 만드는 방법을 알아보았다. 이제 만들어진 모델을 평가하는 방법을 알아보자. 실제 예측 결과에서 어떤 차이를 보이는 지를 알기 위해서는 학습에 사용하지 않은 데이터에 대한 예측 성능을 비교해보아야 할 것이다. 106 | 107 | 이처럼 두 모델의 예측 성능을 비교하기 위해서 앞에서 설명한 교차검증법을 사용할 수 있다. 이는 주어진 데이터를 K개의 그룹으로 나누고, 각 그룹에 대한 예측값을 (K-1)개의 그룹의 속성을 사용해서 학습한 모델을 가지고 얻어내고, 그 결과를 집계하는 방식이다. 108 | 109 | ```{r} 110 | # 주어진 데이터를 k개로 나누어 교차검증을 수행 111 | cval.model <- function(cvt, fun.model, k, ...) 112 | { 113 | # 원본 데이터의 각 항목에 1~k까지의 숫자를 배정 114 | cvt$fold = sample(1:k, nrow(cvt), replace=T) 115 | 116 | # 각 fold의 학습 모델을 만들어 결과를 모음 117 | adply(1:k, 1, function(i){ 118 | cvtr = cvt[cvt$fold != i,] # 학습 데이터 119 | cvte = cvt[cvt$fold == i,] # 평가 데이터 120 | # 모델의 예측 결과를 얻음 121 | cvte$res = predict(fun.model(cvtr, ...), cvte) 122 | cvte 123 | }) 124 | } 125 | # 3차 교차검증을 세가지 모델에 대해 수행 126 | crt1 = cval.model(bos, lm.m, 3) 127 | crt2 = cval.model(bos, rpart.m, 3) 128 | crt3 = cval.model(bos, randomForest.m, 3) 129 | head(crt3) 130 | ``` 131 | 132 | 회귀 모델의 예측 성능을 알아보기 위해서는 앞서 살펴본 RMSE(root mean squared error) 지표를 사용하면 된다. 아래 코드는 선형회귀, 의사결정트리 및 랜덤포레스트 모델의 예측값을 비교한 것이다. 133 | 134 | ```{r} 135 | # RMSE지표를 계산 136 | rmse <- function(c1, c2){ 137 | sqrt(mean((c1 - c2) ^ 2)) 138 | } 139 | # 세 모델의 교차검증 결과에 대한 RMSE를 계산 140 | rmse(crt1$medv, crt1$res) 141 | rmse(crt2$medv, crt2$res) 142 | rmse(crt3$medv, crt3$res) 143 | ``` 144 | 145 | 이제 위에서 설명한 모델 간의 예측 결과를 시각적으로 비교해보자. 아래 플롯은 지금까지 소개한 세 가지 기계학습 모델로 예측된 집값과 실제 집값의 관계를 스케터플롯으로 나타낸 것이다. 아래 플롯의 왼쪽에 있는 선형회귀 모델의 결과를 보면 낮은 가격대의 집값은 비교적 정확하게 예측하지만 집값이 올라갈수록 예측값이 실제 값보다 작아지는 경향을 알 수 있다. 이는 예측에 사용된 속성과 예측 대상이 되는 속성 간의 선형적 관계만을 표현할 수 있는 선형회귀 기법의 한계라고 할 수 있다. 146 | 147 | 가운데의 의사결정 트리는 선형 모델에서와 같은 편향은 나타나지 않지만, 예측값이 몇 가지 값으로 계층화된 것을 볼 수 있다. 이는 업력 속성값에 따라 구간을 나누어 예측 속성값을 결정하는 의사결정트리의 특성을 보여준다. 반면에 오른쪽 랜덤포레스트 모델의 결과는 실제 값과 예측값이 거의 일치하는 것을 알 수 있다. 이는 수많은 개별 트리를 사용하여 주어진 데이터의 다양한 패턴을 포착하는 랜덤포레스트 모델에서 주어진 속성과 예측값 간의 관계를 정확히 모델링한 결과다. 148 | 149 | ```{r, fig.width=10, fig.height=4} 150 | par(mfrow=c(1,3)) 151 | plot(crt1$medv, crt1$res, ylim=c(0,50), 152 | xlab="Actual", ylab="Predicted", main="Linear Regression") 153 | lines(loess.smooth(crt1$medv, crt1$res)) 154 | plot(crt2$medv, crt2$res, ylim=c(0,50), 155 | xlab="Actual", ylab="Predicted", main="Decision Tree") 156 | lines(loess.smooth(crt2$medv, crt2$res)) 157 | plot(crt3$medv, crt3$res, ylim=c(0,50), 158 | xlab="Actual", ylab="Predicted", main="RandomForest") 159 | lines(loess.smooth(crt3$medv, crt3$res)) 160 | ``` 161 | -------------------------------------------------------------------------------- /mpg.md: -------------------------------------------------------------------------------- 1 | # 헬로 데이터 과학: 탐색적 데이터 분석 2 | Jin Young Kim 3 | #### 개별 속성 분석하기 4 | 5 | 이번에는 R로 탐색적 분석의 과정을 살펴보자. 우선 2장에서 설명한대로 GitHub에서 다운받은 파일이 있는 곳으로 작업 디렉토리를 설정하자. (단축키: Ctrl+Shift+H) 그 후 이 책에서 제공하는 R 라이브러리를 로딩하고, 이 장에서 사용할 패키지를 불러오자. 6 | 7 | 8 | 9 | ```r 10 | source("dbook.R") 11 | load.packages(c("dplyr", "ggplot2", "tidyr", "knitr")) 12 | ``` 13 | 14 | ``` 15 | ## [1] loading dplyr 16 | ## [1] loading ggplot2 17 | ## [1] loading tidyr 18 | ## [1] loading knitr 19 | ``` 20 | 21 | ```r 22 | mpg = read.table("mpg.txt", header=T, sep="\t") 23 | ``` 24 | 25 | 아래는 우리가 사용할 MPG 데이터에서 10건의 표본을 추출한 것이다. dplyr 패키지에서 제공하는 sample_n() 함수는 주어진 데이터에서 n개의 표본을 추출한다. knitr 패키지에서 제공하는 kable() 함수는 테이블을 보기좋게 출력해준다. 표본 데이터를 눈으로 보면서 데이터에 익숙해지도록 하자. 26 | 27 | 28 | ```r 29 | kable(sample_n(mpg,10)) 30 | ``` 31 | 32 | manufacturer model trans drv displ year cyl cty hwy fl class 33 | ---- ------------- ------------------- ----------- ---- ------ ----- ---- ---- ---- --- ----------- 34 | 99 audi a4 quattro manual(m6) 4 3.1 2008 6 15 25 p compact 35 | 80 subaru impreza awd auto(l4) 4 2.5 1999 4 19 26 r subcompact 36 | 194 jeep grand cherokee 4wd auto(l5) 4 4.7 2008 8 14 19 r suv 37 | 16 ford f150 pickup 4wd auto(l4) 4 4.2 1999 6 14 17 r pickup 38 | 18 chevrolet malibu auto(s6) f 3.6 2008 6 17 26 r midsize 39 | 229 hyundai sonata manual(m5) f 2.5 1999 6 18 26 r midsize 40 | 174 toyota camry solara manual(m5) f 3.0 1999 6 18 26 r compact 41 | 137 dodge durango 4wd auto(l5) 4 4.7 2008 8 13 17 r suv 42 | 93 dodge dakota pickup 4wd auto(l4) 4 5.2 1999 8 11 15 r pickup 43 | 112 chevrolet malibu auto(l4) f 3.5 2008 6 18 29 r midsize 44 | 45 | 데이터의 값과 함께 각 속성의 데이터형도 살펴보자. R에서는 str()함수를 사용하여 주어진 데이터의 자료형을 확인할 수 있다. R에서 Factor는 카테고리형 데이터를 가리키며 levels는 각 속성에 존재하는 카테고리의 개수를 가리킨다. int나 num은 정수 및 실수형 데이터를 가리킨다. 46 | 47 | 48 | ```r 49 | str(mpg) 50 | ``` 51 | 52 | ``` 53 | ## 'data.frame': 234 obs. of 11 variables: 54 | ## $ manufacturer: Factor w/ 15 levels "audi","chevrolet",..: 3 4 15 11 15 15 8 14 4 15 ... 55 | ## $ model : Factor w/ 38 levels "4runner 4wd",..: 14 17 21 5 21 21 35 7 29 21 ... 56 | ## $ trans : Factor w/ 10 levels "auto(av)","auto(l3)",..: 3 9 3 9 8 9 8 4 4 10 ... 57 | ## $ drv : Factor w/ 3 levels "4","f","r": 1 1 2 2 2 2 1 2 3 2 ... 58 | ## $ displ : num 3.9 4.6 2 2.4 2 2 4.2 2.4 4 2 ... 59 | ## $ year : int 1999 1999 1999 1999 2008 1999 2008 2008 2008 2008 ... 60 | ## $ cyl : int 6 8 4 4 4 4 8 4 6 4 ... 61 | ## $ cty : int 13 13 19 21 22 21 12 21 16 21 ... 62 | ## $ hwy : int 17 16 26 29 29 29 18 31 24 29 ... 63 | ## $ fl : Factor w/ 5 levels "c","d","e","p",..: 5 5 5 5 4 5 5 5 5 4 ... 64 | ## $ class : Factor w/ 7 levels "2seater","compact",..: 7 5 2 2 2 2 7 3 6 2 ... 65 | ``` 66 | 67 | 개별 데이터를 살펴본 후에는 summary() 함수를 통해 데이터를 요약하는 다양한 통계값을 계산하여 살펴볼 수 있다. 이런 통계값은 데이터의 유형에 따라 달라진다. 예컨대 연속된 수치에 대해서는 평균 및 중간값 등을, 그리고 범주 및 순서를 나타내는 속성에 대해서는 최빈값을 계산할 수 있을 것이다. 아래는 MPG 데이터의 다양한 속성들의 통계값이다. 68 | 69 | 70 | ```r 71 | summary(mpg) 72 | ``` 73 | 74 | ``` 75 | ## manufacturer model trans drv 76 | ## dodge :37 caravan 2wd : 11 auto(l4) :83 4:103 77 | ## toyota :34 ram 1500 pickup 4wd: 10 manual(m5):58 f:106 78 | ## volkswagen:27 civic : 9 auto(l5) :39 r: 25 79 | ## ford :25 dakota pickup 4wd : 9 manual(m6):19 80 | ## chevrolet :19 jetta : 9 auto(s6) :16 81 | ## audi :18 mustang : 9 auto(l6) : 6 82 | ## (Other) :74 (Other) :177 (Other) :13 83 | ## displ year cyl cty 84 | ## Min. :1.600 Min. :1999 Min. :4.000 Min. : 9.00 85 | ## 1st Qu.:2.400 1st Qu.:1999 1st Qu.:4.000 1st Qu.:14.00 86 | ## Median :3.300 Median :2004 Median :6.000 Median :17.00 87 | ## Mean :3.472 Mean :2004 Mean :5.889 Mean :16.86 88 | ## 3rd Qu.:4.600 3rd Qu.:2008 3rd Qu.:8.000 3rd Qu.:19.00 89 | ## Max. :7.000 Max. :2008 Max. :8.000 Max. :35.00 90 | ## 91 | ## hwy fl class 92 | ## Min. :12.00 c: 1 2seater : 5 93 | ## 1st Qu.:18.00 d: 5 compact :47 94 | ## Median :24.00 e: 8 midsize :41 95 | ## Mean :23.44 p: 52 minivan :11 96 | ## 3rd Qu.:27.00 r:168 pickup :33 97 | ## Max. :44.00 subcompact:35 98 | ## suv :62 99 | ``` 100 | 101 | 데이터에 적절한 시각화를 적용하여 전체 값의 분포를 한눈에 볼 수 있다. 아래는 MPG 데이터셋의 고속도로 연비(hwy)를 확률 밀도 그래프(density plot), 히스토그램(histogram), 그리고 점플롯(dotplot)으로 표현한 것이다. 이 시각화 결과에 따르면 데이터에 크게 두 가지 그룹의 차량이 (세단과 SUV) 있다는 사실이 드러난다. 이중 히스토그램과 점플롯에서는 개별 데이터의 분포를 좀 더 뚜렷이 볼 수 있다. 102 | 103 | 104 | ```r 105 | a = ggplot(mpg, aes(hwy)) # 기본 플롯을 만듦 106 | p1 = a + geom_density() # 기본 플롯을 확률밀도함수 형태로 출력 107 | p2 = a + geom_histogram() # 기본 플롯을 히스토그램 형태로 출력 108 | p3 = a + geom_dotplot() # 기본 플롯을 점플롯 형태로 출력 109 | multiplot(p1, p2, p3, cols=3) 110 | ``` 111 | 112 | ![](mpg_files/figure-html/unnamed-chunk-5-1.png) 113 | 114 | #### 속성 간의 관계 분석하기 115 | 116 | 이제 속성 간의 관계를 분석하는 과정을 MPG 데이터를 통해 알아보도록 하자. 우선 아래 표는 수치형 속성 간의 상관계수를 나타낸 것이다. 연비(hwy/cty)와 실린더 수 (cyl) 및 배기량(disp)이 높은 상관 관계를 가지는 것을 볼 수 있다. 117 | 118 | 119 | ```r 120 | mpg.num = select(mpg, displ, year, cyl, cty, hwy) 121 | round(cor(mpg.num), 3) 122 | ``` 123 | 124 | ``` 125 | ## displ year cyl cty hwy 126 | ## displ 1.000 0.148 0.930 -0.799 -0.766 127 | ## year 0.148 1.000 0.122 -0.037 0.002 128 | ## cyl 0.930 0.122 1.000 -0.806 -0.762 129 | ## cty -0.799 -0.037 -0.806 1.000 0.956 130 | ## hwy -0.766 0.002 -0.762 0.956 1.000 131 | ``` 132 | 133 | 하지만 상관계수가 데이터에 존재하는 모든 트렌드를 요약하는 것은 아니다. 같은 데이터에 해당하는 아래 스케터플롯을 보면 각 속성 쌍의 관계가 다양한 양상의 띈다는 것을 알 수 있다. 134 | 135 | 136 | ```r 137 | plot(mpg.num) 138 | ``` 139 | 140 | ![](mpg_files/figure-html/unnamed-chunk-7-1.png) 141 | 142 | 이렇게 모든 속성 간의 관계를 상관도와 스케터플롯을 통해 관찰한 후에는 관심이 가는 개별 속성 간의 관계를 자세히 살펴보아야 할 것이다. 두 속성 간의 관계를 알아보는 방법은 대상 속성의 유형의 조합에 따라 달라진다. 우선 두 카테고리형 속성 간의 관계를 생각해보자. 두 속성이 모두 제한된 카테고리의 값을 갖기 때문에, 이를 분석하는 데에는 각 카테고리의 조합에 속하는 항목의 수를 나타내는 교차 테이블이나 모자이크 플롯이 적절하다. 143 | 144 | 다음 표와 모자이크 플롯은 MPG 데이터셋에서 실린더 수와 구동방식의 관계를 나타낸다. 후륜 방식은 대부분 대형차에, 그리고 전륜 방식은 소/중형차에 사용되는 것을 알 수 있다. 같은 데이터를 모자이크 플롯으로 보면 대부분의 차가 사륜 구동 혹은 전륜 구동을 띄고 있다는 사실, 그리고 실린더 수의 분포가 구동방식에 따라 다르다는 사실을 한눈에 알 수 있다. 145 | 146 | 147 | ```r 148 | # cyl과 drv 속성의 교차 테이블을만든다. 149 | table(mpg$cyl, mpg$drv) 150 | ``` 151 | 152 | ``` 153 | ## 154 | ## 4 f r 155 | ## 4 23 58 0 156 | ## 5 0 4 0 157 | ## 6 32 43 4 158 | ## 8 48 1 21 159 | ``` 160 | 161 | ```r 162 | mosaicplot(table(mpg$drv, mpg$cyl), cex=1.2, main="") 163 | ``` 164 | 165 | ![](mpg_files/figure-html/unnamed-chunk-8-1.png) 166 | 167 | 다음으로 카테고리형 속성과 수치형 속성 간의 관계를 분석하는 경우에는 제한된 종류의 값을 갖는 카테고리형 속성의 특성을 고려하여 각 카테고리별 데이터의 분포를 볼 수 있다. 여기에는 박스플롯이 널리 사용되는데, 박스플롯은 주어진 데이터의 25% 및 75%에 해당하는 백분위 값을 박스로 표시하고, 여기에 50%에 해당하는 중앙값을 가운데 굵은 선으로 표시한 플롯이다. 168 | 169 | 데이터를 대표하는 통계값을 한눈에 보기 위해 박스플롯을 사용한다면, 개별 데이터 값을 관찰하기 위해서는 스케터플롯을 사용한다. 단, 이 경우 jitter() 함수를 사용하여 같은 카테고리를 갖는 값들이 서로 겹치지 않도록 노이즈를 더해준다. 아래 플롯은 실린더 수(cyl)와 고속도로 연비(hwy)의 상관 관계를 보여준다. 170 | 171 | 172 | 173 | ```r 174 | par(mfrow=c(1,2)) 175 | plot(jitter(mpg$cyl), mpg$hwy, xlab="Year", ylab="MPG(hwy)") 176 | boxplot(hwy ~ cyl, filter(mpg, cyl != 5), xlab="Year", ylab="MPG(hwy)") 177 | ``` 178 | 179 | ![](mpg_files/figure-html/unnamed-chunk-9-1.png) 180 | 181 | 또한 두 수치형 속성 간의 관계는 스케터플롯으로 확인하는 것이 가장 일반적이다. 아래 왼쪽의 스케터플롯에서는 배기량과 도시 연비의 상관 관계를 보여준다(상관계수:-0.799). 배기량과 도시 연비가 대체로 음의 상관 관계를 갖지만, 어느 정도 배기량이 높아지면 상관 관계가 희박해진다. 이에 반해 도시 연비와 고속도로 연비에 관한 아래 오른쪽의 스케터플롯에서는 대부분의 값들이 좀 더 추세선 근처에 모여 있는 것을 알 수 있다(상관계수:0.956). 182 | 183 | 184 | ```r 185 | p1 = ggplot(mpg, aes(hwy, cty)) + geom_point() + geom_smooth() 186 | p2 = ggplot(mpg, aes(displ, cty)) + geom_point() + geom_smooth() 187 | multiplot(p2,p1, cols=2) 188 | ``` 189 | 190 | ![](mpg_files/figure-html/unnamed-chunk-10-1.png) 191 | 192 | 탐색적 분석에서는 두 개 이상의 속성 간의 관계를 동시에 보고 싶은 경우도 생긴다. 이럴 때는 기존의 스케터플롯이 유용한데, X와 Y의 위치에 두 가지 속성의 관계를 표시하는 스케터플롯의 각 점에 색상, 크기, 레이블 등의 다양한 속성을 추가할 수 있기 때문이다. 193 | 194 | 다시 MPG 데이터셋을 살펴보면 아래 차트에는 고속도로 연비(hwy)를 X축, 도시 주행시 연비(cty)를 Y축으로 하고, 여기에 배기량(disp)을 점의 크기에, 그리고 실린더의 개수(cyl)를 점의 색상에 적용했다. 아래 그래프를 보면 크고 밝은 점이 (실린더 수가 많고 배기량이 높은 차량) 그래프 좌측 하단에 몰려있는 것을 볼 수 있다. 이처럼 스케터플롯을 사용해 네 가지 속성의 관계를 동시에 확인할 수 있다. 195 | 196 | 197 | ```r 198 | ggplot(mpg, aes(hwy, cty)) + 199 | geom_point(aes(color = cyl, size = displ)) 200 | ``` 201 | 202 | ![](mpg_files/figure-html/unnamed-chunk-11-1.png) 203 | 204 | 마지막으로 산포도 그래프에 텍스트 레이블을 적용한 사례를 살펴보자. 아래 그래프는 점 대신 각 차량 모델의 연비를 그래프에 나타낸다. 이때 레이블의 색상으로 제조사를 구분할 수 있도록 하였다. 205 | 206 | 207 | ```r 208 | # 메이저 제조사의 목록을 구하기 209 | majors = mpg %>% 210 | group_by() %>% # 데이터를 제조사 기준으로 그룹하여 211 | summarize(count=n()) %>% # 제조사별 모델의 개수를 구하고 212 | filter(count > 10) # 적어도 10대 이상의 모델이 있는 제조사만 남긴다 213 | 214 | # 메이저 제조사의 모델을 구하기 215 | mpg.majors = mpg %>% 216 | filter(manufacturer %in% majors$manufacturer) %>% # 메이저 제조사의 차량만 남기고 217 | distinct(model) # 차량별로 한대씩만 남긴다. 218 | 219 | # 모델별 연비에 모델 이름을 추가한 플롯 220 | ggplot(mpg.majors, aes(hwy, cty)) + # 기본 플롯에 221 | geom_text(aes(label = model, color = manufacturer), size = 4, # 텍스트 레이블을 더하고 222 | position=position_jitter(width=1, height=2)) # 레이블이 겹치지 않도록 노이즈를 더한다. 223 | ``` 224 | 225 | ![](mpg_files/figure-html/unnamed-chunk-12-1.png) 226 | 227 | 위 플롯을 보면 연비가 낮은 대부분의 차량은 4륜 구동의 SUV 및 트럭임을 알 수 있다. 또한 높은 연비를 자랑하는 차량은 대부분 한국/일본산이거나 그리고 독일의 폭스바겐에서 만들어진 것들이다. 또한 독일 아우디에서 만든 차량은 고속도로 연비에 비해 도시 연비가 좋지 않다는 것도 알 수 있다. 228 | 229 | -------------------------------------------------------------------------------- /boston.md: -------------------------------------------------------------------------------- 1 | # 헬로 데이터 과학: 회귀 분석 2 | Jin Young Kim 3 | 4 | 이번에는 R을 사용하여 기계학습을 이용한 문제 해결의 과정을 사례로 배워보도록 하자. 기계학습의 다양한 기법 가운데 수치 형태의 속성을 예측하는 회귀 분석을 수행하고 그 결과를 평가하는 방법을 배워보도록 하자. 5 | 6 | 이번 실습에 사용할 데이터셋 역시 보스턴의 지역별 집값에 영향을 끼치는 요인을 정리한 것으로, 다양한 변인을 조합하여 각 지역의 집값을 예측하는 것이 목표다. 우선 아래와 같이 작업 파일을 R로 불러 살펴보도록 하자. 7 | 8 | 9 | ```r 10 | source("dbook.R") 11 | load.packages(c("plyr","dplyr", "ggplot2", "tidyr", "rpart", "randomForest")) 12 | ``` 13 | 14 | ``` 15 | ## [1] loading plyr 16 | ## [1] loading dplyr 17 | ## [1] loading ggplot2 18 | ## [1] loading tidyr 19 | ## [1] loading rpart 20 | ## [1] loading randomForest 21 | ``` 22 | 23 | ```r 24 | bos = read.table("boston.txt", sep="\t", header=T) 25 | head(bos) 26 | ``` 27 | 28 | ``` 29 | ## crim zn indus chas nox rm age dis rad tax ptratio black 30 | ## 1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 31 | ## 2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 32 | ## 3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 33 | ## 4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 34 | ## 5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 35 | ## 6 0.02985 0 2.18 0 0.458 6.430 58.7 6.0622 3 222 18.7 394.12 36 | ## lstat medv 37 | ## 1 4.98 24.0 38 | ## 2 9.14 21.6 39 | ## 3 4.03 34.7 40 | ## 4 2.94 33.4 41 | ## 5 5.33 36.2 42 | ## 6 5.21 28.7 43 | ``` 44 | 45 | ```r 46 | summary(bos) 47 | ``` 48 | 49 | ``` 50 | ## crim zn indus chas 51 | ## Min. : 0.00632 Min. : 0.00 Min. : 0.46 Min. :0.00000 52 | ## 1st Qu.: 0.08204 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.00000 53 | ## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.00000 54 | ## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.06917 55 | ## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.00000 56 | ## Max. :88.97620 Max. :100.00 Max. :27.74 Max. :1.00000 57 | ## nox rm age dis 58 | ## Min. :0.3850 Min. :3.561 Min. : 2.90 Min. : 1.130 59 | ## 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100 60 | ## Median :0.5380 Median :6.208 Median : 77.50 Median : 3.207 61 | ## Mean :0.5547 Mean :6.285 Mean : 68.57 Mean : 3.795 62 | ## 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188 63 | ## Max. :0.8710 Max. :8.780 Max. :100.00 Max. :12.127 64 | ## rad tax ptratio black 65 | ## Min. : 1.000 Min. :187.0 Min. :12.60 Min. : 0.32 66 | ## 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.:375.38 67 | ## Median : 5.000 Median :330.0 Median :19.05 Median :391.44 68 | ## Mean : 9.549 Mean :408.2 Mean :18.46 Mean :356.67 69 | ## 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:396.23 70 | ## Max. :24.000 Max. :711.0 Max. :22.00 Max. :396.90 71 | ## lstat medv 72 | ## Min. : 1.73 Min. : 5.00 73 | ## 1st Qu.: 6.95 1st Qu.:17.02 74 | ## Median :11.36 Median :21.20 75 | ## Mean :12.65 Mean :22.53 76 | ## 3rd Qu.:16.95 3rd Qu.:25.00 77 | ## Max. :37.97 Max. :50.00 78 | ``` 79 | 80 | #### 탐색적 분석 81 | 82 | 이제 집값(medv)에 영향을 미치는 다양한 변인을 살펴보자. 우선 R에서 상관도 테이블을 만들어서 클립보드로 그 내용을 내보내자. 83 | 84 | 85 | 86 | ```r 87 | plot(bos[,c(1:13, 14)]) 88 | ``` 89 | 90 | ![](boston_files/figure-html/unnamed-chunk-2-1.png) 91 | 92 | 이제 클립보드의 상관도 테이블을 엑셀로 읽어서 (붙여넣기: Ctrl+V) 조건부 서식을 적용하도록 하자. 아래 플롯은 집값에 영향을 끼치는 변인들을 요약한다. 각 변수간의 상관도를 색상으로 표시하는데, 파란 색은 양의 상관도를, 붉은 색은 음의 상관도를 가진다. 아래 플롯을 보면 집값(medv)과 상관도가 가장 높은 속성은 역시 집의 크기를 결정하는 방의 개수(rm)인 것을 알 수 있다. 93 | 94 | 95 | ```r 96 | ctab = round(cor(bos),3) 97 | write.table(ctab, "clipboard") 98 | ``` 99 | 100 | 또한 우리가 예측하고자 하는 집값의 분포를 살펴보자. 아래 플롯을 보면 대체로 정규 분포를 띄지만 고가의 주택이 밀집한 지역이 많이 존재하는 것을 알 수 있다. 이처럼 예측대상인 변수가 정규 분포를 따르지 않는 것은 선형 모델의 정확도에 문제를 가져올 수 있다. 101 | 102 | 103 | ```r 104 | par(mfrow=c(1,2)) 105 | hist(bos$medv, main="Density of Median (medv)") 106 | plot(density(bos$medv), main="Density of Median (medv)") 107 | ``` 108 | 109 | ![](boston_files/figure-html/unnamed-chunk-4-1.png) 110 | 111 | #### 학습 모델 만들기 112 | 113 | 이제 실제 학습 모델을 만들어보자. 이 장에서는 단순하면서 해석이 용이하지만 예측 성능에 한계가 있는 선형 회귀 모델과 의사결정트리 기법, 그리고 해석이 힘들지만 높은 예측 성능을 보이는 랜덤포레스트(RandomForest) 모델을 사용하여 서로 다른 모델의 특성과 성능을 비교 분석해보자. 114 | 115 | 116 | 117 | ```r 118 | # 주어진 데이터로 선형 모델을 만든다 119 | lm.m <- function(tbl){ 120 | lm(medv ~ crim + zn + indus + chas + nox + rm + age + 121 | dis + rad + tax + ptratio + black + lstat, tbl) 122 | } 123 | 124 | # 주어진 데이터로 의사결정트리 모델을 만든다 125 | rpart.m <- function(tbl){ 126 | rpart(medv ~ crim + zn + indus + chas + nox + rm + age + 127 | dis + rad + tax + ptratio + black + lstat, tbl) 128 | } 129 | 130 | # 주어진 데이터로 랜덤포레스트 모델을 만든다 131 | randomForest.m <- function(tbl){ 132 | randomForest(medv ~ crim + zn + indus + chas + nox + rm + age + 133 | dis + rad + tax + ptratio + black + lstat, tbl) 134 | } 135 | ``` 136 | 137 | 우선 간단한 선형 모델로 시작해보자. 아래는 R로 선형회귀 모델을 학습하고 각 변수의 계수(coefficient)를 시각화한 결과다. 위의 상관도 분석에서 집값과 관련성이 높은 것으로 조사된 속성들이 꼭 높은 양의 상관 관계를 보이지는 않는 것을 알 수 있다. 이는 주어진 데이터의 많은 속성들이 서로 높은 상관 관계를 가지며, 따라서 이들 중 일부만 알아도 예측에는 충분하기 때문이다. 138 | 139 | 140 | ```r 141 | lm1 = lm.m(bos) 142 | barplot(lm1$coefficients) 143 | ``` 144 | 145 | ![](boston_files/figure-html/unnamed-chunk-6-1.png) 146 | 147 | 이번에는 R에서 의사결정트리를 이용하여 주어진 데이터로 학습한 결과다. 의사 결정의 각 단계가 트리 형태로 표현되는 것을 볼 수 있다. 아래 트리 왼쪽의 설명은 트리의 각 노드를 따라가면서 집값이 결정되는 과정을 나타낸다. 트리의 각 노드의 기준이 차례로 적용되어 최종 집값이 계산되는 것을 볼 수 있다. 148 | 149 | 아래 학습된 트리의 모양을 보면 어떤 속성이 의사결정에서 우선시되어야 하는지를 알 수 있다. 위 트리에서는 가구당 방의 개수(rm)를 최우선 기준으로, 그리고 주민의 소득 수준(lstat) 및 범죄율(crim) 등을 2차 기준으로 하는 의사결정트리가 학습되었다. 앞에서 살펴본 선형회귀 모델에서 높은 계수를 가지는 속성이 의사결정트리에 꼭 사용되는 것은 아니라는 점을 알 수 있다. 150 | 151 | 152 | ```r 153 | rp1 = rpart.m(bos) 154 | plot(rp1) 155 | text(rp1) 156 | ``` 157 | 158 | ![](boston_files/figure-html/unnamed-chunk-7-1.png) 159 | 160 | 이처럼 직관적으로 해석할 수 있는 선형 모델과 의사결정 트리와 달리 의사결정 트리에 기반한 비선형 모델인 랜덤포레스트는 실제로 수많은 트리의 집합(forest)으로 구성되어 있기 때문에, 학습한 결과를 한눈에 살펴보기 어렵다. 161 | 162 | 하지만 R의 랜덤포레스트 라이브러리는 학습 결과의 이해를 돕는 몇 가지 차트를 제공한다. 우선 아래 왼쪽의 차트는 학습 모델에 포함된 트리의 개수에 따른 에러율의 변화를 보여준다. 트리 개수가 200개를 넘어가면 에러율이 안정화되는 것을 확인할 수 있다. 그리고 아래 오른쪽의 차트는 학습된 트리 집합 전체를 바탕으로 계산된 각 속성의 중요도를 보여준다. 여기서 IncNodePurity는 각 속성이 전체 예측 결과의 품질을 얼마나 높이는지를 나타내는 지표로 이해하면 된다. 163 | 164 | 165 | 166 | ```r 167 | rf1 = randomForest.m(bos) 168 | par(mfrow=c(1,2)) 169 | plot(rf1, log="y", main="Error Rate ~ # of Trees") 170 | varImpPlot(rf1, main="Variable Importance") 171 | ``` 172 | 173 | ![](boston_files/figure-html/unnamed-chunk-8-1.png) 174 | 175 | #### 학습 모델 평가하기 176 | 177 | 지금까지 주어진 데이터를 가지고 다양한 모델을 만드는 방법을 알아보았다. 이제 만들어진 모델을 평가하는 방법을 알아보자. 실제 예측 결과에서 어떤 차이를 보이는 지를 알기 위해서는 학습에 사용하지 않은 데이터에 대한 예측 성능을 비교해보아야 할 것이다. 178 | 179 | 이처럼 두 모델의 예측 성능을 비교하기 위해서 앞에서 설명한 교차검증법을 사용할 수 있다. 이는 주어진 데이터를 K개의 그룹으로 나누고, 각 그룹에 대한 예측값을 (K-1)개의 그룹의 속성을 사용해서 학습한 모델을 가지고 얻어내고, 그 결과를 집계하는 방식이다. 180 | 181 | 182 | ```r 183 | # 주어진 데이터를 k개로 나누어 교차검증을 수행 184 | cval.model <- function(cvt, fun.model, k, ...) 185 | { 186 | # 원본 데이터의 각 항목에 1~k까지의 숫자를 배정 187 | cvt$fold = sample(1:k, nrow(cvt), replace=T) 188 | 189 | # 각 fold의 학습 모델을 만들어 결과를 모음 190 | adply(1:k, 1, function(i){ 191 | cvtr = cvt[cvt$fold != i,] # 학습 데이터 192 | cvte = cvt[cvt$fold == i,] # 평가 데이터 193 | # 모델의 예측 결과를 얻음 194 | cvte$res = predict(fun.model(cvtr, ...), cvte) 195 | cvte 196 | }) 197 | } 198 | # 3차 교차검증을 세가지 모델에 대해 수행 199 | crt1 = cval.model(bos, lm.m, 3) 200 | crt2 = cval.model(bos, rpart.m, 3) 201 | crt3 = cval.model(bos, randomForest.m, 3) 202 | head(crt3) 203 | ``` 204 | 205 | ``` 206 | ## X1 crim zn indus chas nox rm age dis rad tax ptratio 207 | ## 1 1 0.02729 0.0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 208 | ## 2 1 0.08829 12.5 7.87 0 0.524 6.012 66.6 5.5605 5 311 15.2 209 | ## 3 1 0.14455 12.5 7.87 0 0.524 6.172 96.1 5.9505 5 311 15.2 210 | ## 4 1 0.21124 12.5 7.87 0 0.524 5.631 100.0 6.0821 5 311 15.2 211 | ## 5 1 0.11747 12.5 7.87 0 0.524 6.009 82.9 6.2267 5 311 15.2 212 | ## 6 1 1.05393 0.0 8.14 0 0.538 5.935 29.3 4.4986 4 307 21.0 213 | ## black lstat medv fold res 214 | ## 1 392.83 4.03 34.7 1 35.96700 215 | ## 2 395.60 12.43 22.9 1 20.81733 216 | ## 3 396.90 19.15 27.1 1 17.81627 217 | ## 4 386.63 29.93 16.5 1 16.91083 218 | ## 5 396.90 13.27 18.9 1 19.78804 219 | ## 6 386.85 6.58 23.1 1 21.21223 220 | ``` 221 | 222 | 회귀 모델의 예측 성능을 알아보기 위해서는 앞서 살펴본 RMSE(root mean squared error) 지표를 사용하면 된다. 아래 코드는 선형회귀, 의사결정트리 및 랜덤포레스트 모델의 예측값을 비교한 것이다. 223 | 224 | 225 | ```r 226 | # RMSE지표를 계산 227 | rmse <- function(c1, c2){ 228 | sqrt(mean((c1 - c2) ^ 2)) 229 | } 230 | # 세 모델의 교차검증 결과에 대한 RMSE를 계산 231 | rmse(crt1$medv, crt1$res) 232 | ``` 233 | 234 | ``` 235 | ## [1] 4.900297 236 | ``` 237 | 238 | ```r 239 | rmse(crt2$medv, crt2$res) 240 | ``` 241 | 242 | ``` 243 | ## [1] 4.647861 244 | ``` 245 | 246 | ```r 247 | rmse(crt3$medv, crt3$res) 248 | ``` 249 | 250 | ``` 251 | ## [1] 3.400849 252 | ``` 253 | 254 | 이제 위에서 설명한 모델 간의 예측 결과를 시각적으로 비교해보자. 아래 플롯은 지금까지 소개한 세 가지 기계학습 모델로 예측된 집값과 실제 집값의 관계를 스케터플롯으로 나타낸 것이다. 아래 플롯의 왼쪽에 있는 선형회귀 모델의 결과를 보면 낮은 가격대의 집값은 비교적 정확하게 예측하지만 집값이 올라갈수록 예측값이 실제 값보다 작아지는 경향을 알 수 있다. 이는 예측에 사용된 속성과 예측 대상이 되는 속성 간의 선형적 관계만을 표현할 수 있는 선형회귀 기법의 한계라고 할 수 있다. 255 | 256 | 가운데의 의사결정 트리는 선형 모델에서와 같은 편향은 나타나지 않지만, 예측값이 몇 가지 값으로 계층화된 것을 볼 수 있다. 이는 업력 속성값에 따라 구간을 나누어 예측 속성값을 결정하는 의사결정트리의 특성을 보여준다. 반면에 오른쪽 랜덤포레스트 모델의 결과는 실제 값과 예측값이 거의 일치하는 것을 알 수 있다. 이는 수많은 개별 트리를 사용하여 주어진 데이터의 다양한 패턴을 포착하는 랜덤포레스트 모델에서 주어진 속성과 예측값 간의 관계를 정확히 모델링한 결과다. 257 | 258 | 259 | ```r 260 | par(mfrow=c(1,3)) 261 | plot(crt1$medv, crt1$res, ylim=c(0,50), 262 | xlab="Actual", ylab="Predicted", main="Linear Regression") 263 | lines(loess.smooth(crt1$medv, crt1$res)) 264 | plot(crt2$medv, crt2$res, ylim=c(0,50), 265 | xlab="Actual", ylab="Predicted", main="Decision Tree") 266 | lines(loess.smooth(crt2$medv, crt2$res)) 267 | plot(crt3$medv, crt3$res, ylim=c(0,50), 268 | xlab="Actual", ylab="Predicted", main="RandomForest") 269 | lines(loess.smooth(crt3$medv, crt3$res)) 270 | ``` 271 | 272 | ![](boston_files/figure-html/unnamed-chunk-11-1.png) 273 | -------------------------------------------------------------------------------- /mtcars.md: -------------------------------------------------------------------------------- 1 | # From Excel to R 2 | Jin Kim 3 | Saturday, May 02, 2015 4 | # Preparing Environemnt 5 | 6 | 7 | ```r 8 | setwd("c:/src/root/dbook") 9 | source("dbook.R") 10 | load.packages(c("stringr", "ggplot2", "dplyr")) 11 | ``` 12 | 13 | ``` 14 | ## [1] loading stringr 15 | ## [1] loading ggplot2 16 | ## [1] loading dplyr 17 | ``` 18 | 19 | 20 | # Defining Variables 21 | 22 | 23 | ```r 24 | v1 = 1 25 | v2 = "abc" 26 | v3 = c(1,2,3) 27 | 28 | df1 = data.frame( 29 | Name=c("Jerry","Tom","Smith"), 30 | Math=c(50,60,75)) 31 | df1 32 | ``` 33 | 34 | # Reading & Writing Data 35 | 36 | 37 | ```r 38 | #write.table(mtcars, "clipboard") 39 | write.table(mtcars, "mtcars_new.txt") 40 | mcars = read.table("mtcars_new.txt", header=T) 41 | ``` 42 | 43 | 44 | # Learning about DataFrame 45 | 46 | 47 | ```r 48 | head(mcars) 49 | ``` 50 | 51 | ``` 52 | ## mpg cyl disp hp drat wt qsec vs am gear carb 53 | ## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 54 | ## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 55 | ## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 56 | ## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 57 | ## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 58 | ## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 59 | ``` 60 | 61 | ```r 62 | tail(mcars) 63 | ``` 64 | 65 | ``` 66 | ## mpg cyl disp hp drat wt qsec vs am gear carb 67 | ## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.7 0 1 5 2 68 | ## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 69 | ## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.5 0 1 5 4 70 | ## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.5 0 1 5 6 71 | ## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.6 0 1 5 8 72 | ## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.6 1 1 4 2 73 | ``` 74 | 75 | ```r 76 | rownames(mcars) 77 | ``` 78 | 79 | ``` 80 | ## [1] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" 81 | ## [4] "Hornet 4 Drive" "Hornet Sportabout" "Valiant" 82 | ## [7] "Duster 360" "Merc 240D" "Merc 230" 83 | ## [10] "Merc 280" "Merc 280C" "Merc 450SE" 84 | ## [13] "Merc 450SL" "Merc 450SLC" "Cadillac Fleetwood" 85 | ## [16] "Lincoln Continental" "Chrysler Imperial" "Fiat 128" 86 | ## [19] "Honda Civic" "Toyota Corolla" "Toyota Corona" 87 | ## [22] "Dodge Challenger" "AMC Javelin" "Camaro Z28" 88 | ## [25] "Pontiac Firebird" "Fiat X1-9" "Porsche 914-2" 89 | ## [28] "Lotus Europa" "Ford Pantera L" "Ferrari Dino" 90 | ## [31] "Maserati Bora" "Volvo 142E" 91 | ``` 92 | 93 | ```r 94 | colnames(mcars) 95 | ``` 96 | 97 | ``` 98 | ## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" 99 | ## [11] "carb" 100 | ``` 101 | 102 | ```r 103 | summary(mcars) 104 | ``` 105 | 106 | ``` 107 | ## mpg cyl disp hp 108 | ## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0 109 | ## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5 110 | ## Median :19.20 Median :6.000 Median :196.3 Median :123.0 111 | ## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7 112 | ## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0 113 | ## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0 114 | ## drat wt qsec vs 115 | ## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000 116 | ## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 117 | ## Median :3.695 Median :3.325 Median :17.71 Median :0.0000 118 | ## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375 119 | ## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 120 | ## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000 121 | ## am gear carb 122 | ## Min. :0.0000 Min. :3.000 Min. :1.000 123 | ## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000 124 | ## Median :0.0000 Median :4.000 Median :2.000 125 | ## Mean :0.4062 Mean :3.688 Mean :2.812 126 | ## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000 127 | ## Max. :1.0000 Max. :5.000 Max. :8.000 128 | ``` 129 | 130 | # Preparing the DataFrame 131 | 132 | 133 | ```r 134 | mcars$model = rownames(mcars) 135 | mcars$maker = word(mcars$model, 1) 136 | rownames(mcars) = NULL 137 | head(mcars) 138 | ``` 139 | 140 | ``` 141 | ## mpg cyl disp hp drat wt qsec vs am gear carb model 142 | ## 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 143 | ## 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Mazda RX4 Wag 144 | ## 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Datsun 710 145 | ## 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet 4 Drive 146 | ## 5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Hornet Sportabout 147 | ## 6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 Valiant 148 | ## maker 149 | ## 1 Mazda 150 | ## 2 Mazda 151 | ## 3 Datsun 152 | ## 4 Hornet 153 | ## 5 Hornet 154 | ## 6 Valiant 155 | ``` 156 | 157 | # Summarizing the Data 158 | 159 | 160 | ```r 161 | table(mcars$cyl) 162 | ``` 163 | 164 | ``` 165 | ## 166 | ## 4 6 8 167 | ## 11 7 14 168 | ``` 169 | 170 | ```r 171 | table(mcars$gear, mcars$cyl) 172 | ``` 173 | 174 | ``` 175 | ## 176 | ## 4 6 8 177 | ## 3 1 2 12 178 | ## 4 8 4 0 179 | ## 5 2 1 2 180 | ``` 181 | 182 | # Working with DataFrame 183 | ## Working with DataFrame (basic) 184 | 185 | 186 | ```r 187 | mcars$cyl == 4 188 | ``` 189 | 190 | ``` 191 | ## [1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE 192 | ## [12] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE 193 | ## [23] FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE 194 | ``` 195 | 196 | ```r 197 | mcars.small = mcars[mcars$cyl == 4, ] # filter rows 198 | mcars.small.narrow = mcars.small[, c("model","maker", "mpg", "cyl")] # select columns by name 199 | mcars.small.narrow = mcars.small[, c(12:13, 1:2)] # select columns by index 200 | mcars.small.narrow 201 | ``` 202 | 203 | ``` 204 | ## model maker mpg cyl 205 | ## 3 Datsun 710 Datsun 22.8 4 206 | ## 8 Merc 240D Merc 24.4 4 207 | ## 9 Merc 230 Merc 22.8 4 208 | ## 18 Fiat 128 Fiat 32.4 4 209 | ## 19 Honda Civic Honda 30.4 4 210 | ## 20 Toyota Corolla Toyota 33.9 4 211 | ## 21 Toyota Corona Toyota 21.5 4 212 | ## 26 Fiat X1-9 Fiat 27.3 4 213 | ## 27 Porsche 914-2 Porsche 26.0 4 214 | ## 28 Lotus Europa Lotus 30.4 4 215 | ## 32 Volvo 142E Volvo 21.4 4 216 | ``` 217 | 218 | ## Working with DataFrame (dplyr) 219 | 220 | 221 | ```r 222 | mcars.small.narrow = # 결과를 mcars.small.narrow라는 변수에 저장한다. 223 | mcars %>% # mcars 데이터를 사용한다. 224 | filter(cyl == 4) %>% # cyl 값이 4인 데이터만 남긴다. 225 | select(maker, model, mpg, cyl) # # 주어진 네 속성만 선택한다. 226 | mcars.small.narrow 227 | ``` 228 | 229 | ``` 230 | ## maker model mpg cyl 231 | ## 1 Datsun Datsun 710 22.8 4 232 | ## 2 Merc Merc 240D 24.4 4 233 | ## 3 Merc Merc 230 22.8 4 234 | ## 4 Fiat Fiat 128 32.4 4 235 | ## 5 Honda Honda Civic 30.4 4 236 | ## 6 Toyota Toyota Corolla 33.9 4 237 | ## 7 Toyota Toyota Corona 21.5 4 238 | ## 8 Fiat Fiat X1-9 27.3 4 239 | ## 9 Porsche Porsche 914-2 26.0 4 240 | ## 10 Lotus Lotus Europa 30.4 4 241 | ## 11 Volvo Volvo 142E 21.4 4 242 | ``` 243 | 244 | ```r 245 | makers = 246 | mcars %>% 247 | group_by(maker) %>% # 제조사 기준으로 데이터를 집계한다. 248 | summarize( maker.mpg = mean(mpg), maker.count = n()) # 제조사별 평균 mpg및 차종수 249 | head(makers) 250 | ``` 251 | 252 | ``` 253 | ## Source: local data frame [6 x 3] 254 | ## 255 | ## maker maker.mpg maker.count 256 | ## (chr) (dbl) (int) 257 | ## 1 AMC 15.2 1 258 | ## 2 Cadillac 10.4 1 259 | ## 3 Camaro 13.3 1 260 | ## 4 Chrysler 14.7 1 261 | ## 5 Datsun 22.8 1 262 | ## 6 Dodge 15.5 1 263 | ``` 264 | 265 | ```r 266 | mcars.makers = merge(mcars, makers, by="maker") 267 | head(mcars.makers) 268 | ``` 269 | 270 | ``` 271 | ## maker mpg cyl disp hp drat wt qsec vs am gear carb 272 | ## 1 AMC 15.2 8 304 150 3.15 3.435 17.30 0 0 3 2 273 | ## 2 Cadillac 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4 274 | ## 3 Camaro 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4 275 | ## 4 Chrysler 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 276 | ## 5 Datsun 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 277 | ## 6 Dodge 15.5 8 318 150 2.76 3.520 16.87 0 0 3 2 278 | ## model maker.mpg maker.count 279 | ## 1 AMC Javelin 15.2 1 280 | ## 2 Cadillac Fleetwood 10.4 1 281 | ## 3 Camaro Z28 13.3 1 282 | ## 4 Chrysler Imperial 14.7 1 283 | ## 5 Datsun 710 22.8 1 284 | ## 6 Dodge Challenger 15.5 1 285 | ``` 286 | 287 | # Plotting 288 | ## Basic Plotting 289 | 290 | ```r 291 | hist(mcars$mpg) 292 | ``` 293 | 294 | ![](mtcars_files/figure-html/ch2_plot_basic-1.png) 295 | 296 | ```r 297 | plot(mcars[,1:5]) 298 | ``` 299 | 300 | ![](mtcars_files/figure-html/ch2_plot_basic-2.png) 301 | 302 | ```r 303 | plot(mcars$wt, mcars$mpg) 304 | ``` 305 | 306 | ![](mtcars_files/figure-html/ch2_plot_basic-3.png) 307 | 308 | ```r 309 | par(mfrow=c(1,2)) 310 | plot(mpg ~ cyl, mcars) 311 | plot(mpg ~ factor(cyl), mcars) 312 | ``` 313 | 314 | ![](mtcars_files/figure-html/ch2_plot_basic-4.png) 315 | 316 | ## Advanced Plotting 317 | 318 | ```r 319 | qplot(wt, mpg, data=mcars, color=wt) 320 | ``` 321 | 322 | ![](mtcars_files/figure-html/ch2_plot_adv-1.png) 323 | 324 | ```r 325 | qplot(wt, mpg, data=mcars, color=factor(cyl)) 326 | ``` 327 | 328 | ![](mtcars_files/figure-html/ch2_plot_adv-2.png) 329 | 330 | ```r 331 | qplot(wt, mpg, data=mcars, geom = c("point", "smooth")) 332 | ``` 333 | 334 | ``` 335 | ## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method. 336 | ``` 337 | 338 | ![](mtcars_files/figure-html/ch2_plot_adv-3.png) 339 | -------------------------------------------------------------------------------- /mpg.txt: -------------------------------------------------------------------------------- 1 | manufacturer model trans drv displ year cyl cty hwy fl class 2 | dodge durango 4wd auto(l4) 4 3.9 1999 6 13 17 r suv 3 | ford f150 pickup 4wd manual(m5) 4 4.6 1999 8 13 16 r pickup 4 | volkswagen gti auto(l4) f 2 1999 4 19 26 r compact 5 | nissan altima manual(m5) f 2.4 1999 4 21 29 r compact 6 | volkswagen gti auto(s6) f 2 2008 4 22 29 p compact 7 | volkswagen gti manual(m5) f 2 1999 4 21 29 r compact 8 | land rover range rover auto(s6) 4 4.2 2008 8 12 18 r suv 9 | toyota camry auto(l5) f 2.4 2008 4 21 31 r midsize 10 | ford mustang auto(l5) r 4 2008 6 16 24 r subcompact 11 | volkswagen gti manual(m6) f 2 2008 4 21 29 p compact 12 | toyota corolla manual(m5) f 1.8 1999 4 26 35 r compact 13 | audi a4 quattro manual(m5) 4 1.8 1999 4 18 26 p compact 14 | dodge caravan 2wd auto(l4) f 3.3 2008 6 11 17 e minivan 15 | ford expedition 2wd auto(l4) r 5.4 1999 8 11 17 r suv 16 | dodge dakota pickup 4wd auto(l5) 4 4.7 2008 8 14 19 r pickup 17 | ford f150 pickup 4wd auto(l4) 4 4.2 1999 6 14 17 r pickup 18 | dodge caravan 2wd auto(l4) f 3.8 1999 6 15 21 r minivan 19 | chevrolet malibu auto(s6) f 3.6 2008 6 17 26 r midsize 20 | volkswagen gti manual(m5) f 2.8 1999 6 17 24 r compact 21 | mercury mountaineer 4wd auto(l5) 4 4 2008 6 13 19 r suv 22 | chevrolet c1500 suburban 2wd auto(l4) r 5.7 1999 8 13 17 r suv 23 | dodge caravan 2wd auto(l4) f 3 1999 6 17 24 r minivan 24 | chevrolet corvette auto(l4) r 5.7 1999 8 15 23 p 2seater 25 | honda civic manual(m5) f 1.6 1999 4 23 29 p subcompact 26 | ford expedition 2wd auto(l4) r 4.6 1999 8 11 17 r suv 27 | ford expedition 2wd auto(l6) r 5.4 2008 8 12 18 r suv 28 | dodge durango 4wd auto(l5) 4 4.7 2008 8 13 17 r suv 29 | ford explorer 4wd auto(l6) 4 4.6 2008 8 13 19 r suv 30 | subaru impreza awd manual(m5) 4 2.5 2008 4 20 27 r compact 31 | ford mustang manual(m6) r 5.4 2008 8 14 20 p subcompact 32 | hyundai tiburon auto(l4) f 2 2008 4 20 27 r subcompact 33 | audi a4 quattro manual(m5) 4 2.8 1999 6 17 25 p compact 34 | honda civic auto(l4) f 1.6 1999 4 24 32 r subcompact 35 | ford f150 pickup 4wd auto(l4) 4 5.4 1999 8 11 15 r pickup 36 | volkswagen jetta manual(m5) f 1.9 1999 4 33 44 d compact 37 | nissan maxima auto(av) f 3.5 2008 6 19 25 p midsize 38 | chevrolet c1500 suburban 2wd auto(l4) r 5.3 2008 8 14 20 r suv 39 | volkswagen jetta auto(l4) f 2 1999 4 19 26 r compact 40 | volkswagen jetta auto(s6) f 2 2008 4 22 29 p compact 41 | toyota camry solara manual(m5) f 2.4 2008 4 21 31 r compact 42 | toyota land cruiser wagon 4wd auto(s6) 4 5.7 2008 8 13 18 r suv 43 | dodge ram 1500 pickup 4wd auto(l5) 4 4.7 2008 8 13 17 r pickup 44 | dodge dakota pickup 4wd manual(m5) 4 3.9 1999 6 14 17 r pickup 45 | jeep grand cherokee 4wd auto(l5) 4 3 2008 6 17 22 d suv 46 | toyota 4runner 4wd manual(m5) 4 2.7 1999 4 15 20 r suv 47 | toyota corolla auto(l3) f 1.8 1999 4 24 30 r compact 48 | chevrolet k1500 tahoe 4wd auto(l4) 4 5.3 2008 8 11 14 e suv 49 | toyota camry solara auto(s5) f 3.3 2008 6 18 27 r compact 50 | ford mustang auto(l4) r 3.8 1999 6 18 25 r subcompact 51 | nissan pathfinder 4wd auto(s5) 4 5.6 2008 8 12 18 p suv 52 | toyota corolla manual(m5) f 1.8 2008 4 28 37 r compact 53 | subaru impreza awd auto(s4) 4 2.5 2008 4 20 27 r compact 54 | pontiac grand prix auto(l4) f 3.1 1999 6 18 26 r midsize 55 | land rover range rover auto(l4) 4 4 1999 8 11 15 p suv 56 | ford explorer 4wd auto(l5) 4 4 1999 6 14 17 r suv 57 | volkswagen jetta manual(m5) f 2 1999 4 21 29 r compact 58 | subaru forester awd manual(m5) 4 2.5 1999 4 18 25 r suv 59 | nissan altima manual(m6) f 2.5 2008 4 23 32 r midsize 60 | toyota camry auto(l4) f 2.2 1999 4 21 27 r midsize 61 | audi a4 quattro auto(l5) 4 2.8 1999 6 15 25 p compact 62 | dodge ram 1500 pickup 4wd manual(m5) 4 5.2 1999 8 11 16 r pickup 63 | subaru forester awd manual(m5) 4 2.5 2008 4 20 27 r suv 64 | toyota camry manual(m5) f 3 1999 6 18 26 r midsize 65 | dodge dakota pickup 4wd auto(l5) 4 4.7 2008 8 14 19 r pickup 66 | toyota camry auto(s6) f 3.5 2008 6 19 28 r midsize 67 | toyota 4runner 4wd auto(l4) 4 2.7 1999 4 16 20 r suv 68 | volkswagen jetta manual(m6) f 2 2008 4 21 29 p compact 69 | pontiac grand prix auto(l4) f 3.8 2008 6 18 28 r midsize 70 | dodge caravan 2wd auto(l4) f 3.3 1999 6 16 22 r minivan 71 | ford mustang auto(l5) r 4.6 2008 8 15 22 r subcompact 72 | hyundai sonata auto(l4) f 2.4 1999 4 18 26 r midsize 73 | chevrolet k1500 tahoe 4wd auto(l4) 4 5.3 2008 8 14 19 r suv 74 | hyundai sonata auto(l5) f 3.3 2008 6 19 28 r midsize 75 | jeep grand cherokee 4wd auto(l5) 4 6.1 2008 8 11 14 p suv 76 | nissan pathfinder 4wd auto(l5) 4 4 2008 6 14 20 p suv 77 | audi a6 quattro auto(s6) 4 3.1 2008 6 17 25 p midsize 78 | nissan altima manual(m6) f 3.5 2008 6 19 27 p midsize 79 | jeep grand cherokee 4wd auto(l5) 4 5.7 2008 8 13 18 r suv 80 | ford f150 pickup 4wd manual(m5) 4 4.2 1999 6 14 17 r pickup 81 | subaru impreza awd auto(l4) 4 2.5 1999 4 19 26 r subcompact 82 | ford explorer 4wd manual(m5) 4 4 1999 6 15 19 r suv 83 | toyota toyota tacoma 4wd manual(m6) 4 4 2008 6 15 18 r pickup 84 | dodge caravan 2wd auto(l6) f 3.8 2008 6 16 23 r minivan 85 | volkswagen jetta auto(s6) f 2.5 2008 5 21 29 r compact 86 | toyota toyota tacoma 4wd auto(l4) 4 3.4 1999 6 15 19 r pickup 87 | lincoln navigator 2wd auto(l6) r 5.4 2008 8 12 18 r suv 88 | mercury mountaineer 4wd auto(l6) 4 4.6 2008 8 13 19 r suv 89 | dodge ram 1500 pickup 4wd auto(l5) 4 4.7 2008 8 9 12 e pickup 90 | ford explorer 4wd auto(l4) 4 5 1999 8 13 17 r suv 91 | volkswagen jetta manual(m5) f 2.5 2008 5 21 29 r compact 92 | toyota toyota tacoma 4wd manual(m5) 4 2.7 1999 4 15 20 r pickup 93 | mercury mountaineer 4wd auto(l5) 4 4 1999 6 14 17 r suv 94 | dodge dakota pickup 4wd auto(l4) 4 5.2 1999 8 11 15 r pickup 95 | dodge ram 1500 pickup 4wd auto(l4) 4 5.9 1999 8 11 15 r pickup 96 | nissan pathfinder 4wd manual(m5) 4 3.3 1999 6 15 17 r suv 97 | audi a4 auto(av) f 2 2008 4 21 30 p compact 98 | pontiac grand prix auto(s4) f 5.3 2008 8 16 25 p midsize 99 | nissan maxima manual(m5) f 3 1999 6 19 25 r midsize 100 | audi a4 quattro manual(m6) 4 3.1 2008 6 15 25 p compact 101 | dodge durango 4wd auto(l4) 4 5.9 1999 8 11 15 r suv 102 | audi a4 auto(l5) f 1.8 1999 4 18 29 p compact 103 | volkswagen jetta auto(l4) f 2.8 1999 6 16 23 r compact 104 | hyundai sonata manual(m5) f 2.4 2008 4 21 31 r midsize 105 | volkswagen jetta manual(m5) f 2.8 1999 6 17 24 r compact 106 | honda civic auto(l5) f 1.8 2008 4 24 36 c subcompact 107 | volkswagen new beetle auto(l4) f 1.9 1999 4 29 41 d subcompact 108 | honda civic auto(l5) f 1.8 2008 4 25 36 r subcompact 109 | ford mustang manual(m5) r 4.6 2008 8 15 23 r subcompact 110 | volkswagen new beetle manual(m5) f 1.9 1999 4 35 44 d subcompact 111 | chevrolet k1500 tahoe 4wd auto(l4) 4 6.5 1999 8 14 17 d suv 112 | hyundai tiburon manual(m5) f 2 1999 4 19 29 r subcompact 113 | chevrolet malibu auto(l4) f 3.5 2008 6 18 29 r midsize 114 | volkswagen new beetle auto(l4) f 2 1999 4 19 26 r subcompact 115 | dodge caravan 2wd auto(l4) f 3.3 1999 6 16 22 r minivan 116 | hyundai tiburon manual(m5) f 2 2008 4 20 28 r subcompact 117 | volkswagen new beetle manual(m5) f 2 1999 4 21 29 r subcompact 118 | chevrolet corvette auto(s6) r 6.2 2008 8 15 25 p 2seater 119 | ford mustang manual(m5) r 4 2008 6 17 26 r subcompact 120 | honda civic auto(l4) f 1.6 1999 4 24 32 r subcompact 121 | toyota corolla auto(l4) f 1.8 1999 4 24 33 r compact 122 | nissan altima auto(l4) f 2.4 1999 4 19 27 r compact 123 | audi a4 manual(m6) f 2 2008 4 20 31 p compact 124 | jeep grand cherokee 4wd auto(l4) 4 4.7 1999 8 14 17 r suv 125 | dodge caravan 2wd auto(l6) f 4 2008 6 16 23 r minivan 126 | volkswagen new beetle auto(s6) f 2.5 2008 5 20 29 r subcompact 127 | hyundai sonata auto(l4) f 2.5 1999 6 18 26 r midsize 128 | mercury mountaineer 4wd auto(l4) 4 5 1999 8 13 17 r suv 129 | toyota 4runner 4wd auto(l5) 4 4 2008 6 16 20 r suv 130 | audi a6 quattro auto(l5) 4 2.8 1999 6 15 24 p midsize 131 | dodge dakota pickup 4wd manual(m5) 4 5.2 1999 8 11 17 r pickup 132 | dodge ram 1500 pickup 4wd manual(m6) 4 4.7 2008 8 12 16 r pickup 133 | dodge dakota pickup 4wd auto(l4) 4 3.7 2008 6 14 18 r pickup 134 | chevrolet corvette manual(m6) r 5.7 1999 8 16 26 p 2seater 135 | nissan pathfinder 4wd auto(l4) 4 3.3 1999 6 14 17 r suv 136 | dodge ram 1500 pickup 4wd manual(m6) 4 4.7 2008 8 9 12 e pickup 137 | hyundai tiburon auto(l4) f 2 1999 4 19 26 r subcompact 138 | dodge durango 4wd auto(l5) 4 4.7 2008 8 13 17 r suv 139 | hyundai tiburon auto(l4) f 2.7 2008 6 17 24 r subcompact 140 | audi a6 quattro auto(s6) 4 4.2 2008 8 16 23 p midsize 141 | chevrolet corvette manual(m6) r 7 2008 8 15 24 p 2seater 142 | audi a4 quattro auto(l5) 4 1.8 1999 4 16 25 p compact 143 | pontiac grand prix auto(l4) f 3.8 1999 6 17 27 r midsize 144 | toyota camry solara manual(m5) f 2.2 1999 4 21 29 r compact 145 | ford explorer 4wd auto(l5) 4 4 2008 6 13 19 r suv 146 | toyota toyota tacoma 4wd auto(l5) 4 4 2008 6 16 20 r pickup 147 | land rover range rover auto(s6) 4 4.4 2008 8 12 18 r suv 148 | toyota camry solara auto(l4) f 3 1999 6 18 26 r compact 149 | dodge dakota pickup 4wd manual(m6) 4 3.7 2008 6 15 19 r pickup 150 | dodge dakota pickup 4wd auto(l4) 4 3.9 1999 6 13 17 r pickup 151 | jeep grand cherokee 4wd auto(l5) 4 4.7 2008 8 9 12 e suv 152 | honda civic manual(m6) f 2 2008 4 21 29 p subcompact 153 | audi a4 quattro auto(s6) 4 2 2008 4 19 27 p compact 154 | honda civic manual(m5) f 1.6 1999 4 25 32 r subcompact 155 | honda civic manual(m5) f 1.6 1999 4 28 33 r subcompact 156 | dodge ram 1500 pickup 4wd manual(m6) 4 4.7 2008 8 12 16 r pickup 157 | lincoln navigator 2wd auto(l4) r 5.4 1999 8 11 16 p suv 158 | land rover range rover auto(l4) 4 4.6 1999 8 11 15 p suv 159 | ford f150 pickup 4wd auto(l4) 4 5.4 2008 8 13 17 r pickup 160 | dodge caravan 2wd auto(l4) f 3.3 2008 6 17 24 r minivan 161 | volkswagen new beetle manual(m5) f 2.5 2008 5 20 28 r subcompact 162 | dodge ram 1500 pickup 4wd auto(l4) 4 5.2 1999 8 11 15 r pickup 163 | dodge caravan 2wd auto(l4) f 3.3 2008 6 17 24 r minivan 164 | chevrolet malibu auto(l4) f 3.1 1999 6 18 26 r midsize 165 | honda civic manual(m5) f 1.8 2008 4 26 34 r subcompact 166 | volkswagen passat auto(l5) f 1.8 1999 4 18 29 p midsize 167 | toyota camry solara auto(s5) f 2.4 2008 4 22 31 r compact 168 | dodge caravan 2wd auto(l3) f 2.4 1999 4 18 24 r minivan 169 | subaru impreza awd auto(l4) 4 2.2 1999 4 21 26 r subcompact 170 | subaru impreza awd manual(m5) 4 2.5 1999 4 19 26 r subcompact 171 | dodge caravan 2wd auto(l4) f 3.8 1999 6 15 22 r minivan 172 | chevrolet c1500 suburban 2wd auto(l4) r 5.3 2008 8 14 20 r suv 173 | nissan altima auto(av) f 2.5 2008 4 23 31 r midsize 174 | hyundai tiburon manual(m6) f 2.7 2008 6 16 24 r subcompact 175 | toyota camry solara manual(m5) f 3 1999 6 18 26 r compact 176 | audi a4 manual(m5) f 2.8 1999 6 18 26 p compact 177 | chevrolet malibu auto(l4) f 2.4 2008 4 22 30 r midsize 178 | chevrolet c1500 suburban 2wd auto(l4) r 6 2008 8 12 17 r suv 179 | chevrolet corvette manual(m6) r 6.2 2008 8 16 26 p 2seater 180 | ford mustang manual(m5) r 3.8 1999 6 18 26 r subcompact 181 | chevrolet k1500 tahoe 4wd auto(l4) 4 5.7 1999 8 11 15 r suv 182 | toyota camry auto(l4) f 3 1999 6 18 26 r midsize 183 | dodge durango 4wd auto(l5) 4 4.7 2008 8 9 12 e suv 184 | chevrolet c1500 suburban 2wd auto(l4) r 5.3 2008 8 11 15 e suv 185 | hyundai sonata auto(l4) f 2.4 2008 4 21 30 r midsize 186 | toyota camry manual(m5) f 2.2 1999 4 21 29 r midsize 187 | toyota camry manual(m5) f 2.4 2008 4 21 31 r midsize 188 | chevrolet malibu auto(l4) f 2.4 1999 4 19 27 r midsize 189 | subaru forester awd auto(l4) 4 2.5 1999 4 18 24 r suv 190 | toyota camry solara auto(l4) f 2.2 1999 4 21 27 r compact 191 | hyundai sonata manual(m5) f 2.4 1999 4 18 27 r midsize 192 | dodge durango 4wd auto(l5) 4 5.7 2008 8 13 18 r suv 193 | audi a4 manual(m5) f 1.8 1999 4 21 29 p compact 194 | volkswagen passat manual(m5) f 1.8 1999 4 21 29 p midsize 195 | jeep grand cherokee 4wd auto(l5) 4 4.7 2008 8 14 19 r suv 196 | dodge durango 4wd auto(l4) 4 5.2 1999 8 11 16 r suv 197 | ford mustang manual(m5) r 4.6 1999 8 15 22 r subcompact 198 | ford f150 pickup 4wd auto(l4) 4 4.6 2008 8 13 17 r pickup 199 | nissan maxima auto(l4) f 3 1999 6 18 26 r midsize 200 | dodge ram 1500 pickup 4wd auto(l5) 4 4.7 2008 8 13 17 r pickup 201 | audi a4 quattro auto(s6) 4 3.1 2008 6 17 25 p compact 202 | audi a4 quattro manual(m6) 4 2 2008 4 20 28 p compact 203 | toyota toyota tacoma 4wd auto(l4) 4 2.7 1999 4 16 20 r pickup 204 | jeep grand cherokee 4wd auto(l5) 4 3.7 2008 6 15 19 r suv 205 | subaru impreza awd manual(m5) 4 2.5 2008 4 19 25 p compact 206 | subaru forester awd manual(m5) 4 2.5 2008 4 19 25 p suv 207 | volkswagen passat auto(s6) f 2 2008 4 19 28 p midsize 208 | ford mustang auto(l4) r 4.6 1999 8 15 21 r subcompact 209 | nissan altima auto(av) f 3.5 2008 6 19 26 p midsize 210 | volkswagen passat manual(m6) f 2 2008 4 21 29 p midsize 211 | toyota 4runner 4wd auto(l4) 4 3.4 1999 6 15 19 r suv 212 | dodge dakota pickup 4wd auto(l5) 4 4.7 2008 8 9 12 e pickup 213 | audi a4 auto(l5) f 2.8 1999 6 16 26 p compact 214 | subaru forester awd auto(l4) 4 2.5 2008 4 20 26 r suv 215 | audi a4 auto(av) f 3.1 2008 6 18 27 p compact 216 | lincoln navigator 2wd auto(l4) r 5.4 1999 8 11 17 r suv 217 | toyota toyota tacoma 4wd manual(m5) 4 2.7 2008 4 17 22 r pickup 218 | toyota land cruiser wagon 4wd auto(l4) 4 4.7 1999 8 11 15 r suv 219 | toyota corolla auto(l4) f 1.8 2008 4 26 35 r compact 220 | volkswagen passat auto(l5) f 2.8 1999 6 16 26 p midsize 221 | ford explorer 4wd auto(l5) 4 4 1999 6 14 17 r suv 222 | dodge ram 1500 pickup 4wd auto(l5) 4 5.7 2008 8 13 17 r pickup 223 | pontiac grand prix auto(l4) f 3.8 1999 6 16 26 p midsize 224 | ford f150 pickup 4wd auto(l4) 4 4.6 1999 8 13 16 r pickup 225 | toyota 4runner 4wd manual(m5) 4 3.4 1999 6 15 17 r suv 226 | subaru impreza awd manual(m5) 4 2.2 1999 4 19 26 r subcompact 227 | volkswagen passat manual(m5) f 2.8 1999 6 18 26 p midsize 228 | hyundai tiburon manual(m5) f 2.7 2008 6 17 24 r subcompact 229 | subaru impreza awd auto(s4) 4 2.5 2008 4 20 25 p compact 230 | hyundai sonata manual(m5) f 2.5 1999 6 18 26 r midsize 231 | volkswagen passat auto(s6) f 3.6 2008 6 17 26 p midsize 232 | toyota 4runner 4wd auto(l5) 4 4.7 2008 8 14 17 r suv 233 | subaru forester awd auto(l4) 4 2.5 2008 4 18 23 p suv 234 | toyota toyota tacoma 4wd manual(m5) 4 3.4 1999 6 15 17 r pickup 235 | jeep grand cherokee 4wd auto(l4) 4 4 1999 6 15 20 r suv 236 | -------------------------------------------------------------------------------- /firstforest.csv: -------------------------------------------------------------------------------- 1 | "PassengerId","Survived.0","Survived.1" 2 | 892,0.831826401446655,0.168173598553345 3 | 893,0.594594594594595,0.405405405405405 4 | 894,0.831826401446655,0.168173598553345 5 | 895,0.831826401446655,0.168173598553345 6 | 896,0.1875,0.8125 7 | 897,0.831826401446655,0.168173598553345 8 | 898,0.296296296296296,0.703703703703704 9 | 899,0.831826401446655,0.168173598553345 10 | 900,0.296296296296296,0.703703703703704 11 | 901,0.831826401446655,0.168173598553345 12 | 902,0.831826401446655,0.168173598553345 13 | 903,0.831826401446655,0.168173598553345 14 | 904,0.0529411764705882,0.947058823529412 15 | 905,0.831826401446655,0.168173598553345 16 | 906,0.0529411764705882,0.947058823529412 17 | 907,0.0529411764705882,0.947058823529412 18 | 908,0.831826401446655,0.168173598553345 19 | 909,0.831826401446655,0.168173598553345 20 | 910,0.594594594594595,0.405405405405405 21 | 911,0.296296296296296,0.703703703703704 22 | 912,0.831826401446655,0.168173598553345 23 | 913,0.831826401446655,0.168173598553345 24 | 914,0.0529411764705882,0.947058823529412 25 | 915,0.831826401446655,0.168173598553345 26 | 916,0.0529411764705882,0.947058823529412 27 | 917,0.831826401446655,0.168173598553345 28 | 918,0.0529411764705882,0.947058823529412 29 | 919,0.831826401446655,0.168173598553345 30 | 920,0.831826401446655,0.168173598553345 31 | 921,0.831826401446655,0.168173598553345 32 | 922,0.831826401446655,0.168173598553345 33 | 923,0.831826401446655,0.168173598553345 34 | 924,0.7,0.3 35 | 925,0.888888888888889,0.111111111111111 36 | 926,0.831826401446655,0.168173598553345 37 | 927,0.831826401446655,0.168173598553345 38 | 928,0.594594594594595,0.405405405405405 39 | 929,0.594594594594595,0.405405405405405 40 | 930,0.831826401446655,0.168173598553345 41 | 931,0.831826401446655,0.168173598553345 42 | 932,0.831826401446655,0.168173598553345 43 | 933,0.831826401446655,0.168173598553345 44 | 934,0.831826401446655,0.168173598553345 45 | 935,0.0529411764705882,0.947058823529412 46 | 936,0.0529411764705882,0.947058823529412 47 | 937,0.831826401446655,0.168173598553345 48 | 938,0.831826401446655,0.168173598553345 49 | 939,0.831826401446655,0.168173598553345 50 | 940,0.0529411764705882,0.947058823529412 51 | 941,0.1875,0.8125 52 | 942,0.831826401446655,0.168173598553345 53 | 943,0.831826401446655,0.168173598553345 54 | 944,0.0529411764705882,0.947058823529412 55 | 945,0.0529411764705882,0.947058823529412 56 | 946,0.831826401446655,0.168173598553345 57 | 947,0.831826401446655,0.168173598553345 58 | 948,0.831826401446655,0.168173598553345 59 | 949,0.831826401446655,0.168173598553345 60 | 950,0.831826401446655,0.168173598553345 61 | 951,0.0529411764705882,0.947058823529412 62 | 952,0.831826401446655,0.168173598553345 63 | 953,0.831826401446655,0.168173598553345 64 | 954,0.831826401446655,0.168173598553345 65 | 955,0.296296296296296,0.703703703703704 66 | 956,0.831826401446655,0.168173598553345 67 | 957,0.0529411764705882,0.947058823529412 68 | 958,0.296296296296296,0.703703703703704 69 | 959,0.831826401446655,0.168173598553345 70 | 960,0.831826401446655,0.168173598553345 71 | 961,0.0529411764705882,0.947058823529412 72 | 962,0.296296296296296,0.703703703703704 73 | 963,0.831826401446655,0.168173598553345 74 | 964,0.594594594594595,0.405405405405405 75 | 965,0.831826401446655,0.168173598553345 76 | 966,0.0529411764705882,0.947058823529412 77 | 967,0.831826401446655,0.168173598553345 78 | 968,0.831826401446655,0.168173598553345 79 | 969,0.0529411764705882,0.947058823529412 80 | 970,0.831826401446655,0.168173598553345 81 | 971,0.296296296296296,0.703703703703704 82 | 972,0,1 83 | 973,0.831826401446655,0.168173598553345 84 | 974,0.831826401446655,0.168173598553345 85 | 975,0.831826401446655,0.168173598553345 86 | 976,0.831826401446655,0.168173598553345 87 | 977,0.831826401446655,0.168173598553345 88 | 978,0.296296296296296,0.703703703703704 89 | 979,0.594594594594595,0.405405405405405 90 | 980,0.296296296296296,0.703703703703704 91 | 981,0,1 92 | 982,0.1875,0.8125 93 | 983,0.831826401446655,0.168173598553345 94 | 984,0.0529411764705882,0.947058823529412 95 | 985,0.831826401446655,0.168173598553345 96 | 986,0.831826401446655,0.168173598553345 97 | 987,0.831826401446655,0.168173598553345 98 | 988,0.0529411764705882,0.947058823529412 99 | 989,0.831826401446655,0.168173598553345 100 | 990,0.594594594594595,0.405405405405405 101 | 991,0.831826401446655,0.168173598553345 102 | 992,0.0529411764705882,0.947058823529412 103 | 993,0.831826401446655,0.168173598553345 104 | 994,0.831826401446655,0.168173598553345 105 | 995,0.831826401446655,0.168173598553345 106 | 996,0.296296296296296,0.703703703703704 107 | 997,0.831826401446655,0.168173598553345 108 | 998,0.831826401446655,0.168173598553345 109 | 999,0.831826401446655,0.168173598553345 110 | 1000,0.831826401446655,0.168173598553345 111 | 1001,0.831826401446655,0.168173598553345 112 | 1002,0.831826401446655,0.168173598553345 113 | 1003,0.296296296296296,0.703703703703704 114 | 1004,0.0529411764705882,0.947058823529412 115 | 1005,0.296296296296296,0.703703703703704 116 | 1006,0.0529411764705882,0.947058823529412 117 | 1007,0.831826401446655,0.168173598553345 118 | 1008,0.831826401446655,0.168173598553345 119 | 1009,0.1875,0.8125 120 | 1010,0.831826401446655,0.168173598553345 121 | 1011,0.0529411764705882,0.947058823529412 122 | 1012,0.0529411764705882,0.947058823529412 123 | 1013,0.831826401446655,0.168173598553345 124 | 1014,0.0529411764705882,0.947058823529412 125 | 1015,0.831826401446655,0.168173598553345 126 | 1016,0.831826401446655,0.168173598553345 127 | 1017,0.1875,0.8125 128 | 1018,0.831826401446655,0.168173598553345 129 | 1019,0.296296296296296,0.703703703703704 130 | 1020,0.831826401446655,0.168173598553345 131 | 1021,0.831826401446655,0.168173598553345 132 | 1022,0.831826401446655,0.168173598553345 133 | 1023,0.831826401446655,0.168173598553345 134 | 1024,0.888888888888889,0.111111111111111 135 | 1025,0.831826401446655,0.168173598553345 136 | 1026,0.831826401446655,0.168173598553345 137 | 1027,0.831826401446655,0.168173598553345 138 | 1028,0.831826401446655,0.168173598553345 139 | 1029,0.831826401446655,0.168173598553345 140 | 1030,0.594594594594595,0.405405405405405 141 | 1031,0.831826401446655,0.168173598553345 142 | 1032,0.888888888888889,0.111111111111111 143 | 1033,0.0529411764705882,0.947058823529412 144 | 1034,0.831826401446655,0.168173598553345 145 | 1035,0.831826401446655,0.168173598553345 146 | 1036,0.831826401446655,0.168173598553345 147 | 1037,0.831826401446655,0.168173598553345 148 | 1038,0.831826401446655,0.168173598553345 149 | 1039,0.831826401446655,0.168173598553345 150 | 1040,0.831826401446655,0.168173598553345 151 | 1041,0.831826401446655,0.168173598553345 152 | 1042,0.0529411764705882,0.947058823529412 153 | 1043,0.831826401446655,0.168173598553345 154 | 1044,0.831826401446655,0.168173598553345 155 | 1045,0.1875,0.8125 156 | 1046,0.831826401446655,0.168173598553345 157 | 1047,0.831826401446655,0.168173598553345 158 | 1048,0.0529411764705882,0.947058823529412 159 | 1049,0.594594594594595,0.405405405405405 160 | 1050,0.831826401446655,0.168173598553345 161 | 1051,0.1875,0.8125 162 | 1052,0.296296296296296,0.703703703703704 163 | 1053,0.831826401446655,0.168173598553345 164 | 1054,0.0529411764705882,0.947058823529412 165 | 1055,0.831826401446655,0.168173598553345 166 | 1056,0.831826401446655,0.168173598553345 167 | 1057,0.7,0.3 168 | 1058,0.831826401446655,0.168173598553345 169 | 1059,0.831826401446655,0.168173598553345 170 | 1060,0.0529411764705882,0.947058823529412 171 | 1061,0.594594594594595,0.405405405405405 172 | 1062,0.831826401446655,0.168173598553345 173 | 1063,0.831826401446655,0.168173598553345 174 | 1064,0.831826401446655,0.168173598553345 175 | 1065,0.831826401446655,0.168173598553345 176 | 1066,0.831826401446655,0.168173598553345 177 | 1067,0.0529411764705882,0.947058823529412 178 | 1068,0.0529411764705882,0.947058823529412 179 | 1069,0.831826401446655,0.168173598553345 180 | 1070,0.0529411764705882,0.947058823529412 181 | 1071,0.0529411764705882,0.947058823529412 182 | 1072,0.831826401446655,0.168173598553345 183 | 1073,0.831826401446655,0.168173598553345 184 | 1074,0.0529411764705882,0.947058823529412 185 | 1075,0.831826401446655,0.168173598553345 186 | 1076,0.0529411764705882,0.947058823529412 187 | 1077,0.831826401446655,0.168173598553345 188 | 1078,0.0529411764705882,0.947058823529412 189 | 1079,0.831826401446655,0.168173598553345 190 | 1080,0.888888888888889,0.111111111111111 191 | 1081,0.831826401446655,0.168173598553345 192 | 1082,0.831826401446655,0.168173598553345 193 | 1083,0.831826401446655,0.168173598553345 194 | 1084,0.831826401446655,0.168173598553345 195 | 1085,0.831826401446655,0.168173598553345 196 | 1086,0.831826401446655,0.168173598553345 197 | 1087,0.831826401446655,0.168173598553345 198 | 1088,0,1 199 | 1089,0.594594594594595,0.405405405405405 200 | 1090,0.831826401446655,0.168173598553345 201 | 1091,0.594594594594595,0.405405405405405 202 | 1092,0.296296296296296,0.703703703703704 203 | 1093,0,1 204 | 1094,0.831826401446655,0.168173598553345 205 | 1095,0.0529411764705882,0.947058823529412 206 | 1096,0.831826401446655,0.168173598553345 207 | 1097,0.831826401446655,0.168173598553345 208 | 1098,0.296296296296296,0.703703703703704 209 | 1099,0.831826401446655,0.168173598553345 210 | 1100,0.0529411764705882,0.947058823529412 211 | 1101,0.831826401446655,0.168173598553345 212 | 1102,0.831826401446655,0.168173598553345 213 | 1103,0.831826401446655,0.168173598553345 214 | 1104,0.831826401446655,0.168173598553345 215 | 1105,0.0529411764705882,0.947058823529412 216 | 1106,0.594594594594595,0.405405405405405 217 | 1107,0.831826401446655,0.168173598553345 218 | 1108,0.296296296296296,0.703703703703704 219 | 1109,0.831826401446655,0.168173598553345 220 | 1110,0.0529411764705882,0.947058823529412 221 | 1111,0.831826401446655,0.168173598553345 222 | 1112,0.0529411764705882,0.947058823529412 223 | 1113,0.831826401446655,0.168173598553345 224 | 1114,0.0529411764705882,0.947058823529412 225 | 1115,0.831826401446655,0.168173598553345 226 | 1116,0.0529411764705882,0.947058823529412 227 | 1117,0.296296296296296,0.703703703703704 228 | 1118,0.831826401446655,0.168173598553345 229 | 1119,0.296296296296296,0.703703703703704 230 | 1120,0.831826401446655,0.168173598553345 231 | 1121,0.831826401446655,0.168173598553345 232 | 1122,0.831826401446655,0.168173598553345 233 | 1123,0.0529411764705882,0.947058823529412 234 | 1124,0.831826401446655,0.168173598553345 235 | 1125,0.831826401446655,0.168173598553345 236 | 1126,0.831826401446655,0.168173598553345 237 | 1127,0.831826401446655,0.168173598553345 238 | 1128,0.831826401446655,0.168173598553345 239 | 1129,0.831826401446655,0.168173598553345 240 | 1130,0.0529411764705882,0.947058823529412 241 | 1131,0.0529411764705882,0.947058823529412 242 | 1132,0.0529411764705882,0.947058823529412 243 | 1133,0.0529411764705882,0.947058823529412 244 | 1134,0.831826401446655,0.168173598553345 245 | 1135,0.831826401446655,0.168173598553345 246 | 1136,0.831826401446655,0.168173598553345 247 | 1137,0.831826401446655,0.168173598553345 248 | 1138,0.0529411764705882,0.947058823529412 249 | 1139,0.831826401446655,0.168173598553345 250 | 1140,0.0529411764705882,0.947058823529412 251 | 1141,0.296296296296296,0.703703703703704 252 | 1142,0.0529411764705882,0.947058823529412 253 | 1143,0.831826401446655,0.168173598553345 254 | 1144,0.831826401446655,0.168173598553345 255 | 1145,0.831826401446655,0.168173598553345 256 | 1146,0.831826401446655,0.168173598553345 257 | 1147,0.831826401446655,0.168173598553345 258 | 1148,0.831826401446655,0.168173598553345 259 | 1149,0.831826401446655,0.168173598553345 260 | 1150,0.0529411764705882,0.947058823529412 261 | 1151,0.831826401446655,0.168173598553345 262 | 1152,0.831826401446655,0.168173598553345 263 | 1153,0.831826401446655,0.168173598553345 264 | 1154,0.0529411764705882,0.947058823529412 265 | 1155,0.1875,0.8125 266 | 1156,0.831826401446655,0.168173598553345 267 | 1157,0.831826401446655,0.168173598553345 268 | 1158,0.831826401446655,0.168173598553345 269 | 1159,0.831826401446655,0.168173598553345 270 | 1160,0.594594594594595,0.405405405405405 271 | 1161,0.831826401446655,0.168173598553345 272 | 1162,0.831826401446655,0.168173598553345 273 | 1163,0.831826401446655,0.168173598553345 274 | 1164,0.0529411764705882,0.947058823529412 275 | 1165,0.296296296296296,0.703703703703704 276 | 1166,0.831826401446655,0.168173598553345 277 | 1167,0.0529411764705882,0.947058823529412 278 | 1168,0.831826401446655,0.168173598553345 279 | 1169,0.831826401446655,0.168173598553345 280 | 1170,0.831826401446655,0.168173598553345 281 | 1171,0.831826401446655,0.168173598553345 282 | 1172,0.594594594594595,0.405405405405405 283 | 1173,0,1 284 | 1174,0.296296296296296,0.703703703703704 285 | 1175,0.296296296296296,0.703703703703704 286 | 1176,0.7,0.3 287 | 1177,0.831826401446655,0.168173598553345 288 | 1178,0.831826401446655,0.168173598553345 289 | 1179,0.831826401446655,0.168173598553345 290 | 1180,0.831826401446655,0.168173598553345 291 | 1181,0.831826401446655,0.168173598553345 292 | 1182,0.831826401446655,0.168173598553345 293 | 1183,0.296296296296296,0.703703703703704 294 | 1184,0.831826401446655,0.168173598553345 295 | 1185,0.831826401446655,0.168173598553345 296 | 1186,0.831826401446655,0.168173598553345 297 | 1187,0.831826401446655,0.168173598553345 298 | 1188,0.0529411764705882,0.947058823529412 299 | 1189,0.831826401446655,0.168173598553345 300 | 1190,0.831826401446655,0.168173598553345 301 | 1191,0.831826401446655,0.168173598553345 302 | 1192,0.831826401446655,0.168173598553345 303 | 1193,0.831826401446655,0.168173598553345 304 | 1194,0.831826401446655,0.168173598553345 305 | 1195,0.831826401446655,0.168173598553345 306 | 1196,0.296296296296296,0.703703703703704 307 | 1197,0.0529411764705882,0.947058823529412 308 | 1198,0.831826401446655,0.168173598553345 309 | 1199,0,1 310 | 1200,0.831826401446655,0.168173598553345 311 | 1201,0.1875,0.8125 312 | 1202,0.831826401446655,0.168173598553345 313 | 1203,0.831826401446655,0.168173598553345 314 | 1204,0.831826401446655,0.168173598553345 315 | 1205,0.296296296296296,0.703703703703704 316 | 1206,0.0529411764705882,0.947058823529412 317 | 1207,0.296296296296296,0.703703703703704 318 | 1208,0.831826401446655,0.168173598553345 319 | 1209,0.831826401446655,0.168173598553345 320 | 1210,0.831826401446655,0.168173598553345 321 | 1211,0.831826401446655,0.168173598553345 322 | 1212,0.831826401446655,0.168173598553345 323 | 1213,0.831826401446655,0.168173598553345 324 | 1214,0.831826401446655,0.168173598553345 325 | 1215,0.831826401446655,0.168173598553345 326 | 1216,0.0529411764705882,0.947058823529412 327 | 1217,0.831826401446655,0.168173598553345 328 | 1218,0.0529411764705882,0.947058823529412 329 | 1219,0.831826401446655,0.168173598553345 330 | 1220,0.831826401446655,0.168173598553345 331 | 1221,0.831826401446655,0.168173598553345 332 | 1222,0.0529411764705882,0.947058823529412 333 | 1223,0.831826401446655,0.168173598553345 334 | 1224,0.831826401446655,0.168173598553345 335 | 1225,0.296296296296296,0.703703703703704 336 | 1226,0.831826401446655,0.168173598553345 337 | 1227,0.831826401446655,0.168173598553345 338 | 1228,0.831826401446655,0.168173598553345 339 | 1229,0.831826401446655,0.168173598553345 340 | 1230,0.831826401446655,0.168173598553345 341 | 1231,0.831826401446655,0.168173598553345 342 | 1232,0.831826401446655,0.168173598553345 343 | 1233,0.831826401446655,0.168173598553345 344 | 1234,0.831826401446655,0.168173598553345 345 | 1235,0.0529411764705882,0.947058823529412 346 | 1236,0.831826401446655,0.168173598553345 347 | 1237,0.594594594594595,0.405405405405405 348 | 1238,0.831826401446655,0.168173598553345 349 | 1239,0.296296296296296,0.703703703703704 350 | 1240,0.831826401446655,0.168173598553345 351 | 1241,0.0529411764705882,0.947058823529412 352 | 1242,0.0529411764705882,0.947058823529412 353 | 1243,0.831826401446655,0.168173598553345 354 | 1244,0.831826401446655,0.168173598553345 355 | 1245,0.831826401446655,0.168173598553345 356 | 1246,0.7,0.3 357 | 1247,0.831826401446655,0.168173598553345 358 | 1248,0.0529411764705882,0.947058823529412 359 | 1249,0.831826401446655,0.168173598553345 360 | 1250,0.831826401446655,0.168173598553345 361 | 1251,0.1875,0.8125 362 | 1252,0.831826401446655,0.168173598553345 363 | 1253,0.0529411764705882,0.947058823529412 364 | 1254,0.0529411764705882,0.947058823529412 365 | 1255,0.831826401446655,0.168173598553345 366 | 1256,0.0529411764705882,0.947058823529412 367 | 1257,0.888888888888889,0.111111111111111 368 | 1258,0.831826401446655,0.168173598553345 369 | 1259,0.888888888888889,0.111111111111111 370 | 1260,0.0529411764705882,0.947058823529412 371 | 1261,0.831826401446655,0.168173598553345 372 | 1262,0.831826401446655,0.168173598553345 373 | 1263,0.0529411764705882,0.947058823529412 374 | 1264,0.831826401446655,0.168173598553345 375 | 1265,0.831826401446655,0.168173598553345 376 | 1266,0.0529411764705882,0.947058823529412 377 | 1267,0.0529411764705882,0.947058823529412 378 | 1268,0.594594594594595,0.405405405405405 379 | 1269,0.831826401446655,0.168173598553345 380 | 1270,0.831826401446655,0.168173598553345 381 | 1271,0.888888888888889,0.111111111111111 382 | 1272,0.831826401446655,0.168173598553345 383 | 1273,0.831826401446655,0.168173598553345 384 | 1274,0.1875,0.8125 385 | 1275,0.1875,0.8125 386 | 1276,0.831826401446655,0.168173598553345 387 | 1277,0.0529411764705882,0.947058823529412 388 | 1278,0.831826401446655,0.168173598553345 389 | 1279,0.831826401446655,0.168173598553345 390 | 1280,0.831826401446655,0.168173598553345 391 | 1281,0.888888888888889,0.111111111111111 392 | 1282,0.831826401446655,0.168173598553345 393 | 1283,0.0529411764705882,0.947058823529412 394 | 1284,0.831826401446655,0.168173598553345 395 | 1285,0.831826401446655,0.168173598553345 396 | 1286,0.831826401446655,0.168173598553345 397 | 1287,0.0529411764705882,0.947058823529412 398 | 1288,0.831826401446655,0.168173598553345 399 | 1289,0.0529411764705882,0.947058823529412 400 | 1290,0.831826401446655,0.168173598553345 401 | 1291,0.831826401446655,0.168173598553345 402 | 1292,0.0529411764705882,0.947058823529412 403 | 1293,0.831826401446655,0.168173598553345 404 | 1294,0.0529411764705882,0.947058823529412 405 | 1295,0.831826401446655,0.168173598553345 406 | 1296,0.831826401446655,0.168173598553345 407 | 1297,0.831826401446655,0.168173598553345 408 | 1298,0.831826401446655,0.168173598553345 409 | 1299,0.831826401446655,0.168173598553345 410 | 1300,0.296296296296296,0.703703703703704 411 | 1301,0.1875,0.8125 412 | 1302,0.296296296296296,0.703703703703704 413 | 1303,0.0529411764705882,0.947058823529412 414 | 1304,0.594594594594595,0.405405405405405 415 | 1305,0.831826401446655,0.168173598553345 416 | 1306,0.0529411764705882,0.947058823529412 417 | 1307,0.831826401446655,0.168173598553345 418 | 1308,0.831826401446655,0.168173598553345 419 | 1309,0.831826401446655,0.168173598553345 420 | -------------------------------------------------------------------------------- /titanic_test.csv: -------------------------------------------------------------------------------- 1 | PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked 2 | 892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q 3 | 893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S 4 | 894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q 5 | 895,3,"Wirz, Mr. Albert",male,27,0,0,315154,8.6625,,S 6 | 896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22,1,1,3101298,12.2875,,S 7 | 897,3,"Svensson, Mr. Johan Cervin",male,14,0,0,7538,9.225,,S 8 | 898,3,"Connolly, Miss. Kate",female,30,0,0,330972,7.6292,,Q 9 | 899,2,"Caldwell, Mr. Albert Francis",male,26,1,1,248738,29,,S 10 | 900,3,"Abrahim, Mrs. Joseph (Sophie Halaut Easu)",female,18,0,0,2657,7.2292,,C 11 | 901,3,"Davies, Mr. John Samuel",male,21,2,0,A/4 48871,24.15,,S 12 | 902,3,"Ilieff, Mr. Ylio",male,,0,0,349220,7.8958,,S 13 | 903,1,"Jones, Mr. Charles Cresson",male,46,0,0,694,26,,S 14 | 904,1,"Snyder, Mrs. John Pillsbury (Nelle Stevenson)",female,23,1,0,21228,82.2667,B45,S 15 | 905,2,"Howard, Mr. Benjamin",male,63,1,0,24065,26,,S 16 | 906,1,"Chaffee, Mrs. Herbert Fuller (Carrie Constance Toogood)",female,47,1,0,W.E.P. 5734,61.175,E31,S 17 | 907,2,"del Carlo, Mrs. Sebastiano (Argenia Genovesi)",female,24,1,0,SC/PARIS 2167,27.7208,,C 18 | 908,2,"Keane, Mr. Daniel",male,35,0,0,233734,12.35,,Q 19 | 909,3,"Assaf, Mr. Gerios",male,21,0,0,2692,7.225,,C 20 | 910,3,"Ilmakangas, Miss. Ida Livija",female,27,1,0,STON/O2. 3101270,7.925,,S 21 | 911,3,"Assaf Khalil, Mrs. Mariana (Miriam"")""",female,45,0,0,2696,7.225,,C 22 | 912,1,"Rothschild, Mr. Martin",male,55,1,0,PC 17603,59.4,,C 23 | 913,3,"Olsen, Master. Artur Karl",male,9,0,1,C 17368,3.1708,,S 24 | 914,1,"Flegenheim, Mrs. Alfred (Antoinette)",female,,0,0,PC 17598,31.6833,,S 25 | 915,1,"Williams, Mr. Richard Norris II",male,21,0,1,PC 17597,61.3792,,C 26 | 916,1,"Ryerson, Mrs. Arthur Larned (Emily Maria Borie)",female,48,1,3,PC 17608,262.375,B57 B59 B63 B66,C 27 | 917,3,"Robins, Mr. Alexander A",male,50,1,0,A/5. 3337,14.5,,S 28 | 918,1,"Ostby, Miss. Helene Ragnhild",female,22,0,1,113509,61.9792,B36,C 29 | 919,3,"Daher, Mr. Shedid",male,22.5,0,0,2698,7.225,,C 30 | 920,1,"Brady, Mr. John Bertram",male,41,0,0,113054,30.5,A21,S 31 | 921,3,"Samaan, Mr. Elias",male,,2,0,2662,21.6792,,C 32 | 922,2,"Louch, Mr. Charles Alexander",male,50,1,0,SC/AH 3085,26,,S 33 | 923,2,"Jefferys, Mr. Clifford Thomas",male,24,2,0,C.A. 31029,31.5,,S 34 | 924,3,"Dean, Mrs. Bertram (Eva Georgetta Light)",female,33,1,2,C.A. 2315,20.575,,S 35 | 925,3,"Johnston, Mrs. Andrew G (Elizabeth Lily"" Watson)""",female,,1,2,W./C. 6607,23.45,,S 36 | 926,1,"Mock, Mr. Philipp Edmund",male,30,1,0,13236,57.75,C78,C 37 | 927,3,"Katavelas, Mr. Vassilios (Catavelas Vassilios"")""",male,18.5,0,0,2682,7.2292,,C 38 | 928,3,"Roth, Miss. Sarah A",female,,0,0,342712,8.05,,S 39 | 929,3,"Cacic, Miss. Manda",female,21,0,0,315087,8.6625,,S 40 | 930,3,"Sap, Mr. Julius",male,25,0,0,345768,9.5,,S 41 | 931,3,"Hee, Mr. Ling",male,,0,0,1601,56.4958,,S 42 | 932,3,"Karun, Mr. Franz",male,39,0,1,349256,13.4167,,C 43 | 933,1,"Franklin, Mr. Thomas Parham",male,,0,0,113778,26.55,D34,S 44 | 934,3,"Goldsmith, Mr. Nathan",male,41,0,0,SOTON/O.Q. 3101263,7.85,,S 45 | 935,2,"Corbett, Mrs. Walter H (Irene Colvin)",female,30,0,0,237249,13,,S 46 | 936,1,"Kimball, Mrs. Edwin Nelson Jr (Gertrude Parsons)",female,45,1,0,11753,52.5542,D19,S 47 | 937,3,"Peltomaki, Mr. Nikolai Johannes",male,25,0,0,STON/O 2. 3101291,7.925,,S 48 | 938,1,"Chevre, Mr. Paul Romaine",male,45,0,0,PC 17594,29.7,A9,C 49 | 939,3,"Shaughnessy, Mr. Patrick",male,,0,0,370374,7.75,,Q 50 | 940,1,"Bucknell, Mrs. William Robert (Emma Eliza Ward)",female,60,0,0,11813,76.2917,D15,C 51 | 941,3,"Coutts, Mrs. William (Winnie Minnie"" Treanor)""",female,36,0,2,C.A. 37671,15.9,,S 52 | 942,1,"Smith, Mr. Lucien Philip",male,24,1,0,13695,60,C31,S 53 | 943,2,"Pulbaum, Mr. Franz",male,27,0,0,SC/PARIS 2168,15.0333,,C 54 | 944,2,"Hocking, Miss. Ellen Nellie""""",female,20,2,1,29105,23,,S 55 | 945,1,"Fortune, Miss. Ethel Flora",female,28,3,2,19950,263,C23 C25 C27,S 56 | 946,2,"Mangiavacchi, Mr. Serafino Emilio",male,,0,0,SC/A.3 2861,15.5792,,C 57 | 947,3,"Rice, Master. Albert",male,10,4,1,382652,29.125,,Q 58 | 948,3,"Cor, Mr. Bartol",male,35,0,0,349230,7.8958,,S 59 | 949,3,"Abelseth, Mr. Olaus Jorgensen",male,25,0,0,348122,7.65,F G63,S 60 | 950,3,"Davison, Mr. Thomas Henry",male,,1,0,386525,16.1,,S 61 | 951,1,"Chaudanson, Miss. Victorine",female,36,0,0,PC 17608,262.375,B61,C 62 | 952,3,"Dika, Mr. Mirko",male,17,0,0,349232,7.8958,,S 63 | 953,2,"McCrae, Mr. Arthur Gordon",male,32,0,0,237216,13.5,,S 64 | 954,3,"Bjorklund, Mr. Ernst Herbert",male,18,0,0,347090,7.75,,S 65 | 955,3,"Bradley, Miss. Bridget Delia",female,22,0,0,334914,7.725,,Q 66 | 956,1,"Ryerson, Master. John Borie",male,13,2,2,PC 17608,262.375,B57 B59 B63 B66,C 67 | 957,2,"Corey, Mrs. Percy C (Mary Phyllis Elizabeth Miller)",female,,0,0,F.C.C. 13534,21,,S 68 | 958,3,"Burns, Miss. Mary Delia",female,18,0,0,330963,7.8792,,Q 69 | 959,1,"Moore, Mr. Clarence Bloomfield",male,47,0,0,113796,42.4,,S 70 | 960,1,"Tucker, Mr. Gilbert Milligan Jr",male,31,0,0,2543,28.5375,C53,C 71 | 961,1,"Fortune, Mrs. Mark (Mary McDougald)",female,60,1,4,19950,263,C23 C25 C27,S 72 | 962,3,"Mulvihill, Miss. Bertha E",female,24,0,0,382653,7.75,,Q 73 | 963,3,"Minkoff, Mr. Lazar",male,21,0,0,349211,7.8958,,S 74 | 964,3,"Nieminen, Miss. Manta Josefina",female,29,0,0,3101297,7.925,,S 75 | 965,1,"Ovies y Rodriguez, Mr. Servando",male,28.5,0,0,PC 17562,27.7208,D43,C 76 | 966,1,"Geiger, Miss. Amalie",female,35,0,0,113503,211.5,C130,C 77 | 967,1,"Keeping, Mr. Edwin",male,32.5,0,0,113503,211.5,C132,C 78 | 968,3,"Miles, Mr. Frank",male,,0,0,359306,8.05,,S 79 | 969,1,"Cornell, Mrs. Robert Clifford (Malvina Helen Lamson)",female,55,2,0,11770,25.7,C101,S 80 | 970,2,"Aldworth, Mr. Charles Augustus",male,30,0,0,248744,13,,S 81 | 971,3,"Doyle, Miss. Elizabeth",female,24,0,0,368702,7.75,,Q 82 | 972,3,"Boulos, Master. Akar",male,6,1,1,2678,15.2458,,C 83 | 973,1,"Straus, Mr. Isidor",male,67,1,0,PC 17483,221.7792,C55 C57,S 84 | 974,1,"Case, Mr. Howard Brown",male,49,0,0,19924,26,,S 85 | 975,3,"Demetri, Mr. Marinko",male,,0,0,349238,7.8958,,S 86 | 976,2,"Lamb, Mr. John Joseph",male,,0,0,240261,10.7083,,Q 87 | 977,3,"Khalil, Mr. Betros",male,,1,0,2660,14.4542,,C 88 | 978,3,"Barry, Miss. Julia",female,27,0,0,330844,7.8792,,Q 89 | 979,3,"Badman, Miss. Emily Louisa",female,18,0,0,A/4 31416,8.05,,S 90 | 980,3,"O'Donoghue, Ms. Bridget",female,,0,0,364856,7.75,,Q 91 | 981,2,"Wells, Master. Ralph Lester",male,2,1,1,29103,23,,S 92 | 982,3,"Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judith Andersson)",female,22,1,0,347072,13.9,,S 93 | 983,3,"Pedersen, Mr. Olaf",male,,0,0,345498,7.775,,S 94 | 984,1,"Davidson, Mrs. Thornton (Orian Hays)",female,27,1,2,F.C. 12750,52,B71,S 95 | 985,3,"Guest, Mr. Robert",male,,0,0,376563,8.05,,S 96 | 986,1,"Birnbaum, Mr. Jakob",male,25,0,0,13905,26,,C 97 | 987,3,"Tenglin, Mr. Gunnar Isidor",male,25,0,0,350033,7.7958,,S 98 | 988,1,"Cavendish, Mrs. Tyrell William (Julia Florence Siegel)",female,76,1,0,19877,78.85,C46,S 99 | 989,3,"Makinen, Mr. Kalle Edvard",male,29,0,0,STON/O 2. 3101268,7.925,,S 100 | 990,3,"Braf, Miss. Elin Ester Maria",female,20,0,0,347471,7.8542,,S 101 | 991,3,"Nancarrow, Mr. William Henry",male,33,0,0,A./5. 3338,8.05,,S 102 | 992,1,"Stengel, Mrs. Charles Emil Henry (Annie May Morris)",female,43,1,0,11778,55.4417,C116,C 103 | 993,2,"Weisz, Mr. Leopold",male,27,1,0,228414,26,,S 104 | 994,3,"Foley, Mr. William",male,,0,0,365235,7.75,,Q 105 | 995,3,"Johansson Palmquist, Mr. Oskar Leander",male,26,0,0,347070,7.775,,S 106 | 996,3,"Thomas, Mrs. Alexander (Thamine Thelma"")""",female,16,1,1,2625,8.5167,,C 107 | 997,3,"Holthen, Mr. Johan Martin",male,28,0,0,C 4001,22.525,,S 108 | 998,3,"Buckley, Mr. Daniel",male,21,0,0,330920,7.8208,,Q 109 | 999,3,"Ryan, Mr. Edward",male,,0,0,383162,7.75,,Q 110 | 1000,3,"Willer, Mr. Aaron (Abi Weller"")""",male,,0,0,3410,8.7125,,S 111 | 1001,2,"Swane, Mr. George",male,18.5,0,0,248734,13,F,S 112 | 1002,2,"Stanton, Mr. Samuel Ward",male,41,0,0,237734,15.0458,,C 113 | 1003,3,"Shine, Miss. Ellen Natalia",female,,0,0,330968,7.7792,,Q 114 | 1004,1,"Evans, Miss. Edith Corse",female,36,0,0,PC 17531,31.6792,A29,C 115 | 1005,3,"Buckley, Miss. Katherine",female,18.5,0,0,329944,7.2833,,Q 116 | 1006,1,"Straus, Mrs. Isidor (Rosalie Ida Blun)",female,63,1,0,PC 17483,221.7792,C55 C57,S 117 | 1007,3,"Chronopoulos, Mr. Demetrios",male,18,1,0,2680,14.4542,,C 118 | 1008,3,"Thomas, Mr. John",male,,0,0,2681,6.4375,,C 119 | 1009,3,"Sandstrom, Miss. Beatrice Irene",female,1,1,1,PP 9549,16.7,G6,S 120 | 1010,1,"Beattie, Mr. Thomson",male,36,0,0,13050,75.2417,C6,C 121 | 1011,2,"Chapman, Mrs. John Henry (Sara Elizabeth Lawry)",female,29,1,0,SC/AH 29037,26,,S 122 | 1012,2,"Watt, Miss. Bertha J",female,12,0,0,C.A. 33595,15.75,,S 123 | 1013,3,"Kiernan, Mr. John",male,,1,0,367227,7.75,,Q 124 | 1014,1,"Schabert, Mrs. Paul (Emma Mock)",female,35,1,0,13236,57.75,C28,C 125 | 1015,3,"Carver, Mr. Alfred John",male,28,0,0,392095,7.25,,S 126 | 1016,3,"Kennedy, Mr. John",male,,0,0,368783,7.75,,Q 127 | 1017,3,"Cribb, Miss. Laura Alice",female,17,0,1,371362,16.1,,S 128 | 1018,3,"Brobeck, Mr. Karl Rudolf",male,22,0,0,350045,7.7958,,S 129 | 1019,3,"McCoy, Miss. Alicia",female,,2,0,367226,23.25,,Q 130 | 1020,2,"Bowenur, Mr. Solomon",male,42,0,0,211535,13,,S 131 | 1021,3,"Petersen, Mr. Marius",male,24,0,0,342441,8.05,,S 132 | 1022,3,"Spinner, Mr. Henry John",male,32,0,0,STON/OQ. 369943,8.05,,S 133 | 1023,1,"Gracie, Col. Archibald IV",male,53,0,0,113780,28.5,C51,C 134 | 1024,3,"Lefebre, Mrs. Frank (Frances)",female,,0,4,4133,25.4667,,S 135 | 1025,3,"Thomas, Mr. Charles P",male,,1,0,2621,6.4375,,C 136 | 1026,3,"Dintcheff, Mr. Valtcho",male,43,0,0,349226,7.8958,,S 137 | 1027,3,"Carlsson, Mr. Carl Robert",male,24,0,0,350409,7.8542,,S 138 | 1028,3,"Zakarian, Mr. Mapriededer",male,26.5,0,0,2656,7.225,,C 139 | 1029,2,"Schmidt, Mr. August",male,26,0,0,248659,13,,S 140 | 1030,3,"Drapkin, Miss. Jennie",female,23,0,0,SOTON/OQ 392083,8.05,,S 141 | 1031,3,"Goodwin, Mr. Charles Frederick",male,40,1,6,CA 2144,46.9,,S 142 | 1032,3,"Goodwin, Miss. Jessie Allis",female,10,5,2,CA 2144,46.9,,S 143 | 1033,1,"Daniels, Miss. Sarah",female,33,0,0,113781,151.55,,S 144 | 1034,1,"Ryerson, Mr. Arthur Larned",male,61,1,3,PC 17608,262.375,B57 B59 B63 B66,C 145 | 1035,2,"Beauchamp, Mr. Henry James",male,28,0,0,244358,26,,S 146 | 1036,1,"Lindeberg-Lind, Mr. Erik Gustaf (Mr Edward Lingrey"")""",male,42,0,0,17475,26.55,,S 147 | 1037,3,"Vander Planke, Mr. Julius",male,31,3,0,345763,18,,S 148 | 1038,1,"Hilliard, Mr. Herbert Henry",male,,0,0,17463,51.8625,E46,S 149 | 1039,3,"Davies, Mr. Evan",male,22,0,0,SC/A4 23568,8.05,,S 150 | 1040,1,"Crafton, Mr. John Bertram",male,,0,0,113791,26.55,,S 151 | 1041,2,"Lahtinen, Rev. William",male,30,1,1,250651,26,,S 152 | 1042,1,"Earnshaw, Mrs. Boulton (Olive Potter)",female,23,0,1,11767,83.1583,C54,C 153 | 1043,3,"Matinoff, Mr. Nicola",male,,0,0,349255,7.8958,,C 154 | 1044,3,"Storey, Mr. Thomas",male,60.5,0,0,3701,,,S 155 | 1045,3,"Klasen, Mrs. (Hulda Kristina Eugenia Lofqvist)",female,36,0,2,350405,12.1833,,S 156 | 1046,3,"Asplund, Master. Filip Oscar",male,13,4,2,347077,31.3875,,S 157 | 1047,3,"Duquemin, Mr. Joseph",male,24,0,0,S.O./P.P. 752,7.55,,S 158 | 1048,1,"Bird, Miss. Ellen",female,29,0,0,PC 17483,221.7792,C97,S 159 | 1049,3,"Lundin, Miss. Olga Elida",female,23,0,0,347469,7.8542,,S 160 | 1050,1,"Borebank, Mr. John James",male,42,0,0,110489,26.55,D22,S 161 | 1051,3,"Peacock, Mrs. Benjamin (Edith Nile)",female,26,0,2,SOTON/O.Q. 3101315,13.775,,S 162 | 1052,3,"Smyth, Miss. Julia",female,,0,0,335432,7.7333,,Q 163 | 1053,3,"Touma, Master. Georges Youssef",male,7,1,1,2650,15.2458,,C 164 | 1054,2,"Wright, Miss. Marion",female,26,0,0,220844,13.5,,S 165 | 1055,3,"Pearce, Mr. Ernest",male,,0,0,343271,7,,S 166 | 1056,2,"Peruschitz, Rev. Joseph Maria",male,41,0,0,237393,13,,S 167 | 1057,3,"Kink-Heilmann, Mrs. Anton (Luise Heilmann)",female,26,1,1,315153,22.025,,S 168 | 1058,1,"Brandeis, Mr. Emil",male,48,0,0,PC 17591,50.4958,B10,C 169 | 1059,3,"Ford, Mr. Edward Watson",male,18,2,2,W./C. 6608,34.375,,S 170 | 1060,1,"Cassebeer, Mrs. Henry Arthur Jr (Eleanor Genevieve Fosdick)",female,,0,0,17770,27.7208,,C 171 | 1061,3,"Hellstrom, Miss. Hilda Maria",female,22,0,0,7548,8.9625,,S 172 | 1062,3,"Lithman, Mr. Simon",male,,0,0,S.O./P.P. 251,7.55,,S 173 | 1063,3,"Zakarian, Mr. Ortin",male,27,0,0,2670,7.225,,C 174 | 1064,3,"Dyker, Mr. Adolf Fredrik",male,23,1,0,347072,13.9,,S 175 | 1065,3,"Torfa, Mr. Assad",male,,0,0,2673,7.2292,,C 176 | 1066,3,"Asplund, Mr. Carl Oscar Vilhelm Gustafsson",male,40,1,5,347077,31.3875,,S 177 | 1067,2,"Brown, Miss. Edith Eileen",female,15,0,2,29750,39,,S 178 | 1068,2,"Sincock, Miss. Maude",female,20,0,0,C.A. 33112,36.75,,S 179 | 1069,1,"Stengel, Mr. Charles Emil Henry",male,54,1,0,11778,55.4417,C116,C 180 | 1070,2,"Becker, Mrs. Allen Oliver (Nellie E Baumgardner)",female,36,0,3,230136,39,F4,S 181 | 1071,1,"Compton, Mrs. Alexander Taylor (Mary Eliza Ingersoll)",female,64,0,2,PC 17756,83.1583,E45,C 182 | 1072,2,"McCrie, Mr. James Matthew",male,30,0,0,233478,13,,S 183 | 1073,1,"Compton, Mr. Alexander Taylor Jr",male,37,1,1,PC 17756,83.1583,E52,C 184 | 1074,1,"Marvin, Mrs. Daniel Warner (Mary Graham Carmichael Farquarson)",female,18,1,0,113773,53.1,D30,S 185 | 1075,3,"Lane, Mr. Patrick",male,,0,0,7935,7.75,,Q 186 | 1076,1,"Douglas, Mrs. Frederick Charles (Mary Helene Baxter)",female,27,1,1,PC 17558,247.5208,B58 B60,C 187 | 1077,2,"Maybery, Mr. Frank Hubert",male,40,0,0,239059,16,,S 188 | 1078,2,"Phillips, Miss. Alice Frances Louisa",female,21,0,1,S.O./P.P. 2,21,,S 189 | 1079,3,"Davies, Mr. Joseph",male,17,2,0,A/4 48873,8.05,,S 190 | 1080,3,"Sage, Miss. Ada",female,,8,2,CA. 2343,69.55,,S 191 | 1081,2,"Veal, Mr. James",male,40,0,0,28221,13,,S 192 | 1082,2,"Angle, Mr. William A",male,34,1,0,226875,26,,S 193 | 1083,1,"Salomon, Mr. Abraham L",male,,0,0,111163,26,,S 194 | 1084,3,"van Billiard, Master. Walter John",male,11.5,1,1,A/5. 851,14.5,,S 195 | 1085,2,"Lingane, Mr. John",male,61,0,0,235509,12.35,,Q 196 | 1086,2,"Drew, Master. Marshall Brines",male,8,0,2,28220,32.5,,S 197 | 1087,3,"Karlsson, Mr. Julius Konrad Eugen",male,33,0,0,347465,7.8542,,S 198 | 1088,1,"Spedden, Master. Robert Douglas",male,6,0,2,16966,134.5,E34,C 199 | 1089,3,"Nilsson, Miss. Berta Olivia",female,18,0,0,347066,7.775,,S 200 | 1090,2,"Baimbrigge, Mr. Charles Robert",male,23,0,0,C.A. 31030,10.5,,S 201 | 1091,3,"Rasmussen, Mrs. (Lena Jacobsen Solvang)",female,,0,0,65305,8.1125,,S 202 | 1092,3,"Murphy, Miss. Nora",female,,0,0,36568,15.5,,Q 203 | 1093,3,"Danbom, Master. Gilbert Sigvard Emanuel",male,0.33,0,2,347080,14.4,,S 204 | 1094,1,"Astor, Col. John Jacob",male,47,1,0,PC 17757,227.525,C62 C64,C 205 | 1095,2,"Quick, Miss. Winifred Vera",female,8,1,1,26360,26,,S 206 | 1096,2,"Andrew, Mr. Frank Thomas",male,25,0,0,C.A. 34050,10.5,,S 207 | 1097,1,"Omont, Mr. Alfred Fernand",male,,0,0,F.C. 12998,25.7417,,C 208 | 1098,3,"McGowan, Miss. Katherine",female,35,0,0,9232,7.75,,Q 209 | 1099,2,"Collett, Mr. Sidney C Stuart",male,24,0,0,28034,10.5,,S 210 | 1100,1,"Rosenbaum, Miss. Edith Louise",female,33,0,0,PC 17613,27.7208,A11,C 211 | 1101,3,"Delalic, Mr. Redjo",male,25,0,0,349250,7.8958,,S 212 | 1102,3,"Andersen, Mr. Albert Karvin",male,32,0,0,C 4001,22.525,,S 213 | 1103,3,"Finoli, Mr. Luigi",male,,0,0,SOTON/O.Q. 3101308,7.05,,S 214 | 1104,2,"Deacon, Mr. Percy William",male,17,0,0,S.O.C. 14879,73.5,,S 215 | 1105,2,"Howard, Mrs. Benjamin (Ellen Truelove Arman)",female,60,1,0,24065,26,,S 216 | 1106,3,"Andersson, Miss. Ida Augusta Margareta",female,38,4,2,347091,7.775,,S 217 | 1107,1,"Head, Mr. Christopher",male,42,0,0,113038,42.5,B11,S 218 | 1108,3,"Mahon, Miss. Bridget Delia",female,,0,0,330924,7.8792,,Q 219 | 1109,1,"Wick, Mr. George Dennick",male,57,1,1,36928,164.8667,,S 220 | 1110,1,"Widener, Mrs. George Dunton (Eleanor Elkins)",female,50,1,1,113503,211.5,C80,C 221 | 1111,3,"Thomson, Mr. Alexander Morrison",male,,0,0,32302,8.05,,S 222 | 1112,2,"Duran y More, Miss. Florentina",female,30,1,0,SC/PARIS 2148,13.8583,,C 223 | 1113,3,"Reynolds, Mr. Harold J",male,21,0,0,342684,8.05,,S 224 | 1114,2,"Cook, Mrs. (Selena Rogers)",female,22,0,0,W./C. 14266,10.5,F33,S 225 | 1115,3,"Karlsson, Mr. Einar Gervasius",male,21,0,0,350053,7.7958,,S 226 | 1116,1,"Candee, Mrs. Edward (Helen Churchill Hungerford)",female,53,0,0,PC 17606,27.4458,,C 227 | 1117,3,"Moubarek, Mrs. George (Omine Amenia"" Alexander)""",female,,0,2,2661,15.2458,,C 228 | 1118,3,"Asplund, Mr. Johan Charles",male,23,0,0,350054,7.7958,,S 229 | 1119,3,"McNeill, Miss. Bridget",female,,0,0,370368,7.75,,Q 230 | 1120,3,"Everett, Mr. Thomas James",male,40.5,0,0,C.A. 6212,15.1,,S 231 | 1121,2,"Hocking, Mr. Samuel James Metcalfe",male,36,0,0,242963,13,,S 232 | 1122,2,"Sweet, Mr. George Frederick",male,14,0,0,220845,65,,S 233 | 1123,1,"Willard, Miss. Constance",female,21,0,0,113795,26.55,,S 234 | 1124,3,"Wiklund, Mr. Karl Johan",male,21,1,0,3101266,6.4958,,S 235 | 1125,3,"Linehan, Mr. Michael",male,,0,0,330971,7.8792,,Q 236 | 1126,1,"Cumings, Mr. John Bradley",male,39,1,0,PC 17599,71.2833,C85,C 237 | 1127,3,"Vendel, Mr. Olof Edvin",male,20,0,0,350416,7.8542,,S 238 | 1128,1,"Warren, Mr. Frank Manley",male,64,1,0,110813,75.25,D37,C 239 | 1129,3,"Baccos, Mr. Raffull",male,20,0,0,2679,7.225,,C 240 | 1130,2,"Hiltunen, Miss. Marta",female,18,1,1,250650,13,,S 241 | 1131,1,"Douglas, Mrs. Walter Donald (Mahala Dutton)",female,48,1,0,PC 17761,106.425,C86,C 242 | 1132,1,"Lindstrom, Mrs. Carl Johan (Sigrid Posse)",female,55,0,0,112377,27.7208,,C 243 | 1133,2,"Christy, Mrs. (Alice Frances)",female,45,0,2,237789,30,,S 244 | 1134,1,"Spedden, Mr. Frederic Oakley",male,45,1,1,16966,134.5,E34,C 245 | 1135,3,"Hyman, Mr. Abraham",male,,0,0,3470,7.8875,,S 246 | 1136,3,"Johnston, Master. William Arthur Willie""""",male,,1,2,W./C. 6607,23.45,,S 247 | 1137,1,"Kenyon, Mr. Frederick R",male,41,1,0,17464,51.8625,D21,S 248 | 1138,2,"Karnes, Mrs. J Frank (Claire Bennett)",female,22,0,0,F.C.C. 13534,21,,S 249 | 1139,2,"Drew, Mr. James Vivian",male,42,1,1,28220,32.5,,S 250 | 1140,2,"Hold, Mrs. Stephen (Annie Margaret Hill)",female,29,1,0,26707,26,,S 251 | 1141,3,"Khalil, Mrs. Betros (Zahie Maria"" Elias)""",female,,1,0,2660,14.4542,,C 252 | 1142,2,"West, Miss. Barbara J",female,0.92,1,2,C.A. 34651,27.75,,S 253 | 1143,3,"Abrahamsson, Mr. Abraham August Johannes",male,20,0,0,SOTON/O2 3101284,7.925,,S 254 | 1144,1,"Clark, Mr. Walter Miller",male,27,1,0,13508,136.7792,C89,C 255 | 1145,3,"Salander, Mr. Karl Johan",male,24,0,0,7266,9.325,,S 256 | 1146,3,"Wenzel, Mr. Linhart",male,32.5,0,0,345775,9.5,,S 257 | 1147,3,"MacKay, Mr. George William",male,,0,0,C.A. 42795,7.55,,S 258 | 1148,3,"Mahon, Mr. John",male,,0,0,AQ/4 3130,7.75,,Q 259 | 1149,3,"Niklasson, Mr. Samuel",male,28,0,0,363611,8.05,,S 260 | 1150,2,"Bentham, Miss. Lilian W",female,19,0,0,28404,13,,S 261 | 1151,3,"Midtsjo, Mr. Karl Albert",male,21,0,0,345501,7.775,,S 262 | 1152,3,"de Messemaeker, Mr. Guillaume Joseph",male,36.5,1,0,345572,17.4,,S 263 | 1153,3,"Nilsson, Mr. August Ferdinand",male,21,0,0,350410,7.8542,,S 264 | 1154,2,"Wells, Mrs. Arthur Henry (Addie"" Dart Trevaskis)""",female,29,0,2,29103,23,,S 265 | 1155,3,"Klasen, Miss. Gertrud Emilia",female,1,1,1,350405,12.1833,,S 266 | 1156,2,"Portaluppi, Mr. Emilio Ilario Giuseppe",male,30,0,0,C.A. 34644,12.7375,,C 267 | 1157,3,"Lyntakoff, Mr. Stanko",male,,0,0,349235,7.8958,,S 268 | 1158,1,"Chisholm, Mr. Roderick Robert Crispin",male,,0,0,112051,0,,S 269 | 1159,3,"Warren, Mr. Charles William",male,,0,0,C.A. 49867,7.55,,S 270 | 1160,3,"Howard, Miss. May Elizabeth",female,,0,0,A. 2. 39186,8.05,,S 271 | 1161,3,"Pokrnic, Mr. Mate",male,17,0,0,315095,8.6625,,S 272 | 1162,1,"McCaffry, Mr. Thomas Francis",male,46,0,0,13050,75.2417,C6,C 273 | 1163,3,"Fox, Mr. Patrick",male,,0,0,368573,7.75,,Q 274 | 1164,1,"Clark, Mrs. Walter Miller (Virginia McDowell)",female,26,1,0,13508,136.7792,C89,C 275 | 1165,3,"Lennon, Miss. Mary",female,,1,0,370371,15.5,,Q 276 | 1166,3,"Saade, Mr. Jean Nassr",male,,0,0,2676,7.225,,C 277 | 1167,2,"Bryhl, Miss. Dagmar Jenny Ingeborg ",female,20,1,0,236853,26,,S 278 | 1168,2,"Parker, Mr. Clifford Richard",male,28,0,0,SC 14888,10.5,,S 279 | 1169,2,"Faunthorpe, Mr. Harry",male,40,1,0,2926,26,,S 280 | 1170,2,"Ware, Mr. John James",male,30,1,0,CA 31352,21,,S 281 | 1171,2,"Oxenham, Mr. Percy Thomas",male,22,0,0,W./C. 14260,10.5,,S 282 | 1172,3,"Oreskovic, Miss. Jelka",female,23,0,0,315085,8.6625,,S 283 | 1173,3,"Peacock, Master. Alfred Edward",male,0.75,1,1,SOTON/O.Q. 3101315,13.775,,S 284 | 1174,3,"Fleming, Miss. Honora",female,,0,0,364859,7.75,,Q 285 | 1175,3,"Touma, Miss. Maria Youssef",female,9,1,1,2650,15.2458,,C 286 | 1176,3,"Rosblom, Miss. Salli Helena",female,2,1,1,370129,20.2125,,S 287 | 1177,3,"Dennis, Mr. William",male,36,0,0,A/5 21175,7.25,,S 288 | 1178,3,"Franklin, Mr. Charles (Charles Fardon)",male,,0,0,SOTON/O.Q. 3101314,7.25,,S 289 | 1179,1,"Snyder, Mr. John Pillsbury",male,24,1,0,21228,82.2667,B45,S 290 | 1180,3,"Mardirosian, Mr. Sarkis",male,,0,0,2655,7.2292,F E46,C 291 | 1181,3,"Ford, Mr. Arthur",male,,0,0,A/5 1478,8.05,,S 292 | 1182,1,"Rheims, Mr. George Alexander Lucien",male,,0,0,PC 17607,39.6,,S 293 | 1183,3,"Daly, Miss. Margaret Marcella Maggie""""",female,30,0,0,382650,6.95,,Q 294 | 1184,3,"Nasr, Mr. Mustafa",male,,0,0,2652,7.2292,,C 295 | 1185,1,"Dodge, Dr. Washington",male,53,1,1,33638,81.8583,A34,S 296 | 1186,3,"Wittevrongel, Mr. Camille",male,36,0,0,345771,9.5,,S 297 | 1187,3,"Angheloff, Mr. Minko",male,26,0,0,349202,7.8958,,S 298 | 1188,2,"Laroche, Miss. Louise",female,1,1,2,SC/Paris 2123,41.5792,,C 299 | 1189,3,"Samaan, Mr. Hanna",male,,2,0,2662,21.6792,,C 300 | 1190,1,"Loring, Mr. Joseph Holland",male,30,0,0,113801,45.5,,S 301 | 1191,3,"Johansson, Mr. Nils",male,29,0,0,347467,7.8542,,S 302 | 1192,3,"Olsson, Mr. Oscar Wilhelm",male,32,0,0,347079,7.775,,S 303 | 1193,2,"Malachard, Mr. Noel",male,,0,0,237735,15.0458,D,C 304 | 1194,2,"Phillips, Mr. Escott Robert",male,43,0,1,S.O./P.P. 2,21,,S 305 | 1195,3,"Pokrnic, Mr. Tome",male,24,0,0,315092,8.6625,,S 306 | 1196,3,"McCarthy, Miss. Catherine Katie""""",female,,0,0,383123,7.75,,Q 307 | 1197,1,"Crosby, Mrs. Edward Gifford (Catherine Elizabeth Halstead)",female,64,1,1,112901,26.55,B26,S 308 | 1198,1,"Allison, Mr. Hudson Joshua Creighton",male,30,1,2,113781,151.55,C22 C26,S 309 | 1199,3,"Aks, Master. Philip Frank",male,0.83,0,1,392091,9.35,,S 310 | 1200,1,"Hays, Mr. Charles Melville",male,55,1,1,12749,93.5,B69,S 311 | 1201,3,"Hansen, Mrs. Claus Peter (Jennie L Howard)",female,45,1,0,350026,14.1083,,S 312 | 1202,3,"Cacic, Mr. Jego Grga",male,18,0,0,315091,8.6625,,S 313 | 1203,3,"Vartanian, Mr. David",male,22,0,0,2658,7.225,,C 314 | 1204,3,"Sadowitz, Mr. Harry",male,,0,0,LP 1588,7.575,,S 315 | 1205,3,"Carr, Miss. Jeannie",female,37,0,0,368364,7.75,,Q 316 | 1206,1,"White, Mrs. John Stuart (Ella Holmes)",female,55,0,0,PC 17760,135.6333,C32,C 317 | 1207,3,"Hagardon, Miss. Kate",female,17,0,0,AQ/3. 30631,7.7333,,Q 318 | 1208,1,"Spencer, Mr. William Augustus",male,57,1,0,PC 17569,146.5208,B78,C 319 | 1209,2,"Rogers, Mr. Reginald Harry",male,19,0,0,28004,10.5,,S 320 | 1210,3,"Jonsson, Mr. Nils Hilding",male,27,0,0,350408,7.8542,,S 321 | 1211,2,"Jefferys, Mr. Ernest Wilfred",male,22,2,0,C.A. 31029,31.5,,S 322 | 1212,3,"Andersson, Mr. Johan Samuel",male,26,0,0,347075,7.775,,S 323 | 1213,3,"Krekorian, Mr. Neshan",male,25,0,0,2654,7.2292,F E57,C 324 | 1214,2,"Nesson, Mr. Israel",male,26,0,0,244368,13,F2,S 325 | 1215,1,"Rowe, Mr. Alfred G",male,33,0,0,113790,26.55,,S 326 | 1216,1,"Kreuchen, Miss. Emilie",female,39,0,0,24160,211.3375,,S 327 | 1217,3,"Assam, Mr. Ali",male,23,0,0,SOTON/O.Q. 3101309,7.05,,S 328 | 1218,2,"Becker, Miss. Ruth Elizabeth",female,12,2,1,230136,39,F4,S 329 | 1219,1,"Rosenshine, Mr. George (Mr George Thorne"")""",male,46,0,0,PC 17585,79.2,,C 330 | 1220,2,"Clarke, Mr. Charles Valentine",male,29,1,0,2003,26,,S 331 | 1221,2,"Enander, Mr. Ingvar",male,21,0,0,236854,13,,S 332 | 1222,2,"Davies, Mrs. John Morgan (Elizabeth Agnes Mary White) ",female,48,0,2,C.A. 33112,36.75,,S 333 | 1223,1,"Dulles, Mr. William Crothers",male,39,0,0,PC 17580,29.7,A18,C 334 | 1224,3,"Thomas, Mr. Tannous",male,,0,0,2684,7.225,,C 335 | 1225,3,"Nakid, Mrs. Said (Waika Mary"" Mowad)""",female,19,1,1,2653,15.7417,,C 336 | 1226,3,"Cor, Mr. Ivan",male,27,0,0,349229,7.8958,,S 337 | 1227,1,"Maguire, Mr. John Edward",male,30,0,0,110469,26,C106,S 338 | 1228,2,"de Brito, Mr. Jose Joaquim",male,32,0,0,244360,13,,S 339 | 1229,3,"Elias, Mr. Joseph",male,39,0,2,2675,7.2292,,C 340 | 1230,2,"Denbury, Mr. Herbert",male,25,0,0,C.A. 31029,31.5,,S 341 | 1231,3,"Betros, Master. Seman",male,,0,0,2622,7.2292,,C 342 | 1232,2,"Fillbrook, Mr. Joseph Charles",male,18,0,0,C.A. 15185,10.5,,S 343 | 1233,3,"Lundstrom, Mr. Thure Edvin",male,32,0,0,350403,7.5792,,S 344 | 1234,3,"Sage, Mr. John George",male,,1,9,CA. 2343,69.55,,S 345 | 1235,1,"Cardeza, Mrs. James Warburton Martinez (Charlotte Wardle Drake)",female,58,0,1,PC 17755,512.3292,B51 B53 B55,C 346 | 1236,3,"van Billiard, Master. James William",male,,1,1,A/5. 851,14.5,,S 347 | 1237,3,"Abelseth, Miss. Karen Marie",female,16,0,0,348125,7.65,,S 348 | 1238,2,"Botsford, Mr. William Hull",male,26,0,0,237670,13,,S 349 | 1239,3,"Whabee, Mrs. George Joseph (Shawneene Abi-Saab)",female,38,0,0,2688,7.2292,,C 350 | 1240,2,"Giles, Mr. Ralph",male,24,0,0,248726,13.5,,S 351 | 1241,2,"Walcroft, Miss. Nellie",female,31,0,0,F.C.C. 13528,21,,S 352 | 1242,1,"Greenfield, Mrs. Leo David (Blanche Strouse)",female,45,0,1,PC 17759,63.3583,D10 D12,C 353 | 1243,2,"Stokes, Mr. Philip Joseph",male,25,0,0,F.C.C. 13540,10.5,,S 354 | 1244,2,"Dibden, Mr. William",male,18,0,0,S.O.C. 14879,73.5,,S 355 | 1245,2,"Herman, Mr. Samuel",male,49,1,2,220845,65,,S 356 | 1246,3,"Dean, Miss. Elizabeth Gladys Millvina""""",female,0.17,1,2,C.A. 2315,20.575,,S 357 | 1247,1,"Julian, Mr. Henry Forbes",male,50,0,0,113044,26,E60,S 358 | 1248,1,"Brown, Mrs. John Murray (Caroline Lane Lamson)",female,59,2,0,11769,51.4792,C101,S 359 | 1249,3,"Lockyer, Mr. Edward",male,,0,0,1222,7.8792,,S 360 | 1250,3,"O'Keefe, Mr. Patrick",male,,0,0,368402,7.75,,Q 361 | 1251,3,"Lindell, Mrs. Edvard Bengtsson (Elin Gerda Persson)",female,30,1,0,349910,15.55,,S 362 | 1252,3,"Sage, Master. William Henry",male,14.5,8,2,CA. 2343,69.55,,S 363 | 1253,2,"Mallet, Mrs. Albert (Antoinette Magnin)",female,24,1,1,S.C./PARIS 2079,37.0042,,C 364 | 1254,2,"Ware, Mrs. John James (Florence Louise Long)",female,31,0,0,CA 31352,21,,S 365 | 1255,3,"Strilic, Mr. Ivan",male,27,0,0,315083,8.6625,,S 366 | 1256,1,"Harder, Mrs. George Achilles (Dorothy Annan)",female,25,1,0,11765,55.4417,E50,C 367 | 1257,3,"Sage, Mrs. John (Annie Bullen)",female,,1,9,CA. 2343,69.55,,S 368 | 1258,3,"Caram, Mr. Joseph",male,,1,0,2689,14.4583,,C 369 | 1259,3,"Riihivouri, Miss. Susanna Juhantytar Sanni""""",female,22,0,0,3101295,39.6875,,S 370 | 1260,1,"Gibson, Mrs. Leonard (Pauline C Boeson)",female,45,0,1,112378,59.4,,C 371 | 1261,2,"Pallas y Castello, Mr. Emilio",male,29,0,0,SC/PARIS 2147,13.8583,,C 372 | 1262,2,"Giles, Mr. Edgar",male,21,1,0,28133,11.5,,S 373 | 1263,1,"Wilson, Miss. Helen Alice",female,31,0,0,16966,134.5,E39 E41,C 374 | 1264,1,"Ismay, Mr. Joseph Bruce",male,49,0,0,112058,0,B52 B54 B56,S 375 | 1265,2,"Harbeck, Mr. William H",male,44,0,0,248746,13,,S 376 | 1266,1,"Dodge, Mrs. Washington (Ruth Vidaver)",female,54,1,1,33638,81.8583,A34,S 377 | 1267,1,"Bowen, Miss. Grace Scott",female,45,0,0,PC 17608,262.375,,C 378 | 1268,3,"Kink, Miss. Maria",female,22,2,0,315152,8.6625,,S 379 | 1269,2,"Cotterill, Mr. Henry Harry""""",male,21,0,0,29107,11.5,,S 380 | 1270,1,"Hipkins, Mr. William Edward",male,55,0,0,680,50,C39,S 381 | 1271,3,"Asplund, Master. Carl Edgar",male,5,4,2,347077,31.3875,,S 382 | 1272,3,"O'Connor, Mr. Patrick",male,,0,0,366713,7.75,,Q 383 | 1273,3,"Foley, Mr. Joseph",male,26,0,0,330910,7.8792,,Q 384 | 1274,3,"Risien, Mrs. Samuel (Emma)",female,,0,0,364498,14.5,,S 385 | 1275,3,"McNamee, Mrs. Neal (Eileen O'Leary)",female,19,1,0,376566,16.1,,S 386 | 1276,2,"Wheeler, Mr. Edwin Frederick""""",male,,0,0,SC/PARIS 2159,12.875,,S 387 | 1277,2,"Herman, Miss. Kate",female,24,1,2,220845,65,,S 388 | 1278,3,"Aronsson, Mr. Ernst Axel Algot",male,24,0,0,349911,7.775,,S 389 | 1279,2,"Ashby, Mr. John",male,57,0,0,244346,13,,S 390 | 1280,3,"Canavan, Mr. Patrick",male,21,0,0,364858,7.75,,Q 391 | 1281,3,"Palsson, Master. Paul Folke",male,6,3,1,349909,21.075,,S 392 | 1282,1,"Payne, Mr. Vivian Ponsonby",male,23,0,0,12749,93.5,B24,S 393 | 1283,1,"Lines, Mrs. Ernest H (Elizabeth Lindsey James)",female,51,0,1,PC 17592,39.4,D28,S 394 | 1284,3,"Abbott, Master. Eugene Joseph",male,13,0,2,C.A. 2673,20.25,,S 395 | 1285,2,"Gilbert, Mr. William",male,47,0,0,C.A. 30769,10.5,,S 396 | 1286,3,"Kink-Heilmann, Mr. Anton",male,29,3,1,315153,22.025,,S 397 | 1287,1,"Smith, Mrs. Lucien Philip (Mary Eloise Hughes)",female,18,1,0,13695,60,C31,S 398 | 1288,3,"Colbert, Mr. Patrick",male,24,0,0,371109,7.25,,Q 399 | 1289,1,"Frolicher-Stehli, Mrs. Maxmillian (Margaretha Emerentia Stehli)",female,48,1,1,13567,79.2,B41,C 400 | 1290,3,"Larsson-Rondberg, Mr. Edvard A",male,22,0,0,347065,7.775,,S 401 | 1291,3,"Conlon, Mr. Thomas Henry",male,31,0,0,21332,7.7333,,Q 402 | 1292,1,"Bonnell, Miss. Caroline",female,30,0,0,36928,164.8667,C7,S 403 | 1293,2,"Gale, Mr. Harry",male,38,1,0,28664,21,,S 404 | 1294,1,"Gibson, Miss. Dorothy Winifred",female,22,0,1,112378,59.4,,C 405 | 1295,1,"Carrau, Mr. Jose Pedro",male,17,0,0,113059,47.1,,S 406 | 1296,1,"Frauenthal, Mr. Isaac Gerald",male,43,1,0,17765,27.7208,D40,C 407 | 1297,2,"Nourney, Mr. Alfred (Baron von Drachstedt"")""",male,20,0,0,SC/PARIS 2166,13.8625,D38,C 408 | 1298,2,"Ware, Mr. William Jeffery",male,23,1,0,28666,10.5,,S 409 | 1299,1,"Widener, Mr. George Dunton",male,50,1,1,113503,211.5,C80,C 410 | 1300,3,"Riordan, Miss. Johanna Hannah""""",female,,0,0,334915,7.7208,,Q 411 | 1301,3,"Peacock, Miss. Treasteall",female,3,1,1,SOTON/O.Q. 3101315,13.775,,S 412 | 1302,3,"Naughton, Miss. Hannah",female,,0,0,365237,7.75,,Q 413 | 1303,1,"Minahan, Mrs. William Edward (Lillian E Thorpe)",female,37,1,0,19928,90,C78,Q 414 | 1304,3,"Henriksson, Miss. Jenny Lovisa",female,28,0,0,347086,7.775,,S 415 | 1305,3,"Spector, Mr. Woolf",male,,0,0,A.5. 3236,8.05,,S 416 | 1306,1,"Oliva y Ocana, Dona. Fermina",female,39,0,0,PC 17758,108.9,C105,C 417 | 1307,3,"Saether, Mr. Simon Sivertsen",male,38.5,0,0,SOTON/O.Q. 3101262,7.25,,S 418 | 1308,3,"Ware, Mr. Frederick",male,,0,0,359309,8.05,,S 419 | 1309,3,"Peter, Master. Michael J",male,,1,1,2668,22.3583,,C 420 | -------------------------------------------------------------------------------- /boston.txt: -------------------------------------------------------------------------------- 1 | "crim" "zn" "indus" "chas" "nox" "rm" "age" "dis" "rad" "tax" "ptratio" "black" "lstat" "medv" 2 | 0.00632 18 2.31 0 0.538 6.575 65.2 4.09 1 296 15.3 396.9 4.98 24 3 | 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.9 9.14 21.6 4 | 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 34.7 5 | 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94 33.4 6 | 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.9 5.33 36.2 7 | 0.02985 0 2.18 0 0.458 6.43 58.7 6.0622 3 222 18.7 394.12 5.21 28.7 8 | 0.08829 12.5 7.87 0 0.524 6.012 66.6 5.5605 5 311 15.2 395.6 12.43 22.9 9 | 0.14455 12.5 7.87 0 0.524 6.172 96.1 5.9505 5 311 15.2 396.9 19.15 27.1 10 | 0.21124 12.5 7.87 0 0.524 5.631 100 6.0821 5 311 15.2 386.63 29.93 16.5 11 | 0.17004 12.5 7.87 0 0.524 6.004 85.9 6.5921 5 311 15.2 386.71 17.1 18.9 12 | 0.22489 12.5 7.87 0 0.524 6.377 94.3 6.3467 5 311 15.2 392.52 20.45 15 13 | 0.11747 12.5 7.87 0 0.524 6.009 82.9 6.2267 5 311 15.2 396.9 13.27 18.9 14 | 0.09378 12.5 7.87 0 0.524 5.889 39 5.4509 5 311 15.2 390.5 15.71 21.7 15 | 0.62976 0 8.14 0 0.538 5.949 61.8 4.7075 4 307 21 396.9 8.26 20.4 16 | 0.63796 0 8.14 0 0.538 6.096 84.5 4.4619 4 307 21 380.02 10.26 18.2 17 | 0.62739 0 8.14 0 0.538 5.834 56.5 4.4986 4 307 21 395.62 8.47 19.9 18 | 1.05393 0 8.14 0 0.538 5.935 29.3 4.4986 4 307 21 386.85 6.58 23.1 19 | 0.7842 0 8.14 0 0.538 5.99 81.7 4.2579 4 307 21 386.75 14.67 17.5 20 | 0.80271 0 8.14 0 0.538 5.456 36.6 3.7965 4 307 21 288.99 11.69 20.2 21 | 0.7258 0 8.14 0 0.538 5.727 69.5 3.7965 4 307 21 390.95 11.28 18.2 22 | 1.25179 0 8.14 0 0.538 5.57 98.1 3.7979 4 307 21 376.57 21.02 13.6 23 | 0.85204 0 8.14 0 0.538 5.965 89.2 4.0123 4 307 21 392.53 13.83 19.6 24 | 1.23247 0 8.14 0 0.538 6.142 91.7 3.9769 4 307 21 396.9 18.72 15.2 25 | 0.98843 0 8.14 0 0.538 5.813 100 4.0952 4 307 21 394.54 19.88 14.5 26 | 0.75026 0 8.14 0 0.538 5.924 94.1 4.3996 4 307 21 394.33 16.3 15.6 27 | 0.84054 0 8.14 0 0.538 5.599 85.7 4.4546 4 307 21 303.42 16.51 13.9 28 | 0.67191 0 8.14 0 0.538 5.813 90.3 4.682 4 307 21 376.88 14.81 16.6 29 | 0.95577 0 8.14 0 0.538 6.047 88.8 4.4534 4 307 21 306.38 17.28 14.8 30 | 0.77299 0 8.14 0 0.538 6.495 94.4 4.4547 4 307 21 387.94 12.8 18.4 31 | 1.00245 0 8.14 0 0.538 6.674 87.3 4.239 4 307 21 380.23 11.98 21 32 | 1.13081 0 8.14 0 0.538 5.713 94.1 4.233 4 307 21 360.17 22.6 12.7 33 | 1.35472 0 8.14 0 0.538 6.072 100 4.175 4 307 21 376.73 13.04 14.5 34 | 1.38799 0 8.14 0 0.538 5.95 82 3.99 4 307 21 232.6 27.71 13.2 35 | 1.15172 0 8.14 0 0.538 5.701 95 3.7872 4 307 21 358.77 18.35 13.1 36 | 1.61282 0 8.14 0 0.538 6.096 96.9 3.7598 4 307 21 248.31 20.34 13.5 37 | 0.06417 0 5.96 0 0.499 5.933 68.2 3.3603 5 279 19.2 396.9 9.68 18.9 38 | 0.09744 0 5.96 0 0.499 5.841 61.4 3.3779 5 279 19.2 377.56 11.41 20 39 | 0.08014 0 5.96 0 0.499 5.85 41.5 3.9342 5 279 19.2 396.9 8.77 21 40 | 0.17505 0 5.96 0 0.499 5.966 30.2 3.8473 5 279 19.2 393.43 10.13 24.7 41 | 0.02763 75 2.95 0 0.428 6.595 21.8 5.4011 3 252 18.3 395.63 4.32 30.8 42 | 0.03359 75 2.95 0 0.428 7.024 15.8 5.4011 3 252 18.3 395.62 1.98 34.9 43 | 0.12744 0 6.91 0 0.448 6.77 2.9 5.7209 3 233 17.9 385.41 4.84 26.6 44 | 0.1415 0 6.91 0 0.448 6.169 6.6 5.7209 3 233 17.9 383.37 5.81 25.3 45 | 0.15936 0 6.91 0 0.448 6.211 6.5 5.7209 3 233 17.9 394.46 7.44 24.7 46 | 0.12269 0 6.91 0 0.448 6.069 40 5.7209 3 233 17.9 389.39 9.55 21.2 47 | 0.17142 0 6.91 0 0.448 5.682 33.8 5.1004 3 233 17.9 396.9 10.21 19.3 48 | 0.18836 0 6.91 0 0.448 5.786 33.3 5.1004 3 233 17.9 396.9 14.15 20 49 | 0.22927 0 6.91 0 0.448 6.03 85.5 5.6894 3 233 17.9 392.74 18.8 16.6 50 | 0.25387 0 6.91 0 0.448 5.399 95.3 5.87 3 233 17.9 396.9 30.81 14.4 51 | 0.21977 0 6.91 0 0.448 5.602 62 6.0877 3 233 17.9 396.9 16.2 19.4 52 | 0.08873 21 5.64 0 0.439 5.963 45.7 6.8147 4 243 16.8 395.56 13.45 19.7 53 | 0.04337 21 5.64 0 0.439 6.115 63 6.8147 4 243 16.8 393.97 9.43 20.5 54 | 0.0536 21 5.64 0 0.439 6.511 21.1 6.8147 4 243 16.8 396.9 5.28 25 55 | 0.04981 21 5.64 0 0.439 5.998 21.4 6.8147 4 243 16.8 396.9 8.43 23.4 56 | 0.0136 75 4 0 0.41 5.888 47.6 7.3197 3 469 21.1 396.9 14.8 18.9 57 | 0.01311 90 1.22 0 0.403 7.249 21.9 8.6966 5 226 17.9 395.93 4.81 35.4 58 | 0.02055 85 0.74 0 0.41 6.383 35.7 9.1876 2 313 17.3 396.9 5.77 24.7 59 | 0.01432 100 1.32 0 0.411 6.816 40.5 8.3248 5 256 15.1 392.9 3.95 31.6 60 | 0.15445 25 5.13 0 0.453 6.145 29.2 7.8148 8 284 19.7 390.68 6.86 23.3 61 | 0.10328 25 5.13 0 0.453 5.927 47.2 6.932 8 284 19.7 396.9 9.22 19.6 62 | 0.14932 25 5.13 0 0.453 5.741 66.2 7.2254 8 284 19.7 395.11 13.15 18.7 63 | 0.17171 25 5.13 0 0.453 5.966 93.4 6.8185 8 284 19.7 378.08 14.44 16 64 | 0.11027 25 5.13 0 0.453 6.456 67.8 7.2255 8 284 19.7 396.9 6.73 22.2 65 | 0.1265 25 5.13 0 0.453 6.762 43.4 7.9809 8 284 19.7 395.58 9.5 25 66 | 0.01951 17.5 1.38 0 0.4161 7.104 59.5 9.2229 3 216 18.6 393.24 8.05 33 67 | 0.03584 80 3.37 0 0.398 6.29 17.8 6.6115 4 337 16.1 396.9 4.67 23.5 68 | 0.04379 80 3.37 0 0.398 5.787 31.1 6.6115 4 337 16.1 396.9 10.24 19.4 69 | 0.05789 12.5 6.07 0 0.409 5.878 21.4 6.498 4 345 18.9 396.21 8.1 22 70 | 0.13554 12.5 6.07 0 0.409 5.594 36.8 6.498 4 345 18.9 396.9 13.09 17.4 71 | 0.12816 12.5 6.07 0 0.409 5.885 33 6.498 4 345 18.9 396.9 8.79 20.9 72 | 0.08826 0 10.81 0 0.413 6.417 6.6 5.2873 4 305 19.2 383.73 6.72 24.2 73 | 0.15876 0 10.81 0 0.413 5.961 17.5 5.2873 4 305 19.2 376.94 9.88 21.7 74 | 0.09164 0 10.81 0 0.413 6.065 7.8 5.2873 4 305 19.2 390.91 5.52 22.8 75 | 0.19539 0 10.81 0 0.413 6.245 6.2 5.2873 4 305 19.2 377.17 7.54 23.4 76 | 0.07896 0 12.83 0 0.437 6.273 6 4.2515 5 398 18.7 394.92 6.78 24.1 77 | 0.09512 0 12.83 0 0.437 6.286 45 4.5026 5 398 18.7 383.23 8.94 21.4 78 | 0.10153 0 12.83 0 0.437 6.279 74.5 4.0522 5 398 18.7 373.66 11.97 20 79 | 0.08707 0 12.83 0 0.437 6.14 45.8 4.0905 5 398 18.7 386.96 10.27 20.8 80 | 0.05646 0 12.83 0 0.437 6.232 53.7 5.0141 5 398 18.7 386.4 12.34 21.2 81 | 0.08387 0 12.83 0 0.437 5.874 36.6 4.5026 5 398 18.7 396.06 9.1 20.3 82 | 0.04113 25 4.86 0 0.426 6.727 33.5 5.4007 4 281 19 396.9 5.29 28 83 | 0.04462 25 4.86 0 0.426 6.619 70.4 5.4007 4 281 19 395.63 7.22 23.9 84 | 0.03659 25 4.86 0 0.426 6.302 32.2 5.4007 4 281 19 396.9 6.72 24.8 85 | 0.03551 25 4.86 0 0.426 6.167 46.7 5.4007 4 281 19 390.64 7.51 22.9 86 | 0.05059 0 4.49 0 0.449 6.389 48 4.7794 3 247 18.5 396.9 9.62 23.9 87 | 0.05735 0 4.49 0 0.449 6.63 56.1 4.4377 3 247 18.5 392.3 6.53 26.6 88 | 0.05188 0 4.49 0 0.449 6.015 45.1 4.4272 3 247 18.5 395.99 12.86 22.5 89 | 0.07151 0 4.49 0 0.449 6.121 56.8 3.7476 3 247 18.5 395.15 8.44 22.2 90 | 0.0566 0 3.41 0 0.489 7.007 86.3 3.4217 2 270 17.8 396.9 5.5 23.6 91 | 0.05302 0 3.41 0 0.489 7.079 63.1 3.4145 2 270 17.8 396.06 5.7 28.7 92 | 0.04684 0 3.41 0 0.489 6.417 66.1 3.0923 2 270 17.8 392.18 8.81 22.6 93 | 0.03932 0 3.41 0 0.489 6.405 73.9 3.0921 2 270 17.8 393.55 8.2 22 94 | 0.04203 28 15.04 0 0.464 6.442 53.6 3.6659 4 270 18.2 395.01 8.16 22.9 95 | 0.02875 28 15.04 0 0.464 6.211 28.9 3.6659 4 270 18.2 396.33 6.21 25 96 | 0.04294 28 15.04 0 0.464 6.249 77.3 3.615 4 270 18.2 396.9 10.59 20.6 97 | 0.12204 0 2.89 0 0.445 6.625 57.8 3.4952 2 276 18 357.98 6.65 28.4 98 | 0.11504 0 2.89 0 0.445 6.163 69.6 3.4952 2 276 18 391.83 11.34 21.4 99 | 0.12083 0 2.89 0 0.445 8.069 76 3.4952 2 276 18 396.9 4.21 38.7 100 | 0.08187 0 2.89 0 0.445 7.82 36.9 3.4952 2 276 18 393.53 3.57 43.8 101 | 0.0686 0 2.89 0 0.445 7.416 62.5 3.4952 2 276 18 396.9 6.19 33.2 102 | 0.14866 0 8.56 0 0.52 6.727 79.9 2.7778 5 384 20.9 394.76 9.42 27.5 103 | 0.11432 0 8.56 0 0.52 6.781 71.3 2.8561 5 384 20.9 395.58 7.67 26.5 104 | 0.22876 0 8.56 0 0.52 6.405 85.4 2.7147 5 384 20.9 70.8 10.63 18.6 105 | 0.21161 0 8.56 0 0.52 6.137 87.4 2.7147 5 384 20.9 394.47 13.44 19.3 106 | 0.1396 0 8.56 0 0.52 6.167 90 2.421 5 384 20.9 392.69 12.33 20.1 107 | 0.13262 0 8.56 0 0.52 5.851 96.7 2.1069 5 384 20.9 394.05 16.47 19.5 108 | 0.1712 0 8.56 0 0.52 5.836 91.9 2.211 5 384 20.9 395.67 18.66 19.5 109 | 0.13117 0 8.56 0 0.52 6.127 85.2 2.1224 5 384 20.9 387.69 14.09 20.4 110 | 0.12802 0 8.56 0 0.52 6.474 97.1 2.4329 5 384 20.9 395.24 12.27 19.8 111 | 0.26363 0 8.56 0 0.52 6.229 91.2 2.5451 5 384 20.9 391.23 15.55 19.4 112 | 0.10793 0 8.56 0 0.52 6.195 54.4 2.7778 5 384 20.9 393.49 13 21.7 113 | 0.10084 0 10.01 0 0.547 6.715 81.6 2.6775 6 432 17.8 395.59 10.16 22.8 114 | 0.12329 0 10.01 0 0.547 5.913 92.9 2.3534 6 432 17.8 394.95 16.21 18.8 115 | 0.22212 0 10.01 0 0.547 6.092 95.4 2.548 6 432 17.8 396.9 17.09 18.7 116 | 0.14231 0 10.01 0 0.547 6.254 84.2 2.2565 6 432 17.8 388.74 10.45 18.5 117 | 0.17134 0 10.01 0 0.547 5.928 88.2 2.4631 6 432 17.8 344.91 15.76 18.3 118 | 0.13158 0 10.01 0 0.547 6.176 72.5 2.7301 6 432 17.8 393.3 12.04 21.2 119 | 0.15098 0 10.01 0 0.547 6.021 82.6 2.7474 6 432 17.8 394.51 10.3 19.2 120 | 0.13058 0 10.01 0 0.547 5.872 73.1 2.4775 6 432 17.8 338.63 15.37 20.4 121 | 0.14476 0 10.01 0 0.547 5.731 65.2 2.7592 6 432 17.8 391.5 13.61 19.3 122 | 0.06899 0 25.65 0 0.581 5.87 69.7 2.2577 2 188 19.1 389.15 14.37 22 123 | 0.07165 0 25.65 0 0.581 6.004 84.1 2.1974 2 188 19.1 377.67 14.27 20.3 124 | 0.09299 0 25.65 0 0.581 5.961 92.9 2.0869 2 188 19.1 378.09 17.93 20.5 125 | 0.15038 0 25.65 0 0.581 5.856 97 1.9444 2 188 19.1 370.31 25.41 17.3 126 | 0.09849 0 25.65 0 0.581 5.879 95.8 2.0063 2 188 19.1 379.38 17.58 18.8 127 | 0.16902 0 25.65 0 0.581 5.986 88.4 1.9929 2 188 19.1 385.02 14.81 21.4 128 | 0.38735 0 25.65 0 0.581 5.613 95.6 1.7572 2 188 19.1 359.29 27.26 15.7 129 | 0.25915 0 21.89 0 0.624 5.693 96 1.7883 4 437 21.2 392.11 17.19 16.2 130 | 0.32543 0 21.89 0 0.624 6.431 98.8 1.8125 4 437 21.2 396.9 15.39 18 131 | 0.88125 0 21.89 0 0.624 5.637 94.7 1.9799 4 437 21.2 396.9 18.34 14.3 132 | 0.34006 0 21.89 0 0.624 6.458 98.9 2.1185 4 437 21.2 395.04 12.6 19.2 133 | 1.19294 0 21.89 0 0.624 6.326 97.7 2.271 4 437 21.2 396.9 12.26 19.6 134 | 0.59005 0 21.89 0 0.624 6.372 97.9 2.3274 4 437 21.2 385.76 11.12 23 135 | 0.32982 0 21.89 0 0.624 5.822 95.4 2.4699 4 437 21.2 388.69 15.03 18.4 136 | 0.97617 0 21.89 0 0.624 5.757 98.4 2.346 4 437 21.2 262.76 17.31 15.6 137 | 0.55778 0 21.89 0 0.624 6.335 98.2 2.1107 4 437 21.2 394.67 16.96 18.1 138 | 0.32264 0 21.89 0 0.624 5.942 93.5 1.9669 4 437 21.2 378.25 16.9 17.4 139 | 0.35233 0 21.89 0 0.624 6.454 98.4 1.8498 4 437 21.2 394.08 14.59 17.1 140 | 0.2498 0 21.89 0 0.624 5.857 98.2 1.6686 4 437 21.2 392.04 21.32 13.3 141 | 0.54452 0 21.89 0 0.624 6.151 97.9 1.6687 4 437 21.2 396.9 18.46 17.8 142 | 0.2909 0 21.89 0 0.624 6.174 93.6 1.6119 4 437 21.2 388.08 24.16 14 143 | 1.62864 0 21.89 0 0.624 5.019 100 1.4394 4 437 21.2 396.9 34.41 14.4 144 | 3.32105 0 19.58 1 0.871 5.403 100 1.3216 5 403 14.7 396.9 26.82 13.4 145 | 4.0974 0 19.58 0 0.871 5.468 100 1.4118 5 403 14.7 396.9 26.42 15.6 146 | 2.77974 0 19.58 0 0.871 4.903 97.8 1.3459 5 403 14.7 396.9 29.29 11.8 147 | 2.37934 0 19.58 0 0.871 6.13 100 1.4191 5 403 14.7 172.91 27.8 13.8 148 | 2.15505 0 19.58 0 0.871 5.628 100 1.5166 5 403 14.7 169.27 16.65 15.6 149 | 2.36862 0 19.58 0 0.871 4.926 95.7 1.4608 5 403 14.7 391.71 29.53 14.6 150 | 2.33099 0 19.58 0 0.871 5.186 93.8 1.5296 5 403 14.7 356.99 28.32 17.8 151 | 2.73397 0 19.58 0 0.871 5.597 94.9 1.5257 5 403 14.7 351.85 21.45 15.4 152 | 1.6566 0 19.58 0 0.871 6.122 97.3 1.618 5 403 14.7 372.8 14.1 21.5 153 | 1.49632 0 19.58 0 0.871 5.404 100 1.5916 5 403 14.7 341.6 13.28 19.6 154 | 1.12658 0 19.58 1 0.871 5.012 88 1.6102 5 403 14.7 343.28 12.12 15.3 155 | 2.14918 0 19.58 0 0.871 5.709 98.5 1.6232 5 403 14.7 261.95 15.79 19.4 156 | 1.41385 0 19.58 1 0.871 6.129 96 1.7494 5 403 14.7 321.02 15.12 17 157 | 3.53501 0 19.58 1 0.871 6.152 82.6 1.7455 5 403 14.7 88.01 15.02 15.6 158 | 2.44668 0 19.58 0 0.871 5.272 94 1.7364 5 403 14.7 88.63 16.14 13.1 159 | 1.22358 0 19.58 0 0.605 6.943 97.4 1.8773 5 403 14.7 363.43 4.59 41.3 160 | 1.34284 0 19.58 0 0.605 6.066 100 1.7573 5 403 14.7 353.89 6.43 24.3 161 | 1.42502 0 19.58 0 0.871 6.51 100 1.7659 5 403 14.7 364.31 7.39 23.3 162 | 1.27346 0 19.58 1 0.605 6.25 92.6 1.7984 5 403 14.7 338.92 5.5 27 163 | 1.46336 0 19.58 0 0.605 7.489 90.8 1.9709 5 403 14.7 374.43 1.73 50 164 | 1.83377 0 19.58 1 0.605 7.802 98.2 2.0407 5 403 14.7 389.61 1.92 50 165 | 1.51902 0 19.58 1 0.605 8.375 93.9 2.162 5 403 14.7 388.45 3.32 50 166 | 2.24236 0 19.58 0 0.605 5.854 91.8 2.422 5 403 14.7 395.11 11.64 22.7 167 | 2.924 0 19.58 0 0.605 6.101 93 2.2834 5 403 14.7 240.16 9.81 25 168 | 2.01019 0 19.58 0 0.605 7.929 96.2 2.0459 5 403 14.7 369.3 3.7 50 169 | 1.80028 0 19.58 0 0.605 5.877 79.2 2.4259 5 403 14.7 227.61 12.14 23.8 170 | 2.3004 0 19.58 0 0.605 6.319 96.1 2.1 5 403 14.7 297.09 11.1 23.8 171 | 2.44953 0 19.58 0 0.605 6.402 95.2 2.2625 5 403 14.7 330.04 11.32 22.3 172 | 1.20742 0 19.58 0 0.605 5.875 94.6 2.4259 5 403 14.7 292.29 14.43 17.4 173 | 2.3139 0 19.58 0 0.605 5.88 97.3 2.3887 5 403 14.7 348.13 12.03 19.1 174 | 0.13914 0 4.05 0 0.51 5.572 88.5 2.5961 5 296 16.6 396.9 14.69 23.1 175 | 0.09178 0 4.05 0 0.51 6.416 84.1 2.6463 5 296 16.6 395.5 9.04 23.6 176 | 0.08447 0 4.05 0 0.51 5.859 68.7 2.7019 5 296 16.6 393.23 9.64 22.6 177 | 0.06664 0 4.05 0 0.51 6.546 33.1 3.1323 5 296 16.6 390.96 5.33 29.4 178 | 0.07022 0 4.05 0 0.51 6.02 47.2 3.5549 5 296 16.6 393.23 10.11 23.2 179 | 0.05425 0 4.05 0 0.51 6.315 73.4 3.3175 5 296 16.6 395.6 6.29 24.6 180 | 0.06642 0 4.05 0 0.51 6.86 74.4 2.9153 5 296 16.6 391.27 6.92 29.9 181 | 0.0578 0 2.46 0 0.488 6.98 58.4 2.829 3 193 17.8 396.9 5.04 37.2 182 | 0.06588 0 2.46 0 0.488 7.765 83.3 2.741 3 193 17.8 395.56 7.56 39.8 183 | 0.06888 0 2.46 0 0.488 6.144 62.2 2.5979 3 193 17.8 396.9 9.45 36.2 184 | 0.09103 0 2.46 0 0.488 7.155 92.2 2.7006 3 193 17.8 394.12 4.82 37.9 185 | 0.10008 0 2.46 0 0.488 6.563 95.6 2.847 3 193 17.8 396.9 5.68 32.5 186 | 0.08308 0 2.46 0 0.488 5.604 89.8 2.9879 3 193 17.8 391 13.98 26.4 187 | 0.06047 0 2.46 0 0.488 6.153 68.8 3.2797 3 193 17.8 387.11 13.15 29.6 188 | 0.05602 0 2.46 0 0.488 7.831 53.6 3.1992 3 193 17.8 392.63 4.45 50 189 | 0.07875 45 3.44 0 0.437 6.782 41.1 3.7886 5 398 15.2 393.87 6.68 32 190 | 0.12579 45 3.44 0 0.437 6.556 29.1 4.5667 5 398 15.2 382.84 4.56 29.8 191 | 0.0837 45 3.44 0 0.437 7.185 38.9 4.5667 5 398 15.2 396.9 5.39 34.9 192 | 0.09068 45 3.44 0 0.437 6.951 21.5 6.4798 5 398 15.2 377.68 5.1 37 193 | 0.06911 45 3.44 0 0.437 6.739 30.8 6.4798 5 398 15.2 389.71 4.69 30.5 194 | 0.08664 45 3.44 0 0.437 7.178 26.3 6.4798 5 398 15.2 390.49 2.87 36.4 195 | 0.02187 60 2.93 0 0.401 6.8 9.9 6.2196 1 265 15.6 393.37 5.03 31.1 196 | 0.01439 60 2.93 0 0.401 6.604 18.8 6.2196 1 265 15.6 376.7 4.38 29.1 197 | 0.01381 80 0.46 0 0.422 7.875 32 5.6484 4 255 14.4 394.23 2.97 50 198 | 0.04011 80 1.52 0 0.404 7.287 34.1 7.309 2 329 12.6 396.9 4.08 33.3 199 | 0.04666 80 1.52 0 0.404 7.107 36.6 7.309 2 329 12.6 354.31 8.61 30.3 200 | 0.03768 80 1.52 0 0.404 7.274 38.3 7.309 2 329 12.6 392.2 6.62 34.6 201 | 0.0315 95 1.47 0 0.403 6.975 15.3 7.6534 3 402 17 396.9 4.56 34.9 202 | 0.01778 95 1.47 0 0.403 7.135 13.9 7.6534 3 402 17 384.3 4.45 32.9 203 | 0.03445 82.5 2.03 0 0.415 6.162 38.4 6.27 2 348 14.7 393.77 7.43 24.1 204 | 0.02177 82.5 2.03 0 0.415 7.61 15.7 6.27 2 348 14.7 395.38 3.11 42.3 205 | 0.0351 95 2.68 0 0.4161 7.853 33.2 5.118 4 224 14.7 392.78 3.81 48.5 206 | 0.02009 95 2.68 0 0.4161 8.034 31.9 5.118 4 224 14.7 390.55 2.88 50 207 | 0.13642 0 10.59 0 0.489 5.891 22.3 3.9454 4 277 18.6 396.9 10.87 22.6 208 | 0.22969 0 10.59 0 0.489 6.326 52.5 4.3549 4 277 18.6 394.87 10.97 24.4 209 | 0.25199 0 10.59 0 0.489 5.783 72.7 4.3549 4 277 18.6 389.43 18.06 22.5 210 | 0.13587 0 10.59 1 0.489 6.064 59.1 4.2392 4 277 18.6 381.32 14.66 24.4 211 | 0.43571 0 10.59 1 0.489 5.344 100 3.875 4 277 18.6 396.9 23.09 20 212 | 0.17446 0 10.59 1 0.489 5.96 92.1 3.8771 4 277 18.6 393.25 17.27 21.7 213 | 0.37578 0 10.59 1 0.489 5.404 88.6 3.665 4 277 18.6 395.24 23.98 19.3 214 | 0.21719 0 10.59 1 0.489 5.807 53.8 3.6526 4 277 18.6 390.94 16.03 22.4 215 | 0.14052 0 10.59 0 0.489 6.375 32.3 3.9454 4 277 18.6 385.81 9.38 28.1 216 | 0.28955 0 10.59 0 0.489 5.412 9.8 3.5875 4 277 18.6 348.93 29.55 23.7 217 | 0.19802 0 10.59 0 0.489 6.182 42.4 3.9454 4 277 18.6 393.63 9.47 25 218 | 0.0456 0 13.89 1 0.55 5.888 56 3.1121 5 276 16.4 392.8 13.51 23.3 219 | 0.07013 0 13.89 0 0.55 6.642 85.1 3.4211 5 276 16.4 392.78 9.69 28.7 220 | 0.11069 0 13.89 1 0.55 5.951 93.8 2.8893 5 276 16.4 396.9 17.92 21.5 221 | 0.11425 0 13.89 1 0.55 6.373 92.4 3.3633 5 276 16.4 393.74 10.5 23 222 | 0.35809 0 6.2 1 0.507 6.951 88.5 2.8617 8 307 17.4 391.7 9.71 26.7 223 | 0.40771 0 6.2 1 0.507 6.164 91.3 3.048 8 307 17.4 395.24 21.46 21.7 224 | 0.62356 0 6.2 1 0.507 6.879 77.7 3.2721 8 307 17.4 390.39 9.93 27.5 225 | 0.6147 0 6.2 0 0.507 6.618 80.8 3.2721 8 307 17.4 396.9 7.6 30.1 226 | 0.31533 0 6.2 0 0.504 8.266 78.3 2.8944 8 307 17.4 385.05 4.14 44.8 227 | 0.52693 0 6.2 0 0.504 8.725 83 2.8944 8 307 17.4 382 4.63 50 228 | 0.38214 0 6.2 0 0.504 8.04 86.5 3.2157 8 307 17.4 387.38 3.13 37.6 229 | 0.41238 0 6.2 0 0.504 7.163 79.9 3.2157 8 307 17.4 372.08 6.36 31.6 230 | 0.29819 0 6.2 0 0.504 7.686 17 3.3751 8 307 17.4 377.51 3.92 46.7 231 | 0.44178 0 6.2 0 0.504 6.552 21.4 3.3751 8 307 17.4 380.34 3.76 31.5 232 | 0.537 0 6.2 0 0.504 5.981 68.1 3.6715 8 307 17.4 378.35 11.65 24.3 233 | 0.46296 0 6.2 0 0.504 7.412 76.9 3.6715 8 307 17.4 376.14 5.25 31.7 234 | 0.57529 0 6.2 0 0.507 8.337 73.3 3.8384 8 307 17.4 385.91 2.47 41.7 235 | 0.33147 0 6.2 0 0.507 8.247 70.4 3.6519 8 307 17.4 378.95 3.95 48.3 236 | 0.44791 0 6.2 1 0.507 6.726 66.5 3.6519 8 307 17.4 360.2 8.05 29 237 | 0.33045 0 6.2 0 0.507 6.086 61.5 3.6519 8 307 17.4 376.75 10.88 24 238 | 0.52058 0 6.2 1 0.507 6.631 76.5 4.148 8 307 17.4 388.45 9.54 25.1 239 | 0.51183 0 6.2 0 0.507 7.358 71.6 4.148 8 307 17.4 390.07 4.73 31.5 240 | 0.08244 30 4.93 0 0.428 6.481 18.5 6.1899 6 300 16.6 379.41 6.36 23.7 241 | 0.09252 30 4.93 0 0.428 6.606 42.2 6.1899 6 300 16.6 383.78 7.37 23.3 242 | 0.11329 30 4.93 0 0.428 6.897 54.3 6.3361 6 300 16.6 391.25 11.38 22 243 | 0.10612 30 4.93 0 0.428 6.095 65.1 6.3361 6 300 16.6 394.62 12.4 20.1 244 | 0.1029 30 4.93 0 0.428 6.358 52.9 7.0355 6 300 16.6 372.75 11.22 22.2 245 | 0.12757 30 4.93 0 0.428 6.393 7.8 7.0355 6 300 16.6 374.71 5.19 23.7 246 | 0.20608 22 5.86 0 0.431 5.593 76.5 7.9549 7 330 19.1 372.49 12.5 17.6 247 | 0.19133 22 5.86 0 0.431 5.605 70.2 7.9549 7 330 19.1 389.13 18.46 18.5 248 | 0.33983 22 5.86 0 0.431 6.108 34.9 8.0555 7 330 19.1 390.18 9.16 24.3 249 | 0.19657 22 5.86 0 0.431 6.226 79.2 8.0555 7 330 19.1 376.14 10.15 20.5 250 | 0.16439 22 5.86 0 0.431 6.433 49.1 7.8265 7 330 19.1 374.71 9.52 24.5 251 | 0.19073 22 5.86 0 0.431 6.718 17.5 7.8265 7 330 19.1 393.74 6.56 26.2 252 | 0.1403 22 5.86 0 0.431 6.487 13 7.3967 7 330 19.1 396.28 5.9 24.4 253 | 0.21409 22 5.86 0 0.431 6.438 8.9 7.3967 7 330 19.1 377.07 3.59 24.8 254 | 0.08221 22 5.86 0 0.431 6.957 6.8 8.9067 7 330 19.1 386.09 3.53 29.6 255 | 0.36894 22 5.86 0 0.431 8.259 8.4 8.9067 7 330 19.1 396.9 3.54 42.8 256 | 0.04819 80 3.64 0 0.392 6.108 32 9.2203 1 315 16.4 392.89 6.57 21.9 257 | 0.03548 80 3.64 0 0.392 5.876 19.1 9.2203 1 315 16.4 395.18 9.25 20.9 258 | 0.01538 90 3.75 0 0.394 7.454 34.2 6.3361 3 244 15.9 386.34 3.11 44 259 | 0.61154 20 3.97 0 0.647 8.704 86.9 1.801 5 264 13 389.7 5.12 50 260 | 0.66351 20 3.97 0 0.647 7.333 100 1.8946 5 264 13 383.29 7.79 36 261 | 0.65665 20 3.97 0 0.647 6.842 100 2.0107 5 264 13 391.93 6.9 30.1 262 | 0.54011 20 3.97 0 0.647 7.203 81.8 2.1121 5 264 13 392.8 9.59 33.8 263 | 0.53412 20 3.97 0 0.647 7.52 89.4 2.1398 5 264 13 388.37 7.26 43.1 264 | 0.52014 20 3.97 0 0.647 8.398 91.5 2.2885 5 264 13 386.86 5.91 48.8 265 | 0.82526 20 3.97 0 0.647 7.327 94.5 2.0788 5 264 13 393.42 11.25 31 266 | 0.55007 20 3.97 0 0.647 7.206 91.6 1.9301 5 264 13 387.89 8.1 36.5 267 | 0.76162 20 3.97 0 0.647 5.56 62.8 1.9865 5 264 13 392.4 10.45 22.8 268 | 0.7857 20 3.97 0 0.647 7.014 84.6 2.1329 5 264 13 384.07 14.79 30.7 269 | 0.57834 20 3.97 0 0.575 8.297 67 2.4216 5 264 13 384.54 7.44 50 270 | 0.5405 20 3.97 0 0.575 7.47 52.6 2.872 5 264 13 390.3 3.16 43.5 271 | 0.09065 20 6.96 1 0.464 5.92 61.5 3.9175 3 223 18.6 391.34 13.65 20.7 272 | 0.29916 20 6.96 0 0.464 5.856 42.1 4.429 3 223 18.6 388.65 13 21.1 273 | 0.16211 20 6.96 0 0.464 6.24 16.3 4.429 3 223 18.6 396.9 6.59 25.2 274 | 0.1146 20 6.96 0 0.464 6.538 58.7 3.9175 3 223 18.6 394.96 7.73 24.4 275 | 0.22188 20 6.96 1 0.464 7.691 51.8 4.3665 3 223 18.6 390.77 6.58 35.2 276 | 0.05644 40 6.41 1 0.447 6.758 32.9 4.0776 4 254 17.6 396.9 3.53 32.4 277 | 0.09604 40 6.41 0 0.447 6.854 42.8 4.2673 4 254 17.6 396.9 2.98 32 278 | 0.10469 40 6.41 1 0.447 7.267 49 4.7872 4 254 17.6 389.25 6.05 33.2 279 | 0.06127 40 6.41 1 0.447 6.826 27.6 4.8628 4 254 17.6 393.45 4.16 33.1 280 | 0.07978 40 6.41 0 0.447 6.482 32.1 4.1403 4 254 17.6 396.9 7.19 29.1 281 | 0.21038 20 3.33 0 0.4429 6.812 32.2 4.1007 5 216 14.9 396.9 4.85 35.1 282 | 0.03578 20 3.33 0 0.4429 7.82 64.5 4.6947 5 216 14.9 387.31 3.76 45.4 283 | 0.03705 20 3.33 0 0.4429 6.968 37.2 5.2447 5 216 14.9 392.23 4.59 35.4 284 | 0.06129 20 3.33 1 0.4429 7.645 49.7 5.2119 5 216 14.9 377.07 3.01 46 285 | 0.01501 90 1.21 1 0.401 7.923 24.8 5.885 1 198 13.6 395.52 3.16 50 286 | 0.00906 90 2.97 0 0.4 7.088 20.8 7.3073 1 285 15.3 394.72 7.85 32.2 287 | 0.01096 55 2.25 0 0.389 6.453 31.9 7.3073 1 300 15.3 394.72 8.23 22 288 | 0.01965 80 1.76 0 0.385 6.23 31.5 9.0892 1 241 18.2 341.6 12.93 20.1 289 | 0.03871 52.5 5.32 0 0.405 6.209 31.3 7.3172 6 293 16.6 396.9 7.14 23.2 290 | 0.0459 52.5 5.32 0 0.405 6.315 45.6 7.3172 6 293 16.6 396.9 7.6 22.3 291 | 0.04297 52.5 5.32 0 0.405 6.565 22.9 7.3172 6 293 16.6 371.72 9.51 24.8 292 | 0.03502 80 4.95 0 0.411 6.861 27.9 5.1167 4 245 19.2 396.9 3.33 28.5 293 | 0.07886 80 4.95 0 0.411 7.148 27.7 5.1167 4 245 19.2 396.9 3.56 37.3 294 | 0.03615 80 4.95 0 0.411 6.63 23.4 5.1167 4 245 19.2 396.9 4.7 27.9 295 | 0.08265 0 13.92 0 0.437 6.127 18.4 5.5027 4 289 16 396.9 8.58 23.9 296 | 0.08199 0 13.92 0 0.437 6.009 42.3 5.5027 4 289 16 396.9 10.4 21.7 297 | 0.12932 0 13.92 0 0.437 6.678 31.1 5.9604 4 289 16 396.9 6.27 28.6 298 | 0.05372 0 13.92 0 0.437 6.549 51 5.9604 4 289 16 392.85 7.39 27.1 299 | 0.14103 0 13.92 0 0.437 5.79 58 6.32 4 289 16 396.9 15.84 20.3 300 | 0.06466 70 2.24 0 0.4 6.345 20.1 7.8278 5 358 14.8 368.24 4.97 22.5 301 | 0.05561 70 2.24 0 0.4 7.041 10 7.8278 5 358 14.8 371.58 4.74 29 302 | 0.04417 70 2.24 0 0.4 6.871 47.4 7.8278 5 358 14.8 390.86 6.07 24.8 303 | 0.03537 34 6.09 0 0.433 6.59 40.4 5.4917 7 329 16.1 395.75 9.5 22 304 | 0.09266 34 6.09 0 0.433 6.495 18.4 5.4917 7 329 16.1 383.61 8.67 26.4 305 | 0.1 34 6.09 0 0.433 6.982 17.7 5.4917 7 329 16.1 390.43 4.86 33.1 306 | 0.05515 33 2.18 0 0.472 7.236 41.1 4.022 7 222 18.4 393.68 6.93 36.1 307 | 0.05479 33 2.18 0 0.472 6.616 58.1 3.37 7 222 18.4 393.36 8.93 28.4 308 | 0.07503 33 2.18 0 0.472 7.42 71.9 3.0992 7 222 18.4 396.9 6.47 33.4 309 | 0.04932 33 2.18 0 0.472 6.849 70.3 3.1827 7 222 18.4 396.9 7.53 28.2 310 | 0.49298 0 9.9 0 0.544 6.635 82.5 3.3175 4 304 18.4 396.9 4.54 22.8 311 | 0.3494 0 9.9 0 0.544 5.972 76.7 3.1025 4 304 18.4 396.24 9.97 20.3 312 | 2.63548 0 9.9 0 0.544 4.973 37.8 2.5194 4 304 18.4 350.45 12.64 16.1 313 | 0.79041 0 9.9 0 0.544 6.122 52.8 2.6403 4 304 18.4 396.9 5.98 22.1 314 | 0.26169 0 9.9 0 0.544 6.023 90.4 2.834 4 304 18.4 396.3 11.72 19.4 315 | 0.26938 0 9.9 0 0.544 6.266 82.8 3.2628 4 304 18.4 393.39 7.9 21.6 316 | 0.3692 0 9.9 0 0.544 6.567 87.3 3.6023 4 304 18.4 395.69 9.28 23.8 317 | 0.25356 0 9.9 0 0.544 5.705 77.7 3.945 4 304 18.4 396.42 11.5 16.2 318 | 0.31827 0 9.9 0 0.544 5.914 83.2 3.9986 4 304 18.4 390.7 18.33 17.8 319 | 0.24522 0 9.9 0 0.544 5.782 71.7 4.0317 4 304 18.4 396.9 15.94 19.8 320 | 0.40202 0 9.9 0 0.544 6.382 67.2 3.5325 4 304 18.4 395.21 10.36 23.1 321 | 0.47547 0 9.9 0 0.544 6.113 58.8 4.0019 4 304 18.4 396.23 12.73 21 322 | 0.1676 0 7.38 0 0.493 6.426 52.3 4.5404 5 287 19.6 396.9 7.2 23.8 323 | 0.18159 0 7.38 0 0.493 6.376 54.3 4.5404 5 287 19.6 396.9 6.87 23.1 324 | 0.35114 0 7.38 0 0.493 6.041 49.9 4.7211 5 287 19.6 396.9 7.7 20.4 325 | 0.28392 0 7.38 0 0.493 5.708 74.3 4.7211 5 287 19.6 391.13 11.74 18.5 326 | 0.34109 0 7.38 0 0.493 6.415 40.1 4.7211 5 287 19.6 396.9 6.12 25 327 | 0.19186 0 7.38 0 0.493 6.431 14.7 5.4159 5 287 19.6 393.68 5.08 24.6 328 | 0.30347 0 7.38 0 0.493 6.312 28.9 5.4159 5 287 19.6 396.9 6.15 23 329 | 0.24103 0 7.38 0 0.493 6.083 43.7 5.4159 5 287 19.6 396.9 12.79 22.2 330 | 0.06617 0 3.24 0 0.46 5.868 25.8 5.2146 4 430 16.9 382.44 9.97 19.3 331 | 0.06724 0 3.24 0 0.46 6.333 17.2 5.2146 4 430 16.9 375.21 7.34 22.6 332 | 0.04544 0 3.24 0 0.46 6.144 32.2 5.8736 4 430 16.9 368.57 9.09 19.8 333 | 0.05023 35 6.06 0 0.4379 5.706 28.4 6.6407 1 304 16.9 394.02 12.43 17.1 334 | 0.03466 35 6.06 0 0.4379 6.031 23.3 6.6407 1 304 16.9 362.25 7.83 19.4 335 | 0.05083 0 5.19 0 0.515 6.316 38.1 6.4584 5 224 20.2 389.71 5.68 22.2 336 | 0.03738 0 5.19 0 0.515 6.31 38.5 6.4584 5 224 20.2 389.4 6.75 20.7 337 | 0.03961 0 5.19 0 0.515 6.037 34.5 5.9853 5 224 20.2 396.9 8.01 21.1 338 | 0.03427 0 5.19 0 0.515 5.869 46.3 5.2311 5 224 20.2 396.9 9.8 19.5 339 | 0.03041 0 5.19 0 0.515 5.895 59.6 5.615 5 224 20.2 394.81 10.56 18.5 340 | 0.03306 0 5.19 0 0.515 6.059 37.3 4.8122 5 224 20.2 396.14 8.51 20.6 341 | 0.05497 0 5.19 0 0.515 5.985 45.4 4.8122 5 224 20.2 396.9 9.74 19 342 | 0.06151 0 5.19 0 0.515 5.968 58.5 4.8122 5 224 20.2 396.9 9.29 18.7 343 | 0.01301 35 1.52 0 0.442 7.241 49.3 7.0379 1 284 15.5 394.74 5.49 32.7 344 | 0.02498 0 1.89 0 0.518 6.54 59.7 6.2669 1 422 15.9 389.96 8.65 16.5 345 | 0.02543 55 3.78 0 0.484 6.696 56.4 5.7321 5 370 17.6 396.9 7.18 23.9 346 | 0.03049 55 3.78 0 0.484 6.874 28.1 6.4654 5 370 17.6 387.97 4.61 31.2 347 | 0.03113 0 4.39 0 0.442 6.014 48.5 8.0136 3 352 18.8 385.64 10.53 17.5 348 | 0.06162 0 4.39 0 0.442 5.898 52.3 8.0136 3 352 18.8 364.61 12.67 17.2 349 | 0.0187 85 4.15 0 0.429 6.516 27.7 8.5353 4 351 17.9 392.43 6.36 23.1 350 | 0.01501 80 2.01 0 0.435 6.635 29.7 8.344 4 280 17 390.94 5.99 24.5 351 | 0.02899 40 1.25 0 0.429 6.939 34.5 8.7921 1 335 19.7 389.85 5.89 26.6 352 | 0.06211 40 1.25 0 0.429 6.49 44.4 8.7921 1 335 19.7 396.9 5.98 22.9 353 | 0.0795 60 1.69 0 0.411 6.579 35.9 10.7103 4 411 18.3 370.78 5.49 24.1 354 | 0.07244 60 1.69 0 0.411 5.884 18.5 10.7103 4 411 18.3 392.33 7.79 18.6 355 | 0.01709 90 2.02 0 0.41 6.728 36.1 12.1265 5 187 17 384.46 4.5 30.1 356 | 0.04301 80 1.91 0 0.413 5.663 21.9 10.5857 4 334 22 382.8 8.05 18.2 357 | 0.10659 80 1.91 0 0.413 5.936 19.5 10.5857 4 334 22 376.04 5.57 20.6 358 | 8.98296 0 18.1 1 0.77 6.212 97.4 2.1222 24 666 20.2 377.73 17.6 17.8 359 | 3.8497 0 18.1 1 0.77 6.395 91 2.5052 24 666 20.2 391.34 13.27 21.7 360 | 5.20177 0 18.1 1 0.77 6.127 83.4 2.7227 24 666 20.2 395.43 11.48 22.7 361 | 4.26131 0 18.1 0 0.77 6.112 81.3 2.5091 24 666 20.2 390.74 12.67 22.6 362 | 4.54192 0 18.1 0 0.77 6.398 88 2.5182 24 666 20.2 374.56 7.79 25 363 | 3.83684 0 18.1 0 0.77 6.251 91.1 2.2955 24 666 20.2 350.65 14.19 19.9 364 | 3.67822 0 18.1 0 0.77 5.362 96.2 2.1036 24 666 20.2 380.79 10.19 20.8 365 | 4.22239 0 18.1 1 0.77 5.803 89 1.9047 24 666 20.2 353.04 14.64 16.8 366 | 3.47428 0 18.1 1 0.718 8.78 82.9 1.9047 24 666 20.2 354.55 5.29 21.9 367 | 4.55587 0 18.1 0 0.718 3.561 87.9 1.6132 24 666 20.2 354.7 7.12 27.5 368 | 3.69695 0 18.1 0 0.718 4.963 91.4 1.7523 24 666 20.2 316.03 14 21.9 369 | 13.5222 0 18.1 0 0.631 3.863 100 1.5106 24 666 20.2 131.42 13.33 23.1 370 | 4.89822 0 18.1 0 0.631 4.97 100 1.3325 24 666 20.2 375.52 3.26 50 371 | 5.66998 0 18.1 1 0.631 6.683 96.8 1.3567 24 666 20.2 375.33 3.73 50 372 | 6.53876 0 18.1 1 0.631 7.016 97.5 1.2024 24 666 20.2 392.05 2.96 50 373 | 9.2323 0 18.1 0 0.631 6.216 100 1.1691 24 666 20.2 366.15 9.53 50 374 | 8.26725 0 18.1 1 0.668 5.875 89.6 1.1296 24 666 20.2 347.88 8.88 50 375 | 11.1081 0 18.1 0 0.668 4.906 100 1.1742 24 666 20.2 396.9 34.77 13.8 376 | 18.4982 0 18.1 0 0.668 4.138 100 1.137 24 666 20.2 396.9 37.97 13.8 377 | 19.6091 0 18.1 0 0.671 7.313 97.9 1.3163 24 666 20.2 396.9 13.44 15 378 | 15.288 0 18.1 0 0.671 6.649 93.3 1.3449 24 666 20.2 363.02 23.24 13.9 379 | 9.82349 0 18.1 0 0.671 6.794 98.8 1.358 24 666 20.2 396.9 21.24 13.3 380 | 23.6482 0 18.1 0 0.671 6.38 96.2 1.3861 24 666 20.2 396.9 23.69 13.1 381 | 17.8667 0 18.1 0 0.671 6.223 100 1.3861 24 666 20.2 393.74 21.78 10.2 382 | 88.9762 0 18.1 0 0.671 6.968 91.9 1.4165 24 666 20.2 396.9 17.21 10.4 383 | 15.8744 0 18.1 0 0.671 6.545 99.1 1.5192 24 666 20.2 396.9 21.08 10.9 384 | 9.18702 0 18.1 0 0.7 5.536 100 1.5804 24 666 20.2 396.9 23.6 11.3 385 | 7.99248 0 18.1 0 0.7 5.52 100 1.5331 24 666 20.2 396.9 24.56 12.3 386 | 20.0849 0 18.1 0 0.7 4.368 91.2 1.4395 24 666 20.2 285.83 30.63 8.8 387 | 16.8118 0 18.1 0 0.7 5.277 98.1 1.4261 24 666 20.2 396.9 30.81 7.2 388 | 24.3938 0 18.1 0 0.7 4.652 100 1.4672 24 666 20.2 396.9 28.28 10.5 389 | 22.5971 0 18.1 0 0.7 5 89.5 1.5184 24 666 20.2 396.9 31.99 7.4 390 | 14.3337 0 18.1 0 0.7 4.88 100 1.5895 24 666 20.2 372.92 30.62 10.2 391 | 8.15174 0 18.1 0 0.7 5.39 98.9 1.7281 24 666 20.2 396.9 20.85 11.5 392 | 6.96215 0 18.1 0 0.7 5.713 97 1.9265 24 666 20.2 394.43 17.11 15.1 393 | 5.29305 0 18.1 0 0.7 6.051 82.5 2.1678 24 666 20.2 378.38 18.76 23.2 394 | 11.5779 0 18.1 0 0.7 5.036 97 1.77 24 666 20.2 396.9 25.68 9.7 395 | 8.64476 0 18.1 0 0.693 6.193 92.6 1.7912 24 666 20.2 396.9 15.17 13.8 396 | 13.3598 0 18.1 0 0.693 5.887 94.7 1.7821 24 666 20.2 396.9 16.35 12.7 397 | 8.71675 0 18.1 0 0.693 6.471 98.8 1.7257 24 666 20.2 391.98 17.12 13.1 398 | 5.87205 0 18.1 0 0.693 6.405 96 1.6768 24 666 20.2 396.9 19.37 12.5 399 | 7.67202 0 18.1 0 0.693 5.747 98.9 1.6334 24 666 20.2 393.1 19.92 8.5 400 | 38.3518 0 18.1 0 0.693 5.453 100 1.4896 24 666 20.2 396.9 30.59 5 401 | 9.91655 0 18.1 0 0.693 5.852 77.8 1.5004 24 666 20.2 338.16 29.97 6.3 402 | 25.0461 0 18.1 0 0.693 5.987 100 1.5888 24 666 20.2 396.9 26.77 5.6 403 | 14.2362 0 18.1 0 0.693 6.343 100 1.5741 24 666 20.2 396.9 20.32 7.2 404 | 9.59571 0 18.1 0 0.693 6.404 100 1.639 24 666 20.2 376.11 20.31 12.1 405 | 24.8017 0 18.1 0 0.693 5.349 96 1.7028 24 666 20.2 396.9 19.77 8.3 406 | 41.5292 0 18.1 0 0.693 5.531 85.4 1.6074 24 666 20.2 329.46 27.38 8.5 407 | 67.9208 0 18.1 0 0.693 5.683 100 1.4254 24 666 20.2 384.97 22.98 5 408 | 20.7162 0 18.1 0 0.659 4.138 100 1.1781 24 666 20.2 370.22 23.34 11.9 409 | 11.9511 0 18.1 0 0.659 5.608 100 1.2852 24 666 20.2 332.09 12.13 27.9 410 | 7.40389 0 18.1 0 0.597 5.617 97.9 1.4547 24 666 20.2 314.64 26.4 17.2 411 | 14.4383 0 18.1 0 0.597 6.852 100 1.4655 24 666 20.2 179.36 19.78 27.5 412 | 51.1358 0 18.1 0 0.597 5.757 100 1.413 24 666 20.2 2.6 10.11 15 413 | 14.0507 0 18.1 0 0.597 6.657 100 1.5275 24 666 20.2 35.05 21.22 17.2 414 | 18.811 0 18.1 0 0.597 4.628 100 1.5539 24 666 20.2 28.79 34.37 17.9 415 | 28.6558 0 18.1 0 0.597 5.155 100 1.5894 24 666 20.2 210.97 20.08 16.3 416 | 45.7461 0 18.1 0 0.693 4.519 100 1.6582 24 666 20.2 88.27 36.98 7 417 | 18.0846 0 18.1 0 0.679 6.434 100 1.8347 24 666 20.2 27.25 29.05 7.2 418 | 10.8342 0 18.1 0 0.679 6.782 90.8 1.8195 24 666 20.2 21.57 25.79 7.5 419 | 25.9406 0 18.1 0 0.679 5.304 89.1 1.6475 24 666 20.2 127.36 26.64 10.4 420 | 73.5341 0 18.1 0 0.679 5.957 100 1.8026 24 666 20.2 16.45 20.62 8.8 421 | 11.8123 0 18.1 0 0.718 6.824 76.5 1.794 24 666 20.2 48.45 22.74 8.4 422 | 11.0874 0 18.1 0 0.718 6.411 100 1.8589 24 666 20.2 318.75 15.02 16.7 423 | 7.02259 0 18.1 0 0.718 6.006 95.3 1.8746 24 666 20.2 319.98 15.7 14.2 424 | 12.0482 0 18.1 0 0.614 5.648 87.6 1.9512 24 666 20.2 291.55 14.1 20.8 425 | 7.05042 0 18.1 0 0.614 6.103 85.1 2.0218 24 666 20.2 2.52 23.29 13.4 426 | 8.79212 0 18.1 0 0.584 5.565 70.6 2.0635 24 666 20.2 3.65 17.16 11.7 427 | 15.8603 0 18.1 0 0.679 5.896 95.4 1.9096 24 666 20.2 7.68 24.39 8.3 428 | 12.2472 0 18.1 0 0.584 5.837 59.7 1.9976 24 666 20.2 24.65 15.69 10.2 429 | 37.6619 0 18.1 0 0.679 6.202 78.7 1.8629 24 666 20.2 18.82 14.52 10.9 430 | 7.36711 0 18.1 0 0.679 6.193 78.1 1.9356 24 666 20.2 96.73 21.52 11 431 | 9.33889 0 18.1 0 0.679 6.38 95.6 1.9682 24 666 20.2 60.72 24.08 9.5 432 | 8.49213 0 18.1 0 0.584 6.348 86.1 2.0527 24 666 20.2 83.45 17.64 14.5 433 | 10.0623 0 18.1 0 0.584 6.833 94.3 2.0882 24 666 20.2 81.33 19.69 14.1 434 | 6.44405 0 18.1 0 0.584 6.425 74.8 2.2004 24 666 20.2 97.95 12.03 16.1 435 | 5.58107 0 18.1 0 0.713 6.436 87.9 2.3158 24 666 20.2 100.19 16.22 14.3 436 | 13.9134 0 18.1 0 0.713 6.208 95 2.2222 24 666 20.2 100.63 15.17 11.7 437 | 11.1604 0 18.1 0 0.74 6.629 94.6 2.1247 24 666 20.2 109.85 23.27 13.4 438 | 14.4208 0 18.1 0 0.74 6.461 93.3 2.0026 24 666 20.2 27.49 18.05 9.6 439 | 15.1772 0 18.1 0 0.74 6.152 100 1.9142 24 666 20.2 9.32 26.45 8.7 440 | 13.6781 0 18.1 0 0.74 5.935 87.9 1.8206 24 666 20.2 68.95 34.02 8.4 441 | 9.39063 0 18.1 0 0.74 5.627 93.9 1.8172 24 666 20.2 396.9 22.88 12.8 442 | 22.0511 0 18.1 0 0.74 5.818 92.4 1.8662 24 666 20.2 391.45 22.11 10.5 443 | 9.72418 0 18.1 0 0.74 6.406 97.2 2.0651 24 666 20.2 385.96 19.52 17.1 444 | 5.66637 0 18.1 0 0.74 6.219 100 2.0048 24 666 20.2 395.69 16.59 18.4 445 | 9.96654 0 18.1 0 0.74 6.485 100 1.9784 24 666 20.2 386.73 18.85 15.4 446 | 12.8023 0 18.1 0 0.74 5.854 96.6 1.8956 24 666 20.2 240.52 23.79 10.8 447 | 10.6718 0 18.1 0 0.74 6.459 94.8 1.9879 24 666 20.2 43.06 23.98 11.8 448 | 6.28807 0 18.1 0 0.74 6.341 96.4 2.072 24 666 20.2 318.01 17.79 14.9 449 | 9.92485 0 18.1 0 0.74 6.251 96.6 2.198 24 666 20.2 388.52 16.44 12.6 450 | 9.32909 0 18.1 0 0.713 6.185 98.7 2.2616 24 666 20.2 396.9 18.13 14.1 451 | 7.52601 0 18.1 0 0.713 6.417 98.3 2.185 24 666 20.2 304.21 19.31 13 452 | 6.71772 0 18.1 0 0.713 6.749 92.6 2.3236 24 666 20.2 0.32 17.44 13.4 453 | 5.44114 0 18.1 0 0.713 6.655 98.2 2.3552 24 666 20.2 355.29 17.73 15.2 454 | 5.09017 0 18.1 0 0.713 6.297 91.8 2.3682 24 666 20.2 385.09 17.27 16.1 455 | 8.24809 0 18.1 0 0.713 7.393 99.3 2.4527 24 666 20.2 375.87 16.74 17.8 456 | 9.51363 0 18.1 0 0.713 6.728 94.1 2.4961 24 666 20.2 6.68 18.71 14.9 457 | 4.75237 0 18.1 0 0.713 6.525 86.5 2.4358 24 666 20.2 50.92 18.13 14.1 458 | 4.66883 0 18.1 0 0.713 5.976 87.9 2.5806 24 666 20.2 10.48 19.01 12.7 459 | 8.20058 0 18.1 0 0.713 5.936 80.3 2.7792 24 666 20.2 3.5 16.94 13.5 460 | 7.75223 0 18.1 0 0.713 6.301 83.7 2.7831 24 666 20.2 272.21 16.23 14.9 461 | 6.80117 0 18.1 0 0.713 6.081 84.4 2.7175 24 666 20.2 396.9 14.7 20 462 | 4.81213 0 18.1 0 0.713 6.701 90 2.5975 24 666 20.2 255.23 16.42 16.4 463 | 3.69311 0 18.1 0 0.713 6.376 88.4 2.5671 24 666 20.2 391.43 14.65 17.7 464 | 6.65492 0 18.1 0 0.713 6.317 83 2.7344 24 666 20.2 396.9 13.99 19.5 465 | 5.82115 0 18.1 0 0.713 6.513 89.9 2.8016 24 666 20.2 393.82 10.29 20.2 466 | 7.83932 0 18.1 0 0.655 6.209 65.4 2.9634 24 666 20.2 396.9 13.22 21.4 467 | 3.1636 0 18.1 0 0.655 5.759 48.2 3.0665 24 666 20.2 334.4 14.13 19.9 468 | 3.77498 0 18.1 0 0.655 5.952 84.7 2.8715 24 666 20.2 22.01 17.15 19 469 | 4.42228 0 18.1 0 0.584 6.003 94.5 2.5403 24 666 20.2 331.29 21.32 19.1 470 | 15.5757 0 18.1 0 0.58 5.926 71 2.9084 24 666 20.2 368.74 18.13 19.1 471 | 13.0751 0 18.1 0 0.58 5.713 56.7 2.8237 24 666 20.2 396.9 14.76 20.1 472 | 4.34879 0 18.1 0 0.58 6.167 84 3.0334 24 666 20.2 396.9 16.29 19.9 473 | 4.03841 0 18.1 0 0.532 6.229 90.7 3.0993 24 666 20.2 395.33 12.87 19.6 474 | 3.56868 0 18.1 0 0.58 6.437 75 2.8965 24 666 20.2 393.37 14.36 23.2 475 | 4.64689 0 18.1 0 0.614 6.98 67.6 2.5329 24 666 20.2 374.68 11.66 29.8 476 | 8.05579 0 18.1 0 0.584 5.427 95.4 2.4298 24 666 20.2 352.58 18.14 13.8 477 | 6.39312 0 18.1 0 0.584 6.162 97.4 2.206 24 666 20.2 302.76 24.1 13.3 478 | 4.87141 0 18.1 0 0.614 6.484 93.6 2.3053 24 666 20.2 396.21 18.68 16.7 479 | 15.0234 0 18.1 0 0.614 5.304 97.3 2.1007 24 666 20.2 349.48 24.91 12 480 | 10.233 0 18.1 0 0.614 6.185 96.7 2.1705 24 666 20.2 379.7 18.03 14.6 481 | 14.3337 0 18.1 0 0.614 6.229 88 1.9512 24 666 20.2 383.32 13.11 21.4 482 | 5.82401 0 18.1 0 0.532 6.242 64.7 3.4242 24 666 20.2 396.9 10.74 23 483 | 5.70818 0 18.1 0 0.532 6.75 74.9 3.3317 24 666 20.2 393.07 7.74 23.7 484 | 5.73116 0 18.1 0 0.532 7.061 77 3.4106 24 666 20.2 395.28 7.01 25 485 | 2.81838 0 18.1 0 0.532 5.762 40.3 4.0983 24 666 20.2 392.92 10.42 21.8 486 | 2.37857 0 18.1 0 0.583 5.871 41.9 3.724 24 666 20.2 370.73 13.34 20.6 487 | 3.67367 0 18.1 0 0.583 6.312 51.9 3.9917 24 666 20.2 388.62 10.58 21.2 488 | 5.69175 0 18.1 0 0.583 6.114 79.8 3.5459 24 666 20.2 392.68 14.98 19.1 489 | 4.83567 0 18.1 0 0.583 5.905 53.2 3.1523 24 666 20.2 388.22 11.45 20.6 490 | 0.15086 0 27.74 0 0.609 5.454 92.7 1.8209 4 711 20.1 395.09 18.06 15.2 491 | 0.18337 0 27.74 0 0.609 5.414 98.3 1.7554 4 711 20.1 344.05 23.97 7 492 | 0.20746 0 27.74 0 0.609 5.093 98 1.8226 4 711 20.1 318.43 29.68 8.1 493 | 0.10574 0 27.74 0 0.609 5.983 98.8 1.8681 4 711 20.1 390.11 18.07 13.6 494 | 0.11132 0 27.74 0 0.609 5.983 83.5 2.1099 4 711 20.1 396.9 13.35 20.1 495 | 0.17331 0 9.69 0 0.585 5.707 54 2.3817 6 391 19.2 396.9 12.01 21.8 496 | 0.27957 0 9.69 0 0.585 5.926 42.6 2.3817 6 391 19.2 396.9 13.59 24.5 497 | 0.17899 0 9.69 0 0.585 5.67 28.8 2.7986 6 391 19.2 393.29 17.6 23.1 498 | 0.2896 0 9.69 0 0.585 5.39 72.9 2.7986 6 391 19.2 396.9 21.14 19.7 499 | 0.26838 0 9.69 0 0.585 5.794 70.6 2.8927 6 391 19.2 396.9 14.1 18.3 500 | 0.23912 0 9.69 0 0.585 6.019 65.3 2.4091 6 391 19.2 396.9 12.92 21.2 501 | 0.17783 0 9.69 0 0.585 5.569 73.5 2.3999 6 391 19.2 395.77 15.1 17.5 502 | 0.22438 0 9.69 0 0.585 6.027 79.7 2.4982 6 391 19.2 396.9 14.33 16.8 503 | 0.06263 0 11.93 0 0.573 6.593 69.1 2.4786 1 273 21 391.99 9.67 22.4 504 | 0.04527 0 11.93 0 0.573 6.12 76.7 2.2875 1 273 21 396.9 9.08 20.6 505 | 0.06076 0 11.93 0 0.573 6.976 91 2.1675 1 273 21 396.9 5.64 23.9 506 | 0.10959 0 11.93 0 0.573 6.794 89.3 2.3889 1 273 21 393.45 6.48 22 507 | 0.04741 0 11.93 0 0.573 6.03 80.8 2.505 1 273 21 396.9 7.88 11.9 508 | --------------------------------------------------------------------------------