请问:不用predict函数能得到训练集的性能吗?

g
gooog
楼主 (北美华人网)
####模型训练 forest = RandomForestClassifier() forest.fit(X_train, y_train)
####训练集的性能 y_pred_train = forest.predict(X_train)
请问不用这个predict函数,能得到训练集的性能吗?
有就是说经过模型训练后,其训练集的性能是不是已经保存在forest的哪个成员变量里了。所以不需要重新predict。
谢谢!
w
wfmlover
有啊,就是 oob_score
b
bunnyshe
Fit完就有了啊
g
gooog
有啊,就是 oob_score

wfmlover 发表于 2023-01-11 18:58

请问有和用predict得出一样的吗? 这个oob_score和predict得出的不一样。
g
gooog
Fit完就有了啊
bunnyshe 发表于 2023-01-11 19:05

请问是哪个变量呢?
k
kats
回复 1楼gooog的帖子
模型是一个平滑的function,参数是有限的, 数据是离散的,数据量可以是无限的,不可能保存在参数里。
g
gokgs
牛人。
C
Cumberbitch
又是这个id啊 这个和另一个id简直是双胞胎
b
bunnyshe
请问是哪个变量呢?
gooog 发表于 2023-01-11 21:55

噢噢我以为你是说模型的性能。我的意思是是fit完模型就建立了,所有的模型parameters都知道了,这是learning 里最难最耗时的部分。predict 本身是个trivial step,所以把training set 的结果存下来非常不efficient
g
gooog
噢噢我以为你是说模型的性能。我的意思是是fit完模型就建立了,所有的模型parameters都知道了,这是learning 里最难最耗时的部分。predict 本身是个trivial step,所以把training set 的结果存下来非常不efficient
bunnyshe 发表于 2023-01-11 22:22

也就是没有保存下来。
那为何要把oob的结果保存下来呢?
g
gooog
回复 1楼gooog的帖子
模型是一个平滑的function,参数是有限的, 数据是离散的,数据量可以是无限的,不可能保存在参数里。
kats 发表于 2023-01-11 22:10

可能。因为训练集是唯一的。 性能也是唯一的。 保存下来可以省去将来predict。
svm就保存下来了。
b
bunnyshe
也就是没有保存下来。
那为何要把oob的结果保存下来呢?

gooog 发表于 2023-01-11 22:26

一个简单的score存下来了不代表所有的training results都要存啊,你的问题不是针对所有性能的吗?而且你这个问题的目的是啥?你为啥想skip predict?