то, что, является различием между “k средства” и “нечеткие целевые функции” средств c?

Вы как-то работаете с двумя экземплярами.

Предположительно, вы заполняете списки в экземпляре формы по умолчанию :

frm_dbGenBrowser.lbx_genoutages.Clear
frm_dbGenBrowser.lbx_genoutages.ColumnCount = 8
frm_dbGenBrowser.lbx_genoutages.ColumnWidths = "0, 40, 40, 40, 40, 60, 70, 50"
blockquote>

Но тогда вы не показываете , что [ 119] instance:

With New frm_dbGenBrowser
    .Show
End With

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

Формы являются объектами, и, как вы можете видеть, отсутствие их обработки как такового становится подверженным ошибкам и сбивает с толку.

Избегайте ссылок на экземпляр формы по умолчанию в своем собственном коде. Используйте Me вместо имени класса формы, и проблема исчезнет независимо от того, запускаете ли вы .Show для экземпляра по умолчанию или для экземпляра New.

Эмпирическое правило, избегайте наличия экземпляров по умолчанию с сохранением состояния любого класса, включая классы форм. См. UserForm1.Show (заявление об отказе: я написал эту статью) для получения дополнительной информации.

28
задан Amro 2 July 2012 в 12:43
поделиться

3 ответа

Кстати, алгоритм кластеризации Fuzzy-C-Means (FCM) также известен как Soft K-Means .

Целевые функции практически идентичны , единственное отличие заключается во введении вектора, который выражает процент принадлежности данной точки к каждому из кластеров. Этот вектор представлен показателю «жесткости», целью которого является придание большего значения более сильным связям (и наоборот, минимизация веса более слабых); Кстати, когда коэффициент жесткости стремится к бесконечности, результирующий вектор становится двоичной матрицей, что делает модель FCM идентичной модели K-средних.

Я думаю, что, за исключением некоторой возможной проблемы с кластерами, которым не назначены точки, можно эмулировать алгоритм K-средних с алгоритмом FCM, моделируя бесконечный коэффициент жесткости (= путем введения функция, которая изменяет наибольшее значение в векторе на 1 и обнуляет другие значения вместо возведения в степень вектора). Это, конечно, очень неэффективный способ запуска K-средних, потому что алгоритм должен выполнить столько же операций, сколько и с истинным FCM (если только со значениями 1 и 0, что упрощает арифметику, но не сложность)

Что касается производительности , поэтому FCM необходимо выполнить k (то есть количество кластеров) умножений для каждой точки для каждого измерения (не считая также возведения в степень для учета жесткости) , Это, плюс накладные расходы, необходимые для вычисления и управления вектором близости, объясняет, почему FCM работает намного медленнее, чем обычные K-средние.

Но FCM / Soft-K-Means менее «глупы», чем Hard-K-Means, когда речь идет, например, о вытянутых кластерах (когда точки, в других отношениях совместимые в других измерениях, имеют тенденцию рассеиваться вдоль определенного размера или двух), вот почему это все еще вокруг; -)

Из моего первоначального ответа:

Кроме того, я только подумал об этом, но не придумал никакой «математической» мысли, FCM может сходиться быстрее, чем жесткие K-средства, что несколько компенсирует большие вычислительные требования FCM.

Май 2018 г. отредактировано:

На самом деле нет авторитетного исследования, которое я мог бы определить, который бы поддержал мою догадку о более высокой скорости сходимости FCM. Спасибо Бенджамину Хорну , чтобы сохранить меня честным; -)

25
ответ дан mjv 28 November 2019 в 03:23
поделиться

Кластеризация K-средних и Кластеризация нечетких C очень похожи в подходах. Основное отличие состоит в том, что в кластеризации Fuzzy-C Means каждая точка имеет вес, связанный с конкретным кластером, поэтому точка не находится «в кластере», а имеет слабую или сильную связь с кластером, что определяется обратным расстоянием до центра скопления.

Fuzzy-C означает, что он будет работать медленнее, чем K, поскольку на самом деле он выполняет больше работы. Каждая точка оценивается с каждым кластером, и в каждой оценке участвует больше операций. K-Means просто нужно вычислить расстояние, тогда как нечёткое c означает, что нужно выполнить полное обратное взвешивание.

17
ответ дан Dave Jarvis 28 November 2019 в 03:23
поделиться

Люди написали технически, и каждый ответ хорошо написан. Но то, что я хочу сказать, то же самое на языке неспециалистов. K означает кластеризацию кластера всего набора данных в число K кластера, где данные должны принадлежать только одному кластеру. Нечеткие c-средства создают k чисел кластеров, а затем присваивают каждую информацию каждому кластеру, но они будут фактором, определяющим, насколько сильно данные принадлежат этому кластеру.

1
ответ дан sukhiray 28 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: