Seaborn Boxplot ohne Ausreißer

Salman Mehmood 15 Februar 2024
Seaborn Boxplot ohne Ausreißer

Dieser Artikel soll zeigen, was Boxplots und Ausreißer sind, wie man einen modifizierten Boxplot erstellt und wie man eine Zusammenfassung aus fünf Zahlen verwendet, um Ausreißer in Seaborn zu entfernen.

Erstellen Sie einen Boxplot ohne Ausreißer in Seaborn

Der Boxplot ist ein statistisches Diagramm zur Visualisierung eines deskriptiven statistischen Mittelwerts, Medianquartils 1, Quartils 2, Quartils 3 und der Minimum-Maximum-Werte. Ausreißer sind Zahlen außerhalb der Gruppe der restlichen Daten.

Lassen Sie uns das erforderliche Paket in unser Programm importieren.

import seaborn as sb
import matplotlib.pyplot as plot
import numpy as np
import pandas as pd

Jetzt arbeiten wir am tips-Datensatz, der bereits in unserer Seaborn-Bibliothek vorinstalliert ist.

TIPS = sb.load_dataset("tips")
TIPS.head()

Schauen wir uns den Datensatz an; Bei diesem Datensatz handelt es sich um ein Restaurant mit mehreren Spalten.

Tipps-Datensatz

Wir müssen den Boxplot mit der Methode boxplot() zeichnen und eine Spalte aus einem Datensatz übergeben.

import seaborn as sb
import matplotlib.pyplot as plot
import numpy as np
import pandas as pd

TIPS = sb.load_dataset("tips")

sb.boxplot(TIPS["total_bill"])
plot.show()

Ausgang:

Gesamte Rechnung

Jetzt können wir sehen, dass die gepunkteten Punkte so weit von allen anderen Punkten entfernt sind, dass dies wie eine Ausreißersituation ist. Es gibt eine andere Möglichkeit, Ausreißer zu überprüfen, indem Sie die Statistiken dieser Spalte berechnen.

TIPS["total_bill"].describe()

Die Funktion describe() berechnet automatisch Statistiken, und wir können sehen, dass das dritte Quartil 24 ist. Wir können sehen, dass unser Maximalwert und das dritte Quartil einen großen Unterschied aufweisen.

Verwenden Sie die Beschreibungsfunktion

Mal sehen, wie man mit dieser Situation umgeht; Es gibt zwei Lösungen, um Ausreißer zu entfernen. Die erste Lösung besteht darin, diesen Ausreißer direkt aus einem Datensatz zu entfernen, und die zweite besteht darin, diese Ausreißerwerte durch geeignete Werte zu ersetzen.

Sehen wir uns die erste Lösung an. Wir müssen die Bedingung für das erste und dritte Quartil in dieser Lösung festlegen.

TIPS = TIPS[(TIPS.total_bill <= 24) & (TIPS.total_bill >= 13)]

Der vollständige Quellcode ist hier ohne Ausreißer.

import seaborn as sb
import matplotlib.pyplot as plot
import numpy as np
import pandas as pd

TIPS = sb.load_dataset("tips")
TIPS = TIPS[(TIPS.total_bill <= 24) & (TIPS.total_bill >= 13)]

sb.boxplot(TIPS["total_bill"])
plot.show()

Jetzt können wir sehen, dass es keinen Ausreißer gibt, weil wir diesen Ausreißer durch bedingte Operatoren entfernt haben.

kein Ausreißer

Die erste Lösung funktioniert nicht immer. Diesen Ausreißer können wir in passende Werte umwandeln, da wir wichtige Informationen aus dem Datensatz verlieren, wenn wir Ausreißer direkt entfernen.

Wir müssen diesen Ausreißer also in geeignete Werte umwandeln, und wir werden das dritte Quartil durch 24 ersetzen, wenn der Bereich des dritten Quartils über 24 hinausgeht.

TIPS["new_total_bill"] = np.where(TIPS["total_bill"] >= 24, 24, TIPS["total_bill"])

Vollständiger Quellcode:

import seaborn as sb
import matplotlib.pyplot as plot
import numpy as np
import pandas as pd

TIPS = sb.load_dataset("tips")

TIPS["new_total_bill"] = np.where(TIPS["total_bill"] >= 24, 24, TIPS["total_bill"])
sb.boxplot(TIPS["new_total_bill"])
plot.show()

Ausgang:

Neue Gesamtrechnung

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn