타이타닉 생존자 예측

Taixi·2024년 9월 20일

생성형 AI 교육

목록 보기
13/35

1. 데이터 환경

2. 데이터 로드

3. 데이터 준비

  • 이름을 토큰화할것입니다. "Braund, 미스터 오웬 해리스"는 [[Braund, 미스터 오웬 해리스], "미스터", "오웬", "해리스"]가 됩니다.

  • 추가 : Name : 이름

4. Pandas데이터세트를 TensorFlow데이터 세트로 변환

5. 모델 훈련

6. 모델 개선 훈련

7. 모델 확인해보기

model.summary()
Model: "gradient_boosted_trees_model_1"


Layer (type) Output Shape Param

=================================================================
Total params: 1 (1.00 Byte)
Trainable params: 0 (0.00 Byte)
Non-trainable params: 1 (1.00 Byte)


Type: "GRADIENT_BOOSTED_TREES"
Task: CLASSIFICATION
Label: "__LABEL"

Input Features (11):
Age
Cabin
Embarked
Fare
Name
Parch
Pclass
Sex
SibSp
Ticket_item
Ticket_number

No weights

Variable Importance: INV_MEAN_MIN_DEPTH:
1. "Sex" 0.805245 ################
2. "Age" 0.372369 #####
3. "Fare" 0.273026 ##
4. "Name" 0.187307
5. "Pclass" 0.180805
6. "Ticket_item" 0.178416
7. "Ticket_number" 0.178366
8. "Parch" 0.177684
9. "Embarked" 0.176070
10. "SibSp" 0.172557

Variable Importance: NUM_AS_ROOT:
1. "Sex" 34.000000 ################
2. "Name" 2.000000

Variable Importance: NUM_NODES:
1. "Age" 428.000000 ################
2. "Fare" 278.000000 ##########
3. "Name" 55.000000 #
4. "Ticket_item" 38.000000 #
5. "Sex" 36.000000 #
6. "Ticket_number" 23.000000
7. "Parch" 19.000000
8. "Pclass" 10.000000
9. "Embarked" 9.000000
10. "SibSp" 4.000000

Variable Importance: SUM_SCORE:
1. "Sex" 461.523208 ################
2. "Age" 378.019156 #############
3. "Fare" 275.230253 #########
4. "Name" 118.343331 ####
5. "Pclass" 36.228439 #
6. "Parch" 23.516134
7. "Ticket_item" 21.838539
8. "Ticket_number" 17.217955
9. "Embarked" 7.074696
10. "SibSp" 0.400482

Loss: BINOMIAL_LOG_LIKELIHOOD
Validation loss value: 1.04625
Number of trees per iteration: 1
Node format: NOT_SET
Number of trees: 36
Total number of nodes: 1836

Number of nodes by tree:
Count: 36 Average: 51 StdDev: 4.49691

Min: 41 Max: 61 Ignored: 0

[ 41, 42) 1 2.78% 2.78% #
[ 42, 43) 0 0.00% 2.78%
[ 43, 44) 1 2.78% 5.56% #
[ 44, 45) 0 0.00% 5.56%
[ 45, 46) 3 8.33% 13.89% ###
[ 46, 47) 0 0.00% 13.89%
[ 47, 48) 5 13.89% 27.78% #####
[ 48, 49) 0 0.00% 27.78%
[ 49, 50) 3 8.33% 36.11% ###
[ 50, 51) 0 0.00% 36.11%
[ 51, 52) 10 27.78% 63.89% ##########
[ 52, 53) 0 0.00% 63.89%
[ 53, 54) 3 8.33% 72.22% ###
[ 54, 55) 0 0.00% 72.22%
[ 55, 56) 5 13.89% 86.11% #####
[ 56, 57) 0 0.00% 86.11%
[ 57, 58) 3 8.33% 94.44% ###
[ 58, 59) 0 0.00% 94.44%
[ 59, 60) 1 2.78% 97.22% #
[ 60, 61] 1 2.78% 100.00% #

Depth by leafs:
Count: 936 Average: 4.81624 StdDev: 0.493973

Min: 3 Max: 5 Ignored: 0

[ 3, 4) 44 4.70% 4.70% #
[ 4, 5) 84 8.97% 13.68% #
[ 5, 5] 808 86.32% 100.00% ##########

Number of training obs by leaf:
Count: 936 Average: 30.7308 StdDev: 73.3279

Min: 1 Max: 458 Ignored: 0

[ 1, 23) 723 77.24% 77.24% ##########
[ 23, 46) 71 7.59% 84.83% #
[ 46, 69) 42 4.49% 89.32% #
[ 69, 92) 20 2.14% 91.45%
[ 92, 115) 2 0.21% 91.67%
[ 115, 138) 7 0.75% 92.41%
[ 138, 161) 27 2.88% 95.30%
[ 161, 184) 8 0.85% 96.15%
[ 184, 207) 2 0.21% 96.37%
[ 207, 230) 4 0.43% 96.79%
[ 230, 252) 2 0.21% 97.01%
[ 252, 275) 0 0.00% 97.01%
[ 275, 298) 0 0.00% 97.01%
[ 298, 321) 1 0.11% 97.12%
[ 321, 344) 0 0.00% 97.12%
[ 344, 367) 5 0.53% 97.65%
[ 367, 390) 11 1.18% 98.82%
[ 390, 413) 4 0.43% 99.25%
[ 413, 436) 6 0.64% 99.89%
[ 436, 458] 1 0.11% 100.00%

