Monday, September 23, 2019

ما هو علم البيانات؟


السلام عليكم و رحمة الله و بركاته
أنا قررت اني اشارك الناس باللي قدرت اعرفه و افهمه في مجال علم البيانات بالذات للناس اللي بتلاقي صعوبة في مذاكرة المصادر اللي باللغة الإنجليزية ان شاء الله انا هحاول اشرح جزء كبير منها بشكل بسيط و طبعا كل ما هعرف اكتر هحاول اشرحه بردو بشكل مبسط و لو لقيت ان في اقبال على الشرح دا و الناس فهماني كويس ممكن كمان اشرح في فيديوهات لعل و عسى يكون دا في ميزان حسناتنا ان شاء الله.
ما هو علم البيانات ؟

أول نقطة هنتكلم عنها هي تعريف علم البيانات. ايه هو علم البيانات؟ و بيستخدم في ايه؟
علم البيانات هو علم بيدرس البيانات و المعلومات .. طب يعني ايه بيدرس البيانات ؟ يعني انا مثلا عندي جدول من البيانات خلينا نقول  جدول بيانات عن العقارات فيها معلومات عن العقارات في مصر زي مثلا  لكل عقار نوعه و مساحته و مكانه و بيع ولا  ايجار و مواصفاته زي كم غرفة و هكذا و فيه كمان سعره أنا بقى كعالم بيانات مطلوب مني اني امسك البيانات ديه و ادرسها و افهمها واهضمها كدا و اطلع منها اللي يفيد الناس ... يعني ايه؟ يعني مثلا اخد الداتا ديه و اشوف ايه علاقة كل عمود (Column) بالتاني و اشوف ايه من العواميد هنا أو الـ columns  اللي اقدر اصنفها كـ feature  يعني عامل و ايه اللي اقدر اصنفه كـ target  يعني الهدف او النتيجة اللي العوامل ديه بتترتب عليها زي مثلا بالنظر كدا لو انا قلت عندي شقة 180 متر في مصر الجديدة 3 غرف نوم و الدور الثالث و سعرها مثلا 1000000 جنيه و عندي شقة تانية 120 متر في التجمع الدور الثاني غرفتين ب 1200000 مثلا انا هنا بالتحليل بالنظر لقيت ان السعر فرق من هنا لهنا بناء على عامل من العوامل ايه هي؟ هنا فرق المكان التجمع اغلى من مصر الجديدة حتى لو المساحة اقل بس انا هنا ببص على مثالين بس لكن في الواقع انا اما ببص للداتا بيبقى عندي حجم مهول من الامثلة او الداتا عشان كدا هو مش هيبقى عامل واحد ساعتها انا هلاقي لا داا المكان بيفرق و مساحة الشقة و هي كام غرفة و الدور الكام و هكذا و كل العوامل دي بتوصل او بتأدي لسعر معين و هو دا الـ target  بتاعي السعر. يعني اما اجي هنا اسأل انا ليه بدرس الداتا ديه ايه الغاية من دراستي للداتا دي و هو دا اللي بنقول عليه  ال Business Understanding step  أو الخطوة اللي بنفهم فيها ايه هو السؤال الصح اللي المفروض نسأله أو المشكلة اللي المفروض نحلها او سبب دراسة الداتا اللي عندنا ديه. بعد مابحنحدد سبب دراستنا للداتا اللي عندنا و ايه هو السؤال الصح اللي المفروض نسأله عن الداتا دي زي مثلا هنا السؤال كان ازاي اعرف سعر العقار بس من العوامل بتاعته هندخل بقى في ال phase  اللي بعدها و هي ال Analytical Approach  أو تحليل المشكلة اللي عندي و التفكير في ايه ممكن يكون الحل المناسب ليه  و نحاول مثلا نختار الجوريزم معين ينفع مع الداتا ديه في تحليلها و الشغل عليها بس مش هنتطرق للنقطة ديه دلوقتي هنتكلم عليها قدام في  posts  تانية ان شاء الله. المهم, بعد ماحددت مبدأيا انا ممكن احل المشكلة باستخدام ايه هبدأ اشوف الداتا اللي عايزة اشتغل عليها هي الداتا اصلا معايا ؟ ولا محتاجة اجمعها من مكان او هي مثلا متخزنة في database  و محتاج اجيبها؟ عندنا الـ phase  ديه اسمها data collecting  أو تجميع البيانات و ديه ليها طرق كتير زي مثلا لو هجمعها من database  فدي محتاجة بس اعرف ازي اخدها من الـ database  ديه سواء لو باستخدام Query Language  أو متخذنه في excel file  او ايا كان نوع الـ file  اللي هي متخزنة عليه و هنا دوري افهم هي متخزنة فين و ازاي استرجعها بس هنقف هنا شوية و هنفترض اننا معناش الداتا ديه او ان مفيش داتا جاهزة متخزنة استرجعها هنا ببدأ اشوف انا ممكن اجمعها ازاي ممكن مثلا web scraping  و ديه بتكتب script  بيلف على website  معين و يجمع منه الداتا اللي انت عايزها و ان شاء الله هيبقى فيه post  تكلم بالتفصيل عن الـ data scraping  و هشرح مثال بسيط عليه باستخدام الـ python  المهم فيه طرق كتير لتجميع الداتا زي بردو الـ surveys و الـ data banks اللي موجودة على الـ internet   . طيب بعد ماخلصنا تجميع للداتا و بقى عندنا جدول بيانات محترم كدا نشتغل عليه تفتكروا كدا خلاص بقى هنشتغل على طول كدا؟ لا طبعا لسه قبل مانبدأ شغل التحليل الاساسي و تطبيق الالجوريزم اللي اخترناه في خطوة مهمة جدا و هتفرق جدا في نتيجة شغلنا لو متعملتش كويس و هي data cleansing   و هي الـ phase اللي بننضف فيها البيانات و نروقها و نجهزها للاستخدام و الـ Phase ديه ليه اسم في الـ data science life cycle  اسمها الــ Data Preparation  أو تحضير البيانات طيب هنا انا المفروض بعمل ايه هي شوية خطوات بنعملها نننضف الداتا بتاعتنا و نخليها صالحة للاستخدام سواء كان فيه missing data او داتا ناقصة أو مثلا الداتا الـ format  بتاعها مش مظبوط او في داتا غلط و هتأثر وجودها بالسلب على نتيجتنا فبالتالي هنحتاج نشيلها. المهم الخطوة ديه ان شاء الله هنتكلم عنها بالتفصيل في post  و هشرح ازاي دا كله بيتعمل باستخدام الـ python  ان شاء الله. نيجي بقى بعد كدا لـ phase  الـ data analysis  و في الـ phase  دي بعد ما الداتا بتبقى نضيفة و متظبطة كدا بنبدأ نستكشف الداتا ديه بقى باستخدام الـ Exploratory Data Analysis  هنا في الـ phase  ديه محتاج تبقى عارف شوية احصا و رياضة هبقى انزل ان شاء الله ايه الموضوعات الي محتاج تعرفها في الـ statistics  و الـ Maths و ممكن ابقى اشرح منهم حاجات لو اتاح لي الوقت ان شاء الله. المهم هنا هنستكشف الداتا بتاعتنا علاقتها ببعض عاملة ازاي و نسأل شوية أسألة و نجاوب عليها باستخدام الداتا ديه و دا كله بيتعمل باستخدام الاحصاء و معرفة شوية SQL او مايعادل الـ Query Language  في البايثون و ممكن ان شاء الله ابقى اعمل post اشرح فيه Basics الـ SQL  للي حابب يستخدمها و هشرح برضو ان شاء الله ازاي ممكن نعمل دا باستخدام الـ python كمان ان شاء الله. طيب دلوقتي خلصنا من استكشاف الداتا و عرفنا علاقة الـ columns  ببعض و فهمنا الداتا جدا خلاص هنيجي لخطوة من اهم الخطوات في شغل علم البيانات و هي الخطوة اللي بتميز علم البيانات عن تحليل البيانات و هي تعيلم الآله او التنبؤ في الخطوة ديه بقى احنا هناخد العوامل اللي قولنا انها المؤثرة على التارجت بتاعنا و هنبني model  بالاجوريزم اللي شوفنا انه انسب لشكل الداتا ديه او للسكيما بتاعة الداتا ديه في الاول و هندي الداتا بتاعتنا للمودل اللي بانيناه عشان يمرن نفسه و يعلم نفسه باستخدام الداتا ديه و لما بيتعلم بنديله داتا جديدة بس من غير تارجت عشان المرة ديه هو بقى هيطلعلنا التارجت بنفسه بناء على اللي اتعلمه من الداتا اللي اديناهاله يتمرن عليها يعني هنا هو بيتنبأ مثلا بسعر الشقة اللي ادتله مواصفتها و الشقة ديه جديدة مكانتش في الداتا اللي ادتهاله يتمرن عليها طيب هل كدا خلاص؟ هل كدا احنا وصلنا لاخر الطريق ؟ لا مش خلاص انا هنا بنيت الموديل و مرنته و ادتله داتا يتنبأ بنتيجتها طب انا كدا اعرف منين هو ماشي صح ولا لا؟ و تفتكر هو اكيد 100% هيكون مطلع التنبؤ بتاعه صح؟ لا هو مبدأيا مفيش 100% ديه هو الموديل بتاعك ممكن ينجح بس بنسبة و كل مالنسبة بتاعة نجاحه او دقته زادت كل ماكان احسن اكيد و هي دي النقطة اللي معظم علماء البيانات بيقعدوا فيها و يشتغلوا فيها و هي ازاي احسن الـ accuracy  بتاع الموديل بتاعي. طبعا سواء كان اختيار الالجوريزم المناسب او بناء الموديل و تقييم الموديل احنا هنتكلم بالتفصيل عن كل جزء من دول قدام و هشرح ان شاء الله كل جزء بأمثلة عملية و كله ان شاء الله باستخدام الـ python  ممكن بردو ابقى اعمل post  اشرح فيه الـ python  كلغة برمجة الاول لو حابين ياريت تبلغوني و انا ان شاء الله هعملهلكم . فانا ممكن ابدأ على طول في الـ data science  من اول خطوة الـ data collection  او لو حابين ممكن الاول اشرح python هستنى منكم رد و يارب يكون شرحي كويس و تكونوا استفدتم.


4 comments:

Python Programming Language لغة برمجة البايثون

لغة البايثون هي high level language او لغة عالية المستوى, تتميز لغة البايثون بسهولتها فهي لغة سهلة القراءة و التعلم بسبب ان معظم الـ instruc...