본문 바로가기
개발기록/머신러닝

[머신러닝] 머신러닝(Machine Learning)이란?

by spectrum20 2024. 9. 8.
반응형

머신러닝(Machine Learning, 기계학습)

  • 데이터를 기반으로 학습을 시켜서 예측하게 만드는 기법
  • 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘 기술을 개발하는 분야
  • 통계학, 데이터 마이닝, 컴퓨터 과학이 어우러진 분야

 

데이터를 주면 데이터를 학습하여 기계가 스스로 규칙(알고리즘, 모델)을 만들어낸다
데이터를 이용하여 특성과 패턴을 학습하고, 그 결과를 바탕으로 미지의 데이터에 대한 미래결과를 예측

 
 

머신러닝의 종류

  • 지도학습

: 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법

  패턴 학습
 (문제와 정답을 모두 알려주고 학습시키는 방법)

  분류 (Classification) 회귀 (Regression)
개념 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것 연속적인 실수(숫자)를 예측하는 것
가장 가까운 수식을 찾는 법
I/O 속성값을 입력, 클래스값을 출력으로 하는 모델 속성값을 입력, 연속적인 실수값을 출력으로 하는 모델
종류 이진분류, 다중분류 선형회귀, 로지스틱회귀, 리지회귀, 라쏘회귀
예시 붓꽃의 품종 분류
동물의 종류 분류
사람의 교육수준, 주거지를 바탕으로 연간 소득 예측
키와 몸무게를 바탕으로 허리둘레 예측
알고리즘 KNN(K-Nearest Neighbor)
SVN(Support Vector Machine)
Decision Tree
Regression
Neural Network (인공신경망,ANN)
Random Forest

 

  • 비지도학습

: 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
  예측이 목적이 아니라, 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
 ex) 클러스터링(Clustering), 차원축소(Dimensionality Reductino), 상관관계, feature Engineering

패턴/구조 발견 Association Rule Analysis
Network Analysis
분류 K-mean Clustering
Fuzzy Clustering
영상/이미지/신호 분석 Wavelet / Fast Fourier / Transformation
DTW (Dynamic Time Warping)
차원 축소 PCA (Principal component analysis)
Factor Analysis

 

  • 강화학습 (Reinforcement Learning)

: 지도학습과 비슷하지만, 완전한 답(Label)을 제공하지 않음
  실수와 보상을 통해 학습을 하여, 더 많은 보상을 얻을 수 있는 방향으로 학습
  주로 게임이나 로봇을 학습시키는데 사용
 
 

 

머신러닝 과정

 

1. 문제 정의 (Problem Identification)

  •  비지니스 목적 정의
  •  현재 솔루션의 구성 파악
  • 지도, 비지도, 강화
  • 분류, 회귀
     

2. 데이터 수집 (Data Collect)

  • File (csv, xml, json)
  • Database
  • Web Crawler
  • Iot 센서
  • survey (설문) 
     

3. 데이터 전처리 (Data Preprocessing)

  • 결측치, 이상치 처리
  • 특성공학 (Feature Engineering)
       : 단위변환, 새로운 속성 추출,범주형→수치형, 수치형→범주형 
     

4. 탐색적 데이터 분석 (EDA)

  • 기술통계, 변수간 상관관계
  • 시각화 (pandas, matplotlib, seaborn)
  • 사용할 특성 선택 (Feature Selection)
     

5. Model 선택, Hyper Parameter 조정

  • 목적에 맞는 모델 선택
  •      ex) KNN, SVM, Linear Regression, Ridge, Lasso, Decision Tree, Random forest, CNN, RNN...
  • Hyper Parameter : model의 성능 개선을 위해 사람이 직접 넣는 parameter
     

6. 학습 (Trainning)

  • model.fit (x_train, y_train) 
      x_train : x_test = 7:3
  • model.predict (x_test)
     

7. 평가 (Evaluation)

  • 정확도 (accuracy) = (TP+TN) / (TP+FP+FN+TN)
  • 재현율 (recall) = TP / (TP+FN)
  • 정밀도 (precision) = TP / (TP+FP)
  • f1 score = 2 { (Precision×Recall) / (Precision+Recall) }
     (분류모델의 Precision과 Recall 성능을 동시에 고려하기 위한 지표, 조화평균)
  실제
1 (Positive) 0 (Negative)
예측 1 (Positive) TP (True, Positive) FP (False, Positive)
0 (Negative) FN (False, Negative) TN (True, Negative)

TP : 실제 True를 True로 예측 (정답)
FP : 실제 False를 True로 예측 (오답)
FN : 실제 True를 False로 예측 (오답)
TN : 실제 False를 False로 예측 (정답)

 
 

  • 머신러닝 과정 도식화

  •  머신러닝 라이브러리
    - 사이킷런 (scikit learn)
    : 파이썬에서 쉽게 사용할 수 있는 머신러닝 라이브러리
      회귀, 분류, 군집, 차원축소, 특성공학, 전처리, 교차검증 등 머신러닝에 필요한 기능과 학습을 위한 샘플데이터 제공
반응형

댓글