CHO-FAM · RESEARCH REPORT · 2026.10.10

Hackathon Kit
설계에서 실행 결과까지

S6E10 Predicting Airline Satisfaction · 판단 근거, 동결된 평가, 제약 위반과 남은 작업을 함께 기록합니다.

결과 보기Markdown 다운로드연구 커리큘럼

실행 개요

처음 보는 문제에서 문제 정의·프로파일링·모델 비교·검증·보고 workflow를 재사용할 수 있는지 확인하는 실험입니다. 진행 중인 S6E10으로 전환했으며 Bosch는 보류했습니다.

전체 train699,635행23열 · 부분집합 아님
Applied holdout ROC-AUC0.958004동결 후 1회 평가
Applied holdout MCC0.847976동결된 ideal threshold

합성 항공 데이터의 workflow 검증입니다. 제조 성능·생산 환경 일반화·Kaggle 제출·70% 재사용 달성을 주장하지 않습니다.

설계와 판단 근거

ProblemSpec·DataProfile → deterministic SolutionPlanner → Blueprint → Strategy를 실험 전에 동결했습니다. 아래 그래프는 설계이며 개별 구성요소의 실행 완료를 뜻하지 않습니다.

Design: baseline:classificationpreprocessingplanned · s0classifierplanned · s1imbalance_checkplanned · s2evaluationplanned · s3

Design estimates (not measured runtime)

BlueprintEstimated minutesTune policyGuards
baseline:classification40tuneUnspecified

Strategy declarations

StrategyObjectiveDeclared metric
pessimisticminimize_false_positivefalse_positive_rate
optimisticmaximize_detectionrecall_or_coverage
idealoptimize_problem_utilityroc_auc

예상 40분은 설계 구성요소 비용입니다. 실측 fitting 시간과 작업 범위가 다릅니다. 공식 ROC-AUC는 threshold와 무관하며 ideal threshold는 별도의 MCC 최적화입니다.

실행과 동결

stratified seed 20261010, 60/20/20 분할: train 419,781 / validation 139,927 / holdout 139,927. train-only 전처리를 적용했고 모델·threshold는 validation에서 선택해 holdout 전에 동결했습니다. test는 선택에 사용하지 않았습니다.

Baseline 동결 뒤 후보 3개를 비교했습니다. 총 fit ceiling 4개, 후보 wall budget 1,200초에서 실제 비교는 16.354초였습니다. 공개 reference는 Baseline·Applied·holdout 동결 후 읽었습니다.

Execution evidence

StageStatusEvidence
Profile/plannerexecutedplanner_freeze.json
Baseline freezeexecutedbaseline_freeze.json
Applied freezeexecutedapplied_freeze.json
Single frozen holdoutexecutedholdout_once.json
Descriptive post-freeze auditexecutedaudit.json
Timed L1/reuse measurementdeferrednot executed

Guard evidence (declaration is not verification)

GuardStatusEvidence
frozen_holdoutexecutedholdout_once.json
train_only_preprocessingplannedexperiment config

Blueprint required_guards가 비어 있는 경고를 유지합니다. adapter는 전처리 선언만으로 실행 검사를 인증하지 않습니다.

데이터 품질과 자원

공식 CSV 3개, 102,541,836 bytes. 17 numeric·4 categorical predictor, ID 제외. train 양성 310,339 / 음성 389,296 (양성 44.36%). ID 중복·공백·train/test 겹침 0개, test/sample ID 일치.

Arrival Delay in Minutes만 결측(train 292 / test 130). Profile 4.079초, peak RSS 474,181,632 bytes; 후보 최대 peak RSS 782,974,976 bytes. 원본 해시가 유지됐습니다.

파일·결측률·타깃 상세

sample_submission.csv data profile

MeasureValue
column_count2
deep_memory_bytes4797636
duplicate_ids0
row_count299844
size_bytes8095804
target_countsNot measured

sample_submission.csv missing_rate

Field/classValue
id0
satisfaction0

test.csv data profile

MeasureValue
column_count22
deep_memory_bytes113995170
duplicate_ids0
row_count299844
size_bytes27200964
target_countsNot measured

test.csv missing_rate

Field/classValue
Age0
Arrival Delay in Minutes0.000433559
Baggage handling0
Checkin service0
Class0
Cleanliness0
Customer Type0
Departure Delay in Minutes0
Departure/Arrival time convenient0
Ease of Online booking0
Flight Distance0
Food and drink0
Gate location0
Gender0
Inflight entertainment0
Inflight wifi service0
Leg room service0
On-board service0
Online boarding0
Seat comfort0
Type of Travel0
id0

