멋쟁이 사자처럼 AI스쿨 7기, 박조은 강사님 강의
사이킷런으로 인코딩 하면 더 복잡한데, 장점은 numpy와 pandas 데이터를 다루는 연습을 해보기에 좋다.
2차, 3차 다항식 등 차수를 두면 변곡점이 생긴다.
polynomial에서 배운 차수
🔥 선형회귀는 이상치의 영향을 크게 받는다.
선형회귀보다 트리계열 모델을 사용하면 같은 데이터셋임에도 훨씬 나은 성능을 보여준다.
현재 데이터셋에는 이상치도 포함되어 있다.
회귀모델은 이상치에 민감하기도 하고, 다른 수치데이터에 전처리가 많이 필요하다.
선형 회귀의 장점은 간단하고 이해하기 쉽다.
선형회귀에 맞는 데이터셋을 사용하면 좋은 성능을 낼 수 있다.
train, valid, test -> train_test_split은 train, test만 나눈다.
train을 다시 train, valid로 나눠주기도 한다.
학습을 더 많이 시키기 위해 test_size = 0.1
learning stepresidual 잔차Q. 왜 부스팅 계열 모델이 설치가 잘 되기도 하지만 설치에 실패하는 경우가 생길까?
의존성
다른 언어로 작성되었는데 파이썬 wrapper API를 제공하고 있다.
Q. 이와 관련된 파이썬의 별명은?
접착어
구동하려면 다른 언어 환경이 함께 필요한 경우가 많다. 기존에 다른 도구를 설치하다가 해당 언어 환경 도구를 설치해놨으면 비교적 설치가 잘 되지만, 처음 설치할 때는 실패하는 경우가 많다.
콘다는 패키징이 잘 되어 있는 편이라 관련된 환경을 구성해준다. 그래서 되도록 콘다로 설치하는 것을 추천
배깅 방식은 부트스트래핑을 해서 트리를 병렬적으로 여러 개 만들기 때문에 오버피팅 문제에 좀 더 적합하다.
개별 트리의 낮은 성능이 문제일 때는 이전 트리의 오차를 보완해 가면서 만들기 때문에 부스팅이 좀 더 적합하다.
GBT에서 병렬학습을 지원하여 학습 속도가 빨라진 모델
GBT에 비해 효율적이고, 다양한 종류의 데이터에 대응 가능
머신러닝 대회에서 우승한 많은 팀이 선택한 알고리즘
2차 근사식을 바탕으로 한 손실함수를 토대로 손실함수가 최대한 감소하도록 하는 split point를 찾는 것이 목표
GBM 대비 빠른 수행 시간(하지만 여전히 학습시간이 느림), 과적합 규제
Early Stopping : 오차가 줄어들지 않으면 학습을 멈춰라.
하이퍼파라미터 튜닝을 하면 시간이 오래 걸림.
Light Gradient Boosting Machine
Microsoft사에서 개발, 오픈소스 분산 그래디언트 부스팅 프레임워크
결정트리 알고리즘 기반
러시아 검색 업체 Yandex에서 개발한 오픈 소스 소프트웨어 라이브러리
순열기반대안을 사용하여 범주형 기능을 해결하려고 시도
GPU 지원
사이킷런에서는 지원할 생각이 없다고 했지만, 외부 라이브러리에서는 지원하고 있다.
DecisionTrees - Bagging - RandomForest - Boosting - GradientBoosting - XGBoost
사이킷런 API https://xgboost.readthedocs.io/en/stable/python/index.html
9/10문제
5번 문제. Boosting 알고리즘을 사용하는 모델 알고리즘 모두 고르기
GBM, XGBoost, LightGBM잘 골랐는데 CatBoost 왜 빼놓은건지..
7번 문제는 헷갈려서
cross validation에 사용할 fold 의 나눌 갯수를 지정하고 데이터를 섞을지, 랜덤 값을 고정할지를 설정할 수가 있습니다. 빈 칸에 알맞은 것은 무엇일까요?
(n_splits=3, shuffle=True, random_state=42)
KFold
cv, cross_val_predict, cross_val_score가 예시에 있었는데, 아직 구별을 잘 못하는 것 같다.
8번 문제도 헷갈려서
트리계열 알고리즘에서 가지의 분할의 품질을 측정하는 기능을 하는 것은?
criterion
max_depth, min_samples_split, min_samples_leaf는 아님