贝叶斯分类:在做算法时数据不能为负我就将原来数据中的负号去掉导致结果预测失败
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。 适用数据类型:标称型数据。

#1.导包
from pyspark.ml.classification import NaiveBayes
from pyspark.ml.evaluation import MulticlassClassificationEvaluator
from pyspark.mllib.linalg import Vectors,Vector
from pyspark import SparkContext
from pyspark.ml.regression import LinearRegression
from pyspark.ml.feature import VectorAssembler
from pyspark.python.pyspark.shell import spark
from pyspark.ml.feature import StringIndexer
from pyspark.sql.types import *
from pyspark.sql.functions  import *
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.clustering import KMeans
#2.读取hdfs中的文件
sc=SparkContext.getOrCreate()
train_data=sc.textFile("hdfs://master:9000/qw.csv")
def GetParts(line):parts = line.split(',')return parts[0],parts[1],parts[2],parts[3],parts[4],parts[5],parts[6]
header = train_data.first() #获取第一行内容
train_data = train_data.filter(lambda row:row != header) #删除第一行数据
train = train_data.map(lambda line: GetParts(line))
df = spark.createDataFrame(train,["acceleration_x","acceleration_y","acceleration_z","gyro_x","gyro_y","gyro_z","activity"])#将数据转化为DataFrame格式
df.show()
#将string类型转化为浮点型
df = df.withColumn("acceleration_x", df["acceleration_x"].cast(FloatType()))
df = df.withColumn("acceleration_y", df["acceleration_y"].cast(FloatType()))
df = df.withColumn("acceleration_z", df["acceleration_z"].cast(FloatType()))
df = df.withColumn("gyro_x", df["gyro_x"].cast(FloatType()))
df = df.withColumn("gyro_y", df["gyro_y"].cast(FloatType()))
df = df.withColumn("gyro_z", df["gyro_z"].cast(FloatType()))
df = df.withColumn("activity", df["activity"].cast(FloatType()))
#将数据划分为特征和标签
assembler = VectorAssembler(inputCols=["acceleration_x","acceleration_y","acceleration_z","gyro_x","gyro_y","gyro_z"],outputCol="features")
output = assembler.transform(df)
label_features = output.select("features", "activity").toDF('features','label')
label_features.show(truncate=False)
#贝叶斯
nb = NaiveBayes(smoothing=1.0, modelType="multinomial")
# 训练模型
model = nb.fit(label_features)df1 = spark.createDataFrame([(-1.0602,-0.282,-0.0618,0.8069,-0.9107,1.6153,1)],["acceleration_x","acceleration_y","acceleration_z","gyro_x","gyro_y","gyro_z","activity"])
df1.show()
test_assembler = VectorAssembler(inputCols=["acceleration_x","acceleration_y","acceleration_z","gyro_x","gyro_y","gyro_z"],outputCol="features")
test_output = test_assembler.transform(df1)
test_label_features = test_output.select("features", "activity").toDF('features','label')
test_label_features.show(truncate=False)# df1 = label_features.head(5)
# df1 = spark.createDataFrame(df1)
# df1.show()
# compute accuracy on the test set
result = model.transform(test_label_features)
print(result.collect())
predictionAndLabels = result.select("prediction", "label").collect()
print(predictionAndLabels)


