Sklearn တွင် အမျိုးအစားခွဲခြင်းအစီရင်ခံစာကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုရမည် (ဥပမာနှင့်အတူ)


စက်သင်ယူမှုတွင် အမျိုးအစားခွဲခြင်းပုံစံများကို ကျွန်ုပ်တို့အသုံးပြုသောအခါ၊ ကျွန်ုပ်တို့သည် မော်ဒယ်၏အရည်အသွေးကို အကဲဖြတ်ရန် ဘုံမက်ထရစ်သုံးခုကို အသုံးပြုသည်-

1. တိကျမှု – စုစုပေါင်း အပြုသဘောဆောင်သော ခန့်မှန်းချက်များနှင့် နှိုင်းယှဉ်ပါက မှန်ကန်သော အပြုသဘောဆောင်သော ခန့်မှန်းချက်များ ရာခိုင်နှုန်း။

2. ပြန်လည်သိမ်းဆည်းခြင်း – စုစုပေါင်းအမှန်တကယ် အပြုသဘောဆောင်သော ခန့်မှန်းချက်များနှင့် နှိုင်းယှဉ်ပါက မှန်ကန်သော အပြုသဘောဆောင်သော ခန့်မှန်းချက်များ ရာခိုင်နှုန်း။

3. F1 ရမှတ် – တိကျမှုနှင့် ပြန်လည်သိမ်းဆည်းမှု၏ အလေးချိန်ရှိသော ဟာမိုနစ်ပျမ်းမျှ။ မော်ဒယ်က 1 နဲ့ ပိုနီးစပ်လေ၊ မော်ဒယ်က ပိုကောင်းပါတယ်။

  • F1 ရမှတ်- 2* (တိကျမှု * ပြန်လည်ခေါ်ယူခြင်း) / (တိကျမှု + ပြန်လည်ခေါ်ယူခြင်း)

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

ကံကောင်းထောက်မစွာ၊ Python တွင် အမျိုးအစားခွဲခြင်းပုံစံတစ်ခုကို အံကိုက်လုပ်သောအခါ၊ ဤမက်ထရစ်သုံးခုကိုထုတ်လုပ်ရန်အတွက် sklearn library မှ classification_report() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့အသုံးပြုနိုင်ပါသည်။

အောက်ဖော်ပြပါ ဥပမာသည် ဤလုပ်ဆောင်ချက်ကို လက်တွေ့အသုံးချနည်းကို ပြသထားသည်။

ဥပမာ- အမျိုးအစားခွဲခြင်းအစီရင်ခံစာကို sklearn တွင် အသုံးပြုနည်း

ဤဥပမာအတွက်၊ ကျွန်ုပ်တို့သည် မတူညီသောကောလိပ်ဘတ်စကက်ဘောကစားသမား 1,000 ကို NBA သို့ ရေးဆွဲမည်ဟုတ်-မဟုတ် ခန့်မှန်းရန် အမှတ်များနှင့် ကူညီပေးသည့် ထောက်ပံ့ပို့ဆောင်ရေးဆိုင်ရာ ဆုတ်ယုတ်မှုပုံစံကို ဖြည့်ဆည်းပေးပါမည်။

ပထမဦးစွာ၊ Python တွင် ထောက်ပံ့ပို့ဆောင်ရေးဆုတ်ယုတ်မှုကို လုပ်ဆောင်ရန် လိုအပ်သော ပက်ကေ့ဂျ်များကို တင်သွင်းပါမည်။

 import pandas as pd
import numpy as np
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import classification_report

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

 #make this example reproducible
n.p. random . seeds (1)

#createDataFrame
df = pd. DataFrame ({' points ': np. random . randint (30, size=1000),
                   ' assists ': np. random . randint (12, size=1000),
                   ' drafted ': np. random . randint (2, size=1000)})

#view DataFrame
df. head ()

	points assists drafted
