معرفة اسعار المنازل في ولاية بوسطة باستخدام machine learning

معرفة اسعار المنازل في ولاية بوسطة باستخدام machine learning

معرفة اسعار المنازل في ولاية بوسطة باستخدام machine learning

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


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


الاسباب التي تجعلك متمكن من لغه بايثون اولا انك لن تكون قادر على تعلم oop وهي اختصار لكلمة (Object-oriented programming - OOP) وتعني برمجة الكائنات او البرمجة الشيئية بشكل جيد فهذه العمليه تحتاج منك الى تعلم لغه قويه مثل جوفت او سي بلس بلس او سي او غيرها من اللغات لان مرحله OOP او البرمجه الشيئيه في البايثون بسيطه جدا و قد تجعلك غير قادر على فهمها بصوره واضحه ولذلك اي شخص يتعلم Object-oriented programming - OOP يتجه الى اي لغه صعبه اخرى في البدايه لكي تتمكن من فهمها و بعدها يمكن الانتقال مره اخرى الى python , حيث ان اللغات القوية اذا فهمتها بشكل جيد تستطيع تعلم اي من اللغات الحديثه التي ظهرت في الاونه الاخيره بسهوله لان الامر سيساعدك في ان تستطيع استيعاب المعلومات التي سوف تاخذها .


معرفة اسعار المنازل في ولاية بوسطة باستخدام machine learning

معرفة اسعار المنازل في ولاية بوسطة باستخدام machine learning

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


load_boston
https://drive.google.com/file/d/1mdwHEC4JBDV7uF-yRL-zTCPko86s3fhW/view?usp=sharing
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(42)
from sklearn.datasets import load_boston
boston = load_boston()
boston.keys()
df = pd.DataFrame(boston['data'] , columns=boston['feature_names'])
df.head()


اضافة target الى الجدول في تعليم الاله


اضافة target الى الجدول في تعليم الاله

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


import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(42)
from sklearn.datasets import load_boston
boston = load_boston()
boston.keys()
df = pd.DataFrame(boston['data'] , columns=boston['feature_names'])
df['target'] = boston['target']
df.head()


طباعة figure يحتوي على البيانات 

طباعة figure يحتوي على البيانات

طبعا في اي عملية نقوم بها نحتاج الى طباعة جدول figure يحتوي على البيانات ونقارن هذة البيانات لكي نقوم بإضافة او الازالة منها على حسب البيانات الحاصلين عليها من خلال الرسم حيث اذا كانت القيمة اكثر من 0.85 اي اللون المائل للابيض يفضل ازالته .


plt.figure(figsize=(10,10))
sns.heatmap(df.corr().round(2) , annot=True)
sns.scatterplot(x="RM",y="target",data=df)


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

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

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


sub = df[["RM" , "LSTAT"]]
from sklearn.model_selection import train_test_split
x_train , x_test , y_train , y_test = train_test_split(sub , df['target'] , test_size=0.2 , random_state=42)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_train , y_train)
y_per = model.predict(x_test)
from sklearn.metrics import mean_absolute_error
error = mean_absolute_error(y_per, y_test)
error

# 3.8987597213823584

تعليقات