
Machine Learning
文章平均质量分 86
Webbley
机器学习/深度学习/NLP/
展开
-
机器学习:算法性能度量之查准率与查全率
我们经常使用错误率(即分类错误的样本占总体样本的比例)来分析一个机器学习算法的性能,但是有时候不能满足任务的需求。例如,我们想要利用机器学习算法来预测肿瘤是不是恶性的。在训练集中,只有0.5%的样本是恶性肿瘤。假设我编写一个非机器学习的算法,无论输入是什么,我都预测肿瘤是良性的,那么最终错误率也就只有0.5%。而如果我通过一个机器学习算法得到了1%的错误率,我是不是可以说这个机器学习的算法反而...原创 2017-08-08 21:47:45 · 3636 阅读 · 2 评论 -
模型评估指标AUC(area under the curve)
AUC在机器学习领域中是一种模型评估指标。根据维基百科的定义,AUC(area under the curve)是ROC曲线下的面积。所以,在理解AUC之前,要先了解ROC是什么。而ROC的计算又需要借助混淆矩阵,因此,我们先从混淆矩阵开始谈起。混淆矩阵假设,我们有一个任务:给定一些患者的样本,构建一个模型来预测肿瘤是不是恶性的。在这里,肿瘤要么良性,要么恶性,所以这是一个典型的二分类...原创 2018-03-07 16:42:33 · 142185 阅读 · 42 评论 -
机器学习:对于反向传播算法(backpropagation)的理解以及python代码实现
本文是对机器学习中遇到的后向传播算法进行理解,假设读者已经知道神经网络中的神经元的含义,激励函数的定义,也知道了后向传播算法那个传播公式等。本文主要是为了理解为什么后向传播算法中的δ\delta是安照那个传播方式往后传播。如上图,其中,L是神经网络的层数,a是神经元的输出,θ\theta是权重(参数)。 对于最后一层的神经元来说,偏差E我们可以很容易地定义: E=12(a(L)1−y)2E =原创 2017-08-03 16:15:07 · 3682 阅读 · 0 评论 -
无监督学习之K-均值算法分析与MATLAB代码实现
前言K-均值是一种无监督的聚类算法。首先我们要知道什么是无监督,无监督就是说在数据集中,数据是没有标签的。在有监督的数据集中,数据的形式可能是这样:{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}。而在无监督的数据集中,数据的形式是:{x(1),原创 2017-09-08 19:43:39 · 4325 阅读 · 0 评论 -
机器学习:支持向量机(SVM)与Python实现第(四)篇
前言最近看了Andrew Ng的机器学习视频中的支持向量机,视频的内容比较浅显,没有深入解释支持向量机中的数学原理。但是对于一个比较执着于知道为什么的人,笔者还是去网上查找了有关支持向量机原理以及实现的相关资料。在查找的过程中,笔者发现支持向量机的内容还是蛮多的,于是笔者根据自己的理解,并且参考了一些相关资料,最终写下了支持向量机的四篇博客。 机器学习:支持向量机(SVM)与Python实现第(一原创 2017-08-29 14:23:14 · 5161 阅读 · 1 评论 -
机器学习:支持向量机(SVM)与Python实现第(三)篇
前面我们介绍了很多东西,但一直都是基于数据是线性可分的。那么对于那些非线性的数据呢? 比如上面的图,数据显然不是线性可分的(事实上得用圆来作边界)。我们知道二次曲线方程(圆是特殊的二次曲线)一般可以写成: w1x21+w2x22+w3x1x2+w4x1+w5x2+w6=0\begin{aligned}w_1x_1^2+w_2x_2^2+w_3x_1x_2+w_4x_1+w_5x_2+w_原创 2017-08-25 09:41:23 · 2337 阅读 · 0 评论 -
机器学习:支持向量机(SVM)与Python实现第(二)篇
上一节经过我们的推导,最终把问题变成: minγ,w,b 12∥w∥2s.t. y(i)(wTx(i)+b)≥1, i=1,...,m\begin{aligned}& \underset{\gamma,w,b}{min} \ \frac{1}{2}\left \| w \right \|^2\\&s.t.\ \ y^{(i)}(w^{T}x^{(i)}+b)\geq 1,\ i=1,...,原创 2017-08-24 15:53:53 · 2966 阅读 · 1 评论 -
机器学习:支持向量机(SVM)与Python实现第(一)篇
前言最近看了Andrew Ng的机器学习视频中的支持向量机,视频的内容比较浅显,没有深入解释支持向量机中的数学原理。但是对于一个比较执着于知道为什么的人,笔者还是去网上查找了有关支持向量机原理以及实现的相关资料。在查找的过程中,笔者发现支持向量机的内容还是蛮多的,于是笔者根据自己的理解,并且参考了一些相关资料,最终写下了支持向量机的四篇博客。 机器学习:支持向量机(SVM)与Python实现第(一原创 2017-08-23 20:16:35 · 14992 阅读 · 0 评论 -
机器学习:梯度下降算法
假如我们有一个数据集: (xi1,xi2,yi)(x_{1}^{i},x_{2}^{i},y^{i}) 其中,i是从1到m。数据集总共有m组。前两个是自变量,最后一个是因变量。我们可以这样理解,存在某种关系,使得y会随着x1和x2的变化而变化。这种理解跟函数是不是很像?实际上,我们确实可以假设存在这样一个函数,它跟数据集很拟合。所以即使数据集里没有的它也可以预测出结果。现在假设有一个线性的原创 2017-07-17 21:13:22 · 572 阅读 · 0 评论 -
机器学习:如何理解机器学习中的逻辑回归
逻辑回归也可以说是一个分类器。在二分类器中,输出要么是0,要么是1。所以对于一组输入来说,我们要做的就是通过这个输入的数据,经过假设函数的处理之后,输出结果是1的概率。也就是说,输出是一个概率值。所以现在要转成逻辑函数: hθ(x)=11+e−θTxh_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}x}} 如何理解这个逻辑函数呢? 这个函数就是为了评估输入为x时原创 2017-07-23 11:41:21 · 607 阅读 · 0 评论 -
机器学习:如何理解神经网络可以用来解决复杂的非线性函数
我们知道神经网络里面有很多的层,每一层又有很多的神经元。看起来就非常复杂,似乎输入与输出都很凌乱,对它的理解也很难。那么我们可以从单个神经元入手,考虑单个神经元的输入与输出之间的关系,再扩展到整个神经网络。从图中可以得到: hθ(x)=g(−30+20x1+20x2)h_{\theta}(x)=g(-30+20x_{1}+20x_{2}) 假如x1和x2的组合如下: x1 x2 y原创 2017-07-23 17:16:20 · 8804 阅读 · 0 评论 -
机器学习:偏差、方差与欠拟合、过拟合
首先,我们先来理解一下偏差与方差的概念。举个高中数学里经常出现的例子,两个射击选手在射靶。甲射出的子弹很集中在某个区域,但是都偏离了靶心。我们说他的射击很稳定,但是不够准,准确性差。也就是说他的方差小(子弹很集中在某个区域),但是他的偏差大(子弹打中的地方距离靶心远)。相反,乙射出的子弹比较分散,但是有些很准,中了靶心。我们说他射击比较准,但是发挥不够稳定,稳定性差。 所以,偏差是描述了准确性。方原创 2017-08-07 20:32:10 · 6325 阅读 · 0 评论 -
为什么要用交叉熵作为代价函数
对于大多数人来说,犯错是一件让人很不开心的事情。但反过来想,犯错可以让我们意识到自己的不足,然后我们很快就学会下次不能再犯错了。犯的错越多,我们学习进步就越快。同样的,在神经网络训练当中,当神经网络的输出与标签不一样时,也就是神经网络预测错了,这时我们希望神经网络可以很快地从错误当中学习,然后避免再预测错了。那么现实中,神经网络真的会很快地纠正错误吗?我们来看一个简单的例子: 上图是...原创 2018-03-10 20:28:33 · 5443 阅读 · 6 评论