【问题标题】:How to Do 10-fold cross-validation with a test set size of in python如何使用 python 中的测试集大小进行 10 倍交叉验证
【发布时间】:2019-10-13 00:35:47
【问题描述】:

如何使用LinearRegression() 函数构建机器学习模型以预测客户的预期SpendValue

还使用 20% 的测试集大小使用 10 倍交叉验证来衡量模型的性能。

X = sales.drop(['SpendValue'], axis=1).values
y = sales.SpendValue.values
print("The training dataset has {} examples and {} features.".format(X.shape[0], X.shape[1]))
lr = LinearRegression()
kfolds = KFold(n_splits=10, random_state=42, shuffle=False)
for train, test in kfolds.split(X):
    print("Train Index: ", train, "\n")
    print("Test Index: ", test)

我不确定在哪里提及测试大小以及如何进一步预测客户的预期Spendvalue 并显示各种性能指标

【问题讨论】:

  • 当您尝试这样做时究竟是什么问题?
  • @mkrieger1 我现在已经添加了完整的问题

标签: python-3.x scikit-learn linear-regression cross-validation


【解决方案1】:

我想开始解释交叉验证和训练和测试拆分,已经解释了here

首先,您必须进行训练测试拆分(如下所示)

>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.20, random_state=42)

然后对训练数据集进行交叉验证,并且您还有一个大小为原始数据集 20% 的测试数据集。

kfolds = KFold(n_splits=10, random_state=42, shuffle=False)
for train, test in kfolds.split(X_train):
    print("Train Index: ", train, "\n")
    print("Test Index: ", test)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 2011-12-16
    • 2016-01-29
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多