【Spark MLlib速成宝典】模型篇04朴素贝叶斯【Naive Bayes】(Python版)

目录

  朴素贝叶斯原理

  朴素贝叶斯代码(Spark Python)



朴素贝叶斯原理

  详见博文:http://www.cnblogs.com/itmorn/p/7905975.html

返回目录


朴素贝叶斯代码(Spark Python)

  

  代码里数据:https://pan.baidu.com/s/1jHWKG4I 密码:acq1

# -*-coding=utf-8 -*-
from pyspark import SparkConf, SparkContext
sc = SparkContext(‘local‘)

from pyspark.mllib.regression import LabeledPoint, LinearRegressionWithSGD, LinearRegressionModel

# Load and parse the data 加载和解析数据,将每一个数转化为浮点数。每一行第一个数作为标记,后面的作为特征
def parsePoint(line):
    values = [float(x) for x in line.replace(‘,‘, ‘ ‘).split(‘ ‘)]
    return LabeledPoint(values[0], values[1:])

data = sc.textFile("data/mllib/ridge-data/lpsa.data")
print data.collect()[0] #-0.4307829,-1.63735562648104 -2.00621178480549 -1.86242597251066 -1.024....-0.864466507337306
parsedData = data.map(parsePoint)
print parsedData.collect()[0] #(-0.4307829,[-1.63735562648,-2.00621178481,-1.86242597251,-1.024....,-0.864466507337])

# Build the model 建立模型
model = LinearRegressionWithSGD.train(parsedData, iterations=1000, step=0.1)

# Evaluate the model on training data 评估模型在训练集上的误差
valuesAndPreds = parsedData.map(lambda p: (p.label, model.predict(p.features)))
MSE = valuesAndPreds     .map(lambda vp: (vp[0] - vp[1])**2)     .reduce(lambda x, y: x + y) / valuesAndPreds.count()
print("Mean Squared Error = " + str(MSE)) #Mean Squared Error = 6.32693963099

# Save and load model 保存模型和加载模型
model.save(sc, "pythonLinearRegressionWithSGDModel")
sameModel = LinearRegressionModel.load(sc, "pythonLinearRegressionWithSGDModel")
print sameModel.predict(parsedData.collect()[0].features) #-1.86583391312

返回目录

时间: 2024-10-31 15:09:56

【Spark MLlib速成宝典】模型篇04朴素贝叶斯【Naive Bayes】(Python版)的相关文章

朴素贝叶斯(naive bayes)

朴素贝叶斯(naive bayes) 主要参考资料:<机器学习实战><统计学习方法> 1.朴素贝叶斯分类原理 朴素贝叶斯法是基于贝叶斯定理和特征条件独立假设(称为朴素的原因)的分类方法.先看看维基百科中贝叶斯定理的描述: 贝叶斯定理(维基百科) 通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的:然而,这两者是有确定的关系,贝叶斯定理就是这种关系的陈述. 公式描述如下: P(A|B)=P(A|B)P(A)P(B) 其中P(A|B)是在B发生的情况下

【黎明传数==&gt;机器学习速成宝典】模型篇05——朴素贝叶斯【Naive Bayes】(附python代码)

目录 先验概率与后验概率 什么是朴素贝叶斯 模型的三个基本要素 构造kd树 kd树的最近邻搜索 kd树的k近邻搜索 Python代码(sklearn库) 先验概率与后验概率 什么K近邻算法(k-Nearest Neighbor,kNN) 引例 有一个训练集包含100个实例,属性是皮肤颜色(黑.白.黄),标记是地区(亚洲.非洲.北美洲人).在训练集中有30个非洲人(28个黑人),有50个亚洲人(1个黑人),有20个北美洲人(5个黑人).请训练一个贝叶斯模型. 当一个训练集外的黑人来报道,我们该如何

机器学习-朴素贝叶斯原理及Python实现

机器学习-朴素贝叶斯原理及Python实现 贝叶斯公式 P(A|B) = (P(B|A)P(A))/P(B) 举例:苹果10个,有2个黄色:梨10个,有6个黄色,求拿出一个黄色水果,是苹果的概率. 代入公式: P(苹果|黄色) = (P(黄色|苹果)P(苹果))/P(黄色) P(黄色) = (2+6)/20 = 2/5 P(苹果) = 10/20 = 1/2 = 0.5 P(黄色|苹果)=1/5 P(黄色|苹果)P(苹果) = P(黄色,苹果) = 1/5*1/2 = 1/10 = 0.1 P(

朴素贝叶斯算法的Python实现

注意:1.代码中的注释请不要放在源程序中运行,会报错. 2.代码中的数据集来源于http://archive.ics.uci.edu/ml/datasets/Car+Evaluation 3.对于朴素贝叶斯的原理,可以查看我的前面的博客 # Author :Wenxiang Cui # Date :2015/9/11 # Function: A classifier which using naive Bayesian algorithm  import math class Bayesian:

【Spark MLlib速成宝典】模型篇06随机森林【Random Forests】(Python版)

目录 随机森林原理 随机森林代码(Spark Python) 随机森林原理 待续... 返回目录 随机森林代码(Spark Python) 代码里数据:https://pan.baidu.com/s/1jHWKG4I 密码:acq1 # -*-coding=utf-8 -*- from pyspark import SparkConf, SparkContext sc = SparkContext('local') from pyspark.mllib.tree import RandomFor

【Spark MLlib速成宝典】模型篇07梯度提升树【Gradient-Boosted Trees】(Python版)

目录 梯度提升树原理 梯度提升树代码(Spark Python) 梯度提升树原理 待续... 返回目录 梯度提升树代码(Spark Python) 代码里数据:https://pan.baidu.com/s/1jHWKG4I 密码:acq1 # -*-coding=utf-8 -*- from pyspark import SparkConf, SparkContext sc = SparkContext('local') from pyspark.mllib.tree import Gradi

朴素贝叶斯算法的python实现 -- 机器学习实战

1 import numpy as np 2 import re 3 4 #词表到向量的转换函数 5 def loadDataSet(): 6 postingList = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], 7 ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'], 8 ['my', 'dalmation', 'is', 'so', 'cu

斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

生成学习与判别学习 像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) :或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning).与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0).这一节介绍的

NLP系列(2)_用朴素贝叶斯进行文本分类(上)

作者:寒小阳 && 龙心尘 时间:2016年1月. 出处:http://blog.csdn.net/longxinchen_ml/article/details/50597149 http://blog.csdn.net/han_xiaoyang/article/details/50616559 声明:版权全部,转载请联系作者并注明出处 1. 引言 贝叶斯方法是一个历史悠久.有着坚实的理论基础的方法,同一时候处理非常多问题时直接而又高效.非常多高级自然语言处理模型也能够从它演化而来.因此,