วิธีการดำเนินการถดถอยโลจิสติกใน Python



การถดถอยโลจิสติกใน Python โดยใช้ sklearn เพื่อทำนายผลลัพธ์โดยกำหนดความสัมพันธ์ระหว่างตัวแปรอิสระหนึ่งตัวหรือมากกว่า

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

  1. Regression คืออะไร?
  2. Logistic Regression ใน Python
  3. Logistic Regression เทียบกับ Linear Regression
  4. ใช้กรณี
  5. สาธิต

คุณสามารถดูบทช่วยสอนโดยละเอียดเกี่ยวกับการถดถอยโลจิสติกส์ใน python พร้อมการสาธิตเพื่อความเข้าใจที่ดีขึ้นหรืออ่านไฟล์ เพื่อควบคุมการถดถอยโลจิสติก





Regression คืออะไร?

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

เราเจอการถดถอยด้วยวิธีที่เข้าใจง่ายตลอดเวลา เช่นเดียวกับการทำนายสภาพอากาศโดยใช้ชุดข้อมูลของสภาพอากาศในอดีต



มันใช้เทคนิคมากมายในการวิเคราะห์และทำนายผลลัพธ์ แต่จะเน้นเป็นหลัก ความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระอย่างน้อยหนึ่งตัว

การวิเคราะห์ทำนายผลลัพธ์ในตัวแปรไบนารีซึ่งมีเพียงสองผลลัพธ์ที่เป็นไปได้



Logistic Regression ใน Python

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

ตัวแปรตามคือ เด็ดขาด ในธรรมชาติ. ตัวแปรตามเรียกอีกอย่างว่า ตัวแปรเป้าหมาย และตัวแปรอิสระเรียกว่า ตัวทำนาย .

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

เราใช้ไฟล์ ฟังก์ชัน Sigmoid / เส้นโค้ง เพื่อทำนายค่าตามหมวดหมู่ ค่าเกณฑ์จะตัดสินผลลัพธ์ (ชนะ / แพ้)

สมการถดถอยเชิงเส้น: y = β0 + β1X1 + β2X2…. + βnXn

  • Y ย่อมาจากตัวแปรตามที่ต้องการทำนาย
  • β0คือจุดตัดแกน Y ซึ่งโดยพื้นฐานแล้วคือจุดบนเส้นที่สัมผัสกับแกน y
  • β1คือความชันของเส้น (ความชันอาจเป็นลบหรือบวกขึ้นอยู่กับความสัมพันธ์ระหว่างตัวแปรตามและตัวแปรอิสระ)
  • X ในที่นี้หมายถึงตัวแปรอิสระที่ใช้ทำนายค่าตามผลลัพธ์ของเรา

ฟังก์ชัน Sigmoid: p = 1/1 + จ- ย

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

การถดถอยโลจิสติกใน python-edureka

สมการการถดถอยโลจิสติก: p = 1/1 + จ- (β0 + β1X1 + β2X2…. + βnXn)

มาดูการถดถอยโลจิสติกประเภทต่างๆกัน

ประเภทของ Logistic Regression

big data และ hadoop คืออะไร
    • การถดถอยโลจิสติกแบบไบนารี - มีเพียงสองผลลัพธ์ที่เป็นไปได้ ตัวอย่าง - ใช่หรือไม่
    • การถดถอยโลจิสติกแบบพหุนาม - มีสามประเภทขึ้นไปตัวอย่างเช่นแมวสุนัขช้าง
    • การถดถอยลอจิสติกตามลำดับ - มีสามหมวดหมู่ลำดับขึ้นไปความหมายตามลำดับที่หมวดหมู่จะเรียงตามลำดับ ตัวอย่าง - การให้คะแนนของผู้ใช้ (1-5)

Linear Vs Logistic Regression

ในขณะที่การถดถอยเชิงเส้นสามารถมีได้ ค่าที่เป็นไปได้ไม่สิ้นสุด การถดถอยโลจิสติกมี ผลลัพธ์ที่ชัดเจน .

การถดถอยเชิงเส้นถูกใช้เมื่อตัวแปรตอบสนองมีลักษณะต่อเนื่องกัน แต่การถดถอยโลจิสติกจะใช้เมื่อตัวแปรตอบสนองมีลักษณะเป็นหมวดหมู่

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

ใช้กรณี

ต่อไปนี้เป็นกรณีการใช้งานที่เราสามารถใช้การถดถอยโลจิสติก

พยากรณ์อากาศ

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

การกำหนดความเจ็บป่วย

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

ให้ใช้ชุดข้อมูลตัวอย่างเพื่อสร้างแบบจำลองการคาดการณ์โดยใช้การถดถอยโลจิสติกส์

การสาธิต

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

การรวบรวมข้อมูล

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