train.csv data profile

MeasureValue
column_count23
deep_memory_bytes266687521
duplicate_ids0
row_count699635
size_bytes67245068

train.csv missing_rate

Field/classValue
Age0
Arrival Delay in Minutes0.00041736
Baggage handling0
Checkin service0
Class0
Cleanliness0
Customer Type0
Departure Delay in Minutes0
Departure/Arrival time convenient0
Ease of Online booking0
Flight Distance0
Food and drink0
Gate location0
Gender0
Inflight entertainment0
Inflight wifi service0
Leg room service0
On-board service0
Online boarding0
Seat comfort0
Type of Travel0
id0
satisfaction0

train.csv target_counts

Field/classValue
False389296
True310339

Baseline → Applied 결과

Centroid Baseline은 numeric-only이고 후보에는 제공된 categorical 열도 포함했습니다. 파생 feature·외부 데이터 없이 선형·tree·gradient boosting을 비교해 validation ROC-AUC로 HistGradientBoosting을 선택했습니다.

Validation performance and fit time002.640.5365.291.07Fit time (seconds)roc_auc (validation)baseline: 0.8735281histgb: 0.9572472logistic: 0.9211733tree: 0.9496044
  1. baseline
  2. histgb
  3. logistic
  4. tree

Model results — partitions kept separate

ModelPartitionStatusroc_aucFit secondsScore secondsPeak RSS bytesFrozen
baselinevalidationexecuted0.8735281.726011.35003695590912True
baselineholdoutexecuted0.873663Not measured1.44971Not measuredTrue
histgbvalidationexecuted0.9572474.72310.453554782938112True
histgbholdoutexecuted0.958004Not measured0.57537Not measuredTrue
logisticvalidationexecuted0.9211731.678190.123106782839808True
logisticholdoutnot_evaluatedNot measuredNot measuredNot measuredNot measuredFalse
treevalidationexecuted0.9496042.633840.137805782974976True
treeholdoutnot_evaluatedNot measuredNot measuredNot measuredNot measuredFalse

baseline / validation metrics

MetricValue
log_loss1.08659
roc_auc0.873528

baseline / holdout metrics

MetricValue
log_loss1.08594
roc_auc0.873663

histgb / validation metrics

MetricValue
log_loss0.231054
roc_auc0.957247

histgb / holdout metrics

MetricValue
log_loss0.229575
roc_auc0.958004

logistic / validation metrics

MetricValue
log_loss0.345318
roc_auc0.921173

tree / validation metrics

MetricValue
log_loss0.257834
roc_auc0.949604

LogisticRegression·DecisionTree holdout은 미평가이며 0이 아닙니다. Baseline probability는 calibration되지 않은 centroid score입니다.

세 운영점과 제약

Pessimistic: 최소 FP, validation Recall ≥ 10%. Optimistic: 최대 Recall, validation FPR ≤ 5%. Ideal: validation MCC 최대화. 같은 모델의 동일 probability에서 세 점을 계산합니다.

Operating points / validation000.08020.50.161False-positive rateRecall / validationbaseline / ideal: recall 0.750967, FPR 0.139432baseline / optimistic: recall 0.543517, FPR 0.049975baseline / pessimistic: recall 0.100068, FPR 0.00331368histgb / ideal: recall 0.9033, FPR 0.0580793histgb / optimistic: recall 0.890813, FPR 0.0499878histgb / pessimistic: recall 0.101018, FPR 0.0030825logistic / ideal: recall 0.823339, FPR 0.0781284logistic / optimistic: recall 0.766256, FPR 0.049975logistic / pessimistic: recall 0.100245, FPR 0.00301828tree / ideal: recall 0.88685, FPR 0.070191tree / optimistic: recall 0.840433, FPR 0.0447861tree / pessimistic: recall 0.105272, FPR 0.00368615
Dashed guides: min Recall applies to pessimistic; max FPR applies to optimistic only.
  • baseline / ideal: Recall 0.750967, FPR 0.139432
  • baseline / optimistic: Recall 0.543517, FPR 0.049975
  • baseline / pessimistic: Recall 0.100068, FPR 0.00331368
  • histgb / ideal: Recall 0.9033, FPR 0.0580793
  • histgb / optimistic: Recall 0.890813, FPR 0.0499878
  • histgb / pessimistic: Recall 0.101018, FPR 0.0030825
  • logistic / ideal: Recall 0.823339, FPR 0.0781284
  • logistic / optimistic: Recall 0.766256, FPR 0.049975
  • logistic / pessimistic: Recall 0.100245, FPR 0.00301828
  • tree / ideal: Recall 0.88685, FPR 0.070191
  • tree / optimistic: Recall 0.840433, FPR 0.0447861
  • tree / pessimistic: Recall 0.105272, FPR 0.00368615
