【发布时间】:2021-08-07 22:49:07
【问题描述】:
考虑一下这个 sn-p 代码:
import pandas as pd
df = pd.read_csv('module_5_auto.csv')
df = df._get_numeric_data()
y_data = df['price']
x_data = df.drop('price',axis=1)
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.10, random_state=1)
from sklearn.linear_model import LinearRegression
lre=LinearRegression()
lre.fit(x_train[['horsepower']], y_train)
from sklearn.model_selection import cross_val_score
cross_val_score(lre, x_data[['horsepower']], y_data, cv=4)
from sklearn.model_selection import cross_val_predict
cross_val_predict(lre, x_data[['horsepower']], y_data, cv=4)
我理解函数 cross_val_score 将数据分成折叠(根据 cv 的数量),将每个不同的折叠作为 test_data 并将剩余的 3 折叠作为 train_data ,训练模型,然后得到test_data 在丢弃模型之前的得分,然后输出 4 个不同的 train_data 折叠的 4 个得分。
但是cross_val_predict 呢...它的输出到底是什么?...
是4个模型中得分最高的模型的预测吗?...
还是 4 个模型的 4 个预测的平均值?
我发现有人提到这个
函数
cross_val_predict具有与cross_val_score类似的接口,但会为输入中的每个元素返回在该元素位于测试集中时获得的预测。
“输入中的每个元素”是什么意思?...有 4 个折叠,4 个训练集和 4 个测试集...其中哪一个是“元素”?
【问题讨论】:
标签: python machine-learning scikit-learn