Spark 模型选择和调参

这一章节主要讲述如何通过使用MLlib的工具来调试模型算法和pipeline,内置的交叉验证和其他工具允许用户优化模型和pipeline中的超参数;

目录:

模型选择,也就是调参;
交叉验证;
训练集、验证集划分;
模型选择(调参)
机器学习的一个重要工作就是模型选择,或者说根据给定任务使用数据来发现最优的模型和参数,也叫做调试,既可以针对单个模型进行调试,也可以针对整个pipeline的各个环节进行调试,使用者可以一次对整个pipeline进行调试而不是每次一个pipeline中的部分;

MLlib支持CrossValidator和TrainValidationSplit等模型选择工具,这些工具需要下列参数:

Estimator:待调试的算法或者Pipeline;
参数Map列表:用于搜索的参数空间;
Evaluator:衡量模型在集外测试集上表现的方法;
这些工具工作方式如下:

分割数据到训练集和测试集;
对每一组训练&测试数据,应用所有参数空间中的可选参数组合:
对每一组参数组合,使用其设置到算法上,得到对应的model,并验证该model的性能;
选择得到最好性能的模型使用的参数组合;
Evaluator针对回归问题可以是RegressionEvaluator,针对二分数据可以是BinaryClassificationEvaluator,针对多分类问题的MulticlassClassificationEvaluator,默认的验证方法可以通过setMetricName来修改;

交叉验证
CrossValidator首先将数据分到一个个的fold中,使用这些fold集合作为训练集和测试集,如果k=3,那么CrossValidator将生成3个(训练,测试)组合,也就是通过3个fold排列组合得到的,每一组使用2个fold作为训练集,另一个fold作为测试集,为了验证一个指定的参数组合,CrossValidator需要计算3个模型的平均性能,每个模型都是通过之前的一组训练&测试集训练得到;

确认了最佳参数后,CrossValidator最终会使用全部数据和最佳参数组合来重新训练预测;

例子:通过交叉验证进行模型选择;

注意:交叉验证在整个参数网格上是十分耗时的,下面的例子中,参数网格中numFeatures有3个可取值,regParam有2个可取值,CrossValidator使用2个fold,这将会训练322个不同的模型,在实际工作中,通常会设置更多的参数、更多的参数取值以及更多的fold,换句话说,CrossValidator本身就是十分奢侈的,无论如何,与手工调试相比,它依然是一种更加合理和自动化的调参手段;

from pyspark.ml import Pipeline
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.evaluation import BinaryClassificationEvaluator
from pyspark.ml.feature import HashingTF, Tokenizer
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder

Prepare training documents, which are labeled.

training = spark.createDataFrame([
(0, “a b c d e spark”, 1.0),
(1, “b d”, 0.0),
(2, “spark f g h”, 1.0),
(3, “hadoop mapreduce”, 0.0),
(4, “b spark who”, 1.0),
(5, “g d a y”, 0.0),
(6, “spark fly”, 1.0),
(7, “was mapreduce”, 0.0),
(8, “e spark program”, 1.0),
(9, “a e c l”, 0.0),
(10, “spark compile”, 1.0),
(11, “hadoop software”, 0.0)
], [“id”, “text”, “label”])

Configure an ML pipeline, which consists of tree stages: tokenizer, hashingTF, and lr.

tokenizer = Tokenizer(inputCol=“text”, outputCol=“words”)
hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol=“features”)
lr = LogisticRegression(maxIter=10)
pipeline = Pipeline(stages=[tokenizer, hashingTF, lr])

We now treat the Pipeline as an Estimator, wrapping it in a CrossValidator instance.

This will allow us to jointly choose parameters for all Pipeline stages.

A CrossValidator requires an Estimator, a set of Estimator ParamMaps, and an Evaluator.

We use a ParamGridBuilder to construct a grid of parameters to search over.

With 3 values for hashingTF.numFeatures and 2 values for lr.regParam,

this grid will have 3 x 2 = 6 parameter settings for CrossValidator to choose from.

paramGrid = ParamGridBuilder()
.addGrid(hashingTF.numFeatures, [10, 100, 1000])
.addGrid(lr.regParam, [0.1, 0.01])
.build()

crossval = CrossValidator(estimator=pipeline,
estimatorParamMaps=paramGrid,
evaluator=BinaryClassificationEvaluator(),
numFolds=2) # use 3+ folds in practice

Run cross-validation, and choose the best set of parameters.

cvModel = crossval.fit(training)

Prepare test documents, which are unlabeled.

test = spark.createDataFrame([
(4, “spark i j k”),
(5, “l m n”),
(6, “mapreduce spark”),
(7, “apache hadoop”)
], [“id”, “text”])

Make predictions on test documents. cvModel uses the best model found (lrModel).

