
林轩田机器学习
本专栏主要包括林轩田机器学习基石笔记与习题以及林轩田机器学习技法笔记与习题。
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
林轩田机器学习 | 机器学习技法课程笔记10 --- Random Forest
上节课我们主要介绍了Decision Tree模型。Decision Tree算法的核心是通过递归的方式,将数据集不断进行切割,得到子分支,最终形成树的结构。C&RT算法是决策树比较简单和常用的一种算法,其切割的标准是根据纯度来进行,每次切割都是为了让 分支内部纯度最大。最终,决策树不同的分支得到不同的 (即树的叶子,C&RT 算法中, 是常数)。本节课将介绍随机森林(Random...转载 2019-12-31 15:46:43 · 490 阅读 · 0 评论 -
林轩田机器学习 | 机器学习技法课程笔记9 --- Decision Tree
上节课我们主要介绍了Adaptive Boosting。AdaBoost演算法通过调整每笔资料的权重(数据集中每个样本的采样频率),得到不同的hypotheses,然后将不同的hypothesis乘以不同的系数进行线性组合。这种演算法的优点是,即使底层的假设 g不是特别好(只要比乱选好点),经过多次迭代后算法模型会越来越好,起到了boost提升的效果。本节课将在此基础上介绍 一种新的aggrega...转载 2019-12-31 11:54:47 · 395 阅读 · 0 评论 -
林轩田机器学习 | 机器学习技法课程笔记8 --- Adaptive Boosting
上节课我们主要开始介绍Aggregation Models,目的是将不同的hypothesis集合起来,利用集体智慧得到更好的预测模型G。首先我们介绍了Blending,blending是将已存在的所有结合起来,可以是uniformly,linearly,或者nonlinearly组合形式。然后,我们讨论了在没有那么多的情况下,使用bootstrap方式,从已有数据集中采样得到新的类似的数...转载 2019-12-30 16:06:10 · 481 阅读 · 1 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记7 --- Blending and Bagging
上节课我们主要介绍了Support Vector Regression,将kernel model引入到regression中。首先,通过将ridge regression和representer theorem结合起来,得到kernel ridge regression。但是其解是dense的,即大部分不为零。为了得到sparse解,我们将regularized tube error和Lagra...转载 2019-12-30 12:01:41 · 472 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记6 --- Support Vector Regression
上节课我们主要介绍了Kernel Logistic Regression,讨论如何把SVM的技巧应用在soft-binary classification上。方法是使用2-level learning,先利用SVM得到参数b和w,然后再用通用的logistic regression优化算法,通过迭代优化,对参数b和w进行微调,得到最佳解。然后,也介绍了可以通过Representer Theorem...转载 2019-10-23 16:02:07 · 308 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记5 --- Kernel Logistic Regression
上节课我们主要介绍了Soft-Margin SVM,即如果允许有分类错误的点存在,那么在原来的Hard-Margin SVM中添加新的惩罚因子C,修正原来的公式,得到新的值。最终得到的有个上界,上界就是C。Soft-Margin SVM权衡了large-margin和error point之前的关系,目的是在尽可能犯更少错误的前提下,得到最大分类边界。本节课将把Soft-Margin SVM和我们...转载 2019-10-22 14:48:27 · 293 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记4 --- Soft-Margin Support Vector Machine
上节课我们主要介绍了Kernel SVM。先将特征转换和计算内积这两个步骤合并起来,简化计算、提高计算速度,再用Dual SVM的求解方法来解决。Kernel SVM不仅能解决简单的线性分类问题,也可以求解非常复杂甚至是无限多维的分类问题,关键在于核函数的选择,例如线性核函数、多项式核函数和高斯核函数等等。但是,我们之前讲的这些方法都是Hard-Margin SVM,即必须将所有的样本都分类正确才...转载 2019-10-21 21:39:40 · 265 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记3 --- Kernel Support Vector Machine
上节课我们主要介绍了SVM的对偶形式,即dual SVM。Dual SVM也是一个二次规划问题,可以用QP来进行求解。之所以要推导SVM的对偶形式是因为:首先,它展示了SVM的几何意义;然后,从计算上,求解过程“好像”与所在维度(特征转换后的维度)无关,规避了很大时难以求解的情况。但是,上节课的最后,我们也提到dual SVM的计算过程其实跟还是有关系的。那么,能不能完全摆脱对的依赖,从而减...转载 2019-10-21 20:00:56 · 309 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记2 --- Dual Support Vector Machine
上节课我们主要介绍了线性支持向量机(Linear Support Vector Machine)。Linear SVM的目标是找出最“胖”的分割面进行正负类的分离,方法是使用二次规划来求出分类面。本节课将从另一个方面入手,研究对偶支持向量机(Dual Support Vector Machine),尝试从新的角度计算得出分类面,推广SVM的应用范围。目录1. Motivation of D...转载 2019-10-20 15:46:13 · 322 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习技法课程笔记1 --- Linear Support Vector Machine
本系列同样分成16节课,将会介绍《机器学习基石》的进阶版《机器学习技法》,更深入地探讨机器学习的一些高级算法和技巧。目录1. Large-Margin Separating Hyperplane2. Standard Large-Margin Problem3. Support Vector Machine4. Reasons behind Large-Margin Hyper...转载 2019-10-20 13:45:47 · 419 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记16 --- Three Learning Principles
上节课我们讲了一个机器学习很重要的工具——Validation。我们将整个训练集分成两部分:和,一部分作为机器学习模型建立的训练数据,另一部分作为验证模型好坏的数据,从而选择到更好的模型,实现更好的泛化能力。这节课,我们主要介绍机器学习中非常实用的三个“锦囊妙计”。目录1. Occam's Razor2. Sampling Bias3. Data Snooping4. Powe...转载 2019-10-19 22:40:02 · 310 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记15 --- Validation
课程主页课程视频和PPT上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决。在之前的上加上一个regularizer,生成,将其最小化,这样可以有效减少模型的复杂度,避免过拟合现象的发生。那么,机器学习领域还有许多选择,如何保证训练的模型具有良好的泛化能力?本节课将介绍一些概念和方法来解决这个选择性的问题。目录1. Model Sele...转载 2019-10-18 20:54:12 · 603 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记14 --- Regularization
课程主页课程视频和PPT上节课我们介绍了过拟合发生的原因:excessive power, stochastic/deterministic noise 和limited data。并介绍了解决overfitting的简单方法。本节课,我们将介绍解决overfitting的另一种非常重要的方法:Regularization规则化/正则化。目录1. Regularized Hypot...转载 2019-10-17 16:58:36 · 477 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记13 --- Hazard of Overfitting
课程主页课程视频和PPT上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度增加。本节课介绍这种模型复杂度增加带来机器学习中一个很重要的问题:过拟合(overfitting)。目录1. What is Overfitting?2. The Role of Noise and Data ...转载 2019-10-17 14:39:22 · 264 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
课程主页课程视频和PPT上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classification问题。本节课主要介绍非线性的模型来解决分类问题。目录1. Quadratic Hypothesis2. Nonlinear Transform3. Price of Nonlinear Transfor...转载 2019-10-16 16:17:50 · 322 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记11 --- Linear Models for Classification
课程主页课程视频和PPT上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient descnt来获得最好的logistic hypothesis(最好的权重w)。本节课继续介绍使用线性模型来解决分类问题。目录1. Linear Models for Binary Classification...转载 2019-10-16 15:00:02 · 293 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记10 --- Logistic Regression
课程主页课程视频和PPT上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测。本节课将介绍Logistic Regression逻辑回归问题。目录1. Logistic Regression Problem2. Logistic Regression Error3. Gradient of Logistic...转载 2019-10-15 17:40:25 · 377 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记9 --- Linear Regression
课程主页课程视频和PPT上节课,我们主要介绍了在有noise的情况下,VC Bound理论仍然是成立的。同时,介绍了不同的error measure方法。本节课介绍机器学习最常见的一种算法:Linear Regression.目录1. 线性回归问题2. 线性回归算法3. 泛化问题4. Linear Regression 方法解决Linear Classification...转载 2019-10-15 13:21:55 · 400 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记8 --- Noise and Error
课程主页课程视频和PPT上一节课,我们主要介绍了VC Dimension的概念。如果Hypotheses set的VC Dimension是有限的,且有足够多N的数据,那么,同时能够找到一个hypothesis使它的,那么就能说明机器学习是可行的。本节课主要讲了数据集有Noise的情况下,是否能够进行机器学习,并且介绍了假设空间H下演算法A的Error估计。目录1. Noise a...转载 2019-10-14 20:56:13 · 320 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension
课程主页课程视频和PPT前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件:假设空间H的Size M是有限大的,即当N(D的大小)足够大时,那么对于假设空间中任意一个假设h,有. 利用演算法A从假设空间H中,挑选一个最好的h,记为g,使得,则。这两个条件,正好对应着test和trian两个过程。train的目的是使损失期望;;test的目的是使...转载 2019-10-14 18:37:45 · 419 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记6 --- Theory of Generalization
课程主页课程视频和PPT上一节课,我们主要探讨了M的数值大小对机器学习的影响。如果M很大,那么就不能保证机器学习有很好的泛化能力,所以问题转换为验证M有限,即最好是按照多项式成长。然后通过引入了成长函数和dichotomy以及break point的概念,提出2D perceptrons的成长函数是多项式级别的猜想。这就是本节课将要深入探讨和证明的内容。目录1. Restricti...转载 2019-10-13 16:06:03 · 327 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记5 --- Training versus Testing
课程主页课程视频和PPT上节课,我们主要介绍了机器学习的可行性。首先,由NFL定理可知,机器学习貌似是不可行的。但是,随后引入了统计学知识,如果样本数据足够大(D足够大),且hypothesis个数有限,那么机器学习一般就是可行的。本节课将讨论机器学习的核心问题,严格证明为什么机器可以学习。从上节课最后的问题出发,即当hypothesis的个数是无限多的时候,机器学习的可行性是否仍然成立?...转载 2019-10-12 16:20:02 · 351 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记4 --- Feasibility of Learning
课程主页课程视频和PPT上节课,我们主要介绍了根据不同的设定,机器学习可以分为不同的类型。其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题。本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决。目录1. Learning is Impossible2. Probability to the Rescue3. Connection t...转载 2019-10-11 20:59:51 · 668 阅读 · 0 评论 -
机器学习 | 机器学习100天(3) --- 多元线性回归
机器学习100天系列学习笔记基于机器学习100天(中文翻译版),机器学习100天(英文原版)所有代码使用iPython Notebook实现完整代码目录实验综述1.数据预处理2.在训练集上训练多元线性回归模型3.在测试集上预测结果实验综述 1.数据预处理'''1.导入相关库'''import pandas as pdimport n...原创 2019-01-13 13:56:49 · 472 阅读 · 0 评论 -
机器学习 | 吴恩达机器学习第八周编程作业(Python版)
实验指导书 下载密码:963j本篇博客主要讲解,吴恩达机器学习第八周的编程作业,主要包含KMeans实验和PCA实验两部分。原始实验使用Matlab实现,本篇博客提供Python版本。目录1.实验包含的文件2.KMeans实验3.K-means实验完整代码4.PCA实验5.PCA实验完整代码1.实验包含的文件文件名称 含义 ex7.py ...原创 2018-11-19 17:06:17 · 2913 阅读 · 3 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记3 --- Types of Learning
课程主页课程视频和PPT上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA。PLA能够在平面中选择一条直线将样本数据完全正确分类(前提数据是线性可分的,在高维空间中,可以用一个超平面完全分开),并且证明了PLA在线性可分的情况下,是可以停止的。而对于线性不可分的情况,可以使用Pocket Algorithm来处理。本节课将主要介绍一下机器学习有哪些种类,并进行归纳。目录1...转载 2019-10-11 15:32:32 · 226 阅读 · 0 评论 -
机器学习 | 吴恩达机器学习第八周学习笔记
课程视频链接第八周PPT 下载密码:qedd上周主要讲解了支持向量机SVM的原理包括优化目标、大间隔以及核函数等SVM核心内容,以及SVM的使用。本周主要讲解经典的无监督聚类算法k-means,包括k-means的优化目标,原理以及一些参数设置细节;和降维算法PCA的原理,目标,问题规划以及应用等问题。 目录一、无监督学习1.无监督学习2.K-Means算法3.优化...原创 2018-11-18 17:39:08 · 2735 阅读 · 0 评论 -
机器学习 | 吴恩达机器学习第七周编程作业(Python版)
实验指导书 下载密码:ag1v本篇博客主要讲解,吴恩达机器学习第七周的编程作业,包含两个实验,一是线性svm和带有高斯核函数的svm的基本使用;二是利用svm进行垃圾邮件分类。原始实验使用Matlab实现,本篇博客提供Python版本。 目录1.实验包含文件2.实验1 SVM简单使用3.实验1 SVM简单使用 完整项目代码4.垃圾邮件分类5.垃圾邮件分类完整项...原创 2018-11-17 21:21:25 · 3257 阅读 · 2 评论 -
机器学习 | 吴恩达机器学习第七周学习笔记
课程视频链接第七周PPT 下载密码:tmss上周主要讲解了如何设计机器学习系统和如何改进机器学习系统,包括一些模型选择的方法,模型性能的评价指标,模型改进的方法等。本周主要讲解支持向量机SVM的原理包括优化目标、大间隔以及核函数等SVM核心内容,以及SVM的使用。 目录 1.优化目标2.直观上对大间隔的理解3.大间隔分类器的数学原理4.核函数15.核函...原创 2018-11-17 14:43:50 · 1210 阅读 · 1 评论 -
机器学习 | 吴恩达机器学习第九周编程作业(Python版)
实验指导书 下载密码:bgi7本篇博客主要讲解,吴恩达机器学习第九周的编程作业,主要包含异常检测实验和电影推荐系统实验两部分。原始实验使用Matlab实现,本篇博客提供Python版本。 目录1.实验包含的文件2.异常检测实验3.异常检测实验完整代码4.推荐系统实验5.推荐系统实验完整代码1.实验包含的文件文件名 含义 ex8.py ...原创 2018-11-22 22:02:50 · 1206 阅读 · 0 评论 -
机器学习 | 吴恩达机器学习第六周学习笔记
课程视频链接第六周PPT 下载密码:zgkq本周主要讲解了如何设计机器学习系统和如何改进机器学习系统,包括一些模型选择的方法,模型性能的评价指标,模型改进的方法等。目录一、应用机器学习建议1.决定下一步做什么2.评估假设函数3.模型选择和训练、验证、测试集4.诊断偏差与方差5.正则化和偏差、方差6.学习曲线7.决定接下来做什么二、机器学习系统设计...原创 2018-11-14 15:09:30 · 2180 阅读 · 0 评论 -
机器学习 | 吴恩达机器学习第六周编程作业(Python版)
实验指导书 下载密码:ovyt本篇博客主要讲解,吴恩达机器学习第六周的编程作业,作业内容主要是实现一个正则化的线性回归算法,涉及本周讲的模型选择问题,绘制学习曲线判断高偏差/高方差问题。原始实验使用Matlab实现,本篇博客提供Python版本。目录1.实验包含的文件2.正则化线性回归算法3.完整项目代码1.实验包含的文件文件名称 含义 ex5.py...原创 2018-11-15 17:25:02 · 2825 阅读 · 11 评论 -
机器学习 | 吴恩达机器学习第三周编程作业(Python版)
实验指导书 下载密码:fja4本篇博客主要讲解,吴恩达机器学习第三周的编程作业,作业内容主要是利用逻辑回归算法(正则化)进行二分类。实验的原始版本是用Matlab实现的,本篇博客主要用Python来实现。 目录1.实验包含的文件2.使用逻辑回归算法(不带正则化)进行二分类3.逻辑回归算法(不带正则化)进行二分类完整项目代码4.利用逻辑回归算法(带正则化)进行二分类...原创 2018-11-11 22:44:20 · 3566 阅读 · 5 评论 -
机器学习 | 吴恩达机器学习第四周编程作业(Python版本)
实验指导书 下载密码:u8dl本篇博客主要讲解,吴恩达机器学习第四周的编程作业,作业内容主要是对手写数字进行识别,是一个十分类问题,要求使用两种不同的方法实现:一是用之前讲过的逻辑回归实现手写数字识别,二是用本周讲的神经网络实现手写数字识别。实验的原始版本是用Matlab实现的,本篇博客主要用Python来实现。目录1.实验包含的文件2.数据集3.利用逻辑回归进行手...原创 2018-11-08 14:35:52 · 4874 阅读 · 7 评论 -
机器学习 | 吴恩达机器学习第四周学习笔记
课程视频链接第四周课件 下载密码:kx0q上一篇博客主要介绍了第三周的课程的内容,主要讲解分类问题,引入了逻辑回归模型来解决分类问题,并详细的介绍了逻辑回归模型的细节,包括假设函数,代价函数,优化求解方法包括之前学习的梯度下降法和更高级的优化方法,以及多分类问题的探讨,最后介绍了过拟合问题,并以线性回归和逻辑回归为例讲解该问题的解决方法(正则化)。本篇博客将系统的介绍第四周的学...原创 2018-11-08 09:25:00 · 959 阅读 · 1 评论 -
机器学习 | 吴恩达机器学习第九周学习笔记
课程视频课程PPT 下载密码:95wq上周主要讲解经典的无监督聚类算法k-means,包括k-means的优化目标,原理以及一些参数设置细节;和降维算法PCA的原理,目标,问题规划以及应用等问题;本周将继续学习机器学习的应用--异常检测和推荐系统,包括高斯分布,开发和评估异常检测系统、多元高斯分布,异常检测算法的应用以及推荐算法(协同过滤)的原理和应用。 目录一、异常检测...原创 2018-11-22 13:55:34 · 996 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记2 --- Learning to Answer Yes/No
课程主页课程视频和PPT上节课,我们主要简述了机器学习的定义及其重要性,并用流程图的形式介绍了机器学习的整个过程:根据模型H(对应一组假设集合,不同的模型参数取值对应不同的假设),使用演算法A,在训练样本D上进行训练,得到最好的假设h(对应一组最好的参数),其对应的函数g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f。本节课将继续深入探讨机器学习问题,介绍感知机Percept...转载 2019-10-10 16:42:03 · 348 阅读 · 0 评论 -
机器学习 | 台大林轩田机器学习基石课程笔记1 --- The Learning Problem
课程主页课程视频和PPT最近在看NTU林轩田的《机器学习基石》课程,个人感觉讲的非常好。整个基石课程分成四个部分:When can Machine Learn? Why can Machine Learn? How can Machine Learn? How can Machine Learn Better?每个部分由四节课组成,总共有16节课。那么,从这篇开始,我们将连续对...转载 2019-10-10 13:58:07 · 653 阅读 · 0 评论 -
机器学习 | 机器学习100天(6) --- Linear SVM
机器学习100天系列学习笔记基于机器学习100天(中文翻译版),机器学习100天(英文原版)所有代码使用iPython Notebook实现完整代码目录实验综述数据集1.数据预处理2.训练Linear SVM模型3.预测4.评估预测5.可视化(针对低维数据)实验综述数据集1.数据预处理'''1. 导入相关库'''impor...原创 2019-01-16 22:00:06 · 647 阅读 · 0 评论 -
机器学习 | 机器学习100天(5) --- k-近邻算法(k-NN)
机器学习100天系列学习笔记基于机器学习100天(中文翻译版),机器学习100天(英文原版)所有代码使用iPython Notebook实现完整代码目录实验综述数据集1.数据预处理2.使用k-NN对训练集进行训练3.对测试集进行预测4.生成混淆矩阵实验综述 数据集1.数据预处理'''1. 导入相关库'''import ...原创 2019-01-15 19:26:33 · 1098 阅读 · 0 评论