Spark ML 构建回归模型
程序员文章站
2024-02-15 15:07:52
...
一、数据的加载
1.1、共享单车数据属性
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()
二、数据的预处理
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")