แมชชีนเลิร์นนิงด้วย Python: รายการอัลกอริทึมที่คุณต้องเชี่ยวชาญ
เผยแพร่แล้ว: 2020-04-28สารบัญ
ไพทอนคืออะไร?
เป็นภาษาโปรแกรมเชิงวัตถุประสงค์ที่ พัฒนาขึ้นในปี 1991 โดย Guido van Rossum เป็นเรื่องที่เข้าใจและเรียนรู้มาก Python เป็นที่นิยมในหมู่นักพัฒนาเพราะมันช่วยปรับปรุงความสามารถในการนำโค้ดกลับมาใช้ใหม่และโมดูลของโปรแกรม Python เป็นภาษาการเขียนโปรแกรมเชิงโต้ตอบระดับสูงที่ช่วยให้มีปฏิสัมพันธ์โดยตรงระหว่างนักพัฒนาและล่าม ซึ่งเป็นสิ่งที่ทำให้การเขียนโค้ดเป็นเรื่องง่าย
แมชชีนเลิร์นนิง (ML) คืออะไร
แมชชีนเลิร์นนิงเป็นสาขาหนึ่งของปัญญาประดิษฐ์ที่ช่วยให้คอมพิวเตอร์ได้รับการเรียนรู้อัตโนมัติและจะดีขึ้นเมื่อเวลาผ่านไปผ่านประสบการณ์ วัตถุประสงค์หลักของการเรียนรู้ด้วยเครื่องคือการสร้างโปรแกรมคอมพิวเตอร์ที่มีความสามารถในการปรับปรุงตนเองโดยอาศัยข้อมูลใหม่โดยไม่ต้องเขียนโปรแกรมที่ชัดเจนสำหรับสิ่งเดียวกัน
ML ทำงานร่วมกับเครื่องมือทางสถิติและผลลัพธ์การคาดการณ์ข้อมูล นอกจากนี้ยังมีการเชื่อมโยงกับแบบจำลองการคาดการณ์แบบเบย์และอัลกอริธึมการทำเหมืองข้อมูล หลังจากได้รับอินพุตจากผู้ใช้แล้ว คอมพิวเตอร์จะใช้อัลกอริธึมในการส่งข้อมูลออก มีแอพพลิเคชั่นการเรียนรู้ของเครื่องหลายตัว รวมถึงการบำรุงรักษาเชิงคาดการณ์ การตรวจจับการฉ้อโกง การแปลอัตโนมัติ การเฝ้าระวังวิดีโอ และอื่นๆ
หากคุณเป็นมือใหม่และสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิทยาศาสตร์ข้อมูล ลองดูใบรับรองวิทยาศาสตร์ข้อมูลของเราจากมหาวิทยาลัยชั้นนำ
การเรียนรู้ของเครื่องและ Python รวมกันได้อย่างไร
Python มีคุณสมบัติหลายอย่างที่ทำให้เหมาะกับการเรียนรู้ของเครื่อง คุณลักษณะเหล่านี้บางส่วนมีการกล่าวถึงด้านล่าง:
1. ง่ายต่อการเขียนโค้ด การเขียนโค้ดใน Python นั้นง่ายเหมือนหนึ่ง สอง และสาม มันง่ายกว่าภาษาอื่นๆ เช่น Java และ C++ มาก

