전처리 스케일링 (np.log1p + standardscaler)
852
작성한 질문수 1
안녕하세요 선생님
책도 사서보고, 강의도 본 진작인 입니다.
먼저 이렇게 좋은 책과 강의를 만들어주셔서 감사드립니다.
질문드릴 내용은 스케일링 내용에 관해서입니다.
Cluster 하실때(7장-6) np.log1p를 사용하시고 standardscaler를 사용하셨는데
이렇게 하신 이유가 왜도가 너무커서 가운데 종모양으로 만드려고 np.log1p를 사용했고,
첨도가 너무 커서 뾰족한 정도를 줄이려고 standardscaler를 사용하신게 맞나해서 여줘봅니다.
관련해서 추가 질문도 있습니다.
- np.log1p와 standardscaler 이 두개를 같이 사용하였을때 문제가 생기거나 주의해야 할 사항이 있는가?
- 원래 값을 알고 싶을때는 스케일링 했던 반대 순서대로 적용하면 되는가?
(np.log1p → standardscaler를 사용했을 경우 정규화 제거 → np.exam1의 순서로 진행하면 되는가?)
이상입니다.
감사합니다.
답변 1
1
안녕하십니까, 반갑습니다.
1. 네, log를 적용한 이유는 데이터 분포의 왜도가 너무 커서 적용한 것입니다.
StandardScaler(평균이 0, 표준편차가 1 로 변환)을 적용한 이유는 Recency, Frequency, Monetary 가 서로 다른 단위 값이라 이에 대한 공통 Scale을 적용하기 위한 것입니다. cust_df[['Recency', 'Frequency', 'Monetary']].describe()를 보면 std 값이 각 컬럼별로 큰 차이가 있습니다.
보통 Kmeans는 단위가 다른 여러개의 feature들이 있을 경우 보통은 StandardScaler를 적용하는데, 이는 Kmeans가 일반적으로 거리기반(Euclidean distance) 기반으로 둥글게(등방성, isotropic)하게 데이터를 clustering 하는데 있어서 더 좋은 성능을 나타내기 때문입니다(그렇다고 무조건 좋아지지는 않습니다)
2.
np.log1p와 standardscaler 이 두개를 같이 사용할 때 크게 주의해야할 부분은 없습니다.
그리고 원래값을 알기 위해서는 스케일링 했던 반대 순서대로 하면 됩니다.
StandardScaler.fit_transform() 후 log1p하여 변환되었다면, 다시 이 값을 expm1 변환 후 StandardScaler.inverse_transform( ) 하면 됩니다.
감사합니다.
안녕하세요 열심히 수강중인 학생입니다
0
63
2
정수 인덱싱
0
68
2
넘파이 오류
0
85
2
11강 numpy의 axis 축 질문 드립니다.
0
85
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
79
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
70
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
75
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
64
2
5강 강의 오류가 있어요.
0
84
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
72
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
69
3
파이썬 다운그레이 후 사이킷런 재설치
0
117
2
좋은 강의 감사합니다.
0
72
2
scoring 함수 음수값
0
67
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
100
2
분류 평가 정확도 예측
0
77
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
99
1
카카오톡 채널 있나요
0
107
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
190
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
172
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
148
2
실루엣 스코어..
0
86
2
float64 null 값 처리 방법
0
103
2





