أدوات مساعدة للمطورين#
يحتوي Scikit-learn على عدد من الأدوات المساعدة للمساعدة في التطوير. توجد هذه
في sklearn.utils
، وتتضمن أدوات في عدد من الفئات.
جميع الدوال والفئات التالية موجودة في الوحدة sklearn.utils
.
تحذير
هذه الأدوات المساعدة مخصصة للاستخدام داخليًا داخل حزمة scikit-learn. ليس مضمونًا أنها ستكون مستقرة بين إصدارات scikit-learn. سيتم إزالة عمليات النقل إلى إصدارات أقدم، على وجه الخصوص، مع تطور تبعيات scikit-learn.
أدوات التحقق من الصحة#
هذه أدوات تُستخدم للتحقق من صحة الإدخال والتحقق منه. عندما تكتب دالة تقبل المصفوفات أو المصفوفات المتفرقة كوسيطات، يجب استخدام ما يلي عند الاقتضاء.
assert_all_finite
: طرح خطأ إذا كانت المصفوفة تحتوي على NaNs أو Infs.as_float_array
: تحويل الإدخال إلى مصفوفة من العناصر العائمة. إذا تم تمرير مصفوفة متفرقة، فسيتم إرجاع مصفوفة متفرقة.check_array
: تحقق من أن الإدخال عبارة عن مصفوفة ثنائية الأبعاد، طرح خطأ في المصفوفات المتفرقة. يمكن إعطاء تنسيقات المصفوفة المتفرقة المسموح بها اختياريًا، بالإضافة إلى السماح بمصفوفات أحادية الأبعاد أو متعددة الأبعاد. يستدعيassert_all_finite
افتراضيًا.check_X_y
: تحقق من أن X و y لهما طول متسق، يستدعي check_array على X، و column_or_1d على y. بالنسبة للتصنيف متعدد التسميات أو الانحدار متعدد الأهداف، حدد multi_output = True، وفي هذه الحالة سيتم استدعاء check_array على y.indexable
: تحقق من أن جميع مصفوفات الإدخال لها طول متسق ويمكن تقطيعها أو فهرستها باستخدام safe_index. يُستخدم هذا للتحقق من صحة إدخال التحقق المتبادل.validation.check_memory
يتحقق من أن الإدخال يشبهjoblib.Memory
، مما يعني أنه يمكن تحويله إلى نموذجsklearn.utils.Memory
(عادةً ما يكون str يشير إلىcachedir
) أو له نفس الواجهة.
إذا كانت التعليمات البرمجية الخاصة بك تعتمد على مُولِّد أرقام عشوائية، فلا ينبغي أبدًا استخدام
دوال مثل numpy.random.random
أو numpy.random.normal
. يمكن أن يؤدي هذا النهج
إلى مشكلات في إمكانية التكرار في اختبارات الوحدة. بدلاً من ذلك،
يجب استخدام كائن numpy.random.RandomState
، والذي تم إنشاؤه من
وسيطة random_state
تم تمريرها إلى الفئة أو الدالة. الدالة
check_random_state
، أدناه، يمكن استخدامها بعد ذلك لإنشاء كائن
مُولِّد أرقام عشوائية.
check_random_state
: إنشاء كائنnp.random.RandomState
من معلمةrandom_state
.إذا كانت
random_state
هيNone
أوnp.random
، فسيتم إرجاع كائنRandomState
مهيأ عشوائيًا.إذا كانت
random_state
عددًا صحيحًا، فسيتم استخدامها لإنشاء بذرة لكائنRandomState
جديد.إذا كانت
random_state
كائنRandomState
، فسيتم تمريره.
فمثلا:
>>> from sklearn.utils import check_random_state
>>> random_state = 0
>>> random_state = check_random_state(random_state)
>>> random_state.rand(4)
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])
عند تطوير المقدر الخاص بك المتوافق مع scikit-learn، تتوفر المساعدات التالية.
validation.check_is_fitted
: تحقق من أن المقدر قد تم توفيقه قبل استدعاءtransform
أوpredict
أو أساليب مماثلة. يسمح هذا المساعد بطرح رسالة خطأ موحدة عبر المقدر.validation.has_fit_parameter
: تحقق من دعم معلمة معينة في أسلوبfit
لمقدر معين.
عمليات الجبر الخطي الفعالة وعمليات المصفوفة#
extmath.randomized_range_finder
: إنشاء مصفوفة متعامدة يقترب مداها من مدى الإدخال. يُستخدم هذا فيextmath.randomized_svd
، أدناه.extmath.randomized_svd
: حساب تحليل القيمة المفردة العشوائي المقطوع k. تجد هذه الخوارزمية تحليل القيمة المفردة المقطوع الدقيق باستخدام العشوائية لتسريع العمليات الحسابية. إنها سريعة بشكل خاص على المصفوفات الكبيرة التي ترغب في استخراج عدد صغير فقط من المكونات منها.arrayfuncs.cholesky_delete
: (يُستخدم فيlars_path
) إزالة عنصر من عامل تحليل Cholesky.arrayfuncs.min_pos
: (يُستخدم فيsklearn.linear_model.least_angle
) ابحث عن الحد الأدنى للقيم الموجبة داخل المصفوفة.extmath.fast_logdet
: حساب لوغاريتم محدد مصفوفة بكفاءة.extmath.density
: حساب كثافة متجه متفرق بكفاءةextmath.safe_sparse_dot
: حاصل الضرب النقطي الذي سيعالج بشكل صحيح مدخلاتscipy.sparse
. إذا كانت المدخلات كثيفة، فهي تعادلnumpy.dot
.extmath.weighted_mode
: امتداد لـscipy.stats.mode
الذي يسمح لكل عنصر أن يكون له وزن ذو قيمة حقيقية.resample
: إعادة أخذ عينات من المصفوفات أو المصفوفات المتفرقة بطريقة متسقة. يُستخدم فيshuffle
، أدناه.shuffle
: خلط المصفوفات أو المصفوفات المتفرقة بطريقة متسقة. يُستخدم فيk_means
.
أخذ العينات العشوائية الفعال#
random.sample_without_replacement
: ينفذ خوارزميات فعالة لأخذ عينات من أعداد صحيحةn_samples
من مجموعة ذات حجمn_population
بدون استبدال.
إجراءات فعالة للمصفوفات المتفرقة#
تستضيف وحدة cython sklearn.utils.sparsefuncs
ملحقات مُجمَّعة
لمعالجة بيانات scipy.sparse
بكفاءة.
sparsefuncs.mean_variance_axis
: حساب المتوسطات و التباينات على طول محور محدد لمصفوفة CSR. يُستخدم لتطبيع معيار إيقاف التسامح فيKMeans
.sparsefuncs_fast.inplace_csr_row_normalize_l1
وsparsefuncs_fast.inplace_csr_row_normalize_l2
: يمكن استخدامها لتطبيع عينات متفرقة فردية إلى معيار L1 أو L2 للوحدة كما هو الحال فيNormalizer
.sparsefuncs.inplace_csr_column_scale
: يمكن استخدامها لضرب أعمدة مصفوفة CSR بمقياس ثابت (مقياس واحد لكل عمود). يُستخدم لقياس الميزات إلى انحراف معياري للوحدة فيStandardScaler
.sort_graph_by_row_values
: يمكن استخدامها لفرز مصفوفة CSR متفرقة بحيث يتم تخزين كل صف بقيم متزايدة. هذا مفيد لتحسين الكفاءة عند استخدام مصفوفات المسافة المتفرقة المحسوبة مسبقًا في مقدرات تعتمد على رسم بياني لأقرب الجيران.
إجراءات الرسم البياني#
graph.single_source_shortest_path_length
: (لا يُستخدم حاليًا في scikit-learn) إرجاع أقصر مسار من مصدر واحد إلى جميع العقد المتصلة على رسم بياني. تم تكييف الشفرة من networkx. إذا كانت هناك حاجة إليها مرة أخرى، فسيكون من الأسرع بكثير استخدام تكرار واحد لخوارزمية Dijkstra منgraph_shortest_path
.
دوال الاختبار#
discovery.all_estimators
: يُعيد قائمة بجميع المقدرات في scikit-learn لاختبار السلوك والواجهات المتسقة.discovery.all_displays
: يُعيد قائمة بجميع عروض (المتعلقة بواجهة برمجة تطبيقات التخطيط) في scikit-learn لاختبار السلوك والواجهات المتسقة.discovery.all_functions
: يُعيد قائمة بجميع الدوال في scikit-learn لاختبار السلوك والواجهات المتسقة.
دالة مساعدة متعددة الفئات ومتعددة التسميات#
multiclass.is_multilabel
: دالة مساعدة للتحقق مما إذا كانت المهمة هي تصنيف متعدد التسميات.multiclass.unique_labels
: دالة مساعدة لاستخراج مصفوفة مرتبة من التسميات الفريدة من تنسيقات مختلفة للهدف.
دوال مساعدة#
gen_even_slices
: مُولِّد لإنشاء حزمn
من الشرائح تصل إلىn
. يُستخدم فيdict_learning
وk_means
.gen_batches
: مُولِّد لإنشاء شرائح تحتوي على عناصر بحجم دفعة من 0 إلىn
safe_mask
: دالة مساعدة لتحويل قناع إلى التنسيق المتوقع بواسطة مصفوفة numpy أو مصفوفة scipy المتفرقة التي سيتم استخدامه عليها (تدعم المصفوفات المتفرقة فهارس الأعداد الصحيحة فقط بينما تدعم مصفوفات numpy كلاً من أقنعة منطقية وفهارس الأعداد الصحيحة).safe_sqr
: دالة مساعدة للتربيع الموحد (**2
) لـ عناصر تشبه المصفوفة والمصفوفات والمصفوفات المتفرقة.
دوال التجزئة#
يوفر
murmurhash3_32
غلافًا لـ python لـ دالة التجزئة غير المشفرةMurmurHash3_x86_32
C++. دالة التجزئة هذه مناسبة لتنفيذ جداول البحث، وفلاتر Bloom، و Count Min Sketch، وتجزئة الميزات، والإسقاطات العشوائية المتفرقة المُحددة ضمنيًا:>>> from sklearn.utils import murmurhash3_32 >>> murmurhash3_32("some feature", seed=0) == -384616559 True >>> murmurhash3_32("some feature", seed=0, positive=True) == 3910350737 True
يمكن أيضًا "cimported" وحدة
sklearn.utils.murmurhash
من وحدات cython الأخرى للاستفادة من الأداء العالي لـ MurmurHash مع تخطي النفقات العامة لمترجم Python.
التحذيرات والاستثناءات#
deprecated
: مُزَيِّن لتمييز دالة أو فئة على أنها مُهمَلة.ConvergenceWarning
: تحذير مخصص لاكتشاف مشكلات التقارب. يُستخدم فيsklearn.covariance.graphical_lasso
.