Wie finde ich die Mitte aus einem cluster von Daten-Punkten?

Sagen wir mal ich aufgetragen, der die position des Hubschraubers jeden Tag für das vergangene Jahr und kam mit der folgenden Karte:

Wie finde ich die Mitte aus einem cluster von Daten-Punkten?

Jedem menschlichen Blick auf diese in der Lage wäre, mir zu sagen, dass dieser Hubschrauber ist aus Chicago.

Wie finde ich das gleiche Ergebnis in code?

Ich bin auf der Suche nach so etwas wie dieses:

$geoCodeArray = array([GET=http://pastebin.com/grVsbgL9]);
function findHome($geoCodeArray) {
    //magic
    return $geoCode;
}

Letztlich generieren, so etwas wie dieses:

Wie finde ich die Mitte aus einem cluster von Daten-Punkten?

UPDATE: Beispieldatensatz

Hier ist eine Karte mit einem Beispieldatensatz: http://batchgeo.com/map/c3676fe29985f00e1605cd4f86920179

Hier ist ein pastebin von 150 Geo: http://pastebin.com/grVsbgL9

Den oben enthält 150 Geo-Codes. Die ersten 50 sind in wenigen Clustern der Nähe von Chicago. Die übrigen sind verstreut im ganzen Land, darunter auch einige kleine Cluster in New York, Los Angeles und San Francisco.

Ich haben über eine million (ernst) Datensätze wie diese, die ich werde brauchen zu Durchlaufen und zu identifizieren, die am ehesten "zu Hause". Ihre Hilfe wird sehr geschätzt.

UPDATE 2: Flugzeug eingeschaltet, um Hubschrauber

Dem Flugzeug wurde das Konzept-Zeichnung zu viel Aufmerksamkeit auf körperliche Flughäfen. Die Koordinaten können Sie überall in der Welt, nicht nur Flughäfen. Nehmen wir an, es ist ein super Hubschrauber nicht an die Physik gebunden, Kraftstoff, oder irgendetwas anderes. Es kann landen, wo er will. 😉

  • Können Sie teilen sich ein link mit solchen Daten?
  • Sicher. Karte: batchgeo.com/map/c3676fe29985f00e1605cd4f86920179 und Geo-Codes: pastebin.com/grVsbgL9
  • Blick auf die Karte bin ich nicht in der Lage zu beurteilen, ob das Flugzeug mit Sitz in Chicago oder in San Francisco. Ich erwarte nicht, dass ein Algorithmus besser zu sein als mich auf diese.
  • Nun gibt es 50 Punkte, in der Nähe von Chicago und nur 20 oder so in der Nähe von San Francisco. Es scheint nicht abwegig, dass ein Algorithmus sollte in der Lage sein zu entdecken, in Chicago als wahrscheinlicher cluster zu konzentrieren. Aber ich bin offen für Korrektur.
  • Auch die nächsten beiden Daten-Punkte sind nur einige Meter voneinander entfernt in Central Park, NYC. Ich warf diejenigen, die in es, um sicherzustellen, dass wir nicht zählen auf der nächsten Strecke zu fahren, den rest in den Fokus.
  • das problem liegt in den Worten "Nähe". Trotzdem, tolle Idee, zu werfen und diese Punkte in. Die max-von-Summen der inverse-Quadrat-Distanzen gab mir nur die Antwort, die Sie erwartet 😉
  • nun, das hinzufügen eines "slack", 20 Nm, mein Algorithmus scheint zu funktionieren, der Suche nach einer Stelle in der Nähe von Chicago, aber mit einer "lockeren" 10 Nm "sieht" zwei Cluster über Chicago und eine in der Nähe, und wählt einen Punkt im zweiten cluster. Die Frage ist, ist ein Durchmesser von 40 Nm immer noch "Nähe"?
  • Sie sollten erkennen, dass ein Teil der Grund, warum die Menschen identifizieren können, die Ebene der Heimatbasis Chicago und nicht sagen, Joliet, ist, weil die Leute wissen, dass es ist ein wichtiger Flughafen in Chicago.
  • Siehe unten für ein f-code-Beispiel, das in der Tat ergibt Flughafen von Chicago.
  • Oh, wow, danke Ryan!!! Ich wirklich zu schätzen.
  • Jeder Mensch würde in der Lage sein zu sagen, dass Hubschrauber hat die 20-fache der Reichweite von allen bekannten Hubschrauber.

InformationsquelleAutor Ryan | 2013-06-14
Schreibe einen Kommentar