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