-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
StandardScaler 부분 코드에 대해서 질문 있습니다.
21.01.27 15:11 작성 조회수 105
0
StandardScaler 부분 코드를 자세히 읽어보니
get_preprocessed_df 함수를 정의하셨는데,
밑의 코드를 보니 그 함수를 적용하지 않고 바로 card_df를 이용하여 다시 학습을 시키신거 같은데 그렇게 되면 원본 Amount 속성의 값은 변화가 없게 되는거 아닌가요?
답변을 작성해보세요.
0
0
권 철민
지식공유자2021.01.27
안녕하십니까,
get_train_test_dataset(dataframe)에서 다시 get_preprocessed_df()함수가 정의 되어 있습니다.
get_train_test_dataset(dataframe)을 불러서 get_preprocessed_df(dataframe)으로 사전 가공을 한 뒤에 학습데이터, 테스트 데이터를 나누고, 이를 이용하여 학습을 수행합니다.
get_preprocessed_df()는 scale변환, log 변환시 마다 함수가 재 정의 되므로 원본 Amount값을 그때마다 변경된 후 학습데이터, 테스트 데이터로 나누어지게 됩니다.
# 사전 데이터 가공 후 학습과 테스트 데이터 세트를 반환하는 함수.
def get_train_test_dataset(df=None):
# 인자로 입력된 DataFrame의 사전 데이터 가공이 완료된 복사 DataFrame 반환
df_copy = get_preprocessed_df(df)
.......
.......
def get_preprocessed_df(df=None):
df_copy = df.copy()
scaler = StandardScaler()
amount_n = scaler.fit_transform(df_copy['Amount'].values.reshape(-1, 1))
# 변환된 Amount를 Amount_Scaled로 피처명 변경후 DataFrame맨 앞 컬럼으로 입력
df_copy.insert(0, 'Amount_Scaled', amount_n)
# 기존 Time, Amount 피처 삭제
df_copy.drop(['Time','Amount'], axis=1, inplace=True)
return df_copy
# get_preprocessed_df(df)가 적용된 후 학습및 테스트 데이터 반환
X_train, X_test, y_train, y_test = get_train_test_dataset(card_df)
감사합니다.
답변 2