Python ကျူတိုရီရယ်

Python ပင်မစာမျက်နှာ Python နိဒါန်း Python ကို စတင်လိုက်ပါ။ Python Syntax Python မှတ်ချက်များ Python Variables များ Python Data အမျိုးအစားများ Python နံပါတ်များ Python Casting Python ကြိုးများ Python Booleans Python အော်ပရေတာများ Python စာရင်းများ Python Tuples Python အစုံများ Python အဘိဓာန်များ Python If... Else Python while Loops Python For Loops Python လုပ်ဆောင်ချက်များ Python Lambda Python Arrays Python အတန်းများ/အရာဝတ္ထုများ Python Inheritance Python Iterators Python နယ်ပယ် Python Modules Python နေ့စွဲများ Python သင်္ချာ Python JSON Python RegEx Python PIP Python ကိုစမ်းကြည့်ပါ... ကလွဲရင် Python အသုံးပြုသူ ထည့်သွင်းမှု Python String Formatting

ဖိုင်ကိုင်တွယ်ခြင်း။

Python ဖိုင်ကို ကိုင်တွယ်ခြင်း။ Python ဖိုင်များကိုဖတ်ပါ။ Python ဖိုင်များကို ရေးသားခြင်း/ဖန်တီးပါ။ Python ဖိုင်များကိုဖျက်ပါ။

Python Modules

NumPy ကျူတိုရီရယ် Panda ကျင့်စဉ် Scipy ကျူတိုရီရယ်

Python Matplotlib

Matplotlib နိဒါန်း Matplotlib ကို စတင်လိုက်ပါ။ Matplotlib Pyplot Matplotlib Plotting Matplotlib အမှတ်အသားများ Matplotlib လိုင်း Matplotlib အညွှန်းများ Matplotlib Grid Matplotlib အပိုင်းခွဲများ Matplotlib ဖြန့်ကြဲခြင်း။ Matplotlib ဘားများ Matplotlib Histograms Matplotlib Pie ဇယားများ

စက်သင်ယူခြင်း။

စတင်အသုံးပြုခြင်း Mean Median Mode စံလွဲခြင်း။ ရာခိုင်နှုန်း ဒေတာဖြန့်ဝေခြင်း။ ပုံမှန်ဒေတာဖြန့်ဝေ ကွက်ကျားကွက်၊ Linear Regression Polynomial Regression Multiple Regression အတိုင်းအတာ ရထား/စမ်းသပ်မှု ဆုံးဖြတ်ချက်သစ်ပင်

Python MySQL

MySQL စတင်လိုက်ပါ။ MySQL ဒေတာဘေ့စ်ဖန်တီးပါ။ MySQL ဇယားဖန်တီးပါ။ MySQL ထည့်သွင်းခြင်း။ MySQL ကို ရွေးပါ။ MySQL ဘယ်မှာလဲ။ MySQL Order By MySQL ကိုဖျက်ပါ။ MySQL Drop Table MySQL အပ်ဒိတ် MySQL ကန့်သတ်ချက် MySQL Join

Python MongoDB

MongoDB စတင်လိုက်ပါ။ MongoDB ဒေတာဘေ့စ်ဖန်တီးပါ။ MongoDB သည် Collection ကိုဖန်တီးပါ။ MongoDB ထည့်သွင်းပါ။ MongoDB ကိုရှာပါ။ MongoDB မေးခွန်း MongoDB အမျိုးအစား MongoDB ကိုဖျက်ပါ။ MongoDB Drop Collection MongoDB အပ်ဒိတ် MongoDB ကန့်သတ်ချက်

Python အကိုးအကား

Python ခြုံငုံသုံးသပ်ချက် Python Built-in လုပ်ဆောင်ချက်များ Python String နည်းလမ်းများ Python စာရင်းနည်းလမ်းများ Python Dictionary Methods Python Tuple နည်းလမ်းများ Python သတ်မှတ်နည်းလမ်းများ Python ဖိုင်နည်းလမ်းများ Python သော့ချက်စာလုံးများ Python ခြွင်းချက်များ Python ဝေါဟာရ

