Menu
CoddyTech
flag Ar iconالعربيةdown icon

التنبؤ بالأعداد

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 11 من 58.

تتنبأ النماذج في هذا الفصل بأرقام. وبحلول نهايته، سيكشف مخطط لأخطاء أحد النماذج ما الذي أغفله:

مخطط لأخطاء نموذج مقارنةً بدرجة الحرارة: تتقوس النقاط من -280 إلى +140 ثم تعود إلى الأسفل، حول خط متقطع عند 0، وعليه تسمية: أغفل النموذج منحنى

ابدأ بخط تعرفه. يتعلم 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]

ستة منازل ممثلة بنقاط، السعر مقابل المساحة، مع خط LinearRegression البرتقالي السميك وخط np.polyfit الأسود المتقطع متطابقين تمامًا فوق بعضهما: السعر = 2.39 * المساحة + 71.59

يحتوي coef_ على ميل واحد لكل ميزة: كل متر مربع إضافي يضيف 2.39 ألف دولار. يمثّل intercept_ نقطة بداية الخط، عند 0 متر مربع. بعد ذلك، يقدّر model.predict([[100]]) سعر 100 متر مربع بنحو 310.85 ألف.

challenge icon

التحدي

متوسط

لم ينشر متجر الطباعة أسعاره قط، لكن لديك بيانات 10 طلبات سابقة: pages وprice بالدولار. يقرأ البرنامج عدد الصفحات في طلب جديد.

  1. درّب LinearRegression على عدد الصفحات، باعتباره جدولًا ذا عمود واحد.
  2. اطبع السعر لكل صفحة (3 منازل عشرية) ورسوم الإعداد، أي قيمة التقاطع (منزلتان عشريتان).
  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())

# اكتب شيفرتك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت