Menu
CoddyTech

Isolation Forest

Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 35 z 51.

Nietypowe punkty łatwo odizolować. Dziel dane losowo, raz za razem, aż jeden punkt zostanie sam:

Ten sam wykres punktowy pokazany dwukrotnie, podzielony szarymi losowymi cięciami. Po lewej: odległy punkt w górnym rogu zostaje sam po 2 cięciach. Po prawej: punkt w środku skupiska wymaga 8 cięć

Odległy punkt wymagał 2 cięć, a zatłoczony — 8. Las izolacyjny uśrednia liczbę cięć dla 100 losowych drzew:

from sklearn.ensemble import IsolationForest
forest = IsolationForest(contamination=0.02, random_state=0)
flags = forest.fit_predict(X)

fit_predict zwraca -1 dla nietypowych wierszy, a 1 dla pozostałych. contamination to udział wierszy, które uznajesz za nietypowe.

challenge icon

Wyzwanie

Średni

Port odnotował 160 zmian pracy dźwigów: liczbę ruchów na godzinę i zużycie energii na ruch. Które zmiany były nietypowe?

  1. Oznacz nietypowe zmiany za pomocą lasu izolacyjnego, contamination=0.03, random_state=0. Wypisz liczbę, jak poniżej.
  2. Przedstaw normalne zmiany jako kropki z etykietą normal.
  3. Zakreśl oznaczone zmiany: s=150, facecolors="none", edgecolors="red", z etykietą flagged. Dodaj legendę i wyświetl wykres.

Dla innego portu, z 200 zmianami:

Flagged: 6 of 200 shifts

Zmiany pracy dźwigów jako kropki na opadającej chmurze: szybsze dźwigi zużywają mniej energii na ruch, a sześć odosobnionych zmian jest zakreślonych wokół niej na czerwono; widoczna jest legenda

Coddy następnie opisze twój wykres.

Spróbuj swoich sił

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

# Jeden wiersz na każdą zmianę pracy dźwigu w porcie: szybkość i zużycie energii
shifts = pd.read_csv("cranes.csv")
X = shifts[["moves_per_hour", "kwh_per_move"]]

# Nie zmieniaj poniższych linii
fig, ax = plt.subplots()
ax.set_title("Crane Shifts")
ax.set_xlabel("Moves per hour")
ax.set_ylabel("Energy per move (kWh)")

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nienadzorowane

Poćwicz samodzielnie: Kompilator Python online