机器学习
anshiquanshu
这个作者很懒,什么都没留下…
展开
-
变分自编码器VAE:原来是这么一回事
过去虽然没有细看,但印象里一直觉得变分自编码器(Variational Auto-Encoder,VAE)是个好东西。趁着最近看概率图模型的三分钟热度,我决定也争取把 VAE 搞懂。于是乎照样翻了网上很多资料,无一例外发现都很含糊,主要的感觉是公式写了一大通,还是迷迷糊糊的,最后好不容易觉得看懂了,再去看看实现的代码,又感觉实现代码跟理论完全不是一回事啊。终于,东拼西凑再加上我这段时间对概率模型的一些积累,并反复对比原论文Auto-Encoding Variational Bayes,...转载 2020-10-11 21:14:04 · 707 阅读 · 2 评论 -
Linux下非root安装GCC9.1.0
说明一般Linux系统自带或公共的GCC版本都很低,如目前我们的服务器版本的GCC还停留在gcc-4.9.3,而官网已到达9.2版本(下载http://ftp.gnu.org/gnu/gcc/),有些项目编译时需要更高版本的GCC,这时就需要自己额外安装一个了。网上关于非root用户的教程有很多,但大多数都很旧且不靠谱,我找到了几个比较实用的,总结一下,亲测有效。安装GCC主要依赖三个库:GMP,MPFR和MPC,另还有个ISL库(不知是否是必需)。之前的旧版本可能需要手动依次安装这些依...原创 2020-07-11 11:07:54 · 1757 阅读 · 3 评论 -
Python中Gradient Boosting Machine(GBM)调参方法详解
1.前言如果一直以来你只把GBM当作黑匣子,只知调用却不明就里,是时候来打开这个黑匣子一探究竟了!这篇文章是受Owen Zhang (DataRobot的首席产品官,在Kaggle比赛中位列第三)在NYC Data Science Academy里提到的方法启发而成。他当时的演讲大约有2小时,我在这里取其精华,总结一下主要内容。不像bagging算法只能改善模型高方差(hi转载 2017-11-15 17:07:59 · 856 阅读 · 0 评论 -
GBDT算法整理
最近重点学习了gbdt算法,看了较多的博客文章,整理了一下这些比较有用的内容,包括算法理论、算法分析、代码剖析、注意事项等各个方面。转载来源:http://www.cnblogs.com/rocketfan/p/4324605.htmlhttp://www.cnblogs.com/rocketfan/p/4365950.htmlhttp://www.cnbl转载 2017-11-15 16:34:21 · 724 阅读 · 0 评论 -
信息论(Information theory)的一些知识点
①—熵(entropy) 对于一个变量X~p(X服从p分布),该变量的熵是描述该变量的不确定性的一个值 eg:对于一个有k个状态的离散随机变量X,有 a.当log以2为底的时候称之为 bits,结果可以视为多少个二进制位可以表示该变量 b.当log以e为底的时侯称之为转载 2017-11-15 16:06:43 · 4360 阅读 · 0 评论 -
GBDT 学习
1.0 背景:为什么学(写)GBDT这么多乱七八糟的“算法”,为什么要学GBDT呢?主要是最近听到这个名词比较多,想了。那么为什么要再写GBDT呢(鉴于各种牛人满天飞,我怎么就好意思献丑了)?着实是看看了网上一些博客后,有很多疑问,后来自己把这些疑问解决了,就想着分享一下,减少大家的学习成本。所以我就不再从头说起了,新朋友可以参拜一下以下文章。http://blog.csdn.ne转载 2017-11-14 15:41:32 · 354 阅读 · 0 评论 -
XGBoost参数调优
1、XGBoost的优势XGBoost(eXtreme Gradient Boosting)是Gradient Boosting算法的一个优化的版本。XGBoost算法可以给预测模型带来能力的提升。当我对它的表现有更多了解的时候,当我对它的高准确率背后的原理有更多了解的时候,我发现它具有很多优势:1、正则化标准GBM的实现没有像XGBoost这样的正则化步骤。正则化对减少过转载 2017-11-14 15:40:01 · 488 阅读 · 0 评论 -
XGBoost参数调优
在analytics vidhya上看到一篇,写的很好。因此打算翻译一下这篇文章,也让自己有更深的印象。具体内容主要翻译文章的关键意思。原文见:http://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/这篇文章按照原文的分节,转载 2017-11-14 15:39:12 · 1079 阅读 · 0 评论 -
GBDT(MART) 迭代决策树入门教程 | 简介
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(g转载 2017-11-09 14:45:29 · 190 阅读 · 0 评论 -
SVM参数详解
svm参数说明----------------------如果你要输出类的概率,一定要有-b参数svm-train training_set_file model_filesvm-predict test_file model_fileoutput_file自动脚本:python easy.py train_data test_data自动选择最优参数,自动转载 2017-12-08 16:06:44 · 952 阅读 · 0 评论 -
机器学习竞赛技巧
Kaggle 是目前最大的 Data Scientist 聚集地。很多公司会拿出自家的数据并提供奖金,在 Kaggle 上组织数据竞赛。我最近完成了第一次比赛,在 2125 个参赛队伍中排名第 98 位(~ 5%)。因为是第一次参赛,所以对这个成绩我已经很满意了。在 Kaggle 上一次比赛的结果除了排名以外,还会显示的就是 Prize Winner,10% 或是 25% 这三档。所以刚刚接触转载 2017-12-08 17:16:24 · 302 阅读 · 0 评论 -
scikit-learn 梯度提升树(GBDT)调参小结
在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点。1. scikit-learn GBDT类库概述 在sacikit-learn中,GradientBoostingClassifier为GBDT的分类类, 而GradientBoostingRegressor为G转载 2017-12-27 16:31:34 · 421 阅读 · 0 评论 -
全网最全的Windows下Anaconda2 / Anaconda3里正确下载安装OpenCV(离线方式和在线方式)(图文详解)
不多说,直接上干货! 说明: Anaconda2-5.0.0-Windows-x86_64.exe安装下来,默认的Python2.7 Anaconda3-4.2.0-Windows-x86_64.exe安装下来,默认的Python3.5 Anaconda3-5.0.0-Windows-x86_64.exe安装下来,默认的Python3.6转载 2017-12-19 16:57:54 · 3950 阅读 · 1 评论 -
win10 下xgboost的安装----终极版
前言在最近的比赛中用到了xgboost这个比赛神器,由于在matlab中有大量的现有函数,且切换双系统太麻烦,因袭想在win10上安装xgboost来简化操作。准备过程安装之前查看了两篇博客(1)[在WIN10下使用anaconda2安装xgboost](2)64位win10下安装xgboost python包的教程有意思的是这两篇文章提出了相对的观点,看截图:转载 2017-12-28 22:19:07 · 1350 阅读 · 0 评论 -
win10+python3安装Xgboost
安装步骤:安装Git for Windows打开 bash: 输入:git clone --recursive https://github.com/dmlc/xgboost 等待clone完成然后在bash中输入: git submodule init git submodule update修改.bashrc文件:该文件在你所安装的Git目录下etc文件夹中: 即bash.bashrc文件。在...原创 2017-12-28 22:24:00 · 1350 阅读 · 2 评论 -
XGBoost参数调优完全指南(附Python代码)
1. 简介如果你的预测模型表现得有些不尽如人意,那就用XGBoost吧。XGBoost算法现在已经成为很多数据工程师的重要武器。它是一种十分精致的算法,可以处理各种不规则的数据。 构造一个使用XGBoost的模型十分简单。但是,提高这个模型的表现就有些困难(至少我觉得十分纠结)。这个算法使用了好几个参数。所以为了提高模型的表现,参数的调整十分必要。在解决实际问题的时候,有些问题是很难回转载 2017-12-29 16:15:34 · 812 阅读 · 0 评论 -
机器学习问题汇总
LR 专题1 讲一下逻辑回归,及优缺点2 用代码写出LR的损失函数(目标函数),损失函数如何推导?3 LR的优化方法及区别,梯度下降有哪几种4 LR的思想 LR对输入和输出的分布假设5 LR可以用来处理非线性问题么? 怎么做? 可以像SVM那样么? 为什么?6 LR模型为什么采用似然估计?7 LR为什么要用对数似然,不用平方损失和绝对值之类?平方损失是不是凸函数?8 线性回归和逻辑回归的不同?输出...转载 2018-03-26 15:46:42 · 613 阅读 · 0 评论 -
ubuntu文本模式/终端中文乱码解决
最近在学习linux文本模式下的使用,遇到第一个问题就是在文本模式下中文乱码,自然想到是编码的问题,所以在网上找了一下解决方法,有人的解决方式是以下这样的(发现我的ubuntu13.10无效,可能我还不是很了解吧):--------------------------------1.Alt+Ctrl+F1 进入第一个终端tty1,发现中文乱码。 2.安装zhcon。 sudo apt-get in...转载 2018-04-03 22:00:20 · 5107 阅读 · 0 评论 -
关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
一、标准化(Z-Score),或者去除均值和方差缩放公式为:(X-mean)/std 计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。实现时,有两种不同的方式:使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标转载 2017-09-30 11:16:18 · 452 阅读 · 0 评论 -
数据挖掘(机器学习)面试--SVM面试常考问题
应聘数据挖掘工程师或机器学习工程师,面试官经常会考量面试者对SVM的理解。以下是我自己在准备面试过程中,基于个人理解,总结的一些SVM面试常考问题(想到会再更新),如有错漏,请批评指正。(大神请忽视)转载请注明出处:blog.csdn.net/szlcw1SVM的原理是什么?SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的转载 2017-09-20 03:10:47 · 486 阅读 · 0 评论 -
svm与logistic regression的区别
两种方法都是常见的分类算法,从目标函数来看,区别在于逻辑回归采用的是logistical loss,svm采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重.SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器.而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与转载 2017-09-18 22:56:53 · 1188 阅读 · 0 评论 -
机器学习中的范数规则化之(二)核范数与规则项参数选择
机器学习中的范数规则化之(二)核范数与规则项参数选择上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮叨下核范数和规则项参数选择。知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正。谢谢。三、核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就转载 2016-11-16 15:14:01 · 525 阅读 · 0 评论 -
机器学习算法中文视频教程
机器学习算法中文视频教程zouxy09@qq.comhttp://blog.csdn.net/zouxy09 在网上狂搜ReproducingKernel Hilbert Space的时候,找到了一个好东西。这个是李政軒Cheng-Hsuan Li的关于机器学习一些算法的中文视频教程。感觉讲得很好。这里非常感谢他的分享:http://www.power转载 2016-11-16 14:35:29 · 625 阅读 · 0 评论 -
PCA数学原理
PCA数学原理PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。转载 2016-11-16 16:12:54 · 420 阅读 · 0 评论 -
AUC计算方法总结
AUC计算方法总结一、roc曲线1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)纵轴:真正类率(true postive转载 2016-11-16 16:00:29 · 1672 阅读 · 1 评论 -
Deep Learning(深度学习)
Deep Learning(深度学习)ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错。deeplearning.net主页,里面包含的转载 2016-12-02 11:15:02 · 631 阅读 · 0 评论 -
支持向量机_7:Kernel II
在之前我们介绍了如何用 Kernel 方法来将线性 SVM 进行推广以使其能够处理非线性的情况,那里用到的方法就是通过一个非线性映射 ϕ(⋅) 将原始数据进行映射,使得原来的非线性问题在映射之后的空间中变成线性的问题。然后我们利用核函数来简化计算,使得这样的方法在实际中变得可行。不过,从线性到非线性的推广我们并没有把 SVM 的式子从头推导一遍,而只是直接把最终得到的分类函数f转载 2016-12-07 19:48:18 · 461 阅读 · 0 评论 -
支持向量机_2: Support Vector
介绍支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西。不妨回忆一下上次最后一张图:可以看到两个支撑着中间的 gap 的超平面,它们到中间的 separating hyper plane 的距离相等(想想看:为什么一定是相等的?),即我们所能得到的最大的 geometrical margin γ˜ 。而“支撑”这两个转载 2016-12-07 20:15:33 · 716 阅读 · 0 评论 -
支持向量机_3: Kernel
前面我们介绍了线性情况下的支持向量机,它通过寻找一个线性的超平面来达到对数据进行分类的目的。不过,由于是线性方法,所以对非线性的数据就没有办法处理了。例如图中的两类数据,分别分布为两个圆圈的形状,不论是任何高级的分类器,只要它是线性的,就没法处理,SVM 也不行。因为这样的数据本身就是线性不可分的。对于这个数据集,我可以悄悄透露一下:我生成它的时候就是用两个半径不同的圆圈加上了少量的噪音得转载 2016-12-07 20:10:35 · 607 阅读 · 0 评论 -
支持向量机_4:Outliers
在最开始讨论支持向量机的时候,我们就假定,数据是线性可分的,亦即我们可以找到一个可行的超平面将数据完全分开。后来为了处理非线性数据,使用 Kernel 方法对原来的线性 SVM 进行了推广,使得非线性的的情况也能处理。虽然通过映射 ϕ(⋅) 将原始数据映射到高维空间之后,能够线性分隔的概率大大增加,但是对于某些情况还是很难处理。例如可能并不是因为数据本身是非线性结构的,而只是因为数据有噪音。对转载 2016-12-07 20:04:00 · 384 阅读 · 0 评论 -
支持向量机_5:Numerical Optimization
我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法。确确实实只是简单介绍一下,原因主要有两个:第一这类优化算法,特别是牵涉到实现细节的时候,干巴巴地讲算法不太好玩,有时候讲出来每个人实现得结果还不一样,提一下方法,再结合实际的实现代码的话,应该会更加明了,而且也能看出理论和实践之间的差别;另外(其实这个是主要原因)转载 2016-12-07 19:59:21 · 316 阅读 · 0 评论 -
支持向量机_6:Duality
在之前关于 support vector 的推导中,我们提到了 dual ,这里再来补充一点相关的知识。这套理论不仅适用于 SVM 的优化问题,而是对于所有带约束的优化问题都适用的,是优化理论中的一个重要部分。简单来说,对于任意一个带约束的优化都可以写成这样的形式:mins.t.f0(x)fi(x)≤0,i=1,…,mhi(x)=0,i=1,…,p形式统一能够简化推导过转载 2016-12-07 19:52:42 · 420 阅读 · 0 评论 -
支持向量机_1: Maximum Margin Classifier
支持向量机即 Support Vector Machine,简称 SVM 。我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个抽象的概念拼到一起,然后再做成一个 Machine ,一听就很玄了!不过后来我才知道,原来 SVM 它并不是一头机器,而是一种算法,或者,确切地说,是一类算法,当然,这样抠字眼转载 2016-12-07 20:18:13 · 1050 阅读 · 0 评论 -
支持向量机通俗导论(理解SVM的三层境界)
支持向量机通俗导论(理解SVM的三层境界)前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数学公式的时候还是显得不转载 2016-12-06 22:48:20 · 724 阅读 · 0 评论 -
微软官方caffe之 matlab接口配置
前言按照微软的官方地址配置可能会出现一个问题caffe_.mexw64找不到引用模块问题,或者在matlab里面压根找不到caffe_这个函数,下面会提到这两个问题。还是按照步骤来吧【PS1】有GPU同样按照下述步骤,进行即可【PS2】文章在matlab2013a、matlab2014a、matlab2015b中配置成功,但是在高版本或者更低版本情况下可能会出现问题转载 2016-12-19 20:23:22 · 5798 阅读 · 7 评论 -
神经网络中epoch, iteration, batchsize相关理解和说明
batchsize:中文翻译为批大小(批尺寸)。简单点说,批量大小将决定我们一次训练的样本数目。batch_size将影响到模型的优化程度和速度。为什么需要有 Batch_Size :batchsize 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡。 Batch_Size的取值:全批次(蓝色)如果数据集比较小我们就采用转载 2017-05-22 20:55:15 · 13687 阅读 · 0 评论 -
Adaboost 算法的原理与推导
0 引言 一直想写Adaboost来着,但迟迟未能动笔。其算法思想虽然简单:听取多人意见,最后综合决策,但一般书上对其算法的流程描述实在是过于晦涩。昨日11月1日下午,在我组织的机器学习班 第8次课上Z讲师讲决策树与Adaboost,其中,Adaboost讲得酣畅淋漓,讲完后,我知道,可以写本篇博客了。 无心啰嗦,本文结合机器学习班决策树与Adaboost 的PPT,跟转载 2017-09-07 16:03:19 · 360 阅读 · 1 评论 -
支持向量机(SVM)的特点与不足
SVM有如下主要几个特点:(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。(4)SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同转载 2017-09-18 22:14:02 · 6896 阅读 · 0 评论 -
机器学习中的范数规则化之(一)L0、L1与L2范数
机器学习中的范数规则化之(一)L0、L1与L2范数 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。最后聊下规则化项参数的选择问题。这里因为篇幅比较庞大,为了不吓到大家,我将这个五个部分分成两篇博文。知识有限,以下都是我一些浅显的看法,如果理解存在错误,希望大家不吝指正。谢谢。转载 2016-11-16 15:12:56 · 478 阅读 · 0 评论