آموزش دیتاساینس و ماشین‌لرنینگ
1.89K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
👨‍🏫 آموزش کلاس (Class) با کاربرد در دیتا ساینس و ماشین لرنینگ

کلاس یک طرح یا قالب کلی برای ایجاد شی‌ (Object) هست. شی‌ها نمونه‌هایی از کلاس‌ها هستن که دارای ویژگی‌ (Attribute) و رفتار (Method) هستن.

🔵کلاس‌ها به ما این امکان رو می‌دن که داده‌ها و توابعی که بهشون مرتبط هستن رو در یک محیط بسته سازماندهی کنیم و کد رو تمیزتر و قابل مدیریت‌تر می‌کنن. به عنوان مثال، فرض کنین می‌خوایم یک کلاس برای نمایندگی یک حساب بانکی ایجاد کنیم.

class BankAccount:
def __init__(self):
self.balance = 0

def deposit(self, amount):
self.balance += amount

def get_balance(self):
return self.balance

# استفاده از کلاس
account = BankAccount()# ساخت یک شی از کلاس
account.deposit(100) # اضافه کردن 100 واحد به موجودی
print(account.get_balance()) # دریافت موجودی حساب


🔵ارث‌بری در کلاس‌ها به ما این امکان رو می‌ده که مدل‌های ابتدایی ماشین لرنینگ رو بسازیم و بعد ازشون برای تولید مدل‌های پیچیده‌تر استفاده کنیم.

class BaseModel:
def train(self, data):
# این متد باید در کلاس‌های وارث پیاده‌سازی شه، در غیر این صورت خطا رخ می‌ده.
raise NotImplementedError("متد train پیاده‌سازی نشده است.")

class LinearRegression(BaseModel):
def train(self, data):
# منطق آموزش برای رگرسیون خطی در اینجا پیاده‌سازی می‌شه
pass

class DecisionTree(BaseModel):
def train(self, data):
# منطق آموزش برای درخت تصمیم در اینجا پیاده‌سازی می‌شه
pass


پارامتر self در پایتون به هر شی‌ای که داخل یک کلاس تعریف میشه اشاره داره و به متدهای کلاس می‌گه که کارهاشون رو روی همین شی‌ انجام بدن. یعنی وقتی شما یک متدی رو فراخوانی می‌کنین، self باعث می‌شه که متد بدونه داره روی کدوم شی کار می‌کنه.

🔵قابلیت Multiple Inheritance اجازه می‌ده تا کلاس‌هایی با ویژگی‌های متعدد تعریف شن، مثلاً یک مدل می‌تونه هم زمان قابلیت‌های آموزش و پیش‌بینی رو داشته باشه.

class Trainable:
def train(self, data):
print("Training with data.")

class Predictable:
def predict(self, input_data):
print("Predicting output.")

class RandomForest(Trainable, Predictable):
def train(self, data):
# منطق آموزش خاص برای جنگل تصادفی (Random Forest) را پیاده‌سازی کنید
pass


🔵 توی پایتون، وقتی می‌خوایم خروجی‌ای رو چاپ کنیم یا نگاهی به داده‌ها بندازیم، می‌تونیم از دو تابع خاص استفاده کنیم: __str__ و __repr__. این دو تا به ما کمک می‌کنن که وقتی یک شی از یک کلاس رو چاپ می‌کنیم، به جای حروف و ارقام نامفهوم، یه توضیح معنادار و مرتبط با اون شی ببینیم.

class KMeans:
def __init__(self, n_clusters):
self.n_clusters = n_clusters

def __str__(self):
return f"KMeans(n_clusters={self.n_clusters})"


مثلاً، توی یک کلاس به نام KMeans که برای دسته‌بندی داده‌ها به چند گروه استفاده می‌شه، ما می‌تونیم __str__ رو تعریف کنیم تا وقتی یک شی از این کلاس رو چاپ می‌کنیم، به ما بگه که این کلاس داره با چندتا گروه از داده‌ها کار می‌کنه. این کار می‌تونه به خصوص وقتی داریم دیباگ می‌کنیم و می‌خواهیم سریع بفهمیم شی‌هایی که باهاشون کار می‌کنیم چه خصوصیاتی دارن، خیلی مفید باشه.

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥1👨‍💻1
💡 بهینه‌سازی دسترسی به اجزای کلاس‌ در پایتون

