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

一、开发技能

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

你可能感兴趣的:(机器学习)