如何使用 scikit-learn 在 运行 k 次后访问数据集?
How do I access the datasets after running k-fold with scikit-learn?
我正在尝试应用 kfold 方法,但我不知道如何访问生成的训练和测试集。在浏览了几个博客和 scikitlearn 用户指南之后,人们唯一要做的就是打印训练和测试集。这可能适用于小型数据框,但对于较大的数据框则无用。谁能帮帮我?
我正在使用的数据:https://github.com/ageron/handson-ml/tree/master/datasets/housing
我目前所在的位置:
X = housing[['total_rooms', 'total_bedrooms']]
y = housing['median_house_value']
kf = KFold(n_splits=5)
for train_index, test_index in kf.split(X):
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
但这仅对生成最后一个数据集有用。我应该都能搞定。
提前致谢。
AFAIK,KFold
(实际上与交叉验证过程相关的所有内容)旨在提供临时数据集,因此正如您所说,可以即时使用它们进行拟合 &如 .
所示评估模型
然而,由于 Kfold.split()
生成 Python 生成器,您可以使用生成的索引来获得永久子集,尽管需要一些手动工作。这是波士顿数据的示例:
from sklearn.model_selection import KFold
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)
n_splits = 3
kf = KFold(n_splits=n_splits, shuffle=True)
folds = [next(kf.split(X)) for i in range(n_splits)]
现在,对于 range(n_splits)
中的每个 k
,folds[k][0]
包含训练指标和 folds[k][1]
相应的验证指标,因此您可以:
X_train_1 = X[folds[0][0]]
X_test_1 = X[folds[0][1]]
等等。请注意,相同的索引也适用于标签 y
。
我正在尝试应用 kfold 方法,但我不知道如何访问生成的训练和测试集。在浏览了几个博客和 scikitlearn 用户指南之后,人们唯一要做的就是打印训练和测试集。这可能适用于小型数据框,但对于较大的数据框则无用。谁能帮帮我?
我正在使用的数据:https://github.com/ageron/handson-ml/tree/master/datasets/housing
我目前所在的位置:
X = housing[['total_rooms', 'total_bedrooms']]
y = housing['median_house_value']
kf = KFold(n_splits=5)
for train_index, test_index in kf.split(X):
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]
但这仅对生成最后一个数据集有用。我应该都能搞定。
提前致谢。
AFAIK,KFold
(实际上与交叉验证过程相关的所有内容)旨在提供临时数据集,因此正如您所说,可以即时使用它们进行拟合 &如
然而,由于 Kfold.split()
生成 Python 生成器,您可以使用生成的索引来获得永久子集,尽管需要一些手动工作。这是波士顿数据的示例:
from sklearn.model_selection import KFold
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)
n_splits = 3
kf = KFold(n_splits=n_splits, shuffle=True)
folds = [next(kf.split(X)) for i in range(n_splits)]
现在,对于 range(n_splits)
中的每个 k
,folds[k][0]
包含训练指标和 folds[k][1]
相应的验证指标,因此您可以:
X_train_1 = X[folds[0][0]]
X_test_1 = X[folds[0][1]]
等等。请注意,相同的索引也适用于标签 y
。