그래프에서 데이터를 읽고 데이터 포인트 간의 분산을 표시하기 위해 정규화 된 특정 빈도로 값을 재생하는 프로그램을 작성 중입니다.대수 스케일을 사용하여 정규화를 왜곡하는 방법은 무엇입니까?
테스트에서 "허용 가능한"사운드 범위는 사용하기에 너무 높지도 낮지 않은 주파수 범위에 대해 200 ~ 3800 사이에있는 것으로 나타났습니다. 즉, 모든 데이터를 해당 숫자 범위로 변환해야합니다. 여기에 그 지침이 주어진 해결책이 있습니다.
function normalize(enteredValue, minEntry, maxEntry, normalizedMin, normalizedMax) {
var mx = (enteredValue-minEntry)/(maxEntry-minEntry);
var preshiftNormalized = mx*(normalizedMax-normalizedMin);
var shiftedNormalized = preshiftNormalized + normalizedMin;
return shiftedNormalized;
}
이 방법은 효과가 있지만 특정 경우에는 약간의 문제가 있습니다. 사용자가 동일한 데이터 세트에서 매우 작은 값과 매우 큰 값을 갖는 경우.
간단한 예 : A 회사의 경우 1 달러, B 회사의 경우 10 억 달러의 이익을 얻을 수 있습니다. C 회사와 D 회사 등의 경우 이익이 극단적 인 경우와 매우 다릅니다. 그러나 C 사가 5 천만 달러의 이익을 얻고 있다고 가정 해 봅시다. 이것은 1 달러 이상이고 10 억 달러보다 훨씬 적으며 많은 문제가되지 않습니다. 그러나 D가 2 만 달러의 이익을 얻는다면 문제가 발생할 수 있습니다.
1 = 200.0000036
20,000 = 200.072
50,000,000 = 380
: 정상화숫자는이 (A 최소로 최대로서 3800, 200을 사용) 될
10 억 = 3800
여기서 명백한 문제를 볼 수 있습니다. 위의 함수를 사용하여 사운드를 원하는 주파수 범위로 정규화하면 데이터에 큰 차이가있는 큰 데이터 세트가 그래프에 표시되는 것을 왜곡 할 수 있습니다. 정규화가 큰 데이터를 더 작은 범위의 숫자로 압축하는 방법 때문에 최대 및 최소 수가 매우 멀리 떨어져있을 때만 문제가됩니다.
두 가지 가능한 해결책 :
는 사용자가 데이터 세트에있을 수있는 최대 수를 설정합니다. 이는 쉽게 해결할 수 있지만, 캡에있는 모든 것이 단순히 가장 높은 빈도로 재생되기 때문에 은 CSV 파일의 데이터를 자동으로 구문 분석 할 때 프로그램의 기능을 제한합니다.
두 번째 해결 방법은 복잡하며 아직 수행 할 방법이 확실하지 않습니다. 이는 사용자 또는 누군가가 올바른 방향으로 나를 가리켜 주려는 것입니다. 나는 어떤 종류의 로그를 사용하여 더 큰 데이터를 덜 중요하게 만들기 위해 스케일링을 사용하면 좋은 솔루션이라고 생각합니다. 내가이 의미하는 것은 여기이 그래프 같은 것입니다 :
변명 불쌍한 내 페인트 드로잉 기술,하지만 당신은 내가 무슨 뜻인지 확인할 수 있습니다. 숫자가 커질수록 중요도는 점차 낮아집니다. 숫자가 서로 관련하여 어떻게 작용하는지는 아니지만 많은 사람들에 대한 인간의 인식이 이미 막연하다고 생각합니다. 따라서 더 작은 숫자보다 큰 숫자가 더 가깝게 들리는 것이 낫습니다. (예 : 1, 2 만).
당신은 어떻게 생각하십니까?
편집 : 로그베이스 10을 취하는 것에 대해 언급하는 코멘트 중 하나가 올바른 경로에 있다고 생각하지만 숫자가 너무 가까워서 작은 데이터 포인트에서는 작동하지 않습니다. IE 로그 1은 1이고 로그 10은 2입니다. 1과 2는 너무 가깝기 때문에 차이점을들을 수 없습니다.
저는 수학에있어 제 생각을 표현하는 것이 그리 좋지는 않지만 '정상적인'정규화 대신에 로그베이스 10을 대신 사용하는 것이 어떻습니까? 그래서 1은 1, 10은 2, 100은 3이 될 것인가? 나는 이것이 숫자를 훨씬 더 줄일 것이라고 생각한다. –
그 문제는 내가 숫자가 다음 숫자보다 높을 때 사용자가 알 수있는 차이가 충분해야한다는 것입니다. 주파수가 1에서 2로 변경되면 대부분의 사람들의 귀에 등록되지 않습니다. 로그베이스 10을 사용하는 것은 해결책의 일부이지만 전체가 아닙니다. – Remixt