[Update] การทำความเข้าใจ Logistic Regression และ Building Model ใน Python | logistic regression คือ – Sathyasaith

logistic regression คือ: คุณกำลังดูกระทู้

Table of Contents

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

เทคนิคการจัดหมวดหมู่เป็นส่วนสำคัญของการเรียนรู้ของเครื่องและแอปพลิเคชันการขุดข้อมูล ประมาณ 70% ของปัญหาใน Data Science เป็นปัญหาการจำแนกประเภท มีปัญหาการจำแนกประเภทมากมาย แต่การถดถอยโลจิสติกส์เป็นวิธีการถดถอยที่ใช้กันทั่วไปและมีประโยชน์สำหรับการแก้ปัญหาการจัดประเภทไบนารี การจัดหมวดหมู่อีกประเภทหนึ่งคือการจำแนกหลายประเภทซึ่งจัดการกับปัญหาที่มีหลายคลาสอยู่ในตัวแปรเป้าหมาย ตัวอย่างเช่นชุดข้อมูล IRIS ตัวอย่างที่มีชื่อเสียงต่างๆของการจำแนกประเภทหลายคลาส ตัวอย่างอื่น ๆ คือการจำแนกประเภทบทความ / บล็อก / เอกสาร

Logistic Regression สามารถใช้สำหรับปัญหาการจำแนกประเภทต่างๆเช่นการตรวจจับสแปมการทำนายโรคเบาหวานหากลูกค้ารายใดรายหนึ่งจะซื้อผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่งหรือจะส่งต่อให้กับคู่แข่งรายอื่นผู้ใช้จะคลิกลิงก์โฆษณาที่กำหนดหรือไม่และตัวอย่างอื่น ๆ อีกมากมายอยู่ใน ถัง

Logistic Regression เป็นหนึ่งในอัลกอริธึม Machine Learning ที่ง่ายและใช้กันมากที่สุดสำหรับการจำแนกสองชั้น ใช้งานได้ง่ายและสามารถใช้เป็นพื้นฐานสำหรับปัญหาการจำแนกไบนารีใด ๆ แนวคิดพื้นฐานเบื้องต้นยังมีประโยชน์มากในการเรียนรู้เชิงลึก การถดถอยโลจิสติกอธิบายและประมาณความสัมพันธ์ระหว่างตัวแปรไบนารีที่ขึ้นกับตัวแปรอิสระหนึ่งตัว

ในบทช่วยสอนนี้คุณจะได้เรียนรู้สิ่งต่างๆต่อไปนี้ใน Logistic Regression:

  • ความรู้เบื้องต้นเกี่ยวกับ Logistic Regression
  • การถดถอยเชิงเส้นเทียบกับ การถดถอยโลจิสติก
  • การประมาณความเป็นไปได้สูงสุดเทียบกับ วิธีสี่เหลี่ยมน้อยที่สุดธรรมดา
  • Logistic Regression ทำงานอย่างไร?
  • การสร้างแบบจำลองใน Scikit-learn
  • การประเมินแบบจำลองโดยใช้ Confusion Matrix และ ROC Curve
  • ข้อดีและข้อเสียของ Logistic Regression

การถดถอยโลจิสติกเป็นวิธีการทางสถิติในการทำนายคลาสไบนารี ผลลัพธ์หรือตัวแปรเป้าหมายมีลักษณะเป็น dichotomous, dichotomous หมายถึงมีเพียงสองคลาสที่เป็นไปได้ ตัวอย่างเช่นสามารถใช้สำหรับปัญหาการตรวจหามะเร็ง คำนวณความน่าจะเป็นของเหตุการณ์ที่เกิดขึ้น

เป็นกรณีพิเศษของการถดถอยเชิงเส้นที่ตัวแปรเป้าหมายมีลักษณะเป็นหมวดหมู่ มันใช้บันทึกของอัตราต่อรองเป็นตัวแปรตาม Logistic Regression ทำนายความน่าจะเป็นของการเกิดเหตุการณ์ไบนารีโดยใช้ฟังก์ชัน logit

สมการถดถอยเชิงเส้น:

โดยที่ y คือตัวแปรตามและ x1, x2 …และ Xn เป็นตัวแปรอธิบาย

ฟังก์ชัน Sigmoid:

ใช้ฟังก์ชัน Sigmoid กับการถดถอยเชิงเส้น:

คุณสมบัติของ Logistic Regression:

  • ตัวแปรตามในการถดถอยโลจิสติกเป็นไปตาม Bernoulli Distribution
  • การประมาณทำได้โดยความเป็นไปได้สูงสุด
  • ไม่มี R Square, Model fitness คำนวณผ่าน Concordance, KS-Statistics

การถดถอยเชิงเส้นให้ผลลัพธ์ที่ต่อเนื่อง แต่การถดถอยโลจิสติกให้ผลลัพธ์ที่ต่อเนื่อง ตัวอย่างของผลผลิตต่อเนื่องคือราคาบ้านและราคาหุ้น ตัวอย่างของผลลัพธ์ที่ไม่ต่อเนื่องคือการทำนายว่าผู้ป่วยเป็นมะเร็งหรือไม่โดยทำนายว่าลูกค้าจะปั่นป่วน การถดถอยเชิงเส้นประมาณโดยใช้กำลังสองน้อยที่สุดธรรมดา (OLS) ในขณะที่การถดถอยโลจิสติกจะประมาณโดยใช้วิธีการประมาณค่าความเป็นไปได้สูงสุด (MLE)

การประมาณความเป็นไปได้สูงสุดเทียบกับ วิธีกำลังสองน้อยที่สุด

MLE เป็นวิธีการเพิ่มสูงสุดแบบ “ความเป็นไปได้” ในขณะที่ OLS เป็นวิธีการประมาณแบบลดระยะทาง การเพิ่มฟังก์ชันความน่าจะเป็นสูงสุดจะกำหนดพารามิเตอร์ที่มีแนวโน้มมากที่สุดในการสร้างข้อมูลที่สังเกตได้ จากมุมมองทางสถิติ MLE กำหนดค่าเฉลี่ยและความแปรปรวนเป็นพารามิเตอร์ในการกำหนดค่าพาราเมตริกเฉพาะสำหรับโมเดลที่กำหนด ชุดของพารามิเตอร์นี้สามารถใช้สำหรับการทำนายข้อมูลที่ต้องการในการแจกแจงปกติ

ค่าประมาณกำลังสองอย่างน้อยธรรมดาคำนวณโดยการปรับเส้นถดถอยบนจุดข้อมูลที่กำหนดซึ่งมีผลรวมต่ำสุดของส่วนเบี่ยงเบนกำลังสอง (ข้อผิดพลาดกำลังสองน้อยที่สุด) ทั้งสองใช้เพื่อประมาณค่าพารามิเตอร์ของแบบจำลองการถดถอยเชิงเส้น MLE ถือว่าฟังก์ชันมวลความน่าจะเป็นร่วมกันในขณะที่ OLS ไม่ต้องการสมมติฐานสุ่มใด ๆ สำหรับการลดระยะห่าง

ฟังก์ชัน Sigmoid

ฟังก์ชัน sigmoid เรียกอีกอย่างว่าฟังก์ชันโลจิสติกส์ให้เส้นโค้งรูปตัว ‘S’ ที่สามารถนำจำนวนที่มีมูลค่าจริงใด ๆ มาจับคู่เป็นค่าระหว่าง 0 ถึง 1 ถ้าเส้นโค้งไปที่อินฟินิตี้บวก y ที่คาดการณ์ไว้จะกลายเป็น 1 และถ้า เส้นโค้งไปที่อินฟินิตี้ติดลบ y ที่คาดการณ์ไว้จะกลายเป็น 0 หากเอาต์พุตของฟังก์ชัน sigmoid มากกว่า 0.5 เราสามารถจำแนกผลลัพธ์เป็น 1 หรือ YES และถ้าน้อยกว่า 0.5 เราสามารถจัดประเภทเป็น 0 หรือ NO ได้ ผลลัพธ์ไม่ได้ตัวอย่างเช่น: หากผลลัพธ์เป็น 0.75 เราสามารถพูดในแง่ของความน่าจะเป็นได้ว่า: มีโอกาส 75 เปอร์เซ็นต์ที่ผู้ป่วยจะเป็นมะเร็ง

ประเภทของ Logistic Regression

ประเภทของ Logistic Regression:

  • การถดถอยโลจิสติกแบบไบนารี: ตัวแปรเป้าหมายมีผลลัพธ์ที่เป็นไปได้เพียงสองอย่างเช่นสแปมหรือไม่ใช่สแปมมะเร็งหรือไม่มีมะเร็ง
  • Multinomial Logistic Regression: ตัวแปรเป้าหมายมีสามประเภทหรือมากกว่าเล็กน้อยเช่นการทำนายประเภทของไวน์
  • การถดถอยลอจิสติกตามลำดับ: ตัวแปรเป้าหมายมีสามหมวดหมู่ลำดับขึ้นไปเช่นร้านอาหารหรือการให้คะแนนผลิตภัณฑ์ตั้งแต่ 1 ถึง 5

มาสร้างแบบจำลองการทำนายโรคเบาหวานกัน

ที่นี่คุณจะทำนายโรคเบาหวานโดยใช้ Logistic Regression Classifier

ก่อนอื่นให้โหลดชุดข้อมูล Pima Indian Diabetes ที่ต้องการโดยใช้ฟังก์ชัน CSV อ่านของแพนด้า คุณสามารถดาวน์โหลดข้อมูลได้จากลิงค์ต่อไปนี้:

กำลังโหลดข้อมูล

#import pandas
import pandas as pd
col_names = ['pregnant', 'glucose', 'bp', 'skin', 'insulin', 'bmi', 'pedigree', 'age', 'label']
# load dataset
pima = pd.read_csv("pima-indians-diabetes.csv", header=None, names=col_names)
pima.head()


ที่นี่คุณต้องแบ่งคอลัมน์ที่กำหนดออกเป็นสองประเภทของตัวแปรตาม (หรือตัวแปรเป้าหมาย) และตัวแปรอิสระ (หรือตัวแปรคุณลักษณะ)

#split dataset in features and target variable
feature_cols = ['pregnant', 'insulin', 'bmi', 'age','glucose','bp','pedigree']
X = pima[feature_cols] # Features
y = pima.label # Target variable

เพื่อให้เข้าใจประสิทธิภาพของโมเดลการแบ่งชุดข้อมูลออกเป็นชุดฝึกและชุดทดสอบเป็นกลยุทธ์ที่ดี

