logo

Клъстеризиране в машинното обучение

Клъстерирането или клъстерният анализ е техника за машинно обучение, която групира немаркирания набор от данни. Може да се определи като „Начин за групиране на точките от данни в различни клъстери, състоящи се от подобни точки от данни. Обектите с възможни прилики остават в група, която има по-малко или никакви прилики с друга група.'

Прави го, като намира някои подобни модели в немаркирания набор от данни, като форма, размер, цвят, поведение и т.н., и ги разделя според наличието и отсъствието на тези подобни модели.

Това е обучение без надзор метод, следователно не се предоставя надзор на алгоритъма и той се занимава с немаркирания набор от данни.

След прилагане на тази техника за клъстериране, всеки клъстер или група се предоставя с клъстер-ID. ML системата може да използва този идентификатор, за да опрости обработката на големи и сложни набори от данни.

Техниката за групиране обикновено се използва за анализ на статистически данни.

Забележка: Клъстерирането е някъде подобно на класификационен алгоритъм , но разликата е типът набор от данни, който използваме. При класификацията работим с етикетирания набор от данни, докато при клъстерирането работим с немаркирания набор от данни.

Пример : Нека разберем техниката за клъстериране с примера от реалния свят на Mall: Когато посетим търговски център, можем да наблюдаваме, че нещата с подобна употреба са групирани заедно. Например тениските са групирани в една секция, а панталоните са в други секции, по същия начин в секциите със зеленчуци, ябълки, банани, манго и т.н. са групирани в отделни секции, така че лесно да можем да открием нещата. Техниката за групиране също работи по същия начин. Други примери за клъстериране са групирането на документи според темата.

Техниката за групиране може да се използва широко в различни задачи. Някои от най-честите употреби на тази техника са:

  • Сегментиране на пазара
  • Анализ на статистически данни
  • Анализ на социални мрежи
  • Сегментиране на изображението
  • Откриване на аномалии и др.

Освен тези общи употреби, той се използва от Amazon в своята система за препоръки, за да предостави препоръките според миналото търсене на продукти. Нетфликс също използва тази техника, за да препоръчва филмите и уеб сериалите на своите потребители според хронологията на гледане.

Диаграмата по-долу обяснява работата на алгоритъма за клъстериране. Виждаме, че различните плодове са разделени на няколко групи с подобни свойства.

Клъстеризиране в машинното обучение

Видове методи за групиране

Методите за клъстериране са широко разделени на Твърдо клъстериране (точката от данни принадлежи само към една група) и Меко клъстериране (точките с данни могат да принадлежат и към друга група). Но съществуват и други различни подходи за групиране. По-долу са основните методи за клъстериране, използвани в машинното обучение:

    Клъстериране на дялове Клъстериране на базата на плътност Клъстериране, базирано на модел на разпространение Йерархично групиране Размито клъстериране

Клъстериране на дялове

Това е вид групиране, което разделя данните на не-йерархични групи. Известен е още като метод, базиран на центроид . Най-често срещаният пример за разделяне на клъстери е K-Means Алгоритъм за групиране .

При този тип наборът от данни е разделен на набор от k групи, където K се използва за определяне на броя на предварително дефинираните групи. Центърът на клъстера е създаден по такъв начин, че разстоянието между точките с данни на един клъстер е минимално в сравнение с центроида на друг клъстер.

прочетете csv файла в java
Клъстеризиране в машинното обучение

Клъстериране на базата на плътност

Методът за клъстериране, базиран на плътност, свързва областите с висока плътност в клъстери и разпределенията с произволна форма се формират, докато плътният регион може да бъде свързан. Този алгоритъм го прави, като идентифицира различни клъстери в набора от данни и свързва областите с висока плътност в клъстери. Плътните области в пространството за данни са разделени една от друга от по-редки области.

Тези алгоритми могат да се сблъскат с трудности при клъстерирането на точките от данни, ако наборът от данни има различна плътност и високи размери.

Клъстеризиране в машинното обучение

Клъстериране, базирано на модел на разпространение

При метода за клъстериране, базиран на модел на разпределение, данните се разделят въз основа на вероятността как даден набор от данни принадлежи към конкретно разпределение. Групирането се извършва чрез приемане на някои общи разпределения Разпределение на Гаус .

Пример за този тип е Алгоритъм за групиране на очаквания-максимизиране който използва смесени модели на Гаус (GMM).

Клъстеризиране в машинното обучение

Йерархично групиране

Йерархичното клъстериране може да се използва като алтернатива на разделеното клъстериране, тъй като няма изискване за предварително уточняване на броя на клъстерите, които да бъдат създадени. При тази техника наборът от данни се разделя на клъстери, за да се създаде дървовидна структура, която също се нарича a дендрограма . Наблюденията или произволен брой клъстери могат да бъдат избрани чрез изрязване на дървото на правилното ниво. Най-често срещаният пример за този метод е Агломеративен йерархичен алгоритъм .

Клъстеризиране в машинното обучение

Размито клъстериране

Размитото групиране е вид мек метод, при който даден обект с данни може да принадлежи към повече от една група или клъстер. Всеки набор от данни има набор от коефициенти на членство, които зависят от степента на членство в клъстер. Алгоритъм за размити C-средства е примерът за този тип групиране; понякога е известен също като алгоритъм на Fuzzy k-средни стойности.

Алгоритми за групиране

Алгоритмите за клъстериране могат да бъдат разделени въз основа на техните модели, които са обяснени по-горе. Има публикувани различни типове алгоритми за клъстериране, но само няколко от тях се използват често. Алгоритъмът за клъстериране се основава на вида данни, които използваме. Като например, някои алгоритми трябва да отгатнат броя на клъстерите в даден набор от данни, докато някои трябва да намерят минималното разстояние между наблюдението на набора от данни.

Тук обсъждаме предимно популярни алгоритми за клъстериране, които се използват широко в машинното обучение:

    Алгоритъм на K-Means:Алгоритъмът за k-средни стойности е един от най-популярните алгоритми за групиране. Той класифицира набора от данни, като разделя пробите на различни клъстери с равни отклонения. Броят на клъстерите трябва да бъде посочен в този алгоритъм. Той е бърз с по-малко необходими изчисления, с линейната сложност на На). Алгоритъм за средно изместване:Алгоритъмът за средно изместване се опитва да намери плътните области в гладката плътност на точките от данни. Това е пример за модел, базиран на центроид, който работи върху актуализирането на кандидатите за центроид, за да бъде център на точките в рамките на даден регион.DBSCAN алгоритъм:Стои си за базирано на плътност пространствено клъстериране на приложения с шум . Това е пример за модел, базиран на плътност, подобен на средното изместване, но с някои забележителни предимства. В този алгоритъм областите с висока плътност са разделени от областите с ниска плътност. Поради това клъстерите могат да бъдат намерени във всяка произволна форма.Клъстериране на очаквания-максимизиране с помощта на GMM:Този алгоритъм може да се използва като алтернатива на алгоритъма за k-средни стойности или за случаите, когато K-средните стойности могат да бъдат неуспешни. В GMM се приема, че точките от данни са разпределени по Гаус.Агломеративен йерархичен алгоритъм:Агломеративният йерархичен алгоритъм извършва йерархично групиране отдолу нагоре. При това всяка точка от данни се третира като единичен клъстер в началото и след това последователно се обединява. Клъстерната йерархия може да бъде представена като дървовидна структура.Разпространение на афинитета:Той е различен от другите алгоритми за клъстериране, тъй като не изисква указване на броя на клъстерите. При това всяка точка от данни изпраща съобщение между двойката точки от данни до конвергенция. Има O(N2T) времева сложност, което е основният недостатък на този алгоритъм.

Приложения на клъстерирането

По-долу са някои често известни приложения на техниката за клъстериране в машинното обучение:

    При идентифициране на ракови клетки:Алгоритмите за групиране се използват широко за идентифициране на ракови клетки. Той разделя раковите и нераковите набори от данни в различни групи.В търсачките:Търсачките също работят върху техниката на групиране. Резултатът от търсенето се появява въз основа на най-близкия обект до заявката за търсене. Прави го чрез групиране на подобни обекти с данни в една група, която е далеч от другите различни обекти. Точният резултат от заявка зависи от качеството на използвания алгоритъм за групиране.Сегментиране на клиентите:Използва се в пазарни проучвания за сегментиране на клиентите въз основа на техния избор и предпочитания.В биологията:Използва се в потока по биология за класифициране на различни видове растения и животни с помощта на техниката за разпознаване на изображения.При земеползване:Техниката за групиране се използва за идентифициране на района на подобно земеползване в базата данни на ГИС. Това може да бъде много полезно, за да разберете за каква цел трябва да се използва конкретната земя, което означава за каква цел е по-подходяща.