开始使用免费开始使用

对航班时长模型流水线进行交叉验证

您刚刚构建的交叉验证模型很简单,只用 km 来预测 duration

另一个影响航班时长的重要因素是起飞机场。繁忙机场的航班通常需要更久才能起飞。让我们看看把这个预测因子加入后,模型是否会更好!

在本练习中,您将把 org 字段加入模型。不过,由于 org 是类别型变量,在纳入模型前需要做一些额外处理:它必须先被转为索引,然后进行独热编码,最后与 km 一起组装,才能用于回归模型。我们会把这些操作封装进一个流水线(pipeline)。

以下对象已创建:

  • params —— 一个空的参数网格
  • evaluator —— 一个回归评估器
  • regression —— 一个 LinearRegression 对象,且 labelCol='duration'

StringIndexerOneHotEncoderVectorAssemblerCrossValidator 类均已导入。

本练习是课程的一部分

使用 PySpark 进行机器学习

查看课程

练习说明

  • 创建一个字符串索引器。将输入与输出字段分别指定为 orgorg_idx
  • 创建一个独热编码器。将输出字段命名为 org_dummy
  • kmorg_dummy 字段组装为一个名为 features 的单一字段。
  • 使用以下顺序创建流水线:字符串索引器、独热编码器、组装器与线性回归。使用该流水线创建一个交叉验证器。

交互式实操练习

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

# Create an indexer for the org field
indexer = ____(____, ____)

# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)

# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)

# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
          estimatorParamMaps=____,
          evaluator=____)
编辑并运行代码