목록Machine Learning/2. 지도 학습 알고리즘 (27)
My Data Story

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트 부스팅 5. XGBoost 최적화된 그레이디언트 부스팅 구현 패키지 XGBoost 에 대해 살펴보자. 6. 스태킹 1. XGBoost 란? XGBoost는 최적화된 그레이디언트 부스팅 구현으로 유명하다. XGBoost의 목적 함수는 손실 함수에 규제항을 추가하여 과적합을 줄일 수 있도록 한다. 이때 손실 함수는 과제 종류에 따라 달라진다. 회귀 문제 시 Squared Error 를 활용하고, 이진 분류 문제 시 Logisitic 손실 함수를 활용하고, 다중 분류 문제 시 Softmax 손실 함수를 활용한다. 그 밖에도 활용 가능한 손실 함수 종류가 다양하다. XGBoost는 순차적으로 이전 학습기에서 ..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 스태킹 컨셉에 대해 이해해보자. 1. 스태킹 '앙상블에 속하는 모든 예측기의 예측을 취합할 때 간단한 함수 대신에 취합하는 모델을 생성할 수 없을까?' 라는 기본 아이디어에서 출발한다. 하위 예측기 각각의 값을 취합하여 최종 결과를 예측하는 마지막 예측기를 블렌더 또는 메타 학습기라고 한다. 블렌더를 학습시키는 일반적인 방법은 홀드 아웃 세트를 사용한다. step1 훈련 세트를 두 개의 서브셋으로 나눈다. 첫 번째 layer에 3개의 예측기가 있다 할 때, 첫 번째 subset은 첫 번째 layer의 예측기를 훈련시키기 위해 사용된다. step2 첫 번째 layer..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트 부스팅 그레이디언트 부스팅에 대해 이해하고 확률적 그레이디언트 부스팅 패키지 lightGBM 에 대해 알아보자 5. XGBoost 6. 스태킹 1. 그레이디언트 부스팅 인기 많은 또 하나의 부스팅 알고리즘은 그레이디언트 부스팅이다. 그레이디언트 부스팅은 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가한다. 에이다부스터처럼 반복마다 샘플의 가중치를 수정하는 대신 이전 예측이 만든 잔여 오차에 새로운 예측기를 학습시킨다. from sklearn.tree import DecisionTreeRegressor tree_reg1 = DecisionTreeRegressor(max_depth=2) tr..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 3. 에이다부스트 부스팅 컨셉에 대해 이해하고 에이다 부스트 알고리즘과 모델 구현 방식에 대해 알아보자. 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 1. 부스팅 개요 부스팅은 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법이다. 즉 앞의 모델을 보완해나가면서 일련의 예측기를 학습시키는 것이다. 부스팅 종류는 크게 에이다 부스트와 그레이디언트 부스팅이 있다. 2. 에이다부스트 이전 예측기를 보완한 새로운 예측기를 만드는 방법으로 이전 모델이 과소 적합했던 샘플의 가중치를 더 높이는 것이다. 에이다부스트 훈련 과정은 다음과 같다. step1 알고리즘이 첫 번째 분류기를 훈련 세트에서 훈련시키고 예측한다. ste..

◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 2. 랜덤포레스트 랜덤포레스트와 엑스트라에 대해 이해하고 트리 계열 모델의 특성 중요도 산출에 대해 살펴보자. 3. 에이다부스트 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 1. 랜덤 포레스트 의사 결정 트리 모델에서 훈련 데이터의 작은 변화는 트리의 큰 변화와 결과적으로 최종 예측을 할 수 있고, 훈련 데이터에 과대 적합된 복잡한 트리르 생성할 수 있다. 복잡한 트리는 편향은 낮지만 분산은 매우 높아진다. 랜덤포레스트는 분산을 줄이는 것을 목적으로 동일한 훈련 세트의 다른 부분에 대해 여러 심층 결정 트리를 평균화한다. 랜덤포레스트는 일반적으로 배깅(또는 페이스팅)을 적용한 결정트리 앙상블로 더 나아가 sample뿐 아니라 feature도 복..
◈ '앙상블 학습' 목차 ◈ 1. 배깅, 페이스팅 투표 기반의 분류기 종류에 대해 살펴보고 배깅과 페이스팅에 대해 이해해보자. 2. 랜덤포레스트 3. 에이다부스트 4. 그레이디언트부스팅 5. XGBoost 6. 스태킹 1. 투표 기반 분류기 1.1 직접 투표 분류기 더 좋은 분류기를 만드는 방법은 여러 분류기의 예측을 모아서 가장 많이 선택된 클래스를 예측하는 것이다. 약한 학습기(랜덤 추측보다 조금 더 높은 성능을 내는 분류기) 일지라도 충분히 많고 다양하다면 앙상블은 강한 학습기가 될 수 있다. 하지만 이러한 가정은 모든 분류기가 독립적이고 오차에 상관관계가 없어야 가능하다. 앙상블 방법은 예측기가 가능한 서로 독립일 때 최고의 성능을 발휘한다. 다양한 분류기를 얻는 한 가지 방법은 각기 다른 알고리..

◈ '결정 트리' 목차 ◈ 1. 결정 트리 분류 모델 2. 결정 트리 회귀 모델 결정 트리 회귀 모델의 생성 원리와 결정 트리의 활용 및 불안정성에 대해 살펴보자. 1. 결정 트리 회귀 모델 생성 원리 1.1 재귀 분할 예측값과 실제값 사이의 차이가 감소하도록 예측 변수 값을 기준으로 반복적으로 데이터를 분할해나간다. 응답 변수 Y와 P개의 예측 변수 집합 X(j) (j=1,2 ... , P) 있다고 가정할 때, 파티션 A를 두 개의 하위 영역으로 나누는 가장 좋은 재귀적 분할 방법은 다음과 같다. step1 모든 예측 변수 X(j)에 대해 a. X(j) 에 해당하는 모든 변수 값 s(j) 에 대해, i. A에 해당하는 모든 레코드를 X(j) =s(j) 인 부분으로 나눈..

◈ '결정 트리' 목차 ◈ 1. 결정 트리 분류 모델 결정 트리 생성 원리와 규제 방식을 이해하고, 사이킷런에서 결정 트리 생성하는 방법에 대해 살펴보자. 2. 결정 트리 회귀 모델 트리 모델은 if-then-else 규칙의 집합체로 데이터에 숨겨진 패턴들을 발견하는 능력이 있다. SVM 처럼 결정 트리는 분류와 회귀 작업 그리고 다중 출력 작업도 가능한 다재 다능한 머신러닝 알고리즘이다. 매우 복잡한 데이터 셋도 학습할 수 있는 강력한 알고리즘이다. 1. 결정 트리 분류 모델 생성 원리 1.1 재귀 분할 결정 트리를 만들 때는 상대적으로 같은 클래스의 데이터끼리 구분되도록 예측 변수 값을 기준으로 반복적으로 데이터를 분할한다. 이러한 과정을 재귀 분할 과정이라 한다. 응답 변수 Y와 P개의 예측 변수 ..

◈ '서포프 벡터 머신' 목차 ◈ 1. 선형 SVM 분류 2. 비선형 SVM 분류 3. SVM 회귀 4. SVM 이론 선형 SVM 예측은 어떻게 이뤄지고 훈련 알고리즘은 어떻게 작동하는 지 살펴보자. 더불어, 온라인 SVM 을 구현하는 방법에 대해 살펴보자. 1. 선형 SVM 분류기 1.1 결정 함수와 예측 클래스를 구분하는 결정 경계는 결정 함수 값이 0인 점들로 이루어졌다. 결정 함수 값이 0 보다 작으면 음성 클래스 (y=0) 로 분류하고 결정 함수 값이 0 보다 크거나 같으면 양성 클래스 (y=1) 로 분류한다. 데이터 셋과 결정 경계 Decision function 를 공간 상에 나타내면 다음 그래프와 같다. 그래프의 점선은 결정 함수 값이 1인 점과 -1 인 점들을 나타낸다. 이 점선들은 결정..