도서 <데이터 분석가가 반드시 알아야 할 모든 것> 참조
- 머신러닝 분석 방법론
- 선형 회귀분석과 Elastic Net(예측모델)
- 회귀분석은 각 독립변수의 평균을 통해 종속변수를 예측
- 즉, 회귀분석은 종속변수 Y의 값에 영향을 주는 독립변수 X들의 조건을 고려하여 구한 평균값
- 최적의 회귀선은 예측치와 관측치들 간의 수직 거리(오차)의 제곱합을 최소로 하는 직선(최소제곱추정법)
- 기본 조건 충족
- 잔차의 정규성: 독립변수에 해당되는 종속변수의 값들의 잔차는 정규분포를 해야 한다.
- 잔차의 등분산성: 잔차의 분산은 회귀 모형의 독립 변숫값과 상관없이 일정해야 한다.
- 선형성: 독립변수 값의 변화에 따른 종속변수 값의 변화는 일정해야 한다.
- 다항회귀: 독립변수와 종속변수의 관계가 비선형 관계일 때 변수에 각 특성의 제곱을 추가하여 회귀선을 비선형으로 변환하는 모델
- 차수가 커질수록 편향은 감소하지만 변동성이 증가하게 된다. -> 과적합 유발
- T Value는 노이즈 대비 시그널의 강도
- 유의도를 나타내는 P Value는 T Value와 관측치 수에 의해 결정되는 값
- 전진 선택법
- 후진 제거법
- 단계적 선택법
- Ridge는 전체 변수를 모두 유지하면서 각 변수의 계수 크기를 조정
- Lasso는 Ridge와 유사하지만, 중요한 몇 개의 변수만 선택하고 나머지 변수들은 계수를 0으로 주어 변수의 영향력을 아예 없앤다는 차이점
- Ridge는 변환된 계수가 0이 될 수 없지만 Lasso는 0이 될 수 있다는 특성을 결합
- Python 실습
- csv 파일 불러오기부터 데이터 전처리를 할 수 있는 pandas, 머신러닝 모델 패키지인 sklearn과 시각화 패키지 seaborn
- 로지스틱 회귀분석(분류 모델)
- 특정 수치를 예측하는 것이 아니라 어떤 카테고리에 들어갈지 분류를 하는 모델
- 의사결정나무와 랜덤 포레스트(예측/분류 모델)
- 의사결정나무
- 명목형의 종속변수를 분류할 수 있는 분류나무
- 데이터를 얼마나 잘 분류했는지 알 수 있는 척도인 불순도를 낮추고 순도를 높이는 방향으로 분류 기준을 찾아낸다.
- 한 노드 내에서는 범주의 동질성이 최대한 높고, 노드 간에는 이질성이 최대한 높도록
- 각 독립변수의 수치마다 지니 계수나 엔트로피 값을 구해서 최적의 정보 획득량을 얻을 수 있는 기준으로 분류를 해 나가는 것
- 연속형의 수를 예측할 수 있는 회귀나무
- 끝 노드에 속한 데이터 값의 평균을 구해 회귀 예측값을 계산
- F-value나 분산의 감소량을 분류 기준으로 사용
- 과적합 방지를 위한 방법으로 가지치기와 정보 획득량 임곗값 설정, 한 노드에 들어가는 최소 데이터 수 제한하기, 노드의 최대 깊이 제한하기 등
- 명목형의 종속변수를 분류할 수 있는 분류나무
- 랜덤 포레스트
- 앙상블 학습
- 여러 의사결정나무 모델을 생성한 다음, 분류 모델일 경우는 가장 많이 예측한 범주로 결정을 하고 회귀 모델인 경우는 평균값을 최종 예측값으로 한다.
- 부트스트랩: 하나의 데이터셋을 중복을 허용하여 무작위로 여러 번 추출하는 것
- 배깅: 여러 개의 의사결정 나무를 하나의 모델로 결합해 주는 것
- 부스팅: 각 트리모델을 순차적으로 학습하며 정답과 오답에 가중치를 부여
- 의사결정나무
- 선형 판별분석과 이차 판별분석(분류 모델)
- 판별분석은 로지스틱 회귀분석처럼 질적 척도로 이루어진 종속변수를 분류할 때 쓰이는 분석 기법
- 선형 판별분석의 조건
- 데이터가 정규 분포한다.
- 각각의 범주들은 동일한 공분산 행렬을 갖는다.
- 독립변수들은 통계적으로 상호 독립적이다.
- 서포트벡터머신(분류 모델)
- 판별분석과 같이 범주를 나눠줄 수 있는 최적의 구분선을 찾아내어 관측치의 범주를 예측
- 기계학습에서 거리를 통해 분류나 회귀 모델을 만들 때는 반드시 데이터 정규화나 표준화를 해줘야 한다.
- 커널 기법: 기존의 데이터를 고차원 공간으로 확장하여 새로운 결정경계선을 만들어내는 방법
- KNN(분류, 예측 모델)
- 미리 저장되어 있는 학습 데이터에다가 예측 데이터를 대조함으로써 직접 결과가 도출되므로 메모리 기반 학습이라고도 불림
- 유클리드 거리로 계산
- 시계열 분석(예측모델)
- 관측치의 통계량 변화를 시간의 흐름에 따라 순차적으로 데이터화하고 현황을 모니터링하거나 미래의 수치를 예측하는 분석 방법
- 탐색 목적: 외부 인자와 관련된 계절적인 패턴, 추세 등을 설명하고 인과관계를 규명
- 예측 목적: 과거 데이터 패턴을 통해 미래의 값을 예측
- ARIMA(p,d,q)모델은 시계열 데이터를 d회 차분하고 p만큼의 과거 값들과 q만큼의 과거 오차 값들을 통해 수치를 예측하고 차분한 값을 다시 원래의 값으로 환산하여 최종 예측값을 산출
- k-means 클러스터링(군집 모델)
- 미리 가지고 있는 정답(레이블) 없이 데이터의 특성과 구조를 발견해 내는 방식
- 중심점과 군집 내 관측치 간의 거리를 비용함수로 하여, 이 함수 값이 최소화되도록 중심점과 군집을 반복적으로 재정의해 준다.
- 지역 최솟값 문제를 방지하기 위해 초기 중심점 선정 방법을 다양하게 하여 최적의 모델을 선정할 수 있다.
- 연관규칙과 협업 필터링(추천 모델)
- 연관규칙
- Apriori: 아이템들의 조합에 대한 경우의 수를 최소화하여 처리 속도 효율을 높인 알고리즘
- FP-Growth: 트리 기반 알고리즘으로, 항목 간 비교 계산을 최소화하여 처리 속도 효율을 높인 알고리즘
- DHP: 항목 집합의 개수가 2개인 트랜잭션을 먼저 해시 테이블로 만들어 처리 속도 효율을 높인 알고리즘
- 핵심 지표
- 지지도: 아이템 A와 B를 동시에 포함하는 거래가 발생할 확률
- 신뢰도: 아이템 A가 포함되는 거래에 B가 포함될 확률
- 향상도: 아이템 A와 B가 독립적으로 판매되는 것 대비 함께 판매되는 비율
- 콘텐츠 기반 필터링과 협업 필터링
- 연관규칙
- 인공 신경망(CNN, RNN, LSTM)
- 기본적인 신경망 구조는 입력층, 은닉층, 출력층 세 가지 층으로 분류
- 오류 역전파: 처음 주어진 가중치를 이용해 출력층의 값을 계산하고, 결괏값과의 오차를 각 가중치로 미분한 값을 처음 가중치에서 빼 주는 작업을 반복하며 가중치를 조정
- 신경망을 이루는 가장 기본 단위 구조를 퍼셉트론
- CNN
- 합성곱 신경망은 사람의 시신경 구조를 모방한 구조로써 데이터의 특징을 추출하여 패턴을 파악
- RNN
- 자연어처리 영역에서 많이 쓰이고 있는 순환신경망은 알고리즘 내부에 순환구조가 들어있다.
- LSTM
- 기존 RNN과 유사한 구조를 가지고 있지만 셀 스테이트(가중치를 계속 기억할 것인지 말 것인지를 결정해주는 역할)라는 요소를 가진다.
- 선형 회귀분석과 Elastic Net(예측모델)
- 모델 평가
- 학습 셋, 검증 셋, 테스트 셋과 과적합 해결
- 학습 셋: 모델을 학습하여 파라미터 값을 산출하기 위해 사용하는 데이터
- 검증 셋: 학습 셋으로 과도하게 학습을 하여 과적합 되지 않기 위해 사용하는 데이터
- 테스트 셋: 학습한 모델의 성능을 평가하기 위한 데이터
- 주요 교차 검증 방법
- k-Fold Cross Validation
- LOOCV
- Stratified K-fold Cross Validation
- Nested Cross Validation
- Grid Search Cross Validation
- 회귀성능 평가지표
- R-Square와 Adjusted R-Square
- RMSE
- MAE
- MAPE
- RMSLE
- AIC와 BIC
- 분류, 추천 성능 평가지표
- 혼동 행렬
- 정확도, 오분류율, 정밀도, 민감도, 특이도 그리고 f-score
- 향상도 테이블과 향상도 차트 그리고 향상도 곡선
- ROC 곡선과 AUC
- 수익 곡선
- Precision at k, Recall at K 그리고 MAP
- A/B 테스트와 MAB
- A/B 테스트
- AS-IS와 TO-BE의 결과를 직접 비교하는 것
- 웹서비스에서 변화 효과를 검증하기 위해 사용
- Z-test나 T-test 수행
- MAB
- Exploration: 최적의 보상을 얻을 수 있는 방안을 찾기 위해 계속해서 실험하는 것
- Exploitation: 선택한 최적의 방안을 계속 실행하여 이익을 최대화하는 것
- -greedy: 일정 확률로 대안을 무작위로 탐색하는 알고리즘
- UCB: 대안의 결과가 불확실한 것을 우선순위로 탐색하는 알고리즘
- Thompson Sampling: 대안의 결과에 대한 베타 분포를 계산하여 샘플링한 값 중 가장 높은 대안을 탐색하는 알고리즘
- A/B 테스트
- 학습 셋, 검증 셋, 테스트 셋과 과적합 해결
- 분석가의 올바른 주관적 판단을 위한 필수 요소
- 해당 분야의 풍부한 도메인 지식
- 통계적 지식을 기반으로 탐색적 데이터 분석과 전처리
- 적극적인 커뮤니케이션과 데이터, 모델 검증
- 배경-문제위기-극복-변화의 흐름
- " 5%의 불량률로 연간 100억 원의 손실이 발생하는 A 제품의 공정을, 센서 분석을 통해 개선하여 불량률 1%로 90억 원의 비용을 절감했다. "