作者华校专,曾任阿里巴巴资深算法工程师、智易科技首席算法研究员,现任腾讯高级研究员,《Python 大战机器学习》的作者。
这是作者多年以来学习总结的笔记,经整理之后开源于世。目前还有约一半的内容在陆续整理中,已经整理好的内容放置在此。 曾有出版社约稿,但是考虑到出版时间周期较长,而且书本购买成本高不利于技术广泛传播,因此作者采取开源的形式。 笔记内容仅供个人学习使用,非本人同意不得应用于商业领域。
笔记内容较多,可能有些总结的不到位的地方,欢迎大家探讨。联系方式:huaxz1986@163.com qq: 525875545
另有个人在 github 上的一些内容:
- “《算法导论》的C++实现”代码:https://github.com/huaxz1986/cplusplus-_Implementation_Of_Introduction_to_Algorithms
- 《Unix 环境高级编程第三版》笔记:https://github.com/huaxz1986/APUE_notes
20200601 修订
- Graph Embedding 章节新增:NetMF、NetSMF、PTE、HNE、AANE 五个模型的内容。 另外 graph embedding 章节庞大, 已经拆分为两个子章节
- 新增传统推荐算法章节, 包括:ItemBasedCF、Amazon I-2-I CF、 Slope One Rating Based CF、Bipartite Network Projection、Implicit Feedback CF、PMF、SVD++、MMMF、OCCF、BPR 等十余个模型
20200405 修订
- 图神经网络:图神经网络章节新增:GNN、GCN、FastGCN、Semi-Supervised GCN、分子指纹GCN、GGS-NN、PATCHY-SAN、GraphSage、GAT 九个模型的内容
- Graph Embedding:Graph Embedding 章节新增:metapath2vec、GraphGAN、struc2vec、GraphWave 四个模型的内容
20200112 修订
- Graph Embedding:Graph Embedding 章节 新增:DeepWalk, LINE, GraRep, TADW, DNGR, Node2Vec, WALKLETS, SDNE, CANE, EOE 十个模型的内容
20191201 修订
- CTR 预估模型:神经网络模型 章节 新增:DSSM、FNN、PNN、DeepCrossing、Wide&Deep、DCN、DeepFM、NFM、AFM、xDeepFM、ESMM、DIN、DIEN、DSIN、DICM 十五个模型的内容
20190928 修订
- 最优化章节新增在线学习优化算法 online learning
- 新增章节 传统 CTR 预估算法:LR 模型、POLY2 模型、FM 模型、FFM 模型、GBDT-LR 模型、FTRL 模型、LS-PLM 模型
- RNN 章节 微调图片格式
20190825 修订
- Transformer 章节 新增:Transformer-XL, XLNet, MT-DNN, ERNIE, ERNIE 2.0, BERT_wwm_ext, RoBERTa 内容
20190802 修订
- 调整循环神经网络章节的内容
- 新增 Transformer 章节
- 新增 词向量 章节
数学基础
- 1.线性代数基础
- 一、基本知识
- 二、向量操作
- 三、矩阵运算
- 四、特殊函数
- 2.概率论基础
- 一、概率与分布
- 二、期望和方差
- 三、大数定律及中心极限定理
- 五、常见概率分布
- 六、先验分布与后验分布
- 七、信息论
- 八、其它
- 3.数值计算基础
- 一、数值稳定性
- 二、梯度下降法
- 三、二阶导数与海森矩阵
- 四、牛顿法
- 五、拟牛顿法
- 六、 约束优化
- 4.蒙特卡洛方法与 MCMC 采样
- 一、蒙特卡洛方法
- 二、马尔可夫链
- 三、MCMC 采样
统计学习
- 0.机器学习简介
- 一、基本概念
- 二、监督学习
- 三、机器学习三要素
- 1.线性代数基础
- 一、线性回归
- 二、广义线性模型
- 三、对数几率回归
- 四、线性判别分析
- 五、感知机
- 2.支持向量机
- 一、 线性可分支持向量机
- 二、线性支持向量机
- 三、非线性支持向量机
- 四、支持向量回归
- 五、SVDD
- 六、序列最小最优化方法
- 七、其它讨论
- 3.朴素贝叶斯
- 一、贝叶斯定理
- 二、朴素贝叶斯法
- 三、半朴素贝叶斯分类器
- 四、其它讨论
- 4.决策树
- 一、 原理
- 二、 特征选择
- 三、生成算法
- 四、剪枝算法
- 五、CART 树
- 六、连续值、缺失值处理
- 七、多变量决策树
- 5.knn
- 一、k 近邻算法
- 二、 kd树
- 6.集成学习
- 一、集成学习误差
- 二、 Boosting
- 三、Bagging
- 四、集成策略
- 五、多样性分析
- 7.梯度提升树
- 一、提升树
- 二、xgboost
- 三、LightGBM
- 8.特征工程
- 一、缺失值处理
- 二、特征编码
- 三、数据标准化、正则化
- 四、特征选择
- 五、稀疏表示和字典学习
- 六、多类分类问题
- 七、类别不平衡问题
- 9.模型评估
- 一、泛化能力
- 二、过拟合、欠拟合
- 三、偏差方差分解
- 四、参数估计准则
- 五、泛化能力评估
- 六、训练集、验证集、测试集
- 七、性能度量
- 七、超参数调节
- 八、传统机器学习的挑战
- 10.降维
- 一、维度灾难
- 二、主成分分析 PCA
- 三、核化线性降维 KPCA
- 四、流形学习
- 五、度量学习
- 六、概率PCA
- 七、独立成分分析
- 八、t-SNE
- 九、LargeVis
- 11.聚类
- 一、性能度量
- 二、原型聚类
- 三、密度聚类
- 四、层次聚类
- 五、谱聚类
- 12.半监督学习
- 半监督学习
- 一、生成式半监督学习方法
- 二、半监督 SVM
- 三、图半监督学习
- 四、基于分歧的方法
- 五、半监督聚类
- 六、 总结
- 13.EM算法
- 一、示例
- 二、EM算法原理
- 三、EM算法与高斯混合模型
- 四、EM 算法与 kmeans 模型
- 五、EM 算法的推广
- 14.最大熵算法
- 一、最大熵模型MEM
- 二、分类任务最大熵模型
- 三、最大熵的学习
- 15.隐马尔可夫模型
- 一、隐马尔可夫模型HMM
- 二、 HMM 基本问题
- 三、 最大熵马尔科夫模型MEMM
- 16.概率图与条件随机场
- 一、概率图模型
- 二、贝叶斯网络
- 三、马尔可夫随机场
- 四、条件随机场 CRF
- 17.边际概率推断
- 一、精确推断
- 二、近似推断
- 18.主题模型
- 一、Unigram Model
- 二、pLSA Model
- 三、LDA Model
- 四、LDA优化
- 五、sentence-LDA
- 六、模型讨论
深度学习
- 0.深度学习简介
- 一、 介绍
- 二、历史
- 1.深度前馈神经网络
- 一、基础
- 二、损失函数
- 三、输出单元
- 四、隐单元
- 五、结构设计
- 六、历史小记
- 2.反向传播算法
- 一、链式法则
- 二、反向传播
- 三、算法实现
- 四、自动微分
- 3.正则化
- 一、参数范数正则化
- 二、显式约束正则化
- 三、数据集增强
- 四、噪声鲁棒性
- 五、早停
- 六、参数相对约束
- 七、dropout
- 八、对抗训练
- 九、正切传播算法
- 十、其它相关
- 4.最优化基础
- 一、代价函数
- 二、神经网络最优化挑战
- 三、 mini-batch
- 四、基本优化算法
- 五、自适应学习率算法
- 六、二阶近似方法
- 七、共轭梯度法
- 八、优化策略和元算法
- 九、参数初始化策略
- 十、Normalization
- 十一、Online Learning
- 5.卷积神经网络
- 一、卷积运算
- 二、卷积层、池化层
- 三、基本卷积的变体
- 四、应用
- 五、 历史和现状
- 5.1.CNN之图片分类
- 一、LeNet
- 二、AlexNet
- 三、VGG-Net
- 四、Inception
- 五、ResNet
- 六、ResNet 变种
- 七、SENet
- 八、 DenseNet
- 九、小型网络
- 6.循环神经网络
- 一、RNN计算图
- 二、训练算法
- 三、长期依赖
- 四、常见 RNN 变种
- 7.Transformer
- 一、Transformer
- 二、Universal Transformer
- 三、Transformer XL
- 四、GPT
- 五、BERT
- 六、ERNIE
- 七、XLNet
- 八、MT-DNN
- 九、BERT 扩展
- 8.词向量
- 一、向量空间模型 VSM
- 二、LSA
- 三、Word2Vec
- 四、GloVe
- 五、FastText
- 六、ELMo
- 七、变种
- 9.传统 CTR 预估模型
- 一、LR 模型
- 二、POLY2 模型
- 三、FM模型
- 四、FFM模型
- 五、GBDT-LR 模型
- 六、FTRL模型
- 七、LS-PLM 模型
- 10.神经网络 CTR 预估模型
- 一、DSSM
- 二、FNN
- 三、PNN
- 四、DeepCrossing
- 五、Wide&Deep
- 六、DCN
- 七、DeepFM
- 八、NFM
- 九、AFM
- 十、xDeepFM
- 十一、ESMM
- 十二、DIN
- 十三、DIEN
- 十四、DSIN
- 十五、DICM
- 11.Graph Embedding
- 一、DeepWalk
- 二、LINE
- 三、GraRep
- 四、TADW
- 五、DNGR
- 六、Node2Vec
- 七、WALKLETS
- 八、SDNE
- 九、CANE
- 十、EOE
- 十一、metapath2vec
- 十二、GraphGAN
- 十三、struc2vec
- 十四、GraphWave
- 十五、NetMF
- 十六、NetSMF
- 12.Graph Embedding(续)
- 十七、PTE
- 十八、HNE
- 十九、AANE
- 13.图神经网络
- 一、GNN
- 二、GCN
- 三、Fast GCN
- 四、Semi-Supervised GCN
- 五、分子指纹GCN
- 六、GGS-NN
- 七、PATCHY-SAN
- 八、GraphSage
- 九、GAT
- 14.传统推荐算法
- 一、Tapestry
- 二、GroupLens
- 三、ItemBased CF
- 四、Amazon I-2-I CF
- 五、Slope One Rating-Based CF
- 六、Bipartite Network Projection
- 七、Implicit Feedback CF
- 八、PMF
- 九、SVD++
- 十、MMMF 扩展
- 十一、OCCF
- 十二、BPR
- 15.工程实践指导原则
- 一、性能度量
- 二、默认的基准模型
- 三、决定是否收集更多数据
- 四、选择超参数
- 五、调试策略
- 六、示例:数字识别系统
- 七、数据预处理
- 八、变量初始化
- 九、结构设计
工具
CRF
- CRF++
- 一、安装
- 二、使用
- 三、Python接口
- 四、常见错误
lightgbm
- lightgbm使用指南
- 一、安装
- 二、调参
- 三、进阶
- 四、API
- 五、Docker
xgboost
- xgboost使用指南
- 一、安装
- 二、调参
- 三、外存计算
- 四、 GPU计算
- 五、单调约束
- 六、 DART booster
- 七、Python API
scikit-learn
- 1.预处理
- 一、特征处理
- 二、特征选择
- 三、字典学习
- 四、PipeLine
- 2.降维
- 一、PCA
- 二、MDS
- 三、Isomap
- 四、LocallyLinearEmbedding
- 五、FA
- 六、FastICA
- 七、t-SNE
- 3.监督学习模型
- 一、线性模型
- 二、支持向量机
- 三、贝叶斯模型
- 四、决策树
- 五、KNN
- 六 、AdaBoost
- 七、梯度提升树
- 八、Random Forest
- 4.模型评估
- 一、数据集切分
- 二、性能度量
- 三、验证曲线 && 学习曲线
- 四、超参数优化
- 5.聚类模型
- 一、KMeans
- 二、DBSCAN
- 三、MeanShift
- 四、AgglomerativeClustering
- 五、BIRCH
- 六、GaussianMixture
- 七、SpectralClustering
- 6.半监督学习模型
- 一、标签传播算法
- 7.隐马尔可夫模型
- 一、Hmmlearn
- 二、seqlearn
spark
- 1.基础概念
- 一、核心概念
- 二、安装和使用
- 三、 pyspark shell
- 四、独立应用
- 2.rdd使用
- 一、概述
- 二、创建 RDD
- 三、转换操作
- 四、行动操作
- 五、其他方法和属性
- 六、持久化
- 七、分区
- 八、混洗
- 3.dataframe使用
- 一、概述
- 二、SparkSession
- 三、DataFrame 创建
- 四、 DataFrame 保存
- 五、DataFrame
- 六、Row
- 七、Column
- 八、GroupedData
- 九、functions
- 4.累加器和广播变量
- 一、累加器
- 二、广播变量
numpy
- numpy 使用指南
- 一、 ndarray
- 二、 ufunc 函数
- 三、 函数库
- 四、数组的存储和加载
scipy
- scipy 使用指南
- 一、 常数和特殊函数
- 二、 拟合与优化
- 三、线性代数
- 四、 统计
- 五、数值积分
- 六、 稀疏矩阵
matplotlib
- matplotlib 使用指南
- 一、matplotlib配置
- 二、 matplotlib Artist
- 三、基本概念
- 四、布局
- 五、 Path
- 六、 path effect
- 七、坐标变换
- 八、 3D 绘图
- 九、技巧
pandas
- pandas 使用指南
- 一、基本数据结构
- 二、 内部数据结构
- 三、 下标存取
- 四、 运算
- 五、变换
- 六、数据清洗
- 七、 字符串操作
- 八、 聚合与分组
- 九、时间序列
- 十、 DataFrame 绘图
- 十一、 移动窗口函数
- 十二、 数据加载和保存