GBM
- 부스팅 알고리즘은 여러개의 약한 학습기(week learner)를 순차적으로 학습-예측하면서
잘못 예측한 데이터에 가중치를 부여하여 오류를 개선해가는 방식
- GBM은 가중치를 업데이트할 때 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이
- 일반적으로 GBM의 성능 자체는 랜덤포레스트보다 좋다고 알려져 있으나, sklearn의 GBM은 속도가 아주 느리다.
import pandas as pd
import matplotlib.pyplot as plt
url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/features.txt"
feature_name_df = pd.read_csv(url, sep='\s+', header=None, names=['column_index', 'column_name'])
feature_name = feature_name_df.iloc[:, 1].values.tolist()
X_train_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/train/X_train.txt"
X_test_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/test/X_test.txt"
X_train = pd.read_csv(X_train_url, sep='\s+', header=None)
X_test = pd.read_csv(X_test_url, sep='\s+', header=None)
X_train.columns = feature_name
X_test.columns = feature_name
y_train_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/train/y_train.txt"
y_test_url = "https://raw.githubusercontent.com/PinkWink/ML_tutorial/master/dataset/HAR_dataset/test/y_test.txt"
y_train = pd.read_csv(y_train_url, sep='\s+', header=None, names=['action'])
y_test = pd.read_csv(y_test_url, sep='\s+', header=None, names=['action'])
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score
import time
import warnings
warnings.filterwarnings('ignore')
547초가 걸렸다 ..
지금까지 돌린 acc 중 가장 오래 걸렸다.
이 코드는 중단했다.
40분이 넘게 걸리는 이유로 강사님이 띄워주시는 결과값을 참고하기로 한다.
X_test 데이터에서의 성능은 93.9%가 나왔다.
'Machine Learning' 카테고리의 다른 글
[ML] 추천시스템_ 책 추천 알고리즘 (0) | 2023.01.12 |
---|---|
[ML] 추천시스템_ 장르 유사도를 고려한 영화 추천 알고리즘 (0) | 2023.01.11 |
[ML] Credit Card Fraud Detection (0) | 2023.01.10 |
[ML] Ensemble _HAR data _ DecisionTree / RandomForest (0) | 2023.01.09 |
[ML] Cost Function_ Boston 집값 예측 (0) | 2023.01.07 |