这是我在2015年高德负责P6晋升评审为团队成员准备的要点,整理下。前端
框架优劣,实现方式,性能对比python
在没索引的维度较慢
阿里生态圈的喜与优web
外网工具丰富算法
web工做台
运维控制台
可靠工做流网络
闭门造车,轮子过期
须要多部门协助架构
采集 — 收容 — 计算 — 导出 — 存储 — 服务 — 前端框架
全部功能部署一块儿,ORM 是核心运维
拆分应用, MVC 是核心dom
核心业务抽取复用, RPCscrapy
提升机器利用率, SOA
清洗 :
脏数据 (乱码,机型非法取值)
空缺值(日志记录不规范,常常出现某些平台字段为空)
噪声 (取值非法)
分箱
离群挖掘
回归
集成:
冗余属性 (重复字段,同一字段命名不一样)
数值冲突检测( 单位不一样,字段长度不一样)
变换:
归一化
投影 (PCA)
归约
数据压缩 (空间索引,小波变换,PCA,回归,几率分布模型,粗糙集,采样)
维度规约 特征提取
离散化 值区间
SVM
随机森林
GBDT
神经网络
基于划分
Kmean
KMeoid
EM
基于密度
DBScan
Optics
基于层次
自顶向下
自底向上
基于栅格
String
WaveCluster
线性回归
逻辑回归
FPGrowth
Aprioi
元胞自动机
空间尺度变化模型
空间自回归(SAR)
层次贝叶斯
规则扫描
数据规则
业务规则
白盒测试
MR 单元测试
MR 集成测试
MR 性能测试
Job 监控
Job 性能
Job 配置
Job 报警
算法收益对比
可视化对比工具
收益统计工具
AB Test
高效,可靠,分布式的数据服务
日志监控
日志回流
整个工做流最核心的一步,根据现有数据选择算法,生成训练模型。主要是算法选择和参数调整
算法的选择,须要对算法性能和精度以及编码实现难度进行衡量和取舍。 (甚至算法工具箱对数据集的限制状况都是算法选择考虑的内容) 实际工程上,不考虑算法复杂度超过O(N^2)的算法。Java的Weka和Python的Scipy是很好的数据挖掘分析工具。
参数调整。这是一门神奇的技能,只能在实际过程当中体会。
这一步主要是针对监督算法(分类,回归),为了防止模型的Overfit,须要测试算法模型的覆盖能力和性能。方法包括Holdout,还有random subsampling.
非监督算法(聚类),采用更加具体的指标,包括熵,纯度,精度,召回等。
数据挖掘不是一个静态的过程,须要不断对模型从新评估,衡量,修正。算法模型的生命周期也是一个值得探讨的话题。