<?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=Error2407</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=Error2407"/>
	<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/Error2407"/>
	<updated>2026-10-22T20:23:43Z</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:Error2407&amp;diff=5678</id>
		<title>Участник:Error2407</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:Error2407&amp;diff=5678"/>
		<updated>2016-10-12T10:40:28Z</updated>

		<summary type="html">&lt;p&gt;Error2407: Новая страница: «Богомазов Евгений, 619»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Богомазов Евгений, 619&lt;/div&gt;</summary>
		<author><name>Error2407</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%98%D0%BB%D1%8C%D1%8F_%D0%95%D0%B3%D0%BE%D1%80%D0%BE%D0%B2/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_k-%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D1%85&amp;diff=5677</id>
		<title>Участник:Илья Егоров/Алгоритм k-средних</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%98%D0%BB%D1%8C%D1%8F_%D0%95%D0%B3%D0%BE%D1%80%D0%BE%D0%B2/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_k-%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D1%85&amp;diff=5677"/>
		<updated>2016-10-12T10:38:35Z</updated>

		<summary type="html">&lt;p&gt;Error2407: /* ЧАСТЬ. Свойства и структура алгоритмов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Алгоритм k-средних (k-means)&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;O()&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O()&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O()&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{()}{}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{ ()}{}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Страница создана группой &amp;quot;Илья Егоров — Евгений Богомазов&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ЧАСТЬ. Свойства и структура алгоритмов =&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Алгоритм кластеризации k-средних впервые был предложен в 1950-х годах математиками Гуго Штейнгаузом и Стюартом Ллойдом независимо друг от друга. Наибольшую популярность он получил после работы Маккуина.&lt;br /&gt;
&lt;br /&gt;
Алгоритм позволяет при заданном числе &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; построить &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; кластеров, расположенных на максимальном расстоянии друг от друга. Таким образом, наибольшей точности результат выполнения алгоритма достигает при полной осведомленности Пользователя о характере кластеризуемых объектов и, как следствие, при обладании максимально корректной информацией о числе кластеров.&lt;br /&gt;
&lt;br /&gt;
В общем случае выбор числа &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; может базироваться на любых значимых факторах, в том числе на результатах предшествующих исследований, теоретических соображениях или интуиции. &lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Исходные данные: &amp;lt;math&amp;gt;\{a_i\}, i = 1 \dots m&amp;lt;/math&amp;gt; — множество из &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; объектов, подлежащих кластеризации и определяющихся вектором длины &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; — предполагаемое количество кластеров.&lt;br /&gt;
&lt;br /&gt;
Вычисляемые данные: центр предполагаемого кластера (центроид) — на первом шаге объявляется равным случайному объекту, а затем сдвигается в центр масс элементов кластера.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;\{s_1 \dots s_k\}&amp;lt;/math&amp;gt; — центроиды, где &amp;lt;math&amp;gt;1 \dots k&amp;lt;/math&amp;gt; — номера кластеров, то объект &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; относится к кластеру &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;, если суммарное квадратичное отклонение точек кластеров от центров этих кластеров минимально:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_i \in P \Leftrightarrow \left|a_i - s_P\right| \rightarrow \min_P&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;
Алгоритм k-средних базируется на алгоритме вычисления расстояния между векторами, расстояние на каждом шаге высчитывается &amp;lt;math&amp;gt;k\cdot n&amp;lt;/math&amp;gt; раз.&lt;br /&gt;
&lt;br /&gt;
Помимо этого, в конце каждого шага вычисляется центр масс объектов кластера, для всех объектов потребуется &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; суммирование и &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; делений.&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Последовательность шагов алгоритма следующая:&lt;br /&gt;
&lt;br /&gt;
1. По какому-либо правилу выбираем &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; объектов для кластеризации, объявляем их центроидами&lt;br /&gt;
&lt;br /&gt;
2. Классифицируем каждый объект на предмет принадлежности к кластеру согласно формуле в разделе &amp;quot;Математическое описание алгоритма&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Вычисляем центр масс каждого из кластеров.&lt;br /&gt;
&lt;br /&gt;
3.а Если для какого-либо кластера его центр масс отличается от центроида, то переносим центроид этого кластера во вновь образованный центр масс, проделываем эту операцию для всех других кластеров и переходим к п.2&lt;br /&gt;
&lt;br /&gt;
3.б Если для каждого кластера его центр масс совпадает с центроидом — Выход из алгоритма, объекты классифицированы.&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&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;&#039;Входные данные&#039;&#039;&#039;: Количество кластеров &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;кластеризуемых элементов&lt;br /&gt;
Дополнительные ограничения:&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; — положительное число, т. е. &amp;lt;math&amp;gt;k &amp;gt; 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Для кластеризуемых элементов определена метрика (расстояние между объектами)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Объём входных данных&#039;&#039;&#039;: &amp;lt;math&amp;gt;m\cdot n + 1&amp;lt;/math&amp;gt; (кластеризуемые объекты в виде векторов и число &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Выходные данные&#039;&#039;&#039;: Массив, в который записаны принадлежности каждого элемента кластеру (допустим вывод в другой эквивалентной более удобной структуре).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Объём выходных данных&#039;&#039;&#039;:  Размер массива равен &amp;lt;math&amp;gt;2\cdot m&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Вычислительная мощность алгоритма на каждом шаге равна &amp;lt;math&amp;gt;k\cdot n&amp;lt;/math&amp;gt; (расстояние между элементом и центроидом &amp;lt;math&amp;gt;k\cdot n&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;
[1] Нейский И.М. Классификация и сравнение методов кластеризации http://it-claim.ru/Persons/Neyskiy/Article2_Neiskiy.pdf&lt;br /&gt;
&lt;br /&gt;
[2] https://ru.wikipedia.org/wiki/K-means&lt;br /&gt;
&lt;br /&gt;
[[en:Description of algorithm properties and structure]]&lt;/div&gt;</summary>
		<author><name>Error2407</name></author>
	</entry>
</feed>