zoukankan      html  css  js  c++  java
  • spark Pipeline,逻辑回归、svm等算法交叉验证

    交叉验证应用与各种算法中,用于验证超参数的最优值。

    常用的算法有逻辑回归、神经网络、ALS、SVM、决策树等。

    Spark中采用是k折交叉验证 (k-fold cross validation)。举个例子,例如10折交叉验证(10-fold cross validation),将数据集分成10份,轮流将其中9份做训练1份做验证,10次的结果的均值作为对算法精度的估计。 10折交叉检验最常见,是因为通过利用大量数据集、使用不同学习技术进行的大量试验,表明10折是获得最好误差估计的恰当选择,而且也有一些理论根据可以证明这一点。但这并非最终结论,争议仍然存在。而且似乎5折或者20折与10折所得出的结果也相差无几。交叉检验常用于分析模型的泛化能力,提高模型的稳定。相对于手工探索式的参数调试,交叉验证更具备统计学上的意义。在Spark中,Cross Validation和ParamMap(参数组合Map)结合使用。具体做法是,针对某有特定的ParamMap,CrossValidator计算K (K 折交叉验证)个评估分数的平均值。然后和其他参数组合CrossValidator计算结果比较,最终将最优的参数组合挑选出来,用于整个训练数据集上模型的重新训练(re-fit)。也就是说,通过交叉验证,找到了最佳的ParamMap,利用此ParamMap在整个训练集上可以训练(fit)出一个泛化能力强,误差相对小的的最佳模型。

    这里值得学习的是ML api提供了一个帮助我们寻找最佳参数的api

    ALS交叉验证参数    

    rank取值(5,10,20)

    regParam--正则化参数(0.05,0.10,0.15,0.20,0.40,0.80)

    ParamMap[] paramGrid=new ParamGridBuilder()
          .addGrid(als.rank(),new int[]{5,10,20})
          .addGrid(als.regParam(),new double[]{0.05,0.10,0.15,0.20,0.40,0.80})
          .build();
    

     

    CrossValidator交叉验证
    setNumFolds:五折交叉验证
    setEvaluator:模型评估

    // CrossValidator 需要一个Estimator,一组Estimator ParamMaps, 和一个Evaluator.
          // (1)Pipeline作为Estimator;
          // (2)定义一个RegressionEvaluator作为Evaluator,并将评估标准设置为“rmse”均方根误差
          // (3)设置ParamMap
          // (4)设置numFolds    
    
          CrossValidator cv=new CrossValidator()
          .setEstimator(pipeline)
          .setEvaluator(new RegressionEvaluator()
                  .setLabelCol("rating")
                  .setPredictionCol("predict_rating")
                  .setMetricName("rmse"))
          .setEstimatorParamMaps(paramGrid)
          .setNumFolds(5);
    

      

    // 运行交叉检验,自动选择最佳的参数组合
          CrossValidatorModel cvModel=cv.fit(training);
    

      会通过五折交叉验证确定ALS算法rank和正则参数的最优值

  • 相关阅读:
    ubuntu16.04服务自启动(弹控制台)
    第十集 爱在天路唐古拉,青藏梦止长江源
    第九集 生死穿越风火山,感受尘世间轮回
    第八集 昆仑初度尘未洗,夜宿禁区五道梁
    第七集 久历风尘凡间路,终见西域玉珠峰
    第六集 飞沙走石共患难,夜扎昆仑饮圣泉
    第五集 插肩而过茶卡湖,朝发夕至格尔木
    辞职之后在家的挣扎与老爸的工作
    2018,怎么这么难,我该怎么办,我的ai和感情
    17年11月兄弟小聚
  • 原文地址:https://www.cnblogs.com/xiaoma0529/p/6937925.html
Copyright © 2011-2022 走看看