# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # 테스트할 데이터와 훈련할 데이터로 분할하기
# 데이터 모델을 학습할 때 데이터를 테스트할 데이터셋과 학습할 데이터셋으로 나눌 필요가 있습니다.
#
# 이 작업을 수행하기 위해 [scikit-learn](https://scikit-learn.org/stable/) 라이브러리를 사용해야합니다.
#
# scikit-learn은 오픈 소스로 전처리 및 학습 모델을 위한 데이터 과학용 BSD 라이센스 라이브러리입니다.

# 데이터를 테스트용 학습용으로 나누기 전에 우리는 데이터 준비를 해야합니다.

import pandas as pd

# 항공편 및 항공편 지연에 대한 정보가 포함 된 csv 파일을 불러옵니다.
#
# **shape**를 사용하여 원본 DataFrame에있는 행과 열 수를 확인합니다.

delays_df = pd.read_csv('Data/Lots_of_flight_data.csv')
delays_df.shape

# ## 데이터를 기능 및 레이블로 분할
# 모델 학습에 사용할 기능만 포함하는 X라는 DataFrame을 만듭니다.
#
# **참고** 숫자 값을 특징으로만 사용할 수 있으며, 숫자가 아닌 값이 있는 경우 핫 인코딩과 같은 다른 기술을 적용하여 모델을 학습하기위한 특징으로 사용하기 전에 이를 숫자 값으로 변환해야합니다. 이러한 기술에 대한 자세한 내용은 데이터 과학 과정을 확인하십시오!

X = delays_df.loc[:,['DISTANCE', 'CRS_ELAPSED_TIME']]
X.head()

# 모델로 예측하려는 값만 포함하는 y라는 DataFrame을 만듭니다.
#
# 우리의 경우 비행기가 몇 분 늦게 도착할지 예측하려고합니다. 이 정보는 ARR_DELAY 열에 있습니다.

y = delays_df.loc[:,['ARR_DELAY']]
y.head()

# ## 테스트할 데이터와 훈련할 데이터로 분할하기
# Use **scikitlearn train_test_split**를 사용하여 Test DataFrames로 30%의 행을 옮깁니다.
#
# DataFrame의 나머지 70% 행은 우리의 모델을 학습하는데 사용합니다.
#
# 참고: *random_state* 값을 지정하여 코드를 다시 실행하면 동일한 행이 테스트 DataFrame으로 이동됩니다. 이것은 결과를 반복적으로 생성합니다.

# +
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, 
                                                    random_state=42
                                                   )
# -

# 이제 우리는 행의 70%를 포함하는 **X_train** DataFrame을 가지고 있습니다.
#
# 우리는 모델을 학습하는데 이 DataFrame을 이용합니다.

X_train.shape

# DataFrame **X_test**은 30%의 행을 포함하고 있습니다.
#
# 우리는 이 DataFrame으로 훈련된 모델을 테스트하는 용도로 사용해 정확도를 측정할 수 있습니다.

X_test.shape

# **X_train**와 **X_test**는 특징을 포함합니다.
#
# 그 특징은 항공편이 얼마나 늦게 도착할지 예측하는 데 도움이 될 수 있다고 생각하는 열입니다: **DISTANCE**, **CRS_ELAPSED_TIME**

X_train.head()

# DataFrame **y_train**은 70%의 행을 포함합니다.
#
# 우리는 이 DataFrame을 이용하여 우리의 모델을 학습할 것입니다.

# 원본 DataFrame을 유지할 필요가없는 경우 새 DataFrame을 만드는 대신 기존 DataFrame 내의 행을 삭제하기 만하면됩니다.
# **inplace=*True*** 는 지정된 DataFrame에서 행을 삭제하려고 함을 나타냅니다.

y_train.shape

# DataFrame **y_test**에는 행의 나머지 30 %가 포함됩니다.
#
# 이 DataFrame을 사용하여 훈련된 모델을 테스트하므로 정확성을 확인할 수 있습니다.

y_test.shape

# **y_train**과 **y_test**은 우리의 레이블을 포함합니다.
#
# 레이블은 학습된 모델로 예측하려는 열입니다 : ** ARR_DELAY **
#
# **참고:**  ARR_DELAY 값이 음수이면 항공편이 일찍 도착했음을 나타냅니다.

y_train.head()

StarcoderdataJupyterScriptsDedupFiltered