본문 바로가기

Python/Data Analysis

Data Analysis / ML / Basic Concept(1)

< AI (Artificial Intelligence) >

  • 사람이 가지는 가장 큰 특성이라고 할 수 있는 학습, 추론 능력을 컴퓨터를 통해서 구현하는 가장 포괄적인 개념

< Machine Learning >

  • AI를 구현하기 위한 하나의 방법
  • 데이터를 이용해서 데이터의 특성과 패턴을 파악한 후 해당 내용을 학습
  • 그 결과를 바탕으로 미지의 데이터에 대해 미래 결과를 예측

< ML 종류 >

  1. Regression (Linear Regression / Logistic Regression)
  2. SVM (Support Vector Machine)
  3. Decision Tree
  4. Random Forest
  5. Naive Bayes
  6. KNN (K-Nearest Neighbor)
  7. Neural Network (신경망)
  8. Clustering (K-Means, DBSCAN)
  9. Reinforcement Learning

< Data Mining >

  • 데이터의 상관관계를 파악
  • 새로운 속성을 추출해내는 것이 목적
  • Machine Learning 과는 다름

< Deep Learning >

  • Machine Learning을 구현하기 위한 하나의 방법
  • 신경망을 이용하는 구조 + 알고리즘의 집합
  • CNN, RNN, LSTM, GAN, ...

< Machine Learning의 필요성 >

  • Explicit program => Rule based programming (우리가 일반적으로 하는 프로그래밍)
  • Explicit program의 한계를 극복하기 위해 등장
  • 조건이 너무 많은 경우, 프로그램 자체가 데이터를 기반으로 학습을 통해 스스로 배우는 능력을 가질 수 있도록 프로그래밍 하는 기법

< ML의 학습방법에 따른 4가지 분류 >

  1. 지도학습 (Supervised Learning)
    • 입력값(x)과 label(정답; t)을 포함하는 Training Data Set을 이용하여 학습을 진행
    • 학습된 결과를 바탕으로 미지의 데이터에 대한 미래 예측값을 알아냄
    • 데이터의 종류
      1. continuous value(연속값) : 공부시간에 따른 시험 점수 예측 - 87점
      2. Discrete value(이산값) : 공부시간에 따른 시험 합격 여부 예측 - 0(Fail) / 1(Pass)
      3. 이산값인데 여러개 중 하나 : 공부시간에 따른 시험 Grade 예측 - A학점
    • 어떤 종류의 미래값을 예측하느냐에 따라 구분됨
      1. Regression(회귀) : 학습된 결과를 바탕으로 연속적인 숫자값을 예측
        • Linear Regression(선형회귀) : '얼마나'를 예측하는 방법
      2. Classification(분류) : 학습된 결과를 바탕으로 주어진 입력값의 종류를 구별
        • '어떤것' 인가를 예측하는 방법
        • binary classification : 둘 중 하나를 예측
        • multinomial classificatoin : 여러개 중 하나를 예측
  2. 비지도학습 (Unsupervised Learning)
    • 입력되는 데이터에 정답(label)이 포함되어 있지 않음
    • 데이터의 분포와 특징을 학습해서 Grouping을 수행
    • Clstering / Classification
      1. clustering(군집화) : 비슷한 데이터끼리 Grouping
      2. classification(분류) : 어떤 분류에 속하는가에 대한 정답을 예측
  3. 준지도학습 (Semisupervised Learning)
    • 정답이 포함된 것도 있고 아닌 것도 있는 경우
    • ex) Google Photos
  4. 강화학습 (Reinforcement Learning)