spark MLlib中分类算法的具体操作

本文介绍了Spark MLlib中两种分类算法的应用:逻辑斯蒂回归和决策树。以鸢尾花数据集为例,详细阐述了如何使用二项逻辑斯蒂回归解决二分类问题,包括数据预处理、模型训练、评估和模型保存。同时,解释了决策树的学习过程,包括特征选择、树的生成和剪枝,同样展示了在iris数据集上的应用及效果评估。
摘要由CSDN通过智能技术生成

一、逻辑斯蒂回归分类器

逻辑斯蒂回归(logistic regression)是统计学习中的经典分类方法,属于对数线性模型。logistic回归的因变量可以是二分类的,也可以是多分类的。

 

任务描述:以iris数据集(iris)为例进行分析(iris下载地址:http://dblab.xmu.edu.cn/blog/wp-content/uploads/2017/03/iris.txt

iris以鸢尾花的特征作为数据来源,数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中非常常用的测试集、训练集。为了便于理解,这里主要用后两个属性(花瓣的长度和宽度)来进行分类。

1、用二项逻辑斯蒂回归来解决二分类问题

首先我们先取其中的后两类数据,用二项逻辑斯蒂回归进行二分类分析

(1)导入需要的包

import org.apache.spark.sql.Row
import org.apache.spark.sql.SparkSession
import org.apache.spark.ml.linalg.{Vector,Vectors}
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.ml.{Pipeline,PipelineModel}
import org.apache.spark.ml.feature.{IndexToString, StringIndexer, VectorIndexer,HashingTF, Tokenizer}
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.classification.LogisticRegressionModel
import org.apache.spark.ml.classification.{BinaryLogisticRegressionSummary, LogisticRegression}
import org.apache.spark.sql.functions;

(2)读取数据,简要分析

import spark.implicits._
case class Iris(features: org.apache.spark.ml.linalg.Vector, label: String)
val data = spark.sparkContext.
      textFile("file:///home/GHL/software/spark/data/mllib/iris.txt").
      map(_.split(",")).
      map(p => Iris(| Vectors.dense(p(0).toDouble,p(1).toDouble,p(2).toDouble,p(3).toDouble,p(4).toString()))).toDF()
data.show()

因为我们现在处理的是2分类问题,所以我们不需要全部的3类数据,我们要从中选出两类的数据

首先把刚刚得到的数据注册成一个表iris,注册成这个表之后,我们就可以通过sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值