开始使用免费开始使用

带洗牌的交叉验证

回顾一下,交叉验证是将数据多次划分为训练集和测试集的过程。每次划分时,都会选择一组不同的训练集和测试集。在本练习中,您将对之前的公司价值数据执行传统的 ShuffleSplit 交叉验证。稍后我们会介绍在时间序列数据上需要做哪些调整。我们使用的数据是多家大型公司的同一份历史价格数据。

工作区中已提供线性回归对象实例(model)以及用于评分的函数 r2_score()。同时,数据已存放在数组 Xy 中。我们还提供了一个辅助函数(visualize_predictions())用于可视化结果。

本练习是课程的一部分

Python 中的时间序列机器学习

查看课程

练习说明

  • 初始化一个包含 10 次划分的 ShuffleSplit 交叉验证对象。
  • 使用该对象遍历每一次交叉验证划分。每次迭代:
    • 使用训练索引拟合模型。
    • 使用测试索引生成预测,基于预测计算模型的评分($R^2$),并收集结果。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)

# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
    # Fit the model on training data
    ____(X[tr], y[tr])
    
    # Generate predictions on the test data, score the predictions, and collect
    prediction = ____(X[tt])
    score = r2_score(____, ____)
    results.append((prediction, score, tt))

# Custom function to quickly visualize predictions
visualize_predictions(results)
编辑并运行代码