Qarorlar daraxti va uni qurish algoritmlari


Scikit-da qarorlar daraxti tasniflagichini qurish



Download 1,44 Mb.
bet9/11
Sana27.01.2023
Hajmi1,44 Mb.
#904031
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Qaror daraxti algoritmi

Scikit-da qarorlar daraxti tasniflagichini qurish


Bizda mavjud bo'lgan ma'lumotlar to'plami supermarket ma'lumotlari bo'lib, uni bu yerdan yuklab olish mumkin .
Barcha asosiy kutubxonalarni yuklang.
numpy ni np
import matplotlib sifatida import qiling . pyplot as plt
import pandas as pd
Ma'lumotlar to'plamini yuklang. U 5 ta xususiyatdan iborat, UserID, Gender, Age, EstimatedSalaryva Purchased.

ma'lumotlar = pd . read_csv ( '/Users/ML/DecisionTree/Social.csv' )


ma'lumotlari . bosh ()

Ma'lumotlar to'plami
Biz faqat Age va EstimatedSalary mustaqil o'zgaruvchilar sifatida qabul qilamiz, X chunki boshqa xususiyatlar Gender va ahamiyatsiz va insonning xarid qobiliyatiga ta'sir qilmaydi. Sotib olingan - bizning bog'liq o'zgaruvchimiz .User IDy
feature_cols = [ 'Yosh' , 'Taxminiy ish haqi' ] X = ma'lumotlar . iloc [:,[ 2 , 3 ]]. qiymatlar
y = ma'lumotlar . iloc [:, 4 ]. qiymatlar
Keyingi qadam ma'lumotlar to'plamini o'qitish va sinovga bo'lishdir.
sklearn dan . model_selection import train_test_split
X_train , X_test , y_train , y_test = train_test_split ( X , y , test_size = 0,25 , random_state = 0 )
Xususiyatlarni masshtablashni amalga oshiring

sklearn dan #funksiya masshtablash . importni oldindan qayta ishlash StandardScaler


sc_X = StandardScaler ()
X_train = sc_X . fit_transform ( X_train )
X_test = sc_X . aylantirish ( X_test )
Modelni qarorlar daraxti tasniflagichiga moslang.

sklearn dan . daraxt importi DecisionTreeClassifier


tasniflagichi = DecisionTreeClassifier ()
tasniflagichi = tasniflagich . mos ( X_train , y_train )
Bashorat qiling va aniqligini tekshiring.

#prediction


y_pred = klassifikator . bashorat qilish ( X_test )# Sklearn import metricsprint dan aniqlik ( 'Aniqlik reytingi:' , ko'rsatkichlar . accuracy_score ( y_test , y_pred ))
Qaror daraxti tasniflagichi 91% aniqlikni berdi.
Chalkashlik matritsasi

sklearn dan . ko'rsatkichlar import confusion_matrix


sm = confusion_matrix ( y_test , y_pred ) Chiqish :
massiv ([[ 64 , 4 ], [ 2 , 30 ]])
Bu 6 ta kuzatuv noto'g'ri deb tasniflanganligini anglatadi.
Keling, avvalo modelni bashorat qilish natijalarini tasavvur qilaylik.

matplotlib dan . ranglar importi ListedColormap


X_set , y_set = X_test , y_test
X1 , X2 = np . meshgrid ( np . arange ( start = X_set [:, 0 ]. min ()- 1 , stop = X_set [:, 0 ]. maks ()+ 1 , qadam = 0,01 ), np . arange ( start = X_set [:, 1 ]. min ()- 1 , stop = X_set [:, 1 ]. maks ()+ 1 , qadam = 0,01 ))
plt . kontur ( X1 , X2 , klassifikator . bashorat qilish ( np . massiv ([ X1 . ravel (), X2 . ravel ()]). T ). shaklini o'zgartirish ( X1 . shakl ), alfa = 0,75 , cmap = Listlangan Rang xaritasi (( "qizil" , "yashil" ))) plt . xlim ( X1 . min (), X1 . max ())
plt . ylim ( X2 . min (), X2 . max ()) i , j uchun sanab o'tish ( np . noyob ( y_set ) ):
plt . scatter ( X_set [ y_set == j , 0 ], X_set [ y_set == j , 1 ], c = ListedColormap (( "qizil" , "yashil" ))( i ), label = j )
plt . sarlavha ( "Qarorlar daraxti(Test to'plami)" )
plt . xlabel ( "Yosh" )
plt . ylabel ( "Taxminiy ish haqi" )
plt . afsona ()
plt . ko'rsatish ()

Keling, daraxtni ham tasavvur qilaylik:
Jupyter daftarida daraxtni ko'rsatish uchun Scikit- learnning export_graphviz funksiyasidan foydalanishingiz mumkin. Daraxtlarni chizish uchun siz Graphviz va pydotplus-ni ham o'rnatishingiz kerak.
conda install python-graphviz
pip install pydotplus
eksport_graphviz funktsiyasi qarorlar daraxti tasniflagichini nuqta fayliga o'zgartiradi va pydotplus bu nuqta faylini png yoki Jupyterda ko'rsatiladigan shaklga aylantiradi.

sklearn dan . daraxt import eksport_graphviz


sklearn dan . tashqi . olti import StringIO IPython dan . displey import Rasm import pydotplusdot_data = StringIO ()
export_graphviz ( klassifikator , out_fale = nuqta_ma'lumotlar ,
to'ldirilgan = Rost , yaxlitlangan = Rost ,
maxsus_belgilar = Rost
, xususiyat_nomlari = xususiyat_ko'rsatkichlari , sinf_nomlari =[ '0' , '1' ] )
grafik = pydotplus . graph_from_dot_data ( nuqta_ma'lumotlar . getvalue ()) Rasm ( grafik . create_png ())

Qaror daraxti.
Qarorlar daraxti diagrammasida har bir ichki tugun ma'lumotlarni ajratuvchi qaror qoidasiga ega. Jini tugunning nopokligini o'lchaydigan Jini nisbati deb ataladi. Agar tugunning barcha yozuvlari bir xil sinfga tegishli bo'lsa, tugunni sof deb aytishingiz mumkin, masalan, barg tugunlari deb nomlanuvchi tugunlar.
Bu erda hosil bo'lgan daraxt kesilmaydi. Bu kesilmagan daraxtni tushuntirish mumkin emas va tushunish oson emas. Keyingi bo'limda uni kesish orqali optimallashtiramiz.

Download 1,44 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish