批量学习(batch learning)
所谓的批量学习是指在训练模型时,一次性的把所有样本全部输入,可以理解为填鸭式。批量学习的代价函数是由平均误差定义的(要先算出特征x所有样本的总误差除以样本数)。由于批量学习一次性需要所有样本,因此批量学习有着存储要求(要存储这些训练样本)
在线学习(online learning)
在线学习是每输入一个样本都会计算下误差,调整一下参数,是基于样本的。假设有m个样本,在线学习的过程是先输入样本 ,然后调整参数,接着再输入 ,再调整参数,这样持续到最后一个样本。这样也就导致了在线学习没有并行性,一般在使用在线学习时会随机打乱训练样本的顺序,这样可以 有效避免陷入局部最小值。在线学习的一个优点是能够追踪训练数据小的改变。在线学习一般用于实时产生数据的web网站等(流数据)。
在线学习有两个优点:
在线学习容易执行
对大规模和困难模式分类问题能提供有效解
参数学习算法(parametric learning algorithm)
定义:参数学习算法是一类有固定数目参数,以用来进行数据拟合的算法。设该固定的参数集合为。线性回归即使参数学习算法的一个例子
参数学习算法包括两个步骤:
选择一种目标函数的形式
从训练数据中学习目标函数的系数
参数学习算法的一些常见例子包括:
Logistic Regression
LDA(线性判别分析)
感知机
朴素贝叶斯
简单的神经网络
参数机器学习算法的优点:
简单:这些算法很容易理解和解释结果
快速:参数模型可以很快从数据中学习
少量的数据:它们不需要太多的训练数据,甚至可以很好地拟合有缺陷的数
参数机器学习算法的局限性:
约束:这些算法选择一种函数形式高度低限制模型本身
有限的复杂性:这种算法可能更适合简单的问题
不适合:在实践中,这些方法不太可能匹配潜在的目标(映射)函数
非参数学习算法(Non-parametric learning algorithm)
定义:一个参数数量会随m(训练集大小)增长的算法。通常定义为参数数量虽m线性增长。换句话说,就是算法所需要的东西会随着训练集合线性增长,算法的维持是基于整个训练集合的,即使是在学习以后。
非参数学习算法的一些常见例子包括:
KNN
决策树,比如CART和C4.5
SVM
非参数机器学习算法的优点:
灵活性:拟合大量的不同函数形式
能力:关于潜在的函数不需要假设(或者若假设)
性能:可以得到用于预测的高性能模型
非参数机器学习算法的局限性:
更多的数据:需要更多的训练数据用于估计目标函数
慢:训练很慢,因为它们常常需要训练更多的参数
过拟合:更多的过度拟合训练数据风险,同时它更难解释为什么要做出的具体预测
生成模型
生成方法由数据学习联合概率分布,然后求出条件概率分布作为预测的模型,即生成模型。
常见生成式模型有:HMM,朴素贝叶斯,GMM,LDA
判别模型
由数据直 ,即判别模型。
常见判别式模型有:线性回归,决策树,SVM,k近邻,神经网络
线性,指的就是两个变量之间成正比例的关系,在平面直角坐标系中表现出来,就是一条直线;
非线性,指的就是两个变量之间不成正比,在直角坐标系中是曲线而非直线,例如一元二次方程的抛物线、对数函数等等关系。一切不是一次函数的关系,都是非线性的。
线性模型和非线性模型区别
1、线性模型可以是用曲线拟合样本,但是分类的决策边界一定是直线的,例如logistics模型。
2、区分是否为线性模型,主要是看一个乘法式子中自变量x前的系数w,如果w只影响一个x,那么此模型为线性模型。或者判断决策边界是否是线性的。
常见的线性分类器有:LR, 贝叶斯分类,单层感知机、线性回归
常见的非线性分类器:决策树、RF、GBDT、多层感知机SVM两种都有(看线性核还是高斯核)