apa*_*ang 3 python scikit-learn cross-validation k-fold
我正在关注Kaggle 上的内核,并发现了以下代码:
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)
Run Code Online (Sandbox Code Playgroud)
我了解 KFold 的目的和用途以及在 中使用的事实cross_val_score
。我不明白的是为什么get_n_split
使用。据我所知,它返回用于交叉验证的迭代次数,即在本例中返回值 5。当然对于这一行:
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
Run Code Online (Sandbox Code Playgroud)
简历=5?这对我来说没有任何意义。get_n_splits
如果它返回一个整数,为什么还需要使用?我认为KFold 返回一个类,而get_n_splits
返回一个整数。
任何人都可以澄清我的理解吗?
我认为 KFold 返回一个类,而
get_n_splits
返回一个整数。
当然,KFold
是一个类,类方法之一是get_n_splits
,它返回一个整数;你显示的kf
变量
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
Run Code Online (Sandbox Code Playgroud)
不是一个类对象,它是方法KFold
的结果,而且它确实是一个整数。事实上,如果您检查文档,甚至不需要任何参数(它们实际上被忽略,并且仅出于与其他类和方法的兼容性原因而存在)。KFold().get_n_splits()
get_n_splits()
至于该get_n_splits
方法的实用性受到质疑,能够查询此类对象以获取其参数设置绝不是一个坏主意(相反);想象一下这样的情况,您有多个不同的KFold
对象,并且您需要在程序流中以编程方式获取它们各自的 CV 折叠数。
归档时间: |
|
查看次数: |
2268 次 |
最近记录: |