วิธีสร้างเส้นโค้งการเรียกคืนที่แม่นยำใน python


เมื่อใช้ แบบจำลองการจำแนกประเภท ในการเรียนรู้ของเครื่อง ตัวชี้วัดสองตัวที่เรามักใช้ในการประเมินคุณภาพของแบบจำลองคือความแม่นยำและการจดจำ

ความแม่นยำ : แก้ไขการคาดการณ์เชิงบวกโดยสัมพันธ์กับการคาดการณ์เชิงบวกทั้งหมด

มีการคำนวณดังนี้:

  • ความแม่นยำ = ผลบวกที่แท้จริง / (ผลบวกจริง + ผลบวกลวง)

คำเตือน : การแก้ไขการคาดการณ์เชิงบวกเทียบกับผลบวกจริงทั้งหมด

มีการคำนวณดังนี้:

  • คำเตือน = ผลบวกที่แท้จริง / (ผลบวกจริง + ผลลบเท็จ)

เพื่อให้เห็นภาพความแม่นยำและการเรียกคืนโมเดลบางรุ่น เราสามารถสร้าง เส้นโค้งการเรียกคืนที่แม่นยำ เส้นโค้งนี้แสดงข้อดีระหว่างความแม่นยำและการเรียกคืนสำหรับเกณฑ์ที่ต่างกัน

เส้นโค้งการเรียกคืนที่แม่นยำใน Python

ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีสร้างเส้นโค้งการเรียกคืนที่แม่นยำสำหรับแบบจำลองการถดถอยโลจิสติกใน Python

ขั้นตอนที่ 1: นำเข้าแพ็คเกจ

ขั้นแรก เราจะนำเข้าแพ็คเกจที่จำเป็น:

 from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib. pyplot as plt

ขั้นตอนที่ 2: ติดตั้งแบบจำลองการถดถอยโลจิสติก

ต่อไป เราจะสร้างชุดข้อมูลและปรับโมเดลการถดถอยโลจิสติกให้เหมาะสม:

 #create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
                                    n_features= 4 ,
                                    n_informative= 3 ,
                                    n_redundant= 1 ,
                                    random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]

ขั้นตอนที่ 3: สร้างเส้นโค้งการเรียกคืนที่แม่นยำ

ต่อไป เราจะคำนวณความแม่นยำและการเรียกคืนแบบจำลอง และสร้างเส้นโค้งการเรียกคืนที่แม่นยำ:

 #calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')

#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')

#displayplot
plt. show () 

เส้นโค้งการเรียกคืนที่แม่นยำใน Python

แกน x แสดงการเรียกคืน และแกน y แสดงความแม่นยำสำหรับเกณฑ์ที่แตกต่างกัน

โปรดทราบว่าเมื่อการเรียกคืนเพิ่มขึ้น ความแม่นยำจะลดลง

นี่แสดงถึงการประนีประนอมระหว่างสองเมตริก หากต้องการเพิ่มการเรียกคืนโมเดลของเรา ความแม่นยำจะต้องลดลงและในทางกลับกัน

แหล่งข้อมูลเพิ่มเติม

วิธีการดำเนินการถดถอยโลจิสติกใน Python
วิธีสร้างเมทริกซ์ความสับสนใน Python
วิธีการตีความ ROC Curve (พร้อมตัวอย่าง)

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *