8 خوارزميات تجميع (Clustering) أساسية يجب أن يعرفها كل عالم بيانات

دقائق القراءة: 15

مقدمة إلى عالم خوارزميات التجميع (Clustering)

يعتمد تعلم الآلة على ثلاثة مناهج رئيسية، تتحدد بناءً على طبيعة البيانات المتاحة لديك. هذه المناهج هي: التعلم المُراقب (Supervised Learning)، والتعلم شبه المُراقب (Semi-Supervised Learning)، والتعلم غير المُراقب (Unsupervised Learning).

  • في التعلم المُراقب، تكون البيانات مصنفة (labeled data)، مما يعني أن لديك مخرجات معروفة ومؤكدة القيم الصحيحة للمدخلات. مثال على ذلك هو تحديد أسعار السيارات بناءً على ميزات مثل الصنع والطراز والنمط ونظام الدفع وغيرها من السمات.
  • أما في التعلم شبه المُراقب، فلديك مجموعة بيانات كبيرة يكون جزء منها مصنفًا، بينما الغالبية العظمى غير مصنفة. هذا يمثل كمية كبيرة من البيانات الواقعية، حيث قد يكون تصنيف كل نقطة بيانات بواسطة خبير مكلفًا للغاية. يمكن معالجة هذا النوع من البيانات باستخدام مزيج من التعلم المُراقب وغير المُراقب.
  • يُقصد بالتعلم غير المُراقب أن لديك مجموعة بيانات غير مصنفة بالكامل. أنت لا تعرف ما إذا كانت هناك أي أنماط مخفية في البيانات، لذا تترك الأمر للخوارزمية لاكتشاف أي شيء يمكنها العثور عليه. وهنا يأتي دور خوارزميات التجميع (Clustering Algorithms)، فهي إحدى الطرق التي يمكنك استخدامها في مشكلات التعلم غير المُراقب.

ما هي خوارزميات التجميع (Clustering)؟

التجميع (Clustering) هو مهمة تعلم آلة غير مُراقبة. قد تسمع أيضًا مصطلح «تحليل التجميع» (Cluster Analysis) نظرًا لطريقة عمل هذه المنهجية. عند استخدام خوارزمية تجميع، فإنك تزودها بكمية كبيرة من بيانات الإدخال بدون أي تصنيفات، وتدعها تجد أي تجمعات (groupings) ممكنة في البيانات. تُسمى هذه التجمعات «عناقيد» (clusters).

العنقود (cluster) هو مجموعة من نقاط البيانات المتشابهة لبعضها البعض بناءً على علاقتها بنقاط البيانات المحيطة. يُستخدم التجميع في مهام مثل هندسة الميزات (feature engineering) أو اكتشاف الأنماط (pattern discovery). عندما تبدأ ببيانات لا تعرف عنها شيئًا، قد يكون التجميع نقطة انطلاق جيدة للحصول على بعض الرؤى الأولية.

أنواع خوارزميات التجميع الشائعة

هناك أنواع مختلفة من خوارزميات التجميع التي تتعامل مع جميع أنواع البيانات الفريدة:

1. التجميع القائم على الكثافة (Density-based Clustering)

في التجميع القائم على الكثافة، يتم تجميع البيانات حسب مناطق التركيزات العالية لنقاط البيانات المحاطة بمناطق ذات تركيزات منخفضة. بشكل أساسي، تجد الخوارزمية الأماكن الكثيفة بنقاط البيانات وتعتبرها عناقيد. الميزة الرائعة في هذا النوع هي أن العناقيد يمكن أن تكون بأي شكل، فأنت لست مقيدًا بظروف متوقعة. لا تحاول خوارزميات التجميع ضمن هذا النوع تعيين النقاط الشاذة (outliers) إلى عناقيد، لذا يتم تجاهلها.

2. التجميع القائم على التوزيع (Distribution-based Clustering)

