手写李航《统计学习方法》书中全部算法
用Python手写实现(矩阵计算和导数计算使用轮子)了李航《统计学习方法》中绝大部分可以实现的内容。除极少数还未完成内容已列出外,其他内容已全部完成。
第02章 感知机
【算法 2.1】感知机学习算法的原始形式(原生Python实现)
【算法 2.2】感知机学习算法的对偶形式(原生Python实现)
第03章 k近邻法
【算法 3.1】k近邻计算(原生Python+sklearn的kd树实现)
简单交叉验证选择KNN分类器(原生Python+sklearn的KNN分类器)
S折交叉验证选择KNN分类器(原生Python+sklearn的KNN分类器)
第04章 朴素贝叶斯法
第05章 决策树
【算法 5.2】ID3算法生成决策树-不剪枝(原生Python实现)
【算法 5.3】C4.5的生成算法-不剪枝(原生Python实现)
【算法 5.4】ID3算法生成决策树-剪枝(原生Python实现)
【算法 5.4】C4.5的生成算法-剪枝(原生Python实现)
CART回归树的生成(原生Python实现)-待实现
CART分类树的生成(原生Python实现)-待实现
第06章 逻辑斯谛回归与最大熵模型
【算法 6.1】IIS算法实现的最大熵模型(原生Python实现)
【算法 6.2】拟牛顿法实现的最大熵模型(原生Python实现)
第07章 支持向量机
【算法 7.5】SMO实现的线性&非线性支持向量机(原生Python实现)
第08章 提升方法
【算法 8.1】AdaBoost算法(原生Python实现)
【算法 8.3】回归问题的提升树算法(原生Python实现)
第09章 EM算法及其推广
【算法 9.2】EM算法实现的高斯混合模型(原生Python实现)
第10章 隐马尔可夫模型
【算法 10.2】观测序列概率的前向算法(原生Python实现)
【算法 10.3】观测序列概率的后向算法(原生Python实现)
【算法 10.4】Baum-Welch算法实现的HMM模型学习(原生Python实现)
【算法 10.5】维特比算法实现的HMM模型预测(原生Python实现)
第11章 条件随机场
【算法 11.1】IIS算法实现的条件随机场模型(原生Python实现)
【算法 11.2】拟牛顿法实现的条件随机场模型(原生Python实现)
【算法 11.3】条件随机场预测的维特比算法(原生Python实现)
第14章 聚类方法
计算马哈拉诺比斯距离矩阵(原生Python+numpy矩阵计算实现)
计算类的样本散布矩阵与样本协方差矩阵(原生Python+numpy矩阵计算实现)
第15章 奇异值分解
第16章 主成分分析
相关矩阵的特征值分解实现的主成分分析算法(原生Python实现)
【算法 16.1】数据矩阵的奇异值分解实现的主成分分析算法(原生Python+numpy矩阵计算实现)
第17章 潜在语义分析
奇异值分解实现的潜在语义分析算法(原生Python+numpy矩阵计算实现)
【算法 17.1 (按式17.24和式17.25更新)】使用平方损失函数的非负矩阵分解算法(原生Python+numpy矩阵计算实现)
【算法 17.1 (按式17.26和式17.27更新)】使用散度损失函数的非负矩阵分解算法(原生Python+numpy矩阵计算实现)
第18章 概率潜在语义分析
【算法 18.1】EM算法实现的概率潜在语义模型(原生Python实现)
第19章 马尔可夫链蒙特卡罗法
迭代法求离散有限状态马尔可夫链的平稳分布(原生Python+numpy矩阵计算实现)
遍历定理求离散有限状态马尔可夫链的平稳分布(原生Python实现)
【算法 19.2】Metropolis-Hastings算法(原生Python+numpy正态分布抽样实现)
单分量Metropolis-Hastings算法(原生Python+numpy正态分布抽样实现)
【算法 19.3】二元正态分布的吉布斯抽样算法(原生Python+numpy正态分布抽样实现)
第20章 潜在狄利克雷分配
【算法 20.2】吉布斯抽样算法实现的LDA模型(原生Python实现)
【算法 20.5】变分EM算法实现的LDA模型(原生Python实现)-待实现
第21章 PageRank算法
迭代法计算基本定义的PageRank(原生Python+numpy矩阵计算实现)
【算法 21.1】迭代法计算一般定义的PageRank(原生Python+numpy矩阵计算实现)
【算法 21.2】幂法计算一般定义的PageRank(原生Python+numpy矩阵计算实现)
代数算法计算一般定义的PageRank(原生Python+numpy矩阵计算实现)
附录A 梯度下降法
【算法 A.1(通常称为最速下降法)】最速下降法(原生Python+scipy导数计算实现)
附录B 牛顿法和拟牛顿法
【算法 B.1】牛顿法(原生Python+scipy导数计算实现)
【算法 B.2】DFP算法的拟牛顿法(原生Python+scipy导数计算实现)
【算法 B.3】BFGS算法的拟牛顿法(原生Python+scipy导数计算实现)
使用Sherman-Morrison公式的BFGS算法的拟牛顿法(原生Python+scipy导数计算实现)
Broyden算法的拟牛顿法(原生Python+scipy导数计算实现)
如果你认为还是更多值得实现的内容,或认为有更好的实现方法,都欢迎反馈给我,我会慢慢优化的。