شرح التعامل مع بيانات الرواتب للموظفين في تعليم الاله

شرح التعامل مع بيانات الرواتب للموظفين في تعليم الاله

شرح التعامل مع بيانات الرواتب للموظفين في تعليم الاله

في هذا المقالة سنشارك معكم كيفية التعامل مع نموذج رواتب الموظفين في machine learning وكيف نستطيع قراءة الملف ومعرفة المحتويات وماهي رواتب الموظفين وهل رواتب الموظفين في الشركة تكون في ارتفاع او انخفاض ونقوم بتدريب نموذج عليها ومعرفة نسبة الخطأ في هذا النموذج وكل هذا سوف نشرحه لكم في هذة المقالة بإذن الله بشكل تفصيلي ولذلك حاول التركيز في المقالة وقرائتها حتى النهايه حتى تستفاد اعلى استفاده منها


تعليم الاله واحد كن المجال التي اصبح التركيز عليها كبير من قبل الشركات العملاقه وذلك بسبب ما تقدمه لنا من توفير في الوقت والحصول على نتائج دقيقه او بنسبة كبيره تكون accuracy ونحاول دائما توفير كل ما يحتاجه المطور في مختلف الاكواد بشكل free لكي يتمكن من انجاز عمله والحصول على افضل النتائج في العمل ، هذا المجال موجود منذ مده ولكن بدء حاليا في الانتشار بشكل واسع بسبب التطورات التي تتوفر في عصرنا والاستغناء عن بعض الاعمال البشريه .


يهتم مجال ال machine learning بتدريب models تقوم بعمل وظيفه معينه للبيانات المتوفره لدينا مثال على ذلك اذا كانت لدينا بيانات لمباريات كرة قدم ونريد عمل model لمعرفة هل هذة المباريات ستقام ام هنالك مشاكل تمنع اللاعبين من اللعب بالتالي نقوم بالحصول اولا على بيانات ال weather و الملعب و والحراره والبروده وكل البيانات التي نحتاجها ونمررها الى model ونقوم بعمل train له للتاكد من مدى خطوره لعب المباراه


معرفة رواتب المواظفين في حالات الارتفاع ام الانخفاض

هنا يتم ادراج ملف csv file ويتم قراءة محتواه بشكل كامل عن طريق مكتبة pandas حيث يتم من خلالها ادراج الملف الخاص بالموظفين والذي سوف اتركه لكم في نهاية المقالة لمن يريد التعديل عليه والتعامل معه وايضا سوف اترك لكم رابط الاكواد الموجوده في هذة المقالة ايضا في النهاية , عموما لقراءة الملفات نحتاج الى الامر التالي وهو pd.read_csv وبعد ذلك نكتب المسار الذي يوجد به الملف واذا كنت تعمل على google colab كما اعمل انا شخصيا سوف تحتاج الى رفع الملف الى هذا المشروع الذي تعمل عليه ليتم بعدها تشغيله بدون مشاكل , بعدها قمنا بعرض البيانات الموجوده بداخل الملف وقراءة المحتوى ووجدنا انه لدينا عمودين الاول خاص سنة الخبرة والثاني مسؤول عن الرواتب


معرفة رواتب المواظفين في حالات الارتفاع ام الانخفاض


نريد نحن الان عمل رسم بياني لمشاهدة هل اذا اصبح ذو خبره اعلى هل يؤدي ذلك الى ارتفاع العائد الخاص بالموظف ام لا وهنا نحتاج الى مكتبة matplotlib وتحديدا الامر scatter وهذة المكتبة تم شرحها لكم من قبل في اكثر من مقالة من مقالات الmachine learning ليتم رسم لنا مجموعة من النقاط التي توضح لنا آلية التعامل مع البيانات وماهو سلوك البيانات لو نلاحظ ان البيانات في ارتفاع وهذا يدل انه كلما اكتسب الفرد خبره اكثر زاد الدخل الخاص به نريد اخيرا معرفة ماهي المحتويات الفارغه من هذا الجدول لذلك تم استخدام الامر df.isna().sum() لكي نتاكد هل يوجد محتويات فارغه في الجدول ام لا وكما توقعنا انه لا يوجد محتويات فارغه تماما .

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv("/content/Salary_Data.csv")
df.head()

print(df.keys())
print(plt.scatter(df['YearsExperience'],df['Salary']))
print(df.isna().sum())


تقليل حجم الخاص برواتب الموظفين لتدريبها في تعليم الاله

تقليل حجم الخاص برواتب الموظفين لتدريبها في تعليم الاله

