تحليل بيانات مبارات كرة القدرة باستخدام machine learning by useing python

تحليل بيانات مبارات كرة القدرة باستخدام machine learning by useing python

تحليل بيانات مبارات كرة القدرة باستخدام machine learning by useing python

في هذا الدرس سوف نتعرف باذن الله على نموذج جديد من نماذج تعليم الاله وهو واحد من النماذج المستخدمه بكثيرة في تحليل البيانات وهو Tree حيث يتم استخدام هذا النموذج في عمليات تحليل البيانات التي صعب على بعض النماذج الاخرى عمل لها analysing والوصول الى افضل accuracy في النتائج


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


يتمتع مبرمج python بإمكانية تطوير برمجيات سطح المكتب وتطبيقات الهواتف الذكية وايضا يمكنك عمل apis لانك تستطيع ان تقوم باعمال ال backend ، اليست كل تلك المميزات تجعلك ترغب بالبدء فيها ؟ ومحن نشرح لك كل شيئ فيها تقريبا حتى ال machine learning نشرحه لك وكل ذلك بالمجان .


تحليل بيانات مبارات كرة القدرة باستخدام machine learning by useing python

football database


الاحتمالات المتوقعه من نموذج الشجرة ببايثون

اي model نحتاج ان نقوم بعمل تحليل مع انفسنا للتفكير في الحل والتفكير في اختيار الmodel المناسب والذي سوف يتم تجربة عليه النموذج ولذلك قمنا بتحليل نموذج الشجرة والمتوقع ان تكون المخرجات على الشكل التالي ولكن هذة الصورة غير دقيقة بل هي مجرد صورة قمنا بتحليلها مع انفسنا وبعض الاحتمالات وسوف يقوم النموذج بإخراج افضل بيانات .


الاحتمالات المتوقعه من نموذج الشجرة ببايثون


الاحتمالات المتوقعه من نموذج الشجرة ببايثون

قراءة بيانات المبارات وتحويلها من string الى integer ببايثون

قراءة بيانات المبارات وتحويلها من string الى integer ببايثون

لدينا بعض البيانات لكرة القدم وتم تقديمها لها في شكل List وليس csv file لذلك سوف نشرح لكم على التعامل مع البيانات التي تصلك في list وليس في file external لدينا 3 قوائم مختلفة واحده باسماء weather و temp و play وكل list تحتوي على بيانات لذلك سوف نقوم بتحويل كل list منهم الى number لكي نستطيع التعامل معها وتحليلها لكي نتمكن من التعامل مها عن طريق مكتبة sklearn ونختار منها الامر LabelEncoder ونقوم بعملية التحويل كما تم في الكود التالي .


import pandas as pd
import numpy as np
import seaborn as sns 
np.random.seed(42)

weather=['Sunny','Sunny','Overcast','Rainy','Rainy','Rainy','Overcast','Sunny','Sunny',
'Rainy','Sunny','Overcast','Overcast','Rainy']
temp=['Hot','Hot','Hot','Mild','Cool','Cool','Cool','Mild','Cool','Mild','Mild','Mild','Hot','Mild']
play=['No','No','Yes','Yes','Yes','No','Yes','No','Yes','Yes','Yes','Yes','Yes','No']

# conver all String to int
from sklearn.preprocessing import LabelEncoder
weather_encoder = LabelEncoder()
encoder_weather = weather_encoder.fit_transform(weather)

temp_encoder = LabelEncoder()
encoder_temp = temp_encoder.fit_transform(temp)

play_encoder = LabelEncoder()
encoder_play = play_encoder.fit_transform(play)


عمل concatenation بين بيانات lists في لغة البايثون

عمل concatenation بين بيانات lists في لغة البايثون

بعد تحويل البيانات الى ارقام وذلك بعد ان تم تحويل كل كلمه الى رقم معين يبدء من 0 نريد الان عمل دمج بين تلك الdata ونضعهم في double bracket Curve وتم دمج بيانات encoder_weather و encoder_temp وهذا يسهل علينا التعامل معهم بشكل افضل فهذا يخبرنا بأنه اذا كانت درجة الحرارة مرتفعه لن يلعب الفريق واذا كانت معتدله سيلعب الفريق او اذا كان الجو بارد يلعب هذا يسهل على الmodel التعامل مع الdata .


import pandas as pd
import numpy as np
import seaborn as sns 
np.random.seed(42)

weather=['Sunny','Sunny','Overcast','Rainy','Rainy','Rainy','Overcast','Sunny','Sunny',
'Rainy','Sunny','Overcast','Overcast','Rainy']
temp=['Hot','Hot','Hot','Mild','Cool','Cool','Cool','Mild','Cool','Mild','Mild','Mild','Hot','Mild']
play=['No','No','Yes','Yes','Yes','No','Yes','No','Yes','Yes','Yes','Yes','Yes','No']

# conver all String to int
from sklearn.preprocessing import LabelEncoder
weather_encoder = LabelEncoder()
encoder_weather = weather_encoder.fit_transform(weather)

temp_encoder = LabelEncoder()
encoder_temp = temp_encoder.fit_transform(temp)

play_encoder = LabelEncoder()
encoder_play = play_encoder.fit_transform(play)

features = list(zip(encoder_weather , encoder_temp))
print(features)


معرفة score نموذج decisiontreeclassifier في بايثون

معرفة score نموذج decisiontreeclassifier في بايثون

في هذة الخطوة نقوم بتدريب نموذج الTree لكي نعرف نسبة score بعد ان قمنا بجمع البيانات وبعدها قمنا بعمل analysing للdata لكي نستطيع عمل train للmodel عليها والوصول الى افضل accuracy وبعد عمل Train لنموذج الشجرة نريد الان معرفة هل هذا النموذج افضل نموذج وهل كان الاختيار صحيح عندما قررنا ان نستعمل نموذج الtree للوصول الى افضل accuracy ام لا كل هذا سوف يضح معنا بعد عمل score للmodel ومع الاسف كانت النسبة 78% وهذة النسبة ليست كبيره مع الاسف .


import pandas as pd
import numpy as np
import seaborn as sns 
np.random.seed(42)

weather=['Sunny','Sunny','Overcast','Rainy','Rainy','Rainy','Overcast','Sunny','Sunny',
'Rainy','Sunny','Overcast','Overcast','Rainy']
temp=['Hot','Hot','Hot','Mild','Cool','Cool','Cool','Mild','Cool','Mild','Mild','Mild','Hot','Mild']
play=['No','No','Yes','Yes','Yes','No','Yes','No','Yes','Yes','Yes','Yes','Yes','No']

# conver all String to int
from sklearn.preprocessing import LabelEncoder
weather_encoder = LabelEncoder()
encoder_weather = weather_encoder.fit_transform(weather)

temp_encoder = LabelEncoder()
encoder_temp = temp_encoder.fit_transform(temp)

play_encoder = LabelEncoder()
encoder_play = play_encoder.fit_transform(play)

features = list(zip(encoder_weather , encoder_temp))

from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(max_depth=5)  # change max depth number
clf.fit(features , encoder_play)

print(clf.score(features , encoder_play))


كيفية طباعة رسمة الشجرة في sklearn

اخيرا بعد تجربة الscore سواء كان مترفع ام منخفض يمكنك تحسينه عن طريق استخدام نماذج اخرى او  تشغيل كل الmodel في وقت واحد لمعرفة الافضل ولتحسين الscore , بعد الانتهاء من كل شيئ نريد الان ان نطبع رسمة الtree لذلك سوف نستخدم plt ومنها نختار الtree وتقوم بتمرير المتغيرات التي تريدها والتي تتوقع ان تكون الoutput الخاص بك كما يظهر بالصورة .


from sklearn import tree
plt.figure(figsize=(20,8))
final = tree.plot_tree(clf , feature_names=["Weather","Temp"], class_names=["No","Yes"], filled=True)



tensorflow python erp python django mongodb python mongodb python host


تعليقات