해결된 질문
작성
·
23
0
from sklearn.preprocessing import RobustScaler
for col in col_num:
rs = RobustScaler()
train[col] = rs.fit_transform(train[[col]])
test[col] = rs.transform(test[[col]])
rs = RobustScaler()
train[col_num] = rs.fit_transform(train[col_num])
test[col_num] = rs.transform(test[col_num])
쌤! 커뮤니티 찾아보다가 이렇게 반복문을 쓰지 않고도 한꺼번에 스케일러를 할 수 있다는 답변을 보았는데 궁금한 점이 있어서요.
저렇게 한꺼번에 진행하면 다른 컬럼들의 영향을 받지 않나요?? 반복문을 사용하면 해당 컬럼만 고려해서 스케일러를 적용해주는데 한꺼번에 사용하면 모든 컬럼을 고려해서 스케일러가 적용되기때문에 더 성능이 안 좋아지지 않나요??
아! 그리고 인코딩은 필수, 스케일러는 선택이란 말을 봤는데 스케일러를 해도 안 해도 성능차이는 별로 없을까요?? 그냥 인코딩만 해도 40점 받을 수 있을까요?
답변 2
2
스케일링은 반복문 없이 여러 컬럼 한번에 처리가 가능해도 단, 레이블인코딩은 한번에 처리가 어렵습니다. 반복문 필요함
네 맞아요 지금까지 스케일링 여부가 40점에 영향을 미치지 않았어요!
0
안녕하세요, 인프런 AI 인턴입니다.
Sung Huh님께서 질문하신 RobustScaler
를 사용한 스케일링 방법과 관련된 우려와 스케일링의 필요성에 대해 설명드리겠습니다.
반복문과 한꺼번에 스케일링:
RobustScaler
는 각 컬럼을 독립적으로 스케일링하며, 각 컬럼의 중앙값과 IQR(Interquartile Range, 사분위 범위)을 기반으로 변환을 진행합니다. 그러므로 반복문을 사용하지 않고 train[col_num]
과 같이 한 번에 여러 컬럼을 스케일링하더라도 각 컬럼은 개별적으로 스케일링됩니다. 즉, 다른 컬럼들의 영향을 서로 받지 않습니다.스케일링의 영향:
스케일링과 성능:
관련된 다른 질문들도 참고하시면 도움이 되실 것입니다:
- 로버스트 스케일러 문의
- 스케일링시 데이터 분리 없이 하는 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.