Что означает сходство = «предварительно вычислено» в уменьшении размерности Агломерации объектов? - PullRequest
0 голосов
/ 27 сентября 2018

Что означает сходство = «предварительно вычислено» в уменьшении размерности агломерации признаков (scikit-learn) и как оно используется?Я получил гораздо лучшие результаты, чем при использовании других вариантов сродства (таких как «евклидов», «l1», «l2» или «манхэттен»), однако я не уверен, что на самом деле означает этот «предварительно вычисленный» и должен ли япредоставить что-то «заранее вычисленное» для алгоритма агломерации признаков?Что на самом деле означает «предварительно вычисленные»?

Я не передал ничего, кроме предварительно обработанных (масштабированных) исходных данных, массива numpy.После fit_transform с агломерацией функций, результат был передан алгоритму кластеризации Birch, и я получил гораздо лучшие результаты, чем с другими упомянутыми сходствами.Результаты сопоставимы с PCA, но с гораздо меньшими накладными расходами памяти, поэтому я бы использовал агломерацию функций в качестве уменьшения размерности, но меня беспокоит, что я сделал это неправильно?

1 Ответ

0 голосов
/ 30 сентября 2018

Хороший вопрос.

affinity == 'precomputed' означает, что используется массив сглаживания, содержащий верхний треугольник distance matrix исходных данных.

Ссылка ( исходный код ):

    if affinity == 'precomputed':
        # for the linkage function of hierarchy to work on precomputed
        # data, provide as first argument an ndarray of the shape returned
        # by pdist: it is a flat array containing the upper triangular of
        # the distance matrix.
        i, j = np.triu_indices(X.shape[0], k=1)
        X = X[i, j]
    elif affinity == 'l2':
        # Translate to something understood by scipy
        affinity = 'euclidean'
    elif affinity in ('l1', 'manhattan'):
        affinity = 'cityblock'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...