Operating points / holdout000.08110.50.1621False-positive rateRecall / holdoutbaseline / ideal: recall 0.751676, FPR 0.140998baseline / optimistic: recall 0.543227, FPR 0.050463baseline / pessimistic: recall 0.10018, FPR 0.00327515histgb / ideal: recall 0.902558, FPR 0.057039histgb / optimistic: recall 0.890298, FPR 0.0492942histgb / pessimistic: recall 0.100793, FPR 0.00249168
Dashed guides: min Recall applies to pessimistic; max FPR applies to optimistic only.
  • baseline / ideal: Recall 0.751676, FPR 0.140998
  • baseline / optimistic: Recall 0.543227, FPR 0.050463
  • baseline / pessimistic: Recall 0.10018, FPR 0.00327515
  • histgb / ideal: Recall 0.902558, FPR 0.057039
  • histgb / optimistic: Recall 0.890298, FPR 0.0492942
  • histgb / pessimistic: Recall 0.100793, FPR 0.00249168

Baseline optimistic holdout FPR 5.0463%는 5%를 넘었습니다. validation 제약은 holdout에서 보장되지 않으며 threshold를 다시 조정하지 않았습니다.

baseline / validation operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.9290240.8110920.7509670.1394320.61755946611108566700315457
optimistic0.998770.8965870.5435170.0499750.5530043373538917396828333
pessimistic0.9999990.9601170.1000680.003313680.22891162112587760155857

baseline / holdout operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.9290240.8095190.7516760.1409980.61642546655109786688115413
optimistic0.998770.8956330.5432270.0504630.5520393371739297393028351
pessimistic0.9999990.9606060.100180.003275150.22920162182557760455850

histgb / validation operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.496330.9253650.90330.05807930.847464560664522733376002
optimistic0.5745750.9342380.8908130.04998780.845552552913892739676777
pessimistic0.9648610.9631340.1010180.00308250.23101162702407761955798

histgb / holdout operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.496330.9265480.9025580.0570390.847976560204441734186048
optimistic0.5745750.9350560.8902980.04929420.845896552593838740216809
pessimistic0.9648610.9699220.1007930.002491680.23289762561947766555812

logistic / validation operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.5681830.8936280.8233390.07812840.7531165110360837177610965
optimistic0.6992580.9243750.7662560.0499750.738014756038917396814508
pessimistic0.9618860.9636050.1002450.003018280.23023262222357762455846

tree / validation operating points

PointThresholdPrecisionRecallFPRmccTPFPTNFN
ideal0.480.9096840.886850.0701910.818952550455465723947023
optimistic0.6577180.9373420.8404330.04478610.807645521643487743729904
pessimistic0.9494540.9579240.1052720.003686150.23436765342877757255534

오류·분포 분석

baseline / holdout ideal

baseline confusion matrixPredicted classPositiveNegativeTP 46655FN 15413FP 10978TN 66881Actual +Actual −

histgb / holdout ideal

histgb confusion matrixPredicted classPositiveNegativeTP 56020FN 6048FP 4441TN 73418Actual +Actual −

train/validation 최대 numeric KS 0.002943, categorical total variation 0.001382. 무작위 합성 split의 기술적 점검이며 시간 변화에 대한 증거가 아닙니다.

Applied Personal Travel Recall 34.56%, Business travel 94.00%. 전체 지표에 가려진 그룹 오류를 기록했고 분석 후 모델·threshold를 변경하지 않았습니다.

그룹별 오류와 분포 점검값

Drift / numeric_ks / train_vs_validation_only

FeatureValue
Age0.00134832
Arrival Delay in Minutes0.000493286
Baggage handling0.000795653
Checkin service0.000893323
Cleanliness0.00221068
Departure Delay in Minutes0.00126733
Departure/Arrival time convenient0.00151746
Ease of Online booking0.000626517
Flight Distance0.00276096
Food and drink0.000628899
Gate location0.00102434
Inflight entertainment0.00294201
Inflight wifi service0.00144837
Leg room service0.00222259
On-board service0.0011101
Online boarding0.000850443
Seat comfort0.00153175

Drift / categorical_total_variation / train_vs_validation_only

