ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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은 그 값을 기준으로 계산을 적용해서 값을 변환해준다.

    → fittrain에만 사용을 한다. 기준을 train으로 정하기 위해서고, test에는 사용하지 않는다.

     

    2) 트랜스포메이션

    → Feature Scaling이 잘 되었지만, 아직 표준정규분포 형태가 아니다.

    → 1,4분위보다 2,3분위가 상대적으로 더 중요하다

    표준정규분포를 띄게 된 값을 2,3분위에 값이 집중되어 있어 일반적인 예측 성능이 올라간다.

    정규분포로 고르게 분포된 값이 예측에 더 유리한 값이다.

     

    3) 이산화

    → Numerical Feature를 일정 기준으로 나누어 그룹화하는 것

    이산화의 두 종류 =

    범위는 기준으로 나누는 것 : Equal width binning

    빈도를 기준으로 나누는 것 : Equal frequency binning

     

    3) 인코딩

    → Categorical FeatureNumerical Feature로 변환하는 과정

    데이터 시각화와 머신러닝 모델에 유리하기 때문에 사용

    → Ordinal-encodingCategorical FeatureNumerical 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을 해주기 때문에 tsettransform만 해주면 된다.

    → fit하는 기준은 꼭 train으로 한다.

    → test는 미래의 데이터로 어떤 데이터가 들어올지 모르기 때문이다.

     

    4) 파생변수

    변수 생성은 이미 존재하는 변수로부터 여러가지 방법을 이용해 새로운 변수를 만들어낸 것.

    적절히 파생된 변수는 데이터의 특성을 잘 설명해준다.

    주의할 점은, 파생변수 생성으로 인해 데이터 해석이 편리해지고 성능이 올라갈 수 있으나 역효과가 생길 수도 있음.

    → Feature가 늘어날수록 모델 학습 시간이 길어진다.

    파생변수를 생성할 때, 다른 분석가도 이해할 수 있게 직관적으로 생성하거나 보고서에도 Feature관련 내용을 잘 작성해야 한다.

    → pandastrain, test를 각각 인코딩 했다면 피처의 수, 종류가 다를 수 있다. 학습 및 예측을 할 때에는 동일한 피처, 개수를 입력해 주어야 한다.

     

    5) 다항식 전개

    → degree == 차수

    → uniform이란 균등하게 분포하는 것을 의미한다.

    다항식 전개에 기반한 변수보다 원래 변수를 보는 게 더 직관적이고 이해하기 쉽기 때문이다.

    다항식 전개에 기반해서 파생변수를 만들게 되면 머신러닝 모델이 여러 Feature에 기반하게 되어 안정성이 높아진다.

    → SOTA == State Of The Art

     

    출처 : 멋쟁이사자처럼

Designed by Tistory.