pyspark - 使用 pyspark 调整回归树模型的 k 折交叉验证
问题描述
我正在尝试使用 k 折交叉验证来调整 pyspark 中生成的回归树。但是,从我目前所见,将 pyspark 的 CrossValidator 与 pyspark 的 DecisionTree.trainRegressor 结合起来是不可能的。这是相关的代码。
(trainingData, testData) = data.randomSplit([0.7, 0.3])
model = DecisionTree.trainRegressor(trainingData, categoricalFeaturesInfo={}, impurity='variance', maxDepth=5, maxBins=32)
然后如何将 k 折交叉验证应用于回归器?
解决方案
你可以试试这个:
(trainingData, testData) = data.randomSplit([0.7, 0.3])
model = DecisionTree.trainRegressor(trainingData, categoricalFeaturesInfo={}, impurity='variance', numClasses=2)
paramGrid = ParamGridBuilder() \
.addGrid(model.maxDepth, [4, 5, 6, 7]) \
.addGrid(model.maxBins, [24, 28, 32, 36]) \
.build()
crossval = CrossValidator(estimator=model,
estimatorParamMaps=paramGrid,
evaluator=BinaryClassificationEvaluator(),
numFolds=3)
# Run cross-validation, and choose the best set of parameters.
cvModel = crossval.fit(training)
推荐阅读
- javascript - 对导入的 SVG 文件使用 ref 属性
- php - 当请求跨站点时,此请求在哪里结束?
- docker - nginx - 重写斜杠优化
- mysql - MySQL 最好是 FULLTEXT 很多列或一个包含连接数据的列?
- python - 以 DataFrame 格式提取不带标头的 API 数据
- python - 尝试使用 pywinauto 浏览 Adobe Acrobat Reader DC 时出现 ElementNotFoundError
- pandas - AttributeError:模块“pandas”没有属性“read_xml”或“to_xml”
- elasticsearch - 在 Elasticsearch 中存储二进制数组
- python - 从 Ajax POST 中提取数据时出现 Flask 400 错误请求
- python - Pandas first_valid_index,它可以用于查找第一个非零值吗?(Tom Starke 向量化回测示例)