Я использую 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.
weight_matrix
. Вы говорите, что он должен иметь то же количествоrows
, что иX
, ноweight_matrix
должен быть массивомlength
, равным количеству строк вX
. Также проверьте версию, которая у вас установлена, она может быть не последней. - person Chrispresso   schedule 02.06.2016weight_matrix
. Я отредактировал сообщение. - person Harsh Wardhan   schedule 03.06.2016