머신러닝 개요

Dae Hee Lee·2021년 4월 7일
0

일상

목록 보기
5/5

머신러닝이란?

머신러닝을 표현하는 방법은 많다. 일반적으로는 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭한다.

참고) 데이터 마이닝(data mining)은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는 과정이다.

머신러닝의 종류에는 다음과 같은 것들이 있다.

지도학습

  • 분류
  • 회귀
  • 추천 시스템
  • 시각/음성 감지/인지
  • 텍스트 분석, NLP
    비지도학습
  • 클러스터링
  • 차원 축소
  • 강화학습

머신러닝의 단점 : Garbage In, Garbage Out

파이썬 머신러닝 패키지 : Scikit-learn

K-폴드 교차검증
데이터셋 학습 시 데이터 편중을 막기위해 교차 검증이 필요하다.
(Stratified K 폴드 : 레이블이 불균형적인 분포를 이룰때)

교차 검증 편하게 하는 GridSearchCV

1.데이터 전처리

  • 레이블 인코딩
  • 원 - 핫 인코딩
  • 피쳐 스케일링
    • 표준화
    • 정규화

2.평가(분류)

  • 정확도
  • 오차행렬
    • 예측과 실제 클래스의 2차원
  • 정밀도
    • 실제 negative를 Positive로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우
  • 재현율
    • 실제 positive를 Negative로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우 ex)암 판단 모델
    • 정밀도와 재현율은 서로 Trade-off관계이다.
    • 정밀도와 재현율은 단순히 하나의 수치를 높이는 수단으로서는 사용해선 안된다. 재현율의 경우, 전부 positive라고 한다고 해도 100%가 나오는 경우가 있는 등 맹점이 있기 때문
  • F1 스코어
    • 정밀도와 재현율을 결합, 어느 한 쪽으로 치우치지 않을 때 높은 값
  • ROC AUC
    • ROC곡선, AUC스코어
    • 이진분류의 예측 성능에서 중요하게 사용되는 지표
    • ROC곡선은 FPR이 변할 때 TPR이 어떻게 변하는지를 나타냄
    • TNR(True Negative Rate) = TN/(FP+TN)
    • FPR(Flase Positive Rate) = FP/(FP+TN)
    • ROC곡선이 가운데 직선과 가까울수록 성능은 떨어지는 것

3.분류

■ 지도학습의 대표적인 유형
■ 데이터가 어떤 레이블에 속하는지 패턴을 알고리즘으로 인지한 뒤에 새롭게 관측된 데이터에 대한 레이블을 판별

  • 결정 트리
    • 쉽고 직관적
    • 사전 가공 영향도 낮다
    • 과적합 가능성이 높다
    • 사전에 트리 크기 제한 필요
  • 앙상블
    • 여러개의 분류기를 결합하여 최종 예측 진행
    • 보팅
      • 서로 다른 알고리즘 수행, 결합
      • 하드 보팅
        • 다수결 원칙
      • 소프트 보팅
        • 분류기들의 레이블 값 결정 확률을 더하고 이를 평균하여 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정, 일반적으로 소프트 보팅을 사용
    • 배깅
      • 같은 알고리즘을 서로 다른 데이터로 수행, 결합(데이터 간에 중첩은 허용)
    • 부스팅
      • 여러 개의 분류기가 순차적으로 학습을 하되 앞에서 학습한 분류기가 예측이 틀린 데이터에 대해서 다음 분류기에는 가중치 부여
  • 랜덤 포레스트
    • 배깅의 대표적인 방식
    • 부트스트래핑, 데이터 셋을 여러개의 중첩을 허용하는 데이터로 나눔
  • GBM(Gradient Boosting Machine)
    • 부스팅 방식
    • Adaboost
      • 오류 데이터에 가중치를 부여해 부스팅을 수행함
    • Gradient Boost
      • Adaboost와 유사하나, 가중치 부여시 경사하강법을 이용
    • CART와 같이 분류 뿐만 아니라 회귀도 가능하다.
  • XGboost
    • gbm기반, 느린 수행 시간 개선과 과적합 규제 문제 해결
    • 병렬 CPU환경에서 학습 가능
  • LightGBM
    • XGBoost보다 훨씬 더 가벼워진 모델
    • 데이터가 적을 경우 과적합 가능성
    • 일반 GBM과 다르게 리프 중심 트리 분할 방식 사용
  • 스태킹
    • 개별 알고리즘으로 예측한 데이터를 토대로 다시 예측 수행

4.회귀

