机器学习算法实现
文章平均质量分 94
Sudden|nebbuS
数据分析师,中国科大硕士
https://github.com/Suddennebbus?tab=repositories
展开
-
K近邻(KNN) | 算法实现
01 KNN可以做点什么呢?在李航的《统计学习方法》中,详细讲解了一中分类算法:K近邻(K Nearest Neighbor),具体的算法过程和关键点可以参考这篇文章:统计学习方法 | k近邻法算法的理论基础有了,下一步就是自己动手去实现了。今天我们的文章就是利用python去实现KNN算法,利用这套算法可以做什么呢?比如,我们已经知道一组鸢尾花的花瓣、花萼长宽以及对应的鸢尾花品...原创 2018-09-22 10:47:37 · 21224 阅读 · 1 评论 -
聚类 | KMeans理论与算法实现
01 物以类聚经过半年的不懈努力,我们已经学习并实践了经典的分类算法和经典的回归算法,下面我们开始学习经典的聚类算法(兴奋~~~)目前打算对三种聚类算法进行学习和代码实操(俗称“造轮子”):KMeansAprioriFP-Growth今天我们学习并实践KMeans聚类算法,分成以下几个部分,跟上节奏燥起来!KMeans算法理论和代码实现改进,BiKMeans算法理论和...原创 2018-12-11 19:17:58 · 674 阅读 · 0 评论 -
FP-Growth|高效挖掘频繁项集
01 搜索引擎如何联想的?在使用搜索引擎时,你应该会发现一个现象:当我们在搜索框输入一个字符时,它就会帮你联想补全后面的搜索内容。比如,你想搜索“西瓜”,当你输入“西”时,搜索引擎会帮你联想出“西部、西瓜、西南地区”等等。这大大提高了我们的搜索效率,你有没有疑惑过,这是如何实现的呢?今天我们要学习的这个算法(FP-Growth)可以解答这个疑惑。FP-Growth算法是一种比Aprio...原创 2019-02-28 17:05:37 · 1129 阅读 · 0 评论 -
Apriori | 挖掘关联规则
01 啤酒与尿布好久没写代码了,脑子快生锈了,今天我们来实操一个比较有意思的算法——Apriori算法。Apriori算法是一种用于挖掘数据集内部关联规则的算法,“apriori”在拉丁语中翻译为“来自以前”,听意思你应该就能猜到了,这个算法是用先验知识来预测数据的关联规则的。说到关联规则,有一个很有名的案例——啤酒与尿布。说,美国一家连锁店发现很多男性会在周四购买尿布和啤酒,这两种看似不...原创 2019-02-14 14:17:24 · 765 阅读 · 0 评论 -
数据降维 | 主成分分析(PCA)
01 数据降维数据分析中,我们常常面对较大的数据集,这里的“大”,一是指样本量大(如千万量级),二是指高维度(如几百个维度)。因此在正式分析这些大数据前,我们需要对它们做预处理,从而缩减数据维度,提升处理效率和训练效果。数据降维就是一种数据预处理技术,常用的降维技术如下:主成分分析 PCA因子分析 Factor Analysis独立成分分析 ICA本文介绍并实践了一种常用的数...原创 2019-04-14 10:17:54 · 1757 阅读 · 0 评论 -
树回归|理论与算法实现
在上一篇文章中,我们比较全面地学习了线性回归的原理是实现,今天我们还是留在回归板块,针对树回归进行学习和实践。01 树回归原理相比于线性回归,树回归更适合对复杂、非线性的数据进行回归建模。原理回想一下决策树,树回归的原理就是决策树(人家都叫”树“回归了……),在决策树的学习中,有三种算法,ID3, C4.5, CART,前两种算法只能处理离散型数据,因此只能用于回归,而CART算法由于采...原创 2018-11-05 19:01:40 · 463 阅读 · 2 评论 -
AdaBoost | 算法实现
在这篇文章中,我们一起学习了AdaBoost算法的原理,今天我们在python3的环境下,根据原理写一段代码来实现AdaBoost算法。01 构造单层决策树逻辑:遍历数据集的每个特征:遍历特征的每个步长:遍历步长的每个阈值对比方式(less than/greater than):计算每次迭代的weightedError认为weightedError最小的点(特...原创 2018-10-21 14:54:31 · 415 阅读 · 0 评论 -
常见线性回归|理论与算法实现
01 分类 v.s. 回归之前我们学习了很多分类方法,在机器学习中,还有一种任务叫回归,回归和分类其实挺像的,都是对样本预测一个值,区别在于,分类:输出为离散值回归:输出为连续值今天我们学习一波线性回归的理论和算法,不要小看线性回归,其实很多商业模型都少不了线性回归的功劳,把线性回归用到极致你也是大神。简单来说,线性回归就是在已知x,y的情况下,求解y=wx的回归系数的过程。0...原创 2018-10-28 15:13:55 · 926 阅读 · 0 评论 -
朴素贝叶斯(Naive Bayes) | 算法实现
01 起大数据时代,我们的“隐私”早已不再是隐私,一个特别直接的证据是什么呢?我们的邮箱也好、手机也好,经常收到恼人的垃圾邮件、垃圾短信被这些东西烦的不行,怎么办呢?网上有很多垃圾邮件过滤软件,可以拿来直接用的,其中的原理是什么呢?今天我们自己造个轮子来过滤邮箱里的垃圾邮件吧!系好安全带,我要开车了!02 过滤原理垃圾邮件过滤的原理其实很简单:朴素贝叶斯(Naive Baye...原创 2018-09-22 10:53:14 · 1540 阅读 · 0 评论 -
逻辑斯蒂回归(Logistic Regression) | 算法实现
01 起在这篇文章中,我们学习了逻辑斯谛回归模型的算法原理:统计学习方法|logistic回归今天我们基于算法原理,给出利用随机梯度上升算法求解逻辑斯蒂回归模型参数的过程。我们先来回顾一下逻辑斯蒂回归模型,logistic回归的目的是寻找一个非线性函数sigmoid函数的最佳拟合参数w, sigmoid(wx)=1/(1+exp(-wx)),找到最佳拟合参数w,使不同类别样本点的特征x...原创 2018-09-22 10:58:13 · 4610 阅读 · 1 评论 -
支持向量机(SVM) | SMO算法实现
01 起在统计学习方法|SVM这篇文章中,我们学习了支持向量机的原理和理论上的算法实现,我们一起回忆一下,支持向量机可以处理三种类型的数据:线性可分支持向量机——求解策略,硬间隔最大化线性支持向量机——求解策略,软间隔最大化非线性支持向量机——求解策略,核技巧+软间隔最大化我们提出一个问题当数据量很大时,以上提出的算法求解复杂度呈指数上升,算法会变得十分低效,该怎么办呢?我...原创 2018-09-22 11:03:45 · 3286 阅读 · 4 评论 -
决策树(Decision Tree) | 算法实现
01 起决策树相关的理论知识,我们在这篇文章中有详细讲解。今天我们基于决策树原理,写一个函数来训练决策树吧。本文基于ID3算法构建决策树,此算法构建决策树的中心思想是:始终寻找信息增益最大的特征作为当前分支的最优特征信息增益,即:g(D,A)=H(D)-H(D|A)02 实现思路(ID3)利用训练数据,训练决策树,主要思路如下,共8个步骤,重点在于递归:自定义信息熵计算函数...原创 2018-09-22 11:08:32 · 4399 阅读 · 2 评论 -
决策树(Decision Tree) | 绘制决策树
01 起在这篇文章中,我们讲解了如何训练决策树,然后我们得到了一个字典嵌套格式的决策树结果,这个结果不太直观,不能一眼看着这颗“树”的形状、分支、属性值等,怎么办呢?本文就上文得到的决策树,给出决策树绘制函数,让我们对我们训练出的决策树一目了然。在绘制决策树之后,我们会给出决策树的使用方法:如何利用训练好的决策树,预测训练数据的类别?提示:不论是绘制还是使用决策树,中心思想都是递归。...原创 2018-09-22 11:17:19 · 18735 阅读 · 1 评论 -
支持向量机(SVM) | 核技巧于SMO算法的实现
01 核技巧关于支持向量机,我们有这样的共识:支持向量机是一种分类器,之所以叫“机”是因为它会产生一个二值决策结果,是一种决策机;支持向量机的泛化误差较低,即,有良好的学习能力,且学到的模型具有很好的推广性,因此被认为是监督学习中最好的定式算法;支持向量机通过求解一个二次优化问题来最大化分类间隔,在过去,训练SVM常采用非常复杂且低效的二次规划求解方法;1998年,Platt提出SMO...原创 2018-09-23 00:39:10 · 696 阅读 · 0 评论 -
NLP | 文本特征向量化方法
01 起在之前的文章中,我们学习了一种分类方法:朴素贝叶斯,朴素贝叶斯特别适合文本分类,比如:根据邮件内容,判断哪些是垃圾邮件根据新闻内容,判断新闻情感是正面、负面还是中立……如果想要使用朴素贝叶斯模型去给文本数据分类,就必须对文本数据进行处理。怎么处理呢?一般是这样的:对文本分词(作为特征),比如把这句话“我是天才”分词为“我”“是”“天才”(这里面的学问就更多了,本...原创 2018-09-23 00:53:16 · 10259 阅读 · 3 评论 -
数据降维 | 奇异值分解(SVD) 、推荐系统、图像压缩
01 PCA.改在上一篇文章中,我们学习并实践了一种主流的数据降维算法——主成分分析(PCA)。我们再来回顾一下PCA的优缺点:优点:降低数据复杂性,识别最重要的多个特征缺点:PCA需要将所有数据集放入内存,若数据集较大,内存处理效率低,此时需要使用其他方法来寻找特征值基于PCA算法在处理大数据集时内存处理效率较低的缺点,出现了一种更加高效的降维算法——奇异值分解(SVD),本文简...原创 2019-04-14 15:57:50 · 1371 阅读 · 0 评论