آیا می خواهید با آن شروع کنید فراگیری ماشین?
من یک آموزش ساده و آسان برای مبتدیان کامل ایجاد کرده ام. با هم، مراحل اساسی آموزش یک مدل یادگیری ماشین را مرور خواهیم کرد.
ضمن توضیح مراحل آموزش یک مدل، یک مثال بسیار ابتدایی از یک مسئله یادگیری ماشینی را نیز بیان می کنم. بنابراین، اگر میخواهید ادامه دهید، میتوانید این مجموعه داده نمونه را از اینجا دانلود کنید پیوند.
این فقط یک مجموعه داده نمونه برای کمک به شما برای شروع یادگیری ماشین است.
ما 18 ارزش افراد در سنین و جنسیت های مختلف داریم که موسیقی مورد علاقه آنها تعریف شده است. با استفاده از ویژگی های "سن" و "جنسیت" سعی خواهیم کرد حدس بزنیم که کدام سبک موسیقی مورد علاقه آنهاست.
توجه: 1 و 0 در این مجموعه داده به جنسیتهای زن و مرد اختصاص داده شده است.
با این حال، اگر نمی خواهید از این مثال پیروی کنید، این نیز کاملاً خوب است. تمام این مراحل را با جزئیات توضیح خواهم داد. بنابراین، بیایید شیرجه بزنیم!
اولین چیزهایی که باید بدانید
قبل از ورود به مراحل آموزش مدل، نکاتی را روشن می کنیم. یادگیری ماشینی است هوش مصنوعی رشته ای که بر توسعه الگوریتم هایی تمرکز دارد که می توانند از داده ها یاد بگیرند.
برای انجام این کار، مدلهای یادگیری ماشینی بر روی مجموعه دادهای آموزش داده میشوند که به مدل میآموزد چگونه پیشبینیهای صحیح انجام دهد یا طبقه بندی روی داده های تازه و قبلا ناشناخته
خب این مدل ها چیه؟ آ مدل یادگیری ماشین شبیه دستوری است که کامپیوتر برای تولید پیشبینیها یا انتخابهای داده استفاده میکند.
یک مدل، مانند یک دستور العمل، از مجموعه ای از دستورالعمل ها برای ارزیابی داده ها و ایجاد پیش بینی یا قضاوت بر اساس الگوهای موجود در داده ها پیروی می کند. هر چه مدل بر روی داده های بیشتری آموزش ببیند، پیش بینی های آن دقیق تر می شود.
چه نوع مدل هایی را می توانیم آموزش دهیم؟
بیایید ببینیم مدل های اصلی یادگیری ماشین چیست.
- رگرسیون خطی: مدلی که یک متغیر هدف پیوسته را از یک یا چند متغیر ورودی پیش بینی می کند.
- شبکه های عصبی: شبکه ای از گره های مرتبط که می توانند الگوهای پیچیده در داده ها را تشخیص دهند.
- درختان تصمیم: یک رویکرد تصمیمگیری که بر اساس زنجیرهای از گزارههای انشعاب if-else ساخته شده است.
- خوشه بندی: مجموعه ای از مدل ها که نقاط داده قابل مقایسه را بر اساس شباهت گروه بندی می کند.
- رگرسیون لجستیک: مدلی برای مسائل طبقه بندی باینری که در آن متغیر هدف دارای دو مقدار بالقوه است.
- درختان تصمیم: یک رویکرد تصمیمگیری که بر اساس زنجیرهای از گزارههای انشعاب if-else ساخته شده است.
- جنگل تصادفی: یک مدل مجموعه ای متشکل از درختان تصمیم گیری متعدد. آنها اغلب برای کاربردهای طبقه بندی و رگرسیون استفاده می شوند.
- K-Nearest Neighbors: مدلی که متغیر هدف را با استفاده از k-نزدیک ترین نقاط داده در مجموعه آموزشی پیش بینی می کند.
بسته به مشکل و مجموعه دادههایمان، تصمیم میگیریم که کدام مدل یادگیری ماشینی با شرایط ما سازگاری بیشتری دارد. با این حال، ما بعداً به این موضوع باز خواهیم گشت. حالا بیایید آموزش مدل خود را شروع کنیم. امیدوارم قبلا دانلود کرده باشید مجموعه داده اگر می خواهید از ما الگو بگیرید.
همچنین، توصیه می کنم داشته باشید نوت بوک ژوپیتر روی ماشین محلی شما نصب شده و از آن برای پروژه های یادگیری ماشینی خود استفاده می کند.
1: مشکل را تعریف کنید
مرحله اول در آموزش یادگیری ماشینی مدل تعریف مسئله ای است که باید حل شود. این مستلزم انتخاب متغیرهایی است که میخواهید پیشبینی کنید (معروف به متغیر هدف) و متغیرهایی که برای تولید آن پیشبینیها استفاده میشوند (معروف به ویژگیها یا پیشبینیکنندهها).
همچنین باید تصمیم بگیرید که چه نوع مشکل یادگیری ماشینی را میخواهید حل کنید (طبقهبندی، رگرسیون، خوشهبندی و غیره) و چه نوع دادههایی را برای جمعآوری یا به دست آوردن برای آموزش مدل خود نیاز دارید.
نوع مدلی که به کار می برید با توجه به نوع مشکل یادگیری ماشینی که قصد حل آن را دارید تعیین می شود. طبقه بندی، رگرسیون و خوشه بندی سه دسته اصلی هستند چالش های یادگیری ماشینی. هنگامی که می خواهید یک متغیر طبقه بندی شده را پیش بینی کنید، مانند اینکه ایمیل اسپم است یا نه، از طبقه بندی استفاده می کنید.
وقتی می خواهید یک متغیر پیوسته مانند قیمت یک خانه را پیش بینی کنید، از رگرسیون استفاده می کنید. خوشه بندی برای گردآوری اقلام داده قابل مقایسه بر اساس اشتراکات آنها استفاده می شود.
اگر به مثال خود نگاه کنیم؛ چالش ما این است که سبک موسیقی ترجیحی یک فرد را بر اساس جنسیت و سن آنها تعیین کنیم. ما از مجموعه دادهای از 18 نفر برای این مثال و اطلاعاتی در مورد سن، جنسیت و سبک موسیقی مورد علاقه آنها استفاده خواهیم کرد.
2. داده ها را آماده کنید
بعد از اینکه مشکل را مشخص کردید، باید داده ها را برای آموزش مدل آماده کنید. این مستلزم تمیز کردن و پردازش داده ها است. بنابراین، ما می توانیم اطمینان حاصل کنیم که در قالبی است که الگوریتم یادگیری ماشین می توانید استفاده کنید.
این ممکن است شامل فعالیتهایی مانند حذف مقادیر از دست رفته، تبدیل دادههای دستهبندی به دادههای عددی، و مقیاسبندی یا عادیسازی دادهها برای اطمینان از اینکه همه ویژگیها در یک مقیاس هستند، باشد.
به عنوان مثال، به این ترتیب مقادیر از دست رفته را حذف می کنید:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
یادداشت کوچک: در خط oimport pandas as pd",
ما کتابخانه Pandas را وارد می کنیم و نام مستعار "pd" را به آن اختصاص می دهیم تا ارجاع به توابع و اشیاء آن در ادامه کد آسان تر شود.
Pandas یک ماژول شناخته شده برای پایتون برای دستکاری و تجزیه و تحلیل داده ها است، به ویژه هنگام کار با داده های ساختاریافته یا جدولی.
در مثال ما از تعیین ژانرهای موسیقی. ابتدا مجموعه داده را وارد می کنیم. من اسم آن را music.csv گذاشته ام، با این حال، شما می توانید آن را هر طور که می خواهید نام گذاری کنید.
برای آماده سازی داده ها برای آموزش یک مدل یادگیری ماشینی، آن را به ویژگی ها (سن و جنسیت) و اهداف (ژانر موسیقی) تقسیم می کنیم.
ما بهعلاوه دادهها را به مجموعههای آموزشی و آزمایشی 80:20 تقسیم میکنیم تا عملکرد مدل خود را ارزیابی کنیم و از برازش بیش از حد جلوگیری کنیم.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. یک مدل یادگیری ماشینی انتخاب کنید.
پس از اینکه داده ها را آماده کردید، باید یک مدل یادگیری ماشینی را انتخاب کنید که برای کار شما مناسب است.
چندین الگوریتم برای انتخاب وجود دارد، مانند درخت تصمیم، رگرسیون لجستیک، ماشینهای بردار پشتیبان، شبکههای عصبی و غیره. الگوریتمی که انتخاب می کنید با توجه به نوع مسئله ای که می خواهید پاسخ دهید، نوع داده ای که دارید و نیازهای عملکرد شما تعیین می شود.
ما از یک طبقهبندی درخت تصمیم برای این مثال استفاده میکنیم زیرا با یک مشکل طبقهبندی (پیشبینی دادههای طبقهبندی) کار میکنیم.
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
در اینجا تصویری از نحوه عملکرد طبقهبندی درخت تصمیم ارائه شده است:
4. مدل را آموزش دهید
وقتی الگوریتم یادگیری ماشینی قابل قبولی را انتخاب کردید، می توانید آموزش مدل را شروع کنید. این مستلزم استفاده از دادههای تولید شده قبلی برای آموزش الگوریتم در مورد چگونگی پیشبینی دادههای تازه و قبلاً دیده نشده است.
این الگوریتم پارامترهای داخلی خود را در طول آموزش تغییر میدهد تا تفاوت بین مقادیر پیشبینیشده و مقادیر واقعی در دادههای آموزشی را به حداقل برساند. مقدار داده های مورد استفاده برای آموزش، و همچنین پارامترهای خاص الگوریتم، همگی می توانند بر دقت مدل حاصل تأثیر بگذارند.
در مثال خاص ما، اکنون که در مورد روشی تصمیم گرفته ایم، می توانیم مدل خود را با داده های آموزشی آموزش دهیم.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. مدل را ارزیابی کنید
پس از آموزش مدل، باید بر اساس داده های جدید ارزیابی شود تا از دقیق و قابل اعتماد بودن آن اطمینان حاصل شود. این مستلزم آزمایش مدل با داده هایی است که در طول آموزش مورد استفاده قرار نگرفته اند و مقادیر پیش بینی شده آن را با مقادیر واقعی در داده های آزمون مقایسه می کنند.
این بررسی می تواند به شناسایی هر گونه نقص مدل، مانند بیش از حد یا عدم اتصال، کمک کند و می تواند منجر به هر گونه تنظیم دقیقی شود که ممکن است مورد نیاز باشد.
با استفاده از داده های تست، صحت مدل خود را ارزیابی خواهیم کرد.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
امتیاز دقت در حال حاضر چندان بد نیست. 🙂 برای بهبود امتیاز دقت خود، همیشه می توانید داده ها را بیشتر پاک کنید یا مدل های مختلف یادگیری ماشینی را امتحان کنید تا ببینید کدام یک بالاترین امتیاز را می دهد.
6. مدل را دقیق تنظیم کنید
اگر کارایی مدل به اندازه کافی کافی نیست، میتوانید با تغییر پارامترهای مختلف الگوریتم یا با آزمایش کامل الگوریتمهای جدید، آن را تنظیم کنید.
این روش ممکن است شامل آزمایش با نرخ های یادگیری جایگزین، اصلاح تنظیمات منظم یا تغییر تعداد یا اندازه لایه های پنهان در یک شبکه عصبی باشد.
7. از مدل استفاده کنید
هنگامی که از عملکرد مدل راضی شدید، می توانید از آن برای ایجاد پیش بینی بر روی داده های جدید استفاده کنید.
این ممکن است مستلزم وارد کردن دادههای تازه به مدل و استفاده از پارامترهای آموخته شده مدل برای تولید پیشبینی بر روی آن دادهها یا ادغام مدل در یک برنامه یا سیستم گستردهتر باشد.
پس از اینکه از دقت آن راضی شدیم، میتوانیم از مدل خود برای تولید پیشبینیهای دادههای جدید استفاده کنیم. می توانید مقادیر مختلف جنسیت و سن را امتحان کنید.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
بسته شدن
ما آموزش اولین مدل یادگیری ماشینی خود را به پایان رساندیم.
امیدوارم برای شما مفید بوده باشد. اکنون می توانید از مدل های مختلف یادگیری ماشین مانند رگرسیون خطی یا جنگل تصادفی استفاده کنید.
مجموعه داده ها و چالش های زیادی در آن وجود دارد کجگل اگر می خواهید کدنویسی و درک خود از یادگیری ماشینی را بهبود ببخشید.
پاسخ دهید