<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0+%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0</id>
	<title>Алговики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0+%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0"/>
	<updated>2026-10-22T20:33:12Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=11121</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=11121"/>
		<updated>2016-10-15T18:32:46Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Assignment}}&lt;br /&gt;
&lt;br /&gt;
{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция &amp;lt;math&amp;gt;{\displaystyle CU}&amp;lt;/math&amp;gt;, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде &amp;lt;math&amp;gt;{\displaystyle CU= \frac{\sum_{k=1}^{N}P(A=u_{ij}|C_{k})\sum_{j}\sum_{i}(P(C_{k}|A=u_{ij})^2-P(A=u_{ij})^2)}{N}}&amp;lt;/math&amp;gt;, где N – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Для выполнения каждой итерации алгоритма (добавления очередного элемента в дерево классификации) необходимо иметь доступ по всему текущему состоянию дерева классификации. Однако, внутри шага алгоритма наблюдается полная независимость по данным. Имеется возможность произвести расчет функции полезности для каждого кластера независимо и в конце сравнить их значения.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/cmaclell/concept_formation Working python implementation of COBWEB]&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9529</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9529"/>
		<updated>2016-10-15T12:43:26Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция &amp;lt;math&amp;gt;{\displaystyle CU}&amp;lt;/math&amp;gt;, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде &amp;lt;math&amp;gt;{\displaystyle CU= \frac{\sum_{k=1}^{N}P(A=u_{ij}|C_{k})\sum_{j}\sum_{i}(P(C_{k}|A=u_{ij})^2-P(A=u_{ij})^2)}{N}}&amp;lt;/math&amp;gt;, где N – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Для выполнения каждой итерации алгоритма (добавления очередного элемента в дерево классификации) необходимо иметь доступ по всему текущему состоянию дерева классификации. Однако, внутри шага алгоритма наблюдается полная независимость по данным. Имеется возможность произвести расчет функции полезности для каждого кластера независимо и в конце сравнить их значения.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/cmaclell/concept_formation Working python implementation of COBWEB]&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9527</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9527"/>
		<updated>2016-10-15T12:43:10Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция &amp;lt;math&amp;gt;{\displaystyle CU}&amp;lt;/math&amp;gt;, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде &amp;lt;math&amp;gt;{\displaystyle CU= \frac{\sum_{k=1}^{N}P(A=u_{ij}|C_{k})\sum_{j}\sum_{i}(P(C_{k}|A=u_{ij})^2-P(A=u_{ij})^2)}{N}}&amp;lt;/math&amp;gt;, где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Для выполнения каждой итерации алгоритма (добавления очередного элемента в дерево классификации) необходимо иметь доступ по всему текущему состоянию дерева классификации. Однако, внутри шага алгоритма наблюдается полная независимость по данным. Имеется возможность произвести расчет функции полезности для каждого кластера независимо и в конце сравнить их значения.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/cmaclell/concept_formation Working python implementation of COBWEB]&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9504</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9504"/>
		<updated>2016-10-15T12:37:49Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Существующие реализации алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Для выполнения каждой итерации алгоритма (добавления очередного элемента в дерево классификации) необходимо иметь доступ по всему текущему состоянию дерева классификации. Однако, внутри шага алгоритма наблюдается полная независимость по данным. Имеется возможность произвести расчет функции полезности для каждого кластера независимо и в конце сравнить их значения.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/cmaclell/concept_formation Working python implementation of COBWEB]&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9498</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9498"/>
		<updated>2016-10-15T12:37:04Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Информационный граф */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Для выполнения каждой итерации алгоритма (добавления очередного элемента в дерево классификации) необходимо иметь доступ по всему текущему состоянию дерева классификации. Однако, внутри шага алгоритма наблюдается полная независимость по данным. Имеется возможность произвести расчет функции полезности для каждого кластера независимо и в конце сравнить их значения.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9481</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9481"/>
		<updated>2016-10-15T12:34:14Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9476</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9476"/>
		<updated>2016-10-15T12:32:59Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9465</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9465"/>
		<updated>2016-10-15T12:31:14Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Cobweb graph.png|border|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9428</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9428"/>
		<updated>2016-10-15T12:16:46Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Ресурс параллелизма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*BAV&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9427</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9427"/>
		<updated>2016-10-15T12:16:33Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до &amp;lt;math&amp;gt;log_{B}n*B^AV&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9424</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9424"/>
		<updated>2016-10-15T12:16:17Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Ресурс параллелизма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
