簡體   English   中英

為什么train_test_split和管道cross_val_score之間的r2_score有很大不同?

[英]why r2_score is quite different between train_test_split and pipeline cross_val_score?

我不知道為什么train_test_split和管道cross_val_score之間的r2_score有很大不同? 我懷疑這是因為模型可以通過管道中的CountVectorizer()看到未知單詞。 但是基於管道的概念,CountVectorizer()應該只對由cross_val分割的訓練集起作用嗎?

pipe=Pipeline([('Vect', CountVectorizer()), ('rf', RandomForestRegressor(random_state=1)) ])

X_train, X_test, y_train, y_test=train_test_split(df['X'], df['price'], shuffle= False, test_size=0.5)

reg=pipe.fit(X_train,y_train )
mypred= reg.predict(X_test)
r2_score(mypred, y_test)
# result is -0.2
cross_val_score(pipe,df['X'], df['price'],cv=2)
# result is about 0.3
r2_score(mypred, y_test)

是錯的。

您需要提供真實值作為第一輸入,並提供預測值作為第二輸入。 更正為:

r2_score(y_test, mypred)

然后檢查結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM