ما هو التجميع الهرمي؟

المؤلفين

Joshua Noble

Data Scientist

ما المقصود بالتجميع الهرمي؟

التجميع الهرمي هو خوارزمية تعلُّم آلي غير خاضع للإشراف تعمل على تجميع البيانات في مجموعات عنقودية متداخلة. تشمل الأنواع الرئيسية التجميع التراكمي (Agglomerative) والتجميع التقسيمي (Divisive). يساعد تحليل التجميع الهرمي على اكتشاف الأنماط والارتباطات داخل مجموعات البيانات. يتم عرض النتائج في مخطط شجرة عنقودية (Dendrogram) يُبرز العلاقات بين المجموعات بناءً على المسافات بينها.

التجميع هو إحدى تقنيات التعلم الآلي غير الخاضع للإشراف التي تُستخدَم في تحليل البيانات للكشف عن الكائنات المتشابهة وتجميعها في المجموعة. يعمل التحليل العنقودي الهرمي (HCA)، أو التجميع الهرمي، على تجميع الكائنات في تسلسل هرمي من المجموعة دون فرض ترتيب خطي داخلها. تستخدم العديد من التخصصات، مثل علم الأحياء وتحليل الصور والعلوم الاجتماعية، أساليب التجميع الهرمي لاستكشاف الأنماط في مجموعة البيانات والتعرُّف عليها. تشمل حالات الاستخدام تصنيف السكان في الأبحاث السريرية، وتجزئة العملاء، واكتشاف مجتمعات العقدة في نماذج الشبكات.

هناك نوعان من التجميع الهرمي:

التجميع التراكمي أو النهج التصاعدي1، وهو أسلوب يبدأ بدمج المجموعات الصغيرة تدريجيًا في مجموعات أكبر حتى تتشكل مجموعة واحدة شاملة.

التجميع التقسيمي (Divisive)، أو النهج التنازلي،2 حيث تبدأ جميع البيانات في مجموعة واحدة ثم تستمر في الانقسام إلى مجموعات متتالية حتى تصبح كل مجموعة مكونة من عنصر واحد فقط.

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

يُستخدم مخطط الشجرة العنقودية (Dendrogram)3، وهو مخطط شجري، في كثير من الأحيان لتمثيل التسلسل الهرمي للمجموعات بصريًا. يُظهر هذا المخطط ترتيب عمليات الدمج أو التقسيم التي تمت بين المجموعات، كما يوضِّح درجة التشابه أو المسافة بين نقاط البيانات. يمكن أيضًا فهم المخططات الشجرية على أنها قوائم متداخلة4 تحتوي على خصائص تَصِف العلاقات بين البيانات.

مخطط انتشاري للنقاط من A إلى F على اليسار، والمخطط الشجري العنقودي الناتج على اليمين.

كيف يعمل التجميع الهرمي

تستخدِم خوارزميات التجميع الهرمي مفهوم مصفوفة التباين لتحديد المجموعات التي يجب دمجها أو تقسيمها. تمثِّل التباينات المسافة بين نقطتي بيانات كما تُقاس باستخدام طريقة الربط المختارة. تعبِّر القيم الموجودة في مصفوفة التباين عن:

- المسافة5، مسافة إقليدية كمثال، بين نقاط فردية داخل مجموعة

- معيار تجميع الروابط، الذي يحدِّد التباين كدالة للمسافات الزوجية بين النقاط عبر المجموعات

طرق الربط

دعنا نستكشف طرق ربط المسافة الإقليدية الأكثر شيوعًا. تشمل أمثلة مقاييس المسافة الأخرى التي يمكن استخدامها مسافة Minkowski وHamming وMahalanobis وHausdorf وManhattan. لاحِظ أن كل طريقة ربط تُنشئ مجموعات مختلفة من نفس مجموعة البيانات. يعتمد اختيار طريقة تجميع الروابط المناسبة على عوامل مثل نوع البيانات التي يتم تجميعها وكثافة البيانات وشكل المجموعة وما إذا كانت هناك قيم متطرفة أو ضوضاء في مجموعة البيانات.

