일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- R
- 빅분기
- 카카오
- 실습
- oracle
- SQL
- 파이썬
- 데이터 분석
- 알고리즘
- 실기
- Kaggle
- 코딩테스트
- seaborn
- level 2
- python3
- 오라클
- 튜닝
- sklearn
- matplotlib
- 프로그래머스
- pandas
- Numpy
- Oracel
- 빅데이터 분석 기사
- Python
- level 1
- 머신러닝
- Today
- Total
목록데이터 분석/Python (72)
라일락 꽃이 피는 날
앙상블 (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..
LinearRegression from sklearn.linear_model import LinearRegression model = LinearRegression(n_jobs=-1) model.fit(x_train, y_train) pred = model.predict(x_test)
MSE(Mean Squared Error) 예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 값 MAE (Mean Absolute Error) 예측값과 실제값의 차이에 대한 절대값에 대하여 평균을 낸 값 RMSE (Root Mean Squared Error) 예측값과 실제값의 차이에 대한 제곱에 대하여 평균을 낸 뒤 루트를 씌운 값 평가 지표 함수로 만들기 import numpy as np pred = np.array([3, 4, 5]) actual = np.array([1, 2, 3]) def my_mse(pred, actual): return ((pred - actual)**2).mean() my_mse(pred, actual) # 4.0 def my_mae(pred, actual): retur..
오차 (Error) from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_cancer() data = cancer['data'] target = cancer['target'] (0-악성종양, 1-양성종양) feature_names=cancer['feature_names'] df = pd.DataFrame(data=data, columns=feature_names) df['target'] = cancer['target'] pos = df.loc[df['target']==1] neg = df.loc[df['target']==0] 양성 환자 357..