您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



  要资料 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 讲座吧   专家招募  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
如何使用Spark MLlib 构建分类模型 ?
 
来源:搜狐 发布于: 2017-4-10
 

分类模型的场景:

1.预测互联网用户对在线广告的点击概率(二分类问题);2.检测欺诈(二分类问题,欺诈或者不欺诈);3.预测拖欠贷款(二分类问题);4.对图片、音频、视频进行分类(多分类问题);5.对新闻、网页或者其他内容进行分类或者打标签(多分类);6.发现垃圾邮件、垃圾页面、网络入侵和其他恶意行为 ;7.检测故障,比如计算机系统或者网络故障检测;8.预测顾客或者客户中谁有可能停止使用某个产品或服务。

分类模型的种类:

1.线性模型

原理:对样本的预测结果(目标变量)进行建模,即对输入特征应用简单的线性预测函数。

1.1 逻辑回归

1.2 线性支持向量机

2.朴素贝叶斯模型(前提:假设各个特征之间条件独立)

3.决策树模型

三种分类模型的决策函数:

  

MLlib构建分类模型如何使用?

1.从数据集中抽取合适的特征

MLlib中的分类模型通过LabelPoint对象操作,其中了目标变量(Label)与特征向量:

case class LabePoint(label : Double, features : Vector)

待训练数据:

val data = records.map{ r => ... LabelPoint(lable, Vectors.dense(features)) }

2.训练分类模型

2.1 训练线性回归模型:

2.2 训练SVM模型

2.3 训练NaiveBays模型

2.4 训练决策树模型

3.使用分类模型预测

val prediction = xxModel.predict(dataPoint.features)

注意:逻辑回归、SVM、NaiveBays在二分类中的预测值为1 或 0,但决策树的预测值为0到1之间的实数,使用时需要使用阈值判断。

  

评估分类模型的性能

通常在二分类中使用的评估方法包括:预测正确率与错误率、准确率与召回率、准确率-召回率下方的面积、ROC曲线、ROC曲 线下的面积和F-Measure。

?错误率:训练样本中被错误分类的数目除以样本总数? 准确率(Precision) = 系统检索到的相关文件 / 系统所有检索到的文件总数(搜索引擎)? 召回率(Recall) = 系统检索到的相关文件 / 系统所有相关的文件总数(搜索引擎)

通常,准确率和召回率地负相关,高准确率常常对应低召回率,反之亦然。如果两者都低,说明模型出了问题。

不同场景下准确率和召回率的要求不同,如果是做搜索,那就是保证召回的情况下提升准确率(宁可错判,不能漏判);如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回(宁可漏判,不能错判)。

ROC(Receiver Operating Characteristic)曲线:

真阳性率:真阳性的样本数 / (真阳性 + 假阴性样本数之和)假阳性率:假阳性的样本数 / (假阳性 + 真阴性样本数之和)AUC:ROC下的面积(AUC为1.0时表示一个完美的分类器,0.5表示一个随机的性能)

  

说明:

用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。

于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。

通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。

P/R和ROC是两个不同的评价指标和计算方式,一般情况下,检索用前者,分类、识别等用后者。

AP是为解决P,R,F-measure的单点值局限性的。为了得到 一个能够反映全局性能的指标,可以看考察下图。

  

可以看出,虽然两个系统的性能曲线有所交叠但是以圆点标示的系统的性能在绝大多数情况下要远好于用方块标示的系统。从中我们可以 发现一点,如果一个系统的性能较好,其曲线应当尽可能的向上突出。

更加具体的,曲线与坐标轴之间的面积应当越大。最理想的系统, 其包含的面积应当是1。

如何提升模型的性能?

1.特征标准化

原始数据标准化后特征满足正态分布,即每个特征是0均值和单位标准差,方法:

标准化工具:

Spark的StandardScaler方法,

  

2.对类别特征使用 1-of-k编码

例如:某个特征有10个类别,则需创建一个长为10的向量,然后根据样本所属类别索引,将对应的维度赋值1,其他为0。

3.模型参数调优

根据不同模型训练时使用的不同参数,利用上一页模型性能评价指标,训练出最佳的模型。

4.交叉验证

原理:测试模型在未知数据上的性能

方式:将数据随机的分为训练集和测试集,常用分法50/50、60/40、80/20。

   
 订阅
  捐助
相关文章 相关文档 相关课程



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
 

APP推广之巧用工具进行数据分析
Hadoop Hive基础sql语法
应用多级缓存模式支撑海量读服务
HBase 超详细介绍
HBase技术详细介绍
Spark动态资源分配
更多...   

Hadoop与Spark大数据架构
Hadoop原理与高级实践
Hadoop原理、应用与优化
大数据体系框架与应用
大数据的技术与实践
Spark大数据处理技术

领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...   
 
 
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号