机器学习
文章平均质量分 97
Lavi_qq_2910138025
这个作者很懒,什么都没留下…
展开
-
机器学习中的数学(1)——怎样形象的理解卷积
形象的理解卷积公式原创 2017-08-22 21:23:09 · 2263 阅读 · 0 评论 -
梯度下降、牛顿法和拟牛顿法
1. 梯度下降法梯度下降法用来求解目标函数的极值。这个极值是给定模型给定数据之后在参数空间中搜索找到的。迭代过程为:可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha。梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底。为了更形象地理解,也为了和牛顿法比较,这里我用一个二维图来表示:懒得画图了直接用这个展示一下...转载 2019-04-01 19:54:26 · 809 阅读 · 0 评论 -
机器学习中的数学(12)-全概率公式与贝叶斯公式
1 条件概率公式设A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概率(conditional probability)为:P(A∣B)=P(AB)/P(B)P(A|B)=P(AB)/P(B)P(A∣B)=P(AB)/P(B)2 乘法公式 1.由条件概率公式得: $$ P(A,B)=P(A|B)P(B)=P(B|A...转载 2019-04-25 10:14:23 · 812 阅读 · 0 评论 -
过拟合处理的理解、发现和处理
过拟合处理的理解、发现和处理1 过拟合是什么2 为什么要解决过拟合3 怎样发现过拟合4 怎么样解决过拟合4.1获取更多数据4.2 使用合适的模型4.2.1 网络结构 Architecture4.2.2 训练时间 Early stopping4.2.3 限制权值 Weight-decay,也叫正则化(regularization)4.2.4 增加噪声 Noise4.3. 结合多种模型4.4 贝叶斯方...转载 2019-05-15 11:00:09 · 2224 阅读 · 0 评论 -
特征工程的基本流程
特征工程的基本流程0 前言1 数据采集 / 清洗 / 采样2 特征处理2.1 数值型2.2 类别型2.3 时间型2.4 文本型2.5 统计型2.6 组合特征3 特征选择3.1 过滤型3.2 包裹型3.3 嵌入型0 前言特征是数据中抽取出来的对结果预测有用的信息,可以是文本或者数据。特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。过程包含了特征提取、特征...转载 2019-05-15 11:16:41 · 2281 阅读 · 0 评论 -
分类问题为什么要使用交叉熵损失函数而不是均方误差
假设现在有一个分类问题:feature是2维的向量目标类别有3种一共有4个样本:转者注:上面虽然使用的是Sigmoid函数,其实分类问题使用的是softmax函数,softmax可以看做sigmoid在对分类问题上的推广。转者注:上面的y1′(1−y1′)y'_1(1-y'_1)y1′(1−y1′)是a对z的导数,a是softma...转载 2019-05-30 22:17:25 · 11772 阅读 · 3 评论 -
softmax交叉熵损失函数求导
0 前言来写一个softmax求导的推导过程,不仅可以给自己理清思路,还可以造福大众,岂不美哉~softmax经常被添加在分类任务的神经网络中的输出层,神经网络的反向传播中关键的步骤就是求导,从这个过程也可以更深刻地理解反向传播的过程,还可以对梯度传播的问题有更多的思考。1 softmax 函数softmax(柔性最大值)函数,一般在神经网络中, softmax可以作为分类任务的输出层。其...转载 2019-05-30 22:27:02 · 3798 阅读 · 0 评论 -
机器学习——详解信息量、熵、条件熵、相对熵(KL散度)和交叉熵
信息量、熵、条件熵、相对熵和交叉熵1 信息量2 信息熵3 条件熵4 相对熵(KL散度)5 交叉熵6 总结7 参考1 信息量一条信息的信息量大小和它的不确定性有直接的关系。我们需要搞清楚一件非常非常不确定的事,或者是我们一无所知的事,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们就不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多...转载 2019-07-20 23:04:40 · 1295 阅读 · 1 评论 -
Huber Loss
Huber Loss 是一个用于回归问题的带参损失函数, 优点是能增强平方误差损失函数(MSE, mean square error)对离群点的鲁棒性。当预测偏差小于 δ 时,它采用平方误差,当预测偏差大于 δ 时,采用的线性误差。相比于最小二乘的线性回归,HuberLoss降低了对离群点的惩罚程度,所以 HuberLoss 是一种常用的鲁棒的回归损失函数。Huber Loss 定义如下:...转载 2019-08-05 17:01:19 · 3154 阅读 · 0 评论 -
机器学习中的数学——梯度和梯度下降
导数、偏导数、方向导数、梯度和梯度下降0 前言1 导数3 导数和偏导数4 导数与方向导数5 导数与梯度6 导数与向量7 梯度下降法8 参考资料0 前言机器学习中的大部分问题都是优化问题,而绝大部分优化问题都可以使用梯度下降法处理,那么搞懂什么是梯度,什么是梯度下降法就非常重要!这是基础中的基础,也是必须掌握的概念! 提到梯度,就必须从导数(derivative)、偏导数(partial de...转载 2019-08-06 10:42:38 · 425 阅读 · 0 评论 -
手写Kmeans代码
1. Kmeans算发流程2. Kmean的Python代码# -*- coding: utf-8 -*-"""Created on Mon Feb 5 11:58:12 2018@author: Administrator"""# -*- coding: utf-8 -*-"""Created on Sat Feb 3 13:51:03 2018@author: Adm...转载 2019-08-24 15:32:01 · 932 阅读 · 0 评论 -
探究余弦距离
来源文章:探究余弦距离转载 2019-08-20 21:46:20 · 356 阅读 · 0 评论 -
凸集
笔试的时候遇到一个题,和凸集有关:以下集合是凸集的是A. {(x,y) |y=x+1}B. {(x,y) | x的平方 + y的平方 = 1}C. {(x,y) | x的平方 + y的平方 <= 1 }D. {(x,y) |x=1 | y=1 }正确答案应该是:A, C首先来看凸集的定义:如果对于一个集合S中的任意两个点A和B,这两个点的连线AB也在S内,那么S就是一个凸集。...原创 2019-08-20 21:54:21 · 4014 阅读 · 2 评论 -
探究马氏距离
马氏距离(Mahalanobis Distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间的相似度指标。但却可以应对高维线性分布的数据中各维度间非独立同分布的问题。1 什么是马氏距离马氏距离(Mahalanobis Distance)是一种距离的度量,可以看作是欧氏距离的一种修正,修正了欧式距离中各个维度尺度不一致且相关的问题。单个数据点...转载 2019-08-21 09:28:46 · 1123 阅读 · 0 评论 -
正则化的作用以及L1和L2正则化的区别
0 正则化的作用正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。 L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归。但是使用正则化来防止过拟合的原理是什么?L1和L...原创 2019-08-21 20:06:16 · 36676 阅读 · 12 评论 -
常用的损失函数
回归损失绝对误差(L1损失)均方误差(L2损失)Huber损失(L1和L2损失的结合,平滑的L1损失)分类损失:4. 0-1损失:常用于感知机5. Logistic 损失:二元的交叉熵损失,用于逻辑回归等二分类的问题6. softmax交叉熵:多分类7. 折页损失:SVM8. 指数损失:Adaboost参考文章:机器学习中常见的损失函数常见的损失函数常见回归和分...转载 2019-09-10 12:53:15 · 242 阅读 · 0 评论 -
为什么LR模型损失函数使用交叉熵不用均方差?
如果使用均方差作为损失函数所以,如果当前模型的输出接近0或者1时,σ′(z)就会非常小,接近0,使得求得的梯度很小,损失函数收敛的很慢。如果使用交叉熵作为损失函数原文链接:为什么LR模型损失函数使用交叉熵不用均方差?...转载 2019-09-13 22:29:05 · 3805 阅读 · 1 评论 -
类别型特征的编码方式
独热编码 (onehot encoding)标签编码(label encoding)二进制编码频数编码 (count encoding)labelcount编码目标编码 (target encoding)它使用目标变量的均值编码类别变量。我们为训练集中的每个分组计算目标变量的统计量(这里是均值),之后会合并验证集、测试集以捕捉分组和目标之间的关系。原文链接:特征工程方法:类别变量...转载 2019-09-15 16:28:43 · 2198 阅读 · 0 评论 -
理解特征工程及特征选择的方法
1 特征工程是什么有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等。首次接触到skl...转载 2019-03-31 17:30:18 · 873 阅读 · 0 评论 -
机器学习中的白化处理
1 相关理论白化这个词,可能在深度学习领域比较常遇到,挺起来就是高大上的名词,然而其实白化是一个比PCA稍微高级一点的算法而已,所以如果熟悉PCA,那么其实会发现这是一个非常简单的算法。白化的目的是去除输入数据的冗余信息。假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的;白化的目的就是降低输入的冗余性。输入数据集X,经过白化处理后,新的数据X’满足两个性...转载 2019-03-04 19:19:16 · 5472 阅读 · 0 评论 -
机器学习(11)-探秘交叉熵损失函数
探秘交叉熵损失函数1 前言2 二分类的交叉损失函数形式2.1 交叉熵损失函数的常见形式2.2 交叉损失函数的另一种形式3 Softmax函数与交叉熵损失函数1 前言学习机器学习相关的算法的时候会,经常看到交叉熵损失函数。交叉熵损失函数的最常见的形式,学习LR(Logistics Regression)函数的时候,给出的交叉熵损失函数,也是比较容易理解的形式。但是除了LR算法中会接触到交叉熵损失...原创 2019-01-09 19:38:19 · 1375 阅读 · 0 评论 -
机器学习中的数学(5)——拉格朗日乘子法和KKT条件
引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值;对于含有不等式约束的优化问题,可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解。拉格朗日求得的并不一定是最优解,只有在凸优化的情况下,才能保证得到的是最优解,所以本文称拉格朗日乘子法得到的为可行解,其实就是局部极小值,接下来从无约束优化开始一转载 2017-08-29 19:49:10 · 2728 阅读 · 0 评论 -
机器学习中的数学(6)——梯度下降法总结
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1.梯度在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简转载 2017-08-30 20:52:17 · 1310 阅读 · 0 评论 -
机器学习中的数学(4)——特征值与奇异值分解及其应用
前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在上篇文章中便是基于特征值分解的一种解释。特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景。奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简转载 2017-08-25 15:24:51 · 1927 阅读 · 0 评论 -
MNIST数据库的理解与转换
MNIST数据库是 Google实验室的Corinna Cortes和纽约大学柯朗研究所的YannLeCun建立的一个手写数字数据库,它有60000个训练样本集和10000个测试样本集。它是NIST数据库的一个子集。可以被用来训练和测试关于手写数字识别的模型。转载 2017-09-20 20:52:16 · 2079 阅读 · 0 评论 -
机器学习中的数学(2)——矩阵中心化、标准化的意义和作用
矩阵中心化和标准化的意义原创 2017-08-25 10:33:30 · 45289 阅读 · 0 评论 -
机器学习中的数学(3)——协方差矩阵和散布(散度)矩阵
1、引言在学习机器学习算法和阅读相关论文的时候,将经常会看到协方差矩阵和散布矩阵的身影,这说明它们在机器学习中具有很重要的作用,究竟有什么样的作用,下面我们就做简要的介绍和分析。2、统计学上的基本概念学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合X={X1,…,Xn},依次给出这些概念的公式描述,这些高中学过数转载 2017-08-25 11:03:14 · 15320 阅读 · 0 评论 -
一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络概要直接上代码是最有效的学习方式。这篇教程通过由一段简短的 python 代码实现的非常简单的实例来讲解 BP 反向传播算法。如果感知机和神经网络的理论知识不够的话,想看懂代码可能还是比较吃力的,建议在看代码之前先看一遍周志华的机器学习-第五章-神经网络。转载 2017-10-16 19:09:21 · 1256 阅读 · 0 评论 -
机器学习中的数学(9)——极大似然估计最通俗的讲解
极大似然估计最通俗的讲解实例引入假设我们需要调查我们学校的男生和女生的身高分布。你怎么做啊?你说那么多人不可能一个一个去问吧,肯定是抽样了。假设你在校园里随便地活捉了100个男生和100个女生。他们共200个人(也就是200个身高的样本数据,为了方便表示,下面,我说“人”的意思就是对应的身高)都在教室里面了。那下一步怎么办啊?你开始喊:“男的左边,女的右边,其他的站中间!”。然后你就先统计抽样得到的转载 2017-11-17 09:53:27 · 1299 阅读 · 0 评论 -
机器学习中的数学(10)——奇异值分解(SVD)及其应用
前言:PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的。在上篇文章中便是基于特征值分解的一种解释。特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景。奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重转载 2017-12-20 13:40:49 · 1166 阅读 · 0 评论 -
机器学习中的数学(7)——PCA的数学原理
前言PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。 当然我并不打算把文章写成纯转载 2017-12-20 15:30:19 · 10020 阅读 · 22 评论 -
线性判别分析(LDA)
前言在之前的一篇博客机器学习中的数学(7)——PCA的数学原理中深入讲解了,PCA的数学原理。谈到PCA就不得不谈LDA,他们就像是一对孪生兄弟,总是被人们放在一起学习,比较。这这篇博客中我们就来谈谈LDA模型。由于水平有限,积累还不够,有不足之处还望指点。下面就进入正题吧。为什么要用LDA前面的博客提到PCA是常用的有效的数据降维的方法,与之相同的是LDA也是一种将数据降维的方法。PCA已经是一种原创 2017-12-22 15:53:05 · 51893 阅读 · 27 评论 -
机器学习中数学(10)——先验概率,后验概率,似然函数和极大似然估计
前言读论文的时候总是碰到什么先验概率,后验概率,似然,总是搞不懂是什么意思,今天决定集中学习一下,并在此记录。基本概念先了解几个基本的概念: 先验概率: 是指根据以往经验和分析得到的概率。 后验概率:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,即执果求因。基础公式联合概率公式:p(x,y)=p(x|y)p(y)=p(y|x)p(x)p(x,y)=p(...转载 2018-07-21 13:19:10 · 1927 阅读 · 0 评论 -
scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等
评估分类器性能的度量,像混淆矩阵、ROC、AUC等内容概要模型评估的目的及一般评估流程分类准确率的用处及其限制混淆矩阵(confusion matrix)是如何表示一个分类器的性能混淆矩阵中的度量是如何计算的通过改变分类阈值来调整分类器性能ROC曲线的用处曲线下面积(Area Under the Curve, AUC)与分类准确率的不同1. 回顾模型评估可以用于在不同的模型类型、调节转载 2017-11-08 14:36:44 · 6214 阅读 · 0 评论 -
scikit-learn中交叉验证及其用于参数选择、模型选择、特征选择的例子
内容概要训练集/测试集分割用于模型验证的缺点K折交叉验证是如何克服之前的不足交叉验证如何用于选择调节参数、选择模型、选择特征改善交叉验证1. 模型验证回顾进行模型验证的一个重要目的是要选出一个最合适的模型,对于监督学习而言,我们希望模型对于未知数据的泛化能力强,所以就需要模型验证这一过程来体现不同的模型对于未知数据的表现效果。 最先我们用训练准确度(用全部数据进行训练和测试)来衡量模型的转载 2017-11-09 15:05:36 · 5697 阅读 · 0 评论 -
集成学习(Ensemble Learning),Bagging、Boosting、Stacking
1 集成学习概述1.1 概述在一些数据挖掘竞赛中,后期我们需要对多个模型进行融合以提高效果时,常常会用Bagging,Boosting,Stacking等这几个框架算法,他们不是一种算法,而是一种集成模型的框架。集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高。目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代...转载 2018-10-12 10:49:43 · 5024 阅读 · 0 评论 -
梯度提升树(GBDT)原理小结
原文链接:梯度提升树(GBDT)原理小结转载 2019-09-15 17:04:56 · 313 阅读 · 0 评论