[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) 모델링 코드 구조
- 불러오기 - 사용할 라이버리를 import
- 선언하기 - 사용할 알고리즘을 모델로 선언
- 학습하기 - 모델.fit(x_train, y_train) 형태로 학습시키기
- 예측하기 - 모델.predict(x_test) 형태로 예측 값 만들기
- 평가하기 - 예측 값과 실제 값으로 평가
예제 코드
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.