“ 단위 ” 표준 편차는 무엇입니까?

신경망을 평균 0으로 훈련하기위한 데이터를 정규화하고 그라데이션 효과가 폭발하거나 사라지는 것을 줄이기 위해 “단위”표준 편차를 정규화하는 것이 일반적입니다.

여기서 “단위”표준은 무엇을 의미합니까? 예가 정말 도움이 될 것입니다.

코멘트

  • 1과 같음을 의미합니다. 값을 원래 데이터의 표준 편차로 나누려면 . (제로 평균은 평균을 뺀 값입니다.)

답변

데이터 특성을 변환하고 있음을 의미합니다. 원래 단위 (마일, 달러, 경과 시간 등)에서 표준 편차 단위로. 요청한대로 매우 간단한 예를 따르십시오.

다음 가상 데이터와 같이 침실 수 (정수 단위)와 크기 (평방 미터 단위)의 두 가지 기능에서 주택 가격을 예측하려고한다고 가정합니다.

import numpy as np X = np.array([[1, 65],[3, 130],[2, 80],[2, 70],[1, 50]]) 

각 특성의 평균과 표준 편차가 매우 다릅니다.

print("mean={}, std{}".format(X.mean(axis=0), X.std(axis=0)) 

출력 : mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])

특징 크기가 침실 수보다 30 배 더 큰 평균과 표준을 갖는다는 사실을 알지 못해 일부 알고리즘 계산 (예 : 신경망, svm)에서 왜곡이 발생합니다. , knn 등) 여기서 더 큰 값을 가진 일부 기능이 더 작은 값을 가진 다른 기능을 완전히 지배합니다. 일반적이고 매우 효과적인 방법은 데이터를 평균이 0 인 표준 편차 단위로 변환하는 것입니다. 즉, 평균을 빼고 다음과 같이 표준 편차로 나눕니다.

X_t = (X - X.mean(axis=0))/X.std(axis=0) 

변수 X_t (X 변환 됨)는 X_t 얻을 수 있습니다.

array([[-1.21267813, -0.53452248], [ 1.69774938, 2.07127462], [ 0.24253563, 0.06681531], [ 0.24253563, -0.33407655], [-1.21267813, -1.13586028], [ 0.24253563, -0.13363062]]) 

두 기능의 숫자가 모두 같은 크기를 갖는 방법을 살펴보세요. X_t mean과 std를 인쇄하면 예상대로

mean=[ 1.11022302e-16 2.08166817e-16], std=[ 1. 1.] 

가 표시됩니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다