Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Wykrywanie wartości odstających jest ważnym zadaniem w dziedzinie uczenia maszynowego. Służy do identyfikowania nietypowych obserwacji lub punktów danych, które odbiegają od ogólnego trendu zbioru danych. Jednym ze skutecznych algorytmów wykrywania wartości odstających jest algorytm lasu izolacyjnego .
W dzisiejszym blogu omówimy podstawy algorytmu Isolation Forest i zademonstrujemy, jak go używać do wykrywania wartości odstających w zbiorze danych za pomocą języka Python . Możesz obejrzeć pełny film tego samouczka na dole tego bloga .
Spis treści
Algorytm lasu izolacyjnego a metoda wykresu pudełkowego
Poniżej przedstawiono dwie wizualizacje wykrywania wartości odstających. Zwróć uwagę na znaczące różnice w reprezentacji wizualnej podczas korzystania z w porównaniu z modelem Isolation Forest ML do wykrywania wartości odstających.
W modelu Isolation Forest ML odsetek wartości odstających wykrytych przez algorytm wykrywania anomalii IS wynosi 32,56%. Korzystając z tego samego algorytmu, pozostałe 67,44% danych mieści się w normalnym zakresie, który jest dość wrażliwy. Naszym celem jest dopracowanie tej czułości za pomocą Pythona .
Tradycyjna metoda wykrywania wartości odstających
Tradycyjnym sposobem znajdowania wartości odstających jest użycie metody wykresu pudełkowego . W tej metodzie używamy IQR, aby znaleźć to, co wykracza poza oczekiwany zakres danych.
W tym przykładzie ten pojedynczy punkt nad wąsem jest naszą wartością odstającą.
Jeśli przełożymy ten wykres wizualny na wykres kołowy, otrzymamy tę jedną szczególną wartość odstającą, która odpowiada 2,33% wszystkich danych.
Na tym blogu nauczymy się, jak korzystać z metody Isolation Forest ML, dostosowywać ją do metody tradycyjnej oraz zwiększać lub zmniejszać jej czułość.
Zbiór danych dla algorytmu lasu izolacji
Otwórz nasz zestaw danych w usłudze LuckyTemplates. Następnie kliknij Przekształć dane.
Zostanie wyświetlony nasz zestaw danych dla tego samouczka. Zawiera datę , liczbę użytkowników , indeks i wartość odstającą lasu izolacji z wyjściem 1 dla normalnego zakresu i -1 dla wartości odstających .
Mamy też kolumnę Tradycyjna wartość odstająca i kolumnę warunkową zatytułowaną Wykrywanie anomalii IS odzwierciedlającą wartość odstającą lasu izolacyjnego.
Nasze drugie zapytanie pokazuje naszą ramkę danych, z której nauczymy się, jak złożyć wszystko razem.
Kody Pythona
W okienku Właściwości możemy zobaczyć nasze dwa uruchomione skrypty Pythona . Tworzymy wyjście Isolation Forest za pomocą jednego z tych skryptów Pythona i generujemy tradycyjną wartość odstającą za pomocą drugiego.
Kod Pythona algorytmu lasu izolacyjnego
Kliknij opcję Uruchom skrypt Pythona , aby wyświetlić kod.
W tym kodzie Pythona importujemy pandy jako pd i używamy czegoś, co nazywa się Isolation Forest.
Las izolacyjny to model oparty na drzewie, który podejmuje decyzje na podstawie struktury drzewa, a następnie decyduje, czy jest to wartość odstająca, czy nie. Nazywamy to modelem zespołowym , ponieważ wykorzystuje on dwie różne metody znajdowania określonej wartości odstającej.
Zamieniamy również zmienną zestawu danych , która domyślnie przechowuje nasz zestaw danych, na df .
Biorąc pod uwagę nasz zestaw danych, nie będziemy potrzebować dwóch linii kodów wyróżnionych poniżej, więc możemy po prostu usunąć te linie.
To, co robimy, to tworzenie instancji modelu.
Zapisz model jako IsolationForest i pozwól modelowi uczyć się danych z użytkownikami. Następnie utwórz nową kolumnę o nazwie Wykrywanie anomalii , która będzie przeglądać wszystkie dane, których się uczy, i przewidywać, które z nich powinny być odstające, a które nie.
W przypadku tej funkcji wartość domyślna zanieczyszczenia jest ustawiona na 0,5 . Dlatego w tej chwili jest bardzo czuły i będzie szukał wielu wartości odstających. Dlatego na naszym wcześniejszym wykresie kołowym mamy bardzo wysoki zakres wartości odstających na poziomie 32,56%.
Aby uczynić go mniej czułym, możemy dodać zanieczyszczenie = .1 w funkcji IsolationForest .
Na koniec zresetuj indeks i kliknij OK.
Wynik pokaże tabelę podsumowującą. Przejdź do okienka Zastosowane kroki i kliknij df.
W danych wyjściowych możemy znaleźć wartości odstające w kolumnie Wykrywanie anomalii .
Chcemy również zobaczyć, jak radzi sobie w porównaniu z tradycyjnymi wartościami odstającymi.
Tradycyjny kod Pythona z wartościami odstającymi
Uruchomimy inny skrypt Pythona, którym w tym przykładzie jest skrypt Run Python1.
Ten kod dodaje funkcję odstającą przy użyciu pierwszego i trzeciego kwartyla. Gdy odejmiemy q1 od q3 , otrzymamy rozstęp międzykwartylowy (IQR) .
Następne dwa wiersze określają warunki dla wartości odstających. Pierwsza linia mówi, że wszystko poniżej 1,5 * iqr jest uważane za ujemne lub niższe wartości odstające. W ten sposób również w tradycyjny sposób znajdujemy wartości odstające.
Wiemy również, że mamy jedną wartość odstającą jako najwyższy punkt w naszych danych. Aby to wyjaśnić, w drugim wierszu stwierdza się, że punkty danych, które są wyższe niż q3 + 1,5 * iqr, są również uważane za wartości odstające.
Zwróć ten zestaw danych i użyj funkcji outliers(df, 'Users') . Następnie kliknij OK.
Pojawi się tabela podsumowująca podobna do tej, którą widzieliśmy wcześniej.
Jeśli przejdziemy do okienka Zastosowane kroki i klikniemy Zmieniony typ1 , otrzymamy obok siebie kolumny Tradycyjne wartości odstające i Wykrywanie anomalii , przy czym ta ostatnia używa 1 i -1 do oznaczania wartości odstających, a nie.
Jednak kiedy używamy dat w Pythonie, mogą wyglądać na pomieszane.
To, co możemy zrobić, to utworzyć dodatkową kolumnę za pomocą indeksu z Dodaj kolumnę .
Następnie dodaj Index do poprzedniej kolumny za pomocą Merge , abyśmy mogli zachować wszystkie informacje w tej oryginalnej kolumnie/zestawie danych.
Kiedy już wszystko mamy razem, możemy uruchomić nasz kod i zaktualizować nasze wizualizacje. Pamiętaj, że zmieniliśmy zanieczyszczenie wartości odstającej z 0,5 na 0,1, więc powinniśmy zobaczyć, jak ta część wykresu nieco się skurczyła.
Wróć do wizualizacji i kliknij Zastosuj zmiany.
Zwróć uwagę, jak wykrywanie anomalii wzrosło z 32,56% do 11,63% naszych danych.
Jak widzimy w naszych wynikach, jest to dobry sposób na optymalizację wykrywania wartości odstających.
Pamiętaj również, że kiedy ludzie używają tradycyjnej metody, mogą używać wartości niższych niż 1,5, ale mimo to 1,5 x IQR jest tradycyjną metodą.
Wykrywanie i prezentowanie wyników odstających w usłudze LuckyTemplates
Tworzenie dynamicznych punktów wyzwalających wartości odstające w usłudze
LuckyTemplates Funkcja wykrywania anomalii w usłudze LuckyTemplates: jak to działa
Wniosek
Korzystając z algorytmu Isolation Forest, możemy łatwo identyfikować i wykluczać wszelkie nietypowe obserwacje z naszego zbioru danych, poprawiając w ten sposób dokładność naszej analizy. Ten samouczek zawiera przewodnik krok po kroku dotyczący korzystania z algorytmu Isolation Forest do wykrywania wartości odstających przy użyciu języka Python, który powinien pomóc w rozpoczęciu wdrażania go we własnych projektach.
To, co zrobiliśmy, było bardzo łatwym sposobem wykorzystania naszego kodu Pythona do znalezienia anomalii. Możesz dalej optymalizować ten algorytm, modyfikując zanieczyszczenie i wiele innych zmiennych, których możesz się nauczyć ze strony kodowej Pythona .
Wszystkiego najlepszego,
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.