2. บูรณาการ ไม่ต้องใช้เวลามากในการรวมเข้ากับ C, C++ และภาษาโปรแกรมอื่นๆ
3. แบบพกพา เป็นภาษาโปรแกรมอิสระ โปรแกรมเดียวกันที่เขียนโดยใช้ Python สามารถดำเนินการได้บน macOS หรือ Windows ไม่จำเป็นต้องใช้รหัสที่แตกต่างกันเพื่อทำงานบนระบบปฏิบัติการที่แตกต่างกัน
4. เชิงวัตถุ เป็นตัวอย่างที่สมบูรณ์แบบของภาษาการเขียนโปรแกรมที่ใช้ OOP แนวคิดเช่นอ็อบเจกต์ คลาส การห่อหุ้ม การสืบทอด และพหุสัณฐาน เป็นเรื่องปกติของภาษาเชิงวัตถุ Python รองรับสิ่งเหล่านี้และอื่น ๆ อีกมากมาย
5. ไดนามิก เป็นหนึ่งในภาษาที่พิมพ์แบบไดนามิกเพียงไม่กี่ภาษา ซึ่งหมายความว่าคุณไม่จำเป็นต้องประกาศชนิดข้อมูลขณะเขียนโค้ด เนื่องจากจะตัดสินใจเมื่อรันไทม์เมื่อมีการประกาศตัวแปร
ประเภทของอัลกอริธึมการเรียนรู้ของเครื่อง
อัลกอริธึมแมชชีนเลิร์นนิงแบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ มีการควบคุมดูแลและไม่มีการกำกับดูแล ให้เราพูดถึงรายละเอียดทั้งสองประเภทนี้
1. การเรียนรู้ภายใต้การดูแล
การเรียนรู้ภายใต้การดูแลเป็นประเภทที่ต้องการมากที่สุดเมื่อพูดถึงปัญหาการเรียนรู้ของเครื่องที่ใช้งานได้จริง มันมีตัวแปรสองประเภท - ตัวแปรอินพุตและตัวแปรอินพุต อัลกอริทึมใช้เพื่อเรียนรู้ฟังก์ชันที่จับคู่อินพุตกับเอาต์พุต วัตถุประสงค์คือเพื่อประเมินฟังก์ชันการทำแผนที่ในลักษณะที่คุณหรือเครื่องของคุณสามารถคาดการณ์ตัวแปรเอาต์พุตตามตัวแปรอินพุตที่จัดเตรียมให้คุณสำหรับชุดข้อมูลที่กำหนด ซึ่งเป็นการเรียนรู้ภายใต้การดูแลประเภทต่างๆ ที่คุณต้องรู้
มันถูกเรียกว่าการเรียนรู้ภายใต้การดูแลซึ่งทำงานเหมือนกับวิธีที่ครูดูแลกระบวนการเรียนรู้ในชั้นเรียน ที่นี่ชุดข้อมูลการฝึกอบรมควบคุมการเรียนรู้ของอัลกอริทึม เรามีผลลัพธ์ที่ต้องการ – อัลกอริทึมภายใต้การดูแลของชุดข้อมูลยังคงทำการทำนายซ้ำๆ จนกว่าจะบรรลุระดับประสิทธิภาพที่ต้องการ
อัลกอริธึมประเภทนี้สามารถแยกได้อีกเป็นสองกลุ่ม - การจำแนกและการถดถอย อัลกอริธึมการจำแนกประเภทคืออัลกอริธึมที่มีหมวดหมู่เป็นตัวแปรเอาต์พุต ในทางกลับกัน อัลกอริธึมการถดถอยคืออัลกอริธึมที่มีค่าจริงเป็นตัวแปรเอาต์พุต – น้ำหนักหรือดอลลาร์
2. แมชชีนเลิร์นนิงแบบไม่มีผู้ดูแล
ในอัลกอริธึมการเรียนรู้ของเครื่องประเภทนี้ คุณมีตัวแปรอินพุต ไม่มีตัวแปรเอาต์พุต วัตถุประสงค์ของการเรียนรู้แบบไม่มีผู้ดูแลคือการสร้างแบบจำลองการกระจายข้อมูลหรือโครงสร้างข้อมูลเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับชุดข้อมูล อัลกอริธึมเหล่านี้เรียกว่าอัลกอริธึมการเรียนรู้แบบไม่มีผู้ดูแล - เนื่องจากไม่ได้ให้ผลลัพธ์ที่ต้องการและไม่มีใครดูแลการเรียนรู้
อัลกอริธึมทำงานด้วยตัวเองโดยสมบูรณ์ และมีหน้าที่รับผิดชอบในการค้นหาและนำเสนอการเรียนรู้ที่น่าสนใจในชุดข้อมูล อัลกอริธึมเหล่านี้ถูกจัดกลุ่มเพิ่มเติมในปัญหาการเชื่อมโยงและการจัดกลุ่ม ปัญหาการจัดกลุ่มคือปัญหาที่มีการจัดกลุ่มโดยธรรมชาติในข้อมูลที่กำหนด ในทางกลับกัน ปัญหาความสัมพันธ์คือปัญหาที่มีกฎเกณฑ์ที่กำหนดข้อมูลส่วนใหญ่