Module အကိုးအကား

ကျပန်း Module တောင်းဆိုမှုများ Module Statistics Module သင်္ချာ မော်ဂျူး cMath မော်ဂျူး

Python လုပ်နည်း

စာရင်းပွားများကို ဖယ်ရှားပါ။ ကြိုးတစ်ချောင်းကို ပြောင်းပြန် နံပါတ်နှစ်ခုထည့်ပါ။

Python ဥပမာများ

Python ဥပမာများ Python Compiler Python လေ့ကျင့်ခန်းများ Python Quiz Python လက်မှတ်

စက်သင်ယူခြင်း - ဆုံးဖြတ်ချက်သစ်ပင်



ဆုံးဖြတ်ချက်သစ်ပင်

ဒီအခန်းမှာ "Decision Tree" လုပ်နည်းကို သင်ပြပါမယ်။ Decision Tree သည် Flow Chart တစ်ခုဖြစ်ပြီး ယခင်အတွေ့အကြုံကို အခြေခံ၍ ဆုံးဖြတ်ချက်များချရာတွင် ကူညီပေးနိုင်ပါသည်။

ဥပမာတွင်၊ လူတစ်ဦးသည် သူ/သူမသည် ဟာသရှိုးတစ်ခုသို့ သွားသင့်သည် သို့မဟုတ် မသွားရန် ဆုံးဖြတ်ရန် ကြိုးစားမည်ဖြစ်သည်။

ကံကောင်းစွာပင် ကျွန်ုပ်တို့၏ စံနမူနာပြပုဂ္ဂိုလ်သည် မြို့၌ ဟာသရှိုးပွဲတိုင်းတွင် စာရင်းသွင်းထားပြီး လူရွှင်တော်နှင့်ပတ်သက်သည့် အချက်အလက်အချို့ကို စာရင်းသွင်းကာ သူ/သူမသွားသည်ဖြစ်စေ၊

အသက် အတွေ့အကြုံ အဆင့် လူမျိုးစု သွားတော့
၃၆ ၁၀ ယူကေ မဟုတ်ဘူး
၄၂ ၁၂ ယူအက်စ်အေ မဟုတ်ဘူး
၂၃ မဟုတ်ဘူး
၅၂ ယူအက်စ်အေ မဟုတ်ဘူး
၄၃ ၂၁ ယူအက်စ်အေ ဟုတ်သည်။
၄၄ ၁၄ ယူကေ မဟုတ်ဘူး
၆၆ ဟုတ်သည်။
၃၅ ၁၄ ယူကေ ဟုတ်သည်။
၅၂ ၁၃ ဟုတ်သည်။
၃၅ ဟုတ်သည်။
၂၄ ယူအက်စ်အေ မဟုတ်ဘူး
၁၈ ယူကေ ဟုတ်သည်။
၄၅ ယူကေ ဟုတ်သည်။

ယခု၊ ဤဒေတာအတွဲအပေါ်အခြေခံ၍ Python သည် ရှိုးအသစ်တစ်ခုခုကို တက်ရောက်ရန်ထိုက်တန်ခြင်းရှိမရှိ ဆုံးဖြတ်ရန် အသုံးပြုနိုင်သည့် ဆုံးဖြတ်ချက်သစ်ပင်ကို ဖန်တီးနိုင်သည်။



ဤအရာဘယ်လိုအလုပ်လုပ်လဲ?

ပထမဦးစွာ သင်လိုအပ်သော မော်ဂျူးများကို တင်သွင်းပြီး ပန်ဒါများဖြင့် ဒေတာအစုံကို ဖတ်ပါ-

ဥပမာ

ဒေတာအစုံကို ဖတ်ပြီး ပရင့်ထုတ်ပါ-

