Я нуб, наверное, я делаю для меня слишком большие, но мне нужно это для моей тезиса, пожалуйста, прости мое невежество.
Моя цель - сделать кластеризацию на 3D -точках, используя Sklearn.cluster.dbscan, и реализовать периодическое граничное условие только при x, y.
самый простой способ, который я обнаружил, - это использовать функцию scipy pdist < /em> на каждой координате, правильная для периодических границ, а затем объединить результат Чтобы получить матрицу расстояния (в квадратной форме), которая может быть переваривается DBSCAN. < /p>
L=40 #box lenght
for d in range(data.shape[1]):
# find all 1-d distances
pd=pdist(data[:,d].reshape(data.shape[0],1))
# apply boundary conditions (excluding z distances)
if (d!=2):
total+=pd**2
# transform the condensed distance matrix...
total=pl.sqrt(total)
# ...into a square distance matrix
square=squareform(total)
db=DBSCAN(eps=4, metric='precomputed').fit(square)
< /code>
Когда я запускаю код, я получаю эту ошибку: < /p>
valueerror: a 2-dimensional array must be passed
< /code>
В чем проблема?
Есть ли еще один простой способ достичь моей цели? < /p>
Подробнее здесь: https://stackoverflow.com/questions/584 ... conditions
Python DBSCAN кластеризация с периодическими граничными условиями ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение