Кіріспе
Объектілер жиынтығын ұқсастық бойынша топтастыру. Кластерлік талдау немесе кластерлеу – бір топтағы (кластер деп аталатын) объектілердің, басқа топтардағыларға қарағанда бір-біріне (талдаушы анықтаған белгілі бір мағынада) көбірек ұқсас болуын қамтамасыз ететін объектілер жиынтығын топтастыру міндеті. Бұл зерттеу деректерін талдаудың маңызды міндеті және статистикалық деректерді талдаудың кең таралған әдісі, ол үлгілерді тану, кескіндерді талдау, ақпаратты іздеу, биоинформатика, деректерді сығу, компьютерлік графика және машиналық оқыту сияқты көптеген салаларда қолданылады. Кластерлік талдау – нақты бір алгоритм емес, алгоритмдер мен міндеттердің жиынтығын білдіреді. Ол кластерді құрайтын нәрсе және оны тиімді қалай табуға болатыны туралы әртүрлі түсініктерге ие әртүрлі алгоритмдер арқылы жүзеге асырылуы мүмкін. Кластерлердің танымал түсініктеріне кластер мүшелері арасындағы аз қашықтыққа ие топтар, деректер кеңістігінің тығыз аймақтары, интервалдар немесе нақты статистикалық үлестірімдер жатады. Сондықтан кластерлеуді көп мақсатты оптимизациялау мәселесі ретінде қарастыруға болады. Тиісті кластерлеу алгоритмі мен параметрлерді (пайдаланылатын қашықтық функциясы, тығыздық шегі немесе күтілетін кластерлер саны сияқты параметрлерді қоса) таңдау нақты деректер жиынтығына және нәтижелерді қолдану мақсатына байланысты. Кластерлік талдау автоматты міндет емес, білімді ашудың немесе сынақтар мен қателерді қамтитын, көп мақсатты оптимизациялаудың итеративтік процесі. Нәтижелер қажетті қасиеттерге қол жеткізгенше деректерді алдын ала өңдеу және модель параметрлерін өзгерту қажет болуы мүмкін. Кластерлеу терминімен қатар, ұқсас мағыналары бар бірнеше терминдер бар, оларға автоматты жіктеу, сандық таксономия, ботриология (βότρυς сөзінен), типологиялық талдау және қауымдастықтарды анықтау кіреді. Аз ғана айырмашылықтар көбінесе нәтижелерді пайдалануда болады: деректерді өндіруде алынған топтар қызығушылық тудырса, автоматты жіктеуде дискриминациялық күш қызығушылық тудырады. Кластерлік талдау 1932 жылы антропологияда Драйвер және Кробер, ал психологияда 1938 жылы Джозеф Зубин және 1939 жылы Роберт Трайон енгізді, содан кейін 1943 жылдан бастап Каттл оны тұлғалық психологиядағы қасиеттер теориясының жіктелуі үшін кеңінен қолданды.
Cluster analysis or clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some specific sense defined by the analyst) to each other than to those in other groups (clusters). It is a main task of exploratory data analysis, and a common technique for statistical data analysis, used in many fields, including pattern recognition, image analysis, information retrieval, bioinformatics, data compression, computer graphics and machine learning. Cluster analysis refers to a family of algorithms and tasks rather than one specific algorithm. It can be achieved by various algorithms that differ significantly in their understanding of what constitutes a cluster and how to efficiently find them. Popular notions of clusters include groups with small distances between cluster members, dense areas of the data space, intervals or particular statistical distributions. Clustering can therefore be formulated as a multi objective optimization problem. The appropriate clustering algorithm and parameter settings (including parameters such as the distance function to use, a density threshold or the number of expected clusters) depend on the individual data set and intended use of the results. Cluster analysis as such is not an automatic task, but an iterative process of knowledge discovery or interactive multi objective optimization that involves trial and failure. It is often necessary to modify data preprocessing and model parameters until the result achieves the desired properties. Besides the term clustering, there is a number of terms with similar meanings, including automatic classification, numerical taxonomy, botryology (from βότρυς ), typological analysis, and community detection. The subtle differences are often in the use of the results: while in data mining, the resulting groups are the matter of interest, in automatic classification the resulting discriminative power is of interest. Cluster analysis was originated in anthropology by Driver and Kroeber in 1932 and introduced to psychology by Joseph Zubin in 1938 and Robert Tryon in 1939 and famously used by Cattell beginning in 1943 for trait theory classification in personality psychology.
Алгоритмдер
Жоғарыда көрсетілгендей, кластерлеу алгоритмдерін олардың кластерлік моделіне сәйкес жіктеуге болады. Келесі шолуда кластерлеу алгоритмдерінің ең маңызды мысалдары ғана келтіріледі, себебі жарияланған 100-ден астам кластерлеу алгоритмдері бар. Олардың бәрі де өз кластерлері үшін модельдер ұсынбайды, сондықтан оларды оңай жіктеу мүмкін емес. Википедияда түсіндірілген алгоритмдердің тізімін статистикалық алгоритмдер бетінде табуға болады. Объективті түрде "дұрыс" кластерлеу алгоритмі жоқ, бірақ айтылғандай, "кластерлеу - көзқарас мәселесі".
Байланысқа негізделген кластерлеу (иерархиялық кластерлеу)
Байланысқа негізделген кластерлеу, сонымен қатар иерархиялық кластерлеу деп те аталады, объектілердің алыстағы объектілерге қарағанда жақын орналасқан объектілермен көбірек байланысты болуының негізгі идеясына негізделген. Бұл алгоритмдер «объектілерді» олардың арасындағы қашықтыққа сәйкес «кластерлер» құру үшін біріктіреді. Кластердің сипаттамасы, көбінесе, кластер бөліктерін байланыстыруға қажетті ең үлкен қашықтықпен беріледі. Әртүрлі қашықтықтарда әртүрлі кластерлер пайда болады, оларды дендрограмма арқылы көрсетуге болады, соның арқасында «иерархиялық кластерлеу» деген атау келген: бұл алгоритмдер деректер жиынтығының бір ғана бөлігін емес, керісінше, белгілі бір қашықтықта бір-бірімен бірігіп тұратын кластерлердің кең иерархиясын ұсынады. Дендрограммадағы y ось кластерлердің бірігу қашықтығын көрсетеді, ал объектілер x ось бойымен орналастырылады, кластерлер бірігіп кетпеуі үшін. Байланысқа негізделген кластерлеу – қашықтықты есептеу тәсілімен ерекшеленетін әдістердің толық отбасы. Қашықтық функциясын таңдаудан басқа, пайдаланушы байланыс критерийін де анықтауы керек (кластер бірнеше объектіден тұратындықтан, қашықтықты есептеу үшін бірнеше нұсқа бар). Көбінесе қолданылатындары: жай байланыс кластерлеуі (объектілер арасындағы ең аз қашықтық), толық байланыс кластерлеуі (объектілер арасындағы ең көп қашықтық) және UPGMA немесе WPGMA («Салмағы жоқ немесе салмақты жұптар тобының арифметикалық орташасымен есептеу әдісі», сондай-ақ орташа байланыс кластерлеуі). Сонымен қатар, иерархиялық кластерлеу агломеративті (жеке элементтерден басталып, оларды кластерлерге біріктіру) немесе дивизивті (толық деректер жиынтығынан басталып, оны бөліктерге бөлу) болуы мүмкін. Бұл әдістер деректер жиынтығының бірегей бөлігін жасамайды, бірақ иерархияны құрады, онда пайдаланушыға қолайлы кластерлерді таңдау қажет. Бұл әдістер сыртқы мәндерге (outliers) өте сезімтал, олар қосымша кластерлер түрінде көрінеді немесе тіпті басқа кластерлердің бірігуіне себеп болады («тізбектелу құбылысы» деп аталады, әсіресе жай байланыс кластерлеуінде). Жалпы жағдайда, күрделілігі агломеративті кластерлеу үшін O(n^3) және дивизивті кластерлеу үшін O(2^n) болады, бұл оларды үлкен деректер жиынтықтары үшін тым баяу етеді. Кейбір ерекше жағдайларда тиімді әдістер белгілі (көпшілігі O(n^2) күрделілігімен): SLINK жай байланыс үшін және CLINK толық байланыс кластерлеуі үшін.
Орталыққа негізделген кластерлеу
Центроидтық кластерлеуде әр кластер орталық вектормен бейнеленеді, ол деректер жиынтығының мүшесі болуы міндетті емес. Егер кластерлер саны k ретінде белгіленсе, k-орталық кластерлеу оптималдастыру мәселесі ретінде былай анықталады: k кластер орталықтарын табыңыз және объектілерді ең жақын кластер орталығына тағайындаңыз, осылайша кластерден квадрат қашықтықтар ең төменгі деңгейге дейін азайтылады. Өзінің оптимизациялау мәселесі NP-қиын екені белгілі, сондықтан әдетте тек жуық шешімдер ізделеді. Әсіресе танымал жуық әдіс – Ллойд алгоритмі, ол көбінесе «k-орталық алгоритмі» деп аталады (дегенмен, бұл атауды басқа алгоритм енгізген). Алайда, ол тек жергілікті оптимумды табады және әдетте әртүрлі кездейсоқ бастапқы мәндермен бірнеше рет іске қосылады. K-орталықтың түрлері көбінесе бірнеше іске қосылулардың арасынан ең жақсысын таңдау, сондай-ақ центроидтарды деректер жиынтығының мүшелерімен (k-медиоидтар) шектеу, медианаларды таңдау (k-медиандар кластерлеуі), бастапқы орталықтарды аздап кездейсоқ таңдау (k-орталық++) немесе бұлыңғыр кластерлік тағайындауға рұқсат ету (бұлыңғыр c-орталық) сияқты оптимизацияларды қамтиды. Көптеген k-орталық типтегі алгоритмдер кластерлер санын – k – алдын ала көрсетуді қажет етеді, бұл осы алгоритмдердің ең үлкен кемшіліктерінің бірі саналады. Сонымен қатар, алгоритмдер шамамен бірдей мөлшердегі кластерлерді жақсы көреді, себебі олар әрқашан объектіні ең жақын центроидқа тағайындайды. Бұл көбінесе кластерлердің шекараларын дұрыс емес кесуге алып келеді (бұл таңқаларлық емес, өйткені алгоритм кластер орталықтарын, емес кластер шекараларын оңтайландырады). K-орталықтың бірнеше қызықты теориялық қасиеттері бар. Біріншіден, ол деректер кеңістігін Вороной диаграммасы деп аталатын құрылымға бөледі. Екіншіден, ол тұжырымдамалық тұрғыдан жақын көршілер жіктелуіне жақын және осы себепті машиналық оқытуда танымал. Үшіншіден, оны модельге негізделген кластерлеудің вариациясы ретінде қарастыруға болады, ал Ллойд алгоритмін – осы модель үшін күтілімді максимизациялау алгоритмінің вариациясы ретінде қарастыруға болады. K-орталық және k-медиоидтар сияқты центроидтық кластерлеу мәселелері операциялық зерттеулер және есептеу геометриясы қауымдастықтарындағы мүмкіндіксіз, метрикалық нысанды орналастыру мәселесінің ерекше жағдайлары болып табылады. Негізгі нысанды орналастыру мәселесінде (оның көптеген нұсқалары бар, олар күрделірек жағдайларды модельдейді) тапсырма – тұтынушылардың берілген жиынтығын оңтайлы қызмет ету үшін ең жақсы қойма орналасқан жерін табу. «Қоймаларды» кластер орталықтары ретінде, ал «тұтынушылар орналасқан жерін» кластерленетін деректер ретінде қарастыруға болады. Бұл қазіргі уақытта қарастырылып отырған центроидтық кластерлеу мәселесіне нысанды орналастыру әдебиетінен жақсы дамыған алгоритмдік шешімдерді қолдануға мүмкіндік береді.
Модельге негізделген кластерлеу
Кластерлеудің статистикалық әдістермен ең тығыз байланысы бар түрі – модельге негізделген кластерлеу, ол үлестіру модельдеріне сүйенеді. Бұл тәсіл деректерді ықтималдық үлестірілімдерінің қоспасынан пайда болатын модельдер ретінде қарастырады. Оның артықшылықтары – кластерлердің саны қанша, қандай кластерлеу әдісі немесе моделі қолданылуы керек, және аномалияларды қалай анықтау және оларды шешу керек сияқты сұрақтарға нақты статистикалық жауап беру мүмкіндігі. Бұл әдістердің теориялық негізі өте мықты болғанымен, модельдің күрделілігіне шектеулер қойылмаса, олар артық үйлесімге (overfitting) ұшырауы мүмкін. Күрделі модель әдетте деректерді жақсырақ түсіндіре алады, бұл тиісті модельдің күрделілігін таңдауды қиын жасайды. Стандартты модельге негізделген кластерлеу әдістеріне ковариациялық матрицалардың өзіндік мәндерге жіктелуіне (eigenvalue decomposition) негізделген, деректерге артық үйлесім мен сәйкестік арасында тепе-теңдік қамтамасыз ететін, көбірек қарапайым модельдер кіреді. Белгілі бір әдіс – Гаусс қоспасы модельдері (күту-максимизациялау алгоритмін қолдана отырып). Мұнда деректер жиынтығы әдетте, артық үйлесімге жол бермеу үшін, белгілі бір санындағы Гаусс үлестірілімдерімен модельделеді, олар кездейсоқ бастамаланады және деректер жиынтығына жақсырақ сәйкес келу үшін олардың параметрлері итеративті түрде оңтайландырылады. Бұл жергілікті оптимумға жетеді, сондықтан бірнеше рет іске қосу әртүрлі нәтижелер бере алады. Қатты кластерлеуді алу үшін объектілер көбінесе оларға ең жақын Гаусс үлестіріліміне тағайындалады; ал жұмсақ кластерлеу үшін мұндай қадам қажет емес. Үлестіруге негізделген кластерлеу кластерлер үшін атрибуттар арасындағы корреляцияны және тәуелділікті қамти алатын күрделі модельдерді құрайды. Дегенмен, бұл алгоритмдер пайдаланушыға қосымша жүктеме саладі: көптеген нақты деректер жиынтығы үшін қысқаша және нақты анықталған математикалық модель болмауы мүмкін (мысалы, Гаусс үлестірілімдерін қабылдау деректерге қатысты өте күшті болжам).
Соңғы өзгерістер
Соңғы жылдары қолданыстағы алгоритмдердің өнімділігін жақсартуға көп күш жұмсалды. Олардың ішінде CLARANS және BIRCH алгоритмдері бар. Үлкен дерек жиынтықтарын (немесе «үлкен деректер») өңдеу қажеттілігі артқан сайын, жасалған кластерлердің семантикалық мағынасын өнімділік үшін құрбан етуге дайындық танытуда. Бұл үлкен дерек жиынтықтарын тиімді өңдеуге мүмкіндік беретін, бірақ нәтижесіндегі «кластерлер» дерек жиынтығының алдын ала жуық бөлінуін қамтамасыз ететін және кейіннен k-орталықтар сияқты баяу әдістермен бөліктерді талдауға арналған кластерлеудің алдын ала әдістерін әзірлеуге әкелді. Жоғары өлшемді деректер үшін көптеген қолданыстағы әдістер «өлшемдік қарғыс» салдарынан сәтсіздікке ұшырайды, бұл жоғары өлшемді кеңістікте нақты қашықтық функцияларын қолдануды қиындатады. Бұл жоғары өлшемді деректерге арналған жаңа кластерлеу алгоритмдерін жасауға себеп болды, олар субкеңістік кластерлеуге (мұнда тек кейбір атрибуттар қолданылады және кластерлік модельдер кластер үшін маңызды атрибуттарды қамтиды) және корреляциялық кластерлеуге бағытталған. Корреляциялық кластерлеу атрибуттарының өзара байланысын көрсете отырып модельдеуге болатын кездейсоқ бұрылған («корреляциялық») субкеңістік кластерлерін іздейді. Мұндай кластерлеу алгоритмдерінің мысалдары CLIQUE және SUBCLU болып табылады. Тығыздыққа негізделген кластерлеу әдістерінің (әсіресе DBSCAN/OPTICS алгоритмдер отбасы) идеялары субкеңістік кластерлеуге (HiSC, иерархиялық субкеңістік кластерлеу және DiSH) және корреляциялық кластерлеуге (HiCO, иерархиялық корреляциялық кластерлеу, «корреляциялық байланыс» қолданатын 4C және иерархиялық тығыздыққа негізделген корреляциялық кластерлерді зерттейтін ERiC) бейімделді. Өзара ақпаратқа негізделген бірнеше кластерлеу жүйелері ұсынылды. Олардың бірі – Марина Майланың ақпараттық метрикасының түрі, ал екіншісі – иерархиялық кластерлеуді қамтамасыз етеді. Генетикалық алгоритмдерді қолдану арқылы, өзара ақпаратты қоса алғанда, әртүрлі сәйкес функциялардың кең ауқымын оңтайландыруға болады. Сонымен қатар, компьютерлік ғылым мен статистикалық физикадағы жаңа жетістік – сенімнің таралуы, жаңа кластерлеу алгоритмдерін жасауға мүмкіндік берді.