一、开发技能
a、IDE
vim、tmux、ctags
b、语言
shell、awk
python
c、框架
django
Flask
d、各种数据访问
mysql、hadoop、redis、mns、mongo
e、运维常用:
命令:ssh、pip(Python),apt-get, wget
工具:supervisor
二、机器学习技能
a.机器学习语言、工具
1.spark(数据提取)
2.sklearn(机器学习)
3.numpy(sklearn的输入输入是numpy的矩阵,其基于scipy实现)
4.scipy(矩阵计算,统计分析,sklearn的某些输入输出是scipy的矩阵)
5.文本处理
@jieba分词
@word2vec
b、模型:特征工程
1.预处理(缺失值、异常值)
2.特征离散化(等宽、等频、分桶的woe值,onehot)
3.组合特征(GDBT、决策树)
4.降维度(PCA、LDA)
c、模型:理论
1.模型假设(特征分布)
2.模型使用范围(数据规模,特征数量,运算时间)
3.模型调参(网格搜索)
4.深度调优(训练过程中的终止或变化迭代方法)
通过 “学习曲线、验证曲线” 判断过拟合、欠拟合,通过网格搜索调优(基于sklearn):http://blog.csdn.net/xlinsist/article/details/51344449
5.去除过拟合: http://www.cnblogs.com/jianxinzhou/p/4083921.html
特征选择:减少过拟合特征
正则化(思路):简单的是最好-》降低过度训练的参数的权重-》特征损失函数加入 k*L(Q),Q为参数向量,k为参数(需要尝试调优:过大欠拟合,过小过拟合),L可以选择(L0、L1、L2):
L0、L1、L2的区别:http://blog.csdn.net/zouxy09/article/details/24971995/
L0增加的部分:num_of_0_in_para(Q) 参数为零的部分
L1增加的部分:sum(abs(Q))参数绝对值之和,abs绝对值
L2增加的部分:k*sum(sqrt(Qj) k*sum(sqrt(Qj)) ;参数平方和,sum为求总和,sqrt为求平方,Qj为第j个参数j}
L1、L2较为常用
5、模型评价:
准确、召回
AUC、KS
6.模型集成:boosting(http://baike.baidu.com/link?url=jOtFwZPMH2bl9e6H16_0Vwga6xE0iCpk3tNNdqJNFe0OGGtgVIE1izxBIfQEU5Clu2RvLR9_CwFJJysRd5as-wLFbeZVPZY2VcsA3NpfCby)
6.一些综述性的文章
提高准确性的方法: http://developer.51cto.com/art/201601/504833.htm
1.数据;2缺失值与异常值处理;3特征工程;4特征选择 5使用多种算法(选择合适的模型)6算法的调整(模型调参);7集成模型;8较差验证;
三、项目管理:trello