Local Outlier Factor
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 36 из 51.
Некоторые необычные точки скрываются в диапазоне данных. Локальный коэффициент выброса, LOF, сравнивает, насколько плотно расположена каждая точка по сравнению с соседними:
Покупатели иногда задерживаются на 6 часов. Но соседи этой машины — пассажиры, которые ездят на работу, стоят плотно, а она находится далеко от их скопления:
from sklearn.neighbors import LocalOutlierFactor
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.02)
flags = lof.fit_predict(X)Те же ответы, что и раньше: -1 — выброс, 1 — норма. n_neighbors задаёт локальность сравнения.
Задание
СреднеТелефонная компания ищет аккаунты, отличающиеся от соседних. Стартовый код масштабирует данные и отмечает аккаунты с помощью Isolation Forest; программа считывает k.
- Отметьте аккаунты с помощью LOF:
n_neighbors=k,contamination=0.03. - Выведите количество аккаунтов, отмеченных каждым детектором, и сколько аккаунтов отмечены обоими.
- Перечислите аккаунты, отмеченные только LOF, в порядке таблицы, как показано ниже.
Для небольшой компании и 10:
Isolation forest: 5 accounts
LOF: 5 accounts
Both: 4 accounts
Only LOF:
A118: 960 minutes, 6.2 GBПопробуйте сами
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
# Одна строка на каждый телефонный аккаунт: минуты разговоров и объём мобильного трафика за месяц
accounts = pd.read_csv("accounts.csv")
X = StandardScaler().fit_transform(accounts[["call_minutes", "data_gb"]])
k = int(input())
# Результат Isolation Forest: -1 для аккаунтов, которые алгоритм считает аномальными
forest_flags = IsolationForest(contamination=0.03, random_state=0).fit_predict(X)
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставки8Обнаружение аномалий
Поиск необычных объектовIsolation ForestLocal Outlier FactorОценки аномальностиПовторение: мониторинг сервераПотренируйтесь самостоятельно: Онлайн-компилятор Python