본문 바로가기
AI/Machine Learning

[ML] 머신러닝 기초

by 안녕나는현서 2021. 4. 29.
728x90

- 지도학습(Supervised Learning)

  • 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
  • 스팸 메일 분류, 집 가격 예측(회귀)
  • 분류(Classification)
    • 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것(y가 범주형 데이터로 구성)
    • 클래스 레이블은 이산적이고 순서가 없음
    • 속성 값을 입력, 클래스 값을 출력으로 하는 모델
    • 이진분류, 다중분류
    • 붓꽃(iris)의 세 품종 중 하나로 분류, 암 분류, 광고성 이메일 감지(이진 분류), 손글씨 인식(다중 분류) 등
  • 회귀(Regression)
    • 연속적인 숫자를 예측하는 것
    • 속성 값을 입력, 연속적인 실수 값을 출력으로 하는 모델(y가 수치 데이터로 구성)
    • 예측 값의 미묘한 차이가 크게 중요하지 않음
    • 입력값 x와 결과값 y가 주어지면 각 데이터와 직선 사이 거리가 최소가 되는 직선 → 평균 제곱 거리 사용
    • 어떤 사람의 교육 수준, 나이, 주거지를 바탕으로 연간 소득 예측

 

- 비지도학습(Unsupervised Learning)

  • 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
  • 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
  • 군집화(Clustering)
    • 사전정보 없이 쌓여있는 그룹 정보를 의미 있는 서브그룹 또는 클러스터로 조직하는 탐색적 데이터 분석 기법
    • 분석과정에서 만든 각 클러스터는 어느 정도 유사성을 공유, 다른 데이터(클러스터)와 구분되는 그룹 형성
    • 군집은 정보를 조직화하고 데이터에서 의미 있는 관계를 유도
  • 차원 축소(Dimensionality Reduction)
    • 고차원의 데이터를 저차원으로 축소하는 기법
    • 고차원의 데이터 → 계산 성능과 저장 공간의 한계 →그렇다고 해서 무작정 이상치라 판단되는 데이터 일부를 제거하면 이후 특정 알고리즘의 예측 성능을 감소시키는 불상사 발생
    • 이러한 문제점 해결위해 대부분의 정보를 유지하면서 더 작은 차원의 부분 공간으로 데이터를 압축
  • 이미지 감색 처리, 소비자 그룹 발견을 통한 마케팅, 손 글씨 숫자 인식

 

- 지도학습/비지도학습 모델 종류

  지도학습 비지도학습
이산 데이터 [분류]
KNN, 결정트리, 로지스틱 회귀, Naive-Bayes, SVC,
신경망, 퍼셉트론, Random Forests, GBM, Xgboost
[연관 규칙 학습]
Apiori, FP-Growth

[HMM]
연속 데이터 [회귀]
선형 회귀, 다항 회귀, 라쏘 회귀, 릿지 회귀, 일래스틱넷, 회귀 트리(앙상블), SVR
[군집과 차원축소]
SVD, PCA, ICA, NMF, K-means, DBSCAN, t-SNE

 

- 강화 학습(Reinforcement Learning)

  • 지도학습과 비슷하지만 완전한 답(Label)을 제공하지 않음
  • 기계는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
  • 강화학습의 피드백은 정답 레이블이나 수치가 아님
  • → 보상 함수를 통해 에이전트가 취한 행동이 얼마나 좋은 행동인지 혹은 좋지 못한 행동인지 측정한 값
  • 주로 게임이나 로봇을 학습시키는데 많이 사용
  • 사람과 달리 학습과정을 밤낮없이 진행 가능, 단기간에 놀라운 성장

 

- 머신러닝 활용분야

  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
  • 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
  • 새로운 데이터에 적응해야하는 유동적인 환경
  • 대량의 데이터에서 통찰을 얻어야 하는 문제

 

- 머신러닝 학습 과정

  1. Problem Identification(문제정의)
    • 비즈니스 목적 정의(모델을 어떻게 사용해 이익을 얻을까?)
    • 요구사항 분석
    • 현재 솔루션의 구성 파악
    • 지도 vs 비지도 vs 강화
    • 분류 vs 회귀
  2. Data Collect(데이터 수집)
    • File(CSV, XML, JSON)
    • Database
    • Web Crawler(뉴스, SNS, 블로그)
    • IoT 센서를 통한 수집
    • Survey
  3. Data Preprocessing(데이터 전처리)
    • 결측치 처리(삭제 또는 대체 - 중간값, 평균, 예측값 등)
    • 이상치(outlier) 처리(삭제 또는 대체 - 중간값, 평균, 예측값, 범주화 등)
    • Cleaning(오류 수정)
    • Feature Engineering(특성 공학)
      • Scaling(단위 변환)
      • Transform(새로운 속성 추출)
      • Encoding(범주형 → 수치형)
      • Binning(수치형 → 범주형)
      • Normalization(정규분포화)
      • 범주형 데이터 통합
  4. EDA(탐색적 데이터분석)
    • 기술통계, 변수 간 상관관계
    • 시각화(pandas, matplotlib, seaborn)
    • Feature Selection(사용할 특성 선택)
    • 단변수 시각화 : Histogram(빈도수), Boxplot(평균, 중간값 등)
    • 이변수 시각화 : Scatter plot(수치, 상관관계), 누적막대그래프(범주, 독립성 분석), 범주별 Histogram
    • 다변수 시각화 : Violin plot, 3차원 그래프 등
  5. Model 선택, Hyper Parameter 조정
    • 목적에 맞는 적절한 모델 선택
    • Hyper Parameter : 모델의 성능을 개선하기 위해 사람이 직접 넣는 파라미터
  6. Model Training(학습)
    • model.fit(X_train, y_train) : train데이터와 test데이터를 7:3 정도로 나눔
    • model.predict(X_test)accuracy(정확도) : (TP+TN) / (TP+FP+FN+TN)
  7. Evalution(평가)
    • recall(재현율) : TP / (TP+FN)
    • precision(정밀도) : TP / (TP+FP)
    • f1 score

 

728x90

댓글