如何在 sklearn.cluster DBSCAN 中分配 sample_weights?
How to assign sample_weights in sklearn.cluster DBSCAN?
我正在使用 DBSCAN 查找 RGB 图像的像素值簇。
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
其中,X
是一个 N x 3
矩阵。 X
的每一行都包含 RGB 三元组。
现在,我想将权重分配给像素值,作为距图像中心距离的函数。
这是我正在使用的功能:
score = 1 / (1 + math.exp(-a * distance)) # a = 0.001
我计算 weight_matrix
填充 score
如上所述
接下来我这样做了:
db = DBSCAN(eps=0.3, min_samples=10).fit(X,y=None, sample_weight=weight_matrix)
其中,weight_matrix
数组的长度等于 X
中的行数。
但我收到以下错误:
TypeError: fit() got an unexpected keyword argument 'y'
所以我尝试这样做:
db = DBSCAN(eps=0.3, min_samples=10).fit(X, sample_weight=weight_matrix)
现在我得到这个错误:
TypeError: fit() got an unexpected keyword argument 'sample_weight'
我想我传递的参数不正确,但不能确定。我的 scikit-learn 版本是 0.14.0.
看来您使用的是 scikit-learn v <= 0.15,因为这是 DBSCAN 符合形式的最后一个版本
fit(X)
从 0.16 开始是
fit(X, y=None, sample_weight=None)
只需将您的 scikit-learn 更新为 0.16 或 0。17.X
我正在使用 DBSCAN 查找 RGB 图像的像素值簇。
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
其中,X
是一个 N x 3
矩阵。 X
的每一行都包含 RGB 三元组。
现在,我想将权重分配给像素值,作为距图像中心距离的函数。 这是我正在使用的功能:
score = 1 / (1 + math.exp(-a * distance)) # a = 0.001
我计算 weight_matrix
填充 score
如上所述
接下来我这样做了:
db = DBSCAN(eps=0.3, min_samples=10).fit(X,y=None, sample_weight=weight_matrix)
其中,weight_matrix
数组的长度等于 X
中的行数。
但我收到以下错误:
TypeError: fit() got an unexpected keyword argument 'y'
所以我尝试这样做:
db = DBSCAN(eps=0.3, min_samples=10).fit(X, sample_weight=weight_matrix)
现在我得到这个错误:
TypeError: fit() got an unexpected keyword argument 'sample_weight'
我想我传递的参数不正确,但不能确定。我的 scikit-learn 版本是 0.14.0.
看来您使用的是 scikit-learn v <= 0.15,因为这是 DBSCAN 符合形式的最后一个版本
fit(X)
从 0.16 开始是
fit(X, y=None, sample_weight=None)
只需将您的 scikit-learn 更新为 0.16 或 0。17.X