การตรวจจับค่าผิดปกติของ Python (PyOD)
การปรับใช้ & เอกสาร & สถิติ & ใบอนุญาต
อ่านฉันก่อน
ยินดีต้อนรับสู่ PyOD ไลบรารี Python ที่ครอบคลุมแต่ใช้งานง่ายสำหรับการตรวจจับความผิดปกติในข้อมูลหลายตัวแปร ไม่ว่าคุณจะจัดการกับโปรเจ็กต์ขนาดเล็กหรือชุดข้อมูลขนาดใหญ่ PyOD มีอัลกอริธึมที่หลากหลายเพื่อให้เหมาะกับความต้องการของคุณ
- สำหรับการตรวจหาค่าผิดปกติอนุกรมเวลา โปรดใช้ TODS
- สำหรับการตรวจจับค่าผิดปกติของกราฟ โปรดใช้ PyGOD
- การเปรียบเทียบประสิทธิภาพและชุดข้อมูล : เรามีเอกสารวัดประสิทธิภาพการตรวจจับความผิดปกติที่ครอบคลุมจำนวน 45 หน้า ADBench แบบโอเพ่นซอร์สเต็มรูปแบบเปรียบเทียบอัลกอริธึมการตรวจจับความผิดปกติ 30 รายการบนชุดข้อมูลการวัดประสิทธิภาพ 57 ชุด
- เรียนรู้เพิ่มเติมเกี่ยวกับการตรวจจับความผิดปกติ ที่ทรัพยากรการตรวจจับความผิดปกติ
- PyOD บนระบบแบบกระจาย : คุณสามารถเรียกใช้ PyOD บน databricks ได้
เกี่ยวกับ PyOD
PyOD ก่อตั้งขึ้นในปี 2560 และได้กลายเป็น ไลบรารี่ Python สำหรับ การตรวจจับวัตถุที่ผิดปกติ/อยู่นอก ในข้อมูลหลายตัวแปร สาขาที่น่าตื่นเต้นแต่ท้าทายนี้มักเรียกกันว่า Outlier Detection หรือ Anomaly Detection
PyOD มีอัลกอริธึมการตรวจจับมากกว่า 50 แบบ ตั้งแต่ LOF แบบคลาสสิก (SIGMOD 2000) ไปจนถึง ECOD และ DIF ที่ล้ำสมัย (TKDE 2022 และ 2023) ตั้งแต่ปี 2017 เป็นต้นมา PyOD ประสบความสำเร็จในการใช้งานในโครงการวิจัยเชิงวิชาการและผลิตภัณฑ์เชิงพาณิชย์มากมาย โดยมียอดดาวน์โหลดมากกว่า 22 ล้านครั้ง นอกจากนี้ยังได้รับการยอมรับอย่างดีจากชุมชนการเรียนรู้ของเครื่องด้วยโพสต์/บทช่วยสอนต่างๆ โดยเฉพาะ รวมถึง Analytics Vidhya, KDnuggets และ Towards Data Science
PyOD มีจุดเด่นสำหรับ :
- อินเทอร์เฟซแบบครบวงจรและใช้งานง่าย สำหรับอัลกอริธึมต่างๆ
- แบบจำลองที่หลากหลาย ตั้งแต่เทคนิคคลาสสิกไปจนถึงวิธีการเรียนรู้เชิงลึกล่าสุดใน PyTorch
- ประสิทธิภาพสูงและประสิทธิภาพสูง ใช้ประโยชน์จาก numba และ joblib สำหรับการรวบรวม JIT และการประมวลผลแบบขนาน
- การฝึกอบรมและการทำนายที่รวดเร็ว ทำได้ผ่านกรอบการทำงานของ SUOD [50]
การตรวจจับค่าผิดปกติด้วยโค้ด 5 บรรทัด :
# Example: Training an ECOD detector
from pyod . models . ecod import ECOD
clf = ECOD ()
clf . fit ( X_train )
y_train_scores = clf . decision_scores_ # Outlier scores for training data
y_test_scores = clf . decision_function ( X_test ) # Outlier scores for test data
การเลือกอัลกอริทึมที่เหมาะสม: ไม่แน่ใจว่าจะเริ่มต้นจากตรงไหนใช่หรือไม่ พิจารณาตัวเลือกที่มีประสิทธิภาพและตีความได้เหล่านี้:
- ECOD: ตัวอย่างการใช้ ECOD สำหรับการตรวจจับค่าผิดปกติ
- Isolation Forest: ตัวอย่างการใช้ Isolation Forest เพื่อตรวจจับค่าผิดปกติ
หรือสำรวจ MetaOD เพื่อดูแนวทางที่ขับเคลื่อนด้วยข้อมูล
อ้างถึง PyOD :
กระดาษ PyOD ได้รับการตีพิมพ์ใน Journal of Machine Learning Research (JMLR) (MLOSS track) หากคุณใช้ PyOD ในสิ่งพิมพ์ทางวิทยาศาสตร์ เราขอขอบคุณการอ้างอิงในเอกสารต่อไปนี้:
@article{zhao2019pyod,
ผู้แต่ง = {Zhao, Yue และ Nasrullah, Zain และ Li, Zheng},
title = {PyOD: กล่องเครื่องมือ Python สำหรับการตรวจจับค่าผิดปกติที่ปรับขนาดได้},
วารสาร = {วารสารการวิจัยการเรียนรู้ของเครื่อง},
ปี = {2019},
ปริมาณ = {20},
หมายเลข = {96},
หน้า = {1-7},
url = {http://jmlr.org/papers/v20/19-011.html}
-
หรือ:
Zhao, Y., Nasrullah, Z. และ Li, Z., 2019 PyOD: กล่องเครื่องมือ Python สำหรับการตรวจจับค่าผิดปกติที่ปรับขนาดได้ วารสารการวิจัยการเรียนรู้ของเครื่อง (JMLR), 20(96), หน้า 1-7
สำหรับมุมมองที่กว้างขึ้นเกี่ยวกับการตรวจจับความผิดปกติ โปรดดูเอกสาร NeurIPS ของเรา ADBench: เอกสารเกณฑ์มาตรฐานการตรวจจับความผิดปกติ และ ADGym: ตัวเลือกการออกแบบสำหรับการตรวจจับความผิดปกติเชิงลึก:
@บทความ{han2022adbench,
title={Adbench: เกณฑ์มาตรฐานการตรวจจับความผิดปกติ},
ผู้แต่ง={ฮั่น, ซงเฉียวและหู, ซีหยางและหวง, ไห่เหลียงและเจียง, หมินฉีและจ้าว, เยว่},
Journal={ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท},
ปริมาณ={35},
หน้า={32142--32159},
ปี={2022}
-
@article{jiang2023adgym,
title={ADGym: ตัวเลือกการออกแบบสำหรับการตรวจจับความผิดปกติเชิงลึก},
author={เจียง, หมินฉีและโหว, เฉาฉวนและเจิ้ง, อาวและฮั่น, ซงเฉียวและหวง, ไห่เหลียงและเหวิน, ชิงซ่งและหู, ซีหยางและจ้าว, เยว่},
Journal={ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท},
ปริมาณ={36},
ปี={2023}
-
สารบัญ :
- การติดตั้ง
- เอกสารสรุป API และข้อมูลอ้างอิง
- เกณฑ์มาตรฐาน ADBench และชุดข้อมูล
- โมเดลบันทึกและโหลด
- รถไฟด่วนกับ SUOD
- คะแนนค่าผิดปกติตามเกณฑ์
- อัลกอริทึมที่นำไปใช้
- เริ่มต้นอย่างรวดเร็วสำหรับการตรวจจับค่าผิดปกติ
- วิธีการมีส่วนร่วม
- เกณฑ์การคัดเลือก
การติดตั้ง
PyOD ได้รับการออกแบบมาเพื่อให้ติดตั้งง่ายโดยใช้ pip หรือ conda เราขอแนะนำให้ใช้ PyOD เวอร์ชันล่าสุดเนื่องจากมีการอัปเดตและการปรับปรุงบ่อยครั้ง:
pip install pyod # normal install
pip install --upgrade pyod # or update if needed
conda install -c conda-forge pyod
หรือคุณสามารถโคลนและเรียกใช้ไฟล์ setup.py ได้:
git clone https://github.com/yzhao062/pyod.git
cd pyod
pip install .
การพึ่งพาที่จำเป็น :
- Python 3.8 หรือสูงกว่า
- จ็อบลิบ
- matplotlib
- จำนวน>=1.19
- นัมบะ>=0.51
- เผ็ด>=1.5.1
- scikit_learn>=0.22.0
การพึ่งพาเพิ่มเติม (ดูรายละเอียดด้านล่าง) :
- คอมโบ (เป็นทางเลือก จำเป็นสำหรับ models/combination.py และ FeatureBagging)
- pytorch (เป็นทางเลือก จำเป็นสำหรับ AutoEncoder และโมเดลการเรียนรู้เชิงลึกอื่นๆ)
- suod (เป็นทางเลือก จำเป็นสำหรับการรันโมเดล SUOD)
- xgboost (เป็นทางเลือก จำเป็นสำหรับ XGBOD)
- pythresh (เป็นทางเลือก จำเป็นสำหรับการกำหนดขีดจำกัด)
เอกสารสรุป API และข้อมูลอ้างอิง
การอ้างอิง API แบบเต็มมีอยู่ที่เอกสารประกอบ PyOD ด้านล่างนี้เป็นเอกสารสรุปสั้นๆ สำหรับเครื่องตรวจจับทั้งหมด:
- fit(X) : ติดตั้งเครื่องตรวจจับ พารามิเตอร์ y จะถูกละเว้นในวิธีการที่ไม่มีผู้ดูแล
- การตัดสินใจ_ฟังก์ชัน(X) : ทำนายคะแนนความผิดปกติแบบดิบสำหรับ X โดยใช้ตัวตรวจจับที่ติดตั้งไว้
- ทำนาย(X) : ตรวจสอบว่าตัวอย่างมีค่าผิดปกติหรือไม่เป็นฉลากไบนารีโดยใช้ตัวตรวจจับที่ติดตั้งไว้
- Predict_proba(X) : ประมาณความน่าจะเป็นของตัวอย่างที่มีค่าผิดปกติโดยใช้เครื่องตรวจจับที่ติดตั้งไว้
- Predict_confidence(X) : ประเมินความเชื่อมั่นของโมเดลแบบกลุ่มตัวอย่าง (ใช้ได้กับ Predict และ Predict_proba) [35]
คุณสมบัติที่สำคัญของรุ่นที่ติดตั้ง :
- การตัดสินใจ_คะแนน _ : คะแนนที่ผิดปกติของข้อมูลการฝึกอบรม โดยทั่วไปคะแนนที่สูงกว่าจะบ่งบอกถึงพฤติกรรมที่ผิดปกติมากขึ้น ค่าผิดปกติมักจะมีคะแนนสูงกว่า
- label_ : ป้ายกำกับไบนารี่ของข้อมูลการฝึก โดยที่ 0 หมายถึง inliers และ 1 หมายถึงค่าผิดปกติ/ความผิดปกติ
เกณฑ์มาตรฐานและชุดข้อมูลของ ADBench
เราเพิ่งเปิดตัว ADBench: Anomaly Detection Benchmark ที่ครอบคลุมที่สุดจำนวน 45 หน้า [15] ADBench แบบโอเพ่นซอร์สเต็มรูปแบบเปรียบเทียบอัลกอริธึมการตรวจจับความผิดปกติ 30 รายการบนชุดข้อมูลการวัดประสิทธิภาพ 57 ชุด
องค์กรของ ADBench มีดังต่อไปนี้:
เพื่อให้เห็นภาพได้ง่ายขึ้น เราทำการ เปรียบเทียบโมเดลที่เลือก ผ่าน comparison_all_models.py
โมเดลบันทึกและโหลด
PyOD ใช้แนวทางที่คล้ายกันของ sklearn เกี่ยวกับการคงอยู่ของโมเดล ดูความคงอยู่ของโมเดลเพื่อความชัดเจน
กล่าวโดยสรุป เราแนะนำให้ใช้ joblib หรือดองเพื่อบันทึกและโหลดโมเดล PyOD ดูตัวอย่าง "examples/save_load_model_example.py" สรุปง่ายๆ ดังนี้ครับ
from joblib import dump , load
# save the model
dump ( clf , 'clf.joblib' )
# load the model
clf = load ( 'clf.joblib' )
เป็นที่ทราบกันดีว่ามีความท้าทายในการบันทึกโมเดลโครงข่ายประสาทเทียม ตรวจสอบ #328 และ #88 เพื่อดูวิธีแก้ปัญหาชั่วคราว
รถไฟด่วนกับ SUOD
การฝึกอบรมและการทำนายที่รวดเร็ว : สามารถฝึกอบรมและคาดการณ์ด้วยโมเดลการตรวจจับจำนวนมากใน PyOD โดยใช้ประโยชน์จากเฟรมเวิร์ก SUOD [50] ดูตัวอย่างกระดาษ SUOD และ SUOD
from pyod . models . suod import SUOD
# initialized a group of outlier detectors for acceleration
detector_list = [ LOF ( n_neighbors = 15 ), LOF ( n_neighbors = 20 ),
LOF ( n_neighbors = 25 ), LOF ( n_neighbors = 35 ),
COPOD (), IForest ( n_estimators = 100 ),
IForest ( n_estimators = 200 )]
# decide the number of parallel process, and the combination method
# then clf can be used as any outlier detection model
clf = SUOD ( base_estimators = detector_list , n_jobs = 2 , combination = 'average' ,
verbose = False )
คะแนนค่าผิดปกติตามเกณฑ์
สามารถใช้แนวทางที่อิงข้อมูลมากขึ้นเมื่อตั้งค่าระดับการปนเปื้อน ด้วยการใช้วิธีการกำหนดขีดจำกัด การคาดเดาค่าที่กำหนดเองสามารถแทนที่ด้วยเทคนิคที่ผ่านการทดสอบแล้วสำหรับการแยกอินลิเยร์และค่าผิดปกติ อ้างถึง PyThresh เพื่อดูรายละเอียดเชิงลึกเพิ่มเติมเกี่ยวกับเกณฑ์ขั้นต่ำ
from pyod . models . knn import KNN
from pyod . models . thresholds import FILTER
# Set the outlier detection and thresholding methods
clf = KNN ( contamination = FILTER ())
ดูวิธีการกำหนดขีดจำกัดที่รองรับในการกำหนดขีดจำกัด
อัลกอริทึมที่นำไปใช้
ชุดเครื่องมือ PyOD ประกอบด้วยกลุ่มฟังก์ชันหลักสี่กลุ่ม:
(i) อัลกอริธึมการตรวจจับส่วนบุคคล :
พิมพ์ | คำย่อ | อัลกอริทึม | ปี | อ้างอิง |
---|
ความน่าจะเป็น | อีโคดี | การตรวจจับค่าผิดปกติที่ไม่ได้รับการดูแลโดยใช้ฟังก์ชันการกระจายสะสมเชิงประจักษ์ | 2022 | [28] |
ความน่าจะเป็น | อยู่ | การตรวจจับค่าผิดปกติตามมุม | 2551 | [22] |
ความน่าจะเป็น | รวดเร็ว ABOD | การตรวจจับค่าเบี่ยงเบนตามมุมที่รวดเร็วโดยใช้การประมาณ | 2551 | [22] |
ความน่าจะเป็น | ปอดอุดกั้นเรื้อรัง | COPOD: การตรวจจับค่าผิดปกติที่ใช้ Copula | 2020 | [27] |
ความน่าจะเป็น | โกรธ | ค่ามัธยฐานส่วนเบี่ยงเบนสัมบูรณ์ (MAD) | 1993 | [19] |
ความน่าจะเป็น | สัญญาณขอความช่วยเหลือ | การเลือกค่าผิดปกติแบบสุ่ม | 2555 | [20] |
ความน่าจะเป็น | คิวเอ็มซีดี | การตรวจจับค่าผิดปกติของ Quasi-Monte Carlo | 2544 | [11] |
ความน่าจะเป็น | เคดีอี | การตรวจจับค่าผิดปกติด้วยฟังก์ชันความหนาแน่นของเคอร์เนล | 2550 | [24] |
ความน่าจะเป็น | การสุ่มตัวอย่าง | การตรวจจับค่าผิดปกติตามระยะทางอย่างรวดเร็วผ่านการสุ่มตัวอย่าง | 2013 | [42] |
ความน่าจะเป็น | จีเอ็มเอ็ม | การสร้างแบบจำลองความน่าจะเป็นของผสมสำหรับการวิเคราะห์ค่าผิดปกติ | | [1] [ช่อง 2] |
โมเดลเชิงเส้น | พีซีเอ | การวิเคราะห์องค์ประกอบหลัก (ผลรวมของระยะทางที่คาดการณ์แบบถ่วงน้ำหนักไปยังไฮเปอร์เพลนเวกเตอร์ลักษณะเฉพาะ) | 2546 | [41] |
โมเดลเชิงเส้น | กปปส | การวิเคราะห์องค์ประกอบหลักของเคอร์เนล | 2550 | [18] |
โมเดลเชิงเส้น | เอ็มซีดี | ตัวกำหนดความแปรปรวนร่วมขั้นต่ำ (ใช้ระยะมาฮาลาโนบีเป็นคะแนนค่าผิดปกติ) | 1999 | [16] [37] |
โมเดลเชิงเส้น | ซีดี | ใช้ระยะห่างของ Cook เพื่อตรวจจับค่าผิดปกติ | 1977 | [10] |
โมเดลเชิงเส้น | โอซีเอสวีเอ็ม | เครื่องเวกเตอร์สนับสนุนระดับหนึ่ง | 2544 | [40] |
โมเดลเชิงเส้น | แอลเอ็มดีดี | การตรวจจับค่าผิดปกติตามความเบี่ยงเบน (LMDD) | 1996 | [6] |
ความใกล้ชิดตาม | ลอฟ | ปัจจัยค่าผิดปกติในท้องถิ่น | 2000 | [8] |
ความใกล้ชิดตาม | คอฟ | ปัจจัยค่าผิดปกติตามการเชื่อมต่อ | 2545 | [43] |
ความใกล้ชิดตาม | (ส่วนเพิ่ม) COF | ปัจจัยค่าผิดปกติที่อิงตามการเชื่อมต่อที่มีประสิทธิภาพของหน่วยความจำ (ช้ากว่าแต่ลดความซับซ้อนในการจัดเก็บข้อมูล) | 2545 | [43] |
ความใกล้ชิดตาม | ซีบีลอฟ | ปัจจัยค่าผิดปกติเฉพาะที่ตามการจัดกลุ่ม | 2546 | [17] |
ความใกล้ชิดตาม | โลซี | LOCI: การตรวจจับค่าผิดปกติที่รวดเร็วโดยใช้อินทิกรัลสหสัมพันธ์เฉพาะที่ | 2546 | [33] |
ความใกล้ชิดตาม | เอชบีโอเอส | คะแนนค่าผิดปกติตามฮิสโตแกรม | 2555 | [12] |
ความใกล้ชิดตาม | เคเอ็นเอ็น | k เพื่อนบ้านที่ใกล้ที่สุด (ใช้ระยะทางไปยังเพื่อนบ้านที่ใกล้ที่สุด kth เป็นคะแนนค่าผิดปกติ) | 2000 | [36] |
ความใกล้ชิดตาม | เฉลี่ยKNN | ค่าเฉลี่ย kNN (ใช้ระยะทางเฉลี่ยถึงเพื่อนบ้านที่ใกล้ที่สุด k รายเป็นคะแนนค่าผิดปกติ) | 2545 | [5] |
ความใกล้ชิดตาม | เมดเคเอ็นเอ็น | ค่ามัธยฐาน kNN (ใช้ค่ามัธยฐานของระยะห่างกับเพื่อนบ้านที่ใกล้ที่สุด k เป็นคะแนนค่าผิดปกติ) | 2545 | [5] |
ความใกล้ชิดตาม | เอสโอดี | การตรวจจับค่า Outlier ของ Subspace | 2552 | [23] |
ความใกล้ชิดตาม | รด | การตรวจจับค่าผิดปกติตามการหมุน | 2020 | [4] |
วงดนตรีนอกกรอบ | ไอฟอเรสท์ | ป่าโดดเดี่ยว | 2551 | [29] |
วงดนตรีนอกกรอบ | อิน | การตรวจจับความผิดปกติแบบแยกส่วนโดยใช้วงดนตรีใกล้เคียงที่สุด | 2018 | [7] |
วงดนตรีนอกกรอบ | สพท | ป่าแยกลึกเพื่อการตรวจจับความผิดปกติ | 2023 | [45] |
วงดนตรีนอกกรอบ | FB | คุณลักษณะการบรรจุถุง | 2548 | [25] |
วงดนตรีนอกกรอบ | แอลเอสซีพี | LSCP: การผสมผสานเฉพาะจุดของวงดนตรีค่าผิดปกติแบบขนาน | 2019 | [49] |
วงดนตรีนอกกรอบ | XGBOD | การตรวจจับค่าผิดปกติตามการเร่งขั้นสูงสุด (ภายใต้การดูแล) | 2018 | [48] |
วงดนตรีนอกกรอบ | โลดา | เครื่องมือตรวจจับความผิดปกติแบบออนไลน์น้ำหนักเบา | 2559 | [34] |
วงดนตรีนอกกรอบ | สุด | SUOD: การเร่งการตรวจจับค่าผิดปกติที่แตกต่างกันแบบไม่มีผู้ดูแลขนาดใหญ่ (การเร่งความเร็ว) | 2021 | [50] |
โครงข่ายประสาทเทียม | โปรแกรมเข้ารหัสอัตโนมัติ | AutoEncoder ที่เชื่อมต่อโดยสมบูรณ์ (ใช้ข้อผิดพลาดในการสร้างใหม่เป็นคะแนนค่าผิดปกติ) | | [1] [ช่อง 3] |
โครงข่ายประสาทเทียม | วีเออี | Variational AutoEncoder (ใช้ข้อผิดพลาดในการสร้างใหม่เป็นคะแนนค่าผิดปกติ) | 2013 | [21] |
โครงข่ายประสาทเทียม | เบต้า-VAE | Variational AutoEncoder (ระยะการสูญเสียที่กำหนดเองทั้งหมดโดยแกมม่าและความจุที่แตกต่างกัน) | 2018 | [9] |
โครงข่ายประสาทเทียม | SO_GAAL | การเรียนรู้เชิงรุกเชิงปฏิปักษ์แบบมีวัตถุประสงค์เดี่ยว | 2019 | [30] |
โครงข่ายประสาทเทียม | MO_GAAL | การเรียนรู้เชิงรุกเชิงสร้างสรรค์แบบหลายวัตถุประสงค์ | 2019 | [30] |
โครงข่ายประสาทเทียม | DeepSVDD | การจำแนกประเภทหนึ่งระดับลึก | 2018 | [38] |
โครงข่ายประสาทเทียม | อาโนแกน | การตรวจจับความผิดปกติด้วย Generative Adversarial Networks | 2017 | [39] |
โครงข่ายประสาทเทียม | อลาด | การตรวจจับความผิดปกติที่เรียนรู้จากฝ่ายตรงข้าม | 2018 | [47] |
โครงข่ายประสาทเทียม | AE1SVM | เครื่องเวกเตอร์สนับสนุนระดับหนึ่งที่ใช้การเข้ารหัสอัตโนมัติ | 2019 | [31] |
โครงข่ายประสาทเทียม | เดฟเน็ต | การตรวจจับความผิดปกติเชิงลึกด้วยเครือข่ายเบี่ยงเบน | 2019 | [32] |
ตามกราฟ | R-กราฟ | การตรวจจับค่าผิดปกติด้วยกราฟ R | 2017 | [46] |
ตามกราฟ | จันทรคติ | LUNAR: รวมวิธีการตรวจจับค่าผิดปกติในพื้นที่ผ่านโครงข่ายประสาทเทียมแบบกราฟ | 2022 | [13] |
(ii) กรอบการทำงานของชุดค่า Outlier Ensembles และ Outlier Detector :
พิมพ์ | คำย่อ | อัลกอริทึม | ปี | อ้างอิง |
---|
วงดนตรีนอกกรอบ | FB | คุณลักษณะการบรรจุถุง | 2548 | [25] |
วงดนตรีนอกกรอบ | แอลเอสซีพี | LSCP: การผสมผสานเฉพาะจุดของวงดนตรีค่าผิดปกติแบบขนาน | 2019 | [49] |
วงดนตรีนอกกรอบ | XGBOD | การตรวจจับค่าผิดปกติตามการเร่งขั้นสูงสุด (ภายใต้การดูแล) | 2018 | [48] |
วงดนตรีนอกกรอบ | โลดา | เครื่องมือตรวจจับความผิดปกติแบบออนไลน์น้ำหนักเบา | 2559 | [34] |
วงดนตรีนอกกรอบ | สุด | SUOD: การเร่งการตรวจจับค่าผิดปกติที่แตกต่างกันแบบไม่มีผู้ดูแลขนาดใหญ่ (การเร่งความเร็ว) | 2021 | [50] |
วงดนตรีนอกกรอบ | อิน | การตรวจจับความผิดปกติแบบแยกส่วนโดยใช้วงดนตรีใกล้เคียงที่สุด | 2018 | [7] |
การผสมผสาน | เฉลี่ย | การรวมกันอย่างง่ายโดยการเฉลี่ยคะแนน | 2558 | [2] |
การผสมผสาน | ค่าเฉลี่ยถ่วงน้ำหนัก | การผสมผสานอย่างง่ายโดยการหาค่าเฉลี่ยคะแนนด้วยตุ้มน้ำหนักของเครื่องตรวจจับ | 2558 | [2] |
การผสมผสาน | การขยายใหญ่สุด | การรวมกันอย่างง่ายโดยรับคะแนนสูงสุด | 2558 | [2] |
การผสมผสาน | ออม | ค่าเฉลี่ยสูงสุด | 2558 | [2] |
การผสมผสาน | โมอา | การเพิ่มค่าเฉลี่ยให้สูงสุด | 2558 | [2] |
การผสมผสาน | ค่ามัธยฐาน | การรวมกันอย่างง่ายโดยการนำค่ามัธยฐานของคะแนน | 2558 | [2] |
การผสมผสาน | โหวตเสียงข้างมาก | ผสมง่ายๆ โดยยึดเสียงข้างมากของป้ายกำกับ (สามารถใช้น้ำหนักได้) | 2558 | [2] |
(iii) ฟังก์ชั่นยูทิลิตี้ :
พิมพ์ | ชื่อ | การทำงาน | เอกสารประกอบ |
---|
ข้อมูล | Generate_data | การสร้างข้อมูลสังเคราะห์ ข้อมูลปกติถูกสร้างขึ้นโดยเกาส์เซียนหลายตัวแปร และค่าผิดปกติถูกสร้างขึ้นโดยการแจกแจงแบบสม่ำเสมอ | Generate_data |
ข้อมูล | Generate_data_clusters | การสร้างข้อมูลสังเคราะห์ในกลุ่ม สามารถสร้างรูปแบบข้อมูลที่ซับซ้อนมากขึ้นได้โดยใช้หลายคลัสเตอร์ | Generate_data_clusters |
สถิติ | wpearsonr | คำนวณความสัมพันธ์แบบเพียร์สันแบบถ่วงน้ำหนักของสองตัวอย่าง | wpearsonr |
คุณประโยชน์ | get_label_n | เปลี่ยนคะแนนค่าผิดปกติดิบให้เป็นป้ายกำกับไบนารีโดยกำหนด 1 ให้กับคะแนนค่าผิดปกติสูงสุด | get_label_n |
คุณประโยชน์ | ความแม่นยำ_n_scores | คำนวณความแม่นยำ @ อันดับ n | ความแม่นยำ_n_scores |
เริ่มต้นอย่างรวดเร็วสำหรับการตรวจจับค่าผิดปกติ
PyOD ได้รับการยอมรับอย่างดีจากชุมชนการเรียนรู้ของเครื่องด้วยโพสต์และบทช่วยสอนที่โดดเด่นบางส่วน
Analytics Vidhya : บทช่วยสอนที่ยอดเยี่ยมเพื่อเรียนรู้การตรวจจับค่าผิดปกติใน Python โดยใช้ไลบรารี PyOD
KDnuggets : การสร้างภาพวิธีการตรวจจับค่าผิดปกติที่ใช้งานง่าย ภาพรวมของวิธีการตรวจจับค่าผิดปกติจาก PyOD
สู่วิทยาการข้อมูล : การตรวจจับความผิดปกติสำหรับหุ่นจำลอง
"examples/knn_example.py" สาธิต API พื้นฐานของการใช้ตัวตรวจจับ kNN มีข้อสังเกตว่า API ในอัลกอริธึมอื่นๆ ทั้งหมดมีความสอดคล้อง/คล้ายกัน
คำแนะนำโดยละเอียดเพิ่มเติมสำหรับการรันตัวอย่างสามารถพบได้ในไดเร็กทอรีตัวอย่าง
เริ่มต้นเครื่องตรวจจับ kNN ติดตั้งโมเดล และทำการคาดการณ์
from pyod . models . knn import KNN # kNN detector
# train kNN detector
clf_name = 'KNN'
clf = KNN ()
clf . fit ( X_train )
# get the prediction label and outlier scores of the training data
y_train_pred = clf . labels_ # binary labels (0: inliers, 1: outliers)
y_train_scores = clf . decision_scores_ # raw outlier scores
# get the prediction on the test data
y_test_pred = clf . predict ( X_test ) # outlier labels (0 or 1)
y_test_scores = clf . decision_function ( X_test ) # outlier scores
# it is possible to get the prediction confidence as well
y_test_pred , y_test_pred_confidence = clf . predict ( X_test , return_confidence = True ) # outlier labels (0 or 1) and confidence in the range of [0,1]
ประเมินผลการทำนายโดย ROC และ Precision @ Rank n (p@n)
from pyod . utils . data import evaluate_print
# evaluate and print the results
print ( " n On Training Data:" )
evaluate_print ( clf_name , y_train , y_train_scores )
print ( " n On Test Data:" )
evaluate_print ( clf_name , y_test , y_test_scores )
ดูผลลัพธ์ตัวอย่างและการแสดงภาพ
On Training Data :
KNN ROC : 1.0 , precision @ rank n : 1.0
On Test Data :
KNN ROC : 0.9989 , precision @ rank n : 0.9
visualize ( clf_name , X_train , y_train , X_test , y_test , y_train_pred ,
y_test_pred , show_figure = True , save_figure = False )
การแสดงภาพ (knn_figure):
อ้างอิง
[1] | (1, 2) Aggarwal, CC, 2015. การวิเคราะห์ค่าผิดปกติ ในการขุดข้อมูล (หน้า 237-263) สปริงเกอร์, จาม. |
[2] | (1, 2, 3, 4, 5, 6, 7) Aggarwal, CC และ Sathe, S., 2015. รากฐานทางทฤษฎีและอัลกอริธึมสำหรับชุดค่าผิดปกติ จดหมายข่าวการสำรวจ ACM SIGKDD , 17(1), หน้า 24-47. |
[3] | Aggarwal, CC และ Sathe, S., 2017. วงดนตรีนอกกรอบ: บทนำ สปริงเกอร์. |
[4] | Almardeny, Y., Boujnah, N. และ Cleary, F., 2020. วิธีการตรวจหาค่าผิดปกติแบบใหม่สำหรับข้อมูลหลายตัวแปร ธุรกรรม IEEE เกี่ยวกับความรู้และวิศวกรรมข้อมูล |
[5] | (1, 2) Angiulli, F. และ Pizzuti, C., 2002, สิงหาคม การตรวจจับค่าผิดปกติที่รวดเร็วในพื้นที่มิติสูง ใน การประชุมยุโรปเรื่องหลักการการทำเหมืองข้อมูลและการค้นพบความรู้ หน้า 15-27 |
[6] | Arning, A., Agrawal, R. และ Raghavan, P., 1996, สิงหาคม วิธีการเชิงเส้นสำหรับการตรวจจับความเบี่ยงเบนในฐานข้อมูลขนาดใหญ่ ใน KDD (เล่ม 1141 ฉบับที่ 50 หน้า 972-981) |
[7] | (1, 2) Bandaragoda, TR, Ting, KM, Albrecht, D., Liu, FT, Zhu, Y. และ Wells, JR, 2018, การตรวจจับความผิดปกติแบบแยกส่วนโดยใช้วงดนตรีเพื่อนบ้านที่ใกล้ที่สุด ความฉลาดทางคอมพิวเตอร์ , 34(4), หน้า 968-998. |
[8] | Breunig, MM, Kriegel, HP, Ng, RT และ Sander, J., 2000, พฤษภาคม LOF: การระบุค่าผิดปกติในท้องถิ่นตามความหนาแน่น บันทึก ACM Sigmod , 29(2), หน้า 93-104. |
[9] | เบอร์เจส, คริสโตเฟอร์ พี. และคณะ "การทำความเข้าใจการแยกส่วนใน beta-VAE" arXiv พิมพ์ล่วงหน้า arXiv:1804.03599 (2018) |
[10] | Cook, RD, 1977. การตรวจจับการสังเกตที่มีอิทธิพลในการถดถอยเชิงเส้น เทคโนโลยี, 19(1), หน้า 15-18. |
[11] | Fang, KT และ Ma, CX, 2001. ความคลาดเคลื่อน L2 แบบพันรอบของการสุ่มตัวอย่าง, ไฮเปอร์คิวบ์ละติน และการออกแบบที่เหมือนกัน วารสารความซับซ้อน, 17(4), หน้า 608-624. |
[12] | Goldstein, M. และ Dengel, A., 2012. คะแนนค่าผิดปกติตามฮิสโตแกรม (hbos): อัลกอริธึมการตรวจจับความผิดปกติที่ไม่ได้รับการดูแลอย่างรวดเร็ว ใน KI-2012: โปสเตอร์และแทร็กสาธิต หน้า 59-63 |
[13] | Goodge, A., Hooi, B., Ng, SK และ Ng, WS, 2022, มิถุนายน จันทรคติ: รวมวิธีการตรวจจับค่าผิดปกติในพื้นที่ผ่านโครงข่ายประสาทเทียมแบบกราฟ ในการประชุม AAAI เรื่องปัญญาประดิษฐ์ |
[14] | Gopalan, P., Sharan, V. และ Wieder, U., 2019. PIDForest: การตรวจจับความผิดปกติผ่านการระบุบางส่วน ในความก้าวหน้าในระบบประมวลผลข้อมูลประสาท หน้า 15783-15793 |
[15] | Han, S., Hu, X., Huang, H., Jiang, M. และ Zhao, Y., 2022. ADBench: เกณฑ์มาตรฐานการตรวจจับความผิดปกติ arXiv พิมพ์ล่วงหน้า arXiv:2206.09426 |
[16] | Hardin, J. และ Rocke, DM, 2004. การตรวจจับค่าผิดปกติในการตั้งค่าคลัสเตอร์หลายรายการโดยใช้ตัวประมาณค่าปัจจัยกำหนดความแปรปรวนร่วมขั้นต่ำ สถิติคอมพิวเตอร์และการวิเคราะห์ข้อมูล , 44(4), หน้า 625-638. |
[17] | He, Z., Xu, X. และ Deng, S., 2003. การค้นพบค่าผิดปกติในท้องถิ่นแบบคลัสเตอร์ ตัวอักษรการจดจำรูปแบบ , 24(9-10), หน้า 1641-1650. |
[18] | Hoffmann, H. , 2007. Kernel PCA สำหรับการตรวจจับสิ่งแปลกใหม่ การจดจำรูปแบบ 40(3) หน้า 863-874 |
[19] | Iglewicz, B. และ Hoaglin, DC, 1993. วิธีตรวจจับและจัดการกับค่าผิดปกติ (เล่ม 16) แอสคิว กด. |
[20] | Janssens, JHM, Huszár, F., Postma, EO และ van den Herik, HJ, 2012. การเลือกค่าผิดปกติแบบสุ่ม รายงานทางเทคนิค TiCC TR 2012-001, มหาวิทยาลัย Tilburg, ศูนย์ความรู้ความเข้าใจและการสื่อสาร Tilburg, Tilburg, เนเธอร์แลนด์ |
[21] | Kingma, DP และ Welling, M., 2013. ช่องรูปแบบการเข้ารหัสอัตโนมัติ arXiv พิมพ์ล่วงหน้า arXiv:1312.6114 |
[22] | (1, 2) Kriegel, HP และ Zimek, A., 2008, สิงหาคม การตรวจจับค่าผิดปกติตามมุมในข้อมูลมิติสูง ใน KDD '08 หน้า 444-452 พลอากาศเอก. |
[23] | Kriegel, HP, Kröger, P., Schubert, E. และ Zimek, A., 2009, เมษายน การตรวจจับค่าผิดปกติในพื้นที่ย่อยแกน-ขนานของข้อมูลมิติสูง ใน การประชุมแปซิฟิก-เอเชียเรื่องการค้นพบความรู้และการทำเหมืองข้อมูล หน้า 831-838 สปริงเกอร์, เบอร์ลิน, ไฮเดลเบิร์ก |
[24] | Latecki, LJ, Lazarevic, A. และ Pokrajac, D., 2007, กรกฎาคม การตรวจจับค่าผิดปกติด้วยฟังก์ชันความหนาแน่นของเคอร์เนล ในการประชุมเชิงปฏิบัติการระดับนานาชาติเกี่ยวกับการเรียนรู้ของเครื่องและการขุดข้อมูลในการจดจำรูปแบบ (หน้า 61-75) สปริงเกอร์, เบอร์ลิน, ไฮเดลเบิร์ก |
[25] | (1, 2) Lazarevic, A. และ Kumar, V., 2005, สิงหาคม คุณลักษณะการบรรจุถุงเพื่อการตรวจจับค่าผิดปกติ ใน KDD '05 2548. |
[26] | Li, D., Chen, D., Jin, B., Shi, L., Goh, J. และ Ng, SK, 2019, กันยายน MAD-GAN: การตรวจจับความผิดปกติหลายตัวแปรสำหรับข้อมูลอนุกรมเวลาด้วยเครือข่ายที่สร้างความขัดแย้ง ใน การประชุมนานาชาติเรื่องโครงข่ายประสาทเทียม (หน้า 703-716) สปริงเกอร์, จาม. |
[27] | Li, Z. , Zhao, Y. , Botta, N. , Ionescu, C. และ Hu, X. COPOD: การตรวจจับค่าผิดปกติที่ใช้ Copula การประชุมนานาชาติ IEEE เรื่อง Data Mining (ICDM) ปี 2020 |
[28] | Li, Z. , Zhao, Y. , Hu, X. , Botta, N. , Ionescu, C. และ Chen, HG ECOD: การตรวจจับค่าผิดปกติที่ไม่ได้รับการดูแลโดยใช้ฟังก์ชันการกระจายสะสมเชิงประจักษ์ ธุรกรรม IEEE เกี่ยวกับวิศวกรรมความรู้และข้อมูล (TKDE) ปี 2022 |
[29] | Liu, FT, Ting, KM และ Zhou, ZH, 2008, ธันวาคม ป่าโดดเดี่ยว. ใน การประชุมระหว่างประเทศเรื่อง Data Mining , หน้า 413-422. อีอีอี |
[30] | (1, 2) Liu, Y., Li, Z., Zhou, C., Jiang, Y., Sun, J., Wang, M. และ He, X., 2019 การเรียนรู้เชิงรุกเชิงปฏิปักษ์ทั่วไปสำหรับการตรวจจับค่าผิดปกติที่ไม่ได้รับการดูแล . ธุรกรรม IEEE เกี่ยวกับความรู้และวิศวกรรมข้อมูล |
[31] | เหงียน มินนิโซตา และเวียน นา 2019 svms ระดับเดียวที่ปรับขนาดได้และตีความได้ พร้อมด้วยการเรียนรู้เชิงลึกและฟีเจอร์ฟูเรียร์แบบสุ่ม ใน การเรียนรู้ของเครื่องและการค้นพบความรู้ในฐานข้อมูล: การประชุมยุโรป , ECML PKDD, 2018 |
[32] | ผาง กวนซ่ง ชุนฮวา เชน และแอนตัน แวน เดน เฮงเกล "การตรวจจับความผิดปกติเชิงลึกด้วยเครือข่ายเบี่ยงเบน" ใน KDD หน้า 353-362. 2019. |
[33] | Papadimitriou, S. , Kitagawa, H. , Gibbons, PB และ Faloutsos, C. , 2003, มีนาคม LOCI: การตรวจจับค่าผิดปกติที่รวดเร็วโดยใช้อินทิกรัลสหสัมพันธ์เฉพาะที่ ใน ICDE '03 หน้า 315-326 อีอีอี |
[34] | (1, 2) Pevný, T., 2016. Loda: เครื่องตรวจจับความผิดปกติทางออนไลน์น้ำหนักเบา การเรียนรู้ของเครื่อง , 102(2), หน้า 275-304. |
[35] | Perini, L., Vercruyssen, V., Davis, J. การหาปริมาณความเชื่อมั่นของเครื่องตรวจจับความผิดปกติในการทำนายตามตัวอย่าง ใน การประชุมร่วมยุโรปเรื่องการเรียนรู้ของเครื่องและการค้นพบความรู้ในฐานข้อมูล (ECML-PKDD) ปี 2020 |
[36] | Ramaswamy, S. , Rastogi, R. และ Shim, K. , 2000, พฤษภาคม อัลกอริธึมที่มีประสิทธิภาพสำหรับการขุดค่าผิดปกติจากชุดข้อมูลขนาดใหญ่ บันทึก ACM Sigmod , 29(2), หน้า 427-438. |
[37] | Rousseeuw, PJ และ Driessen, KV, 1999 อัลกอริธึมที่รวดเร็วสำหรับตัวประมาณค่าปัจจัยความแปรปรวนร่วมขั้นต่ำ เทคโนโลยี , 41(3), หน้า 212-223. |
[38] | Ruff, L., Vandermeulen, R., Goernitz, N., Deecke, L., Siddiqui, SA, Binder, A., Müller, E. และ Kloft, M., 2018, กรกฎาคม การจำแนกประเภทชั้นเดียวเชิงลึก ใน การประชุมนานาชาติเรื่อง Machine Learning (หน้า 4393-4402) PMLR. |
[39] | Schlegl, T., Seeböck, P., Waldstein, SM, Schmidt-Erfurth, U. และ Langs, G., 2017, มิถุนายน การตรวจจับความผิดปกติที่ไม่ได้รับการดูแลด้วยเครือข่ายที่สร้างความขัดแย้งเพื่อเป็นแนวทางในการค้นพบเครื่องหมาย ในการประชุมนานาชาติเรื่องการประมวลผลข้อมูลในภาพทางการแพทย์ (หน้า 146-157) สปริงเกอร์, จาม. |
[40] | Scholkopf, B., Platt, JC, Shawe-Taylor, J., Smola, AJ และ Williamson, RC, 2001. การประมาณค่าการสนับสนุนของการกระจายมิติสูง การคำนวณทางประสาท , 13(7), หน้า 1443-1471. |
[41] | Shyu, ML, Chen, SC, ศรินนปกรณ์, K. และ Chang, L., 2003. รูปแบบการตรวจจับความผิดปกติแบบใหม่โดยใช้ตัวแยกประเภทองค์ประกอบหลัก MIAMI UNIV CORAL GABLES ชั้นแผนกวิศวกรรมไฟฟ้าและคอมพิวเตอร์ |
[42] | Sugiyama, M. และ Borgwardt, K., 2013. การตรวจจับค่าผิดปกติตามระยะทางอย่างรวดเร็วผ่านการสุ่มตัวอย่าง ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท26 |
[43] | (1, 2) Tang, J., Chen, Z., Fu, AWC และ Cheung, DW, 2002, พฤษภาคม เพิ่มประสิทธิภาพการตรวจจับค่าผิดปกติสำหรับรูปแบบความหนาแน่นต่ำ ใน การประชุม Pacific-Asia on Knowledge Discovery and Data Mining , หน้า 535-548. สปริงเกอร์, เบอร์ลิน, ไฮเดลเบิร์ก |
[44] | Wang, X. , Du, Y. , Lin, S. , Cui, P. , Shen, Y. และ Yang, Y. , 2019. adVAE: โปรแกรมเข้ารหัสอัตโนมัติแบบแปรผันที่เป็นปฏิปักษ์ในตัวเองพร้อมความผิดปกติของเกาส์เซียนซึ่งมีความรู้ก่อนหน้าสำหรับการตรวจจับความผิดปกติ ระบบฐานความรู้ |
[45] | Xu, H., Pang, G., Wang, Y., Wang, Y., 2023. ป่าแยกลึกสำหรับการตรวจจับความผิดปกติ ธุรกรรม IEEE เกี่ยวกับความรู้และวิศวกรรมข้อมูล |
[46] | คุณ C. , Robinson, DP และ Vidal, R. , 2017 การตรวจจับค่าผิดปกติที่พิสูจน์ได้ด้วยตนเองโดยอาศัยการแสดงค่าผิดปกติในสหภาพของพื้นที่ย่อย ใน รายงานการประชุม IEEE เรื่องคอมพิวเตอร์วิทัศน์และการจดจำรูปแบบ |
[47] | Zenati, H., Romain, M., Foo, CS, Lecouat, B. และ Chandrasekhar, V., 2018, พฤศจิกายน การตรวจจับความผิดปกติที่เรียนรู้จากฝ่ายตรงข้าม ในปี 2018 การประชุม IEEE International on data mining (ICDM) (หน้า 727-736) อีอีอี |
[48] | (1, 2) Zhao, Y. และ Hryniewicki, MK XGBOD: การปรับปรุงการตรวจจับค่าผิดปกติแบบมีผู้ดูแลด้วยการเรียนรู้การเป็นตัวแทนแบบไม่มีผู้ดูแล การประชุมร่วมนานาชาติ IEEE เรื่องโครงข่ายประสาทเทียม ปี 2561 |
[49] | (1, 2) Zhao, Y., Nasrullah, Z., Hryniewicki, MK และ Li, Z., 2019, พฤษภาคม LSCP: การรวมกันแบบเลือกเฉพาะในวงดนตรีค่าผิดปกติแบบขนาน ใน Proceedings of the 2019 SIAM International Conference on Data Mining (SDM) , หน้า 585-593. สมาคมคณิตศาสตร์อุตสาหกรรมและประยุกต์ |
[50] | (1, 2, 3, 4) Zhao, Y., Hu, X., Cheng, C., Wang, C., Wan, C., Wang, W., Yang, J., Bai, H., Li , Z., Xiao, C., Wang, Y., Qiao, Z., Sun, J. และ Akoglu, L. (2021) SUOD: การเร่งการตรวจจับค่าผิดปกติที่ต่างกันแบบไม่มีผู้ดูแลขนาดใหญ่ การประชุมเรื่อง Machine Learning and Systems (MLSys) |