■ 독립변수와 종속변수 간의 상관관계를 모델링하는 것
■ 최적 회귀 함수 도출이 주 목표
■ 지도학습 중 예측값이 연속형일 때 회귀 진행(이산형, 범주형일 때는 분류)
■ 회귀 비용 함수 RSS(Residual Sum of Square), 오류의 제곱

  • 경사 하강법
    • 고차원 방정식에 대한 문제 해결
    • 비용함수 최소화하는 방법 직관적으로 제공
  • 회귀 평가 지표
    • MAE : 실제-예측 절대값의 합
    • MSE : 실제-예측 제곱값의 합
    • RMSE : MSE의 제곱근
    • R : 예측값 분산/실제값 분산
  • 다항 회귀
    • 차원의 저주를 조심해야한다
    • 편향-분산 트레이드 오프
      • 편향과 분산을 조절하면서 전체 오류가 가장 낮아지는 골디락스 지점을 찾아야함
  • 규제 선형 모델 - 릿지, 라쏘, 엘라스틱넷
    ■ 최적 모델을 찾기 위해서는 학습 데이터 잔차 최소화, 회귀 계수 크기 제어가 균형을 이루며 이루어져야한다.
    • 릿지
      • RSS + 회귀계수의 제곱이 최소화될 수 있도록 (L2규제)
    • 라쏘
      • RSS + 회귀계수의 절대값이 최소화될 수 있도록(L1규제)
    • 엘라스틱넷
      • 릿지 + 라쏘
      • 시간이 오래 걸리는 단점
  • 로지스틱 회귀
    ■ 선형 회귀 방식을 분류에 적용한 모델
    ■ 시그모이드(Sigmoid)함수 최적선을 찾음
  • 회귀 트리
    ■ 리프 노드에서 결정값을 만드는 과정에서 리프 노드에 속한 데이터 값의 평균값을 구함

5. 차원 축소

  • PCA
    • 변수 간 존재하는 상관관계 이용하여 주성분을 추출
    • 공분산 행렬, 고유벡터, 고유값 이용
  • LDA(Linear Discriminant Analysis)
    • 선형 판별 분석법, PCA와 유사
    • 지도학습의 분류에서 사용하기 쉽도록 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소함
    • 클래스 간 분산은 최대한 크게, 클래스 내부의 분산은 최대한 작게
  • SVD
    • PCA와 다르게 정방행렬이 아니어도 된다.
  • NMF(Non-Negative Matrix Factorization)
    • 행렬 근사 방식의 변형
    • 원소가 모두 양수일 때
    • 잠재 요소를 특성으로 가지는 두 행렬로 분해

6.군집화

  • KMeans
    • Centroid라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트를 선택하는 기법
    • 데이터가 원형에 가까울 수록 효과적
  • 군집 평가
    • 실루엣 분석
      • 각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타냄
      • 다른 군집과는 거리가 ㄸ러어져 있고 같은 군집끼리는 잘 뭉쳐있다는 뜻
      • 실루엣 계수를 기반으로 함
  • 평균 이동(Mean Shift)
    • KMeans와 다르게 데이터들의 밀도가 높은 곳으로 이동
    • 확률 밀도 함수(Kernel Densitiy Estimation,KDE)를 이용, 대표적으로 가우시안 커널 함수
    • 대역폭을 줄이면 군집 수 많아지고, 대역폭을 늘리면 군집 수 적어진다
  • GMM(Gaussian Mixture Model)
    • 데이터가 여러 개의 가우시안 분포를 가진 데이터 집합들이 섞인 것이라 가정
  • DBSCAN(Density Based Spatial Clustering of Applications with Noise)
    • 복잡한 분포를 가진 데이터에도 잘 적용
    • 핵심 포인트(주변 영역 내에 최소 데이터 개수 이상의 타 데이터를 가지고 있을 경우)
    • 이웃 포인트(핵심 포인트이고, 핵심포인트를 이웃으로 가짐)
    • 경계 포인트(핵심 포인트는 아니지만 핵심포인트가 이웃임)
    • 잡음 포인트(핵심 포인트도 아니고 이웃에도 핵심 포인트없음)

7.텍스트 분석

  • 피처 벡터화
    • Bag of Words
    • Word2Vec
  • 데이터 정제
    • 클렌징, 토큰화, 스톱 워드 제거
    • Stemming, Lemmatization
  • BOW
  • 문맥이나 순서를 무시하고 단어에 대해 빈도 값을 부여해 피처 값을 추출하는 모델
  • 문맥을 무시하는 단점, n-gram으로 어느정도 보완할 수 있지만 부족함
  • 희소 행렬 문제
  • 피처 벡터화방법
    • Count
    • TF-IDF
      • 문서간 등장 횟수와 문서 내 등장 횟수 비교, 가중치
      • 개별 문서에서 단어 빈도 X log(전체 문서 개수/ 단어i를 가지고 있는 문서 개수)
  • 희소 행렬(COO 형식)
    • 0이 아닌 데이터만 별도의 배열에 저장하고 그 데이터가 가리키는 행과 열의 위치를 별도의 배열로 저장
  • 희소 행렬(CSR 형식Compressed Sparse Row), 더 뛰어남
    • 행 위치 배열의 첫번째 인덱스(시작 위치) 배열에 추가
  • 감성 분석
    • 지도 학습 : 감성 레이블이 정해져 있음
    • 비지도 학습 : Lexicon이라는 감성 어휘 사전 사용
  • 토픽 모델링
    • 문서 집합에 숨어 있는 주제를 찾아내는 것
    • LSA(Latent Semantic Analysis)
    • LDA(Latent Dirichlet Allocation)
  • 문서 군집화
  • 문서 유사도
    • 코사인 유사도
      • 코사인(두 벡터 사잇각) = 두 벡터 내적/ 두 벡터 크기 곱
  • 한글 텍스트 처리
    • KoNLPy

8.추천

  • 콘텐츠 기반 필터링
  • 협업 필터링
    • 최근접 이웃 협업 필터링
    • 잠재 요인 협업 필터링
profile
Today is the day

0개의 댓글