Изоляция леса распечатать аномалии - PullRequest
0 голосов
/ 23 февраля 2020

Использование Isolation Forest, как способ найти аномалии в моем наборе данных. Сам набор данных представляет собой только один столбец с 8 тысячами строк. Это мой код

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
from sklearn.model_selection import train_test_split

data = pd.read_csv('MyDataset.csv')

X_train, X_test, _, _ = train_test_split(data['ColumnA'], data['ColumnA'], test_size=0.2)
clf = IsolationForest(max_samples='auto',contamination=0.003,behaviour='new') 
clf.fit(X_train.values.reshape(-1, 1))
if_scores = clf.decision_function(X_train.values.reshape(-1, 1))
if_anomalies=clf.predict(X_test.values.reshape(-1, 1))
print('Number of outliers detected:',end='')
print(sum(if_anomalies==-1))
outliers=X_test[if_anomalies==-1]

plt.scatter(X_test.index, X_test.values,c='g')
plt.scatter(outliers.index, outliers.values.reshape(1, -1),c='r')
plt.show()

Объясняя код

  • Считать набор данных
  • Разделить столбец / данные на обучающие и тестирующие части
  • Запустить лес изоляции из scikit-learn
  • Показать количество аномалий
  • Построить аномалии в графике

This это часть, которую я потерял

Даже если я вижу количество аномалий и вижу, где они находятся на графике. Как я могу получить список отображаемых чисел / значений, которые рассматриваются как аномалии.

...