![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
适合初学者的机器学习理论与实践
司南牧
立志让初学者跨界学编程/算法/AI机器人无障碍专注零基础教程,知乎@司南牧
展开
-
{高中生能看懂的}梯度下降是个啥?
刚接触机器学习的同学避不开的一个专业名词就是梯度下降。顿时心里万马奔腾,其实很简单的,你先得理解概念才能看到那些公式不怂。(当然本文全程无公式,书写用时2小时,阅读估计10分钟) 本文主要解决三个问题:梯度到底是啥?梯度下降有啥用?为啥要下降? 问题一:梯度是个啥? 其实“梯度”你Ctr+H替换成“导数”就可以了,梯度就是目标函数的导数。以后你在书上遇到这个词就替换成“导数”就...原创 2019-05-27 15:30:26 · 666 阅读 · 0 评论 -
啤酒与尿布?挖掘商品之间的关联性分析(1):机器学习之Apriori算法
1. 背景一个广为流传的挖掘商品之间的关联性的故事就是“啤酒与尿布”这个故事。相传某超市通过分析顾客的账单,发现啤酒总是和尿布一起购买。通过分析,发现这是因为美国人喜欢喝啤酒,当买尿布的时候看到啤酒就顺便买了。于是就把啤酒与尿布总是放在一起卖。这样的有关联性的商品还有很多。如洋葱和土豆捆绑消费等等。将关联度高的商品放在一起促销或者捆绑消费可以提高营业额。同时电商平台也可以捆绑推荐提高成交量。而当...原创 2019-05-27 21:35:08 · 9055 阅读 · 0 评论 -
[初学者入门]任何机器学习套路?逻辑回归是什么?要有哪些未知参数待求解?如何优化?梯度下降是什么?如何用梯度下降
逻辑回归是什么?要有哪些未知参数待求解?如何优化?梯度下降是什么?如何用梯度下降求逻辑回归未知参数?作者:知乎@Ai酱本文要解决的是标题上的那些问题。1. 任何机器学习套路任何机器学习套路都逃不掉:使用一个数学模型来套到数据上->任何数学模型都有待设定的参数,不同数据适合不同参数值->怎么评价这些参数设定值好不好(设计误差函数)->用梯度下降或者其他方法求解误差函数最小值...原创 2019-05-23 18:14:43 · 461 阅读 · 1 评论 -
挖掘商品关联性(2): FP-growth算法
在前面我们介绍了一种简单的挖掘商品关联性算法Aporiori算法。原创 2019-05-28 11:38:47 · 2762 阅读 · 0 评论 -
我是如何十分钟复习概率论基础知识?
概率论中那些符号联合概率p(x,y) = x和y同时发生的概率。当x与y是两个没有任何联系的事情的时候那么p(x,y)=p(x)p(y)。比如:你今天是否吃饭这个事和太阳是否从东边出来这就是两个没有任何联系的事。你今天吃不吃饭跟太阳出不出来并没有任何关系。两件事没有任何联系在学术上叫做这两件事相互独立,你这件事发生不干扰我,我这件事发生也不干扰你。条件概率那有哪些事件是不相互独立的呢?你今...原创 2019-07-28 21:02:28 · 4068 阅读 · 1 评论 -
随机梯度下降与梯度下降的区别?
如果你还不了解梯度下降请参考:知乎@Ai酱:{高中生能看懂的}梯度下降是个啥?。随机梯度下降与梯度下降之间有什么区别?假设你已经懂了梯度下降的原理与公式。接下来我会举个例子来讲随机梯度下降与梯度下降的区别。假如损失(误差)函数对参数w的导数是x(wx−label)x(wx - label)x(wx−label),然后我们需要更新的参数是www,学习率是α\alphaα。现在有一堆数据(x1...原创 2019-08-18 17:54:19 · 4680 阅读 · 0 评论 -
numpy与pytorch实现梯度下降,实现一个简单的两层神经网络
numpy 实现梯度下降参考教程:pytorch神经网络实践(1): 安装与初次使用pytorch搭建神经网络实践手写数字识别教程# -*- coding: utf-8 -*-"""让神经元学习到逻辑与这个规则@author: 李韬_varyshare"""# 先随便猜w1,w2,b是多少w1 = 0.666w2 = 0.333b = 0.233def train(): ...原创 2019-08-09 15:11:40 · 635 阅读 · 0 评论 -
零基础一步一步pytorch实现Logistic regression逻辑回归编程教程
为什么我们需要了解Logistic regression逻辑斯蒂回归?因为神经网络的一个神经元就是Logistic regression逻辑斯蒂回归。Logistic regression(LR)逻辑斯蒂回归是什么?它就是套一个概率分布模型上去。什么是模型?模型就是一个函数比如:f(x)=ax+b。至于逻辑斯蒂回归套的那个概率分布模型是什么稍后再说,先说套概率分布模型上去有什么用?在前面提到...原创 2019-08-10 15:56:53 · 1226 阅读 · 0 评论 -
PyTorch代码识别手写数字
完整的PyTorch代码识别手写数字# -*- coding: utf-8 -*-import torchimport torchvisionfrom torchvision import datasets, transforms# 1. 加载MNIST手写数字数据集数据和标签transform = transforms.Compose( [transforms.ToTenso...原创 2019-08-20 19:24:33 · 219 阅读 · 0 评论 -
pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward
pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward这是因为它实现了__call__方法model(input)相当于调用了model.call(input)下面这个是__call__的源码 def __call__(self, *input, **kwargs): for hook in self._for...原创 2019-08-15 23:37:39 · 1705 阅读 · 0 评论 -
对L1,L2正则化和dropout的理解
L1L2正则化L1,L2正则化目的是为了防止过拟合。为何会出现过拟合?答:权重过大。所以L1和L2正则化就是用来防止权重过大的。他们是怎么做的呢?很简单:我们优化参数都是通过最小化损失函数来优化,那么只要我通过某种策略把“防止权重过大”这个目的也加入到损失函数中就可以。L1正则化是这样做的:loss = 损失函数+权重的绝对值之和L2正则化是这样做的:loss = 损失函数+权重的平方和...原创 2019-08-16 13:37:44 · 763 阅读 · 0 评论 -
PyTorch代码识别手写数字并进行评估教程
PyTorch代码识别手写数字# -*- coding: utf-8 -*-import torchimport torchvisionfrom torchvision import datasets, transforms# 1. 加载MNIST手写数字数据集数据和标签transform = transforms.Compose( [transforms.ToTensor()...原创 2019-08-13 10:37:35 · 711 阅读 · 0 评论 -
贝叶斯公式在机器学习中有什么用,实例讲解Python实现朴素贝叶斯分类器
贝叶斯公式=贝叶斯定理贝叶斯公式到底想说啥贝叶斯公式就是想用概率数学来表示事件发生依赖关系。贝叶斯公式长下面这样:用图形怎么表示贝叶斯公式P(X=x)P(X=x)P(X=x)就是X的面积。P(Y=y)P(Y=y)P(Y=y)就是Y的面积。P(X=x∣Y=y)P(X=x|Y=y)P(X=x∣Y=y)是什么?P(X=x∣Y=y)P(X=x|Y=y)P(X=x∣Y=y)是指Y发生的情况下...原创 2019-05-22 21:11:34 · 1075 阅读 · 0 评论 -
适合初学者易懂的机器学习算法之k-means(k均值)Python代码实现
k-means算法中文名叫做k均值。它是一种聚类算法,这是什么意思呢?就是现在我有一堆数据,但是我知道这些数据有k个类。但是具体每一个数据点所属分类我就不知道了。此时就需要用k-means聚类算法,它可以把原先的数据分成k个部分,注意这k个部分包含的数据点的数量不一定相等的。相似的数据就聚在一起。k-means算法操作步骤1. 设定k的取值(你觉得有多少个类就设置是多少,不知道那就把点描出来你...原创 2019-05-26 14:55:09 · 1817 阅读 · 0 评论 -
易懂如何理解单个神经元+随机梯度下降学习逻辑与规则编程实践
易懂的神经网络Python实战:单个神经元+随机梯度下降学习逻辑与规则目录逻辑与(AND)破除神经元的认知障碍实践:用程序表示一个手工设置权重weight和偏置bias的神经元那么怎么让计算机自己确定神经元的参数?梯度下降1。直观理解梯度下降2。梯度下降怎么做的?4。梯度下降有啥用?实践:动手实现随机梯度下降(根据上面的那个伪代码)AI韬鸽的笔记专栏中《...原创 2019-04-26 16:30:31 · 12691 阅读 · 1 评论 -
适合初学者的神经网络理论到实践(5):10分钟从实践了解Python测试入门
Table of Contents- 如何比较运行时某变量大小或类型是否与预期值一致: assert(断言)assert例子:assert练习:- Python单元测试实践- 如何测试近似相等,非常接近我们就认为是相等(需要用到numpy)为何要测试:设定预期结果让计算机判断结果是否符合预期。省得组件很多的时候一个一个的检测这些组件是否运行结果正确。- 如何比较运行时某...原创 2019-05-04 14:51:25 · 683 阅读 · 0 评论 -
Python中numpy中tile和repeat用法和区别
tiletile(数组,重复次数)tile(数组,(第1维重复次数,第2维重复次数,...,第n维重复次数))例子tile(数组,(沿着第1维的轴重复次数,沿着第2维的轴重复次数,…,沿着第n维的轴重复次数))我看了下numpy中tile()函数的源码,它是这么做的。(第1维重复次数,第2维重复次数,...,第n维重复次数)这是个元组。这个元组维度和目标数组维度一样,因为它是要...原创 2019-05-04 15:45:19 · 848 阅读 · 0 评论 -
概率质量(mass)函数和概率密度(density)函数区别
答:他们是同一个东西,不同名字。就像人类,有些叫做男人有些叫做女人,一样的道理。描述离散型数据的概率叫做概率分布函数,描述连续型数据叫做概率密度函数。概率分布函数:各个分类的概率。概率密度函数:数据落在某一段连续的区间的概率。概率分布函数概率密度函数...原创 2019-05-06 14:56:29 · 9450 阅读 · 0 评论 -
从本质看决策树,谈谈信息熵是怎么发现的,ID3决策树Python实践实现XOR异或
本文首发于CSDN @Ai酱 的博客,转载请注明出处。任何机器学习的套路机器学习算法看起来那么多,其实套路就一个。那么多算法是背不下来的,自己知道他们怎么根据套路想出来的就可以。套路就三步:选取一种数学模型来对数据进行分类预测*。线性回归是用直线这个数学模型来划分数据。逻辑回归是用sigmoid这个函数来输出一个概率值。决策树是想用一个二叉树来对数据分类(二叉树也是一个数学模型)确...原创 2019-05-27 10:54:31 · 923 阅读 · 0 评论 -
4分钟看懂逻辑回归是什么?要优化什么参数?和极大似然法有什么关系?机器学习小总结
机器学习虽然那么多事实上都是一个规律。我在文章末尾进行了总结。逻辑回归和线性回归最大区别两个一 是线性回归它认为模型是一条直线,逻辑回归它认为模型是一条曲线。二是优化参数的方法。线性回归就是想让各个样本点离画出来的直线的平均距离尽可能短。而逻辑回归则不是算平均距离。它是用概率来优化的。优化方法叫做极大似然法。还是不懂要优化什么参数?和怎么优化的?看下面的:那么逻辑回归里面的极大似然法怎么做的?逻辑回归到底是什么?要优化什么参数?为何要优化这些参数...原创 2019-05-27 15:29:06 · 1516 阅读 · 2 评论 -
[编辑推荐|易懂]如何理解论文中的那些评估方法性能指标概念名词{召回率 ROC AUC 交叉验证} 适合初学者的神经网络 实战 理论 实践(6)
适合初学者的神经网络 实战 理论 实践(6)[易懂]如何理解论文中的那些评估方法性能指标概念名词{召回率 ROC AUC 交叉验证}作者:知乎 Ai酱首发于:知乎专栏《适合初学者的机器学习神经网络理论到实践》假设现在我们论文是要识别垃圾邮件。将邮件分类为垃圾邮件和非垃圾邮件。好了接下来通过垃圾邮件这个例子说明别人论文中常常出现的评估方法性能的概念名字是什么意思。假如我输入了...原创 2019-05-10 10:38:21 · 483 阅读 · 2 评论 -
适合初学者的神经网络理论到实践(3): 概率统计与机器学习神经网络的联系?
欢迎关注博主或CSDN专栏《适合初学者的神经网络机器学习理论到实践入门》统计就是根据样本估计总体的概率分布。概率是已知总体概率分布,求某个样本的概率。举个高中常见的例子:什么是统计?:不知道袋子里面多少球,现在从袋子取5次球。发现4次是红,1次是白。然后我们估计这个袋子红白比例可能是4:1。这就是统计,根据抽样来估计整体的样本分布规律。什么是概率?:已知袋子有10个球,红球8个,白...原创 2019-04-26 16:34:55 · 1055 阅读 · 0 评论 -
通俗易懂适合初学者的机器学习实战(1):k- Nearest Neighbor (k个最近的邻居)KNN算法
k- Nearest Neighbor (k个最接近的邻居)算法任何机器学习都是假定一种数学模型可以用于当前这个数据解决问题 。而任何数学模型都有参数,其中不同数据参数的取值是不一样的。那么我们学习任何机器学习第一件事。那就是要确定它使用的是数学模型是什么。第二件事就是看这个数学模型有哪些参数需要根据数据来确定。kNN算法到底是什么?它未知参数k到底是什么?kNN很简单。那就是“人以类聚...原创 2019-05-20 13:30:42 · 576 阅读 · 0 评论 -
通俗解释高中生能听懂的SVM本质和原理
当年SVM怎么被发明的?任何机器学习都是套一个数学模型,然后求解数学模型的待求解参数。SVM使用的是怎样的一个模型呢?。现在把我们作为一发明者,看看下面这张图。知道一个算法原理最好的方法是研究它是怎么想出来的,不然直接看公式可能马上就记住了,但是过了段时间就会忘因为没有理解。如果是下面这张图,我们怎么划分开这两组数据?最简单的方式就是用一条直线。现在我们已经发明了一种算法(事实上别人已经发明了...原创 2019-05-24 21:06:18 · 2037 阅读 · 1 评论 -
adaboost理解
基本原理Adaboost算法基本原理就是将多个弱分类器(弱分类器一般选用单层决策树)进行合理的结合,使其成为一个强分类器。Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是以前训练好的,其各种参数都不再改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-...转载 2019-05-25 21:22:16 · 421 阅读 · 0 评论 -
分类交叉熵与二元交叉熵区别?Categorical Cross-Entropy Loss, Binary Cross-Entropy Loss
有时候你用交叉熵发现损失值很低但是识别效果就是不好这可能是因为你有多个分类但是却用二元交叉熵的原因。原创 2019-08-27 19:34:01 · 3464 阅读 · 1 评论