Random Forest
1. 모듈 불러오기
2. 데이터 불러오기
데이터 구조
- 데이터 : 성인 남녀 스마일 라식 수술 부작용 조사
- 관측치 개수 : 153개
- 변수 개수 : 좌안 우안 각각 11개 총 22개
설명 변수(원인, 예측값을 설명할 수 있는 변수 / 부작용을 제외한 나머지 변수는 좌완과 우완 데이터가 다름)
- 근시 / 원시
- 난시
- 난시 축
- 교정시력
- 안압 IOP
- 각막 두께
- 교정량
- 잔여각막
- 야간동공 크기
- 눈물 분비량
- 내피세포 검사
반응 변수(결과, 예측하고자 하는 값)
3. 탐색적 데이터 분석 및 데이터 전처리
X : 독립변수, 예측변수, 입력변수
Y : 종속변수, 반응변수, 출력변수
결측치, 데이터 타입 확인
Train/Test 데이터 분리
- Training 데이터 80%, / Testing 데이터 20% 나누기
4. 모델링
4.1 단순 모델링 (사용자가 하이퍼 파라미터 정의)
4.2 단일 하이퍼 파라미터에 대한 Grid search
4.3 전체 하이퍼 파라미터에 대한 Grid search (파라미터 최적화)
- Random Forest Hyperparameter
파라미터 명 | 설명 |
---|
n_estimators | - 결정트리의 갯수를 지정 |
- Default = 10
- 무작정 트리 갯수를 늘리면 성능 좋아지는 것 대비 시간이 걸릴 수 있음 |
| min_samples_split | - 노드를 분할하기 위한 최소한의 샘플 데이터 수 → 과적합을 제어하는데 사용
- Default = 2 → 작게 설정할 수록 분할 노드가 많아져 과적합 가능성 증가 |
| min_samples_leaf | - 리프노드가 되기 위해 필요한 최ㅅ한의 샘플 데이터 수
- min_samples_split과 함께 과적합 제어 용도
- 불균형 데이터의 경우 특정 클래스의 데이터가 극도로 작을 수 있으므로 작게 설정 필요 |
| max_features | - 최적의 분할을 위해 고려할 최대 feature 개수
- Default = ‘auto’ (결정 트리에서는 default가 none이었음)
- int 형으로 지정 → 피처 갯수 / float 형으로 지정 → 비중
- sqrt 또는 auto : 전체 피처중 √(피처 개수) 만큼 선정
- log : 전체 피처중 log2(전체 피처 개수) 만큼 선정 |
| max_depth | - 트리의 최대 깊이
- default = None
→ 완벽하게 클래스 값이 결정될 때 까지 분할
또는 데이터 개수가 min_samples_split 보다 작아질 때까지 분할
- 깊이가 깊어지면 과적합 될 수 있으므로 적절히 제어 필요 |
| max_leaf_nodes | 리프노드의 최대 개수 |