티스토리 뷰

반응형

#. 분석 방법 

* 지도학습

  - Y(정답)를 이미 알 경우

  - 이미 알려진 사례를 바탕으로 일반화된 모델을 생성

  - 입력이 주어지면 기대되는 출력을 제공

  - 적용 : 고객 이탈, 양성유무, 우편번호 숫자 판별, 부정 거래 감지

  

* 비지도학습

  - Y(정답)를 모를 경우

  - 입력은 주어지지만 출력은 제공되지 않음

  - 적용 : 글의 주제 구분, 취향이 비슷한 고객 그룹, 비정상적 접근 탐지



#. 모델 평가

- 모델을 만들었다면 새 데이터를 적용시켜 예측 전 모델을 평가해야 함

- 모델 생성 시 사용한 데이터는 이미 학습되어 있으므로 모델 평가 목적으로 재사용 불가

- 75%의 훈련 데이터와 25%의 테스트 데이터 필요



#. K-NN 알고리즘

- 지도학습

- 게으른 학습으로 보완 수정이 없음

- 결측치, 이상치에 민감하므로 전처리가 중요

- 설명변수가 많을수록 불리 => PCA(주성분분석)기법을 통해 설명변수의 축소 

- 유클리드 거리 사용 (가장 유사항 범주를 가장 가까운 거리로 선택) => 특성의 범위가 다를 경우 관측치들의 Scale 조정 필요

- K(이웃의 수)는 주로 3~5 홀수개가 적당

- 적용 : 이미지/비디오에서의 얼굴, 필기 인식, 추천 알고리즘


* 장점

  - 이해하기 쉬운 모델

  - 많은 조정 없이 좋은 성능 발휘

* 단점

  - 훈련 데이터셋이 많아질수록 느린 예측

  - 수백 개 이상의 많은 훈련변수를 가진 데이터셋에는 부적합



#. Naive Bayes 알고리즘

- 통계적 분류

- 새로운 관측치가 특정 클래스에 속하는지 조건부 확률을 통해 예측(확률이 더 높은 쪽에 추천)

- 조건부 확률 : A발생 시 B가 발생할 확률 P(B|A)

- 베이즈 확률 이론을 적용 => 두 확률 변수(사전확률과 사후확률) 사이의 관계

- 각 클래스는 상호 배타적(독립사건)이면서, 포괄적(두 가지 결과만 발생)이어야 함

- 텍스트 데이터처럼 희소한 고차원 데이터에 적합

- 적용 : 스팸 메일 분류, 문저의 주제 분류, 악성코드 분류



#. Decision Tree 알고리즘

- 쉬운 시각화와 높은 가독성

- Scale 조정이 없어도 매우 우수한 성능

- 이상치에 민감하지 않음 

- 단일 Tree는 과대적합이 발생하여 일반화 성능 저하

- 과대적합의 해결 방안

  ㄴ minsplit(관측값의 최소갯수 제한) : 트리의 세분화 정도(minsplit이 작을수록 트리가 복잡)

  ㄴ cp(가지치기) : 불필요한 리프 노드의 가지치기

  ㄴ max_depth : 질문 재사용(반복 허용) 여부 (max_depth = 1, 질문 재사용 x, 값이 커질수록 트리가 복잡)


* 불순도

 - 각 집단이 얼마나 혼합되어 있는지 나타내는 지표

 - 좋은 판별질문일수록 분리된 두 개의 자식 노드의 불순도가 낮음

 - 뿌리 노드일수록 불순도가 높고(분류가 덜 되었으므로), 리프 노드일수록 불순도가 낮음(분류가 잘 되었으므로)


* 지니불순도

 - 불순도를 측정하는 가장 대표적인 불순도 함수 -> f(p) = p(1-p)

 - p가 0이거나 1일 때 가장 작은 0의 값을 가짐

 - 각 노드에 특정 분류로만 구성되어있거나(p=1), 전혀 없을 경우(p=0), 지니불순도는 가장 작은 값을 가짐

 - 여러 분류가 섞여 있을 때, 큰 값을 갖게 됨 (p=1/2일 때 최대)



#. 앙상블

- 여러 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 기법

- 분류와 회귀 문제의 다양한 데이터 셋 예측에 효과적

- 과대적합을 해결 할 수 있는 매개변수의 사용

- 랜덤 포레스트(Random Forest)와 그래디언트 부스팅(Gradient Boosting) 기법이 주로 사용



#. Random Forest 알고리즘

- 트리기반의 대표적인 모델 (단일 Tree의 단점(성능과 과대적합) 보완)

