반응형

분류 전체보기 339

[Machine Learning][머신러닝] 군집(Clustering) / K-Means Clustering

군집 (Clustering) 비지도 학습으로 비슷한 특성을 가지는 데이터들끼리 그룹으로 묶는다. 적용 고객 분류 고객 데이터를 바탕으로 비슷한 특징의 고객들을 묶어 성향을 파악할 수 있다. 이상치 탐지 모든 군집에 묶이지 않는 데이터는 이상치일 가능성이 높다 준지도학습 레이블이 없는 데이터셋에 군집을 이용해 Label을 생성해 분류 지도학습을 할 수 있다. 또는 레이블을 좀더 세분화 할 수 있다. k-mean (K-평균) 가장 널리 사용되는 군집 알고리즘 중 하나. 데이터셋을 K의 군집으로 나눈다. K는 하이퍼파라미터로 사용자가 지정한다. 군집의 중심이 될 것 같은 임의의 지점(Centroid)을 선택해 해당 중심에 가장 가까운 포인드들을 선택하는 기법. 알고리즘 이해 특징 K-mean은 군집을 원 모양..

[Machine Learning][머신러닝] 로지스틱 회귀(Logistic Regression)

로지스틱 회귀 (LogisticRegression)선형회귀 알고리즘을 이용한 이진 분류 모델Sample이 특정 클래스에 속할 확률을 추정한다. 확률 추정선형회귀 처럼 입력 특성(Feature)에 가중치 합을 계산한 값을 로지스틱 함수를 적용해 확률을 계산한다.import matplotlib.pyplot as pltxx = np.linspace(-10, 10, 100)sig = 1 / (1 + np.exp(-xx))plt.figure(figsize=(15, 5))plt.plot(xx,xx, color='g', label='linear')plt.plot(xx, sig, color='b', linewidth=2, label="logistic")plt.plot([-10, 10], [0, 0], color='k'..

[Machine Learning][머신러닝] 회귀모델의 평가지표

회귀모델의 평가지표지도 학습(Supervised Learning)으로 예측할 Target이 연속형(continuous) 데이터(float)인 경우 회귀분석을 진행하는데 이때 모델을 평가할 때 어떤 지표를 사용하는지 알아본다.회귀의 주요 평가 지표회귀분석에 사용하는 평가지표는 예측값과 실제 값간의 차이를 사용하는데, 이를 구하는 방법이 다르다.MSE (Mean Squared Error)실제 값과 예측값의 차를 제곱해 평균 낸 것mean_squared_error()'neg_mean_squared_error'RMSE (Root Mean Squared Error)MSE는 오차의 제곱한 값이므로 실제 오차의 평균보다 큰 값이 나온다. MSE의 제곱근이 RMSE이다.scikit-learn은 함수를 지원하지 않는다...

[Machine Learning][머신러닝][앙상블][부스팅] GradientBoosting

Boosting 부스팅(Boosting)이란 단순하고 약한 학습기(Weak Learner)들를 결합해서 보다 정확하고 강력한 학습기(Strong Learner)를 만드는 방식. 정확도가 낮은 하나의 모델을 만들어 학습 시킨뒤, 그 모델의 예측 오류는 두 번째 모델이 보완한다. 이 두 모델을 합치면 처음보다는 정확한 모델이 만들어 진다. 합쳐진 모델의 예측 오류는 다음 모델에서 보완하여 계속 더하는 과정을 반복한다. 약한 학습기들은 앞 학습기가 만든 오류를 줄이는 방향으로 학습한다. GradientBoosting 처음 모델은 y를 예측 두번째 부터는 앞 모델이 만든 오류를 예측하고 그것을 앞 모델에 업데이트하면 오류를 줄일 수 있다. 그 오류를 update할 때 뺄까 더할까를 gradient descent..

[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(결정트리)와 RandomForest(랜덤포레스트)

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

[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이라고 한다.이는 모델이 훈련 데이터 세트의 특징을 너무 맞춰서 학습 되었기 때문에 일반화 되지 않아 새로운..

반응형