通过转换器(Transformer)进行特征生成
既然我们已经将我们的数据划分为:训练集和测试集,让我们准备数据来建立一个线性回归模型,根据给定卧室数量预测价格。 在稍后的示例中,我们将包括所有相关的特性,但现在让我们确保我们想法的可行性。
线性回归(就像Spark中的许多其他算法一样)要求所有输入特征都包含在数据帧中的单个向量中。因此,我们需要转换我们的数据。
spark 中的Transformers 接受数据帧作为输入,并返回一个新的数据帧,其中附加一个或多个列。它们不从数据中学习,而是使用转换方法应用基于规则的转换。
对于将我们所有的特征放入一个向量的任务,我们将使用 VectorAssembler 转换器。Vector Assembler获取一个输入列列表,并创建一个带有附加列的新数据框(Dataframe) ,我们一搬将该列命名为 特征列 – feature 。 它将这些输入列的值组合成一个向量,我们来看看其他几个可能用到的 :
-
VectorAssembler 将多个数值列按顺序汇总成一个向量列。
-
VectorIndexer 将一个向量列进行特征索引,一般决策树常用。
VectorIndexer 对于离散特征的索引是基于0开始的。其不保证对每个值每次索引建立的索引值都一样,但是会保证对于0值总是会给索引值0。