ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
การตรวจจับค่าผิดปกติเป็นงานที่สำคัญในด้านการเรียนรู้ของเครื่อง ใช้เพื่อระบุการสังเกตที่ผิดปกติหรือจุดข้อมูลที่เบี่ยงเบนไปจากแนวโน้มทั่วไปของชุดข้อมูล อัลกอริธึมหนึ่งที่มีประสิทธิภาพสำหรับการตรวจจับค่าผิดปกติคืออัลกอริธึม Isolation Forest
ในบล็อกของวันนี้ เราจะกล่าวถึงพื้นฐานของอัลกอริทึม Isolation Forest และสาธิตวิธีใช้เพื่อตรวจหาค่าผิดปกติในชุดข้อมูลโดยใช้Python คุณสามารถดูวิดีโอทั้งหมดของบทช่วยสอนนี้ได้ที่ด้านล่างของบล็อกนี้
สารบัญ
อัลกอริทึมการแยกฟอเรสต์กับวิธีพล็อตกล่อง
ด้านล่างเป็นภาพสองภาพสำหรับการตรวจจับค่าผิดปกติ สังเกตความแตกต่างอย่างมีนัยสำคัญในการแสดงภาพเมื่อใช้เมื่อเปรียบเทียบกับเมื่อใช้ Isolation Forest ML Model สำหรับการตรวจจับ Outlier
ใน Isolation Forest ML Model เปอร์เซ็นต์ของค่าผิดปกติที่ตรวจพบโดยอัลกอริธึมการตรวจจับความผิดปกติของ IS คือ32.56% เมื่อใช้อัลกอริธึมเดียวกัน ข้อมูลที่เหลือ67.44%จะอยู่ในช่วงปกติซึ่งค่อนข้างละเอียดอ่อน เป้าหมายของเราคือการปรับแต่งความไวนี้โดยใช้ Python
วิธีการตรวจจับค่าผิดปกติแบบดั้งเดิม
วิธีดั้งเดิมในการค้นหาค่าผิดปกติคือการใช้วิธีพล็อตกล่อง ในวิธีนี้ เราใช้ IQR เพื่อค้นหาสิ่งที่อยู่นอกช่วงข้อมูลที่คาดไว้
ในตัวอย่างนี้ จุดเดียวเหนือมัสสุคือค่าผิดปกติของเรา
ถ้าเราแปลกราฟภาพนี้ให้เป็นแผนภูมิวงกลม เราจะได้ค่าผิดปกติเฉพาะนี้ ซึ่งเท่ากับ2.33%ของข้อมูลทั้งหมด
ในบล็อกนี้ เราจะเรียนรู้วิธีใช้ Isolation Forest ML Method ปรับแต่งให้ตรงกับวิธีดั้งเดิม และเพิ่มหรือลดความไว
ชุดข้อมูลสำหรับอัลกอริทึมป่าแยก
เปิดชุดข้อมูลของเราใน LuckyTemplates จากนั้นคลิกแปลงข้อมูล
ชุดข้อมูลของเราสำหรับบทช่วยสอนนี้จะปรากฏขึ้น ประกอบด้วยDate , number of Users , Index , Isolation Forest Outlierพร้อมเอาต์พุต 1 สำหรับช่วงปกติและ -1 สำหรับค่าผิด ปกติ
เรายังมีคอลัมน์สำหรับค่าผิดปกติแบบดั้งเดิมและคอลัมน์แบบมีเงื่อนไขที่ชื่อว่าIS Anomaly Detectionซึ่งสะท้อนถึงค่าผิดปกติของป่าที่แยกออกมา
ข้อความค้นหาที่สองของเราแสดงกรอบข้อมูลของเรา ซึ่งเราจะเรียนรู้วิธีการรวมทุกอย่างเข้าด้วยกัน
รหัส Python
ใน บานหน้าต่าง Propertiesเราสามารถเห็นสคริปต์Python สองตัวของเราที่กำลังทำงานอยู่ เราสร้างเอาต์พุต Isolation Forest ด้วยหนึ่งใน สคริปต์ Python เหล่านี้ และสร้างค่าผิดปกติแบบดั้งเดิมด้วยอีกสคริปต์หนึ่ง
รหัสหลามอัลกอริทึมป่าแยก
คลิกRun Python scriptเพื่อดูโค้ด
ในโค้ด Python นี้ เรานำเข้าแพนด้า เป็น pdและใช้สิ่งที่เรียกว่าIsolation Forest
Isolation Forestเป็นแบบจำลองตามต้นไม้ซึ่งทำการตัดสินใจตามโครงสร้างของต้นไม้ จากนั้นจึงตัดสินว่ามันมีค่าผิดปกติหรือไม่ เราเรียกสิ่งนั้นว่าensemble modelเพราะมันใช้สองวิธีที่แตกต่างกันในการค้นหาค่าผิดปกติเฉพาะ
เรายังแทนที่ ตัวแปร ชุดข้อมูลซึ่งเก็บชุดข้อมูลของเราเป็นค่าเริ่มต้นเป็น df
ด้วยชุดข้อมูลของเรา เราไม่จำเป็นต้องมีโค้ดสองบรรทัดที่ไฮไลต์ด้านล่าง ดังนั้นเราจึงสามารถลบบรรทัดเหล่านั้นได้
สิ่งที่เรากำลังทำคือการยกตัวอย่างแบบจำลอง
บันทึกโมเดลเป็นIsolationForestและ ให้โมเดลเรียนรู้ข้อมูลกับผู้ใช้ จากนั้น สร้างคอลัมน์ใหม่ที่ชื่อว่าAnomaly Detectionซึ่งจะย้อนกลับไปดูข้อมูลทั้งหมดที่เรียนรู้และคาดการณ์ว่าข้อมูลใดควรมีค่าผิดปกติหรือไม่
สำหรับฟังก์ชันนี้ ค่าเริ่มต้นสำหรับการปนเปื้อนถูกตั้งค่าไว้ที่0.5 ดังนั้นจึงมีความละเอียดอ่อนมากในขณะนี้ และจะมองหาค่าผิดปกติจำนวนมาก นั่นคือเหตุผลที่ในแผนภูมิวงกลมก่อนหน้านี้ เรามีช่วงค่าผิดปกติที่สูงมากที่ 32.56%
เพื่อให้มีความไวน้อยลง เราสามารถเพิ่มการปนเปื้อน = .1ในฟังก์ชันIsolationForest
สุดท้าย รีเซ็ตดัชนีแล้วคลิกตกลง
ผลลัพธ์จะแสดงตารางสรุป ไปที่ บานหน้าต่าง ขั้นตอนที่ใช้แล้วคลิกdf
ในผลลัพธ์ เราสามารถหาค่าผิดปกติได้ที่คอลัมน์ Anomaly Detection
นอกจากนี้เรายังต้องการดูว่ามันทำงานอย่างไรเมื่อเทียบกับค่าผิดปกติแบบดั้งเดิม
รหัส Python Outlier แบบดั้งเดิม
เราจะเรียกใช้สคริปต์ Python อื่น ซึ่งในตัวอย่างนี้คือRun Python script1
รหัสนี้เพิ่มฟังก์ชันค่าผิดปกติโดยใช้ควอไทล์ที่หนึ่งและสาม เมื่อเราลบq1 ออกจาก q3เรา จะได้Interquartile Range (IQR)
สองบรรทัดถัดไปกำหนดเงื่อนไขสำหรับค่าผิดปกติ บรรทัดแรกบอกว่าอะไรก็ตามที่น้อยกว่า1.5 * iqrถือว่าเป็นค่าผิดปกติที่เป็นลบหรือต่ำกว่า นี่เป็นวิธีที่เราค้นหาค่าผิดปกติด้วยวิธีดั้งเดิม
เรารู้ด้วยว่าเรามีค่าผิดปกติหนึ่งจุดซึ่งเป็นจุดสูงสุดในข้อมูลของเรา บรรทัดที่สองระบุว่าจุดข้อมูลที่สูงกว่าq3 + 1.5 * iqrจะถือว่าเป็นค่าผิดปกติด้วย
ส่งคืนชุดข้อมูลนั้นและใช้ฟังก์ชันoutliers(df, 'Users' ) จากนั้นคลิกตกลง
ตารางสรุปที่คล้ายกับที่เรามีก่อนหน้านี้จะปรากฏขึ้น
ถ้าเราไปที่ บานหน้าต่าง ขั้นตอนที่ใช้แล้วคลิกChanged Type1เราจะได้รับ คอลัมน์ Outlier ดั้งเดิมและ คอลัมน์ Anomaly Detectionเคียงข้างกัน โดยคอลัมน์หลังใช้ 1 และ -1 เพื่อแสดงค่าผิดปกติและไม่ใช่
อย่างไรก็ตาม เมื่อเราใช้ date กับ Python มันอาจจะดูยุ่งเหยิง
สิ่งที่เราทำได้คือสร้างคอลัมน์เพิ่มเติมโดยใช้ดัชนีจาก Add Column
จากนั้นเพิ่มIndexลงในคอลัมน์ก่อนหน้าด้วยMergeเพื่อให้เราสามารถรักษาข้อมูลทั้งหมดในคอลัมน์/ชุดข้อมูลเดิมนั้นได้
เมื่อเรารวมทุกอย่างเข้าด้วยกันแล้ว เราสามารถรันโค้ดและอัปเดตวิชวลของเราได้ โปรดจำไว้ว่าเราเปลี่ยนการปนเปื้อนของค่าผิดปกติจาก 0.5 เป็น 0.1 ดังนั้นเราน่าจะเห็นส่วนนี้ของกราฟลดลงเล็กน้อย
กลับไปที่วิชวลแล้วคลิกใช้การเปลี่ยนแปลง
สังเกตว่าการตรวจจับความผิดปกติลดลงจาก 32.56% เป็น 11.63% ของข้อมูลของเราได้อย่างไร
ดังที่เราเห็นในผลลัพธ์ นี่เป็นวิธีที่ดีในการเพิ่มประสิทธิภาพการตรวจจับค่าผิดปกติของเรา
โปรดจำไว้ว่าเมื่อผู้คนใช้วิธีดั้งเดิม พวกเขาอาจใช้ค่าที่ต่ำกว่า 1.5 แต่1.5 x IQRเป็นวิธีดั้งเดิม อย่างไรก็ตาม
การตรวจจับและแสดงผลลัพธ์ Outlier ใน LuckyTemplates
การสร้างจุดทริกเกอร์ค่า Outlier แบบไดนามิกใน LuckyTemplates
LuckyTemplates Anomaly Detection Feature: How It Works
บทสรุป
ด้วยการใช้อัลกอริทึม Isolation Forest เราสามารถระบุและแยกการสังเกตที่ผิดปกติออกจากชุดข้อมูลของเราได้อย่างง่ายดาย ซึ่งจะเป็นการปรับปรุงความแม่นยำของการวิเคราะห์ของเรา บทช่วยสอนนี้มีคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีใช้อัลกอริทึม Isolation Forest สำหรับการตรวจจับค่าผิดปกติโดยใช้ Python ซึ่งจะช่วยให้คุณเริ่มต้นใช้งานในโครงการของคุณเองได้
สิ่งที่เราทำคือวิธีที่ง่ายมากในการใช้โค้ด Pythonเพื่อค้นหาความผิดปกติ คุณสามารถเพิ่มประสิทธิภาพอัลกอริทึมนั้นเพิ่มเติมได้โดยแก้ไขการปนเปื้อนและโฮสต์ของตัวแปรอื่นๆ ที่คุณสามารถเรียนรู้ผ่านโค้ดเพจ ของ Python
สิ่งที่ดีที่สุด
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้