인프런 커뮤니티 질문&답변

jms717958님의 프로필 이미지
jms717958

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

피처 엔지니어링

3-4 피처엔지니어링 민맥스스케일러 질문

해결된 질문

작성

·

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 배열)로 처리되기 때문에 문제가 발생했어요

jms717958님의 프로필 이미지
jms717958

작성한 질문수

질문하기