بتـــــاريخ : 2/13/2011 9:14:16 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 12712 1


    تنقيب البيانات ( Data Mining) خطوه بخطوه

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : HASSAN | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته


    اخوتي الكرام اعضاء منتدى الفريق العربي للبرمجه ساقوم ان شاء الله في هذه المقاله بشرح علم تنقيب البيانات Data mining

    والذي افضل ان اسميه استنباط البيانات باللغه

    العربيه , مع اختلاف المسميات والتعريفات , فهو علم وتطبيق مهم جدا ولا سيما في العصر الحالي لما يقع تحته الكثير من التطبيقات

    وهنالك العديد من المشاريع والمقالات التي طبقت هذه التقنيه ....

    العناوين الرئيسيه :-

    1:- تعريف تنقيب البيانات .

    2:- لماذا نحتاج التنقيب في البيانات؟
    .
    3:-مهام تنقيب البيانات ( تعريفات وتطبيقات )


    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    تعريف عام

    تنقيب البيانات هي عملية تحليل للبيانات من خلال ربطها مع تقنيات الذكاء الاصطناعي والعمليات الاحصائيه في

    تحليل هذه البيانات , وببساطه هي عملية تفتيش وبحث عن معلومات معينه ومفيده في حجم كبير من البيانات , وطبعا ذالك يتم من خلال

    عملية الربط بين تحليل هذه البيانات وطرق الذكاء الاصطناعي لتصبح اكثر واكفئ في عملية التفتيش
    ...

    وهي تعتبر خطوه من خطوات استكشاف المعرفه من قواعد البيانات ( Knowledge Discovery in Database, KDD)

    لحظه :mad: ... ماهي KDD ؟

    ارفق صورة : monthly_12_2009/post-168424-12621569275906.jpg

    KDD :- عدة مراحل من المعالجات والتي تمر بها البيانات لتحديد الانماط والانساق المهمه والمفيده والمفهومه

    بها ( ببساطه وبدون تكلف كما تلاحظوا بالصوره المرفقه انها مجموعه من الخطوات التي تمر بها البيانات لتحقق الاستكشاف

    الامثل والافضل للمعارف ).

    _+_+_+_+_+_+_+_+_+_+_+_+_+_+_+

    لماذا نحتاج التنقيب اصلا ؟

    من المعروف ان عملية تجميع البيانات في سجلات باحجام كبيره مثل ( Data warehouse) قد تحتوي هذه على معارف

    كبيره والتي قد تكون مفيده لاصحابها من خلال معرفة العديد من الاحصاءات المطلوبه مستقبلا لذالك نحتاج تقنيات مختلفه

    للاستفاده وهذا ما نريد من التنقيب في البيانات ,فالتقنيات العاديه قد لا تكون مفيده وغير عمليه في مثل هذه الاحجام الكبيره من

    البيانات , لذالك تواجدت تقنيات الذكاء الاصطناعي ومنها data mining لتسهل وتحسن عمليه البحث و الاستنباط
    ...

    _+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_

    طرق وانساق التنقيب في البيانات


    1- طريقة التنبؤ (prediction method) :- استخدام البيانات المتوفره وتطبيق عليها تقنيات معينه لتحقيق واعطاء قيم مستقبليه ناجحه ...

    2- طريقة الوصف ( Description method) :- عملية وصف للبيانات المتاحه ومعرفة تصنيفاتها حسب تواجدها والعلاقات بينها

    من خلال المحاكاة للروابط الطبيعيه ( human interpretable) بمعنى اخر ناخذ الروابط من خلال التفاعل الطبيعي لكي نشرح

    هذه البيانات ..


    ارفق صورة : monthly_12_2009/post-168424-12621606173898.jpg

    ++++++++++++++++++++++++++++++++++


    لكي نفهم ما هو الذي يحصل في التنقيب اريد ان اوضح الفرق بين عملية الاستعلام العاديه على قواعد البيانات العاديه

    والاستعلام في البيانات المنقبه ..

    المثال التالي والذي يوضح الفرق في الاستعلام بين كلا النوعين
    ..

    Data base Query vs.Data mining Query

    الاستعلام عن معلومات في سوق تجاري ....

    في قاعدة البيانات العاديه **** (Data base)

    * الاستعلام عن المعلومات الكامله للزبائن الذين ينتهي اسمهم الثاني بخالد ..

    * الاستعلام عن الزبائن الذين اشتروا بمبلغ اكثر من 1000 دينار في اخر الشهر.

    * الاستعلام عن اسماء الزبائن الذين اشتروا الحليب .

    التنقيب عن البيانات ***** ( Data mining )

    * الاستعلام عن كل البطاقات الائتمانيه والتي عليها مشاكل .. وهذا يسمى ( classification) التصنيف .

    * الاستعلام عن الزبائن الذين لديهم عادات شرائيه مماثله .. وهذا يسمى ( clustering ) التجمع او العناقيد .

    * الاستعلام عن السلع التي يتم شراءها بشكل تزامني مع الحليب , المقصود في كل عملية شراء يقوم بها الزبائن ..
    وهذه تسمى ( assoiciation rules ) اكتشاف قواعد وعلاقات الارتباط
    .

    __________________________

    كما تحدثنا سابقا عملية تنقيب البيانات تتم على السجلات ولكي تكون سليمه وتحقق الهدف منها , يجب ان يساعدها

    خطوات الهدف منها اعادة تصحيح والتاكد من دقة هذه البيانات وخلوها من الشوائب والتشويشات ..

    وهذه الخطوه تسمى تهيئة البيانات ( Data preparation) وتمر هذه العمليه بعدة مراحل :-

    * تنظيف البيانات :- هنا يتم التخلص من بعض البيانات التي تحتوي على عيوب مان تكون مطبعيه , او بيانات

    قديمه لا تفيد في الوقت الحالي وغير ذالك . ( data cleaning )

    * البيانات المفقوده :- عمليه تنقيب البيانات من اهم متطلباتها ان تكوت البيانات كامله لا تحتوي على قيم مفقوده ,

    وهنالك طرق طبعا لاعداة هذه وتصحيح هذه البيانات , مثل الوسط الحسابي وغيرها من العمليات ( Missing value ) .

    * اشتقاق البيانات :- في بعض الاحيان يستوجب اشتقاق بعض الاعمده فتساعدنا في الحصول على معلومات مفيده ( Data derivation ) .

    * دمج البيانات :- في بعض الاحيان يتم دمج بعض الاعمده للحصول على نتائج افضل او الاختصار في البيانات ( Merging Data ) .

    ......................

    الان بعد ان قمنا بتهيئة البيانات وتصحيحها , نأتي الى خطوة او كيفية دراسة البيانات , وهذه الطريقه

    بالاساس تهمنا لكي نحدد طريقة تعلم هذه البيانات فاما ان تكون :-

    ** ( supervised learinig ) التعلم الاشرافي وهنا يكون بوجود هدف منشود والخوارزميه تحاول الوصول به من خلال

    مجموعه من المتغيرات او المعطيات .او بمعنى اخر ان الخوارزميه المستخدمه تقوم بعمل الربط بين الهدف المنشود والمحدد سابقا

    مع ما يرتبط مع من الحلول والاقتراحات الموجوده في مسار الحل ( التعلم ) مقارنة المتوقعه مع الهدف المحدد اصلا .( التعلم من خلال امثله)

    مثال :- clssification
    _ _ _ _

    **( Un-Supervised learning ) وهنا تقوم بتجميع البيانات على شكل مجموعات تحتوي على بيانات متشابهه الخصائص

    وذالك لتمييز بعض الاستثناءات بينها .( التعلم من غير معرفه مسبقه عن الحل الصحيح المطلوب)

    مثال:- clustering
    .
    ................

    تابع ......[/size]

    كما قلنا سابقا اول خطوه في تنقيب عن البيانات كانت تهيئتها لننتقل لباقي الخطوات

    _+_+_+_+_+_+_+_+_+_+_+_+_

    الخطوه الثانيه :- ندرس الحاله ونتعرف عليها وطبعا نحدد هل تمثل

    تعلم اشرافي او غير اشرافي كما وضحنا في الدرس السابق وهنالك نقاط مهمه يتم الاهتمام بها وسالخصها بنقطتين :-

    1:- تحديد او التعريف بالدراسه التي نريد ان نقوم بها ينطوي على تحديد مجال قاعدة البيانات المستخدمه !!!!!!

    مثال :- اول مجموعة بيانات لبناء النموذج وقاعدة بيانات اخرى للتحقق من صحة هذا النموذج ومجموعه اخر لايجاد

    التكهنات او التوقعات لهذا النموذج .. ( التدريب , والتحقق ومجموعة الاختباراو الفحص ) .

    2:- تحديد حجم العينه , وذالك لانه ليس بالضروره اجراء عملية التنقيب على كل البيانات الموجوده , فيمكن اختيار مجموعة من الصفوف

    من خلال عينات عشوائيه
    .
    -----------

    الخطوه الثالثه :- قراءة البيانات وبناء النماذج !!!!؟؟؟؟

    والنموذج يلخص حجم كبير من البيانات من خلال عدة مؤشرات كالاتي :-

    من خلال الترددات او التكرارت :- فهو غالبا يظهر حدوث قيمه معينه ويبين كم نسبة التاكد من القيمه المحدثه .

    من خلال الوزن او التاثير :- يظهر كيف ان بعض المدخلات تشير الى حدوث المخرجات , اي بمعنى اخر يوضح ان بعض الاعمده

    مثلا لها اوزان عاليه .. يبين كيف المدخلات المشار اليها تعطي المخرج المطلوب.

    من خلال الارتباطات :- بعض المدخلات لها اوزان عاليه عندما تكون مع بعض افضل من اوزانها عندما تكون منفرده .

    التمايز او المفاضله :- تبين مدى اهمية اوزان ومعاير بعض المدخلات في المخرجات بالنسبه لغيرها من المدخلات .

    من خلال تحديد الاختلاف في الاوزان والمعايير بينها
    ..
    --------------

    الخطوه الرابعه :- فهم النموذج ..

    التالي والذي يمثل مجموعة بيانات اخذت من دراسة لارتفاع ضغط الدم ..

    ارفق صورة : monthly_12_2009/post-168424-12621884553875.jpg

    حيث بعض النماذج تمثل على اشكال ومنهجيات مختلفه كالصوره السابقه والتي كانت Decision tree

    حيث تم فصل البيانات على اساس صفة العمر .

    او مثلا نموذج الشبكه العصبونيه والذي انتقد على اساس انه الصندوق الاسود لتوسعه في استخدام مبدأ

    التنبؤ
    .

    لنفرض ان احدى البيانات نريد ان نجري لها تنقيب , فمراحل فهم النموذج الذي انشيء من هذه القاعده

    من البيانات تشمل الاتي :-

    1- ملخص النموذج :- يظهر الاوزان والترددات والارتباطات المهمه لكي توضح الهدف .

    2- توزيع البيانات :- فمن المهم ان تكون البيانات كبيره كفاية لتمثيل العينه .

    3- الفحص والمقارنه :-وتنطوي على استخدام التنبؤات التي يحققها النموذج المستخدم ومقارنة النتائج

    الجديده بالنتائج المعروفه .

    4- التحقق من فشل او نجاح التنبؤ :- معرفة لماذا النموذج فشل او نجح في النتؤ .

    5- ومن ثم تحديد الصفوف التي تتعبر الافضل والاكثر خظا لتحقيق النتائج المرجوه
    ...
    ----------------

    الخطوه الخامسه :-[/size] التنبؤ ( Prediction ) هي عملية التنبؤ بالنتائج بناءا على البيانات

    الموجوده .


    +_+_+_+_+_+_+_+_+_+_+_+_

    DATA MINING MODELS

    [size="3"]
    بعض التقنيات المستخدمه

    Neural Networks****

    Genetic Algorithms*****

    Agent Technology*****

    Decision Trees*****

    Hybrid Models*****

    Statistics
    ******

    السلام عليكم ورحمة الله وبركاته .........

    الظاهر ان الموضوع اما غير مهم او انه لم تصل الفكره ولكي اوضح الفكره سوف اقوم بسرد مثال تطبيقي وارجوا من الله عز وجل ان تصل هذه الفكره , لانه

    لدي شعور ان من يدخل هنا يقول في نفسه ما هذه الطلاسم والكلام غير المفهوم , الله المستعان ولكي لا يضيع هذا المجهود سوف ارفق هذا المثال بالشرح ان شاء

    الله ....( هذا العمل من عملي الخاص لذالك لا يوجد مراجع رئيسه عن الموضوع انما مراجع ثانويه ) ..

    لنبدأعلى بركة الله .....

    +_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+__++++++++++++++++++++++++_+____________________

    لعمل التنقيب في البيانات تطبق خوارزميات ونماذج عديده لحل هذه المشاكل واحدى هذه النماذج او الخوارزميات او التطبيقات هي الشبكات العصبونيه ....

    المثال التالي يوضح استخدام الشبكات العصبونيه في ايجاد التنبؤ لانواع زهرة السوسنه ( iris )

    الان طريقة العمل لحل هذه المشكله من خلال قاعدة البيانات الموجوده في موقع UCI Machine Learning Repository

    www.ics.uci.edu/~mlearn/MLSummary.html رابط الموقع

    ارفق صورة : monthly_12_2009/post-168424-12622448117005.jpg
    Machine Learning Interface

    اذا الان بعد قمنا بتحميل قاعدة البيانات التي تمثل انواع هذه الزهره من خلال عدد من الحقول والسجلات التي جمعت بالملاحظه

    والتي تحتوي على خصائص وصفات معينه ...

    هذه القاعده من البيانات قام بجمعها شخص اسمه فيشر , وتحتوي على اربع متغيرات يحدد على اساسها نوع الزهره وهي :- طول وعرض البتله

    وطول وعرض السيبال , طبعا هذه المتغيرات تمثل اجزاء موجوده في هذه الزهره, وما قلنا يتم من خلالها تحديد نوع الزهره من اي نوع من الثلاثة انواع التاليه
    .
    1 = Setosa, 2 = Versicolor, 3 = Verginic
    ------
    ارفق صورة : monthly_12_2009/post-168424-12622455181902.jpg

    بعد ان نتاكد من قاعدة البيانات انها لا تحتوي على اي اخطاء او مشاكل من خلال تهيئتها وعمل التصحيح لها ان وجدت مشاكل , نقوم بعمل التعلم لها , في الصوره

    التاليه توضح كيف يتم تمثيل البيانات بعد ان قمنا بتصحيح الاخطاء , نقوم بعمل ما يمسى التسويه او التطبيع وهو يمثل تقريبا ثاني نقطه في الشبكات العصبونيه

    حيث انه من اجل تطبيقها يجب ان يتم جعلها اي القيم اما بين( 0 و1 ) او (-1 و 1 ) وهذه مهمه جدا , نستطيع ان نقوم بذالك ببعض العمليات الحسابيه , وانا

    استعضت عن هذه العمليات باستخدام تطبيق الشبكات العصبونيه بالمحاكاه وهو نظام موجود اصلا وبرنامج يحتوي على تطبيقات الشبكات العصبونيه (neural

    connection simulation ) ونحصل على البيانات في اول مرحله كالصوره التاليه .. مخزنه في ملف CSV

    ارفق صورة : monthly_12_2009/post-168424-12622466663857.jpg
    --------------------------------------------

    ثم بعد ذالك باستخدام Neural Network Tool الموجوده في هذا البرنامج نعمل باقي الاجراءات من ادخال متغيرات خاصه وننشيء الاوزان لهذه البيانات ,

    بتحديد عدد المستويات المخفيه والمدخلات وبالتالي يقوم البرنامج باجراء التدريب ونحصل على نسب تمثل مؤشرات ونتائج لكل هذه العمليات ...

    للاسف لن استطيع ان اشرح الموضوع بتوسع كبير جدا وذالك لطوله وصعوبة شرحة لوجود تفصيلات كثيره جدا به انما حاولت ان اشير الى

    الفكره بالمجمل ...

    ارفق صورة : monthly_12_2009/post-168424-12622470844488.jpg

    -----

    طريقة ادخال البيانات على البرنامج

    ارفق صورة : monthly_12_2009/post-168424-12622471864304.jpg

    _________________________________

    عملية التدريب لقاعدة البيانات

    ارفق صورة : monthly_12_2009/post-168424-12622473032696.jpg

    _________________________________

    بسكل عام هنا هدف هذا البرنامج او هذا التطبيق هو اجراء مجموعة من الاختبارات لقاعدة البيانات لكي نحصل على افضل النتائج المتوقه من خلال

    اجراء التبديل في قيم المدخلات الجديده وبالتالي نحدد اي هذه المتغيرات الجديده افضل لتمثل افضل النماذج ........


    لقد استخدمت في المثال السابق احدى طرق ال Classification
    ( CLASSIFYING IRIS PLANTS DATABASE USING NEURAL NETWORK ) .........

    اما ال Clustering فتستخدم ال Kohonen network كتصميم لكي يقوم باداء عمليات العناقيد او التجميع ( وهو تصنيف غير خاضع للمراقبه ) ويدعم عمليات استنباط البيانات من نبتة ال IRIS فتقوم اخي هذه التجارب بتحديد ال Class اوTarget لنبتة ال IRIS على اساس اربع خصائص لها كما اشرت سابقا ( طول وعرض البتله وطول وعرض السيبال ) , طبعا Kohonen وجد ان استخدامه افضل من الطرق التقليديه في عمل التجميع ..
    ارفق صورة : monthly_01_2010/post-168424-12623143649809.jpg
    Kohonen’s Self-Organizing Maps
    وهنا لاحظنا ان في الصوره السابقه تم وضع كل عينه من المدخلات بنقاط في فضاء الحل او مجال التجميع, فمهمة ال clustering لتجميع هذه المدخلات في فضاء العمل على شكل مجموعات جزئيه وكل مجموعة جزئية تم انشاءها في هذا الفضاء تحتوي على نقاط متقاربه في ما بينها اي بينها مسافات اما ان تكون متشابه او قريبه اكثر من قربها الى النقاط في باقي المجموعات الجزئيه الاخرى ( هذه المجموعات تسمى clusters ) ..
    وعلى فكره اول تقنيه تم استخدامها لايجاد افضل الحلول في الجوار كانت ال clustering من خلال جمع الدلائل بين هذه الحلول .........:) :) شاعر اني خرجت عن الموضوع ولا شو ؟؟ :) :)

    بناءا على قاعدة البيانات المستخدمه سابقا فنجد انها صنفت هذه الزهره الى ثلاث انواع (اصناف) setosa , virginca,versicolor بناءا على اربع خصائص بكل صنف او نوع (الطول وعرض البتله , والطول وعرض السيبال ) ..

    جميل..... الان ال Kohonen هي شبكه غير خاضعه للاشراف او الرقابه في التعلم, وبما انها لا تتطلب وجود هدف في عملية التدريب و الفحص فهي تختلف عن المثال السابق (اقصد في المشاركه السابقه) الذي استخدمت فيه النتائج او الاهداف كوسيله مهمه لعملية التدريب والفحص :) , حيث انه في ال kohonin كل المدخلات ينظر لها على اساس انها اهداف مرجوه يصار الى عملية التجميع على اساسها .....

    الصوره التاليه تمثل كيف تتم عملية توزيع البيانات
    ارفق صورة : monthly_01_2010/post-168424-12623160445781.jpg

    في هذا النوع من التجارب يطبق عمليا Learning rate بين 0.1 - 1.0 كالرسم التالي ....
    ارفق صورة : monthly_01_2010/post-168424-12623164454948.jpg

    ثم نقوم بالتجارب ,,,, حيث ان انماط التجمع ترتبط بمقدار التعلم ( learning rate ) , وبعدها نقوم بتحديد عدد هذه التجمعات من خلال التجارب يعني مثلا ان نقول ( 4 clusters بين 0 و 3 ) و( 9 clusters بين 0 و8 ) ونجري التجارب عليها بتغير قيمة التعلم learning rate , فتضهر لنا اي النتائج تكون افضل هل في حالة التجمعات ال 4 ام في حالة التجمعات 9 , طبعا كل هذا يتم باستخدام الادوات الموجوده داخل هذا البرنامج , فمثلا في حالة IRIS كانت ال 9 تجمعات نتائجها افضل من الاخرى ............... هذا باختصار جدا ....

    في المرفقات ملف يشرح ال kohonen بشكل عام انصح لمن اراد الاستزاده قراءته .....
    اي شيء غير مفهوم ارجو السؤال ...
    بالتوفيق ان شاء الله

    اخي ابراهيم لا تنسى تدعمنا بشوية مقالات ... حسب وقت فراغك طبعا بارك الله فيك ..

     
    ملف مرفق(ملفات)
     
    • (4.88ميجا بايت )
      عدد مرات التحميل : 421

    كلمات مفتاحية  :

    تعليقات الزوار ()