Weka (למידת מכונה)

Weka (ראשי התיבות של Waikato Environment for Knowledge Analysis) היא חבילה פופולרית של התוכנות הנפוצות ללמידת מכונה, שנכתבו בשפת Java, שפותחה באוניברסיטת Waikato, ניו זילנד. Weka היא תוכנה חופשית תחת הרישיון הציבורי הכללי של גנו. החבילה קרויה על שם עוף הוקה אשר נפוצה בניו זילנד בלבד.

== תיאור ==
Weka היא יישום שולחן עבודה המכיל אוסף של כלי ויזואליזציה ואלגוריתמים לניתוח נתונים ומודלי חיזוי, יחד עם ממשקי משתמש גרפיים עבור גישה קלה לפונקציות אלה. הגרסה העדכנית והמלאה יותר המבוססת ג'אווה (Weka 3), עבורה התחיל הפיתוח בשנת 1997, משמשת בתחומי יישום שונים, ובפרט למטרות לימוד ומחקר.

היתרונות של Weka כוללים:
* גישה פתוחה תחת הרישיון הציבורי הכללי (GNU).
* ניידות, שכן היא תיושם במלואה בשפת תכנות - Java ובכך פועלת כמעט על כל פלטפורמת מחשוב מודרנית.
* אוסף מקיף של טכניקות מודל לעיבוד מקדים של נתונים ושיטות מידול.
* קלות השימוש בשל ממשקי המשתמש הגרפיים שלה.
כל הטכניקות של Weka מבוססות על ההנחה כי הנתונים זמינים כקובץ שטוח אחד או כטבלה בודדת, כאשר כל נתון מתואר על ידי מספר קבוע של תכוניות (בדרך כלל, תכוניות מספריות או נומינליות, אך גם סוגים מסוימים של תכוניות אחרות נתמכים). Weka מספקת גישת מסדי נתונים של SQL באמצעות קישוריות מסד נתונים Java ויכולה לעבד את התוצאה שהוחזרה על ידי שאילתת מסד נתונים. היא אינה מסוגלת לבצע כריית נתונים רב-יחסיים, אך ישנה תוכנה נפרדת להמרת אוסף טבלאות למסד נתונים המקושר לטבלה אחת כך שיתאים לעיבוד באמצעות Weka. תחום חשוב נוסף שכיום אינו מכוסה באלגוריתם שכלול ב-Weka הוא מודל רציף.

== ממשקי משתמש ==
ממשק המשתמש הראשי של Weka הוא ה - Explorer, אך בעצם ניתן לגשת לאותה פונקציונליות דרך ממשק מבוסס רכיב, זרימת ידע, ומתוך שורת הפקודה. בנוסף, קיים הנסיין, אשר מאפשר השוואה שיטתית עבור ביצועים חזויים של האלגוריתמים במסגרת הלמידה החישובית של Weka, על אוסף של מערכי נתונים.

סייר הממשק כולל מספר לוחות הבטחת גישה למרכיבים העיקריים של שולחן העבודה:
* ללוח של המעבד המקדים יש שירותים לייבוא נתונים ממסד נתונים, קבצים מופרדים בפסיקים (CSV) וכו', עיבוד המקדים של נתונים אלה נקרא אלגוריתם סינון. מסננים אלה יכולים לשמש כדי להפוך את הנתונים (למשל, הפיכת תכוניות נומריות לדיסקרטיות), ולאפשר מחיקת מקרים ותכוניות לפי קריטריונים ספציפיים.
* לוח הסיווג מאפשר החלת אלגוריתמי סיווג ורגרסיה ('מסווגים' שנקראים 'ללא אבחנה' ב Weka) אל בסיס הנתונים כדי להעריך את רמת הדיוק של מודל החיזוי שכתוצאה מכך, ממחיש תחזיות שגויות, מאפיין מקלט הפעלה (ROC) עקום וכו', או כדי להעריך את המודל עצמו (אם המודל הוא נוח ויזואלית כמו, למשל, עץ החלטה).
* הלוח המשותף מספק גישה הלומדת על פי חוקים אסוציאטיביים שמנסים לזהות את כל יחסי הגומלין החשובים בין התכוניות בנתונים. 
* לוח הקלסטר (Cluster) מספק גישה לטכניקות קיבוץ ב- Weka, למשל, האלגוריתם הפשוט k-means. יש גם יישום של אלגוריתם מקסום התוחלת (Expectation Maximization) ללימוד תערובת של התפלגויות נורמליות.
* לוח התכוניות הנבחר מספק אלגוריתמים לזיהוי התכוניות החזויות ביותר במערך.
* הלוח הוויזואלי מציג מטריצת גרף פיזור, בו מגרשים בודדים, מפוזרים ומוגדלים יכולים להיבחר וניתנים לניתוח נוסף באמצעות אופרטורי מיון שונים.

