[머신러닝] Regression & Boosting Model(1): Linear Regression, Decision Tree, Random Forest, Extra Tree, GBM
종속변수 y와 한개 이상의 독립변수(또는 설명변수) X와의 선형 상관 관계를 모델링하응 회귀분석 기법이다. 선형회귀는 선형 예측함수를 사용해 회귀식을 모델링하며, 알려지지 않은 파라미터는 데이터로부터 추정한다.
from sklearn.linear_model import LinearRegression
LinearRegression(fit_intercept=True,
normalize='deprecated',
copy_X=True, n_jobs=None, positive=False)

결정트리 학습법(decision tree learning)은 어떤 항목에 대한 관측값과 목표값을 연결시켜주는 예측트리로써 결정트리를 사용하며, 이는 통계학과 데이터마이닝 등에서 사용하는 예측 방법 중 하나이다.
트리모델 중 목표 변수가 유한한 값을 가지는 것을 분류트리라고하며, 결정트리 중 목표변수가 연속하는 값, 일반적으로 실수를 가지는 것을 회귀트리라 한다.
from sklearn.tree import DecisionTreeRegressor
DecisionTreeRegressor(criterion='squared_error',
splitter='best',
max_depth=None,
min_samples_split=2,
min_samples_leaf=1,
min_weight_fraction_leaf=0.0,
max_features=None,
random_state=None,
max_leaf_nodes=None,
min_impurity_decrease=0.0,
ccp_alpha=0.0)

랜덤포레스트는 다수의 결정트리들을 학습하는 앙상블 방법이다. 분류, 회귀분석 등에 사용되며, 훈련과정에서 구성한 다수의 결정트리로붜 분류 또는 평균 예측치(회귀분석)을 출력함으로써 동작한다.
from sklearn.ensemble import RandomForestRegressor
RandomForestRegressor(n_estimators=100,
criterion='squared_error',
max_depth=None,
min_samples_split=2,
min_samples_leaf=1,
min_weight_fraction_leaf=0.0,
max_features=1.0,
max_leaf_nodes=None,
min_impurity_decrease=0.0,
bootstrap=True,
oob_score=False,
n_jobs=None,
random_state=None,
verbose=0,
warm_start=False,
ccp_alpha=0.0,
max_samples=None)

엑스트라 트리 모델은 극도로 무작위화(Extremely Randomized Tree)된 모델이다. 랜덤포레스트에서와 같이 후보 기능의 무작위 하위집합이 사용되지만 가장 차별적인 임계값을 찾는 대신 각 후보에 대해 임계값이 무작위로 그려지고 무작위로 생성된 임계값 중 가장 좋은 것이 분할 규칙으로 선택된다. 이러한 방법은 일반적으로 약간 더 큰 편향 증가를 희생시키면서 모델의 분산을 좀 더 줄일 수 있다
from sklearn.ensemble import ExtraTreesRegressor
ExtraTreesRegressor(n_estimators=100,
criterion='squared_error',
max_depth=None,
min_samples_split=2,
min_samples_leaf=1,
min_weight_fraction_leaf=0.0,
max_features=1.0,
max_leaf_nodes=None,
min_impurity_decrease=0.0,
bootstrap=False,
oob_score=False,
n_jobs=None,
random_state=None,
verbose=0,
warm_start=False,
ccp_alpha=0.0,
max_samples=None)

회귀 또는 분류 분석을 수행할 수 있는 예측 모형이며, 예측모형의 앙상블 방법론 중 부스팅계열에 속하는 알고리즘이다. 흔히 GBT라고 줄여 부르며, 트리를 앙상블한 모델이다.
머신러닝에서도 가작 예측 성능이 높다고 알려진 알고리즘으로, 계산량이 상당히 많이 필요한 알고리즘이기때문에 이를 하드웨어 효율적으로 구현하는 것이 중요하다.

from sklearn.ensemble import GradientBoostingRegressor
GradientBoostingRegressor(loss='squared_error',
learning_rate=0.1,
n_estimators=100,
subsample=1.0,
criterion='friedman_mse',
min_samples_split=2,
min_samples_leaf=1,
min_weight_fraction_leaf=0.0,
max_depth=3,
min_impurity_decrease=0.0,
init=None,
random_state=None,
max_features=None,
alpha=0.9, verbose=0,
max_leaf_nodes=None,
warm_start=False,
validation_fraction=0.1,
n_iter_no_change=None,
tol=0.0001,
ccp_alpha=0.0)


그래디언트 부스팅에서 내장하고 있는 손실함수들로 squared loss는 MSE, absolute loss는 MAE와 같다고 볼 수 있다. absolute loss는 기울기의 방향만 다를 뿐 기울기 값이 모두 동일하므로 이를 보완하기 위해 Huber loss와 Quantile loss를 사용하기도 한다.
| [딥러닝]DNN: Loss, Optimizer, 딥러닝 모델구성 및 학습법 (0) | 2022.12.08 |
|---|---|
| [딥러닝] DNN: 정의, 순전파&역전파, 활성화함수, 기울기소실문제 (0) | 2022.12.08 |
| [머신러닝] Ensemble, Bagging, Boosting (0) | 2022.11.24 |
| [KMOOC-실습으로배우는머신러닝] 7.Ensemble Learning (0) | 2022.11.22 |
| [KMOOC-실습으로배우는머신러닝] 5. Support Vector Machine (0) | 2022.11.22 |