반응형

자기계발/Python 52

[빅데이터분석기사] 26 라쏘회귀모델

라쏘 회귀모델(Lasso) 라쏘(Lasso) 회귀모델은 릿지회귀모델과 유사하게 특성의 계수값을 0에 가깝게 하지만 실제 중요하지 않은 변수의 계수를 0으로 만들어 불필요한 변수를 제거하는 모델이다. scikit-learn 라쏘(Lasso)회귀모델은 사이킷런의 linear_model 중 Lasso이다. alph값이 하이퍼파라미터이며, 디폴트값은 alpha=1 이다. alpha값이 커지면 계수를 0에 가깝게 제약하여 훈련데이터의 정확도는 낮아지지만 일반화에는 기여한다. 반면 alpha값이 0에 가까울수록 선형회귀와 유사하게 작용한다. 1) 기본모델 적용 from sklearn.linear_model import Lasso model = Lasso() model.fit(X_scaled_train, y_trai..

자기계발/Python 2022.06.25

[빅데이터분석기사] 25 릿지회귀모델

릿지 회귀모델(Ridge) 선형회귀분석의 기본원리를 따르나 가중치(회귀계수) 값을 최대한 작게 만들어, 즉 0에 가깝게 만들어 모든 독립변수(특성)가 종속변수(레이블)에 미치는 영향을 최소화하는 제약(regularization)을 반영한 회귀모델이다. 각 특성의 영향을 최소화하여 훈련데이터에 과대적합되지 않도록 제약이 있는 모델이며 다항곡선 추정도 가능하다. 핵심 하이퍼파라미터는 alpha 값, 기본값은 1, 0에 가까울수록 규제를 하지 않고 숫자가 커질수록 더 많은 규제를 한다. scikit-learn 릿지 회귀모델은 사이킷런의 linear_model 중 Ridge이다. 1) 기본모델 적용 from sklearn.linear_model import Ridge model=Ridge() model.fit(..

자기계발/Python 2022.06.24

[빅데이터분석기사] 24 선형회귀모델

선형회귀모델(linear regression model) 연속형 원인변수가 연속형 결과변수에 영향을 미치는지를 분석하여 레이블 변수를 예측하기 위한 목적으로 활용된다. 선형회귀모델에서 RMSE가 가장 대표적인 오차 지표이다. 의미는 '실제값과 예측값 간에 전 구간에 걸친 평균적인 오차'로서 실제 레이블(y)의 단위를 그대로 반영하여 해석이 쉽다. scikit-learn 선형회귀모델은 사이킷런의 linear_model에 있다. 이 중 LinearRegression이 선형회귀 알고리즘이다. 선형회귀모델은 특별한 하이퍼파라미터가 없다. normalize는 특성치(X)의 정규화인데 보통 데이터를 정규화하여 모델에 투입하기 때문에 False로 둔다. intercept는 X가 0일때 Y의 기본값인 상수를 모델에 반..

자기계발/Python 2022.06.24

[빅데이터분석기사] 23 앙상블 스태킹

앙상블 스태킹(Stacking) 스태킹은 데이터셋이 아니라, 여러 학습기에서 예측한 예측값(Predict value)으로 다시 학습 데이터를 만들어 일반화(generalization)된 최종 모델을 구성하는 방법이다. 예측값들로 예측을 하는 아이디어이다. scikit-learn 스태킹 방법은 사이킷런의 ensemble 안에 있다. 분류는 StackingClassifier, 회귀는 StackingRegressor이다. 주요 하이퍼파라미터는 estimators > 알고리즘을 쌓는 역할을 한다. Part1. 분류(Calssification) #Part1. 분류(Classification) from sklearn.ensemble import RandomForestClassifier from sklearn.svm..

자기계발/Python 2022.06.24

[빅데이터분석기사] 22 앙상블 부스팅

앙상블 부스팅 부스팅(Boosting)은 여러 개의 약한 학습기(weak learner)를 순차적으로 학습시켜 예측하면서 잘 못 예측한 데이터에 가중치를 부여하여 오류를 개선해 나가며 학습하는 앙상블 모델이다. (배깅은 한 번에 여러 개의 데이터셋에서 학습한 결과를 종합하는 병렬식 앙상블, 부스팅은 직렬식이라고 볼 수 있다.) scikit-learn 부스팅은 ensemble 안에 있다. 사이킷런에서는 AdaBoosting과 GradientBoosting을 지원하고 있다. AdaBoosting AdaBoosting은 AdaBoostingClassifier(분류)와 AdaBoostingRegressor(회귀) 알고리즘이 있다. 두 방식의 기본 옵션은 동일하며, base_estimator와 n_estimato..

자기계발/Python 2022.06.23

[빅데이터분석기사] 21 앙상블 배깅

앙상블 배깅 학습 데이터에 대해 여러 개의 부트스트랩 데이터를 생성하고 각 부트스트랩 데이터에 하나 혹은 여러 알고리즘을 학습시킨 후 산출된 결과 중 투표 방식에 의해 최종 결과를 선정하는 알고리즘이다. scikit-learn 배깅 방법은 사이킷런의 ensemble 안에 있다. 이 중 분류는 BaggingClassifier이고, 회귀는 BaggingRegressor이다. BaggingClassifier과 BaggingRegressor의 기본 옵션은 동일하다. base_estimator에 알고리즘을 설정하고 n_estimator가 부트스트랩을 통해 몇 개의 데이터셋을 구성할지 결정한다. Part1. 분류(Classification) : BaggingClassifier 1. 데이터셋 분리와 정규화 impor..

자기계발/Python 2022.06.23

[빅데이터분석기사] 20 투표기반 앙상블

투표기반 앙상블 여러 분류기를 학습시킨 후 각각의 분류기가 예측하는 레이블 범주가 가장 많이 나오는 범주를 예측하는 방법이다. 사용 방법은 개별 분류기의 최적 하이퍼파라미터를 찾은 후, 투표기반 앙상블로 모델을 만들어 좀 더 좋은 분류와 회귀 예측을 찾는 것이다. 로지스틱모델, 서포트벡터머신, 랜덤포레스트 등 여러 머신러닝 분류기를 수행한 후 예측 범주가 많이 나온 것을 최종 범주로 분류한다. 투표기반 앙상블의 옵션에는 범주 기반일 경우 'Hard Learner' 확률을 기반으로 결정할 경우 'Soft Learner'를 선택한다. scikit-learn 투표기반 앙상블은 사이킷런의 ensemble에 있다. 이 중 분류는 VotingClassifier, 회귀는 VotingRegressor을 사용한다. Vo..

자기계발/Python 2022.06.23

[빅데이터분석기사] 19 랜덤포레스트

랜덤포레스트(Random Forest) 학습 데이터로 여러 의사결정트리를 구성하여 분석하고 이를 종합하는 앙상블(ensemble) 기법이다. 의사결정나무 수십~수백개가 예측한 분류나 회귀값을 평균낸 모델로 이해하면 된다. 랜덤포레스트 과정은 ① 데이터에서 부트스트래핑 과정을 통해 N개의 샘플링 데이터 셋 생성 ② 각 샘플링된 데이터셋에서 임의의 변수 선택 후, M개의 총 변수들 중에서 sqrt(M) 또는 M/3개 ③ 의사결정트리들을 종합하여 앙상블 모델을 만들고 OOB error를 통해 오분류율을 평가 이다. scikt-learn 랜덤포레스트는 사이킷런의 ensemble 안에 있다. 이 중 RandomForestClassifier가 분류 알고리즘, RandomForestRegressor가 회귀 알고리즘이..

자기계발/Python 2022.06.22

[빅데이터분석기사] 18 의사결정나무

의사결정나무 의사결정 규칙을 나무구조로 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로 분류하거나 특정 값을 예측하는데 활용되는 방법이다. 결과를 직관적으로 도식화하여 볼 수 있고, 어떻게 분류되는지 알 수 있다는 장점이 있다. 하지만 분류되는 단계가 많아지면 이해하기 어려워지고, 데이터에 따라 결과가 안정적이지 못하다는 단점이 있다. 주로 특성치가 많지 않고 최종 알고리즘을 도출하기 전 탐색적으로 주요한 분류 변수가 어떤 것인지 확인하는데 사용된다. scikit-learn 의사결정나무는 사이킷런의 tree 안에 있다. 이 중 DecisionTreeClassifier가 분류 알고리즘, DecisionTreeRegressor를 회귀 알고리즘으로 사용한다. 의사결정나무분석에서 분류의 경우 기준은 'gi..

자기계발/Python 2022.06.22

[빅데이터분석기사] 17 서포트 벡터머신

서포트 벡터머신(Support Vector Machine) 일반적으로 성능이 뛰어난 알고리즘이다. 데이터 크기가 중간크기 이하, 여러 변수를 기준으로 분류하는 다소 복잡한 과제에 적합한 머신러닝 기법이다. 레이블 법주를 선형적으로 구분하거나 비선형적으로 분류하는 선 혹은 초평면을 찾는 것이 핵심 과제이다. 두 집단을 가장 멀리 떨어뜨리는 최적선을 찾는다. scikit-learn 서포트 벡터머신은 사이킷런의 svm안에 있다. 분류 알고리즘으로 SVC(Support Vector Classification) 회귀 알고리즘으로 SVR(Support Vector Regression)을 대표적으로 사용한다. SVC에서는 C가 가장 중요한 하이퍼파라미터이며, 'kernel'도 중요하다. kernel은 'kernel=..

자기계발/Python 2022.06.22
반응형