python spark pyspark——朴素贝叶斯习题整理相关推荐

  1. Python实现基于朴素贝叶斯的垃圾邮件分类 标签: python朴素贝叶斯垃圾邮件分类 2016-04-20 15:09 2750人阅读 评论(1) 收藏 举报 分类: 机器学习(19) 听说

    Python实现基于朴素贝叶斯的垃圾邮件分类 标签: python朴素贝叶斯垃圾邮件分类 2016-04-20 15:09 2750人阅读 评论(1) 收藏 举报  分类: 机器学习(19)  听说朴 ...

  2. spark mllib 朴素贝叶斯 naive bayes

    为什么80%的码农都做不了架构师?>>>    数据源说明 第一列每行的标签,其他列为特征 运行代码如下 package spark.logisticRegressionimport ...

  3. Python+sklearn使用朴素贝叶斯算法识别中文垃圾邮件

    总体思路与步骤: 1.从电子邮箱中收集垃圾和非垃圾邮件训练集. 2.读取全部训练集,删除其中的干扰字符,例如[]*..,等等,然后分词,删除长度为1的单个字. 3.统计全部训练集中词语的出现次数,截取 ...

  4. python推荐系统算法朴素贝叶斯_机器学习经典算法之朴素贝叶斯分类

    很多人都听说过贝叶斯原理,在哪听说过?基本上是在学概率统计的时候知道的.有些人可能会说,我记不住这些概率论的公式,没关系,我尽量用通俗易懂的语言进行讲解. 贝叶斯原理是英国数学家托马斯·贝叶斯提出的. ...

  5. Python机器学习06——朴素贝叶斯

    本系列所有的代码和数据都可以从陈强老师的个人主页上下载:Python数据程序 参考书目:陈强.机器学习及Python应用. 北京:高等教育出版社, 2021. 本系列基本不讲数学原理,只从代码角度去让 ...

  6. Python自然语言处理—朴素贝叶斯

    一贝叶斯公式 公式很好理解,当我们相求已知状态X下打上ý标签的概率的时候,可以将问题分以下三个问题 1,求标签ÿ下X状态的概率 2,求标签ÿ的概率 3,求X状态的概率 以上三个问题可以简单的统计已知样 ...

  7. python:基于朴素贝叶斯算法的垃圾邮件过滤分类

    目录 一.朴素贝叶斯算法 1.概述 2.推导过程 二.实现垃圾邮件过滤分类 1.垃圾邮件问题背景 2.朴素贝叶斯算法实现垃圾邮件分类的步骤 3.python实现 参考学习网址:https://blog ...

  8. 朴素贝叶斯python代码_朴素贝叶斯模型及python实现

    1 朴素贝叶斯模型 朴素贝叶斯法是基于贝叶斯定理.特征条件独立假设的分类方法.在预测时,对输入x,找出对应后验概率最大的 y 作为预测. NB模型: 输入: 先验概率分布:P(Y=ck),k=1,2, ...

  9. python 机器学习 sklearn 朴素贝叶斯

    首先介绍一个非常好的博主和博客,大家可以去这学习,我收获很大优秀的博客 朴素贝叶斯下面包括三个方法 分别是高斯朴素贝叶斯.多项式朴素贝叶斯.伯努利朴素贝叶斯 这三种方式都有不同的应用场所,比如你要预测 ...

  10. python推荐系统算法朴素贝叶斯_朴素贝叶斯算法在人才盘点中的应用(之一)

    一.识别人才首先是处理不确定性问题 做招聘面试的HR应该会认同这样的经历. 打开应聘者简历,赫然写着TOP10名学毕业.抬头一瞧,小伙长得一表人才,精神抖擞,朝气蓬勃.HR兴趣大增. 再一看,研究方向 ...

最新文章

  1. 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类
  2. 团购硝烟慢慢散去之时:从团购身上我们可以学到什么?
  3. spring-quartz
  4. php pdo字符,关于php:真正的转义字符串和PDO
  5. DBMS_PIPE包
  6. SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
  7. 最近一周MOSS的link
  8. react-hooks学习笔记
  9. php flea,Fleaphp常见函数功能与用法示例
  10. 小学计算机课画图软件,小学小学三年级信息技术使用画图软件(一)
  11. 开机引导界面grub找不到
  12. 脚本:自动下载安卓应用并安装到手机
  13. 推特用户曝Win10版微信截图 微信或将回归Win系统
  14. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统
  15. ffmpeg函数分析:av_read_frame()
  16. 使用string_to_array时,报错operator does not exist: character varying = text[]
  17. Android中从视频中提取音频
  18. 【Auto.js】给手机编一个模拟遥控器
  19. java 图片 缩略图_java 图片缩略图的两种方法
  20. 【专题】用ST表解决RMQ刷题总结

热门文章

  1. 模拟电子电路技术基础 | 基本放大电路
  2. Javascript中大于和小于
  3. flash游戏开发02_引入flixel框架的helloworld
  4. 计算机系统漏洞及防范,计算机系统漏洞以及防范的措施.doc
  5. 牛客竞赛语法入门班选择结构习题【完结】
  6. python一笔画五角星_五角星怎么画标准(一笔画五角星的顺序)
  7. Ubuntu使用代理服务器上网
  8. QuickCHM 2.6中“不支持此接口”错误的“彻底”解决(补丁)
  9. QT报错 error: [debug/qrc_image.cpp] Error 1
  10. python打开网页后点击网页按钮_单击网页按钮的Python脚本