1

Алгоритм сокращения неконтролируемой размерности принимает в качестве входной матрицы NxC1, где N - количество входных векторов, а C1 - количество компонент для каждого вектора (размерность вектора). В результате он возвращает новую матрицу NxC2 (C2 < C1), где каждый вектор имеет меньшее количество компонентов.Нечеткая кластеризация с использованием неконтролируемого уменьшения размерности

Алгоритм нечеткой кластеризации принимает на входе матрицу N * C1, где N, здесь также число входных векторов, а C1 - количество компонентов для каждого вектора. В результате он возвращает новую матрицу NxC2 (C2, обычно меньшую, чем C1), где каждая компонента каждого вектора указывает степень, в которой этот вектор принадлежит соответствующему кластеру.

Я заметил, что ввод и вывод обоих классов алгоритмов в структуре одинаковы, изменяется только интерпретация результатов. Кроме того, там нет нечеткой кластеризации реализации в scikit-не учиться, поэтому следующий вопрос:

Имеет ли смысл использовать сокращение алгоритм размерности для выполнения нечеткой кластеризации? Например, не имеет смысла применять FeatureAgglomeration или TruncatedSVD к набору данных, построенному из векторов TF-IDF, извлеченному из текстовых данных, и интерпретировать результаты как нечеткую кластеризацию?

ответ

2

В некотором смысле, конечно. Это зависит от того, как вы хотите использовать результаты вниз по течению.

Рассмотрите усечение SVD или исключая основные компоненты. Мы проецировались в новое пространство, сохраняющее дисперсию, с существенно меньшими другими ограничениями на структуру нового многообразия. Новые координатные представления исходных точек данных могут иметь большие отрицательные числа для некоторых элементов, что немного странно. Но можно с легкостью сдвинуть и перемасштабировать данные.

Затем можно было бы интерпретировать каждое измерение как вес членства в кластере. Но рассмотрим общее использование для нечеткой кластеризации, которая заключается в создании жесткой кластеризации. Обратите внимание, как легко это происходит с нечеткими весами кластера (например, просто возьмите max). Рассмотрим набор точек в новом размерно-восстановленном пространстве, например < 0,0,1>, < 0,1,0>, < 0,100,101>, < 5,100,99>. Нечеткая кластеризация давала бы что-то вроде {p1, p2}, {p3, p4}, если пороговое значение, но если мы взяли здесь max (т. Е. Рассматриваем размерно уменьшенные оси как членство, получаем {p1, p3}, {p2, p4 }, например, для k = 2. Конечно, можно было бы использовать лучший алгоритм, чем max, чтобы получить тяжелые членства (скажем, глядя на попарные расстояния, которые будут работать для моего примера), такие алгоритмы называются, ну, алгоритмы кластеризации

Конечно, для этого могут работать лучше или хуже, другие алгоритмы сокращения размерности могут быть лучше или хуже (например, MDS, который фокусируется на сохранении расстояний между точками данных, а не на дисперсиях, более естественно похож на кластер). Но принципиально многие алгоритмы сокращения размерности неявно сохраняют данные о лежащем в основе многообразия, на котором лежат данные, тогда как нечеткие кластерные векторы содержат только информацию о связях между точками данных (которые могут или не может неявно кодировать эту другую информацию).

В целом, цель немного отличается. Кластеризация предназначена для поиска групп похожих данных. Выбор функций и уменьшение размерности предназначены для уменьшения шума и/или избыточности данных путем изменения пространства внедрения. Часто мы используем последнее, чтобы помочь с первым.