<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://alioh.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://alioh.com/" rel="alternate" type="text/html" /><updated>2026-08-09T15:56:01+00:00</updated><id>https://alioh.com/feed.xml</id><title type="html">علي العوهلي</title><subtitle>محاولة لإثراء المحتوى العربي</subtitle><entry><title type="html">الإنحياز والتباين</title><link href="https://alioh.com/Bias-and-Variance/" rel="alternate" type="text/html" title="الإنحياز والتباين" /><published>2022-09-09T00:00:00+00:00</published><updated>2022-09-09T00:00:00+00:00</updated><id>https://alioh.com/Bias-and-Variance</id><content type="html" xml:base="https://alioh.com/Bias-and-Variance/"><![CDATA[<p>الإنحياز والتباين أحد أهم المصطلحات في النمذجة الإحصائية، كذلك في تعلم الآلة. ولكن فهم هذه المصطلحات في مجتمعات تعلم الآلة غير واضح جداً، ذلك لأن كثير من المقالات تحاول التقليص من مفهومها “ الإنحياز = فرط التعميم، التباين = فرط التخصيص، أو <a href="https://alioh.github.io/images/2022-09-09/bullseye.png">بعرض الرسم البياني</a> “ . هذه المصطلحات مناسبة عند الحاجة لوصف أداء نموذج بشكل سريع “<strong><em>هذا النموذج لدية إنحياز مرتفع وتباين منخفض</em></strong>“، أرى أن هذه المقالات تخفي المقايضة التي لا تظهر بين الانحياز والتباين. اتمنى أن يوضح هذا المقال للقارئ توضيحاً أكثر للإنحياز والتباين في النماذج الإحصائية.</p>

<h2 id="النمذجة-الإحصائية">النمذجة الإحصائية</h2>

<p>ظهر الإنحياز والتباين من مجال <em>النمذجة الإحصائية</em>. النمذجة الإحصائية هو المجال الذي يحاول وضع نموذج في بيانات مُجَمعة لهدف:</p>
<ul>
  <li>التنبؤ.</li>
  <li>الفهم.</li>
</ul>

<p><strong><em>مثال</em></strong>: بيانات <a href="https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html">منازل بوستن</a> الشهيرة هي بيانات تم جمعها بواسطة خدمة التعداد السكاني في الولايات المتحدة في عام 1996. تحتوي على عدة متغيرات مثل: معدل الجريمة للفرد، عدد الغرف لكل مسكن، نسبة الشركات غير شركات التجزئة، والسعر.</p>

<p>إذا أردنا بناء نموذج لسعر المنازل، سنضع كل المتغيرات الأخرى كمتغيرات للنموذج وسعر المنزل هو المخرج الذي سيتم توقعه. إذا كان لدينا \(p\) كعدد المتغيرات \(X_{1},X_{2}, \ldots , X_{p}\) والمخرج هو \(Y\)، فيمكننا الإفتراض أن نموذج \(Y\) بإستخدام \(X\) يمكن تعريفة كالتالي:</p>

<center>
$$Y= f(X_{1},X_{2}, \ldots , X_{p}) + \epsilon $$
</center>

<p>في هذه المعادلة، لاحظ أن الدالة \(f(X)\) ثابتة، أيضاً هناك \(\epsilon\) في المعادلة. هذة الإشارة تعني الخطأ. وهو الفرق بين القيمه التي توقعها النموذج والقيمه الحقيقه ويمكن أن يمثل اشياءً أخرى مثل الضوضاء و العشوائية. المهم هنا هو أن \(\epsilon\) لا تعتمد على \(X\) ولديها متوسط يساوي صفر.</p>

<p>إذا أردنا البدء ببناء نموذج لهذة البيانات، لن نستطيع الوصول لجميع نقاط البيانات لدينا كونها لا تمثل كامل المجتمع (جميع نقاط البيانات يمكن تسميتها “المجتمع”). ولكن، لدينا فقط عينة محدودة من نقاط البيانات (تسمى “عينة”). هنا، لدينا عينة من 50 نقطة.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/population_vs_sample.png"><img src="https://alioh.github.io/images/2022-09-09/population_vs_sample.png" alt="" /></a></p>

<p>لضبط النموذج على البيانات، من الأفضل البدء بشكل بسيط، ثم الإنتقال للمسائل المعقدة. هنا إستخدمنا نموذج متعددة الحدود فيه \(n\) هي أعلى قوة، البداية من \(n=1\) (انحدار خطي) ثم الزيادة في قيمة \(n\) حتى 10. جميع النماذج تُضبط للتقليل من الخطأ التربيعي المتوسط.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/model_fitting.png"><img src="https://alioh.github.io/images/2022-09-09/model_fitting.png" alt="" /></a></p>

<h2 id="ما-هو-التباين">ما هو التباين؟</h2>

<p>لتعريف التباين ببساطة، ليست كُل العينات لديها نفس الصفات. عندما يكون لدينا عينتين مُختلفتين، فإننا سنبني نماذج مُختلفه قليلاً عن بعضها.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/variance.png"><img src="https://alioh.github.io/images/2022-09-09/variance.png" alt="" /></a></p>

<p><sub>تم إختيار خمسين عينة مختلفة من نفس مجتمع البيانات. تم ضبط كُل واحدة بإستخدام نموذج متعدد الحدود للدرجة الثالثة.</sub></p>

<p>هنا نقول أننا غيرنا في <strong>مدخلات</strong> النموذج. في الرسوم البيانية السابقة، كل النماذج متعددة الحدود من الدرجة الثالثة \(X^3\). كل نموذج دُرب على عينات مختلفة من مجتمع البيانات.</p>

<p>لنتخيل أننا أعدنا هذه العملية 100 مرة. بهذا الشكل ستكون النتيجة:</p>

<p><a href="https://alioh.github.io/images/2022-09-09/variance_repeat.png"><img src="https://alioh.github.io/images/2022-09-09/variance_repeat.png" alt="" /></a></p>

<p>هدف بناء النموذج هو التنبؤ. عندما نريد التنبؤ ب \(Y\) بإستخدام النماذج لقيمة \(X\) جديدة، سينتج لنا التالي:</p>

<p><a href="https://alioh.github.io/images/2022-09-09/variance_predict.png"><img src="https://alioh.github.io/images/2022-09-09/variance_predict.png" alt="" /></a></p>

<p><sub>قيم متغيره لما تم التنبؤ به \(Y\) (النقاط باللون الأزرق) بإستخدام النماذج المختلفة. الخط الرصاصي المتقطع هي القيمة \(X\) التي إستخدمناها كمدخل للنموذج.</sub></p>

<p>بعض النماذج تتنبؤ بشكل مختلف جداً، ولكن بعضها يتنبؤ بشكل متسق وثابت. نقوم بتحديد إتساق وثبات النموذج بإستخدام <strong>التباين</strong>. إحصائياً، التباين للنموذج هو متوسط الانحراف التربيعي لجميع التنبؤات. كما ذُكر في <a href="https://www.statlearning.com/">مقدمة في التعلم الإحصائي</a>:</p>

<h3 id="بشكل-عام-الأساليب-الإحصائية-الأكثر-مرونة-لديها-تباين-عالي">بشكل عام، الأساليب الإحصائية الأكثر مرونة لديها تباين عالي.</h3>

<h2 id="ما-هو-الإنحياز">ما هو الإنحياز؟</h2>

<p>بعد ان بنينا أكثر من نموذج تنبؤ، نريد أيضاً معرفة المتوسط، أو القيمة المتوقعة من النموذج. هذا المتوسط يطلق عليه <em>القيمة المتوقعة</em> للتنبؤات. الإنحياز هو مدى اختلاف <em>القيمة المتوقعة</em> لكل التنبؤات عن <em>القيم الحقيقية</em>.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/bias.png"><img src="https://alioh.github.io/images/2022-09-09/bias.png" alt="" /></a></p>

<p><sub>الإنحياز هو المسافة بين القيم الحقيقية (المثلث البنفسجي) والقيم المتوقعة (الخط الأزرق). التباين هو مدى عرض النتائج المتوقعة (باللون الأحمر).</sub></p>

<p>الرسم البياني السابق يظهر طريقة قياس الإنحياز والتباين وكيف يتم إستخدام كُلِ منهما لوصف النماذج التي تكون فارطة بالتخصيص أو التعميم.</p>

<ul>
  <li>في نموذج الإنحدار الخطي ( \(n=1\) )، المتوسط لنموذج التنبؤ مختلف جداً عن القيمة الحقيقة لـ \(Y\). ايضاً تباين النموذج عالي. لذا يمكننا القول أن نموذج الإنحدار الخطي لدية <strong>إنحياز عالي</strong> و <strong>تباين عالي</strong>.</li>
  <li>في النموذج \(n=7\)، متوسط التنبؤ قريب جداً من القيمة الحقيقة لـ \(Y\). ولكن، تباين النموذج عالي. هنا يمكننا القول أن النموذج لدية <strong>إنحياز منخفض</strong> و <strong>تباين عالي</strong>.</li>
  <li>في النماذج \(n=2\) و \(n=3\)، الإنحياز والتباين منخفضان. الهدف في النماذج الإحصائية هي الوصول إلى نماذج لديها إنحياز وتباين منخفضة.</li>
</ul>

<h2 id="المقايضة-بين-الإنحياز-والتباين">المقايضة بين الإنحياز والتباين</h2>

<p>كيف نعرف مدى صحة نتائج النموذج؟ يمكننا قياس الخطأ بين القيمة المتوقعة والقيمة الحقيقة، ثم جمعها وحساب متوسطها. بذلك، نصل إلى إنحياز نموذج التنبؤ. ولكن، سيؤثر ذلك بشكل عكسي، فإذا كان الإنحياز يساوي 0، ذلك يعني أن النموذج يتنبؤ بكل شئ بشكل صحيح (بدون تباين) أو أن النموذج يتنبؤ بشكل خاطئ لكل القيم (تباين عالي). بدلاً من ذلك، نقوم بجمع إما القيمة المطلقة أو القيمة التربيعية للخطأ. القيمة التربيعية للخطأ هي الأفضل في كثير من الحالات كونها اسهل بالتنفيذ والوصول إلى النتائج. نطلق على ذلك متوسط الخطأ التربيعي (MSE):</p>

\[MSE = \frac{\sum_{n} ( \hat f_{x_0} - f_{x_0} )^2}{n}\]

<p>إذا درست الإحصاء، فستعلم أن هذة المعادلة يطلق عليها القيمة المتوقعة لتربيع الخطأ. لدى القيمة المتوقعة بعض الخصائص التي يمكن استخدامها للوصول إلى متوسط الخطأ التربيعي. يمكن الوصول لشرح لها في <a href="https://towardsdatascience.com/">ويكيبيديا</a> أو <a href="https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff#Derivationbias-variance-decomposition-101-a-step-by-step-computation-9d5f3694877">هذا المقال</a>.</p>

<p>\(MSE = var(\hat f_{x_0}) + (E[\hat f_{x_0}] - f_{x_0})^2 + var (\epsilon^2)\)
\(= var(\hat f_{x_0}) + bias(\hat f_{x_0})^2 + var (\epsilon^2)\)</p>

<p>المصطلح \(var (\epsilon^2)\) يقصد به الخطأ الغير قابل للإختزال. يحدد القيمة الدنيا للخطأ التربيعي المتوسط للنموذج.</p>

<p>كتمرين رياضي، هل يمكنك حساب الخطأ الغير قابل للإختزال بمعرفتك بأن قيمة الخطأ بين \([-10, 10]\)؟</p>

<p>من الواضح أن قيمة متوسط الخطأ التربيعي تعتمد على مجموع و إنحياز نموذج التنبؤ. إذا قمنا برسم متوسط الخطأ التربيعي، التباين والإنحياز مع بعضها البعض للنماذج وقمنا بزيادة تعقيدها كل مره، سيظهر لنا رسم بياني على شكل حرف \(U\) للخطأ التربيعي المتوسط. إختيار النموذج المثالي يعتمد على إختيار القيم المناسبة للإنحياز والتباين.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/degrees_of_polynomial.png"><img src="https://alioh.github.io/images/2022-09-09/degrees_of_polynomial.png" alt="" /></a></p>

<p>هذا ما يطلق عليه — مقايضة الإنحياز والتباين. في مثالنا، يكون متوسط الخطأ التربيعي في قيمتة الدنيا عندما تكون \(n=3\). يمكننا القول أن متعددة الحدود من الدرجة الثالثة هي أفضل نموذج يشابهة المجتمع الحقيقي للبيانات.</p>

<h3 id="سؤال-ماذا-سيحدث-للإنحياز-والتباين-عند-زيادة-بيانات-التدريب">سؤال: ماذا سيحدث للإنحياز والتباين عند زيادة بيانات التدريب؟</h3>

<p>بشكل بديهي، عند زيادة عدد بيانات عينة التدريب، فأن نتائج النموذج ستكون أكثر دقة. لذا، سيكون تباين النموذج أقل عند زيادة عدد بيانات التدريب. ولكن على العكس، الإنحياز سيبقى كما هو. يعود ذلك إلى أن الإنحياز يتجه نحو المتوسط أياً كان عدد بيانات عينة التدريب. في الواقع، إذا كانت بيانات التدريب قليله جداً، فأنها ستأثر على إنحياز النموذج لأن الزيادة في عدد البيانات سيجعل نتائج التنبؤ أفضل.</p>

<h3 id="سؤال-ماذا-سيحدث-للإنحياز-والتباين-عند-إضافة-قيمة-غير-متغيرة-للنموذج">سؤال: ماذا سيحدث للإنحياز والتباين عند إضافة قيمة غير متغيرة للنموذج؟</h3>

<p>بكل بساطة، يقيس التباين مدى توسع تنبؤات النموذج. عند إضافة قيمة ثابتة، فأن التوزيع سيبقى مثل ما هو وتبقى قيمة التباين كما هي. على عكس ذلك، الإنحياز سيتغير إلى إتجاه القيمة الغير متغيرة.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/constat_term.png"><img src="https://alioh.github.io/images/2022-09-09/constat_term.png" alt="" /></a>
<strong>مثال</strong>: عند إضافة قيمة غير متغيره 5 (اللون الأحمر)، صفر (اللون الأزرق)، -5 (اللون الأخضر). <a href="https://www.quora.com/In-regression-why-do-we-include-a-constant-term">المصدر</a></p>

<h2 id="الإستعمالات">الإستعمالات</h2>

<p>حتى الآن، اتمنى أن تكون وصلت لك فكرة الإنحياز والتباين. بالأخص، سبب إستخدامها الدائم لوصف أداء النماذج. قد تتسائل ما إذا كانا فقط كلمات لوصف اداء النماذج دون أهمية نظرية أو عملية. هنا، سأشرح لك تطبيق الإنحياز والتباين على التحقق المتقاطع “Cross-Validation”.</p>

<h2 id="التحقق-المتقاطع">التحقق المتقاطع</h2>

<p>يعتبر التحقق المتقاطع أحد أشهر الطرق لتقييم أداء النموذج، في العادة، لتقييم أداء النموذج، نقوم بتقسيم البيانات إلى بيانات تدريب وإختبار، نعدل من مدخلات النموذج بإستخادم بيانات التدريب ثم نقيم النتائج بناءًا على بيانات الإختبار. لكن، إذا كان حجم البيانات لدينا قليل، يمكنك تدريب النموذج أكثر من مره بتوزيع البيانات إلى مجموعات صغيرة. ويكون التقييم النهائي للنموذج بناءًا على جميع التقييمات السابقة التي تمت على مجموعات بيانات الإختبار. عند النظر إلى طريقة استخراج العينات، يمكنك معرفة علاقة ذلك مع تباين النموذج. هدفنا هو إيجاد النموذج ذو أقل قيمة لمتوسط الخطأ التربيعي على بيانات تدريب إختبار جديدة، لذا هل سيساعدنا التحقق المتقاطع على فعل ذلك؟</p>

<p>أولاً، لنأخذ طريقة إختبار النموذج بإستخدام مجموعة اختبار واحدة (<a href="https://machinelearningmastery.com/loocv-for-evaluating-machine-learning-algorithms/">LOOCV</a>)، في هذة الطريقة، بيانات الإختبار عبارة عن مجموعة واحد فقط، وبيانات التدريب هي باقي البيانات. يتم تدريب النموذج بشكل متكرر بعدد \(n-1\) مره، في المعادلة \(n\) هي عدد البيانات. التقييم النهائي للنموذج هو متوسط جميع بيانات التدريب.</p>

<p>بشكل مباشر، يمكنك ملاحظة فوائد طريقة LOOCV عكس الطريقة البسيطة لتقسيم البيانات إلى بيانات تدريب واختبار بدون تحقق متقاطع. إذا كانت عينة البيانات جيدة، فأن اخذ العينات بشكل متكرر من بيانات التدريب سيكون نتائجة مشابه لأخذ العينات من مجتمع البيانات الحقيقي. ولكن الفرق الملاحظ هو أنه عند تطبيق LOOCV، جميع عينات التدريب ستتداخل على بعضها البعض. هذا التداخل سيسبب تباين عالي للنموذج.</p>

<p>للتقليل من التباين، هناك طريقة أخرى يمكن إستخدامها يطلق عليها التحقق المتقاطع بإستخدام <a href="https://machinelearningmastery.com/k-fold-cross-validation/">K-Flod</a>. فيها، يتم تقسيم العينة إلى عدد متساوي \(k\). فيها بيانات الإختبار مجموعة واحدة والباقي بيانات تدريب. يتم تدريب النموذج بعدد \(k\) مره، في كل مره يتم تغير مجموعة بيانات الإختبار.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/kfold2.png"><img src="https://alioh.github.io/images/2022-09-09/kfold2.png" alt="" /></a>
<a href="https://bradleyboehmke.github.io/HOML/process.html">المصدر</a></p>

<p>بالمقارنة مع LOOCV، طريقة K-Flod بإمكانها إيجاد نماذج بتباين منخفض، ولكن بإنحياز مرتفع.</p>

<p><a href="https://alioh.github.io/images/2022-09-09/loocv_vs_kflod.png"><img src="https://alioh.github.io/images/2022-09-09/loocv_vs_kflod.png" alt="" /></a></p>

<p><sub>نتيجة متوسط الخطأ التربيعي بإستخدام التحقق المتقاطع LOOCV و K-Fold على بيانات الإختبار.</sub></p>

<p>مدى فائدة إستخدام التحقق المتقاطع لإختيار أفضل النماذج؟ هنا، سنحاول اختيار أفضل قوة لمتعددة الحدود بإستخدام التحقق المتقاطع K-Fold ( \(K=10\) ). نتائج LOOCV كانت أفضل عند القوة 6 بينما كانت أفضل قوة لـ K-Fold عند الرقم 3. إذا أردنا أن لا يكون نموذجنا فارط بالتخصيص على بيانات التدريب، فسنختار النموذج الأبسط عند \(n=3\).</p>

<h2 id="النتيجة">النتيجة</h2>

<p>أتمنى أن المقال ساعدك على فهم المزيد عن ما وراء فكرة الإنحياز والتباين. من الآن وصاعداً، عند التفكير بإنحياز وتباين النموذج، يمكنك مباشرة البدء بتطبيق المبادئ الأولى والأساسية لإختيار القيم المناسبة للنموذج.</p>

<p>يمكنك التجربة والتعديل على الرسوم البيانية الموجودة في هذا المقال <a href="https://github.com/alioh/Bias-and-Variance/blob/main/Bias-variance%20tradeoff.ipynb">هنا</a>.</p>

<p>جميع الصور والبيانات المستخدمة (عدا أن تم ذكر مصدر لها) انشأت بواسطة الكاتب.</p>