С точки зрения простоты реализации и получения наибольшей выгоды второй подход является более привлекательным и позволяет избавиться от квадратичной сложности, понизив оценку до&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9409</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9409"/>
		<updated>2016-10-15T12:13:21Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9400</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9400"/>
		<updated>2016-10-15T12:10:11Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9396</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9396"/>
		<updated>2016-10-15T12:09:32Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является вычисление функции полезности для категорий. Однако, именно эта часть алгоритма поддается простому и логичному распараллеливанию. Можно выделить два пути к получению параллельной версии исходного алгоритма:&lt;br /&gt;
* распараллеливание вычисления каждой конкретной функции полезности&lt;br /&gt;
* распараллеливание процесса вычисления совокупности функций полезности&lt;br /&gt;
&lt;br /&gt;
В первом случае предлагается распараллелить цикл вычисления суммы, являющийся основой функции полезности.&lt;br /&gt;
Второй подход предлагает распараллелить процесс более высокоуровнево. Из описания ядра алгоритма видно, что для добавления каждого элемента в дерево необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза функцию полезности. Стоит заметить, что вычисления функции полезности никак не зависят друг от друга и могут быть выполнены параллельно.&lt;br /&gt;
&lt;br /&gt;
Кроме того, стоит отметить, что оба данных подхода к распараллеливанию могут быть использованы вместе, что может быть полезно на системах типа MPI+OpenMP.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9367</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9367"/>
		<updated>2016-10-15T12:00:37Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Входные и выходные данные алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и содержат сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9365</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9365"/>
		<updated>2016-10-15T12:00:04Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
&lt;br /&gt;
На вход алгоритм принимает множество объектов, характеризуемых набором свойств. В свою очередь, каждое свойство может принимать какое-либо значение из множества допустимых значений.&lt;br /&gt;
Результатом работы алгоритма является построенное дерево классификации, листья которого представляют собой различные классы объектов и сами объекты принадлежащие данному классу.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9349</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9349"/>
		<updated>2016-10-15T11:54:06Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}n*B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9347</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9347"/>
		<updated>2016-10-15T11:53:40Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;log_{B}nB^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9346</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9346"/>
		<updated>2016-10-15T11:53:09Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Последовательная сложность алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Кроме того, для классификации нам необходимо пройти по дереву, имеющему глубину &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt;, таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(log_{B}n*B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9337</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9337"/>
		<updated>2016-10-15T11:50:45Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name  = COBWEB&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;B^{2}AV&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9333</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9333"/>
		<updated>2016-10-15T11:49:18Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Последовательная сложность алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle  B}&amp;lt;/math&amp;gt; - среднее число потомков узлов в дереве классификации и &amp;lt;math&amp;gt;{\displaystyle  n}&amp;lt;/math&amp;gt; - число уже классифицированных объектов, тогда &amp;lt;math&amp;gt;{\displaystyle  log_{B}n}&amp;lt;/math&amp;gt; - оценка глубины дерева классификации. Кроме того, положим &amp;lt;math&amp;gt;{\displaystyle  A}&amp;lt;/math&amp;gt; равным числу свойств у классифицируемых объектов, а &amp;lt;math&amp;gt;{\displaystyle  V}&amp;lt;/math&amp;gt; - среднее число значений, которые могу принимать данные свойства. В ходе определения к каком у классу отнести каждый следующий объект из входного набора, необходимо рассчитать значение функции полезности категории. Сложность расчета данной функции есть &amp;lt;math&amp;gt;{\displaystyle  O(BAV)}&amp;lt;/math&amp;gt; и данное действие необходимо повторить для каждого из B потомков (в среднем). Таким образом мы имеем оценку по сложности &amp;lt;math&amp;gt;{\displaystyle O(B^{2}AV)}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9238</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9238"/>
		<updated>2016-10-15T11:19:35Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Последовательная сложность алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является расчет функции полезности для кластера. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим один цикл алгоритма - добавление нового элемента в дерево кластеризации. Исходя из описания ядра алгоритма видно, что потребуется &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза рассчитать функцию полезности, для чего необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle (N+3)*(N+2AB)}&amp;lt;/math&amp;gt; вероятностей принятия свойством объекта какого-либо значения, где &amp;lt;math&amp;gt;{\displaystyle N}&amp;lt;/math&amp;gt; - число кластеров на текущем шаге алгоритма.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9236</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9236"/>
		<updated>2016-10-15T11:19:15Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основной вычислительной нагрузкой алгоритма является расчет функции полезности для кластера. &lt;br /&gt;
