해결된 질문
작성
·
192
0
선생님이 민맥스스케일러 코드를
# 민-맥스 스케일링 MinMaxScaler (모든 값이 0과 1사이)
cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week']
n_train, n_test, c_train, c_test = get_nc_data() # 데이터 새로 불러오기
from sklearn.preprocessing import MinMaxScaler
scaler=MinMaxScaler()
n_train[cols]=scaler.fit_transform(n_train[cols])
이렇게 작성하신 부분을 제가 라벨인코더 코딩처럼 변경해봤는데요(from sklearn.preprocessing이 똑같은거랑 구조가 비슷해서요)
from sklearn.preprocessing import MinMaxScaler for col in cols: sc=MinMaxScaler() X_train.col=sc.fit_transform(X_train[col]) X_test.col=sc.transform(X_test[col])
이런에러가 떴어요
if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
코딩구조가 비슷한거같아서 한번 시도해봤는데 민맥스스케일러는 LabelEncoder() 할때와 코드를 비슷하게 칠순없는건가요?
답변 1
0
MinMaxScaler 입력값 -> 2차원 (데이터 프레임 형태)
LabelEncoder 입력값 -> 1차원 (시리즈 형태)
MinMaxScaler는 데이터프레임(2D 배열) 형태의 데이터를 기대하지만, 단일 열을 전달하면 시리즈(1D 배열)로 처리되기 때문에 문제가 발생했어요