التنبؤ بالأعداد
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 11 من 58.
تتنبأ النماذج في هذا الفصل بأرقام. وبحلول نهايته، سيكشف مخطط لأخطاء أحد النماذج ما الذي أغفله:
ابدأ بخط تعرفه. يتعلم LinearRegression هذا الخط من جدول X، بحيث يمثل كل صف عينةً وكل عمود ميزةً:
from sklearn.linear_model import LinearRegression
area = np.array([60, 75, 90, 110, 130, 150]) # منازل، بالمتر المربع
price = np.array([215, 248, 290, 335, 385, 428]) # آلاف الدولارات
X = area.reshape(-1, 1) # 6 صفوف، 1 عمود
model = LinearRegression()
model.fit(X, price)
print(np.round(model.coef_, 2), np.round(model.intercept_, 2))
print(np.round(np.polyfit(area, price, 1), 2))يطبع هذا السطر نفسه مرتين:
[2.39] 71.59
[ 2.39 71.59]يحتوي coef_ على ميل واحد لكل ميزة: كل متر مربع إضافي يضيف 2.39 ألف دولار. يمثّل intercept_ نقطة بداية الخط، عند 0 متر مربع. بعد ذلك، يقدّر model.predict([[100]]) سعر 100 متر مربع بنحو 310.85 ألف.
التحدي
متوسطلم ينشر متجر الطباعة أسعاره قط، لكن لديك بيانات 10 طلبات سابقة: pages وprice بالدولار. يقرأ البرنامج عدد الصفحات في طلب جديد.
- درّب
LinearRegressionعلى عدد الصفحات، باعتباره جدولًا ذا عمود واحد. - اطبع السعر لكل صفحة (3 منازل عشرية) ورسوم الإعداد، أي قيمة التقاطع (منزلتان عشريتان).
- اطبع السعر المتوقع للطلب الجديد (منزلتان عشريتان).
لمتجر آخر وللقيمة 120:
Per page: 0.095 dollars
Setup fee: 4.1 dollars
120 pages: 15.5 dollarsجرّب بنفسك
import numpy as np
from sklearn.linear_model import LinearRegression
# 10 مهام طباعة سابقة: عدد الصفحات المطبوعة والسعر المدفوع بالدولار
pages = np.array([40, 75, 120, 160, 210, 260, 300, 380, 450, 520])
price = np.array([7.38, 12.6, 17.65, 20.69, 26.63, 32.18, 37.76, 46.4, 55.17, 60.89])
new_pages = int(input())
# اكتب شيفرتك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت