Logistic Regression for Machine Learning: คู่มือฉบับสมบูรณ์

เผยแพร่แล้ว: 2021-10-04

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

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

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

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

นี่คือลักษณะของสมการถดถอยโลจิสติกสำหรับการเรียนรู้ของเครื่อง:

logit(p) = ln(p/(1-p)) = h0+h1X1+h2X2+h3X3….+hkXk

ที่ไหน;

p= ความน่าจะเป็นของการเกิดขึ้นของคุณสมบัติ

x1,x2,..xk = ชุดคุณสมบัติอินพุต

h1,h2,….hk = ค่าพารามิเตอร์ที่จะประมาณในสมการถดถอยโลจิสติก

สารบัญ

ประเภทของแบบจำลองการถดถอยโลจิสติกในการเรียนรู้ของเครื่อง

ตามวิธีการใช้ Logistic Regression ประเภทของแบบจำลอง Logistic Regression สามารถจำแนกได้ดังนี้:

1. แบบจำลองการถดถอยโลจิสติกแบบไบนารี

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

2. แบบจำลองการถดถอยโลจิสติกพหุนาม

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

เข้าร่วม หลักสูตรแมชชีนเลิ ร์นนิง ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก – ปริญญาโท หลักสูตร Executive Post Graduate และหลักสูตรประกาศนียบัตรขั้นสูงใน ML & AI เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

3. แบบจำลองการถดถอยโลจิสติกลำดับ

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

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

ตัวอย่างกรณีการใช้งานของสมการถดถอยโลจิสติก

ตัวอย่างที่ 1: การระบุอีเมลขยะ

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

  • ผู้ส่ง
  • สะกดผิด
  • คีย์เวิร์ดในอีเมล เช่น "รายละเอียดธนาคาร" "โชคดี" "ผู้ชนะ" "ขอแสดงความยินดี"
  • รายละเอียดการติดต่อหรือ URL ในอีเมล

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

ตัวอย่างที่ 2: การระบุการฉ้อโกงบัตรเครดิต

การใช้สมการการถดถอยโลจิสติกหรือแบบจำลองการเรียนรู้ของเครื่องที่ใช้การถดถอยลอจิสติกส์ ธนาคารสามารถระบุธุรกรรมบัตรเครดิตที่เป็นการฉ้อโกงได้ทันที ด้วยเหตุนี้ รายละเอียดต่างๆ เช่น PoS, หมายเลขบัตร, มูลค่าธุรกรรม, ข้อมูลธุรกรรม และอื่นๆ จะถูกป้อนเข้าสู่โมเดล Logistic Regression ซึ่งจะตัดสินว่าธุรกรรมที่ระบุนั้นเป็นของแท้ (0) หรือเป็นการฉ้อโกง (1) ตัวอย่างเช่น หากมูลค่าการซื้อสูงเกินไปและเบี่ยงเบนจากมูลค่าทั่วไป โมเดลการถดถอยจะกำหนดค่า (ระหว่าง 0.5 ถึง 1) ที่จัดประเภทธุรกรรมเป็นการฉ้อโกง

การทำงานของการถดถอยโลจิสติกในการเรียนรู้ของเครื่อง

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

นี่คือลักษณะของฟังก์ชัน Sigmoid:

ฟังก์ชันซิกมอยด์ขึ้นอยู่กับสมการต่อไปนี้:

y=1/(1+e^x)

โดยที่ e^x= ค่าคงที่เลขชี้กำลังที่มีค่า 2.718

สมการของฟังก์ชันซิกมอยด์ด้านบนให้ค่าที่คาดการณ์ไว้ (y) เป็นศูนย์ หาก x ถือเป็นค่าลบ ถ้า x เป็นจำนวนบวกมาก ค่าที่คาดการณ์ไว้จะใกล้เคียงกับค่าหนึ่ง

การสร้างแบบจำลองการถดถอยโลจิสติกใน Python

มาดูขั้นตอนการสร้าง Logistic Regression model ใน Python กัน ในการนั้น ลองใช้ชุดข้อมูลเครือข่ายสังคมออนไลน์เพื่อทำการวิเคราะห์การถดถอย และมาลองคาดการณ์กันว่าจะมีคนซื้อรถยนต์คันใดคันหนึ่งหรือไม่ นี่คือลักษณะขั้นตอน

