为 train_test_split 设置 kwargs

Setting kwargs for train_test_split

我有一个笔记本,它迭代了同一个模型,增加了功能。我只想用相关参数的字典填写 train_test_split(),而不是每次都填写。例如,对于我的随机森林模型,我创建了一个超参数字典:

rf_params = {
    'class_weight':'balanced',
    'max_depth':2,
    'n_estimators':1000,
    'n_jobs':-1,
    'random_state':42
}

我将用每个随机森林分类器解压它:rf_clf = RandomForestClassifier(**rf_params)。我想对 train_test_split() 做同样的事情,它的参数总是 X, y, test_size=0.3, random_state=42,但在检查文档时,似乎 Xy 的标准调用不是 kwarg,而是基于 *arrays。我如何在字典中设置它以解压?

类似于

split_args = {
    '*arrays':['X','y'],
    'test_size':0.3,
    'random_state':42
 }

train_test_split(**split_args)

您可以使用 *args

split_args = [X, y]
split_kwargs = {
    'test_size':0.3,
    'random_state':42
}

train_test_split(*split_args, **split_kwargs)

由于 *arrays 只是位置信息,因此需要将其作为可迭代对象而不是字典传递。

参见:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html