티스토리 뷰
#. 분석 방법
* 지도학습
- 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사이에 위치하도록 데이터를 변경
- 선형 회귀의 과대 적합을 해소시킬 수 있는 모델, 릿지(Ridge)의 대안
- L1 규제 사용
- 릿지 회귀와 같이 가중치를 0에 가깝게 만드는 것이 목적
- 어떤 계수는 0이 되어 모델에서 제거될 수 있음 -> 자동으로 차원 축소
- alpha 값이 너무 낮으면 모델의 복잡도가 높아짐 -> 과대 적합 발생(선형 회귀와 비슷한 결과)
- 상관관계가 있는 변수들 사이의 복잡한 구조를 간편하고 이해하기 쉽게 설명하기 위한 기법
- 설명변수가 많이 포함될수록 설명력은 높아지나 변수들간의 다중공선성 문제 발생
- 변수들의 선형결합을 통하여 변수들이 가지고 있는 전체정보를 최대한 설명하는 새로운 인공변수를 유도하여 해석하는 다변량 분석방법
- 차원축소에 따른 다변량 자료의 요약 목적 -> 주성분을 통한 분석 모델 유도
* 주성분 추출
- 변수들이 전체 분산 대부분을 소수의 주성분을 통하여 설명
- 첫 번째 주성분은 변수들의 전체 분산 중 가장 큰 부분을 설명할 수 있도록 유도
- 두 번째 주성분은 첫 번째 주성분과 독립적이면서 첫 번째 주성분에 의해 설명되지 않은 잔여분산을 최대한 설명할 수 있도록 유도
'Data > Analysis ' 카테고리의 다른 글
[데이터 분석] 계층적 군집 분석(hierarchical clustering) (0) | 2019.01.21 |
---|---|
[데이터 분석] K-NN 알고리즘 (3) | 2019.01.21 |
[데이터 분석] Random Forest 알고리즘 (0) | 2019.01.17 |
[데이터 분석] 분석의 단계 (0) | 2019.01.17 |
[데이터 분석] Decision Tree(의사결정 나무) 알고리즘 (0) | 2019.01.15 |