Простой алгоритм 2-D кластеризации в Python - PullRequest
0 голосов
/ 27 ноября 2018

Будучи новичком в неконтролируемых методах, мне нужен толчок в правильном направлении с небольшим полупростым кодом, чтобы просмотреть некоторые данные в качестве примера.Данные, над которыми я работаю, содержат только около 300 наблюдений, но я хочу узнать, как я могу применить кластеризацию и к очень большим наборам, которые ведут себя аналогично.

У меня есть 2 набора функций данных иЯ хотел бы запустить DBSCAN или что-то подобное, используя евклидовы расстояния (если это правильный подход кластеризации).

В качестве примера данные выглядят так:

enter image description here

Я могу просто сказать, что кластеризация таким способом может быть не лучшим способом, так как распределение выглядит нерегулярно.

Какой метод я должен использовать, чтобы начать понимать подобные распределения, подобные этим- особенно, когда набор очень большой (сотни тысяч наблюдений).

1 Ответ

0 голосов
/ 27 ноября 2018

Для большинства задач машинного обучения scikit-learn - ваш друг здесь.Для DBSCAN scikit-learn имеет sklearn.cluster.DBSCAN.Из документов scikit-learn:

>>> from sklearn.cluster import DBSCAN
>>> import numpy as np
>>> X = np.array([[1, 2], [2, 2], [2, 3],
...               [8, 7], [8, 8], [25, 80]])
>>> clustering = DBSCAN(eps=3, min_samples=2).fit(X)
>>> clustering.labels_
array([ 0,  0,  0,  1,  1, -1])
>>> clustering 
DBSCAN(algorithm='auto', eps=3, leaf_size=30, metric='euclidean',
    metric_params=None, min_samples=2, n_jobs=None, p=None)

У вас также есть другие алгоритмы кластеризации, доступные через scikit-learn.Вы можете увидеть их все здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...