文档章节

模型训练

KYO4321
 KYO4321
发布于 2017/09/10 22:06
字数 283
阅读 21
收藏 0

##随机森林调整参数 https://spark.apache.org/docs/2.1.0/ml-tuning.html https://stackoverflow.com/questions/32769573/how-to-cross-validate-randomforest-model K折交叉检验

##计算AUC https://weiminwang.blog/2016/06/09/pyspark-tutorial-building-a-random-forest-binary-classifier-on-unbalanced-dataset/

cross-validation与Train-Validation Split两者的区别 https://spark.apache.org/docs/2.1.0/ml-tuning.html

https://stackoverflow.com/questions/41902360/random-forest-in-spark

##批量计算各种率 https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-data-science-spark-advanced-data-exploration-modeling

Each model building code section is split into steps: + 1、Model training data with one parameter set 2、Model evaluation on a test data set with metrics 3、Saving model in blob for future consumption

保存最好的那个模型,后续加载应用

####################################################

CV USING ELASTIC NET FOR LINEAR REGRESSION

RECORD START TIME

timestart = datetime.datetime.now()

LOAD PYSPARK LIBRARIES

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

DEFINE ALGORITHM/MODEL

lr = LinearRegression()

DEFINE GRID PARAMETERS

paramGrid = ParamGridBuilder().addGrid(lr.regParam, (0.01, 0.1))
.addGrid(lr.maxIter, (5, 10))
.addGrid(lr.tol, (1e-4, 1e-5))
.addGrid(lr.elasticNetParam, (0.25,0.75))
.build()

DEFINE PIPELINE

SIMPLY THE MODEL HERE, WITHOUT TRANSFORMATIONS

pipeline = Pipeline(stages=[lr])

DEFINE CV WITH PARAMETER SWEEP

cv = CrossValidator(estimator= lr, estimatorParamMaps=paramGrid, evaluator=RegressionEvaluator(), numFolds=3)

CONVERT TO DATA FRAME, AS CROSSVALIDATOR WON'T RUN ON RDDS

trainDataFrame = sqlContext.createDataFrame(oneHotTRAINreg, ["features", "label"])

TRAIN WITH CROSS-VALIDATION

cv_model = cv.fit(trainDataFrame)

EVALUATE MODEL ON TEST SET

testDataFrame = sqlContext.createDataFrame(oneHotTESTreg, ["features", "label"])

MAKE PREDICTIONS ON TEST DOCUMENTS

cvModel uses the best model found (lrModel).

predictionAndLabels = cv_model.transform(testDataFrame)

CONVERT TO DF AND SAVE REGISER DF AS TABLE

predictionAndLabels.registerTempTable("tmp_results");

PRINT ELAPSED TIME

timeend = datetime.datetime.now() timedelta = round((timeend-timestart).total_seconds(), 2) print "Time taken to execute above cell: " + str(timedelta) + " seconds";

© 著作权归作者所有

共有 人打赏支持
KYO4321
粉丝 3
博文 68
码字总数 40660
作品 0
深圳
程序员
加载中

评论(1)

KYO4321
KYO4321
https://weiminwang.blog/2016/06/09/pyspark-tutorial-building-a-random-forest-binary-classifier-on-unbalanced-dataset/
偏差(Bias)与方差(Variance)

含义 Bias 和 Variance 是针对模型的泛化来讲的。 首先如果我们能够获得所有可能的数据集合,并在这个数据集合上将 loss 最小化,这样学习到的模型就可以称之为“真实模型”,当然,我们是无...

农大鲁迅
01/26
0
0
论文笔记:蒸馏网络(Distilling the Knowledge in Neural Network)

Distilling the Knowledge in Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean preprint arXiv:1503.02531, 2015 NIPS 2014 Deep Learning Workshop 简单总结 主要工作(What) ......

PilgrimHui
06/11
0
0
机器学习--第六讲--K折交叉验证

1.K折交叉验证 在之前的任务中,我们学习了交叉验证,是一个在新的数据集上来检验机器学习模型的精确性,该模型没有受过训练。具体的说,我们将专注于保持验证技术,它涉及: 。 将所有的数据...

Betty__
2016/10/27
396
0
如何用学习曲线降低偏差和方差?

摘要: 如何判断偏差和方差?我们应该如何降低误差?本文将就这两个问题探讨如何使用学习曲线降低这两个主要误差。 机器学习模型两个主要的误差来源:偏差和方差。在构建模型时,设法降低这两...

阿里云云栖社区
01/15
0
0
128块Tesla V100 4小时训练40G文本,这篇论文果然很英伟达

  选自arXiv   作者:Raul Puri等   机器之心编辑部      近日,英伟达发表了一篇大规模语言建模的论文,他们使用 128 块 GPU 在 4 小时内使得 mLSTM 可以收敛,值得注意的是,他们...

机器之心
08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kubernetes 中的 Service

kubernetes 中的 Service

健康的程序员
43分钟前
1
0
七牛云java(服务端)通用工具类

前言 需要安装lombok插件。 功能列表 上传本地文件 上传Base64图片 获取文件访问地址 上传MultipartFile 代码 pom.xml <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java......

五毛程序员
45分钟前
1
0
Pandoc 批量将 Markdown 转为 Docx

看到了小金鱼儿的博文,很给力,核心代码如下: #!/bin/shfunction ergodic(){ for fullname in `ls $1` do name=${fullname%.*} ext=${fullname##*.} if [ "$ext"x = "md"......

hengbao5
45分钟前
2
0
cocos creator实现卡牌翻转

var pic1 = cc.find("Canvas/puke/hu"); var run = cc.callFunc(function() { cc.loader.loadRes("longhu/card", cc.SpriteAtlas, function (err, atlas) { let frame = atlas.getSpriteFram......

AndyZhouX
53分钟前
0
0
Linux服务器上监控网络带宽的18个常用命令

本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。 一些命令可以显示单...

谢思华
54分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部