בניית המסווג הראשון של למידת מכונות בפייתון



מאמר זה יעזור לכם לבנות מסווג למידת מכונה בפייתון מ- Scratch. זה גם יספק לך ידע מפורט על סיווג.

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

סקירה כללית של למידת מכונה

למידת מכונה היא מושג המאפשר למכונה ללמוד מדוגמאות וניסיון, וגם זה מבלי שתוכנת במפורש. אז במקום שתכתוב את הקוד, מה שאתה עושה זה שאתה מזין נתונים לאלגוריתם הגנרי, והאלגוריתם / המכונה בונה את ההיגיון על סמך הנתונים הנתונים.





מסווג למידת מכונה

למידת מכונה כוללת את היכולת של מכונות לקבל החלטות, להעריך את תוצאות פעולותיהן ולשפר את התנהגותן כדי להשיג תוצאות טובות יותר ברציפות.



תהליך הלמידה מתרחש בשלוש דרכים עיקריות

  • למידה מפוקחת
  • למידה ללא פיקוח
  • לימוד עם חיזוקים

תבנית למסווגי למידת מכונה

כלים ללימוד מכונה מסופקים בצורה נוחה למדי בספריית פיתון הנקראת scikit-learning, ופשוטים מאוד לגישה וליישום.



התקן את scikit-learning דרך שורת הפקודה באמצעות:

pip install -U scikit-learning

אם אתה משתמש באנקונדה, בהנחיית אנקונדה אתה יכול להשתמש ב:

conda להתקין scikit-learning

ההתקנה דורשת התקנה מוקדמת של חבילות NumPy ו- ​​SciPy במערכת שלך.

עיבוד מקדים: השלב הראשון והנחוץ ביותר בכל ניתוח נתונים מבוסס למידה ממוחשבת הוא החלק העיבוד המקדים. ייצוג נכון וניקוי נתונים חיוניים בהחלט למודל ה- ML להתאמן היטב ולבצע ביצועים פוטנציאליים.

שלב 1 - ייבא ספריות נחוצות

ייבא numpy כמו np יבוא פנדות כ pd ייבא matplotlib.pyplot כ plt

שלב 2 - ייבא את מערך הנתונים

מערך נתונים = pd.read_csv ()

לאחר מכן אנו מחלקים את מערך הנתונים למשתנים עצמאיים ותלויים. המשתנים הבלתי תלויים יהיו נתוני הקלט, והמשתנה התלוי הוא נתוני הפלט.

X = dataset.iloc []. ערכים y = dataset.iloc []. ערכים

שלב 3 - טיפול בנתונים חסרים

מערך הנתונים עשוי להכיל ערכים ריקים או ריקים, העלולים לגרום לשגיאות בתוצאות שלנו. לפיכך עלינו להתמודד עם ערכים כאלה. נוהג נפוץ הוא להחליף את ערכי null בערך משותף, כמו הממוצע או הערך השכיח ביותר באותה עמודה.

מ- sklearn.preprocessing יבוא imputer imputer = imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

שלב 4 - המרת משתנים קטגוריים למשתנים מספריים

מ- sklearn.preprocessing יבוא LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

כעת, לאחר הקידוד, ייתכן שקורה שהמכונה מניחה את הנתונים המספריים כדירוג עבור העמודות המקודדות. לפיכך, כדי לספק משקל שווה, עלינו להמיר את המספרים לווקטורים חמים אחת, באמצעות המחלקה OneHotEncoder.

מ- sklearn.preprocessing יבוא OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

שלב 5 - בצע קנה מידה

צעד זה הוא להתמודד עם פערים הנובעים מסולם לא משתנה של המשתנים. לפיכך, אנו מגדילים את כולם לאותו טווח, כך שהם מקבלים משקל שווה תוך כדי קלט למודל. אנו משתמשים באובייקט של מחלקת StandardScaler למטרה זו.

מ- sklearn.preprocessing יבוא StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

שלב 6 - פצל את מערך הנתונים לנתוני הדרכה ובדיקה

כשלב האחרון של עיבוד מקדים, יש לחלק את מערך הנתונים למערך אימונים וערכת מבחנים. היחס הסטנדרטי של פיצול מבחן הרכבת הוא 75% -25%. אנו יכולים לשנות בהתאם לדרישות. פונקציית train_test_split () יכולה לעשות זאת עבורנו.

מ- sklearn.model_selection ייבוא ​​train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

בניית מודל: שלב זה הוא למעשה די פשוט. לאחר שנחליט איזה מודל להחיל על הנתונים, אנו יכולים ליצור אובייקט מהמחלקה המתאימה שלו ולהתאים את האובייקט במערך האימונים שלנו, בהתחשב ב- X_train כקלט ו- y_train בתור הפלט.

מ- sklearn. ייבוא ​​סיווג = () classifier.fit (X_train, y_train)

המודל מאומן ומוכן כעת. כעת אנו יכולים להחיל את המודל שלנו על מערך הבדיקות ולמצוא פלט צפוי.

y_pred = classifier.predict (X_test)

תוצאות צפייה: ניתן להעריך את ביצועיו של מסווג על ידי הפרמטרים של דיוק, דיוק, זיכרון וציון f1. ניתן לראות ערכים אלה בשיטה המכונה klassifiseringsrapport (). ניתן גם לראות את מטריצת הבלבול המסייעת לנו לדעת כמה מאותה קטגוריית נתונים סווגו כהלכה.

סוגי מפעילים ב- javascript
מ- sklearn.metrics יבוא confusion_matrix cm = confusion_matrix (y_test, y_pred) הדפס (cm) מ- sklearn.metrics יבוא סיווג_דווח target_names = [] הדפס (class__port (y_test, y_pred, target_names = target_names))

בעיה בסיווג למידת מכונה

נשתמש במאגר הנתונים האיריסי הפופולרי והפשוט ביותר, המכיל ממדי פרחים בשלוש קטגוריות - אירוס-סטוסה, איריס-ורסיקולור ואיריס-וירג'ניקה. יש 150 ערכים במערך הנתונים.

# ייבוא ​​הספריות ייבא numpy כ- np ייבוא ​​matplotlib.pyplot כ- plt ייבוא ​​פנדות כ pd # ייבוא ​​מערך הנתונים של מערך הנתונים = pd.read_csv ('iris.csv')

הבה נראה את מערך הנתונים כעת.

dataset.head ()

יש לנו 4 משתנים בלתי תלויים (למעט ה- Id), כלומר מספרי העמודות 1-4, ועמודה 5 היא המשתנה התלוי. כדי שנוכל להפריד ביניהם.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

כעת נוכל לפצל את מערך הנתונים לאימון ובדיקה.

# פיצול מערך הנתונים למערך ההדרכה ומערכת הבדיקה מ- sklearn.model_selection ייבוא ​​train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

כעת ניישם מסווג רגרסיה לוגיסטית על מערך הנתונים.

# בניית והדרכת המודל מ- sklearn.linear_model יבוא LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # חיזוי תוצאות ערכת הבדיקה y_pred = classifier.predict (X_test)

השלב האחרון יהיה ניתוח ביצועי המודל המאומן.

# הפיכת מטריקס הבלבול מ- sklearn.metrics יבוא confusion_matrix cm = confusion_matrix (y_test, y_pred) הדפסה (cm)

זה מראה לנו ש -13 ערכים מהקטגוריה הראשונה, 11 מהשנייה ו -9 מהקטגוריה השלישית ניבאו נכון על ידי המודל.

# יצירת דיוק, דיוק, זיכרון וציון f1 מ- sklearn.metrics ייבוא ​​סיווג_הדיווח target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] הדפס (class_report (y_test, y_pred, target_names = target_names) )

הדו'ח מציג את הדיוק, הזיכרון, ציון ה- F1 ודיוק המודל במערכת הבדיקות שלנו, המורכבת מ -38 ערכים (25% מערך הנתונים).

מזל טוב, יצרת והטמעת את מסווג למידת המחשב הראשון שלך בפייתון בהצלחה! כדי לקבל ידע מעמיק יחד עם היישומים השונים שלה, תוכלו להירשם להכשרה מקוונת של Python באינטרנט עם תמיכה 24/7 וגישה לכל החיים.