pyspark之二分类决策树算法

Python Spark MLlib 决策树分类 准备数据 StumbleUpon Evergreen数据,来源于Kaggle中的一个题目StumbleUpon Evergreen Classification Challenge。 StumbleUpon 是一个个性化推荐引擎,根据用户的兴趣行为给用户推荐网页,而有些网页内容是即时性(ephemeral)的,比如新闻股票网页(用户短暂感兴趣),有些网页是长久性的(evergreen)如体育,... 阅读详情
# 首先还是设定数据目录,取决于你的pyspark是什么方式启动的
global Path
if sc.master[0:5] == 'local':
    Path = 'file:/home/swt/pythonwork/PythonProject/'
else:
    Path = "hdfs://localhost:9000/user/swt/"
import numpy as np
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.tree import DecisionTree

# 加载数据
print('load data...')
rawDataWithHeader = sc.textFile(Path+'data/train.tsv')
header = rawDataWithHeader.first()
rawData=rawDataWithHeader.filter(lambda x:x !=header)
rData=rawData.map(lambda x:x.replace("\"",""))
lines = rData.map(lambda x:x.split("\t"))

def extract_features(fleld,catedoriesMap,featureEnd):
    categoryidx = catedoriesMap[fleld[3]]
    categoryfeatures = np.zeros(len(catedoriesMap))
    categoryfeatures[categoryidx] = 1
    numericalFeatures=[convert_float(fleld) for fleld in fleld[4:featureEnd]]
    return np.concatenate((categoryfeatures,numericalFeatures))

def convert_float(x):
    return (0 if x=="?" else float(x))

def extract_label(field):
    label = field[-1]
    return float(label)

categoriesMap=lines.map(lambda flelds:flelds[3]).distinct().zipWithIndex().collectAsMap()

# pyspark算法要求数据类型是LabeledPoint格式的,所以所有数据都需要转换一下
labelpointRDD = lines.map(lambda r:LabeledPoint(extract_label(r), extract_features(r,categoriesMap,len(r)-1)))
labelpointRDD.take(1)
[LabeledPoint(0.0, [1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.789131,2.055555556,0.676470588,0.205882353,0.047058824,0.023529412,0.443783175,0.0,0.0,0.09077381,0.0,0.245831182,0.003883495,1.0,1.0,24.0,0.0,5424.0,170.0,8.0,0.152941176,0.079129575])]
# 将数据切分成训练集,验证集,测试集
(trainData, vaildationData, testData) = labelpointRDD.randomSplit([8, 1, 1]) 
# 持久化数据
trainData.persist()
vaildationData.persist()
testData.persist()
# 开始训练
model = DecisionTree.trainClassifier(trainData,numClasses=2,categoricalFeaturesInfo={}, impurity='entropy',maxDepth=5,maxBins=5)

def predictData(sc,model,categoriesMap):
    print('load data...')
    rawDataWithHeader=sc.textFile(Path+'data/test.tsv')
    header = rawDataWithHeader.first()
    rawData = rawDataWithHeader.filter(lambda x:x != header)
    rData=rawData.map(lambda x:x.replace("\"",""))
    lines=rData.map(lambda x:x.split('\t'))
    print("sum is "+str(lines.count()))
    dataRDD=lines.map(lambda r:(r[0],extract_features(r,categoriesMap,len(r))))
    DescDict={
        0:'ephemeral',
        1:'evergreen'
    }
    for data in dataRDD.take(10):
        predictResult=model.predict(data[1])
        print(str(data[0])+'\n'+'====>predict'+str(predictResult)+' is '+str(DescDict[predictResult])+'\n')
print("=======predict========")
predictData(sc,model,categoriesMap)
=======predict========
load data...
sum is 3171
http://www.lynnskitchenadventures.com/2009/04/homemade-enchilada-sauce.html
====>predict1.0 is evergreen

http://lolpics.se/18552-stun-grenade-ar
====>predict0.0 is ephemeral

http://www.xcelerationfitness.com/treadmills.html
====>predict0.0 is ephemeral

http://www.bloomberg.com/news/2012-02-06/syria-s-assad-deploys-tactics-of-father-to-crush-revolt-threatening-reign.html
====>predict0.0 is ephemeral

http://www.wired.com/gadgetlab/2011/12/stem-turns-lemons-and-limes-into-juicy-atomizers/
====>predict0.0 is ephemeral

http://www.latimes.com/health/boostershots/la-heb-fat-tax-denmark-20111013,0,2603132.story
====>predict0.0 is ephemeral

http://www.howlifeworks.com/a/a?AG_ID=1186&cid=7340ci
====>predict0.0 is ephemeral

http://romancingthestoveblog.wordpress.com/2010/01/13/sweet-potato-ravioli-with-lemon-sage-brown-butter-sauce/
====>predict1.0 is evergreen