الربط (الفردي) بطريقة الحد الأدنى

تعمل طريقة الربط الأحادي على تحليل المسافات الزوجية بين العناصر في مجموعتين ثم تستخدم الحد الأدنى للمسافة بين المجموعتين. تتعامل طريقة min مع أشكال المجموعة غير الإهليلجية بشكل جيد ولكنها ستتأثر بالضوضاء والقيمة الخارجية. ولها قيد يُعرَف باسم تأثير التسلسل.6 يمكن أن تؤدي بضع نقاط لإنشاء جسر بين زوج المجموعة إلى دمج المجموعتين في مجموعة واحدة. يمكن تمثيل معايير الربط الأدنى على النحو التالي:

 mina∈A,b∈Bd(a,b)

حيث إن A وB هما مجموعتان من الملاحظات وd هي دالة مسافة.

الربط (الكامل) بطريقة الحد الأقصى

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

 maxa∈A,b∈Bd(a,b)

حيث A و B مجموعتان من الملاحظات وd هي المسافة.

الربط بالمتوسط

تحدِّد هذه الطرق، التي قدمها Sokal وMichener7، المسافة بين المجموعات على أنها متوسط المسافة بين أزواج النقاط عبر جميع النقاط داخل المجموعات. يمكن أن تكون الخوارزمية طريقة المجموعة الزوجية غير الموزونة مع المتوسط الحسابي (UPGMA) أو طريقة المجموعة الزوجية الموزونة مع المتوسط الحسابي (WPGMA). تُشير "غير الموزونة" هنا إلى أن جميع المسافات تساهم بالتساوي في كل متوسط.

يتم تمثيل UPGMA بالمعادلة التالية

 1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)

حيث تمثِّل *A* و*B* مجموعتين من الملاحظات و*d* هي المسافة.

يتم تمثيل UPGMA بالمعادلة التالية

 d(i∪j,k)=d(i,k)+d(j,k)2

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

الربط المركزي

هنا، نستخدم المسافة بين مراكز المجموعات أو النقاط المركزية. يتم حساب المسافة بين النقاط المركزية باستخدام دالة المسافة:

∥μA-μB∥2

حيث μA هو مركز ثقل A وμB هو مركز ثقل B.

طريقة الحد الأدنى للتباين التي طرحها Ward

قدَّم Joe H. Ward طريقة الحد الأدنى لزيادة مجموع المربعات (MISSQ)8 في الستينيات. تبدأ كل نقطة بيانات في مجموعة خاصة بها. يعني هذا النهج أن مجموع المربعات بين نقاط البيانات يكون في البداية عند الصفر، ثم يزداد كلما دمجنا المجموعات. تقلِّل طريقة Ward من مجموع المسافات المربعة للنقاط من مراكز المجموعات أثناء دمجها. تُعَد طريقة وارد خيارًا جيدًا للمتغيّرات الكمية وهي أقل تأثرًا بالضوضاء أو القيمة الخارجية. يمكن تمثيلها على النحو التالي:

 ∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2

حيث يمثِّل متوسط A ومتوسط B النقاط المركزية لكل من المجموعتين A وB على التوالي، وx هي نقطة بيانات تنتمي إلى تحالف A وB.

خوارزمية Lance-Williams

يمكن تحسين طريقة الحد الأدنى للتباين التي طرحها Ward من خلال استخدام خوارزمية Lance-Williams. تستخدم هذه الخوارزميات صيغة تكرارية لتحديث مسافات المجموعات والعثور على أقرب زوج من المجموعات لدمجهما.

خطوات التجميع الهرمي التراكمي

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

1. حساب مصفوفة التباين باستخدام مقياس مسافة معيّن.

2. تخصيص كل نقطة بيانات لمجموعة معينة.

3. دمج المجموعات بناءً على معيار الارتباط لتحديد التشابه بين المجموعات.

4. تحديث مصفوفة المسافة.

5. تكرار الخطوتين 3 و4 حتى تتبقى مجموعة واحدة أو يتم استيفاء أي معيار توقف.

خطوات التجميع التقسيمي

