zoukankan      html  css  js  c++  java
  • pyspark dataframe 格式数据输入 做逻辑回归

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

    【参照】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(' '))
    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)

  • 相关阅读:
    [Android学习系列11]关于Android数据存储的一些事
    [PHP系列1]session和cookie的一些事
    [Android学习系列10]关于Task,Activity,BackStack的一些事
    [Android学习系列9]关于Fragment的一些事
    [Android学习系列8]数据库ormlite笔记
    [Android学习系列7]数据库学习笔记
    JAVA与C++对比 --– 虚函数、抽象函数、抽象类、接口
    iOS常用控件尺寸大集合
    ios 几种快速写法
    一些好的IOS blog 不断增加中。。。。
  • 原文地址:https://www.cnblogs.com/zhangbojiangfeng/p/6021075.html
Copyright © 2011-2022 走看看