راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

بهترین برش یک درخت رگرسیون

تابع best_split(X, y) نخستین گام تقسیم دودویی بازگشتی را انجام می‌دهد: بهترین ویژگی jj و آستانه‌ی ss را پیدا می‌کند که داده را به دو ناحیه می‌بُرند،

R1={X∣Xj≤s}R2={X∣Xj>s}R_1 = \{X \mid X_j \le s\} \qquad R_2 = \{X \mid X_j > s\}

و مجموع RSS دو ناحیه — هر ناحیه با میانگین yy خودش — کمینه است:

∑i: xi∈R1(yi−yˉR1)2+∑i: xi∈R2(yi−yˉR2)2\sum_{i:\, x_i \in R_1}(y_i - \bar y_{R_1})^2 + \sum_{i:\, x_i \in R_2}(y_i - \bar y_{R_2})^2

آستانه‌های ممکن برای هر ویژگی، نقطه‌ی وسط هر دو مقدار یکتای پشت‌سرهم آن ستون است (np.unique مقدارها را مرتب می‌دهد). خروجی [j, s, rss] است. در آزمون‌ها بهترین برش یکتاست.

نمونه‌ها

ورودی نمونه ۱
[[[5.1, 9.5], [1.4, 9.5], [3.1, 4.2], [8.3, 4.1], [5.5, 0.3], [7.5, 5.4], [3.3, 7.9], [3.0, 4.5]], [4.52, 1.35, 1.11, 4.37, 3.0, 4.36, 2.15, 2.0]]
خروجی نمونه ۱
[0.0, 4.2, 2.2753]
ورودی نمونه ۲
[[[2.6, 3.0], [8.1, 0.9], [6.0, 7.3], [1.9, 0.6], [2.7, 6.6], [5.6, 1.5], [4.3, 6.7], [4.2, 6.3], [9.7, 6.8], [3.9, 1.9], [3.5, 5.1], [8.9, 7.8]], [-0.51, 3.39, 5.53, -0.82, 0.64, 2.25, 1.92, 1.56, 5.04, 0.36, 1.61, 4.64]]
خروجی نمونه ۲
[0.0, 5.8, 11.618]

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

ورود