== חבילות הרחבה ==
בגרסת 3.7.2 (שאינה זמינה בגרסת ה"ספר" של Weka) התווסף מנהל חבילות, על מנת לאפשר התקנה קלה של חבילות הרחבה.
מספר שימושים שהיו בעבר כלולים ב-Weka הועברו לתוך חבילות הרחבה, אך השינוי הזה גם מקל על אחרים לתרום להרחבות ב-Weka ולשמור על התוכנה, כמו הארכיטקטורה המודולרית המאפשרת עדכונים עצמאיים של ליבת Weka והרחבות אינדיוידואליות.

== היסטוריה ==
גרסת Weka המקורית שאינה מבוססת Java הייתה Tcl/Tk חזיתי (בעיקר צד שלישי) של מודלים אלגוריתמים אשר יושמו בשפות תכנות אחרות, בתוספת לכלי עזר עיבוד מקדים של נתונים בשפת C, ומערכת מבוססת-מקאפי (Makefile) לעריכת ניסויי למידת מכונה. גרסה מקורית זו נועדה בראש ובראשונה ככלי לניתוח נתונים מתחומים חקלאיים.

== נקודות ציון ==
* בשנת 1993, אוניברסיטת וויקאטו בניו זילנד החלה בפיתוח הגרסה המקורית של Weka, אשר הפך שילוב של Tcl/Tk, C, Makefiles.
* בשנת 1997, הוחלט לפתח מחדש את Weka מאפס ב- Java כולל מימושים של דגמי אלגוריתמים.
* בשנת 2005, Weka קיבל את פרס SIGKDD כריית נתונים ושירות גילוי ידע.
* ב-2006, חברת Pentaho רכשה רישיון בלעדי לשימוש ב Weka עבור מודיעין עסקי. הדבר מהווה את כריית הנתונים האנליטיים לניבוי רכיב של חבילת הבינה העסקית.
* בדירוג כל הזמנים על Sourceforge.net ליום 26-8-2011, 243 (עם 2,487,213 הורדות).

== כלים קשורים ==
* סביבה לפיתוח KDD-יישומים נתמכים על ידי מדד מבנים (Elki) הוא פרויקט דומה ל- Weka עם דגש על ניתוח אשכולות, למשל, שיטות ללא השגחה.
* KNIME היא למידת מכונה וכריית נתוני תוכנה המיושמת ב- Java.
* ניתוח מסיבי באינטרנט (MOA) הוא פרויקט קוד פתוח עבור כרייה בקנה מידה גדולה של זרמי נתונים, שפותחו גם באונ' וויקאטו בניו זילנד.
* מעצב עצבי הוא תוכנת כריית נתונים המבוססים על טכניקות למידה עמוקות אשר נכתבו בשפת C++.
* אורנג' הוא פרויקט קוד פתוח דומה עבור כריית נתונים, למידת מכונה וויזואליזציה tar כתוב בשפות Python ו- C++.
* RapidMiner היא מסגרת לימוד מכונה מסחרית המיושמת ב- Java שמשלבת Weka.

== ראו גם ==
* למידת מכונה
* כריית נתונים

== קישורים חיצוניים ==

* באוניברסיטת מנילהncamerica. kgm בניו זילנד
* [http://weka.wikispaces.com/ Weka Wiki הרשמי עם שאלות נפוצות, HOWTOs, code-snippets]  וכו'.

== הערות שוליים==

קטגוריה:תוכנה חופשית
קטגוריה:למידת מכונה