안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 머신러닝 강좌 - 12. 머신러닝 모델 테스트를 진행토록 하겠습니다.

예제 노트북 파일 : 머신러닝 모델 테스트 노트북

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 강좌 내용을 단계별로 copy&paste해서 실행하시면 됩니다. 또는, Jupyter notebook을 실행하고 단계별로 실행하셔도 됩니다.

예를 들어, 12_model_test.ipynb를 생성하고 vscode에서 실행하면, Jupyter notebook이 실행됩니다.(vscode에서 실행도 가능하며, 웹브라우저에서도 실행 가능합니다.)

또는, github 리포지토리를 clone 하신 후, vscode나 Jupyter notebook에서, 위의 노트북 파일을 열면 됩니다. 
 

상세한 환경 구성이 필요 하시다면, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서를 참조해 WSL, vscode, conda, jupyter notebook 설정을 모두 먼저 완료 하시길 권장해 드립니다.

 

Python 머신러닝 강좌 - 12. 머신러닝 모델 테스트

모델 테스트(model test)

모델이 생성되면 값을 예측하는 데 사용할 수 있습니다. 새로운 값을 제공하여 예측 결과 범주의 어디에 해당하는지 확인할 수 있고, 생성 된 모델을 테스트 할 수도 있습니다. 트레이닝이 완료된 모델을 만들기 위해, 이전 노트북의 코드를 다시 실행합니다.

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# CSV 파일에서 데이터를 로드
delays_df = pd.read_csv('Lots_of_flight_data.csv') 

# null값을 제거 - null값이 있으면 트레이닝 과정에서 문제를 유발할 수 있습니다.
delays_df.dropna(inplace=True)

# Feature column들을 X DataFrame으로 이동
X = delays_df.loc[:,['DISTANCE', 'CRS_ELAPSED_TIME']]

# Labe column을 y DataFrame으로 이동
y = delays_df.loc[:,['ARR_DELAY']] 

# 데이터를 트레이닝 데이터셋과 테스트 데이터셋으로 분리 
X_train, X_test, y_train, y_test = train_test_split(
                                                    X, 
                                                    y, 
                                                    test_size=0.3, 
                                                    random_state=42
                                                   )

regressor = LinearRegression()     # scikit learn LinearRegression 개체 생성
regressor.fit(X_train, y_train)    # fit 메서드를 사용해 모델 트레이닝 실행

=== 실행결과 ===

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

 

모델 테스트

Scikitlearn, LinearRegression, predict 메서드를 사용하여 트레이닝 된 모델이 테스트 데이터의 값을 예측하도록 합니다.

위의 코드에서 테스트 데이터는 X_Test에 저장했습니다. 예측 결과를 y_pred에 저장합니다.

y_pred = regressor.predict(X_test)
y_pred

=== 결과 ===

array([[3.47739078],
       [5.89055919],
       [4.33288464],
       ...,
       [5.84678979],
       [6.05195889],
       [5.66255414]])

 

데이터를 트레이닝 및 테스트 데이터셋으로 분할 할 때, DataFrame y_test에 테스트 데이터의 각 row에 대한 실제 label 값을 저장했습니다. y_pred의 값을 y_test의 값과 비교하면 mdoel이 도착 지연을 얼마나 정확하게 예측했는지 알 수 있습니다.

 

y_test

=== 결과 ===

  ARR_DELAY
291483 -5.0
98997 -12.0
23454 -9.0
110802 -14.0
49449 -20.0
... ...
209898 -20.0
22210 -9.0
165727 -6.0
260838 -33.0
192546 0.0

88750 rows × 1 columns

 

수고하셨습니다. 다음 강좌에서는 이 테스트 결과를 통해, 모델의 정확도를 평가하는 방법에 대해서 소개해 드리겠습니다.

 

참고자료

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

c9-python-getting-started/even-more-python-for-beginners-data-tools/12 - Testing a model at master · CloudBreadPaPa/c9-python-getting-started (github.com)

 

No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 2134
33 Azure Databricks - MLflow를 이용한 머신러닝(4) - Model Registry file 코난(김대우) 2021.10.12 214
32 Azure Databricks - MLflow를 이용한 머신러닝(3) - Project file 코난(김대우) 2021.10.08 214
31 Azure Databricks - MLflow를 이용한 머신러닝(2) - Tracking file 코난(김대우) 2021.10.08 242
30 Azure Databricks - MLflow를 이용한 머신러닝(1) file 코난(김대우) 2021.10.08 273
29 Azure Databricks - Spark에서 머신러닝 분산 처리 file 코난(김대우) 2021.10.07 114
28 PySpark cheat sheet 자료 - RDD, 데이터 처리 file 코난(김대우) 2021.10.01 100
27 PySpark을 이용한 머신러닝 튜토리얼 예제 코난(김대우) 2021.10.01 734
26 Form Recognizer로 문서에서 표 데이터 추출 file 코난(김대우) 2021.01.21 312
25 MLaaS - (1) 12가지의 머신러닝을 먼저 도입한 기업들의 고민 file 코난(김대우) 2021.01.15 623
24 Python 머신러닝 강좌 - 15. Matplotlib으로 데이터 시각화(visualization) file 코난(김대우) 2021.01.09 550
23 Python 머신러닝 강좌 - 14. NumPy와 Pandas 코난(김대우) 2021.01.09 527
22 Python 머신러닝 강좌 - 13. 모델의 정확도 평가(accuracy evaluating) 코난(김대우) 2021.01.09 1117
» Python 머신러닝 강좌 - 12. 머신러닝 모델 테스트 코난(김대우) 2021.01.09 672
20 Python 머신러닝 강좌 - 11. scikit-learn으로 선형회기(linear regression) 모델 머신러닝 트레이닝 수행 코난(김대우) 2021.01.08 267
19 Python 머신러닝 강좌 - 10. 머신러닝을 위해 scikit-learn으로 트레이닝 데이터와 테스트 데이터 분할 코난(김대우) 2021.01.08 387
18 Python 머신러닝 강좌 - 9. 중복데이터와 결측값(missing value) 처리 코난(김대우) 2021.01.08 187
17 Python 머신러닝 강좌 - 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove) 코난(김대우) 2021.01.08 281
16 Python 머신러닝 강좌 - 7. Pandas DataFrame으로 CSV 파일 읽고 쓰기 코난(김대우) 2021.01.08 249
15 Python 머신러닝 강좌 - 6. CSV 파일과 주피터 노트북 file 코난(김대우) 2021.01.08 295
14 Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query) 코난(김대우) 2021.01.07 207





XE Login