&lt;br /&gt;
Рассмотрим один цикл алгоритма - добавление нового элемента в дерево кластеризации. Исходя из описания ядра алгоритма видно, что потребуется &amp;lt;math&amp;gt;{\displaystyle k+3}&amp;lt;/math&amp;gt; раза рассчитать функцию полезности, для чего необходимо вычислить &amp;lt;math&amp;gt;{\displaystyle (N+3)*(N+2AB)}&amp;lt;/math&amp;gt; вероятностей принятия свойством объекта какого-либо значения, где &amp;lt;math&amp;gt;{\displaystyle N&amp;lt;/math&amp;gt; - число кластеров на текущем шаге алгоритма.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9140</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9140"/>
		<updated>2016-10-15T10:47:46Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Макроструктура алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента из входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9138</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9138"/>
		<updated>2016-10-15T10:47:29Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Макроструктура алгоритма представлена итеративным вызовом вычислительного ядра для каждого элемента и входного набора данных с  уточнением дерева кластеризации на каждом шаге.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9044</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9044"/>
		<updated>2016-10-15T10:32:59Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9027</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=9027"/>
		<updated>2016-10-15T10:29:04Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
* разработка типологии или классификации.&lt;br /&gt;
* исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
* порождение гипотез на основе исследования данных.&lt;br /&gt;
* проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=8996</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=8996"/>
		<updated>2016-10-15T10:20:14Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Вычислительное ядро алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{11},\dots, V_{1m}}&amp;lt;/math&amp;gt;. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;=&amp;lt;math&amp;gt;{\displaystyle V_{i1},\dots, V_{im}}&amp;lt;/math&amp;gt; выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; создается новый кластер &amp;lt;math&amp;gt;{\displaystyle C_{k+1}}&amp;lt;/math&amp;gt;, объект помещается в кластер и вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+1}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер, в него добавляется объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt;. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+2}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется в кластер с максимальным значением полезности кластеризации из &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{k+3}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}, CU_{k+1}, CU_{k+2}, CU_{k+3}}&amp;lt;/math&amp;gt;, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6944</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6944"/>
		<updated>2016-10-13T20:57:06Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Вычислительное ядро алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt; = [V11, …, V1m]. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; = [Vi1, …, Vim] выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта Оi создается новый кластер Сk + 1, объект помещается в кластер и вычисляется полезность кластеризации CUk + 1.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из СU1, …, СUk. Образуется новый кластер, в него добавляется объект Оi. Вычисляется полезность кластеризации CUk + 2.&lt;br /&gt;