یکی از ویژگی‌های جذاب در کلاس‌های پایتون، استفاده از ()property هست که به ما امکان می‌ده کنترل بیشتری بر روی دسترسی و تغییر متغیرهای کلاس داشته باشیم. می‌تونیم به جای استفاده از متدهای getter و setter سنتی، از دکوراتورهای property@ و attribute_name.setter@ استفاده کنیم.

با استفاده از ()property, میشه ویژگی‌هایی رو تعریف کرد که مثل متغیرهای عادی قابل دسترسی هستن، اما عملکردهای پیچیده‌تری مثل اعتبارسنجی داده‌ها یا محاسبات خاص رو انجام می‌دن. این ویژگی به برنامه‌نویسان امکان می‌ده که کدی تمیزتر و قابل نگهداری‌تر بنویسن.

به عنوان مثال، با استفاده از property@ میشه یک متد getter رو تعریف کرد که به صورت خودکار هنگام دسترسی به یک ویژگی فراخوانی می‌شه، بدون اینکه نیاز به نوشتن کدهای اضافی باشه.

class Person:
def __init__(self, name, age):
self.name = name
self._age = age

@property
def age(self):
return self._age

@age.setter
def age(self, value):
if value < 0:
raise ValueError("Age cannot be negative")
self._age = value

# استفاده از کلاس
p = Person("Ali", 30)
print(p.age) # 30

p.age = 35 # تغییر سن
print(p.age) # 35


#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍5🔥1👨‍💻1
👨‍🏫 آموزش تبدیل نوع داده (Casting) در پایتون

به فرآیند تبدیل یک نوع یک داده به نوع دیگه، Casting گفته می‌شه. این مهارت برای تحلیل داده‌ها و برنامه‌نویسی موثر بسیار مهمه.

🔵یکی از مفاهیم پایه‌ای در casting، تبدیل متغیرهای ساده مثل رشته‌ها به اعداد و برعکسه. اما در سطح پیشرفته، باید بتونیم انواع داده‌های پیچیده‌تر مثل لیست‌ها، دیکشنری‌ها، و حتی اشیاء سفارشی رو cast کنیم.


num_str = "123"
# تبدیل رشته به عدد صحیح
num_int = int(num_str)
print(num_int) # 123

# تبدیل عدد صحیح به رشته
num_int = 123
num_str = str(num_int)
print(num_str) # '123'

# تبدیل لیستی از رشته‌ها به لیستی از اعداد صحیح
str_list = ["1", "2", "3"]
int_list = [int(x) for x in str_list]
print(int_list) # [1, 2, 3]


🔵یکی از روش‌های پیشرفته در تبدیل نوع داده، استفاده از سازنده (Constructor) کلاس برای تغییر دیکشنری به یک شیء در پایتونه.

class Person:
def __init__(self, name, age):
self.name = name
self.age = age

# تبدیل دیکشنری به شی‌ء
person_info = {"name": "Ali", "age": 30}
person = Person(**person_info)
print(person.name)

🔜Ali

🔵همچنین می‌تونیم انواع مجموعه‌ها رو بهم تبدیل کنیم. برای مثال، تبدیل یک لیست به مجموعه برای حذف مقادیر تکراری و بعد تبدیل مجددش به لیست.


duplicate_list = [1, 2, 2, 3, 4, 4, 4]
unique_list = list(set(duplicate_list))
print(unique_list)

🔜[1, 2, 3, 4]

🔵برای تبدیل انواع داده‌ها در تحلیل‌های پیشرفته، می‌توانیم از کتابخانه Pandas استفاده کنیم که امکان تغییر نوع داده‌های ستون‌های یک دیتافریم را ممکن می‌کنه. این فرآیند تبدیل، یک جزء کلیدی در casting داده‌ها در پایتونه.

import pandas as pd

# ایجاد یک دیتافریم ساده
df = pd.DataFrame({
'A': ['1', '2', '3'],
'B': ['4.5', '5.5', '6.5'],
'C': ['true', 'false', 'true']
})

# تبدیل انواع داده‌ای ستون‌ها
df['A'] = df['A'].astype(int)
df['B'] = df['B'].astype(float)
df['C'] = df['C'].map({'true': True, 'false': False})

print(df.dtypes)

🔜A int64
B float64
C bool
dtype: object

#Programming
#Python

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻2👏1
کوئیز شماره ۱۴: Casting

در کتابخانه Pandas، اگه df یه DataFrame با ستون A باشه که شامل اعداد صحیحه، چطور میشه نوع داده‌های این ستون رو به اعداد اعشاری تبدیل کرد؟
Anonymous Quiz
63%
df['A'] = df['A'].astype('float')
7%
df['A'].to_numeric()
19%
df['A'] = float(df['A'])
11%
df['A'].cast('float')
😎8👍41👏1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵آموزش حلقه While در پایتون
👉🔗 https://t.iss.one/data_ml/34

🔵آموزش شرط‌ها (If Conditions) در پایتون
👉🔗 https://t.iss.one/data_ml/39

🔵آموزش تابع (Function) به صورت کاربردی در ماشین لرنینگ
👉🔗 https://t.iss.one/data_ml/42

🔵آموزش Lambda Functions در پایتون
👉🔗 https://t.iss.one/data_ml/45

🔵آموزش لیست‌های پیچیده (List Comprehension) در پایتون
👉🔗 https://t.iss.one/data_ml/48

🔵آموزش کلاس (Class) با کاربرد در دیتا ساینس و ماشین لرنینگ
👉🔗 https://t.iss.one/data_ml/51

🔵آموزش تبدیل نوع داده (Casting) در پایتون
👉🔗 https://t.iss.one/data_ml/54

🔺 کوئیز

🔵حلقه while
👉🔗 https://t.iss.one/data_ml/37

🔵استفاده از if برای فیلتر کردن داده‌ها
👉🔗 https://t.iss.one/data_ml/40

🔵تابع
👉🔗 https://t.iss.one/data_ml/43

🔵تابع Lambda
👉🔗 https://t.iss.one/data_ml/46

🔵لیست‌های پیچیده
👉🔗 https://t.iss.one/data_ml/49

🔵کلاس
👉🔗 https://t.iss.one/data_ml/52

🔵تبدیل نوع داده
👉🔗 https://t.iss.one/data_ml/55

🔺 نکات

🔵کاربرد Divide and Conquer در Tuning مدل‌های یادگیری ماشین
👉🔗 https://t.iss.one/data_ml/38

🔵یه توصیه‌ مهم برای نوشتن شرط if
👉🔗 https://t.iss.one/data_ml/41

🔵تابع ()Any در پایتون
👉🔗 https://t.iss.one/data_ml/44

🔵یه توصیه‌ مهم برای نوشتن توابع لامبدا
👉🔗 https://t.iss.one/data_ml/47

🔵روشی کاربردی برای تبدیل لیست‌های چندبعدی به یک‌بعدی
👉🔗 https://t.iss.one/data_ml/50

🔵بهینه‌سازی دسترسی به داده‌های کلاس‌ در پایتون
👉🔗 https://t.iss.one/data_ml/53

#Weekend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1👏1👨‍💻1
👩‍🎓 برنامه آموزشی هفته: رگرسیون (Regression)

🟠شنبه: تعریف و انواع رگرسیون

🔵یک‌شنبه: کاربردها

🟢دوشنبه: تابع هزینه

🔴سه‌شنبه: روش‌های بهینه سازی

🟠چهارشنبه: معیار ارزیابی

🔵پنج‌شنبه: مدل‌های Sklearn

🟢جمعه: جمع بندی

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥1👨‍💻1
👨‍🏫 تعریف و انواع رگرسیون (Regression)

رگرسیون یک تکنیک آماریه که برای مدل‌سازی رابطه بین یک متغیر وابسته (Dependent Variable) و یک یا چند متغیر مستقل (Independent Variable) استفاده میشه.

به عبارت دیگه، رگرسیون سعی می‌کنه رابطه بین مقادیر متغیر وابسته و مستقل را به‌صورت یک تابع ریاضی بیان کنه. در یادگیری ماشین، رگرسیون یکی از مهم‌ترین تکنیک‌های یادگیری با ناظر (Supervised Learning) هست.

انواع رگرسیون

🔵رگرسیون خطی ساده (Simple Linear Regression): ساده‌ترین نوع رگرسیونه که در اون فقط یک متغیر مستقل وجود داره. رگرسیون خطی ساده از یک خط مستقیم برای مدل‌سازی رابطه بین متغیر وابسته و مستقل استفاده می‌کنه.

🔵رگرسیون خطی چندگانه (Multiple Linear Regression): در این نوع رگرسیون، بیشتر از یک متغیر مستقل وجود داره. رگرسیون خطی چندگانه از یک معادله خطی برای مدل‌سازی رابطه بین متغیر وابسته و مقادیر متغیرهای مستقل استفاده می‌کنه.

🔵رگرسیون لجستیک (Logistic Regression): برای پیش‌بینی احتمال وقوع یک رویداد با استفاده از یک یا چند متغیر مستقل به کار می‌ره. این روش عمدتاً زمانی استفاده می‌شه که متغیر وابسته دارای ماهیت دوگانه یا گسسته باشه، مثل بله/خیر یا موفق/ناموفق.

رگرسیون کاربردهای گسترده‌ای مثل پیش‌بینی قیمت‌ها، پیش‌بینی فروش، پیش‌بینی جرم، پیش‌بینی بیماری و... در یادگیری ماشین و دیتا ساینس داره.

مثال: فرض کنید یک شرکت تولیدکننده کفش می‌خواد مقدار فروش کفش‌هاش رو در سال آینده پیش‌بینی کنه. این شرکت می‌تونه از رگرسیون خطی ساده برای این کار استفاده کنه.

توی این مثال، متغیر وابسته فروش و متغیر مستقل هزینه تبلیغات هست. شرکت می‌تونه از داده‌های فروش و هزینه تبلیغاتش در سال‌های گذشته برای آموزش مدل رگرسیون استفاده کنه. بعد از آموزش مدل، شرکت می‌تونه ازش برای پیش‌بینی مقدار فروش کفش‌ها در سال آینده استفاده کنه.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🔥1👨‍💻1
💡بررسی اهمیت توزیع نرمال خطاها در رگرسیون خطی

یک نکته که خیلی توی Linear Regression اهمیت داره، داشتن توزیع نرمال خطاها (residuals) هست. در رگرسیون خطی، فرض بر اینکه خطاها (اختلافات بین مقادیر واقعی و پیش‌بینی شده) باید توزیع نرمال داشته باشن. این فرض اطمینان می‌ده که مدل به درستی به داده‌ها اموزش داده شده و پیش‌بینی‌های قابل اعتمادی ارائه می‌ده. در صورت عدم برآورده شدن این شرط، ممکنه نیاز به اصلاحاتی در مدل یا تبدیل داده‌ها باشه تا به توزیع نرمال نزدیک شن.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍114🔥1👏1
👨‍🏫 کاربردهای رگرسیون (Applications of Regression)

🔵مدل‌سازی و پیش‌بینی

در دنیای تجارت و اقتصاد، استفاده از رگرسیون برای پیش‌بینی فروش و تقاضا بسیار مرسومه. شرکت‌ها با بررسی داده‌های گذشته و تجزیه و تحلیل روندها، می‌تونن پیش‌بینی‌های دقیقی از وضعیت بازار در آینده داشته باشن. این رویکرد در پیش‌بینی قیمت سهام و همچنین در پیش‌بینی شرایط جوی کاربرد داره.

🔵بازاریابی و تحلیل مشتری

در بازاریابی، رگرسیون به تحلیل پاسخ بازار به استراتژی‌های مختلف کمک می‌کنه. تحلیلگران می‌تونن با استفاده از این روش، برآورد کنن که یه مشتری در یک بازه، چه میزان ارزش برای یک شرکت یا سازمان ایجاد کرده و با تحلیل سهم بازار، استراتژی‌های بازاریابی‌ رو بهینه‌سازی کنن.

🔵تحلیل مالی

در حوزه مالی، رگرسیون برای ارزیابی ریسک و امتیازدهی اعتباری استفاده می‌شه. مدیران با استفاده از این روش می‌تونن بازده سرمایه‌گذاری‌ها رو پیش‌بینی کنن و تحلیل‌های دقیق‌تری برای تشخیص تقلب انجام بدن.

🔵بهداشت و تحقیقات پزشکی

در حوزه پزشکی، رگرسیون در پیش‌بینی و تشخیص بیماری‌ها کاربرد داره. پزشکان و محققان از این روش برای پیش‌بینی نتایج بیمار و تحلیل اثربخشی داروها استفاده می‌کنن و همچنین در ارزیابی ریسک‌های بهداشتی مفیده.

🔵کنترل کیفیت و بهینه‌سازی فرآیند

در صنایع تولیدی، رگرسیون برای بهینه‌سازی فرآیندهای تولید و کنترل کیفیت محصولات به کار می‌ره. همچنین، در بهینه‌سازی زنجیره تأمین و تشخیص ناهنجاری‌ها هم نقش مهمی داره.

🔵علوم اجتماعی و تحلیل رفتاری

در علوم اجتماعی، رگرسیون به تحلیل تأثیرات اجتماعی و اقتصادی کمک می‌کنه. تحلیلگران از این روش برای استخراج نظرات و تحلیل احساسات، تحقیقات آموزشی و بررسی جمعیت‌شناسی استفاده می‌کنن.

🔵 انرژی و خدمات

در صنعت انرژی، پیش‌بینی مصرف انرژی، پیش‌بینی بار و مدل‌سازی قیمت انرژی با استفاده از رگرسیون انجام می‌شه. همچنین، در بهینه‌سازی استفاده از انرژی‌های تجدیدپذیر هم کاربرد داره.

🔵 تحلیل‌های ورزشی

در حوزه ورزش، تحلیلگران از رگرسیون برای تحلیل عملکرد بازیکنان، پیش‌بینی نتایج بازی‌ها و بهینه‌سازی ترکیب تیم‌ها استفاده می‌کنن. این تحلیل‌ها در تصمیم‌گیری‌های درون بازی هم موثره.

🔵 تحلیل محیط‌زیست

در حوزه محیط‌زیست، رگرسیون برای مدل‌سازی آب‌وهوا، پیش‌بینی آلودگی و ارزیابی تأثیرات محیطی به کار می‌ره. این روش در مدیریت منابع طبیعی نقش مهمی داره.

🔵تحلیل سری‌های زمانی

در تحلیل سری‌های زمانی، رگرسیون برای شناسایی روندها و الگوهای فصلی مورد استفاده قرار می‌گیره. این روش در پیش‌بینی شاخص‌های اقتصادی و تحلیل بازار سهام کاربرد داره.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93👏1👨‍💻1
💡هم‌خطی؛ یه مانع مهم در رگرسیون خطی

یکی از نکاتی که اکثر اوقات در مدل‌های رگرسیون نادیده گرفته می‌شه، اهمیت درک و تحلیل درست پدیده‌ی هم‌خطی (Collinearity) هست. هم‌خطی زمانی رخ می‌ده که دو یا چند متغیر مستقل در یک مدل رگرسیون خطی، ارتباط نزدیکی باهم داشته باشن. این مسئله می‌تونه به کاهش دقت تخمین ضرایب مدل و افزایش واریانس پیش‌بینی‌ها منجر شه.

بسیاری از تحلیل‌گران بدون بررسی وجود هم‌خطی بین متغیرها، مستقیماً شروع به ساخت مدل‌های رگرسیون خطی می‌کنن. این مسئله باعث میشه که مدل نتونه به درستی تفاوت‌های واقعی بین متغیرهای مستقل رو تشخیص بده و در نتیجه، تحلیل‌ها و پیش‌بینی‌های نادرستی ارائه شه.

برای مقابله با این مشکل، تکنیک‌های مختلفی وجود داره. یکی از این روش‌ها، استفاده از تحلیل مولفه‌های اصلی (PCA) برای کاهش ابعاد داده‌ها و از بین بردن هم‌خطیه.

پرداختن به این جزئیات می‌تونه تأثیر زیادی در افزایش دقت و قابلیت اطمینان مدل‌های رگرسیون خطی داشته باشه.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍82🤔1
👨‍🏫 تابع هزینه در رگرسیون خطی

تابع هزینه (Cost Function) در رگرسیون خطی (Linear Regression)، نقش مهمی توی ارزیابی کارایی مدل داره. این تابع، بر پایه ارزیابی اختلاف بین مقادیر پیش‌بینی شده توسط مدل و مقادیر واقعی داده‌ها، عملکرد کلی مدل رو ارزیابی می‌کنه. هدف اصلی در رگرسیون خطی، به حداقل رسوندن تابع هزینه‌ست تا مدلی قابل اعتماد با بیشترین انطباق با داده‌های موجود به‌دست بیاد.

🔵یکی از توابع هزینه رایج توی رگرسیون خطی، مجموع مربعات خطاهاست (MSE). این تابع با محاسبه میانگین مربع تفاوت بین مقادیر پیش‌بینی شده مدل و مقادیر واقعی داده‌ها، میزان خطای کلی مدل رو اندازه‌گیری می‌کنه. فرمول MSE به این شکله:

MSE = (1/n) * Σ(f(x_i) - y_i)^2

توی این فرمول:

* n تعداد نقاط داده‌ست
* f(x_i) پیش‌بینی مدل برای نقطه داده x_i هست
* y_i مقدار واقعی برای نقطه داده x_i هست

🔵تابع هزینه دیگه‌ای که توی رگرسیون خطی استفاده میشه خطای میانگین مطلق (MAE) هست. این تابع با محاسبه میانگین مجموع اختلافات مطلق بین مقادیر پیش‌بینی شده مدل و مقادیر واقعی داده‌ها، میزان خطای کلی مدل رو ارزیابی می‌کنه. فرمول MAE به این شکله:

MAE = (1/n) * Σ|f(x_i) - y_i|

به طور کلی، MSE نسبت به MAE به ناهنجاری‌ها حساس‌تره. این به این معنیه که اگه تعداد کمی از نقاط داده دارای مقادیر بسیار متفاوت از مقادیر دیگه باشن، MSE می‌تونه بزرگتر از MAE باشه.

🔵برای به حداقل رسوندن تابع هزینه، از روش‌های مختلفی مثل گرادیان کاهشی استفاده می‌شه. توی روش گرادیان کاهشی پارامترهای مدل (ضرایب معادله رگرسیون) به طور مداوم در جهت مخالف شیب تابع هزینه تنظیم می‌شن. این فرآیند تا زمانی که تابع هزینه به حداقل برسه ادامه داره.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93👨‍💻1
👨‍🏫 روش‌های بهینه سازی در رگرسیون

توی رگرسیون، دو روش اصلی برای پیدا کردن پارامترها وجود داره: گرادیان کاهشی (Gradient Descent) و معادله نرمال (Normal Equation). این دو روش، راه‌های متفاوتی رو برای رسیدن به هدف، یعنی کمینه کردن خطای پیش‌بینی مدل، ارائه می‌دن.

🔵 گرادیان کاهشی (Gradient Descent)

🔵این روش یه تکنیک بهینه‌سازیه که برای پیدا کردن مقادیر بهینه پارامترها (مثل وزن‌ها در رگرسیون خطی) استفاده می‌شه. توی گرادیان کاهشی، ما با یه مجموعه اولیه از پارامترها شروع می‌کنیم و به تدریج اونها رو به‌روز می‌کنیم تا به نقطه‌ای برسیم که خطای مدل به حداقل برسه. این به‌روزرسانی‌ها با استفاده از مشتقات جزئی تابع خطا (مثلا MSE) نسبت به هر پارامتر انجام می‌شه.

🔵گرادیان کاهشی (GD) در مواردی که تعداد ویژگی‌ها زیاده مفیده، اما نیاز به تعیین پارامترهایی مثل نرخ یادگیری (Learning Rate) داره و ممکنه به تعداد زیادی تکرار نیاز داشته باشه. این روش یه تکنیک بهینه‌سازی عمومیه که فقط محدود به رگرسیون خطی نمی‌شه و در انواع مختلف رگرسیون، مثل رگرسیون خطی، رگرسیون لجستیک (برای طبقه‌بندی)، و سایر مدل‌های یادگیری ماشین که نیاز به کمینه‌سازی یه تابع هدف دارن، کاربرد داره.

🔵انتخاب نرخ یادگیری (Learning Rate) یکی از مهم‌ترین پارامترها در گرادیان کاهشیه. اگه این نرخ خیلی کوچک باشه، فرآیند بهینه‌سازی ممکنه خیلی آهسته پیش بره و زمان زیادی نیاز داشته باشه. از طرف دیگه، اگه نرخ یادگیری خیلی بزرگ باشه، ممکنه از نقطه بهینه عبور کنیم و به جواب نرسیم.

🔵توی گرادیان کاهشی، مقیاس‌بندی ویژگی‌ها (Feature Scaling) می‌تونه در بهبود سرعت همگرایی (Convergence Rate) فرآیند بهینه‌سازی مؤثر باشه. این کار باعث می‌شه که ویژگی‌های مختلف در یک مقیاس مشابه قرار بگیرن، که به پیدا کردن مینیمم تابع خطا کمک می‌کنه.

🔵 معادله نرمال (Normal Equation)

🔵این روش یه راه حل تحلیلی برای یافتن پارامترهای رگرسیون خطیه. توی این روش، به جای استفاده از روش تکرار (Iterative) مثل گرادیان کاهشی، ما می‌تونیم مستقیماً مقادیر بهینه پارامترها رو از طریق فرمول ریاضی مشخص شده در معادله نرمال پیدا کنیم. این روش معمولاً در شرایطی بهینه عمل می‌کنه که تعداد ویژگی‌ها (متغیرهای مستقل) بیش از حد زیاد نباشه.

🔵معادله نرمال (NE) روشی سریع و بدون نیاز به تنظیم پارامتره، اما ممکنه در مواجهه با تعداد بسیار زیادی از ویژگی‌ها کارآمد نباشه و همچنین مستلزم محاسبات ماتریسیه که در مقیاس‌های بزرگ حافظه‌بر و زمان‌بره. این روش بیشتر مختص به رگرسیون خطیه و به طور مستقیم پارامترهای بهینه رو برای مدل‌های رگرسیون خطی محاسبه می‌کنه.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
5👨‍💻3👍1🔥1
کوئیز شماره ۱۸: جلوگیری از بیش‌برازش در Gradient Descent

کدوم گزینه در گرادیان کاهشی می‌تونه به جلوگیری از بیش‌برازش (overfitting) کمک کنه؟
Anonymous Quiz
15%
افزایش نرخ یادگیری
20%
کاهش تعداد ویژگی‌ها
12%
افزایش تعداد تکرارها
53%
استفاده از تنظیم (regularization)
😎62👍2👏1
💡مقایسه عملکرد GD و NE در مواجهه با داده‌های پرت

گرادیان کاهشی (GD) قابلیت انعطاف بیشتری در برابر داده‌های پرت (Outliers) داره. این روش تکراری، با توجه به تغییرات تدریجی در پارامترها، می‌تونه تأثیر داده‌های نامتعارف رو کاهش بده.

در حالی که معادله نرمال (NE) که به طور مستقیم مقادیر بهینه رو از طریق محاسبات ریاضی تعیین می‌کنه، ممکنه بیشتر تحت تأثیر داده‌های نامتعارف قرار بگیره. این ویژگی گرادیان کاهشی اونو برای مواجهه با داده‌های دنیای واقعی که اکثرا دارای Outlier هستن، مطلوب می‌کنه.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍62🔥2
👨‍🏫 آموزش r2-score: شاخص ارزیابی رگرسیون

🔵تعریف

سنجه r2-score، که به عنوان ضریب تعیین شناخته می‌شه، یه معیار برای ارزیابی کیفیت برازش مدل‌های رگرسیونی (اینکه مدل چقدر خوب کار می‌کنه) در یادگیری ماشینه. این معیار نشون‌دهنده درصد تغییرات در متغیر وابسته‌ست (ویژگی یا نتیجه مورد نظر برای پیش‌بینی) که توسط متغیرهای مستقل (عوامل پیش‌بینی‌کننده در مدل) توضیح داده میشه.

🔵نحوه محاسبه

برای محاسبه r2-score، اول میزان دقت مدل رگرسیون رو با یه مدل پایه که فقط میانگین متغیر وابسته (Dependent Variable) رو پیش‌بینی می‌کنه، مقایسه می‌کنیم. سپس، r2-score رو با تقسیم مجموع مربعات تفاضل پیش‌بینی‌های مدل (Sum of Squares Regression, SSR) از خط بهینه بر مجموع کل مربعات تفاضلات (Sum of Squares Total, SST)، که تفاوت‌های داده‌های واقعی از میانگین اونهاست رو محاسبه می‌کنیم.

🔵مقدارهای ممکن برای r2-score

اگه r2-score = 1 باشه نشون‌دهنده برازش کامله، یعنی تمامی تغییرات متغیر وابسته توسط مدل پوشش داده شده.

اگه r2-score نزدیک به 1 باشه، نشون‌دهنده برازش خوب مدله، اما همیشه نشون‌دهنده یک مدل خوب برای پیش‌بینی نیست، چرا که ممکنه بر اثر بیش‌برازش (overfitting) به دست اومده باشه.