FeatureValue
Class0.00116728
Customer Type0.000419266
Gender0.00103864
Type of Travel0.00138167

baseline subgroup errors / Class

GroupNRecallFPRTPFPTNFN
Business684100.8334780.199819413683752150258265
Eco654890.4200470.12377346186745477506376
Eco Plus60280.4642610.1048626694814106772

baseline subgroup errors / Customer Type

GroupNRecallFPRTPFPTNFN
Loyal Customer1151900.7865090.1547454489089934912212185
disloyal Customer247370.3534950.10053717651985177593228

baseline subgroup errors / Gender

GroupNRecallFPRTPFPTNFN
Female695040.7539030.143392229885594334187504
Male704230.7495250.138595236675384334637909

baseline subgroup errors / Type of Travel

GroupNRecallFPRTPFPTNFN
Business travel995450.7817130.1202914546649783640512696
Personal Travel403820.3044030.16449211896000304762717

histgb subgroup errors / Class

GroupNRecallFPRTPFPTNFN
Business684100.9711480.176599482013316154611432
Eco654890.6146080.01803846757983535124237
Eco Plus60280.7369880.030957110621424445379

histgb subgroup errors / Customer Type

GroupNRecallFPRTPFPTNFN
Loyal Customer1151900.919860.0637873525013707544084574
disloyal Customer247370.7047870.03717593519734190101474

histgb subgroup errors / Gender

GroupNRecallFPRTPFPTNFN
Female695040.9057790.0581872276192270367422873
Male704230.8994490.0558859284012171366763175

histgb subgroup errors / Type of Travel

GroupNRecallFPRTPFPTNFN
Business travel995450.9399610.104512546704325370583492
Personal Travel403820.3456220.003180171350116363602556

검증과 남은 범위

보고 모듈 실제 검증: 74 tests passed, 실패·skip 0개. 동결 JSON 해시가 생성 전후 일치했으며 재학습·holdout 재평가 없이 보고서를 생성했습니다.

  • 수치·미평가·제약·DAG·escaping·SVG markup·회귀/이상탐지 fixture를 검증했습니다.
  • 브라우저 pixel QA는 미완료입니다. 로컬 Chromium 부재, Cloud Browser file 접근 정책 차단을 우회하지 않았습니다.
  • 60–90분 L1 실습·실측 재사용률·SK하이닉스 대회별 사용 규정 확인은 남아 있습니다. CHO-FAM 정규 학습 일정은 변경하지 않습니다.

재사용과 Reference

재사용률 미측정. kit/adapted/new 작업시간 근거가 없으므로 70% 달성을 추정하지 않습니다.

동결 후 KRISH RABARI의 S6E10 EDA and Stacking Pipeline에서 지연 sum/difference, Optuna, stacking을 확인했지만 실행하지 않았습니다. 처음 확인한 feature는 kit·모델에 편입하지 않았습니다. Reference 점수는 이 holdout과 비교하지 않습니다.

근거와 다운로드

동결 JSON의 SHA-256 근거를 제공합니다. 원본 데이터·개별 예측·모델 artifact·인증정보는 게시하지 않습니다. Markdown은 같은 상세 지표와 표를 포함합니다.

전체 Markdown 다운로드

동결 source manifest

Sources / SHA-256

SourceHash
applied_freeze.jsona3a8c980f7903857599c45a7ce87f34e607e119426061fcf11b4de831386fbaf
audit.jsonc7b1c9c12e9bd02bf7207bccd9f46bbc3aef5890635d89586be16866f5dc734a
baseline_freeze.jsond8eb4bf340da628e54e8dbee772350902943d89644424631f8fdb9403ba39d1f
csv_profiles.jsonb2e16bc4bc754c870503555b64a54c5057ae674a7d7d51dfcef7540808c1d337
experiment_freeze.jsonab132fbb91620435b51c852e08e4ab89fd101b9b5dd775b268171c8964cebafe
histgb_freeze.json4bfe68dd9058f42ddf995bc408444f35011adc3dd547f42cefbfbc85de3745f6
holdout_once.json29d8d4c17f91fdd1879853ec0227274305d3d967605988421670eae637fb9b5f
logistic_freeze.jsond4dde516905e3b4c36c70b5d00f306ebcc022cf28ba6d4140ddf78542946302b
planner_freeze.json518f49179e8ce294ee5df3bc0b57c5cb36655398b05260c1c2b221f320a3cda0
tree_freeze.json16dbc4061a45a47de74bc001e6c7202f6c17c8a170d6b31e4c7b0b44e3d3a1c3