
Data Science Utilsは、SCIKIT-LEARN APIおよびMATPLOTLIB APIを拡張して、データサイエンスプロジェクトのタスクと視覚化を簡素化する簡単な方法を提供します。
コードの例と出力をいくつか見てみましょう。
https://datascienceutils.readthedocs.io/en/latest/に、すべてのコードの例を含む完全なドキュメントを見つけることができます。
ドキュメントでは、より多くの方法と追加の例を見つけることができます。
パッケージのAPIは、Scikit-Learn APIおよびMatplotlib APIで動作するように構築されています。このパッケージの機能の一部は次のとおりです。
混乱マトリックス、偽陽性率、偽陰性率、精度、および分類のF1スコアを計算およびプロットします。
from ds_utils . metrics import plot_confusion_matrix
plot_confusion_matrix ( y_test , y_pred , [ 0 , 1 , 2 ])列車とテストセットを受け取り、訓練されたインスタンスの数が増えて与えられたメトリックの変化をプロットします。
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 )
}
)テストの真のラベルと分類器確率の予測を受信し、結果を分割して分類し、最後に積み重ねられたバーチャートをプロットして結果をプロットします。元のコード
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
)故障なし:
故障で:
複数の分類器のしきい値注釈を備えたROC曲線をプロットし、プロットをバックエンドとして使用します。
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 ()複数の分類器のしきい値注釈を使用して、Procision-Recall曲線をプロットし、プロットをバックエンドとして使用します。
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 ()機能を受信し、グラフ上の値を視覚化します。
from ds_utils . preprocess import visualize_feature
visualize_feature ( X_train [ "feature" ])| 機能タイプ | プロット |
|---|---|
| フロート | |
| 整数 | |
| DateTime | |
| カテゴリ /オブジェクト | |
| ブール |
どの機能がしきい値を超えて相関しているかを計算し、ターゲット機能と相関と相関を持つデータフレームを抽出します。
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 |
|---|---|---|---|---|
| Income_category_low | Income_category_medium | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| Term_ 36か月 | Term_ 60か月 | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| intext_payments_high | intext_payments_low | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
Na/null値を除く列のペアワイズ相関を計算し、ヒートマップで視覚化します。元のコード
from ds_utils . preprocess import visualize_correlations
visualize_correlations ( data )相関マトリックスの樹図をプロットします。これは、ツリーを接続することで最も相関する変数を階層的に示すチャートで構成されています。接続が右に近いほど、機能はより相関します。元のコード
from ds_utils . preprocess import plot_correlation_dendrogram
plot_correlation_dendrogram ( data )2つの機能間の共同分布をプロットします。
from ds_utils . preprocess import plot_features_interaction
plot_features_interaction ( "feature_1" , "feature_2" , data )| 数値 | カテゴリー | ブール | DateTime | |
|---|---|---|---|---|
| 数値 | ||||
| カテゴリー | ||||
| ブール | ||||
| DateTime |
このメソッドは、特定のフィールドからタグを抽出し、データフレームに新しい列として追加します。
次のようなデータセットを考えてみましょう。
x_train :
| article_name | article_tags |
|---|---|
| 1 | DS、ML、DL |
| 2 | DS、ML |
x_test :
| article_name | article_tags |
|---|---|
| 3 | DS、ML、PY |
このコードの使用:
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_" )結果は次のとおりです。
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 |
この方法は、サブセットで興味深いまたは異常な用語の発生を返します。これは、ElasticSearchのcealtion_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" ) termsの出力は次の表になります。
| 三番目 | 1つ | そして | これ | は | 初め | 書類 | 2番 | |
|---|---|---|---|---|---|---|---|---|
| 1.0 | 1.0 | 1.0 | 0.67 | 0.67 | 0.67 | 0.5 | 0.25 | 0.0 |
クラスターのカーディナリティは、クラスターあたりの例の数です。この方法は、クラスターあたりのポイント数をバーチャートとしてプロットします。
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 ()クラスターの大きさは、すべての例からクラスターの重心までの距離の合計です。この方法では、クラスターごとのポイントツーセントロイド距離をバーチャートとしてプロットします。
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 ()クラスターのカーディナリティが高いほど、クラスターの大きさが高くなる傾向があり、直感的に理にかなっています。クラスターは、カーディナリティが他のクラスターと比較して大きさと相関しない場合、異常と見なされます。この方法は、散布図としてカーディナリティに対する大きさをプロットすることにより、異常なクラスターを見つけるのに役立ちます。
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クラスタリングでは、事前にクラスターkの数を決定する必要があります。このメソッドはKmeansアルゴリズムを実行し、各反復でクラスター数を増やします。距離の合計または合計は、損失メトリックとして使用されます。
注:現在、この方法は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 ()この方法は、バーチャートとして重要性をプロットし、どの機能がモデルの決定に最も大きな影響を与えるかを視覚化するのに役立ちます。
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 ()この視覚化は、どの機能がモデルの意思決定プロセスで最も影響力があるかを理解するのに役立ち、機能の選択とモデルの解釈に関する貴重な洞察を提供します。
あなたがこれまで見たことに興奮していますか?さらに発見することがあります!各モジュールに深く潜り込んで、DataScienceUtilsの可能性を最大限に引き出します。
メトリック - アルゴリズムのパフォーマンス評価を計算および視覚化するための強力な方法。モデルがどのように機能しているかについての洞察を得る。
プリプロース - トレーニング用のデータを準備するための必須データ前処理手法。より良い結果を得るために、モデルの入力を改善します。
文字列 - データフレームで文字列を操作および処理するための効率的な方法。テキストデータを簡単に処理します。
監視なし - 教師なしモデルのパフォーマンスを計算して視覚化するためのツール。クラスタリングと次元削減の結果をよりよく理解してください。
XAI-モデルの決定を説明し、AIをより解釈可能で信頼できるようにする方法。
各モジュールは、データサイエンスワークフローを合理化するように設計されており、データを前処理し、モデルを訓練し、パフォーマンスを評価し、結果を解釈するために必要なツールを提供します。各モジュールの詳細なドキュメントをチェックして、DataScienceUtilsがプロジェクトを強化する方法を確認してください!
Data Science Utilsに貢献することに興味があることに興奮しています!あなたの貢献は、誰にとってもこのプロジェクトを改善するのに役立ちます。あなたがベテランの開発者であろうと、始めたばかりであろうと、ここにあなたのための場所があります。
貢献する領域を見つけてください:開いたタスクについては、問題のページをチェックしたり、追加したい機能を考えてください。
リポジトリのフォーク:プロジェクトの独自のコピーを作成します。
ブランチを作成:新しいgitブランチで変更を加えます。
変更を加えてください:改善または修正を追加します。感謝します:
変更をテストする:コードが期待どおりに機能し、新しい問題が導入されないことを確認してください。
プルリクエストを送信:変更の明確なタイトルと説明を記載したPRを開きます。
Python Software Foundation行動規範とMatplotlib使用ガイドに従います。貢献においてこれらのガイドラインを遵守してください。
オープンソースが初めての場合、または助けが必要な場合は、問題のセクションで質問するか、メンテナーに連絡することをためらわないでください。私たちは助けにここにいます!
覚えておいてください、貢献は小さすぎることはありません。ドキュメントでタイプミスを修正するか、主要な機能を追加するかにかかわらず、すべての貢献は評価され、評価されます。
データサイエンスの活用を皆さんのために改善するのを手伝ってくれてありがとう!
パッケージをインストールする方法は次のとおりです。
データサイエンスのユーティルとその依存関係をインストールする最も簡単な方法は、Pythonの優先パッケージインストーラーであるPIPを使用したPYPIからです。
pip install data-science-utilsデータサイエンスの利用を最新バージョンにアップグレードするには、以下を使用してください。
pip install -U data-science-utilsソースからインストールしたい場合は、リポジトリをクローンしてインストールできます。
git clone https://github.com/idanmoradarthas/DataScienceUtils.git
cd DataScienceUtils
pip install .または、PIPを使用してGitHubから直接インストールできます。
pip install git+https://github.com/idanmoradarthas/DataScienceUtils.gitAnacondaを使用している場合は、Condaを使用してインストールできます。
conda install idanmorad::data-science-utilsデータサイエンスUTILには、Numpy、Pandas、Matplotlib、Plotly、Scikit-Learnなど、いくつかの依存関係があります。上記の方法を使用してパッケージをインストールすると、これらは自動的にインストールされます。
Data Science Utilsは、追加の方法と改善を備えた新しいリリースを日常的に公開するアクティブなプロジェクトです。最新の機能とバグ修正にアクセスするために、アップデートを定期的にチェックすることをお勧めします。
インストール中に問題が発生した場合は、GitHubの問題ページを確認するか、サポートのために新しい問題を開いてください。