欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spark ML 构建回归模型

程序员文章站 2024-02-15 15:07:52
...

一、数据的加载

1.1、共享单车数据属性

Spark ML 构建回归模型

1.2、加载数据

        val rawData = spark.read
            .format("csv")
            .option("header", true)
            .load("C:\\Users\\12285\\Desktop\\hour.csv")
        rawData.show(10)

        // 查看数据结构
        rawData.printSchema()

        // 查看主要字段的统计信息
        rawData.describe("dteday", "holiday", "weekday", "temp").show()

Spark ML 构建回归模型

二、数据的预处理

2.1、特征的选择

  首先将字符型的特征转换为数值类型, 并过滤instant、dteday、casual、registered4个无关或冗余特征。cnt特征作为标志特征。

        // 特征选择
        val data1 = rawdata.select(
            rawdata("season").cast("Double"),
            rawdata("yr").cast("Double"),
            rawdata("mnth").cast("Double"),
            rawdata("hr").cast("Double"),
            rawdata("holiday").cast("Double"),
            rawdata("weekday").cast("Double"),
            rawdata("workingday").cast("Double"),
            rawdata("weathersit").cast("Double"),
            rawdata("temp").cast("Double"),
            rawdata("atemp").cast("Double"),
            rawdata("hum").cast("Double"),
            rawdata("windspeed").cast("Double"),
            rawdata("cnt").cast("Double").alias("label"))
        data1.show(10)

2.2、将原数据组合成特征向量

        // 生成一个存放以上预测特征的特征向量
        val featuresArray = Array("season", "yr", "mnth", "hr", "holiday",
            "weekday", "workingday", "weathersit", "temp", "atemp", "hum", "windspeed")

        // 把源数据组合成特征向量features
        val assembler = new VectorAssembler().setInputCols(featuresArray).setOutputCol("features")

三、特征转换