معرفة نسبة معدل ارتفاع وانخفاض اسعار المنازل وعمل مؤشر لمعرفة النتائج في تعليم الاله

معرفة نسبة معدل ارتفاع وانخفاض اسعار المنازل وعمل مؤشر لمعرفة النتائج في تعليم الاله

معرفة نسبة معدل ارتفاع وانخفاض اسعار المنازل وعمل مؤشر لمعرفة النتائج في تعليم الاله

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


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


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


salary_home.py


بيانات اسعار المنازل على مدار فتره معينه ببايثون


بيانات اسعار المنازل على مدار فتره معينه ببايثون

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

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.random.random(200)
y = 3*x+1.5
y = y + np.random.normal(0, 0.05 , 200)
plt.scatter(x,y)
y_hat = 0.7*x+1
plt.scatter(x,y)
plt.scatter(x , y_hat)


تتبع بيانات اسعار المنازل على مدار فتره معينه في تعليم الاله

تتبع بيانات اسعار المنازل على مدار فتره معينه في تعليم الاله

في هذة الخطوة قمنا بعمل methode بها عملية رياضية اذا قمنا باستعمالها سوف تعمل على تحسين النتيجة النهائيه لك عن طريقة الfor سوف يحاول التمرير على البيانات وايجاد افضل نتيجة لك ويظهرها لك في الشكل النهائي كما يظهر يمكنك اخذ هذة الارقام والتعويض بها مباشرة او التعديل عليها لكي تحسن من الخط الذي يتتبع الاحصائيات التي تستهدفها ولكن لو لاحظ ان الmethode هذة استهلكت 285 الف محاولة الى الوصول الى الناتج النهائي كما هو موضح لكم وهذا يستهلك من المعالج الخاص بالجهاز او بمعنى اصح يحتاج الى معالج قوي لكي يقوم بعمل هذة العملية بشكل سريع


def get_mean_error(y_per, y_train) :
  return np.mean(np.abs(y_per - y_train))

lr = 0.01
stop = 0.05
counter = 0
for m in np.arange(0,10,lr) :
  for c in np.arange(0,10,lr) :
    counter +=1
    y_per= m*x+c
    e = get_mean_error(y_per , y)
    if e <stop :
      break
  if e<stop :
    break
print(m,c,counter)

y_draw = 2.91 *x + 1.54
plt.scatter(x,y)
plt.scatter(x,y_draw)


تحسين نسبة الاخطاء وتسريع البرنامج في عمليات تتبع اسعار المنازل

تحسين نسبة الاخطاء وتسريع البرنامج في عمليات تتبع اسعار المنازل

في هذة المرحلة سوف نقوم بالتعديل على الmethode الموجوده بالاعلى لكي نحسن من اداء الخوارزمية والوصول لافضل احتمالات ممكنه والمقصود بالmethode اي def وكما تشاهدون قام بإخراج لنا احتمالات رائعه بعد عدد قليل وهو 156 محاول فقط بدلا من 285 الف اليس هذا افضل من السابق ؟ يمكنك الان استخدام هذة الوظيفه بدلا من السابقة يمكنك الان تجربة هذة الارقام مع scatter لمشاهدة الخط الذي يقوم بتتبع الاحصائيات


def loss_function(y_per , y_true) :
  return ((y_per - y_true)**2).sum()/len(y_true)

def sgd(y_per , y_true , x) :
  dydb = 2*(y_per - y_true)
  dyda = x*dydb
  return dydb.mean() , dyda.mean()

n_epochs = 5000
lr = 0.01
a = 0
b = 0
e_list = []
stop = 0.02

for i in range(n_epochs) :
  y_per = a*x+b
  e = loss_function(y_per , y)
  da , db = sgd(y_per , y , x)
  a -= lr*da
  b -= lr*db
  e_list.append(e)
  if e<stop :
    break
print(a , b , i)
plt.plot(e_list , label='Error')


في النهاية ذع في عين الاعتبار ان الai تحتاج منك تفكير وان تكون شخص متقن لجدا للmath وتعرف القوانين والمعادلات لاننا نحتاجها بشكل كبير جدا في النماذج التي نقوم بتدريبها لذلك حاول معرفة القوانين بشكل جيد لان الmachine learning معتمد عليها بشكل كبير جدا , عكس المجالات الاخرى التي قد لا تحتاج الى math فيها اطلاقا او بشكل كبير مثل ما يتم هنا ونحن نحاول ان نبسط الامور عليكم ونحاول حل المعادلات بدون رياضيات ولكن نقابل احيانا مشاكل وتعقيدات كثيره ونلجأ الى الرياضيات لحل هذة المشاكل معنا كما رأيتم في مقالة اليوم 

تعليقات