机器学习
爱学习的程序员
我很菜的
展开
-
ROUGE 和 pyrouge 安装配置
从事摘要生成的同学们对 ROUGE 一定不陌生。它是由微软亚研的大佬 Chin-Yew Lin 提出并提供了官方的工具包。然而由于 ROUGE 官方包基于 Perl 语言开发,且太过陈旧,而作者对其也一直不闻不问,导致大家在安装配置时踩了无数的坑(作者当时安装时都快哭了)。因此,为了帮助大家不再踩坑,本人特地总结各优秀博客,希望有所帮助!从头再来:在虚拟机上搭建ROUGE和PyROUGEROU...原创 2020-02-14 20:06:47 · 275 阅读 · 0 评论 -
竞赛利器——XGBoost学习笔记
经常参加机器学习相关竞赛的同学肯定对 XGBoost 算法并不陌生。它是 GBDT (梯度提升决策树)的一种高效实现,是传统机器学习算法中对真实分布拟合最好的算法之一,是工业界和竞赛屡试不爽的杀器之一。因此,本文将阐述 XGBoost 算法的基本原理和数学论证,希望能帮助大家了解 GBDT 算法和 XGBoost 算法。简介与 Adaboost 算法相同,GBDT 算法也是集成学习 Boos...原创 2019-07-05 14:36:36 · 1611 阅读 · 0 评论 -
Bagging与随机森林算法
注:本篇博客主要参考了博客Bagging与随机森林算法原理总结。在集成学习中,有两个流派—— boosting 派系 和 bagging 流派。前者的特点是各个弱学习器之间有依赖关系,而后者的特点是各个弱学习器之间没有依赖关系,可以并行拟合。其中,随机森林算法便是 bagging 流派的典型代表。Bagging原理我们知道,为了得到泛化性能强的集成,则应尽可能地使弱分类器彼此之间相互独立。...原创 2019-06-30 11:18:21 · 1278 阅读 · 0 评论 -
Adaboost学习笔记
在之前的博客集成学习原理小结中,我们谈到了 Adaboost 算法。它凭借其优越的性能和通用性,成为 Boosting 家族中最为经典的算法之一。因此,在本文中,我们将学习 Adaboost 算法,领略其独特的魅力。基本思路在集成学习原理小结中,我们知道 Boosting 算法是一族可将弱分类器提升为强分类器的算法。它的工作机制可总结为:先从训练集中学习得到一个弱学习器,再根据弱学习器的表现...原创 2019-07-04 15:18:21 · 301 阅读 · 0 评论 -
集成学习原理小结
集成学习(ensemble learning)是非常实用的机器学习方法,屡屡在工业界与机器学习相关的竞赛中大放异彩。然而与支持向量机(SVM),朴素贝叶斯(NB)等传统的机器学习方法不同的是,集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,用大白话来说就是——“三个臭皮匠抵过一个诸葛亮”。更加难能可贵的是,集成学习用途广泛,不仅可以用于分类问题,还可以应用在...原创 2019-07-03 20:17:15 · 365 阅读 · 0 评论 -
多维度缩放——MDS
我们知道,缓解“维度灾难”的一个重要方法就是降维,即通过某种数学变换将原始高维属性空间转变为一个低维空间。而多维度缩放,就是其中的一个经典算法。简介多维度缩放,英文全称为Multiple Dimension Scaling,简称为MDS。其基本想法是: 降维后的低维空间d′d^{'}d′的欧式距离等于原始空间ddd的欧式距离。然而,它又是如何实现的呢?数学推导假定mmm...原创 2019-02-12 16:52:21 · 739 阅读 · 0 评论 -
详解PCA(主成分分析)原理
在我们之前分类器的讨论中,如SVM、贝叶斯判别等,都假定已给出了特征向量维数确定的样本集,其中各样本的每一维都是该样本的一个特征。然而不同的特征对于分类器设计的影响是不同的,如果将数目很多的测量值不做分析,全部直接用作分类特征,不但耗时,而且会影响到分类的效果,产生“特征维数灾难”问题。因此,我们需要对特征进行选择和提取,即“降维”。简介PCA,全名主成分分析(Principal Compo...原创 2019-02-12 15:36:04 · 727 阅读 · 0 评论 -
原来拉格朗日乘子法这么简单!
在日常生活中,我们经常会遇见带有条件约束的优化问题,如经典的“采购食品”问题等。遇到此类问题时,老师们往往告诉我们使用拉格朗日乘子法解决!它的应用十分广泛,如支持向量机,线性规划等。那么,拉格朗日乘子法到底是什么?它背后的数学原理又是怎样的?本篇博客将为您一一解答。注意,本篇博客只是简单的对拉格朗日乘子法进行介绍和数学推导,并非严格的数学证明!拉格朗日乘子法前面提到,我们往往会遇见带有条件约...原创 2019-02-09 20:44:17 · 414 阅读 · 0 评论 -
十分钟带你了解Fisher线性判别
应用统计方法解决模式识别问题时,一再碰到的问题之一就是维度问题。在低维空间里计算上行得通的方法,在高维空间中往往行不通,如维度灾难等问题。因此,降低维数有时就会成为处理实际问题的关键。简介前面说到,在处理实际问题时,我们可能需要将维度降低以避免维度灾难等问题。我们不妨考虑把ddd维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维。当然,即使样本在ddd维空间里形成若干紧凑的互相分...原创 2019-02-11 10:47:26 · 879 阅读 · 0 评论 -
浅谈贝叶斯判别(Bayes)
在现实世界中,由许多客观现象的发生,就每一次观察和测量来说,即使在基本条件保持不变的情况下也具有不确定性。只有在大量重复的观察下,其结果才能呈现出某种规律性,即对它们观察到的特征具有统计特性。特征值不再是一个确定的向量,而是一个随机向量。此时,只能利用模式集的统计特性来分类,以使分类器发生错误的概率最小。这就是贝叶斯判别的基本出发点。简介给定一个输入x\mathbf{x}x,我们想要确定它属...原创 2019-02-11 16:51:34 · 14255 阅读 · 0 评论 -
深入浅出SVM(支持向量机)
支持向量机是机器学习领域中经典的分类算法之一,最早由Corinna Cortes, Vladimir Vapnik于1995年提出。对原论文感兴趣的读者可下载此论文Support-Vector Network简介分类学习的最基本思想就是基于给定的训练集DDD,在样本空间中寻找一个划分超平面,将不同类别的样本分开。假如有一样本集D={(x1,y1),(x2,y2),…,(xm,ym)}D = ...原创 2019-02-10 11:10:17 · 5816 阅读 · 0 评论 -
分析算法泛化性能的有效工具:偏差——方差分解
了解机器学习的同学都知道,为了检验学习算法的有效性,我们常常会通过实验估计其泛化性能。可是,在实验过程中我们不难发现,同一学习算法在不同的数据集上效果。这又是为什么呢?“偏差-方差分解”为我们提供了解释依据。简介在通过实验检验学习算法泛化性能的过程中,人们还往往希望了解它为什么具有这样的性能。而“偏差——方差分解”是解释算法泛化性能的一种重要工具。“偏差——方差分解”试图对学习算法的期望错...原创 2019-02-08 11:59:09 · 1133 阅读 · 0 评论 -
“近朱者赤,近墨者黑”的分类算法——k最近邻算法
k最近邻算法是一种经典的机器学习分类算法,最早由Cover T和Hart P于1967年提出。对原论文感兴趣的同学可下载此论文Nearest neighbor pattern classification。算法概念k最近邻,英文名为k-Nearest Neighbor,简称为kNN,是一种极其简单的机器学习分类算法,甚至可能是最简单的分类算法。其中,k表示样本的邻居数。k最近邻算法思想...原创 2018-06-13 11:08:03 · 1289 阅读 · 1 评论