Attribute in nodes:
428 : Age [NUMERICAL]
278 : Fare [NUMERICAL]
55 : Name [CATEGORICAL_SET]
38 : Ticket_item [CATEGORICAL]
36 : Sex [CATEGORICAL]
23 : Ticket_number [CATEGORICAL]
19 : Parch [NUMERICAL]
10 : Pclass [NUMERICAL]
9 : Embarked [CATEGORICAL]
4 : SibSp [NUMERICAL]

Attribute in nodes with depth <= 0:
34 : Sex [CATEGORICAL]
2 : Name [CATEGORICAL_SET]

Attribute in nodes with depth <= 1:
44 : Age [NUMERICAL]
34 : Sex [CATEGORICAL]
21 : Fare [NUMERICAL]
5 : Pclass [NUMERICAL]
2 : Name [CATEGORICAL_SET]
1 : Ticket_number [CATEGORICAL]
1 : Parch [NUMERICAL]

Attribute in nodes with depth <= 2:
111 : Age [NUMERICAL]
75 : Fare [NUMERICAL]
35 : Sex [CATEGORICAL]
7 : Name [CATEGORICAL_SET]
6 : Parch [NUMERICAL]
5 : Pclass [NUMERICAL]
5 : Embarked [CATEGORICAL]
4 : Ticket_number [CATEGORICAL]
4 : Ticket_item [CATEGORICAL]

Attribute in nodes with depth <= 3:
239 : Age [NUMERICAL]
155 : Fare [NUMERICAL]
36 : Sex [CATEGORICAL]
18 : Name [CATEGORICAL_SET]
13 : Ticket_number [CATEGORICAL]
12 : Ticket_item [CATEGORICAL]
10 : Parch [NUMERICAL]
6 : Pclass [NUMERICAL]
6 : Embarked [CATEGORICAL]
1 : SibSp [NUMERICAL]

Attribute in nodes with depth <= 5:
428 : Age [NUMERICAL]
278 : Fare [NUMERICAL]
55 : Name [CATEGORICAL_SET]
38 : Ticket_item [CATEGORICAL]
36 : Sex [CATEGORICAL]
23 : Ticket_number [CATEGORICAL]
19 : Parch [NUMERICAL]
10 : Pclass [NUMERICAL]
9 : Embarked [CATEGORICAL]
4 : SibSp [NUMERICAL]

Condition type in nodes:
739 : ObliqueCondition
117 : ContainsBitmapCondition
44 : ContainsCondition
Condition type in nodes with depth <= 0:
36 : ContainsBitmapCondition
Condition type in nodes with depth <= 1:
71 : ObliqueCondition
37 : ContainsBitmapCondition
Condition type in nodes with depth <= 2:
197 : ObliqueCondition
50 : ContainsBitmapCondition
5 : ContainsCondition
Condition type in nodes with depth <= 3:
411 : ObliqueCondition
70 : ContainsBitmapCondition
15 : ContainsCondition
Condition type in nodes with depth <= 5:
739 : ObliqueCondition
117 : ContainsBitmapCondition
44 : ContainsCondition

Training logs:
Number of iteration to final model: 36
Iter:1 train-loss:1.267677 valid-loss:1.369485 train-accuracy:0.624531 valid-accuracy:0.543478
Iter:2 train-loss:1.214848 valid-loss:1.331812 train-accuracy:0.624531 valid-accuracy:0.543478
Iter:3 train-loss:1.164942 valid-loss:1.291869 train-accuracy:0.624531 valid-accuracy:0.543478
Iter:4 train-loss:1.120759 valid-loss:1.258706 train-accuracy:0.624531 valid-accuracy:0.543478
Iter:5 train-loss:1.079912 valid-loss:1.231839 train-accuracy:0.809762 valid-accuracy:0.717391
Iter:6 train-loss:1.043659 valid-loss:1.209835 train-accuracy:0.817272 valid-accuracy:0.717391
Iter:16 train-loss:0.793468 valid-loss:1.096304 train-accuracy:0.903630 valid-accuracy:0.739130
Iter:26 train-loss:0.655063 valid-loss:1.069241 train-accuracy:0.921151 valid-accuracy:0.750000
Iter:36 train-loss:0.562198 valid-loss:1.046247 train-accuracy:0.928661 valid-accuracy:0.750000
Iter:46 train-loss:0.498899 valid-loss:1.064525 train-accuracy:0.932416 valid-accuracy:0.760870
Iter:56 train-loss:0.455454 valid-loss:1.085791 train-accuracy:0.939925 valid-accuracy:0.750000
Iter:66 train-loss:0.409738 valid-loss:1.107281 train-accuracy:0.946183 valid-accuracy:0.750000

예측

하이퍼파라미터 튜닝으로 모델 학습하기

앙상블사용

연령별 생존율을 히스토그램으로 시각화

히트맵으로 시각화하기

결과

profile
개발자를 위한 첫시작

0개의 댓글