정렬 된 데이터 모음을 '지능적으로'비닝하는 방법은 무엇입니까?


11

지능적으로 정렬 된 컬렉션을 비우려고합니다. 개의 데이터 모음 이 있습니다. 하지만 난에이 데이터 맞는 것을 알고 불평등 쓰레기통 크기. 데이터에 적합하게 엔드 포인트를 지능적으로 선택하는 방법을 모르겠습니다. 예를 들면 다음과 같습니다.mnm

내 컬렉션에 12 개의 항목이 있고 데이터가 3 개의 저장소에 적합하다는 것을 알고 있습니다.

Index:  1 2 3 4 5 6 7 8 9 10 11 12
Value:  1 1 1 3 3 3 3 3 3 5  5  6

의 빈에 대한 중단 점을 지능적으로 선택하려면 어떻게해야 합니까?i={13},{49},{1012}

현재 구현 한 데이터를 고른 크기의 빈으로 나누고 끝점의 평균을 사용하여 빈 끝의 인덱스를 찾습니다. 따라서 다음과 같이 작동합니다.

Index:  1 2 3 4 5 6 7 8 9 10 11 12
Value:  1 1 1 3 3 3 3 3 3 5  5  6

first break evenly: i = 1-4, 5-8, 9-12
mean endpoints:  between 4 and 5: (3+3)/2 = 3
                 between 8 and 9: (3+3)/2 = 3

이제 3 이하는 bin 1에, 3 이상 3 이하는 bin 2에, 3 이상은 bin 3에 적합합니다. 내 문제가 무엇인지 알 수 있습니다. 데이터에 빈이 다른 경우 내 방법이 실패합니다.

친구가 k- 최근 접 이웃 알고리즘을 언급했지만 확실하지 않습니다.


1
"지능적으로"의 의미를 설명해 주시겠습니까? 비닝으로 무엇을하려고합니까? 왜 먼저 비닝을합니까?
whuber

두 번째 단락부터 마지막 ​​단락까지 , 및 합니까? 그렇지 않으면 나에게 이해가되지 않습니다. 3 & < 4 b i n 2 4 b i n 3<3bin13&<4bin24bin3
gung-모니 티 복원

쓰레기통이 균등하게 배치되었다고 가정하여 순진하게 그렇지 않은 것처럼 지능적으로 의미합니다. 데이터 조각이 특정 저장소에 들어 있으면 해당 데이터 조각에 대해 매우 중요한 정보가 표시됩니다. 구간 분리 지수를 결정하기 위해 데이터를 정렬 한 다음 각 데이터 조각이 개별적으로 속하는 구간을 결정합니다.
Matthew Kemnetz

평균화에 문제가 없다면 내가 옳다고 생각합니다. 고른 간격의 빈을 선택하면 모든 끝 점이 3입니다. 따라서 데이터를 제대로 비울 수 없습니다. 그렇기 때문에 y 빈이 없어도 구현이 중단됩니다.
Matthew Kemnetz

약간 다른 설정에서 내가 한 일이 있습니다.
Macro

답변:


9

나는 당신이 원하는 것을 클러스터링이라고 생각합니다. 유사한 값이 동일한 빈에 수집되고 총 빈 수가 미리 설정되도록 "값"을 함께 그룹화하려고합니다.

k- 평균 군집 알고리즘을 사용하여이 문제를 해결할 수 있습니다 . MATLAB에서 다음을 수행하면됩니다.

bin_ids = kmeans(Values,3); 

위의 호출은 그룹 Values내 변동이 최소화되도록 세 그룹으로 값을 그룹화합니다 .


1
나도 그것을 발견했다. 이것이 바로 내가 구현 한 것이며 훌륭하게 작동했습니다. 나는 내 자신의 질문에 대답하기 위해 여기에 왔지만 당신은 나를 이겼습니다! 클러스터링은 내가하려는 일이었습니다.
Matthew Kemnetz

8

k- 평균은 옵션이지만 1 차원 데이터에는 그다지 의미가 없습니다. 1 차원 데이터에서는 한 가지 이점이 있습니다. 데이터를 완전히 정렬 할 수 있습니다.

자연 휴식 최적화를 대신 살펴보십시오 :
http://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization


이것은 매우 흥미 롭습니다. 이것이 왜 k보다 나은지에 대해 더 자세히 설명해 주시겠습니까?
Matthew Kemnetz

내가 묻는 주된 이유는 내 알고리즘에 MATLAB을 사용하고 있기 때문에 도구 상자 등에서 Jenks 자연 나누기 최적화를 찾을 수 없기 때문에 내 자신을 구현해야합니다. 나는 기어를 바꾸고 이것을 구현하기 전에 이것이 얼마나 더 좋고 빠를 지 알고 싶었습니다.
Matthew Kemnetz

1
k- 평균은 꽤 바보입니다. 수단이 있으며 항상 두 수단 의 중간 에 분할됩니다 . 그래서 0 1 2 3 4 5 7 7 7, K-수단이 4, 때로는 심지어 3과 4 사이에 분할됩니다 5 사이의 분할을 선호 예를 들어, 주어진
QUIT 있음 - Anony - 무스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.