Statistics/ML | Python

머신러닝이 뭐여 1편

clodagh 2023. 2. 18. 17:23

이전 글

 

AI 란 무엇인가?

AI 분류와 AI 과제 유형 Supervised Learning 지도학습 데이터에 정답이 있는 경우 분류모델 : 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제 (감정분류, 이미지분류) 회귀모델 : 주어진 데이

clodagh.tistory.com

 

 

머신러닝 공부한 것 정리하기. 이번 글에서는 머신러닝의 지도학습에 대해서 써볼 예정.

 

지도학습 (Supervised Learning)

  • Linear Regression
  • Decision Tree
  • Ensemble-random forest

 

Linear Regression

x, y, and y_pred(prediction value)

$error = (y_{prediction} - y_{real} )$

$Squared Error = (Error)^2$

$Mean Squared Error = Mean[sum(Error^2)]$

→ Goal ? Error를 최소화하는 지점을 찾자 !! (기울기값이 최소힌 지점 (=0인지점))

 

→ Error를 최소화하는 방향으로 y_prediction 값을 학습(찾음)

 

 

→ Error 가 최소화되는 y_prediction 값, 즉, weight(w0 ~ w4) 값을 찾는 것이 목표

 


데이터 전처리

  1. 결측치 처리
  2. Categorical Data 처리
    1. Get_dummies로 문자열(object형)값을 열로 만들고, 해당 컬럼에 해당하는 열만 1로 표
  3. Train-test split
    • 성능을 평가하기위해 확보된 데이터를 test 용으로 잘라

x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.2, random_state = 2023)
x_train, x_val, y_train, y_val= train_test_split(x_train,y_train,test_size = 0.2, random_state = 2023)

 

 

4. Scaling

  • Feature 별 데이터 크기가 다름
  • 데이터의 scaling 을 통해 데이터의 표준화/정규화 필요

 

 

  • Min-Max Scaling : 모든 데이터를 0~1 사이로 맞추는 것, 주로 사용하는 스케일링 기법
  • Standard Scaling : 평균0, 표편1로 맞추기, 데이터의 이상치가 심할 경우 사용

 


Sickit Learn 코딩스타일 및 모델 성능평가

코딩구조 (ex. Linear Regression)

  1. Model Import
  2. Model 선언
  3. Model 학습 (.fit)
  4. Model 예측 (.predict)
#1. model import
from sklearn.linear_model import LinearRegression
#2. 선언
lr = LinearRegression()
#3. .fit()
lr.fit(X_train, Y_train)
#4. preict()
lr.predict(x_val)

 

성능평가

보통 Supervised Learning은 수치형 데이터를 예측하거나, 분류가 잘 되었는지를 확인

  1. Regression (수치형)
  • MSE(Mean Square Error)

  • RMSE(Root Mean Square Error)

   2. Classification (분류)

  • Accuracy- 정확도 - 1을 1로, 0을 0으로 맞춘 비율
  • Recall - 재현율 - 실제 1을 1로 맞춘 비율
  • Precision - 정밀도 - 예측값이 1일 때 실제 1일 비율

→ 정상에 대한 recall 과 precision!! (질병이 아닌 것에 관심이 없기 때문에)