มาแยกชุดข้อมูลโดยใช้ฟังก์ชัน train_test_split () คุณต้องผ่านคุณสมบัติ 3 พารามิเตอร์เป้าหมายและขนาด test_set โดยทั่วไป นอกจากนี้คุณสามารถใช้ random_state เพื่อเลือกระเบียนแบบสุ่ม

# split X and y into training and testing sets
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)

การพัฒนาแบบจำลองและการทำนาย

ขั้นแรกให้อิมพอร์ตโมดูล Logistic Regression และสร้างอ็อบเจ็กต์ลักษณนาม Logistic Regression โดยใช้ฟังก์ชัน LogisticRegression ()

จากนั้นใส่แบบจำลองของคุณบนชุดรถไฟโดยใช้ fit () และทำการคาดคะเนในชุดทดสอบโดยใช้การคาดคะเน ()

# import the class
from sklearn.linear_model import LogisticRegression
# instantiate the model (using the default parameters)
logreg = LogisticRegression()
# fit the model with data
logreg.fit(X_train,y_train)

​# predict 
y_pred=logreg.predict(X_test)

เมทริกซ์ความสับสนคือตารางที่ใช้ในการประเมินประสิทธิภาพของแบบจำลองการจำแนกประเภท คุณยังสามารถเห็นภาพประสิทธิภาพของอัลกอริทึม พื้นฐานของเมทริกซ์ความสับสนคือจำนวนของการคาดการณ์ที่ถูกต้องและไม่ถูกต้องสรุปได้อย่างชาญฉลาด

See also  [NEW] แจก 30 เพลงเต้น เพลงสากลมันส์ ๆ เต้นยาวไป แรงไม่หมด ไม่กลับ! | คิดถึงจังหวะ 4sh - Sathyasaith

ใน [9]:

# import the metrics class
from sklearn import metrics
cnf_matrix = metrics.confusion_matrix(y_test, y_pred)
cnf_matrix

Output:
array([[119,  11],
       [ 26,  36]])

การแสดงภาพเมทริกซ์ความสับสนโดยใช้ Heatmap

ลองนึกภาพผลลัพธ์ของแบบจำลองในรูปแบบของเมทริกซ์ความสับสนโดยใช้ matplotlib และ seaborn

ที่นี่คุณจะเห็นภาพเมทริกซ์ความสับสนโดยใช้ Heatmap

# import required modules
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

class_names=[0,1] # name  of classes
fig, ax = plt.subplots()
tick_marks = np.arange(len(class_names))
plt.xticks(tick_marks, class_names)
plt.yticks(tick_marks, class_names)
# create heatmap
sns.heatmap(pd.DataFrame(cnf_matrix), annot=True, cmap="YlGnBu" ,fmt='g')
ax.xaxis.set_label_position("top")
plt.tight_layout()
plt.title('Confusion matrix', y=1.1)
plt.ylabel('Actual label')
plt.xlabel('Predicted label')


ลองประเมินโมเดลโดยใช้เมตริกการประเมินแบบจำลองเช่นความแม่นยำความแม่นยำและการเรียกคืน

print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
print("Precision:",metrics.precision_score(y_test, y_pred))
print("Recall:",metrics.recall_score(y_test, y_pred))

Output:
Accuracy: 0.8072916666666666
Precision: 0.7659574468085106
Recall: 0.5806451612903226

ความแม่นยำ: ความแม่นยำคือความแม่นยำเช่นโมเดลของคุณแม่นยำแค่ไหน กล่าวอีกนัยหนึ่งก็คือคุณสามารถพูดได้ว่าเมื่อนางแบบทำการคาดคะเนบ่อยเพียงใดที่ถูกต้อง ในกรณีการทำนายของคุณเมื่อแบบจำลอง Logistic Regression ของคุณทำนายว่าผู้ป่วยจะเป็นโรคเบาหวานผู้ป่วยมีเวลา 76%

การเรียกคืน: หากมีผู้ป่วยที่เป็นโรคเบาหวานในชุดทดสอบและแบบจำลอง Logistic Regression ของคุณสามารถระบุได้ 58% ของเวลา

ROC Curve

เส้นโค้งลักษณะการทำงานของผู้รับ (ROC) คือพล็อตของอัตราบวกจริงเทียบกับอัตราผลบวกเท็จ แสดงการแลกเปลี่ยนระหว่างความอ่อนไหวและความจำเพาะ

y_pred_proba = logreg.predict_proba(X_test)[::,1]
fpr, tpr, _ = metrics.roc_curve(y_test,  y_pred_proba)
auc = metrics.roc_auc_score(y_test, y_pred_proba)
plt.plot(fpr,tpr,label="data 1, auc="+str(auc))
plt.legend(loc=4)
plt.show()


ข้อดี

เนื่องจากลักษณะที่เรียบง่ายและมีประสิทธิภาพไม่ต้องการพลังในการคำนวณสูงใช้งานง่ายตีความได้ง่ายซึ่งนักวิเคราะห์ข้อมูลและนักวิทยาศาสตร์ใช้กันอย่างแพร่หลาย ยังไม่ต้องการการปรับขนาดของคุณสมบัติ การถดถอยโลจิสติกให้คะแนนความน่าจะเป็นสำหรับการสังเกต

ข้อเสีย

การถดถอยโลจิสติกไม่สามารถจัดการกับคุณลักษณะ / ตัวแปรเชิงหมวดหมู่จำนวนมากได้ มีความเสี่ยงที่จะสวมใส่มากเกินไป นอกจากนี้ไม่สามารถแก้ปัญหาที่ไม่เป็นเชิงเส้นด้วยการถดถอยโลจิสติกส์ได้นั่นคือเหตุผลว่าทำไมจึงต้องมีการเปลี่ยนแปลงคุณสมบัติที่ไม่ใช่เชิงเส้น การถดถอยโลจิสติกจะทำงานได้ไม่ดีกับตัวแปรอิสระที่ไม่มีความสัมพันธ์กับตัวแปรเป้าหมายและมีความคล้ายคลึงหรือสัมพันธ์กันมาก

สรุป

ในบทช่วยสอนนี้คุณได้กล่าวถึงรายละเอียดมากมายเกี่ยวกับ Logistic Regression คุณได้เรียนรู้ว่าอะไรคือการถดถอยโลจิสติกวิธีสร้างแบบจำลองตามลำดับวิธีการแสดงผลลัพธ์และข้อมูลพื้นฐานทางทฤษฎีบางอย่าง นอกจากนี้คุณยังได้กล่าวถึงแนวคิดพื้นฐานบางประการเช่นฟังก์ชัน sigmoid โอกาสสูงสุดเมทริกซ์ความสับสนเส้นโค้ง ROC

หวังว่าตอนนี้คุณสามารถใช้เทคนิค Logistic Regression เพื่อวิเคราะห์ชุดข้อมูลของคุณเองได้แล้ว ขอบคุณที่อ่านบทแนะนำนี้!

สำหรับบทแนะนำโครงการและหลักสูตรเพิ่มเติมโปรดไปที่DataCamp

เผยแพร่ครั้งแรกที่ https://www.datacamp.com/community/tutorials/understanding-logistic-regression-python

ติดต่อฉันได้ที่ Linkedin: https://www.linkedin.com/in/avinash-navlani/

[Update] การทำความเข้าใจ Logistic Regression และ Building Model ใน Python | logistic regression คือ – Sathyasaith

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

เทคนิคการจัดหมวดหมู่เป็นส่วนสำคัญของการเรียนรู้ของเครื่องและแอปพลิเคชันการขุดข้อมูล ประมาณ 70% ของปัญหาใน Data Science เป็นปัญหาการจำแนกประเภท มีปัญหาการจำแนกประเภทมากมาย แต่การถดถอยโลจิสติกส์เป็นวิธีการถดถอยที่ใช้กันทั่วไปและมีประโยชน์สำหรับการแก้ปัญหาการจัดประเภทไบนารี การจัดหมวดหมู่อีกประเภทหนึ่งคือการจำแนกหลายประเภทซึ่งจัดการกับปัญหาที่มีหลายคลาสอยู่ในตัวแปรเป้าหมาย ตัวอย่างเช่นชุดข้อมูล IRIS ตัวอย่างที่มีชื่อเสียงต่างๆของการจำแนกประเภทหลายคลาส ตัวอย่างอื่น ๆ คือการจำแนกประเภทบทความ / บล็อก / เอกสาร

Logistic Regression สามารถใช้สำหรับปัญหาการจำแนกประเภทต่างๆเช่นการตรวจจับสแปมการทำนายโรคเบาหวานหากลูกค้ารายใดรายหนึ่งจะซื้อผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่งหรือจะส่งต่อให้กับคู่แข่งรายอื่นผู้ใช้จะคลิกลิงก์โฆษณาที่กำหนดหรือไม่และตัวอย่างอื่น ๆ อีกมากมายอยู่ใน ถัง

Logistic Regression เป็นหนึ่งในอัลกอริธึม Machine Learning ที่ง่ายและใช้กันมากที่สุดสำหรับการจำแนกสองชั้น ใช้งานได้ง่ายและสามารถใช้เป็นพื้นฐานสำหรับปัญหาการจำแนกไบนารีใด ๆ แนวคิดพื้นฐานเบื้องต้นยังมีประโยชน์มากในการเรียนรู้เชิงลึก การถดถอยโลจิสติกอธิบายและประมาณความสัมพันธ์ระหว่างตัวแปรไบนารีที่ขึ้นกับตัวแปรอิสระหนึ่งตัว

ในบทช่วยสอนนี้คุณจะได้เรียนรู้สิ่งต่างๆต่อไปนี้ใน Logistic Regression:

  • ความรู้เบื้องต้นเกี่ยวกับ Logistic Regression
  • การถดถอยเชิงเส้นเทียบกับ การถดถอยโลจิสติก
  • การประมาณความเป็นไปได้สูงสุดเทียบกับ วิธีสี่เหลี่ยมน้อยที่สุดธรรมดา
  • Logistic Regression ทำงานอย่างไร?
  • การสร้างแบบจำลองใน Scikit-learn
  • การประเมินแบบจำลองโดยใช้ Confusion Matrix และ ROC Curve
  • ข้อดีและข้อเสียของ Logistic Regression

การถดถอยโลจิสติกเป็นวิธีการทางสถิติในการทำนายคลาสไบนารี ผลลัพธ์หรือตัวแปรเป้าหมายมีลักษณะเป็น dichotomous, dichotomous หมายถึงมีเพียงสองคลาสที่เป็นไปได้ ตัวอย่างเช่นสามารถใช้สำหรับปัญหาการตรวจหามะเร็ง คำนวณความน่าจะเป็นของเหตุการณ์ที่เกิดขึ้น

