Я использую 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' не может быть повторен