我正在使用 sklearn 的GridSearchCV來為我的隨機森林模型獲取最佳參數。下面是我的代碼model = RandomForestRegressor(random_state = 1, n_jobs = -1) param_grid = {"n_estimators": [5, 10]}for parameter, param_range in dict.items(param_grid): #get_optimum_range(parameter, param_range, RFReg, index) grid_search = GridSearchCV(estimator=model, param_grid = {parameter: param_range}) grid_search.fit(X_train, y_train) results = pd.DataFrame(grid_search.cv_results_)我的結果數據框如下如果你觀察到 mymean_test_score是陰性但mean_train_score陽性。什么可能是相同的原因?我的數據幀大小print(X_train.shape)print(y_train.shape)print(X_test.shape)print(y_test.shape)(538, 3)(538,)(112, 3)(112,)
2 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
在 gridsearch CV 中,如果您沒有指定任何評分器,則使用估計器的默認評分器(此處為 RandomForestRegressor):對于隨機森林回歸器,默認評分是 R 平方評分:它也可以稱為決定系數。
返回預測的決定系數 R^2。
系數 R^2 定義為 (1 - u/v),其中 u 是殘差平方和 > ((y_true - y_pred) ** 2).sum() 并且 v 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最好的可能分數是 1.0,它可以是負數(因為模型可以任意糟糕)。一個始終預測 y 預期值的常數模型,忽略輸入特征,將獲得 0.0 的 R^2 分數。
R 平方基本上是您的模型解釋的方差百分比。
您還可以將其視為與預測始終相同值(均值)(因此是 2D 中的一條線)的簡單模型相比,您的回歸要好多少。
如果您的 R 平方為負,則意味著您的模型比簡單的水平線差,這意味著您的模型不適合您的數據。
在您的情況下,您的火車 R^2 非常好,因此要么意味著您設法過度擬合您的數據(但不太可能),要么只是測試數據與火車數據不相似。
添加回答
舉報
0/150
提交
取消