首页 > 解决方案 > .fit() 和 .cross_validate() 之间的区别 - python

问题描述

我有四个数字列的数据框,它们是X1, X2, X3, Y. 我把它分成 80% 的训练和 20% 的测试。整个数据框中没有nan,现在我需要创建模型并对其进行评估(我基于这个kaggle kernel构建了这个):

from sklearn.ensemble import RandomForestRegressor
predictor_cols = ["X1","X2","X3"]
train_X = train[predictor_cols]
my_model = RandomForestRegressor()
my_model.fit(train_X, train_Y)

test_X = test[predictor_cols]
test_Y = test["Y"]  # the dependent variable is numeric
pred_test_Y = my_model.predict(test_X)

acc_rf = round(my_model.score(train_X, train_Y) * 100, 2)
acc_rf

我正在苦苦挣扎,my_model.fit()因为我找不到有关它的文档,但我知道它使用RandomForestRegressor(). 但是,我有几个问题:

1)如何my_model.fit()训练模型?它是否使用交叉验证来提高性能?如果它使用哪种评分方法来评估交叉验证?

1.2)如果my_model.fit()不使用交叉验证,它是如何训练模型的?

1.3) 如果my_model.fit()不使用交叉验证,我如何使用 RandomForestRegressor() 技术与交叉验证能够选择评分方法?

2)假设下面的行评估预测,但它没有(因为预测在变量pred_test_Y中,我用这行代码得到了 98% 的准确度(它的准确度?)。我的意思是,什么这条线?

acc_rf = round(my_model.score(train_X, train_Y) * 100, 2)

标签: pythonscikit-learncross-validationscoring

解决方案


推荐阅读