# Объект Оi добавляется в кластер с максимальным значением полезности кластеризации из СU1 ,…, СUk. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации CUk + 3.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей СU1,…, СUk,CUk + 1, CUk + 2, CUk + 3, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6939</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6939"/>
		<updated>2016-10-13T20:55:59Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер &amp;lt;math&amp;gt;{\displaystyle C_{0}}&amp;lt;/math&amp;gt;, свойства которого совпадают со свойствами первого объекта &amp;lt;math&amp;gt;{\displaystyle O_{1}}&amp;lt;/math&amp;gt; = [V11, …, V1m]. Для каждого последующего объекта &amp;lt;math&amp;gt;{\displaystyle O_{i}}&amp;lt;/math&amp;gt; = [Vi1, …, Vim] выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект Оi добавляется поочередно в кластеры &amp;lt;math&amp;gt;{\displaystyle C_{1}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;{\displaystyle C_{2}}&amp;lt;/math&amp;gt;,…, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. После каждого добавления вычисляется полезность кластеризации &amp;lt;math&amp;gt;{\displaystyle CU_{1},\dots, CU_{k}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Для объекта Оi создается новый кластер Сk + 1, объект помещается в кластер и вычисляется полезность кластеризации CUk + 1.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из СU1, …, СUk. Образуется новый кластер, в него добавляется объект Оi. Вычисляется полезность кластеризации CUk + 2.&lt;br /&gt;
# Объект Оi добавляется в кластер с максимальным значением полезности кластеризации из СU1 ,…, СUk. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации CUk + 3.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей СU1,…, СUk,CUk + 1, CUk + 2, CUk + 3, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;):&lt;br /&gt;
   Input: A COBWEB node &#039;&#039;root&#039;&#039;, an instance to insert &#039;&#039;record&#039;&#039;&lt;br /&gt;
   &#039;&#039;if&#039;&#039; &#039;&#039;root&#039;&#039; has no children &#039;&#039;then&#039;&#039;&lt;br /&gt;
     &#039;&#039;children&#039;&#039; := {&#039;&#039;copy&#039;&#039;(&#039;&#039;root&#039;&#039;)}&lt;br /&gt;
     &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) \\ adds child with record’s feature values.&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;) \\ update root’s statistics&lt;br /&gt;
   &#039;&#039;else&#039;&#039;&lt;br /&gt;
     &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;root&#039;&#039;)&lt;br /&gt;
     &#039;&#039;for&#039;&#039; &#039;&#039;child&#039;&#039; &#039;&#039;in&#039;&#039; &#039;&#039;root&#039;&#039;’s children &#039;&#039;do&#039;&#039;&lt;br /&gt;
       calculate Category Utility for &#039;&#039;insert&#039;&#039;(&#039;&#039;record&#039;&#039;, &#039;&#039;child&#039;&#039;),&lt;br /&gt;
       set &#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039; children w. best CU.&lt;br /&gt;
     &#039;&#039;end for&#039;&#039;&lt;br /&gt;
     &#039;&#039;if&#039;&#039; &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;newcategory&#039;&#039;(&#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039; &#039;&#039;if&#039;&#039; &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;merge&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;best2&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else if&#039;&#039; &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;) yields best CU then&lt;br /&gt;
       &#039;&#039;split&#039;&#039;(&#039;&#039;best1&#039;&#039;)&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;root&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;else&#039;&#039;&lt;br /&gt;
       &#039;&#039;COBWEB&#039;&#039;(&#039;&#039;best1&#039;&#039;, &#039;&#039;record&#039;&#039;)&lt;br /&gt;
     &#039;&#039;end if&#039;&#039;&lt;br /&gt;
   &#039;&#039;end&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6927</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6927"/>
		<updated>2016-10-13T20:50:12Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Вычислительное ядро алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# Вводится корневой кластер С0, свойства которого совпадают со свойствами первого объекта О1 = [V11, …, V1m]. Для каждого последующего объекта Оi = [Vi1, …, Vim] выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# Объект Оi добавляется поочередно в кластеры С1, C2,…, Сk. После каждого добавления вычисляется полезность кластеризации СU1,…, СUk.&lt;br /&gt;
# Для объекта Оi создается новый кластер Сk + 1, объект помещается в кластер и вычисляется полезность кластеризации CUk + 1.&lt;br /&gt;
# Объединяются два кластера с максимальными значением полезности кластеризации из СU1, …, СUk. Образуется новый кластер, в него добавляется объект Оi. Вычисляется полезность кластеризации CUk + 2.&lt;br /&gt;
# Объект Оi добавляется в кластер с максимальным значением полезности кластеризации из СU1 ,…, СUk. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации CUk + 3.&lt;br /&gt;
# Выбирается максимальное значение полезности кластеризации среди полезностей СU1,…, СUk,CUk + 1, CUk + 2, CUk + 3, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6918</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6918"/>
		<updated>2016-10-13T20:48:39Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Метод COBWEB строит дерево классификации с вероятностными описаниями концептов. Выбор возможного способа кластеризации объектов основан на значениях функции полезности кластеризации. При построении дерева классификации используются следующие 4 операции:&lt;br /&gt;
