cross_val_score 和 KFold 的区别
difference between cross_val_score and KFold
我正在学习机器学习,我有这个疑问。谁能告诉我有什么区别:-
from sklearn.model_selection import cross_val_score
和
from sklearn.model_selection import KFold
我认为两者都用于 k 折交叉验证,但我不确定为什么要为同一功能使用两个不同的代码。
如果有什么我想念的,请告诉我。 (如果可能,请说明这两种方法的区别)
谢谢,
cross_val_score
是一个评估数据和 returns 分数的函数。
另一方面,KFold
是一个 class,可让您将数据拆分为 K
倍。
所以,这些是完全不同的。你可以制作 K 折数据并将其用于交叉验证,如下所示:
# create a splitter object
kfold = KFold(n_splits = 10)
# define your model (any model)
model = XGBRegressor(**params)
# pass your model and KFold object to cross_val_score
# to fit and get the mse of each fold of data
cv_score = cross_val_score(model,
X, y,
cv=kfold,
scoring='neg_root_mean_squared_error')
print(cv_score.mean(), cv_score.std())
cross_val_score 使用交叉验证评估分数,方法是将训练集随机分成不同的子集,称为 folds,然后它在折叠上训练和评估模型,每次选择不同的折叠进行评估,然后在其他折叠上进行训练。
cv_score = cross_val_score(model, data, target, scoring, cv)
KFold 过程将有限的数据集分成 k non-overlapping 折。 k 折中的每一个都有机会用作 held-back 测试集,而所有其他折一起用作训练数据集。在 k hold-out 个测试集上拟合并评估了总共 k 个模型,并报告了平均性能。
cv = KFold(n_splits=10, random_state=1, shuffle=True)
cv_score = cross_val_score(model, data, target, scoring, cv=cv)
其中 model 是您要评估的模型,
data是训练数据,
target是目标变量,
scoring 参数控制应用于估算器的指标,cv 是拆分数。
我正在学习机器学习,我有这个疑问。谁能告诉我有什么区别:-
from sklearn.model_selection import cross_val_score
和
from sklearn.model_selection import KFold
我认为两者都用于 k 折交叉验证,但我不确定为什么要为同一功能使用两个不同的代码。 如果有什么我想念的,请告诉我。 (如果可能,请说明这两种方法的区别)
谢谢,
cross_val_score
是一个评估数据和 returns 分数的函数。另一方面,
KFold
是一个 class,可让您将数据拆分为K
倍。
所以,这些是完全不同的。你可以制作 K 折数据并将其用于交叉验证,如下所示:
# create a splitter object
kfold = KFold(n_splits = 10)
# define your model (any model)
model = XGBRegressor(**params)
# pass your model and KFold object to cross_val_score
# to fit and get the mse of each fold of data
cv_score = cross_val_score(model,
X, y,
cv=kfold,
scoring='neg_root_mean_squared_error')
print(cv_score.mean(), cv_score.std())
cross_val_score 使用交叉验证评估分数,方法是将训练集随机分成不同的子集,称为 folds,然后它在折叠上训练和评估模型,每次选择不同的折叠进行评估,然后在其他折叠上进行训练。
cv_score = cross_val_score(model, data, target, scoring, cv)
KFold 过程将有限的数据集分成 k non-overlapping 折。 k 折中的每一个都有机会用作 held-back 测试集,而所有其他折一起用作训练数据集。在 k hold-out 个测试集上拟合并评估了总共 k 个模型,并报告了平均性能。
cv = KFold(n_splits=10, random_state=1, shuffle=True)
cv_score = cross_val_score(model, data, target, scoring, cv=cv)
其中 model 是您要评估的模型, data是训练数据, target是目标变量, scoring 参数控制应用于估算器的指标,cv 是拆分数。