Modelin doğruluğu iyi mi? (RandomForestRegresyon)

keditosun

Centipat
Katılım
1 Mayıs 2024
Mesajlar
2
Daha fazla  
Cinsiyet
Erkek
Hocam cevher fiyat tahmini yapan bir random forest modeli yaptım ama içime sinmedi. Daha tecrübeli abiler varsa modelimi puanlıyabilir mi?

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score

url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/diamonds.csv"
data = pd.read_csv(url)

X = data.drop(columns=["price"])
y = data["price"]

X = pd.get_dummies(X, drop_first=True)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

rf_model = RandomForestRegressor(min_impurity_decrease=0.01, bootstrap=True, n_estimators=500, max_depth=20, random_state=42)
rf_model.fit(X_train, y_train)

# Tahmin yap
y_pred = rf_model.predict(X_test)

mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

results = pd.DataFrame({
"Gerçek Değerler": y_test,
"Tahmin Edilen Değerler": y_pred,
"Hata": y_test - y_pred
}).head(20)
print(f"Mean Squared Error: {mse:.2f}")
print(f"R² Score: {r2:.2f}")
print("\nTest Sonuçlarının Karşılaştırması (İlk 20 Örnek):\n")
print(results)

Ve tahminleride burda
Mean Squared Error: 395964.36
R² Score: 0.98

Test Sonuçlarının Karşılaştırması (İlk 20 Örnek):

Gerçek Değerler Tahmin Edilen Değerler Hata
1388 559 561.364841 -2.364841
50052 2201 2358.153927 -157.153927
41645 1238 1210.594270 27.405730
42377 1304 1238.086004 65.913996
17244 6901 9998.077185 -3097.077185
1608 3011 4064.932528 -1053.932528
46398 1765 1840.063536 -75.063536
45493 1679 1806.855053 -127.855053
49385 2102 2123.171111 -21.171111
10460 4789 5766.619584 -977.619584
34243 855 841.113802 13.886198
24772 13134 13180.756000 -46.756000
42987 1367 1614.924506 -247.924506
51711 2401 2225.787373 175.212627
43777 1440 1929.331310 -489.331310
22232 10286 11338.187938 -1052.187938
1319 2958 3722.653599 -764.653599
43219 1397 1385.548832 11.451168
21843 9904 10826.832830 -922.832830
53626 552 561.443478 -9.443478
 
Son düzenleme:
Neden içine sinmedi? %98 doğruluk elde etmişsin ve bence iyi bir başarım. n_estimators değerini biraz daha artırabilirsin fakat daha çok artırırsan overfitting oluşabilir. Optimum değeri bulup o değeri kullanabilirsin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…