-
20221107~09 = 멋쟁이사자처럼 AI 복습PYTHON 2022. 11. 10. 16:16
1) 변수 스케일링
→ 변수 스케일링이란 Feature의 범위를 조정하여 정규화하는 것을 의미한다.
→ 트리기반 모델은 피처 스케일링이 필요가 없다. 트리기반 모델은 데이터의 상대적인 크기에 영향을 받기 때문에 스케일링을 해도 크게 영향을 받지 않는다.
→ Feature Scaling이 잘 되어 있으면 서로 다른 변수끼리 비교하는 것이 편리하다.
→ Feature Scaling이 잘 되어 있으면 머신러닝 성능이 향상된다.
→ from sklearn.preprocessing import StandardScaler
→ from sklearn.preprocessing import MinMaxScaler
→ from sklearn.preprocessing import RobustScaler
① Normalization – Standardization (평균을 제거하고 데이터를 단위 분산에 맞게 조정)
1. 평균이 0, 표준편차가 1로 나온다.
② Min-Max Scaling (Feature를 지정된 범위로 확장하여 기능을 변환)
1. 최소값이 0, 최대값이 1로 나온다.
③ Robust Scaling (중앙값을 제거하고 분위수 범위에 따라 데이터 크기를 조정)
1. 중앙값을 0으로 만들어 준다.
이름 공식 Normalization - Standardization
(Z-score scaling)z = (X - X.mean) / std Min-Max scaling X_scaled = (X - X.min) / (X.max - X.min) Robust scaling X_scaled = (X - X.median) / IQR → StandardScaler의 Fit에는 matrix를 넣어줘야 하기 때문에 Series가 아닌 Dataframe으로 넣어주기 위해 대괄호를 두번을 감싼다.
→ ss.fit(train[["SalePrice"]]).transform(train[["SalePrice"]]) = ss.fit_transform(train[[“SalePrice]])
여기에서 transform은 그 값을 기준으로 계산을 적용해서 값을 변환해준다.
→ fit은 train에만 사용을 한다. 기준을 train으로 정하기 위해서고, test에는 사용하지 않는다.
2) 트랜스포메이션
→ Feature Scaling이 잘 되었지만, 아직 표준정규분포 형태가 아니다.
→ 1,4분위보다 2,3분위가 상대적으로 더 중요하다
→ 표준정규분포를 띄게 된 값을 2,3분위에 값이 집중되어 있어 일반적인 예측 성능이 올라간다.
→ 정규분포로 고르게 분포된 값이 예측에 더 유리한 값이다.
3) 이산화
→ Numerical Feature를 일정 기준으로 나누어 그룹화하는 것
→ 이산화의 두 종류 =
범위는 기준으로 나누는 것 : Equal width binning
빈도를 기준으로 나누는 것 : Equal frequency binning
3) 인코딩
→ Categorical Feature를 Numerical Feature로 변환하는 과정
→ 데이터 시각화와 머신러닝 모델에 유리하기 때문에 사용
→ Ordinal-encoding은 Categorical Feature를 Numerical Feature 중 Ordinal Feature로 변환해 줌
→ Ordinal-encoding의 장점은 간단하고, 직관적이다.
→ Ordinal-encoding의 단점은 데이터에 추가적인 가치를 더해주지 않는다는 점이다.
→ One-Hot-Encoding은 Categorical Feature를 다른 bool 변수로 대체하여 해당 관찰에 대해 특정 레이블이 참인지 여부를 나타낸다.
→ One-Hot-encoding의 장점은 해당 Feature의 모든 정보를 유지한다는 점이다.
→ One-Hot-encoding의 단점은 해당 Feature의 고유값이 많은 경우 Feature를 지나치게 많이 사용한다는 점이다.
→ sklearn을 사용했을 때 train을 기준으로 fit을 해주기 때문에 tset는 transform만 해주면 된다.
→ fit하는 기준은 꼭 train으로 한다.
→ test는 미래의 데이터로 어떤 데이터가 들어올지 모르기 때문이다.
4) 파생변수
→ 변수 생성은 이미 존재하는 변수로부터 여러가지 방법을 이용해 새로운 변수를 만들어낸 것.
→ 적절히 파생된 변수는 데이터의 특성을 잘 설명해준다.
→ 주의할 점은, 파생변수 생성으로 인해 데이터 해석이 편리해지고 성능이 올라갈 수 있으나 역효과가 생길 수도 있음.
→ Feature가 늘어날수록 모델 학습 시간이 길어진다.
→ 파생변수를 생성할 때, 다른 분석가도 이해할 수 있게 직관적으로 생성하거나 보고서에도 Feature관련 내용을 잘 작성해야 한다.
→ pandas로 train, test를 각각 인코딩 했다면 피처의 수, 종류가 다를 수 있다. 학습 및 예측을 할 때에는 동일한 피처, 개수를 입력해 주어야 한다.
5) 다항식 전개
→ degree == 차수
→ uniform이란 균등하게 분포하는 것을 의미한다.
→ 다항식 전개에 기반한 변수보다 원래 변수를 보는 게 더 직관적이고 이해하기 쉽기 때문이다.
→ 다항식 전개에 기반해서 파생변수를 만들게 되면 머신러닝 모델이 여러 Feature에 기반하게 되어 안정성이 높아진다.
→ SOTA == State Of The Art
출처 : 멋쟁이사자처럼
'PYTHON' 카테고리의 다른 글
20221116 = 학습내용정리 (0) 2022.11.17 20221114 = QnA 및 강의정리 (0) 2022.11.17 20221103 = 멋쟁이사자처럼 과제 복습 (0) 2022.11.03 20221102 = 머신러닝 데이터 전처리 및 Decisiontree (0) 2022.11.03 20221101 = 머신러닝 복습.... (0) 2022.11.03