pyspark.ml部分解释

pyspark.ml.feature.VectorAssembler

vector:向量
assemble:召集,收集,装配
官方解释:ectorAssembler(inputCols=None, outputCol=None, handleInvalid=‘error’)
特征转换器,将多个列合并为一个向量列。
VectorAssembler接受以下输入列类型:所有数值类型、布尔类型和向量类型。在每一行中,输入列的值将按照指定的顺序连接到一个向量中。
理解:将dataset中一行的inputCols中的特征值组成一个向量插入outputCol所给的列名中

dataset = spark.createDataFrame(
        [(0, 18, 1.0, Vectors.sparse(4,[1,3],[122,344]), 1.0,False,True)],
        ["id", "hour", "mobile", "userFeatures", "clicked",'flag','flag1'])

assembler = VectorAssembler(
        inputCols=["hour", "mobile", "userFeatures",'flag','flag1'],
        outputCol="features")
assembler.transform(dataset).show(truncate=False)

pyspark.ml部分解释_第1张图片

pyspark.ml.feature.MinMaxScaler

scaler:定标器
官方解释:
标准化函数,inputCol的形式为Vectors.dense的格式
先fit 然后再 transform
fit完之后可以通过model.originalMin取出每列的最小值
通过model.originalMax取出每列的最大值,然后使用这个最大最小值取transform

from pyspark.ml.feature import MinMaxScaler
df = spark.createDataFrame([(Vectors.dense([0.0]),), (Vectors.dense([2.0]),)], ["a"])
mmScaler = MinMaxScaler(inputCol="a", outputCol="scaled")
model = mmScaler.fit(df)

model.originalMin
#DenseVector([0.0])

model.originalMax
#DenseVector([2.0])

from pyspark.ml.regression import RandomForestRegressor

随机森林回归
参数:

pyspark.ml.regression.RandomForestRegressor(featuresCol='features', labelCol='label', predictionCol='prediction', maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0, maxMemoryInMB=256, cacheNodeIds=False, checkpointInterval=10, impurity='variance', subsamplingRate=1.0, seed=None, numTrees=20, featureSubsetStrategy='auto')

fit(dataset,params=None)方法
featureSubsetStrategy: 每棵树的节点上要分割的特征数量,可选:auto, all, onethird, sqrt, log2,(0.0,1.0],[1-n]
impurity: 信息增益计算的准则,可选:variance
maxBins: 连续特征离散化最大分箱个数。
maxDepth: 树的最大深度
minInfoGain: 树节点分割特征所需最小的信息增益
minInstancesPerNode: 每个结点所需最小实例个数
numTrees: 训练树的个数
subsamplingRate: 学习每颗决策树所需样本比例

pyspark.ml.Pipeline

模型训练需要很多部步骤,在spark 中可以用 Pipeline 将这些步骤集中起来形成一个管道

三、pyspark.ml.tuning参数遍历
对模型参数进行网络搜索遍历,选择最优模型。对模型参数进行遍历的原则:对影响较大的参数先行遍历。

pyspark.ml.tuning 提供两种方式对参数遍历:

CrossValidator,K折交叉验证,将数据集分成K份,选择一份作为测试集,进行K次训练,取评估指标的平均值;TrainValidationSplit,训练集和验证集划分验证,模型只训练一次。

害!找这些找了好久,但是快找完的时候发现了这篇博客:
链接

你可能感兴趣的:(Spark机器学习)