机器学习
文章平均质量分 94
TechFlow
公众号:TechFlow
展开
-
详解SVM模型——核函数是怎么回事
大家好,欢迎大家阅读周二机器学习专题,今天的这篇文章依然会讲SVM模型。也许大家可能已经看腻了SVM模型了,觉得我是不是写不出新花样来,翻来覆去地炒冷饭。实际上也的确没什么新花样了,不出意外的话这是本专题最后一篇文章了。下周我们就要开始深度学习之旅了,我相信很多同学期待这一天已经很久了,实际上我也一样,因为这个专题里讲的大部分内容已经只在面试环节会用到,而我已经很久没有面试了。所以让我们收拾一下激动的心情,来把SVM最后剩下的一点内容讲完。虽然只剩下最后一点内容了,但是今天的内容非常重要,可以说是SVM原创 2020-10-02 09:22:20 · 1495 阅读 · 0 评论 -
深入理解SVM,详解SMO算法
今天是机器学习专题第35篇文章,我们继续SVM模型的原理,今天我们来讲解的是SMO算法。公式回顾在之前的文章当中我们对硬间隔以及软间隔问题都进行了分析和公式推导,我们发现软间隔和硬间隔的形式非常接近,只有少数几个参数不同。所以我们着重来看看软间隔的处理。通过拉格朗日乘子法以及对原问题的对偶问题进行求解,我们得到了二次规划:它应该满足的KTT条件如下:也就是说我们要在这些条件下去求解(1)式的极值,在这个约束的情况下,虽然我们已经把式子化简成了只有一种参数α\alphaα,但这个极值又应该怎么求原创 2020-09-22 11:10:14 · 893 阅读 · 0 评论 -
机器学习,详解SVM软间隔与对偶问题
今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型。我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了α\alphaα。在硬间隔模型当中,样本是线性可分的,也就是说-1和1的类别可以找到一个平面将它完美分开。但是在实际当中,这样的情况几乎是不存在的。道理也很简单,完美是不存在的,总有些样本会出错。那针对这样的问题我们应该怎么解决呢?软间隔在上文当中我们说了,在实际的场景当中,数据不可能是百分百线性可分的,即使真的能硬生生地找到这样的一个分隔平面区分原创 2020-09-09 10:58:16 · 2302 阅读 · 0 评论 -
深入理解SVM模型,软间隔与对偶问题
今天是机器学习专题的第33篇文章,我们继续来聊聊SVM模型。在上一篇文章当中我们推到了SVM模型在线性可分的问题中的公式推导,我们最后得到的结论是一个带有不等式的二次项:想要了解具体推导过程的同学,可以参考我的上一篇文章:机器学习 | 深入SVM原理及模型推导(一)其实上一篇的文章当中遗留了一个问题,就是我们希望得到∣∣ω∣∣||\omega||∣∣ω∣∣最小,为什么不直接求∣∣ω∣∣||\omega||∣∣ω∣∣最小,而非要求∣∣ω∣∣2||\omega||^2∣∣ω∣∣2最小呢?原因就在它的解原创 2020-09-03 10:26:41 · 493 阅读 · 0 评论 -
机器学习 | 深入SVM原理及模型推导(一)
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第32篇文章,我们来聊聊SVM。SVM模型大家可能非常熟悉,可能都知道它是面试的常客,经常被问到。它最早诞生于上世纪六十年代。那时候虽然没有机器学习的概念,也没有这么强的计算能力,但是相关的模型和理论已经提出了不少,SVM就是其中之一。SVM完全可以说是通过数学推导出来的模型,由于当时还没有计算机,所以模型当中的参数都是数学家们用手来算的。它有一个巨大的应用就是前苏联的计划经济体系,我们知道在计划经济当中,国家有多少社会资原创 2020-08-26 16:27:12 · 1330 阅读 · 0 评论 -
pandas | DataFrame中的排序与汇总方法
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第六篇文章,我们来聊聊DataFrame的排序与汇总运算。在上一篇文章当中我们主要介绍了DataFrame当中的apply方法,如何在一个DataFrame对每一行或者是每一列进行广播运算,使得我们可以在很短的时间内处理整份数据。今天我们来聊聊如何对一个DataFrame根据我们的需要进行排序以及一些汇总运算的使用方法。排序排序是我们一个非常基本的需求,在pandas当中将这个需求进一步细分,细分成了根据原创 2020-08-19 11:45:01 · 2780 阅读 · 0 评论 -
机器学习 | 详解GBDT在分类场景中的应用原理与公式推导
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第31篇文章,我们一起继续来聊聊GBDT模型。在上一篇文章当中,我们学习了GBDT这个模型在回归问题当中的原理。GBDT最大的特点就是对于损失函数的降低不是通过调整模型当中已有的参数实现的,若是通过训练新的CART决策树来逼近的。也就是说是通过增加参数而不是调整参数来逼近损失函数最低点。如果对于这部分不是很理解的话,可以通过下方的链接回顾一下之前的内容:机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了逻辑原创 2020-08-17 13:29:11 · 445 阅读 · 0 评论 -
机器学习 | 详解GBDT梯度提升树原理,看完再也不怕面试了
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第30篇文章,我们今天来聊一个机器学习时代可以说是最厉害的模型——GBDT。虽然文无第一武无第二,在机器学习领域并没有什么最厉害的模型这一说。但在深度学习兴起和流行之前,GBDT的确是公认效果最出色的几个模型之一。虽然现在已经号称进入了深度学习以及人工智能时代,但是GBDT也没有落伍,它依然在很多的场景和公司当中被广泛使用。也是面试当中经常会问到的模型之一。遗憾的是市面上关于GBDT的资料虽然不少,但是很少有人把其中的核心原创 2020-08-06 11:11:24 · 480 阅读 · 0 评论 -
pandas | DataFrame基础运算以及空值填充
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number)。首先我们来创原创 2020-07-30 10:59:19 · 2617 阅读 · 0 评论 -
机器学习 | 简介推荐场景中的协同过滤算法,以及SVD的使用
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第29篇文章,我们来聊聊SVD在上古时期的推荐场景当中的应用。推荐的背后逻辑有没有思考过一个问题,当我们在淘宝或者是某东这类电商网站购物的时候。我们一进首页,就会看到首页展出了很多商品。这些商品往往质量很高,很吸引人,一旦逛起来可能就没个结束。那么问题来了,电商平台拥有那么多商品,它是怎么知道我们可能会喜欢什么样的商品的呢?这背后的逻辑是什么?简单来说在这背后,平台端的算法做了两件事情,第一件事情是召回,第二件事情是原创 2020-07-28 11:19:55 · 347 阅读 · 0 评论 -
pandas | 如何在DataFrame中通过索引高效获取数据?
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number)。首先我们来创原创 2020-07-20 10:57:52 · 874 阅读 · 0 评论 -
机器学习 | SVD矩阵分解算法,对矩阵做拆分,然后呢?
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题第28篇文章,我们来聊聊SVD算法。SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值分解。这其实是一种线性代数算法,用来对矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。SVD简介我们假设原始数据集矩阵D是一个mxn的原创 2020-07-17 11:32:40 · 1051 阅读 · 0 评论 -
pandas | 使用pandas进行数据处理——DataFrame篇
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构——DataFrame。上一篇文章当中我们介绍了Series的用法,也提到了Series相当于一个一维的数组,只是pandas为我们封装了许多方便好用的api。而DataFrame可以简单了理解成Series构成的dict,这样就将数据拼接成了二维的表格。并且为我们提供了许多表级别数据处理以及批量数据处理的接口,大大降低了数据处理的难度。创建DataF原创 2020-07-09 14:19:34 · 1302 阅读 · 0 评论 -
PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法。我们都知道,图片格式当中有一种叫做svg,这种格式的图片无论我们将它放大多少倍,也不会失真更不会出现边缘模糊的情况。原因也很简单,因为这种图片是矢量图,一般的图片存储的是每一个像素点的颜色值,而在矢量图当中,我们存储的是矢量,也就是起点终点以及颜色。由于矢量图只记录起点终点,所以无论我们如何放大,图片都不会失真,而传统的图片原创 2020-07-07 13:31:06 · 2778 阅读 · 0 评论 -
Pytorch | 详解Pytorch科学计算包——Tensor
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Pytorch专题的第二篇,我们继续来了解一下Pytorch中Tensor的用法。上一篇文章当中我们简单介绍了一下如何创建一个Tensor,今天我们继续深入Tensor的其他用法。tensor操作size()和shape我们可以用size()函数或者直接调用tensor当中的shape属性获取一个tensor的大小,这两者是等价的,一般情况下我们用前者多一些。view我们可以通过view改变一个tensor的shap原创 2020-07-05 19:38:12 · 541 阅读 · 0 评论 -
pandas | 使用pandas进行数据处理——Series篇
本文始发于个人公众号:TechFlow,原创不易,求个关注上周我们关于Python中科学计算库Numpy的介绍就结束了,今天我们开始介绍一个新的常用的计算工具库,它就是大名鼎鼎的Pandas。Pandas的全称是Python Data Analysis Library,是一种基于Numpy的科学计算工具。它最大的特点就是可以像是操作数据库当中的表一样操作结构化的数据,所以它支持许多复杂和高级的操作,可以认为是Numpy的加强版。它可以很方便地从一个csv或者是excel表格当中构建出完整的数据,并支持原创 2020-07-01 12:27:35 · 372 阅读 · 0 评论 -
机器学习——动手从决策树实现随机森林
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第26篇文章,我们一起聊聊另外一个集成学习模型,它就是大名鼎鼎的随机森林。随机森林在业内名气和使用范围都很广,曾经在许多算法比赛当中拔得头筹。另外,它也是一个通过组合多个弱分类器构建强分类器的经典模型,因此它在业内广受欢迎。本文基于决策树相关的文章,没有阅读过的同学可以从最上方的专辑查看过往决策树相关的文章。算法原理上一篇文章介绍AdaBoost的时候把集成学习的几种思路大概介绍了一遍,集成学习主要是三种方法,Ba原创 2020-06-29 11:14:03 · 552 阅读 · 0 评论 -
Pytorch入门——手把手带你配置云服务器环境
本文始发于个人公众号:TechFlow,原创不易,求个关注今天这篇是Pytorch专题第一篇文章。大家好,由于我最近自己在学习Pytorch框架的运用,并且也是为了响应许多读者的需求,推出了这个Pytorch专题。由于这个专题是周末加更的,所以不能保证更新进度,我尽量和其他专题一样,每周一更。Pytorch简介Pytorch底层是Torch框架,Torch框架是一个科学计算框架,拥有一个与Numpy类似的张量操作库。非常灵活,但是它的语言是Lua,比较小众,因此没有广泛流行。后来开发团队在T原创 2020-06-25 09:19:19 · 1524 阅读 · 0 评论 -
手把手教你学Numpy,搞定数据处理——收官篇
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Numpy专题第6篇文章,我们一起来看看Numpy库当中剩余的部分。数组的持久化在我们做机器学习模型的研究或者是学习的时候,在完成了训练之后,有时候会希望能够将相应的参数保存下来。否则的话,如果是在Notebook当中,当Notebook关闭的时候,这些值就丢失了。一般的解决方案是将我们需要的值或者是数组“持久化”,通常的做法是存储在磁盘上。Python当中读写文件稍稍有些麻烦,我们还需要创建文件句柄,然后一行行写入,写入完成之后原创 2020-06-21 22:51:54 · 236 阅读 · 0 评论 -
机器学习——打开集成方法的大门,手把手带你实现AdaBoost模型
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第25篇文章,我们一起来聊聊AdaBoost。我们目前为止已经学过了好几个模型,光决策树的生成算法就有三种。但是我们每次进行分类的时候,每次都是采用一个模型进行训练和预测。我们日常在做一个决策的时候,往往会咨询好几个人,综合采纳他们的意见。那么有没有可能把这个思路照搬到机器学习领域当中,创建多个模型来综合得出结果呢?这当然是可以的,这样的思路就叫做集成方法(ensemble method)。集成方法集成方法本身并不原创 2020-06-19 10:44:03 · 345 阅读 · 0 评论 -
手把手教你学Numpy,这些api不容错过
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Numpy专题的第5篇文章,我们来继续学习Numpy当中一些常用的数学和统计函数。基本统计方法在日常的工作当中,我们经常需要通过一系列值来了解特征的分布情况。比较常用的有均值、方差、标准差、百分位数等等。前面几个都比较好理解,简单介绍一下这个百分位数,它是指将元素从小到大排列之后,排在第x%位上的值。我们一般常用的是25%,50%和75%这三个值,通过这几个值,我们很容易对于整个特征的分布有一个大概的了解。前面三个指标:均值、方差原创 2020-06-14 11:46:01 · 214 阅读 · 0 评论 -
想要学深度学习但是没有GPU?我帮你找了一些不错的平台
本文始发于个人公众号:TechFlow,原创不易,求个关注上次给大家推荐了免费的spark集群之后,就有很多小伙伴来问我有没有好的云GPU平台推荐。我一直没给大家推荐,主要原因是我常年使用Mac,对GPU配置了解不深,不过云GPU平台我倒是用过几个,今天就和大家来简单聊聊。Colab首先来介绍免费的,最著名的免费的平台应该是Colab。Colab是Google提供的免费云服务,并且还支持GPU,所以我们完全可以使用它来做深度学习的学习。Colab嵌入在Google Drive当中,我们首先打开原创 2020-06-12 18:41:50 · 2023 阅读 · 2 评论 -
机器学习——手把手教你用Python实现回归树模型
本文始发于个人公众号:TechFlow,原创不易,求个关注今天这篇是机器学习专题的第24篇文章,我们来聊聊回归树模型。所谓的回归树模型其实就是用树形模型来解决回归问题,树模型当中最经典的自然还是决策树模型,它也是几乎所有树模型的基础。虽然基本结构都是使用决策树,但是根据预测方法的不同也可以分为两种。第一种,树上的叶子节点就对应一个预测值和分类树对应,这一种方法称为回归树。第二种,树上的叶子节点对应一个线性模型,最后的结果由线性模型给出。这一种方法称为模型树。今天我们先来看看其中的回归树。回归树模原创 2020-06-12 10:55:15 · 1648 阅读 · 0 评论 -
手把手教你学Numpy,从此数据处理不再慌【四】
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是numpy专题的第四篇文章,numpy中的数组重塑与三元表达式。首先我们来看数组重塑,所谓的重塑本质上就是改变数组的shape。在保证数组当中所有元素不变的前提下,变更数组形状的操作。比如常用的操作主要有两个,一个是转置,另外一个是reshape。转置与reshape转置操作很简单,它对应线性代数当中的转置矩阵这个概念,也就是说它的功能就是将一个矩阵进行转置。转置矩阵的定义是将一个矩阵的横行写为转置矩阵的纵列,把纵列写成转置矩阵原创 2020-06-08 09:01:27 · 296 阅读 · 0 评论 -
机器学习——十大数据挖掘之一的决策树CART算法
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第23篇文章,我们今天分享的内容是十大数据挖掘算法之一的CART算法。CART算法全称是Classification and regression tree,也就是分类回归树的意思。和之前介绍的ID3和C4.5一样,CART算法同样是决策树模型的一种经典的实现。决策树这个模型一共有三种实现方式,前面我们已经介绍了ID3和C4.5两种,今天刚好补齐这最后一种。算法特点CART称为分类回归树,从名字上我们也看得出来,它既原创 2020-06-06 11:44:58 · 440 阅读 · 0 评论 -
深入了解机器学习决策树模型——C4.5算法
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第22篇文章,我们继续决策树的话题。上一篇文章当中介绍了一种最简单构造决策树的方法——ID3算法,也就是每次选择一个特征进行拆分数据。这个特征有多少个取值那么就划分出多少个分叉,整个建树的过程非常简单。如果错过了上篇文章的同学可以从下方传送门去回顾一下:如果你还不会决策树,那你一定要进来看看既然我们已经有了ID3算法可以实现决策树,那么为什么还需要新的算法?显然一定是做出了一些优化或者是进行了一些改进,不然新算法显然是没原创 2020-05-29 10:48:51 · 638 阅读 · 0 评论 -
手把手教你用Python实现决策树模型
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第21篇文章,我们一起来看一个新的模型——决策树。决策树的定义决策树是我本人非常喜欢的机器学习模型,非常直观容易理解,并且和数据结构的结合很紧密。我们学习的门槛也很低,相比于那些动辄一堆公式的模型来说,实在是简单得多。其实我们生活当中经常在用决策树,只是我们自己没有发现。决策树的本质就是一堆if-else的组合,举个经典的例子,比如我们去小摊子上买西瓜。水果摊的小贩都是怎么做的?拿起西瓜翻滚一圈,看一眼,然后伸手一拍原创 2020-05-22 09:10:13 · 4780 阅读 · 8 评论 -
手把手Numpy入门教程【二】——数组与切片
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是Numpy专题的第二篇,我们来进入正题,来看看Numpy的运算。上一篇文章当中曾经提到过,同样大小的数据,使用Numpy的运算速度会是我们自己写循环来计算的上百倍甚至更多。并且Numpy的API非常简单,通常只要简单几行代码就可以完成非常复杂的操作。计算与广播在Python中的数组无论是什么类型,我们是无法直接对其中所有的元素进行计算的。想要做到这一点,必须要通过map这样的方式操作。而Numpy当中,我们可以很方便地对一整个数组原创 2020-05-18 08:38:43 · 429 阅读 · 0 评论 -
机器学习——方差、协方差与皮尔逊值
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是概率统计专题的第六篇,我们来看看方差相关的概念。方差的定义方差在我们的日常生活当中非常常见,它主要是为了提供样本离群程度的描述。举个简单的例子,我们去买一包薯片,一般来说一袋薯片当中的数量是固定的。我们假设平均每袋当中都有50片薯片好了,即使是机器灌装,也不可能做到每一袋都刚好是50片,或多或少都会有些误差。而均值则无法衡量这种误差。如果现在有两个薯片品牌,它们的口味都差不多,平均每袋也都是50片。但是其中A品牌的薯片有一半是80原创 2020-05-16 10:09:50 · 467 阅读 · 0 评论 -
嫌弃Apriori算法太慢?使用FP-growth算法让你的数据挖掘快到飞起
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第20篇文章,我们来看看FP-growth算法。这个算法挺冷门的,至少比Apriori算法冷门。很多数据挖掘的教材还会提一提Apriori,但是提到FP-growth的相对要少很多。原因也简单,因为从功能的角度上来说,FP-growth和Apriori基本一样,相当于Apriori的性能优化版本。但不得不说有时候优化是一件很尴尬的事,因为优化意味着性能要求很高。但是反过来说,对于性能有着更高要求的应用场景,无论是企业也好,原创 2020-05-14 11:22:16 · 988 阅读 · 0 评论 -
手把手教你学Numpy,从此处理数据不再慌「一」
本文始发于个人公众号:TechFlow,原创不易,求个关注当当当,我又开新坑了,这次的专题是Python机器学习中一个非常重要的工具包,也就是大名鼎鼎的numpy。所以今天的文章是Numpy专题的第一篇。俗话说得好,机器学习要想玩的溜,你可以不会写Python,但一定不能不会调库(大雾)。Numpy可以说是Python中最基础也是最重要的工具库了,要用Python做机器学习,玩转各种框架,Numpy是必须要会的。像是TensorFlow、pytorch这些知名框架都是基于Numpy进行计算的,可想而原创 2020-05-13 08:34:53 · 222 阅读 · 0 评论 -
详解十大数据挖掘算法之一的Apriori算法
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第19篇文章,我们来看经典的Apriori算法。Apriori算法号称是十大数据挖掘算法之一,在大数据时代威风无两,哪怕是没有听说过这个算法的人,对于那个著名的啤酒与尿布的故事也耳熟能详。但遗憾的是,随着时代的演进,大数据这个概念很快被机器学习、深度学习以及人工智能取代。即使是拉拢投资人的创业者也很少会讲到这个故事...原创 2020-05-06 19:19:01 · 1347 阅读 · 0 评论 -
五分钟秒懂机器学习混淆矩阵、ROC和AUC
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第18篇文章,我们来看看机器学习领域当中,非常重要的其他几个指标。混淆矩阵在上一篇文章当中,我们在介绍召回率、准确率这些概念之前,先讲了TP、FP、FN、和FP这几个值。我们再来简单地回顾一下,我们不能死记硬背这几个指标,否则很容易搞错,并且还容易搞混。我们需要从英文入手来理解,其中的T表示真,可以理解成预测正确...原创 2020-04-29 20:51:14 · 1682 阅读 · 0 评论 -
召回、精确、准确,这些让人头大的概念一文全讲清楚
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习真题的第17篇文章,我们来讲讲机器学习模型的评估。在之前的文章当中我们已经介绍了好几个模型了,有朴素贝叶斯、KNN、KMeans、EM还有线性回归和逻辑回归。今天我们来和大家聊聊该怎么评估这些模型。均方差这个概念很简单,它和回归模型当中的损失函数是一样的。可以理解成我们预测值和真实值之间的偏差,我们用y表示样本的真实...原创 2020-04-23 15:57:56 · 590 阅读 · 0 评论 -
【硬核】使用替罪羊树实现KD-Tree的增删改查
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习的第16篇文章,我们来继续上周KD-Tree的话题。如果有没有看过上篇文章或者是最新关注的小伙伴,可以点击一下下方的传送门:【硬核】机器学习与数据结构的完美结合——KD-Tree旋转不可行分析上周我们实现了KD-Tree建树和查询的核心功能,然后我们留了一个问题,如果我们KD-Tree的数据集发生变化,应该怎么办呢...原创 2020-04-15 19:28:26 · 783 阅读 · 0 评论 -
机器学习——详解KD-Tree原理
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习的第15篇文章,之前的文章当中讲了Kmeans的相关优化,还讲了大名鼎鼎的EM算法。有些小伙伴表示喜欢看这些硬核的,于是今天上点硬菜,我们来看一个机器学习领域经常用到的数据结构——KD-Tree。从线段树到KD树在讲KD树之前,我们先来了解一下线段树的概念。线段树在机器学习领域当中不太常见,作为高性能维护的数据结构,经...原创 2020-04-08 10:35:26 · 949 阅读 · 0 评论 -
详解十大经典机器学习算法——EM算法
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第14篇文章,我们来聊聊大名鼎鼎的EM算法。EM算法的英文全称是Expectation-maximization algorithm,即最大期望算法,或者是期望最大化算法。EM算法号称是十大机器学习算法之一,听这个名头就知道它非同凡响。我看过许多博客和资料,但是少有资料能够将这个算法的来龙去脉以及推导的细节全部都讲...原创 2020-04-01 09:56:42 · 905 阅读 · 0 评论 -
详解Kmeans的两大经典优化——mini-batch和Kmeans++
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第13篇文章,我们来看下Kmeans算法的优化。在上一篇文章当中我们一起学习了Kmeans这个聚类算法,在算法的最后我们提出了一个问题:Kmeans算法虽然效果不错,但是每一次迭代都需要遍历全量的数据,一旦数据量过大,由于计算复杂度过大迭代的次数过多,会导致收敛速度非常慢。想想看,如果我们是在面试当中遇到的这个问...原创 2020-03-25 08:38:51 · 1956 阅读 · 1 评论 -
机器学习——详解经典聚类算法Kmeans
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是机器学习专题的第12篇文章,我们一起来看下Kmeans聚类算法。在上一篇文章当中我们讨论了KNN算法,KNN算法非常形象,通过距离公式找到最近的K个邻居,通过邻居的结果来推测当前的结果。今天我们要来看的算法同样非常直观,也是最经典的聚类算法之一,它就是Kmeans。我们都知道,在英文当中Means是平均的意思,所以也有将它翻译...原创 2020-03-18 08:40:39 · 732 阅读 · 1 评论 -
机器学习基础——简单易懂的K邻近算法,根据邻居“找自己”
本文始发于个人公众号:TechFlow,原创不易,求个关注今天的文章给大家分享机器学习领域非常简单的模型——KNN,也就是K Nearest Neighbours算法,翻译过来很简单,就是K最近邻居算法。这是一个经典的无监督学习的算法,原理非常直观,易于理解。监督与无监督简单介绍一下监督这个概念,监督是supervised的直译,我个人觉得不太准确,翻译成有标注和无标注可能更加准确。也就是...原创 2020-03-11 08:41:34 · 554 阅读 · 0 评论