大数据基础平台——Spark机器学习流程

1.实验目的

  1. 了解与熟悉数据探索、数据划分、数据填充;
  2. 了解与熟悉类别变量处理、建模与调优、测试与评估。

2.实验内容及结果截屏

  1. Spark机器学习流程

载入本章需要用到的程序包:

 调用spark的函数read()读取泰坦尼克号乘客数据集:

(2) 数据探索

调用数据框的函数count()得到数据框的样本数:

 (3)数据划分

调用数据框中函数randomSplit()随机抽取70%的样本作为训练集,并且仅保留有预测意义的变量:

 (4)数据填充

调用程序包pyspark.sql.functions中的函数isnull()得到变量age和fare是否为空的布尔型列:

①填充训练集

用中位数填充所有训练集中的数值变量,即变量age和fare:

 查看在原数据集中变量age和fare为空的记录填充后的情况:

②填充测试集

调用填充器的函数transform()填充测试集:

 (5)类别变量处理

①类别编码

调用类别编码器的函数fit()做训练,输入参数为数据框,返回训练后的类别编码器模型;调用类别编码器模型的函数transform()做训练集的类别编码,输入参数和返回结果都是数据框:

 调用类别编码器的函数transform()做测试集的类别编码:

 使用类别编码器模型的属性labels得到每个序数对应的类别:

②独热编码

调用独热编码器模型的函数transform()做训练集的独热编码,输入参数和返回结果都是数据框:

 调用独热编码器的函数transform()做测试集的独热编码:

 (6)建模与调优

①向量化

调用向量封装器的函数transform()做训练集的向量封装,将预测变量封装为名为features的向量,输入参数和返回结果都是数据框:

调用向量封装器的函数transform()做测试集的向量封装:

缺乏机器学习模型所需要的元数据(如类别数量、独立值等)调用类别编码器做变换:

 只保留预测变量和目标变量,并将目标变量重命名为label:

 在做完独热编码后,定义列索引对应的变量名:

②卡方特征选择

调用卡方特征选择器模型的函数transform()做训练集的特征选择,输入参数和返回结果都是数据框:

 使用特征选择器模型的属性selectedFeatures得到选择特征的序号,并进一步得到变量名称:

 (7)建模与调优

①创建机器学习模型

调用程序包pyspark.ml.classification中的构造函数DecisionTreeClassifier()创建决策树分类器:

②超参数调优

调用决策树分类器的函数explainParams()得到超参数列表和每个超参数的默认值:

 定义超参数调优算法——调用程序包pyspark.ml.tuning中的构造函数ParamGridBuilder()创建网格搜索超参数调优器:

 定义超参数的搜索范围——调用网格搜索超参数调优器的函数build()创建超参数字典:

 定义重采样策略——调用程序包pyspark.ml.tuning中的构造函数CrossValidator()创建交叉验证器:

 执行超参数调优——调用交叉验证器的函数fit()做超参数调优,输入参数为数据框,返回训练后的交叉验证器模型:

 3.实验分析及小结

       在此次实验过程中,我了解了数据探索、数据划分、数据填充,同时也了解了类别变量处理、建模与调优、测试与评估。在实验过程中,因步步紧跟实验指导,我没有发生什么问题。在之后的实验中,我也会更加认真地学习、理解代码,同时尽可能减少粗心导致的错误。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱桃小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值