Post

[KT Aivle 3기 AI] 14일차. 머신러닝 (1) 머신러닝 기초

KT Aivle School 3기 AI 14일차

  • 강사 : 이장래 강사님
  • 주제 : 머신러닝. 머신러닝의 전체 과정의 코드 실습
  • 내용 :
    • 머신러닝의 전반적인 개념 및 관련 용어
    • 회귀와 분류 구분
    • 머신러닝 전체 과정 코드 실습을 위주로 수업하심
    • 실습 코드1

머신러닝 (Machine Learning)

  • 알고리즘을 이용하여 데이터를 분석하고, 분석 결과를 스스로 학습 한 후 이를 기반으로 어떠한 판단이나 예측을 하는 것

1) 학습 방법에 따른 분류

  • 지도 학습(Supervised Learning) : 학습 대상이 되는 데이터에 정답을 주어 규칙성, 즉 데이터의 패턴을 배우게 하는 학습 방법
  • 비지도 학습(Unsupervised Learning) : 정답이 없는 데이터 만으로 배우게 하는 학습 방법
  • 강화 학습(Reinforcement Learning) : 선택한 결과에 대해 보상을 받아 행동을 개선하면서 배우게 하는 학습 방법

2) 과제에 대한 분류

  • 분류 문제(Classfication) : 이미 적절히 분류된 데이터를 학습하여 분류 규칙을 찾고, 그 규칙을 기반으로 새롭게 주어진 데이터를 적절히 분류하는 것을 목적으로 함(지도학습)
  • 회귀 문제(Regression) : 이미 결과값이 있는 데이터를 학습하여 입력 값과 결과 값의 연관성을 찾고, 그 연관성을 기반으로 새롭게 주어진 데이터에 대한 값을 예측하는 것을 목적으로 함(지도학습)
  • 클러스터링(Clustering) : 주어진 데이터를 학습하여 적절한 분류 규칙을 찾아 데이터를 분류함을 목적으로 함. 정답이 없으니 성능을 평가 하기 어려움(비지도학습)

⇒ 문류 문제인지 회귀 문제인지를 정확히 파악!! ⇒ 서로 다른 알고리즘을 사용하기 때문에, 문제 유형을 정확히 파악하고 알고리즘과 평가 방법을 선택해야 함

3) 머신러닝 관련 용어

  • 모델(Model) : 데이터로부터 패턴을 찾아 수학식으로 정리해 놓은 것
  • 모델링(Modeling) : 오차가 적은 모델을 만드는 과정. 머신이 적절한 학습을 통해 최선의 모델을 만들 수 있도록 노력하는 우리들의 행동
  • 모델의 목적 : 샘플을 가지고 전체를 추정

  • 열 : 변수(Variable)
  • 행 : 관측치(Observed Value)

  • 독립변수 : x
  • 종속변수 : y
  • 오차 : 관측값과 모델의 차이

  • 데이터 분리
    • x, y 분리
    • train, test 데이터 분리
  • 과대적합(Overfitting) : 학습 데이터에서 점수가 매우 높은데, 평가 데이터에서 점수가 매우 낮은 경우. 실전에서 예측 성능이 좋지 않음
  • 과소적합(Underfitting) : 학습 데이터보다 평가 데이터 점수가 더 높거나 두 점수 모두 너무 낮은 경우. 모델이 단순하여 학습 데이터에 적절히 훈련되지 않은 경우

4) 모델링 코드 구조

  1. 불러오기 - 사용할 라이버리를 import
  2. 선언하기 - 사용할 알고리즘을 모델로 선언
  3. 학습하기 - 모델.fit(x_train, y_train) 형태로 학습시키기
  4. 예측하기 - 모델.predict(x_test) 형태로 예측 값 만들기
  5. 평가하기 - 예측 값과 실제 값으로 평가

예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 데이터 준비
# 라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 데이터 읽어오기
data = pd.read_csv('airquality_simple.csv')

# x, y 분리
target = 'Ozone'
x = data.drop(target, axis=1)
y = data.loc[:, target]

# 학습용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3) 

# 모델링
# 1단계: 불러오기
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

# 2단계: 선언하기
model = LinearRegression()

# 3단계: 학습하기
model.fit(x_train, y_train)

# 4단계: 예측하기
y_pred = model.predict(x_test)

# 5단계: 평가하기
print(mean_absolute_error(y_test, y_pred))
This post is licensed under CC BY 4.0 by the author.

[KT Aivle 3기 AI] 13일차. 웹크롤링 (Web Crawling) (2)

[KT Aivle 3기 AI] 15일차. 머신러닝 (2) 모델 성능 평가 방법