في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
تعلم الآلة، الأسبوع 3
تنبأ بسعر منزل بخط مستقيم: لائمه يدويا بطريقة المربعات الصغرى، ثم ابن نموذجا لعدد 5000 منزل حقيقي في scikit-learn.
info وdescribe ومدرج تكراري (histogram) وخريطة حرارية للارتباط (correlation heatmap)LinearRegression، وقراءة معاملاته (coefficients)، والتنبؤ يدويا بسعر منزلالأسبوع 3 من الخطة
| الجزء | ما نفعله | الزمن |
|---|---|---|
| 1 | الفكرة، والمربعات الصغرى، ومثال محلول يدويا | 35 دقيقة |
| 2 | الدفتر: استكشاف بيانات المنازل وتجهيزها | 20 دقيقة |
| 3 | الدفتر: ملاءمة النموذج، وقراءة المعاملات | 20 دقيقة |
| 4 | التقييم على مجموعة الاختبار، ومشروعك | 15 دقيقة |
| 5 | تمارين مع الإجابات، ثم الخلاصة | 30 دقيقة |
الجزء 1
خط مستقيم عبر البيانات
y ومتغير تفسيري (explanatory variable) واحد أو أكثر X.x: المدخل، مثل دخل المنطقةŷ ("y hat"): القيمة المتنبأ بها، مثل السعرb₁: الميل، وهو مقدار تغير ŷ عندما تزيد x بمقدار 1b₀: المقطع، وهو قيمة ŷ عند x = 0y هي القيمة الحقيقية، وŷ هي التنبؤSSE: مجموع مربعات الأخطاء (sum of squared errors) على كل النقاط، وعددها nيدويا
صفوف من USA_Housing.csv. x: الدخل بوحدة 10,000 دولار، وy: السعر بوحدة 100,000 دولار، بعد التقريب
| المنزل | الدخل | السعر | (x, y) |
|---|---|---|---|
| H1 | $50,016 | $497,368 | (5, 5) |
| H2 | $59,769 | $897,291 | (6, 9) |
| H3 | $69,529 | $995,137 | (7, 10) |
| H4 | $79,628 | $1,196,064 | (8, 12) |
| H5 | $89,548 | $1,403,803 | (9, 14) |
| المنزل | (x − x̄, y − ȳ) | حاصل الضرب | (x − x̄)² |
|---|---|---|---|
| H1 | (-2, -5) | 10 | 4 |
| H2 | (-1, -1) | 1 | 1 |
| H3 | (0, 0) | 0 | 0 |
| H4 | (1, 2) | 2 | 1 |
| H5 | (2, 4) | 8 | 4 |
| المنزل | ŷ | e = y − ŷ | e² |
|---|---|---|---|
| H1 | 5.8 | -0.8 | 0.64 |
| H2 | 7.9 | 1.1 | 1.21 |
| H3 | 10.0 | 0.0 | 0.00 |
| H4 | 12.1 | -0.1 | 0.01 |
| H5 | 14.2 | -0.2 | 0.04 |
| الخط | SSE |
|---|---|
| ŷ = −3 + 2x | 7.0 |
| ŷ = −4 + 2x | 2.0 |
| ŷ = −4.7 + 2.1x | 1.9 |

yy، والأخطاء الكبيرة فيه أثقل وزنا منها في MAESST: قيمة SSE للخط الأفقي ŷ = ȳ، وهو أفضل تخمين دون أي خاصيةالجزء 2
الدفتر، ومرحلة المشروع لهذا الأسبوع
https://colab.research.google.com/github/
tirthajyoti/Machine-Learning-with-Python/blob/
master/Regression/Linear_Regression_Practice.ipynburl = ("https://raw.githubusercontent.com/"
"tirthajyoti/Machine-Learning-with-Python/"
"master/Datasets/USA_Housing.csv")
df = pd.read_csv(url)
df.info(verbose=True)5000 non-null: لا توجد قيم مفقودة (missing values)PriceAddress نص: النموذج الخطي لا يضرب إلا الأعداد، لذا يبقى خارج Xdf['Price'].plot.hist(bins=25, figsize=(8,4))1e6 أسفل المحور: أرقام التدريج بالملايين
df.corr(numeric_only=True)
sns.heatmap(df.corr(numeric_only=True),
annot=True, linewidths=2)
| الخاصية | الارتباط مع Price |
|---|---|
| Avg. Area Income | 0.640 |
| Avg. Area House Age | 0.453 |
| Area Population | 0.409 |
| Avg. Area Number of Rooms | 0.336 |
| Avg. Area Number of Bedrooms | 0.171 |
الجزء 3
LinearRegression في scikit-learn
X = df[l_column[0:len_feature-2]] # 5 features
y = df[l_column[len_feature-2]] # Price
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=123)sklearn.cross_validation، وهي وحدة لم تعد موجودة: استخدم sklearn.model_selection.lm = LinearRegression()
lm.fit(X_train, y_train)
print(lm.intercept_)
cdf = pd.DataFrame(data=lm.coef_,
index=X_train.columns,
columns=['Coefficients'])| الخاصية | المعامل |
|---|---|
| الدخل | 21.597602 |
| عمر المنزل | 165201.104954 |
| الغرف | 119061.463868 |
| غرف النوم | 3212.585606 |
| السكان | 15.228121 |
ŷ عندما تزيد خاصيته وحدها بمقدار 1 وتبقى الخصائص الأخرى كما هيالصف 2648، وهو منزل الاختبار الأول. السعر الحقيقي: 800,146.23 دولار
| الخاصية | x | b × x |
|---|---|---|
| الدخل | 63824.394539 | 1,378,453.87 |
| عمر المنزل | 4.991750 | 824,642.62 |
| الغرف | 5.003836 | 595,764.04 |
| غرف النوم | 4.00 | 12,850.34 |
| السكان | 40086.458749 | 610,441.44 |
يقسم الدفتر كل معامل على خطئه المعياري (standard error): والناتج هو إحصائية t (t-statistic)
| الخاصية | إحصائية t |
|---|---|
| Avg. Area Income | 134.68 |
| Avg. Area House Age | 95.91 |
| Area Population | 89.64 |
| Avg. Area Number of Rooms | 70.18 |
| Avg. Area Number of Bedrooms | 2.33 |
الجزء 4
التنبؤ بأسعار 1500 منزل اختبار
predictions = lm.predict(X_test)
plt.scatter(x=y_test, y=predictions)predictions: 1500 سعر، سعر واحد لكل منزل اختبار


Mean absolute error (MAE): 81739.77482718184
Mean square error (MSE): 10489638335.804983
Root mean square error (RMSE): 102418.93543581179
R-squared value of predictions: 0.919| المقياس | القيمة | المعنى |
|---|---|---|
| MAE | $81,740 | متوسط حجم الخطأ |
| RMSE | $102,419 | الخطأ المعتاد، نحو 8% من متوسط السعر |
| R² على الاختبار | 0.919 | يفسر نحو 92% من تشتت الأسعار |
| R² على التدريب | 0.917 | الأداء على المنازل الجديدة جيد بقدر الأداء على المنازل التي رآها |
قبل التمارين
cross_validation، وdf.corr() مع عمود نصي، وdistplot./Datasets/USA_Housing.csv في ColabAddress في Xمشروع فريقك
shape والأعمدة والأنواع باستخدام info()isnull().sum()، ثم fillna أو dropna (الأسبوع 1)describe() وابحث عن القيم المستحيلةnumeric_only=Trueالجزء 5
نحو 30 دقيقة، والإجابات بعد كل تمرين
نحو 10 دقائق
| المنطقة | x (الدخل، 10,000 دولار) | y (السعر، 100,000 دولار) |
|---|---|---|
| A1 | 4 | 6 |
| A2 | 5 | 7 |
| A3 | 6 | 10 |
| A4 | 7 | 11 |
| A5 | 8 | 11 |
x̄ وȳ والميل b₁ والمقطع b₀الإجابات
الإجابات
| المنطقة | ŷ | e | e² |
|---|---|---|---|
| A1 | 6.2 | -0.2 | 0.04 |
| A2 | 7.6 | -0.6 | 0.36 |
| A3 | 9.0 | 1.0 | 1.00 |
| A4 | 10.4 | 0.6 | 0.36 |
| A5 | 11.8 | -0.8 | 0.64 |
نحو 5 دقائق
الصف 2456، والسعر الحقيقي 707,345.06 دولار، والمقطع -2,631,028.90. تنبأ بالسعر، ثم أوجد الباقي.
| الخاصية | x | المعامل b |
|---|---|---|
| الدخل | 67041.967661 | 21.597602 |
| عمر المنزل | 6.021458 | 165201.104954 |
| الغرف | 5.346830 | 119061.463868 |
| غرف النوم | 3.39 | 3212.585606 |
| السكان | 15633.099048 | 15.228121 |
الإجابات
نحو 5 دقائق
نحو 10 دقائق
lm1 على X_train[['Avg. Area Income']] فقط: اطبع المقطع، والمعامل، وقيم R² وMAE وRMSE على الاختبارAvg. Area Number of Bedrooms (drop(..., axis=1)) واطبع قيمة R² على الاختبارالإجابات
| النموذج | R² على الاختبار | RMSE على الاختبار |
|---|---|---|
| الخصائص الخمس كلها | 0.919 | 102,418.94 |
| الدخل فقط | 0.417 | 275,407.48 |
| كل الخصائص عدا غرف النوم | 0.920 | 102,282.54 |
b0 مضافا إليه مجموع موزون للخصائصy − ŷ؛ والمربعات الصغرى تجعل مجموع مربعات البواقي أصغر ما يمكنMahmoud Abas|الانحدار الخطي