* отнесение объекта к наилучшему из существующих кластеров&lt;br /&gt;
* добавление нового кластера, содержащего единственный объект&lt;br /&gt;
* слияние двух существующих кластеров в один новый с добавлением в нее этого объекта&lt;br /&gt;
* разбиение существующего кластера на два и отнесение объекта к лучшему из вновь созданных кластеров&lt;br /&gt;
&lt;br /&gt;
[[Файл:Pic_25_fmt.jpg|мини|Модель концептуальной кластеризации]]&lt;br /&gt;
&lt;br /&gt;
Пошаговое описание метода концептуальной кластеризации:&lt;br /&gt;
# {{anchor|1}} Вводится корневой кластер С0, свойства которого совпадают со свойствами первого объекта О1 = [V11, …, V1m]. Для каждого последующего объекта Оi = [Vi1, …, Vim] выполняется цикл, реализующий шаги 2‒6, в рамках которых выполняются 4 выше представленные операции.&lt;br /&gt;
# {{anchor|2}} Объект Оi добавляется поочередно в кластеры С1, C2,…, Сk. После каждого добавления вычисляется полезность кластеризации СU1,…, СUk.&lt;br /&gt;
# {{anchor|3}} Для объекта Оi создается новый кластер Сk + 1, объект помещается в кластер и вычисляется полезность кластеризации CUk + 1.&lt;br /&gt;
4# {{anchor|4}} Объединяются два кластера с максимальными значением полезности кластеризации из СU1, …, СUk. Образуется новый кластер, в него добавляется объект Оi. Вычисляется полезность кластеризации CUk + 2.&lt;br /&gt;
# {{anchor|5}} Объект Оi добавляется в кластер с максимальным значением полезности кластеризации из СU1 ,…, СUk. Образуется новый кластер с двумя кластерами-потомками. Вычисляется полезность кластеризации CUk + 3.&lt;br /&gt;
# {{anchor|6}} Выбирается максимальное значение полезности кластеризации среди полезностей СU1,…, СUk,CUk + 1, CUk + 2, CUk + 3, в соответствии с ним выбирается операция разбиения объектов по кластерам.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6904</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6904"/>
		<updated>2016-10-13T20:40:57Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера&amp;lt;math&amp;gt;{\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6903</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6903"/>
		<updated>2016-10-13T20:40:28Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;br /&gt;
Критерий полезности категории максимизирует вероятность того, что два объекта, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются.&lt;br /&gt;
обозначим через  – множество распознаваемых объектов, характеризуемое бинарными параметрами , принимаемыми одно из возможных значений .  – множество формируемых кластеров, где n – заранее неизвестно.&lt;br /&gt;
Полезность кластеризации в методе COBWEB рассматривается как функция CU, определяющая сходство объектов в рамках одного кластера, и их различие по отношению к объектам из других кластеров. Внутриклассовое сходство определяется условной вероятностью , а межклассовое сходство условной вероятностью .&lt;br /&gt;
Функция полезности кластеризации определяется в виде (*CU HERE*), где n – количество кластеров.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6901</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6901"/>
		<updated>2016-10-13T20:39:42Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6899</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6899"/>
		<updated>2016-10-13T20:39:18Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: &amp;lt;math&amp;gt;{\displaystyle P(A_{i}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;{\displaystyle A_{i}}&amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt; – пара атрибут-значение, &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt; – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6896</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6896"/>
		<updated>2016-10-13T20:37:47Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории &amp;lt;math&amp;gt;{\displaystyle C_{k}}&amp;lt;/math&amp;gt;. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6894</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6894"/>
		<updated>2016-10-13T20:37:28Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;br /&gt;
В алгоритме COBWEB реализовано вероятностное представление категорий. Принадлежность категории определяется не набором значений каждого свойства объекта, а вероятностью появления значения. Например, &amp;lt;math&amp;gt;{\displaystyle P(A_{j}=u_{ij}|C_{k})}&amp;lt;/math&amp;gt; - это условная вероятность, с которой свойство &amp;lt;math&amp;gt;{\displaystyle A_{j}}&amp;lt;/math&amp;gt;, принимает значение &amp;lt;math&amp;gt;{\displaystyle u_{ij}}&amp;lt;/math&amp;gt;, если объект относится к категории Ck. Для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. При предъявлении нового экземпляра система COBWEB оценивает качество отнесения этого примера к существующей категории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility). Критерий полезности категории был определен при исследовании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6892</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6892"/>
		<updated>2016-10-13T20:34:32Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;{\displaystyle X}&amp;lt;/math&amp;gt; — множество объектов, &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; — множество номеров (имён, меток) кластеров. Задана функция расстояния между объектами &amp;lt;math&amp;gt;{\displaystyle \rho (x,x&#039;)}&amp;lt;/math&amp;gt;. Имеется конечная обучающая выборка объектов &amp;lt;math&amp;gt;{\displaystyle X^{m}=\{x_{1},\dots ,x_{m}\}\subset X}&amp;lt;/math&amp;gt;. Требуется разбить выборку на непересекающиеся подмножества, называемыекластерами, так, чтобы каждый кластер состоял из объектов, близких по метрике &amp;lt;math&amp;gt;{\displaystyle \rho }&amp;lt;/math&amp;gt;, а объекты разных кластеров существенно отличались. При этом каждому объекту &amp;lt;math&amp;gt;{\displaystyle x_{i}\in X^{m}}&amp;lt;/math&amp;gt; приписывается номер кластера {\displaystyle y_{i}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Алгоритм кластеризации — это функция &amp;lt;math&amp;gt;{\displaystyle a\colon X\to Y}&amp;lt;/math&amp;gt;, которая любому объекту &amp;lt;math&amp;gt;{\displaystyle x\in X}&amp;lt;/math&amp;gt; ставит в соответствие номер кластера &amp;lt;math&amp;gt;{\displaystyle y\in Y}&amp;lt;/math&amp;gt;. Множество &amp;lt;math&amp;gt;{\displaystyle Y}&amp;lt;/math&amp;gt; в некоторых случаях известно заранее, однако чаще ставится задача определить оптимальное число кластеров, с точки зрения того или иного критерия качества кластеризации.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6889</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6889"/>
		<updated>2016-10-13T20:32:00Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
 {\displaystyle X}&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6888</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6888"/>
		<updated>2016-10-13T20:31:13Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = COBWEB&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6883</id>
		<title>Участник:Мязина Екатерина/Алгоритм концептуальной кластеризации COBWEB</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9C%D1%8F%D0%B7%D0%B8%D0%BD%D0%B0_%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_COBWEB&amp;diff=6883"/>
		<updated>2016-10-13T20:29:36Z</updated>

		<summary type="html">&lt;p&gt;Мязина Екатерина: Новая страница: «= ЧАСТЬ. Свойства и структура алгоритмов =  == Общее описание алгоритма == Задача кластериз…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.&lt;br /&gt;
Кластерный анализ выполняет следующие основные задачи:&lt;br /&gt;
Разработка типологии или классификации.&lt;br /&gt;
Исследование полезных концептуальных схем группирования объектов.&lt;br /&gt;
Порождение гипотез на основе исследования данных.&lt;br /&gt;
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.&lt;br /&gt;
&lt;br /&gt;
Для решения многих практических задач в настоящее время используется концептуальная кластеризация данных, ярким представителем которой является метод COBWEB.&lt;br /&gt;
Алгоритм COBWEB [12] – классический метод инкрементальной концептуальной кластеризации. Он создаёт иерархическую кластеризацию в виде дерева классификации: каждый узел этого дерева ссылается на концепт и содержит вероятностное описание этого концепта, которое включает в себя вероятность принадлежности концепта к данному узлу и условные вероятности вида: P(Ai = vij|Ck), гдеAi = vij – пара атрибут-значение, Ck – класс концепта.&lt;br /&gt;
Узлы, находящейся на определённом уровне дерева классификации, называют срезом. Алгоритм использует для построения дерева классификации эвристическую меру оценки, называемую полезностью категории – прирост ожидаемого числа корректных предположений о значениях атрибутов при знании об их принадлежности к определённой категории относительно ожидаемого числа корректных предположений о значениях атрибутов без этого знания. Чтобы встроить новый объект в дерево классификации, алгоритм COBWEB итеративно проходит всё дерево в поисках «лучшего» узла, к которому отнести этот объект. Выбор узла осуществляется на основе помещения объекта в каждый узел и вычисления полезности категории получившегося среза. Также вычисляется полезность категории для случая, когда объект относится к вновь создаваемому узлу. В итоге объект относится к тому узлу, для которого полезность категории больше.&lt;/div&gt;</summary>
		<author><name>Мязина Екатерина</name></author>
	</entry>
</feed>