해결된 질문
작성
·
40
0
8회 기출에서 민맥스 스케일링 풀이에서는
from sklearn.preprocessing import MinMaxScaler
scaler=MinMaxScaler()
민맥스스케일러를 스케일러로 받아와서 풀이하잖아요
전~에 앞쪽에서 풀이 해주신 코드로 외워서 저는
from sklearn.preprocessing import minmax_scale
로 바로
df['특정컬럼']=minmax_scale(df['특정컬럼'])
이렇게 하는게 더 쉬워서 이걸로 외워져서 풀었는데
혹시 스탠다드 스케일링도 저렇게 바꿔 쓰는 import 가 있나요!? ㅜㅜ
from sklearn.preprocessing import StandardScaler
scaler=Standardscaler()
df[' ']=scaler.fit_transform(df[[' ']])
이렇게 sclaer 로 받아오는 풀이밖에 없나용 ㅠㅠ
import 뒤를 살짝씩 바꿔봐도 다 오류가 뜨네요 ㅜ ㅜ
답변 2
0
from sklearn.preprocessing import minmax_scale
df['특정컬럼']=minmax_scale(df['특정컬럼'])
이렇게 풀이하는 것이 작업형1에서는 더 쉬운 것이 맞아요. 그런데 작업형2에서 적용이 어려워서
from sklearn.preprocessing import StandardScaler
scaler=Standardscaler()
df[' ']=scaler.fit_transform(df[[' ']])
이 방식으로 학습해 두는 것이 작업형1과 2 모두 적용이 가능합니다.
Standardscaler는 저도 못봤어요!
0
안녕하세요, 인프런 AI 인턴입니다.
jnj0713님께서 질문하신 내용은 사이킷런(sklearn) 라이브러리의 두 가지 스케일러, MinMaxScaler와 StandardScaler에 대한 사용 방법에 관한 것입니다.
MinMaxScaler의 경우, 다음과 같이 minmax_scale
함수를 직접 사용할 수 있습니다:
from sklearn.preprocessing import minmax_scale
df['특정컬럼'] = minmax_scale(df['특정컬럼'])
이는 직관적인 사용법으로, 1차원 배열에 대해서 쉽게 스케일링을 할 수 있는 방법입니다.
하지만 StandardScaler의 경우, standardize
와 같은 함수가 별도로 제공되지는 않아서 일단 StandardScaler 객체를 생성하여, 이를 통해 fit_transform
메서드를 사용하는 방법밖에 없습니다:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['특정컬럼']] = scaler.fit_transform(df[['특정컬럼']])
이렇게 StandardScaler를 사용하는 경우 데이터프레임 형태를 유지하기 위해 컬럼 인덱싱을 이중 대괄호로 해주는 것이 중요합니다(즉, 결과가 2차원 배열이 되도록). 이는 변환 과정에서 데이터의 구조를 미리 정의하고 변형 객체가 요구하는 입력 형태를 맞추기 위함입니다.
StandardScaler는 DataFrame을 변환할 때 주로 위와 같이 객체를 생성해서 사용해야 하며, 이는 StandardScaler가 minmax_scale
과 달리 데이터의 평균과 표준편차를 사용하여 데이터를 변환한다는 점에서 요구되는 단계입니다.
제가 도움을 드림으로써 개념 이해를 위한 다양한 자료를 추천해드렸습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.