파이썬 (49) 썸네일형 리스트형 light GBM이란? 파라미터 설명과 코드 실습 LightGBM은 XGBoost에 비해 훈련 시간이 짧고 성능도 좋아 부스팅 알고리즘에서 가장 많은 주목을 받고 있다. GradientBoosting을 발전시킨 것이 XGBoost, 여기서 속도를 더 높인 것이 LightGBM이다. ※참고 부스팅과 배깅의 차이점과 AdaBoosting / GradientBoosting 개념 LightGBM이란? LightGBM은 트리 기준 분할이 아닌 리프 기준 분할 방식을 사용한다. 트리의 균형을 맞추지 않고 최대 손실 값을 갖는 리프 노드를 지속적으로 분할하면서 깊고 비대칭적인 트리를 생성한다. 이렇게 하면 트리 기준 분할 방식에 비해 예측 오류 손실을 최소화할 수 있다. LightGBM 파라미터 파라미터 default 설명 num_iterations 100 반복 수.. 원핫인코딩 파이썬 get_dummies 함수로 범주형 변수 전처리 원핫인코딩, 가변수(dummy variable)은 성별, 학력과 같은 범주형 변수를 0 또는 1값을 가진 하나 이상의 새로운 특성으로 바꾼 것이다. 이 때 변수의 특성 개수는 상관없다. 예를 들어 학력이라는 특성에 '학사', '석사', '박사' 3개 값이 있다고 가정해보자. 그러면 어떤 사람의 학력 값에 해당하는 특성은 1이 되고 나머지는 0이 된다. 즉 데이터 포인트마다 정확히 3개의 특성 중 하나는 1이 되고 나머지 2개는 0이 된다. 원핫 인코딩은 왜 하는걸까? 컴퓨터는 문자를 이해할 수 없기 때문에 컴퓨터가 알아들을 수 있는 숫자로 변환시켜주는 작업이 필요한 것이다. 많은 데이터에 문자값이 포함되어 있기 때문에 원핫인코딩은 전처리 과정에서 아주 흔하게 사용되며 머신러닝, 딥러닝뿐만 아니라 자연어처.. 사이킷런 분류기의 예측 불확실성 추정 함수 - decision_functon과 predict_proba *이 글은 파이썬 라이브러리를 활용한 머신러닝 책을 기반으로 작성되었습니다. 분류기에서 예측의 불확실성을 추정하는 함수는 decision_function과 predict_proba 크게 두가지가 있다. 대부분의 분류 클래스가 두 함수(최소 한개)를 제공한다. 이진분류뿐만 아니라 다중 분류에도 사용할 수 있다. 예측을 만들어내는 것은 decision_function과 predict_proba 출력의 임계값을 검증하는 것인데, 이진탐색에서 임계값은 각각 0과 0.5이다. 이진 분류에서 decision_function 결과값은 n_samples이며 각 샘플이 하나의 실수 값을 반환한다. decision_function 값의 범위는 데이터와 모델 파라미터에 따라 달라진다. 반면, predict_proba는 각 .. 그리드 서치로 최적화 하이퍼파라미터 찾기 (GridSearchCV) 머신러닝에서 모델의 성능을 높이기 위해서는 하이퍼파라미터를 적절하게 튜닝하는 것이 중요하다. 이 때 파라미터를 직접 하나하나 조정해가면서 최적의 성능을 찾을 수도 있겠지만 다소 무식한 방법이고 어떤 것이 최적화된 매개변수 값인지 알 수 없다. 그래서 사용하는 것이 그리드 서치나 랜덤서치, 베이지안 최적화와 같은 방법이다. 이번 포스팅에서는 가장 기초인 그리드 서치에 대해서 알아보자. 우선 데이터 셋은 단순히 훈련/테스트 셋으로만 나누면 새로운 데이터를 모델에 넣었을 때 맞지 않을 수 있기 때문에 중간에 모델의 성능을 평가하는 검증 셋도 반드시 필요하다. 보통 6:2:2의 비율로 훈련/검증/테스트 셋을 나눈다. 자세한 내용은 아래 포스팅을 참고 validation set이란 무엇일까? 그리드 서치란? 그리.. axis=1 뜻, 판다스 drop함수로 간단하게 알아보기 판다스에서 평균을 계산하거나 drop 함수 등을 사용할 때 파라미터에 axis=1을 넣는 경우가 많다. 습관적으로, 혹은 남들이 쓰는 코드에 그렇게 되어 있어서 똑같이 따라 쓰는 경우가 많았는데 이번 기회에 제대로 axis=1의 뜻을 알아보자. drop함수의 파라미터 중 하나인 axis에 대한 설명이다. 보면 index를 drop하려면 axis=0으로 설정하고, 컬럼을 drop하려면 axis=1로 설정하라고 써있다. 즉, aix=0은 행을 기준으로 동작하는 것이고 axis=1은 열을 기준으로 동작하는 것이다. heart.csv파일에서 타겟 변수는 output이고 나머지 변수들은 모두 X변수이다. train, test 분리를 위해서 X,y를 지정해줘야 하는데 이 때 X는 heart 데이터에서 output .. validation set이란? test set과의 차이점과 사용 방법 여태까지 공부를 할 때는 train set과 test set 두개로만 데이터를 나누었다. 다만 이렇게 train, test 두개로만 분리하는 것은 기초적인 수준이고, 보통 현업에서 모델을 만들 때는 train, test, validation set 세개로 나눈다. Validation Set과 Test Set의 차이? validation set : 학습이 이미 완료된 모델을 검증하기 위한 set (중간 점검) test set : 학습과 검증이 끝난 모델의 최종 성능 평가용 단순히 train, test로만 분리하면 train set으로 모델을 만들고 test set으로 성능을 평가하게 된다. 보통 현업에서 모델을 만들 때는 한번에 모델이 만들어지기 보다는 피드백을 받고 수정을 거치는 경우가 대부분이다. 그런.. 데이터 스케일링 반드시 필요한 전처리 과정! fit_transform과 transform의 차이 모델을 학습시키기에 앞서 데이터 전처리는 꼭 필요하다. 특성별로 값의 범위가 다 다르기 때문에 어떤 특성은 값이 너무 작고 어떤 특성은 값이 너무 크다면 알고리즘 학습 시 0으로 수렴하거나 무한으로 발산해버리면서 원하는 결과값이 나오지 않을 수 있다. 특히 SVM이나 신경망 알고리즘 같은 경우 데이터의 스케일에 매우 민감하기 때문에 알고리즘에 맞는 데이터 특성값 조정은 반드시 선행되어야 한다. 데이터 스케일링의 종류 1. StandardScaler 평균=0, 표준편차=1로 조정해서 모든 특성이 같은 크기를 갖게 한다. 2. MinMaxScaler 최대값=1, 최소값=0으로 조정, 아웃라이어에 취약 3. RobustScaler 중앙값=0, IQR(1분위~3분위값)=1로 조정, 아웃라이어 영향을 최소화하며 .. 에이다부스트와 그라디언트부스팅 기본 개념과 코드, 부스팅과 배깅의 차이 이번 포스팅에서는 앙상블 학습 두번째, 부스팅에 대해 알아보자. 다른 앙상블 학습인 배깅과 랜덤포레스트는 아래 링크에서 확인! 2021.06.21 - [파이썬/머신러닝] - 배깅(bagging) 기본 개념과 예시, 사이킷런 BaggingClassifier 2021.06.19 - [파이썬/머신러닝] - 랜덤 포레스트 원리와 구현 사이킷런 예제로 코드 실습해보기 부스팅 기본 개념, 배깅과의 차이 부스팅은 weak learner 여러개를 연결해 strong learner를 만드는 앙상블 기법이다. 배깅은 훈련 세트에서 중복을 허용하여 샘플링해서 여러 개의 분류기를 만들어 분류 모델의 경우 최빈값을, 회귀 모델의 경우 평균값을 최종 예측값으로 사용하는 병렬 학습이다. 반면 부스팅은 한번에 여러개의 예측기를 만드.. 이전 1 2 3 4 5 6 7 다음