spark 决策树分类算法demo
分类(Classification)
下面的例子说明了怎样导入LIBSVM 数据文件,解析成RDD[LabeledPoint],然后使用决策树进行分类。GINI不纯度作为不纯度衡量标准并且树的最大深度设置为5。最后计算了测试错误率从而评估算法的准确性。
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.tree import DecisionTree, DecisionTreeModel from pyspark.mllib.util import MLUtils # Load and parse the data file into an RDD of LabeledPoint. data = MLUtils.loadLibSVMFile(sc, 'data/mllib/sample_libsvm_data.txt') # Split the data into training and test sets (30% held out for testing) (trainingData, testData) = data.randomSplit([0.7, 0.3]) # Train a DecisionTree model. # Empty categoricalFeaturesInfo indicates all features are continuous. model = DecisionTree.trainClassifier(trainingData, numClasses=2, categoricalFeaturesInfo={}, impurity='gini', maxDepth=5, maxBins=32) # Evaluate model on test instances and compute test error predictions = model.predict(testData.map(lambda x: x.features)) labelsAndPredictions = testData.map(lambda lp: lp.label).zip(predictions) testErr = labelsAndPredictions.filter(lambda (v, p): v != p).count() / float(testData.count()) print('Test Error = ' + str(testErr)) print('Learned classification tree model:') print(model.toDebugString()) # Save and load model model.save(sc, "myModelPath") sameModel = DecisionTreeModel.load(sc, "myModelPath")
以下代码展示了如何载入一个LIBSVM数据文件,解析成一个LabeledPointRDD,然后使用决策树,使用Gini不纯度作为不纯度衡量指标,最大树深度是5.测试误差用来计算算法准确率。
# -*- coding:utf-8 -*-
"""
测试决策树
"""
import os
import sys
import logging
from pyspark.mllib.tree import DecisionTree,DecisionTreeModel
from pyspark.mllib.util import MLUtils
# Path for spark source folder
os.environ['SPARK_HOME']="D:\javaPackages\spark-1.6.0-bin-hadoop2.6"
# Append pyspark to Python Path
sys.path.append("D:\javaPackages\spark-1.6.0-bin-hadoop2.6\python")
sys.path.append("D:\javaPackages\spark-1.6.0-bin-hadoop2.6\python\lib\py4j-0.9-src.zip")
from pyspark import SparkContext
from pyspark import SparkConf
conf = SparkConf()
conf.set("YARN_CONF_DIR ", "D:\javaPackages\hadoop_conf_dir\yarn-conf")
conf.set("spark.driver.memory", "2g")
#conf.set("spark.executor.memory", "1g")
#conf.set("spark.python.worker.memory", "1g")
conf.setMaster("yarn-client")
conf.setAppName("TestDecisionTree")
logger = logging.getLogger('pyspark')
sc = SparkContext(conf=conf)
mylog = []
#载入和解析数据文件为 LabeledPoint RDDdata = MLUtils.loadLibSVMFile(sc,"/home/xiatao/machine_learing/")
#将数据拆分成训练集合测试集
(trainingData,testData) = data.randomSplit([0.7,0.3])
##训练决策树模型
#空的 categoricalFeauresInfo 代表了所有的特征都是连续的
model = DecisionTree.trainClassifier(trainingData, numClasses=2,categoricalFeaturesInfo={},impurity='gini',maxDepth=5,maxBins=32)
# 在测试实例上评估模型并计算测试误差
predictions = model.predict(testData.map(lambda x:x.features))
labelsAndPoint = testData.map(lambda lp:lp.label).zip(predictions)
testMSE = labelsAndPoint.map(lambda (v,p):(v-p)**2).sum()/float(testData.count())
mylog.append("测试误差是")
mylog.append(testMSE)
#存储模型
model.save(sc,"/home/xiatao/machine_learing/")
sc.parallelize(mylog).saveAsTextFile("/home/xiatao/machine_learing/log")
sameModel = DecisionTreeModel.load(sc,"/home/xiatao/machine_learing/")
转载于:https://www.cnblogs.com/bonelee/p/7149804.html
spark 决策树分类算法demo相关推荐
- 【python代码实现】决策树分类算法
目录 前置信息 1.决策树 2.样本数据 决策树分类算法 1.构建数据集 2.数据集信息熵 3.信息增益 4.构造决策树 5.实例化构造决策树 6.测试样本分类 后置信息:绘制决策树代码 前置信息 1 ...
- 大数据【企业级360°全方位用户画像】之USG模型和决策树分类算法
在之前的一篇博客<大数据[企业级360°全方位用户画像]之RFM模型和KMeans聚类算法>中,博主为大家带来了KMeans聚类算法的介绍.并在之后,基于不同的模型开发标签,例如RFM,R ...
- python决策树分类案例_银行产品销售案例与决策树分类算法
案例数据集来源于UCI网站.案例是基于一家葡萄牙金融机构的电话销售数据.营销目标是确认客户是否愿意认购银行发行的一款定期储蓄产品.该数据集内包含41188条记录和20个特征变量,和1个分类变量.变量包 ...
- python决策树分类案例_python实现决策树分类算法
本文实例为大家分享了python实现决策树分类算法的具体代码,供大家参考,具体内容如下 1.概述 决策树(decision tree)--是一种被广泛使用的分类算法. 相比贝叶斯算法,决策树的优势在于 ...
- 决策树分类算法(if-else原理)
决策树分类算法(if-else原理) 在本节我们将介绍"机器学习"中的"明星"算法"决策树算法".决策树算法在"决策"领 ...
- 机器学习-决策树分类算法与应用
1. 决策树分类算法原理 1.1 概述 决策树(decision tree)--是一种被广泛使用的分类算法. 相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置 在实际应用中,对于探 ...
- 数据挖掘学习——决策树分类算法理论(包含Iris实战)
目录 1.决策树分类算法概述及相关公式 (1)基本思路 (2)熵公式 (3)基尼(Gini)系数公式 2.ID3算法 3.C4.5算法 4.CART算法 5.各类决策树分类算法比较 6.过拟合与决策树 ...
- 【机器学习原理】决策树分类算法
上一篇:朴素贝叶斯分类算法 文章目录 一.决策树分类 1. if - else 2. 如何种植一棵有灵魂的"树" 3. 决策条件的选择艺术 节点纯度的度量规则 纯度的度量方法 4. ...
- 决策树分类算法(1) - 决策树简介及ID3/CS4.5算法
1. 引言 在现实生活中,我们会遇到各种选择,不论是相亲,还是挑选水果,都是基于以往的经验来做判断.如果把判断背后的逻辑整理成一个结构图,你会发现它实际上是一个树状图,这就是我们今天要讲的决策树. 2 ...
最新文章
- 专属于教育界的定律,你知道哪一些?
- 福利 | “石墨烯之父”现场演讲!中国科幻大会“科技与未来”论坛报名中
- RedHat Directory Server 8.2 Installation Guide
- 【图像处理opencv】_图像边缘
- 针对web高并发量的处理
- WCF(学习笔记)【参见WCF教程】
- CSDN-markdown编辑器(保存自CSDN官方)
- python测试框架数据生成工具最全资源汇总
- BZOJ 2818——Gcd
- 生产者-消费者模式的实现
- 取证 c语言实现日志导出_日志与日志不一样:五种不能忽略的日志源
- 怎么把项目的数据上传到服务器,怎么把sql数据库上传到云服务器
- 2021庐江高考成绩查询,2021庐江高考考点查询入口https://lj.hfzsks.org/list_score/index.php?seach_t...
- 【MySQL 5.7 】从库1032 报错处理
- 【干货】华为组织成长的动力机制.pdf(附下载链接)
- Qt 学习之路 2(1):序 笔记
- bp神经网络预测案例python_详细BP神经网络预测算法及实现过程实例
- 结对作业 ——UI组第八组 冯富禹 齐天浩
- 10秒钟搞定圆柱齿轮设计所有课题
- 信息化与业务流程再造
热门文章
- B+树与LSM树的区别与联系
- mysql job 运行时间设置_mysql 的job 设置
- keil查看程序运行时间_你知道 KEIL 自带示波器吗?
- python使用opencv_Python使用OpenCV进行标定
- android 2.2.3,升还是不升 Android2.2与2.3性能测试对比
- 华为新系统鸿蒙升级平板名单,华为鸿蒙系统升级名单正式确认!全面替换安卓:流畅度比肩iOS...
- matlab消去前一个图,各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~...
- php数组转xml文件,php数组转换成xml格式的实现方法
- linux开发教程,Java基础面试题(2)
- 【Java面试题】docker启动失败原因