- 여러 개의 결정 트리를 임의적으로 학습 => 앙상블 학습(여러 번의 학습을 통한 최적의 결과)

- 분류, 회귀 모형에서 가장 많이 사용되는 방법

- 수치 데이터일 경우, 각 트리의 결과는 숫자 -> 각 트리의 결과 평균이 최종 결과

  범주형(Factor) 데이터일 경우, 각 트리의 결과는 범주 중 하나의 레벨 -> 각 트리의 결과 다수결이 최종 결과

* 장점

  - 우수한 성능, 매개변수 튜닝 없이도 잘 작동

  - Scale 조정 없이도 매우 우수한 성능

  - 멀티 코어 프로세스 이용으로 병렬 처리 가능 -> 분산 시스템에 유리

* 단점

  - 텍스트 데이터와 같이 차원이 높고 희소한 데이터에는 부적합

  - 메모리 사용률이 높아 훈련과 예측이 선형 모델보다 느림  


* 임의화

  - 임의성에 의해 서로 조금씩 다른 특성을 갖는 트리들로 구성

  - 임의 훈련 데이터 추출 방법

    ㄴ 배깅(bagging : bootstrap aggregating)

        : 데이터를 여러 번 복원 샘플링하여 조금씩 다른 훈련 데이터에 대한 훈련된 트리들을 결합하여 예측 모형을 산출

        : 결과변수가 연속형이면 평균, 범주형이면 다중 투표

    ㄴ 임의 노트 최적화 : 분석에 사용될 데이터를 랜덤하게 분석하여 추출


* 부스팅 알고리즘

  - 잘못 분류된 객체들에 집중하여 새로운 분류 규칙을 생성하는 단계를 반복

  - 초기는 약한 예측 모형들의 결합으로 단순하게 시작하여 점점 복잡한 구조의 강한 예측 모형을 생성

  - 오버핏 해결을 위해 오분류된 개체(약한 모델)에는 높은 가중치를, 정분류된 개체(강한 모델)는 낮은 가중치를 적용하여 예측 모형의 정확도를 향상


* 주요 매개변수

  - n_estimators : 트리의 수 (값이 클 수록 과대적합을 줄여 더 안정적인 모델을 학습, 메모리 사용률 고려)

  - max_depth질문 재사용(반복 허용) 여부 (값이 작을수록 과대적합 해소)

  - max_features : 설명변수의 후보군 제한 (값이 클 수록 트리는 서로 비슷=>예측에 불리, 값이 낮을 수록 서로 다른 트리 생성 => 복잡한 트리로 오버핏 발생, 적절한 후보군의 개수 선정 필요)



#. 그래디언트 부스팅 회귀 트리(Gradient Boosting)

- 부스팅 기법 : 잘못 분류된 객체들에 집중하여 새로운 분류규칙을 생성하는 단계를 반복하는 알고리즘

- 여러 개의 결정 트리를 묶어 강력한 모델을 만드는 앙상블 방법

- 회귀, 분류에 모두 사용

- 랜덤 포레스트와 달리 이전 트리의 오차를 보완하는 방식의 순차적 트리 생성

- 트리 생성에 무작위성이 존재하지 않는 대신 강력한 사전 가지치기 사용

- 보통 하나에서 다섯 정도의 깊지 않은 트리 사용 -> 적은 메모리 사용과 빠른 예측 수행

- 트리가 많이 추가될수록 예측력이 높아짐

* 장점

  - Scale 조정 없이 이진 특성이나 연속적인 특성에도 동작

*단점

  - 매개변수 조정 필요

  - 훈련 시간이 길어지는 현상

  - 고차원 데이터에 부적합


* 중요 매개변수

  - learning_rate = 1 : 이전 트리의 오차 보정 정도, 값이 클 수록 모델이 복잡

  - n_estimators : 트리의 수, 값이 클 수록 모델이 복잡 -> 과대적합 발생

  - max_depth : 각 트리의 복잡도를 낮추는 매개변수(보통 5보다 작은 값 사용)



#. Support Vector Machine 알고리즘

* 장점

  - 데이터의 특성이 몇 안되더라도 복잡한 경계 생성 가능

  - 저차원-고차원 모두 적합

* 단점

  - 100,000개 이상의 데이터셋에서는 분석이 느림

  - 데이터 전처리와 매개변수 설정에 매우 민감(RF와 GB 모델 대체)

  - 분석과 해석 및 예측의 어려움(모델의 복잡성)

- 적용 : 유전자 데이터 분류, 얼굴-문자-숫자 인식


* 중요 매개변수

  - C : 모델의 복잡도를 규제, 각 포인트의 중요도 제한 (값이 클수록 데이터 포인트의 영향력 최대화)

  - gamma : 매개변수가 하나의 훈련 샘플이 미치는 영향의 범위를 결정, 차원 확장 (클수록 복잡한 경계)



#. 선형 회귀

- 예측이 목적

- MSE 값으로 오차를 최소화

- 설명변수가 많아지면, 설명변수들끼리 정보를 공유할 가능성이 커짐 -> 다중공선성 발생 -> 오차의 증가

- 다중공선성 해결 방법 -> 변수 제거 -> 제거할 변수 선택 방법

  ㄴ PCA(주성분분석) 기법 사용 (완전히 독립적인 설명변수)

  ㄴ 릿지 : 계수를 최소화 (가중치를 0에 가깝게 축소)

  ㄴ 라쏘 : 계수를 삭제하여 모델을 단순화 (가중치를 0으로)



#. 릿지(Ridge) 회귀

- 선형 회귀의 과대 적합을 일부 해소시킬 수 있는 모델

- 릿지 회귀에서 가중치(w) 선택 시 고려사항 -> 훈련 데이터의 예측 + 과대적합의 최소화


* 규제

  - 과대적합이 되지 않도록 모델을 강제로 제한

  - 가중치(w)의 절댓값을 가능한 작게 만들어 모든 특성이 모델에 주는 영향을 최소화

  - L2 방식 사용

* alpha 매개변수

  - 훈련 세트의 성능 대비 모델의 단순화 강도

  - 기본값은 1.0

  - 값이 높을 수록 가중치를 0에 가깝게 일반화 (적절한 alpha 선정이 필요) = 라쏘도 동일

  - 값이 클 수록 단순화 시키려는 경향이 강함 = 라쏘도 동일



#. 라쏘(Lasso)

- 선형 회귀의 과대 적합을 해소시킬 수 있는 모델, 릿지(Ridge)의 대안

- L1 규제 사용

- 릿지 회귀와 같이 가중치를 0에 가깝게 만드는 것이 목적

- 어떤 계수는 0이 되어 모델에서 제거될 수 있음 -> 자동으로 차원 축소

- alpha 값이 너무 낮으면 모델의 복잡도가 높아짐 -> 과대 적합 발생(선형 회귀와 비슷한 결과)



#. Scale 조정 함수

​* StandardScaler

  - 각 특성의 평균을 0, 분산을 1로 변경하여 모든 특성이 같은 크기를 갖게 함

* RobustScaler

  - StanderdScaler와 비슷한 함수

  - 평균과 분산 대신 중간값(median)과 사분위 값(quartile)을 사용

  - 전체 데이터와 아주 동떨어진 데이터 포인트에 영향을 받지 않음

* MinMaxScaler

  - 모든 특성이 정확하게 0과 1사이에 위치하도록 데이터를 변경

 
 
#. 주성분 분석(PCA : Principal Component Analysis)

- 선형 회귀의 과대 적합을 해소시킬 수 있는 모델, 릿지(Ridge)의 대안

- L1 규제 사용

- 릿지 회귀와 같이 가중치를 0에 가깝게 만드는 것이 목적

- 어떤 계수는 0이 되어 모델에서 제거될 수 있음 -> 자동으로 차원 축소

- alpha 값이 너무 낮으면 모델의 복잡도가 높아짐 -> 과대 적합 발생(선형 회귀와 비슷한 결과)


- 상관관계가 있는 변수들 사이의 복잡한 구조를 간편하고 이해하기 쉽게 설명하기 위한 기법

- 설명변수가 많이 포함될수록 설명력은 높아지나 변수들간의 다중공선성 문제 발생

- 변수들의 선형결합을 통하여 변수들이 가지고 있는 전체정보를 최대한 설명하는 새로운 인공변수를 유도하여 해석하는 다변량 분석방법

- 차원축소에 따른 다변량 자료의 요약 목적 -> 주성분을 통한 분석 모델 유도


* 주성분 추출

  - 변수들이 전체 분산 대부분을 소수의 주성분을 통하여 설명

  - 첫 번째 주성분은 변수들의 전체 분산 중 가장 큰 부분을 설명할 수 있도록 유도

  - 두 번째 주성분은 첫 번째 주성분과 독립적이면서 첫 번째 주성분에 의해 설명되지 않은 잔여분산을 최대한 설명할 수 있도록 유도









반응형
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday