استفاده از رگرسیون درخت تصمیم با استفاده از sklearn

بفرست برای دوستت
Telegram
WhatsApp
استفاده از رگرسیون درخت تصمیم با استفاده از sklearn

فهرست مطالب

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

الگوریتم درخت تصمیم وارد دسته‌بندی الگوریتم‌های یادگیری نظارتی می‌شود. این الگوریتم برای متغیرهای خروجی هم به صورت پیوسته و هم به صورت گسسته کار می‌کند.

شاخه‌ها/یال‌ها (لبه‌ها) نتیجه گره را نمایان می‌کنند و گره‌ها می‌توانند شامل موارد زیر باشند:

  1. شرایط [گره‌های تصمیم]
  2. نتیجه [گره‌های پایانی]

شاخه‌ها یا لبه‌ها درستی یا غلط بودن اظهاری را نمایان می‌کنند و بر اساس آن تصمیمی اتخاذ می‌کنند. به عبارت دیگر، درخت تصمیم در مثال زیر، که سه عدد، کوچکترین را ارزیابی می‌کند، از جمله شرایطی است که بر اساس درستی یا غلط بودن یک اظهار، تصمیم می‌گیرد.

درخت تصمیم

 

رگرسیون درخت تصمیم

رگرسیون درخت تصمیم (Decision tree regression) ویژگی‌های یک شی را مشاهده کرده و یک مدل را با ساختار درختی آموزش می‌دهد تا داده‌ها را در آینده پیش‌بینی کند و خروجی پیوسته و مفیدی تولید کند. خروجی پیوسته به این معنی است که نتیجه یا خروجی به صورت گسسته نیست، به عبارت دیگر تنها توسط یک مجموعه گسسته از اعداد یا مقادیر معلوم نمایان نمی‌شود.

  بهترین کتابخانه‌ های پایتون برای یادگیری ماشین

مثال خروجی گسسته: یک مدل پیش‌بینی آب و هوا که پیش‌بینی می‌کند آیا در یک روز خاص باران می‌آید یا نه.

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

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

بیایید به صورت مرحله به مرحله پیاده‌سازی را بررسی کنیم:

 

مرحله 1: وارد کردن کتابخانه‌های مورد نیاز

# import numpy package for arrays and stuff 
import numpy as np 

# import matplotlib.pyplot for plotting our result 
import matplotlib.pyplot as plt 

# import pandas for importing csv files 
import pandas as pd 

 

مرحله 2: مقداردهی اولیه و چاپ مجموعه داده

# import dataset 
# dataset = pd.read_csv('Data.csv') 
# alternatively open up .csv file to read data 

dataset = np.array( 
[['Asset Flip', 100, 1000], 
['Text Based', 500, 3000], 
['Visual Novel', 1500, 5000], 
['2D Pixel Art', 3500, 8000], 
['2D Vector Art', 5000, 6500], 
['Strategy', 6000, 7000], 
['First Person Shooter', 8000, 15000], 
['Simulator', 9500, 20000], 
['Racing', 12000, 21000], 
['RPG', 14000, 25000], 
['Sandbox', 15500, 27000], 
['Open-World', 16500, 30000], 
['MMOFPS', 25000, 52000], 
['MMORPG', 30000, 80000] 
]) 

# print the dataset 
print(dataset) 

 خروجی:

[['Asset Flip' '100' '1000']
 ['Text Based' '500' '3000']
 ['Visual Novel' '1500' '5000']
 ['2D Pixel Art' '3500' '8000']
 ['2D Vector Art' '5000' '6500']
 ['Strategy' '6000' '7000']
 ['First Person Shooter' '8000' '15000']
 ['Simulator' '9500' '20000']
 ['Racing' '12000' '21000']
 ['RPG' '14000' '25000']
 ['Sandbox' '15500' '27000']
 ['Open-World' '16500' '30000']
 ['MMOFPS' '25000' '52000']
 ['MMORPG' '30000' '80000']]

مرحله 3: انتخاب همه سطرها و ستون ۱ از مجموعه داده به عنوان “X

# select all rows by : and column 1 
# by 1:2 representing features 
X = dataset[:, 1:2].astype(int) 

# print X 
print(X) 

 خروجی:

[[  100]
 [  500]
 [ 1500]
 [ 3500]
 [ 5000]
 [ 6000]
 [ 8000]
 [ 9500]
 [12000]
 [14000]
 [15500]
 [16500]
 [25000]
 [30000]]

مرحله 4: انتخاب تمام سطرها و ستون ۲ از مجموعه داده به عنوان “y

# select all rows by : and column 2 
# by 2 to Y representing labels 
y = dataset[:, 2].astype(int) 

# print y 
print(y) 

 خروجی:

[ 1000  3000  5000  8000  6500  7000 15000 20000 21000 25000 27000 30000 52000 80000]

مرحله 5: تنظیم رگرسور درخت تصمیم بر روی مجموعه داده

# import the regressor 
from sklearn.tree import DecisionTreeRegressor 

# create a regressor object 
regressor = DecisionTreeRegressor(random_state = 0) 

# fit the regressor with X and Y data 
regressor.fit(X, y) 

 خروجی:

DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=None,
                      max_features=None, max_leaf_nodes=None,
                      min_impurity_decrease=0.0, min_impurity_split=None,
                      min_samples_leaf=1, min_samples_split=2,
                      min_weight_fraction_leaf=0.0, presort='deprecated',
                      random_state=0, splitter='best')

مرحله 6: پیش‌بینی یک مقدار جدید

# predicting a new value 

# test the output by changing values, like 3750 
y_pred = regressor.predict([[3750]]) 

# print the predicted price 
print("Predicted price: % d\n"% y_pred) 

 خروجی:

Predicted price:  8000

مرحله 7: تصویرسازی نتیجه

# arange for creating a range of values 
# from min value of X to max value of X 
# with a difference of 0.01 between two 
# consecutive values 
X_grid = np.arange(min(X), max(X), 0.01) 

# reshape for reshaping the data into 
# a len(X_grid)*1 array, i.e. to make 
# a column out of the X_grid values 
X_grid = X_grid.reshape((len(X_grid), 1)) 

# scatter plot for original data 
plt.scatter(X, y, color = 'red') 

# plot predicted data 
plt.plot(X_grid, regressor.predict(X_grid), color = 'blue') 

# specify title 
plt.title('Profit to Production Cost (Decision Tree Regression)') 

# specify X axis label 
plt.xlabel('Production Cost') 

# specify Y axis label 
plt.ylabel('Profit') 

# show the plot 
plt.show() 

رگرسیون درخت تصمیم

 

  رگرسیون خطی تک متغیره در پایتون

مرحله 8: درخت در نهایت استخراج و در ساختار درختی زیر نمایش داده شده است، که با استفاده از http://www.webgraphviz.com/ و کپی اطلاعات از فایل ‘tree.dot‘ بصری‌سازی شده است

# import export_graphviz 
from sklearn.tree import export_graphviz 

# export the decision tree to a tree.dot file 
# for visualizing the plot easily anywhere 
export_graphviz(regressor, out_file ='tree.dot', 
			feature_names =['Production Cost']) 

Rating 0.00 from 0 votes

لیست دروس دوره

آموزش پیشنهادی و مکمل

اگر سوالی در مورد این درس دارید، در کادر زیر بنویسید.

guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
سبد خرید

جشنواره دوره جامع متخصص علم داده شروع شد

برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.
×