본문 바로가기
TIL/디지털트윈

08.03 디지털 트윈 부트캠프(OT) 24일차

by saramnim 2023. 8. 3.
728x90
파이썬

머신러닝

원래의 프로그래밍이 Rule과 Data를 통해 Answer를 출력했다면,

머신러닝은 Answer와 Data를 통해 Rule을 출력해낸다.

  • 지도 학습
    문제와 정답을 모두 알려주고 공부시키는 방법 -> 예측, 분류
    • 분류: 데이터를 서로 다른 그룹으로 분류
    • 회귀(예측): 연속적인 데이터의 추세를 예측 y = ax + b
      • 선형회귀: 가설 H(x) = Wx + b
from sklearn.linear_model import LinearRegression
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
  • 비지도 학습
    답을 가르쳐주지 않고 공부시키는 방법 -> 연관 규칙, 군집
    • 클러스터링(그룹화)
  • 강화 학습
    보상을 통해 상은 최대화, 벌은 최소화하는 방향으로 행위를 강화하는 학습 -> 보상

MSE(Mean Square Error), 비용 함수, 과적합(Overfitting), 정규화(Noramlization)

 

ML 모델 개발 순서

데이터 읽기 -> 데이터 확인 -> 전처리 -> 분할 -> 알고리즘 선택 -> 학습 -> 예측 -> 모델평가 -> 튜닝

데이터 분할: Original Set / Training, Testing / Training, Validataion, Testing

X_train, X_test, y_train, y_test = 
train_test_split(data, digits.target, test_size = 0.2, random_state = 1)

 

지도학습 알고리즘

k-Nearest Neighbors (k-NN)

거리기반 분류분석 모델

새로운 데이터를 거리가 가장 가까운 k개의 데이터 레이블로 분류

 

로지스틱 회귀

샘플이 특정 클래스에 속할 확률을 추정

 

거리측정 방법

유클리드 거리: d(A, B) = √((x₂ - x₁)² + (y₂ - y₁)²)

맨해튼 거리: d(A, B) = |x₁ - x₂| + |y₁ - y₂|

: 최단거리 빼고 나머지 블럭으로 가는 거리는 모두 똑같다.

import numpy as np
from sklearn.datesets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split

iris = load_iris()
knn = KNeighborsClassifier(n_neighbors = 3)
X_train, X_test, Y_train, Y_test = train_test_split(iris['data'], iris['target'], test_size = 0.25, stratify = iris['target'])
Y_train
knn.fit(X_train, Y_train)
y_pred = knn.predict(X_test)
print("prediction accuracy: {:.2f}".format(np.mean(y_pred == Y_test)))

 

의사 결정 나무

클러스터링: 군집화

k-평균(k-Means)

1. K개의 임의의 중심점(centroid) 배치

2. 각 데이터들을 가장 가까운 중심점으로 할당(군집 형성)

3. 군집으로 지정된 데이터들을 기반으로 군집 중심점 업데이트

4. 2번, 3번을 수렴이 될 때까지, 즉, 더이상 중심점이 업데이트 되지 않을 때까지 반복

DBSCAN

어떤 기준이 되는 점을 먼저 찾는게 아닌, 임의의 데이터 포인트 하나에서 시작해 가까이에 있는 점들로 세력을 늘려나가는 알고리즘

728x90
반응형

댓글

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."