ขั้นตอนที่ 1: การนำเข้าไลบรารีและชุดข้อมูล

เริ่มต้นด้วยการนำเข้าไลบรารีที่จำเป็นในการสร้างแบบจำลอง ซึ่งรวมถึง Pandas, Numpy และ Matplotlib เราต้องนำเข้าชุดข้อมูลที่เราจะใช้งานด้วย นี่คือลักษณะของรหัส:

นำเข้า numpy เป็น np

นำเข้า matplotlib.pyplot เป็น pt

นำเข้าแพนด้าเป็น pd

ชุดข้อมูล = pd.read_csv('Social_Network.csv')

ขั้นตอนที่ 2: การแยกออกเป็นตัวแปรตามและตัวแปรอิสระ

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

x = dataset.iloc[:, [2,3]].values

y = dataset.iloc[:, 4].values

ขั้นตอนที่ 3: แยกชุดข้อมูลออกเป็นชุดการฝึกและชุดทดสอบ

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

จาก sklearn.model_selection นำเข้า train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.33, random_state = 0)

อย่างที่คุณเห็น เราได้กำหนดขนาดการทดสอบเป็น 33% ของชุดข้อมูลทั้งหมด ดังนั้น ส่วนที่เหลืออีก 66% จะถูกใช้เป็นข้อมูลการฝึก

ขั้นตอนที่ 4: การปรับขนาด

เพื่อปรับปรุงความแม่นยำของแบบจำลอง Logistic Regression คุณจะต้องปรับขนาดข้อมูลใหม่และนำค่าที่อาจมีลักษณะแตกต่างกันออกไป

จาก sklearn.preprocessing นำเข้า StandardScaler

sc_X = StandardScaler ()

X_train = sc_X.fit_transform (X_train)

X_test = sc_X.transform (X_test)

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

เมื่อเสร็จแล้ว คุณต้องสร้างแบบจำลอง Logistic Regression และใส่ลงในชุดการฝึก เริ่มต้นด้วยการนำเข้าอัลกอริทึมการถดถอยโลจิสติกจาก Sklearn

จาก sklearn.linear_model นำเข้า LogisticRegression

จากนั้นสร้างตัวแยกประเภทอินสแตนซ์เพื่อให้เหมาะสมกับข้อมูลการฝึก

ลักษณนาม = LogisticRegression(random_state=0)

classifier.fit(x_train, y_train)

ถัดไป สร้างการคาดการณ์ในชุดข้อมูลทดสอบ

y_pred = classifier.predict(x_test)

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

จาก sklearn.metrics นำเข้าสับสน_matrix

cm = ความสับสน_เมทริกซ์ (y_test, y_pred)

acc = ความแม่นยำ_score(y_test, y_pred)

พิมพ์ (ตาม)

พิมพ์ (ซม.)

ตอนนี้คุณสามารถใช้ Matplotlib เพื่อแสดงภาพชุดข้อมูลทั้งหมด รวมถึงชุดการฝึกและการทดสอบ!

สรุปแล้ว

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

ลองดู Executive PG Program ของเราใน Machine Learning ซึ่งออกแบบในลักษณะที่จะพาคุณไปจากศูนย์และช่วยให้คุณพัฒนาทักษะของคุณไปสู่จุดสูงสุด เพื่อให้คุณอยู่ในฐานะที่จะแก้ปัญหา Machine Learning ในโลกแห่งความเป็นจริงได้ ตรวจสอบหลักสูตรต่างๆ และลงทะเบียนในหลักสูตรที่เหมาะสมกับคุณ เข้าร่วม upGrad และสัมผัสกับสภาพแวดล้อมการเรียนรู้แบบองค์รวมและการสนับสนุนตำแหน่ง!

Logistic Regression สำหรับแมชชีนเลิร์นนิงเป็นไปได้กี่แบบ?

Logistic Regression แบ่งออกได้เป็น 3 ประเภทใหญ่ๆ คือ
1. ไบนารี
2. พหุนาม
3. ลำดับ

Logistic Regression ใช้สำหรับการเรียนรู้ของเครื่องอะไร

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

Logistic Regression for Machine Learning ใช้ฟังก์ชันอะไร

Logistic Regression for Machine Learning ใช้ฟังก์ชัน Sigmoid เพื่อค้นหาเส้นโค้งที่พอดีที่สุด