-1과 1 사이의 데이터를 정규화하는 방법은 무엇입니까?


36

최소-최대 정규화 공식을 보았지만 0과 1 사이의 값을 정규화합니다. -1과 1 사이의 데이터를 어떻게 정규화합니까? 데이터 매트릭스에 음수 값과 양수 값이 모두 있습니다.


1
R에서 작업 하는 경우 몇 가지 옵션에 대해서는 이 스레드 를 참조하십시오 . 특히, 허용 대답에 코멘트는 1로 'newMax'를 설정하고 -1 'newMin'당신의 데이터 기능을 실행이 기능이
mtreg을

다음과 같이 Wikipedia에서 참조 할 수 있습니다. en.wikipedia.org/wiki/Normalization_(statistics)
salem

여기 에서 가져온 자바 스크립트 예제 입니다. function convertRange (value, r1, r2) {return (value-r1 [0]) * (r2 [1]-r2 [0]) / (r1 [1]-r1 [0]) + r2 [0]; } convertRange (328.17, [300.77, 559.22], [1, 10]); >>> 1.9541497388276272
Giuseppe Canale

1
@covfefe 만약 당신이 여전히 주변에 있다면 답 중 하나를 받아들이고 싶을 수도 있습니다
Simone

답변:


97

로 : 당신이 당신의 기능을 정상화X[0,1].

x=xminxmaxxminx
x[0,1]

에서 정규화하려면 다음을 사용할 수 있습니다.[1,1]

x=2xminxmaxxminx1

일반적으로 [ a , b ] 에서 항상 새로운 변수 을 얻을 수 있습니다 .x[a,b]

x=(ba)x엑스최대엑스엑스+에이

15
솔직히 나는 이것에 대한 인용이 없습니다. 임의 변수의 선형 변환입니다. 랜덤 변수 지원에 대한 선형 변환의 효과를 살펴보십시오.
Simone

-1

무작위로 생성 된 데이터를 테스트했으며

Xout=(ba)XinminXinmaxXinminXin+a

분포 모양을 유지하지 않습니다. 무작위 변수의 함수를 사용하여 이것의 적절한 파생을 실제로보고 싶습니다.

나를 위해 모양을 유지 한 접근 방식은 다음을 사용했습니다.

Xout=Xinμinσinσout+μou

어디에

σout=ba6

(나는 6을 사용하는 것이 약간 더럽다 는 것을 인정한다 )

μout=b+a2

ab 는 원하는 범위이고; 원래 질문에 따라a=1 이고b=1 입니다.

나는이 추론의 결과에 도착했다

Zout=Zin

Xoutμoutσout=Xinμinσin


3
이렇게하면 변환 된 데이터가 범위 내에있게 될 것입니까? R에서 다음을 시도하십시오 set.seed(1); scale(rnorm(1000))*.333.. 나는 최대를 얻는다 1.230871. 귀하의 방법은 요청에 따라 데이터를 정규화하는 것이 아니라 데이터를 표준화하는 것으로 보입니다. 이 질문은 분포의 모양을 유지하는 방법을 요구하지 않습니다 (정규화에 대한 이상한 요구 사항입니다).
gung-복원 모니카

3
원래 변환이 데이터의 모양을 유지하지 못하는 방법을 잘 모르겠습니다. 상수를 빼고 상수로 나누는 것은 제안서가하는 일이며 데이터의 형태를 바꾸지 않는 것과 같습니다. 귀하의 제안은 모든 데이터가 평균의 3 가지 표준 편차에 속한다고 가정합니다.이 편차는 대략 정규 분포가 작은 표본에서는 다소 합리적이지만 비정규 표본에서는 크지 않습니다.
노아

1
ab

2
@whuber true이지만 주어진 데이터 세트 (즉, 데이터를 고정 된 것으로 취급)에서 데이터 세트를 표준화 할 때 샘플 평균 및 샘플 표준 편차 함수가 상수와 같은 방식으로 상수임을 의미합니다. 제 생각에 OP는 배포가 아닌 데이터 세트를 정규화하려고했습니다.
노아

@Noah 나는 같은 인상을 받았지만 현재 게시물이 다른 해석에 응답하고 있다고 생각합니다.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.