Koefisien determinasi adalah nilai dalam statistik yang menyatakan seberapa besar variabel dependen (variabel tujuan) dijelaskan oleh variabel independen (variabel penjelas).
Umumnya, semakin tinggi semakin baik indikator penilaian
Kasus terbaik adalah 1.
Namun, semakin banyak fitur yang Anda tambahkan, skornya cenderung semakin tinggi.
Oleh karena itu, tidak mungkin untuk menilai “akurasi model yang tinggi” dengan melihat indikator ini saja
fromsklearn.metricsimportr2_scorer2=r2_score(test_y,pred_y)y_min,y_max=np.min(test_y),np.max(test_y)plt.figure(figsize=(6,6))plt.title(f"$R^2 =${r2}")plt.plot([y_min,y_max],[y_min,y_max],linestyle="-",c="k",alpha=0.2)plt.scatter(test_y,pred_y,marker="x")plt.xlabel("Jawaban yang benar")plt.ylabel("Prediksi")
Selanjutnya, buatlah data yang prediksinya cenderung tidak benar dan periksa untuk melihat bahwa koefisien determinasi turun.
r2=r2_score(test_y,pred_y)y_min,y_max=np.min(test_y),np.max(test_y)plt.figure(figsize=(6,6))plt.title(f"$R^2 =${r2}")plt.plot([y_min,y_max],[y_min,y_max],linestyle="-",c="k",alpha=0.2)plt.scatter(test_y,pred_y,marker="x")plt.xlabel("Jawaban yang benar")plt.ylabel("Prediksi")
X,y=make_regression(n_samples=1000,n_informative=3,n_features=20,effective_rank=4,noise=1.5,random_state=RND,)train_X,test_X,train_y,test_y=train_test_split(X,y,test_size=0.33,random_state=RND)# Menyusun ulang train_y dan mengkonversi nilai secara acaktrain_y=np.random.permutation(train_y)train_y=np.sin(train_y)*10+1model=RandomForestRegressor(max_depth=1)model.fit(train_X,train_y)pred_y=model.predict(test_X)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
r2=r2_score(test_y,pred_y)y_min,y_max=np.min(test_y),np.max(test_y)plt.figure(figsize=(6,6))plt.title(f"$R^2 =${r2}")plt.plot([y_min,y_max],[y_min,y_max],linestyle="-",c="k",alpha=0.2)plt.scatter(test_y,pred_y,marker="x")plt.xlabel("Jawaban yang benar")plt.ylabel("Prediksi")
Koefisien determinasi ketika menggunakan metode kuadrat terkecil
#
Dalam kasus garis regresi untuk regresi tunggal dengan menggunakan metode kuadrat terkecil, rentang koefisien determinasi adalah \( 0 \le R^2 \le 1\).
Mari kita coba mencari koefisien determinasi dengan menjalankan regresi 100 garis dengan noise acak pada data.