0 5 1 1
1 11 8 0
2 12 4 1
3 8 7 0
4 9 0 0

မှတ်ချက်0 တန်ဖိုးသည် ကစားသမားတစ်ဦးကို ရေးဆွဲထားကြောင်း ဖော်ပြနေချိန်တွင် 1 တန်ဖိုးသည် ကစားသမားတစ်ဦးကို မူကြမ်းမရေးဆွဲထားကြောင်း ဖော်ပြသည်။

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

 #define the predictor variables and the response variable
X = df[[' points ', ' assists ']]
y = df[' drafted ']

#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split (X,y,test_size=0.3,random_state=0)  

#instantiate the model
logistic_regression = LogisticRegression()

#fit the model using the training data
logistic_regression. fit (X_train,y_train)

#use model to make predictions on test data
y_pred = logistic_regression. predict (X_test)

နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏မော်ဒယ်၏ အမျိုးအစားခွဲခြားမှုမက်ထရစ်များကို ပရင့်ထုတ်ရန် classification_report() လုပ်ဆောင်ချက်ကို အသုံးပြုပါမည်။

 #print classification report for model
print (classification_report(y_test, y_pred))

              precision recall f1-score support

           0 0.51 0.58 0.54 160
           1 0.43 0.36 0.40 140

    accuracy 0.48 300
   macro avg 0.47 0.47 0.47 300
weighted avg 0.47 0.48 0.47 300

ဤသည်မှာ ရလဒ်ကို မည်သို့အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သည်-

ရှင်းလင်းချက် – ၎င်းတို့ရေးဆွဲမည်ဟု ခန့်မှန်းထားသော မော်ဒယ်လ်ကစားသမားများအားလုံးတွင် အမှန်တကယ် 43% သာရှိခဲ့သည်။

သတိပေးချက် – အမှန်တကယ်ရေးဆွဲထားသည့် ကစားသမားများအားလုံးတွင်၊ မော်ဒယ်သည် ၎င်းတို့ထဲမှ 36% အတွက် ဤရလဒ်ကို မှန်ကန်စွာ ခန့်မှန်းပေးခဲ့ပါသည်။

F1 ရမှတ် – ဤတန်ဖိုးကို အောက်ပါအတိုင်း တွက်ချက်သည်-

  • F1 ရမှတ်- 2* (တိကျမှု * ပြန်လည်ခေါ်ယူခြင်း) / (တိကျမှု + ပြန်လည်ခေါ်ယူခြင်း)
  • F1 ရမှတ်- 2*.43*.36)/.43+.36)
  • F1 အဆင့်သတ်မှတ်ချက်- 0.40

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

ပံ့ပိုးမှု – ဤတန်ဖိုးများသည် စမ်းသပ်ဒေတာအတွဲတွင် အတန်းတစ်ခုစီတွင် ပါဝင်သည့် ကစားသမားအရေအတွက်ကို ရိုးရှင်းစွာပြောပြပါသည်။ စမ်းသပ်ဒေတာအတွဲတွင် ကစားသမား ၁၆၀ နှင့် ၁၄၀ မရေးဆွဲထားသည်ကို ကျွန်ုပ်တို့တွေ့မြင်နိုင်သည်။

မှတ်ချက်classification_report() လုပ်ဆောင်ချက်အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို ဤနေရာတွင် ရှာဖွေနိုင်ပါသည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ပါသင်ခန်းစာများသည် Python တွင် အမျိုးအစားခွဲခြင်းပုံစံများကို အသုံးပြုခြင်းဆိုင်ရာ နောက်ထပ်အချက်အလက်များကို ပေးဆောင်သည်-

Python တွင် Logistic Regression ကို မည်သို့လုပ်ဆောင်မည်နည်း။
Python တွင် Confusion Matrix ဖန်တီးနည်း
Python တွင် မျှတသောတိကျမှုကို တွက်ချက်နည်း

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်