逻辑回归模型简介与python实践_第1页
逻辑回归模型简介与python实践_第2页
逻辑回归模型简介与python实践_第3页
逻辑回归模型简介与python实践_第4页
逻辑回归模型简介与python实践_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

逻辑回归模型简介与python实践提纲逻辑回归模型实现逻辑回归模型简介逻辑回归模型简介在介绍LogisticRegression之前我们先简单说一下线性回归,,线性回归的主要思想就是通过历史数据拟合出一条直线,用这条直线对新的数据进行预测。我们知道,线性回归的公式如下:

而对于LogisticRegression来说,其思想也是基于线性回归(LogisticRegression属于广义线性回归模型)。其公式如下:

逻辑回归模型简介其中,被称作sigmoid函数,我们可以看到,LogisticRegression算法是将线性函数的结果映射到了sigmoid函数中。igmoid的函数图形如下:提纲逻辑回归模型简介逻辑回归模型实现逻辑回归模型简介我们可以看到,sigmoid的函数输出是介于(0,1)之间的,中间值是0.5,于是之前的公式

hθ(x)hθ(x)的含义就很好理解了,因为

hθ(x)hθ(x)

输出是介于(0,1)之间,也就表明了数据属于某一类别的概率,例如:

hθ(x)hθ(x)<0.5则说明当前数据属于A类;

hθ(x)hθ(x)>0.5则说明当前数据属于B类。

所以我们可以将sigmoid函数看成样本数据的概率密度函数。

逻辑回归被广泛用于二分类器,神经网络领域

Python进行逻辑回归模型实践系统准备:centos6.8、Spark2.3.1、Pyrhon3.X数据准备:采用UCI机器学习库中的wine数据集作为算法数据,包括了三种酒中13种不同成分的数量。成分分别为:Alcohol,Malicacid,Ash,lcalinityofash,Magnesium,Totalphenols,Flavanoids,Nonflavanoidphenols,Proanthocyanins,Colorintensity,Hue,OD280/OD315ofdilutedwines,Proline。在“wine.data”文件中,每行代表一种酒的样本,共有178个样本;一共有14列,其中,第一列为类标志属性,共有三类,分别记为“1”,“2”,“3”;后面的13列为每个样本的对应属性的样本值。第1类有59个样本,第2类有71个样本,第3类有48个样本。由于实验为二类分类器,故只选取1,2,两个类别建模目的:训练逻辑回归分类器,使得知道13个特征后,把样本划归到相应类别。实例:初始化Spark,读取数据#-*-coding:utf-8-*-#pyspark--masterlocal[5]from

pysparkimportSparkContext,SQLContext,SparkConffrommathimportsqrt

#初始化sparkContextconf=SparkConf().setMaster("local").setAppName("MyKmeansDemo")sc=SparkContext(conf=conf)sqlContext=SQLContext(sc)

#读取数据df_wine=sc.textFile(u"file:/root/Documents/liangdong/work/laboratory/wine数据集.txt").map(

lambdax:str(x).split(",")).map(lambdax:[float(z)forzinx])实例:展示数据#本地数据转换为RDD

df_wine_rdd=sqlContext.createDataFrame(df_wine)

#展示数据

df_wine_rdd.show()实例:初始化SparkContext实例:读取数据并进行数据处理#由于逻辑回归一般用于二分类,故只抽取两个类别数据df_wine_rdd=df_wine_rdd.filter(col("_1").isin([1.0,

2.0]))#构建向量importpyspark.ml.featureasml_featurecols=df_wine_rdd.columns[1:]vectorAssembler=ml_feature.VectorAssembler().setInputCols(cols).setOutputCol("cols")wine_Vc=vectorAssembler.transform(df_wine_rdd)#对类别进行编码stringIndexer=ml_feature.StringIndexer().setInputCol("_1").setOutputCol("class").fit(wine_Vc)wine_Vc_c=stringIndexer.transform(wine_Vc)#划分训练集,测试集(trainData,testData)=wine_Vc_c.randomSplit([8.0,

2.0])#对数据进行标准化standardScaler=ml_feature.StandardScaler().setInputCol("cols").setOutputCol("cols_st").setWithMean(True).setWithStd(

True).fit(trainData)trainData_St=standardScaler.transform(trainData)testData_St=standardScaler.transform(testData)建立模型,并训练#使用逻辑回归模型,设置相关输入与参数importpyspark.ml.classificationasml_classification

clusters=ml_classification.LogisticRegression(featuresCol="cols",

#输入特征列

labelCol="class",

#目标列

predictionCol="Pred",

#输出结果列

maxIter=100,

#最大迭代次数

tol=1e-4,

#迭代停止最大误差

probabilityCol="Probability",

#输出概率列

rawPredictionCol="RawPrediction",

#预测线性组合,即逻辑方程的x

elasticNetParam=1.0,

#弹性网络混合参数,范围[0,1],0.0则完全用L2,1.0则用L1,其余取值,指定正则化L1,L2混合权重

fitIntercept=True,

#是否含有截距

standardization=True,

#训练模型前是否需要对训练特征进行标准化处理。

regParam=0.1,

#正则化参数

threshold=0.5,

#指定判断阈值,取值0.5则Probability<0.5为0类,>0.5为1类

).fit(trainData_St)模型评估#模型评估testData_St_pred=clusters.transform(testData_St)

#输出聚类中心并合并到数据表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论