
机器学习
记录机器学习过程中的心得
流年若逝
这个作者很懒,什么都没留下…
展开
-
python实现KNN算法(公式推导+源代码)
今天这篇文章要介绍的是KNN(k近邻算法),这是一种简单的分类算法,它的思想是通过测量不同特征值之间的距离进行分类的。这样说你可能不太懂,那下面我们就通过一个简单的例子来形象的概述下。以下面这张图为例,我们在这张图上可以看到有三种不同类别的形状(正方形、圆形、三角形),其中他们的分布也是比较不集中的。假设我们在内圆里面要判断某个东西是属于哪一类别的话,我们该怎么做呢 ?方法很简单,就是在内圆里面选择K个数据离我(图中 ?表示)最近的几个点,然后根据少数服从多数的原则,将多数的类别作为我预原创 2020-11-16 16:00:36 · 7864 阅读 · 1 评论 -
Python实现逻辑回归(公式推导+源代码)
今天这篇文章主要是记录下自己在学习逻辑回归算法过程中自己的一些体会,这里我主要从公式推导和代码实现来展开。前面我们学习过最简单的线性回归,它针对的是标签值为连续的机器学习任务,不懂的可以 参考这篇文章:Python实现简单的线性回归而逻辑回归针对的是标签为0 / 1 的二分类问题,根据现有数据对分类边界线建立回归公式,然后将标签为1和标签为0的划分开来。简单的来理解的话可以看下面这句话:为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个原创 2020-11-13 11:33:19 · 5034 阅读 · 0 评论 -
Python实现线性回归(公式推导+源代码)
写这篇文章之前,首先要对自己做一个小小的反思,很多时候在学习新技术的时候,看到出了什么什么框架,在这个框架上什么什么方法可以直接拿过来用,这样的好处就是我们可以减少写代码量,几个函数就可以帮我们解决需要写几十行代码才能解决的问题。这样看起来很好是建立在你对这个函数的底层有一个深入研究,如果你是一个新手,第一次你可能在网上查阅资料明白一个大概,但是你下次还是不会,究其原因:知其然,而不知其所以然。对我而言,我身上也存在着这种通病,为了能:知其然,知其所以然。于是乎,我打算在学习机器学习算法的过程中,不调用原创 2020-11-11 13:17:07 · 16356 阅读 · 7 评论 -
梯度下降(详解)
机器学习中我们经常可以看见梯度下降这个名词,但是什么是梯度下降?梯度下降是用来干什么的?网上一大堆文章,看到最后也没看出个名堂出来,刚好今天看到了篇文章,然后结合自己的一些理解,记录下。【什么是梯度下降】首先我们可以把梯度下降拆解为梯度+下降,那么梯度可以理解为导数(对于多维可以理解为偏导),那么合起来变成了:导数下降,那问题来了,导数下降是干什么的?这里我直接给出答案:梯度下降就是用来求某个函数最小值时自变量对应取值其中这句话中的某个函数是指:损失函数(cost/loss function),原创 2020-10-25 21:18:21 · 36407 阅读 · 9 评论 -
机器学习中的正则化
在机器学习的过程中我们会经常看到“正则化”这个词,比如我们看一些书籍、一些视频或者老师们讲课说的:给损失函数加一个正则化项,相当于给它一个惩罚...”等等,就给人一种很迷的感觉。对此,在网上看到过一些关于什么是正则化的文章,经过整理加上自己的理解就在这里记录下来。打个比方:假设我们的模型就是一只蚊子,我们要训练它去模拟空中的一些点的整体路径:我们空中的点也分为训练集和测试集,蚊子去学习训练集的路径,然后闭上眼睛,按照自己学习到的那个路径去预测测试集的点是否在路径上。首先,蚊子自以为...原创 2020-10-17 15:29:15 · 1201 阅读 · 2 评论 -
什么是深度学习、强化学习
今天在学习过程中碰到一个自己不懂的常识:Reinforcement Learing(强化学习)之前在入门机器学习过程中单纯的知道只有深度学习,今天看论文的时候发现还存在强化学习,所以今天就干脆将深度学习与强化学习两者是啥以及二者的区别是什么记录在这里。1.深度学习深度学习本质上是一个自主的、自学的系统,您可以使用现有的数据来训练算法来发现模式,然后使用这些模式来预测新的数据。 例如,你可以训练一个深度学习算法来识别照片上的猫。你可以通过给它输入数以百万计的图像来达到这个目的,这些图像要么包含猫,原创 2020-10-09 15:56:48 · 15958 阅读 · 1 评论 -
K-近邻算法讲解以及实战
1.概述邻近算法,或者说K最近邻(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。Cover和Hart在1968年提出了最初的邻近算法。KNN是一种分类(classification)算法,它输入基于实例的学习(instance-based learning),属于懒惰学习(lazy learning)即KNN没有显式的学习过程,也就是说没有训练阶段,数据集事先已有了分类和特原创 2020-09-21 14:47:40 · 1974 阅读 · 0 评论 -
python实现决策树可视化
上一篇文章:决策树(信息熵、信息增溢、GINI)的计算这篇文章我们来介绍下如何通过python实现决策树可视化。【概念】 决策树是一种机器学习的方法。决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。通过学习样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。【准备数据】outlook temperature humidity w...原创 2020-08-10 16:39:05 · 11686 阅读 · 0 评论 -
决策树(信息熵、信息增溢、GINI)的计算
如何构建决策树,我需要选择什么属性来度量,这里我们需要通过计算才能更好的构建一棵决策树。【有以下二分类问题训练样本】outlook temperat humidity windy play sunny hot high FALSE no sunny hot high TRUE no overcast hot high FALSE yes rainy mild high F原创 2020-08-06 18:16:36 · 10272 阅读 · 0 评论 -
DataConversionWarning: Data with input dtype int32, int64 were all converted to float64 by StandardS
机器学习过程中构建一颗决策树对数据进行标准化,使用下面两段代码X_train = ss_X.fit_transform(X_train)X_test = ss_X.transform(X_test)运行之后出现下面警告D:\Python\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py:625: DataConversionWarning: Data with input dtype int32, int64 were al原创 2020-08-06 11:14:16 · 2068 阅读 · 0 评论 -
Graphviz的安装
在机器学习的过程中需要将测试的数据结构可视化就需要Graphviz这个工具来显示,所以这篇文章是教大家怎么安装Graphviz。【资源下载】1.官网给出的地址:http://www.graphviz.org/download/发现查阅很多网上教程,这个网站有些变动,导致我们需要下载的工具不像下面显示的那样。现在的界面如下所以我们往下找,看到这里就可以了然后出现按照目录找,出现下面这个界面就可以了,点击下载就可以。2.我自己下载了,所以这里就直接给大家分享下载地原创 2020-08-04 17:44:12 · 2708 阅读 · 4 评论 -
NFL公式推导
【什么是NFL】 按照周志华老师说的通过公式的推导,我们发现总误差竟然与学习算法无关,对于任意两个学习算法,无论哪个算法更加”聪明“或者更加”笨拙",它们的期望性能竟然相同。这就是”没有免费的午餐“定理(No Free Lunch Theorem,简称NFL定理)【NFL推导】为简单起见,假设样本空间X和假设空间H都是离散的.令P(h|X,ζa) 代表算法ζa基于训练数据X产生假设h的概率,再令f代表我们希望学习的真实目标函数。ζa的“训练集外误差”,即ζa在训练集之外的所有样本上的.原创 2020-07-29 17:27:42 · 2404 阅读 · 0 评论