تم تطوير المبادئ وراء التجميع الهرمي التقسيمي بواسطة Macnaughton-Smith وآخرين في عام 1964،11 وجرى استكشافها بشكل أوسع بواسطة Kaufman وRousseeuw من خلال خوارزمية DIANA (Divisive ANAlysis clustering)12 في عام 1990. يستخدم التجميع التقسيمي نهجًا معاكسًا للتجميع التراكمي. تبدأ جميع نقاط البيانات في مجموعة واحدة يتم تقسيمها بشكل متكرر إلى المزيد من المجموعات. يحدث التقسيم حتى يتم استيفاء جميع المجموعات المتبقية منفردة أو حتى يتم استيفاء معيار توقف مثل عدد محدد مسبقًا من المجموعات. تُعَد الطرق التقسيمية أفضل في تحديد المجموعات الكبيرة ا13 ويمكن أن تكون أكثر دقة من الطرق التراكمية لأن الخوارزمية تأخذ في الاعتبار مجموعة البيانات بالكامل منذ بداية العملية.

ولتحسين الكفاءة، تستخدم الطرق التقسيمية خوارزميات التجميع المسطحة مثل k-means لتقسيم مجموعة البيانات إلى مجموعات. يجب تحديد عدد المجموعات مقدمًا. تعمل خوارزمية k-means على تقسيم المجموعات عن طريق تقليل مجموع المربعات داخل المجموعة بين نقاط النقطة المركزية. يُعرَف هذا بمعيار القصور الذاتي14. خطوات التجميع التقسيمي15 هي:

1. البدء بجميع نقاط البيانات لمجموعة بيانات بحجم N (d1، d2، d3 ... dN) داخل مجموعة واحدة.

2. تقسيم المجموعة إلى مجموعتين غير متشابهتين أو غير متجانستين باستخدام طريقة التجميع المسطح مثل خوارزمية k-means.

3. تكرار الخطوة 2، مع اختيار أفضل مجموعة لتقسيمها وإزالة القيمة الخارجية من المجموعة الأقل ترابطًا بعد كل تكرار.

4. التوقف عندما تكون كل نقطة بيانات في مجموعة مستقلة، وإلا فيتم تكرار الخطوة 3.

أحدث اتجاهات الذكاء الاصطناعي، يقدمها لك الخبراء

احصل على رؤى منسقة حول أهم أخبار الذكاء الاصطناعي وأكثرها إثارةً للاهتمام. اشترِك في خدمة رسائل Think الإخبارية الأسبوعية. راجع بيان الخصوصية لشركة IBM.

شكرًا لك! لقد اشتركت بنجاح.

سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.

تفسير نتائج التجميع الهرمي

عادةً ما يتم عرض نتائج المجموعة في مخطط شجر (هيكل شجرة ثنائي). يمثِّل المحور xفي المخطط الشجري نقاط البيانات، بينما يوضِّح المحور y، أو ارتفاع الخطوط، مدى البُعد بين المجموعات عند دمجها.

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

في مثال الصورة الموضحة هنا، يقطع الخط الأفقي H1 خطين رأسيين. هذا يوضِّح أن هناك مجموعتين في هذه المرحلة من العملية - مجموعة تضم النقاط 5 و8 و2 ومجموعة أخرى تضم النقاط المتبقية. كلما كان بإمكان الخط الأفقي التحرك لأعلى أو لأسفل دون قطع الخطوط الأفقية الأخرى في الشجرة، كان اختيار هذا العدد من المجموعات أفضل لنموذج التجميع الخاص بك. في المثال أدناه، يحدِّد الخط الأفقي H2 أربع مجموعات. لا يستطيع H2 التحرك صعودًا وهبوطًا بقدر H1 قبل أن يقطع الخطوط الأفقية الأخرى. يوضح هذا السيناريو أن اختيار المجموعتين (H1) ربما يكون الأنسب لنموذج التجميع الخاص بك.

