일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Python
- 머신러닝
- Numpy
- 실습
- matplotlib
- 튜닝
- 빅분기
- sklearn
- SQL
- 실기
- 프로그래머스
- 빅데이터 분석 기사
- Kaggle
- 데이터 분석
- level 2
- 오라클
- oracle
- pandas
- 파이썬
- 알고리즘
- level 1
- R
- 카카오
- Oracel
- seaborn
- python3
- 코딩테스트
- Today
- Total
목록Python (164)
라일락 꽃이 피는 날
Cross Validation Cross Validation이란 모델을 평가하는 하나의 방법이다. K-겹 교차검증(K-fold Cross Validation)을 많이 활용한다. K-겹 교차검증 K-겹 교차 검증은 모든 데이터가 최소 한 번은 테스트셋으로 쓰이도록 한다. 아래의 그림을 보면, 데이터를 5개로 쪼개 매번 테스트셋을 바꿔나가는 것을 볼 수 있다. K-Fold Cross Validation Set 만들기 from sklearn.model_selection import KFold n_splits = 5 kfold = KFold(n_splits=n_splits, random_state=42) X = np.array(df.drop('MEDV', 1)) Y = np.array(df['MEDV']) lg..
Stacking 개별 모델이 예측한 데이터를 기반으로 final_estimator 종합하여 예측을 수행한다. 성능을 극으로 끌어올릴 때 활용하기도 한다. 데이터셋이 적은 경우, 과대적합을 유발할 수 있다. from sklearn.ensemble import StackingRegressor stack_models = [ ('elasticnet', poly_pipeline), ('randomforest', rfr), ('gbr', gbr), ('lgbm', lgbm) ] stack_reg = StackingRegressor(stack_models, final_estimator=xgb, n_jobs=-1) stack_reg.fit(x_train, y_train) stack_pred = stack_reg.pre..
부스팅 (Boosting) 약한 학습기를 순차적으로 학습을 하되, 이전 학습에 대하여 잘못 예측된 데이터에 가중치를 부여해 오차를 보완해 나가는 방식이다. 장점 - 성능이 매우 우수하다. (Lgbm, XGBoost) 단점 - 부스팅 알고리즘의 특성상 계속 약점(오분류/잔차)을 보완하려고 하기 때문에 잘못된 레이블링이나 아웃라이어에 필요 이상으로 민감할 수 있다. - 다른 앙상블 대비 학습 시간이 오래걸린다. 대표적인 Boosting 앙상블 - AdaBoost - GradientBoost - LightGBM (LGBM) - XGBoost GradientBoost 성능이 우수하지만 학습시간이 너무 느리다. from sklearn.ensemble import GradientBoostingRegressor, G..
앙상블 (Ensemble) 머신러닝 앙상블이란 여러개의 머신러닝 모델을 이용해 최적의 답을 찾아내는 기법이다. 여러 모델을 이용하여 데이터를 학습하고, 모든 모델의 예측결과를 평균하여 예측한다. 앙상블 특징 1. 앙상블은 대체적으로 단일 모델 대비 성능이 좋다. 2. 앙상블을 앙상블하는 기법인 Stacking과 Weighted Blending도 참고해 볼만 하다. 3. 앙상블 모델은 적절한 Hyperparameter 튜닝이 중요하다. 4. 앙상블 모델은 대체적으로 학습시간이 더 오래 걸린다. 5. 따라서, 모델 튜닝을 하는 데에 걸리는 시간이 오래 소요된다. 앙상블 기법의 종류 - 보팅 (Voting): 투표를 통해 결과 도출 - 배깅 (Bagging): 샘플 중복 생성을 통해 결과 도출 - 부스팅 (B..
파이프라인 (pipeline) from sklearn.pipeline import make_pipeline elasticnet_pipeline = make_pipeline( StandardScaler(), ElasticNet(alpha=0.1, l1_ratio=0.2) ) elasticnet_pred = elasticnet_pipeline.fit(x_train, y_train).predict(x_test) polynomial features 다항식의 계수간 상호작용을 통해 새로운 feature를 생성한다. 예를들면, [a, b] 2개의 feature가 존재한다고 가정하고, degree=2로 설정한다면, polynomial features 는 [1, a, b, a^2, ab, b^2] 가 된다. from ..
1. StandardScaler 평균(mean)을 0, 표준편차(std)를 1로 만들어 주는 스케일러 from sklearn.preprocessing import StandardScaler std_scaler = StandardScaler() std_scaled = std_scaler.fit_transform(x_train) 2. MinMaxScaler min값과 max값을 0~1사이로 정규화 from sklearn.preprocessing import MinMaxScaler minmax_scaler = MinMaxScaler() minmax_scaled = minmax_scaler.fit_transform(x_train) 3. RobustScaler 중앙값(median)이 0, IQR(interquar..
ElasticNet l1_ratio (default=0.5) l1_ratio = 0 (L2 규제만 사용) l1_ratio = 1 (L1 규제만 사용) 0 < l1_ratio < 1 (L1 and L2 규제의 혼합사용) from sklearn.linear_model import ElasticNet ratios = [0.2, 0.5, 0.8] for ratio in ratios: elasticnet = ElasticNet(alpha=0.5, l1_ratio=ratio) elasticnet.fit(x_train, y_train) pred = elasticnet.predict(x_test) elsticnet_20 = ElasticNet(alpha=5, l1_ratio=0.2) elsticnet_20.fit(x_..
규제 (Regularization) 학습이 과대적합 되는 것을 방지하고자 일종의 penalty를 부여하는 것 L2 규제 (L2 Regularization) - 릿지(Ridge) - 각 가중치 제곱의 합에 규제 강도(Regularization Strength) λ를 곱한다. - λ를 크게 하면 가중치가 더 많이 감소되고(규제를 중요시함), λ를 작게 하면 가중치가 증가한다(규제를 중요시하지 않음). L1 규제 (L1 Regularization) - 라쏘(Lasso) - 가중치의 제곱의 합이 아닌 가중치의 합을 더한 값에 규제 강도(Regularization Strength) λ를 곱하여 오차에 더한다. - 어떤 가중치(w)는 실제로 0이 된다. 즉, 모델에서 완전히 제외되는 특성이 생기는 것이다. → L2..