From 4bec95e80febdff94db647512b070175da0ee115 Mon Sep 17 00:00:00 2001 From: enuementtt Date: Mon, 11 Dec 2023 12:57:15 +0400 Subject: [PATCH] romanova_adelina_lab_4 is ready --- romanova_adelina_lab_4/1.png | Bin 0 -> 20844 bytes romanova_adelina_lab_4/2.png | Bin 0 -> 21639 bytes romanova_adelina_lab_4/3.png | Bin 0 -> 61334 bytes romanova_adelina_lab_4/README.md | 76 ++++++++++++++ romanova_adelina_lab_4/main.py | 166 +++++++++++++++++++++++++++++++ 5 files changed, 242 insertions(+) create mode 100644 romanova_adelina_lab_4/1.png create mode 100644 romanova_adelina_lab_4/2.png create mode 100644 romanova_adelina_lab_4/3.png create mode 100644 romanova_adelina_lab_4/README.md create mode 100644 romanova_adelina_lab_4/main.py diff --git a/romanova_adelina_lab_4/1.png b/romanova_adelina_lab_4/1.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4a9ab3fac4cfb85802c18b53e42a54f9da18d9 GIT binary patch literal 20844 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 z z*1P|TeVWW_{y-f%VTth0cnOUlNX)NMLIjL^v=a3$SK{f8b3^bv*x2kX<=FCdP*~%)cn4AFcds)bpYzB#-LGBX0?`%buLbDGp?{q9{|xY@%WD0vvVIhF z*}QPX6}?5G+w|JC**LH-(hN@9d4lx+vhNDb4Yn1P96Dv$MGJ}@%sKS!-*J=W&P9lz zRp2mK9H!Pd^eqyut2{Qgdtz;|X2twUl%aTPtz<#mv1?Q)OasBN%BqHPp#eu4oCgl zF4=s~0q12kH#42TOTVY~t+@6b?7a5OEZB)bOLk87SP70YWj~<@E~#z2H^2HOKXGv* z~dj>effL{X<}<$Xvl z(KnX-JeubP`L)Bil({0!4q3I3No5r>jU6CN%fNlBk^8SaJU#6G8 znor$@q!?w`!N;QC-?7JLBQ=Sj5P-}%5<`uCHJAL~x#n0Vq-8kv4RidR$+lGV$-$}g z@VcbBRPr0g{Cj4bMT}qj>P#ow79>-6J{78-a1=5f_Mh6$K;0Tq@50fZjSLOP`C?dW zxSmPKqdw5;bxlT8YZN~(AH#cV@f!T?8~&cDACtj91A%`Kpl|Nm=#5F|Kl)lYy`j2J zJN?#iU0U>lW#Z;uhO$>Ea3f+d&o=0I5y7$UyS8666$ZO`6u2k!MmxMwQf)sMNDU$1 z_*pHmIr?>@uk#iyuqtcO+m|=CTOLXr1?FJ~;8&TzV@m>(t*l1!ILs-2`uvV06vK9o z9thd3k$(d`&^XXypaS65Mfi0mcrkw1oCU-bom79QBc&MqqEk<$(W@$BQW; z#pw}z)9)^8gZlfN^k&)s9~|0QR2B4cJRQE7Hh_v3ATtG4(ze2E;cqAP@{LD+(?Mk2 zII>N4OAo&vb73%{cjS+We22C|rU}e;qq741uyHPD2k*~ZIG!;97dKcftKZC%l)j`APlhDX_W{w64#R&NbZQWiL=}tMp@2IM=2u(MwZq#p zokwwKpf=y(Il*HeP&V%q=;QnE%zcL3FT(zc00ctFMPisU=FNYQ0BO$m;b|ELBHcK5 zMG9d0sq8@dC~mH_i6=QuSrG(D$M*t2;`xOjNRM+J1eWc{UzKb=>gped`~UdtepQ=! zB@fy&0K{!p!QXG%7<{jJ*(p-ZQo5USYXK2!&fJfRc>Gx!<_+tC52ZG{HxFBH8 zBwByd7;*3F8<)(G8} z+5!PVjw&Ukr|u^|K2kUjYo66*zdWi^Euf90;cFLfI`iUcKqVxI^QEM7PlGLyAYdO_ znE1Faa#Na%sqY(#0DfHSTEq^d`Aml;c|?#C%L6o0KSC{|>+)9)qUzB&`JS_XgoBoA zAvj#R{5u*SeU`imW=-m1d}+D)4WPdX2Rde@X)OcEc6A_^8Yk|pCY|fWeT}cQG*Cl` zcGxz3%%Q&C6!;Vro}?*%c(mZnBwQ>9I;HA{gYqcMZZ^IZyDM%f&YUiemFm_2$_2A9 zcj?kG5X8>BWCIT9$M(+ndhd^;INCS>$ujhuo+eqhgEUGMV3XNR>tdMJSuX=@4*}`+ z?cZ^1>Cm~IeZiD&apwH&QCFDp7?KxHwibnR3+LAI^Gp5o5dfO3G3IPdUUW3l$Kb+g5@9^+b5E44g=C8U6KT=Nyo^&i~^$y`uo`w|R^;{#Y|LUx;!-5!v9=?Ho>Vr&Ats~w)ZlAT4#E zJmKKugrzRh@LlXVG6Ag%x5N^&D-$Hwvq;#3vcA*sXpEpW4q7jQ>Ofy)BkjLtplPNz zc7S@Atx)>^RjjF%36Go-&Y&&j;wAZ!6_lkd6e{<$rPjPjx$8W=HDD2Ew%Y)Un6@x_naZ;$guo`p`aF5NZz5-rQT z)m(bxOu`(P>DLYEe1~sv;IF`V(%ehk2b$2oj&zEh;EGydowG%ry}Ca>TzRe8PF8qX zXm>I=AaQ=FZ?eHa@+r{n;4Z5Ad{f?&F4}>AFcS>G`?cu$UkFQAg_T;S^D|>rJNGq* z1#M=#%vEMQx!+Q~y@_Pj2_rVp6mdJkTNQ5AZAVY07NV+O|LHH^7%&`Ac1u9>X>BnJ zp(=TB!~+yR{UrQ!Z$VVepMU$!4YU^_gSx;RWZ6+KJ_*+=e3S@s>?4gKRHRYBOsnwZ z=CA_vpz~k+s##IpS9%nbC9a9Q`Bs(9;fFzz#K%2T?Sh#JfBvgvX1XpBI=v!%bvlFGd#X!^Xw zFG^}yl+LeC=O?oIO80=8QX&cl5Jxp0dY}`Np}fIgmt{Nj+er!nG`wINQqC7^*Z0i>m;2!v01L1Dik#3r@gkBX6jw zg-rNq$^htPQHTZo6?TK(32r$Is6j_u7=mXd3-#oAD|5nY6jrJpp1OxK`;i;_sv~;? z4x7IWSfm~u1S~=#nVln@9F+R`NDbFi@-}jq*NH=Irx9X;yo>@4{vR@Hfoi@vla2e1 zhcZbT(10PA);k~Jch~mk%x?UF^U%R}+K7xwte`^$ZcH(S5aWWcP?R)sLrYs;G-tvG z_rgnTC(#77fi9cm5fdwLw5lvS&R?0XXLlumtokT zLXtDvsw0@t8GK!=B5K5%3hcvGq}mZYHy_D?gR0{K#YyWxhtEyuLsAJ z<0w_I-oq5BLu^ssJUJ`Je)zGQRZ@B#?A4h?IoirY zXZavhvmUiK+$uzjGg{Xjpcmr5t<9P!v8F_pw;ORviON!I_H9}(U36WkZ17s1WWyB;Kt`kW=Y`2z!&P!&u0>6NX~&e1JkVDr-8pIsK3z>84q(RwXZ z>B#|y@rE>#97IJI81GSK#3fxvZeXseS0YO0WV4g z&i(_JfoA|%e)xXBJ&^h}XkFunW~?ZW19c$@jjBE8FV$E}T7%JkXx19mU29Or&+4cU zS`XPnCD*=Tv>?onE_YC0w`;rbjJ!5QfVvf~aKD$fsZ4PQH(xlPddv|`V}uHi-rI3J~Q`Sp&D~s!0?eer71r=rHLn3V7TrRf^Xg+W5p8D2- z#M0HJ8&r*oaJSrT0i~z{F#lN`_hL{D@Y3ZUJ>9XnC%)Yvb9Wa#g0Dm=1B^u_ZM*2%aMj#rF zgR6&x_iD_2@d`FIwMcm1WKNTO$ChQqNaI? zTmF=hn(u)si2q92`M+GB{%?G6o&Yo?`G*X`w{6>xb8{BOtxdy%f|*^go&#@hh1(QD0p0txum}&b&_qxO z9SA~(f+QX$9fTMX5>}kz5~xhth4x~K>Y+8`t|9}a$jIE{wyyt|&UU&9to*f;T=%44Nl5NdTCGk1~)|agrK16Yv3Xowg8f)SHqCGpk+*Y4%CeaY1D88 zoPf0Af{q+enf-CF&Hi@re7a{0a~{>a3F>}z2jVRR=yL-1fxZ4p&j)`y2Z#l?)j?5@ z7boS$HMaw$Ktl-B;95v+{*D^O3b|f9$kGhMHCeP?P^886)8BJtyg{K>1nzSxQD-9n zy1kiwGnhM!&`(yn81$wn7V8gUdCFFayU#XtTKEh;61$esk-qd|`=NY{Aj9eXgj*NYy?+h0MrGFUmwE>{8m zyAX^P9O+G0R3jMo=%0Y|0%L8@-e567NWz)UdkvAA$2D1vS-B)toNHd*_j9N23kYDi zt6@FXgm&xed!YlzG6;T9%MpqemsiLmuRDkM_Hr6$4MhlAafNSFK*Xt*G1Xj7P!iI+ zLf{gf<3C)D@P?Wjr6l=H0R5QWdxTbC83$E&GJT%5wO3RkOWOqms4rr1Fq;&b;adh; zh2*ry!x_+$7y}(yhB~!*Ynzhg`@)s`P}aO?bm39tlhcMrwn(~3+TKBpGH1&Phkkeu z^Tn#xX*2q@omZUApyo`JMH6Vhmt?*1)VrStlp%iwAI$3aAX+dcNW zf^)25EiXZGGzzI!6c3t6Z|Znym!eSH8_--OL0b|v{;S}g|4CPme}gqg>HNRfP()rP ld*N#~`>mg)Hl^MgJ=dvI4{^<070?~GI=VXKZ`||4{{a&eY!d(g literal 0 HcmV?d00001 diff --git a/romanova_adelina_lab_4/2.png b/romanova_adelina_lab_4/2.png new file mode 100644 index 0000000000000000000000000000000000000000..9080a548bb3adfc0669abf5f1d93308700804e6b GIT binary patch literal 21639 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 literal 0 HcmV?d00001 diff --git a/romanova_adelina_lab_4/3.png b/romanova_adelina_lab_4/3.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec0dbd00854250a55ed7f98acd093ff818c232d GIT binary patch literal 61334 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%0Aa( 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 literal 0 HcmV?d00001 diff --git a/romanova_adelina_lab_4/README.md b/romanova_adelina_lab_4/README.md new file mode 100644 index 0000000..52dade8 --- /dev/null +++ b/romanova_adelina_lab_4/README.md @@ -0,0 +1,76 @@ +# Лабораторная работа №4. Вариант 21 + +## Тема: +Кластеризация + +## Модель: + +KMeans + +## Как запустить программу: +Установить *python, numpy, matplotlib, sklearn* +``` +python main.py +``` + +## Какие технологии использовались: +Язык программирования Python, библиотеки numpy, matplotlib, sklearn + +Среда разработки VSCode + +# Что делает лабораторная работа: + +Задача кластеризации заключается в разделении множества данных на группы, называемые кластерами, таким образом, чтобы объекты внутри одного кластера были более похожи друг на друга, чем на объекты из других кластеров. Это позволяет выявлять скрытые структуры данных, облегчая последующий анализ и принятие решений. + +В данной работе была рассмотрена модель ```KMeans```. + +### Описание: +```KMeans``` разбивает данные на K кластеров, где K - заранее заданное число. Он минимизирует сумму квадратов расстояний между точками данных и центрами своих соответствующих кластеров. Этот алгоритм прост в реализации и хорошо работает для сферических кластеров. + +Кластеризация данных - это мощный инструмент для выделения закономерностей в больших объемах информации, и выбор конкретного алгоритма зависит от характера данных и поставленных задач. В данной работе мы рассмотрим эти алгоритмы более подробно, выявим их преимущества и недостатки, и проиллюстрируем их применение на практике. + +Процесс получения кластеров происходит по следующему алгоритму: + +  1.  Получаемый исходные данные + +  2.  Приводим их всех к численному формату + +  3.  Обучение на подготовленных данных + +``` +def clustering_df(X, n, m, output_hist, title='clusters_by'): + + X_columns = X.columns + scaler = StandardScaler() + scaler.fit(X) + X = pd.DataFrame(scaler.transform(X), columns = X_columns) + cl = generate_clustering_algorithms(X, n, m) + cl.fit(X) + if hasattr(cl, 'labels_'): + labels = cl.labels_.astype(np.uint8) + else: + labels = cl.predict(X) + clusters=pd.concat([X, pd.DataFrame({'cluster':labels})], axis=1) +``` +Для кластеризации были выбраны все столбцы, часть кода представлена ниже: + +``` +print(data.select_dtypes(include='object').columns.tolist()) + for column in data.select_dtypes(include='object').columns.tolist(): + data[column] = pd.factorize(data[column])[0] +``` +Программа генерирует диаграммы для каждого кластера относительно всех признаков. Для меня наиболее интересным показались признаки возраста и наличия заболевания человека. + +![](1.png "") + +![](2.png "") + +Изучая графики выше, мы можем сделать вывод, что люди из кластера №3 почти все болеют и большинство имеет 2,3 и 4 стадии. А возраст этих людей от 45 до 70 лет. + +Ниже приложен результат обучения алгоритма кластеризации: + +![](3.png "") + +## Вывод + +Я думаю, что алгоритм ```KMeans```справился достаточно хорошо, т.к. в нем каждый кластер получился обособленным, то есть более отличным от других кластеров. Следовательно, это может означать, что именно этот алгоритм смог понять ключевые признаки для каждого кластера. diff --git a/romanova_adelina_lab_4/main.py b/romanova_adelina_lab_4/main.py new file mode 100644 index 0000000..1723837 --- /dev/null +++ b/romanova_adelina_lab_4/main.py @@ -0,0 +1,166 @@ +import os +import numpy as np +import pandas as pd + +import matplotlib.pyplot as plt +import seaborn as sns + +from sklearn import cluster, mixture +from sklearn.decomposition import PCA +from sklearn.cluster import KMeans, DBSCAN, OPTICS +from sklearn.preprocessing import StandardScaler +from sklearn.metrics.pairwise import cosine_similarity +from sklearn.neighbors import kneighbors_graph +from itertools import cycle, islice + +import warnings +warnings.simplefilter('ignore') + + +def generate_clustering_algorithms(Z, n_clusters, m): + # Generate clustering algorithms: + # m = 'MeanShift', 'KMeans', 'MiniBatchKMeans' + + # The minimal percentage of similarity of the clustered feature with "Survived" for inclusion in the final dataset + limit_opt = 0.7 + + params = {'quantile': .2, + 'eps': .3, + 'damping': .9, + 'preference': -200, + 'n_neighbors': 10, + 'n_clusters': n_clusters, + 'min_samples': 3, + 'xi': 0.05, + 'min_cluster_size': 0.05} + + # estimate bandwidth for mean shift + bandwidth = cluster.estimate_bandwidth(Z, quantile=params['quantile']) + + # connectivity matrix for structured Ward + connectivity = kneighbors_graph( + Z, n_neighbors=params['n_neighbors'], include_self=False) + + # make connectivity symmetric + connectivity = 0.5 * (connectivity + connectivity.T) + + # ============ + # Create cluster objects + # ============ + if m == 'MeanShift': + cl = cluster.MeanShift(bandwidth=bandwidth, bin_seeding=True) + elif m == 'KMeans': + cl = cluster.KMeans(n_clusters=n_clusters, random_state = 1000) + elif m == 'MiniBatchKMeans': + cl = cluster.MiniBatchKMeans(n_clusters=n_clusters) + + return cl + + +def clustering_df(X, n, m, output_hist, title='clusters_by'): + + # Standardization + X_columns = X.columns + scaler = StandardScaler() + scaler.fit(X) + X = pd.DataFrame(scaler.transform(X), columns = X_columns) + cl = generate_clustering_algorithms(X, n, m) + cl.fit(X) + if hasattr(cl, 'labels_'): + labels = cl.labels_.astype(np.uint8) + else: + labels = cl.predict(X) + clusters=pd.concat([X, pd.DataFrame({'cluster':labels})], axis=1) + + # Inverse Standardization + X_inv = pd.DataFrame(scaler.inverse_transform(X), columns = X_columns) + clusters_inv=pd.concat([X_inv, pd.DataFrame({'cluster':labels})], axis=1) + + # Number of points in clusters + print("Number of points in clusters:\n", clusters['cluster'].value_counts()) + + # Data in clusters - thanks to https://www.kaggle.com/sabanasimbutt/clustering-visualization-of-clusters-using-pca + if output_hist: + for c in clusters: + grid = sns.FacetGrid(clusters_inv, col='cluster') + grid.map(plt.hist, c) + + plt.savefig(f'{title}_by_method_{m}.png') + + return clusters, clusters_inv + + +def plot_draw(X, title, m): + # Drawing a plot with clusters on the plane (using PCA transformation) + # Thanks to https://www.kaggle.com/sabanasimbutt/clustering-visualization-of-clusters-using-pca + + dist = 1 - cosine_similarity(X) + + # PCA transform + pca = PCA(2) + pca.fit(dist) + X_PCA = pca.transform(dist) + + # Generate point numbers and colors for clusters + hsv = plt.get_cmap('hsv') + n_clusters = max(X['cluster'].value_counts().index)-min(X['cluster'].value_counts().index)+2 + colors = list(hsv(np.linspace(0, 1, n_clusters))) + colors_num = list(np.linspace(min(X['cluster'].value_counts().index), max(X['cluster'].value_counts().index), n_clusters)) + colors_num = [int(x) for x in colors_num] + colors_str = [str(x) for x in colors_num] + names_dict = dict(zip(colors_num, colors_str)) + colors_dict = dict(zip(colors_num, colors)) + + # Visualization + x, y = X_PCA[:, 0], X_PCA[:, 1] + + df = pd.DataFrame({'x': x, 'y':y, 'label':X['cluster'].tolist()}) + groups = df.groupby('label') + + fig, ax = plt.subplots(figsize=(12, 8)) + + for name, group in groups: + ax.plot(group.x, group.y, marker='o', linestyle='', ms=10, + color=colors_dict[name], + label=names_dict[name], + mec='none') + ax.set_aspect('auto') + ax.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off') + ax.tick_params(axis= 'y',which='both',left='off',top='off',labelleft='off') + + ax.legend(loc='upper right') + ax.set_title(f"{title} by method {m}") + plt.savefig(f'{title}_by_method_{m}.png') + plt.show() + + +if __name__ == "__main__": + data = pd.read_csv("..//heart_disease_uci.csv") + data = data.drop_duplicates().reset_index(drop=True) + + print(data.select_dtypes(include='object').columns.tolist()) + for column in data.select_dtypes(include='object').columns.tolist(): + data[column] = pd.factorize(data[column])[0] + # print(pd.factorize(data[column])[0]) + + methods_all = ['KMeans', 'MiniBatchKMeans', 'MeanShift'] + n_default = 6 + + data = data[data.notna().all(axis=1)] + + res = dict(zip(methods_all, [False]*len(methods_all))) + n_clust = dict(zip(methods_all, [1]*len(methods_all))) + for method in methods_all: + print(f"Method - {method}") + Y, Y_inv = clustering_df(data.copy(), n_default, method, True) + + # If the number of clusters is less than 2, then the clustering is not successful + n_cl = len(Y['cluster'].value_counts()) + if n_cl > 1: + res[method] = True + n_clust[method] = n_cl + + plot_draw(Y, "Data clustering", method) + else: + print('Clustering is not successful because all data is in one cluster!\n') +