เป็นกรณีพิเศษของการถดถอยเชิงเส้นที่ตัวแปรเป้าหมายมีลักษณะเป็นหมวดหมู่ มันใช้บันทึกของอัตราต่อรองเป็นตัวแปรตาม Logistic Regression ทำนายความน่าจะเป็นของการเกิดเหตุการณ์ไบนารีโดยใช้ฟังก์ชัน logit

สมการถดถอยเชิงเส้น:

โดยที่ y คือตัวแปรตามและ x1, x2 …และ Xn เป็นตัวแปรอธิบาย

ฟังก์ชัน Sigmoid:

ใช้ฟังก์ชัน Sigmoid กับการถดถอยเชิงเส้น:

คุณสมบัติของ Logistic Regression:

  • ตัวแปรตามในการถดถอยโลจิสติกเป็นไปตาม Bernoulli Distribution
  • การประมาณทำได้โดยความเป็นไปได้สูงสุด
  • ไม่มี R Square, Model fitness คำนวณผ่าน Concordance, KS-Statistics

การถดถอยเชิงเส้นให้ผลลัพธ์ที่ต่อเนื่อง แต่การถดถอยโลจิสติกให้ผลลัพธ์ที่ต่อเนื่อง ตัวอย่างของผลผลิตต่อเนื่องคือราคาบ้านและราคาหุ้น ตัวอย่างของผลลัพธ์ที่ไม่ต่อเนื่องคือการทำนายว่าผู้ป่วยเป็นมะเร็งหรือไม่โดยทำนายว่าลูกค้าจะปั่นป่วน การถดถอยเชิงเส้นประมาณโดยใช้กำลังสองน้อยที่สุดธรรมดา (OLS) ในขณะที่การถดถอยโลจิสติกจะประมาณโดยใช้วิธีการประมาณค่าความเป็นไปได้สูงสุด (MLE)

การประมาณความเป็นไปได้สูงสุดเทียบกับ วิธีกำลังสองน้อยที่สุด

MLE เป็นวิธีการเพิ่มสูงสุดแบบ “ความเป็นไปได้” ในขณะที่ OLS เป็นวิธีการประมาณแบบลดระยะทาง การเพิ่มฟังก์ชันความน่าจะเป็นสูงสุดจะกำหนดพารามิเตอร์ที่มีแนวโน้มมากที่สุดในการสร้างข้อมูลที่สังเกตได้ จากมุมมองทางสถิติ MLE กำหนดค่าเฉลี่ยและความแปรปรวนเป็นพารามิเตอร์ในการกำหนดค่าพาราเมตริกเฉพาะสำหรับโมเดลที่กำหนด ชุดของพารามิเตอร์นี้สามารถใช้สำหรับการทำนายข้อมูลที่ต้องการในการแจกแจงปกติ

ค่าประมาณกำลังสองอย่างน้อยธรรมดาคำนวณโดยการปรับเส้นถดถอยบนจุดข้อมูลที่กำหนดซึ่งมีผลรวมต่ำสุดของส่วนเบี่ยงเบนกำลังสอง (ข้อผิดพลาดกำลังสองน้อยที่สุด) ทั้งสองใช้เพื่อประมาณค่าพารามิเตอร์ของแบบจำลองการถดถอยเชิงเส้น MLE ถือว่าฟังก์ชันมวลความน่าจะเป็นร่วมกันในขณะที่ OLS ไม่ต้องการสมมติฐานสุ่มใด ๆ สำหรับการลดระยะห่าง

ฟังก์ชัน Sigmoid

ฟังก์ชัน sigmoid เรียกอีกอย่างว่าฟังก์ชันโลจิสติกส์ให้เส้นโค้งรูปตัว ‘S’ ที่สามารถนำจำนวนที่มีมูลค่าจริงใด ๆ มาจับคู่เป็นค่าระหว่าง 0 ถึง 1 ถ้าเส้นโค้งไปที่อินฟินิตี้บวก y ที่คาดการณ์ไว้จะกลายเป็น 1 และถ้า เส้นโค้งไปที่อินฟินิตี้ติดลบ y ที่คาดการณ์ไว้จะกลายเป็น 0 หากเอาต์พุตของฟังก์ชัน sigmoid มากกว่า 0.5 เราสามารถจำแนกผลลัพธ์เป็น 1 หรือ YES และถ้าน้อยกว่า 0.5 เราสามารถจัดประเภทเป็น 0 หรือ NO ได้ ผลลัพธ์ไม่ได้ตัวอย่างเช่น: หากผลลัพธ์เป็น 0.75 เราสามารถพูดในแง่ของความน่าจะเป็นได้ว่า: มีโอกาส 75 เปอร์เซ็นต์ที่ผู้ป่วยจะเป็นมะเร็ง

ประเภทของ Logistic Regression

ประเภทของ Logistic Regression:

  • การถดถอยโลจิสติกแบบไบนารี: ตัวแปรเป้าหมายมีผลลัพธ์ที่เป็นไปได้เพียงสองอย่างเช่นสแปมหรือไม่ใช่สแปมมะเร็งหรือไม่มีมะเร็ง
  • Multinomial Logistic Regression: ตัวแปรเป้าหมายมีสามประเภทหรือมากกว่าเล็กน้อยเช่นการทำนายประเภทของไวน์
  • การถดถอยลอจิสติกตามลำดับ: ตัวแปรเป้าหมายมีสามหมวดหมู่ลำดับขึ้นไปเช่นร้านอาหารหรือการให้คะแนนผลิตภัณฑ์ตั้งแต่ 1 ถึง 5

