Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - Feature Scaling을 적용하는 방법과 위치는 무엇입니까?

<시간/>

데이터의 독립변수나 특징에 적용하는 데이터 전처리 단계입니다. 기본적으로 특정 범위 내에서 데이터를 정규화하는 데 도움이 됩니다.

왜 확장해야 하나요?

대부분의 경우 데이터 세트에는 크기, 단위 및 범위가 매우 다양한 기능이 포함됩니다. 그러나 대부분의 기계 학습 알고리즘은 계산에서 두 데이터 포인트 사이의 유클리드 거리를 사용하므로 이것이 문제입니다.

그대로 두면 이러한 알고리즘은 단위를 무시하고 기능의 크기만 취합니다. 결과는 5kg과 5000gms의 다른 단위에 따라 크게 다를 것입니다.

크기가 큰 지형지물은 크기가 작은 지형지물보다 거리 계산 시 훨씬 더 많은 가중치를 부여합니다.

이 효과를 억제하려면 모든 기능을 동일한 수준으로 가져와야 합니다. 이는 확장을 통해 달성할 수 있습니다.

기능을 확장하는 방법은 무엇입니까?

  • 표준화 − 표준화는 값을 Z 점수로 대체합니다.
  • $$x^{\prime}=\frac{x\:-\:\bar{x}}{\sigma}$$이는 평균 μ =0 및 표준편차 σ =1 인 특성을 재분배합니다. sklearn.preprocessing.scale은 파이썬에서 표준화를 구현하는 데 도움이 됩니다.
  • 평균 정규화 -
  • $$x^{\prime}=\frac{x\:-\:mean(x)}{\max(x)\:-\:\min(x)}$$

    이 분포의 값은 -1과 1 사이입니다. μ=0입니다. 표준화평균 정규화 주성분 분석(PCA)과 같은 제로 중심 데이터를 가정하는 알고리즘에 사용할 수 있습니다. .

  • 최소-최대 배율
  • $$x^{\prime}=\frac{x\:-\:\min(x)}{\max(x)\:-\:\min(x)}$$

    이 스케일링은 0과 1 사이의 값을 가져옵니다.

  • 단위 벡터 -
  • $$x^{\prime}=\frac{x}{\lVert\:x\:\rVert}$$

    크기 조정은 전체 특징 벡터를 단위 길이로 간주하여 수행됩니다.최소-최대 크기 조정단위 벡터 기술은 [0,1] 범위의 값을 생성합니다. 단단한 경계가 있는 기능을 처리할 때 이것은 매우 유용합니다. 예를 들어, 이미지 데이터를 다룰 때 색상 범위는 0에서 255까지만 가능합니다.

축소 시기는?

여기에서 따라야 할 경험 법칙은 거리를 계산하거나 정규성을 가정하고 기능을 확장하는 모든 알고리즘입니다.

기능 확장이 중요한 알고리즘의 몇 가지 예는 다음과 같습니다.

  • 유클리드 거리 측정값이 있는 k-최근접 이웃은 크기에 민감하므로 모든 기능이 동등하게 가중치를 부여하도록 크기를 조정해야 합니다.

  • PCA(주성분 분석)를 수행하는 동안 스케일링이 중요합니다. PCA는 최대 분산을 가진 기능을 얻으려고 시도하고 분산은 높은 크기 기능에 대해 높습니다. 이는 PCA를 높은 크기의 기능으로 왜곡합니다.

  • 스케일링을 통해 경사하강법의 속도를 높일 수 있습니다. 이는 θ가 작은 범위에서는 빠르게 감소하고 큰 범위에서는 천천히 감소하므로 변수가 매우 고르지 않을 때 최적까지 비효율적으로 진동하기 때문입니다.

  • 나무 기반 모델은 거리 기반 모델이 아니며 다양한 범위의 기능을 처리할 수 있습니다. 따라서 나무를 모델링하는 동안 스케일링이 필요하지 않습니다.

  • LDA(Linear Discriminant Analysis), Naive Bayes와 같은 알고리즘은 이를 처리하도록 설계되었으며 그에 따라 기능에 가중치를 부여합니다. 이러한 알고리즘에서 기능 크기 조정을 수행하면 큰 효과가 없을 수 있습니다.