机器学习: linux开发技能树(及相关资料,逐步更新)

2019-07-12 20:17发布

一、开发技能 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