딥러닝(35)
-
7-5. 부스팅(Boosting) - 그레이디언트 부스팅(Gradient Boosting)
출처 : docs.paperspace.com/machine-learning/wiki/gradient-boosting 그레이디언트 부스팅(Gradient Boosting)이란 이전 예측기가 만든 잔여 오차(Residual Error)에 새로운 예측기를 학습시키는 기법이다. X = 2*np.random.randn(100,1) y = 2 * X ** 2 + X * 4 + 10 + np.random.randn(100, 1) 노이즈가 섞인 2차 다항식을 결정 트리로 추정하는 모델에 그레이디언트 부스팅을 적용해보겠다. tree_reg1 = DecisionTreeRegressor(max_depth=2) tree_reg1.fit(X,y) 가장 먼저 기초적인 결정 트리를 훈련시켰다. y2 = y - tree_reg1.p..
2021.05.12 -
7-4. 부스팅(Boosting) - 에이다부스트(Adaboost)
부스팅(Boosting)이란 약한 학습기 여러 개를 연결하여 강한 학습기로 만드는 기법을 말한다. 대표적으로 에이다부스트, 그레이디언트 부스트가 있다. 에이다부스트(Adaboost) 출처 : vitalflux.com/adaboost-algorithm-explained-with-python-example/ 에이다부스트(Adaboost)의 예측 기법은 다음과 같다. 1. 첫 번째 분류기를 훈련 세트에서 훈련시키고 예측을 만든다. 2. 잘못 분류된 샘플의 가중치를 상대적으로 높인다. 3. 그 다음 예측기에서 업데이트된 가중치를 통해 훈련하고, 예측을 만든다. 4. 반복한다. 상세한 가중치 업데이트의 과정은 아래와 같다. 출처 : stackoverflow.com/questions/55318330/why-is-t..
2021.05.12 -
7-3. 랜덤 포레스트(Random Forest)
랜덤 포레스트는 기존 결정 트리에서 배깅이나 페이스팅을 적용한 앙상블 학습 방법이다. 출처 : www.kaggle.com/getting-started/176257 랜덤 포레스트는 먼저 특성의 서브셋을 무작위로 구성한 뒤에 노드 분할 시 최선의 특성을 찾음으로써 무작위성을 더한다. from sklearn.ensemble import RandomForestClassifier rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1) rnd_clf.fit(X_train, y_train) y_pred = rnd_clf.predict(X_valid) BaggingClassifier를 사용할 수도 있지만, 사이킷런에서는 Rando..
2021.05.12 -
7-2. oob 평가 / 랜덤 패치, 랜덤 서브스페이스
oob 평가 앙상블 학습에서 훈련 세트를 샘플링할때 중복을 허용하는 배깅 방식을 채택할 경우, 일반적으로 훈련 샘플의 63%만 샘플링이 되는데, 이는 나머지 37%의 데이터는 훈련에 쓰이지 않는다. 이러한 데이터를 oob(out-of-bag)라고 하는데, 앙상블의 평가에 이 oob 샘플을 활용할 수 있다. bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500, max_samples=30, bootstrap=True, n_jobs=-1, oob_score=True) bag_clf.fit(X_train, y_train) y_pred = bag_clf.predict(X_valid) BaggingClassifier 객체 생성 시 oob_s..
2021.05.12 -
7-1. 앙상블 학습(Ensemble Learning)
앙상블 학습(Ensemble Learning) '앙상블 학습은 여러 모델이 전략적으로 생성되고 결합되어 특정 계산 지능 문제를 해결하는 과정이다.' 출처 : www.scholarpedia.org/article/Ensemble_learning Ensemble learning - Scholarpedia Ensemble learning is the process by which multiple models, such as classifiers or experts, are strategically generated and combined to solve a particular computational intelligence problem. Ensemble learning is primarily used to i..
2021.05.12 -
6. 결정 트리(Decision Tree)
결정 트리(Decision Tree)는 분류, 회귀, 다중출력 작업이 가능한 머신러닝 알고리즘 중 하나다. 출처 : www.w3schools.com/python/python_ml_decision_tree.asp 결정 트리의 분류 방법을 살펴보자. 먼저 결정 트리는 루트 노드에서 특정 조건을 기준으로 샘플들을 두 부류로 나눈다. 자식 노드들에서도 마찬가지고 해당 노드의 조건을 기준으로 샘플들을 나누고 리프 노드에 도달하게되면 모든 분류를 멈춘다. 노드의 gini 특성 은 노드의 불순도를 의미하며, sample 특성 은 해당 노드에 있는 샘플수를 의미한다. value 특성 은 해당 노드에 클래스별로 샘플들이 얼마나 있는지를 나타낸다. 각 노드는 i번째 클래스에 속한 샘플의 비율(클래스 i에 속한 샘플 수 /..
2021.05.04