<h2 id="مراجع">مراجع</h2>

<p>James, Gareth, et al. An introduction to statistical learning. Vol. 112. New York: springer, 2013.</p>

<hr />

<p align="left">
<a href="https://towardsdatascience.com/a-visual-understanding-of-bias-and-variance-66179f16be32">
المصدر
</a>
</p>

<script type="text/javascript" async="" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>]]></content><author><name></name></author><summary type="html"><![CDATA[الإنحياز والتباين أحد أهم المصطلحات في النمذجة الإحصائية، كذلك في تعلم الآلة. ولكن فهم هذه المصطلحات في مجتمعات تعلم الآلة غير واضح جداً، ذلك لأن كثير من المقالات تحاول التقليص من مفهومها “ الإنحياز = فرط التعميم، التباين = فرط التخصيص، أو بعرض الرسم البياني “ . هذه المصطلحات مناسبة عند الحاجة لوصف أداء نموذج بشكل سريع “هذا النموذج لدية إنحياز مرتفع وتباين منخفض“، أرى أن هذه المقالات تخفي المقايضة التي لا تظهر بين الانحياز والتباين. اتمنى أن يوضح هذا المقال للقارئ توضيحاً أكثر للإنحياز والتباين في النماذج الإحصائية.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">قاعدة بيانات مقالات جريدة الرياض عن كوفيد 19</title><link href="https://alioh.com/AlRiyadh-Newspaper-Covid-Dataset/" rel="alternate" type="text/html" title="قاعدة بيانات مقالات جريدة الرياض عن كوفيد 19" /><published>2021-07-27T00:00:00+00:00</published><updated>2021-07-27T00:00:00+00:00</updated><id>https://alioh.com/AlRiyadh-Newspaper-Covid-Dataset</id><content type="html" xml:base="https://alioh.com/AlRiyadh-Newspaper-Covid-Dataset/"><![CDATA[<p>يسعدني أنا والدكتورة <a href="https://www.linkedin.com/in/dr-najwa-alghamdi-a77aa93/">نجوى الغامدي</a> أن نشارككم قاعدة بيانات للإستخدام في الاغراض البحثية تتضمن المقالات المنشورة في جريدة الرياض السعودية والتي تشمل على كلمات لها علاقة في كوفيد-19 منذ البداية حتى 1 فبراير 2021. ومن الخطط ان يتم تحديث هذة البيانات بين فترة وأخرى.</p>

<h2 id="عن-البيانات">عن البيانات</h2>

<p>البيانات هي جزء من بحث علمي تم تقديمة لعدد من المؤتمرات. تحتوي على جميع المقالات من صحيفة <a href="https://www.alriyadh.com/">الرياض</a> التي كُتبت وفيها الكلمات التالية:</p>

<ul>
  <li>كورونا</li>
  <li>كوفيد-19</li>
  <li>كوفيد المستجد</li>
  <li>حظر التجول</li>
  <li>منع التجول</li>
</ul>

<h2 id="الهدف-من-البيانات">الهدف من البيانات</h2>

<p>نهدف في هذة البيانات إفادة المحللين ومن يرغب بدراسة اللغة العربية واستخدامها في المقالات الصحفية.</p>

<h2 id="فائدة-البيانات">فائدة البيانات</h2>

<ul>
  <li>تعتبر البيانات هي أول واكبر قاعدة بيانات لمقالات صحفية وأخبار محلية أو دولية لها علاقة بكوفيد-19.</li>
  <li>يمكن الإستفادة من البيانات لرسم مخططات زمنية ودراسة السلوك.</li>
  <li>يمكن الإستفادة منها بتدريب وضبط نماذج اللغات في التعلم العميق.</li>
</ul>

<h2 id="مصدر-البيانات">مصدر البيانات</h2>

<p>تم جمع البيانات من الموقع الرسمي لجريدة الرياض السعودية بعد الموافقة منهم.</p>

<h2 id="حجم-البيانات">حجم البيانات</h2>

<p>كل كلمة يختلف عدد المقالات فيها:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">الكلمة</th>
      <th style="text-align: center">عدد المقالات</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">كورونا</td>
      <td style="text-align: center">21961</td>
    </tr>
    <tr>
      <td style="text-align: center">كوفيد-19</td>
      <td style="text-align: center">1266</td>
    </tr>
    <tr>
      <td style="text-align: center">كوفيد المستجد</td>
      <td style="text-align: center">3044</td>
    </tr>
    <tr>
      <td style="text-align: center">حظر التجول</td>
      <td style="text-align: center">1087</td>
    </tr>
    <tr>
      <td style="text-align: center">منع التجول</td>
      <td style="text-align: center">1255</td>
    </tr>
  </tbody>
</table>

<p>العدد الأجمالي للمقالات بعد حذف المقالات المتكررة في حال كانت المقالة تحتوي على أكثر من كلمة من التي في الجدول السابق هو: <strong>24084 سطر</strong></p>

<h2 id="قاموس-البيانات">قاموس البيانات</h2>

<p>الجدول التالي يشرح كل عامود، نوع البيانات فيه ومثال عليها:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">العامود</th>
      <th style="text-align: center">الوصف</th>
      <th style="text-align: center">النوع</th>
      <th style="text-align: center">مثال</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">ID *</td>
      <td style="text-align: center">الرقم المميز للمقالة</td>
      <td style="text-align: center">رقم</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">1867288</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Category</td>
      <td style="text-align: center">في أي قسم في الصحيفة تم إضافة هذا المقال</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">مقالات اليوم</code> / <code class="language-plaintext highlighter-rouge">أخبار المناطق</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Source</td>
      <td style="text-align: center">مصدر الخبر، ممكن ان يكون مصدر رسمي للأخبار او كاتب المقالة</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">الرياض - واس</code> or <code class="language-plaintext highlighter-rouge">خالد بن علي المطرفي</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Date</td>
      <td style="text-align: center">التاريخ</td>
      <td style="text-align: center">تاريخ</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">2020-03-27</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Time</td>
      <td style="text-align: center">وقت نشر المقالة، في حال كان بدون نص او Null يعني أنة لم يتم إضافتة</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">12:05:51</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Title</td>
      <td style="text-align: center">عنوان المقالة</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">أمير الجوف يشدّد على تطبيق الإجراءات الاحترازيه</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Subtitle</td>
      <td style="text-align: center">العنوان الفرعي للمقالة، لا يوجد في جمع المقالات</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">رأس اجتماع غرفة العمليات المشتركة</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Text</td>
      <td style="text-align: center">نص المقالة</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">شدّد صاحب السمو الملكي الأمير فيصل بن نواف بن عبدالعزيز...</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Image *</td>
      <td style="text-align: center">اذا كانت المقالة تحتوي على صورة واحدة، سيكون رابطها هنا</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">/media/thumb/af/1d/1000_5b1f4e7dc6.jpg</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Caption</td>
      <td style="text-align: center">اذا كانت المقالة تحتوي على صورة واحدة، سيكون عنوانها هنا</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">اليابان تخزن المزيد من النفط السعودي محققة انتعاشاً للطلب</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Images *</td>
      <td style="text-align: center">اذا كانت المقالة تحتوي على أكثر من صورة، ستكون روابطها هنا</td>
      <td style="text-align: center">مصفوفة</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">['/media/thumb/08/d7/1000_a4964ed6ad.jpg', '/media/thumb/04/14/1000_127ad97cda.jpg']</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Captions</td>
      <td style="text-align: center">اذا كانت المقالة تحتوي على أكثر من صورة، ستكون عناوينها هنا</td>
      <td style="text-align: center">مصفوفة</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">['مواعيد إلكترونية لاستقبال المراجعين', 'تطبيق مواعيد الدخول في المحاكم']</code></td>
    </tr>
    <tr>
      <td style="text-align: center">URL</td>
      <td style="text-align: center">رابط المقالة</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">http://www.alriyadh.com/1867288</code></td>
    </tr>
    <tr>
      <td style="text-align: center">Terms</td>
      <td style="text-align: center">المصطلحات التي تم إستخدامها في المقالة من المصطلحات الخمسة</td>
      <td style="text-align: center">مصفوفة</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">['كورونا', 'حظر التجول']</code></td>
    </tr>
    <tr>
      <td style="text-align: center">FullText</td>
      <td style="text-align: center">تجميع للأعمدة الثلاثة Title و Subtitle و Text</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">أمير الجوف يشدّد على تطبيق الإجراءات الاحترازية\\n ورصد المخالفات رأس اجتماع ... في تحقيقها ولله الحمد</code></td>
    </tr>
    <tr>
      <td style="text-align: center">FullTextCleaned</td>
      <td style="text-align: center">العامود FullText بعد تنظيفة ( حذف النصوص الأنجليزية، الأرقام، ورموز الانتقال لسطر جديد)</td>
      <td style="text-align: center">نص</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">أمير الجوف يشدّد على تطبيق الإجراءات الاحترازية ورصد المخالفات رأس اجتماع ... في تحقيقها ولله الحمد</code></td>
    </tr>
    <tr>
      <td style="text-align: center">FullTextWords</td>
      <td style="text-align: center">العامود FullTextCleaned بعد تقسيم الكلمات فيه إلى مصفوفة وكل كلمة على حدة</td>
      <td style="text-align: center">مصفوفة</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">['أمير', 'الجوف', 'يشدّد', 'على', 'تطبيق', 'الإجراءات', ... 'الحمد']</code></td>
    </tr>
    <tr>
      <td style="text-align: center">WordsCounts</td>
      <td style="text-align: center">رقم لعدد الكلمات في النص بعد التنظيف</td>
      <td style="text-align: center">رقم</td>
      <td style="text-align: center"><code class="language-plaintext highlighter-rouge">201</code></td>
    </tr>
  </tbody>
</table>

<p>* لعرض محتوى هذة الأعمدة، قم بإضافتها بعد الرابط <code class="language-plaintext highlighter-rouge">alriyadh.com/</code></p>

<h2 id="تحليل-استكشافي-للبيانات">تحليل استكشافي للبيانات</h2>

<p>للمقالات التي تم نشرها بعد يوليو 2019.</p>

<h3 id="عدد-المقالات-يومياً">عدد المقالات يومياً</h3>

<p><a href="https://alioh.github.io/images/2021-7-27/NewsOverTimeFig.png"><img src="https://alioh.github.io/images/2021-7-27/NewsOverTimeFig.png" alt="" /></a></p>

<h3 id="عدد-المقالات-حسب-الأيام">عدد المقالات حسب الأيام</h3>

<p><a href="https://alioh.github.io/images/2021-7-27/DaysNewsfig.png"><img src="https://alioh.github.io/images/2021-7-27/DaysNewsfig.png" alt="" /></a></p>

<h3 id="عدد-المقالات-حسب-التصنيف">عدد المقالات حسب التصنيف</h3>

<p>المقالات نشرت في أكثر من تصنيف وهي كالتالي:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center"><strong>التصنيف عربي</strong></th>
      <th style="text-align: center"><strong>التصنيف انجليزي</strong></th>
      <th style="text-align: center"><strong>عدد المقالات</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">الأخبار المصورة</td>
      <td style="text-align: center">News in Photos</td>
      <td style="text-align: center">29</td>
    </tr>
    <tr>
      <td style="text-align: center">مقالات اليوم</td>
      <td style="text-align: center">Today’s Articles</td>
      <td style="text-align: center">1112</td>
    </tr>
    <tr>
      <td style="text-align: center">متابعات</td>
      <td style="text-align: center">Follow-ups</td>
      <td style="text-align: center">845</td>
    </tr>
    <tr>
      <td style="text-align: center">المنوعات</td>
      <td style="text-align: center">Miscellaneous</td>
      <td style="text-align: center">295</td>
    </tr>
    <tr>
      <td style="text-align: center">المحليات</td>
      <td style="text-align: center">Local News</td>
      <td style="text-align: center">5178</td>
    </tr>
    <tr>
      <td style="text-align: center">دنيا الرياضة</td>
      <td style="text-align: center">Sport World</td>
      <td style="text-align: center">2347</td>
    </tr>
    <tr>
      <td style="text-align: center">الدولية</td>
      <td style="text-align: center">International</td>
      <td style="text-align: center">5339</td>
    </tr>
    <tr>
      <td style="text-align: center">الاقتصاد</td>
      <td style="text-align: center">Economy</td>
      <td style="text-align: center">2658</td>
    </tr>
    <tr>
      <td style="text-align: center">الأولـــى</td>
      <td style="text-align: center">First Page</td>
      <td style="text-align: center">192</td>
    </tr>
    <tr>
      <td style="text-align: center">الأخــيــرة</td>
      <td style="text-align: center">Last Page</td>
      <td style="text-align: center">674</td>
    </tr>
    <tr>
      <td style="text-align: center">الرأي</td>
      <td style="text-align: center">Opinions</td>
      <td style="text-align: center">522</td>
    </tr>
    <tr>
      <td style="text-align: center">كلمة الرياض</td>
      <td style="text-align: center">Riyadh Message</td>
      <td style="text-align: center">80</td>
    </tr>
    <tr>
      <td style="text-align: center">طــب</td>
      <td style="text-align: center">Medicine</td>
      <td style="text-align: center">8</td>
    </tr>
    <tr>
      <td style="text-align: center">أخبار المناطق</td>
      <td style="text-align: center">Regions News</td>
      <td style="text-align: center">859</td>
    </tr>
    <tr>
      <td style="text-align: center">خزامى الصحارى</td>
      <td style="text-align: center">Deserts lavender</td>
      <td style="text-align: center">24</td>
    </tr>
    <tr>
      <td style="text-align: center">سينما</td>
      <td style="text-align: center">Cinema</td>
      <td style="text-align: center">3</td>
    </tr>
    <tr>
      <td style="text-align: center">صورة اليوم</td>
      <td style="text-align: center">Today’s Photo</td>
      <td style="text-align: center">10</td>
    </tr>
    <tr>
      <td style="text-align: center">فن</td>
      <td style="text-align: center">Art</td>
      <td style="text-align: center">101</td>
    </tr>
    <tr>
      <td style="text-align: center">قول على قول</td>
      <td style="text-align: center">Words on Words</td>
      <td style="text-align: center">7</td>
    </tr>
    <tr>
      <td style="text-align: center">محطات متحركة</td>
      <td style="text-align: center">Moving Stations</td>
      <td style="text-align: center">3</td>
    </tr>
    <tr>
      <td style="text-align: center">فيديو الرياض</td>
      <td style="text-align: center">Riyadh Video</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">ثقافة اليوم</td>
      <td style="text-align: center">Today’s Culture</td>
      <td style="text-align: center">235</td>
    </tr>
    <tr>
      <td style="text-align: center">تقارير دولية</td>
      <td style="text-align: center">World Reports</td>
      <td style="text-align: center">4</td>
    </tr>
    <tr>
      <td style="text-align: center">تقارير رسومية</td>
      <td style="text-align: center">Graphical Reports</td>
      <td style="text-align: center">14</td>
    </tr>
    <tr>
      <td style="text-align: center">الأخبار الهامة</td>
      <td style="text-align: center">Important News</td>
      <td style="text-align: center">3</td>
    </tr>
    <tr>
      <td style="text-align: center">المجتمع الدولي</td>
      <td style="text-align: center">The International Community</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">أدب الجمعة</td>
      <td style="text-align: center">Friday Literature</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">الكاريكاتير</td>
      <td style="text-align: center">Caricature</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">تحقيقات وتقارير</td>
      <td style="text-align: center">Investigations and reports</td>
      <td style="text-align: center">2</td>
    </tr>
    <tr>
      <td style="text-align: center">ثقافة السبت</td>
      <td style="text-align: center">Saturday Education</td>
      <td style="text-align: center">2</td>
    </tr>
    <tr>
      <td style="text-align: center">اخر الثقافة</td>
      <td style="text-align: center">Latest news on culture</td>
      <td style="text-align: center">19</td>
    </tr>
    <tr>
      <td style="text-align: center">آخر الأخبار</td>
      <td style="text-align: center">Latest News</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">نجوم الأمس الرياضي</td>
      <td style="text-align: center">Yesterdays Sports Starts</td>
      <td style="text-align: center">1</td>
    </tr>
  </tbody>
</table>

<p><a href="https://alioh.github.io/images/2021-7-27/NewsByCategoryHistofig.png"><img src="https://alioh.github.io/images/2021-7-27/NewsByCategoryHistofig.png" alt="" /></a></p>

<p>يمكن عرض جميع الرسوم البيانية بشكل تفاعلي في <a href="https://share.streamlit.io/alioh/alriyadh-newspaper-covid-dataset/dashboard.py">صفحة المشروع</a></p>

<h2 id="تحميل-البيانات">تحميل البيانات</h2>

<p>يمكن تحميل البيانات من صفحة المشروع في <a href="https://github.com/alioh/AlRiyadh-Newspaper-Covid-Dataset/">قيت هب</a> أو <a href="https://github.com/alioh/AlRiyadh-Newspaper-Covid-Dataset/raw/master/Alriyadh_News_Dataset.zip">الرابط المباشر</a></p>

<h2 id="الترخيص-والاستشهاد">الترخيص والاستشهاد</h2>

<h3 id="الترخيص">الترخيص</h3>
<p>يمكن تحميل البيانات بشكل مجاني تحت ترخيص <a href="https://creativecommons.org/licenses/by-nc/3.0/">Creative Commons Attribution 3.0 International license</a></p>

<h3 id="الاستشهاد">الاستشهاد</h3>

<p>عند استخدام البيانات يرجى الاستشهاد بالمصدر كالتالي:<br />
<code class="language-plaintext highlighter-rouge">Najwa Alghamdi and Ali Alohali, Saudi journalism in the age of COVID (2021).Submitted to Data in Brief.</code></p>

<p>شكر خاص لجريدة الرياض على سماحهم لنا بنشر هذة البيانات</p>]]></content><author><name></name></author><summary type="html"><![CDATA[يسعدني أنا والدكتورة نجوى الغامدي أن نشارككم قاعدة بيانات للإستخدام في الاغراض البحثية تتضمن المقالات المنشورة في جريدة الرياض السعودية والتي تشمل على كلمات لها علاقة في كوفيد-19 منذ البداية حتى 1 فبراير 2021. ومن الخطط ان يتم تحديث هذة البيانات بين فترة وأخرى.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">كتاب “مبادئ وتقنيات علم البيانات”</title><link href="https://alioh.com/ds100ar/" rel="alternate" type="text/html" title="كتاب “مبادئ وتقنيات علم البيانات”" /><published>2021-03-23T00:00:00+00:00</published><updated>2021-03-23T00:00:00+00:00</updated><id>https://alioh.com/ds100ar</id><content type="html" xml:base="https://alioh.com/ds100ar/"><![CDATA[<p>السلام عليكم، أردت كتابة بعض المعلومات البسيطة والنقاط التي استفدت منها من مشروع ترجمة كتاب <a href="https://alioh.github.io/ds-100-ar/">مبادئ وتقنيات علم البيانات</a>.</p>

<h2 id="سبب-الترجمة">سبب الترجمة</h2>

<p>لا أخفيكم الفائدة الكبيرة عندما عملت على ترجمة فصل من كتاب <a href="https://alioh.github.io/100MLBook-Chapter3/">خوارزميات أساسية في تعلم الآلة</a>، ولو أن المشروع لم يظهر للعلن ولم يتم نشرة باسمي واسم الزملاء <a href="https://github.com/iamaziz">عبدالعزيز الطويان</a> و <a href="https://www.linkedin.com/in/nuha-alghamdi-69a98888/">نهى الغامدي</a> إلا أني تعلمت الكثير من المحتوى وكانت بداية للمشروع الأخير <a href="https://alioh.github.io/ds-100-ar/">مبادئ وتقنيات علم البيانات</a>. أهم نقطة تعلمتها قبل البدء في الترجمة، هي أخذ الموافقة من الكاتب 😅. سواء كانت الترجمة بتصرف وتعديل أو بدون، أرى أن الكاتب الرئيسي يحتاج تبليغ كونك استفدت واعتمدت على محتواة بشكل كبير. الحمد لله. أخذت الموافقة من <a href="https://www.samlau.me/">سام لو</a> أحد الكتاب الرئيسيين للكتاب ومنها أنطلق المشروع في 29/7/2020 كان أول <a href="https://github.com/alioh/ds-100-ar/tree/c3975bede63f65d86e5d8088f2b7ac274d6f6cef">رفع في قيت هب</a>. سبب آخر لا اتوقع أني احتاج لذكرة هو هدف كل شئ أكتبة وهي أثراء المحتوى العربي ولو بمعلومات بسيطة وسهل الوصول لها بلغات أخرى. لا أزال أرى المحتوى العربي فقير في مواضيع كبيرة لكن بأذن الله نسعى جميعاً لتغير ذلك.</p>

<h2 id="الفائدة-الشخصية">الفائدة الشخصية</h2>

<p>في التعليم، أرى نفسي شخص سمعي، أركز أكثر عند سماع الشرح أو مشاهدته صوت وصورة. التحدي كان القراءة والقراءة أكثر من مرة. لذا أكبر فائدة لي شخصياً كانت أني ألزمت نفسي بالقراءة، والقراءة أكثر من مرة للمحتوى كي يظهر بشكل واضح ومرتب ومفهوم. بهذه الطريقة أجبرت نفسي على القراءة والإفادة والاستفادة (3 عصافير بحجر؟). وأصبح الآن مرجع لي للعودة له بأي وقت. تماماً بنفس شكل المواضيع السابقة مثل <a href="https://alioh.github.io/performance-management/">مدخل للقوائم المالية</a>، <a href="https://alioh.github.io/QI104/">ملخص كورس تفسير البيانات</a>، <a href="https://alioh.github.io/DSND-Notes-1/">ملخص كورس علم البيانات</a> و <a href="https://alioh.github.io/Machine-Learning-for-Everyone-1/">تعلم الآلة للجميع</a>.</p>

<h2 id="محتوى-الكتاب">محتوى الكتاب</h2>

<p>يغطي الكتاب مفاهيم كثيرة، لكن يحتاج القارئ أن يتقن ولو بشكل بسيط لغة بايثون كونه ما يتحدث ولا يشرح طريقة البرمجة. يبدأ أول بمعلومات تاريخية عن الإحصاء وعلاقته بالبيانات، ثم يتكلم عن دورة حياة البيانات وطريقة التعامل معها باستخدام بايثون وبانداز. بعدها يتكلم عن تنظيف البيانات وتصويرها والتحليل الإستكشافي للبيانات. يتحدث بعد ذلك عن مواضيع ممكن تفيد أي شخص (ليس فقط في مجال علم وتحليل البيانات) مثل التعامل مع النصوص باستخدام التعابير النمطية RegEx وطريقة التعامل مع قواعد البيانات ببايثون واستخدام SQL. ينتقل بعدها بالتركيز على علم البيانات والنماذج والتوقعات، النزول الاشتقاقي وطريقة تحسين النتائج، الاحتمالات والتعميم، هندسة الخصائص والنماذج الخطية والتصنيف. الكتاب أيضاً يحتوي على الكثير من العمليات الرياضية والحسابية، فهمها مهم لكن لا ليس إجباري ولن يعيقك عن فهم الأفكار وتطبيقها.</p>

<h2 id="خطوات-مستقبلية">خطوات مستقبلية</h2>

<p>المحتوى يتحدث كل فترة، وبالأصح قبل شهر صدرت نسخة جديدة أعاد فيها الكُتاب ترتيب الكتاب، تخلصوا من بعض المحتوى وأضافوا آخر. التزمت بالمحتوى القديم عندما بدأت فيه، وبإذن الله لي عودة له في حال انتهوا من الكتاب بنسخته الجديدة لتعديل المحتوى الحالي ليطابق مع المحتوى الجديد.</p>

<h2 id="التعاون">التعاون</h2>

<p>أحب أشكر مجموعة أشخاص وهم بعض من كانو يطلعون على نسخة أولية من الفصول ويقيمونها ويدققون عليها. لهم شكر خاص كونهم تعاونوا معي على إخراجه بشكله النهائي.</p>

<ul>
  <li><a href="https://www.linkedin.com/in/norah-shalawi/">نورة الشلوي</a>.</li>
  <li><a href="https://www.linkedin.com/in/nuha-alghamdi-69a98888/">نهى الغامدي</a>.</li>
  <li><a href="https://www.linkedin.com/in/ghadeer-mohammed-441b8517b/">غدير محمد</a>.</li>
  <li><a href="http://linkedin.com/in/manal-alqahtani-542bb4191">منال القحطاني</a>.</li>
  <li>رشا الشهري.</li>
  <li><a href="https://www.linkedin.com/in/raghad-aati/">رغد يحيى</a>.</li>
  <li>حسن طارق.</li>
  <li>العنود العنقري.</li>
  <li><a href="https://www.linkedin.com/in/saja-aldera-50095241/">سجا الدرع</a>.</li>
  <li><a href="https://www.linkedin.com/in/shuruqhuraysi/">شروق حريصي</a>.</li>
  <li><a href="https://twitter.com/AAlmesad">أسيل المسعد</a>.</li>
</ul>

<p>ولمن يواجه مشكلة أو خطأ يحتاج تصحيح أو تعديل، لا يتردد بالتواصل معي بأي وسيلة من وسائل التواصل الموجودة في المدونة أو عبر <a href="https://github.com/alioh/ds-100-ar/issues/new">قيت هب</a>.</p>

<p>شكراً</p>]]></content><author><name></name></author><summary type="html"><![CDATA[السلام عليكم، أردت كتابة بعض المعلومات البسيطة والنقاط التي استفدت منها من مشروع ترجمة كتاب مبادئ وتقنيات علم البيانات.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">المشاريع المفضلة في Github</title><link href="https://alioh.com/github-favorites/" rel="alternate" type="text/html" title="المشاريع المفضلة في Github" /><published>2020-12-24T00:00:00+00:00</published><updated>2020-12-24T00:00:00+00:00</updated><id>https://alioh.com/github-favorites</id><content type="html" xml:base="https://alioh.com/github-favorites/"><![CDATA[<p>في هذه المقالة سأشارككم بعض من المشاريع البرمجية ومفضلتي في Github. موقع Github باختصار هو طريقة لتخزين، مشاركة، وحفظ المشاريع البرمجية والتحكم بالإصدارات باستخدام Git.</p>

<p>إذا كنت مبرمجاً، محلل بيانات، أو مطور مواقع ولا تستخدم Github لمشاركة مشاريعك، فالأفضل لك البدء بذلك كونه من المصادر التي <a href="https://news.ycombinator.com/item?id=19413348">يبحث عنها أصحاب الشركات</a> لمراجعة مشاريع المتقدمين لديهم. يمكنك أيضا من خلاله <a href="https://firstcontributions.github.io/">المشاركة في المشاريع مفتوحة المصدر</a> مهما كانت خبرتك. إضافة إلى أنها طريقة مناسبة للتحكم بإصدارات كودك البرمجي والرجوع لأي نسخه قديمه دون الحاجة لحفظ أكثر من نسخه في جهازك. يمكنك البدء بتعلم Git و GitHub من <a href="https://try.github.io/">هنا</a>.</p>

<p>في هذه المقالة سأشارككم بعض من المشاريع من <a href="https://github.com/alioh?tab=stars">مفضلتي</a> في Github مع إضافة بعض المعلومات البسيطة عنها. بعض هذه المشاريع عبارة عن برامج مفتوحة المصدر، صفحات تعليمية، أو مصادر للقراءة وكلها لديها صفحاتها في Github، يمكنك فيها مشاهدة جميع الأكواد البرمجية والتعلم منها. هذه المشاريع هي بعض من أكثر من 850 مشروع في <a href="https://github.com/alioh?tab=stars">مفضلتي</a> لذا قد يتم إضافة المزيد في مقالات قادمة إن شاء الله.</p>

<h2 id="البيانات-وواجهات-برمجة-التطبيقات-apis">البيانات وواجهات برمجة التطبيقات APIs</h2>

<p>بيانات منوعة مختلفة المجالات.</p>

<ul>
  <li><a href="https://github.com/public-apis/public-apis">Public APIs</a>: قائمة بواجهات برمجة التطبيقات APIs مجانية.</li>
  <li><a href="https://github.com/awesomedata/awesome-public-datasets">Awesome Public Datasets</a>: بيانات عامة ومتنوعة لكثير من المجالات مثل الاقتصاد، الزراعة، الأحياء، الصحة وغيرها الكثير.</li>
  <li><a href="https://github.com/beamandrew/medical-data">Medical Data</a>: بيانات طبية متنوعة من صور ونصوص إضافة لبحوث علمية طُبقت عليها</li>
  <li><a href="https://github.com/CSSEGISandData/COVID-19">COVID-19</a>: بما أن كوفيد-19 هو الشاغل الأكثر عالمياً، هذه الصفحة تحتوي على بيانات الحالات وتحدث يومياً.</li>
</ul>

<p><br />
<br />
<br /></p>

<h2 id="الأدوات-التطبيقات-والمواقع">الأدوات، التطبيقات والمواقع</h2>

<p>تطبيقات مفتوحة المصدر، مكتبات أو أدوات لتعلم الآلة.</p>

<ul>
  <li><a href="https://carbon.now.sh/">Carbon</a>: إذا كنت تشارك اكوادك البرمجية مع أشخاص آخرين، فهذه الأداة تظهر الكود بشكل أنيق ويمكنك التحكم بالألوان والخلفية والخط. <a href="https://alioh.github.io/images/2020-12-23/carbon.png">مثال</a>.</li>
  <li><a href="https://tqdm.github.io/">TQDM</a>: مكتبة لبايثون توفر شريط لمتابعة حالة الكود البرمجي مع توقع لوقت نهايته. <a href="https://alioh.github.io/images/2020-12-23/tqdm.gif">مثال</a>.</li>
  <li><a href="https://github.com/s0md3v/Photon">Photon</a>: يطلق عليه بالإنجليزية Crawler وهي وسيلة لدخول المواقع وسحب الملفات، الصور، الروابط، وغيرها.</li>
  <li><a href="https://notable.app/">Notable</a>: تطبيق لكتابة الملاحظات يستخدم <a href="https://alioh.github.io/Markdown-reference/">المارك داون</a>.</li>
  <li><a href="https://zulko.github.io/moviepy/">MoviePy</a>: مكتبة لتعديل ملفات الفيديو في بايثون. <a href="https://alioh.github.io/images/2020-12-23/demo_preview1.jpeg">مثال</a>.</li>
  <li><a href="https://pandas-profiling.github.io/pandas-profiling/docs/master/rtd/">Pandas Profiling</a>: لعرض معلومات كاملة عن داتا فريم في مكتبة بانداز المعروفة في تحليل البيانات. كل ما عليك هو إضافة المكتبة ثم إنشاء التقرير وتظهر النتيجة. مثال <a href="https://alioh.github.io/images/2020-12-23/widgets.gif">هنا</a>، مثال للتصدير إلى ملف HTML <a href="https://pandas-profiling.github.io/pandas-profiling/examples/master/census/census_report.html">هنا</a>.</li>
  <li><a href="https://stanfordnlp.github.io/stanza/">Stanza</a>: مكتبة لتحليل معالجة اللغات الطبيعية NLP في بايثون.</li>
  <li><a href="https://pytorch.org/tutorials/">PyTorch Tutorial</a>: دروس مكتبة PyTorch المتخصصة في تعلم الآلة في بايثون.</li>
  <li><a href="https://github.com/danburzo/percollate">Percollate</a>: طريقة التحميل الصفحات أو المقالات كملفات PDF، Epub أو HTML بشكل أنيق ومرتب.</li>
  <li><a href="https://github.com/fasouto/awesome-dataviz">Awesome Dataviz</a>: قائمة طويلة بكثير من المكاتب للرسوم البيانية في لغات برمجية مختلفة.</li>
  <li><a href="https://orange.biolab.si/">Orange</a>: تحليل البيانات وإنشاء نماذج تعلم الآلة دون برمجة. (يمكن تحميل Orange مباشرة من داخل برنامج Anaconda).</li>
  <li><a href="https://ottoml.online/">OttoML</a>: مشابه بشكل كبير لتطبيق Orange ولكن كموقع ألكتروني ومتخصص في تعلم الآلة واقتراح النماذج المناسبة.</li>
  <li><a href="https://firstcontributions.github.io/">First Contributions</a>: لتعلم كيف تبدأ في المشاركة بالمشاريع مفتوحة المصدر.</li>
  <li><a href="https://github.com/sdmg15/Best-websites-a-programmer-should-visit">Websites a Programmer should visit</a>: إذا كنت مبرمج أو في المجال التقني، هذه قائمة مواقع ينصح بزيارتها.</li>
  <li><a href="https://github.com/chiphuyen/just-pandas-things">Just Pandas Thing</a>: اختصارات ومعلومات لتسهيل عملك مع مكتبة بانداز لتحليل البيانات في بايثون.</li>
  <li><a href="https://github.com/01walid/awesome-arabic">Awesome Arabic</a>: مشاريع عربية بلغات برمجية مختلفة.</li>
  <li><a href="https://ahmadai.com/shakkala/">Shakkala</a>: نموذج مفتوح المصدر لتشكيل النصوص العربية.</li>
  <li><a href="https://arbml.github.io/ARBML/Interfaces/Website/">ARBML</a>: نماذج عربية متنوعة في تعلم الآلة مفتوحة المصدر.</li>
  <li><a href="https://github.com/CAMeL-Lab/camel_tools">CAMeL</a>: مكتبة لتحليل ومعالجة اللغات الطبيعية NLP في بايثون ومتخصصة باللغة العربية.</li>
</ul>

<h2 id="الكتب-البحوث-والدورات">الكتب، البحوث والدورات</h2>

<p>دورات تعلم مفاهيم أساسية لعدة مجالات، كُتب منشورة مجاناً، صفحات مواد من الجامعات وبحوث علمية متنوعة.</p>

<ul>
  <li><a href="https://stanford.edu/~shervine/teaching/cs-229/">CS-229</a>: مادة تعلم الآلة من ستانفورد. أيضاً يمكن في نفس الصفحة زيارة مادة <a href="https://stanford.edu/~shervine/teaching/cs-221/">CS 221 الذكاء الاصطناعي</a> ومادة <a href="https://stanford.edu/~shervine/teaching/cs-230/">CS 230 التعلم العميق</a>. تتميز المادة بوجود رسوم بيانية واضحة وشرح سلس. إضافة لوجود <a href="https://stanford.edu/~shervine/l/ar/teaching/cs-229/">ترجمة عربية</a>.</li>
  <li><a href="https://ebookfoundation.github.io/free-programming-books/">Free Programming Books</a>: كُتب مجانية لتعلم البرمجة بعدة لغات.</li>
  <li><a href="https://jakevdp.github.io/PythonDataScienceHandbook/">Python Data Science Handbook</a>: أحد أفضل الكتب للبدء بعلم البيانات في بايثون.</li>
  <li><a href="https://github.com/amitness/learning">Learning</a>: قائمة لمراجع كبيرة بعدة مواضيع في علم البيانات.</li>
  <li><a href="https://github.com/ageron/handson-ml">Handson ML</a>: مشاريع في جوبتر لتعلم أساسيات تعلم الآلة والتعلم العميق باستخدام Scikit-learn و TensorFlow.</li>
  <li><a href="https://github.com/instillai/machine-learning-course">Machine Learning Course</a>: دورة في تعلم الآلة.</li>
  <li><a href="https://github.com/madewithml/basics">Basics</a>: دورة أخرى في تعلم الآلة.</li>
  <li><a href="https://github.com/Quartz/bad-data-guide">Bad Data Guide</a>: المشاكل التي قد تواجهك في عملك مع البيانات واقتراحات حلول لحلها.</li>
  <li><a href="https://virgili0.github.io/Virgilio/">Virgilio</a>: كتاب في علم البيانات.</li>
  <li><a href="https://missing.csail.mit.edu/">The Missing Semester of Your CS Education</a>: ما لم تتعلمه في مادة علوم الحاسب، يتحدث عن عدة مفاهيم لا يتم تدريسها في الجامعات.</li>
  <li><a href="https://github.com/FavioVazquez/ds-cheatsheets">Data Science Cheatsheets</a>: ملاحظات في علم البيانات لعدة مواضيع.</li>
  <li><a href="https://www.deeplearningbook.org/">Deep Learning Book</a>: كتاب في التعلم العميق.</li>
  <li><a href="https://github.com/GoogleCloudPlatform/tensorflow-without-a-phd">Tensorflow Without a PHD</a>: دورة لتعلم مكتبة Tensorflow.</li>
  <li><a href="https://d2l.ai/">D2L.AI</a>: كتاب في التعلم العميق.</li>
  <li><a href="https://atcold.github.io/pytorch-Deep-Learning/">Pytorch Deep Learning</a>: مادة من NYU في التعلم العميق.</li>
  <li><a href="https://github.com/udacity/deep-learning-v2-pytorch">Udacity Deep Leaning</a>: مادة من Udacity في التعلم العميق.</li>
  <li><a href="https://github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap">Deep Learning Papers</a>: كتب وبحوث تساعدك للبدء في التعلم العميق.</li>
  <li><a href="https://github.com/vyraun/Megalodon">Megalodon</a>: مصادر لأدوات ومراجع في تعلم الآلة والتعلم العميق.</li>
  <li><a href="https://github.com/trekhleb/homemade-machine-learning">Homemade Machine Learning</a>: امثله عملية في بايثون لخوارزميات تعلم الآلة والشبكات العصبيه باستخدام امثله عملية.</li>
  <li><a href="https://github.com/graykode/nlp-tutorial">NLP Tutorial</a>: دورة عبارة عن دروس وبحوث وتطبيقات في معالجة اللغات الطبيعية NLP.</li>
  <li><a href="https://github.com/mihail911/nlp-library">NLP Library</a>: بحوث وأوراق علمية في معالجة اللغات الطبيعية NLP.</li>
  <li><a href="https://github.com/ivan-bilan/The-NLP-Pandect">The NLP Pandect</a>: مرجع لأدوات، دروس، بحوث علمية وغيرها من المراجع في ما يخص معالجة اللغات الطبيعية NLP.</li>
  <li><a href="http://masatohagiwara.net/100-nlp-papers/">100 Must Read NLP Papers</a>: قائمة ب 100 بحث علمي عن معالجة اللغات الطبيعية NLP ينصح بقراءتها.</li>
  <li><a href="https://github.com/tpn/pdfs">PDFs</a>: مكتبة ضخمة لمواضيع وادوات مختلفة مثل البحوث العلمية، شرح الأدوات، الكتيبات التعليميه وغيرها.</li>
</ul>

<p><br />
<br />
<br /></p>

<h2 id="مصادر-تعلم-لغات-برمجة">مصادر تعلم لغات برمجة</h2>

<p>مصادر تعلم لغات برمجة أخرى غير بايثون.</p>

<ul>
  <li><a href="https://r4ds.had.co.nz/">R for Data Science</a>: كتابة تعلم R لعلم البيانات.</li>
  <li><a href="https://adv-r.hadley.nz/">Advanced R</a>: مستوى متقدم في تعلم لغة R.</li>
  <li><a href="https://phpapprentice.com/">PHP Apprentice</a>: أساسيات PHP.</li>
  <li><a href="https://phptherightway.com/">PHP The Right Way</a>: دروس متنوعة للبدء بتعلم PHP.</li>
  <li><a href="http://jstherightway.org/">JS The Right Way</a>: دروس متنوعة للبدء بتعلم Javascript.</li>
  <li><a href="https://github.com/workshopper/javascripting">Javascripting</a>: أداه في سطر الأوامر لتعلم Javascript.</li>
  <li><a href="https://jsbooks.revolunet.com/">JS Books</a>: كتب مختلفة ومتنوعة لتعلم Javascript.</li>
  <li><a href="https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/README.md">You Don’t Know JS</a>: النسخة الأولى للكتاب، الكتاب لتعلم لغة Javascript.</li>
  <li><a href="https://www.theodinproject.com/">The Odin Project</a>: دورات متنوعة في تقنيات الويب ولغاتها مثل Ruby on Rails، Nodejs، Javascript، HTML وقواعد البيانات.</li>
</ul>

<h2 id="الاستعداد-للمقابلات-الوظيفية">الاستعداد للمقابلات الوظيفية</h2>

<p>مصادر متنوعة تجهزك للاستعداد لمقابلتك الوظيفية القادمة.</p>

<ul>
  <li><a href="https://30secondsofinterviews.org/">30 Seconds of Interviews</a>: قائمة متنوعة من الأسئلة في المقابلات الوظيفية والأجوبة المناسبة لها.</li>
  <li><a href="https://github.com/Olshansk/interview">Interview</a>: قائمة متنوعة من المواضيع للاستعداد للمقابلات الوظيفية.</li>
  <li><a href="https://github.com/khangich/machine-learning-interview">Machine Learning Interview</a>: الاستعداد لمقابلة وظيفية في مجال تعلم الآلة.</li>
</ul>

<p><br />
<br />
<br /></p>

<h2 id="الطريق-لتعلم-x">الطريق لتعلم X</h2>

<p>خطوات تعلم مجال معين من الصفر.</p>

<ul>
  <li><a href="https://github.com/MrMimic/data-scientist-roadmap">Data Scientist Roadmap</a>: الطريق لتعلم علم البيانات.</li>
  <li><a href="https://github.com/microsoft/Web-Dev-For-Beginners">Web-Dev For Beginners</a>: للبدء في مجال تطوير المواقع.</li>
  <li><a href="https://roadmap.sh/">Web-Dev Roadmap</a>: الطريق للبدء بمجال تطوير المواقع.</li>
  <li><a href="https://github.com/bmorelli25/Become-A-Full-Stack-Web-Developer">Become a Full Stack Web Developer</a>: مصادر ومعلومات لتصبح مطور مواقع.</li>
  <li><a href="https://github.com/astorfi/Deep-Learning-Roadmap">Deep Learning Roadmap</a>: طريقك للتعلم العميق. يقدم لك بحوث، دورات، بيانات وكتب والمزيد للبدء في هذا المجال.</li>
  <li><a href="https://www.freecodecamp.org/">freeCodeCamp</a>: متخصص بعدة مجالات مثل تطوير المواقع، تحليل وتصوير البيانات، تعلم الآلة وأمن المعلومات وغيرها.</li>
  <li><a href="https://github.com/utilForever/game-developer-roadmap">Game Developer Roadmap</a>: طريقك لتصبح مطور ألعاب.</li>
</ul>

<h2 id="التعلم-بالتطبيق">التعلم بالتطبيق</h2>

<p>مصادر أخرى تقدم دورات لمواضيع مختلفة عن طريق تطبيقات عملية.</p>

<ul>
  <li><a href="https://github.com/WillKoehrsen/machine-learning-project-walkthrough">Machine Learning Project Walkthrough</a>: تطبيقات عملية لتعلم الآلة على بيانات حقيقة.</li>
  <li><a href="https://github.com/danistefanovic/build-your-own-x">Build Your Own X</a>: تطبيقات عملية لبناء كثير من البرامج في مجالات مختلفة ولغات متنوعة.</li>
  <li><a href="https://enlight.nyc/">Enlight</a>: تطبيقات متنوعة لعدد كبير من اللغات البرمجية ويساعدك على بناء مشاريع عملية.</li>
  <li><a href="https://github.com/tuvtran/project-based-learning">Project Based Learning</a>: تعلم لغات مختلفة عن طريق بناء المشاريع.</li>
  <li><a href="https://projectlearn.io/">Project Learn</a>: تطبيقات عملية متنوعة بعدة لغات ومكتبات لتطوير الويب، تطوير تطبيقات الهواتف، تعلم الآلة والذكاء الاصطناعي والألعاب.</li>
</ul>

<h2 id="علوم-الحاسب">علوم الحاسب</h2>

<p>تعلم علوم الحاسب من عدة مصادر، تقدم هذه الصفحات جدول مرتب لك لمواد علمية من عدة جامعات تساعدك على الحصول على ما يساوي شهادة في علوم الحاسب</p>

<ul>
  <li><a href="https://github.com/ossu/computer-science">Open Source Society University</a>.</li>
  <li><a href="https://github.com/ForrestKnight/open-source-cs">Open Source CS</a>.</li>
  <li><a href="https://github.com/P1xt/p1xt-guides">Computer Science and Programming</a>.</li>
</ul>

<h2 id="أخرى">أخرى</h2>

<ul>
  <li><a href="https://github.com/gothinkster/realworld">RealWorld</a>: الفكرة هي تصميم موقع مشابه ل <a href="https://Medium.com">Medium.com</a> بعدة لغات برمجة ومكاتب مختلفة، يمكنك تصفح هذه البرامج والتعلم منها.</li>
  <li><a href="https://github.com/mahmoud/awesome-python-applications">Awesome Python Applications</a>: برامج مفتوحة المصدر تم تطويرها باستخدام بايثون في عدة مجالات.</li>
</ul>

<p>هذه بعض من <a href="https://github.com/alioh?tab=stars">مفضلتي</a> في Github. تواصل معي على <a href="https://twitter.com/alioh">تويتر</a> وأقترح لي مشاريعك أو صفحاتك المفضلة!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[في هذه المقالة سأشارككم بعض من المشاريع البرمجية ومفضلتي في Github. موقع Github باختصار هو طريقة لتخزين، مشاركة، وحفظ المشاريع البرمجية والتحكم بالإصدارات باستخدام Git.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">مدخل للقوائم المالية</title><link href="https://alioh.com/performance-management/" rel="alternate" type="text/html" title="مدخل للقوائم المالية" /><published>2020-04-22T00:00:00+00:00</published><updated>2020-04-22T00:00:00+00:00</updated><id>https://alioh.com/performance-management</id><content type="html" xml:base="https://alioh.com/performance-management/"><![CDATA[<p>من فترة اتابع وأقرأ عدة مقالات عن المحاسبة، المالية، وأسواق الأسهم وكيفية بناء نماذج تعلم آلة لتوقع مستقبل سعر شركة، وكيفية إيجاد الشركات الجيدة عن غيرها وتقييم الشركات حسب قوائمها المالية.</p>

<p>قبل ان أبدأ بالتطبيق مثلاً على السوق السعودي، من الأفضل أن افهم لغة سوق المال، قرأت وأخذت أكثر من مادة بعدة مواقع عن المالية والمحاسبة وحبيت أشاركها معكم، إذا كان هدفك فهم السوق فممكن تكون هذي بداية مناسبة قبل الدخول والقراءة أكثر بالتفاصيل من المتخصصين في هذا المجال. وهدف آخر ان تكون مرجع لي أو لأي شخص أراد مراجعة بعض المصطلحات المالية.</p>

<p>المقالة تحدث بين فترة وفترة لإضافة محتوى، مؤشرات، او معلومات جديده.</p>

<h3 id="مقدمة">مقدمة</h3>
<p><strong>المحاسبة</strong>: توثيق وتسجيل وتصنيف العمليات المالية لإعداد القوائم المالية، المحاسب يعد القوائم المالية كمدخلات للمدير المالي لمساعدته على اتخاذ القرارات المالية.<br />
<strong>الإدارة المالية</strong>: قراءة وتفصيل وتحليل القوائم المالية بهدف اتخاذ قرارات مالية.
أنواع القرارات المالية:</p>
<ul>
  <li>تشغيلية.</li>
  <li>تمويلية.</li>
  <li>استثمارية.</li>
</ul>

<p>أنواع الإدارات المالية:</p>
<ul>
  <li>التي تخص القرارات التشغيلية.</li>
  <li>التي تخص المجالات التمويلية.</li>
  <li>التي تخص النشاط الاستثماري.</li>
</ul>

<h3 id="الدورة-المحاسبية">الدورة المحاسبية</h3>

<p><strong>النظام المحاسبي</strong>: جميع العمليات الحسابية التي يتم توثيقها تندرج تحت الأصول الخمسة، وهي:</p>
<ul>
  <li>الأصول بتفاصيلها.</li>
  <li>الالتزامات ( لمطلوبات).</li>
  <li>حقوق الملكية.</li>
  <li>الإيرادات.</li>
  <li>المصروفات.</li>
</ul>

<p><strong>الدورة المحاسبية</strong>: تبدأ عند توثيق العملية المالية وتسجل في مُستند مالي إلى أن تنتهي على شكل قوائم مالية.</p>

<p><img src="https://alioh.github.io/images/2020-4-23/Accounting-Cycle.png" alt="" /></p>

<p><strong>القوائم المالية - Financial Statements</strong>:</p>
<ul>
  <li>قائمة الدخل - Income statement:
    <ul>
      <li>إيرادات Revenues.</li>
      <li>مصروفات Expenses.<br />
إيرادات - مصروفات = صافي الدخل ( ربح / خسارة )</li>
    </ul>
  </li>
  <li>قائمة المركز المالي (الميزانية ) - Balance sheet:
    <ul>
      <li>الأصول Assets.</li>
      <li>الالتزامات Liabilities.</li>
      <li>حقوق الملكية Equity.</li>
    </ul>
  </li>
</ul>

<h3 id="القوائم-المالية---financial-statements">القوائم المالية - Financial Statements</h3>

<p><strong>القوائم المالية</strong>: تُعد كل شهر. وهي:</p>
<ul>
  <li><strong>قائمة الدخل - Income statement</strong>: تقيس ربحية المنشأة من خلال معرفة الفرق بين الإيرادات المصروفات.</li>
  <li><strong>قائمة المركز المالي (الميزانية) - Balance sheet</strong>: تبين حجم الأصول والالتزامات وحقوق الملكية.</li>
  <li><strong>قائمة التدفقات النقدية - Statement of cash flows</strong>: توضح حجم الأموال الداخلة والخارجة من المنشأة ورصيدها المتبقي.</li>
</ul>

<p><strong>قائمة الدخل - Income statement</strong>:</p>
<ol>
  <li><strong>الإيرادات - Revenues</strong>: الأرباح من المبيعات، ويُخصم منها:
    <ul>
      <li><strong>تكلفة الإيرادات - Cost of goods sold</strong>: ما كلف المنشأة لبيع المنتج، ومن الممكن أن تكون مصاريف عمالة أو مصاريف إنتاج أو اي شئ دفع لبيع المنتج.</li>
    </ul>
  </li>
  <li><strong>المصروفات - Expenses</strong>: مصاريف تشغيلية مثل إيجار، رواتب، صيانه، هلاك، كهرباء… الخ.</li>
  <li><strong>صافي الدخل - Profit or loss</strong>: الإيرادات - المصروفات. ( بعد الزكاة = خصم 2.5%، الزكاة تحسب في حال تحقيق ارباح).</li>
</ol>

<p>مثال لقائمة الدخل (أضغط على الصورة للتكبير):
<a href="https://alioh.github.io/images/2020-4-23/income-statement.jpg"><img src="https://alioh.github.io/images/2020-4-23/income-statement.jpg" alt="" /></a></p>

<p><strong>قائمة المركز المالي - Balance sheet</strong>: يجب أن تتساوى أوجه صرف الأموال مع مصادر الأموال. الأصول = الالتزامات + حقوق الملاك.</p>
<ol>
  <li><strong>الأصول - Assets</strong>: أوجه صرف أموال الشركة.
    <ul>
      <li><strong>المتداولة - Current</strong>: النقدية، حساب البنك، المخزون، أوراق القبض، المدينون، أوراق المؤسسة.</li>
      <li><strong>الثابتة - Non-current</strong>: الأراضي، المباني، السيارات، الأثاث، الأجهزة والمعدات.</li>
      <li><strong>الغير ملموسة - Intangible</strong>: العلامة التجارية، الشهرة، الاسم التجارية، التراخيص، دراسة الجدوى.</li>
    </ul>
  </li>
  <li><strong>الالتزامات - Liabilities</strong>: من مصادر الأموال، مثل القروض.
    <ul>
      <li><strong>قصيرة الأمد - Current</strong>: الالتزامات المتوقع دفعها خلال سنة.</li>
      <li><strong>طويلة الأمد - Non-current</strong>: الالتزامات المتوقع دفعها بعد أكثر من سنة.</li>
    </ul>
  </li>
  <li><strong>حقوق الملاك - Equity</strong>: من مصادر الأموال، وهي مساهماتهم في الشركة.</li>
</ol>

<p>مثال لقائمة مالية (أضغط على الصورة للتكبير):
<a href="https://alioh.github.io/images/2020-4-23/balance-sheet.jpg"><img src="https://alioh.github.io/images/2020-4-23/balance-sheet.jpg" alt="" /></a></p>

<p><strong>قائمة التدفقات النقدية - Statement of cash flows</strong>: تقيس مصادر الأموال سواء دخولها أو خروجها من ثلاث أوجه:</p>
<ol>
  <li><strong>النشاط التشغيلي - Operating</strong>: الأموال التي تزيد إيرادات المنشأة (الإيرادات). الأموال التي تقلل إيرادات المنشأة (المصروفات). الأموال التي يتم جمعها خلال سنة. لا تشملها <strong>الإستهلاك</strong> و<strong>إطفاء الخسائر</strong>.</li>
  <li><strong>النشاط التمويلي - Financing</strong>: القروض، وأقساط دفعها.</li>
  <li><strong>النشاط الاستثماري - Investing</strong>: المبالغ من بيع أصول المنشأة أو شراء أصول جديده.</li>
</ol>

<p>مثال لقائمة التدفقات النقدية (أضغط على الصورة للتكبير):
<a href="https://alioh.github.io/images/2020-4-23/cash-flows.jpg"><img src="https://alioh.github.io/images/2020-4-23/cash-flows.jpg" alt="" /></a></p>

<h3 id="التقييم-والتحليل-المالي">التقييم والتحليل المالي</h3>

<p><strong>التقييم المالي</strong>: تقييم قوائم الشركة (الدخل، الميزانية، التدفقات النقدية)، طُرق التقييم المالي:</p>
<ul>
  <li><strong>تحليل نقطة التعادل</strong>: النقطة التي تتعادل فيها الإيرادات مع المصروفات. تحقيق هدف مالي يعادل مبلغ المصروفات أو أعلى.</li>
  <li><strong>فترة الاسترداد</strong>: الفترة التي سيتم فيها استرداد رأس المال المُستثمر في الشركة.</li>
</ul>

<p><strong>التحليل المالي</strong>: تحليل القوائم، سواء شهرية او سنوية، وطُرق التحليل هي:</p>
<ul>
  <li><strong>التحليل العامودي أو الرأسي</strong>: مقارنة بند مع بنود أخرى. مثلاً مصروفات الرواتب مقارنه بمجموع المصروفات. تتم المقارنة لمعرفة الاحتياجات المالية للشركة.</li>
  <li><strong>التحليل الأفقي</strong>: مقارنة بند مع نفس البند في فترة سابقة. مثلاً مصروفات الصيانة لشهر فبراير مع مصروفات الصيانة لشهر يناير. توضح أسباب التغييرات المالية في الشركة.</li>
  <li><strong>تحليل النسب المالية</strong>: مؤشرات مالية ثابتة تقيس أداء الشركة من عدة جوانب، سأركز هنا على الشركات في سوق الأسهم، وللإختصار راح استخدم الرموز التالية:</li>
</ul>

<table>
  <thead>
    <tr>
      <th style="text-align: center">المعنى</th>
      <th style="text-align: center">الرمز</th>
      <th style="text-align: center"> </th>
      <th style="text-align: center">المعنى</th>
      <th style="text-align: center">الرمز</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">كل ما أرتفع الرقم كان أفضل</td>
      <td style="text-align: center">🔼</td>
      <td style="text-align: center"> </td>
      <td style="text-align: center">كل ما انخفض الرقم كان أفضل</td>
      <td style="text-align: center">🔽</td>
    </tr>
  </tbody>
</table>

<hr />

<table>
  <thead>
    <tr>
      <th style="text-align: center">المؤشر</th>
      <th style="text-align: center">التعريف</th>
      <th style="text-align: center">العملية الحسابية<br />(إضغط على الصورة للتكبير)</th>
      <th style="text-align: center">الرمز</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">Gross Margin<br />الربح الإجمالي<br />%</td>
      <td style="text-align: center">نسبة نجاح المنشأة في تحقيق أرباح مقابل نفقاتها لإنشاء المنتجات</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/gross-margin.jpg"><img src="https://alioh.github.io/images/2020-4-23/gross-margin.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
    <tr>
      <td style="text-align: center">Profit Margin<br />صافي الدخل<br />%</td>
      <td style="text-align: center">نسبة الربح بعد خصم تكاليف الإنتاج</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/net-profit.jpg"><img src="https://alioh.github.io/images/2020-4-23/net-profit.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
    <tr>
      <td style="text-align: center">Return per share<br />العائد على السهم</td>
      <td style="text-align: center">قياس ربح كل سهم في المنشأة</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/eps.jpg"><img src="https://alioh.github.io/images/2020-4-23/eps.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
    <tr>
      <td style="text-align: center">Return on assets<br />العائد على الأصول<br />%</td>
      <td style="text-align: center">مقارنة أرباح المنشأة مع كل وحدة من الأصول</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/roa.jpg"><img src="https://alioh.github.io/images/2020-4-23/roa.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
    <tr>
      <td style="text-align: center">Return on equity<br />العائد على حقوق المساهمين<br />%</td>
      <td style="text-align: center">قدرة المنشأة على تحويل الأموال المستثمرة فيها إلى أرباح</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/roe.jpg"><img src="https://alioh.github.io/images/2020-4-23/roe.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
    <tr>
      <td style="text-align: center">Price–earnings ratio<br />مكرر الأرباح</td>
      <td style="text-align: center">متى يمكن إعادة الأموال المستثمرة في المنشأة</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/per.jpg"><img src="https://alioh.github.io/images/2020-4-23/per.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽<br />من 1-15</td>
    </tr>
    <tr>
      <td style="text-align: center">Liabilities to total assests<br />المطلوبات إلى الموجودات</td>
      <td style="text-align: center">قدرة المنشأة على تسديد التزاماتها</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/ltoa.jpg"><img src="https://alioh.github.io/images/2020-4-23/ltoa.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽</td>
    </tr>
    <tr>
      <td style="text-align: center">Debt-to-equity ratio<br />المطلوبات إلى حقوق المساهمين</td>
      <td style="text-align: center">نسبة الإلتزامات (ديون-ذمم) مقابل حقوق المساهمين</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/deratio.jpg"><img src="https://alioh.github.io/images/2020-4-23/deratio.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽 أقل من 1</td>
    </tr>
    <tr>
      <td style="text-align: center">Debt to total assests<br />القروض إلى الموجودات</td>
      <td style="text-align: center">حجم القروض مقارنة بما لدى المنشأة</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/dtoa.jpg"><img src="https://alioh.github.io/images/2020-4-23/dtoa.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽</td>
    </tr>
    <tr>
      <td style="text-align: center">Book value<br />القيمة الدفترية</td>
      <td style="text-align: center">قيمة المنشأة حسب الورق</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/bvalue.jpg"><img src="https://alioh.github.io/images/2020-4-23/bvalue.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽</td>
    </tr>
    <tr>
      <td style="text-align: center">Price to book (P/B) value<br />مضاعف القيمة الدفترية</td>
      <td style="text-align: center">يقيس سعر سهم المنشأة مقارنه بقيمتها الدفترية</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/pbvalue.jpg"><img src="https://alioh.github.io/images/2020-4-23/pbvalue.jpg" alt="" /></a></td>
      <td style="text-align: center">🔽<br />من 1-3</td>
    </tr>
    <tr>
      <td style="text-align: center">Dividend Yield<br />العائد على الأرباح الموزعة</td>
      <td style="text-align: center">نسبة الربح الموزع مقارنة بالسعر الحالي</td>
      <td style="text-align: center"><a href="https://alioh.github.io/images/2020-4-23/dividend_yield.jpg"><img src="https://alioh.github.io/images/2020-4-23/dividend_yield.jpg" alt="" /></a></td>
      <td style="text-align: center">🔼</td>
    </tr>
  </tbody>
</table>

<p>تحديث 23/10/2020: <a href="https://www.argaam.com/ar/article/articledetail/id/1413009">مقاله ممتازه عن الشركات والنسب الماليه في أرقام</a></p>

<p>سيتم إضافة المزيد لاحقاً</p>

<hr />

<p><strong>القرارات المالية</strong>: اتخاذ قرار بناء على التحليل والتقييم المالي، تحدد المخاطر والتحديات القادمة للمنشأة. أنواعها:</p>
<ul>
  <li><strong>تشغيلية - Operating</strong>.</li>
  <li><strong>تمويله - Financing</strong>.</li>
  <li><strong>استثمارية - Investing</strong>.</li>
</ul>

<h3 id="التخطيط-المالي">التخطيط المالي</h3>

<p><strong>التخطيط المالي</strong>: استعراض القوائم المالية، فهم ما حدث ووضع خطط مالية مُستقبلية لكُل قائمة. يسعى المدير المالي في التخطيط لمعرفة التالي:</p>
<ul>
  <li>حجم الأموال التي تحتاجها المنشأة.</li>
  <li>حجم المصروفات المستقبلية.</li>
  <li>حجم الإيرادات التي ستتحقق.</li>
  <li>حجم الأصول المطلوب توفرها.</li>
  <li>حجم الالتزامات المتوقعة.</li>
  <li>حجم السيولة المطلوب توفرها.</li>
</ul>

<p><strong>موازنة قائمة الدخل (قائمة الدخل التقديرية)</strong>: الفرق بينها وبين قائمة الدخل المُعدة من قبل المُحاسب، ان قائمة الدخل المُعَدة من المُحاسب هي لفترة سابقة لأرقام حقيقية، أما التقديرية هي لأرقام تقديرية ومتوقعة للفترة القادمة.</p>

<p><strong>موازنة المركز المالي (الميزانية التقديرية)</strong>: وضع ارقام تقديرية للأصول، الالتزامات وحقوق الملكية.</p>

<p><strong>التدفقات النقدية المستقبلية</strong>: حجم السيولة المتوقع توفرها في المنشأة بناءًا على أنشطتها.</p>

<p>مراجع:</p>
<ul>
  <li>مادة <a href="https://kkux.org/courses/course-v1:KKU+PM101+2020_M1/about">إدارة الأداء المالي بفاعلية</a> من جامعة الملك خالد.</li>
  <li>مادة <a href="https://courses.corporatefinanceinstitute.com/courses/learn-to-read-financial-statements-free-course">Reading Financial Statements</a> من <a href="https://corporatefinanceinstitute.com/">CFI</a>.</li>
  <li>مصدر القوائم المالية <a href="https://sa.investing.com/equities/united-wire-factories-financial-summary">Investing</a>.</li>
  <li>النسب المالية: <a href="https://learn.tradimo.com/bna-mhfzt-astthmaryt-mn-alashm/nsb-alada-almaly-al-ayd-ly-alashm-wras-almal-walaswl">1</a>, <a href="https://www.aleqt.com/2013/10/18/article_793557.html">2</a>, <a href="https://twitter.com/abu_saleh_0/status/1220436724616179713">3</a>, <a href="https://mafaheem.info/?cat=6">4</a>, <a href="https://www.argaam.com/ar/article/articledetail/id/511318">5</a>, <a href="https://www.youtube.com/watch?v=v-2pc2s-384">6</a>, <a href="https://www.derayah.com/Html/ar/learning/financialanalysis.html">7</a>, <a href="https://www.youtube.com/watch?v=WMw_vvg3Afw">8</a></li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[من فترة اتابع وأقرأ عدة مقالات عن المحاسبة، المالية، وأسواق الأسهم وكيفية بناء نماذج تعلم آلة لتوقع مستقبل سعر شركة، وكيفية إيجاد الشركات الجيدة عن غيرها وتقييم الشركات حسب قوائمها المالية.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ملخص كورس تفسير البيانات</title><link href="https://alioh.com/QI104/" rel="alternate" type="text/html" title="ملخص كورس تفسير البيانات" /><published>2020-04-10T00:00:00+00:00</published><updated>2020-04-10T00:00:00+00:00</updated><id>https://alioh.com/QI104</id><content type="html" xml:base="https://alioh.com/QI104/"><![CDATA[<p>السلام عليكم، ست أشهر تقريباً من آخر مقال نشرته هنا، ضغط عمل وأشياء أخرى، لكن في أشياء مخطط لها وشغال عليها وراح تنشر قريب ان شاء الله،  في فترة الحجر الحالية حاولت استفيد من وقتي.</p>

<p>أخذت كورس من <a href="http://www.ihi.org/">معهد تحسين الرعاية الصحية</a>، عن أدوات التحليل بالأخص Run Chart, Control Chart, Histograms, Pareto Charts  و Scatter Plots.<br />
عنوان الكورس: (QI 104: Interpreting Data: Run Charts, Control Charts, and Other Measurement Tools) ورابط الكورس <a href="http://app.ihi.org/lms/coursedetailview.aspx?CourseGUID=7ef37a50-827f-477b-b603-9b4eef065fe6&amp;CatalogGUID=6cb1c614-884b-43ef-9abd-d90849f183d4&amp;LessonGUID=00000000-0000-0000-0000-000000000000">هنا</a> <em>اذا وصلت لصفحة خاطئة ابحث بأسم المادة في قوقل</em></p>

<p>طبعاً كامل المادة بالأنجليزي ودونت ملاحظاتي ايضاً بالأنجليزي فلذا خصصت لها صفحة منفصلة على الرابط التالي: <a href="https://alioh.github.io/IHI-QI104">https://alioh.github.io/IHI-QI104</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[السلام عليكم، ست أشهر تقريباً من آخر مقال نشرته هنا، ضغط عمل وأشياء أخرى، لكن في أشياء مخطط لها وشغال عليها وراح تنشر قريب ان شاء الله، في فترة الحجر الحالية حاولت استفيد من وقتي.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">خوارزميات أساسية في تعلم الآلة</title><link href="https://alioh.com/100MLBook-Chapter3/" rel="alternate" type="text/html" title="خوارزميات أساسية في تعلم الآلة" /><published>2019-10-25T00:00:00+00:00</published><updated>2019-10-25T00:00:00+00:00</updated><id>https://alioh.com/100MLBook-Chapter3</id><content type="html" xml:base="https://alioh.com/100MLBook-Chapter3/"><![CDATA[<p>هذا المنشور هو ترجمة (حرفية) للفصل الثالث <a href="http://themlbook.com">“لكتاب المائة صفحة في تعليم الآلة”</a> من تأليف أندري بوركوف.</p>

<h1 id="الفصل-الثالث-خوارزميات-أساسية">الفصل الثالث: خوارزميات أساسية</h1>

<p>في هذا الفصل، سنشرح خمس خوارزميات ليست فقط هي الأكثر شهره ولكن أيضاً إما تكون هي الأكثر فاعليه أو تستخدم كجزء من أجزاء خوارزميات أخرى.</p>

<h2 id="الإنحدار-الخطي">الإنحدار الخطي</h2>

<p>يعتبر الإنحدار الخطي من أشهر خوارزميات الإنحدار والذي يتشكل فيه النموذج بشكل خطي بناءاً على الخصائص المدخله فيه.</p>

<h3 id="مشكلة">مشكلة</h3>

<p>لدينا مجموعه من الأمثله المصنفة \(\{(x_{i},y_{i})\}_{i=1}^{n}\)، هنا \(N\) هو حجم المجموعة، \(x_{i}\) هي أبعاد متجه الخواص للمثال \(i=1 ... N\)، \(y_{i}\) هو رقم صحيح والهدف \((y_{i} \in R)\) وكل خاصية \(x_{i} ^{(j)}, j = 1 ... D\) هي رقم صحيح أيضاً.</p>

<p>نريد أن نبني نموذج \(f_{w,b} (x)\) بشكل خطي من الخصائص المعطاه في المثال \(x\):</p>

<center>
$$f_{w,b} (x) = wx + b$$  


المعادلة (1)
</center>

<p>فيها \(w\) عبارة عن متجه \(D\)-الأبعاد من المدخلات، \(b\) هي رقم صحيح و \(wx\) هي ضرب نقطي. الرمز \(f_{w,b}\) يعني ان النموذج \(f\) لديه مدخلين: \(w\) و \(b\).
سنستخدم النوذج لنتوقع \(y\) المجهولة للمعطى \(x\) كالتالي: \(y = f_{w,b} (x)\). نموذجين يعطون مدخلين اثنين \((w,b)\) سيخرجون على الأرجح توقعين اثنين إذا تمت تجربتهما على نفس المثال. نريد إيجاد النتائج الأمثل \((w*,b*)\). بالتأكيد، النتائج الأفضل للمدخلات ستُعرف النموذج الذي يُنتج أكثر التوقعات دقة.<br />
كما تلاحظ شكل النموذج الخطي في المعادلة (1) مشابة بشكل كبير لشكل نموذج متجهات الدعم SVM. الفرق الوحيد في الإشارة. يتشابهة النموذجان بشكل كبير. ولكن، أبعاد الخط العازل في متجهات الدعم SVM يتحكم بإتخاذ القرار: يستخدم للفصل بين مجموعتين. وبهذا، يجب أن يكون أبعد ما يكون بين كل مجموعة والأخرى. في الجانب الآخر، أبعاد الخط العازل في الإنحدار الخطي يتم إختيارة ليكون أقرب ما يكون لكل بيانات التدريب.<br />
يمكنك مشاهدة أهمية النقطة السابقة في الرسم البياني التالي. يُعرض خط الإنحدار (اللون الأزرق الفاتح) للبيانات (النقط الزرقاء) بشكل أحادي الأبعاد. يمكننا إستخدام الخط لتوقع نتائج \(y_{new}\) للبيانات الغير مصنفة المدخله \(x_{new}\) التي لم تستخدم في بناء النموذج. اذا كان المثال متجهة ذات \(D\)-الأبعاد، الفارق الوحيد سيكون ان نموذج الإنحدار لن يكون خطاً ولكن سطح مستوي (لمتجة الخواص ثنائية الأبعاد) أو لفائض بعدي \(D &gt; 2\).</p>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig1.png" alt="مثال لإنحدار خطي" width="400" align="middle" />  


صورة 1: إنحدار خطي لمثالث أحادي الأبعاد
</center>

<p>يتبين الآن أهمية أن يبقى إنحدار الخط الفاصل أقرب قدر الإمكان إلى بيانات التدريب: إذا كان الخط الازرق بعيد عن النقاط الزرقاء، فأن التوقع \(y_{new}\) سيكون غالباً خاطئ.</p>

<h3 id="الحل">الحل</h3>

<p>لإيجاد الحل المطلوب، خطوة التحسين في الإنحدار الخطي والتي تهدف لإيجاد القيم المثلى لـ \(w^*\) و \(b^*\) تحاول التقليل من التالي:</p>

<center>
$$\displaystyle \min_{w,b} \frac{1}{N} \displaystyle  \sum_{i=1...N} (f_{x,b}(x_{i}) - y_{i})^2$$  


المعادلة (2)
</center>

<p>التعبير \((f(x_{i}) - y_{i})^2\) يطلق عليه <strong>دالة الخسارة</strong>. تقيس الدالة الأمثلة \(i\) التي أخطأت تصنيفها. هذا النوع من دالة الخسارة يطلق عليه <strong>دالة الخسارة المربعه Squared Error Loss</strong>. جميع الخوارزميات التي تعتمد على النماذج لديها دوال خسارة وما نفعلة لإيجاد النموذج الأفضل هو تقليل <strong>متوسط الخسارة</strong> ويطلق عليه أيضاً <strong>الخطر التجريبي Empirical Risk</strong>. متوسط الخسارة للنموذج هو متوسط جميع الأخطاء التي وُجِدت بعد تطبيق النموذج على بيانات التدريب.<br />
لماذا الخسارة في الإنحدار الخطي دالة مُربعه؟ لماذا لا نجد القيمة المطلقة للفرق بين الأهداف الصحيحه \(y_{i}\) وقيمة التوقع \(f(x_{i})\) وإستخدامها لإيجاد الأخطاء؟ يمكننا ذلك. ويمكننا أيضاً إستخدام التكعيب بدلاً من التربيع.<br />
الآن قد يتضح عدد القرارات التي تبدون عشوائية التي إتخذنائها عند تصميمنا لخوارزمية تعلم الآلة: قررنا إستخدام مزيج من الخصائص الخطية لتوقع النتائج. ولكن يمكن ان نستخدم التربيع او دالة متعددة الحدود لتجميع قيم الخصائص. يمكننا أيضاً إستخدام أي دالة خسارة أخرى نراها مناسبة: الفرق المطلق بين \(f(x_{i})\) و \(y_{i}\)، أو تكعيب الفرق بينهما; <strong>الخسارة الثنائية Binary Loss</strong> (1 عندما \(f(x_{i})\) و \(y_{i}\) مختلفين و 0 عندما يكونا متشابهين) قد تكون خيار آخر، صحيح؟</p>

<p>إذا إتخذنا قرارات أخرى لطريقة تشكيل النموذج، طريقة تشكيل دالة الخسارة، وإختيار الخوارزمية التي ستقلل متوسط الخسارة لإيجاد القيم المناسبة للمدخلات، سنكون وقتها قد إخترعنا خوارمزية تعلم آلة مختلفة. يبدو ذلك سهلاً أليس كذلك؟ ولكن لا تستعجل في إختراع خوارزمية جديدة. كونها مختلفة لا يعني أنها ستعمل جيداً في التجارب.</p>

<p>يخترع الأشخاص خوارزميات تعلم جديده لسببين:<br />
    - الخوارزمية الجديده تحل مشكلة عمليه أفضل من أي خوارزمية أخرى موجودة.<br />
    - الخوارزمية الجديده لديها ضمانات نظرية أفضل عن جودة النموذج التي تنشأة.</p>

<p>المبرر العملي لإختيار نموذج خطي هو سهولته. لماذا نستخدم نموذج مُعقد عندما يمكننا إستخدام السهل؟ سبب آخر هو ان النموذج الخطي نادراً ما يتعرض لفرط التخصيص. <strong>فرط التخصيص Overfitting</strong> هي خاصية في النموذج تجعلة يتوقع بشكل صحيح جداً للأمثلة المستخدمة وقت التدريب ولكن دائماً ما يخطئ عندما تقدم لهم بيانات ليست موجودة ولم تمر على الخوارزمية في وقت التدريب.</p>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig2.png" alt="مثال فرط التخصيص" width="400" align="middle" />  


صورة 2: فرط التخصيص
</center>

<p>يظهر مثال في الصورة 2 عن فرط التخصيص. البيانات التي أستخدمت لبناء خط الإنحدار باللون الأحمر هي نفسها التي أستخدمت في الصورة 1، الفرق الوحيد هنا هي انها إنحدار أحادي Polynomial Regression بدرجة 10. يتوقع الإنحدار بشكل صحيح لكل البيانات المُدربه، ولكن سيفشل بشكل واضح مع بيانات جديده غير مُدرب عليها. سنتكلم أكثر عن فرط التخصيص وكيفية تفادية في الفصل الخامس.<br />
والآن نعرف لماذا الإنحدار الخطي مفيد: لأنه لا يتفرط بالتخصيص بشكل كبير. ولكن ماذا عن الخسارة التربيعية؟ لماذا قررنا أنها ستكون تربيعية؟ في 1705، عالم الرياضيات الفرنسي أدريان ماري ليجاندر، أول من نشر فكرة جمع التربيع لقياس أداء النموذج قال أن تربيع الخطأ قبل جمعة خطوة مناسبة. لماذا قال ذلك؟ القيمة المطلقة غير مناسبة، لأن ليس لديها مشتق مستمر، مما يجعل الداله غير عملية. الدوال الغير عملية تجلب لنا صعوبات عند إستخدام الجبر الخطي لإيجاد أقرب شكل للحل لمشكلة تحسين للنموذج. الشكل الأقرب لإيجاد الدالة الأمثل هي التعبيرات الجبرية البسيطة وغالباً ما يفضل إستخدام طرق التحسين العددية المعقدة، مثل <strong>نزول إشتقاقي Gradient Descent</strong>.</p>

<p>الأخطاء التربيعية أيضاً مفيدة لأنها تضخم الفرق بين النتائج الصحيحة والتوقعات بناءاً على الفرق. من الممكن أيضاً رفعها إلى 3 أو 4، ولكن مشتقاتها ستكون معقدة للعمل بها.<br />
أخيراً، لماذا نهتم بمشتقة متوسط الخسارة؟ تذكر أن في علم الجبر إذا استطعت إيجاد مشتقة الدالة في المعادلة (2)، يمكننا حينها مساواة الإشتقاق إلى صفر وإيجاد الحل للمعادلات التي ستعطينا القيم الأمثل لـ \(w^*\) و \(b^*\). يمكنك تجربة ذلك بنفسك بدقائق معدودة.</p>

<h2 id="الإنحدار-اللوجستي">الإنحدار اللوجستي</h2>

<p>أول شئ أقولة عن الإنحدار اللوجستي انه ليس إنحدار، بل خوارزمية تصنيف. الإسم جاء من الإحصاء وذلك بسبب ان العمليات الحسابية للإنحدار اللوجستي مشابهة بشكل كبير لتلك في الإنحدار الخطي.</p>

<p>سنشرح الإنحدار اللوجستي في مثال تصنيف ثنائي. ولكن يمكن إستخدامة لأي حجم من أحجام التصنيف.</p>

<h3 id="مشكلة-1">مشكلة</h3>

<p>في الإنحدار اللوجستي، لا نزال نريد النموذج \(y_{i}\) كدالة خطية \(x_{i}\)، ولكن بـ\(y_{i}\) ثنائية لن يكون ذلك سهلاً. المزيج الخطي للخصائص مثل \(wx_{i}+b\) هو دالة تمتد من سالف مالا نهاية إلى موجب مالا نهاية، ولكن \(y_{i}\) نتيجتها محصوره بقيمتين.</p>

<p>في غياب أجهزة الكمبيوتر، مُجبراً على عمل العمليات الحسابية يدوياً، العلماء في الماضي أرادو إيجاد نموذج تصنيف خطي بأي طريقة. وجدو أنه إذا عرفنا تصنيف سالب بـ0 والموجب بـ1، سنحتاج فقط لإيجاد دالة مستمرة بسيطة مجالها المقابل هو (0،1). في تلك الحالة، إذا كانت النتيجة من النموذج لمدخل \(x\) قريبة إلى 0، فأننا نعطية تصنيف سالب لـ\(x\)، وغير ذلك سيعطى تصنيف موجب. أحدى الدوال القادرة على ذلك هي <strong>الدالة اللوجستية البسيطة Standard Logistic Function</strong> (وتعرف أيضاً بـ <strong>دالة سيجمويد Sigmoid Function</strong>).</p>

<center>
$$f(x) = \frac{1}{1+e^{-x}}$$
</center>

<p>هنا \(e\) هي قاعدة اللوغاريثم الطبيعية (تعرف أيضاً بعدد أويلر أو دالة \(exp\) في برنامج الإكسل ولغات برمجية أخرى). رسمها البياني كالتالي:</p>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig3.png" alt="مثال دالة لوجستية" width="400" align="middle" />  


صورة 3: دالة لوجستية
</center>

<p>بالنظر على الدالة اللوجستية البسيطة في الرسم البياني، نرى كيف أنها مناسبة للتصنيف الذي نرغب به: إذا حسنا القيم \(x\) و \(b\) بالطريقة الصحيحة، يمكننا قراءة نتائج \(f(x)\) أنها إحتمالية ان تكون \(y_{i}\) موجبة. على سبيل المثال، إذا كانت أعلى أو مساوية لـ0.5 نقول ان تصنيف \(x\) موجب، وغير ذلك سالب. مع التجارب، إختيار قيمة الفصل، 0.5، يمكن أن يتغير حسب المشكلة. سنعود لذلك في الفصل الخامس عنما نتحدث عن تقيم أداء النموذج.
إذاً، معادلة نموذج الإنحدار اللوجستي ستبدو كالتالي:</p>

<center>
$$f_{w,b}(x) = \frac{1}{1+e^{-(wx+b)}}$$  


المعادلة (3)
</center>

<p>يمكن رؤية \(wx+b\) التي سبق ان رأيناها في الإنحدار الخطي. الآن، كيف نجد القيم النموذج المناسبة لـ \(w^*\) و \(b^*\)؟ في الإنحدار الخطي، نقوم بتقليل الخطر التجريبي والذي عُرف بمتوسط دالة الخسارة.</p>

<h3 id="الحل-1">الحل</h3>

<p>في الإنحدار اللوجستي، بدلاً من إستخدام الخسارة التربيعية ومحاولة إيجاد التقليل من الخطر التجريبي، نحاول تكبير <strong>دالة الإحتمالية Likelihood Function</strong>، دالة الإحتمالية في الإحصاء توجد لنا إحتمالية ظهور النتائج بناءاً على النموذج.</p>

<p>على سبيل المثال، ليكن لدينا أمثلة مصنفة \((x_{i},y_{i})\) في بيانات التدريب. لنقل أيضاً أننا وجدنا (توقعنا) بعض القيم \(\hat{x}\) و \(\hat{b}\) من مدخلاتنا. إذا قمنا بتجربة النموذج \(f_{\hat{x},\hat{b}}\) على \(x_{i}\) بإستخدام المعادلة (3) سينتج لنا قيمة \(0 &lt; p &lt; 1\). إذا كانت \(y_{i}\) موجبة، إحتمالية ان تكون \(y_{i}\) موجبة بناءاً على نموذجنا، معطاة من القيمة \(p\). بنفس النهج، أذا كانت \(y_{i}\) سالبة، إحتمالية ان تكون سالبة \(1-p\).</p>

<p>معيار التحسين في الإنحدار اللوجستي يسمى <strong>الإحتمالية الكبرى Maximum Likelihood</strong>. بدلاً من تقليل متوسط الخسارة، كما في الإنحدار الخطي، الآن نزيد من الإحتمالية في بيانات التدريب بنموذجنا:</p>
<center>
$$\displaystyle \max_{w,b} L_{w,b}$$
</center>

<p>وفيه</p>
<center>
$$L_{w,b} = \displaystyle \prod_{i= 1...N} f_{w,b}(x)^{y_{i}}(1-f_{w,b}(x))^{i-y_{i}}$$  


المعادلة (4)
</center>

<p>و \(f_{w,b}(x)^{y_{i}}(1-f_{w,b}(x))^{i-y_{i}}\) هي عملية رياضية تعني “ \(f_{w,b}(x)\) عندما \(y_{i} = 1\) و \((1-f_{w,b}(x))\) عندما تكون غير ذلك”.<br />
قد تلاحظ اننا استخدمنا علامة الضرب \(\prod\) في الدالة بدلاً من علامة الجمع \(\sum\) والتي أستُخدمت في الإنحدار الخطي. ذلك لأن إحتمالية التصنيف \(N\) للأمثلة \(N\) هي نتيجة ضرب الإحتمالية في كل القيم (بفرض أن كل القيم مستقلة عن بعضها البعض). يمكن موازات ذلك مع حاصل ضرب نتائج الإحتمالات في مصفوفة من الإختبارات المستقلة في نظرية الإحتمالات.<br />
بسبب دالة \(exp\) المستخدمة في النموذج، عملياً، من الأفضل تكبير لوغارثمية الإحتمال بدلاً من الإحتمال. لوغارثمية الإحتمال تعرف كالتالي:</p>

<center>
$$LogL_{w,b} = ln(L(_{w,b}(x))=\displaystyle \sum_{i= 1...N}^Ny_{i} ln  f_{w,b}(x) + (1-y_{i})ln(1-f_{w,b}(x))$$
</center>

<p>الحل لمشكلة التحسين الجديده سيكون مشابه للأصلية لأن الوغارثم هي دالة متخصصه بالزيادة. الجزء الأخير يعني حينما نقوم بزيادة اللوغاريثم لأحدى الدوال، فأننا نزيد الدالة نفسها أيضاً.<br />
على عكس ذلك في الإنحدار الخطي، لا يوجد حل لمشكلة التحسين السابقة. إحدى الإجراءات التحسينية الشائعة في تلك الحالات هو النزول الإشتقاقي. سنتحدث عنه في الفصل القادم.</p>

<h2 id="تعلم-شجرة-القرار">تعلم شجرة القرار</h2>

<p>شجرة القرار هي رسم بياني دوري يستخدم لإتخاذ القرارات. في كل فرع من الرسم البياني، خاصية معين \(j\) من متجهة الخواص يتم فحصها. إذا كانت القيمة أقل من قيمة الفصل، فإنها تتجهة للفرع الأيسر، وعكس ذلك، ستتجه للفرع الأيمن. عند الوصول إلى آخر فرع في الشجرة، يتم إتخاذ القرار على المثال المدخل.</p>

<p>كما هو مذكور في عنوان الجزء الحالي، تتعلم شجلة القرار من البيانات المدخلة لها.</p>

<h3 id="مشكلة-2">مشكلة</h3>

<p>كما في السابق، لدينا مجموعة من البيانات المُصنفة; التصنيف على شكل مصفوفة {0,1}. نريد بناء شجرة قرار تمكنا من توقع تصنيف القيمة المعطاة.</p>

<h3 id="الحل-2">الحل</h3>

<p>توجد الكثير من الأشكال لدالة لخوارزمية شجرة القرار. في هذا الكتاب، سنستخدم واحدة فقط، يطلق عليها <strong>ID3</strong>.
معيار التحسين في هذه الحالة هو متوسط لوغارثمية الإحتمال:</p>

<center>
$$\displaystyle \frac{1}{N}=\displaystyle \sum_{i= 1}^Ny_{i} ln  f_{ID3}(x) + (1-y_{i})ln(1-f_{ID3}(x))$$


المعادلة (5)
</center>

<p>هنا \(f_{ID3}\) هي شجرة القرار.<br />
حتى الآن، تبدو الدالة مشابهه بشكل كبير للإنحدار اللوجستي. ولكن عكس ذلك، خوارزمية التعلم في الإنحدار الخطي تبني <strong>نموذج محدود Parametric Model</strong> \(f_{w*,b*}\) عن طريق البحث عن <em>الحل المثالي</em> لمعيار التحسين، خوارزمية ID3 تحسن بشكل <em>تقريبي</em> عن طريق بناء <strong>نموذج غير محدود Non-parametric Model</strong> \(f_{ID3}(x)=Pr(y_i=1|x)\).</p>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig4.png" alt="مثال شجرة القرار" width="800" align="middle" />  


صورة 4: رسم بياني لخوارزمية شجرة القرار. المجموعة S تحتوي على 12 مثال مُصنف. الجزء (أ) في البداية، تحتوي فيه الشجرة على الفرع الأول فقط; وتتوقع نفس التوقع لجميع المدخلات. في الجزء (ب) شجرة القرار بعد أول عملية فصل; تختبر ما إذا كان الخاصية 3 أقل من 18.3، وبناءاً على النتيجة، يتم التوقع بإحدى الفرعين.
</center>

<p>خوارزمية التعلم ID3 تعمل كالتالي. لنجعل S مصفوفة لبيانات مُصنفة. في البداية، شجرة القرار لديها فرع واحد يحتوي على كامل البيانات: \(S={(x_i,y_i)}_{i=1}^{N}\). 
تبدأ بنموذج ثابت تماماً \(f_{ID3}^{S}\):</p>

<center>
$$f_{ID3}^{S}\displaystyle \frac{1}{|S|}=\displaystyle \sum_{(x,y) \in S}y$$  

المعادلة (6)
</center>

<p>فيه \(|S|\) تعني حجم المصفوفة S. التوقع من النموذج بالأعلى، \(f_{ID3}^{S}(x)\)، سيكون نفسه لأي من المدخلات x. الرسم البياني لشجرة القرار المعنية هي الجزء (أ) في الصورة 4.
ثم نبحث بجميع الخصائص \(j=1 ... D\) وجميع قيم الفصل \(t\)، ونقوم بفصل المصفوفة \(S\) إلى قسمين: \(S_-={(x,y)|(x,y) \in S, x^{(j)}&lt;t}\) و \(S_+={(x,y)|(x,y) \in S, x^{(j)} \ge t}\).<br />
المصفوفتين الجديدتين ستكون فرعين للشجرة، ونقيمها، لجميع الازواج المحتملة (j,t) وما إذا كان الفصل  مناسب مع \(S_-\) و \(S_+\). أخيراً، نختار النتيجة الأفضل (j,t)، ونفصل \(S\) إلى \(S_-\) و \(S_+\)، لتكون فرعين جديدين، ونستمر بتكرار ذلك على \(S_-\) و \(S_+\) (أو التوقف إذا كان الفصل لا يكون نموذج أفضل). شجرة القرار بعد عملية فصل واحدة هي (ب) في الصورة 4.<br />
والآن قد تتسائل عن ما تعنية الجملة “تقييم جودة التقسيم”. في ID3، مدى جودة التقسييم تقاس بإستخدام <strong>Entropy الإنتروبيا</strong>. الإنتروبيا لمصفوفة S:</p>

<center>
$$H(S) = -f_{ID3}^{S}\log f_{ID3}^{S}-(1-f_{ID3}^{S})\log (1-f_{ID3}^{S})$$  
</center>

<p>عندما نقسم المصفوفة بناءاً على معيار معين j وقيمة فصل t، الإنتروبيا للفصل، \(H(S_-,S_+)\)، هي ببساطة مجموع النتائج الموزونه للإنتربيا:</p>

<center>
$$H(S_-,S_+)=\displaystyle \frac{|S_-|}{|S|}H(S_-)+\displaystyle \frac{|S_+|}{|S|}H(S_+)$$  

المعادلة (7)
</center>

<p>إذاً، في ID3، في كل خطوة، وفي كل فرع، نوجد قيمة فصل تقلل الإنتروبيا بواسطة المعادلة 7 أو نتوقف في ذلك الفرع.<br />
تتوقف الخوارزمية في فرع معين لأي من الأسباب التالية:</p>
<ul>
  <li>جميع الأمثلة في الفرع مصنفة بشكل صحيح بواسطة نموذج النتيجة الواحده (المعادلة 7).</li>
  <li>لم نستطع إيجاد قيمة/صفة للفصل عليها.</li>
  <li>الفصل يقلل الإنتروبيا إلى أقل من \(\epsilon\) (القيمة التي يجب إيجادها عن طريق التجارب),</li>
  <li>الشجرة وصلت إلى الحد الأعلى من العمق \(d\) (أيضاً يجب إيجادها عن طريق التجارب).</li>
</ul>

<p>لأن في ID3، القرار لفصل البيانات في كل عملية تكرار يتم مسبقاً (لا يعتمد على الفصل المستقبلي)، الخوارزمية لا تضمن الحل الأمثل. يمكن تحسين النموذج عن طريق بعض الأساليب مثل <strong>التراجع Backtracking</strong> عند البحث عن شجرة القرار الأمثل على حساب أخذ وقت أطول لبناء النموذج.</p>

<p><img style="float: right;" src="https://alioh.github.io/images/2019-10-25/ch3-fig5.png" width="100" />
الفصل بناءاً على الإنتروبيا يعتبر منطقي: الإنتروبيا تصل إلى أقلها وهو 0 عندما تكون جميع الأمثل في \(S\) تحمل نفس التصنيف; وفي الجانب الآخر، الإنتروبيا تصل أعلاها وهو 1 عندما يكون نصف الأمثلة في \(S\) مصنفة بـ1، ويجعل ذلك ذلك الفرع غير مفيد في التصنيف. السؤال الباقي هو كيف يمكن لهذه الخوارزمية الوصول للحد الأقصى لمتوسط لوغارثمية الإحتمال. سنجيب عن ذلك لاحقاً.</p>

<h2 id="آلة-المتجهات-الداعمة-svm">آلة المتجهات الداعمة SVM</h2>

<p>تحدثنا ببساطة عن SVM في المقدمة، لذا هذا الجزء سيملئ بعض الفراغات فقط. هناك سؤالين مهمين يجب علينا إجابتهم:</p>
<ul>
  <li>ما الحل إذا كان هناك ضوضاء وبيانات غير مرغوب فيها ولا يوجد خط فاصل يفصل البيانات الموجبة عن السالبة بشكل مناسب؟</li>
  <li>إذا لم نستطع فصل البيانات بخط فاصل، ولكن يمكن فصلها بدالة متعددة الحدود أعلى؟</li>
</ul>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig6.png" alt="أمثلة آلة المتجهات الداعمة صعبة التفصيل" width="800" align="middle" />  


صورة 5: حالات يصعب الفصل الخطي فيها. اليسار: وجود الضوضاء. اليمين: غير الخطية.
</center>

<p>يمكنك مشاهدة ان في كلا المثالين في الصورة 5، في الصورة على اليسار، يمكن فصل البيانات بخط مستقيم لولا وجود البيانات غير المرغوب فيها (الشواذ أو بيانات مصنفة بشكل خاطئ). في اللصورة على اليمين، خط حد القرار على شكل دائرة وليس خط مستقيم.<br />
تذكر أن في SVM، نريد أن نوفي الشروط التالية:<br />
أ- \(wx_i -b \ge 1\) إذا \(y_i=+1\)
ب- \(wx_i -b \le 1\) إذا \(y_i=-1\)</p>

<p>نريد أيضاً التقليل من \(w\) ليكون الخط الفاصل بعيد بنفس البعد عن أقرب قيمة من كل فئة من النتائج. التقليل من \(w\) مساوي للتقليل من \(\frac{1}{2}\|w\|^2\) وإستخدام هذا المصطلح يجعل من الممكن تطبيق تحسين برمجي تربيعي لاحقاً. إذاً مشكلة التحسين في SVM تبدو كالتالي:</p>

<center>
$$\min \frac{1}{2}\|w\|^2 s.t. y_i(x_iw+b)-1 \ge0, i=1...N$$  

المعادلة (8)
</center>

<h3 id="التعامل-مع-الضوضاء">التعامل مع الضوضاء</h3>

<p>لتوسيع SVM للحالات التي لا يمكن فصل البيانات فيها خطياً، نستخدم <strong>Hinge loss function دالة الخسارة المفصلية</strong>:</p>
<center>
$$\max(0,1 -y_i(wx_i-b))$$  
</center>

<p>دالة الخسارة المفصلية تساوي صفر إذا كان الشرطين أ و ب صحيحين، بمعنى أصح، اذا كانت \(wx_i\) تقع في الجانب الصحيح من خط القرار. للبيانات في الجانب الخطأ من خط القرار، قيمة الدالة تتناسب مع المسافه من بين القيمة وخط القرار. ونحن حينها نريد أن نقللها</p>
<center>
$$C\|w\|^2+\frac{1}{N} \displaystyle \sum_{i= 1}^N \max(0,1-y_i(wx_i-b))$$  
</center>

<p>فيها المتغير \(C\) يقرر قيمة التنازل بين زيادة حجم خط القرار وضمان أن كل \(x_i\) تقع في الجانب الصحيح من خط القرار. يتم إختيار قيمة \(C\) عادة مع التجارب، كما في خوارزمية ID3 ومتغيراتها \(\epsilon\) و \(d\). آليات المتجهات الداعمة التي تُحسن بدالة بالخسارة المفصلية يطلق عليها <em>SVM ذات الهوامش اللينة</em>، بينما الدالة الرئيسية يطلق عليها <em>SVM ذات الهوامش القوية</em>.<br />
كما ترى، للقيم العالية من \(C\)، الشرط الثاني من دالة الخسارة سيكون غير مهم، لذا ستحاول خوارزمية آلة المتجهات الداعمة إيجاد أعلى هامش بواسطة تجاهل التصنيف الخاطئ. حين نقلل قيمة \(C\)، ستزيد علينا تكلفة التصنيفات الخاطئة، لذا تحاول الخوارزمية تقليل الأخطاء عن طريق التضحية بحجم الهامش. كما تحدثنا مسبقاً، زيادة الهامش افضل للتعميم. لذا، \(C\) تقوم بتنظيم التفضيل بين تصنيف بيانات التدريب شكل صحيح (تقليل الخطر التجريبي) وتصنيف البيانات المستقبلية بشكل صحيح (التعميم).</p>

<h3 id="التعامل-مع-الغير-خطية">التعامل مع الغير خطية</h3>

<p>يمكن لآلة المتجهات الداعمة التأقلم والعمل مع البيانات التي لا يمكن أن تفصل بخط فاصل في فضاءها الطبيعي. ولكن إذا أستطعنا أن نحول الفضاء الطبيعي لها إلى فضاء ذو أبعاد أعلى، نأمل بأن تكون الأمثلة تقبل الفصل خطياً بعد التحويل إلى هذا الفضاء عالي الأبعاد. في SVM، إستخدام دالة لتحولي الفضاء الطبيعي إلى فضاء عالي الأبعاد بشكل <em>كامل</em> خلال عملية تحسين دالة الخسارة يطلق عليها <strong>Kernel trick حيلة النواة</strong>.<br />
يمكن مشاهدة شكل تأثير إستخدام حيلة النواة في الصورة 6. كما ترى، يمكن تحويل بيانات ثنائية الأبعاد لا يمكن فصلها بخط فاصل إلى بيانات ثلاثية الأبعاد يمكن فصلها بإستخدام طريقة معينة: \(\phi:\mathbf{x}\rightarrow\phi(\mathbf{x})\) فيها \(\phi(\mathbf{x})\) هي مصفوفة ذات ابعاد اعلى من \(\mathbf{x}\). على سبيل المثال، الرسم ثنائي الأبعاد (يسار) في الصورة 6، طريقة الرسم \(\phi\) للمثال \(\mathbf{x}=[q,p]\) التي تحول المثال إلى فضاء ثلاثي الأبعاد (يمين) ستبدو كالتالي: \(\phi([q,p])=(q^2,\sqrt{2qp},p^2)\) ، فيه \(q^2\) تعني \(q\) تربيع. يمكن أن نرى أن البيانات يمكن فصلها خطياً الآن.<br />
ولكن، لا يمكن أن نعرف مسبقاً أن كانت طريقة \(\phi\) ستعمل على بياناتنا. إذا بدأنا أولاً بتحويل جميع المدخلات بإستخدام طريقة الرسم إلى مصفوفات ذات أبعاد أعلى وطبقنا SVM على البيانات، إن جربنا كل دوال الرسم الممكنه، ستكون العملية غير فعالة ولن نجد حلاً لمشكلة التصنيف لدينا.</p>

<center>
<img src="https://alioh.github.io/images/2019-10-25/ch3-fig7.png" alt="آلة المتجهات الداعمة ثنائية وثلاثية الأبعاد" width="800" align="middle" />  


صورة 6: اليسار: الرسمه الأصلية ثنائية الأبعاد التي لا يمكن فصلها خطياً. اليمين: نفس البيانات يمكن فصلها بعد تحويلها لفضاء ثلاثي الأبعاد.  
</center>
<p>لحسن الحظ، العلماء أكتشفو طريقة لإستخدام دوال النواة ( أو ببساطة النواة) للعمل بشكل سهل مع الفضاءات عالية الأبعاد إثناء عمل نموذج SVM بدون القيام بعملية التحويل. لمعرفة كيفية عمل دوال النواة، يجب علينا أولاً عرض كيفية عمل خوارزمية التحسين لآلة المتجهات الداعمة لإيجاد القيم المناسبة لكل من \(\|w\|\) و \(b\).<br />
الطريقة التي تستخدم لعملية التحسين في المعادلة 8 هي طريقة مضاعفات لاغرانج. بدلاً من حل المشكلة الأساسية في المعادلة 8، من الأفضل حل مشكلة مشابهه تبدو كالتالي:</p>

<center>
$$\displaystyle\max_{a_1...a_N}\displaystyle \sum_{i= 1}^N a_i-\frac{1}{2}\displaystyle \sum_{i= 1}^N\displaystyle \sum_{k= 1}^Ny_ia_i(\mathbf{x}_i\mathbf{x}_k)y_ka_k$$  
تخضع إلى  
$$\displaystyle \sum_{i= 1}^Na_iy_i=0 و a_i\ge0, i=1 ...N$$  
</center>

<p>وفيه \(a_i\) هي مضاعفات لاغرانج. بهذه الطريقة، مشكلة التحسين تصبح مشكلة تحسين تربيعية محدبة، يمكن حلها بكفاءة عن طريق خوارزميات التربيع.
الآن، ربما قد لاحظت في المعادلة العلوية، هناك مصطلح \(\mathbf{x}_i\mathbf{x}_k\)، وهنا هو المكان الوحيد الذي يستخدم فيه مصفوفة الخصائص. إذا اردنا ان نغير فضاء المصفوفة إلى فضاء أعلى، نحتاج لتغير \(\mathbf{x}_i\) إلى \(\phi(\mathbf{x}_i)\) و \(\mathbf{x}_j\) إلى \(\phi(\mathbf{x}_j)\) ثم ضرب كل من \(\phi(\mathbf{x}_i)\) و \(\phi(\mathbf{x}_j)\). سيكون فعل ذلك مكلفاً جداً.<br />
على الجانب الآخر، نحن مهتمون بنتيجة عملية الضرب فقط، وهو رقم صحيح. لا نهتم بكيفية حصولنا على هذا الرقم ما دام الرقم صحيح. بإستخدام حيلة النواة يمكننا التخلص من تكلفة التغير لمصفوفة الخصائص الأصلية إلى مصفوفة ذات أبعاد أعلى وتجنب حساب نتيجة الضرب النقطي لهم. نُبدل ذلك بعملية بسيطة على مصفوفة الخصائص الأصلية التي تعطي نفس النتائج. على سبيل المثال، بدلاً من تحويل \((q_1,p_1)\) إلى \((q_1^2,\sqrt{2q_1p_1},p_1^2)\) و \((q_2,p_2)\) إلى \((q_2^2,\sqrt{2q_2p_2},p_2^2)\) وثم إيجاد نتيجة الضرب النقطي لـ \((q_1^2,\sqrt{2q_1p_1},p_1^2)\) و \((q_2^2,\sqrt{2q_2p_2},p_2^2)\) للحصول على \((q_1^2q_2^2+2q_1q_2p_1p_2+p_1^2p_2^2)\) يمكننا إيجاد نتيجة الضرب النقطي بين \((q_1,p_1)\) و \((q_2,p_2)\) لإيجاد \((q_1q_2+p_1p_2)\) ثم تربيعها للحصول على نفس النتيجة لـ \((q_1^2q_2^2+2q_1q_2p_1p_2+p_1^2p_2^2)\).<br />
هذا كان مثال لحيلة النواة واستخدمنا النواة التربيعية \(k(\mathbf{x}_i,\mathbf{x}_k)=(\mathbf{x}_i\mathbf{x}_k)^2\).<br />
يوجد عدد أكثر من دوال النواة، الأكثر إستخداماً هي <strong>RBF نواة</strong>:</p>

<center>
$$k(\mathbf{x}, \mathbf{x'})=\exp\displaystyle \left(-\frac{\|\mathbf{x}- \mathbf{x'}\|^2}{2\sigma^2}\right)$$  
</center>

<p>وفيه \(\|\mathbf{x}- \mathbf{x'}\|^2\) هي <strong>Euclidean distance المسافة الإقليدية</strong> التربيعية بين مصفوفتين من الخصائص. المسافة الإقليدية ممثلة بالمعادلة التاليه:</p>
<center>
$$d(\mathbf{x}_i, \mathbf{x}_k)={\sqrt {\left(x_i^{(1)}-x_k^{(1)}\right)^2+\left(x_i^{(2)}-x_k^{(2)}\right)^2+\cdots +\left(x_i^{(N)}-x_k^{(N)}\right)^2}} =\sqrt {\displaystyle \sum_{j= 1}^D \left(x_i^{(j)}-x_k^{(j)}\right)^2}$$
</center>
<p>يمكن ملاحظة ان فضاء الخصائص لنواة RBF غير محدودة الأبعاد. بتغير المتغير \(\sigma\)، محلل البيانات يمكن أن يختار بين الحصول على خطوط قرار سلسة أو منحنية في الفضاء الأصلي.</p>

<h2 id="خورازمية-أقرب-الجيران-knn">خورازمية أقرب الجيران KNN</h2>

<p>خوارزمية أقرب الجيران KNN هي خوارزمية غير حدودية. على عكس باقي الخوارزميات التي تتجاهل بيانات التدريب بعد بناء النموذج، الخوارزمية تبقي جميع بيانات التدريب في ذاكرتها. عندما تأتي قيمة جديدة، قيمة لم ترها من قبل، تقوم الخوارزمية بإيجاد \(k\) الأقرب إلى المثال في الفضاء متعدد الأبعاد \(D\) وتعيد أكثر التصنيفات تكراراً (في حال كانت المشكلة تصنيفية) أو المتوسط (إذا كانت المشكلة خطية).</p>

<p>قرب أقرب نقطتين تحدد بواسطة دالة خاصة للبُعد. على سبيل المثال، المسافة الإقليدية التي سبق ذكرها تستخدم غالباً في التدريب. إقتراح آخر لقياس البُعد <strong>Cosine Similarity جيب التماثل</strong> السلبي. جيب التماثل مُعرف كالتالي:</p>

<center>
$$\cos(\mathbf{x}_i, \mathbf{x}_k)= \frac{\sum_{j= 1}^D x_{i}^{(j)}x_{k}^{(j)}}{\sqrt{\sum_{j= 1}^D\left(x_i^{(j)}\right)^2} \sqrt{\sum_{j= 1}^D\left(x_k^{(j)}\right)^2}}$$  
</center>

<p>هي مقياس لمدى تشابة الإتجاهات لمصفوفتين. إذا كانت الزاوية بين مصفوفتين تساوي 0 درجة، إذا كلا المصفوفتين تتجهان إلى نفس الطريق وجيب التماثل يساوي 1. اذا كانت المصوفتين متعامدتان، فأن جيب التماثل تساوي 0. للمصفوفات التي تشيران إلى عكس الإتجاه، جيب التماثل يكون فيها مساوي -1. إذا أردنا إستخدام جيب التماثل كمقياس للمسافه، فيجب علينا ضربة في -1. مقياسات أخرى شهيره لقياس المسافه هي مقياس تشيبيشيف، ماهالانوبيس، هامينق لقياس المسافة. إختيار مقياس المسافه، وكذلك قيمة \(k\)، يتحكم ويقررها المحلل قبل تشغيل الخوارزمية. إذاً هي متغيرات. مقياس المسافة يمكن تعلمه أيضاً من البيانات (وأيضاً يمكن توقعه). سنتحدث عن مزيد من ذلك في اجزاء لاحقة.<br />
الآن تعلمنا كيف نبني خوارزمية النموذج وكيف تتم عملية التوقع. أحد الأسئلة المهمة هنا هو ما عمل دالة الخسارة؟ بدون غرابة، لم يتم دراسة اجابته في الكتب، رغم شهرة الخوارمزية منذ بداية الستينات. المحاولة الوحيدة لتحليل دالة الخسارة لخوارزمية KNN كان بواسطة لي و يانق في 2003.<br />
للتبسيط، فإننا نوجد أستنتاجاتنا تحت أفتراضات التصنيف الثنائي (\(y\in\) {0,1}) مع جيب التماثل و<strong>تسوية Normalized</strong> خصائص المصفوفة. بهذه الإفتراضات، KNN تقوم بعملية تصنيف خطي مع مُعامل المصفوفة.</p>

<center>
$$\mathbf{w}_\mathbf{x}=\displaystyle\sum_{(\mathbf{x'},\mathbf{y'})\in R_k(\mathbf{x})}\mathbf{x'}\mathbf{y'}$$  

المعادلة (9)
</center>

<p>فيها \(R_k(\mathbf{x})\) هي مصفوفة \(k\) لأقرب الجيران للقيمة المدخلة \(\mathbf{x}\). المعادلة العلوية تقول ان نأخذ مجموع كل قيم أقرب الجيران لأحد القيم المدخله \(\mathbf{x}\) عن طريق تجاهل تلك القيم المساوية لصفر. قرار التصنيف هنا يأخذ عن طريق تعريف قيمة فصل من الضرب النقطي \(\mathbf{w}_\mathbf{x}\mathbf{x}\)
والذي، في حالة تسوية خصائص المصفوفات، مساوي لجيب التماثل بين \(\mathbf{w}_\mathbf{x}\) و \(\mathbf{x}\).<br />
الآن، يتم تعريف دالة الخسارة كالتالي:</p>
<center>
$$L=-\displaystyle\sum_{(\mathbf{x'},\mathbf{y'})\in R_k(\mathbf{x})}\mathbf{x'}\mathbf{y'}\mathbf{w}_\mathbf{x}+\frac{1}{2}\|\mathbf{w}\|^2$$  
</center>

<p>وجعل مشتقة الدرجة الأولى في الجانب الأيمن تساوي صفر يوجد لنا معامل المصفوفة في المعادلة رقم 9.</p>

<hr />

<p>تم ترجمة هذا الجزء قبل إعلان المؤلف أن الكتاب تُرجم وسيتم نشرة للعربية من أحدى الجهات في دولة الإمارات.</p>

<p>شكراً لكل من <a href="https://github.com/iamaziz">عبدالعزيز الطويان</a> و <a href="https://github.com/Nuhagh">نهى الغامدي</a> على تعاونهم في التدقيق والتصحيح والترجمة.</p>

<script type="text/javascript" async="" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>]]></content><author><name></name></author><summary type="html"><![CDATA[هذا المنشور هو ترجمة (حرفية) للفصل الثالث “لكتاب المائة صفحة في تعليم الآلة” من تأليف أندري بوركوف.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Data Science Nanodegree Capstone Project</title><link href="https://alioh.com/DSND-Capstone-Project/" rel="alternate" type="text/html" title="Data Science Nanodegree Capstone Project" /><published>2019-07-12T00:00:00+00:00</published><updated>2019-07-12T00:00:00+00:00</updated><id>https://alioh.com/DSND-Capstone-Project</id><content type="html" xml:base="https://alioh.com/DSND-Capstone-Project/"><![CDATA[<p>This project (Capstone Project) is part of Udacity’s Data Scientist Nanodegree program</p>

<h2 align="left">Starbucks Best Offers Predictor / Analysis</h2>

<p><img src="https://alioh.github.io/images/2019-7-12/Starbucks_Recyclable_Cups.jpg" alt="" /></p>

<p align="center" size="1" color="gray">Copyright: monticello/123RF.<font size="1" color="white"> e</font> </p>

<h3 align="left">Project Overview</h3>
<p align="left">
In this project, I will try to find how Starbucks customers use the app, and how well is the current offers system. I will also see who should the app target in promotions. The data sets used in this project contains simulated data that mimics customer behavior on the Starbucks rewards mobile app. From it, we can understand the costumers' behavior and it might help us make better decisions.<font size="1" color="white"> e</font>  </p>
<h3 align="left">Problem Statement</h3>
<p align="left">The problem we have here is that we don't want to give any customer our offers. We want to give only those who we think will be able to complete the offer. Giving an offer to someone we know he/she probably will not be able to complete it is a waste of time and resources that can be given to someone who we know will complete it. I will approach this problem by first cleaning up the data, then doing some exploratory analysis and see who are my most valuable customers after that I will create a model to help us predicting feature customers and which type of offer should we give them.<font size="1" color="white"> e</font>  
<p align="left">My goal for this project is predicting which kind of offers, Buy One Get One Free (BOGO), Discount or informational is better to give a current customer by only knowing his/her age, gender, income and the amount they are paying.<font size="1" color="white"> e</font>  
</p> 
<h3 align="left">Metrics</h3>
<p align="left">
The metric I used this project is accuracy. Since we have a simple classification problem, I will use accuracy to evaluate my models. We want to see how well our model by seeing the number of correct predictions vs total number of predictions. For the different models I used in this project, I checked the accuracy my training and testing data sets and decided which to choose based on it.<font size="1" color="white"> e</font> </p>

<h3 align="left">Analysis</h3>  

<img src="https://alioh.github.io/images/2019-7-12/pestle-analysis-of-starbucks.jpg" />
  
<p align="center" size="4" color="gray">Copyright: <a href="https://www.flickr.com/photos/opengridscheduler/16604095887/">opengridscheduler</a><font size="1" color="white"> e</font> </p>   

<h2 align="left">Business understanding</h2>  
<p align="left">
My objective here is to find patterns and show when and where to give specific offer to a specific customer. Main users of this kind of applications are Starbucks employees and analysts. The plan in this project to have questions and answer them with data visualization. Tha data is provided by Starbucks contains simulated data that mimics customer behavior.<font size="1" color="white"> e</font>  
</p> 

<h2 align="left">Data Exploration / Understanding</h2>  
<p align="left">
In this project we were given 3 files. Before I start analyzing we have to explore and see what is the data we have. We need to check if it is clean or not, if each column have the right type that the data tell, for example if the data in column called price is saved as string, we need to convert it to number to help us in the analysis if we want to find the sum for example, having it as string will not return the total of that column. Similar thing goes to dates saved as strings. <font size="1" color="white"> e</font>  
</p> 
<p align="left">The data we have is provided by Starbucks. Here is a quick breakthrough of how the data looks like:<font size="1" color="white"> e</font></p>  
 <ul dir="ltr" align="left">
  <li align="left">portfolio.json - containing offer ids and meta data about each offer (duration, type, etc.)  </li>
  <li align="left">profile.json - demographic data for each customer  </li>
  <li align="left">transcript.json - records for transactions, offers received, offers viewed, and offers completed  </li>
</ul>
<p align="left">Here is the schema and explanation of each variable in the files:<font size="1" color="white"> e</font></p>
<p align="left"><b>portfolio.json</b> - <i>10 rows, 6 columns</i>.<font size="1" color="white"> e</font></p>
 <ul dir="ltr" align="left">
    <li align="left">id (string) - offer id</li>
    <li align="left">offer_type (string) - type of offer ie BOGO, discount, informational</li>
    <li align="left">difficulty (int) - minimum required spend to complete an offer</li>
    <li align="left">reward (int) - reward given for completing an offer</li>
    <li align="left">duration (int) - time for offer to be open, in days</li>
    <li align="left">channels (list of strings)</li>
</ul>

<p align="left"><b>profile.json</b> - <i>17000 rows, 5 columns</i>.<font size="1" color="white"> e</font></p>
 <ul dir="ltr" align="left">
    <li align="left">age (int) - age of the customer</li>
    <li align="left">became_member_on (int) - date when customer created an app account</li>
    <li align="left">gender (str) - gender of the customer (note some entries contain 'O' for other rather than M or F)</li>
    <li align="left">id (str) - customer id</li>
    <li align="left">income (float) - customer's income</li>
</ul>

<p align="left"><b>transcript.json</b> - <i>306534 rows, 4 columns</i>.<font size="1" color="white"> e</font></p>
 <ul dir="ltr" align="left">
    <li align="left">event (str) - record description (ie transaction, offer received, offer viewed, etc.)</li>
    <li align="left">person (str) - customer id</li>
    <li align="left">time (int) - time in hours since start of test. The data begins at time t=0</li>
    <li align="left">value - (dict of strings) - either an offer id or transaction amount depending on the record</li>
</ul>
<h2 align="left">Data preparation / Wrangling</h2>  
<p align="left">In this part I did a lot of changes to the three tables. Here are the changes I made:<font size="1" color="white"> e</font></p>
<h4 align="left">portfolio.json</h4>
<p align="left"><b align="left">channels column</b>: this hold a list of the channels where the offer is delivered. and to fix it I one-hot-encoded it to look like this.<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/one-hot-encode.jpg" />

<h4 align="left">profile.json</h4>
<p align="left">
The gender and income column have NaN values. For gender, NaN were converted to NA. For income, NaN were replaced by the mean.<font size="1" color="white"> e</font></p>  

<h4 align="left">transcript.json</h4>
<p align="left">
Similar to what we saw before in portfolio channels column, here the value column holds dictionary of offer id, amount, offer_id and reward. To fix this I will do the same think I did before with channels, one-hot-encoding, and I will combine offer_id and offer id since both means the same thing. The final result looks like this.<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/one-hot-encode2.jpg" />

<h2 align="left">Analysis</h2>

<h3 align="left">A. Univariate Exploration</h3>
<h4 align="left">What are the most common values for each column in each data frame</h4>
<img src="https://alioh.github.io/images/2019-7-12/a1-1.jpg" />

<p align="left">
For age,  we can see that most of ages in our profile data frame falls in-between 40 and 80. We already notice one outlier which is 118. Our median is around 58 years old.<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/a2-1.jpg" /> 
<img src="https://alioh.github.io/images/2019-7-12/a2-2.jpg" /> <img src="https://alioh.github.io/images/2019-7-12/a2-3.jpg" />

<p align="left">The first bar chart tell us that we have a lot profile in the adult age group, ages between 21 and 64.<font size="1" color="white"> e</font></p>  


<h4 align="left">What is the average income for Starbucks customers</h4>

<img src="https://alioh.github.io/images/2019-7-12/a1-2.jpg" />

<p align="left">For the income, most of their income are between 50k and 78k. The exact number for average income is 65404.<font size="1" color="white"> e</font></p>  

<h4 align="left">What is the average age for Starbucks customers</h4>
<img src="https://alioh.github.io/images/2019-7-12/a1-1.jpg" />

<p align="left">From what we saw in the first question, our average age is around 58.<font size="1" color="white"> e</font></p>  

<h4 align="left">What is the most and least common promotion</h4>
<img src="https://alioh.github.io/images/2019-7-12/a5-1.jpg" />

<p align="left">The offer ID 'fafdcd668e3743c1bb461111dcafc2a4' is the most common with number of completion equal to 5317. The least common offer is '4d5c57ea9a6940dd891ad53e9dbe8da0' with total of 3331 completion.<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/a5-2.jpg" />

<p align="left">The most common types of offers is BOGO and Discounts.<font size="1" color="white"> e</font></p>  

<h4 align="left">Who are the most loyal customer - most transcripts</h4>
<p align="left">Here are a list of the most loyal customers (customers who spends a lot of money on offers/transactions).<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/a7-1.jpg" />


<h4 align="left">What are the most events we have in our transcripts</h4>
<img src="https://alioh.github.io/images/2019-7-12/a8-1.jpg" />

<p align="left">Transaction have the most amount of rows in the transcript data frame with around 140k, almost half of our data frames total.<font size="1" color="white"> e</font></p>  

<h3 align="left">B. Multivariate Exploration</h3>
<h4 align="left">What is the most common promotion for children, teens, young adult, adult and elderly customers</h4>
<img src="https://alioh.github.io/images/2019-7-12/b1-1.jpg" />

<p align="left">
NA = Transactions. We can see that most of our customers falls in the adult and elderly group age. And they prefer Buy One Get One and Discount offers than informational offers.<font size="1" color="white"> e</font></p>  

<h4 align="left">From profiles, which get more income, males or females</h4>
<img src="https://alioh.github.io/images/2019-7-12/b2-1.jpg" />

<p align="left">The graph above shows that income median (the white dot) for females (around 70k) is higher than males (around 60k) we can also see that for females the income spreads from 40k to 100k. For males most of them around 40k to 70k which close to median.<font size="1" color="white"> e</font></p>  

<h4 align="left">What is the gender distribution in the transcript data frame</h4>
<img src="https://alioh.github.io/images/2019-7-12/b3-1.jpg" />

<p align="left">Total number of males records 155690, and total number of female records is 113101.<font size="1" color="white"> e</font></p>  
<p align="left">From the two graphs above we can see that males received offers more than females. Both genders seems to reflect on those offers similarly. Around half of offers received were viewed by both genders, but it seems that females would complete those offers more than males. The numbers are:<font size="1" color="white"> e</font></p>  

<img src="https://alioh.github.io/images/2019-7-12/b3-2.jpg" />
<img src="https://alioh.github.io/images/2019-7-12/b3-3.jpg" />

<p align="left">For Females:<font size="1" color="white"> e</font></p>  
<p align="left">Total transcripts is: 113101.<font size="1" color="white"> e</font></p>  
<p align="left">Number of bogo offers: 27619, 43.34% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of discount offers: 26652, 41.83% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of informational offers: 9448, 14.83% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer completed: 15477, 56.37% of total offers received.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer received: 27456, 43.09% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer viewed: 20786, 32.62% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of transaction: 49382, 43.66% of total.<font size="1" color="white"> e</font></p>  

<p align="left">For Males:<font size="1" color="white"> e</font></p>  
<p align="left">Total transcripts is: 155690.<font size="1" color="white"> e</font></p>  
<p align="left">Number of bogo offers: 35301, 42.58% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of discount offers: 34739, 41.91% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of informational offers: 12856, 15.51% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer completed: 16466, 43.18% of total offers received.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer received: 38129, 46.0% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer viewed: 28301, 34.14% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of transaction: 72794, 64.36% of total.<font size="1" color="white"> e</font></p>  

<p align="left">The numbers above shows that males receive offers more than females by 9% and their transaction is 19% more too, which tells that they both more than females. Regarding offers, Males and Females received the same amount of <b>BOGO</b> and <b>discount</b> offers.<font size="1" color="white"> e</font></p>  

<h4 align="left">Who takes long time to achieve each promotion goal and from which gender, age, income</h4>

<p align="left">The mean time it takes a customer to complete an offer is around <b>16 days</b> (390 hours).<font size="1" color="white"> e</font></p>  

<h4 align="left">Which type of promotions each gender likes - offer_type</h4>
<img src="https://alioh.github.io/images/2019-7-12/b6-1.jpg" />

<p align="left">We can see that both genders like bogo and discount offers and they have the same reaction to informational offers, they both seem to be not interested to it.<font size="1" color="white"> e</font></p>  

<h4 align="left">From each offer received by customer, how many they completed</h4>
<img src="https://alioh.github.io/images/2019-7-12/b7-1.jpg" />

<p align="left">For Females:<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer completed: 15477, 56.37% of total offers received.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer received: 27456, 43.09% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer viewed: 20786, 32.62% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of transaction: 49382, 43.66% of total.<font size="1" color="white"> e</font></p>  

<p align="left">For Males:<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer completed: 16466, 43.18% of total offers received.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer received: 38129, 46.0% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of offer viewed: 28301, 34.14% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Number of transaction: 72794, 64.36% of total.<font size="1" color="white"> e</font></p>  
<p align="left">Females completed <b>56%</b> of the offers they received, it is <b>13%</b> more than males, but males made more transactions than females, <b>64%</b> to <b>43%</b>.<font size="1" color="white"> e</font></p>  


<h2 align="left">Model</h2>
<p align="left">In this part, I tried to make a model that can identify which kind of offers we should give a customer. Because my model will guess the offer_type, I will only get those transcripts with offer id's. So I will ignore all transactions without offer id for now. <font size="1" color="white"> e</font> </p>  
<p align="left">Our features here are:<font size="1" color="white"> e</font> </p>  
 <ul dir="ltr" align="left">
    <li align="left">Event. (Will be replaced from categorical to numerical)</li>
    <li align="left">Time. (normalized)</li>
    <li align="left">Offer_id. (Will be replaced from categorical to numerical)</li>
    <li align="left">Amount. (normalized)</li>
    <li align="left">Reward. (normalized)</li>
    <li align="left">Age_group. (Will be replaced from categorical to numerical)</li>
    <li align="left">Gender. (Will be replaced from categorical to numerical).</li>
    <li align="left">Income. (normalized)</li>
</ul>
<p align="left">And my target is offer_type. For my target, I will replace texts with numbers. Where BOGO = 1, discount = 2, informational = 3.<font size="1" color="white"> e</font> </p> 
<p align="left">Here is how the final data frame looks like before modeling:<font size="1" color="white"> e</font> </p> 

<img src="https://alioh.github.io/images/2019-7-12/df_model.jpg" />

<p align="left">The shape of my features and labels was:<font size="1" color="white"> e</font> </p> 
 <ul dir="ltr" align="left">
    <li align="left">Training Features Shape: (125685, 8)</li>
    <li align="left">Training Labels Shape: (125685,)</li>
    <li align="left">Testing Features Shape: (41896, 8)</li>
    <li align="left">Testing Labels Shape: (41896,)</li>
</ul>
<p align="left">Now for the modeling part, I tried six different models and this is the results:<font size="1" color="white"> e</font> </p>  

<img src="https://alioh.github.io/images/2019-7-12/model_result.jpg" /> 

<p align="left">From the previous table, we can see that we scored 100% accuracy in the training and testing data sets on 4 models. To avoid over fitting I will choose <b>Logistic Regression</b> since it got good results 65% on training and 80% on testing data sets. <b>Logistic Regression</b> is better used here since we have few binomial outcomes (BOGO = 1, discount = 2, informational = 3). It is good here because we have good amount of data to work with.<font size="1" color="white"> e</font> </p>

<h2 align="left">Conclusion</h2>  
<p align="left">In this project, I tried to analyze and make model to predict the best offer to give a Starbucks customer. First I explored the data and see what I have to change before start the analysis. Then I did some exploratory analysis on the data after cleaning. From that analysis I found out that most favorite type of offers are <b>Buy One Get One</b> (BOGO) offers and <b>Discount</b> offers. I digged deep to see who and what type of customers we have and noticed that <b>Females</b> tend to complete offers more than males with <b>56%</b> completion of the offers they received. Where <b>Males</b> completed only <b>43.18%</b> from the offers they received. But our current data shows that we gave <b>Males</b> more offers since they have more transactions than <b>Females</b> with total number of <b>72794</b> transactions, where females only had <b>49382</b> transactions.
In conclusion, the company should give more offers to <b>Females</b> than <b>Males</b> since they have more completed offers. And they should focus more on <b>BOGO</b> and <b>Discount</b> offers since they are the one that tend to make customers buy more.<font size="1" color="white"> e</font></p>  


<h2 align="left">Improvements</h2> 
<p align="left">I think I got to a point where we have good results and we understand the data we have very well. But to make our results even better, I would try to improve my data collection and fix issues I have with NaN values. I will also try to get even more data like location and when the transaction were completed, which branch and what time of the day. All these data can help us know when and where to give our offers. Also having more data is always good think to help us improve our model results.<font size="1" color="white"> e</font></p>  

<p align="left">
To see more detailed analysis with numbers and codes, check the project Github repository <a href="https://github.com/alioh/DSND-Capstone">here</a>.<font size="1" color="white"> e</font> </p> 
</p>]]></content><author><name></name></author><summary type="html"><![CDATA[This project (Capstone Project) is part of Udacity’s Data Scientist Nanodegree program]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Insights on Saudi Professional League Matches</title><link href="https://alioh.com/DSND-P4/" rel="alternate" type="text/html" title="Insights on Saudi Professional League Matches" /><published>2019-05-24T00:00:00+00:00</published><updated>2019-05-24T00:00:00+00:00</updated><id>https://alioh.com/DSND-P4</id><content type="html" xml:base="https://alioh.com/DSND-P4/"><![CDATA[<p>This project (Write a Data Science Blog Post) is part of Udacity’s Data Scientist Nanodegree program</p>

<h2 align="left">Saudi Professional League Predictor / Analysis</h2>

<p><img src="https://alioh.github.io/images/2019-5-24/spl.png" alt="" /></p>

<p align="left">
In this project I analyzed and predicted the Saudi Professional League matches. In it, I wanted to show common trends and answer some questions that I have always wanted to answer about the league.<font size="1" color="white"> e</font>  
</p>
<p align="left">
I wanted to know, is having a clean sheet (zero goals against you) give you higher chance to win the title? How many teams teams won the title in the past 10 years and how many clean sheet they had in all their matches?<font size="1" color="white"> e</font>  
</p>
<p align="left">
Analyzing and predicting football matches is not easy and creating the perfect model is hard because you need a lot of data about each team and player to be able to create the best model. You will also need a lot of data that you can't always get such as motivation, team mentality, team manager tactics and other outside factors.<font size="1" color="white"> e</font>  
</p>
<p align="left">
While working on this project, I found that feature engineering can make a difference to my game predictor model. In this project, I started with 33 features and came out with around 60 features (more than 25 new features). Having new features that you can come up with from the current data you have can give you more insights about your data. For example, showing team previous goals for and against can tell you how strong is the team line up and how many goals they can score. It can also tell you how strong team defences by seeing how many goals they conceded before current game.<font size="1" color="white"> e</font>  
</p>
<p align="left">
In the project, I tried to analyze and answer the following questions:<font size="1" color="white"> e</font>  
</p>
<p align="left">
Do home team win more at home or away?<font size="1" color="white"> e</font>
</p>
<p align="left">
Who are the most valuable players, the players with the most wins?<font size="1" color="white"> e</font>
</p>
<p align="left">
Does clean sheets help you win the title?<font size="1" color="white"> e</font>
</p>
<p><br /></p>

<h2 align="left">Home teams have higher chance to win games at home</h2>

<p><img src="https://alioh.github.io/images/2019-5-24/g1.png" alt="" /></p>

<p align="left">
From the data I have, I found that home teams win more home matches (around 650 game) than away (around 500 matches). This can tell that home stadium and home team fans can sometimes be a factor on helping a team win matches.<font size="1" color="white"> e</font>  
</p>

<p><br /></p>

<h2 align="left">Most valuable players are defenders</h2>

<p><img src="https://alioh.github.io/images/2019-5-24/g2.png" alt="" /></p>

<p align="left">
This might be not a surprise for football analyzers, because in order to win a game you must have good defence first. In the graph above, you can see how many each player won a game, out of the ten players, there are 4 defenders (Osama Hawsawi, Abdullah Al-Zoari, Majed Almarshadi and Hassan Muath), one goalkeeper (Waleed Abdullah) and three defensive midfielders (Taiseer Al-Jassam, Ahmed Ateef and Saud Kariri) and one player maker (Yahya Al-Shehri) and one striker (Nassir Al-Shamrani).<font size="1" color="white"> e</font>
</p>
<p align="left">
Players like Osama Hawsawi (three titles with two teams - two with Al-Hilal and one with Al-Ahli), Nassir Al-Shamrani (two titles with two teams - one with Al-Hilal and one with Al-Shabab) and Waleed Abdullah (two titles with two teams - one with Al-Nassr and one with Al-Shabab) are very valuable because even when they switch teams, they can play a role helping their team to win the title.<font size="1" color="white"> e</font>
</p>
<p align="left">
One a side note, all ten players are Saudi's which tell you that the participation of foreign players in the league not very high, there might be some foreign players that help a team win the title, but they don't stay for a long time with the team.<font size="1" color="white"> e</font>
</p>

<p><br /></p>

<h2 align="left">Winning titles is not about clean sheets</h2>

<p><img src="https://alioh.github.io/images/2019-5-24/g3-1.png" alt="" /> <img src="https://alioh.github.io/images/2019-5-24/g3-2.png" alt="" /></p>

<p align="left">
Teams and fans are always happy when they come out of a game with a clean sheets, and it might help sometimes to win a title to have a lot of clean sheets, but not always. The two graphs above show how many teams played matches in the past nine seasons, and how many each team have clean sheets.<font size="1" color="white"> e</font>  
</p>
<p align="left">
We can see that the highest team with clean sheets was Al-Raed, which is a mid-level team (not from top four). With having the most clean sheets with around 70 games without conceding goals, Al-Raed never won a title. What is interesting is, the team with the least clean sheets, Al-Hilal, had the most titles in the nine years, with three titles.<font size="1" color="white"> e</font>  
</p>
<p align="left">
Al-Hilal played 206 matches in the past nine years in the league and the team clean sheet matches are around 25, yet the team manage to have more titles than any other team in the Saudi Professional League.<font size="1" color="white"> e</font>
</p>

<p><br /></p>

<h2 align="left">Conclusion</h2>

<p align="left">
In this article, I analyzed a dataset of the Saudi Professional League from the past nine years, and saw some interesting numbers and results.<font size="1" color="white"> e</font>
</p>
<p align="left">
<b>Having the the best defence doesn't always help you win the title, clean sheets doesn't matter but the quality of a players play more role on helping you win a title.</b><font size="1" color="white"> e</font>
</p>
<p align="left">
<b>Home stadium play major role in helping your team win a game.</b><font size="1" color="white"> e</font>
</p>
<p><br /></p>
<p align="left">

To see more detailed analysis with numbers and codes, check the project Github repository <a href="https://github.com/alioh/DSND-P4">here</a>.<font size="1" color="white"> e</font>  

</p>]]></content><author><name></name></author><summary type="html"><![CDATA[This project (Write a Data Science Blog Post) is part of Udacity’s Data Scientist Nanodegree program]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">ملخص كورس علم البيانات - 15</title><link href="https://alioh.com/DSND-Notes-15/" rel="alternate" type="text/html" title="ملخص كورس علم البيانات - 15" /><published>2019-04-20T00:00:00+00:00</published><updated>2019-04-20T00:00:00+00:00</updated><id>https://alioh.com/DSND-Notes-15</id><content type="html" xml:base="https://alioh.com/DSND-Notes-15/"><![CDATA[<p>آخر جزء في التعلم غير الموجَّه يتحدث عن Random Projection و ICA وهي طرق لتقليل المتغيرات.</p>

<h5 id="الفصل-الثالث---التعلم-غير-الموجَّه-unsupervised-learning">الفصل الثالث - التعلم غير الموجَّه Unsupervised Learning</h5>
<h5 id="الدرس-الخامس---random-projection--ica">الدرس الخامس - Random Projection &amp; ICA</h5>
<p>هي حل بديل لـPCA لتقليل المتغيرات. هدف الطريقة الرئيسي هو تقليل الـDimensions أو المتغيرات لدينا. لنفترض أن لدينا قاعدة بيانات فيها 12000 عامود أو متغير، عند إدخالها في Scikit-learn وتشغيل دالة Random Projection عليها ستعود لنا البيانات بعدد عواميد حوالي 6000.</p>

<h5 id="مثال-بايثون">مثال بايثون</h5>
<p>طريقة عمل Random Projection في بايثون و Scikit-learn</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">sklearn</span> <span class="kn">import</span> <span class="n">random_projection</span>

<span class="n">data</span> <span class="o">=</span> <span class="n">data</span>

<span class="c1">#   إنشاء المودل الخاص ب Random Projection
#   من الممكن تحديد عدد n_components عدد المتغيرات المطلوب
#   وتحديد قيمة eps ε 
#   اذا تركت بدون تحديد فتكون قيمة eps = 0.1 و n_components = 'auto'
#   وهي القيم التلقائية
</span><span class="n">rp</span> <span class="o">=</span> <span class="n">random_projection</span><span class="p">.</span><span class="n">SparseRandomProjection</span><span class="p">()</span>

<span class="c1">#   تشغيل المودل على البيانات لدينا
</span><span class="n">new_data</span> <span class="o">=</span> <span class="n">rp</span><span class="p">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</code></pre></div></div>

<h5 id="independent-component-analysis---ica">Independent Component Analysis - ICA</h5>
<p>طريقة أخرى مشابهه لـ PCA و Random Projection مثال عليها في ملفات الصوت، اذا كان لدينا ثلاث ادوات صوتية تعمل بنفس الوقت، تشغيل هذه الخوارزمية عليها ستحاول فصل كل اداة لوحدها.</p>

<h5 id="مثال-بايثون-1">مثال بايثون</h5>
<p>طريقة عمل Random Projection في بايثون و Scikit-learn</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">from</span> <span class="nn">sklearn.decomposition</span> <span class="kn">import</span> <span class="n">FastICA</span>

<span class="c1">#   البيانات لدينا متكونة من قائمة تحتوي على 3 ملفات صوتية
</span><span class="n">data</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">audio_1</span><span class="p">,</span> <span class="n">audio_2</span><span class="p">,</span> <span class="n">audio_3</span><span class="p">))</span>

<span class="c1">#   إنشاء المودل الخاص
#   تحديد عدد n_components عدد المتغيرات المطلوب
</span>
<span class="n">ica</span> <span class="o">=</span> <span class="n">FastICA</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>

<span class="c1">#   تشغيل المودل على البيانات لدينا
</span><span class="n">new_data</span> <span class="o">=</span> <span class="n">ica</span><span class="p">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</code></pre></div></div>

<hr />
<p><a href="https://alioh.github.io/DSND-Notes-14/">العودة إلى ملخص كورس علم البيانات - 14</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[آخر جزء في التعلم غير الموجَّه يتحدث عن Random Projection و ICA وهي طرق لتقليل المتغيرات.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://github.com/alioh.png" /><media:content medium="image" url="https://github.com/alioh.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>