本文是对《Spark快速大数据分析》中Spark机器学习相关内容的一个实践(其中主要代码也是来自该文中的示例代码),只是自己准备了数据,并实际运行体验。

本文数据下载:https://download.csdn.net/download/wiborgite/10739730

本文使用scala实现,在spark-shell中即可执行,代码如下所示:

import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.feature.HashingTF
import org.apache.spark.mllib.classification.LogisticRegressionWithSGD
import org.apache.spark.mllib.classification.SVMWithSGDval spam = sc.textFile("/tmp/spam.txt")
val normal = sc.textFile("/tmp/normal.txt")// 创建一个HashingTF实例来把邮件文本映射为包含10000个特征的向量
val tf = new HashingTF(numFeatures = 10000)
// 各邮件都被切分为单词,每个单词被映射为一个特征
val spamFeatures = spam.map(email => tf.transform(email.split(" ")))
val normalFeatures = normal.map(email => tf.transform(email.split(" ")))// 创建LabeledPoint数据集分别存放阳性(垃圾邮件)和阴性(正常邮件)的例子
val positiveExamples = spamFeatures.map(features => LabeledPoint(1, features))
val negativeExamples = normalFeatures.map(features => LabeledPoint(0, features))
val trainingData = positiveExamples.union(negativeExamples)
trainingData.cache() // 因为逻辑回归是迭代算法,所以缓存训练数据RDD// 使用SGD算法运行逻辑回归
val model = new LogisticRegressionWithSGD().run(trainingData)//使用SVM算法
val model = new SVMWithSGD().run(trainingData)// 以阳性(垃圾邮件)和阴性(正常邮件)的例子分别进行测试
val posTest = tf.transform(
"O M G GET cheap stuff by sending money to ...".split(" "))
val negTest = tf.transform(
"Hi Dad, I started studying Spark the other ...".split(" "))
println("Prediction for positive test example: " + model.predict(posTest))
println("Prediction for negative test example: " + model.predict(negTest))

Spark MLlib垃圾邮件分类示例相关推荐

  1. Spark机器学习之垃圾邮件分类

    Spark机器学习之垃圾邮件分类 步骤概述 通过HashingTF构建文本的特征向量,然后使用随机梯度下降算法实现逻辑回归,进而对邮件进行分类 垃圾邮件分类代码 导入相关的包 import org.a ...

  2. spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件

    原标题:逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件 由于最近的工作原因,小鸟很久没给大家分享技术了.今天小鸟就给大家介绍一种比较火的机器学习算法,逻辑回归分类算法. 回归是一种监督式学 ...

  3. 垃圾邮件分类 python_在python中创建SMS垃圾邮件分类器

    垃圾邮件分类 python 介绍 (Introduction) I have always been fascinated with Google's gmail spam detection sys ...

  4. python训练opencb分类器_垃圾邮件分类.ipynb

    { "cells": [ { "cell_type": "markdown", "metadata": {}, &quo ...

  5. AI基础:朴素贝叶斯与垃圾邮件分类

    来,继续回顾基础算法 文章目录 背景&贝叶斯原理 贝叶斯分类器 朴素贝叶斯分类器 西瓜数据集下的朴素贝叶斯示例 朴素贝叶斯分类的优缺点 朴素贝叶斯关键问题 朴素贝叶斯企业中的应用案例 基于朴素 ...

  6. 朴素贝叶斯-垃圾邮件分类实现

    1. 前言 <朴素贝叶斯算法(Naive Bayes)>,介绍了朴素贝叶斯原理.本文介绍的是朴素贝叶斯的基础实现,用来垃圾邮件分类. 2. 朴素贝叶斯基础实现 朴素贝叶斯 (naive B ...

  7. 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授

    机器学习系统设计–垃圾邮件分类 假定我们现有一封邮件,其内容如下: From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu Subjec ...

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

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

  9. 垃圾邮件分类快速理解机器学习中的朴素贝叶斯(Naive Bayes)

    贝叶斯方法是一个历史悠久,有着坚实的理论基础的方法,同时处理很多问题时直接而又高效,很多高级自然语言处理模型也可以从它演化而来.因此,学习贝叶斯方法,是研究自然语言处理问题的一个非常好的切入口. 其实 ...

最新文章

  1. Go在Ubuntu 14.04 64位上的安装过程
  2. LinearLayout(线性布局)
  3. 成员变量修饰词的作用
  4. request获取各种路径总结、页面跳转总结。
  5. 2018 年,NLP 研究与应用进展到什么水平了?
  6. python内嵌函数和闭包与java 匿名内部类_Java匿名内部类构造原理分析
  7. python单元测试教程_Python单元测试框架unittest使用方法讲解
  8. qq群临时文件转永久
  9. 使用C语言--判断素数的两种方法
  10. python闯红灯检测斑马线检测红绿灯检测车速检测车流量统计车牌识别智慧交通系统
  11. PMP、软考高项考后总结
  12. PCSHARE VIP 2005源代码
  13. 【RSLogix5000】—(1.1)—厂房ControlLogix系统介绍(硬件介绍)——原理
  14. python期货基本面分析_Python量化炒期货入门与实战技巧
  15. 聊天气泡图片的动态拉伸、适配与镜像
  16. c语言 100匹马 编程,编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...
  17. 使用@ResponseBody对象转json和@RequestBody进行json转对象案例
  18. 转载:关于Vivado综合选项——Out of context per IP和Gobal
  19. python plt.imshow函数显示图像颜色失真
  20. Android SystemUI相关定制(一)

热门文章

  1. 阿里大牛总结:学会这些Kafka知识,吊打面试官就是分分钟的事
  2. (干货分享)农商行中商业智能建设的整体思路与架构
  3. ubtunu打开firefox_在Ubuntu中安装Mozilla Firefox的4种方法
  4. oracle 自定义表类型赋值,Oracle自定义类型 Record + PL/SQL表
  5. python tkinter place布局
  6. php 抽象类 接口 区别,PHP中抽象类和接口有什么区别
  7. 控制台没有消息循环_【干货】思科设备报错消息汇总大全~
  8. java命令行参数_一个 java 命令行参数顺序的坑
  9. 输入函数的区别C++
  10. html创建表单用设么,如何使用HTML创建表单的发送