นำเข้าแพนด้าเป็น pd import numpy เป็น np import seaborn เป็น sns import matplotlib.pyplot เป็น plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') พิมพ์ (df.head (5))

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

การวิเคราะห์ข้อมูล

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

sns.countplot ('Home', hue = 'WINorLOSS', data = df) plt.show ()

ด้านบนคือความสัมพันธ์ระหว่างเปอร์เซ็นต์การชนะ / แพ้ในเกมเหย้า / เยือน สในทำนองเดียวกันเราสามารถพล็อตกราฟของความสัมพันธ์ระหว่างรายการอื่น ๆ ที่เกี่ยวข้องในข้อมูล

java รอและแจ้งตัวอย่าง

การโต้เถียงข้อมูล

ชุดข้อมูลถูกแก้ไขตามตัวแปรเป้าหมาย เราจะกำจัดค่า null และค่าสตริงทั้งหมดออกจาก DataFrame

พิมพ์ (df.isnull (). sum ())

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

ทดสอบและฝึกอบรมข้อมูล

สำหรับประสิทธิภาพของโมเดลข้อมูลจะถูกแบ่งออกเป็นข้อมูลการทดสอบและข้อมูลการฝึกอบรม ข้อมูลถูกแยกโดยใช้ไฟล์ train_test_split . ข้อมูลที่นี่แบ่งเป็นอัตราส่วน 70:30

ตอนนี้สำหรับ การทำนายแบบจำลอง ฟังก์ชันการถดถอยโลจิสติกถูกนำไปใช้โดยการนำเข้าแบบจำลองการถดถอยโลจิสติกในโมดูล sklearn

จากนั้นโมเดลจะพอดีกับชุดรถไฟโดยใช้ฟังก์ชัน Fit หลังจากนี้การทำนายจะดำเนินการโดยใช้ฟังก์ชันการทำนาย

จาก sklearn.model_selection นำเข้า train_test_split จาก sklearn.linear_model นำเข้า LogisticRegression จาก sklearn.metrics การนำเข้าการจัดหมวดหมู่_reportจาก sklearn.metrics นำเข้าความสับสน _matrix, ความแม่นยำ_score x = df.drop ('Home', แกน = 1) y = df ['Home'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) การคาดคะเน = logmodel.predict (x_test) พิมพ์ (การจัดหมวดหมู่_report (y_test, การคาดคะเน) พิมพ์ (ความสับสน _ เมทริกซ์ (y_test, การคาดการณ์)) พิมพ์ (คะแนนความแม่นยำ (y_test, การคาดคะเน))

รายงานการจัดประเภท:

รายงานการจำแนกประเภทจะแสดงไฟล์ ความแม่นยำ , Recall, F1 และ Support คะแนนสำหรับแบบจำลอง

ความแม่นยำ คะแนนหมายถึงระดับที่สูงขึ้นซึ่งการคาดคะเนโดยแบบจำลองมีความแม่นยำ ความแม่นยำสำหรับเกมเหย้าคือ 0.62 และสำหรับเกมเยือนนั้น 0.58 .

จำ คือจำนวนเงินที่โมเดลสามารถทำนายผลลัพธ์ได้ สำหรับเกมเหย้าคือ 0.57 และสำหรับเกมเยือนคือ 0.64 . F1 และคะแนนสนับสนุนคือจำนวนข้อมูลที่ทดสอบสำหรับการคาดการณ์ ในชุดข้อมูล NBA ข้อมูลที่ทดสอบสำหรับเกมในบ้านคือ พ.ศ. 2205 และสำหรับเกมเยือนนั้น พ.ศ. 2129 .

เมทริกซ์ความสับสน:

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

แผนที่ความร้อนเมทริกซ์สับสน:

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

sns.heatmap (pd.DataFrame (ความสับสน _ เมทริกซ์ (y_test, การคาดการณ์))) plt.show ()

เมื่อดูแผนที่ความร้อนเราสามารถสรุปได้ดังต่อไปนี้:

  • จากการคาดคะเนทั้งหมดลักษณนามทำนายว่าใช่ทั้งหมด 1730 ครั้งซึ่ง 1,012 ครั้งนั้นเป็นจริงใช่
  • จากการคาดการณ์ทั้งหมดลักษณนามทำนายว่าไม่มีทั้งหมด 1518 ครั้งซึ่ง 944 เป็นจำนวนที่แท้จริง

ด้วยการวิเคราะห์เมทริกซ์ความสับสนนี้เราสามารถสรุปคะแนนความแม่นยำของแบบจำลองการทำนายของเราได้

คะแนนความแม่นยำ:

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

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

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

นอกจากนี้ตรวจสอบบล็อก Data-Science ต่างๆบนแพลตฟอร์ม edureka เพื่อฝึกฝนนักวิทยาศาสตร์ข้อมูลในตัวคุณ

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