AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝/머신러닝: 입문 개념

모델학습과 예측

qordnswnd123 2024. 12. 1. 13:49

1. 지도 학습(Supercised Learning)

 

머신러닝의 분류 및 회귀 문제는 정답('target')이 있으며, 학습 데이터셋의 컬럼에는 target 컬럼이 반드시 존재합니다.

이와같이 정답이 주어지는 머신러닝 문제를 지도학습 문제라고 합니다.

지도학습 문제에서는 머신러닝 알고리즘이 정답이 포함되는 학습데이터셋을 학습하고, 맞추고자 하는 새로 주어진 데이터셋에 대한 정답을 예측하게 됩니다.

테스트 데이터셋은 머신러닝 모델을 통해 예측해야 하는 데이터셋이므로 정답이 주어져있지 않습니다.

 


2. Scikit-learn을 이용한 모델 학습과 예측

 

Scikit-learn은 Python 프로그래밍 언어로 작성된 오픈소스 머신러닝 라이브러리로, 머신 러닝의 다양한 분류, 회기, 클러스터링 알고리즘을 포함하고 있습니다.

 

2.1 모델 학습하기(fit)

 

'TRAIN Dataset'은 'train_x'(features, 독립 변수)와 'train_y'(target, 종속변수)로 구성되어 있습니다.

'train_x'는 모델에게 target 변수를 설명하는 변수들이고, 'train_y'는 예측하고자 하는 결과입니다.

from sklearn.ensemble import RandomForestClassifier

# 훈련 데이터셋을 로드합니다.
train_x = ... # feature 데이터
train_y = ... # target 데이터

#랜덤 포레스트 인스턴스를 생성합니다.
model = RandomForestClassifier()

# 모델을 훈련 데이터셋에 맞춥니다.
model.fit(train_x, train_y)

 

fit() 메서드는'TRAIN Dataset'을 사용하여 모델에 학습을 시킵니다.

이는 모델이 feature와 target 사이의 관계를 이해하고, 이를 내부적으로 패턴으로 저장하는 과정입니다.

 

2.2 새로운 데이터에 대해 예측하기(predict)

 

모델이 학습되면 'TEST Dataset'을 사용하여 모델이 실제로 얼마나 잘 작동하는지를 평가할 수 있습니다.

# 테스트 데이터셋을 로드합니다.
test_x = ... # 새로운 feature 데이터

# 모델을 사용하여 테스트 데이터셋에 대한 예측을 수행합니다.
predict = model.predict(test_x)

 

predict()메서드는 학습된 모델에 'test_x'를 입력하여 모델이 이전에 학습한 패턴을 기반으로 새로운 결과를 예측합니다.

 


3. 활용 예시

활용 데이터

  • train_wine.csv
  • test_wine.csv
  • target 변수 : 'quality'

3.1 데이터 로드

import pandas as pd
train = pd.read_csv('train_wine.csv')
test = pd.read_csv('test_wine.csv')

train_x = train.drop('quality', axis = 1 ) # 독립 변수에는 target변수가 제거되어야 함.
train_y = train['quality'] 

display(train.head())
display(train_x.head())
display(test.head())

3.2 모델 학습 및 예측

from sklearn.ensemble import RandomForestClassifier 

model_rf = RandomForestClassifier(random_state = 42) 

# 모델 학습
model_rf.fit(train_x, train_y)
predict = model_rf.predict(test)
print(predict[:10])
[5 6 6 5 6 6 6 6 6 7]

 

'머신러닝 > 머신러닝: 입문 개념' 카테고리의 다른 글

데이터 표준화(StandardScaler)  (0) 2024.12.04
모델 성능 검증  (0) 2024.12.02
분류(Classification)  (3) 2024.11.30
회귀분석  (0) 2024.11.29
로지스틱 회귀분석  (0) 2024.11.28