import pandas
from sklearn import tree
import pydotplus
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import matplotlib.image as pltimg

df = pandas.read_csv("shows.csv")

print(df)

ဆုံးဖြတ်ချက်သစ်တစ်ခုပြုလုပ်ရန် အချက်အလက်အားလုံးသည် ဂဏန်းဖြစ်ရပါမည်။

ကျွန်ုပ်တို့သည် ဂဏန်းမဟုတ်သောကော်လံ 'Nationality' နှင့် 'Go' ကို ဂဏန်းတန်ဖိုးများအဖြစ်သို့ ပြောင်းလဲရမည်ဖြစ်သည်။

Pandas တွင် map()တန်ဖိုးများကို မည်ကဲ့သို့ပြောင်းလဲရမည်ကို အချက်အလက်နှင့်အတူ အဘိဓာန်တစ်ခုယူသည့် နည်းလမ်းတစ်ခုရှိသည်။

{'UK': 0, 'USA': 1, 'N': 2}

တန်ဖိုးများကို 'UK' သို့ 0၊ 'USA' သို့ 1၊ နှင့် 'N' သို့ 2 အဖြစ် ပြောင်းပေးသည်။

ဥပမာ

စာကြောင်းတန်ဖိုးများကို ဂဏန်းတန်ဖိုးများအဖြစ် ပြောင်းပါ-

d = {'UK': 0, 'USA': 1, 'N': 2}
df['Nationality'] = df['Nationality'].map(d)
d = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map(d)

print(df)

ထို့နောက် ကျွန်ုပ်တို့သည် အင်္ဂါရပ် ကော်လံများကို ပစ်မှတ် ကော်လံမှ ခွဲထုတ်ရပါမည်။

အင်္ဂါရပ်ကော်လံများသည် ကျွန်ုပ်တို့ခန့်မှန်းရန်ကြိုးစားသောကော်လံများ ဖြစ်ပြီး ၊ ပစ်မှတ်ကော်လံသည် ကျွန်ုပ်တို့ခန့်မှန်းရန်ကြိုးစားသောတန်ဖိုးများပါရှိသည့်ကော်လံဖြစ်သည်။

ဥပမာ

Xအင်္ဂါရပ်ကော်လံများ yဖြစ်သည်၊ ပစ်မှတ်ကော်လံဖြစ်သည်

features = ['Age', 'Experience', 'Rank', 'Nationality']

X = df[features]
y = df['Go']

print(X)
print(y)

ယခု ကျွန်ုပ်တို့သည် အမှန်တကယ် ဆုံးဖြတ်ချက်သစ်ပင်ကို ဖန်တီးနိုင်သည်၊ ကျွန်ုပ်တို့၏အသေးစိတ်အချက်အလက်များနှင့် ကိုက်ညီပြီး .png ဖိုင်ကို ကွန်ပျူတာပေါ်တွင် သိမ်းဆည်းနိုင်သည်-

ဥပမာ

ဆုံးဖြတ်ချက်သစ်ပင်ကို ဖန်တီးပါ၊ ၎င်းကို ပုံတစ်ပုံအဖြစ် သိမ်းဆည်းပြီး ပုံကို ပြသပါ။

dtree = DecisionTreeClassifier()
dtree = dtree.fit(X, y)
data = tree.export_graphviz(dtree, out_file=None, feature_names=features)
graph = pydotplus.graph_from_dot_data(data)
graph.write_png('mydecisiontree.png')

img=pltimg.imread('mydecisiontree.png')
imgplot = plt.imshow(img)
plt.show()


ရလဒ်ရှင်းပြသည်။

ဆုံးဖြတ်ချက်သစ်ပင်သည် လူရွှင်တော်တစ်ဦးကို သွားကြည့်ချင်သည်ဖြစ်စေ မလိုက်ချင်သည့် အလားအလာများကို တွက်ချက်ရန် သင်၏ အစောပိုင်းဆုံးဖြတ်ချက်များကို အသုံးပြုသည်။

ဆုံးဖြတ်ချက်သစ်ပင်၏ မတူညီသောရှုထောင့်များကို ဖတ်ကြည့်ကြပါစို့။

အဆင့်

Rank <= 6.5အဆင့် 6.5 သို့မဟုတ် အောက်ရှိ လူရွှင်တော်တိုင်းသည် Trueမြှား (ဘယ်ဘက်သို့) လိုက်မည်ဖြစ်ပြီး ကျန်သူများသည် Falseမြှား (ညာဘက်သို့) လိုက်သွားမည်ဖြစ်သည်။

gini = 0.497ခွဲထွက်ခြင်း၏ အရည်အသွေးကို ရည်ညွှန်းပြီး 0.0 နှင့် 0.5 အကြားရှိ ကိန်းဂဏန်းတစ်ခုဖြစ်ပြီး 0.0 သည် နမူနာများအားလုံး တူညီသောရလဒ်ကို ဆိုလိုပြီး 0.5 သည် ခွဲခြမ်းကို အလယ်တွင် အတိအကျလုပ်ဆောင်သည်ဟု ဆိုလိုသည်။

samples = 13ဆိုလိုတာက ဒီဆုံးဖြတ်ချက်မှာ လူရွှင်တော် ၁၃ ယောက် ကျန်သေးတယ်၊ ဒါက ပထမအဆင့်ဆိုတော့ အားလုံးပဲလေ။

value = [6, 7]ဆိုလိုတာက ဒီလူရွှင်တော် ၁၃ ယောက်ထဲက ၆ ယောက်က "NO" နဲ့ 7 ယောက်က "GO" ရလိမ့်မယ်။

Gini

နမူနာများကိုခွဲရန်နည်းလမ်းများစွာရှိသည်၊ ကျွန်ုပ်တို့သည်ဤသင်ခန်းစာတွင် GINI နည်းလမ်းကိုအသုံးပြုသည်။

Gini နည်းလမ်းသည် ဤဖော်မြူလာကို အသုံးပြုသည်-

Gini = 1 - (x/n)2 - (y/n)2

xအပြုသဘောဆောင်သောအဖြေများ ("GO") သည် အ ဘယ်မှာ ရှိသနည်း n၊ နမူနာအရေအတွက်နှင့် yဤတွက်ချက်မှုကိုပေးသော အနုတ်လက္ခဏာအဖြေများ ("NO") သည် နံပါတ်ဖြစ်သည်-

1 - (7 / 13)2 - (6 / 13)2 = 0.497

နောက်တစ်ဆင့်တွင် သေတ္တာနှစ်လုံး၊ အဆင့် 6.5 သို့မဟုတ် အောက်ရှိသော လူရွှင်တော်များအတွက် ဘောက်စ်တစ်ခု၊ ကျန်တစ်ပုံးပါရှိသည်။

အမှန် - လူရွှင်တော် 5 ဦး ဤတွင်အဆုံးသတ်ပါ။

gini = 0.0 ဆိုလိုတာက နမူနာတွေ အားလုံး တူညီတဲ့ ရလဒ်ကို ရခဲ့တယ်။

samples = 5 ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 5 ဦး ကျန်ခဲ့သည် (အဆင့် 6.5 သို့မဟုတ် အောက် လူရွှင်တော် 5 ဦး)။

value = [5, 0] ဆိုလိုသည်မှာ 5 သည် "NO" နှင့် 0 "GO" ရရှိမည်ဖြစ်သည်။

အတုအယောင် - 8 လူရွှင်တော်များ ဆက်ရန်-

လူမျိုးစု

Nationality <= 0.5 ဆိုလိုသည်မှာ 0.5 ထက်နည်းသော နိုင်ငံသားတန်ဖိုးရှိသော လူရွှင်တော်များသည် ဘယ်ဘက်သို့ မြှားနောက်လိုက်မည် (ဆိုလိုသည်မှာ UK မှလူတိုင်း၊ ) နှင့် ကျန်သူများသည် ညာဘက်သို့ မြှားနောက်သို့လိုက်သွားမည်ဖြစ်သည်။

