Ошибка в paramGrid в pyspark - PullRequest
       20

Ошибка в paramGrid в pyspark

0 голосов
/ 04 мая 2018

Я использую 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)) для prod в itertools.product (* grid_values)] Ошибка типа: объект 'int' не может быть повторен

1 Ответ

0 голосов
/ 04 мая 2018
Метод

ParamGridBuilder.add_grid ожидает итеративный тип данных, в котором вы передаете windowSize, minCount и vectorSize как целые числа в add_grid. Вам нужно изменить эти переменные, чтобы они стали списком, подобным другим параметрам поиска в сетке, чтобы устранить ошибку.

...