Isolation Forests की शुरुआत

Python में Anomaly Detection

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Survey डेटा

  • एक सैंपल प्रत्युत्तरदाता:
    • 12 साल का
    • 160 cm लंबा
    • वजन 190 pounds

टोपी पहने 12 साल के कार्टून लड़के की छवि

Python में Anomaly Detection

Multivariate anomalies

मल्टीवेरिएट विसंगतियाँ:

  • दो या अधिक एट्रिब्यूट होते हैं
  • एट्रिब्यूट अपने आप में जरूरी नहीं कि अनोमलस हों
  • सभी एट्रिब्यूट साथ देखने पर ही अनोमलस लगते हैं
Python में Anomaly Detection

Decision trees

डिसीज़न ट्री का रूट नोड और एक टर्मिनेशन नोड जो जाँचता है कि 5 प्राइम है या नहीं

Python में Anomaly Detection

Decision trees

तीन लेवल वाला पूरा उगा डिसीज़न ट्री जो जाँचता है कि 5 प्राइम है या नहीं

Python में Anomaly Detection

Isolation Trees

iTrees:

  • isolation trees का छोटा नाम
  • डिसीज़न ट्री के randomized वर्शन
  • स्प्लिटिंग (ब्रांचिंग) रैंडम होती है
  • रैंडम स्प्लिट अक्सर inlier/outlier गैप में पड़ती है
Python में Anomaly Detection

उदाहरण 2D डेटा

9 डेटा पॉइंट वाला 2D डेटासेट, जिसमें दो outliers हैं

Python में Anomaly Detection

iTree फिट करना

2D कार्टेशियन प्लेन में हरे रंग की रेखा से 2D डेटासेट दो हिस्सों में बँटा

2D डेटासेट पर फिट किया गया iTree का रूट नोड

Python में Anomaly Detection

iTree फिट करना

2D कार्टेशियन प्लेन में दो लंबवत रेखाओं से 2D डेटासेट चार हिस्सों में बँटा

दो नोड वाला iTree जो 2 outliers ढूँढता है

Python में Anomaly Detection

iTree फिट करना

6 अलग रंग की रेखाओं से 2D कार्टेशियन प्लेन में 2D डेटासेट कई भागों में बँटा

2D डेटासेट पर iTree के बाकी हिस्से को फिट किया जा रहा है

Python में Anomaly Detection

पॉइंट्स कैसे क्लासिफाई होते हैं

पॉइंट्स outliers हैं:

  • अगर वे रूट नोड के पास हों
  • या कम स्प्लिट्स में मिलें

2D डेटासेट पर iTree के बाकी हिस्से को फिट किया जा रहा है

Python में Anomaly Detection

US Airbnb डेटा

import pandas as pd

airbnb_df = pd.read_csv("airbnb.csv")
Python में Anomaly Detection

US Airbnb डेटा

airbnb_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10000 entries, 0 to 9999
Data columns (total 6 columns):
 #   Column                          Non-Null Count  Dtype  
 0   minimum_nights                  10000 non-null  int64  
  1   number_of_reviews               10000 non-null  int64  
 2   reviews_per_month               10000 non-null  float64
 3   calculated_host_listings_count  10000 non-null  int64  
 4   availability_365                10000 non-null  int64  
 5   price                           10000 non-null  int64  
dtypes: float64(1), int64(5)
Python में Anomaly Detection

fit_predict

from pyod.models.iforest import IForest

iforest = IForest() labels = iforest.fit_predict(airbnb_df) print(labels)
array([0, 0, 0, ..., 1, 0, 0])

Python में Anomaly Detection

Outliers फ़िल्टर करें

outliers = airbnb_df[labels == 1]

print(outliers.shape)
(1000, 6)
Python में Anomaly Detection

अभ्यास करते हैं!

Python में Anomaly Detection

Preparing Video For Download...