机器学习
文章平均质量分 51
YZXnuaa
乍见之欢不如久处不厌
展开
-
加速神经网络训练 (机器学习)
包括以下几种模式:Stochastic Gradient Descent (SGD) Momentum AdaGrad RMSProp Adam越复杂的神经网络 , 越多的数据 , 我们需要在训练神经网络的过程上花费的时间也就越多. 原因很简单, 就是因为计算量太大了. 可是往往有时候为了解决复杂的问题, 复杂的结构和大数据又是不能避免的, 所以我们需要寻找一些方法, 让神经...转载 2019-05-20 20:13:00 · 290 阅读 · 0 评论 -
OpenCV实践之路——用OpenCV和Dlib进行人脸颜值预测(Python)
本项目部分基于这个博客Computer Vision for Predicting Facial Attractiveness。按照上面这个博客复现起来比较麻烦(当然是对我而言),而且我想要做的是对于任意一张人脸进行检测之后都可以进行颜值估计,但是他给出的代码还需要进行改动不少才行。现在就把自己的复现过程记录下来。本文中只展示了部分关键代码。完整代码和测试用的数据可以在GitHub上获取。不同点在...转载 2018-06-19 11:44:14 · 610 阅读 · 3 评论 -
RandomForest:随机森林
随机森林:RF随机森林是一种一决策树为基学习器的Bagging算法,但是不同之处在于RF决策树的训练过程中还加入了随机属性选择(特征上的子采样)传统的决策树在选择划分的属性时,会选择最优属性RF 首先,从该节点的属性中损及选择出K个属性组成一个随机子集(类也就是Bagging中的Random Subspaces,一般通常K=log2(n))然后再从这个子集中选择一个最右子集进行划分参数使用这些方法...转载 2018-06-01 20:07:48 · 7145 阅读 · 0 评论 -
Numpy数组的保存与读取
1. 数组以二进制格式保存np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例np.save("filename.npy",a)b = np.load("filename.npy")12利用这种方法,保存文件的后缀名字一定会被置为.npy2. 存取文本文件使用 np.savetxt 和 np.loadt...转载 2018-06-14 16:51:44 · 755 阅读 · 0 评论 -
joblib 保存和读取
在做模型训练的时候,尤其是在训练集上做交叉验证,通常想要将模型保存下来,然后放到独立的测试集上测试,下面介绍的是Python中训练模型的保存和再使用。scikit-learn已经有了模型持久化的操作,导入joblib即可from sklearn.externals import joblib1模型保存>>> os.chdir("workspace/model_save")>...原创 2018-06-14 16:12:15 · 27174 阅读 · 2 评论 -
OpenCV中的Haar+Adaboost级联分类器分解(二):级联分类器结构与XML文件含义
众所周知,OpenCV中的Adaboost级联分类是树状结构,如图1,其中每一个stage都代表一级强分类器。当检测窗口通过所有的强分类器时才被认为是目标,否则拒绝。实际上,不仅强分类器是树状结构,强分类器中的每一个弱分类器也是树状结构。 图1 强分类器和弱分类器示意图 这篇文章将结合OpenCV-2.4.11中自带的haarcascade_frontalface_alt2.xml文件介绍...转载 2018-05-08 17:04:00 · 666 阅读 · 1 评论 -
Haar+Adaboost级联分类器分解(一):Haar特征和积分图
最近由于工作原因,需要研究OpenCV中的Adaboost级联分类器。我阅读了OpenCV中所有相关得代码,包括检测和训练部分,发现目前OpenCV中的Adaboost级联分类器代码有以下2个特点:1.OpenCV代码中的实际算法与Paul.Viola论文中的原始算法差异很大。最新的训练和检测代码实现了Haar、LBP和HOG特征接口,同时训练代码中支持DAB、LAB、RAB和GAB共4种Adab...转载 2018-05-08 17:02:41 · 1095 阅读 · 0 评论 -
初探随机蕨(Random Ferns)
最近在做人脸对齐的时候,看到famous的文章《Face Alignment by Explicit Shape Regression》使用了随机蕨来做人脸特征点的回归预测。先回想一下随机森林。随机森林是很多棵决策树组成的,每颗决策树使用部分的训练样本以及部分的训练特征,并在此特征空间内按信息熵增益从小到大(特征区别度从大到小)来进行分支。最后的分类结果由多棵决策树共同表决,给出lable。要理解...转载 2018-05-07 16:16:10 · 466 阅读 · 0 评论 -
Dictionary Learning(字典学习、稀疏表示以及其他)
第一部分 字典学习以及稀疏表示的概要字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是稀疏字典学习(Sparse Dictionary Learning)。该算法理论包含两个阶段:字典构建阶段(Dictionary Generate)和利用字典(稀疏的)表示样本阶段(Sparse coding with a preco...转载 2018-04-23 18:12:54 · 5428 阅读 · 2 评论 -
见过的最好的PCA解析
1.概述 PCA:主成分分析,一种常用的数据分析方法,不管是在机器学习还是数据挖掘中都会用到。PCA主要通过求数据集的协方差矩阵最大的特征值对应的特征向量,由此找到数据方差最大的几个方向,对数据达到降维的效果,将一个n维的向量降低到d维,其中d<n。本文主要从方差最大化理论解释PCA的实现过程。 首先来看这样几个实际问题,比如那到一个汽车的样本,里面既有千米每小时度量...转载 2018-06-20 15:00:51 · 1876 阅读 · 0 评论 -
交叉熵代价函数(作用及公式推导)
交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式。与二次代价函数相比,它能更有效地促进ANN的训练。在介绍交叉熵代价函数之前,本文先简要介绍二次代价函数,以及其存在的不足。1. 二次代价函数的不足 ANN的设计目的之一是为了使机器可以像人一样学习知识。人在学习分析新事物时,当发现自己犯的...转载 2018-07-12 16:42:12 · 229 阅读 · 0 评论 -
机器学习错题集
1.线性分类器有三大类:感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。感知器准则函数:代价函数J=-(W*X+w0),分类的准则是最小化代价函数。感知器是神经网络(NN)的基础,网上有很多介绍。SVM:支持向量机也是很经典的算法,优化目标是最大化间隔(margin),又称最大间隔分类器,是一种典型的线性分类器。(使用核函数可解决非线性问题)Fisher准...原创 2018-09-27 16:52:10 · 434 阅读 · 0 评论 -
KKT条件
对于含有不等式约束的优化问题,如何求取最优值呢?常用的方法是KKT条件,同样地,把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a, b, x)= f(x) + a*g(x)+b*h(x),KKT条件是说最优值必须满足以下条件:1. L(a, b, x)对x求导为零;2. h(x) =0;3. a*g(x) = 0;求取这三个等式之后就能得到候选最优值。其中第三个式子非常...原创 2019-05-06 01:22:18 · 515 阅读 · 0 评论 -
SMO算法
SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》了。我拜读了一下,下面先...转载 2019-05-05 23:35:49 · 3064 阅读 · 0 评论 -
kNN Python 机器学习算法 代码实现
一、原理看最靠近自身的k个是什么,那自己就是什么。属于消极分类,不需要训练模型需要计算全局距离,当samples很大时很难使用(当然可以抽样)二、代码import numpy as npfrom sklearn.datasets import load_irisimport distance as diris = load_iris()data = iris.da...原创 2019-04-19 02:38:43 · 350 阅读 · 0 评论 -
【Sklearn】DecisionTreeClassifier
1.scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内部实现是使用了调优过的CART树算法,既可以做分类,又可以做回归。分类决策树的类对应的是DecisionTreeClassifier,而回归决策树的类对应的是DecisionTreeRegressor。两者的参数定义几乎完全相同,但是意义不全相同。下面就对DecisionTreeClassifier...转载 2019-04-27 09:51:03 · 1605 阅读 · 0 评论 -
【Sklearn】决策树可视化 (未完成)
个人总结困难之处有三点:1、属性存在二元属性、标称属性、序数属性、连续属性四种,训练方式没有可视化比较混乱;2、每个步骤有足够的意义,所以需要观察分类过程;3、不同于难以解释的神经网络,或者分离超平面可以用一个式子表达,决策树划分结果通常需要语言描述;1、等高线方法,只能观察两种特征值对结果的影响,当特征增多时,等高线图呈现平方级数增长详情:Sklearn官方demo,使用经典...原创 2019-04-26 18:19:15 · 339 阅读 · 0 评论 -
【Sklearn】决策树可视化 InvocationException: GraphViz's executables not found
仅仅安装pydotplus不够,需要安装独立Graphviz软件一、安装Graphviz网站:http://www.graphviz.org/download/下载msi文件直接安装,完成之后添加环境变量:在path中将Graphviz的bin的目录路径添加上;二、安装pydotplus打开Anaconda Prompt,输入pip...转载 2019-04-26 17:17:20 · 321 阅读 · 0 评论 -
【Sklearn】tree.export_graphviz 可视化函数
Parameters: decision_tree:decision tree regressor or classifier The decision tree to be exported to GraphViz. out_file:file object or string, optional (default=None) Handle or n...原创 2019-04-26 15:15:35 · 11288 阅读 · 0 评论 -
K均值算法
一、原理二、Python实现import matplotlibimport matplotlib.pyplot as pltimport numpy as np# Data for plottingdef createdata(): np.random.seed(0) data0 = np.random.rand(2, 100) ...原创 2019-04-14 23:54:51 · 811 阅读 · 0 评论 -
DBSCAN代码实现 Python(未完成)
一1.DBSCAN密度聚类简介DBSCAN 算法是一种基于密度的聚类算法: 1.聚类的时候不需要预先指定簇的个数 2.最终的簇的个数不确定DBSCAN算法将数据点分为三类: 1.核心点:在半径Eps内含有超过MinPts数目的点。 2.边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点。 3.噪音点:既不是核心点也不是边界点的点。如下图所示...原创 2019-04-17 03:14:55 · 643 阅读 · 0 评论 -
特征提取方法: one-hot 和 TF-IDF
one-hot 和 TF-IDF是目前最为常见的用于提取文本特征的方法,本文主要介绍两种方法的思想以及优缺点。1. one-hot1.1 one-hot编码 什么是one-hot编码?one-hot编码,又称独热编码、一位有效编码。其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。举个例子,假设我们有四个样本(行),每个样本有三个特征...转载 2018-04-13 17:59:04 · 924 阅读 · 0 评论 -
奇异值分解(SVD)及其扩展详解
SVD是一种常用的矩阵分解技术,是一种有效的代数特征提取方法。SVD在协同过滤中的主要思路是根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来分析数据得出预测结果。RSVD、SVD++、ASVD是基于SVD的改进算法。本文算法主要考虑个性化推荐领域1.Matrix Factorization Model 和 Baseline Predictors ...转载 2018-04-04 18:38:01 · 1999 阅读 · 0 评论 -
物体推荐算法(代码修正版)
1. 原理 协同过滤算法一般需要以下几个步骤收集用户偏好找到相似的用户或物品计算推荐协同过滤算法主要有基于用户的协同过滤和基于物品的协同过滤。 user_based_CF就是把与你有相同爱好的用户所喜欢的物品(并且你还没有评过分)推荐给你 item_based_CF则与之相反,把和你之前喜欢的物品近似的物品推荐给你2. 代码数据下载:https://grouplens.org/...原创 2018-04-04 16:27:11 · 531 阅读 · 0 评论 -
2017年深度学习必读31篇论文
2017年即将擦肩而过,Kloud Strife在其博客上盘点了今年最值得关注的有关深度学习的论文,包括架构/模型、生成模型、强化学习、SGD & 优化及理论等各个方面,有些论文名扬四海,有些论文则非常低调。一如既往,首先,标准免责声明适用,因为今年仅与GAN有关的论文就超过1660篇。我肯定会有疏漏,试图缩减到每两周一篇论文,包含了Imperial Deep Learning Readi...转载 2018-03-23 11:12:30 · 1407 阅读 · 0 评论 -
【Python】SVM 线性可分 硬间隔最大化
1. 代码from sklearn import svmimport numpy as npimport matplotlib.pyplot as plt# np.random.seed(0)x = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]] # 正态分布来产生数字,20行2列*2pr...原创 2018-03-13 10:42:01 · 1348 阅读 · 1 评论 -
流形学习存在的缺点
当前的流形学习方法存在的主要不足有:(1) 流形学习算法计算复杂度高现有流形学习的一个很大瓶颈就是计算复杂度太高,这阻碍了其在实际中的应用。虽然其对非线性数据具有较好的降维效果,但如何有效降低计算量,甚至推广其线性化算法是一个研究热点。线性化是一个很好的方法,但是线性化以后对于高度的非线性问题也一样束手无策。如何得到可处理非线性数据的线性化流形学习方法值得进一步研究。(2) 流形学习算法的分类能力...转载 2018-03-22 15:59:57 · 2373 阅读 · 0 评论 -
【Python】HMM 代码解析理解
1.网上找的代码,理解起来还是困难,看懂了之后加了注释import numpy as npclass HMM: def __init__(self, Ann, Bnm, pi1n): self.A = np.array(Ann) # 状态转移概率 NxN self.B = np.array(Bnm) # 观测概率矩阵 NxM ...原创 2018-03-12 13:11:53 · 1898 阅读 · 0 评论 -
文本分类算法综述
文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。两种方法出自不同角度的研究者,训练集法更多的来自计算机或人工智能研究领域,而分类表法则更多地来自突出情报领域。本文主要介绍前一种。基于训练集的文本分类是一种典型的有教师的机器学习问题,一般分为训练和分类两个阶段,具体过程如下:训练阶段:1) 定义类别集合 ,这些类别可是是层次式的,...原创 2018-03-16 10:40:08 · 2585 阅读 · 0 评论 -
【机器学习】学习率策略
学习率策略学习率策略的设置是一个枚举类型typedef enum { CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM} learning_rate_policy;123这是在前面就提到的。我们现在来看看,这几个有什么区别(参考caffe源码)CONSTANT:学习率是一个固定的值learning_rateSTEP:是一种均匀分步策略learni...原创 2018-03-01 13:55:16 · 2130 阅读 · 0 评论 -
svm核函数的理解和选择
特征空间的隐式映射:核函数 咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。 此外,因为训练样例一般是不会独立出现的,它们总是以成对样例的内积形式出现,而用对偶形式表示学习器的优势在为在该表示中可调参数的个数不依赖输入属性的...转载 2018-02-28 17:32:25 · 1082 阅读 · 0 评论 -
标注问题
在 NLP 问题中,有两个问题是比较重要的标记问题:词性标注和命名实体识别。比如上图我们介绍了一个简单的词性标注问题。模型输入的是一个句子,输出是一个标记序列,模型会为每个词都产生一个标记。我们的目标是构建一个高精度的词性标注模型。词性标注问题是 NLP 中最基础的问题之一,在很多的应用中都有用。我们假设我们有一个标记训练集,也就是每个句子都带有标记序列。比如,Penn WSJ 包含 100万字(...原创 2018-02-28 15:58:05 · 3357 阅读 · 0 评论 -
【OpenCV】 实现神经网络
一、代码 发个CSDN,证明我看过import cv2import numpy as npfrom random import randintanimals_net = cv2.ml.ANN_MLP_create()animals_net.setTrainMethod(cv2.ml.ANN_MLP_RPROP | cv2.ml.ANN_MLP_UPDATE_WEIGHTS)anima...原创 2018-02-11 11:36:42 · 1503 阅读 · 0 评论 -
【机器学习】SVM iris数据集实现2
一、导入sklearn算法包 Scikit-Learn库已经实现了所有基本机器学习的算法,具体使用详见官方文档说明:http://scikit-learn.org/stable/auto_examples/index.html#support-vector-machines。 skleran中集成了许多算法,其导入包的方式如下所示, 逻辑回归:from sklearn.linear_mode...原创 2018-03-13 17:36:55 · 3674 阅读 · 0 评论 -
CRF学习
一、CRF的概念和原理参考《条件随机场理论综述》(韩冬雪、周彩根),这篇文章里面对CRF的基本理论都做了介绍,主要包括了以下一些问题。1.离散马尔科夫过程,即当前所处的状态仅与它之前的一条状态有关。2.隐马尔科夫五个要素:N、M、A、B、PI。一个完整的马尔科夫模型要求两个具体的模型参数N和M,三个概率矩阵A、B、PI。3.隐性马尔科夫模型的三个基本问题:1)给定一个模型λ =(N、M、A、B、P...转载 2018-03-20 11:14:20 · 649 阅读 · 0 评论 -
概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。概率图模型学习笔记:HMM、MEMM、CRF一、Preface二、Prerequisite 2.1 概率图 2.1.1 概览 2.1.2 有向图 vs....转载 2018-03-20 15:21:47 · 14639 阅读 · 2 评论 -
激活函数 Sigmoid/Tanh/ReLU/Maxout
日常 coding 中,我们会很自然的使用一些激活函数,比如:sigmoid、ReLU等等。不过好像忘了问自己一()件事:为什么需要激活函数?激活函数都有哪些?都长什么样?有哪些优缺点?怎么选用激活函数?本文正是基于这些问题展开的,欢迎批评指正!(此图并没有什么卵用,纯属为了装x …)Why use activation functions?激活函数通常有如下一些性质:非线性: 当激活函数是线性的...转载 2018-03-28 20:36:42 · 1851 阅读 · 0 评论 -
TFIDF介绍
任务一:现在有一篇长文《中国的蜜蜂养殖》,用计算机提取它的关键词。1、词频:如果某个词很重要,它应该在这篇文章中多次出现。我们进行"词频"(Term Frequency,缩写为TF)统计。2、停用词:结果你肯定猜到了,出现次数最多的词是----"的"、"是"、"在"----这一类最常用的词。它们叫做"停用词"(stop words),表示对找到结果毫无帮助、必须过滤掉的词。 规则一:如果某个词比较...转载 2018-04-16 14:32:31 · 3673 阅读 · 0 评论 -
独热编码(One-Hot Encoding)
【概念】One-hot encoding是只存在一个1其余全为0的n位序列。也可以称它为二元向量,二元就是里面只有0和1.通常被用来描述一个状态机的某个状态。【用处】用于处理离散型特征。通过将离散特征通过one-hot编码映射到欧式空间,可以进一步计算特征之间的距离与相似度,然后在回归,分类,聚类等机器学习算法中使用。至于什么是离散型数据,欧式空间,特征距离和特征相似度,请同学自行学习,这里不做展...转载 2018-04-16 14:16:36 · 669 阅读 · 0 评论 -
浅谈流形学习
总觉得即使是“浅谈”两个字,还是让这个标题有些过大了,更何况我自己也才刚刚接触这么一个领域。不过懒得想其他标题了,想起来要扯一下这个话题,也是因为和朋友聊起我自己最近在做的方向。Manifold Learning 或者仅仅 Manifold 本身通常就听起来颇有些深奥的感觉,不过如果并不是想要进行严格的理论推导的话,也可以从许多直观的例子得到一些感性的认识,正好我也就借这个机会来简单地谈一下这个话...转载 2018-03-26 15:54:39 · 276 阅读 · 0 评论