Skip to content

SunJingpeng6/MachineLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MachineLearning


HMM.py 隐马尔科夫模型,数学推导见李航《统计学习方法》 第10章 代码实现HMM的3个基本问题步骤

  1. 概率计算问题:前向-后向算法——动态规划 给定模型λ=(pi, A , B) , 和观测序列 O ,计算模型λ下观测序列O出现的概率P(O| λ)
  2. 学习问题:Baum-Welch算法(状态未知)——EM 已知观测序列 O ,估计模型λ = (pi, A , B)的参数,使得在该模型下观测序列P(O|λ)最大
  3. 预测问题:Viterbi算法——动态规划 解码问题:已知模型λ = (pi, A , B)和观测序列 O 求给定观测序列条件概率P(I|O, λ )最大的状态序列I

perceptron.py

感知机学习算法的原始形式

具体推导过程见李航《统计学习方法》第2章感知机 2.3.1 感知机学习算法的原始形式

tips:

  1. 感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出 为实例的类别,取+1和–1二值。
  2. 当训练数据集是线性可分的,感知机算法的原始形式是收敛的。

perceptron_duality.py

感知机学习算法的对偶形式

具体推导过程见李航《统计学习方法》第2章感知机 2.3.3 感知机学习算法的对偶形式 对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中实例间的 内积计算出来并以矩阵的形式存储,这个矩阵就是Gram矩阵。


kNN.py

k近邻算法

分类时,对新的实例,根据其k个最近邻的训练实例的类别, 通过多数表决等方式进行预测。 具体推导过程见李航《统计学习方法》第3章 k近邻法 3.2 k近邻模型


kd_tree.py

kd tree 最近邻搜索

具体推导过程见李航《统计学习方法》第3章 k近邻法 3.3 k近邻法的实现:kd树 kd树是二叉树,表示对k维空间的一个划分,其每个结 点对应于k维空间划分中的一个超矩形区域。利用kd树可以省去对大部分数据点的搜索, 从而减少搜索的计算量。


naive_bayes.py

朴素贝叶斯方法分类

参见李航 统计学习方法 第4章 朴素贝叶斯法

朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。 对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布; 然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。


GaussionNB.py

高斯朴素贝叶斯分类

高斯贝叶斯用来处理连续数据,假设在已经知道数据类别的条件下,数据每个特征独立服从某一高斯分布


decision_tree.py

决策树分类与回归

参见李航 统计学习方法 第5章 决策树


logistic_regression.py

逻辑回归

参见 李航 第6章 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型

这里采用梯度下降求取似然函数的最大值


adaboost.py

提升方法

参见 李航 第8章 提升方法 8.1 提升方法AdaBoost算法


gradient_boosting.py

梯度提升方法

参见 李航 第8章 提升方法 8.4.3 梯度提升

回归树的损失函数为 平方损失 分类树的损失函数为 交叉熵


random_forest.py

随机森林 分类

随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。


k_means.py

典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。

该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

k个初始类聚类中心点的选取对聚类结果具有较大的影响。


gaussians_mixture_model.py

多维高斯混合模型 聚类 EM算法

参见 李航 第9章 EM算法及其推广 9.3 EM算法在高斯混合模型学习中的应用


stack.py

集成学习方法 stacking

将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。

同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。


housepriceStacking.py

集成学习方法

将训练好的所有基模型对训练基进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。

同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。

About

机器学习常见算法

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages