[머신러닝/사이킷런] 회귀: 데이터 변환(로그 변환), 로지스틱 회귀, 회귀 트리
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 선형 회귀 모델을 위한 데이터 변환개요선형 회귀 모델은 피처값(X)과 타깃값(Y)의 분포가 정규 분포 형태를 매우 선호한다.특히 타깃값의 경우 정규 분포 형태가 아니라 특정값의 분포가 치우친 왜곡(Skew)된 형태의 분포도일 경우 예측 성능에 부정적인 영향을 미칠 가능성이 높다.따라서 선형 회귀 모델을 적용하기 전에 먼저 데이터에 대한 스케일링/정규화 작업을 수행하는 것이 일반적이다. 일반적으로 피처(X) 데이터셋에 적용하는 변환 작업은 다음과 같은 방법이 있을 수 있다.1. StandardScaler을 이용해 표준화를 수행하거나 MinMaxScaler을 이용해 정규화를 수행2. (1번 방법을 통한 성능 향상이 없을 경우)스케일링/정규화를 수..
[머신러닝/사이킷런] 회귀: 다항 회귀, 편향-분산 트레이드오프, 규제 선형 모델
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 다항 회귀개요회귀가 독립변수의 단항식이 아닌 2차, 3차 방정식과 같은 다항식으로 표현되는 것y = w0 + w1*x1 + w2*x2 + w3*x1*x2 + w4*x1^2 + w5*w2^2회귀에서 선형/비선형 회귀를 나누는 기준은 회귀 계수에 따른 것이기 때문에 다항 회귀도 선형 회귀이다. 사이킷런PolynomialFeatures()단항식 피처를 다항식 피처로 변환- degree: 다항식의 차수 다항 회귀를 이용한 과소적합 및 과적합 이해다항식의 차수가 높아질수록 매우 복잡한 피처 간의 관계까지 모델링이 가능하다.하지만 다항 회귀의 차수(degree)가 높아질수록 과적합의 문제가 크게 발생한다. 결론적으로, 학습 데이터의 패턴을 잘 반영하면서..
[머신러닝/사이킷런] 회귀: 선형 회귀, 경사하강법, 평가
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 회귀개요통계학에서는 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 통칭선형회귀 Y = W1*X1 + W2*X2 + W3*X3 + ... + Wn*Xn를 예로 들면 Y는 종속변수, X1, X2 ... Xn은 독립변수, W1, W2 ... Wn은 이 독립변수의 값에 영향을 미치는 회귀 계수(Regression coefficients)이다.머신러닝 관점에서 본다면 독립변수는 피처에 해당되며 종속변수는 결정 값이다.머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것이다. 지도학습에서 분류와 회귀의 가장 큰 차이는 분류는 예측값이 카테고리와 같은 이산형 클래스 값이..
[머신러닝/사이킷런] 데이터 가공: 언더&오버 샘플링, 로그 변환, 이상치 제거
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 언더 샘플링과 오버 샘플링개요레이블이 불균형한 분포를 가진 데이터셋을 학습시킬 때, 이상 레이블을 가지는 데이터 건수가 정상 레이블을 가진 데이터 건수에 비해 너무 적으면 예측 성능의 문제가 발생함즉, 이상 레이블을 가지는 데이터 건수는 매우 적기 때문에 제대로 다양한 유형을 학습하지 못하는 반면, 정상 레이블을 가지는 데이터 건수는 매우 많기 때문에 일방적으로 정상 레이블로 치우친 학습을 수행이 문제를 해결하기 위해 대표적으로 오버 샘플링(Oversampling)과 언더 샘플링(Undersampling) 방식을 수행일반적으로는 오버 샘플링 방식이 예측 성능상 유리한 경우가 많아 자주 사용됨. 언더 샘플링많은 레이블을 가진 데이터셋을 적은 레..
[머신러닝/사이킷런] 하이퍼 파라미터 튜닝: 베이지안 최적화
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 Grid Search 방식의 단점하이퍼 파라미터 튜닝 중 Grid Search 방식은 튜닝해야 할 하이퍼 파라미터 개수가 많을 경우 최적화 수행 시간이 오래 걸린다는 단점이 존재한다. 여기에 개별 하이퍼 파라미터 값의 범위가 넓거나 학습 데이터가 대용량일 경우에는 최적화 시간이 더욱 늘어나게 된다.XGBoost나 LightGBM 등 하이퍼 파라미터 개수가 다른 알고리즘에 비해 많은 모델은 실무의 대용량 학습 데이터에 Grid Search 방식을 적용하면 많은 시간이 소요될 수 있다. 베이지안 최적화개요목적 함수 식을 제대로 알 수 없는 블랙 박스 형태의 함수에서 최대 또는 최소 함수 반환 값을 만드는 최적 입력값을 가능한 적은 시도를 통해 빠..
[머신러닝/사이킷런] 앙상블 학습(분류): 스태킹(Stacking)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 개요개별 알고리즘의 예측 결과 데이터셋을 최종적인 메타 데이터셋으로 만들어 별도의 ML 알고리즘으로 최종 학습을 수행하고, 테스트 데이터를 기반으로 다시 최종 예측을 수행스태킹 모델의 핵심은 여러 개별 모델의 예측 데이터를 각각 스태킹 형태로 결합해 최종 메타 모델의 학습용 피처 데이터셋과 테스트용 피처 데이터셋을 만드는 것  두 종류의 모델 필요1) 개별적인 기반 모델: 2~3개를 넘어서는 많은 개별 모델이 필요2) 기반 모델의 예측 데이터를 학습 데이터로 만들어서 학습하는 최종 메타 모델 M개의 로우, N개의 피처(컬럼)를 가진 데이터셋에 총 3개의 기반 모델을 활용1. 모델별로 각각 학습시킨 뒤 예측을 수행 -> 각각 M개의 로우를 가진..
[머신러닝/사이킷런] 앙상블 학습(분류): 부스팅(GBM, XGBoost, LightGBM)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 부스팅(Boosting)개요여러 개의 약한 학습기(weak learner)를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가며 학습하는 방식 0. AdaBoost(Adaptive boosting)개요오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 대표적인 알고리즘  맨 왼쪽 그림과 같이 +와 -로 된 피처 데이터셋이 있다면- Step 1: 첫 번째 약한 학습기(weak learner)가 분류 기준 1로 +와 -를 분류- Step 2: Step 1의 오류 데이터(동그라미 안의 +)에 대해 가중치 값을 부여- Step 3: 두 번째 약한 학습기가 분류 기준 2로 +와 -를 분류...- Step Final..
[머신러닝/사이킷런] 앙상블 학습(분류): 보팅, 배깅(랜덤 포레스트)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 개요여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법정형 데이터 분류에서 뛰어난 성능을 보인다. 1. 보팅(Voting)여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식서로 다른 알고리즘을 가진 분류기를 결합  1) 하드 보팅(Hard Voting)예측한 결괏값들 중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정(다수결 원칙) 2) 소프트 보팅(Soft Voting)분류기들의 레이블 값 결정 확률을 모두 더하고 이를 평균해서 이들 중 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정. 일반적으로 적용되는 보팅 방법 사이킷런VotingClassifier()- estima..
[머신러닝/사이킷런] 분류 모델: 결정 트리(Decision Tree)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 개요데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리(Tree) 기반의 분류 규칙을 만드는 것룰 기반의 프로그램에 적용되는 if, else를 자동으로 찾아내 예측을 위한 규칙을 만드는 알고리즘어떤 기준을 바탕으로 규칙을 만들어야 가장 효율적인 분류가 될 것인가가 알고리즘의 성능을 크게 좌우한다.  - 규칙 노드(Decision node, Internal node): 규칙 조건- 리프 노드(Leaf node): 결정된 클래스 값- 서브 트리(Sub Tree, Branch): 새로운 규칙 조건마다 새롭게 생성 주의할 점데이터셋의 피처를 결합해 규칙 조건을 만들 때마다 규칙 노드가 만들어지고, 많은 규칙은 곧 분류를 결정하는 방식이 더욱 복잡..
helena1129