มาสร้างแบบจำลองการทำนายโรคเบาหวานกัน

ที่นี่คุณจะทำนายโรคเบาหวานโดยใช้ Logistic Regression Classifier

ก่อนอื่นให้โหลดชุดข้อมูล Pima Indian Diabetes ที่ต้องการโดยใช้ฟังก์ชัน CSV อ่านของแพนด้า คุณสามารถดาวน์โหลดข้อมูลได้จากลิงค์ต่อไปนี้:

กำลังโหลดข้อมูล

#import pandas
import pandas as pd
col_names = ['pregnant', 'glucose', 'bp', 'skin', 'insulin', 'bmi', 'pedigree', 'age', 'label']
# load dataset
pima = pd.read_csv("pima-indians-diabetes.csv", header=None, names=col_names)
pima.head()


ที่นี่คุณต้องแบ่งคอลัมน์ที่กำหนดออกเป็นสองประเภทของตัวแปรตาม (หรือตัวแปรเป้าหมาย) และตัวแปรอิสระ (หรือตัวแปรคุณลักษณะ)

See also  [NEW] การวางผังบริเวณ การจัดการมรดกวัฒนธรรม และสิ่งแวดล้อมภายในวัด | การวางผังวัด - Sathyasaith

#split dataset in features and target variable
feature_cols = ['pregnant', 'insulin', 'bmi', 'age','glucose','bp','pedigree']
X = pima[feature_cols] # Features
y = pima.label # Target variable

เพื่อให้เข้าใจประสิทธิภาพของโมเดลการแบ่งชุดข้อมูลออกเป็นชุดฝึกและชุดทดสอบเป็นกลยุทธ์ที่ดี

มาแยกชุดข้อมูลโดยใช้ฟังก์ชัน train_test_split () คุณต้องผ่านคุณสมบัติ 3 พารามิเตอร์เป้าหมายและขนาด test_set โดยทั่วไป นอกจากนี้คุณสามารถใช้ random_state เพื่อเลือกระเบียนแบบสุ่ม

# split X and y into training and testing sets
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)

การพัฒนาแบบจำลองและการทำนาย

ขั้นแรกให้อิมพอร์ตโมดูล Logistic Regression และสร้างอ็อบเจ็กต์ลักษณนาม Logistic Regression โดยใช้ฟังก์ชัน LogisticRegression ()

จากนั้นใส่แบบจำลองของคุณบนชุดรถไฟโดยใช้ fit () และทำการคาดคะเนในชุดทดสอบโดยใช้การคาดคะเน ()

# import the class
from sklearn.linear_model import LogisticRegression
# instantiate the model (using the default parameters)
logreg = LogisticRegression()
# fit the model with data
logreg.fit(X_train,y_train)

​# predict 
y_pred=logreg.predict(X_test)

เมทริกซ์ความสับสนคือตารางที่ใช้ในการประเมินประสิทธิภาพของแบบจำลองการจำแนกประเภท คุณยังสามารถเห็นภาพประสิทธิภาพของอัลกอริทึม พื้นฐานของเมทริกซ์ความสับสนคือจำนวนของการคาดการณ์ที่ถูกต้องและไม่ถูกต้องสรุปได้อย่างชาญฉลาด

ใน [9]:

# import the metrics class
from sklearn import metrics
cnf_matrix = metrics.confusion_matrix(y_test, y_pred)
cnf_matrix

Output:
array([[119,  11],
       [ 26,  36]])

การแสดงภาพเมทริกซ์ความสับสนโดยใช้ Heatmap

ลองนึกภาพผลลัพธ์ของแบบจำลองในรูปแบบของเมทริกซ์ความสับสนโดยใช้ matplotlib และ seaborn

ที่นี่คุณจะเห็นภาพเมทริกซ์ความสับสนโดยใช้ Heatmap

# import required modules
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

class_names=[0,1] # name  of classes
fig, ax = plt.subplots()
tick_marks = np.arange(len(class_names))
plt.xticks(tick_marks, class_names)
plt.yticks(tick_marks, class_names)
# create heatmap
sns.heatmap(pd.DataFrame(cnf_matrix), annot=True, cmap="YlGnBu" ,fmt='g')
ax.xaxis.set_label_position("top")
plt.tight_layout()
plt.title('Confusion matrix', y=1.1)
plt.ylabel('Actual label')
plt.xlabel('Predicted label')


ลองประเมินโมเดลโดยใช้เมตริกการประเมินแบบจำลองเช่นความแม่นยำความแม่นยำและการเรียกคืน

print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
print("Precision:",metrics.precision_score(y_test, y_pred))
print("Recall:",metrics.recall_score(y_test, y_pred))

Output:
Accuracy: 0.8072916666666666
Precision: 0.7659574468085106
Recall: 0.5806451612903226

ความแม่นยำ: ความแม่นยำคือความแม่นยำเช่นโมเดลของคุณแม่นยำแค่ไหน กล่าวอีกนัยหนึ่งก็คือคุณสามารถพูดได้ว่าเมื่อนางแบบทำการคาดคะเนบ่อยเพียงใดที่ถูกต้อง ในกรณีการทำนายของคุณเมื่อแบบจำลอง Logistic Regression ของคุณทำนายว่าผู้ป่วยจะเป็นโรคเบาหวานผู้ป่วยมีเวลา 76%

