Ich versuche, dieses Beispiel mit einigen Daten meiner eigenen zu folgen: http://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html#sphx-glr-auto-examples-cluster-plot-dbscan-pyDBSCAN Bewertung - Notwendigkeit true_labels
Ich habe Probleme, herauszufinden, wie meine ‚labels_true‘ Variable als Teil der Auswertung der DBSCAN Prognosen zu erhalten .
Hier ist die Linie, die sie zuerst erfordert:
print("Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels))
Ich habe Daten mit Breite & Länge Spalten, die ich verwende, wie folgt:
coords = X_train.as_matrix(columns=['latitude', 'longitude'])
kms_per_radian = 6371.0088
epsilon = 1.5/kms_per_radian
db = DBSCAN(eps=epsilon, min_samples=1, algorithm='ball_tree', metric='haversine').fit(np.radians(coords))
cluster_labels = db.labels_
num_clusters = len(set(cluster_labels))
clusters = pd.Series([coords[cluster_labels == n] for n in range(num_clusters)])
print num_clusters
#get returned 60
und
print("Homogeneity: %0.3f" % metrics.homogeneity_score(coords, cluster_labels))
ist die Linie, die für mich nicht funktioniert.
X_train.head():
bathrooms bedrooms building_id description features interest_level latitude longitude manager_id price
10 1.5 3.0 53a5b119ba8f7b61d4e010512e0dfc85 A Brand New 3 Bedroom 1.5 bath ApartmentEnjoy ... [] medium 40.7145 -73.9425 5ba989232d0489da1b5f2c45f6688adc 3000.0
10000 1.0 2.0 c5c8a357cba207596b04d1afd1e4f130 [Doorman, Elevator, Fitness Center, Cats Allow... low 40.7947 -73.9667 7533621a882f71e25173b27e3139d83d 5465.0
100004 1.0 1.0 c3ba40552e2120b0acfc3cb5730bb2aa Top Top West Village location, beautiful Pre-w... [Laundry In Building, Dishwasher, Hardwood Flo... high 40.7388 -74.0018 d9039c43983f6e564b1482b273bd7b01 2850.0
100007 1.0 1.0 28d9ad350afeaab8027513a3e52ac8d5 Building Amenities - Garage - Garden - fitness... [Hardwood Floors, No Fee] low 40.7539 -73.9677 1067e078446a7897d2da493d2f741316 3275.0
100013 1.0 4.0 0 Beautifully renovated 3 bedroom flex 4 bedroom... [Pre-War] low 40.8241 -73.9493 98e13ad4b495b9613cef886d79a6291f 3350.0
Wie ich verstehe, db.labels_ ist die vorhergesagten Cluster #, dass jeder Punkt zu gehört. Ich möchte ein neues Coords-Array mit den vorhergesagten 60 Cluster-Labels und ein anderes für die Metriken mit den echten 60 Cluster-Labels anstelle des alten Längen-/Breitengrads für jeden Punkt zurückgeben.
Sehen Sie [diese Seite] (http://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation) und suchen Sie nach Metriken, die keine Daten zur Grundwahrheit benötigen. –