http://www.qqcourse.com/forum.php?mod=viewthread&tid=3688

【很重要】:http://spark.apache.org/docs/latest/api/python/pyspark.mllib.html

官方文档里面关于模型配置的所有参数

[spark dataframe ,pandas数据结构使用]http://blog.csdn.net/chaoran_liu/article/details/52203831

【很重要,】pipeline 数据结构 数据框格式 dataframe模型完整程序】http://blog.csdn.net/u013719780/article/details/52277616

【3种模型效果比较:逻辑回归,决策树,随机森林】http://blog.csdn.net/chaoran_liu/article/details/52203831

使用 ML Pipeline 构建机器学习工作流:https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice5/

[图片地址】: http://spark.apache.org/docs/latest/api/python/pyspark.ml.html

#此程序在hadoop集群中运行

pyspark --master yarn-client --executor-memory 5G --num-executors 50   #在shell中输入,指定内存5个g,50个节点

from pyspark import SparkContext
from pyspark.mllib.classification import LogisticRegressionWithLBFGS,LogisticRegressionModel
from pyspark.mllib.regression import LabeledPoint

def parsePoint(line):
     values=[float(x) for x in line.split('\t')]
      return LabeledPoint(values[0],values[1:])

data1=sc.textFile('1029_IOS_features_age_18t24')  #文件需要保存在默认的集群地址上, hdfs://getui-bi-hadoop/user/zhujx

parsedata=data1.map(parsePoint) #数据转化为LabeledPoint 格式

#build model

modelage18=LogisticRegressionWithLBFGS.train(parsedata,regType="l1") #l1正则

#print model.weights

labepreds=parsedata.map(lambda p: (p.label,modelage18.predict(p.features))) #同时展示了预测类别和原表类别,原数据是labelpoint形式的预测方法
#labepreds2=train1.map(lambda p:(p.label,model.predict(p.features))) #测试预测集

trainerro=labepreds.filter(lambda (v,p):v!=p).count() / float(parsedata.count())
prerat=labepreds.filter(lambda (v,p):v==p).count()/float(parsedata.count())

crosstable1=labepreds.filter(lambda (v,p):p==1).count()
crosstable0=labepreds.filter(lambda (v,p):p==0).count()

crosstable11=labepreds.filter(lambda (v,p):p==1 and v==1).count() #预测值是1,实际值也是1的样本个数
crosstable10=labepreds.filter(lambda (v,p):p==1 and v==0).count()
crosstable01=labepreds.filter(lambda (v,p):p==0 and v==1).count()
crosstable00=labepreds.filter(lambda (v,p):p==0 and v==0).count()

print ("train err =" + str(trainerro))
print("11:"+ str(crosstable11),"10:"+ str(crosstable10),"01:"+ str(crosstable01),"00:"+ str(crosstable00))

#保存模型
modelage18.save(sc,"target/tmp/LR_age18-24")
sameModel = LogisticRegressionModel.load(sc,"target/tmp/LR_age18-24")

***********************把样本分成训练集和测试集*******************

splits = parsedData.randomSplit((0.7, 0.3))
trainingData = splits[0]
testData = splits[1] #这部分用于测试准确率
model_train = LogisticRegressionWithLBFGS.train(trainingData,regType="l1",intercept=False)

print model_train.weights

labelsAndPreds = testData.map(lambda p: (p.label,model_train.predict(p.features)))
trainErr = labelsAndPreds.filter(lambda (v, p): v != p).count() /float(testData.count())

pyspark 逻辑回归程序的更多相关文章

  1. pyspark dataframe 格式数据输入 做逻辑回归

    该方法好处是可以调节阈值,可调参数比其他形式模型多很多. [参照]http://blog.csdn.net/u013719780/article/details/52277616 [3种模型效果比较: ...

  2. 分布式机器学习:逻辑回归的并行化实现(PySpark)

    1. 梯度计算式导出 我们在博客<统计学习:逻辑回归与交叉熵损失(Pytorch实现)>中提到,设\(w\)为权值(最后一维为偏置),样本总数为\(N\),\(\{(x_i, y_i)\} ...

  3. Logistic Regression逻辑回归

    参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...

  4. ogistic regression (逻辑回归) 概述

    :http://hi.baidu.com/hehehehello/blog/item/0b59cd803bf15ece9023d96e.html#send http://en.wikipedia.or ...

  5. Python实践之(七)逻辑回归(Logistic Regression)

    机器学习算法与Python实践之(七)逻辑回归(Logistic Regression) zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Pyth ...

  6. Coursera《machine learning》--(6)逻辑回归

    六 逻辑回归(Logistic Regression:LR) 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就是由于这个逻辑函数,使得 ...

  7. 【转】Logistic regression (逻辑回归) 概述

    Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性.比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等 ...

  8. 【Machine Learning in Action --5】逻辑回归(LogisticRegression)

    1.概述 Logistic regression(逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性. 在经典之作<数学之美>中也看到了它用于广告预测,也就是根据某广告被 ...

  9. ex2:逻辑回归及正则条件下的练习

    EX2 逻辑回归练习 ​ 假设你是一个大学某系的管理员,你想根据两项考试结果来确定每个申请人的录取机会.你有以前申请人的历史资料以作为逻辑回归的训练集.对于每一个训练集,你拥有每个申请人的两项考试的分 ...

随机推荐

  1. HTTP请求返回值所代表的含义

    一些常见的状态码为: 200 - 服务器成功返回网页(表示请求成功) 404 - 请求的网页不存在(可能是网络的问题,也可能是网页没办法访问不代表网页不存在) 503 - 服务器超时(服务器故障) 下 ...

  2. JavaScript基础知识点学习记录

    一.简介: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如相应用户的各种操作. J ...

  3. 「一本通 6.4 例 4」曹冲养猪(CRT)

    复习一下 扩展中国剩余定理 首先考虑两个同余方程 \[ x \equiv a_1\; mod\; m_1\\ x \equiv a_2\; mod\; m_2 \] 化成另一个形式 \[ x = n_ ...

  4. linux中测试py脚本使用debug模式

    python -mtrace --trace ping_host.py

  5. 面向对象epoll并发

    面向对象epoll # -*- coding: utf-8 -*- import socket import selectors import re import sys HTML_ROOT = &q ...

  6. gentoo rt-thread pkgs --update except Exception, e:

    使用 rt-thread pkgs --update 时候, 提示出错,信息如下: Traceback (most recent call last): File "/home/ptz/.e ...

  7. 使用git时报错出现vim.exe.stackdump

    使用git时报错出现vim.exe.stackdump 关闭命令行重新打开试试   一般由于异常报错引起的

  8. 58.纯 CSS 创作一只卡通鹦鹉

    原文地址:https://segmentfault.com/a/1190000015339977 优化后效果地址:https://scrimba.com/c/c97Z2vuD 感想:消除了图片外的:h ...

  9. python中的jion

    on将列表或元组中的每个元素连接起来,举个例子: 1 a = ["hello", "world", "dlrb"] 2 a1 = " ...

  10. ssh rsa 非对称加密 基本原理

    我们常用的ssh 免密登陆是用了 非对称加密的rsa算法(最为常用),与对称加密的相比会慢一些,但是更安全.秘钥长度超过768位无法破解. 默认长度是2048位(无法破解,非常安全) ssh-keyg ...