การเรียกคืน: หากมีผู้ป่วยที่เป็นโรคเบาหวานในชุดทดสอบและแบบจำลอง Logistic Regression ของคุณสามารถระบุได้ 58% ของเวลา

ROC Curve

เส้นโค้งลักษณะการทำงานของผู้รับ (ROC) คือพล็อตของอัตราบวกจริงเทียบกับอัตราผลบวกเท็จ แสดงการแลกเปลี่ยนระหว่างความอ่อนไหวและความจำเพาะ

y_pred_proba = logreg.predict_proba(X_test)[::,1]
fpr, tpr, _ = metrics.roc_curve(y_test,  y_pred_proba)
auc = metrics.roc_auc_score(y_test, y_pred_proba)
plt.plot(fpr,tpr,label="data 1, auc="+str(auc))
plt.legend(loc=4)
plt.show()


ข้อดี

เนื่องจากลักษณะที่เรียบง่ายและมีประสิทธิภาพไม่ต้องการพลังในการคำนวณสูงใช้งานง่ายตีความได้ง่ายซึ่งนักวิเคราะห์ข้อมูลและนักวิทยาศาสตร์ใช้กันอย่างแพร่หลาย ยังไม่ต้องการการปรับขนาดของคุณสมบัติ การถดถอยโลจิสติกให้คะแนนความน่าจะเป็นสำหรับการสังเกต

ข้อเสีย

การถดถอยโลจิสติกไม่สามารถจัดการกับคุณลักษณะ / ตัวแปรเชิงหมวดหมู่จำนวนมากได้ มีความเสี่ยงที่จะสวมใส่มากเกินไป นอกจากนี้ไม่สามารถแก้ปัญหาที่ไม่เป็นเชิงเส้นด้วยการถดถอยโลจิสติกส์ได้นั่นคือเหตุผลว่าทำไมจึงต้องมีการเปลี่ยนแปลงคุณสมบัติที่ไม่ใช่เชิงเส้น การถดถอยโลจิสติกจะทำงานได้ไม่ดีกับตัวแปรอิสระที่ไม่มีความสัมพันธ์กับตัวแปรเป้าหมายและมีความคล้ายคลึงหรือสัมพันธ์กันมาก

สรุป

ในบทช่วยสอนนี้คุณได้กล่าวถึงรายละเอียดมากมายเกี่ยวกับ Logistic Regression คุณได้เรียนรู้ว่าอะไรคือการถดถอยโลจิสติกวิธีสร้างแบบจำลองตามลำดับวิธีการแสดงผลลัพธ์และข้อมูลพื้นฐานทางทฤษฎีบางอย่าง นอกจากนี้คุณยังได้กล่าวถึงแนวคิดพื้นฐานบางประการเช่นฟังก์ชัน sigmoid โอกาสสูงสุดเมทริกซ์ความสับสนเส้นโค้ง ROC

หวังว่าตอนนี้คุณสามารถใช้เทคนิค Logistic Regression เพื่อวิเคราะห์ชุดข้อมูลของคุณเองได้แล้ว ขอบคุณที่อ่านบทแนะนำนี้!

สำหรับบทแนะนำโครงการและหลักสูตรเพิ่มเติมโปรดไปที่DataCamp

เผยแพร่ครั้งแรกที่ https://www.datacamp.com/community/tutorials/understanding-logistic-regression-python

ติดต่อฉันได้ที่ Linkedin: https://www.linkedin.com/in/avinash-navlani/


ชุดที่ 2 ตอนที่ 3 Logistic Regression Analysis ใช้ตอบคำถามวิจัยแบบใด


นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูความรู้เพิ่มเติมที่นี่

ชุดที่ 2 ตอนที่ 3 Logistic Regression Analysis ใช้ตอบคำถามวิจัยแบบใด

STATA 11_วิเคราะห์ Logistic Regression Analysis


STATA 11_วิเคราะห์ Logistic Regression Analysis
โดย ดร.ฐณัฐ วงศ์สายเชื้อ (Thanut Wongsaichue, Ph.D.)
เนื้อหาที่ upload แล้ว สถิติ งานวิจัย ความแตกต่าง สมการกำลังสอง โปรแกรม SPSS การถดถอยอย่างง่าย ตัวแปรกลุ่ม ตัวแปรอันดับ ข้อมูลอ่อน Soft Data ตัวแปรกวน Confounding factor การทำความสะอาดข้อมูล Data Cleaning การวิเคราะห์ข้อมูล Data Analysis งานวิจัย Research ทดสอบตัวอย่างอคติ Sample selection bias การสร้างแฟ้มข้อมูล การแก้ไขแฟ้มข้อมูล การถ่วงน้ำหนัก การยุบกลุ่ม ความแตกต่าง สถิติเปรียบเทียบ ค่าเฉลี่ย Mean ถดถอยพหุคูณ ถดถอยพหุ Multiple Regression ถดถอย Simple Regression สหสัมพันธ์ Correlation ไคสแควร์ Chisquare สถิติที ttest การเปรียบเทียบค่าเฉลี่ย ANOVA, ftest ทดสอบความแปรปรวน การวิเคราะห์แบบจำลองสมการโครงสร้าง SEM Structural Equation Modeling ใน AMOS โมเดลสมการโครงสร้าง CFA การวิเคราะห์องค์ประกอบเชิงยืนยัน การจำแนกองค์ประกอบ EFA การวิเคราะห์ถดถอยโลจิสติกส์ Logistic Regression, Logit Analysis, Multicollinearity, Collinearity, Z score, Mediator variable, ตัวแปรคั่นกลาง , Moderator variable, ตัวแปรกำกับ, สมการถดถอยพหุ, ถดถอยโลจิสติก, การวิเคราะห์เส้นทาง, วิเคราะห์อิทธิพล, ถดถอยปัวซอง, ถดถอยพัวซอง, Poisson regression, Factor analysis, การวิเคราะห์องค์ประกอบ Common Method Variance CMV ความแปรปรวนจากวิธีการวัด Common Method Biases CMB โปรแกรมลิสเรล LISREL การวิเคราะห์อิทธิพลเส้นทาง
Path analysis interaction moderator, โปรแกรม STATA สถิติพรรณนา, ttest, Ftest, Oneway ANOVA, Chisquare, Ftest, Multiple regression, Regression analysis, Logistic regression analysis

