[SAS 활용 노하우] 실제 데이터를 활용한 Retrain Modeling part1
- Article History
- RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
분석의 목표는 모델 모니터링 및 Long Term 모델 성능을 train 을 위한 다양한 전략의 효과를 테스트하는 것입니다. 이번에는 실제 데이터를 활용하여 long tern 모델을 retrain해서 모델의 성능을 향상시키는 실전 모델링을 알아보려 합니다.
-
기본 데이터는 Bureau of Labor Statistics web site(=노동 통계국 웹 사이트)에서 다운로드했습니다.
데이터는 여러 CSV 파일에 저장된 1억 4,500만 행의 데이터로 구성됩니다.
-
PROC IMPORT는 각 CSV 파일을 해당 SAS 데이터 세트로 가져오는 데 사용되었습니다.
이 단계에서 최소한의 데이터 cleaning이 수행되었습니다. numeric type 인 변수를 실수인 character 변수로 가져왔습니다.
-
DATA 단계인 Base SAS 절차를 사용하여 데이터를 변환하고 정리했습니다.
소수의 관측치가 출발 또는 도착 시간에 대한 결측값이 있는 데이터에서 제거되었습니다. 여러 문자 변수는 분석과 관련이 없는 변수를 삭제했습니다.
-
항공편 지연 도착에 대한 프록시인 변수가 삭제되었습니다. target 변수인 LATE 변수는 (Arrival_Delay > 15)는 boolean 값으로 생성되었습니다. 데이터가 1억 4,500개의 데이터를 하나의 테이블로 merge되었습니다.
-
DATA 단계는 큰 쿼리를 통해 Training 및 Monitoring 샘플을 생성하는 데 사용되었습니다. 특정 월의 데이터에 대한 테이블입니다. 훈련 데이터는 무작위로 훈련 및 테스트 데이터의 거의 동일한 샘플로 기차 데이터는 구축에 사용되었습니다. 테스트 데이터는 훈련 운동의 통계를 보고하는 데 사용되었습니다.
-
SAS High-Performance Analytics 절차를 사용하여 의사 결정 트리 및 로지스틱 회귀 모델. 모든 경우에 기본 설정이 사용되었습니다.
-
이전 점수 코드는 각 훈련 실행에서 파일 디렉토리에 저장됩니다. 점수 코드는 다음과 같이 사용되었습니다. 테스트 데이터 통계 및 모델 모니터링을 계산합니다. PROC HPSPLIT 및 ODS는 의사 결정 트리 표시 이미지를 만드는 데 사용됩니다.
DATA
분석에 필요한 데이터는 항공사 비행 데이터입니다.
이 데이터는 교통통계 데이터로 1987년 10월에 시작되어 계속 업데이트 됩니다. 사용된 데이터는 1987년부터 2012년 말까지이다. 데이터에는 설명하는 변수가 포함되어 있습니다.
목표는 모델 모니터링의 장기적인 추세를 보여주는 것입니다. 데이터에 대한 새로운 지식을 뽑아내거나 가장 정교한 모델을 구축하려는 것은 아닙니다.
샘플에는 145,664,836개의 관측치가 포함되어있고 모델 구축 또는 배포 시 사용할 수 없었던 모든 변수는 분석에서 제외하였습니다.
target 변수는 비행기 지연이 15분 이상인 데이터로 출발 예정 시간을 기준으로 15분 이전에 출발하면 0 그리고 비행기 출발시간이 15분 이상 지연되면 1입니다
CRS로 시작하는 변수가 비행기가 출발 예정된 시각을 나타내는 변수입니다.
비행기 출발 지연 Numeric 변수는 DEP_DELAY로 출발 예정시간 보다 일찍 출발하면 음수이고, 지연이면 양수로 계량 데이터 입니다.
비행기 정시 운항 데이터는 비즈니스 적으로 많은 의미를 함축하고 있습니다.
항공사는 정시 출발을 향상시키 위해 비행기 운행에 관련한 모든 데이터를 사용하였습니다 .
이 데이터를 사용하여 실적에 대한 발표를할 수 있으며 마케팅 캠페인을 강화해야하는 마케팅을 진행 또는 늦게 출발하는 항공편은 더 많은 기름을 배당할 수 있게 조정할 수 있는 비즈니스적 실행 사항들이 있습니다.
위의 표는 전체 기간 동안 월별로 집계된 항공편 데이터의 요약통계를 보여줍니다.
N열은 총 운항횟수를 의미하는 것으로 월 평균 지항 운행은 19.0%, 범위는 대략 10.2%에서 32.0%까지이며, 수치모형 입력 예측 변수도 표시됩니다.
예약된 경과 시간인 CRS_ELAPSED_TIME은 눈에 띄게 작은 표준을 보여줍니다.
편차, 아마도 예정된 노선에 전반적인 변화가 거의 없었다는 것을 의미합니다.
위의 플롯은 샘플 데이터로 25년 동안 비행기 운행 데이터를 시계열 데이터로 표시한 것으로 총 303개월의 데이터가 포함되어 있습니다.
플롯을 보면 계절성(=seasonality)이 눈에 띕니다. 겨울 방학을 전후하여 북반구를 여행하는 피크가 있습니다.
또한, 2001년 9·11테러가 일어났을 때는 비행기 운항 지연이 낮아지는 현상을 관찰할 수 있습니다.
2003년 1월에는 항공 여행이 예상대로 급격히 증가했습니다.
위의 플롯 중 아래에 있는 플롯은 25년 동안 연착률을 나타낸 것 입니다. 여기서는 총 비행기 운행수와 비행기 연착간의 약간의 상관관계가 있는 것 처럼 보입니다.
Models
데이터는 월별 데이터 세트로 제공됩니다.
첫 달에 우리의 첫 번째 모델을 만들었습니다. 1987년 10월 데이터에는 448,620개의 행이 포함되어 있고 데이터는 무작위로 반으로 분할됩니다.
train 데이터와 test 데이터는 5:5 비율로 모델링을 진행하며 모델은 PROC에서 생성한 decision tree 입니다. 10배 교차 검증을 사용하였으며 decision tree는 새로운 데이터 값에 대한 훌륭한 정확도를 보입니다.
위의 모델은 전체 모델의 결과를 보여줍니다. 데이터 첫 달에 대한 분류 트리 및 상위 하위 트리(데이터에 대한 세부 정보 포함) 모형에 사용된 변수입니다.
전체 분류 트리는 여러 변수를 사용하여 복잡한 모델을 보여줍니다. 항공사, 출발 공항 및 목적지 공항을 식별하는 범주형 변수 등 높은 카디널리티와 많은 tree branch 에 기여합니다.
variable importance(= 변수 중요도 값) 입니다.
의사 결정 트리의 세부 정보 보기 DEP_DELAY 이후에는 나머지 변수가 유지됩니다.
첫 번째 샘플의 Decision Tree 모델 결과를 보여줍니다.
데이터 월 지연은 지연 비행의 비율이고, i_late는 비행의 비율입니다.
지연으로 분류되고, i_misc는 전체 오분류율이고, i_tp는 다음과 같은 비율이다.
지각으로 정확하게 분류된 비행편 그런 다음 점수 코드를 테스트 데이터 샘플에 적용했습니다.
그리고 분류(i_late), 오분류 플래그(i_misc) 및 참양성 플래그(i_tp)가 계산되었습니다. 시험 점수를 요약하기 위해 PROC MANES를 실행하고 데이터를 생성했습니다.
테스트 샘플에서 비행 지연이 17.3%, 비행이 7.2%로 잘못 분류되었으며 비행이 10%로 정확하게 지연으로 분류되었음을 알 수 있습니다. 메트릭은 나머지 데이터의 모델 정확도를 모니터링하는 데 사용됩니다.
logistic regression 을 사용한 결과는 의사 결정 트리만큼 좋지 않습니다.
두 가지 모델 이 표에는 첫 달 동안의 검정 데이터에 대한 모형 비교가 나와 있습니다.
변수 ms는 순차 월 카운터입니다. TPR은 표본 참 양성 비율입니다. 결
기본 의사결정 트리를 사용하는 유효한 모델링 프로세스를 가지고 있고 예측 모델을 비즈니스에 활용할 것입니다.