مخطط شجري عنقودي، حيث تمثل نقاط البيانات على المحور الأفقي (x-axis)، بينما يعكس ارتفاع الخطوط على المحور العمودي (y-axis) مدى التباعد بين المجموعات العنقودية عند دمجها. قطع مخطط الشجرة العنقودية بخطوط أفقية لتحديد عدد المجموعات العنقودية.

يُنشئ نموذج التجميع17 المجموعات ذات تشابه عالٍ داخل الصفوف وتشابه منخفض بين الصفوف. ومع ذلك، قد يكون من الصعب تحديد جودة المجموعة، ويمكن أن يؤثِر اختيارك لمعيار الربط وأرقام المجموعات بشكل كبير في نتائجك. وبالتالي، عند إنشاء نموذج تجميع، جرِّب خيارات مختلفة واختَر تلك التي تساعدك على استكشاف الأنماط في مجموعة البيانات والمجموعة للنظر فيها مستقبلًا. العوامل التي يجب أخذها في الاعتبار 18 تشمل:

- عدد المجموعات العملية أو المنطقية لمجموعة البيانات (بالنظر إلى حجم مجموعة البيانات وأشكال المجموعات والضوضاء في البيانات وما إلى ذلك).

- الإحصاءات، مثل المتوسط، والقيم القصوى والدنيا لكل مجموعة.

أفضل مقياس لاختلاف التشابه أو معيار الارتباط الذي يجب تطبيقه.

- تأثير أي قيم خارجية أو متغيّرات النتائج.

- أي معرفة محددة بالمجال أو مجموعة البيانات.

تشمل الطرق الأخرى التي تساعد على تحديد العدد الأمثل للمجموعات19 ما يلي:

طريقة المِرفق (Elbow Method)، حيث يتم رسم مجموع المربعات داخل المجموعات مقابل عدد المجموعات لتحديد نقطة المِرفق، وهي النقطة التي يبدأ فيها الرسم البياني بالتسطّح، ما يشير إلى العدد الأمثل للعنقوديات.

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

Mixture of Experts | 28 أغسطس، الحلقة 70

فك تشفير الذكاء الاصطناعي: تقرير إخباري أسبوعي

انضمّ إلى نخبة من المهندسين والباحثين وقادة المنتجات وغيرهم من الخبراء وهم يقدّمون أحدث الأخبار والرؤى حول الذكاء الاصطناعي، بعيدًا عن الضجيج الإعلامي.

حالات استخدام التجميع الهرمي

يوفر التجميع الهرمي لعلماء البيانات رؤى حول هيكلة البيانات والعلاقات بينها، كما يمكن تطبيقه في حالات استخدام متنوعة.

الأعمال

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

الأبحاث السريرية والمعلوماتية الحيوية

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

معالجة الصور والمعلومات

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

تنفيذ التجميع الهرمي في Python أو R

تُستخدم كلٌّ من لغة Python ولغة R على نطاق واسع في علم البيانات. تتميز Python بمرونتها وقدرتها على التعامل مع مجموعة واسعة من المهام. من ناحية أخرى، تم تصميم R خصيصًا للحوسبة الإحصائية، حيث توفِّر خيارات غنية لتحليل التجميع الهرمي وتصور بياناته بفاعلية.

توفر Python دالة AgglomerativeClustering21 (انظر أيضًا أمثلة التجميع التراكمي22 على sklearn)، وتوفر SciPy دالة لرسم المخططات الشجرية (Dendrograms)23.تعمل الحِزم مثل dendextend24على تعزيز وظائف المخططات الشجرية في R، ما يحسِّن تحليل الحساسية ويمكِّنك من مقارنة المخططات الشجرية المختلفة والتعامل معها. للحصول على تجربة عملية، شاهِد دروسنا التعليمية خطوة بخطوة: كيفية تنفيذ التجميع الهرمي في Python وكيفية تنفيذ التجميع الهرمي في R.

حلول ذات صلة
IBM watsonx.ai

تدريب الذكاء الاصطناعي التوليدي والتحقق من صحته وضبطه ونشره، وكذلك قدرات نماذج الأساس والتعلم الآلي باستخدام IBM watsonx.ai، وهو استوديو الجيل التالي من المؤسسات لمنشئي الذكاء الاصطناعي. أنشئ تطبيقات الذكاء الاصطناعي بسرعة أكبر وببيانات أقل.

