Ich verwende DBSCAN, um Cluster von Pixelwerten eines RGB-Bildes zu finden.Wie sample_weights in sklearn.cluster DBSCAN zuweisen?
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
wo X
eine N x 3
Matrix. Jede Reihe von X
enthält RGB-Triplets.
Nun möchte ich den Pixelwerten Gewichte als Funktion der Entfernung von der Bildmitte zuweisen. Und dies ist die Funktion Ich verwende:
score = 1/(1 + math.exp(-a * distance)) # a = 0.001
I weight_matrix
mit score
wie oben
Next gefüllt berechnen dies tat ich:
db = DBSCAN(eps=0.3, min_samples=10).fit(X,y=None, sample_weight=weight_matrix)
wo, Länge der
Das Array entspricht der Anzahl der Zeilen inX
.
Aber ich erhalte den folgenden Fehler:
TypeError: fit() got an unexpected keyword argument 'y'
Also versuchte ich es, wie dies zu tun:
db = DBSCAN(eps=0.3, min_samples=10).fit(X, sample_weight=weight_matrix)
Jetzt bekomme ich diesen Fehler:
TypeError: fit() got an unexpected keyword argument 'sample_weight'
Ich denke, ich übergebe die Argumente falsch, aber ich bin mir nicht sicher. Meine scikit-learn Version ist 0.14.0.
hast du vielleicht eine alte version installiert? –
Werfen Sie einen Blick hier: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN scheint es in Ordnung. Eine Sache, die ich mich frage, ist, was 'weight_matrix' für dich ist. Sie sagen, dass es die gleiche Anzahl von 'Reihen' wie' X' haben sollte, aber 'Gewicht_Matrix' sollte ein Array von' Länge' sein, das der Anzahl der Reihen in 'X' entspricht. Überprüfen Sie auch die Version, die Sie haben, möglicherweise nicht die neueste Version. – ZWiki
@ZWiki: Danke für die Info über die Größe von '' weight_matrix'' Array. Ich habe den Beitrag bearbeitet. –