باستخدام نهج التجميع القائم على التوزيع، تُعتبر جميع نقاط البيانات جزءًا من عنقود بناءً على احتمالية انتمائها لعنقود معين. يعمل هذا النوع كالتالي: توجد نقطة مركزية، ومع زيادة مسافة نقطة البيانات عن المركز، تقل احتمالية كونها جزءًا من ذلك العنقود. إذا لم تكن متأكدًا من كيفية توزيع بياناتك، فيجب أن تفكر في نوع مختلف من الخوارزميات.

3. التجميع القائم على المركز (Centroid-based Clustering)

التجميع القائم على المركز هو النوع الذي ربما تسمع عنه أكثر من غيره. إنه حساس قليلاً للمعلمات الأولية التي تقدمها له، لكنه سريع وفعال. تفصل هذه الأنواع من الخوارزميات نقاط البيانات بناءً على مراكز متعددة (centroids) في البيانات. يتم تعيين كل نقطة بيانات إلى عنقود بناءً على مربع المسافة بينها وبين المركز. هذا هو النوع الأكثر استخدامًا للتجميع.

4. التجميع الهرمي (Hierarchical-based Clustering)

يُستخدم التجميع الهرمي عادةً على البيانات الهرمية، مثل تلك التي تحصل عليها من قاعدة بيانات شركة أو تصنيفات. يقوم ببناء شجرة من العناقيد بحيث يتم تنظيم كل شيء من الأعلى إلى الأسفل. هذا النوع أكثر تقييدًا من أنواع التجميع الأخرى، لكنه مثالي لأنواع محددة من مجموعات البيانات.

متى تستخدم خوارزميات التجميع؟

عندما يكون لديك مجموعة من البيانات غير المصنفة، فمن المحتمل جدًا أن تستخدم نوعًا من خوارزميات التعلم غير المُراقب. هناك العديد من تقنيات التعلم غير المُراقب المختلفة، مثل الشبكات العصبية (neural networks)، والتعلم المعزز (reinforcement learning)، والتجميع (clustering). سيعتمد النوع المحدد من الخوارزمية الذي ترغب في استخدامه على شكل بياناتك.

قد ترغب في استخدام التجميع عندما تحاول اكتشاف الشذوذ (anomaly detection) لمحاولة العثور على النقاط الشاذة في بياناتك. يساعد ذلك في العثور على مجموعات العناقيد هذه وإظهار الحدود التي تحدد ما إذا كانت نقطة البيانات شاذة أم لا. إذا لم تكن متأكدًا من الميزات التي ستستخدمها لنموذج تعلم الآلة الخاص بك، فإن التجميع يكتشف الأنماط التي يمكنك استخدامها لمعرفة ما يبرز في البيانات.

يُعد التجميع مفيدًا بشكل خاص لاستكشاف البيانات التي لا تعرف عنها شيئًا. قد يستغرق الأمر بعض الوقت لتحديد أي نوع من خوارزميات التجميع يعمل بشكل أفضل، ولكن عندما تفعل ذلك، ستحصل على رؤى لا تقدر بثمن حول بياناتك. قد تجد روابط لم تكن لتفكر فيها أبدًا.

تشمل بعض التطبيقات الواقعية للتجميع اكتشاف الاحتيال في التأمين، وتصنيف الكتب في المكتبة، وتجزئة العملاء في التسويق. يمكن استخدامه أيضًا في مشكلات أكبر، مثل تحليل الزلازل أو تخطيط المدن.

أفضل 8 خوارزميات تجميع (Clustering)

الآن بعد أن أصبح لديك بعض الخلفية عن كيفية عمل خوارزميات التجميع والأنواع المختلفة المتاحة، يمكننا التحدث عن الخوارزميات الفعلية التي ستراها بشكل شائع في الممارسة العملية. سنقوم بتطبيق هذه الخوارزميات على مجموعة بيانات مثال من مكتبة sklearn في بايثون. سنستخدم مجموعة بيانات _make classification من مكتبة sklearn لتوضيح كيف أن خوارزميات التجميع المختلفة لا تناسب جميع مشكلات التجميع. يمكنك العثور على الكود لجميع الأمثلة التالية هنا.

