不确定 get_n_splits 的目的及其必要性
Unsure about the purpose of get_n_splits and why it is necessary
我正在关注 kernel on Kaggle 并发现了这段代码。
#Validation function
n_folds = 5
def rmsle_cv(model):
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
return(rmse)
我了解 KFold 的目的和用途以及在 'cross_val_score' 中使用的事实。我不明白的是为什么使用 'get_n_split'?据我所知,它 returns 用于交叉验证的迭代次数,即 returns 在这种情况下值为 5。当然是这条线:
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
CV = 5?这对我来说没有任何意义。如果 returns 是一个整数,为什么还要使用 get_n_splits?我认为 而 get_n_splits
returns 是一个整数。
谁能解开我的理解?
I thought KFold returns a class whereas get_n_splits
returns an integer.
当然,KFold
是一个class,class方法之一是get_n_splits
,其中returns是一个整数;你显示的 kf
变量
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
不是KFold
class对象,它是KFold().get_n_splits()
方法的结果,确实是一个整数。事实上,如果你检查 documentation,get_n_splits()
甚至不需要任何参数(它们实际上被忽略了,并且仅出于与其他 classes 和方法的兼容性原因而存在)。
至于被质疑的 get_n_splits
方法的效用,能够查询此类 class 对象以取回它们的参数设置从来都不是一个坏主意(相反) ;想象这样一种情况,您有多个不同的 KFold
对象,并且您需要在程序流中以编程方式获取它们各自的 CV 折叠数。
我正在关注 kernel on Kaggle 并发现了这段代码。
#Validation function
n_folds = 5
def rmsle_cv(model):
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
return(rmse)
我了解 KFold 的目的和用途以及在 'cross_val_score' 中使用的事实。我不明白的是为什么使用 'get_n_split'?据我所知,它 returns 用于交叉验证的迭代次数,即 returns 在这种情况下值为 5。当然是这条线:
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
CV = 5?这对我来说没有任何意义。如果 returns 是一个整数,为什么还要使用 get_n_splits?我认为 get_n_splits
returns 是一个整数。
谁能解开我的理解?
I thought KFold returns a class whereas
get_n_splits
returns an integer.
当然,KFold
是一个class,class方法之一是get_n_splits
,其中returns是一个整数;你显示的 kf
变量
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
不是KFold
class对象,它是KFold().get_n_splits()
方法的结果,确实是一个整数。事实上,如果你检查 documentation,get_n_splits()
甚至不需要任何参数(它们实际上被忽略了,并且仅出于与其他 classes 和方法的兼容性原因而存在)。
至于被质疑的 get_n_splits
方法的效用,能够查询此类 class 对象以取回它们的参数设置从来都不是一个坏主意(相反) ;想象这样一种情况,您有多个不同的 KFold
对象,并且您需要在程序流中以编程方式获取它们各自的 CV 折叠数。