TIL/디지털트윈

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

saramnim 2023. 8. 3. 15:15
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
반응형