اكتشف watsonx.ai
حلول الذكاء الاصطناعي

استفد من الذكاء الاصطناعي في عملك بالاستعانة بخبرة IBM الرائدة في مجال الذكاء الاصطناعي ومحفظة حلولها المتوفرة لك.

استكشف حلول الذكاء الاصطناعي
الاستشارات والخدمات المتعلقة بالذكاء الاصطناعي

أعدّ ابتكار عمليات ومهام سير العمل الحساسة بإضافة الذكاء الاصطناعي لتعزيز التجارب وصنع القرارات في الوقت الفعلي والقيمة التجارية.

استكشف خدمات الذكاء الاصطناعي
اتخِذ الخطوة التالية

احصل على وصول شامل إلى القدرات التي تغطي دورة حياة تطوير الذكاء الاصطناعي. تمكَّن من إنتاج حلول ذكاء اصطناعي قوية بفضل الواجهات سهلة الاستخدام وعمليات سير العمل السلسة وإمكانية الوصول إلى واجهات برمجة التطبيقات ومجموعات تطوير البرامج القياسية في الصناعة.

استكشف watsonx.ai احجز عرضًا توضيحيًا مباشرًا
الحواشي

1 Murtagh, F., Legendre, P., “Ward’s Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward’s Criterion?,” 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z

 2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data: An Introduction to Cluster Analysis. Wiley. Chp 6. Divisive Analysis (Program DIANA) pp. 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801

3 Galili, T., “Introduction to dendextend,” The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html

4 Lecture Notes from Penn State Eberly College of Science, “Hierarchical Clustering”, https://online.stat.psu.edu/stat555/node/85/

5، و17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2nd ed, Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4

6 Sokal, R, Michener, C., “A statistical method for evaluating systematic relationships,” 1958, University of Kansas Science Bulletin, 38: 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up

Ward, J. H., “Hierarchical Grouping to Optimize an Objective Function,” 1963, Journal of the American Statistical Association, 58 (301): 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963.10500845.

8 Lecture Notes from Penn State Eberly College of Science, “Applied Multivariate Statistical Analysis”, https://online.stat.psu.edu/stat505/lesson/14/14.7

9, 15 Shetty P. and Singh S., “Hierarchical Clustering: A Survey,” International Journal of Applied Research, Vol 7 Issue 4, Part C, 2021, https://www.allresearchjournal.com/archives/?year=2021&vol=7&issue=4&part=C&ArticleId=8484

10 Macnaugton-Smith, P., Williams, W., Dale, M., et al., “Dissimilarity Analysis: a new Technique of Hierarchical Sub-division,” Nature 202, 1034–1035 (1964), https://www.nature.com/articles/2021034a0

12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor and Francis, 2020, https://bradleyboehmke.github.io/HOML/

13 Cavalli-Sforza, L. L., and Edwards A. W. F., “Phylogenetic analysis: models and estimation procedures,” 1967, Evolution 21: 550–570 and Am. J. Hum. Genet. 19: 233–257, https://pmc.ncbi.nlm.nih.gov/articles/PMC1706274/

14 Sci-kit learn 1.3.2, 2.3 Clustering, https://scikit-learn.org/stable/modules/clustering.html

16 ملاحظات محاضرة من معهد ماساتشوستس للتكنولوجياOpenCourseWare ، 2017، https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction-to-clustering/video-5-hierarchical-clustering/

18 مذكرات محاضرة من جامعة واشنطن، 2001، https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf.

19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms

20 QCBS R Workshop Series, https://r.qcbs.ca/workshop09/book-en/clustering.html

21 Zhongheng Zhang et al., “Hierarchical cluster analysis in clinical research with heterogeneous study population: highlighting its visualization with R,” Annals of Translational Medicine. 2017 Feb; 5(4): 75, https://atm.amegroups.org/article/view/13789/14063

22, 23 Scit-kit learn 1.3.2 documentation, https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html

24 SciPy Manual v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html