::p_load("data.table",
pacman"tidyverse",
"dplyr", "tidyr",
"ggplot2", "GGally",
"caret",
"Matrix", # For sparse.model.matrix
"xgboost") # For xgb.train
<- fread("../Titanic.csv") # 데이터 불러오기
titanic
%>%
titanic as_tibble
17 XGBoost
XGBoost의 장점
- 병렬 처리를 사용하여 Gradient Boosting보다 속도가 빠르다.
- Gradient Boosting보다 정확도가 높다.
- 유연성이 좋다.
- 조기 종료가 가능하다.
- 규제를 통해 과적합을 방지할 수 있다.
XGBoost의 단점
- Gradient Boosting보다 학습시간이 빠를 뿐 다른 기법에 비하면 느리다.
- 초모수(Hyperparameter)가 많다.
- 적절하지 않은 초모수 값을 할당하면 오히려 성능이 나빠질 수 있다.
실습 자료 : 1912년 4월 15일 타이타닉호 침몰 당시 탑승객들의 정보를 기록한 데이터셋이며, 총 11개의 변수를 포함하고 있다. 이 자료에서 Target은
Survived
이다.


17.1 데이터 불러오기
# A tibble: 891 × 11
Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
<int> <int> <chr> <chr> <dbl> <int> <int> <chr> <dbl> <chr> <chr>
1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 "" S
2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.3 "C85" C
3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.92 "" S
4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1 "C123" S
5 0 3 Allen, Mr. William Henry male 35 0 0 373450 8.05 "" S
6 0 3 Moran, Mr. James male NA 0 0 330877 8.46 "" Q
7 0 1 McCarthy, Mr. Timothy J male 54 0 0 17463 51.9 "E46" S
8 0 3 Palsson, Master. Gosta Leonard male 2 3 1 349909 21.1 "" S
9 1 3 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27 0 2 347742 11.1 "" S
10 1 2 Nasser, Mrs. Nicholas (Adele Achem) female 14 1 0 237736 30.1 "" C
# ℹ 881 more rows
17.2 데이터 전처리 I
# 1. Convert to Factor
<- c("Pclass", "Sex",
fac.col # Target
"Survived")
<- titanic %>%
titanic data.frame() %>% # Data Frame 형태로 변환
mutate_at(fac.col, as.factor) # 범주형으로 변환
glimpse(titanic) # 데이터 구조 확인
Rows: 891
Columns: 11
$ Survived <fct> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0…
$ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2, 3, 3, 2, 2, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 2, 1, 1, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 2, 3, 2, 3, 3…
$ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradley (Florence Briggs Thayer)", "Heikkinen, Miss. Laina", "Futrelle, Mrs. Jacques Heath (Lily May Peel)", "Allen, Mr. William Henry…
$ Sex <fct> male, female, female, female, male, male, male, male, female, female, female, female, male, male, female, female, male, male, female, female, male, male, female, male, female, femal…
$ Age <dbl> 22.0, 38.0, 26.0, 35.0, 35.0, NA, 54.0, 2.0, 27.0, 14.0, 4.0, 58.0, 20.0, 39.0, 14.0, 55.0, 2.0, NA, 31.0, NA, 35.0, 34.0, 15.0, 28.0, 8.0, 38.0, NA, 19.0, NA, NA, 40.0, NA, NA, 66.…
$ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 3, 1, 0, 3, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 1, 0, 0, 1, 0, 2, 1, 4, 0, 1, 1, 0, 0, 0, 0, 1, 5, 0…
$ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 2, 0…
$ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803", "373450", "330877", "17463", "349909", "347742", "237736", "PP 9549", "113783", "A/5. 2151", "347082", "350406", "248706", "38…
$ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51.8625, 21.0750, 11.1333, 30.0708, 16.7000, 26.5500, 8.0500, 31.2750, 7.8542, 16.0000, 29.1250, 13.0000, 18.0000, 7.2250, 26.0000,…
$ Cabin <chr> "", "C85", "", "C123", "", "", "E46", "", "", "", "G6", "C103", "", "", "", "", "", "", "", "", "", "D56", "", "A6", "", "", "", "C23 C25 C27", "", "", "", "B78", "", "", "", "", ""…
$ Embarked <chr> "S", "C", "S", "S", "S", "Q", "S", "S", "S", "C", "S", "S", "S", "S", "S", "S", "Q", "S", "S", "C", "S", "S", "Q", "S", "S", "S", "C", "S", "Q", "S", "C", "C", "Q", "S", "C", "S", "…
# 2. Generate New Variable
<- titanic %>%
titanic mutate(FamSize = SibSp + Parch) # "FamSize = 형제 및 배우자 수 + 부모님 및 자녀 수"로 가족 수를 의미하는 새로운 변수
glimpse(titanic) # 데이터 구조 확인
Rows: 891
Columns: 12
$ Survived <fct> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0…
$ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2, 3, 3, 2, 2, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 2, 1, 1, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 2, 3, 2, 3, 3…
$ Name <chr> "Braund, Mr. Owen Harris", "Cumings, Mrs. John Bradley (Florence Briggs Thayer)", "Heikkinen, Miss. Laina", "Futrelle, Mrs. Jacques Heath (Lily May Peel)", "Allen, Mr. William Henry…
$ Sex <fct> male, female, female, female, male, male, male, male, female, female, female, female, male, male, female, female, male, male, female, female, male, male, female, male, female, femal…
$ Age <dbl> 22.0, 38.0, 26.0, 35.0, 35.0, NA, 54.0, 2.0, 27.0, 14.0, 4.0, 58.0, 20.0, 39.0, 14.0, 55.0, 2.0, NA, 31.0, NA, 35.0, 34.0, 15.0, 28.0, 8.0, 38.0, NA, 19.0, NA, NA, 40.0, NA, NA, 66.…
$ SibSp <int> 1, 1, 0, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 3, 1, 0, 3, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 1, 0, 0, 1, 0, 2, 1, 4, 0, 1, 1, 0, 0, 0, 0, 1, 5, 0…
$ Parch <int> 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 2, 0…
$ Ticket <chr> "A/5 21171", "PC 17599", "STON/O2. 3101282", "113803", "373450", "330877", "17463", "349909", "347742", "237736", "PP 9549", "113783", "A/5. 2151", "347082", "350406", "248706", "38…
$ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51.8625, 21.0750, 11.1333, 30.0708, 16.7000, 26.5500, 8.0500, 31.2750, 7.8542, 16.0000, 29.1250, 13.0000, 18.0000, 7.2250, 26.0000,…
$ Cabin <chr> "", "C85", "", "C123", "", "", "E46", "", "", "", "G6", "C103", "", "", "", "", "", "", "", "", "", "D56", "", "A6", "", "", "", "C23 C25 C27", "", "", "", "B78", "", "", "", "", ""…
$ Embarked <chr> "S", "C", "S", "S", "S", "Q", "S", "S", "S", "C", "S", "S", "S", "S", "S", "S", "Q", "S", "S", "C", "S", "S", "Q", "S", "S", "S", "C", "S", "Q", "S", "C", "C", "Q", "S", "C", "S", "…
$ FamSize <int> 1, 1, 0, 1, 0, 0, 0, 4, 2, 1, 2, 0, 0, 6, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 4, 6, 0, 5, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 3, 0, 0, 1, 0, 2, 1, 5, 0, 1, 1, 1, 0, 0, 0, 3, 7, 0…
# 3. Select Variables used for Analysis
<- titanic %>%
titanic1 ::select(Survived, Pclass, Sex, Age, Fare, FamSize) # 분석에 사용할 변수 선택
dplyr
glimpse(titanic1) # 데이터 구조 확인
Rows: 891
Columns: 6
$ Survived <fct> 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0…
$ Pclass <fct> 3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 3, 2, 3, 3, 2, 2, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 2, 1, 1, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 2, 3, 2, 3, 3…
$ Sex <fct> male, female, female, female, male, male, male, male, female, female, female, female, male, male, female, female, male, male, female, female, male, male, female, male, female, femal…
$ Age <dbl> 22.0, 38.0, 26.0, 35.0, 35.0, NA, 54.0, 2.0, 27.0, 14.0, 4.0, 58.0, 20.0, 39.0, 14.0, 55.0, 2.0, NA, 31.0, NA, 35.0, 34.0, 15.0, 28.0, 8.0, 38.0, NA, 19.0, NA, NA, 40.0, NA, NA, 66.…
$ Fare <dbl> 7.2500, 71.2833, 7.9250, 53.1000, 8.0500, 8.4583, 51.8625, 21.0750, 11.1333, 30.0708, 16.7000, 26.5500, 8.0500, 31.2750, 7.8542, 16.0000, 29.1250, 13.0000, 18.0000, 7.2250, 26.0000,…
$ FamSize <int> 1, 1, 0, 1, 0, 0, 0, 4, 2, 1, 2, 0, 0, 6, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 4, 6, 0, 5, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 3, 0, 0, 1, 0, 2, 1, 5, 0, 1, 1, 1, 0, 0, 0, 3, 7, 0…
17.3 데이터 탐색
ggpairs(titanic1,
aes(colour = Survived)) + # Target의 범주에 따라 색깔을 다르게 표현
theme_bw()
ggpairs(titanic1,
aes(colour = Survived, alpha = 0.8)) + # Target의 범주에 따라 색깔을 다르게 표현
scale_colour_manual(values = c("#00798c", "#d1495b")) + # 특정 색깔 지정
scale_fill_manual(values = c("#00798c", "#d1495b")) + # 특정 색깔 지정
theme_bw()
17.4 데이터 분할
# Partition (Training Dataset : Test Dataset = 7:3)
<- titanic1$Survived # Target
y
set.seed(200)
<- createDataPartition(y, p = 0.7, list =T) # Index를 이용하여 7:3으로 분할
ind <- titanic1[ind$Resample1,] # Training Dataset
titanic.trd <- titanic1[-ind$Resample1,] # Test Dataset titanic.ted
17.5 데이터 전처리 II
# Imputation
<- titanic.trd %>%
titanic.trd.Imp mutate(Age = replace_na(Age, mean(Age, na.rm = TRUE))) # 평균으로 결측값 대체
<- titanic.ted %>%
titanic.ted.Imp mutate(Age = replace_na(Age, mean(titanic.trd$Age, na.rm = TRUE))) # Training Dataset을 이용하여 결측값 대체
glimpse(titanic.trd.Imp) # 데이터 구조 확인
Rows: 625
Columns: 6
$ Survived <fct> 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1…
$ Pclass <fct> 3, 3, 1, 3, 3, 3, 3, 2, 3, 1, 3, 3, 2, 3, 3, 2, 1, 3, 3, 1, 3, 3, 1, 1, 3, 2, 1, 1, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 1, 2, 3…
$ Sex <fct> male, female, female, male, male, male, female, female, female, female, male, female, male, female, female, male, male, female, male, male, female, male, male, female, female, male,…
$ Age <dbl> 22.00000, 26.00000, 35.00000, 35.00000, 29.93737, 2.00000, 27.00000, 14.00000, 4.00000, 58.00000, 39.00000, 14.00000, 29.93737, 31.00000, 29.93737, 35.00000, 28.00000, 8.00000, 29.9…
$ Fare <dbl> 7.2500, 7.9250, 53.1000, 8.0500, 8.4583, 21.0750, 11.1333, 30.0708, 16.7000, 26.5500, 31.2750, 7.8542, 13.0000, 18.0000, 7.2250, 26.0000, 35.5000, 21.0750, 7.2250, 263.0000, 7.8792,…
$ FamSize <int> 1, 0, 1, 0, 0, 4, 2, 1, 2, 0, 6, 0, 0, 1, 0, 0, 0, 4, 0, 5, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 1, 1, 1, 0, 0, 1, 0, 2, 1, 5, 1, 1, 0, 7, 0, 0, 5, 0, 2, 7, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3…
glimpse(titanic.ted.Imp) # 데이터 구조 확인
Rows: 266
Columns: 6
$ Survived <fct> 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0…
$ Pclass <fct> 1, 1, 3, 2, 3, 2, 3, 3, 3, 2, 3, 3, 2, 2, 3, 2, 1, 3, 2, 3, 3, 2, 2, 3, 3, 3, 3, 1, 2, 2, 3, 3, 3, 3, 3, 2, 3, 2, 2, 2, 3, 3, 2, 1, 3, 1, 3, 2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3…
$ Sex <fct> female, male, male, female, male, male, female, female, male, female, male, male, female, female, male, female, male, male, female, male, female, male, male, male, male, male, male,…
$ Age <dbl> 38.00000, 54.00000, 20.00000, 55.00000, 2.00000, 34.00000, 15.00000, 38.00000, 29.93737, 3.00000, 29.93737, 21.00000, 29.00000, 21.00000, 28.50000, 5.00000, 45.00000, 29.93737, 29.0…
$ Fare <dbl> 71.2833, 51.8625, 8.0500, 16.0000, 29.1250, 13.0000, 8.0292, 31.3875, 7.2292, 41.5792, 8.0500, 7.8000, 26.0000, 10.5000, 7.2292, 27.7500, 83.4750, 15.2458, 10.5000, 8.1583, 7.9250, …
$ FamSize <int> 1, 0, 0, 0, 5, 0, 0, 6, 0, 3, 0, 0, 1, 0, 0, 3, 1, 2, 0, 0, 6, 0, 0, 0, 0, 4, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 6, 2, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 1, 0, 0, 1, 5, 2, 5, 0, 5, 0, 4, 0, 6…
17.6 모형 훈련
Boosting은 다수의 약한 학습자(간단하면서 성능이 낮은 예측 모형)을 순차적으로 학습하는 앙상블 기법이다. Boosting의 특징은 이전 모형의 오차를 반영하여 다음 모형을 생성하며, 오차를 개선하는 방향으로 학습을 수행한다.

