数据挖掘这块重点就是介绍算法和应用案例,还有相应的开发语言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.模型上线
这里面包括模型的更新周期、模型的评估、实测的效果监控等。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。