في هذة الجزئية سوف نعمل على تقليص حجم البيانات وذلك يتم عن طريق مكتبة StandardScaler وكما شرحنا لكم هذة الخاصية من قبل انها تعمل على تقليص وتحجيم البيانات بين -1 و 1 ليسهل التعامل معها ولضمان عدم حدوث مشاكل , الامر الاخر وهو عرض البيانات وهنا استخدمنا scatter ولكن اذا كنا نريد عرض بيانات تم تقليص حجمها يتم كتابتها على النحو التالي scaled_data وناخذ كل الصفوف والعمود الاول والمرمز له بالindex 0 ومع العمود الاخر نفس العملية .

يقصد ب [:,0][rows,coulmn] ان ياخذ كل الصفوف مع العمود الاول الذي يماثله في ال index القيمة صفر ونفس الوضع مع [1,:] ياخذ كل الصفوف مع العمود الذي يقابلة في index وهو صفر


from sklearn.preprocessing import StandardScaler # column -1.5 to 1.5 , rows : -1.5 to 2.0
scaler = StandardScaler()
scaled_data = scaler.fit_transform(df)

plt.scatter(scaled_data[:,0] , scaled_data[:,1]) 

# During the drawing process, you need to define the features of the drawing, which is to get all the rows and columns


تجربة نموذج LinearRegression على راتب المواظفين

تجربة نموذج LinearRegression على راتب المواظفين

سوف نقوم باستخدام نموذج LinearRegression ولكن قبل استخدامه نحتاح الى تدريب البيانات لضمان العملية بشكل صحيح ولذلك تقدم لنا مكتبة sklearn امكانية تدريب النموذج وهذة الخاصية تم شرحها لكم من قبل في معظم دروس الmachine بعد تدريب البيانات لا تنسى عمل reshape(1,-1) للكي لا يحدث معك مشاكل في البيانات وبعدها قم باستخدام النموذج الذي ترغب به وهنا تم استخدام LinearRegression عن طريق عمل fit للبيانات التي يتم التدريب عليها وبالاسفل قمنا بطباعة intercept و coef تستطيع من خلال هذة البيانات جعلها في معادلة رياضية # y = 97*x - 0.02 بهذا الشكل وقيمة x تقوم انت كمستخدم بإدخالها


from sklearn.model_selection import train_test_split
x_train ,x_test , y_train , y_test = train_test_split(scaled_data[:,0].reshape(-1,1) , scaled_data[:,1] , test_size=0.15 , random_state=42)

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_train,y_train)

print(f'model.intercept is : {model.intercept_}')
print(f'model.coef is : {model.coef_}')
# y = 97*x - 0.02


معرفة نسبة الخطأ في نموذج LinearRegression لتعليم الاله


معرفة نسبة الخطأ في نموذج LinearRegression لتعليم الاله

يمكنك استخدام mean_absolute_error لمعرفة نسبة الخطأ في النموذج ولكن قبل ذلك لا تنسى استدعاءه من خلال الامر from sklearn.metrics import mean_absolute_error ةايضا لا تنسى عمل model.predict للبيانات المعروفه وليس للبيانات التي عليها الاختبار لكي يتمكن من ايجاد افضل نسبة لك وهنا كانت نسبة الايرور 0.25 اي 25% وهذة النسبة تعد كبيره نوعا ما ولكن كيف تقوم بتحويل نسبة الخطأ المئوية الى نسبة معروفة ؟


y_perd = model.predict(x_test)
from sklearn.metrics import mean_absolute_error
error = mean_absolute_error(y_perd,y_test)
error



تحويل نسبة الخطأ الى قيمة معروفة بواسطة مكتبة numpy في تعليم الالة

تحويل نسبة الخطأ الى قيمة معروفة بواسطة مكتبة numpy في تعليم الالة

في هذا الجزء والذي يعد الاخير قمنا بعمل تعديل على البيانات من مرحلة التدريب الى مرحلة الايرور لمعرفة القيمة التي قد يخطأ بها النظام والتي كانت تعادل 25% وبعد الانتهاء كانت حوالي 7000 وهذا يدل انه اذا قام النموذج بخطأ فسوف يقوم بزيادة القيمة 7000 على الراتب الفعلي نوعا ما قد تكون هذة النسبة كبيرة .


from sklearn.preprocessing import StandardScaler # column -1.5 to 1.5 , rows : -1.5 to 2.0
scaler = StandardScaler()
scaled_data = scaler.fit_transform(df)
plt.scatter(scaled_data[:,0] , scaled_data[:,1]) 
from sklearn.model_selection import train_test_split
x_train ,x_test , y_train , y_test = train_test_split(df['YearsExperience'].to_numpy().reshape(-1,1) ,df['Salary'], test_size=0.15 , random_state=42)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_train,y_train)
print(f'model.intercept is : {model.intercept_}')
print(f'model.coef is : {model.coef_}')
y_perd = model.predict(x_test)
from sklearn.metrics import mean_absolute_error
error = mean_absolute_error(y_perd,y_test)


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


Salary_Data

تعليقات