답변함

25년 빅분기 정기 정규 이론 제2작업형 문제4 "MinMax Scale"

아래 코드에서 “carID”만 제외하고 스케일링을 하고 다시 합하는 배경과 목적에 대해 추가적인 설명을 

부탁드립니다.

감사합니다.

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
carID_column=x_train['carID']
x_train_without_carID=x_train.drop(columns=['carID'])
x_train_normal=pd.DataFrame(scaler.fit_transform(x_train_without_carID),
                          columns=x_train_without_carID.columns)
x_train_normal['carID']=carID_column
carID_column_test=x_test['carID']
x_test_without_carID=x_test.drop(columns=['carID'])
x_test_normal=pd.DataFrame(scaler.transform(x_test_without_carID),
                         columns=x_test_without_carID.columns)
x_test_normal['carID']=carID_column_test

0

댓글

댓글 1개
날짜 투표수
  • 안녕하세요 질의사항에 대한 답변입니다.

    carID는 숫자로 되어 있지만 차량을 구분하기 위한 식별자일 뿐입니다. 숫자의 크고 작음이 차량의 특성을 의미하지 않기 때문에 MinMaxScaler로 정규화하면 안 됩니다. 그래서 먼저 carID를 따로 저장하고, 나머지 변수들만 스케일링한 뒤, 예측 결과를 차량별로 구분할 수 있도록 다시 carID를 붙입니다. train 데이터에서는 fit_transform()으로 스케일링 기준을 만들고, test 데이터에서는 train에서 만든 기준을 그대로 적용하기 위해 transform()만 사용합니다.

    0

댓글을 남기려면 로그인하세요.

 

원하는 것을 찾지 못하셨나요?

질문하기