EM-алгоритм с последовательным добавлением компонент (пример)
Материал из MachineLearning.
 (→Вычислительный эксперимент)  | 
				 (→Исходный код)  | 
			||
| (36 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
{{TOCright}}  | {{TOCright}}  | ||
| - | '''EM-алгоритм с последовательным добавлением компонент   | + | '''EM-алгоритм с последовательным добавлением компонент''' — метод нахождения функции плотности объектов, представляющей смесь распределений.  | 
| - | В данной статье рассматривается   | + | В тех случаях, когда "форму" класса не удаётся описать каким-либо одним распределением, можно попробовать описать её смесью <tex>k</tex> распределений, каждое из которых описывается функцией правдоподобия <tex>p_j(x)</tex>.   | 
| + | <center><tex>p(x) = \sum_{i=1}^k w_jp_j(x)</tex></center>  | ||
| + | |||
| + | <tex>w_j</tex> - априорная вероятность <tex>j</tex>-й компоненты. Функции правдоподобия принадлежат параметрическому семейству распределений <tex>\varphi(x; \theta)</tex> и отличаются только значениями параметра <tex>p_j(x) = \varphi(x; \theta_j)</tex>  | ||
| + | |||
| + | ''Задача разделения смеси'' заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex>, зная число <tex>k</tex> и функцию <tex>\varphi</tex>, оценить вектор параметров <tex>\Theta = (w_1,...,w_k,\theta_1,...,\theta_k)</tex>  | ||
| + | |||
| + | В данной статье рассматривается смесь гауссовских распределений выборки. Предполагается, что произвольную функцию распределения можно представить в виде их линейной комбинации. Количество компонент смеси, т.е. число гауссианов в линейной комбинации, произвольно.  | ||
| + | |||
| + | |||
| + | EM-алгоритм был предложен и исследован М.И.Шлезингером как инструмент для самопроизвольной классификации образов. Область его применения чрезвычайно широка: [[дискриминантный анализ]], [[кластеризация]], восстановление пропусков в данных, обработка сигналов и изображений. Алгоритм решает задачу [[исключающее или | исключающего или (XOR)]]  | ||
== Постановка задачи ==  | == Постановка задачи ==  | ||
| - | Задана выборка <tex>\{(\mathbf{x}_i,y_i)\}_{i=1}^  | + | Задана выборка <tex>\{(\mathbf{x}_i,y_i)\}_{i=1}^m</tex>, в которой <tex>X^m</tex> = <tex>\{\mathbf{x}_i\}_{i=1}^m</tex> - множество объектов, <tex>Y^m</tex> = <tex>\{\mathbf{y}_i\}_{i=1}^m</tex> - множество ответов. Предполагается, что на множестве объектов задана плотность распределения <tex>p(x)</tex>, представленная в виде смеси <tex>k</tex> гауссиан с параметрами <tex>\mu</tex> и <tex>\Sigma</tex>,  | 
| - | <center><tex>p(x) = \sum_{i=1}^k w_jp_j(x) = \sum_{i=1}^k w_jN(x;\mu_j,\Sigma_j)</tex></center>  | + | <center><tex>p(x) = \sum_{i=1}^k w_jp_j(x) = \sum_{i=1}^k w_jN(x;\mu_j,\Sigma_j).</tex></center>  | 
| + | <center><tex>N(x;\mu_j,\Sigma_j) = \frac{1}{\sqrt{(2\pi)^ndet\Sigma_j}}e^{-\frac{1}{2}(x-\mu_j)\Sigma_j^{-1}(x-\mu_j)^{T}}</tex></center>  | ||
| - | Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex> случайных и независимых наблюдений из смеси <tex>p(x)</tex> оценить вектор параметров <tex>\theta = (w_1,...,w_k,\mu_1,...,\mu_k,\Sigma_1,...,\Sigma_k)</tex> доставляющий максимум функции правдоподобия  | + | Задача разделения смеси заключается в том, чтобы, имея выборку <tex>X^m</tex>   | 
| - | <center><tex>Q(\Theta) = \ln\prod_{i=1}^mp(x_i|w,\mu,\Sigma) = \sum_{i=1}^m\ln\sum_{j=1}^kw_jp_j(x_i) \rightarrow max_{\Theta}</tex></center>  | + | случайных и независимых наблюдений из смеси <tex>p(x)</tex> оценить вектор параметров <tex>\theta = (w_1,...,w_k,\mu_1,...,\mu_k,\Sigma_1,...,\Sigma_k)</tex> доставляющий максимум функции правдоподобия  | 
| + | <center><tex>Q(\Theta) = \ln\prod_{i=1}^mp(x_i|w,\mu,\Sigma) = \sum_{i=1}^m\ln\sum_{j=1}^kw_jp_j(x_i) \rightarrow \max_{\Theta}</tex></center>  | ||
== Алгоритм отыскания оптимальных параметров ==  | == Алгоритм отыскания оптимальных параметров ==  | ||
| - | Оптимальные параметры отыскиваются последовательно с помощью EM-алгоритма. Идея заключается во введении вспомогательного вектора скрытых переменных <tex>G</tex>, обладающего двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров <tex>\Theta</tex>, с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.  | + | Оптимальные параметры отыскиваются последовательно с помощью [[EM алгоритм (пример)|EM-алгоритма]]. Идея заключается во введении вспомогательного вектора скрытых переменных <tex>G</tex>, обладающего двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров <tex>\Theta</tex>, с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.  | 
| - | EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге   | + | EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных <tex>G</tex> по текущему приближению вектора параметров <tex>\Theta</tex>. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора <tex>\Theta</tex>  | 
| - | + | ||
| - | + | ||
| - | + | ||
по текущим значениям векторов <tex>G</tex> и <tex>\Theta</tex>.  | по текущим значениям векторов <tex>G</tex> и <tex>\Theta</tex>.  | ||
| - | Если число компонент смеси заранее   | + | |
| + | Если число компонент смеси заранее неизвестно, то применяется EM-алгоритм с последовательным добавлением компонент. Предположим, что смесь содержит одну компоненту (<tex>k=1</tex>) и проделаем алгоритм EM(<tex>X,1</tex>). Найдем плохо классифицированные элементы: Если функция правдоподобия на объекте меньше своего максимального значения в R раз, то добавим элемент ко множеству U. Параметр R выбирается на основании эвристических соображений, как правило <tex>R \in [2,10]</tex>. Множество U полагается пустым и увеличивается по мере добавления в него элементов. Если размер U оказался больше <tex>m_0</tex>, то считаем, что текущее распределение плохо описывает смесь. Текущее распределение определяется только числом компонент <tex>k</tex>. Увеличим    | ||
| + | его на единицу и запустим еще раз EM(<tex>X,k+1</tex>). Алгоритм остановится, когда число плохо классифицированных объектов будет меньше <tex>m_0</tex>. Этот параметр характеризует количество элементов, по которому можно восстановить гауссовское распределение. Как правило <tex>m_0 \geq 10</tex>  | ||
| + | |||
| + | |||
*'''Вход:'''  | *'''Вход:'''  | ||
Выборка <tex>X^m = \{x_1,...,x_m\}</tex> ;  | Выборка <tex>X^m = \{x_1,...,x_m\}</tex> ;  | ||
| Строка 38: | Строка 51: | ||
        <tex>w_j:=w_j(1-w_k) \qquad j = 1,...,k-1;</tex><br/>  |         <tex>w_j:=w_j(1-w_k) \qquad j = 1,...,k-1;</tex><br/>  | ||
6.     <tex>EM(X^m,k,\Theta,\delta);</tex><br/>  | 6.     <tex>EM(X^m,k,\Theta,\delta);</tex><br/>  | ||
| - | |||
== Вычислительный эксперимент ==  | == Вычислительный эксперимент ==  | ||
| - | Алгоритм тестируется на модельных и реальных данных  | + | Алгоритм тестируется на модельных и реальных данных.  | 
| - | + | ===Пример 1===  | |
| - | + | Рассмотрим пример на модельных данных. Выборка состоит из четырех классов. Красный класс представляет собой смесь двух гауссовских распределений с диагональной и недиагональной матрицами ковариации. Остальные классы являются одним гауссовским рапределением.  | |
| + | Дисперсия зеленого класса меньше дисперсий остальных, поэтому его элементы находятся ближе к центру. Дисперсия бирюзовых по одной координате больше, чем по другой, в результате чего класс визуально вытянулся. Центры классов располагаются близко, некоторые классы линейно неразделимы.    | ||
| + | |||
<source lang="matlab">  | <source lang="matlab">  | ||
[X1, Y1] = gengaussdata(150, [0;0], [1/4,1/2]);  | [X1, Y1] = gengaussdata(150, [0;0], [1/4,1/2]);  | ||
| Строка 69: | Строка 83: | ||
[[Изображение:4clases_sorted¢ers.png|435 × 342]]  | [[Изображение:4clases_sorted¢ers.png|435 × 342]]  | ||
<br/>  | <br/>  | ||
| - | Истинное распределение классов показано на рисунке слева. Одинаковым цветом помечены элементы одного класса. Как можно заметить, некоторые представители "  | + | Истинное распределение классов показано на рисунке слева. Одинаковым цветом помечены элементы одного класса. Как можно заметить, некоторые представители "красных", "бирюзовых" и "синих" перемешались.   | 
| - | Качество обучения алгоритма проверяется на той же выборке. На правом рисунке кружками показаны полученные ответы, цвет отвечает за принадлежность к соответствующему классу. Центры классов, отмечены черным кружками. Алгоритм нашел восемь гауссовских распределений вместо четырех, причем одна из красных компонент описывается сразу 4 гауссианами, в то время как остальные компоненты выборки - одной. Этот факт говорит о том, что одна гауссиана плохо приближает данное распределение, и, для   | + | Качество обучения алгоритма проверяется на той же выборке. На правом рисунке кружками показаны полученные ответы, цвет отвечает за принадлежность к соответствующему классу. Центры классов, отмечены черным кружками. Алгоритм нашел восемь гауссовских распределений вместо четырех, причем одна из красных компонент описывается сразу 4 гауссианами, в то время как остальные компоненты выборки - одной. Этот факт говорит о том, что одна гауссиана плохо приближает данное распределение, и, для уменьшения числа ошибок, следует приблизить её большим числом гауссиан.    | 
Алгоритм допустил 16 ошибок, что на выборке из 820 элементов составляет менее 2%.  | Алгоритм допустил 16 ошибок, что на выборке из 820 элементов составляет менее 2%.  | ||
| - | + | ===Пример 2===  | |
| - | [[Изображение:twobadclasses.png|  | + | В качестве второго примера возьмем два плохо разделимых класса. Центры классов находятся на расстоянии меньшем дисперсии каждого из них. Можно наблюдать синие элементы, расположенные ближе к центру красного класса, чем к центру своего.  | 
| - | [[Изображение:twobadclasses_sorted.png|  | + | |
| + | [[Изображение:twobadclasses.png|400px]]  | ||
| + | [[Изображение:twobadclasses_sorted.png|400px]]  | ||
<br/>  | <br/>  | ||
| - | + | Алгоритм выделил четыре гауссовских распределения в синем классе. Благодаря этому, хорошо классифицировались некоторые синие элементы, находящиеся ближе к красному классу.   | |
| - | |||
| - | |||
| - | |||
| - | [[  | + | === Ирисы Фишера ===  | 
| + | Проверку алгоритма проведем на классической задаче: [http://archive.ics.uci.edu/ml/datasets/Iris Ирисы Фишера]  | ||
| + | Объектами являются три типа ирисов: [http://ru.wikipedia.org/wiki/%D0%98%D1%80%D0%B8%D1%81_%D1%89%D0%B5%D1%82%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%8B%D0%B9 setosa], [http://en.wikipedia.org/wiki/Iris_versicolor versicolor], virginica  | ||
| - | + | [[Изображение:setosa.jpg|275px]]   | |
| + | [[Изображение:versicolor.jpg|275px]]   | ||
| + | [[Изображение:virginica.jpg|275px]]   | ||
| - | + | У каждого объекта есть четыре признака: длина лепестка, ширина лепестка, длина чашелистика, ширина чашелистика.  | |
| + | Для удобства визуализации результатов будем использовать первые два признака.  | ||
| - | Iris   | + | <source lang="matlab">  | 
| + | load 'iris2.data'  | ||
| + | X = iris2(:,[3,4]);  | ||
| + | Y = [ones([50,1]);2*ones([50,1]);3*ones([50,1])];  | ||
| + | hold off  | ||
| + | drawdata(X,Y,'*');  | ||
| + | title('Irises classification')  | ||
| + | xlabel('petal width, cm');  | ||
| + | ylabel('petal length, cm');  | ||
| + | legend('Iris Setosa','Iris Versicolour','Iris Virginica','Location','NorthWest');  | ||
| + | [W,M,Sigma,k,Ytheta] = emlearn(X, Y, [2,20,0.0005])  | ||
| + | [Yanswer] = emtest(X, M, Sigma, Ytheta);  | ||
| + | drawdata(X,Yanswer,'o')  | ||
| + | </source>  | ||
| - | [[Изображение:  | + | [[Изображение:Ireses_unsorted.png|300px]]  | 
| + | [[Изображение:Ireses_sorted¢ers.png|300px]]  | ||
| - | + | Алгоритм хорошо отделил ирисы setosa от остальных, но допустил 30% ошибок при разделении ирисов versicolor и virginica. Это произошло потому, что алгоритм изначально решал задачу кластеризации и лишь потом задачу классификации, приписывая каждому кластеру номер наиболее хорошо приближаемого им класса. Для разделения последних двух классов можно использовать [[Линейный классификатор|линейные алгоритмы классификации]], либо решать с помощью [[EM алгоритм (пример)|EM-алгоритма]], используя все четыре признака.  | |
| - | + | ||
| - | + | ||
== Исходный код ==  | == Исходный код ==  | ||
| - | Скачать листинги алгоритмов можно здесь [http://mlalgorithms.svn.sourceforge.net/  | + | Скачать листинги алгоритмов можно здесь [http://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group674/Pavlov2009EMwithAdding]  | 
== Смотри также ==  | == Смотри также ==  | ||
| + | * [[EM алгоритм (пример)|EM алгоритм]]  | ||
| + | * [[ЕМ-алгоритм, его модификации и обобщения]]  | ||
* [[Метод ближайших соседей]]  | * [[Метод ближайших соседей]]  | ||
| + | * [[Линейный классификатор]]  | ||
* [[Многомерная случайная величина]]  | * [[Многомерная случайная величина]]  | ||
==Литература==   | ==Литература==   | ||
*К. В. Воронцов, Лекции по статистическим (байесовским) алгоритмам классификации  | *К. В. Воронцов, Лекции по статистическим (байесовским) алгоритмам классификации  | ||
| - | {{  | + | *Bishop C. - Pattern Recognition and Machine Learning (Springer, 2006)  | 
| - | [[Категория:  | + | * [http://www.inference.phy.cam.ac.uk/mackay/itila/ The on-line textbook: Information Theory, Inference, and Learning Algorithms], by [[David J.C. MacKay]] includes simple examples of the EM-algorithm such as clustering using the soft K-means algorithm, and emphasizes the variational view of the EM-algorithm.  | 
| + | *[[Журавлёв, Юрий Иванович]] Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики. 1978 Т. 33.С. 5–68.  | ||
| + | *Jordan M. I., Xu L. Convergence results for the EM algorithm to mixtures of experts architectures: Tech. Rep. A.I. Memo No. 1458: MIT, Cambridge, MA, 1993.  | ||
| + | *Шлезингер М., Главач В. Десять лекций по статистическому и структурному распознаванию. - Киев: Наукова думка, 2004. ISBN 966-00-0341-2  | ||
| + | *Шлезингер М. И. О самопроизвольном различении образов // Читающие автоматы. - Киев, Наукова думка, 1965  | ||
| + | |||
| + | {{ЗаданиеВыполнено|Кирилл Павлов|В.В.Стрижов|28 мая 2009|Pavlov99|Strijov}}  | ||
| + | |||
| + | [[Категория:Оценивание вероятностных распределений]]  | ||
| + | [[Категория:Байесовская теория классификации]]  | ||
| + | [[Категория:Практика и вычислительные эксперименты]]  | ||
Текущая версия
 
  | 
EM-алгоритм с последовательным добавлением компонент — метод нахождения функции плотности объектов, представляющей смесь распределений.
В тех случаях, когда "форму" класса не удаётся описать каким-либо одним распределением, можно попробовать описать её смесью  распределений, каждое из которых описывается функцией правдоподобия 
. 
 - априорная вероятность 
-й компоненты. Функции правдоподобия принадлежат параметрическому семейству распределений 
 и отличаются только значениями параметра 
Задача разделения смеси заключается в том, чтобы, имея выборку  случайных и независимых наблюдений из смеси 
, зная число 
 и функцию 
, оценить вектор параметров 
В данной статье рассматривается смесь гауссовских распределений выборки. Предполагается, что произвольную функцию распределения можно представить в виде их линейной комбинации. Количество компонент смеси, т.е. число гауссианов в линейной комбинации, произвольно.
EM-алгоритм был предложен и исследован М.И.Шлезингером как инструмент для самопроизвольной классификации образов. Область его применения чрезвычайно широка: дискриминантный анализ, кластеризация, восстановление пропусков в данных, обработка сигналов и изображений. Алгоритм решает задачу  исключающего или (XOR)
Постановка задачи
Задана выборка , в которой 
 = 
 - множество объектов, 
 = 
 - множество ответов. Предполагается, что на множестве объектов задана плотность распределения 
, представленная в виде смеси 
 гауссиан с параметрами 
 и 
,
Задача разделения смеси заключается в том, чтобы, имея выборку  
случайных и независимых наблюдений из смеси 
 оценить вектор параметров 
 доставляющий максимум функции правдоподобия
Алгоритм отыскания оптимальных параметров
Оптимальные параметры отыскиваются последовательно с помощью EM-алгоритма. Идея заключается во введении вспомогательного вектора скрытых переменных , обладающего двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров 
, с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных.
EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных 
 по текущему приближению вектора параметров 
. На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора 
по текущим значениям векторов 
 и 
.
Если число компонент смеси заранее неизвестно, то применяется EM-алгоритм с последовательным добавлением компонент. Предположим, что смесь содержит одну компоненту () и проделаем алгоритм EM(
). Найдем плохо классифицированные элементы: Если функция правдоподобия на объекте меньше своего максимального значения в R раз, то добавим элемент ко множеству U. Параметр R выбирается на основании эвристических соображений, как правило 
. Множество U полагается пустым и увеличивается по мере добавления в него элементов. Если размер U оказался больше 
, то считаем, что текущее распределение плохо описывает смесь. Текущее распределение определяется только числом компонент 
. Увеличим  
его на единицу и запустим еще раз EM(
). Алгоритм остановится, когда число плохо классифицированных объектов будет меньше 
. Этот параметр характеризует количество элементов, по которому можно восстановить гауссовское распределение. Как правило 
- Вход:
 
Выборка  ;
 - максимальный допустимый разброс правдоподобия объектов;
 - минимальная длина выборки, по которой можно восстановить плотность;
 - параметр критерия останова;
- Выход:
 
 - число компонент смеси;
- Алгоритм
 
1. начальное приближение - одна компонента:
      
2. для всех 
3.      выделить объекты с низким правдоподобием 
          
4.      Если  то выход из цикла по 
5.      Начальное приближение для  компоненты: 
        
        
6.     
Вычислительный эксперимент
Алгоритм тестируется на модельных и реальных данных.
Пример 1
Рассмотрим пример на модельных данных. Выборка состоит из четырех классов. Красный класс представляет собой смесь двух гауссовских распределений с диагональной и недиагональной матрицами ковариации. Остальные классы являются одним гауссовским рапределением. Дисперсия зеленого класса меньше дисперсий остальных, поэтому его элементы находятся ближе к центру. Дисперсия бирюзовых по одной координате больше, чем по другой, в результате чего класс визуально вытянулся. Центры классов располагаются близко, некоторые классы линейно неразделимы.
[X1, Y1] = gengaussdata(150, [0;0], [1/4,1/2]); [X2, Y2] = gengaussdata(150, [4;0], [1 5/6;5/6 1]); [X4, Y4] = gengaussdata(120, [2;4], [1/10;1/10]); [X3, Y3] = gengaussdata(200, [-2,2], [1/3, 1/3]); [X5, Y5] = gengaussdata(200, [2,2], [1.25, 1/20]); X=[X1;X2;X3;X4;X5]; %Y are answers (numbers of classes) Y=[Y1;Y2;Y3+1;Y4+2;Y5+3]; hold off drawdata(X,Y,'*'); %learning algorithm [W,M,Sigma,k,Ytheta] = emlearn(X, Y, [2,40,0.001]) %testing and geting answers from algorithm [Yanswer] = emtest(X, M, Sigma, Ytheta); drawdata(X,Yanswer,'o'); %printing centers of classes according to algorithm decision printcenters(M);
Истинное распределение классов показано на рисунке слева. Одинаковым цветом помечены элементы одного класса. Как можно заметить, некоторые представители "красных", "бирюзовых" и "синих" перемешались. 
Качество обучения алгоритма проверяется на той же выборке. На правом рисунке кружками показаны полученные ответы, цвет отвечает за принадлежность к соответствующему классу. Центры классов, отмечены черным кружками. Алгоритм нашел восемь гауссовских распределений вместо четырех, причем одна из красных компонент описывается сразу 4 гауссианами, в то время как остальные компоненты выборки - одной. Этот факт говорит о том, что одна гауссиана плохо приближает данное распределение, и, для уменьшения числа ошибок, следует приблизить её большим числом гауссиан. Алгоритм допустил 16 ошибок, что на выборке из 820 элементов составляет менее 2%.
Пример 2
В качестве второго примера возьмем два плохо разделимых класса. Центры классов находятся на расстоянии меньшем дисперсии каждого из них. Можно наблюдать синие элементы, расположенные ближе к центру красного класса, чем к центру своего.
Алгоритм выделил четыре гауссовских распределения в синем классе. Благодаря этому, хорошо классифицировались некоторые синие элементы, находящиеся ближе к красному классу.
Ирисы Фишера
Проверку алгоритма проведем на классической задаче: Ирисы Фишера Объектами являются три типа ирисов: setosa, versicolor, virginica
У каждого объекта есть четыре признака: длина лепестка, ширина лепестка, длина чашелистика, ширина чашелистика. Для удобства визуализации результатов будем использовать первые два признака.
load 'iris2.data' X = iris2(:,[3,4]); Y = [ones([50,1]);2*ones([50,1]);3*ones([50,1])]; hold off drawdata(X,Y,'*'); title('Irises classification') xlabel('petal width, cm'); ylabel('petal length, cm'); legend('Iris Setosa','Iris Versicolour','Iris Virginica','Location','NorthWest'); [W,M,Sigma,k,Ytheta] = emlearn(X, Y, [2,20,0.0005]) [Yanswer] = emtest(X, M, Sigma, Ytheta); drawdata(X,Yanswer,'o')
Алгоритм хорошо отделил ирисы setosa от остальных, но допустил 30% ошибок при разделении ирисов versicolor и virginica. Это произошло потому, что алгоритм изначально решал задачу кластеризации и лишь потом задачу классификации, приписывая каждому кластеру номер наиболее хорошо приближаемого им класса. Для разделения последних двух классов можно использовать линейные алгоритмы классификации, либо решать с помощью EM-алгоритма, используя все четыре признака.
Исходный код
Скачать листинги алгоритмов можно здесь [1]
Смотри также
- EM алгоритм
 - ЕМ-алгоритм, его модификации и обобщения
 - Метод ближайших соседей
 - Линейный классификатор
 - Многомерная случайная величина
 
Литература
- К. В. Воронцов, Лекции по статистическим (байесовским) алгоритмам классификации
 - Bishop C. - Pattern Recognition and Machine Learning (Springer, 2006)
 - The on-line textbook: Information Theory, Inference, and Learning Algorithms, by David J.C. MacKay includes simple examples of the EM-algorithm such as clustering using the soft K-means algorithm, and emphasizes the variational view of the EM-algorithm.
 - Журавлёв, Юрий Иванович Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики. 1978 Т. 33.С. 5–68.
 - Jordan M. I., Xu L. Convergence results for the EM algorithm to mixtures of experts architectures: Tech. Rep. A.I. Memo No. 1458: MIT, Cambridge, MA, 1993.
 - Шлезингер М., Главач В. Десять лекций по статистическому и структурному распознаванию. - Киев: Наукова думка, 2004. ISBN 966-00-0341-2
 - Шлезингер М. И. О самопроизвольном различении образов // Читающие автоматы. - Киев, Наукова думка, 1965
 
|   |  Данная статья была создана в рамках учебного задания.
 
 См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.  | 


