Skip to content

为了深入了解一些机器学习算法,把一些经典算法的代码都过一遍。包括决策树、集成学习(Adaboost、GBDT、XgBoost、RandomForest)、支持向量机、EM算法(GMM)、极大似然估计、降维算法(PCA、LDA、T-SNE)、聚类算法(K-Mean)、kNN。

Notifications You must be signed in to change notification settings

Wanncye/MachineLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

我发现只看机器学习原理,存在两个问题:

  • 1.有些算法的原理难以理解
  • 2.就算理解了,也不知道实现思路,只能当个调包侠

因此,决定借鉴一下别人实现的代码,看看具体的实现思想,也方便更加深入的理解这些机器学习算法。所以,这个仓库适合对下列算法有一定基础了解的,但是对代码实现不清楚的朋友。其中包括:

如何做特征选择?如何做分类?

只实现了ID3算法,其他两种C4.5,CART在计算增益这一块用的是不同的指标。 这里列出三种决策树的区别

3.XgBoost:https://blog.csdn.net/slx_share/article/details/82389343,公式推导我觉得讲的最详细的是这篇文章

Xgboost的目标函数、公式推导、GBDT与Xgboost的区别、Xgboost的正则化原理,这些都是需要掌握的问题。

RF为什么要随机抽样?又为什么做有放回的采样?

权值更新的方法、为什么能快速收敛、优缺点

6.SVM:https://vimsky.com/article/222.html,实现的是HingeLoss版本的SVM

什么叫硬间隔?什么叫软间隔?SVM为什么采用间隔最大化?为什么使用核函数?

MLE、MAP、贝叶斯估计之间的区别与联系,说老实话,贝叶斯估计没看懂

这个给的链接库其实已经有好多写好了的算法,也是可以借鉴的。E-step:在已知均值和方差的情况下,判断样本来自第K个模型的概率;M-step:在得知样本来自哪个模型之后,可以通过MLE来估计高斯分布的均值和方差。如此循环,直至收敛。

PCA和LDA数据假设都符合高斯分布,但是LDA是监督算法,而PCA是无监督算法。LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。具体LDA原理以及与PCA的区别见链接

10.PCA(和LDA来自同一个git主)

从两个算法(PCA和LDA)的流程看,PCA和LDA很相似,只是LDA是加入了标签信息,计算了类内方差,内间均值,然后对这两个数的乘积求特征值、特征向量;而PCA则直接求数据之间的协方差的特征值和特征向量。共同的做法就是取前k个特征值、特征向量,将样本投影到这歌空间中去(包括SVD也是酱紫)

K-Mean要注意的问题就是:K值如何选取,K个初始点如何选取


TODO

--T-SNE

About

为了深入了解一些机器学习算法,把一些经典算法的代码都过一遍。包括决策树、集成学习(Adaboost、GBDT、XgBoost、RandomForest)、支持向量机、EM算法(GMM)、极大似然估计、降维算法(PCA、LDA、T-SNE)、聚类算法(K-Mean)、kNN。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages