Имплементација К-значи кластера на скупу података о криминалу

Примена Кмеанс кластера на америчком скупу података о криминалу

На овом блогу ћете разумети шта је К-значи кластер и како се то може применити на криминалне податке прикупљене у разним америчким државама. Подаци садрже злочине почињене попут напада, убиства и силовања у хапшењима на 100.000 становника у свакој од 50 америчких држава 1973. године. Уз анализу података сазнаћете и о:

    • Проналажење оптималног броја кластера.
    • Минимизирање изобличења
    • Стварање и анализа кривине лакта.
  • Разумевање механизма алгоритма к-значи.

Почнимо са анализом. Подаци изгледају као:

збројите цифре у целобројној јави
dataset

Кликните на слику да бисте преузели овај скуп података

Треба вам овај скуп података? Кликните на горњу слику да бисте је преузели.

Прво припремимо податке за анализу. Да бисмо то урадили, требали бисмо уклонити све вредности НА које би могле бити присутне у подацима и претворити их у матрицу.

> злочин0 злочин стр (злочин) број [1:50, 1: 4] 13,2 10 8,1 8,8 9 7,9 3,3 5,9 15,4 17,4 ... - аттр (*, 'димнамес') = Листа 2 .. $: цхр [1 : 50] 'Алабама' 'Аљаска' 'Аризона' 'Аркансас' ... .. $: цхр [1: 4] 'Убиство' 'Напад' 'УрбанПоп' 'Силовање'

Узмимо број кластера као 5. Функција Кмеанс () узима улазне податке и број кластера у којима подаци треба да се групишу. Синтакса је: кмеанс (подаци, к) где је к број центара кластера.

> цл класа (цл) [1] 'кмеанс'

Анализа кластера:

> стр (цл) Списак од 9 $ кластера: Именовани инт [1:50] 5 3 3 5 3 5 4 5 3 5 ... ..- аттр (*, 'имена') = цхр [1:50] ' Алабама '' Аласка '' Аризона '' Аркансас '... $ центри: број [1: 5, 1: 4] 2,95 6,11 12,14 5,59 11,3 ... ..- аттр (*,' димнамес ') = Листа од 2 .. .. $: цхр [1: 5] '1' '2' '3' '4' ... .. .. $: цхр [1: 4] 'Убиство' 'Напад' 'УрбанПоп' 'Силовање '$ тотсс: нум 355808 $ Витхинсс: нум [1: 5] 4548 2286 16272 1480 3653 $ тот.витхинсс: нум 28240 $ бетвеенсс: нум 327568 $ сизе: инт [1: 5] 10 9 14 10 7 $ итер: инт 3 $ ифаулт: инт 0 - аттр (*, 'класа') = цхр 'кмеанс'

Функција стр () даје структуру кмеанс-а која укључује разне параметре попут Витхинсс, Бетвеенсс итд., Анализирајући које можете сазнати перформансе кмеанс-а.

Бетвеенсс: Између збира квадрата, тј. сличности унутар групе

унутар: Унутар зброја квадрата, тј. сличност интеркластера

тотвитхинсс: Збир свих унутрашњости свих кластера, тј. Укупна сличност унутар кластера

Добар кластер имаће нижу вредност унутар и већу вредност између, што зависи од броја кластера „к“ који су изабрани у почетку. Погледајмо како можемо пронаћи оптималну вредност „к“.

Проналажење оптималне вредности „к“

Оптимална вредност „к“ је вредност која нам даје конвергентни скуп кластера са минималним изобличењима. Што је веће изобличење, горе ће бити формирани кластери.

Дисторзија:

Изобличење се може израчунати у смислу „унутар” из сваког кластера. Што је мања вредност „унутрашњости“ одређеног кластера, то ће бити гушће насељено, а тиме и минимална изобличења.

кмеанс.всс.к<- function(crime, k){ km = kmeans(crime, k) return (km$tot.withinss) }

Ова функција узима податке и вредност к и за њих враћа „км $ тотвитхинсс“. „Км $ тотвитхинсс“ је укупан збир квадрата унутар кластера, што укључује и унутар 5 свих створених кластера, тј.сума (у року од). Што је већа вредност „км $ тотвитхинсс“, веће ће бити изобличење.

За к = 5, унутрашњост је 24417,02

> кмеанс.всс.к (злочин, 5) [1] 24417.02

Повећајмо вредност к са 5 на 10 и посматрајмо разлику.

> кмеанс.всс.к (злочин, 10) [1] 11083.04

Може се видети да се повећањем вредности К смањује изобличење.

Можемо извадити различите вредности „км $ тотвитхинсс“ и уцртати их у графикон да бисмо пронашли везу између изобличења и вредности к. Следећа функција то ради за нас:

> кмеанс.дис макк = 10> дис = кмеанс.дис (злочин, макк)> заплет (1: макк, дис, типе = 'б', клаб = 'Број кластера', + илаб = 'Изобличење', + цол = 'плава')

Та Да !!! Тако имамо са собом чувену криву лакта.

Крива лакта:

Ово је графикон између „к“, броја кластера и „тотвитхинсс“ (или изобличења) за сваку вредност к. Можете видети када је број кластера мањи, долази до постепеног смањења изобличења, али како настављамо да повећавамо вредност к, стопа смањења вредности изобличења постаје константна.

Ова вредност к преко које стопа изобличења постаје константна је оптимална вредност. Овде је к = 4.

Применимо неку анимацију да бисмо разумели како нам је Р дао груписане резултате.

> библиотека (анимација)> кл<- kmeans.ani(crime, 4)

Кмеанс алгоритам кластерисања:

како се штампа низ пхп

Хајде да разумемо алгоритам на којем к-значи кластерисање функционише:

Корак 1. Ако је к = 4, бирамо 4 случајне тачке и претпостављамо да су то центри кластера за стварање кластера.

Корак 2. Узимамо случајну тачку података из свемира и сазнајемо њену удаљеност од сва 4 центра кластера. Ако је тачка података најближа зеленом центру кластера, она је обојена зелено и слично су све тачке категорисане међу 4 кластера.

Корак # 3. Сада израчунавамо тежиште свих зелених тачака и додељујемо јој тачку као центар кластера за ту групу.

Слично томе, израчунавамо центроиде за све 4 обојене (гроздасте) тачке и додељујемо нове центроиде као центре кластера.

Корак # 4. Корак-2 и корак-3 изводе се итеративно, осим ако се центри кластера не конвергирају у некој тачки и више се не померају.


Тако долазимо до концентрисаних центара кластера.

Види се да су подаци подељени у 4 кластера. Кластер центри су:

> цл $ центри Убиство Напад УрбанПоп Силовање Тексас 4.740741 104.8519 62.96296 16.10 Луизијана 10.907143 219.9286 71.71429 25.95 Јужна Каролина 13.375000 284.5000 46.25000 25.05 Нови Мексико 11.040000 298.0000 77.60000 32.68

Кластер-4 са „Новим Мексиком“ као кластер центром има огромну стопу криминала са највише становништва.

Кластер-3 и Кластер-2 прате.

Свакој држави је додељена група, у зависности од тога сада можемо предвидети рангирање злочина. Излаз изгледа као:

Имате питање за нас? Молимо вас да то споменете у одељку за коментаре и јавићемо вам се.

Повезани постови: