入门项目回顾

和三位小伙伴一起做了一个Credit Fraud Detection的项目。数据是Kaggle上的数据,主要是用supervised learning 来解决fraud的(多)分类问题。

这个项目有两个重点:数据处理,算法实现。

因为这是Spark的入门项目,主要的精力放在用PySpark处理数据,并调包mllib里的模型来做预测,模型调试只用了简单的超参数调试(水)。总结来说就是重点不在于模型,主要是熟悉pyspark。

 

前期我以为是要打kaggle比赛了非常兴奋,准备学习著名Catboosting, XgBoost等知名boosting forest的算法。但是由于重心在于分布式处理,最后还是回归到Pyspark的学习。

我们做的工作有:

1. 数据处理:

0 数据观察:数据组成/数据含义/数据情况,分布,缺失值数目/有效特征/drop的数据

1.1 特征筛选:按相关性筛选特征

1.2 缺失值填补

1.3 Categorical data的处理

1.4 PCA(得出PCA特征提取以后模型表现不变的结论)

1.5 Pyspark的pipeline

2. 模型实现: 调用了四个包,学着用了一下cross-validation自动寻找最优参数组合。

3. Spark local模式的性能实验:dataset size & Processing Time; Executor Number & Processing Time; Core Number & Processing Time. (三个结论)

 

总结来说可提升的点有:

0 可视化数据观察信息

1.1 其它特征筛选手段,比如其它相关性计算方法,按熵来排序特征值的重要度。

1.2/3 数据处理:缺失值处理,针对数据类型做不同的处理

1.4 降低数据大小的手段:SVM降维,PCA特征提取

1.5 Pipeline和非pipeline的区别在于?

2 精细化调试模型,比如复现已发表论文。数据特征的选取对应不同模型貌似是不一样的。

3. 这个性能测试。。只能说是对应spark命题作业写的流水日记了。其实并没有看出spark的优越性,对spark的特质还是没有了解。但是操作系统相关的知识倒是有所涉及,这是CPU并行效率的问题吧。

4. 论文撰写的时候latex排版没有分层,overleaf团队协作比较好。大家对整个流程其实没有很熟悉,很多知识点和应有的解释、对比、阐述是缺失的,比如四种模型的比较分析,还有各个环节手段的literature review。但是大家都不想写啦。。我也溜溜。这次因为其它事情的干扰我摸鱼了,代码没怎么写,这是不对滴。下次要主动搭建代码框架啦!

上一篇:SQL Server Governer 控制资源的使用


下一篇:Processing多窗口程序范例(三)