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
'DNN with Keras > Machine Learning' 카테고리의 다른 글
원핫 인코딩 (One-Hot-Encoding) (0) | 2023.07.27 |
---|---|
범주형 (Categorical) 및 연속형 (Continuous) 값 (0) | 2023.07.27 |
데이터프레임 저장 (0) | 2023.07.27 |
Dropping / Concatenating (0) | 2023.07.27 |
결측치 (Missing Values) / 특이치 (Outliers) (0) | 2023.05.01 |