본문 바로가기
DNN with Keras/Machine Learning

데이터프레임 전처리

by goatlab 2023. 7. 27.
728x90
반응형
SMALL

Training and Validation

 

기계 학습 모델이 이전에 본 적이 없는 값을 예측하는 능력을 기반으로 기계 학습 모델을 평가해야 한다. 이 때문에 종종 훈련 데이터를 유효성 검증 및 훈련 세트로 나눈다. 기계 학습 모델은 훈련 데이터로부터 학습하지만 궁극적으로는 유효성 검사 데이터를 기반으로 평가된다.

 

• 훈련 데이터 : (표본 데이터 내) 신경망이 훈련하던 데이터

• 검증 데이터 : (표본 데이터 외) 기계 학습 모델이 훈련 데이터에 fit 후 평가되는 데이터

 

훈련 및 유효성 검증 데이터를 처리하는 데는 두 가지 효과적인 방법이 있다.

 

• 훈련 및 검증 데이터 분할 : 프로그램은 훈련 및 검증 (홀드 아웃) 세트 간의 비율에 따라 데이터를 분할한다. 일반적인 비율은 80%의 훈련 및 20%의 검증 데이터이다.

• K-Fold 교차 검증 (K-Fold Cross Validation) : 프로그램은 데이터를 여러 폴딩 및 모델로 분할한다. 프로그램은 폴딩과 동일한 수의 모델을 생성하기 때문에 전체 데이터 세트에 대한 표본 외 예측을 생성할 수 있다.

 

아래 코드는 MPG 데이터를 훈련 및 유효성 검사 세트로 분할한다. 훈련 세트는 데이터의 80%를 사용하고 검증 세트는 20%를 사용한다. 그림은 데이터의 80%에 대해 모델을 훈련한 후 나머지 20%에 대해 유효성 검사를 수행하는 방법을 보여준다.

 

import os
import numpy as np
import pandas as pd

df = pd.read_csv('auto-mpg.csv', na_values = ['NA', '?'])

# Usually a good idea to shuffle
df = df.reindex(np.random.permutation(df.index))
mask = np.random.rand(len(df)) < 0.8
trainDF = pd.DataFrame(df[mask])
validationDF= pd.DataFrame(df[~mask])
print(f"Training DF: {len(trainDF)}")
print(f"Validation DF: {len(validationDF)}")
Training DF: 315
Validation DF: 83

 

Converting a Dataframe to a Matrix

 

신경망은 파이썬 데이터 프레임에서 직접 작동하지 않는다. 신경망에는 숫자 행렬이 필요하다. 프로그램은 데이터 프레임의 값 속성을 사용하여 데이터를 행렬로 변환한다.

 

df.values
array([[15.0, 8, 302.0, ..., 77, 1, 'mercury cougar brougham'],
       [18.0, 6, 199.0, ..., 70, 1, 'amc hornet'],
       [23.7, 3, 70.0, ..., 80, 3, 'mazda rx-7 gs'],
       ...,
       [17.0, 6, 250.0, ..., 71, 1, 'chevrolet chevelle malibu'],
       [27.5, 4, 134.0, ..., 78, 3, 'toyota corona'],
       [13.0, 8, 360.0, ..., 73, 1, 'amc ambassador brougham']],
      dtype=object)

 

일부 열만 변환하고 이름 열을 제외하려면 다음 코드를 사용하면 된다.

 

df[['mpg', 'cylinders', 'displacement', 'horsepower', 'weight', 'acceleration', 'year', 'origin']].values
array([[ 15. ,   8. , 302. , ...,  14.9,  77. ,   1. ],
       [ 18. ,   6. , 199. , ...,  15.5,  70. ,   1. ],
       [ 23.7,   3. ,  70. , ...,  12.5,  80. ,   3. ],
       ...,
       [ 17. ,   6. , 250. , ...,  15.5,  71. ,   1. ],
       [ 27.5,   4. , 134. , ...,  14.2,  78. ,   3. ],
       [ 13. ,   8. , 360. , ...,  11. ,  73. ,   1. ]])
728x90
반응형
LIST