Table of Contents
وأشجار القرار التي كانت تشكل منذ وقت طويل حجر الزاوية في التعلم الآلاتي، وتمنح مزايا لمنطقها غير الملائم، القائم على القواعد، وقدرتها على معالجة كل من مهام التصنيف والارتداد، وتجعلها هياكلها الشفافة خياراً للتصورات التي تتسم فيها قابلية التفسير، مثل التخصيب في الائتمان، والتشخيص الطبي، والتنبؤ بحجم الزبون، غير أن المنظمات تجمع بيانات متداخلة باستمرار، وتطبق على شجر الأشجار التقليدي.
ما هو القرار تري؟
وتُعد شجرة القرار نموذجاً للتعلم يشرف عليه يقسم حيز السمات إلى مناطق ويُسند تنبؤاً إلى كل منطقة، ويُبنى النموذج بصورة تصحيحية: ففي كل عقد داخلي، تختبر قاعدة قرارات سمة واحدة وتقسم البيانات إلى فرعين أو أكثر استناداً إلى النتيجة، وتستمر العملية إلى حين استيفاء معيار التوقف (مثلاً، أقصى درجة من العمق، أو الحد الأدنى من العينات لكل ورقة، أو عتبة الافتراض المستمر).
وتقاس نوعية تقسيمها بمعيار يصف مدى شدة أو تنافر عظام الأطفال الناتجين عن ذلك، وتشمل المعايير المشتركة ما يلي:
- Gini impurity] (CART): تدبّر احتمال سوء تصنيف عنصر مختار عشوائيا عندما يُسمّى وفقاً لتوزيع الفصول في العقد.
- Entropy] (ID3, C4.5): مقاييس كمية عدم التيقن أو المعلومات في العقد، والكسب في المعلومات هو تخفيض التلقيم بعد انقسام؛ والسمة التي تحقق أعلى مكاسب المعلومات يتم اختيارها.
- Variance reduction (أشجار التراجع): يستخدم الفرق المرجح للهدف داخل كل طفل؛ ويختار القسم الذي يقلل من الفرق الإجمالي.
وتعالج أشجار القرار تلقائياً العلاقات غير الخطية والتفاعلات الخاصة بها، وتحتاج إلى حد أدنى من التجهيز الأولي للبيانات (لا حاجة إلى التوسع)، ويمكن تصورها على أنها مجموعة من قواعد ] [وهذه الممتلكات تجعلها نموذجاً أساسياً مثالياً وركيزة بناء لطرق أكثر قوة في التجمع مثل الغابات العشوائية والأشجار المتدرجة.
تحدي القابلية للتسويق في البيانات الكبيرة
وعندما تنمو مجموعات البيانات إلى ملايين الصفوف وآلاف الملامح، تواجه خوارزميات شجرة القرار التقليدية اختناقات أساسية:
- Memory constraints]: Sorting continuous features for opt opt opt optshaty requires loading the entire dataset into memory. For datasets exceeding available RAM, the operating system resorts to swapping, severely degrading performance.
- Compputational complexity]: Evaluating all possible splits for each feature at each node is O(]m n]] log n
- Sequential nature: تقليدي في مجال صيد الأشجار يتوقف في جوهره على قرار منفصل من جانب والديه، وفي حين أن بعض التوازي ممكن (مثلاً تقييم الانقسامات في موازاة)، فإن الخوارزمية العامة لا تتضخم بشكل جيد عبر العديد من الآلات.
- Disk I/O]: إذا لم تكن البيانات مناسبة للذاكرة، فإن تكرار المرور على البيانات الموجودة في المقر يسبب حالة من عدم الارتياح الشديد.
ويجب أن تتصدى الأطر الضخمة للبيانات لهذه التحديات من خلال التخزين الموزع، والتجهيز الموازي، والخرغاريتمات التقريبية التي تضحي بأدنى قدر من الدقة من أجل تحقيق تحسينات واسعة في السرعة والحجم.
Apache Spark: A Distributed Computing Powerhouse
(أباتشي سبارك) محرك تحليلي موحد ومفتوح المصدر ومصمم لتجهيز البيانات على نطاق واسع، وتشمل ابتكاراته المعمارية الرئيسية ما يلي:
- Resilient Distributed Datasets (RDDs): a faulttolerant collection of objects partitioned across a cluster, enabling parallel operations.
- DataFrame API]: a higher highly higher highly level abstraction that organizes data into named columns, similar to a relational table, with builtin optimizations through the Catalyst query optimizer.
- In‐memory processing]: يمكن أن تُجمع البيانات في الذاكرة عبر العمليات، مما يقلل القرص الأول/الO بأوامر ضخامة مقارنةً بإنتاج خريطة هودوب.
- MLlib]: مكتبة التعلم الآلات التي يمكن تكبيرها في سبارك، والتي توفر عمليات تنفيذ موزعة للخرافيزميات المشتركة، بما في ذلك أشجار القرار والغابات العشوائية والأشجار المحرمة من الخريجين، وترمي الخوارزميات المتعددة الألياف إلى العمل على حواجز RDD أو آثارها ويمكن إدماجها في خطوط الأنابيب المحتوية على ميغابايت.
وقدرة سبارك على أداء الحسابات المتكررة بكفاءة عن طريق الاحتفاظ ببيانات في الذاكرة بين الممرات - مما يجعلها مناسبة بشكل خاص لتدريب أشجار القرار، مما يتطلب تصاريح متعددة على البيانات لتقييم المرشحين المقسمين.
تنفيذ القرارات
Spark MLlib implements decision trees using a ]planar (binary) tree] structure for both classification and regression. The algorithm is parallelized by partitioning data across the cluster and using a histogrambased approach for continuous features. instead of sorting all data to find every possible split, MLlib binrom featuretocrete interut
إعداد البيانات
وقبل التدريب، يجب تحويل البيانات الخام إلى شكل يفهمه برنامج " سبارك " ، وتشمل الخطوات الرئيسية ما يلي:
- Feature indexing]: categorical features must be converted to numeric index values using ]StringIndexer.
- Feature vector assembly]: All feature columns (numeric and indexed categorical) must be combined into a single feature vector column using ]VectorAssembler.
- Label encoding: For classification, the label column should be a numeric index (e.g., 0,1,2). Use StringIndexer] if the labels are strings.
- Handling missing values]: Spark’s decision trees do ]not] natively handle missing values. Rows with missing features must be imputed, dropped, or handled via a custom pipeline before training.
ويمكن تسلسل جميع هذه التحولات إلى خط ML Pipeline ]، مما يجعل تدفق العمل قابلاً للتكاثر ويسهل نشره.
التدريب على النموذج
With the data prepared as a DataFrame containing a “features” column and a “label” column, training is straightforward. The programmer immediatelyiates either DecisionTreeClasifier or DecisionTreeRegressor[FT:3] and calls the [LT include the [
- maxDepth : أقصى عمق الشجرة (العجز 5) ويمكن لأشجار أعمق أن تلتقط أنماطاً أكثر تعقيداً ولكنها تزيد من خطر الإفراط في التأقلم وتقليل إمكانية التفسير.
- maxBins]: عدد الصناديق المستخدمة عند تفريق الملامح المستمرة (العجز 32) - تسمح القيم العليا بقسمات أكثر دقة ولكنها تزيد من الحساب.
- impurity]: تدبير الشوائب المستخدم في الاختيار المجزأ، بالنسبة للتصنيف، " الجنية " أو " المنحى " ؛ وللتراجع، " الغفران " .
- minInstancesPerNode]: الحد الأدنى من العينات المطلوبة لتكون في عقد أوراق بعد انقسام (العجز 1). وتساعد زيادة هذه القيمة على منع الإفراط في استخدام الأنماط النادرة.
- minInfoGain]: الحد الأدنى من مكاسب المعلومات اللازمة لتقاسمها (العجز 0.0).
- seed]: random seed for reproducibility (used in splitting and tie-ofing).
ويقوم سبارك، أثناء التدريب، بتوزيع البيانات على جميع المنفذين، ويقوم كل منفذ بحسابات مصورة محلية للجزئ التي يملكها، ثم يقوم السائق بتجميع رسومه وتقييم المرشحين المقسمين لكل عقد، ويحدد أفضل تقسيم، وتعيد هذه العملية مستوى كل منها حسب المستوى، مع إعادة توزيع البيانات حسب الاقتضاء، ونظرا لأن رسومه مدمجة، فإن الاتصالات التي تفوقها الإدارة.
Hyperparameter Tuning
(أ) البحث عن مسافات أعلى تنطوي على تداخل أو تقسيم شبكة القطارات.
التقييم
ويمكن استخدام النموذج، بمجرد تدريبه، لتحويل مجموعة الاختبار (أو البيانات الجديدة) بالاتصال .وتضاف التنبؤات كعمود جديد.وتتوقف قياسات التقييم على المهمة:
- Clasification]: accuracy, accurate, recall, F1‐score, confusion spec, ROC —AUC (for binary classification). Spark’s ]BinaryClasificationEvaluator and
- Regression]: mean squared error (MSE), root mean squared error (RMSE), mean absolute error (MAE), R2 (coefficient of determination). Use ]RegressionEvaluator.
ويمكن أيضاً تفتيش النموذج عن طريق أسلوبه إلى ديبوغستنغ الذي يطبع هيكل الأشجار المستخدم للتفسير وللتحقق من أن القواعد العلمية منطقية.
Ensemble Methods on Spark: Random Forests and GBTs
وفي حين أن شجرة اتخاذ قرار واحدة يمكن تفسيرها، فإنها يمكن أن تعاني من ارتفاع التباين ومحدودية الدقة، كما أن شركة سبارك ميلب توفر أيضاً تنفيذين موزعين لطرقتين قويتين تجمعان بين أشجار متعددة من أشجار القرار:
الغابات العشوائية
A random forest trains many trees (controlled by numTrees) on bootstrapped samples of the data and selects divided from a random subset of features at each node. This decorrelation reduces variation and often yields significantly higher accuracy. Spark’s
الأشجار ذات النطاق العريض
(د) إن تعزيز خط الأساس يبني الأشجار بالتتابع، وكل شجرة جديدة تصحح بقايا المجموعة السابقة، وهذا الطابع المتكرر يجعل التوازي أكثر صعوبة، ولكن شركة Spark لا تزال توزع حساب النجمة في كل مرة.
ويستفيد كلا الأسلوبين من نفس مزايا التصعيد التي يتيحها نظام " سبارك " : مناولة البيانات على نطاق واسع، والتسامح إزاء الأخطاء، والإدماج في خطوط أنابيب استنفاد البيانات.
التطبيقات العالمية الحقيقية
يتم نشر أشجار القرار وتجمعاتها التي تم بناؤها مع سبارك في جميع الصناعات:
- Credit risk assessment]: تستخدم المصارف أشجار القرار للموافقة على القروض أو رفضها استنادا إلى سمات مثل الدخل، وتاريخ الائتمان، ونسبة الديون إلى الدخل - مع Spark، يمكن تدريب النماذج على ملايين التطبيقات التاريخية وتحديثها بانتظام.
- Customer churn prediction]: Telecoms and SaaS companies analyze usage logs, support interactions, and demographic data to predict which clientss are likely to leave. Random forests on Spark handle the high dimensionality of behavioral features.
- Fraud detection]: تحرز المؤسسات المالية معاملات في الوقت الحقيقي باستخدام مجموعات الأشجار، ولأن الأشجار قابلة للتفسير، يمكن لأفرقة الامتثال أن تفسر سبب رفع علم المعاملة.
- الصيانة الموصى بها : تولد أجهزة الاستشعار المصنعة تيرابايت من بيانات المناقصات الزمنية؛ وتتوقع الأشجار التراجعية إخفاق المعدات استنادا إلى اليقظة ودرجة الحرارة وقراءات الضغط.
- Healthcare analytics: قيام نظم المستشفيات ببناء نماذج لاتخاذ القرارات بشأن السجلات الصحية الإلكترونية للتنبؤ بمخاطر القراء، والمساعدة على تخصيص الموارد.
وفي كل حالة، القدرة على توسيع نطاق البيانات إلى مجموع السكان، باستثناء العينات، بحيث تصبح نماذج أكثر قوة وإنصافاً.
أفضل الممارسات في نشرات الإنتاج
وللتخلص من أشجار القرار على سبارك، ينبغي النظر فيما يلي:
- ]Cache the training data]: Use on the DataFrame after feature engineering to avoid re-reading from disk during tuning or cross-validation.
- Balance the dataset]: For classification with imbalanced classes, use oversampling, undersampling, or class weights (Spark’s decision trees do not support per —instance weights directly; you can sample appropriately).
- Monitor resource usage]: A deep tree with a high maxBins]] value can cause driverside OOM if histograms become too large. Increase driver memory or reduce maxBins.]
- Usese feature importance]: After training, extract feature importance scores to prune irrelevant features, reducing training time and improving interpretability.
- Serialize and serve]: Use ML Pipeline’s and ] to persist trained models. For real —time scoring, convert the tree rules into a simple lookup table or deploy the model via Spark’s streaming or batch serving.
الموارد الخارجية
وللحصول على مزيد من القراءة والأمثلة العملية، يرجى الرجوع إلى هذه المصادر الموثوقة:
- Apache Spark MLlib Decision Trees Documentation]
- Wikipedia: Decision Tree Learning]
- Scikit -learn Decision Trees (for comparison with Spark’s approach)]
- Databricks Blog: Random Forests and Boosting in MLlib]
خاتمة
وتظل أشجار القرار أداة حيوية في مجموعة أدوات علماء البيانات، مما يتيح مزيجاً فريداً من الشفافية والقدرة التنبؤية، وبتنفيذها على أباتشي سبارك، يمكن للمنظمات أن تتوسع من آلاف إلى بلايين الصفوف دون التضحية بالقابلية للتفسير التي تجعل الأشجار قيمة للغاية، وتستمد الخوارزمية الموزعة على أساس البرمجيات، إلى جانب نماذجها الموحدة لتجهيز البيانات، وتتيح التدريب السريع، والسهل التدرج.