اگه r2-score نزدیک به 0 باشه نشون می‌ده که مدل تقریبا هیچ یک از تغییرات متغیر وابسته رو یادنگرفته.

🔵محدودیت‌های r2-score

تنها میزان تطابق داده‌های موجود رو می‌سنجه و لزوما دقت مدل در پیش‌بینی داده‌های جدید رو نشون نمی‌ده. همچنین ممکنه به دلیل افزایش تعداد متغیرهای مستقل در مدل افزایش پیدا کنه؛ حتی اگه این متغیرها اطلاعات مفیدی ارائه نکنن.

🔵استفاده از r2-score در کنار سایر معیارها

برای ارزیابی دقیق‌تر یه مدل رگرسیون، توصیه می‌شود r2-score رو در کنار سایر معیارها مثل خطای میانگین مربعات (MSE) یا خطای میانگین مطلق (MAE) استفاده کنیم. این امر به درک بهتری از عملکرد کلی مدل کمک می‌کنه.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥1👨‍💻1
کوئیز شماره ۱۹: سنجه r2-score

کدوم یک از گزینه‌های زیر بهترین استراتژی برای ارزیابی r2-score در یه مدل رگرسیون خطی با هدف کاهش احتمال بیش‌برازشه؟
Anonymous Quiz
57%
کاربرد cross-validation برای تخمین دقیق‌تر r2-score
16%
استفاده از تکنیک‌های انتخاب متغیر مثل روش پشتیبان (backward elimination)
8%
استفاده از یک نمونه بزرگ‌تر از داده‌های تست
18%
تنظیم مقادیر پارامترهای مدل بر اساس r2-score داده‌های آموزشی
5😎4👍2🔥1
آموزش دیتاساینس و ماشین‌لرنینگ
کوئیز شماره ۱۹: سنجه r2-score

کدوم یک از گزینه‌های زیر بهترین استراتژی برای ارزیابی r2-score در یه مدل رگرسیون خطی با هدف کاهش احتمال بیش‌برازشه؟
💡کاربرد Cross-Validation برای تخمین r2-score

توی یادگیری ماشین، cross-validation یه روش ارزیابیه که برای سنجش توانایی مدل در پیش‌بینی داده‌های جدید استفاده می‌شه.

توی این روش، داده‌ها به چندین بخش تقسیم می‌شن. مدل روی تمامی بخش‌ها به جز یکی آموزش داده می‌شه و بخش باقی‌مونده به عنوان داده‌ی تست برای ارزیابی مدل به کار می‌ره. این روند برای هر یک از بخش‌ها به صورت دوره‌ای تکرار می‌شه.

در هر دور، یه r2-score محاسبه می‌شه که نشون‌دهنده میزان دقت مدل توی اون بخش خاصه. در نهایت، میانگین مقادیر r2-score به عنوان شاخصی از کیفیت کلی مدل در نظر گرفته می‌شه.

این روش به ما اجازه می‌ده تا از دقت مدل در پیش‌بینی داده‌هایی که قبلاً ندیده، اطمینان حاصل کنیم و از بیش‌برازش جلوگیری کنیم.

تصور کنین مدل ما یک دانش‌آموزه و داده‌ها مجموعه‌ای از سوالات امتحانی هستن. به جای اینکه تمام سوالات رو یک‌جا به دانش‌آموز بدهیم، ما سوالات را به چند بخش تقسیم می‌کنیم و در هر بار فقط بخشی از سوالات رو می‌پرسیم. به این ترتیب، می‌توانیم مطمئن شویم که دانش‌آموز (یعنی مدل ما) فقط جواب‌ها رو حفظ نکرده، بلکه واقعاً یاد گرفته و می‌تونه به سوالات جدید هم جواب بده.

سنجه r2-score در اینجا مثل نمره‌ای هست که به هر بخش از امتحان داده می‌شه. در نهایت، میانگین این نمرات به ما نشون می‌ده که مدل در کل چقدر خوب عمل کرده. این روش کمک می‌کنه تا مدل‌هایی که فقط روی یک نوع خاص از داده‌ها خوب کار می‌کنن و در مواجهه با داده‌های جدید موفق نیستن، شناسایی شن.

#Data_science
#Machine_Learning
#Regression

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
👍102🤔1