STATA 11_วิเคราะห์ Logistic Regression Analysis

See also  [NEW] วิถี คืออะไร แปลภาษา แปลว่า หมายถึง (พจนานุกรมไทย-ไทย ราชบัณฑิตยสถาน) | วิถี ชีวิต ไทย - Sathyasaith

Logistic Regression Using Excel


Predict who survives the Titanic disaster using Excel.
Logistic regression allows us to predict a categorical outcome using categorical and numeric data. For example, we might want to decide which college alumni will agree to make a donation based on their age, gender, graduation date, and prior history of donating. Or we might want to predict whether or not a loan will default based on credit score, purpose of the loan, geographic location, marital status, and income. Logistic regression will allow us to use the information we have to predict the likelihood of the event we’re interested in. Linear Regression helps us answer the question, \”What value should we expect?\” while logistic regression tells us \”How likely is it?\”
Given a set of inputs, a logistic regression equation will return a value between 0 and 1, representing the probability that the event will occur. Based on that probability, we might then choose to either take or not take a particular action. For example, we might decide that if the likelihood that an alumni will donate is below 5%, then we’re not going to ask them for a donation. Or if the probability of default on a loan is above 20%, then we might refuse to issue a loan or offer it at a higher interest rate.
How we choose the cutoff depends on a costbenefit analysis. For example, even if there is only a 10% chance of an alumni donating, but the call only takes two minutes and the average donation is 100 dollars, it is probably worthwhile to call.

Logistic Regression Using Excel

การสร้างแบบจำลองเพื่อการทำนายด้วยวิธี Logistic Regression


CPE213 Data Models
Computer Engineering Department
King Mongkut’s University of Technology Thonburi

การสร้างแบบจำลองเพื่อการทำนายด้วยวิธี Logistic Regression

Logistic Regression – การถดถอยโลจิสติกส์


Logistic Regression Analysis การวิเคราะห์ถดถอยโลจิสติกส์
การวิเคราะห์ถดถอยที่มีตัวแปรตามมีระดับการวัดเป็นกลุ่ม และมี 2 ค่า (Dichotomous) การวิเคราะห์ถดถอยโลจิสติกส์ เป็นสถิติสำหรับ
การวิเคราะห์ตัวแปรกลุ่ม ที่พัฒนามาจากการวิเคราะห์ถดถอยพหุ
โดย ดร.ฐณัฐ วงศ์สายเชื้อ (Thanut Wongsaichue, Ph.D.)
เนื้อหาที่ได้มีการ upload มาแล้ว ทดสอบ วิเคราะห์ ใช้สถิติ งานวิจัย ความแตกต่าง สมการกำลังสอง โปรแกรม SPSS การถดถอยอย่างง่าย ตัวแปรกลุ่ม ตัวแปรอันดับ ข้อมูลอ่อน Soft Data ตัวแปรกวน Confounding factor การทำความสะอาดข้อมูล Data Cleaning การวิเคราะห์ข้อมูล Data Analysis งานวิจัย Research ทดสอบตัวอย่างอคติ Sample selection bias การสร้างแฟ้มข้อมูล การแก้ไขแฟ้มข้อมูล ความแตกต่าง สถิติเปรียบเทียบ ค่าเฉลี่ย Mean ถดถอยพหุคูณ ถดถอยพหุ Multiple Regression ถดถอย Simple Regression สหสัมพันธ์ Correlation ไคสแควร์ Chisquare สถิติที ttest การเปรียบเทียบค่าเฉลี่ย Student’s t test การวิเคราะห์แบบจำลองสมการโครงสร้าง SEM Structural Equation Modeling ใน AMOS โมเดลสมการโครงสร้าง CFA การวิเคราะห์องค์ประกอบเชิงยืนยัน การจำแนกองค์ประกอบ EFA

Logistic Regression - การถดถอยโลจิสติกส์

นอกจากการดูบทความนี้แล้ว คุณยังสามารถดูข้อมูลที่เป็นประโยชน์อื่นๆ อีกมากมายที่เราให้ไว้ที่นี่: ดูบทความเพิ่มเติมในหมวดหมู่Economy

ขอบคุณมากสำหรับการดูหัวข้อโพสต์ logistic regression คือ

7 thoughts on “[Update] การทำความเข้าใจ Logistic Regression และ Building Model ใน Python | logistic regression คือ – Sathyasaith”

  1. 346498 384361A person essentially support to make seriously articles I would state. This really is the very first time I frequented your internet site page and thus far? I surprised with the research you created to make this specific publish incredible. Great job! 676122

    Reply

Leave a Comment