prediction = cvModel.transform(test)
selected = prediction.select(“id”, “text”, “probability”, “prediction”)
for row in selected.collect():
print(row)
划分训练、验证集
对于超参数调试,Spark还支持TrainValidationSplit,它一次只能验证一组参数,这与CrossValidator一次进行k次截然不同,因此它更加快速,但是如果训练集不够大的化就无法得到一个真实的结果;

不像是CrossValidator,TrainValidationSplit创建一个训练、测试组合,它根据trainRatio将数据分为两部分,假设trainRatio=0.75,那么数据集的75%作为训练集,25%用于验证;

与CrossValidator类似的是,TrainValidationSplit最终也会使用最佳参数和全部数据来训练一个预测器;

from pyspark.ml.evaluation import RegressionEvaluator
from pyspark.ml.regression import LinearRegression
from pyspark.ml.tuning import ParamGridBuilder, TrainValidationSplit

Prepare training and test data.

data = spark.read.format(“libsvm”)
.load(“data/mllib/sample_linear_regression_data.txt”)
train, test = data.randomSplit([0.9, 0.1], seed=12345)

lr = LinearRegression(maxIter=10)

We use a ParamGridBuilder to construct a grid of parameters to search over.

TrainValidationSplit will try all combinations of values and determine best model using

the evaluator.

paramGrid = ParamGridBuilder()
.addGrid(lr.regParam, [0.1, 0.01])
.addGrid(lr.fitIntercept, [False, True])
.addGrid(lr.elasticNetParam, [0.0, 0.5, 1.0])
.build()

In this case the estimator is simply the linear regression.

A TrainValidationSplit requires an Estimator, a set of Estimator ParamMaps, and an Evaluator.

tvs = TrainValidationSplit(estimator=lr,
estimatorParamMaps=paramGrid,
evaluator=RegressionEvaluator(),
# 80% of the data will be used for training, 20% for validation.
trainRatio=0.8)

Run TrainValidationSplit, and choose the best set of parameters.

model = tvs.fit(train)
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553194
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553189
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553185
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553183
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553179
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553176
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553174
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553170
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553164
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553161
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553157
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553139
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553136
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553132
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553128
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553125
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553119
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553115
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553113
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553108
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553105
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553101
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553097
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553095
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553092
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553087
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553083
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553081
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553079
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553075
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553073
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553069
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553064
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553061
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553051
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553045
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553042
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553037
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553034
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553029
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553025
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553024
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553020
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553018
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553016
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553013
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=553006
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552992
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552991
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552988
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552984
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552978
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552975
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552971
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552969
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552964
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552962
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552959
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552956
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552951
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552948
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552942
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552929
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552927
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552923
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552920
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552917
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552913
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552908
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552906
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552903
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552898
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552895
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552891
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552888
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552884
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552882
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552877
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552876
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552871
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552857
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552856
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552852
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552847
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552843
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552837
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552836
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552831
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552827
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552821
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552819
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552816
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552811
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552810
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552806
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552802
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552800
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552797
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552790
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552781
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552775
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552774
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552767
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552764
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552762
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552757
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552754
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552751
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552747
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552744
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552741
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552736
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552732
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552731
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552726
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552724
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552722
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552710
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552701
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552698
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552692
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552688
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552686
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552684
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552680
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552675
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552674
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552667
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552665
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552663
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552660
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552656
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552652
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552651
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552644
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552642
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552627
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552622
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552620
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552618
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552616
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552609
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552607
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552602
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552601
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552599
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552594
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552590
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552586
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552579
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552575
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552571
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552561
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552555
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552554
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552551
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552547
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552543
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552540
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552537
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552535
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552532
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552527
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552522
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552520
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552518
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552512
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552508
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552506
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552503
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552498
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552489
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552487
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552481
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552479
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552476
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552472
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552467
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552465
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552464
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552460
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552458
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552456
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552452
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552448
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552445
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552443
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552437
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552435
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552433
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552422
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552416
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552413
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552410
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552405
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552402
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552399
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552395
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552392
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552391
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552388
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552382
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552381
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552378
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552372
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552370
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552367
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552361
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552357
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552353
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552345
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552337
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552333
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552331
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552325
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552323
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552320
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552315
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552313
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552310
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552306
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552304
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552302
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552300
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552293
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552289
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552286
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552281
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552280
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552266
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552260
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552259
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552257
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552254
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552247
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552242
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552240
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552233
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552231
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552229
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552228
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552223
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552222
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552218
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552216
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552209
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552206
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552203
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552194
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552185
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552182
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552177
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552175
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552172
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552169
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552165
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552160
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552159
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552152
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552151
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552147
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552134
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552130
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552127
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552125
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552120
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552118
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552115
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552111
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552109
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552106
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552104
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552099
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552095
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552092
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552087
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552085
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552082
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552077
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552075
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552072
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552068
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552065
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552061
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552057
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552056
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552052
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552041
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552036
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552035
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552033
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552029
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552024
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552020
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552014
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552011
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552008
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552003
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=552001
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551998
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551995
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551991
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551989
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551984
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551972
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551968
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551966
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551963
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551958
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551954
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551949
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551947
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551944
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551939
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551937
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551934
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551932
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551926
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551924
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551920
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551916
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551914
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551909
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551908
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551891
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551888
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551886
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551882
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551881
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551877
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551874
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551870
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551867
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551863
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551857
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551853
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551851
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551848
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551842
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551832
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551829
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551825
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551822
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551821
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551817
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551814
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551811
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551809
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551805
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551800
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551798
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551792
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551790
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551786
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551783
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551778
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551775
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551771
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551759
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551755
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551751
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551748
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551743
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551740
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551737
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551731
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551729
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551727
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551724
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551720
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551715
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551714
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551710
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551708
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551705
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551700
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551698
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551696
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551694
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551689
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551675
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551669
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551667
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551665
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551660
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551657
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551653
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551649
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551644
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551642
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551640
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551636
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551632
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551630
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551627
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551623
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551621
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551607
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551601
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551597
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551594
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551592
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551587
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551584
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551583
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551578
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551575
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551573
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551568
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551565
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551563
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551562
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551556
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551553
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551551
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551537
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551535
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551531
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551524
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551523
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551520
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551518
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551512
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551509
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551507
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551503
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551502
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551499
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551496
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551491
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551488
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551485
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551482
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551478
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551466
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551465
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551460
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551458
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551454
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551452
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551447
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551444
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551442
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551436
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551428
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551427
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551421
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551418
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551416
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551413
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551406
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551405
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551402
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551397
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551396
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551393
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551386
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551382
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551380
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551376
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551375
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551370
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551366
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551363
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551352
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551349
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551345
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551342
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551338
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551336
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551334
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551327
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551325
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551322
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551319
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551316
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551311
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551310
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551303
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551301
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551299
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551295
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551293
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551281
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551276
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551271
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551268
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551266
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551261
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551258
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551255
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551250
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551245
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551242
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551241
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551237
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551232
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551229
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551225
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551221
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551219
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551213
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551210
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551202
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551193
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551190
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551185
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551183
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551177
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551173
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551171
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551164
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551162
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551155
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551137
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551131
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551117
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551114
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551110
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551108
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551104
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551100
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551096
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551093
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551089
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551086
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551081
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551079
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551075
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551071
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551069
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551065
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551062
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551058
https://bbs.wdqy.qq.com/forum.php?mod=viewthread&tid=551054

Make predictions on test data. model is the model with combination of parameters

that performed best.

model.transform(test)
.select(“features”, “label”, “prediction”)
.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调参是随机森林算法中非常重要的一步,可以通过以下步骤进行调参: 1. 选择要调整的参数:常见的参数包括决策树个数,树的深度,特征数等。 2. 创建一个参数网格:对于每个要调整的参数,选择一些可能的值,创建一个参数网格。 3. 评估和比较不同参数组合的性能:对于每个参数组合,使用交叉验证方法来评估模型的性能,并比较不同参数组合的表现。 4. 选择最佳参数组合:根据性能评估结果,选择最佳的参数组合。 下面是一个使用PySpark进行随机森林调参的示例代码: ```python from pyspark.ml.classification import RandomForestClassifier from pyspark.ml.evaluation import BinaryClassificationEvaluator from pyspark.ml.tuning import CrossValidator, ParamGridBuilder # 加载数据 data = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt") # 创建随机森林模型 rf = RandomForestClassifier() # 创建参数网格 paramGrid = ParamGridBuilder() \ .addGrid(rf.numTrees, [10, 20, 30]) \ .addGrid(rf.maxDepth, [5, 10, 20]) \ .addGrid(rf.maxBins, [16, 32, 64]) \ .build() # 创建交叉验证评估器 evaluator = BinaryClassificationEvaluator() cv = CrossValidator(estimator=rf, estimatorParamMaps=paramGrid, evaluator=evaluator, numFolds=5) # 训练模型 cvModel = cv.fit(data) # 选择最佳参数组合 bestModel = cvModel.bestModel print("Best numTrees: ", bestModel.getNumTrees) print("Best maxDepth: ", bestModel.getMaxDepth) print("Best maxBins: ", bestModel.getMaxBins) # 使用最佳模型进行预测 predictions = bestModel.transform(data) # 评估模型性能 auc = evaluator.evaluate(predictions) print("AUC: ", auc) ``` 在这个示例中,我们创建了一个随机森林模型,然后使用ParamGridBuilder创建了一个参数网格,它包含了numTrees、maxDepth和maxBins三个参数的可能取值。然后,我们创建了一个交叉验证评估器,并使用CrossValidator进行训练和评估,最后选择最佳参数组合,并使用最佳模型进行预测和评估。 注意,这只是一个基本的示例,实际应用中可能需要调整更多参数,使用更复杂的评估方法,以及进行更多轮的调参
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值