该方法好处是可以调节阈值,可调参数比其他形式模型多很多。

【参照】http://blog.csdn.net/u013719780/article/details/52277616

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

from pyspark import SparkContext
from pyspark.mllib.classification import LogisticRegressionWithLBFGS,LogisticRegressionModel
from pyspark.mllib.regression import LabeledPoint
from pyspark.sql import Row
from pyspark.mllib.linalg import *
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.linalg import Vectors
from __future__ import print_function

#需要数据框格式数据

lines=sc.textFile('hdfs://getui-bi-hadoop/user/zhujx/1029_IOS_features_sex') #全是0和1的数据
parts=lines.map(lambda x:x.split('\t'))
col=["f_"+str(i) for i in range(227)] #设置数据框变量
dataset=sqlContext.createDataFrame(parts,col) #转换成数据框格式

#建立标签索引,转换标签格式

#当前的数据类型是字符型,将数据转换为数值型
data=dataset.map(lambda x:([float(x[i]) for i in range(0,227)])) #转换后已经不是dataframe格式了
datadf=sqlContext.createDataFrame(data,col) #再次转换成数据框格式
#datadf.printSchema #显示出变量名
feature_data=datadf.map(lambda x:(Vectors.dense([x[i] for i in range(1,227)]),x[0]))
forma_data=sqlContext.createDataFrame(feature_data,['features','labels']) #定义好标签值和特征值,形成数据框
#forma_data.show()
train_data,test_data=forma_data.randomSplit([0.8,0.2],6) #随机种子为6 ,随机分样本
#train_data.show()

#建立模型

lr=LogisticRegression(featuresCol="features",labelCol="labels",maxIter=100,regParam=0.01,predictionCol="prediction",fitIntercept=True,threshold=0.3)
model=lr.fit(train_data) #拟合训练集
#model.coefficients
#model.intercept
#
result=model.transform(test_data)
#result1=model.transform(test_data).head()
#result.prediction
#result.probability
#result.rawPrediction
result.select('probability','prediction','prediction').show(truncate=False)

result.select('probability','prediction','rawPrediction').show(100,truncate=False)

pyspark dataframe 格式数据输入 做逻辑回归的更多相关文章

  1. Python3 Pandas的DataFrame格式数据写入excle文件、json、html、剪贴板、数据库

    Python3 Pandas的DataFrame格式数据写入excle文件.json.html.剪贴板.数据库 一.DataFrame格式数据 Pandas是Python下一个开源数据分析的库,它提供 ...

  2. R语言做逻辑回归

    前面写过一个多分类的逻辑回归,现在要做一个简单的二分类,用glm函数 导入csv格式如下: mydata<-read.csv("D://li.csv",header=T) c ...

  3. 用R做逻辑回归之汽车贷款违约模型

    数据说明 本数据是一份汽车贷款违约数据 application_id    申请者ID account_number 账户号 bad_ind            是否违约 vehicle_year  ...

  4. 逻辑回归原理_挑战者飞船事故和乳腺癌案例_Python和R_信用评分卡(AAA推荐)

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  5. Sklearn实现逻辑回归

    方法与参数 LogisticRegression类的各项参数的含义 class sklearn.linear_model.LogisticRegression(penalty='l2', dual=F ...

  6. 机器学习二 逻辑回归作业、逻辑回归(Logistic Regression)

    机器学习二 逻辑回归作业   作业在这,http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/hw2.pdf 是区分spam的. 57 ...

  7. scikit-learn 逻辑回归类库使用小结

    之前在逻辑回归原理小结这篇文章中,对逻辑回归的原理做了小结.这里接着对scikit-learn中逻辑回归类库的我的使用经验做一个总结.重点讲述调参中要注意的事项. 1. 概述 在scikit-lear ...

  8. 10分钟搞懂Tensorflow 逻辑回归实现手写识别

    1. Tensorflow 逻辑回归实现手写识别 1.1. 逻辑回归原理 1.1.1. 逻辑回归 1.1.2. 损失函数 1.2. 实例:手写识别系统 1.1. 逻辑回归原理 1.1.1. 逻辑回归 ...

  9. 【机器学习】逻辑回归(Logistic Regression)

    注:最近开始学习<人工智能>选修课,老师提纲挈领的介绍了一番,听完课只了解了个大概,剩下的细节只能自己继续摸索. 从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害 ...

随机推荐

  1. Git密钥生成步骤SSH Key

    顺便推荐下自己的网站: 一个php后台极速开发框架 https://www.lotusadmin.top/ 一个有趣的网站 https://www.waytomilky.com/ Git是分布式的代码 ...

  2. js正则表达式30分钟入门教程

    2011-10-27 13:23:15 如何使用本教程 最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要 ...

  3. 白话 Java Bean

    所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,不就是Java类吗? 1. 什么是 Java Bean? 很多培训机构在讲java ...

  4. 实际用户ID和有效用户ID (二)

    看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个UID引出都是为了系统的权限管理. 下面分别 ...

  5. React-Native 在android写不支持gif的解决方案!

    只需要在android/app/build.gradle中的dependencies字段中添加: compile 'com.facebook.fresco:animated-gif:0.13.0' 然 ...

  6. Python 标准库 ConfigParser 模块 的使用

    Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...

  7. linux设置iptables防火墙的详细步骤(centos防火墙设置方法)

    CentOS系统也是基于linux中的它的防火墙其实就是iptables了,下面我来介绍在CentOS防火墙iptables的配置教程,希望此教程对各位朋友会有所帮助.   iptables是与Lin ...

  8. IO基础知识

    传统的IO是阻塞的,BIO----基于流的模式,数据与Stream直接通信 NIO非阻塞的基于快的模式.数据与channel不直接交换数据,而是通过buffer进行数据交换. 基于文件的IO 基于网络 ...

  9. java字符串分解 StringTokenizer用法

    Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. 先看个例子: 1 public ...

  10. PyCharm License Activation激活码失效问题的解决方法

    自己的小Python项目好几天没有写了,今天打开PyCharm准备继续写,突然发现之前的激活码被取消不能用了,本来激情满满的准备干活啦!之前搜的这个激活码本来说的是可以用到18年1月份的呢,哎…心情是 ...