Я пытаюсь объединить два типа параметров перед кластеризацией.
Мои параметры - Текст - представлены в виде разреженной матрицы,
и другой массив, представляющий другие особенности моей точки данных.
Я попытался объединить 2 типа параметров в один массив и передать его в качестве входных данных для алгоритма:
db = DBSCAN(eps=1, min_samples=3, metric=get_distance).fit(array(combined_list))
Также я создал собственную метрику расстояния, которую я собираюсь использовать.
def get_distance(vec1,vec2):
text_distance = cosine_similarity(vec1[0] ,vec2[0])
other_distance = vec1[1]-vec2[1]
return (text_distance+other_distance)/2
Но я получаю сообщение об ошибке при попытке передать мой входной массив.
Объединенный массив был построен следующим образом:
combined_list = []
for i in range(len(hashes_list)):
combined_list.append((hashes_list[i],text_list[i]))
combined_list = array(combined_list)
Полная трассировка ошибок:
db = DBSCAN(eps=1, min_samples=3, metric=get_distance ).fit(array(combined_list))
Traceback (most recent call last):
File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydevd_bundle/pydevd_exec2.py", line 3, in Exec
exec(exp, global_vars, local_vars)
File "<input>", line 1, in <module>
File "/Users/tal/src/campaign_detection/Data_Extractor/venv/lib/python3.7/site-packages/sklearn/cluster/dbscan_.py", line 319, in fit
X = check_array(X, accept_sparse='csr')
File "/Users/tal/src/campaign_detection/Data_Extractor/venv/lib/python3.7/site-packages/sklearn/utils/validation.py", line 527, in check_array
array = np.asarray(array, dtype=dtype, order=order)
File "/Users/tal/src/campaign_detection/Data_Extractor/venv/lib/python3.7/site-packages/numpy/core/numeric.py", line 538, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.
Это правильный подход для объединения текстового вектора с другими параметрами?