Pingouin – chatgpz.de – KI-Tools & Praxiswissen https://chatgpz.de Unabhängige Tests, Anleitungen und Hintergründe zu KI-Tools. Thu, 07 May 2026 18:43:05 +0000 de-DE hourly 1 https://wordpress.org/?v=6.4.2 234900186 Bau moderner EDA-Pipelines mit Pingouin https://chatgpz.de/data-analytics/bau-moderner-eda-pipelines-mit-pingouin/ https://chatgpz.de/data-analytics/bau-moderner-eda-pipelines-mit-pingouin/#respond Thu, 07 May 2026 18:43:05 +0000 https://chatgpz.de/data-analytics/bau-moderner-eda-pipelines-mit-pingouin/ [ad_1]

Bau moderner EDA-Pipelines mit Pingouin

# Einführung

Jeder, der sich schon lange mit Datenwissenschaft beschäftigt hat, lernt vielleicht früher oder später etwas: die goldene Regel der nachgelagerten Modellierung maschinellen Lernens, bekannt als Müll rein, Müll raus (GIGO).

Beispielsweise ist die Fütterung eines linearen Regressionsmodells mit hochgradig kollinearen Daten oder die Durchführung von ANOVA-Exams für heteroskedastische Varianzen das perfekte Rezept … für ineffektive Modelle, die nicht richtig lernen.

Explorative Datenanalyse (EDA) hat in Bezug auf Visualisierungen wie Streudiagramme und Histogramme viel zu sagen, sie reichen jedoch nicht aus, wenn wir eine strenge Validierung von Daten anhand der mathematischen Annahmen benötigen, die in nachgelagerten Analysen oder Modellen erforderlich sind. Pingouin hilft dabei, indem es die Lücke zwischen zwei bekannten Bibliotheken in den Bereichen Datenwissenschaft und Statistik schließt: SciPy Und Pandas. Darüber hinaus kann es ein großartiger Verbündeter beim Aufbau solider, automatisierter EDA-Pipelines sein. In diesem Artikel erfahren Sie, wie Sie eine ganzheitliche Pipeline für eine strenge, statistische EDA aufbauen und dabei mehrere wichtige Dateneigenschaften validieren.

# Ersteinrichtung

Stellen wir zunächst sicher, dass wir Pingouin in unserer Python-Umgebung installieren (und in Pandas, falls Sie es noch nicht haben):

!pip set up pingouin pandas

Danach ist es an der Zeit, diese Schlüsselbibliotheken zu importieren und unsere Daten zu laden. Als Beispiel für einen offenen Datensatz verwenden wir einen, der Proben von Weineigenschaften und deren Qualität enthält.

import pandas as pd
import pingouin as pg

# Loading the wine dataset from an open dataset GitHub repository
url = "https://uncooked.githubusercontent.com/gakudo-ai/open-datasets/refs/heads/fundamental/wine-quality-white-and-red.csv"
df = pd.read_csv(url)

# Displaying the primary few rows to know our options
df.head()

# Überprüfung der univariaten Normalität

Die erste der spezifischen explorativen Analysen, die wir durchführen werden, betrifft eine Überprüfung der univariaten Normalität. Viele herkömmliche Algorithmen zum Trainieren von Modellen für maschinelles Lernen – und statistische Exams wie ANOVAs und T-Exams – erfordern die Annahme, dass kontinuierliche Variablen einer Normalverteilung, auch bekannt als Gaußsche Verteilung, folgen. Pingouins pg.normality() Die Funktion hilft bei dieser Überprüfung durch einen Shapiro-Wilk-Check im gesamten Datenrahmen:

# Choosing a subset of steady options for normality checks
options = ('fastened acidity', 'risky acidity', 'citric acid', 'pH', 'alcohol')

# Operating the normality check
normality_results = pg.normality(df(options))
print(normality_results)

Ausgabe:

                         W          pval  regular
fastened acidity     0.879789  2.437973e-57   False
risky acidity  0.875867  6.255995e-58   False
citric acid       0.964977  5.262332e-37   False
pH                0.991448  2.204049e-19   False
alcohol           0.953532  2.918847e-41   False

Es scheint, als würde keines der verfügbaren numerischen Merkmale der Normalität genügen. Das ist keineswegs etwas Falsches an den Daten; es ist einfach ein Teil seiner Eigenschaften. Wir erhalten gerade die Nachricht, dass wir in späteren Datenvorverarbeitungsschritten über unsere EDA hinaus möglicherweise die Anwendung von Datentransformationen wie Log-Transformation oder Field-Cox in Betracht ziehen sollten, die die Rohdaten „normaler“ aussehen lassen und somit besser für Modelle geeignet sind, die von Normalität ausgehen.

# Überprüfung der multivariaten Normalität

Ebenso ist die Bewertung der Normalität nicht Merkmal für Merkmal, sondern die Berücksichtigung der Interaktion zwischen Merkmalen ein weiterer interessanter zu untersuchender Aspekt. Sehen wir uns an, wie man die multivariate Normalität überprüft: eine Schlüsselanforderung beispielsweise bei Techniken wie der multivariaten ANOVA (MANOVA).

# Henze-Zirkler multivariate normality check
multivariate_normality_results = pg.multivariate_normality(df(options))
print(multivariate_normality_results)

Ausgabe:

HZResults(hz=np.float64(23.72107048442373), pval=np.float64(0.0), regular=False)

Und raten Sie mal: Vielleicht bekommen Sie so etwas HZResults(hz=np.float64(23.72107048442373), pval=np.float64(0.0), regular=False)was bedeutet, dass auch die multivariate Normalität nicht gilt. Wenn Sie ein Modell für maschinelles Lernen anhand dieses Datensatzes trainieren möchten, bedeutet dies, dass nichtparametrische, baumbasierte Modelle wie Gradient Boosting und Random Forests möglicherweise eine robustere Different sind als parametrische, gewichtsbasierte Modelle wie SVM, lineare Regression usw.

# Überprüfung der Homoskedastizität

Als nächstes kommt ein kniffliges Wort für ein ziemlich einfaches Konzept: Homoskedastizität. Dies bezieht sich auf die gleiche oder konstante Varianz zwischen Fehlern in Vorhersagen und wird als Maß für die Zuverlässigkeit interpretiert. Wir werden diese Eigenschaft (leider ist es zu schwierig, ihren Namen noch einmal zu schreiben!) mit Pingouins Implementierung von Levenes Check wie folgt testen:

# Levene's check for equal variances throughout teams
# 'dv' is the goal, dependent variable, 'group' is the specific variable
homoscedasticity_results = pg.homoscedasticity(knowledge=df, dv='alcohol', group='high quality')
print(homoscedasticity_results)

Ergebnis:

                W          pval  equal_var
levene  66.338684  2.317649e-80      False

Seit wir es bekommen haben False Wieder einmal haben wir ein sogenanntes Heteroskedastizitätsproblem, das in nachgelagerten Analysen berücksichtigt werden sollte. Ein möglicher Weg könnte darin bestehen, beim Coaching von Regressionsmodellen robuste Standardfehler zu verwenden.

# Sphärizität prüfen

Eine weitere zu analysierende statistische Eigenschaft ist die Sphärizität, die angibt, ob die Varianzen der Unterschiede zwischen möglichen paarweisen Kombinationen von Bedingungen gleich sind. Das Testen dieser Eigenschaft ist in der Regel wünschenswert, bevor die Hauptkomponentenanalyse (PCA) zur Dimensionsreduktion durchgeführt wird, da sie uns hilft zu verstehen, ob Korrelationen zwischen Variablen bestehen. PCA wird ziemlich nutzlos, falls es keine gibt:

# Mauchly's sphericity check
sphericity_results = pg.sphericity(df(options))
print(sphericity_results)

Ergebnis:

SpherResults(spher=False, W=np.float64(0.004437706589942777), chi2=np.float64(35184.26583883276), dof=9, pval=np.float64(0.0))

Sieht so aus, als hätten wir uns für einen ziemlich unbezwingbaren, trockenen Datensatz entschieden! Aber keine Angst – dieser Artikel konzentriert sich bewusst auf den EDA-Prozess und hilft Ihnen dabei, viele Datenprobleme wie diese zu identifizieren. Letztendlich ist es weitaus besser, sie zu erkennen und zu wissen, was dagegen zu tun ist, bevor eine nachgelagerte Analyse durch maschinelles Lernen erfolgt, als ein potenziell fehlerhaftes Modell zu erstellen. In diesem Fall gibt es einen Haken: Wir haben einen p-Wert von 0,0, was bedeutet, dass die Nullhypothese einer Identitätskorrelationsmatrix abgelehnt wird, dh zwischen den Variablen bestehen sinnvolle Korrelationen. Wenn wir additionally viele Funktionen hätten und die Dimensionalität reduzieren wollten, könnte die Anwendung von PCA eine gute Idee sein.

# Überprüfung der Multikollinearität

Zuletzt prüfen wir die Multikollinearität: eine Eigenschaft, die angibt, ob es stark korrelierte Prädiktoren gibt. Dies könnte irgendwann zu einer unerwünschten Eigenschaft in interpretierbaren Modellen wie linearen Regressoren werden. Lass es uns überprüfen:

# Calculating a sturdy correlation matrix with p-values
correlation_matrix = pg.rcorr(df(options), technique='pearson')
print(correlation_matrix)

Ausgabematrix:

                 fastened acidity risky acidity citric acid     pH alcohol
fastened acidity                -              ***         ***    ***     ***
risky acidity         0.219                -         ***    ***      **
citric acid              0.324           -0.378           -    ***        
pH                      -0.253            0.261       -0.33      -     ***
alcohol                 -0.095           -0.038       -0.01  0.121       -

Während Pandas corr() kann ebenfalls verwendet werden, Pingouins Gegenstück verwendet Sternchen, um das statistische Signifikanzniveau jeder Korrelation anzuzeigen (* für p < 0,05, ** für p < 0,01 und *** für p < 0,001). Eine Korrelation kann statistisch signifikant, aber dennoch klein sein – Multikollinearität wird zu einem Downside, wenn der Absolutwert der Korrelation hoch ist (typischerweise über 0,8). In unserem Fall ist keine der paarweisen Korrelationen gefährlich groß, da alle fünf bewerteten Merkmale weitgehend überlappungsfreie, eindeutige eigene Informationen für weitere Analysen liefern.

# Zusammenfassung

Anhand einer Reihe von Beispielen, die einzeln angewendet und erklärt wurden, haben wir gesehen, wie wir das Potenzial von Pingouin, einer Open-Supply-Python-Bibliothek, freisetzen können, um robuste, moderne EDA-Pipelines auszuführen, die Ihnen dabei helfen, bessere Entscheidungen bei der Datenvorverarbeitung und nachgelagerten Analysen auf der Grundlage fortgeschrittener statistischer Exams oder Modelle für maschinelles Lernen zu treffen und Ihnen dabei zu helfen, die richtigen Aktionen auszuwählen und die richtigen Modelle zu verwenden.

Iván Palomares Carrascosa ist ein führender Autor, Redner und Berater in den Bereichen KI, maschinelles Lernen, Deep Studying und LLMs. Er schult und leitet andere darin, KI in der realen Welt zu nutzen.

[ad_2]

]]>
https://chatgpz.de/data-analytics/bau-moderner-eda-pipelines-mit-pingouin/feed/ 0 18387
Der „robuste“ Datenwissenschaftler: Mit Messy Information und Pingouin gewinnen https://chatgpz.de/data-analytics/der-robuste-datenwissenschaftler-mit-messy-information-und-pingouin-gewinnen/ https://chatgpz.de/data-analytics/der-robuste-datenwissenschaftler-mit-messy-information-und-pingouin-gewinnen/#respond Sat, 02 May 2026 00:19:47 +0000 http://chatgpz.de/data-analytics/der-robuste-datenwissenschaftler-mit-messy-data-und-pingouin-gewinnen/ [ad_1]

Der „robuste“ Datenwissenschaftler: Mit Messy Data und Pingouin gewinnen
Bild vom Herausgeber

# Einführung

Zunächst einmal eine harte Wahrheit: Lehrbuch Datenwissenschaft wird in der realen Welt meist zur Lüge. Konzepte und Techniken werden anhand fein kuratierter, wunderschön glockenförmiger Datenvariablen gelehrt, aber sobald wir uns in die Wildnis realer Projekte wagen, werden wir mit vielen Ausreißern, übermäßig verzerrten Verteilungen und unbezwingbaren Varianzen konfrontiert.

A vorheriger Artikel beim Aufbau einer explorativen Datenanalyse-Pipeline (EDA) mit Pingouin zeigte, wie man durch Checks Fälle erkennt, in denen die Daten gegen eine Reihe von Annahmen wie Homoskedastizität und Normalität verstoßen. Was aber, wenn die Checks fehlschlagen? Die Lösung ist nicht darin, die Daten wegzuwerfen, sondern sie robuster zu machen.

In diesem Artikel wird die Kunstfertigkeit der Verwendung robuster Statistiken in datenwissenschaftlichen Prozessen aufgezeigt. Hierbei handelt es sich um mathematische Methoden, die speziell darauf ausgelegt sind, zuverlässige und gültige Ergebnisse zu liefern, selbst wenn die Daten nicht den klassischen Annahmen entsprechen oder von Ausreißern und Rauschen durchdrungen sind. Mit dem Ansatz „Wählen Sie Ihr eigenes Abenteuer“ erstellen wir mithilfe von Pythons Pingouin drei Szenarien, um die hässlichsten Aspekte in den Daten zu verwalten, auf die Sie bei Ihrer täglichen Arbeit stoßen könnten.

# Ersteinrichtung

Beginnen wir mit der Set up (falls erforderlich) und dem Import von Pingouin und PandasAnschließend laden wir den verfügbaren Weinqualitätsdatensatz Hier.

!pip set up pingouin pandas

import pandas as pd
import pingouin as pg

# Loading our messy, real-world-like dataset, containing pink and white wine samples
url = "https://uncooked.githubusercontent.com/gakudo-ai/open-datasets/refs/heads/major/wine-quality-white-and-red.csv"
df = pd.read_csv(url)

# Take a small peek at what we're about to take care of
df.head()

Wenn Sie sich den vorherigen Pingouin-Artikel angesehen haben, wissen Sie bereits, dass es sich um einen notorisch chaotischen Datensatz handelt, der mehrere gängige Annahmen nicht erfüllt. Jetzt werden wir uns auf drei verschiedene „Abenteuer“ einlassen, bei denen jedes ein Szenario, ein Kernproblem und einen Vorschlag für eine robuste Lösung zu dessen Lösung beleuchtet.

// Abenteuer 1: Wenn der Normalitätstest fehlschlägt

Angenommen, wir führen Normalitätstests für zwei Gruppen durch: Weißweinproben und Rotweinproben.

white_wine_alcohol = df(df('kind') == 'white')('alcohol')
red_wine_alcohol = df(df('kind') == 'pink')('alcohol')

print("Normality take a look at for White Wine Alcohol content material:")
print(pg.normality(white_wine_alcohol))
print("nNormality take a look at for Pink Wine Alcohol content material:")
print(pg.normality(red_wine_alcohol))

Sie werden feststellen, dass keine der beiden Verteilungen regular ist und extrem niedrige p-Werte aufweist. Obwohl die Nichtnormalität selbst nicht direkt auf Ausreißer oder Schiefe hinweist, deutet eine starke Abweichung von der Normalität häufig darauf hin, dass solche Merkmale in den Daten vorhanden sein könnten. In dieser Scenario wäre der Mittelwertvergleich mittels eines t-Checks gefährlich und würde wahrscheinlich zu unzuverlässigen Ergebnissen führen.

Die robuste Lösung für ein Szenario wie dieses ist die Mann-Whitney-U-Check. Anstatt Durchschnittswerte zu vergleichen, vergleicht dieser Check die Ränge in den Daten und sortiert beispielsweise alle Weine in einer Gruppe vom niedrigsten zum höchsten Alkoholgehalt. Dieser rangbasierte Ansatz ist der Meistertrick, der Ausreißern ihre manchmal gefährliche Größe nimmt. So geht’s:

# Separating our two teams
red_wine = df(df('kind') == 'pink')('alcohol')
white_wine = df(df('kind') == 'white')('alcohol')

# Operating the sturdy Mann-Whitney U take a look at
mwu_results = pg.mwu(x=red_wine, y=white_wine)
print(mwu_results)

Ausgabe:

         U_val different     p_val       RBC      CLES
MWU  3829043.5   two-sided  0.181845 -0.022193  0.488903

Da der p-Wert nicht unter 0,05 liegt, gibt es keinen statistisch signifikanten Unterschied im Alkoholgehalt zwischen den beiden Weintypen – und diese Schlussfolgerung ist garantiert ausreißer- und schiefesicher.

// Abenteuer 2: Wenn der gepaarte T-Check fehlschlägt

Angenommen, Sie möchten nun zwei Messungen desselben Probanden vergleichen – z. B. den Zuckerspiegel eines Patienten vor und nach einem Arzneimittelprototyp oder zwei in derselben Flasche Wein gemessene Eigenschaften. Der Fokus liegt hier darauf, wie die Unterschiede zwischen gepaarten Messungen verteilt werden. Wenn solche Unterschiede nicht normalverteilt sind, führt ein standardmäßiger gepaarter T-Check zu unzuverlässigen Konfidenzintervallen.

Die ideale Lösung in diesem Szenario ist die Wilcoxon-Signed-Rank-Check: der robuste Bruder des gepaarten t-Checks, der durch Beobachtung der Unterschiede zwischen Spalten und Rangfolge ihrer absoluten Werte funktioniert. In Pingouin wird dieser Check „utilizing“ genannt pg.wilcoxon()indem die beiden Spalten übergeben werden, die die gepaarten Maße innerhalb desselben Themas enthalten – z. B. zwei Arten von Weinsäure.

# Run the sturdy Wilcoxon signed-rank take a look at for paired knowledge
wilcoxon_results = pg.wilcoxon(x=df('fastened acidity'), y=df('unstable acidity'))
print(wilcoxon_results)

Ergebnis:

          W_val different  p_val  RBC  CLES
Wilcoxon    0.0   two-sided    0.0  1.0   1.0

Das obige Ergebnis zeigt einen statistisch signifikanten Unterschied oder eine „perfekte Trennung“ zwischen den beiden Messungen. Die beiden Weineigenschaften sind nicht nur unterschiedlich, sie wirken auch im gesamten Datensatz auf völlig unterschiedlichen Größenstufen.

// Abenteuer 3: Wenn die ANOVA fehlschlägt

In diesem dritten und letzten Abenteuer wollen wir prüfen, ob sich der Restzuckergehalt im Wein bei verschiedenen Qualitätsbewertungen erheblich unterscheidet. Beachten Sie, dass letztere zwischen 3 und 9 liegen, ganzzahlige Werte annehmen und daher als diskrete Kategorien behandelt werden können.

Wenn der Levene-Homoskedastizitätstest nach Pingouin dramatisch versagt – zum Beispiel, weil die Zuckervarianz bei mittelmäßigen Weinen groß ist, bei Spitzenweinen jedoch sehr gering – kann eine klassische einfaktorielle ANOVA zu irreführenden Ergebnissen führen, da dieser Check gleiche Varianzen zwischen den Gruppen annimmt.

Die Lösung ist Welchs ANOVAwodurch Gruppen mit hoher Varianz bestraft werden, wodurch Skalen ausgeglichen werden und Vergleiche über mehrere Kategorien hinweg fairer werden. So führen Sie diese robuste Various zur herkömmlichen ANOVA mit Pingouin durch:

# Run Welch's ANOVA to check sugar throughout high quality scores
welch_results = pg.welch_anova(knowledge=df, dv='residual sugar', between='high quality')
print(welch_results)

Ergebnis:

    Supply  ddof1      ddof2          F         p_unc       np2
0  high quality      6  54.507934  10.918282  5.937951e-08  0.008353

Auch wenn eine einfaktorielle ANOVA aufgrund ungleicher Varianzen möglicherweise Schwierigkeiten gehabt hätte, liefert die ANOVA von Welch eine solide Schlussfolgerung. Der sehr kleine p-Wert ist ein klarer Beweis dafür, dass sich die Restzuckerwerte je nach Weinqualitätsbewertung erheblich unterscheiden. Bedenken Sie jedoch, dass Zucker nur ein kleiner Teil des Puzzles ist, das die Weinqualität beeinflusst – ein Punkt, der durch den niedrigen Eta-Quadrat-Wert von 0,008 unterstrichen wird.

# Zusammenfassung

Anhand von drei Beispielszenarien, die jeweils ein Drawback mit chaotischen Daten mit einer robusten statistischen Strategie verbinden, haben wir gelernt, dass ein erfahrener Datenwissenschaftler nicht bedeutet, über perfekte Daten zu verfügen oder diese perfekt abzustimmen – es bedeutet zu wissen, was zu tun ist, wenn die Daten aus unterschiedlichen Gründen schwierig werden. Die Funktionen von Pingouin implementieren eine Vielzahl robuster Checks, die dabei helfen, der Falle fehlgeschlagener Annahmen zu entkommen und mit geringem Mehraufwand mathematisch fundierte Erkenntnisse zu gewinnen.

Iván Palomares Carrascosa ist ein führender Autor, Redner und Berater in den Bereichen KI, maschinelles Lernen, Deep Studying und LLMs. Er schult und leitet andere darin, KI in der realen Welt zu nutzen.

[ad_2]

]]>
https://chatgpz.de/data-analytics/der-robuste-datenwissenschaftler-mit-messy-information-und-pingouin-gewinnen/feed/ 0 18267