【问题标题】:Error in paramGrid in pysparkpyspark 中的 paramGrid 错误
【发布时间】:2018-05-04 22:31:09
【问题描述】:

我正在使用 paramGrid 来微调我的模型参数。这是以下代码。

windowSize = 5
minCount = 10
vectorSize=300
maxIter= [10,100,1000]
regParam= [0.1,0.01]


paramGrid = ParamGridBuilder() \
    .addGrid(q1w2model.setWindowSize,windowSize) \
    .addGrid(q1w2model.setMinCount,minCount) \
    .addGrid(q2w2model.setWindowSize,windowSize) \
    .addGrid(q2w2model.setMinCount,minCount) \
     .addGrid(q1w2model.setVectorSize,vectorSize) \
    .addGrid(q2w2model.setVectorSize,vectorSize) \
    .addGrid(lr.setMaxIter,maxIter) \
    .addGrid(lr.setRegParam, regParam) \
    .build()


tvs = TrainValidationSplit(estimator=pipeline,
                          estimatorParamMaps=paramGrid,
                          evaluator=BinaryClassificationEvaluator(),
                          trainRatio=0.8)



model = tvs.fit(train) # model is the model with combination of parameters that performed best

以下是回溯调用:

文件“/home/PycharmProjects/untitled1/quora_feaures_pyspark.py”,第 406 行,在 .addGrid(lr.setRegParam, regParam) \ 文件“/usr/local/lib/python2.7/dist-packages/pyspark/ml/tuning.py”,第 115 行,在构建中 返回 [dict(zip(keys, prod)) for prod in itertools.product(*grid_values)] TypeError: 'int' 对象不可迭代

【问题讨论】:

    标签: apache-spark pyspark pyspark-sql apache-spark-ml


    【解决方案1】:

    ParamGridBuilder.add_grid 方法需要一个可迭代的数据类型,您将在其中将windowSizeminCountvectorSize 作为整数传递给add_grid。您需要将这些变量更改为与其他网格搜索参数一样的列表以解决错误。

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2018-12-16
      • 1970-01-01
      • 2016-01-05
      • 2017-05-17
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多