راه
۴ کیو· سختپیشرفتهPYTHON۴ ثانیه · ۲۵۶ مگابایت

درخت رگرسیون از صفر

تابع tree_predict(X, y, X0, max_depth) یک درخت رگرسیون را با تقسیم دودویی بازگشتی می‌سازد و برای ردیف‌های X0 پیش‌بینی می‌کند.

ساختن یک گره با داده‌ی (Xn,yn)(X_n, y_n) در عمق dd (ریشه عمق صفر دارد):

  1. اگر dd برابر max_depth باشد، یا گره کمتر از دو نمونه داشته باشد، یا هیچ ستونی بیش از یک مقدار یکتا نداشته باشد: برگ است و پیش‌بینی‌اش میانگین yny_n.
  2. وگرنه بهترین برش را مثل تمرین «بهترین برش» پیدا کن: برای هر ستون jj به ترتیب، آستانه‌ها نقطه‌ی وسط مقدارهای یکتای پشت‌سرهم، کمترین مجموع RSS دو بخش؛ در تساوی، اولین ستون و کوچک‌ترین آستانه.
  3. نمونه‌های Xj≤sX_j \le s به فرزند چپ و بقیه به فرزند راست می‌روند؛ هر فرزند را با عمق d+1d + 1 بساز.

برای پیش‌بینی، هر ردیف X0 را از ریشه با همان قاعده‌ها (Xj≤sX_j \le s یعنی چپ) پایین ببرید تا به برگ برسد.

نمونه‌ها

ورودی نمونه ۱
[[[8.7, 2.9], [6.0, 7.8], [7.2, 9.2], [8.6, 9.2], [0.3, 4.4], [4.8, 0.7], [0.1, 8.3], [9.8, 7.8], [3.2, 7.1], [3.0, 7.4], [2.8, 7.8], [9.9, 9.9]], [2.95, 4.31, 4.91, 4.05, 1.88, -0.59, 1.77, 3.98, 0.58, 1.2, 0.77, 4.78], [[2.0, 2.0], [8.0, 8.0], [6.0, 1.0]], 1]
خروجی نمونه ۱
[0.935, 4.1633, 4.1633]
ورودی نمونه ۲
[[[8.7, 2.9], [6.0, 7.8], [7.2, 9.2], [8.6, 9.2], [0.3, 4.4], [4.8, 0.7], [0.1, 8.3], [9.8, 7.8], [3.2, 7.1], [3.0, 7.4], [2.8, 7.8], [9.9, 9.9]], [2.95, 4.31, 4.91, 4.05, 1.88, -0.59, 1.77, 3.98, 0.58, 1.2, 0.77, 4.78], [[2.0, 2.0], [8.0, 8.0], [6.0, 1.0]], 2]
خروجی نمونه ۲
[1.24, 4.406, 2.95]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود