چگونه یک مدل طبقه بندی یادگیری ماشین ساده بسازیم.

وقتی کلمه طبقه بندی را می شنوید، چیزی که به ذهنتان خطور می کند گروهی از چیزها بر اساس تفاوت هایشان است. به همین ترتیب، وقتی صحبت از یادگیری ماشینی می شود، بر اساس ویژگی ها و داده های جمع آوری شده، مدل یادگیری ماشینی می تواند تمایز بین کلاس های مختلف را از طریق الگوهای متفاوتی که توسط مدل یادگیری ماشین یافت می شود، بیاموزد. در این مقاله، نحوه ساخت یک مدل یادگیری ماشینی طبقه بندی نظارت شده را خواهید آموخت.
مجموعه داده ای که استفاده می شود یک مجموعه داده بارگذاری شده است که از kaggle به دست آمده است. مدلی که در این مقاله آموزش میدهیم میتواند امکان بازپرداخت وام خود را بر اساس شرایط شخصی پیشبینی کند، Y برای تایید وام و N برای وام رد شده است.
آموزش مدل.
وارد کردن کتابخانه های مفید
import numpy as np
import pandas as pd
import matplotlib as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix, classification_report
import seaborn as sns
ما وارد می کنیم ناپخته، یک کتابخانه مبتنی بر پایتون که برای محاسبات عددی استفاده می شود.
پانداها: برای خواندن مجموعه داده و ذخیره آن در قالب قاب داده به منظور انجام تجزیه و تحلیل، تمیز کردن و برخی محاسبات در قاب داده.
فرا گرفتن: همچنین به عنوان Scikit-learn شناخته میشود، که یکی از محبوبترین کتابخانهها است که شامل چندین کلاس و چند توابع برای مدلهای تحلیل و یادگیری ماشین است، یکی از آنها که در مقاله از آن استفاده خواهیم کرد، طبقهبندی جنگل تصادفی است. مدل طبقهبندیکننده جنگل تصادفی یک مدل طبقهبندی بسیار قدرتمند است که میتواند با تنظیم کمی یا بدون تنظیم فراپارامتر به دقت بالایی دست یابد.
خواندن داده ها
با استفاده از کتابخانه پانداها که به عنوان ‘pd’ وارد شده است، مجموعه داده را با استفاده از مسیر فایل مجموعه داده وارد می کنیم.df=pd.read_csv('/Users/user/Documents/loan_sanction_train.csv')
برای بررسی اینکه آیا فایل را به درستی وارد کرده اید یا نه، تایپ کنید:df.head()
خروجی:
تجزیه و تحلیل داده های نمایشی
بیایید قبل از شروع آموزش مدل، اطلاعات بیشتری در مورد داده های خود پیدا کنیم.df.info()
خروجی:
از بالا وجود 614 سطر و 13 ستون را استنباط می کنیم. همچنین میتوانیم برخی از مقادیر را مشاهده کنیم که در آنها گم شدهاند، برای مشاهده تعداد مقادیر گمشده در هر ستون،df.isnull().sum()
خروجی:
در مقالههای بعدی در مورد نحوه رسیدگی به مقادیر از دست رفته بحث خواهیم کرد، در حال حاضر، بیایید همه ردیفهایی را که مقادیر گمشده دارند حذف کنیم.df=df.dropna()
میتوانیم خلاصهای از مقادیر آماری را بدست آوریم که شامل، میانگین، حداقل مقدار، حداکثر مقدار، انحراف معیار، صدک 25، صدک 50 (وسط)، صدک 75 و تعداد ستونهای عددی در توزیع است.df.describe()
خروجی:
پاکسازی و آماده سازی داده ها
مدلهای یادگیری ماشینی فقط مقادیر عددی و بولی (درست یا نادرست) را میپذیرند، بنابراین در ویژگیها یا ستونهای خود، باید تمام رشتهها یا اشیاء را به اعداد صحیح، شناور یا مقادیر بولی تبدیل کنیم.
ما می توانیم دسته بندی های مختلف در ویژگی را با کد بررسی کنیم.
مثال:df['Property_Area'].value_counts()
خروجی:
سپس میتوانیم همه ویژگیهایی را که عددی یا بولی نیستند، با ایجاد یک تابع، فراخوانی df.atype (“category”).cat.codes و عبور دادن دیتافریم و ستونها از میان آن، تبدیل کنیم.def category_val(df,col):
df[col]=df[col].astype('category')
df[col]=df[col].cat.codes
return df[col]df['Gender']=category_val(df,'Gender')
df['Married']=category_val(df,'Married')
df['Education']=category_val(df,'Education')
df['Property_Area']=category_val(df,'Property_Area')
df['Self_Employed']=category_val(df,'Self_Employed')
df['Dependents']=category_val(df,'Dependents')
میتوانید با استفاده از تابع value_counts تأیید کنید تا مقادیر دستهبندی جدید خود را ببینید.df['Property_Area'].value_counts()
خروجی:
ساختمان مدل
حالا که داده هایمان را کمی پاک کردیم، بیایید ویژگی ها و متغیر هدف را تقسیم کنیم، فرض کنیم x ویژگی های ما هستند و y هدف ما است.
x= df.drop(['Loan_ID','Loan_Status'], axis =1)
y=df['Loan_Status']
ما از تابع dataframe.drop برای حذف ویژگی هایی که استفاده نمی شود و ویژگی هدف استفاده می کنیم، سپس ویژگی هدف را در y جمع آوری می کنیم.
در مرحله بعد، داده های خود را به یک مجموعه آموزشی و یک مجموعه آزمایشی تقسیم می کنیم. برای بررسی عملکرد مدل ما بر روی برخی از داده های دنیای واقعی، از یک تقسیم آزمایشی استفاده می کنیم، مجموعه داده های خود را به یک مجموعه آموزشی و مجموعه آزمایشی تقسیم می کنیم. ما مدل خود را با مجموعه آموزشی آموزش می دهیم و نحوه عملکرد آن را در مجموعه تست ارزیابی می کنیم.
برای تقسیم مدل خود، از تابع train_test_split استفاده می کنیم که اندازه آزمایش ما را روی 30٪ تنظیم می کند (به طور کلی توصیه می شود از 20٪ – 30٪ از مجموعه داده خود برای مجموعه آزمایشی استفاده کنیم تا هنگام آموزش مدل داده های زیادی از دست ندهیم).
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=True)
در مرحله بعد، مدل طبقه بندی خود را بارگذاری می کنیم تا مورد استفاده قرار گیرد، که در این مورد، طبقه بندی جنگل تصادفی است.
طبقهبندیکننده جنگل تصادفی از درختهای تصمیمگیری چندگانه ساخته شده است، که مدلی است که بر اساس پارامترهای خاص به یک نتیجه خاص منشعب میشود.
سپس مدل جنگل تصادفی از درختهای تصمیمگیری چندگانه ساخته میشود که هزاران شاخه بر روی ویژگیها ایجاد میکند و نتایج را ارزیابی میکند.rf=RandomForestClassifier()
پس از بارگذاری مدل خود، مجموعه آموزشی را در مدل خود قرار می دهیم.rf.fit(x_train,y_train)
ارزیابی مدل
روشهای مختلفی برای ارزیابی یادگیری ماشینی ما در این مقاله وجود دارد که یکی را در نظر میگیریم.
دقت
دقت تعیین میکند که مدل شما در هنگام پیشبینی دادههای هدف آزمایشی در مقایسه با نتایج واقعی هدف چقدر خوب عمل کرده است.
ما می توانیم دقت مدل خود را پس از تطبیق مدل با کد ساده بررسی کنیم.rf.score(x_test,y_test)
این امتیاز 0.743 را می دهد که در صورت تبدیل 74.3٪ است.
تمام، شما اولین مدل یادگیری ماشینی خود را با موفقیت آموزش داده اید. در مقالههای آینده، نحوه آموزش مدلهای یادگیری ماشینی بدون نظارت، نحوه استقرار آنها و سایر روشهای ارزیابی مدلهای یادگیری ماشین را در نظر خواهیم گرفت.
لایک کنید و نظرات خود را در زیر کامنت کنید.