http://www.funniez.net/Funny-Pictures/turn-men-down.html
====>predict0.0 is ephemeral

http://youfellasleepwatchingadvd.com/
====>predict0.0 is ephemeral
# 预测查看AUC指数
score=model.predict(vaildationData.map(lambda p:p.features))
scoreAndLabels=score.zip(vaildationData.map(lambda p:p.label))

from pyspark.mllib.evaluation import BinaryClassificationMetrics
metrics = BinaryClassificationMetrics(scoreAndLabels)
print("AUC="+str(metrics.areaUnderROC))
AUC=0.6577085453395308
《大数据机器学习实践探索》---- 使用pyspark 进行kaggle比赛Give me some credit数据集的建模与分析(3. 随机森林进行二分类) 文章大纲随机森林 原理参考文献 随机森林 原理 原理   随机森林是由许多决策树构成,是一种有监督机器学习方法,可以用于分类和回归,通过合并汇总来自个体决策树的结果来进行预测,采用多数选票作为分类结果,采用预测结果平均值作为回归结果。 “森林”的概念很好理解,“随机”是针对森林中的每一颗决策树,有两种含义: 第一种随机是数据采样随机,构建决策树的训练数据集通过有放回的随机采样,并且只会选择一定百分比的样本,这样可以在数据集合存在噪声点、异常点的情况下,有些决策树的构造过程中不会选择到这些噪声点、异常点从而 阅读详情

相关推荐

5. PySpark分类模型简明教程

Spark集群是一种分布式计算框架,它基于内存计算,提供了高效的数据抽象和并行计算能力,能够处理大规模数据集的批处理和实时处理任务。Spark采用内存存储中间计算结果,可减少迭代运算的磁盘I/O,并通过并行计算有向无环图的优化,使其运行速度比MapReduce快100倍;Spark可以使用Hadoop YARN和Apache Mesos作为其资源管理和调度器,可以从多种数据源读取数据,如HDFS、HBase、MySQL等。

chendengyi2的博客 1974

pyspark分类算法之决策树分类器模型实践【decisionTreeClassifier】

本文紧接上文的逻辑回归分类器模型,实践的同样是分类算法模型,决策树模型是机器学习领域中简单却又强悍,可解释程度很高的一种模型,之前较多使用的库是sklearn,这里面提供了绝大多数机器学习模型的实现和应用方法,很nice的,现在要基于spark来完成决策树模型的简单使用,同样是依托于官方提供的实例,在完整地理解透彻之后,才会进行自己的设计与改造,这是我一般的学习思路。 ...

Together_CZ的博客 5258

4. PySpark回归模型简明教程

使用线性回归模型LinearRegression类预测小费。数据集tips共有244个样本,各字段的含义如下:total_bill:顾客的总账单金额(美元)。这个字段表示顾客在餐厅消费的总金额,是小费金额计算的一个重要参考。sex:顾客的性别。通常表示为“Male”(男性)或“Female”(女性)。这个字段用于分析性别是否对小费金额有影响。smoker:顾客是否吸烟。通常表示为“Yes”(是)或“No”(否)。这个字段用于分析吸烟习惯是否与小费金额有关。day:用餐的星期几。

chendengyi2的博客 1672

pyspark 决策树

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Jun 7 18:08:40 2018 @author: luogan """ from pyspark.ml import Pipeline from pyspark.ml.classification import DecisionTreeClassifie...

luoganttcc的博客 2703

一文搞懂 RC Correlation Scale Factor 的生成与应用

pre-route 用的是统计估算模型,post-route 用的是详细布线提取,signoff 用的是第三方 QRC 或 StarRC——三个工具,三套参数体系,结果自然天差地别。不同 RC corner(rc_worst/rc_best/rc_typical)对应不同的工艺角和温度环境,每个 corner 的 R/C 偏差比例不同,必须分别生成和应用各自的 scale factor。别被名字骗了,这个工具专门干一件事——统计拟合两组 SPEF 之间的偏差,自动推荐最优 scaling factor。

weixin_47770727的博客 548

机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

@bangbang的博客 9205

金融数据_PySpark-3.0.3决策树(DecisionTreeClassifier)实例

金融数据 PySpark-3.0.3决策树(DecisionTreeClassifier)实例。

goufeng93的博客 1674

Flow Matching实战:5步搞定图像生成模型优化(附PyTorch代码)

本文提供了一份基于Flow Matching框架优化图像生成模型的实战指南。通过五个关键步骤,详细讲解了从环境配置、核心概念梳理到构建向量场网络、设计损失函数、编写训练循环以及选择ODE求解器进行采样的完整流程,并附有可运行的PyTorch代码,帮助开发者快速掌握这一高效的生成式建模技术。

weixin_29065959的博客 320

Spark:基于PySpark的逻辑回归和决策树模型对泰旦尼克号幸存者预测的机器学习流程

基于PySpark,使用spark的MLLib部分机器学习包,SparkML,对Kaggle入门初级案例:泰坦尼克号幸存者预测的案例,从数据分析,数据清洗,数据整理,特征工程,特征向量化等完整流程示例,最后基于SparkML包中的逻辑回归和决策树模型进行了模型构建和预测测试

maoyuanming0806的博客 4224

睿抗机器人魔力元宝在完成任务过程中如何使机械臂先到达白色盒子上方而不是先到达工作台?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1378

Claude Code设置中文输出指南

Claude Code 的语言配置其实并不复杂,只要做好全局的默认设置,再加上一些小的提醒技巧,就能完全避免突然切换英文的问题,让你全程用中文流畅地和 AI 助手协作,不用再被语言问题打断工作节奏,真正提升开发效率。

篮球界最会写bug的人;程序猿中打球最菜的人。 2220

Pyspark使用DecisionTree回归预测共享单车租赁量

接上篇: Pyspark使用LinearRegressionWithSGD回归预测共享单车租赁量 第一步:下载数据。 同上篇,略 第二步:加载数据。 同上篇,略 第三步:创建特征向量 def extract_features_dt(record): return np.array([float(record[i]) for i in np.arange(2,14)]) data...

Toby的博客 1426

172、摄像头振动与异响分析:VCM 共振、OIS 机械噪声的用户体验改善

摘要: 本文深入探讨了手机摄像头模组中VCM(音圈马达)与OIS(光学防抖)系统产生的振动异响问题及其解决方案。通过实际案例,分析了VCM弹簧片共振、OIS悬丝机械噪声以及系统级共振的成因,提出了硬件改进(如弹簧片厚度调整、阻尼材料应用)、驱动优化(PWM频率微调、软启动配置)和算法避让等综合解决策略。特别强调了量产阶段隐蔽性问题的排查技巧,包括扫频测试、机械阻尼处理和用户体验优化方法(如频率掩蔽)。作者建议工程师避免过度依赖仿真数据,重视实物测试,并与声学团队协作,以解决这类"玄学"问题,提升用户感知体验

sundong_81的博客 126

MLlib 二分类问题

MLlib 二分类问题 【课程性质:PySpark机器学习】 文章目录1. 实验目标2. 本次实验主要使用的 PythonPythonPython 库3. 适用的对象4. 实验步骤步骤1 安装并引入必要的库步骤2 探索数据步骤3 查看前五个观测样本3.1 pandas.DataFrame 比 Spark DataFrame.show()更漂亮3.2 查看数据标签3.3 数值变量的汇总统计信息3.4 变量的相关性检验3.5 为机器学习准备数据3.6 管道步骤4 逻辑回归步骤5 决策树分类器步骤6 随机森林分

shenhao-stu的博客 1037

手把手教你学simulink(12.10)--设计和仿真一个用于控制飞机纵向运动(高度和速度)的多变量控制系统

飞机的纵向运动控制是航空工程中的一个重要问题,涉及飞机的高度和速度的精确控制。多变量控制系统可以同时控制多个飞行参数,确保飞机在最佳条件下运行。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试多变量控制系统。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机纵向运动(高度和速度)的多变量控制系统。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为多变量控制系统的设计提供了有价值的参考。

MHD0815的博客 598

Unity Shader之路(一)什么是Unity Shader?

Unity Shader前言什么是UnityShaderUnity Shader和材质的关系 前言 众所周知,要想当游戏开发工程师,Unity中的Shader编写不得不摸,这一系列文章我将描写我的Shader学习之路,致敬冯乐乐的书Unity Shader入门精要,此篇什么是Unity Shader?希望能给后人一点方向 我们刚开始接触Unity的时候,总是会遇到材质,但是不了解材质都是什么,为什么可以在很多材质中选择,为什么有时候选择了其他材质后就不能达到我们想要的结果,为什么资源商店有那么多的材质,山.

TurboQ珞珈 2237

8、鸢尾花预测率 、决策树分类器

实验目的 1.掌握逻辑回归与决策树模型模型的原理及使用场景 2.掌握pyspark库使用 3.掌握模型预测结果保存的方法 实验背景 下面以鸾尾花数据集(Iris)为例进行分析,Iris 以鸾尾花的特征作为数据来源,数据集包含 150 个数据,分为 3 类,每类 50 个数据,每个数据包含 4 个属性,是在数据挖掘、数据分类中非常常用的测试集、训练集。为了便于理解,这里主要用后两个属性(花瓣的长度和宽度)来进行分类。 首先来看一下逻辑回归分类器。逻辑斯蒂回归(Logistic Regression)是统计学习

源源源的博客 4015

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python spark2.0_Python+Spark2.0+hadoop学习笔记——Python Spark MLlib决策树二分类

决策树是在数据分类问题中的一种常用且经典的机器学习方法,在本例里使用决策树模型来分析StumbleUpon数据集,来预测网页是暂时的(ephemeral)还是长青的(evergreen),并且调教参数找出最佳的参数组合,来提高预测准确度。像这类经典的二分类问题,在python中调包来做的话会非常容易,且分析手段也有很多。但是现在的练习任务是使用Spark来对着类问题进行处理,因此,下面将开始介绍使...

weixin_39940344的博客 450

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

pyspark_mllib_classifier—(DecisionTree)

一、创建pysparkSession运行环境 二、获取数据集并格式化数据 三、特征工程—提取特征 四、DecisionTree 二分类 step1. 构建训练函数(DecisionTree) step2. 模型训练 与 评估 step3 不同超参数组合,训练与评估,找到最佳模型 step4 保存模型 加载模型-使用 开发环境 jupyter noteboo...

红叶谷 wsp_1138886114的博客 1400

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

spark 决策树分类算法demo

分类(Classification) 下面的例子说明了怎样导入LIBSVM 数据文件,解析成RDD[LabeledPoint],然后使用决策树进行分类。GINI不纯度作为不纯度衡量标准并且树的最大深度设置为5。最后计算了测试错误率从而评估算法的准确性。 from pyspark.mllib.regression import LabeledPoint f...

weixin_33922672的博客 121

决策树算法原理及Spark MLlib调用实例(Scala/Java/python)

决策树 算法介绍:         决策树以及其集成算法是机器学习分类和回归问题中非常流行的算法。因其易解释性、可处理类别特征、易扩展到多分类问题、不需特征缩放等性质被广泛使用。树集成算法如随机森林以及boosting算法几乎是解决分类和回归问题中表现最优的算法。        决策树是一个贪心算法递归地将特征空间划分为两个部分,在同一个叶子节点的数据最后会拥有同样的标签。每次划分通过贪心的

liulingyuan6的博客 7104

【Pyspark教程】SQL、MLlib、Core等模块基础使用

pyspark.SparkContext: Spark 库的主要入口点,它表示与Spark集群的一个连接,其他重要的对象都要依赖它.SparkContext存在于Driver中,是Spark功能的主要入口。代表着与Spark集群的连接,可以在集群上创建RDD,accumulators和广播变量 - pyspark.RDD: 是Spark的主要数据抽象概念,是Spark库中定义的一个抽象类。 - pyspark.streaming.StreamingContext 一个定义在Spark Streaming库中

发现问题,并解决问题,批判性思维 6697

[spark]总结spark ML机器学习库(pyspark.ml)

目录 一、pyspark.ml.feature特征处理 二、pyspark.ml模型 三、pyspark.ml.tuning参数遍历 一、pyspark.ml.feature特征处理 方法 描述 功能 连续特征离散化 Binarizer 将连续值划分为二元离散数值 连续特征离散化 Bucketizer 将连续值划分为多元离散数值 ...

woniu201411的博客 3086

PySpark ML (评估器)

PySpark ML (评估器) 评估器简介 ML中的评估器主要是对于机器学习算法的使用,包括预测、分类、聚类等,本文中会介绍多种模型的使用方式以及使用一些模型来实现简单的案例。 分类 LogisticRegression 逻辑回归(仅支持二分类问题) DecisionTreeClassifier 决策树 GBTClassifier 提督提升决策树 RandomForestClassifier 随机森林 NaiveBayes 朴素贝叶斯 MultilayerPerceptronCla

二哥为啥不像程序员? 2061

PySpark入门十八:ML之评估器

评估器 评估器被视为需要评估的统计模型,对数据做预测或分类。包含了七种分类。 评估器分类 LogisticRegresssion: 逻辑斯蒂回归,实际作用于二分类场景; DecisionTreeClassifier: 决策树,适用于分类场景。maxDepth:限制树的深度,minInstancePerNode:树节点观察数据的最小数量,maxBins:参数指定连续变量将被分割的Bin的最大数量,impurity:测量并计算来自分割信息的度量; GBTClassifier: 用于分类的梯度提升决策树模型,集

默默经营自己的小世界 438

Pyspark分类--RandomForestClassifier

RandomForestClassifier class pyspark.ml.classification.RandomForestClassifier(featuresCol=‘features’, labelCol=‘label’, predictionCol=‘prediction’, probabilityCol=‘probability’, rawPredictionCol=‘rawPrediction’, maxDepth=5, maxBins=32, minInstancesPerNode=

weixin_46408961的博客 1398
上一篇: pyspark运行ALS推荐算法
下一篇: pyspark之LogisticRegression算法
pyswt
博客等级 码龄8年 45粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值