อัลกอริธึมการเรียนรู้ของเครื่องทั่วไปใน Python
1. การถดถอยเชิงเส้น
นี่คืออัลกอริธึมการเรียนรู้ของเครื่องภายใต้การดูแลใน Python มันทำนายผลลัพธ์และสังเกตคุณสมบัติ ขึ้นอยู่กับจำนวนของตัวแปรที่ทำงานบน - หนึ่งหรือหลายตัว - เราสามารถอ้างถึงเป็นการถดถอยเชิงเส้นอย่างง่ายหรือการถดถอยเชิงเส้นพหุคูณ เป็นหนึ่งในอัลกอริทึม ML ที่ได้รับความนิยมมากที่สุดใน Python
มันมีฟังก์ชั่นง่ายๆ – การสร้างเส้นโดยใส่น้ำหนักเทียบกับตัวแปรแล้วทำการทำนาย การถดถอยเชิงเส้นมักใช้เพื่อคาดการณ์มูลค่าที่แท้จริง เช่น ต้นทุนของสินค้า หากมีเส้นที่กำหนดความสัมพันธ์ระหว่างตัวแปรอิสระและตัวแปรตามอย่างเหมาะสม นั่นคือเส้นการถดถอย เรียนรู้เพิ่มเติมเกี่ยวกับการถดถอยเชิงเส้นในการเรียนรู้ของเครื่อง
2. การถดถอยโลจิสติก
นี่เป็นอัลกอริธึม ML ที่มีการควบคุมดูแล ใช้ในการทำนายค่าที่ไม่ต่อเนื่อง เช่น จริงหรือเท็จ 0 หรือ 1 และใช่หรือไม่ใช่ มันทำงานบนตัวแปรอิสระ ฟังก์ชันลอจิสติกส์ใช้สำหรับการประมาณค่าที่ให้ 0 หรือ 1 เป็นเอาต์พุต แม้ว่าจะตั้งชื่อว่าการถดถอย แต่จริงๆ แล้วอัลกอริธึมนี้เป็นประเภทการจำแนกประเภท
3. รองรับเครื่องเวกเตอร์ (SVM)
นี่เป็นอัลกอริธึมการเรียนรู้ภายใต้การดูแล เป็นการจัดประเภทอัลกอริทึมภายใต้การดูแล มันสร้างบรรทัดที่แยกหมวดหมู่ต่าง ๆ ของชุดข้อมูล บรรทัดนี้ได้รับการปรับให้เหมาะสมโดยการคำนวณเวกเตอร์ ทำเพื่อให้แน่ใจว่าจุดที่ใกล้เคียงที่สุดในแต่ละจุดอยู่ห่างจากกันมากที่สุด ส่วนใหญ่เป็นเวกเตอร์เชิงเส้น แต่บางครั้ง มันก็เป็นอย่างอื่นได้เช่นกัน
4. ต้นไม้แห่งการตัดสินใจ
สิ่งนี้อยู่ภายใต้อัลกอริธึม ML ที่ได้รับการดูแลอีกครั้ง อย่างไรก็ตาม ใช้สำหรับทั้งการถดถอยและการจำแนกประเภท อัลกอริทึมนี้ทำงานอย่างไร ใช้ตัวอย่าง นำทางต้นไม้ทั้งหมด และเก็บการเปรียบเทียบคุณลักษณะโดยใช้คำสั่งแบบมีเงื่อนไข ด้านข้างลงมาขึ้นอยู่กับผลลัพธ์ อัลกอริธึม ML นี้ใน Python สามารถทำงานกับตัวแปรตามแบบต่อเนื่องและแบบแบ่งหมวดหมู่
อ่าน: ข้อกำหนดเบื้องต้นของการเรียนรู้ของเครื่อง
5. อ่าวไร้เดียงสา
วิธีการจำแนกประเภทนี้ใช้ทฤษฎีบทของเบย์ วิธีการจำแนกประเภทนี้ถือเป็นสมมติฐานระหว่างตัวทำนาย ดังนั้นตัวแยกประเภท Naive Bayes ทำงานบนสมมติฐานที่ว่าคุณลักษณะเฉพาะในชั้นเรียนไม่มีความสัมพันธ์ใดๆ กับคุณลักษณะอื่นๆ ของชั้นเรียนเดียวกัน ตัวอย่างเช่น ผลไม้มีลักษณะหลายอย่างที่ทำให้มันเป็นอย่างนั้น