1. خوارزمية التجميع K-means

تُعد خوارزمية K-means الأكثر استخدامًا في التجميع. إنها خوارزمية قائمة على المركز (centroid-based) وأبسط خوارزمية تعلم غير مُراقب. تحاول هذه الخوارزمية تقليل تباين نقاط البيانات داخل العنقود. وهي أيضًا الطريقة التي يتعرف بها معظم الناس على تعلم الآلة غير المُراقب.

تُستخدم K-means بشكل أفضل مع مجموعات البيانات الأصغر لأنها تتكرر على جميع نقاط البيانات. هذا يعني أنها ستستغرق وقتًا أطول لتصنيف نقاط البيانات إذا كان هناك عدد كبير منها في مجموعة البيانات. نظرًا لأن هذه هي طريقة K-means لتجميع نقاط البيانات، فإنها لا تتوسع بشكل جيد (doesn't scale well).

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import KMeans

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
kmeans_model = KMeans(n_clusters=2)

# assign each data point to a cluster
kmeans_result = kmeans_model.fit_predict(training_data)

# get all of the unique clusters
kmeans_clusters = unique(kmeans_result)

# plot the K-means clusters
for kmeans_cluster in kmeans_clusters:
    # get data points that fall in this cluster
    index = where(kmeans_result == kmeans_cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the K-means plot
pyplot.show()

2. خوارزمية التجميع DBSCAN

يرمز DBSCAN إلى (Density-Based Spatial Clustering of Applications with Noise) وتعني «التجميع المكاني القائم على الكثافة للتطبيقات ذات الضوضاء». إنها خوارزمية تجميع قائمة على الكثافة، على عكس K-means. تُعد هذه الخوارزمية جيدة لاكتشاف النقاط الشاذة في مجموعة البيانات. تجد عناقيد ذات أشكال عشوائية بناءً على كثافة نقاط البيانات في مناطق مختلفة. تفصل المناطق بمناطق ذات كثافة منخفضة بحيث يمكنها اكتشاف النقاط الشاذة بين العناقيد عالية الكثافة. هذه الخوارزمية أفضل من K-means عندما يتعلق الأمر بالعمل مع البيانات ذات الأشكال الغريبة.

تستخدم DBSCAN معلمتين لتحديد كيفية تعريف العناقيد: minPts (الحد الأدنى لعدد نقاط البيانات التي تحتاج إلى تجميعها معًا لاعتبار منطقة ما عالية الكثافة) و eps (المسافة المستخدمة لتحديد ما إذا كانت نقطة البيانات في نفس المنطقة مثل نقاط البيانات الأخرى). يُعد اختيار المعلمات الأولية الصحيحة أمرًا بالغ الأهمية لعمل هذه الخوارزمية.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import DBSCAN

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
dbscan_model = DBSCAN(eps=0.25, min_samples=9)

# train the model
dbscan_model.fit(training_data)

# assign each data point to a cluster
dbscan_result = dbscan_model.fit_predict(training_data) # Corrected from .predict to .fit_predict

# get all of the unique clusters
dbscan_clusters = unique(dbscan_result)

# plot the DBSCAN clusters
for dbscan_cluster in dbscan_clusters:
    # get data points that fall in this cluster
    index = where(dbscan_result == dbscan_cluster) # Corrected from dbscan_clusters to dbscan_cluster
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the DBSCAN plot
pyplot.show()

3. خوارزمية نموذج الخليط الغاوسي (Gaussian Mixture Model)

إحدى المشكلات في K-means هي أن البيانات تحتاج إلى اتباع تنسيق دائري. طريقة حساب K-means للمسافة بين نقاط البيانات تتعلق بمسار دائري، لذا فإن البيانات غير الدائرية لا تُجمع بشكل صحيح. هذه مشكلة تحلها نماذج الخليط الغاوسي (Gaussian Mixture Models - GMM). لا تحتاج إلى بيانات ذات شكل دائري لتعمل بشكل جيد.

يستخدم نموذج الخليط الغاوسي توزيعات غاوسية متعددة لتناسب البيانات ذات الأشكال العشوائية. هناك العديد من النماذج الغاوسية الفردية التي تعمل كطبقات مخفية في هذا النموذج الهجين. وبالتالي، يحسب النموذج احتمالية أن تنتمي نقطة بيانات إلى توزيع غاوسي معين، وهذا هو العنقود الذي ستندرج تحته.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.mixture import GaussianMixture

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
gaussian_model = GaussianMixture(n_components=2)

# train the model
gaussian_model.fit(training_data)

# assign each data point to a cluster
gaussian_result = gaussian_model.predict(training_data)

# get all of the unique clusters
gaussian_clusters = unique(gaussian_result)

# plot Gaussian Mixture the clusters
for gaussian_cluster in gaussian_clusters:
    # get data points that fall in this cluster
    index = where(gaussian_result == gaussian_cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the Gaussian Mixture plot
pyplot.show()

4. خوارزمية BIRCH

تعمل خوارزمية (Balance Iterative Reducing and Clustering using Hierarchies - BIRCH) بشكل أفضل على مجموعات البيانات الكبيرة مقارنة بخوارزمية K-means. إنها تقسم البيانات إلى ملخصات صغيرة يتم تجميعها بدلاً من نقاط البيانات الأصلية. تحتوي هذه الملخصات على أكبر قدر ممكن من معلومات التوزيع حول نقاط البيانات. تُستخدم هذه الخوارزمية عادةً مع خوارزميات تجميع أخرى، حيث يمكن تطبيق التقنيات الأخرى على الملخصات التي تولدها BIRCH. العيب الرئيسي لخوارزمية BIRCH هو أنها تعمل فقط على القيم الرقمية للبيانات. لا يمكنك استخدامها للقيم الفئوية (categorical values) ما لم تقم بإجراء بعض تحويلات البيانات.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import Birch

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
birch_model = Birch(threshold=0.03, n_clusters=2)

# train the model
birch_model.fit(training_data)

# assign each data point to a cluster
birch_result = birch_model.predict(training_data)

# get all of the unique clusters
birch_clusters = unique(birch_result)

# plot the BIRCH clusters
for birch_cluster in birch_clusters:
    # get data points that fall in this cluster
    index = where(birch_result == birch_cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the BIRCH plot
pyplot.show()

5. خوارزمية التجميع Affinity Propagation

تختلف خوارزمية التجميع هذه تمامًا عن غيرها في طريقة تجميع البيانات. تتواصل كل نقطة بيانات مع جميع نقاط البيانات الأخرى لإعلام بعضها البعض بمدى تشابهها، وهذا يبدأ في الكشف عن العناقيد في البيانات. لا يتعين عليك إخبار هذه الخوارزمية بعدد العناقيد المتوقعة في معلمات التهيئة.

مع إرسال الرسائل بين نقاط البيانات، يتم العثور على مجموعات من البيانات تسمى «النماذج» (exemplars) وهي تمثل العناقيد. يتم العثور على النموذج بعد أن تمرر نقاط البيانات الرسائل لبعضها البعض وتشكل توافقًا حول نقطة البيانات التي تمثل العنقود بشكل أفضل. عندما لا تكون متأكدًا من عدد العناقيد المتوقعة، كما هو الحال في مشكلة رؤية الكمبيوتر (computer vision)، فهذه خوارزمية رائعة للبدء بها.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import AffinityPropagation

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
model = AffinityPropagation(damping=0.7)

# train the model
model.fit(training_data)

# assign each data point to a cluster
result = model.predict(training_data)

# get all of the unique clusters
clusters = unique(result)

# plot the clusters
for cluster in clusters:
    # get data points that fall in this cluster
    index = where(result == cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the plot
pyplot.show()

6. خوارزمية التجميع Mean-Shift

هذه خوارزمية أخرى مفيدة بشكل خاص لمعالجة الصور ورؤية الكمبيوتر. تشبه Mean-shift خوارزمية BIRCH لأنها تجد أيضًا عناقيد دون تحديد عدد أولي للعناقيد. هذه خوارزمية تجميع هرمية، ولكن عيبها هو أنها لا تتوسع بشكل جيد عند العمل مع مجموعات البيانات الكبيرة.

تعمل عن طريق التكرار على جميع نقاط البيانات وتحريكها نحو النمط (mode). النمط في هذا السياق هو منطقة الكثافة العالية لنقاط البيانات في منطقة ما. لهذا السبب قد تسمع هذه الخوارزمية يشار إليها باسم خوارزمية البحث عن النمط (mode-seeking algorithm). ستمر بهذه العملية التكرارية مع كل نقطة بيانات وتحركها أقرب إلى حيث توجد نقاط بيانات أخرى حتى يتم تعيين جميع نقاط البيانات إلى عنقود.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import MeanShift

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
mean_model = MeanShift()

# assign each data point to a cluster
mean_result = mean_model.fit_predict(training_data)

# get all of the unique clusters
mean_clusters = unique(mean_result)

# plot Mean-Shift the clusters
for mean_cluster in mean_clusters:
    # get data points that fall in this cluster
    index = where(mean_result == mean_cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the Mean-Shift plot
pyplot.show()

7. خوارزمية OPTICS

يرمز OPTICS إلى (Ordering Points to Identify the Clustering Structure) وتعني «ترتيب النقاط لتحديد هيكل التجميع». إنها خوارزمية قائمة على الكثافة (density-based) تشبه DBSCAN، لكنها أفضل لأنها تستطيع العثور على عناقيد ذات معنى في البيانات التي تختلف في الكثافة. تفعل ذلك عن طريق ترتيب نقاط البيانات بحيث تكون أقرب النقاط جيرانًا في الترتيب. هذا يجعل من السهل اكتشاف عناقيد ذات كثافات مختلفة.

تعالج خوارزمية OPTICS كل نقطة بيانات مرة واحدة فقط، على غرار DBSCAN (على الرغم من أنها تعمل ببطء أكثر من DBSCAN). هناك أيضًا مسافة خاصة مخزنة لكل نقطة بيانات تشير إلى أن النقطة تنتمي إلى عنقود معين.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import OPTICS

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
optics_model = OPTICS(eps=0.75, min_samples=10)

# assign each data point to a cluster
optics_result = optics_model.fit_predict(training_data)

# get all of the unique clusters
optics_clusters = unique(optics_result) # Corrected from optics_clusters to optics_result

# plot OPTICS the clusters
for optics_cluster in optics_clusters:
    # get data points that fall in this cluster
    index = where(optics_result == optics_cluster) # Corrected from optics_clusters to optics_cluster
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the OPTICS plot
pyplot.show()

8. خوارزمية التجميع الهرمي التراكمي (Agglomerative Hierarchy Clustering)

هذا هو النوع الأكثر شيوعًا من خوارزميات التجميع الهرمي. يُستخدم لتجميع الكائنات في عناقيد بناءً على مدى تشابهها مع بعضها البعض. هذا شكل من أشكال التجميع التصاعدي (bottom-up clustering)، حيث يتم تعيين كل نقطة بيانات إلى عنقود خاص بها. ثم يتم دمج هذه العناقيد معًا. في كل تكرار، يتم دمج العناقيد المتشابهة حتى تصبح جميع نقاط البيانات جزءًا من عنقود جذري واحد كبير. يُعد التجميع التراكمي الأفضل في العثور على العناقيد الصغيرة. تبدو النتيجة النهائية كـ «شجرة متفرعة» (dendrogram) بحيث يمكنك تصور العناقيد بسهولة عند انتهاء الخوارزمية.

التطبيق العملي:


from numpy import unique
from numpy import where
from matplotlib import pyplot
from sklearn.datasets import make_classification
from sklearn.cluster import AgglomerativeClustering

# initialize the data set we'll work with
training_data, _ = make_classification(
    n_samples=1000,
    n_features=2,
    n_informative=2,
    n_redundant=0,
    n_clusters_per_class=1,
    random_state=4
)

# define the model
agglomerative_model = AgglomerativeClustering(n_clusters=2)

# assign each data point to a cluster
agglomerative_result = agglomerative_model.fit_predict(training_data)

# get all of the unique clusters
agglomerative_clusters = unique(agglomerative_result)

# plot the clusters
for agglomerative_cluster in agglomerative_clusters:
    # get data points that fall in this cluster
    index = where(agglomerative_result == agglomerative_cluster)
    # make the plot
    pyplot.scatter(training_data[index, 0], training_data[index, 1])

# show the Agglomerative Hierarchy plot
pyplot.show()

أنواع أخرى من خوارزميات التجميع

لقد تناولنا ثمانية من أفضل خوارزميات التجميع، ولكن هناك الكثير غيرها متاح. توجد بعض خوارزميات التجميع المعدلة خصيصًا والتي تتعامل مع بياناتك بسرعة ودقة. إليك بعض الخوارزميات الأخرى التي قد تثير اهتمامك:

  • هناك خوارزمية هرمية أخرى معاكسة لنهج التجميع التراكمي. تبدأ باستراتيجية تجميع من الأعلى إلى الأسفل (top-down clustering strategy). لذا ستبدأ بعنقود جذري كبير واحد وتقسم منه العناقيد الفردية. تُعرف هذه الخوارزمية باسم خوارزمية التجميع الهرمي التقسيمي (Divisive Hierarchical Clustering). هناك أبحاث تظهر أن هذا يخلق تدرجات هرمية أكثر دقة من التجميع التراكمي، لكنه أكثر تعقيدًا بكثير.
  • تُشبه Mini-Batch K-means خوارزمية K-means، باستثناء أنها تستخدم أجزاء عشوائية صغيرة من البيانات ذات حجم ثابت بحيث يمكن تخزينها في الذاكرة. يساعد هذا على تشغيلها بشكل أسرع من K-means بحيث تتقارب إلى حل في وقت أقل. العيب في هذه الخوارزمية هو أن زيادة السرعة ستكلفك بعضًا من جودة العنقود.
  • الخوارزمية الأخيرة التي سنتناولها باختصار هي التجميع الطيفي (Spectral Clustering). تختلف هذه الخوارزمية تمامًا عن الخوارزميات الأخرى التي نظرنا إليها. تعمل بالاستفادة من نظرية الرسوم البيانية (graph theory). لا تقوم هذه الخوارزمية بأي تخمينات أولية حول العناقيد الموجودة في مجموعة البيانات. إنها تتعامل مع نقاط البيانات كعقد في رسم بياني، ويتم العثور على العناقيد بناءً على مجتمعات العقد التي تحتوي على حواف متصلة.

اعتبارات إضافية

احذر من مشكلات التوسع (scaling issues) مع خوارزميات التجميع. قد تحتوي مجموعة بياناتك على ملايين نقاط البيانات، وبما أن خوارزميات التجميع تعمل عن طريق حساب أوجه التشابه بين جميع أزواج نقاط البيانات، فقد ينتهي بك الأمر بخوارزمية لا تتوسع بشكل جيد.

الخلاصة التقنية

تُعد خوارزميات التجميع أداة قوية لاستخلاص رؤى جديدة من البيانات غير المصنفة. إنها تمكن علماء البيانات من اكتشاف الأنماط المخفية، وتحديد النقاط الشاذة، وفهم بنية البيانات المعقدة التي قد تكون مستحيلة بدونها. على الرغم من أن اختيار الخوارزمية المناسبة يتطلب فهمًا عميقًا لطبيعة البيانات وأهداف التحليل، إلا أن النتائج غالبًا ما تكون ذات قيمة لا تقدر بثمن. يمكن استخدام العناقيد المكتشفة كـ «ميزات» جديدة في نماذج التعلم المُراقب، مما يفتح آفاقًا جديدة لتحليل البيانات وبناء نماذج أكثر دقة وفعالية. ومع ذلك، من الضروري دائمًا تقييم دقة النتائج بعناية لضمان موثوقية الرؤى المستخلصة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *