반응형

Machine Learning 21

[Machine Learning][머신러닝] 최적화 / 경사하강법

최적화 (Optimize) 모델이 예측한 결과와 실제 값의 차이를 줄이기 위해서 모델을 수정해야 하는 작업을 최적화라고 한다. 모델의 예측값과 실제 값의 차이를 계산하는 함수를 만들고 그 값이 최소가 되는 지점을 찾는 작업을 한다. 최적화 문제 함수 f(x) 의 값을 최소화(또는 최대화) 하는 변수 x의 값을 찾는 것 import numpy as np import matplotlib.pyplot as plt def func(x): return (x-1)**2 + 2 plt.figure(figsize=(10,10)) xx = np.linspace(-3,4, 100) # xx.shape, f1(xx).shape plt.plot(xx, func(xx)) plt.plot(1,2, 'ro', markersize=..

[Machine Learning][머신러닝][앙상블] Voting

앙상블의 종류 1. 투표방식 여러개의 추정기(Estimator)가 낸 결과들을 투표를 통해 최종 결과를 내는 방식 종류 Bagging - 같은 유형의 알고리즘들을 조합하되 각각 학습하는 데이터를 다르게 한다. Voting - 서로 다른 종류의 알고리즘들을 결합한다. 2. 부스팅(Boosting) 약한 학습기(Weak Learner)들을 결합해서 보다 정확하고 강력한 학습기(Strong Learner)를 만든다. Voting Voting의 유형 hard voting 다수의 추정기가 결정한 예측값들 중 많은 것을 선택하는 방식 soft voting 다수의 추정기에서 각 레이블별 예측한 확률들의 평균을 내서 높은 레이블값을 결과값으로 선택하는 방식 일반적으로 soft voting이 성능이 더 좋다. Votin..

[Machine Learning][머신러닝][앙상블] 결정트리와 랜덤포레스트

의사결정나무(Decision Tree) 개요 데이터를 잘 분류할 수 있는 질문을 던져 가며 대상을 좁혀가는 '스무고개'와 비슷한 형식의 알고리즘. 분기해 나가는 구조가 Tree 구조와 같기 때문에 Decision Tree 라고 한다. 불순도 최대한 감소하는 방향으로 조건을 만들어 학습을 진행한다. 하위노드는 yes/no 두 개로 분기 된다. 머신러닝 모델들 중 몇안되는 White box 모델로 결과에 대한 해석이 가능하다. 과대적합(Overfitting)이 발생하기 쉽다. 앙상블기반 알고리즘인 랜덤 포레스트와 많은 부스팅(Boosting)기반 앙상블 모델들의 기반 알고리즘으로 사용된다. 순도(purity)/불순도(impurity) 서로 다른 종류의 값들이 섞여 있는 비율 한 종류(class)의 값이 많을..

[Machine Learning][머신러닝][지도학습] SVM(Support Vector Machine)

Support Vector Machine (SVM) 선형(Linear) SVM 딥러닝 이전에 분류에서 뛰어난 성능으로 가장 활용도가 높았던 분류모델 하나의 분류 그룹을 다른 그룹과 분리하는 최적의 경계를 찾아내는 알고리즘 중간크기의 데이터셋과 특성(Feature)이 많은 복잡한 데이터셋에서 성능이 좋은 것으로 알려져있다. 선 (1)과 (2)중 어떤 선이 최적의 분류 선일까? 목표: support vector간의 가장 넓은 margin을 가지는 초평면(결정경계)를 찾는다. 초평면 데이터가 존재하는 공간보다 1차원 낮은 부분공간 n차원의 초평면은 n-1차원 공간을 나누기 위해 초평면을 사용한다. 1차원-점, 2차원-선, 3차원-평면, 4차원이상 초평면 Support Vector: 경계를 찾아내는데 기준이 되..

[Machine Learning][머신러닝][지도학습] K-최근접 이웃(KNN)

K-최근접 이웃 (K-Nearest Neighbors, K-NN) 분류(Classification)와 회귀(Regression) 를 모두 지원한다. 예측하려는 데이터와 input 데이터들 간의 거리를 측정해 가장 가까운 K개의 데이터셋의 레이블을 참조해 분류/예측한다. 학습시 단순히 input 데이터들을 저장만 하며 예측 시점에 거리를 계산한다. 학습은 빠르지만 예측시 시간이 많이 걸린다. K-NN에서 K는 새로운 데이터포인트를 분류할때 확인할 데이터 포인트의 개수를 지정하는 하이퍼파라미터 K를 1로 하면 파란색, K를 3으로 하면 주황색 으로 분류한다. K가 너무 작으면 과적합(Overfitting)이 일어나고 K가 너무 크면 성능이 나빠진다. (Underfitting). 주요 하이퍼 파라미터 이웃 수..

[Machine Learning][머신러닝] 과적합/일반화/그리드서치/파이프라인

과대적합(Overfitting ) 일반화 (Generalization) 모델이 새로운 데이터셋(테스트 데이터)에 대하여 정확히 예측하면 이것을 (훈련데이터에서 테스트데이터로) 일반화 되었다고 말한다. 모델이 훈련 데이터로 평가한 결과와 테스트 데이터로 평가한 결과의 차이가 거의 없고 좋은 평가지표를 보여준다. 과대적합 (Overfitting) 모델이 훈련 데이터에 대한 예측성능은 너무 좋지만 일반성이 떨어져 새로운 데이터(테스트 데이터)에 대해선 성능이 좋지 않은 것을 Overfitting이라고 한다. 이는 모델이 훈련 데이터 세트의 특징을 너무 맞춰서 학습 되었기 때문에 일반화 되지 않아 새로운 데이터셋(테스트세트)에 대한 예측 성능이 떨져 발생한다. 과소적합 (Underfitting) 모델이 훈련 데..

[Machine Learning][머신러닝] 분류평가지표

모델 평가 모델의 성능을 평가한다. 평가결과에 따라 프로세스를 다시 반복한다. 분류와 회귀의 평가방법 분류 평가 지표 정확도 (Accuracy) 정밀도 (Precision) 재현률 (Recall) F1점수 (F1 Score) AUC 회귀 평가방법 MSE (Mean Squareed Error) RMSE (Root Mean Squared Error) R^2 (결정계수) sckit-learn 평가함수 sklearn.metrics 모듈을 통해 제공 분류(Classification) 평가 기준 용어 이진 분류에서 양성과 음성 양성: 예측하려는(찾으려는) 대상 음성: 예측하려는 대상이 아닌 것 예 암환자 분류 : 양성 - 암 환자, 음성 - 정상인 스팸메일 분류 : 양성 - 스팸메일, 음성 - 정상메일 금융사기 모..

[Machine Learning][머신러닝] 데이터 전처리(범주형/연속형)

범주형 데이터 전처리 사이킷런은 문자열 값을 입력 값으로 처리 하지 않기 때문에 숫자 형으로 변환해야 한다. 범주형 변수(Categorical Variable) 몇 개의 범주 중 하나에 속하는 값들로 구성된 변수. 어떤 분류에 대한 속성을 가지는 변수를 말한다. 예) 성별 - 남/녀, 혈액형 - A, B, AB, O, 성적 - A,B,C,D,F 비서열(Unordered) 변수 범주에 속한 값간에 서열(순위)가 없는 변수 성별, 혈액형 서열 (Ordered) 변수 범주에 속한 값 간에 서열(순위)가 있는 변수 성적, 직급 사이킷런은 문자열 값을 입력 값으로 처리 하지 않기 때문에 숫자 형으로 변환해야 한다. 범주형 변수의 경우 전처리를 통해 정수값으로 변환한다. 범주형이 아닌 단순 문자열인 경우 일반적으로..

[Machine Learning][머신러닝] 데이터셋 나누기와 교차검증

데이터셋 Train 데이터셋 (훈련/학습 데이터셋) 모델을 학습시킬 때 사용할 데이터셋. Validation 데이터셋 (검증 데이터셋) Train set으로 학습한 모델의 성능을 측정하기 위한 데이터셋 Test 데이터셋 (평가 데이터셋) 모델의 성능을 최종적으로 측정하기 위한 데이터셋 Test 데이터셋은 마지막에 모델의 성능을 측정하는 용도로 한번만 사용되야 한다. 학습과 평가를 반복하다 보면 모델이 검증때 사용한 데이터셋에 과적합되어 새로운 데이터에 대한 성능이 떨어진다. 그래서 데이터셋을 train 세트, validation 세터, test 세트로 나눠 train 세트와 validation 세트로 모델을 최적화 한 뒤 마지막에 test 세트로 최종 평가를 한다. Hold Out 데이터셋을 Train ..

[Machine Learning][머신러닝] IRIS 분석 (결정 트리 모델(Decision Tree))

데이터셋 확인하기 용어 레이블(Label), 타겟(Target) 결정값, 출력데이터, 종속변수 예측 대상이 되는 값. 지도학습시 학습을 위해 주어지는 정답 데이터 분류의 경우 레이블을 구성하는 고유값들을 클래스(class)라고 한다. 피쳐(Feature) 속성, 입력데이터, 독립변수 Target이 왜 그런 값을 가지게 되었는지를 설명하는 변수. Target값을 예측하기 위해 학습해야 하는 값들. scikit-learn 내장 데이터셋 가져오기 scikit-learn은 머신러닝 모델을 테스트 하기위한 데이터셋을 제공한다. 이런 데이터셋을 Toy dataset이라고 한다. 패키지 : sklearn.datasets 함수 : load_xxxx() from sklearn.datasets import load_iri..

반응형