مدل رگرسیون درخت تصمیم گیری یکی از روشهای یادگیری ماشین است که در مسائل پیشبینی مقادیر عددی مورد استفاده قرار میگیرد. در این پست وبلاگ، ما یک مثال ساده از ساخت یک مدل رگرسیون درخت تصمیم گیری با استفاده از پایتون و کتابخانه Scikit-Learn را بررسی خواهیم کرد.
در ابتدا، به دست آوردن دادههای مورد نیاز برای ساخت مدل میپردازیم. سپس، با استفاده از کتابخانه Scikit-Learn، یک مدل رگرسیون درخت تصمیم گیری را برای پیشبینی یک متغیر عددی برای دادههای جدید ساخته و آموزش میدهیم. در نهایت، با استفاده از معیارهای ارزیابی، عملکرد مدل را ارزیابی میکنیم.
کد زیر نشان میدهد که چگونه میتوان یک مدل رگرسیون درخت تصمیم گیری در پایتون با استفاده از کتابخانه Scikit-Learn بسازیم:
# ورودی های داده X = [[0, 0], [2, 2]] # خروجی های داده y = [0.5, 2.5] # وارد کردن کتابخانه from sklearn.tree import DecisionTreeRegressor # ساخت مدل model = DecisionTreeRegressor() # آموزش مدل با داده ها model.fit(X, y) # پیشبینی خروجی برای دادههای جدید print(model.predict([[1, 1], [3, 3]]))
این کد، یک مدل رگرسیون درخت تصمیم گیری ساده را برای پیشبینی خروجی یک متغیر عددی با استفاده از دادههای ورودی آموزش دیده و سپس با دادههای جدید پیشبینی میکند.
در این مثال، دادههای ورودی دو بعدی هستند و خروجی نیز یک مقدار عددی است. اما این روش به راحتی قابل گسترش به دادههای چند بعدی و مسائل پیشبینی مقادیر عددی دیگر نیز میباشد.
همچنین، در این مثال از معیار میانگین مربعات خطا (MSE) به عنوان معیار ارزیابی استفاده شده است. اما میتوان از معیارهای دیگری مانند میانه خطای مطلق (MAE) نیز استفاده کرد.
در نهایت، با تغییر پارامترهای مختلف مدل و تنظیم بهتر پارامترهای آن، میتوان عملکرد مدل را بهبود بخشید.
ما می توانیم داده های آموزشی بزرگتری برای این مثال ایجاد کنیم. در اینجا یک قطعه کد به روز شده است که مجموعه داده بزرگتری با 100 نقطه داده ایجاد می کند:.
import random # generate training data X_train = [] y_train = [] for i in range(100): x = random.uniform(0, 10) y = 2 * x + random.gauss(0, 1) X_train.append([x]) y_train.append(y) # train the model from sklearn.tree import DecisionTreeRegressor regressor = DecisionTreeRegressor(max_depth=2) regressor.fit(X_train, y_train) # make predictions on test data X_test = [[i] for i in range(10)] y_pred = regressor.predict(X_test) # print the predictions print(y_pred)
در این مثال، ما 100 نقطه داده را با استفاده از فرمول قبلی تولید می کنیم، اما این بار از یک حلقه برای تولید داده ها استفاده می کنیم. ما همچنین محدوده x را به 0-10 افزایش می دهیم تا داده های متنوع تری تولید کنیم. سپس رگرسیور درخت تصمیم را روی این مجموعه داده بزرگتر آموزش می دهیم، روی داده های آزمایشی پیش بینی می کنیم و پیش بینی ها را چاپ می کنیم.
این مثال نشان می دهد که چقدر آسان است که یک مجموعه داده بزرگتر در پایتون با استفاده از حلقه ها و مولدهای اعداد تصادفی تولید کنید. با داده های بیشتر، می توانیم عملکرد مدل های یادگیری ماشینی خود را بهبود بخشیم و پیش بینی های دقیق تری انجام دهیم.