bootstrap 어디에서 들어봤을까요? 어디엔가 n_boot 라는게 있었는데?
-> sns.barplot
bootstrap 현실세계의 선거에 비유한다면?
-> 출구조사
aggregating?
-> 집계
bagging = bootstrap + aggregating
-> 표본 추출 집계
DecisionTree의 단점?
- 랜덤성에 따라 매우 다름
- 일반화하여 사용하기 어려움
- 계층적 접근 방식이기 때문에 중간에 에러 발생하면
다음 단계로 에러가 계속 전파
- 결과 또는 성능의 변동 폭이 큼
- 과적합 가능성이 높음
DecisionTree의 단점이 있음에도 불구하고 사용하는 이유 (장점)?
사용법이 쉽고 직관적
빠르고 단순해서 데이터 피처의 중요도 파악에 용이
학습 속도가 빠름
트리를 그려서 시각화해 전반적으로 살펴보기 좋음
랜덤 포레스트 장점
월등히 높은 정확성
간편하고 빠른 학습 및 테스트 알고리즘
변수소거 없이 수천 개의 입력 변수들을 다루는 것이 가능
임의화(랜덤)를 통한 좋은 일반화 성능
다중 클래스 알고리즘 특성
랜덤 부트스트래핑을 할 때 중복을 허용함
앙상블 방법:
조금씩 다른 훈련 데이터에 대해 훈련된 기초 분류기(base learner)들을 결합(aggregating)시키는 방법
from sklearn.ensemble import RandomForestClassifier
n_estimators 값을 늘리면 왜 학습시간이 오래 걸리나?
-> 생성할 tree 개수가 많아서
n_jobs : 사용할 CPU의 코어 수
-> -1은 모든 코어 사용 의미
회귀로 예측해 볼 수 있는 피처는?
-> 혈압, 인슐린, 피부두께....
from sklearn.ensemble import RandomForestRegressor
* 왜 RandomForestRegressor를 사용하나?
-> 수치형 데이터이기 때문에
학습과 예측을 해도 정답이 없기 때문에 채점을 할 수 없을 때
어떻게 하면 좋을까?
-> 모의고사용 문제를 따로 모아둔다
Hold-out Validation : 데이터 셋을 나눌때 한번만 나누는것
* Hold-out Validation 의 장점?
-> 빠르게 결과를 추출해 볼 수 있음
Fold == 모의고사
폴드 번호가 같으면 같은 모의고사
파란색 == 최종모의고사
연두색 == 공부용 모의고사
조각의 수 == fit(학습) 수
cross_val_predict : 각 폴드가 테스트 폴드가 되었을 때 예측된 값을 반환
* cross_val_score : 알아서 점수 계산
cv : 폴드 조각의 수 (높을 수록 오래걸림)
verbose : 로그 개수 (높을 수록 자세하게)
accuracy 가 0 이면(정답을 정확하게 맞춘 갯수가 0)?
-> 실제값과 예측값의 차이 보기
from sklearn.metrics import r2_score
: 회귀 계수 (기울기 : 값이 작을수록 오차가 큼, 1일 때 예측값=실체값)
오차 구하기
abs(train - predict)
-> abs : 절대값