$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
רכישת מערכי נתונים
מאגר הנתונים של UCI Heart Disease הוא מאגר נתונים נפוץ במחקר רפואי ולמידת מכונה לחיזוי מחלות לב. הוא מכיל מאפיינים קליניים ואבחנתיים שונים של מטופלים, המאפשרים לאנשי מקצוע בתחום הבריאות ולחוקרים לפתח מודלים לחיזוי מונחי נתונים. מאגר הנתונים מסווג אנשים כסבירים או לא סבירים שיחלו במחלת לב בהתבסס על מספר תכונות של מטופל, כולל גיל, מין, סוג כאב בחזה, לחץ דם, רמות כולסטרול ותוצאות אלקטרוקרדיוגרפיה (https://archive.ics.uci.edu/dataset/45/heart+disease)29. זרימת העבודה הכוללת של מסגרת חיזוי מחלות הלב המוצעת, הכוללת עיבוד נתונים מוקדם, יישום מודל מבוזר ושלבי הערכה, מוצגת באיור 1.
הגדרות סביבה ניסיוניות
הסביבה הניסיונית הוצבה על Apache Hadoop 3.x כמסגרת המחשוב המבוזר המרכזית לכל המימושים. האשכול השתמש בארכיטקטורת מאסטר-וורק עם צומת ראשי ייעודי אחד ומספר צמתים של עובדים. הצומת הראשי ניהל תזמון משימות, הקצאת משאבים ותיאום אשכולות באמצעות YARN (עוד משאב משא ומתן), בעוד שצומת העובדים ביצעו משימות חישוב מבוזרות במקביל לעיבוד יעיל של מאגרי נתונים רפואיים בקנה מידה גדול. כל צומת באשכול קיבל מעבדי Intel Core i7 (או שווה ערך), 16–32 GB של זיכרון RAM וכ-1TB אחסון.
קליטת נתונים ל-HDFS
אחסון מערכי נתונים
מערך הנתונים הניסויי נשמר ב-HDFS בפורמט מפוזל בלוקים, כאשר המשתנה היעד מצביע על נוכחות או היעדר מחלת לב, מופרד מקבוצת התכונות העצמאית, לפני האחסון בין צמתים באשכול. עיבוד מוקדם ספציפי לתכונה הוחל על כל בלוקי הנתונים המאוחסנים באמצעות תהליכי עבודה של MapReduce (תהליכי עבודה). מאפיינים מספריים, כולל גיל, לחץ דם, רמות כולסטרול וקצב לב, נורמו באמצעות מדד חזק המבוסס על טווח הרבעון, מה שהפחית את השפעת חריגים הנפוצים במיוחד במאגרי נתונים רפואיים שבהם ערכים קיצוניים עשויים לייצג מצבים קליניים נדירים או חמורים. משתנים קטגוריים עם יותר משתי קטגוריות, כגון cp, restecg ו-thal, הומרו באמצעות קידוד one-hot, המיר תכונות קטגוריות לייצוגים נומריים בינאריים התואמים לקלטי אלגוריתמים של למידת מכונה 30,31,32. כל פעולות העיבוד המוקדם בוצעו כמשימות MapReduce מבוזרות על פני בלוקי הנתונים של HDFS, מה שמבטיח יישום אחיד של כל צינור הצינור מבלי לרכז נתונים גולמיים בנקודה כלשהי.
חלוקה בין צמתים
מערך הנתונים חולק לקבוצות אימון ובדיקות בחלוקה של 80:20, כאשר 80% הוקצה לאימון ו-20% לבדיקה על נתונים בלתי נראים. חלוקה זו יושמה בעקביות על כל צמתים העובדים המפוזרים כדי להבטיח שכל צומת יעבד חתיכה פרופורציונלית ומייצגת של כל מערך הנתונים, תוך מניעת הטיית נתונים ותמיכה בהכללה מאוזנת של מודל. הסקיילינג הבטיח שכל המשתנים המספריים תורמים באופן שווה במהלך האימון המבוזר בכך שמנע מתכונות גדולות יותר להשתלט על תהליך הלמידה בין הצמתים. אסטרטגיית חלוקה מובנית זו שיפרה את אמינות החיזוי וסייעה למנוע התאמת יתר על ידי שמירה על הפרדה ברורה בין נתוני ההדרכה וההערכה ברחבי האשכול המבוזר.
קדם-עיבוד נתונים
טיפול ערכי חסר
מערכי נתונים רפואיים מכילים לעיתים קרובות רשומות לא שלמות עקב טעויות בהזנת נתונים, תקלות במכשיר או חוסר תגובה של מטופלים במהלך איסוף הנתונים הקליניים. לפני אימון המודלים, כל מאפייני מערך הנתונים נבדקו לאיתור ערכים חסרים או אפסים. שורות עם ערכים חסרים במאפיינים קליניים קריטיים, כגון לחץ דם, כולסטרול וקצב לב, זוהו וטופלו באמצעות הקצאת ממוצע למשתנים מספריים והטמעת מצב למשתנים קטגוריים. גישה זו שמרה על ההתפלגות הסטטיסטית של מערך הנתונים תוך הבטחה שאף דגימת אימון לא נזרקה ללא צורך, תוך שמירה על זמינות מקסימלית של נתונים ללמידת מודלים בין צמתים מבוזרים של HDFS.
קנה מידה של תכונות
מאפיינים מספריים, כולל גיל, לחץ דם, רמות כולסטרול ודופק מקסימלי, מציגים טווחי ערכים שונים משמעותית, מה שעלול לגרום לתכונות עם גדלים גדולים יותר להשפיע באופן לא פרופורציונלי על אימון המודלים. כדי להתמודד עם זה, הוחל סולם חזק המבוסס על טווח ה-interquartile על כל התכונות המספריות הרציפות. אסטרטגיית ההרחבה הזו מתאימה במיוחד למאגרי נתונים רפואיים שבהם ערכים קליניים קיצוניים המייצגים מצבים נדירים או חמורים עלולים לעוות את תהליך הלמידה. הסקיילינג הבטיח שכל המשתנים המספריים תרמו באופן שווה במהלך אימון המודל ויושם בעקביות על כל צמתי העובדים המפוזרים באמצעות תהליכי עבודה של MapReduce.
קידוד
משתנים קטגוריים עם יותר משתי קטגוריות מובחנות, כולל cp (סוג כאב בחזה), restecg (תוצאות אלקטרוקרדיוגרפיות במנוחה) ותאל (סוג תלסמיה), עברו שינוי באמצעות קידוד one-hot. תהליך זה המיר כל תכונה קטגורית לקבוצת עמודות אינדיקציה מספריות בינאריות, מה שיצר ייצוגים שאלגוריתמים של למידת מכונה יכולים לעבד ביעילות מבלי להטיל יחסים אורדינליים מלאכותיים בין ערכי קטגוריות. משתנים קטגוריים בינאריים נשמרו בצורתם המספרית המקורית. כל פעולות הקידוד בוצעו כעבודות MapReduce מבוזרות בין בלוקי הנתונים של HDFS, מה שמבטיח טרנספורמציה עקבית בכל חלקי מערך הנתונים המחולקים.
פיצול רכבת/ניסוי
מערך הנתונים המעובד מראש חולק לתת-קבוצות אימון ובדיקות באמצעות חלוקה של 80:20, כאשר 80% הוקצו לאימון מודלים ו-20% להערכת ביצועים על נתונים שלא נראו. משתנה היעד, המצביע על נוכחות או היעדר מחלת לב, הופרד מקבוצת התכונות העצמאיות לפני הפיצול. חלוקה זו יושמה באופן אחיד בכל צמתי HDFS מבוזרים כדי להבטיח שכל צומת עובד יעבד שבר פרופורציונלי ומייצוג של כל מאגר הנתונים, ובכך ימנע עיוות נתונים. אסטרטגיית הפיצול 80:20 שיפרה את אמינות החיזוי, שיפרה הכללת המודלים, ושמרה על הפרדה ברורה בין נתוני ההדרכה וההערכה בסביבת האשכול המבוזר, ובכך מנעה התאמת יתר.
מימוש מודל
מודל עץ ההחלטות המפוזר של Cluster Visualized Hadoop (CViHDDT) מסווג מטופלים לקטגוריות סיכון באמצעות עץ החלטות מבוזר. אלגוריתם עץ ההחלטה מפצל את מאגר הנתונים באופן רקורסיבי בהתבסס על התכונות המידעיות ביותר, וממקסם את ההפרדה בין מטופלים עם מחלת לב וללא מטופלים. במסגרת המבוזרת של Hadoop, תהליך זה מתבצע על פני מספר צמתים מחשוביים, ומאפשר עיבוד יעיל של מאגרי נתונים גדולים. הארכיטקטורה המבוזרת מפחיתה את זמן החישוב תוך שיפור יכולת ההרחבה. אלגוריתם Cluster Visualized Hadoop Distributed K-Nearest Neighbor (CViHDKNN) משתמש באותו מערך נתונים אך מיישם אסטרטגיית סיווג שונה. במקום לבנות עץ החלטות, המודל מזהה את המטופלים השכנים הקרובים ביותר בהתבסס על תכונות רפואיות כמו לחץ דם, רמות כולסטרול ואנגינה הנגרמת מפעילות גופנית. באמצעות חישוב מבוזר, אלגוריתם KNN מאגד ביעילות מטופלים בעלי מאפיינים רפואיים דומים תוך ניהול מורכבות חישובית.
עקרון הסיווג של מודל השכן הקרוב ביותר של K מבוזר מוצג באיור 2, שבו מופע חדש מוקצה למחלקה בהתבסס על המחלקה הרוב בין השכנים הקרובים ביותר. טכניקות ויזואליזציה של אשכולות מאפשרות לאנשי מקצוע בתחום הבריאות לזהות קבוצות מטופלים עם מאפיינים קליניים דומים, ובכך לשפר את הפרשנות ולתמוך בהמלצות טיפול מותאמות אישית. המסגרת המוצעת לחיזוי מחלות לב משלבת עיבוד נתונים מוקדם, אלגוריתמים מבוזרים של למידת מכונה וטכניקות ויזואליזציה של אשכולות. באמצעות ניצול יכולות המחשוב המבוזר של Hadoop, המסגרת מעבדת ביעילות מאגרי נתונים גדולים בתחום הבריאות תוך שמירה על דיוק חיזוי גבוה ויכולת פרשנות גבוהה, ומאפשרת גילוי מוקדם של מחלות לב ושיפור קבלת החלטות קליניות.
עץ החלטות מבוזר של Hadoop (CViHDDT) המוצג באשכול:
אימון עץ החלטות מבוזר
המודל המוצע ל-Cluster Visualized Hadoop Distributed Decision Tree (CViHDDT) שונה באופן מהותי מבניית עץ ההחלטה המסורתי בכך שהוא מפזר את תהליך בניית העץ על פני מספר צמתים באקוסיסטם של Hadoop במקום לבנות את כל העץ על מכונה אחת. צמתים של עובדים בודדים בונים עצי החלטה חלקיים מקומית על תת-הקבוצה שהוקצתה להם במאגר הנתונים באמצעות MapReduce או Apache Spark לעיבוד מקבילי. עצים חלקיים שנבנו מקומית משולבים לאחר מכן לעץ החלטות גלובלי מלא הכולל את מערך הנתונים המפוזר המלא. אסטרטגיית ההכשרה המבוזרת הזו מאיצה משמעותית את אימון המודלים, ומאפשרת למסגרת להתמודד ביעילות עם מאגרי נתונים רפואיים מרובי טרה-בייטים בקנה מידה רחב. תשתית המחשוב המקביל שמספקת Hadoop מבטיחה שמודל CViHDDT הוא בעל יכולת הרחבה ומתאים במיוחד לפתרונות בריאות מבוססי ביג דאטה. לאחר בניית עץ מבוזר, טכניקות ויזואליזציה של אשכולות מיושמות לשיפור יכולת הפרשנות של המודל על ידי קיבוץ צמתים בעץ ההחלטה לקבוצות של מטופלים עם מצבים רפואיים דומים באמצעות אלגוריתמים כמו k-ממוצעים ואשכולות היררכיים. תהליך הקיבוץ הזה מייצר קטגוריות סיכון משמעותיות קלינית—כגון מחלות לב קלות, בינוניות וחמורות—ומאפשר לאנשי מקצוע בתחום הבריאות לזהות דפוסים בנתוני המטופלים, להבין את התקדמות המחלה ולבנות תוכניות טיפול מותאמות אישית.
בחירת מאפיינים
לפני אימון עץ ההחלטות מבוזר, מודל CViHDDT מיישם עיבוד מוקדם מובנה וצינור בחירת תכונות על הנתונים הרפואיים הגולמיים שנקלטים מ-HDFS. ערכים חסרים מטופלים באמצעות אלגוריתמים לניהול רשומות קליניות לא שלמות ומניעת אובדן נתונים מבלי להשליך דגימות מטופלים. נרמול Robust Scaler מיושם על מאפיינים מספריים כמו לחץ דם ורמות כולסטרול כדי לצמצם את ההשפעה הלא פרופורציונלית של חריגים הנפוצים במאגרי נתונים רפואיים. משתנים קטגוריים כגון מגדר והיסטוריה משפחתית של מחלות לב עוברים שינוי באמצעות קידוד one-hot או קידוד תווית ליצירת ייצוגים מספריים התואמים לאלגוריתמים של למידת מכונה. לאחר העיבוד המקדים, מתבצעת חילוץ תכונות כדי לזהות את התכונות הקליניות המרכזיות שמנבאות את מחלות הלב. שלב זה מסיר תכונות לא רלוונטיות ומיותרות מהמאגר, מפחית עלויות חישוב בשלבי אימון מבוזרים לאחר מכן ומבטיח שרק התכונות המידעיות ביותר — כגון סוג כאב בחזה, לחץ דם במנוחה, כולסטרול בדם, קצב לב מקסימלי ודיכאון ST — יישמרו כקלטים לתהליך בניית עץ ההחלטות המבוזר. הפחתת תכונות שיטתית זו משפרת את יעילות המודל, מפחיתה את זמן האימון בין צמתים מבוזרים, ומשפרת את האמינות החיזוי הכוללת של מסגרת CViHDDT על ידי מיקוד תהליך הלמידה בתכונות עם עוצמת ההבחנה הקלינית החזקה ביותר.
MapReduce Workflow
מודל התכנות של MapReduce מהווה את עמוד השדרה החישובי של צינור ההכשרה המפוזר CViHDDT, ומאפשר עיבוד מקביל של מאגר הנתונים של מחלות הלב בכל צמתים העובדים באשכול Hadoop. בשלב המפה, כל צומת עובד מעבד באופן עצמאי את שבר הנתונים של HDFS שהוקצה לו, מחשב מבני עץ החלטות חלקיים וסטטיסטיקות פיצול מקומיות — כולל Information Gain וערכי אינדקס Gini — עבור כל מאפיין מועמד, מבלי לדרוש גישה לנתונים המאוחסנים בצמתים אחרים. בשלב ההפחתה, עצי החלקים המחושבים מקומית וסטטיסטיקות מספקות מצטברים בכל הצמתים כדי לבנות את עץ ההחלטות הגלובלי המלא, ומאחד את הידע המפוזר שנלמד בכל צומת למודל חיזוי מאוחד אחד. פירוק זה של תהליך בניית העצים באמצעות הפחתת מפות מאפשר למודל CViHDDT להתרחב באופן ישר עם מספר צמתי העובדים, מה שהופך ניתוח בזמן אמת של מערכי נתונים רפואיים בקנה מידה גדול לאפשרי חישובית. זרימת העבודה של MapReduce תומכת גם בביצוע מבוזר של נהלי ויזואליזציה של אשכולות, שבהם אלגוריתמים לאשכול מיושמים במקביל על בלוקי נתונים של HDFS כדי לקבץ רשומות מטופלים לקטגוריות סיכון בהתבסס על הקצאת צמתים בעץ ההחלטה שלהם. הערכת ביצועים של המודל המתקבל עושה שימוש בדיוק, זיכרון, ציון F1 ודיוק סיווג כמדדים עיקריים, כאשר הוויזואליזציה המבוזרת של אשכולות מפחיתה עוד את השליליות השגויה על ידי אפשרות גבולות החלטה מדויקים יותר בתוך העץ — משפרת ישירות את הרגישות לזיהוי חולים בסיכון ומגבירה את האמינות הקלינית של מסגרת חיזוי מחלות הלב CViHDDT.
שכנה K-nearest מבוזר של Hadoop Visualized Cluster (CViHDKNN)
אשכולות
מסגרת CViHDKNN (Cluster Visualized Hadoop Distributed K-Nearest Neighbor) מתחילה ביישום טכניקות אשכול על מאגר הנתונים של מחלות הלב לפני הסיווג, ומאגדת מטופלים עם מאפיינים רפואיים דומים לאשכולות קוהרנטיים לפני ביצוע החיפוש ב-KNN. מאגר הנתונים של מחלות לב, הכולל מאפיינים קליניים כמו גיל, רמת כולסטרול, לחץ דם, תוצאות ECG וקצב לב, מעובד מראש ומופץ בין צמתים באשכול Hadoop באמצעות HDFS. אלגוריתמים לאשכול, כולל K-Means ו-Hierarchical Clustering, מיושמים לאחר מכן על פני חלוקות הנתונים המפוזרות הללו כדי לחלק את מערך הנתונים לקבוצות של מטופלים החולקים פרופילים רפואיים קשורים. שלב הקיבוץ לפני הסיווג משרת מטרה חישובית קריטית: על ידי הגבלת מרחב החיפוש של KNN רק לאשכול הרלוונטי ביותר ולא לכל מאגר הנתונים, האלגוריתם מפחית באופן דרמטי את מספר חישובי המרחק הנדרשים לכל מופע שאילתה. הדמיית אשכולות אלו מספקת תועלת קלינית נוספת בכך שהיא מאפשרת זיהוי תת-קבוצות מטופלים עם מאפיינים רפואיים קרובים ותמיכה בסיווג משמעותי יותר של פרופילי סיכון לפני שלב הסיווג של השכן הקרוב ביותר. אופטימיזציה מבוססת אשכולות לא רק מפחיתה את העומס החישובי אלא גם משפרת את דיוק הסיווג בכך שהיא מבטיחה שכל מופע שאילתה מושווה רק לרשומות המטופלים הדומות ביותר מבחינה הקשרית, מה שהופך את הגישה למתאימה במיוחד למאגרי נתונים בקנה מידה גדול של מחלות לב, שבהם חישוב מרחקים ממצה על פני כל מערך הנתונים יהיה קשה חישובית.
KNN מבוזרת
רכיב KNN מבוזר ב-CViHDKNN מתמודד עם מגבלת הסקלאביליות הבסיסית של KNN המסורתי, שמחייבת טעינת כל מערך הנתונים לזיכרון לפני חישוב המרחקים בין מופע השאילתה לכל נקודות הנתונים המאוחסנות. במסגרת CViHDKNN, חישוב המרחק הזה מתבצע במקביל בין מספר צמתים עובדים באשכול Hadoop באמצעות מחיצות נתונים מבוזרות HDFS, כדי להבטיח שאין צורך בצומת יחיד לעיבוד מערך הנתונים המלא. כל צומת עובד מחשב באופן עצמאי את המרחק בין מופע השאילתה לרשומות המטופל המאוחסנות בשבר הנתונים של HDFS שהוקצה לו מקומית, ומזהה את השכנים הקרובים ביותר בתוך המחיצה שלו. על ידי ניצול יכולות העיבוד המקביל של Hadoop, CViHDKNN משפר באופן דרמטי את יכולת ההרחבה ומאפשר ניהול יעיל של כמויות עצומות של נתוני מטופלים הקשורים לבריאות. ארכיטקטורה מבוזרת זו גם משפרת את אבטחת הנתונים, שכן רשומות מטופלים רגישות נשארות בסביבת אשכול מבוזרת ולא מועברות לשרתי ענן חיצוניים או למכונות מקומיות מרכזיות. השילוב של הפחתת מרחבי חיפוש מונחית אשכולות וחישוב מרחק מבוזר ב-Hadoop מניב מערכת שמשיגת יעילות חישובית ודיוק חיזוי, ומאפשרת חיזוי מחלות לב בזמן אמת במאגרי נתונים רפואיים בקנה מידה גדול. תוצאות ניסוי מאשרות כי היישום המפוזר משיג דיוק סיווג של 85.25%, מה שמייצג שיפור משמעותי בביצועים לעומת קו הבסיס המסורתי של KNN הלא-מבוזר, הנובע ישירות מאסטרטגיית העיבוד המפוזרת המשופרת באשכולות.
סיווג
שלב הסיווג של CViHDKNN מקצה כל מקרה של מטופל שאילתה למחלקת מחלות לב בהתבסס על רוב ההצבעה בקרב K השכנים הקרובים ביותר שזוהו בתהליך החיפוש המבוזר. בחירת ערך K משפיעה ישירות על תוצאות הסיווג ועל דיוק חיזוי. כאשר K = 1, מופע השאילתה מוקצה לתווית המחלקה של השכן הקרוב ביותר שלו, מה שמוביל לגבול החלטה מקומי מאוד שעשוי להיות רגיש לרעש בנתוני האימון. כאשר K = 3, הסיווג נקבע על ידי המחלקה הרובית מבין שלושת השכנים הקרובים ביותר — לדוגמה, אם שני שכנים שייכים למחלקה 1 (ללא מחלת לב) ואחד שייך למחלקה 2 (מחלת לב קיימת), מופע השאילתות מסווג כמחלקה 1, מה שמספק החלטה יציבה וסובלת יותר לרעש. שלב MapReduce מאגד את השכנים הקרובים ביותר שמזוהים מקומית מכל צמתי העובדים לרשימה מדורגת גלובלית, ממנה נבחרים השכנים הקרובים ביותר, ואז מחשב את קולות הרוב כדי לייצר את תחזית המחלקה הסופית. ביצועי מסגרת הסיווג CViHDKNN מוערכים באמצעות דיוק, זיכרון, ציון F1 ודיוק סיווג כללי כמדדים עיקריים. השילוב של חיפוש מוגבל באשכול עם הצבעה ברוב מבוזר יוצר גבולות החלטות מדויקים ומדויקים יותר מאשר KNN סטנדרטי, מפחית שליליות שגויות בזיהוי מטופלים בסיכון ומשפר רגישות, שניהם דרישות קריטיות לחיזוי קליני אמין של מחלות לב בסביבות ניתוח בריאות מבוזרות בקנה מידה גדול.