목록머신러닝 (8)
오답노트

이미지 데이터를 조건에 맞게 증폭 시킨다. from tensorflow.keras.preprocessing.image import ImageDataGenerator 로 임포트 시킬 수 있다. train_datagen=ImageDataGenerator( rescale=1./255, # 전처리(스케일링) horizontal_flip=True, # 수평이동 vertical_flip=True, # 수직이동 width_shift_range=0.1, # 좌우 이동 height_shift_range=0.1, # 상하 이동 rotation_range=5, # 회전 zoom_range=1.2, # 확대/축소 shear_range=0.7, # 당겨서 변형(층밀리기 변형) fill_mode='nearest' # neares..
XGBoost 에서의 모델을 세이브하는 방법을 알아본다. 파이썬 자체에서 제공하는 방법과 XGBoost 자체에서 제공하는 방법을 소개한다. 1. pickle - 파이썬에서 제공하는 방법. import pickle pickle.dump(model, open('../dir/file.dat', 'wb')) model=pickle.load(open('../dir/file.dat', 'rb')) 2. joblib - 파이썬에서 제공하는 방법. import joblib joblib.dump(model, '../dir/file.dat') model=joblib.load('../dir/file.dat') 3. save_model - XGBoost 에서 제공하는 방법. model.save_model('../dir/fil..
eval_metrics - XGBoost 에서 사용하는 metric 의 종류들이다. - rmse: 일반적으로 사용하는 RMSE 이다. mse 를 사용할 경우 로스가 높은 경우엔 더 높은 패널티를 주는 경우가 있어 그 차이를 줄이기 위해 제곱 된 mse 에 제곱근을 씌운다. - mae: 일반적인 MSE 에서 절대값을 사용했다. 로스가 음수일 경우에도 직관적으로 확인할 수 있다. - logloss: negative log-likelihood - error: 이진분류법에서 사용하는 metric 이다. 0.5 이상에서는 1로, 0.5 미만에서는 0으로 분류한다. - merror: 다중분류법에서 사용하는 metric 이다. - mlogloss: 다중분류법에서 사용하는 logloss 의 방식이다. - auc: 곡선..
GridSearchCV() 머신러닝의 파라미터들을 딕셔너리 형태로 묶어두고 전부 학습을 시킨다. model=gridSearch(RandomForestClassifier()) 의 형태로 만든 후 학습 및 검증을 시도한다. parameters=[ {'C':[1, 10, 100, 1000], 'kernel':['linear']}, {'C':[1, 10, 100], 'kernel':['rbf'], 'gamma':[0.001, 0.0001]}, {'C':[1, 10, 100, 1000], 'kernel':['sigmoid'], 'gamma':[0.001, 0.0001]} ] 위와 같이 파라미터들을 정의한다면 윗 줄에서부터 4번 6번 8번 학습을하며 총 18번, KFold의 n_splits=5 라면 18*5 해서 ..

KFold 는 데이터셋을 K 개로 훈련과 검증 데이터로 나눈다. 출처:en.wikipedia.org/wiki/Cross-validation_(statistics) 위의 그림에서는 전체 데이터를 8 개로 나누었으며 총 8번의 학습을 한 것을 볼 수 있다. KFold 는 직접적인 성능 향상을 이루진 않지만, 단순 train_test_split 으로 훈련용, 검증용 데이터로 나눌 때에 발생하는 데이터의 낭비를 일반화 시켜 방지할 수 있다. 또한 cross_val_score 를 통해 해당 훈련용 데이터를 검증할 수 있다. 코드로 확인하면, # 0. import libraries import warnings warnings.filterwarnings('ignore') # 경고문 무시 / 제거 from sklear..
머신러닝에는 분류, 회귀모델에 따라 sklearn 에서만 50여개의 모델들이 존재한다. 0.20.x 대에 최적화가 되어있어 현재 내가 사용하고 있는 0.23.0 버전에서는 쓸 수 없는 것들이 몇 개가 존재하는데, 남아있는 것들만으로도 꽤나 유용하게 사용할 수 있다. 사용방법을 말하자면 우선 모델들을 가져오기 위해선 from sklearn.utils.testing import all_estimators 를 추가한다. all_estimators 에는 0.20.x 기준 쓸 수 있는 모델들이 존재하는데, 위의 라이브러리에서 모든 모델들을 한 눈에 보기 위해선 for 문을 이용해주면 된다. 우선 분류 모델의 경우 from sklearn.datasets import load_wine from sklearn.metr..
구글에서는 외장 GPU 를 쓸 수 없는 환경에서 GPU 를 쓸 수 있게 해주는 기능을 제공한다. colab.research.google.com/notebooks/welcome.ipynb?hl=ko Google Colaboratory colab.research.google.com 위의 링크로 들어갈 수 있으며, 외장 GPU 를 쓸 때엔 한 번에 12시간 동안 이용이 가능하다. 일반적인 환경에서 사용 가능하며 현재 내가 쓰고 있는 visual studio code 와 똑같이 작성 및 구동시키면 된다. 그러나 보통 환경에서는 디스크에 파일을 넣어놓고 경로를 지정해서 로드를 하지만 (e.g. '../data/MachineLearning/data.csv' ...) 구글 코랩에서는 내 디스크에 접근을 할 수가 없다..

Pinball loss High penalty to underforecast above 50% percentiles High penalty to overforecast below 50% percentiles 높은 quantile 값에서는 측정된 값이 예측값보다 낮아야 함 >> overforecast 유도 반대로 낮은 quantile값에서는 측정된 값이 예측값보다 높아야 함 >> underforecast 유도 τ: 퀀타일 값 (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9) y: 실제 값 z: 퀀타일 예측값 Lτ: pinball loss 함수 참고 자료 링크: https://medium.com/analytics-vidhya/a-tutorial-on-quantile-regre..