การนำโครงข่ายประสาทเทียมไปใช้ตั้งแต่เริ่มต้นด้วย Python [พร้อมตัวอย่าง]
เผยแพร่แล้ว: 2020-12-07ในบทความนี้ เราจะเรียนรู้วิธีฝึกและสร้าง Neural Network จาก Scratch
เราจะใช้ชุดข้อมูล Churn เพื่อฝึกโครงข่ายประสาทเทียมของเรา การฝึกอบรมโครงข่ายประสาทเทียมนั้นไม่ซับซ้อน เราจำเป็นต้องประมวลผลข้อมูลของเราล่วงหน้าเพื่อให้แบบจำลองของเรานำข้อมูลของเราไปใช้และฝึกฝนตัวเองโดยปราศจากอุปสรรคใดๆ คุณจะดำเนินการดังนี้:
- ติดตั้งเทนเซอร์โฟลว์
- นำเข้าไลบรารี
- นำเข้าชุดข้อมูล
- แปลงข้อมูลอินพุต
- แยกข้อมูล
- เริ่มต้นโมเดล
- สร้างแบบจำลอง
- ฝึกโมเดล
- ประเมินแบบจำลอง
อัตราการเลิกจ้างคือการวัดจากสมาชิกของบริษัทหรือฝ่ายที่มีแนวโน้มจะหยุดให้บริการในช่วงเวลาที่กำหนด อัตรานี้มีบทบาทสำคัญในการตัดสินใจผลกำไรและสร้างแผนการหาลูกค้าใหม่ พูดง่ายๆ ก็คือ เราสามารถพูดได้ว่าการเติบโตของบริษัทสามารถวัดได้จากอัตรา Churn
ในชุดข้อมูลนี้ เรามีคุณลักษณะสิบสามคุณลักษณะ แต่เราใช้คุณลักษณะเพียงไม่กี่อย่างที่ตรงตามข้อกำหนดของเราในการคาดการณ์โอกาสในการเลิกใช้งานผู้ใช้
เรียน รู้หลักสูตรออนไลน์ของแมชชีนเลิ ร์นนิง จากมหาวิทยาลัยชั้นนำของโลก รับ Masters, Executive PGP หรือ Advanced Certificate Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
สารบัญ
ติดตั้ง TensorFlow
เราสามารถใช้ Google Colab ได้หากพีซีหรือแล็ปท็อปของคุณไม่มี GPU หรือคุณสามารถใช้ Jupyter Notebooks ได้ หากคุณกำลังใช้ระบบของคุณ ให้อัพเกรด pip แล้วติดตั้ง TensorFlow ดังนี้

ที่มาของภาพ
นำเข้าไลบรารี
ในบรรทัดโค้ดด้านบนนี้ ฉันเพิ่งนำเข้าไลบรารีทั้งหมดที่ฉันต้องการในกระบวนการนี้
Numpy → เป็นห้องสมุดที่ใช้ดำเนินการทางคณิตศาสตร์ในอาร์เรย์
Pandas → เพื่อโหลดไฟล์ข้อมูลเป็น data frame ของ Pandas และวิเคราะห์ข้อมูล
Matplotlib → ฉันได้นำเข้า pyplot เพื่อพล็อตกราฟของ data
นำเข้าชุดข้อมูล
ชุดข้อมูลของเราอยู่ในรูปแบบ CSV ดังนั้นเราจึงโหลดชุดข้อมูลโดยใช้การดำเนินการของแพนด้า จากนั้นเราแบ่งชุดข้อมูลออกเป็นตัวแปรตามและตัวแปรอิสระ โดยที่ X ถือเป็นตัวแปรอิสระ และ Y ถือเป็นตัวแปรอิสระ
แปลงข้อมูล
ในชุดข้อมูลของเรา เรามีคุณลักษณะตามหมวดหมู่สองประเภท ได้แก่ ภูมิศาสตร์ และ เพศ เราจำเป็นต้องสร้างหุ่นจำลองสำหรับคุณลักษณะทั้งสองนี้ ดังนั้นเราจึงใช้ วิธี get_dummies แล้วผนวกเข้ากับข้อมูลคุณลักษณะอิสระของเรา
เมื่อเราสร้างหุ่นและเชื่อมโยงเข้ากับข้อมูลของเราเสร็จแล้ว เราจะลบคุณสมบัติดั้งเดิม เช่น เพศและภูมิศาสตร์ ออกจากข้อมูลรถไฟของเรา
อ่าน: การเรียนรู้ของเครื่องกับโครงข่ายประสาทเทียม
แยกข้อมูล
จาก Sklearn ซึ่งเป็น sub-library model_selection เราจะนำเข้า train_test_split ซึ่งใช้ในการแยกชุดฝึกและชุดทดสอบ เราสามารถใช้ฟังก์ชัน train_test_split เพื่อทำการแยก test_size = 0.3 ระบุเปอร์เซ็นต์ของข้อมูลที่ควรเก็บไว้สำหรับการทดสอบ

