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

بهترین برش با شاخص جینی

برای یک ویژگی xx و برچسب‌های کلاس yy (عددهای صحیح صفر تا K−1K - 1)، تابع gini_split(x, y) آستانه‌ای را پیدا می‌کند که جینی وزن‌دار دو بخش را کمینه کند. جینی یک گره با نسبت‌های کلاس p^k\hat p_k:

G=∑kp^k(1−p^k)=1−∑kp^k2G = \sum_{k} \hat p_k(1 - \hat p_k) = 1 - \sum_k \hat p_k^2

برای برش در ss، با nLn_L نمونه‌ی x≤sx \le s و nRn_R نمونه‌ی x>sx > s:

Gsplit=nLnGL+nRnGRG_{\text{split}} = \frac{n_L}{n}G_L + \frac{n_R}{n}G_R

آستانه‌های ممکن، نقطه‌ی وسط هر دو مقدار یکتای پشت‌سرهم xx است. اگر چند آستانه همان کمینه را دادند، کوچک‌ترین را بردارید. خروجی [s, G_split] است.

نمونه‌ها

ورودی نمونه ۱
[[1.61, 0.95, -0.78, 2.25, 1.63, 1.77, 0.27, -0.96, 3.1, 0.2], [1, 1, 0, 1, 0, 1, 1, 0, 1, 0]]
خروجی نمونه ۱
[0.235, 0.1714]
ورودی نمونه ۲
[[0.65, 3.0, 1.79, 0.55, 1.68, -1.07, 0.65, 0.38, -0.58, 2.77, 1.29, 3.3, -0.03, 2.88, 0.59, -0.82], [0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0]]
خروجی نمونه ۲
[0.57, 0.2]

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

ورود