gini = 0.219 နမူနာများ ၏ 22% ခန့်သည် လမ်းကြောင်းတစ်ခုတည်းသို့ ရောက်သွားသည်ဟု ဆိုလိုသည်။

samples = 8 ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 8 ဦး ကျန်ခဲ့သည် (အဆင့် 6.5 ထက်မြင့်သော လူရွှင်တော် 8 ဦး)။

value = [1, 7] ဆိုလိုတာက ဒီလူရွှင်တော် ၈ ယောက်မှာ ၁ ယောက်က "NO" နဲ့ 7 က "GO" ရလိမ့်မယ်။




True - 4 လူရွှင်တော်များ ဆက်ရန်:

အသက်

Age <= 35.5ဆိုလိုတာက အသက် 35.5 နှစ်အောက် လူရွှင်တော်တွေဟာ ဘယ်ဘက် မြှားကို လိုက်ကြပြီး ကျန်သူတွေက ညာဘက်မှာ မြှားနောက်ကို လိုက်ကြမယ်လို့ ဆိုလိုတာပါ။

gini = 0.375ဆိုလိုတာက နမူနာတွေရဲ့ ၃၇.၅% လောက်က လမ်းကြောင်းတစ်ခုတည်းကို ရောက်သွားမယ်။

samples = 4ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 4 ဦး ကျန်ခဲ့သည် ( UK မှ လူရွှင်တော် 4 ဦး ) ။

value = [1, 3]ဆိုလိုတာက ဒီလူရွှင်တော် ၄ ယောက်ထဲက ၁ ယောက်က "NO" နဲ့ 3 ယောက်က "GO" ရလိမ့်မယ်။

အတုအယောင် - လူရွှင်တော် 4 ဦး ဤတွင်အဆုံးသတ်ပါ။

gini = 0.0 ဆိုလိုတာက နမူနာတွေ အားလုံး တူညီတဲ့ ရလဒ်ကို ရခဲ့တယ်။

samples = 4ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 4 ယောက် ကျန်ခဲ့သည် ( UK မှမဟုတ်သော လူရွှင်တော် 4 ယောက်)။

value = [0, 4]ဆိုလိုတာက ဒီလူရွှင်တော် ၄ ယောက်ထဲက 0 က "NO" နဲ့ 4 ယောက် "GO" ရလိမ့်မယ်။




အမှန် - လူရွှင်တော် 2 ဦး ဤတွင်အဆုံးသတ်ပါ။

gini = 0.0 ဆိုလိုတာက နမူနာတွေ အားလုံး တူညီတဲ့ ရလဒ်ကို ရခဲ့တယ်။

samples = 2ဆိုလိုတာက ဒီဌာနခွဲမှာ လူရွှင်တော် ၂ ယောက် ကျန်ခဲ့တယ် (အသက် ၃၅.၅ နှစ်အောက် လူရွှင်တော် ၂ ယောက်)။

value = [0, 2]ဆိုလိုတာက ဒီလူရွှင်တော် ၂ ယောက်ထဲက 0 က "NO" နဲ့ 2 ယောက် "GO" ရလိမ့်မယ်။

အတုအယောင် - 2 လူရွှင်တော်များ ဆက်ရန်-

အတွေ့အကြုံ

Experience <= 9.5အတွေ့အကြုံ 9.5 နှစ် သို့မဟုတ် ထိုထက်နည်းသော လူရွှင်တော်များသည် ဘယ်ဘက်သို့ မြှားနောက်သို့ လိုက်မည်ဖြစ်ပြီး ကျန်သူများသည် ညာဘက်သို့ မြှားနောက်သို့ လိုက်သွားမည်ဖြစ်ကြောင်း ဆိုလိုသည်။

gini = 0.5ဆိုလိုသည်မှာ နမူနာများ၏ 50% သည် လမ်းကြောင်းတစ်ခုတည်းသို့ ရောက်သွားသည်ဟု ဆိုလိုသည်။

samples = 2ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် ၂ ဦး ကျန်ခဲ့သည် (၃၅.၅ နှစ်ထက်ကြီးသော လူရွှင်တော် ၂ ဦး)။

value = [1, 1]ဆိုလိုတာက ဒီလူရွှင်တော် ၂ ယောက်မှာ ၁ ယောက်က "NO" နဲ့ 1 က "GO" ရလိမ့်မယ်။




အမှန် - လူရွှင်တော် 1 ဦး ဤနေရာတွင် အဆုံးသတ်သည်-

gini = 0.0 ဆိုလိုတာက နမူနာတွေ အားလုံး တူညီတဲ့ ရလဒ်ကို ရခဲ့တယ်။

samples = 1ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 1 ဦး ကျန်သည် (အတွေ့အကြုံ 9.5 နှစ်နှင့် အောက် လူရွှင်တော် 1 ဦး)။

value = [0, 1]ဆိုလိုတာက 0 က "NO" ရပြီး 1 က "GO" ရလိမ့်မယ်။

အတုအယောင် - လူရွှင်တော် 1 ဦး ဤနေရာတွင် အဆုံးသတ်သည်-

gini = 0.0 ဆိုလိုတာက နမူနာတွေ အားလုံး တူညီတဲ့ ရလဒ်ကို ရခဲ့တယ်။

samples = 1ဆိုလိုသည်မှာ ဤဌာနခွဲတွင် လူရွှင်တော် 1 ဦး ကျန်သည် (အတွေ့အကြုံ 9.5 နှစ်ကျော်ရှိသော လူရွှင်တော် 1 ဦး) ဖြစ်သည်။

value = [1, 0]ဆိုလိုသည်မှာ 1 သည် "NO" နှင့် 0 "GO" ကိုရရှိမည်ဖြစ်သည်။


တန်ဖိုးများကို ခန့်မှန်းပါ။

တန်ဖိုးအသစ်များကို ခန့်မှန်းရန် Decision Tree ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။

ဥပမာ- အတွေ့အကြုံ 10 နှစ်ရှိ အသက် 40 နှစ်ရှိ အမေရိကန်လူရွှင်တော်တစ်ဦးနှင့် ဟာသအဆင့် 7 ဖြင့် သရုပ်ဆောင်ထားသော ရှိုးကို ကျွန်ုပ်သွားကြည့်သင့်ပါသလား။

ဥပမာ

တန်ဖိုးအသစ်များကို ခန့်မှန်းရန် predict() method ကိုသုံးပါ-

print(dtree.predict([[40, 10, 7, 1]]))

ဥပမာ

ဟာသအဆင့် 6 ဖြစ်ခဲ့လျှင် အဖြေကဘာလဲ။

print(dtree.predict([[40, 10, 6, 1]]))


မတူညီသောရလဒ်များ

အကယ်၍ သင်သည် ၎င်းအား တူညီသောဒေတာဖြင့် ကျွေးမွေးထားလျှင်ပင် ၎င်းကို အကြိမ်အလုံအလောက်လုပ်ဆောင်ပါက Decision Tree သည် သင့်အား မတူညီသောရလဒ်များ ပေးသည်ကို သင်တွေ့ရပါမည်။

အဘယ်ကြောင့်ဆိုသော် Decision Tree သည် ကျွန်ုပ်တို့အား 100% တိကျသေချာသော အဖြေမပေးသောကြောင့်ဖြစ်သည်။ ၎င်းသည် ရလဒ်တစ်ခု၏ဖြစ်နိုင်ခြေအပေါ်အခြေခံပြီး အဖြေကွဲပြားမည်ဖြစ်သည်။