
Data Science Utils erweitert die API von Scikit-Learn und die Matplotlib-API, um einfache Methoden bereitzustellen, die Aufgaben und Visualisierungen für Datenwissenschaftsprojekte vereinfachen.
Lassen Sie uns einige Codebeispiele und -ausgänge untersuchen.
Sie finden die vollständige Dokumentation mit allen Code -Beispielen unter: https://datascienceutils.readthedocs.io/en/latest/
In der Dokumentation finden Sie weitere Methoden und zusätzliche Beispiele.
Die API des Pakets ist so erstellt, dass sie mit der Scikit-Learn-API und der Matplotlib-API funktioniert. Hier sind einige der Fähigkeiten dieses Pakets:
Berechnet und plant eine Verwirrungsmatrix, eine falsch positive Rate, falsch negative Rate, Genauigkeit und F1 -Score einer Klassifizierung.
from ds_utils . metrics import plot_confusion_matrix
plot_confusion_matrix ( y_test , y_pred , [ 0 , 1 , 2 ])Empfängt Zug- und Testsätze und plant die angegebene metrische Änderung mit zunehmender Anzahl geschulter Instanzen.
from ds_utils . metrics import plot_metric_growth_per_labeled_instances
from sklearn . tree import DecisionTreeClassifier
from sklearn . ensemble import RandomForestClassifier
plot_metric_growth_per_labeled_instances (
x_train , y_train , x_test , y_test ,
{
"DecisionTreeClassifier" : DecisionTreeClassifier ( random_state = 0 ),
"RandomForestClassifier" : RandomForestClassifier ( random_state = 0 , n_estimators = 5 )
}
)Empfängt test echte Beschriftungen und Klassifiziererwahrscheinlichkeitsvorhersagen, teilt und klassifiziert die Ergebnisse und plant schließlich ein gestapeltes Balkendiagramm mit den Ergebnissen. Ursprünglicher Code
from ds_utils . metrics import visualize_accuracy_grouped_by_probability
visualize_accuracy_grouped_by_probability (
test [ "target" ],
1 ,
classifier . predict_proba ( test [ selected_features ]),
display_breakdown = False
)Ohne Aufschlüsselung:
Mit Zusammenbruch:
Plot -ROC -Kurven mit Schwellenanmerkungen für mehrere Klassifikatoren, die Plotly als Backend verwenden.
from ds_utils . metrics import plot_roc_curve_with_thresholds_annotations
classifiers_names_and_scores_dict = {
"Decision Tree" : tree_clf . predict_proba ( X_test )[:, 1 ],
"Random Forest" : rf_clf . predict_proba ( X_test )[:, 1 ],
"XGBoost" : xgb_clf . predict_proba ( X_test )[:, 1 ]
}
fig = plot_roc_curve_with_thresholds_annotations (
y_true ,
classifiers_names_and_scores_dict ,
positive_label = 1
)
fig . show ()Plot Precision-Recall-Kurven mit Schwellenwertanmerkungen für mehrere Klassifikatoren, die Plotly als Backend verwenden.
from ds_utils . metrics import plot_precision_recall_curve_with_thresholds_annotations
classifiers_names_and_scores_dict = {
"Decision Tree" : tree_clf . predict_proba ( X_test )[:, 1 ],
"Random Forest" : rf_clf . predict_proba ( X_test )[:, 1 ],
"XGBoost" : xgb_clf . predict_proba ( X_test )[:, 1 ]
}
fig = plot_precision_recall_curve_with_thresholds_annotations (
y_true ,
classifiers_names_and_scores_dict ,
positive_label = 1
)
fig . show ()Empfängt eine Funktion und visualisiert seine Werte in einem Diagramm:
from ds_utils . preprocess import visualize_feature
visualize_feature ( X_train [ "feature" ])| Feature -Typ | Handlung |
|---|---|
| Schweben | |
| Ganze Zahl | |
| Datetime | |
| Kategorie / Objekt | |
| Boolean |
Berechnen Sie, welche Merkmale über einem Schwellenwert korreliert sind, und extrahieren Sie einen Datenrahmen mit den Korrelationen und Korrelation mit der Zielfunktion.
from ds_utils . preprocess import get_correlated_features
correlations = get_correlated_features ( train , features , target )| Level_0 | Level_1 | Level_0_Level_1_corr | Level_0_target_corr | Level_1_target_corr |
|---|---|---|---|---|
| relINing_category_low | relINing_category_medium | 1.0 | 0,1182165609358650 | 0,11821656093586504 |
| Term_ 36 Monate | Term_ 60 Monate | 1.0 | 0,1182165609358650 | 0,11821656093586504 |
| INTINE_PAYMENTS_HIGH | INTEILE_PAYMENTS_LOW | 1.0 | 0,1182165609358650 | 0,11821656093586504 |
Berechnen Sie die paarweise Korrelation von Säulen ohne Na/Null -Werte und visualisieren Sie sie mit einer Wärmekarte. Ursprünglicher Code
from ds_utils . preprocess import visualize_correlations
visualize_correlations ( data )Zeichnen Sie ein Dendrogramm einer Korrelationsmatrix. Dies besteht aus einem Diagramm, das hierarchisch die Variablen zeigt, die durch Verbinden von Bäumen am meisten korreliert werden. Je näher an der rechten Seite die Verbindung ist, desto korrelierter sind die Merkmale. Ursprünglicher Code
from ds_utils . preprocess import plot_correlation_dendrogram
plot_correlation_dendrogram ( data )Plant die Gelenkverteilung zwischen zwei Merkmalen:
from ds_utils . preprocess import plot_features_interaction
plot_features_interaction ( "feature_1" , "feature_2" , data )| Numerisch | Kategorisch | Boolean | Datetime | |
|---|---|---|---|---|
| Numerisch | ||||
| Kategorisch | ||||
| Boolean | ||||
| Datetime |
Diese Methode extrahiert Tags aus einem bestimmten Feld und fügt sie als neue Spalten an den DataFrame an.
Betrachten Sie einen Datensatz, der so aussieht:
x_train :
| article_name | article_tags |
|---|---|
| 1 | DS, ML, DL |
| 2 | DS, ML |
x_test :
| article_name | article_tags |
|---|---|
| 3 | DS, ML, PY |
Verwenden Sie diesen Code:
import pandas as pd
from ds_utils . strings import append_tags_to_frame
x_train = pd . DataFrame ([{ "article_name" : "1" , "article_tags" : "ds,ml,dl" },
{ "article_name" : "2" , "article_tags" : "ds,ml" }])
x_test = pd . DataFrame ([{ "article_name" : "3" , "article_tags" : "ds,ml,py" }])
x_train_with_tags , x_test_with_tags = append_tags_to_frame ( x_train , x_test , "article_tags" , "tag_" )Das Ergebnis wird sein:
x_train_with_tags :
| article_name | tag_ds | tag_ml | tag_dl |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 1 | 1 | 0 |
x_test_with_tags :
| article_name | tag_ds | tag_ml | tag_dl |
|---|---|---|---|
| 3 | 1 | 1 | 0 |
Diese Methode gibt interessante oder ungewöhnliche Vorkommen von Begriffen in einer Teilmenge zurück. Es basiert auf der Aggregation von Elasticsearch Significal_Text.
import pandas as pd
from ds_utils . strings import extract_significant_terms_from_subset
corpus = [ 'This is the first document.' , 'This document is the second document.' ,
'And this is the third one.' , 'Is this the first document?' ]
data_frame = pd . DataFrame ( corpus , columns = [ "content" ])
# Let's differentiate between the last two documents from the full corpus
subset_data_frame = data_frame [ data_frame . index > 1 ]
terms = extract_significant_terms_from_subset ( data_frame , subset_data_frame ,
"content" ) Die Ausgabe für terms ist die folgende Tabelle:
| dritte | eins | Und | Das | Die | Ist | Erste | dokumentieren | zweite |
|---|---|---|---|---|---|---|---|---|
| 1.0 | 1.0 | 1.0 | 0,67 | 0,67 | 0,67 | 0,5 | 0,25 | 0,0 |
Cluster -Kardinalität ist die Anzahl der Beispiele pro Cluster. Diese Methode ist die Anzahl der Punkte pro Cluster als Balkendiagramm.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from ds_utils . unsupervised import plot_cluster_cardinality
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_cluster_cardinality ( estimator . labels_ )
plt . show ()Die Clustergröße ist die Summe der Entfernungen von allen Beispielen zum Schwerpunkt des Clusters. Diese Methode stellt den Gesamtpunkt zu Centroid pro Cluster als Balkendiagramm dar.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_cluster_magnitude
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_cluster_magnitude ( data , estimator . labels_ , estimator . cluster_centers_ , euclidean )
plt . show ()Eine höhere Cluster -Kardinalität führt tendenziell zu einer höheren Clustergröße, die intuitiv sinnvoll ist. Cluster gelten als anomal, wenn die Kardinalität nicht mit der Größe im Verhältnis zu den anderen Clustern korreliert. Diese Methode hilft, anomale Cluster zu finden, indem sie die Größe gegen Kardinalität als Streudiagramm aufweisen.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_magnitude_vs_cardinality
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_magnitude_vs_cardinality ( data , estimator . labels_ , estimator . cluster_centers_ , euclidean )
plt . show () K-Means-Clustering erfordert, dass Sie die Anzahl der Cluster k zuvor entscheiden. Diese Methode führt den Kmeans -Algorithmus aus und erhöht die Clusterzahl bei jeder Iteration. Die Gesamtgröße oder Summe der Abstände wird als Verlustmetrik verwendet.
Hinweis: Derzeit funktioniert diese Methode nur mit sklearn.cluster.KMeans .
import pandas as pd
from matplotlib import pyplot as plt
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_loss_vs_cluster_number
data = pd . read_csv ( path / to / dataset )
plot_loss_vs_cluster_number ( data , 3 , 20 , euclidean )
plt . show ()Diese Methode ist eine Bedeutung als Balkendiagramm, um zu visualisieren, welche Funktionen die wichtigsten Auswirkungen auf die Entscheidungen des Modells haben.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . tree import DecisionTreeClassifier
from ds_utils . xai import plot_features_importance
# Load the dataset
data = pd . read_csv ( path / to / dataset )
target = data [ "target" ]
features = data . columns . tolist ()
features . remove ( "target" )
# Train a decision tree classifier
clf = DecisionTreeClassifier ( random_state = 42 )
clf . fit ( data [ features ], target )
# Plot feature importance
plot_features_importance ( features , clf . feature_importances_ )
plt . show ()Diese Visualisierung hilft beim Verständnis, welche Merkmale am Entscheidungsprozess des Modells am einflussreichsten sind, und bietet wertvolle Einblicke für die Auswahl der Merkmale und die Modellinterpretation.
Aufgeregt über das, was Sie bisher gesehen haben? Es gibt noch mehr zu entdecken! Tauchen Sie tiefer in jedes Modul ein, um das volle Potenzial von DataScienceutils freizuschalten:
Metriken - leistungsstarke Methoden zur Berechnung und Visualisierung der Algorithmusleistung. Gewinnen Sie Einblicke in die Leistung Ihrer Modelle.
Präprozess - Wesentliche Datenvorverarbeitungstechniken zur Erstellung Ihrer Daten für das Training. Verbessern Sie die Eingabe Ihres Modells für bessere Ergebnisse.
Saiten - Effiziente Methoden zur Manipulation und Verarbeitung von Zeichenfolgen in Datenrahmen. Behandeln Sie die Textdaten mühelos.
Unbeaufsichtigt - Tools zur Berechnung und Visualisierung der Leistung unbeaufsichtigter Modelle. Verstehen Sie Ihre Clustering- und Dimensionsreduzierungsergebnisse besser.
XAI - Methoden zur Erklärung von Modellentscheidungen, wodurch Ihre KI interpretierbarer und vertrauenswürdiger wird.
Jedes Modul ist so konzipiert, dass Sie Ihren Datenwissenschafts -Workflow optimieren und Ihnen die Tools zur Verfügung stellen, die Sie benötigen, um Daten vorzubereiten, Modelle zu trainieren, die Leistung zu bewerten und Ergebnisse zu interpretieren. Schauen Sie sich die detaillierte Dokumentation für jedes Modul an, um zu sehen, wie DataScienceUtils Ihre Projekte verbessern können!
Wir sind begeistert, dass Sie daran interessiert sind, zu Data Science -Utils beizutragen! Ihre Beiträge helfen, dieses Projekt für alle zu verbessern. Egal, ob Sie ein erfahrener Entwickler sind oder gerade erst anfangen, hier gibt es einen Platz für Sie.
Finden Sie einen Bereich, zu dem Sie einen Beitrag leisten können : Weitere Informationen finden Sie auf unserer Ausgabenseite, oder denken Sie an eine Funktion, die Sie hinzufügen möchten.
Fork das Repository : Machen Sie Ihre eigene Kopie des Projekts zum Arbeiten.
Erstellen Sie einen Zweig : Nehmen Sie Ihre Änderungen in einem neuen Git -Zweig vor.
Nehmen Sie Ihre Änderungen vor : Fügen Sie Ihre Verbesserungen oder Korrekturen hinzu. Wir schätzen:
Testen Sie Ihre Änderungen : Stellen Sie sicher, dass Ihr Code wie erwartet funktioniert und keine neuen Probleme einführt.
Senden Sie eine Pull -Anfrage : Öffnen Sie einen PR mit einem klaren Titel und einer Beschreibung Ihrer Änderungen.
Wir folgen dem Verhaltenscode der Python Software Foundation und dem Matplotlib -Nutzungshandbuch. Bitte halten Sie diese Richtlinien in Ihren Beiträgen ein.
Wenn Sie neu in Open Source sind oder Hilfe benötigen, zögern Sie nicht, Fragen im Abschnitt "Probleme" zu stellen oder sich an die Betreuer zu wenden. Wir sind hier, um zu helfen!
Denken Sie daran, kein Beitrag ist zu klein. Unabhängig davon, ob ein Tippfehler in Dokumentation festgelegt ist oder eine Hauptfunktion hinzufügt, alle Beiträge werden geschätzt und geschätzt.
Vielen Dank, dass Sie bei der Unterstützung von Data Science für alle geholfen haben!
Hier sind verschiedene Möglichkeiten, das Paket zu installieren:
Die einfachste Möglichkeit, Data Science -Utils und ihre Abhängigkeiten zu installieren, sind von PYPI mit PIP, dem Python bevorzugten Paket -Installateur:
pip install data-science-utilsVerwenden Sie: Verwenden Sie: Um die Datenwissenschafts -Utils auf die neueste Version zu verbessern:
pip install -U data-science-utilsWenn Sie es vorziehen, aus der Quelle zu installieren, können Sie das Repository klonen und installieren:
git clone https://github.com/idanmoradarthas/DataScienceUtils.git
cd DataScienceUtils
pip install .Alternativ können Sie mit PIP direkt aus GitHub installieren:
pip install git+https://github.com/idanmoradarthas/DataScienceUtils.gitWenn Sie Anaconda verwenden, können Sie mit Conda installieren:
conda install idanmorad::data-science-utilsData Science Utils hat mehrere Abhängigkeiten, darunter Numpy, Pandas, Matplotlib, Plotly und Scikit-Learn. Diese werden automatisch installiert, wenn Sie das Paket mit den oben genannten Methoden installieren.
Data Science Utils ist ein aktives Projekt, das routinemäßig neue Releases mit zusätzlichen Methoden und Verbesserungen veröffentlicht. Wir empfehlen regelmäßig nach Updates, um auf die neuesten Funktionen und Fehlerbehebungen zuzugreifen.
Wenn Sie während der Installation auf Probleme stoßen, überprüfen Sie bitte unsere Seite mit GitHub -Problemen oder öffnen Sie ein neues Problem, um Unterstützung zu erhalten.