
يمتد استخدامات علوم البيانات واجهة برمجة تطبيقات Scikit-Learn و Matplotlib لتوفير طرق بسيطة تبسيط المهام والتصورات لمشاريع علوم البيانات.
دعنا نستكشف بعض أمثلة الرمز والمخرجات.
يمكنك العثور على الوثائق الكاملة مع جميع أمثلة التعليمات البرمجية على: https://datascienceutils.readthedocs.io/en/latest/
في الوثائق ، يمكنك العثور على المزيد من الطرق والأمثلة الإضافية.
تم تصميم واجهة برمجة تطبيقات الحزمة للعمل مع API Scikit-Learn و 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 ()مؤامرة منحنيات روعة الدقة مع التعليقات التوضيحية العتبة لمصنفات متعددة ، باستخدام مؤامرة كواجهة خلفية.
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 |
|---|---|---|---|---|
| deter_category_low | deter_category_medium | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| Term_ 36 شهرًا | Term_ 60 شهرًا | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| President_payments_high | President_payments_low | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
حساب الارتباط الزوجي للأعمدة ، باستثناء القيم NA/NULL ، وتصورها بخريطة حرارة. الكود الأصلي
from ds_utils . preprocess import visualize_correlations
visualize_correlations ( data )ارسم dendrogram من مصفوفة الارتباط. يتكون هذا من مخطط يوضح بشكل هرمي المتغيرات المرتبطة أكثر من خلال توصيل الأشجار. كلما اقتربت من اليمين ، كلما زاد ارتباط الميزات. الكود الأصلي
from ds_utils . preprocess import plot_correlation_dendrogram
plot_correlation_dendrogram ( data )يرسم توزيع المفصل بين ميزتين:
from ds_utils . preprocess import plot_features_interaction
plot_features_interaction ( "feature_1" , "feature_2" , data )| رقمية | فئران | منطقية | DateTime | |
|---|---|---|---|---|
| رقمية | ||||
| فئران | ||||
| منطقية | ||||
| DateTime |
تستخرج هذه الطريقة العلامات من حقل معين ويؤدي إلى إرفاقها كأعمدة جديدة إلى DataFrame.
النظر في مجموعة البيانات التي تبدو هكذا:
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 HAMP_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.0 | 1.0 | 1.0 | 0.67 | 0.67 | 0.67 | 0.5 | 0.25 | 0.0 |
Cluster Cardinality هو عدد الأمثلة لكل مجموعة. هذه الطريقة ترسم عدد النقاط لكل مجموعة كخطط بار.
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 ()تميل العهد العالي العنقودي إلى ارتفاع حجم الكتلة ، وهو أمر منطقي بشكل حدسي. تعتبر المجموعات شاذة عندما لا ترتبط Cardinality مع الحجم بالنسبة للمجموعات الأخرى. تساعد هذه الطريقة في العثور على مجموعات شاذة من خلال التخطيط للحجم ضد Cardinality باعتبارها مؤامرة مبعثرة.
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 - طرق للمساعدة في شرح القرارات النموذجية ، مما يجعل الذكاء الاصطناعي أكثر قابلية للتفسير وجدير بالثقة.
تم تصميم كل وحدة لتبسيط سير عمل علوم البيانات الخاصة بك ، مما يوفر لك الأدوات التي تحتاجها للمعالجة المسبقة ، ونماذج التدريب ، وتقييم الأداء ، وتفسير النتائج. تحقق من الوثائق التفصيلية لكل وحدة لترى كيف يمكن لـ DatascienceUtils تعزيز مشاريعك!
يسرنا أن تكون مهتمًا بالمساهمة في شركات علوم البيانات! تساعد مساهماتك في جعل هذا المشروع أفضل للجميع. سواء كنت مطورًا محنكًا أو بدأت للتو ، فهناك مكان لك هنا.
ابحث عن منطقة للمساهمة في : تحقق من صفحة المشكلات الخاصة بنا للحصول على المهام المفتوحة ، أو فكر في ميزة ترغب في إضافتها.
شوكة المستودع : اجعل نسختك الخاصة من المشروع للعمل عليها.
قم بإنشاء فرع : قم بإجراء تغييراتك في فرع GIT جديد.
قم بإجراء تغييراتك : أضف التحسينات أو الإصلاحات. نقدر:
اختبر التغييرات الخاصة بك : تأكد من أن الرمز الخاص بك يعمل كما هو متوقع ولا يقدم مشكلات جديدة.
إرسال طلب سحب : افتح العلاقات العامة بعنوان واضح ووصف لتغييراتك.
نحن نتبع رمز سلوك مؤسسة برمجيات Python ودليل استخدام Matplotlib. يرجى الالتزام بهذه الإرشادات في مساهماتك.
إذا كنت جديدًا في فتح المصدر أو تحتاج إلى أي مساعدة ، فلا تتردد في طرح الأسئلة في قسم المشكلات أو التواصل مع المشرفين. نحن هنا للمساعدة!
تذكر ، لا توجد مساهمة صغيرة جدًا. سواء أكان إصلاح خطأ مطبعي في الوثائق أو إضافة ميزة رئيسية ، يتم تقدير جميع المساهمات وتقديرها.
شكرًا لك على المساعدة في جعل شركات علوم البيانات أفضل للجميع!
فيما يلي عدة طرق لتثبيت الحزمة:
أبسط طريقة لتثبيت شركات علوم البيانات وتبعياتها هي من PYPI باستخدام PIP ، مثبت الحزمة المفضل لدى Python:
pip install data-science-utilsلترقية علوم البيانات إلى أحدث إصدار ، استخدم:
pip install -U data-science-utilsإذا كنت تفضل التثبيت من المصدر ، فيمكنك استنساخ المستودع والتثبيت:
git clone https://github.com/idanmoradarthas/DataScienceUtils.git
cd DataScienceUtils
pip install .بدلاً من ذلك ، يمكنك التثبيت مباشرة من GitHub باستخدام PIP:
pip install git+https://github.com/idanmoradarthas/DataScienceUtils.gitإذا كنت تستخدم Anaconda ، فيمكنك التثبيت باستخدام Conda:
conda install idanmorad::data-science-utilsيمتلك Undiels علوم البيانات العديد من التبعيات ، بما في ذلك Numpy و Pandas و Matplotlib و Plotly و Scikit-Learn. سيتم تثبيت هذه تلقائيًا عند تثبيت الحزمة باستخدام الطرق أعلاه.
تعتبر Data Science Utils مشروعًا نشطًا ينشر بشكل روتيني إصدارات جديدة بطرق وتحسينات إضافية. نوصي بالتحقق بشكل دوري للتحديثات للوصول إلى أحدث الميزات وإصلاحات الأخطاء.
إذا واجهت أي مشكلات أثناء التثبيت ، فيرجى التحقق من صفحة مشكلات GitHub أو فتح مشكلة جديدة للحصول على المساعدة.