基于spark的波士顿房价预测中,各个属性与房价的热力图代码
时间: 2024-03-03 21:47:11 浏览: 87
以下是基于Spark的波士顿房价预测中,各个属性与房价的热力图的代码:
```scala
// 导入必要的库
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.ml.regression.LinearRegression
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types.DoubleType
// 读取数据集
val data = spark.read.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("boston_housing.csv")
// 将数据集中的所有列转换为Double类型
val cols = data.columns
val data2 = cols.foldLeft(data) { (tempData, colName) =>
tempData.withColumn(colName, col(colName).cast(DoubleType))
}
// 将所有特征列合并为一个特征向量列
val assembler = new VectorAssembler()
.setInputCols(cols.filter(_ != "medv"))
.setOutputCol("features")
val data3 = assembler.transform(data2)
// 创建线性回归模型
val lr = new LinearRegression()
.setLabelCol("medv")
.setFeaturesCol("features")
// 拟合模型
val model = lr.fit(data3)
// 获取各个属性的系数
val coef = model.coefficients.toArray
val colsWithCoef = cols.filter(_ != "medv").zip(coef)
// 构造热力图所需的数据格式
val dataForHeatmap = colsWithCoef.map { case (colName, coefValue) =>
(colName, Vectors.dense(coefValue))
}.toSeq.toDF("feature", "coef")
// 绘制热力图
import com.quantifind.charts.Highcharts._
heatmap(dataForHeatmap, "Heatmap of Feature Coefficients")
```
运行以上代码,即可得到波士顿房价预测中,各个属性与房价的热力图。
阅读全文