- 博客(32)
- 收藏
- 关注
原创 算法详解系列(三):支持向量机
一、线性可分支持向量机1.1 支持向量机学习目标支持向量机的输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。支持向量机的学习是在特征空间上进行的。对于一个有两个类别的数据集(yi∈{+1,−1}y_i\in\{+1,-1\}yi∈{+1,−1}),假设训练数据集是线性可分的,学习的目标是在特征空间中找到一分离超平面能将实例分到不同类。当数据集线性可分时,有无数个分离超平面可...
2019-10-10 22:35:21 578
原创 推荐系统算法系列(一):FM算法
推荐系统算法系列(一):FM算法一、FM算法背景在计算广告和推荐系统中,CTR预估是非常重要的一个环节,判断一个商品的是否进行推荐需要根据CTR预估的点击率来进行。在进行CTR预估时,除了单特征外,往往要对特征进行组合,对于特征组合来说,业界现在通用的做法主要有两大类:FM系列与Tree系列。实际工程中通常是高维稀疏矩,直接特征交叉会导致计算量过大,特征权值更新缓慢。而FM的优势就是对这两...
2019-10-10 08:14:21 2096
原创 算法详解系列(二):逻辑回归
逻辑回归假设数据服从伯努利分布,通过极大化似然函数方法,运用梯度下降来求解参数,来达到将数据二分目的。一、算法的推导1.1 对数几率函数对数几率函数:是一种Sigmoid函数,通过此函数来输出类别概率。对数几率函数为:y=11+e−(wTx+b)y = \frac { 1 } { 1 + e ^ { - (w^T x+b ) }}y=1+e−(wTx+b)1,其中yyy代表的是样本视...
2019-10-10 07:46:56 663
原创 算法详解系列(一):线性回归
算法详解系列(一):线性回归回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化。回归模型正是表示从输入变量到输出变量之间映射的函数。一、算法的推导1.1 符号规定xj(i)x_{j}^{(i)}xj(i)表示数据集第iii个数据的第jjj个属性取值,数据集XXX一共有mmm个数据,nnn个属性(特征)。...
2019-10-10 07:40:34 480
原创 SGD中batch_size大小的影响
随机梯度下降SGD中有一个重要的超参数batch_size(批量大小),其大小对整个模型训练的影响总结如下: 1.更大的批量会计算更计算更精确的梯度估计,但是回报是小于线性地。 因为每次参数更新所用到的数据越多,越能代表整体损失函数的梯度,因此梯度精确度更高。 2.极小批量通常难以充分利用多核架构,低于某个值的小批量处理并不会减少计算时间。 3.批量处理中所...
2018-06-02 15:25:05 4797
原创 二阶优化算法:牛顿法
牛顿法的基本思想:利用迭代点处的一阶导数(梯度)和二阶导数(Hessian矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似最小值。 牛顿法的更新公式,基于二阶泰勒展开: 然后对上式求导,并令,得到更新公式: 对于神经网络病态条件问题,出现在梯度变化过快的情况时即二阶导数较大,此时通过二阶优化算法如牛...
2018-06-02 12:14:50 7075
原创 利用softmax解决数值上溢和下溢
一、数值上溢和数值下溢的问题 数值上溢:大量级的数被近似为正无穷或负无穷时发生上溢,进一步运算导致无限值变为非数字。 数值下溢:接近零的数被四舍五入为0时发生下溢。被零除,取零的对数,进一步运算会变为非数字。二、softmax函数 三、softmax函数解决数值溢出问题 利用softmax(z)来解决,其中,减去,导致exp里的最大参数为0,这排除了...
2018-05-24 21:27:51 4237 2
原创 Jacobian和Hessian矩阵
一、Jacobian矩阵 包含偏导数矩阵被称为Jacobian矩阵。f的Jacobian矩阵定义为:。二、Hessian矩阵 Hessian是二阶导数矩阵,定义为:,Hessian矩阵是对称的。 将进行二阶泰勒级数展开: 二阶导数小于0,代表一阶导数即斜率是递减的,斜率会随着x变化减小,大于0同理。 根据二阶导数判断极大点、极小点、鞍点: 当,且时,x是...
2018-05-24 21:11:31 1337
原创 贝叶斯概率与频率派概率
频率派概率从自然的角度出发,试图直接为事件本身建模,通俗点就是如果事件A独立试验中频率趋于极限p那么p就是该事件的概率。与概率直接与事件发生的频率相联系,被称为频率派概率。 贝叶斯概率就是想构建一套比较完备的框架来描述最能服务于理论推断这一目的的猜的过程,贝叶斯概率论为人的知识建模来定义概率概念。设计确定性水平时,被称为贝叶斯概率,贝叶斯概率强调强化自身,用自身预测概率来表示之中信任...
2018-05-24 19:46:33 3187
原创 主成分分析(PCA)
对正交属性空间中的样本点,用一个超平面对所有样本进行恰当表达,超平面应该有这样的性质(都是希望降维后损失足够小):最近重构性:样本点到这个超平面的距离都足够近最大可分性:样本点在这个超平面上的投影尽可能分开一、根据最近重构性进行推导 假设样本集X进行了中心化,投影转换坐标系为,其中是标准正交基向量。 样本点投影后的坐标为,说明是维转换。 若基于来重构,会得到 则原样...
2018-05-24 08:35:54 516
原创 pd.concat合并DataFram对象
利用pandas的concat函数进行拼接DataFrame。常用参数:1.合并DataFrame对象列表,如[df1, df2]2.axis,沿着哪个轴进行合并。默认是axis=0,即沿着index进行拼接。3.igonre_index,是否重构index,默认是False,不会重构。若为True,则会重构为0,1,2....的index。下面是对ignore_indexa = pd.DataF...
2018-05-21 21:50:13 1005
原创 利用pandas读取csv数据集常用参数
函数:import pandas as pdpd.read_csv()其中常用的一些参数:第一个常用参数(必有):文件路径。第二个常用参数:sep='',是指数据之间的分割符,默认是','即逗号,一般有的时候比赛给的空格,就要指定sep=' '。第三个常用参数:header,是否包含列名头。这个看数据集给的时候是否有列名,没有时要输入header=None,否则会把第一行数据当做列头名。第四个常...
2018-05-21 21:34:00 2463
原创 EM算法
当训练样本中存在隐变量(隐变量:不可观测的变量),通常通过观察可观测变量对隐变量作出推断,EM算法就是这样一种方法。 令X表示已观测变量集,Z表示隐变量集,表示模型参数,现在是根据X,Z和训练数据的分布,来对参数做极大似然估计。则应该最大化对数似然,然而由于Z是隐变量,上式无法直接求解。 EM算法就是一种常用的参数隐变量算法,是一种迭代式算法,其基本思想是:若参数已知,则可根据...
2018-05-21 10:34:55 332
原创 逻辑回归(logistic regression)推导
逻辑回归是一种分类模型,通过监督学习方法来估计参数。一、逻辑回归模型: 逻辑回归模型是如下条件概率分布: 一个事件的几率指的是该事件发生与不发生概率的比值,即,对数几率是:。 对逻辑回归模型而言,对数几率是:二、逻辑回归的推导及参数估计 逻辑回归使用极大似然法来估计模型参数(似然函数越大,代表联合概率分布发生越大,即越满足给定数据集的分布情况)。 设: 则似然函...
2018-05-21 09:36:12 517
原创 支持向量机(SVM)推导
一、硬间隔支持向量机 1.基于训练集D找到一个划分超平面,使超平面能够将不同类别样本分开。 2.对于不同类别样本,令,仅有几个距离超平面最近的点使得等号成立。通过先调整b能使得超平面恰好在两个异类支持向量各产生一个平行超平面中间。取只是为了后面方便计算,其他常量也可以,只是相当于按比例放缩w和b,因为是依据w、b优化间隔最大,所以w、b的放缩对整体不影响。 ...
2018-05-19 21:26:06 1271
原创 TensorFlow模型持久化(保存、加载)
1.保存TensorFlow模型:import tensorflow as tfsaver = tf.train.Saver()with tf.Session() as sess: ... saver.save(sess, path)path是保存模型的路径及文件名,一般是以.ckpt为后缀,保存完会出现三个文件,一个是model.ckpt.meta,保存的是TensorFl...
2018-05-19 11:38:40 629
原创 深度学习中的正则化
在实际深度学习场景中我们几乎总是发现,最好的拟合模型是一个适当正则化的大型模型。 1. L2参数正则化 L2参数范数惩罚通常又被称为权重衰减,这个正则化策略通过向目标函数添加一个正则项,L2正则化也被称为岭回归或Tikhonov正则。 加入L2正则化后的损失函数:, 加入L2正则化后的梯度:, 加入L2正则化后的权重更新:, 其中是权衡正则化项和标准损失...
2018-05-17 21:36:42 604
原创 决策树的生成与剪枝
介绍决策树的生成过程及算法。关于决策树的结点的特征选择依据:决策树中结点的特征选择方法一、ID3决策树生成算法关键点:依据结点上信息增益进行特征选择算法:输入:训练数据集D,特征集A,阈值输出:ID3算法决策树 T步骤:(先检验两种极端情况)1.检查D中所有数据标签是否为同一类,是同一类,T直接为单节点树,并将此类标记为该结点的类标记并返回T。2.若,则T为单结点树,并将D中实例数最大的类作为该结...
2018-05-14 23:11:04 2187 1
原创 利用TensorFlow构建神经网络的一般步骤及常用方法和函数
一、利用TensorFlow构建神经网络主要分为三个步骤: 1.使用TensorFlow定义神经网络结构及其参数和定义根据定义的神经网络结构定义前向传播输出的结果。 2.利用TensorFlow定义损失函数并选择合适的反向传播优化算法,并在其中加入可能用到的滑移平均,学习率衰减等。 3.利用前两步建立起来的图构建会话,安排batch数据送往前向传播进行计算以及反向传播过程进行...
2018-05-12 17:26:42 6103 1
原创 朴素贝叶斯法
朴素贝叶斯法是基于贝叶斯原理与特征独立假设的分类方法。 朴素贝叶斯法通过训练数据集的学习联合概率分布P(X,Y)。一、朴素贝叶斯算法学习过程: 1.学习先验概率分布:, 2.学习条件概率分布: 3.对给定的新数据x输入,列出x对应后验概率公式,使得后验概率最大化的类作为x的输出。直观理解:在x这个输入条件下,根据训练数据集的分布情况,找出使x最大化后验概率的输...
2018-05-11 21:23:03 513 1
原创 TensorFlow卷积层函数(卷积层+池化层)
TensorFlow中卷积神经网络常用的有卷积层和池化层,下面对常用函数的常用参数进行总结:主要是三个函数:import tensorflow as tftf.nn.conv2d()tf.nn.max_pool()tf.nn.avg_pool()1.tf.nn.conv2d 一般常用的卷积层参数:一般常用四个参数input:输入filter:字面意思是过滤器,其实就是卷积层过滤器,在这里输入...
2018-05-10 22:34:12 2303
原创 检测是否存在这个文件目录,不存在自动创建(Python)
使用os库函数实现。import ossave_dir = "save_path/"if os.path.exists(save_dir) is False: os.makedirs(save_dir)检测是否有这个文件目录,不存在的话,会自动创建。
2018-05-10 21:46:39 6571 6
原创 k近邻算法的实现:kd树
k近邻算法最简单的实现方法是线性扫描。但当训练集很大时,搜索效率低,为了提高效率,可构建kd树。一、构建kd树 以中位数作为切分点得到的kd树时平衡树。kd树本身是一个二叉树,对特征空间进行划分。 算法:输入:数据集T 输出:kd树 1.构造根节点,选择第一个特征为坐标轴,然后只考虑第一个特征,对所有实例的第一个特征的值进行排...
2018-05-10 21:34:43 1343
原创 K近邻法
k近邻法是一种基本分类与回归方法。 k紧邻法的三个基本要素:k值的选择、距离度量、分类决策规则。一、k近邻算法 输入:训练数据集T,要预测的特征向量x。 输出:特征向量x对应实例的类别y。 步骤:1.根据给定的距离度量,在训练集T中找出与x最近邻的k个点。 2.依据找出的k个点,根据决策规则决定x的类别y。 ...
2018-05-10 21:00:04 313
原创 感知机(神经网络和支持向量机基础)
感知机学习旨在求出将训练数据进行线性划分的分离超平面,因此导入误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。一、感知机模型 ,其中w和b是感知机的参数,sign是符号函数: 即对应一个分离超平面S,完全线性可分的数据集会被S分为2类。二、感知机的学习策略 损失函数:一个自然选择是误分类点的个数,但是其不是参数w,b的...
2018-05-10 20:27:28 1092
原创 C/C++enum枚举类型及赋值范围
C++的enum工具提供了一种创建符号常量的方式,这种方式可以代替const 1.创建enum枚举 这语句完成工作:1.让weekday成为新类型的名称,2.让sun、mod、tue等作为符号常量,它们对应整数值0~6.这些常量叫做枚举量。 也可以自定义枚举量的值,指定的值为整数。没指定的自动根据前一个加1,第一个默认是0....
2018-05-10 15:05:19 32908 5
原创 TensorFlow指定GPU设备、分配显存
一、使用GPU加速运算 1.TensorFlow程序中可以通过tf.device函数来指定运行的设备。 CPU名称为"/cpu:0",即使有多个CPU,所有的CPU都使用/cpu:0作为名称。 GPU则不同,是"/gpu:n",n可替换。n=0,即是第一个GPU,以此类推。 2.观察每个运算所用的设备: 使用log_...
2018-05-09 13:26:49 12553 1
原创 决策树中结点的特征选择方法
一、信息增益 信息增益用在ID3决策树中,信息增益是依据熵的变化值来决定的值。 熵:随机变量不确定性大小的度量。熵越大,变量的不确定性就越大。 熵的公式表示: X的概率分布为P(x=xi) = pi, i=1,2,3...(x可能的取值),随机变量X熵为,并且0log0=1。 条件熵:H(Y|X)表示在随机变量X的条件下随机变量Y的不确定性。 在决...
2018-05-09 08:23:46 11047
原创 Windows10安装OpenCV(Python3)
首先看自己Python的版本号,我用anaconda安装的是Python3.6然后在这里用Ctrl+F搜索找到OpenCV,回车点击opencv然后根据自己的Python版本号下载,比如我的是Python3.6,就找cp36,不是前面的3.4.1(这个应该是opencv版本号),然后下载下来,然后我是将下载下来的.whl文件移动到Anaconda的site-packages文件夹中,具体目录:然后...
2018-05-08 21:47:16 517
原创 Pandas-Series
Pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具,pandas基于numpy构建。两个主要数据结构:Series和DataFrame。Series:一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签组成。产生Series:1.仅由一维列表即可产生最简单的Series:obj = Series([-1, 5, 7, 9]) 0
2017-12-18 11:15:03 396
原创 机器学习实战笔记(一) K-近邻(k-NN)算法
机器学习实战第二章 k-近邻算法的学习笔记,并且对这个算法自己查资料进行了扩展,很多自己学习的时候出现的错误及资料都在文章里描述,希望能对大家有帮助。
2017-11-09 23:01:41 846
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人