درخت تصمیم
درخت تصمیم

درخت تصمیم مدلی است که برای حل وظایف دسته‌بندی (Classification) و رگرسیون (Regression) مورد استفاده قرار می‌گیرد.

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

این محتوای آموزشی کاربردی را تنها در این سایت می توانید بخوانید.

 

1-اضافه کردن کتابخانه‌ها

کتابخانه نام‌پای (Numpy) و train_test_split از کتابخانه سایکیت‌لِرن (Scikit-Learn) وارد (Import) می‌کنیم.

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

import numpy as np
from sklearn.model_selection import train_test_split
import os;
path="C:/Users/michaeljgrogan/Documents/a_documents/computing/data science/datasets"
os.chdir(path)
os.getcwd()

2-بارگذاری مجموعه داده و متغیرها

Python
#Variables
dataset=np.loadtxt("internetlogit.csv", delimiter=",")
x=dataset[:,0:5]
y=dataset[:,5]

اکنون از np.loadtxt برای بارگذاری داده‌ها در فرمت csv استفاده می‌کنیم.

Python
#Variables
dataset=np.loadtxt("internetlogit.csv", delimiter=",")
x=dataset[:,0:5]
y=dataset[:,5]

3-اضافه کردن DecisionTreeRegressor از sklearn

Python
from sklearn.tree import DecisionTreeRegressor
X_train, X_test, y_train, y_test = train_test_split(x, y)
tree = DecisionTreeRegressor().fit(X_train,y_train)

4-تعیین صحت مجموعه آموزش و آزمون

print("Training set accuracy: {:.3f}".format(tree.score(X_train, y_train)))
print("Test set accuracy: {:.3f}".format(tree.score(X_test, y_test)))

5-انجام پیش‌بینی‌ها از درخت تصمیم

dtree = tree.predict(x)
dtree

خروجی:

Python
array([  875.,  1792., 27754., 28256.,  4438.,  2102.,  8520.,   500.,
       22997., 26517., 15109., 20956.,  3310.,  3197.,  1211., 18005.,
       22854., 10278.,   739.,  3724.,  4733.,   971.,  6263., 24677.,
...
        8113.,  3166.,  5332.,  2232., 21989.,  5360.,  5837.,  2509.,
        5580.,  5947., 11564.,  5888.,  9130., 16105.,  1593.,  4448.,
       12771., 28511.,  6883.])

6-محاسبه درصد خطای بین پیش‌بینی‌ها و داده‌های واقعی

percentageerror_tree=((y-dtree)/dtree)*100
percentageerror_tree
np.mean(percentageerror_tree)

7- رسم درخت تصمیم

pip3 install graphviz
Python
from sklearn.tree import export_graphviz
export_graphviz(tree,out_file="tree.dot")

import graphviz
with open("tree.dot") as f:
    dot_graph = f.read()

graphviz.Source(dot_graph)
dot -Tpdf tree.dot -o tree.pdf

با توجه به اینکه پس از محاسبات مشخص شده که مدل درخت تصمیم مورد استفاده در اینجا دارای نرخ صحت بالایی است، در حال حاضر هدف ترسیم نمودار آن به صورت بصری است تا امکان تفسیر روابط میان متغیرها وجود داشته باشد. کتابخانه‌ای که برای انجام این کار مورد استفاده قرار گرفته گراف‌ویز (graphviz) نام دارند و با pip به شیوه‌ای که در ادامه بیان می‌شود قابل نصب است. شایان توجه است که با توجه به استفاده نویسنده این مطلب از پایتون ۳.۶، pip3 برای نصب مورد استفاده قرار گرفته است.

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

با پایان یافتن این کار، می‌توان شِل (shell) را باز کرد و درخت تصمیم با پایتون را در فرمت pdf خروجی گرفت.

درخت تصمیم با پایتون

 

منتظر نظرات، پیشنهادات و انتقادات شما کاربران عزیز برای بهتر شدن بخش های آموزشی سایت هستیم.

در ارتباط با شاخه های مختلف هوش مصنوعی در این لینک بیشتر بخوانید.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]