banner

数据挖掘系列篇:分类算法概述

作者: afenxi来源: afenxi时间:2017-07-15 15:17:040

数据挖掘这块重点就是介绍算法和应用案例,还有相应的开发语言R、excel、mapreduce、spark。前面重点介绍了数据挖掘主要解决的几类问题,而分类问题是数据挖掘中的重头戏。

如果我们在高校里,常见的就是训练一群样本数据的特征,跑出模型,也不一定要关心它的上线模型调优的效果,也不一定要关心它的性能还有实际业务的情况。但我们在实际的业务过程中,作为算法工程师,如果要定义一个分类问题,就一定要考虑这些。真实的应用场景是什么样子,我们应用到的数据是什么,它的上游表是什么,整体的逻辑是什么。

比如我们要面临一个问题,这个人是否对汽车感兴趣。

那我们就要联想他的场景是什么,比如他在汽车论坛浏览过汽车相关的信息,或者他近3个月看过优酷的汽车广告。这个看了3次和看了10次的用户有可能就是不同强度的用户。

1.数据预处理

那么分类的第一步就是通过ETL把这些数据处理好,这个过程称之为数据预处理的过程。如准备好近3个月浏览过汽车论坛的用户数据。这个数据的前提是对数据本身比较熟悉,第二点就是处理缺失值和脏数据,比如我们常见的会通过取中位数、平均数,KNN方法或者去除掉脏数据。

比如你拿到下面的数据该怎么把重要的信息都提取出来。

数据挖掘系列篇:分类算法概述-数据分析网 2.特征工程

而紧接着就是把这些feature提取出来,处理成特征工程。这里面的特征有从最原始的log日志的提取的,也有通过模型算法计算出来的,还有离散处理的。如近3个月的浏览次数、浏览时长、近一周的浏览次数和时长。

特征工程正常占了我们70%~80%的时间工作量。

而特征的设计1.可以人工定义:理论上讲,基于给定数据集,特征设计不会增加模型输⼊入的信息量,但对给定模型来说,能⼤大幅降低模型优化的难度。良好的特征设计依赖对业务问题的深⼊入理解。2.通过deep learning:在某些领域(例如语⾳音识别、图像、NLP)效果明显,但通常需较⼤大计算量和参数调优。

在特征具体的开发中二值化、离散化、归一化等。在特征的选择上,保留相关的特征,去除掉冗余的特征。

3.模型训练

step 3模型训练,这近3个月浏览过汽车论坛的用户最后有没有下订单,样本数据关联上准备的特征进行模型训练。80%用来训练集,20%用于测试集。尽量用SQL实现,MR很多时候在代码迁移和可读性上不强。

选择的模型有LR、K-NN、bayes、DT、RF、SVM、GBDT等。

其中需要了解模型的原理是神马,模型的特性,以及实际业务的情况。比如数据大小和计算量、是否需要输出score、是否有成熟的工具等。

4.模型评估

step 4模型评估,不同的业务可能需要不同的评估指标。常用的评估指标有准确率、精确率、召回率、F值、AUC等。

5.模型上线

这里面包括模型的更新周期、模型的评估、实测的效果监控等。

来源:知乎

作者:宿痕  授权转载

原创文章,作者:数据分析侠,如若转载,请注明出处:《数据挖掘系列篇:分类算法概述》https://www.afenxi.com/post/4865

banner
看过还想看
可能还想看
热点推荐

永洪科技
致力于打造全球领先的数据技术厂商

申请试用
Copyright © 2012-2024开发者:北京永洪商智科技有限公司版本:V10.2
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限