파이썬/머신러닝 (18) 썸네일형 리스트형 XG Boost 파이썬 이해하기 - 파라미터 정리 및 파이썬래퍼와 사이킷런래퍼 코드 실습 XGBoost는 최적화된 그레디언트 부스팅 구현이 가능한 파이썬 라이브러리이다. XGBoost는 빠른 속도, 확장성, 이식성이 특징이며 캐글 등 머신러닝 경연 대회에서 우승 후보들이 사용하는 도구로 성능이 아주 좋다. 이전 모델이 과소적합한 샘플에 가중치를 줘서 다음 모델에서 예측 정확도를 높이는 방식으로 모델을 보완해가는 부스팅 기법을 사용한다. 부스팅, 배깅의 차이와 그라디언트 부스팅 gmb보다 빠르고 조기종료가 가능하며 과적합 방지가 가능하다. 또한 분류와 회귀 둘 다 사용이 가능하다. 사이킷런에서 제공하지 않기 때문에 따로 설치가 필요하다. pip install xgboost 위 코드로 간단하게 설치 가능하다. XGBoost는 파이썬래퍼 XGBoost와 사이킷런래퍼XGBoost 두가지 방법으로 사.. K-최근접 이웃 (K-NN) 분류기, 가장 간단한 머신러닝 알고리즘 K-최근접 이웃은 가장 간단한 머신러닝 알고리즘이다. 일반적으로 머신러닝 모델을 만들면 clf.fit(X_train, y_train)으로 훈련시키고 테스트해서 성능을 평가하는데 k-nn은 따로 훈련이 필요없다. 훈련 데이터셋을 그냥 저장만 하면 되기 때문에 lazy model이라고도 한다. k-nn은 가장 가까운 훈련 데이터 포인트 k개를 최근접 이웃으로 찾아 예측에 사용한다. k가 1이라면 가장 가까운 포인트 1개를 예측에 사용하는 것이고, k가 3이라면 3개를 예측에 사용하는 것이다. 위 그림을 예로 들어보자. 초록색 원이 예측하고자 하는 데이터이다. 만약 k=3이라면 가장 가까운 거리에 있는 3개의 데이터는 빨간색 삼각형 2개와 파란색 사각형 1개이므로 아마 해당 데이터를 빨간색 삼각형으로 예측할 .. light GBM이란? 파라미터 설명과 코드 실습 LightGBM은 XGBoost에 비해 훈련 시간이 짧고 성능도 좋아 부스팅 알고리즘에서 가장 많은 주목을 받고 있다. GradientBoosting을 발전시킨 것이 XGBoost, 여기서 속도를 더 높인 것이 LightGBM이다. ※참고 부스팅과 배깅의 차이점과 AdaBoosting / GradientBoosting 개념 LightGBM이란? LightGBM은 트리 기준 분할이 아닌 리프 기준 분할 방식을 사용한다. 트리의 균형을 맞추지 않고 최대 손실 값을 갖는 리프 노드를 지속적으로 분할하면서 깊고 비대칭적인 트리를 생성한다. 이렇게 하면 트리 기준 분할 방식에 비해 예측 오류 손실을 최소화할 수 있다. LightGBM 파라미터 파라미터 default 설명 num_iterations 100 반복 수.. 에이다부스트와 그라디언트부스팅 기본 개념과 코드, 부스팅과 배깅의 차이 이번 포스팅에서는 앙상블 학습 두번째, 부스팅에 대해 알아보자. 다른 앙상블 학습인 배깅과 랜덤포레스트는 아래 링크에서 확인! 2021.06.21 - [파이썬/머신러닝] - 배깅(bagging) 기본 개념과 예시, 사이킷런 BaggingClassifier 2021.06.19 - [파이썬/머신러닝] - 랜덤 포레스트 원리와 구현 사이킷런 예제로 코드 실습해보기 부스팅 기본 개념, 배깅과의 차이 부스팅은 weak learner 여러개를 연결해 strong learner를 만드는 앙상블 기법이다. 배깅은 훈련 세트에서 중복을 허용하여 샘플링해서 여러 개의 분류기를 만들어 분류 모델의 경우 최빈값을, 회귀 모델의 경우 평균값을 최종 예측값으로 사용하는 병렬 학습이다. 반면 부스팅은 한번에 여러개의 예측기를 만드.. 배깅(bagging) 기본 개념과 예시, 사이킷런 BaggingClassifier 앙상블 훈련 방법 중 가장 많이 쓰이는 방법은 배깅, 부스팅, 스태킹이 있다. 오늘은 그 중에서 배깅에 대해서 알아보자. 앙상블 방법은 여러개의 괜찮은 예측기를 연결해 더 좋은 예측기를 만드는 방법이다. 각각의 예측기의 성능이 뛰어날 필요는 없다. 각 분류기가 weak learner여도 충분히 많고 다양한 분류기를 결합해서 만든 앙상블은 strong learner가 될 수 있다. 배깅이란? 다양한 분류기를 만드는 방법은 2가지가 있다. 1. 각기 다른 훈련 알고리즘을 사용하기 2. 훈련 세트의 서브셋을 무작위로 구성하여 하나의 분류기를 다르게 학습시키기 이 때 두번째 방법에서 중복을 허용해서 샘플링하는 것이 배깅(Bootstrap aggregation), 중복을 허용하지 않는 것이 페이스팅(pasting.. 랜덤 포레스트 원리와 구현 사이킷런 예제로 코드 실습해보기 오늘은 앙상블 기법 중 하나인 랜덤포레스트에 대해 공부해봤다. 랜덤포레스트를 배우려면 일단 결정트리(Decision Tree)가 뭔지부터 알아야 한다. 결정 트리에 대한 자세한 내용은 아래 포스팅을 참고! 2021.06.13 - [파이썬/머신러닝] - 결정트리(Decision Tree) , 엔트로피 개념과 시각화까지 결정트리(Decision Tree) , 엔트로피 개념과 시각화까지 Decision Tree 모델은 가장 많이 쓰이는 지도학습 ML 모델 중 하나이다. 추후 학습할 앙상블 학습의 배깅 방법인 Random Forest는 Decision Tree 여러개를 모아 모델을 학습시키는 방식이다. 그렇기에 그 기 for-my-wealthy-life.tistory.com 랜덤포레스트는 결정트리 여러개로 만들.. 캐글 heart 데이터로 EDA부터 로지스틱회귀, 트리모델 적합까지 총정리 오늘도 열심히 Kaggle 필사! 오늘은 심장질환을 예측하는 heart.csv 파일로 linear classifiers와 tree model을 학습시켜봤다. output이 타겟(y), 나머지는 X변수이다. 데이터 구조 파악 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns heart = pd.read_csv('heart.csv') heart.head() print(heart.shape()) >>(303,14) print(heart.info()) 총 303개의 행, 14개의 열로 이루어져있고 각 컬럼별 속성을 확인해보면 null 값은 없고 oldpeak 컬럼을 제외하면 나머지는 모두 int .. 타이타닉 데이터 전처리와 결정트리 모델 오늘은 titanic 데이터를 갖고 decision tree 모델을 공부해봤다. 머신러닝 공부할 때 kaggle은 꼭 보는 것이 좋다. 워낙 훌륭하신 분들이 많아.. 필사를 해보는 것 만으로도 아주 많은 도움이 된다. 결정트리(Decision Tree) 기본 개념 import numpy as np import pandas as pd import re import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline from sklearn.metrics import accuracy_score from sklearn.model_selection import KFold, cross_val_score, train_test_split from skl.. 이전 1 2 3 다음