XGBoost는 Extreme Gradient Boosting의 약어로 Gradient Boosting의 단점을 해결하기 위해 제안되었다. R에서 XGBoost을 수행하기 위해 package "xgboost"
에서 제공하는 함수 xgb.train()
를 이용할 수 있으며, 함수의 자세한 옵션은 여기를 참고한다.
Caution!
함수 xgb.train()
을 사용하려면 예측 변수와 Target 모두 수치형
이여야 하며, “xgb.DMatrix”로 변환해야 한다. 이를 위해 다음과 같은 절차를 수행한다.
- 범주형 예측 변수를 더미 변수로 변환하기 위해 함수
sparse.model.matrix()
를 이용한다.
- Target을 수치형으로 변환한다.
- 함수
xgb.DMatrix()
를 이용하여 “xgb.DMatrix”로 변환한다.
# 1. Convert Factor Var. into Dummy Var.
<- sparse.model.matrix(Survived ~.-1, # Survived Target으로 제외
trainm data = titanic.trd.Imp)
trainm
625 x 7 sparse Matrix of class "dgCMatrix"
Pclass1 Pclass2 Pclass3 Sexmale Age Fare FamSize
1 . . 1 1 22.00000 7.2500 1
3 . . 1 . 26.00000 7.9250 .
4 1 . . . 35.00000 53.1000 1
5 . . 1 1 35.00000 8.0500 .
6 . . 1 1 29.93737 8.4583 .
8 . . 1 1 2.00000 21.0750 4
9 . . 1 . 27.00000 11.1333 2
10 . 1 . . 14.00000 30.0708 1
11 . . 1 . 4.00000 16.7000 2
12 1 . . . 58.00000 26.5500 .
14 . . 1 1 39.00000 31.2750 6
15 . . 1 . 14.00000 7.8542 .
18 . 1 . 1 29.93737 13.0000 .
19 . . 1 . 31.00000 18.0000 1
20 . . 1 . 29.93737 7.2250 .
21 . 1 . 1 35.00000 26.0000 .
24 1 . . 1 28.00000 35.5000 .
25 . . 1 . 8.00000 21.0750 4
27 . . 1 1 29.93737 7.2250 .
28 1 . . 1 19.00000 263.0000 5
29 . . 1 . 29.93737 7.8792 .
30 . . 1 1 29.93737 7.8958 .
31 1 . . 1 40.00000 27.7208 .
32 1 . . . 29.93737 146.5208 1
33 . . 1 . 29.93737 7.7500 .
34 . 1 . 1 66.00000 10.5000 .
35 1 . . 1 28.00000 82.1708 1
36 1 . . 1 42.00000 52.0000 1
38 . . 1 1 21.00000 8.0500 .
39 . . 1 . 18.00000 18.0000 2
40 . . 1 . 14.00000 11.2417 1
41 . . 1 . 40.00000 9.4750 1
42 . 1 . . 27.00000 21.0000 1
43 . . 1 1 29.93737 7.8958 .
45 . . 1 . 19.00000 7.8792 .
47 . . 1 1 29.93737 15.5000 1
48 . . 1 . 29.93737 7.7500 .
49 . . 1 1 29.93737 21.6792 2
50 . . 1 . 18.00000 17.8000 1
51 . . 1 1 7.00000 39.6875 5
53 1 . . . 49.00000 76.7292 1
55 1 . . 1 65.00000 61.9792 1
56 1 . . 1 29.93737 35.5000 .
60 . . 1 1 11.00000 46.9000 7
61 . . 1 1 22.00000 7.2292 .
62 1 . . . 38.00000 80.0000 .
64 . . 1 1 4.00000 27.9000 5
65 1 . . 1 29.93737 27.7208 .
70 . . 1 1 26.00000 8.6625 2
72 . . 1 . 16.00000 46.9000 7
74 . . 1 1 26.00000 14.4542 1
75 . . 1 1 32.00000 56.4958 .
76 . . 1 1 25.00000 7.6500 .
77 . . 1 1 29.93737 7.8958 .
79 . 1 . 1 0.83000 29.0000 2
80 . . 1 . 30.00000 12.4750 .
82 . . 1 1 29.00000 9.5000 .
83 . . 1 . 29.93737 7.7875 .
84 1 . . 1 28.00000 47.1000 .
85 . 1 . . 17.00000 10.5000 .
86 . . 1 . 33.00000 15.8500 3
88 . . 1 1 29.93737 8.0500 .
89 1 . . . 23.00000 263.0000 5
91 . . 1 1 29.00000 8.0500 .
92 . . 1 1 20.00000 7.8542 .
93 1 . . 1 46.00000 61.1750 1
94 . . 1 1 26.00000 20.5750 3
95 . . 1 1 59.00000 7.2500 .
96 . . 1 1 29.93737 8.0500 .
97 1 . . 1 71.00000 34.6542 .
103 1 . . 1 21.00000 77.2875 1
105 . . 1 1 37.00000 7.9250 2
107 . . 1 . 21.00000 7.6500 .
108 . . 1 1 29.93737 7.7750 .
110 . . 1 . 29.93737 24.1500 1
111 1 . . 1 47.00000 52.0000 .
112 . . 1 . 14.50000 14.4542 1
113 . . 1 1 22.00000 8.0500 .
114 . . 1 . 20.00000 9.8250 1
115 . . 1 . 17.00000 14.4583 .
116 . . 1 1 21.00000 7.9250 .
117 . . 1 1 70.50000 7.7500 .
119 1 . . 1 24.00000 247.5208 1
122 . . 1 1 29.93737 8.0500 .
125 1 . . 1 54.00000 77.2875 1
126 . . 1 1 12.00000 11.2417 1
128 . . 1 1 24.00000 7.1417 .
129 . . 1 . 29.93737 22.3583 2
130 . . 1 1 45.00000 6.9750 .
131 . . 1 1 33.00000 7.8958 .
132 . . 1 1 20.00000 7.0500 .
134 . 1 . . 29.00000 26.0000 1
136 . 1 . 1 23.00000 15.0458 .
138 1 . . 1 37.00000 53.1000 1
141 . . 1 . 29.93737 15.2458 2
142 . . 1 . 22.00000 7.7500 .
143 . . 1 . 24.00000 15.8500 1
146 . 1 . 1 19.00000 36.7500 2
147 . . 1 1 27.00000 7.7958 .
148 . . 1 . 9.00000 34.3750 4
149 . 1 . 1 36.50000 26.0000 2
150 . 1 . 1 42.00000 13.0000 .
151 . 1 . 1 51.00000 12.5250 .
153 . . 1 1 55.50000 8.0500 .
154 . . 1 1 40.50000 14.5000 2
156 1 . . 1 51.00000 61.3792 1
157 . . 1 . 16.00000 7.7333 .
158 . . 1 1 30.00000 8.0500 .
160 . . 1 1 29.93737 69.5500 10
162 . 1 . . 40.00000 15.7500 .
163 . . 1 1 26.00000 7.7750 .
164 . . 1 1 17.00000 8.6625 .
167 1 . . . 29.93737 55.0000 1
169 1 . . 1 29.93737 25.9250 .
171 1 . . 1 61.00000 33.5000 .
173 . . 1 . 1.00000 11.1333 2
174 . . 1 1 21.00000 7.9250 .
176 . . 1 1 18.00000 7.8542 2
179 . 1 . 1 30.00000 13.0000 .
180 . . 1 1 36.00000 . .
181 . . 1 . 29.93737 69.5500 10
182 . 1 . 1 29.93737 15.0500 .
184 . 1 . 1 1.00000 39.0000 3
185 . . 1 . 4.00000 22.0250 2
188 1 . . 1 45.00000 26.5500 .
189 . . 1 1 40.00000 15.5000 2
190 . . 1 1 36.00000 7.8958 .
191 . 1 . . 32.00000 13.0000 .
192 . 1 . 1 19.00000 13.0000 .
194 . 1 . 1 3.00000 26.0000 2
196 1 . . . 58.00000 146.5208 .
197 . . 1 1 29.93737 7.7500 .
198 . . 1 1 42.00000 8.4042 1
199 . . 1 . 29.93737 7.7500 .
200 . 1 . . 24.00000 13.0000 .
202 . . 1 1 29.93737 69.5500 10
203 . . 1 1 34.00000 6.4958 .
204 . . 1 1 45.50000 7.2250 .
205 . . 1 1 18.00000 8.0500 .
206 . . 1 . 2.00000 10.4625 1
207 . . 1 1 32.00000 15.8500 1
209 . . 1 . 16.00000 7.7500 .
211 . . 1 1 24.00000 7.0500 .
212 . 1 . . 35.00000 21.0000 .
213 . . 1 1 22.00000 7.2500 .
214 . 1 . 1 30.00000 13.0000 .
216 1 . . . 31.00000 113.2750 1
217 . . 1 . 27.00000 7.9250 .
218 . 1 . 1 42.00000 27.0000 1
219 1 . . . 32.00000 76.2917 .
220 . 1 . 1 30.00000 10.5000 .
223 . . 1 1 51.00000 8.0500 .
224 . . 1 1 29.93737 7.8958 .
226 . . 1 1 22.00000 9.3500 .
227 . 1 . 1 19.00000 10.5000 .
229 . 1 . 1 18.00000 13.0000 .
230 . . 1 . 29.93737 25.4667 4
232 . . 1 1 29.00000 7.7750 .
233 . 1 . 1 59.00000 13.5000 .
235 . 1 . 1 24.00000 10.5000 .
236 . . 1 . 29.93737 7.5500 .
237 . 1 . 1 44.00000 26.0000 1
238 . 1 . . 8.00000 26.2500 2
240 . 1 . 1 33.00000 12.2750 .
242 . . 1 . 29.93737 15.5000 1
243 . 1 . 1 29.00000 10.5000 .
244 . . 1 1 22.00000 7.1250 .
245 . . 1 1 30.00000 7.2250 .
246 1 . . 1 44.00000 90.0000 2
247 . . 1 . 25.00000 7.7750 .
248 . 1 . . 24.00000 14.5000 2
249 1 . . 1 37.00000 52.5542 2
252 . . 1 . 29.00000 10.4625 2
253 1 . . 1 62.00000 26.5500 .
254 . . 1 1 30.00000 16.1000 1
255 . . 1 . 41.00000 20.2125 2
257 1 . . . 29.93737 79.2000 .
258 1 . . . 30.00000 86.5000 .
259 1 . . . 35.00000 512.3292 .
262 . . 1 1 3.00000 31.3875 6
264 1 . . 1 40.00000 . .
265 . . 1 . 29.93737 7.7500 .
266 . 1 . 1 36.00000 10.5000 .
267 . . 1 1 16.00000 39.6875 5
269 1 . . . 58.00000 153.4625 1
270 1 . . . 35.00000 135.6333 .
273 . 1 . . 41.00000 19.5000 1
275 . . 1 . 29.93737 7.7500 .
276 1 . . . 63.00000 77.9583 1
278 . 1 . 1 29.93737 . .
280 . . 1 . 35.00000 20.2500 2
281 . . 1 1 65.00000 7.7500 .
285 1 . . 1 29.93737 26.0000 .
286 . . 1 1 33.00000 8.6625 .
287 . . 1 1 30.00000 9.5000 .
288 . . 1 1 22.00000 7.8958 .
289 . 1 . 1 42.00000 13.0000 .
290 . . 1 . 22.00000 7.7500 .
291 1 . . . 26.00000 78.8500 .
292 1 . . . 19.00000 91.0792 1
293 . 1 . 1 36.00000 12.8750 .
294 . . 1 . 24.00000 8.8500 .
296 1 . . 1 29.93737 27.7208 .
297 . . 1 1 23.50000 7.2292 .
298 1 . . . 2.00000 151.5500 3
299 1 . . 1 29.93737 30.5000 .
300 1 . . . 50.00000 247.5208 1
302 . . 1 1 29.93737 23.2500 2
303 . . 1 1 19.00000 . .
304 . 1 . . 29.93737 12.3500 .
305 . . 1 1 29.93737 8.0500 .
306 1 . . 1 0.92000 151.5500 3
307 1 . . . 29.93737 110.8833 .
309 . 1 . 1 30.00000 24.0000 1
311 1 . . . 24.00000 83.1583 .
315 . 1 . 1 43.00000 26.2500 2
316 . . 1 . 26.00000 7.8542 .
317 . 1 . . 24.00000 26.0000 1
319 1 . . . 31.00000 164.8667 2
320 1 . . . 40.00000 134.5000 2
322 . . 1 1 27.00000 7.8958 .
323 . 1 . . 30.00000 12.3500 .
324 . 1 . . 22.00000 29.0000 2
325 . . 1 1 29.93737 69.5500 10
327 . . 1 1 61.00000 6.2375 .
329 . . 1 . 31.00000 20.5250 2
330 1 . . . 16.00000 57.9792 1
331 . . 1 . 29.93737 23.2500 2
332 1 . . 1 45.50000 28.5000 .
335 1 . . . 29.93737 133.6500 1
336 . . 1 1 29.93737 7.8958 .
337 1 . . 1 29.00000 66.6000 1
339 . . 1 1 45.00000 8.0500 .
340 1 . . 1 45.00000 35.5000 .
341 . 1 . 1 2.00000 26.0000 2
342 1 . . . 24.00000 263.0000 5
343 . 1 . 1 28.00000 13.0000 .
345 . 1 . 1 36.00000 13.0000 .
346 . 1 . . 24.00000 13.0000 .
348 . . 1 . 29.93737 16.1000 1
349 . . 1 1 3.00000 15.9000 2
350 . . 1 1 42.00000 8.6625 .
352 1 . . 1 29.93737 35.0000 .
353 . . 1 1 15.00000 7.2292 2
354 . . 1 1 25.00000 17.8000 1
355 . . 1 1 29.93737 7.2250 .
356 . . 1 1 28.00000 9.5000 .
357 1 . . . 22.00000 55.0000 1
360 . . 1 . 29.93737 7.8792 .
361 . . 1 1 40.00000 27.9000 5
362 . 1 . 1 29.00000 27.7208 1
363 . . 1 . 45.00000 14.4542 1
365 . . 1 1 29.93737 15.5000 1
366 . . 1 1 30.00000 7.2500 .
367 1 . . . 60.00000 75.2500 1
368 . . 1 . 29.93737 7.2292 .
370 1 . . . 24.00000 69.3000 .
371 1 . . 1 25.00000 55.4417 1
372 . . 1 1 18.00000 6.4958 1
373 . . 1 1 19.00000 8.0500 .
374 1 . . 1 22.00000 135.6333 .
376 1 . . . 29.93737 82.1708 1
377 . . 1 . 22.00000 7.2500 .
379 . . 1 1 20.00000 4.0125 .
381 1 . . . 42.00000 227.5250 .
382 . . 1 . 1.00000 15.7417 2
383 . . 1 1 32.00000 7.9250 .
384 1 . . . 35.00000 52.0000 1
385 . . 1 1 29.93737 7.8958 .
386 . 1 . 1 18.00000 73.5000 .
387 . . 1 1 1.00000 46.9000 7
388 . 1 . . 36.00000 13.0000 .
389 . . 1 1 29.93737 7.7292 .
390 . 1 . . 17.00000 12.0000 .
391 1 . . 1 36.00000 120.0000 3
392 . . 1 1 21.00000 7.7958 .
393 . . 1 1 28.00000 7.9250 2
394 1 . . . 23.00000 113.2750 1
395 . . 1 . 24.00000 16.7000 2
396 . . 1 1 22.00000 7.7958 .
397 . . 1 . 31.00000 7.8542 .
398 . 1 . 1 46.00000 26.0000 .
399 . 1 . 1 23.00000 10.5000 .
401 . . 1 1 39.00000 7.9250 .
402 . . 1 1 26.00000 8.0500 .
404 . . 1 1 28.00000 15.8500 1
405 . . 1 . 20.00000 8.6625 .
406 . 1 . 1 34.00000 21.0000 1
407 . . 1 1 51.00000 7.7500 .
408 . 1 . 1 3.00000 18.7500 2
410 . . 1 . 29.93737 25.4667 4
411 . . 1 1 29.93737 7.8958 .
414 . 1 . 1 29.93737 . .
417 . 1 . . 34.00000 32.5000 2
421 . . 1 1 29.93737 7.8958 .
422 . . 1 1 21.00000 7.7333 .
423 . . 1 1 29.00000 7.8750 .
425 . . 1 1 18.00000 20.2125 2
426 . . 1 1 29.93737 7.2500 .
428 . 1 . . 19.00000 26.0000 .
429 . . 1 1 29.93737 7.7500 .
431 1 . . 1 28.00000 26.5500 .
432 . . 1 . 29.93737 16.1000 1
433 . 1 . . 42.00000 26.0000 1
434 . . 1 1 17.00000 7.1250 .
435 1 . . 1 50.00000 55.9000 1
437 . . 1 . 21.00000 34.3750 4
438 . 1 . . 24.00000 18.7500 5
439 1 . . 1 64.00000 263.0000 5
443 . . 1 1 25.00000 7.7750 1
444 . 1 . . 28.00000 13.0000 .
446 1 . . 1 4.00000 81.8583 2
449 . . 1 . 5.00000 19.2583 3
451 . 1 . 1 36.00000 27.7500 3
453 1 . . 1 30.00000 27.7500 .
454 1 . . 1 49.00000 89.1042 1
456 . . 1 1 29.00000 7.8958 .
459 . 1 . . 50.00000 10.5000 .
460 . . 1 1 29.93737 7.7500 .
461 1 . . 1 48.00000 26.5500 .
463 1 . . 1 47.00000 38.5000 .
464 . 1 . 1 48.00000 13.0000 .
465 . . 1 1 29.93737 8.0500 .
466 . . 1 1 38.00000 7.0500 .
468 1 . . 1 56.00000 26.5500 .
470 . . 1 . 0.75000 19.2583 3
471 . . 1 1 29.93737 7.2500 .
472 . . 1 1 38.00000 8.6625 .
474 . 1 . . 23.00000 13.7917 .
475 . . 1 . 22.00000 9.8375 .
479 . . 1 1 22.00000 7.5208 .
480 . . 1 . 2.00000 12.2875 1
481 . . 1 1 9.00000 46.9000 7
484 . . 1 . 63.00000 9.5875 .
485 1 . . 1 25.00000 91.0792 1
486 . . 1 . 29.93737 25.4667 4
487 1 . . . 35.00000 90.0000 1
489 . . 1 1 30.00000 8.0500 .
491 . . 1 1 29.93737 19.9667 1
493 1 . . 1 55.00000 30.5000 .
494 1 . . 1 71.00000 49.5042 .
497 1 . . . 54.00000 78.2667 1
498 . . 1 1 29.93737 15.1000 .
499 1 . . . 25.00000 151.5500 3
500 . . 1 1 24.00000 7.7958 .
501 . . 1 1 17.00000 8.6625 .
502 . . 1 . 21.00000 7.7500 .
503 . . 1 . 29.93737 7.6292 .
504 . . 1 . 37.00000 9.5875 .
505 1 . . . 16.00000 86.5000 .
506 1 . . 1 18.00000 108.9000 1
507 . 1 . . 33.00000 26.0000 2
508 1 . . 1 29.93737 26.5500 .
509 . . 1 1 28.00000 22.5250 .
511 . . 1 1 29.00000 7.7500 .
512 . . 1 1 29.93737 8.0500 .
513 1 . . 1 36.00000 26.2875 .
514 1 . . . 54.00000 59.4000 1
516 1 . . 1 47.00000 34.0208 .
517 . 1 . . 34.00000 10.5000 .
518 . . 1 1 29.93737 24.1500 .
519 . 1 . . 36.00000 26.0000 1
521 1 . . . 30.00000 93.5000 .
522 . . 1 1 22.00000 7.8958 .
524 1 . . . 44.00000 57.9792 1
526 . . 1 1 40.50000 7.7500 .
528 1 . . 1 29.93737 221.7792 .
530 . 1 . 1 23.00000 11.5000 3
532 . . 1 1 29.93737 7.2292 .
533 . . 1 1 17.00000 7.2292 2
535 . . 1 . 30.00000 8.6625 .
536 . 1 . . 7.00000 26.2500 2
537 1 . . 1 45.00000 26.5500 .
538 1 . . . 30.00000 106.4250 .
541 1 . . . 36.00000 71.0000 2
542 . . 1 . 9.00000 31.2750 6
543 . . 1 . 11.00000 31.2750 6
544 . 1 . 1 32.00000 26.0000 1
545 1 . . 1 50.00000 106.4250 1
546 1 . . 1 64.00000 26.0000 .
547 . 1 . . 19.00000 26.0000 1
548 . 1 . 1 29.93737 13.8625 .
549 . . 1 1 33.00000 20.5250 2
552 . 1 . 1 27.00000 26.0000 .
553 . . 1 1 29.93737 7.8292 .
555 . . 1 . 22.00000 7.7750 .
556 1 . . 1 62.00000 26.5500 .
557 1 . . . 48.00000 39.6000 1
558 1 . . 1 29.93737 227.5250 .
559 1 . . . 39.00000 79.6500 2
560 . . 1 . 36.00000 17.4000 1
561 . . 1 1 29.93737 7.7500 .
563 . 1 . 1 28.00000 13.5000 .
564 . . 1 1 29.93737 8.0500 .
565 . . 1 . 29.93737 8.0500 .
567 . . 1 1 19.00000 7.8958 .
568 . . 1 . 29.00000 21.0750 4
569 . . 1 1 29.93737 7.2292 .
570 . . 1 1 32.00000 7.8542 .
573 1 . . 1 36.00000 26.3875 .
575 . . 1 1 16.00000 8.0500 .
576 . . 1 1 19.00000 14.5000 .
577 . 1 . . 34.00000 13.0000 .
578 1 . . . 39.00000 55.9000 1
579 . . 1 . 29.93737 14.4583 1
580 . . 1 1 32.00000 7.9250 .
581 . 1 . . 25.00000 30.0000 2
584 1 . . 1 36.00000 40.1250 .
585 . . 1 1 29.93737 8.7125 .
587 . 1 . 1 47.00000 15.0000 .
588 1 . . 1 60.00000 79.2000 2
590 . . 1 1 29.93737 8.0500 .
591 . . 1 1 35.00000 7.1250 .
592 1 . . . 52.00000 78.2667 1
593 . . 1 1 47.00000 7.2500 .
594 . . 1 . 29.93737 7.7500 2
595 . 1 . 1 37.00000 26.0000 1
596 . . 1 1 36.00000 24.1500 2
597 . 1 . . 29.93737 33.0000 .
598 . . 1 1 49.00000 . .
600 1 . . 1 49.00000 56.9292 1
601 . 1 . . 24.00000 27.0000 3
603 1 . . 1 29.93737 42.4000 .
605 1 . . 1 35.00000 26.5500 .
606 . . 1 1 36.00000 15.5500 1
608 1 . . 1 27.00000 30.5000 .
609 . 1 . . 22.00000 41.5792 3
610 1 . . . 40.00000 153.4625 .
611 . . 1 . 39.00000 31.2750 6
612 . . 1 1 29.93737 7.0500 .
613 . . 1 . 29.93737 15.5000 1
614 . . 1 1 29.93737 7.7500 .
615 . . 1 1 35.00000 8.0500 .
616 . 1 . . 24.00000 65.0000 3
617 . . 1 1 34.00000 14.4000 2
618 . . 1 . 26.00000 16.1000 1
619 . 1 . . 4.00000 39.0000 3
621 . . 1 1 27.00000 14.4542 1
622 1 . . 1 42.00000 52.5542 1
623 . . 1 1 20.00000 15.7417 2
624 . . 1 1 21.00000 7.8542 .
625 . . 1 1 21.00000 16.1000 .
626 1 . . 1 61.00000 32.3208 .
627 . 1 . 1 57.00000 12.3500 .
631 1 . . 1 80.00000 30.0000 .
633 1 . . 1 32.00000 30.5000 .
634 1 . . 1 29.93737 . .
635 . . 1 . 9.00000 27.9000 5
637 . . 1 1 32.00000 7.9250 .
638 . 1 . 1 31.00000 26.2500 2
639 . . 1 . 41.00000 39.6875 5
640 . . 1 1 29.93737 16.1000 1
641 . . 1 1 20.00000 7.8542 .
642 1 . . . 24.00000 69.3000 .
644 . . 1 1 29.93737 56.4958 .
645 . . 1 . 0.75000 19.2583 3
646 1 . . 1 48.00000 76.7292 1
647 . . 1 1 19.00000 7.8958 .
648 1 . . 1 56.00000 35.5000 .
649 . . 1 1 29.93737 7.5500 .
650 . . 1 . 23.00000 7.5500 .
651 . . 1 1 29.93737 7.8958 .
654 . . 1 . 29.93737 7.8292 .
655 . . 1 . 18.00000 6.7500 .
656 . 1 . 1 24.00000 73.5000 2
658 . . 1 . 32.00000 15.5000 2
659 . 1 . 1 23.00000 13.0000 .
661 1 . . 1 50.00000 133.6500 2
662 . . 1 1 40.00000 7.2250 .
663 1 . . 1 47.00000 25.5875 .
667 . 1 . 1 25.00000 13.0000 .
668 . . 1 1 29.93737 7.7750 .
670 1 . . . 29.93737 52.0000 1
671 . 1 . . 40.00000 39.0000 2
674 . 1 . 1 31.00000 13.0000 .
677 . . 1 1 24.50000 8.0500 .
678 . . 1 . 18.00000 9.8417 .
679 . . 1 . 43.00000 46.9000 7
681 . . 1 . 29.93737 8.1375 .
682 1 . . 1 27.00000 76.7292 .
683 . . 1 1 20.00000 9.2250 .
687 . . 1 1 14.00000 39.6875 5
689 . . 1 1 18.00000 7.7958 .
690 1 . . . 15.00000 211.3375 1
691 1 . . 1 31.00000 57.0000 1
692 . . 1 . 4.00000 13.4167 1
693 . . 1 1 29.93737 56.4958 .
694 . . 1 1 25.00000 7.2250 .
695 1 . . 1 60.00000 26.5500 .
699 1 . . 1 49.00000 110.8833 2
701 1 . . . 18.00000 227.5250 1
702 1 . . 1 35.00000 26.2875 .
703 . . 1 . 18.00000 14.4542 1
704 . . 1 1 25.00000 7.7417 .
705 . . 1 1 26.00000 7.8542 1
708 1 . . 1 42.00000 26.2875 .
709 1 . . . 22.00000 151.5500 .
710 . . 1 1 29.93737 15.2458 2
712 1 . . 1 29.93737 26.5500 .
713 1 . . 1 48.00000 52.0000 1
714 . . 1 1 29.00000 9.4833 .
716 . . 1 1 19.00000 7.6500 .
717 1 . . . 38.00000 227.5250 .
718 . 1 . . 27.00000 10.5000 .
719 . . 1 1 29.93737 15.5000 .
720 . . 1 1 33.00000 7.7750 .
721 . 1 . . 6.00000 33.0000 1
723 . 1 . 1 34.00000 13.0000 .
725 1 . . 1 27.00000 53.1000 1
726 . . 1 1 20.00000 8.6625 .
728 . . 1 . 29.93737 7.7375 .
729 . 1 . 1 25.00000 26.0000 1
730 . . 1 . 25.00000 7.9250 1
732 . . 1 1 11.00000 18.7875 .
735 . 1 . 1 23.00000 13.0000 .
736 . . 1 1 28.50000 16.1000 .
737 . . 1 . 48.00000 34.3750 4
738 1 . . 1 35.00000 512.3292 .
739 . . 1 1 29.93737 7.8958 .
740 . . 1 1 29.93737 7.8958 .
742 1 . . 1 36.00000 78.8500 1
743 1 . . . 21.00000 262.3750 4
744 . . 1 1 24.00000 16.1000 1
745 . . 1 1 31.00000 7.9250 .
749 1 . . 1 19.00000 53.1000 1
750 . . 1 1 31.00000 7.7500 .
752 . . 1 1 6.00000 12.4750 1
753 . . 1 1 33.00000 9.5000 .
754 . . 1 1 23.00000 7.8958 .
755 . 1 . . 48.00000 65.0000 3
757 . . 1 1 28.00000 7.7958 .
759 . . 1 1 34.00000 8.0500 .
760 1 . . . 33.00000 86.5000 .
762 . . 1 1 41.00000 7.1250 .
763 . . 1 1 20.00000 7.2292 .
764 1 . . . 36.00000 120.0000 3
766 1 . . . 51.00000 77.9583 1
767 1 . . 1 29.93737 39.6000 .
768 . . 1 . 30.50000 7.7500 .
769 . . 1 1 29.93737 24.1500 1
770 . . 1 1 32.00000 8.3625 .
771 . . 1 1 24.00000 9.5000 .
773 . 1 . . 57.00000 10.5000 .
774 . . 1 1 29.93737 7.2250 .
777 . . 1 1 29.93737 7.7500 .
778 . . 1 . 5.00000 12.4750 .
780 1 . . . 43.00000 211.3375 1
781 . . 1 . 13.00000 7.2292 .
782 1 . . . 17.00000 57.0000 1
783 1 . . 1 29.00000 30.0000 .
784 . . 1 1 29.93737 23.4500 3
786 . . 1 1 25.00000 7.2500 .
789 . . 1 1 1.00000 20.5750 3
790 1 . . 1 46.00000 79.2000 .
791 . . 1 1 29.93737 7.7500 .
792 . 1 . 1 16.00000 26.0000 .
793 . . 1 . 29.93737 69.5500 10
794 1 . . 1 29.93737 30.6958 .
795 . . 1 1 25.00000 7.8958 .
796 . 1 . 1 39.00000 13.0000 .
797 1 . . . 49.00000 25.9292 .
799 . . 1 1 30.00000 7.2292 .
800 . . 1 . 30.00000 24.1500 2
801 . 1 . 1 34.00000 13.0000 .
803 1 . . 1 11.00000 120.0000 3
804 . . 1 1 0.42000 8.5167 1
806 . . 1 1 31.00000 7.7750 .
808 . . 1 . 18.00000 7.7750 .
811 . . 1 1 26.00000 7.8875 .
812 . . 1 1 39.00000 24.1500 .
813 . 1 . 1 35.00000 10.5000 .
815 . . 1 1 30.50000 8.0500 .
816 1 . . 1 29.93737 . .
817 . . 1 . 23.00000 7.9250 .
819 . . 1 1 43.00000 6.4500 .
822 . . 1 1 27.00000 8.6625 .
823 1 . . 1 38.00000 . .
824 . . 1 . 27.00000 12.4750 1
825 . . 1 1 2.00000 39.6875 5
826 . . 1 1 29.93737 6.9500 .
827 . . 1 1 29.93737 56.4958 .
828 . 1 . 1 1.00000 37.0042 2
831 . . 1 . 15.00000 14.4542 1
832 . 1 . 1 0.83000 18.7500 2
833 . . 1 1 29.93737 7.2292 .
835 . . 1 1 18.00000 8.3000 .
836 1 . . . 39.00000 83.1583 2
838 . . 1 1 29.93737 8.0500 .
840 1 . . 1 29.93737 29.7000 .
843 1 . . . 30.00000 31.0000 .
845 . . 1 1 17.00000 8.6625 .
846 . . 1 1 42.00000 7.5500 .
847 . . 1 1 29.93737 69.5500 10
849 . 1 . 1 28.00000 33.0000 1
850 1 . . . 29.93737 89.1042 1
851 . . 1 1 4.00000 31.2750 6
852 . . 1 1 74.00000 7.7750 .
853 . . 1 . 9.00000 15.2458 2
855 . 1 . . 44.00000 26.0000 1
856 . . 1 . 18.00000 9.3500 1
857 1 . . . 45.00000 164.8667 2
858 1 . . 1 51.00000 26.5500 .
859 . . 1 . 24.00000 19.2583 3
860 . . 1 1 29.93737 7.2292 .
861 . . 1 1 41.00000 14.1083 2
862 . 1 . 1 21.00000 11.5000 1
864 . . 1 . 29.93737 69.5500 10
865 . 1 . 1 24.00000 13.0000 .
867 . 1 . . 27.00000 13.8583 1
868 1 . . 1 31.00000 50.4958 .
871 . . 1 1 26.00000 7.8958 .
872 1 . . . 47.00000 52.5542 2
874 . . 1 1 47.00000 9.0000 .
877 . . 1 1 20.00000 9.8458 .
878 . . 1 1 19.00000 7.8958 .
879 . . 1 1 29.93737 7.8958 .
880 1 . . . 56.00000 83.1583 1
881 . 1 . . 25.00000 26.0000 1
882 . . 1 1 33.00000 7.8958 .
883 . . 1 . 22.00000 10.5167 .
885 . . 1 1 25.00000 7.0500 .
886 . . 1 . 39.00000 29.1250 5
887 . 1 . 1 27.00000 13.0000 .
888 1 . . . 19.00000 30.0000 .
889 . . 1 . 29.93737 23.4500 3
<- sparse.model.matrix(Survived ~.-1, # Survived Target으로 제외
testm data = titanic.ted.Imp)
testm
266 x 7 sparse Matrix of class "dgCMatrix"
Pclass1 Pclass2 Pclass3 Sexmale Age Fare FamSize
2 1 . . . 38.00000 71.2833 1
7 1 . . 1 54.00000 51.8625 .
13 . . 1 1 20.00000 8.0500 .
16 . 1 . . 55.00000 16.0000 .
17 . . 1 1 2.00000 29.1250 5
22 . 1 . 1 34.00000 13.0000 .
23 . . 1 . 15.00000 8.0292 .
26 . . 1 . 38.00000 31.3875 6
37 . . 1 1 29.93737 7.2292 .
44 . 1 . . 3.00000 41.5792 3
46 . . 1 1 29.93737 8.0500 .
52 . . 1 1 21.00000 7.8000 .
54 . 1 . . 29.00000 26.0000 1
57 . 1 . . 21.00000 10.5000 .
58 . . 1 1 28.50000 7.2292 .
59 . 1 . . 5.00000 27.7500 3
63 1 . . 1 45.00000 83.4750 1
66 . . 1 1 29.93737 15.2458 2
67 . 1 . . 29.00000 10.5000 .
68 . . 1 1 19.00000 8.1583 .
69 . . 1 . 17.00000 7.9250 6
71 . 1 . 1 32.00000 10.5000 .
73 . 1 . 1 21.00000 73.5000 .
78 . . 1 1 29.93737 8.0500 .
81 . . 1 1 22.00000 9.0000 .
87 . . 1 1 16.00000 34.3750 4
90 . . 1 1 24.00000 8.0500 .
98 1 . . 1 23.00000 63.3583 1
99 . 1 . . 34.00000 23.0000 1
100 . 1 . 1 34.00000 26.0000 1
101 . . 1 . 28.00000 7.8958 .
102 . . 1 1 29.93737 7.8958 .
104 . . 1 1 33.00000 8.6542 .
106 . . 1 1 28.00000 7.8958 .
109 . . 1 1 38.00000 7.8958 .
118 . 1 . 1 29.00000 21.0000 1
120 . . 1 . 2.00000 31.2750 6
121 . 1 . 1 21.00000 73.5000 2
123 . 1 . 1 32.50000 30.0708 1
124 . 1 . . 32.50000 13.0000 .
127 . . 1 1 29.93737 7.7500 .
133 . . 1 . 47.00000 14.5000 1
135 . 1 . 1 25.00000 13.0000 .
137 1 . . . 19.00000 26.2833 2
139 . . 1 1 16.00000 9.2167 .
140 1 . . 1 24.00000 79.2000 .
144 . . 1 1 19.00000 6.7500 .
145 . 1 . 1 18.00000 11.5000 .
152 1 . . . 22.00000 66.6000 1
155 . . 1 1 29.93737 7.3125 .
159 . . 1 1 29.93737 8.6625 .
161 . . 1 1 44.00000 16.1000 1
165 . . 1 1 1.00000 39.6875 5
166 . . 1 1 9.00000 20.5250 2
168 . . 1 . 45.00000 27.9000 5
170 . . 1 1 28.00000 56.4958 .
172 . . 1 1 4.00000 29.1250 5
175 1 . . 1 56.00000 30.6958 .
177 . . 1 1 29.93737 25.4667 4
178 1 . . . 50.00000 28.7125 .
183 . . 1 1 9.00000 31.3875 6
186 1 . . 1 29.93737 50.0000 .
187 . . 1 . 29.93737 15.5000 1
193 . . 1 . 19.00000 7.8542 1
195 1 . . . 44.00000 27.7208 .
201 . . 1 1 28.00000 9.5000 .
208 . . 1 1 26.00000 18.7875 .
210 1 . . 1 40.00000 31.0000 .
215 . . 1 1 29.93737 7.7500 1
221 . . 1 1 16.00000 8.0500 .
222 . 1 . 1 27.00000 13.0000 .
225 1 . . 1 38.00000 90.0000 1
228 . . 1 1 20.50000 7.2500 .
231 1 . . . 35.00000 83.4750 1
234 . . 1 . 5.00000 31.3875 6
239 . 1 . 1 19.00000 10.5000 .
241 . . 1 . 29.93737 14.4542 1
250 . 1 . 1 54.00000 26.0000 1
251 . . 1 1 29.93737 7.2500 .
256 . . 1 . 29.00000 15.2458 2
260 . 1 . . 50.00000 26.0000 1
261 . . 1 1 29.93737 7.7500 .
263 1 . . 1 52.00000 79.6500 2
268 . . 1 1 25.00000 7.7750 1
271 1 . . 1 29.93737 31.0000 .
272 . . 1 1 25.00000 . .
274 1 . . 1 37.00000 29.7000 1
277 . . 1 . 45.00000 7.7500 .
279 . . 1 1 7.00000 29.1250 5
282 . . 1 1 28.00000 7.8542 .
283 . . 1 1 16.00000 9.5000 .
284 . . 1 1 19.00000 8.0500 .
295 . . 1 1 24.00000 7.8958 .
301 . . 1 . 29.93737 7.7500 .
308 1 . . . 17.00000 108.9000 1
310 1 . . . 30.00000 56.9292 .
312 1 . . . 18.00000 262.3750 4
313 . 1 . . 26.00000 26.0000 2
314 . . 1 1 28.00000 7.8958 .
318 . 1 . 1 54.00000 14.0000 .
321 . . 1 1 22.00000 7.2500 .
326 1 . . . 36.00000 135.6333 .
328 . 1 . . 36.00000 13.0000 .
333 1 . . 1 38.00000 153.4625 1
334 . . 1 1 16.00000 18.0000 2
338 1 . . . 41.00000 134.5000 .
344 . 1 . 1 25.00000 13.0000 .
347 . 1 . . 40.00000 13.0000 .
351 . . 1 1 23.00000 9.2250 .
358 . 1 . . 38.00000 13.0000 .
359 . . 1 . 29.93737 7.8792 .
364 . . 1 1 35.00000 7.0500 .
369 . . 1 . 29.93737 7.7500 .
375 . . 1 . 3.00000 21.0750 4
378 1 . . 1 27.00000 211.5000 2
380 . . 1 1 19.00000 7.7750 .
400 . 1 . . 28.00000 12.6500 .
403 . . 1 . 21.00000 9.8250 1
409 . . 1 1 21.00000 7.7750 .
412 . . 1 1 29.93737 6.8583 .
413 1 . . . 33.00000 90.0000 1
415 . . 1 1 44.00000 7.9250 .
416 . . 1 . 29.93737 8.0500 .
418 . 1 . . 18.00000 13.0000 2
419 . 1 . 1 30.00000 13.0000 .
420 . . 1 . 10.00000 24.1500 2
424 . . 1 . 28.00000 14.4000 2
427 . 1 . . 28.00000 26.0000 1
430 . . 1 1 32.00000 8.0500 .
436 1 . . . 14.00000 120.0000 3
440 . 1 . 1 31.00000 10.5000 .
441 . 1 . . 45.00000 26.2500 2
442 . . 1 1 20.00000 9.5000 .
445 . . 1 1 29.93737 8.1125 .
447 . 1 . . 13.00000 19.5000 1
448 1 . . 1 34.00000 26.5500 .
450 1 . . 1 52.00000 30.5000 .
452 . . 1 1 29.93737 19.9667 1
455 . . 1 1 29.93737 8.0500 .
457 1 . . 1 65.00000 26.5500 .
458 1 . . . 29.93737 51.8625 1
462 . . 1 1 34.00000 8.0500 .
467 . 1 . 1 29.93737 . .
469 . . 1 1 29.93737 7.7250 .
473 . 1 . . 33.00000 27.7500 3
476 1 . . 1 29.93737 52.0000 .
477 . 1 . 1 34.00000 21.0000 1
478 . . 1 1 29.00000 7.0458 1
482 . 1 . 1 29.93737 . .
483 . . 1 1 50.00000 8.0500 .
488 1 . . 1 58.00000 29.7000 .
490 . . 1 1 9.00000 15.9000 2
492 . . 1 1 21.00000 7.2500 .
495 . . 1 1 21.00000 8.0500 .
496 . . 1 1 29.93737 14.4583 .
510 . . 1 1 26.00000 56.4958 .
515 . . 1 1 24.00000 7.4958 .
520 . . 1 1 32.00000 7.8958 .
523 . . 1 1 29.93737 7.2250 .
525 . . 1 1 29.93737 7.2292 .
527 . 1 . . 50.00000 10.5000 .
529 . . 1 1 39.00000 7.9250 .
531 . 1 . . 2.00000 26.0000 2
534 . . 1 . 29.93737 22.3583 2
539 . . 1 1 29.93737 14.5000 .
540 1 . . . 22.00000 49.5000 2
550 . 1 . 1 8.00000 36.7500 2
551 1 . . 1 17.00000 110.8833 2
554 . . 1 1 22.00000 7.2250 .
562 . . 1 1 40.00000 7.8958 .
566 . . 1 1 24.00000 24.1500 2
571 . 1 . 1 62.00000 10.5000 .
572 1 . . . 53.00000 51.4792 2
574 . . 1 . 29.93737 7.7500 .
582 1 . . . 39.00000 110.8833 2
583 . 1 . 1 54.00000 26.0000 .
586 1 . . . 18.00000 79.6500 2
589 . . 1 1 22.00000 8.0500 .
599 . . 1 1 29.93737 7.2250 .
602 . . 1 1 29.93737 7.8958 .
604 . . 1 1 44.00000 8.0500 .
607 . . 1 1 30.00000 7.8958 .
620 . 1 . 1 26.00000 10.5000 .
628 1 . . . 21.00000 77.9583 .
629 . . 1 1 26.00000 7.8958 .
630 . . 1 1 29.93737 7.7333 .
632 . . 1 1 51.00000 7.0542 .
636 . 1 . . 28.00000 13.0000 .
643 . . 1 . 2.00000 27.9000 5
652 . 1 . . 18.00000 23.0000 1
653 . . 1 1 21.00000 8.4333 .
657 . . 1 1 29.93737 7.8958 .
660 1 . . 1 58.00000 113.2750 2
664 . . 1 1 36.00000 7.4958 .
665 . . 1 1 20.00000 7.9250 1
666 . 1 . 1 32.00000 73.5000 2
669 . . 1 1 43.00000 8.0500 .
672 1 . . 1 31.00000 52.0000 1
673 . 1 . 1 70.00000 10.5000 .
675 . 1 . 1 29.93737 . .
676 . . 1 1 18.00000 7.7750 .
680 1 . . 1 36.00000 512.3292 1
684 . . 1 1 14.00000 46.9000 7
685 . 1 . 1 60.00000 39.0000 2
686 . 1 . 1 25.00000 41.5792 3
688 . . 1 1 19.00000 10.1708 .
696 . 1 . 1 52.00000 13.5000 .
697 . . 1 1 44.00000 8.0500 .
698 . . 1 . 29.93737 7.7333 .
700 . . 1 1 42.00000 7.6500 .
706 . 1 . 1 39.00000 26.0000 .
707 . 1 . . 45.00000 13.5000 .
711 1 . . . 24.00000 49.5042 .
715 . 1 . 1 52.00000 13.0000 .
722 . . 1 1 17.00000 7.0542 1
724 . 1 . 1 50.00000 13.0000 .
727 . 1 . . 30.00000 21.0000 3
731 1 . . . 29.00000 211.3375 .
733 . 1 . 1 29.93737 . .
734 . 1 . 1 23.00000 13.0000 .
741 1 . . 1 29.93737 30.0000 .
746 1 . . 1 70.00000 71.0000 2
747 . . 1 1 16.00000 20.2500 2
748 . 1 . . 30.00000 13.0000 .
751 . 1 . . 4.00000 23.0000 2
756 . 1 . 1 0.67000 14.5000 2
758 . 1 . 1 18.00000 11.5000 .
761 . . 1 1 29.93737 14.5000 .
765 . . 1 1 16.00000 7.7750 .
772 . . 1 1 48.00000 7.8542 .
775 . 1 . . 54.00000 23.0000 4
776 . . 1 1 18.00000 7.7500 .
779 . . 1 1 29.93737 7.7375 .
785 . . 1 1 25.00000 7.0500 .
787 . . 1 . 18.00000 7.4958 .
788 . . 1 1 8.00000 29.1250 5
798 . . 1 . 31.00000 8.6833 .
802 . 1 . . 31.00000 26.2500 2
805 . . 1 1 27.00000 6.9750 .
807 1 . . 1 39.00000 . .
809 . 1 . 1 39.00000 13.0000 .
810 1 . . . 33.00000 53.1000 1
814 . . 1 . 6.00000 31.2750 6
818 . 1 . 1 31.00000 37.0042 2
820 . . 1 1 10.00000 27.9000 5
821 1 . . . 52.00000 93.5000 2
829 . . 1 1 29.93737 7.7500 .
830 1 . . . 62.00000 80.0000 .
834 . . 1 1 23.00000 7.8542 .
837 . . 1 1 21.00000 8.6625 .
839 . . 1 1 32.00000 56.4958 .
841 . . 1 1 20.00000 7.9250 .
842 . 1 . 1 16.00000 10.5000 .
844 . . 1 1 34.50000 6.4375 .
848 . . 1 1 35.00000 7.8958 .
854 1 . . . 16.00000 39.4000 1
863 1 . . . 48.00000 25.9292 .
866 . 1 . . 42.00000 13.0000 .
869 . . 1 1 29.93737 9.5000 .
870 . . 1 1 4.00000 11.1333 2
873 1 . . 1 33.00000 5.0000 .
875 . 1 . . 28.00000 24.0000 1
876 . . 1 . 15.00000 7.2250 .
884 . 1 . 1 28.00000 10.5000 .
890 1 . . 1 26.00000 30.0000 .
891 . . 1 1 32.00000 7.7500 .
# 2. Convert Factor Var. into Numeric Var. for Target
<- as.numeric( as.character( titanic.trd.Imp$Survived ))
train.y
train.y
[1] 0 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1
[98] 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0
[195] 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0
[292] 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1
[389] 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1
[486] 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1
[583] 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0
# 3. Convert to xgb.DMatrix object
<- xgb.DMatrix(data = as.matrix(trainm),
train_matrix label = train.y)
train_matrix
xgb.DMatrix dim: 625 x 7 info: label colnames: yes
<- xgb.DMatrix(data = as.matrix(testm))
test_matrix
test_matrix
xgb.DMatrix dim: 266 x 7 info: NA colnames: yes
set.seed(100) # Seed 고정 -> 동일한 결과를 출력하기 위해
<- xgb.train(data = train_matrix,
titanic.xgb watchlist = list(train = train_matrix), # 모형 구축하는 동안 오차를 계산하기 위해
nrounds = 50, # nrounds : 반복 수(= 생성하고자 하는 트리 개수)
params = list(objective = "binary:logistic", # 손실함수
eta = 0.01, # 학습률
gamma = 0, # 분할하기 위해 필요한 최소 손실 감소/ 클수록 분할이 쉽게 일어나지 않음
max_depth = 5, # 트리의 최대 깊이
min_child_weight = 1, # 분할하기 위해 필요한 case의 최소 가중치 합/ 클수록 분할이 쉽게 일어나지 않음
subsample = 1, # 트리를 생성할 때 Dataset으로부터 사용할 case 비율
lambda = 1), # 규제항
early_stopping_rounds = 10) # 만약 10번 이후의 반복에서 손실이 개선되지 않으면 조기 종료
[1] train-logloss:0.688079
Will train until train_logloss hasn't improved in 10 rounds.
[2] train-logloss:0.683130
[3] train-logloss:0.678273
[4] train-logloss:0.673507
[5] train-logloss:0.668828
[6] train-logloss:0.664236
[7] train-logloss:0.659727
[8] train-logloss:0.655300
[9] train-logloss:0.650952
[10] train-logloss:0.646683
[11] train-logloss:0.642489
[12] train-logloss:0.638370
[13] train-logloss:0.634324
[14] train-logloss:0.630348
[15] train-logloss:0.626442
[16] train-logloss:0.622604
[17] train-logloss:0.618832
[18] train-logloss:0.615125
[19] train-logloss:0.611482
[20] train-logloss:0.607900
[21] train-logloss:0.604354
[22] train-logloss:0.600892
[23] train-logloss:0.597488
[24] train-logloss:0.594115
[25] train-logloss:0.590823
[26] train-logloss:0.587585
[27] train-logloss:0.584375
[28] train-logloss:0.581246
[29] train-logloss:0.578169
[30] train-logloss:0.575088
[31] train-logloss:0.572083
[32] train-logloss:0.569150
[33] train-logloss:0.566249
[34] train-logloss:0.563356
[35] train-logloss:0.560515
[36] train-logloss:0.557747
[37] train-logloss:0.554994
[38] train-logloss:0.552294
[39] train-logloss:0.549525
[40] train-logloss:0.546895
[41] train-logloss:0.544207
[42] train-logloss:0.541557
[43] train-logloss:0.539005
[44] train-logloss:0.536474
[45] train-logloss:0.533901
[46] train-logloss:0.531511
[47] train-logloss:0.529220
[48] train-logloss:0.526885
[49] train-logloss:0.524640
[50] train-logloss:0.522387
# Training Error Plot
plot(titanic.xgb$evaluation_log$train_logloss,
col = "blue",
type = "l",
xlab = "iter",
ylab = "Error")
# 변수 중요도
<- xgb.importance(feature_names = colnames(trainm), model = titanic.xgb)
importance
importance
Feature Gain Cover Frequency
<char> <num> <num> <num>
1: Sexmale 0.53265933 0.24761708 0.07331378
2: Pclass3 0.16199525 0.09080070 0.07771261
3: FamSize 0.10389248 0.06846369 0.22727273
4: Age 0.09835220 0.22891257 0.22873900
5: Pclass1 0.06029680 0.13526143 0.06598240
6: Fare 0.04280394 0.22894454 0.32697947
# 변수 중요도 plot
xgb.plot.importance(importance_matrix = importance)
Result!
변수 Sexmale
이 Target Survived
을 분류하는 데 있어 중요하다.
17.7 모형 평가
Caution!
모형 평가를 위해 Test Dataset
에 대한 예측 class/확률
이 필요하며, 함수 predict()
를 이용하여 생성한다.
# "Survived = 1"에 대한 예측 확률 생성
<- predict(titanic.xgb,
test.xgb.prob newdata = test_matrix) # Test Dataset including Only 예측 변수
%>%
test.xgb.prob as_tibble
# A tibble: 266 × 1
value
<dbl>
1 0.676
2 0.442
3 0.342
4 0.653
5 0.420
6 0.342
7 0.497
8 0.331
9 0.342
10 0.636
# ℹ 256 more rows
17.7.1 ConfusionMatrix
# 예측 class 생성
<- 0.5 # Cutoff Value
cv <- as.factor(ifelse(test.xgb.prob > cv, "1", "0")) # 예측 확률 > cv이면 "Survived = 1" 아니면 "Survived = 0"
test.xgb.class
%>%
test.xgb.class as_tibble
# A tibble: 266 × 1
value
<fct>
1 1
2 0
3 0
4 1
5 0
6 0
7 0
8 0
9 0
10 1
# ℹ 256 more rows
<- caret::confusionMatrix(test.xgb.class, titanic.ted.Imp$Survived,
CM positive = "1") # confusionMatrix(예측 class, 실제 class, positive = "관심 class")
CM
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 156 33
1 8 69
Accuracy : 0.8459
95% CI : (0.7968, 0.8871)
No Information Rate : 0.6165
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.6582
Mcnemar's Test P-Value : 0.0001781
Sensitivity : 0.6765
Specificity : 0.9512
Pos Pred Value : 0.8961
Neg Pred Value : 0.8254
Prevalence : 0.3835
Detection Rate : 0.2594
Detection Prevalence : 0.2895
Balanced Accuracy : 0.8138
'Positive' Class : 1
17.7.2 ROC 곡선
<- titanic.ted.Imp$Survived # Test Dataset의 실제 class
ac <- as.numeric(test.xgb.prob) # 예측 확률을 수치형으로 변환 pp
17.7.2.1 Package “pROC”
::p_load("pROC")
pacman
<- roc(ac, pp, plot = T, col = "gray") # roc(실제 class, 예측 확률)
xgb.roc <- round(auc(xgb.roc), 3)
auc legend("bottomright", legend = auc, bty = "n")
Caution!
Package "pROC"
를 통해 출력한 ROC 곡선은 다양한 함수를 이용해서 그래프를 수정할 수 있다.
# 함수 plot.roc() 이용
plot.roc(xgb.roc,
col="gray", # Line Color
print.auc = TRUE, # AUC 출력 여부
print.auc.col = "red", # AUC 글씨 색깔
print.thres = TRUE, # Cutoff Value 출력 여부
print.thres.pch = 19, # Cutoff Value를 표시하는 도형 모양
print.thres.col = "red", # Cutoff Value를 표시하는 도형의 색깔
auc.polygon = TRUE, # 곡선 아래 면적에 대한 여부
auc.polygon.col = "gray90") # 곡선 아래 면적의 색깔
# 함수 ggroc() 이용
ggroc(xgb.roc) +
annotate(geom = "text", x = 0.9, y = 1.0,
label = paste("AUC = ", auc),
size = 5,
color="red") +
theme_bw()
17.7.2.2 Package “Epi”
::p_load("Epi")
pacman# install_version("etm", version = "1.1", repos = "http://cran.us.r-project.org")
ROC(pp, ac, plot = "ROC") # ROC(예측 확률, 실제 class)
17.7.2.3 Package “ROCR”
::p_load("ROCR")
pacman
<- prediction(pp, ac) # prediction(예측 확률, 실제 class)
xgb.pred
<- performance(xgb.pred, "tpr", "fpr") # performance(, "민감도", "1-특이도")
xgb.perf plot(xgb.perf, col = "gray") # ROC Curve
<- performance(xgb.pred, "auc") # AUC
perf.auc <- attributes(perf.auc)$y.values
auc legend("bottomright", legend = auc, bty = "n")
17.7.3 향상 차트
17.7.3.1 Package “ROCR”
<- performance(xgb.pred, "lift", "rpp") # Lift Chart
xgb.perf plot(xgb.perf, main = "lift curve",
colorize = T, # Coloring according to cutoff
lwd = 2)