ทำให้ข้อมูลเป็นปกติ
สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าค่าคุณลักษณะทั้งหมดอยู่ในช่วงเดียวกัน เป็นเรื่องยากสำหรับโมเดลที่จะเรียนรู้รูปแบบพื้นฐานระหว่างคุณลักษณะต่างๆ และเรียนรู้วิธีการตัดสินใจ ดังนั้นเราจึงทำให้ข้อมูลของเราเป็นปกติในช่วงเดียวกันโดยใช้ วิธี StandardScaler
นำเข้าการอ้างอิง
ตอนนี้ เราจะนำเข้าฟังก์ชันที่จำเป็นในการสร้างโครงข่ายประสาทเทียมระดับลึก
สร้างแบบจำลอง
ได้เวลาสร้างแบบจำลองของเราแล้ว!. ตอนนี้ให้เราเริ่มต้นแบบจำลองตามลำดับของเรา API ตามลำดับช่วยให้คุณสร้างแบบจำลองทีละชั้นสำหรับปัญหาส่วนใหญ่ได้
สิ่งแรกที่เราต้องทำก่อนสร้างโมเดลคือการสร้างโมเดลออบเจกต์เอง ออบเจ็กต์นี้จะเป็นตัวอย่างของคลาสที่เรียกว่า Sequential
การเพิ่มเลเยอร์แรกที่เชื่อมต่ออย่างสมบูรณ์
หากคุณไม่ทราบประเภทของเลเยอร์และการทำงานของเลเยอร์เหล่านี้ ฉันแนะนำให้ตรวจสอบบล็อกของฉันเกี่ยวกับ Introduction to Neural Networks ซึ่งจะช่วยให้คุณทราบแนวคิดส่วนใหญ่ที่คุณควรทราบ
หมายความว่าเอาต์พุตของการดำเนินการนี้ควรมีเซลล์ประสาทหกเซลล์ ซึ่งเราใช้ฟังก์ชันการเปิดใช้งาน ReLU เพื่อแยกความเป็นเส้นตรง และจำนวนเซลล์ประสาทอินพุตคือ 11 เราเพิ่มไฮเปอร์พารามิเตอร์ทั้งหมดโดยใช้ เมธอด . add ()
เราจะเพิ่มเลเยอร์ที่ซ่อนอยู่ด้วยการกำหนดค่าเดียวกันกับเอาต์พุตของเลเยอร์ที่ซ่อนอยู่นี้จะมีหกโหนด
ชั้นเอาท์พุท
เอาต์พุตของเลเยอร์นี้จะมีเพียงโหนดเดียว ซึ่งบอกได้ว่าผู้ใช้จะอยู่หรือออกจากการสมัครรับข้อมูล ในเลเยอร์นี้ เราใช้ sigmoid เป็นฟังก์ชันการเปิดใช้งานของเรา
เรียนรู้เกี่ยวกับ: การเรียนรู้เชิงลึกกับโครงข่ายประสาทเทียม
กำลังรวบรวม
ตอนนี้เราต้องเชื่อมต่อเครือข่ายของเรากับเครื่องมือเพิ่มประสิทธิภาพ เครื่องมือเพิ่มประสิทธิภาพจะอัปเดตน้ำหนักของเครือข่ายของเราตามข้อผิดพลาด กระบวนการนี้เรียกว่าการขยายพันธุ์กลับ
เราจะใช้ Adam เป็นเครื่องมือเพิ่มประสิทธิภาพของเรา เนื่องจากผลลัพธ์ของเราเป็นเลขฐานสอง เราจึงใช้ cross-entropy แบบไบนารี และเมตริกที่เราใช้คือ ความ แม่นยำ
ฝึกโมเดล
ขั้นตอนนี้เป็นเส้นทางสำคัญที่เราจำเป็นต้องฝึกแบบจำลองของเราเพื่อเรียนรู้รูปแบบพื้นฐาน ความสัมพันธ์ระหว่างข้อมูล และคาดการณ์ผลลัพธ์ใหม่ตามความรู้
เราใช้ เมธอด model.fit() เพื่อฝึกโมเดล เราส่งอาร์กิวเมนต์สามข้อภายในเมธอดซึ่งก็คือ
อินพุต → x_train เป็นอินพุตที่ป้อนเข้าสู่เครือข่าย
output → มีคำตอบที่ถูกต้องสำหรับ x_train เช่น y_train

no.of.epochs → หมายถึงจำนวนครั้งที่คุณจะฝึกเครือข่ายด้วยชุดข้อมูล
ประเมิน
คุณสามารถประเมินประสิทธิภาพของโมเดลโดยการนำเข้า precision_score จากไลบรารี sklearn ซึ่งคุณต้องส่งผ่านสองอาร์กิวเมนต์ หนึ่งคือผลลัพธ์จริง และอีกอันคือผลลัพธ์ที่คาดการณ์ไว้
อ่าน เพิ่มเติม : แอปพลิเคชั่น Neural Network ในโลกแห่งความจริง
บทสรุป
นั่นคือทั้งหมดที่สำหรับตอนนี้. ฉันหวังว่าคุณจะสนุกกับการสร้างโครงข่ายประสาทเทียมแรกของคุณ มีความสุขในการเรียนรู้!
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's Executive PG Program in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT -B สถานะศิษย์เก่า 5+ โครงการหลักที่ปฏิบัติได้จริง & ความช่วยเหลืองานกับ บริษัท ชั้นนำ