2013-03-30 3 views
1

배경 : 날씨 서비스를 만들고 싶습니다. 대부분의 API가 일일 통화 수를 제한하기 때문에 나는 천여 지역에서 행성을 나누고 싶습니다.천여 곳의 세계 나누기

분명히 인터넷 사용자는 균일하게 배포되지 않으므로 인구 밀도가 높은 지역 주변에서는 샘플링이 더 세밀해야합니다.

어떻게 구현해야합니까?

  • 지리적 인터넷 사용자 밀도와 관련된 데이터는 어디에서 찾을 수 있습니까?
  • 알고리즘은 아마도 k-means와 비슷할 것입니다. 그러나 바다로 구체를 구현하는 것은 약간 까다로운 일일 수 있습니다. 어떤 통찰력?
  • 마지막으로,이 모든 일을 피할 수있는 방법이 있습니까?
+0

이것은 매우 부정확 할 가능성이 있습니다. 한쪽에는 산이 있고 다른 한쪽에는 호수가있는 지역을 생각해보십시오. 지형 학적으로는 가까울 지 모르지만 산 꼭대기의 날씨는 호수 옆의 날씨와 많이 다릅니다. "이 모든 일을 피하기"와 관련하여 전 세계 수천 곳의 위치를 ​​다루는 [항공 날씨 (http://aviationweather.gov/adds/dataserver)]를 살펴보십시오 (대량 데이터 피드의 경우 무료). –

+0

계층 적 클러스터링은 어떻습니까? –

+0

@TimMedora : 정확성 문제는 잘 알고 있지만 아직 더 나은 해결책을 찾지 못했습니다. 내가 찾은 모든 무료 피드의 문제점은 예측 정보가 없기 때문에 내가 실제로 염두에두고있는 정보가 필요하다는 것입니다. –

답변

0

일반적으로 인터넷 사용자 밀도는 신경 쓰지 않아도됩니다. 서비스를 사용하는 사용자의 밀도에 신경을 쓰면 사용자가 어디에 있든 상관하지 않습니다. 따라서 사이트가 하루 이상 지나면 사람들이 전날에 대해 물어 보는 위치를 사용하여 다음 날에 해당 지역이 무엇인지 알아낼 수 있습니다.

나무에서 동적 프로그래밍이 쉽습니다. 알고리즘을 위해 할 일은 연속적으로 더 세분화 된 셀의 트리를 만드는 것입니다. 더 많은 셀은 사람들이 더 가까운 지점에 대한 예측을 얻고 더 많은 셀과 더 적은 셀 사이의 오류 또는 적어도 상대적인 오류를 해결할 수 있기 때문에 작은 오류를 의미합니다. 아래에서부터 시작하여 각 하위 트리가 기여한 가능한 가장 작은 총 오류를 해결하여 최대 1,2,3로 나눌 수 있습니다. 방법. 각 자손에 대해 이미 계산 한 가능한 가장 작은 오류를보고 가능한 노드를 공유하는 최선의 방법을 찾아 노드에 대한 각 k = 1..N에 대해 가능한 가장 작은 나눗셈을 수행 할 수 있습니다 k 사이의 분열.

나는 다른 생각을함으로써이를 피하려고 노력할 것이다. 삶을 바라 보는 방식에 따라 최소한 두 가지 단점이 있습니다.

1) 파티에 아무 것도 추가하지 않는 것 같습니다. 실제로 일기 예보와 그 고객을 만드는 단체들 사이에 자신을 끼워 넣은 것처럼 보입니다. 조직은 고객과의 직접적인 접촉을 잃게됩니다. 예를 들어 광고 수익이 줄어들 수 있습니다. 고객은 열악한 일기 예보를 얻습니다.

2) 대부분의 사이트는 고객이 걱정하지 않아도 무시할 수있는 법적 서비스 약관이 있습니다. 내 생각 엔 당신이 그 서비스 조건을 어기 게 될 것이고, 당신의 서비스가 대중들에게 충분히 알려지게되면 그들이 당신에게 강요 될 것입니다.

+0

[this] (http://en.wikipedia.org/wiki/Kd-tree)는 귀하가 염두에 두신 점은 무엇입니까? 그렇다면 트리의 노드 수가 여전히 적지 만 일기 예보 위치를 선택하는 것이 좋습니다. – angelatlarge

+0

http://en.wikipedia.org/wiki/Quadtree와 유사하지만 약간의 오해의 소지가 있습니다. kd 트리와의 가장 큰 차이점은 선택한 예상 위치가 검색어에 사용 된 예측 위치와 일치하지 않을 것입니다. 예상되는 위치는 쿼리에서 사용 된 예측 위치와 일치하지 않을 수 있습니다. 결국으로 끝났다. 이는 실제로 예측 자의 협력이 있었고 예측 메쉬를 데이터 저장 메쉬의 기초로 사용할 수 있다면 가장 효과적입니다. – mcdowella

+0

인터넷 사용자 밀도는 내 사용자의 밀도를 나타내는 프록시입니다. 동적 인 프로그래밍은 멋지지만 연속 k- 평균이 더 정확하고 구현하기가 쉽지 않은데 어떻게 분리 된 설정을 사용하는지 알지 못합니다. 마지막으로, 내가 무엇을 염두에두고 있는지 모를 때, 내 서비스의 부가가치를 어떻게 판단 할 수 있습니까? 일부 API는 상업적 사용을 특별히 허용합니다. –

1

k-mean과 매우 유사하며 centroidal Voronoi diagram (k-means의 연속 버전)입니다. 그러나 이렇게하면 원하는대로 사용자 밀도를 고려하지 않은 구체의 균일 한 테셀레이션을 만들 수 있습니다.

이와 비슷한 솔루션은 동일한 기술이지만 a Power Diagram과 함께 사용됩니다. 전원 다이어그램은 밀도를 계산하는 보로 노이 다이어그램입니다 (각 보로 노이 시드에 가중치를 할당 함). 이러한 다이어그램은 첫 번째 두 (x, y) 좌표와 [큰 양의 상수로부터 주어진 것의 가중치를 뺀 값의 제곱근 인 세 번째 공간으로 구성된 3D 공간 (2D 대신)에서의 임베딩을 사용하여 계산할 수 있습니다. 포인트].

이것을 사용하면 사용자 밀도를 고려한 도메인의 분류를 얻을 수 있습니다.