ตามตัวแยกประเภท Naive Bayes แต่ละลักษณะเหล่านี้จะมีส่วนสนับสนุนอย่างอิสระต่อความน่าจะเป็นที่ผลไม้นั้นเป็นผลไม้บางประเภท สิ่งนี้ถือเป็นจริงแม้ว่าคุณลักษณะต่างๆ จะขึ้นอยู่กับกันและกัน โมเดลนี้ค่อนข้างเรียบง่ายและใช้งานได้ดีกับชุดข้อมูลขนาดใหญ่
อ่านเพิ่มเติม: ไลบรารีการเรียนรู้ของเครื่องที่คุณควรรู้
บทสรุป
ในบล็อกนี้ เราได้เรียนรู้เกี่ยวกับแมชชีนเลิร์นนิงใน Python และอัลกอริธึมต่างๆ ที่เราสามารถใช้ฝึกเครื่องจักรของเราให้คาดการณ์และทำงานได้ดีขึ้น
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT- สถานะศิษย์เก่า B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ
หากคุณสนใจที่จะเรียนรู้วิทยาศาสตร์ข้อมูลและต้องการทำให้เครื่องมือและไลบรารีต่างๆ สกปรก ให้ตรวจสอบโปรแกรม Executive PG ใน Data Science
ภาษาที่ใช้ในการเรียนรู้ของเครื่องนอกเหนือจาก Python คืออะไร
นอกจาก Python แล้ว นักพัฒนายังใช้ R, Javascript, Java, C++ เป็นต้น R จัดเตรียมสภาพแวดล้อมซอฟต์แวร์โดยไม่มีค่าใช้จ่ายสำหรับการวิเคราะห์ทางสถิติและการแสดงภาพโดยใช้โครงสร้างข้อมูลกราฟ R ได้รับการจัดลำดับความสำคัญสำหรับข้อมูลชีวการแพทย์และสถิติวิศวกรรมชีวภาพ Javascript มีไลบรารียอดนิยม เช่น Tensorflow.js ซึ่งเป็นโครงการขั้นสูงที่พัฒนาโดย Google API ที่ยืดหยุ่นพร้อมให้ฝึกฝนและสร้างโมเดลโดยตรงใน Javascript Java จัดเตรียมสภาพแวดล้อมซอฟต์แวร์ เช่น Elka, RapidMiner, Weka, JavaML, Deeplearning4j เป็นต้น สำหรับปัญหาการเรียนรู้ของเครื่อง C++ มีไลบรารีที่ทรงพลังมากมาย เช่น Torch, TensorFlow, mlpack เป็นต้น และทำงานอย่างมีประสิทธิภาพ
อะไรคือความแตกต่างระหว่าง Supervised Learning และ Unsupervised Learning?
การเรียนรู้ภายใต้การดูแลประกอบด้วยข้อมูลอินพุตที่รู้จักพร้อมป้ายกำกับเพื่อจำแนกผลลัพธ์ที่เป็นไปได้ การเรียนรู้แบบไม่มีผู้ดูแลเกี่ยวข้องกับข้อมูลอินพุตแบบสุ่มซึ่งจัดประเภทเพิ่มเติมโดยใช้อัลกอริธึมที่ไม่มีผู้ดูแล การเรียนรู้ภายใต้การดูแลจะใช้การตีความแบบออฟไลน์ ในขณะที่การเรียนรู้แบบไม่มีผู้ดูแลจะใช้การตีความข้อมูลตามเวลาจริง จำนวนผลลัพธ์ที่เป็นไปได้เป็นที่ทราบกันดีอยู่แล้วในการเรียนรู้ภายใต้การดูแล ในขณะที่ในกรณีของการเรียนรู้แบบไม่มีผู้ดูแล อัลกอริทึมจะทำการคำนวณเพื่อหาจำนวนผลลัพธ์ ความแม่นยำและความน่าเชื่อถือในการเรียนรู้ภายใต้การดูแลนั้นดีกว่าการเรียนรู้แบบไม่มีผู้ดูแลเนื่องจากคลาสผลลัพธ์ที่เป็นไปได้ที่ทราบ การเรียนรู้ภายใต้การดูแลจะคาดการณ์ผลลัพธ์ตามหมวดหมู่ ในขณะที่การเรียนรู้แบบไม่มีผู้ดูแลจะค้นหารูปแบบในข้อมูลสำหรับการคาดคะเน
การถดถอยเชิงเส้นแตกต่างจากการถดถอยโลจิสติกอย่างไร
การถดถอยเชิงเส้นใช้ชุดของตัวแปรอิสระในการทำนายตัวแปรต่อเนื่อง ในขณะที่การถดถอยโลจิสติกทำนายตัวแปรตามหมวดหมู่ การถดถอยเชิงเส้นใช้สำหรับปัญหาการถดถอย และการถดถอยโลจิสติกใช้สำหรับปัญหาการจำแนกประเภท การถดถอยเชิงเส้นให้พล็อตกราฟเชิงเส้นแบบเส้นตรงที่มีค่าที่สามารถเกินขีดจำกัดจากศูนย์ถึงหนึ่งได้ การถดถอยโลจิสติกให้เส้นโค้งรูปตัว S ในพล็อตกราฟภายในช่วงศูนย์ถึงหนึ่งเพื่อจำแนกอินพุต การถดถอยเชิงเส้นต้องใช้ความสัมพันธ์เชิงเส้นระหว่างตัวแปรอิสระและตัวแปรตาม ซึ่งไม่จำเป็นในกรณีของการถดถอยโลจิสติก