数据预处理
- PCA 主成成分分析
- 基本概念
- 定义:
主成分分析就是试图在力保数据信息丢失最少的原则下,对这种多变量的数据表进行最佳综合简化,也就是说,对高维变量空间进行降维处理。 - 几何解释:平移旋转坐标轴
- 解释:
- 代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。
- 坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换
- 坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换、
- 有几个变量,就有几个主成分。
- 所选的主轴总长度占所有主轴长度之和的大约85%即可
- 定义:
- 公式推导
- 样本均值: M = 1 n ( X 1 + X 2 + . . . . + X n ) M=\frac{1}{n}(X_1+X_2+....+X_n) M=n1(X1+X2+....+Xn)
- 样本协方差:
S
=
1
n
−
1
B
B
T
S=\frac{1}{n-1}BB^T
S=n−11BBT
注意:协方差是对称矩阵且半正定
协方差的大小在一定程度上反映了多变量之间的关系,但它还受变量自身度量单位的影响. - 特征值与特征向量
- PCA求解步骤
- 基本概念
机器学习
- 机器学习基础
- 概念
就是让计算机具有像人一样的学习能力的技术,是从堆积如山的数据(也称为大数据)中寻找出有用知识的数据挖掘技术。 - 种类
- 监督学习:是指计算机算法从监督者(周围的环境)获取知识、信息,并有监督者提供对错指示、告知最终答案的学习过程。(训练集、测试集)
泛化能力:根据在学习过程中所获得的经验、技能,对没有学习过的问题也可以做出正确解答,使计算机获得种泛化能力是监督学习的最终目标。 - 无监督学习:是指计算机算法在没有监督者的情况下,自学获取知识、信息
- 强化学习:是指在没有监督者提示的情况下,计算机算法自己对预测的结果进行评价的方法。
- 监督学习:是指计算机算法从监督者(周围的环境)获取知识、信息,并有监督者提供对错指示、告知最终答案的学习过程。(训练集、测试集)
- 机器学习实例
- 回归:是对一个或多个自变量和因变量之间的关系进行建模、求解的一种统计方法;即把实函数在样本点附近加以近似的有监督的函数近似问题。
- 分类:是指对于指定的模式进行识别的有监督的模型识别问题。
- 聚类:与分类问题相同,也是模式识别问题,但是属于无监督学习的一种。隶属于相同簇的样本之间具有相似的性质,不同簇的样本之间具有不同的性质。
- 降维:是指从高维度数据中提取关键信息,将其转换为易于计算的低维度问题进而求解的方法。
- 异常检测:是指寻找输入样本{xi}ni=1 中所包含的异常数据的问题。无监督的异常检测问题中,一般采用密度估计的方法,把靠近密度中心的数据作为正常的数据,把偏离密度中心的数据作为异常的数据
- 机器学习的方法
-
判别式的分类:在已知模式x的时候,如果能求得使分类类别y 的条件概率p(y|x)达到最大值的类别y 的话,就可以进行模式识别了。
-
生成式的分类:在模式识别里,联合概率p(x, y)也称为数据生成概率,通过预测数据生成概率p(x, y)来进行模式识别的分类方法,称为生成的分类
-
统计概率方法:以包含参数θ 的模型q(x, y; )为例,将模式θ作为决定论的变量,使用手头的训练样本D = {(xi, yi)}ni=1 对模式θ 进行学习。例如,在最大似然估计算法中,一般对生成训练集D的最容易的方法所对应的模式θ进行学习
-
朴素贝叶斯方法:以包含参数θ 的模型q(x, y; )为例,将模式θ作为概率变量,对其先验概率p(θ)加以考虑,计算与训练集D相对应的后验概率p(θ |D )。通过运用贝叶斯定理,就可以使用先验概率p(θ) 来求解后验概率p(θ |D ),。
-
- 主要的学习模型
- 模型
- 线性模型:线性回归模型
- 核模型:高斯核函数
- 层次模型:逻辑回归
- 线性模型
在上式中, ϕ j ( x ) \phi_j(x) ϕj(x)是基函数 ϕ ( x ) \phi(x) ϕ(x)= ( ϕ 1 ( x ) . . . . . . ϕ b ( x ) ) T (\phi_1(x)......\phi_b(x))^T (ϕ1(x)......ϕb(x))T的第j个因子, θ j \theta_j θj是参数向量 θ 1 . . . . . . θ b \theta_1......\theta_b θ1......θb的第j个因子。另外,b是基函数的个数,上标T表示矩阵的转置。虽然上式依然是基于参数向量 θ \theta θ的线性形式,但是如果把基函数变为多项式的形式 ϕ ( x ) = ( 1 , x , x 2 . . . x b − 1 ) T \phi(x)=(1,x,x^2...x^{b-1})^T ϕ(x)=(1,x,x2...xb−1)T或者变为b=2m+1的三角多项式的形式$
\phi(x)=(1,sinx,cosx,sin2x,cos2x…sinmx,cosmx)^T$的形式,上述的线性模型就可以表示为复杂的非线性模型- 乘法模型:把一维的基函数作为因子,通过使其相乘而获得多维基函数的方法
- 加法模型:把一维的基函数作为因子,通过使其相加而获得多维基函数的方法
- 乘法模型:把一维的基函数作为因子,通过使其相乘而获得多维基函数的方法
- 线性模型之回归模型
- 回归:属于监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数学模型用于预测或者分类。
- 线性回归(Linear regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.
- 线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可
- 注意:
(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数
(2)因为是单变量,因此只有一个x;
- 代价函数(Cost Function):对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好;
其中 x ( i ) x^{(i)} x(i)表示向量x中的第i个元素, y ( i ) y^{(i)} y(i)表示向量y中的第i个元素, h θ ( x i ) h_\theta(x^i) hθ(xi)表示已知的假设函数,m为训练集的数量 - 最小二乘损失函数
- 梯度下降法(Gradient Descent)
- 找出cost function函数的最小值;梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
- 方法:
(1)先确定向下一步的步伐大小,我们称为Learning rate;
(2)任意给定一个初始值: θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1 ;
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1 ;
(4)当下降的高度小于某个定义的值,则停止下降;
特点:
(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
(2)越接近最小值时,下降速度越慢; - 局部最优:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值
- 学习率:如果学习率很小,就会下降的很慢;如果学习率很大,容易找不到最优解
- 核模型
- 在线性模型中,多项式或者三角多项式等基函数与训练样本 ( х i , y i ) ⁿ j = 1 {(х_i, y_i)}ⁿ_{j=1} (хi,yi)ⁿj=1是毫不相关。而核模型则在进行基函数的设计时就要使用到输入样本 ( х i , y i ) ⁿ j = 1 {(х_i, y_i)}ⁿ_{j=1} (хi,yi)ⁿj=1;
- 核模型:以使用被称为核函数的二元函数K(·,·),以
K
(
х
,
х
)
ⁿ
j
=
1
K(х, х)ⁿ_{j=1}
K(х,х)ⁿj=1的线性结合方式加以定义。
- 高斯核函数
- 层次模型
- 逻辑回归(Logistic Regression)
- 基本概念
- 逻辑回归的模型是一个非线性模型,
- sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,
- 因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。 可以说,逻辑回归,都是以线性回归为理论支持的。只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。
- 二分类问题是指预测的y值只有两个取值(0或1)
- Logistic函数
- 如果我们忽略二分类问题中y的取值是一个离散的取值(0或1),我们继续使用线性回归来预测y的取值。这样做会导致y的取值并不为0或1。逻辑回归使用一个函数来归一化y值,使y的取值在区间(0,1)内,这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:
- Logistic函数当z趋近于无穷大时,g(z)趋近于1;当z趋近于无穷小时,g(z)趋近于0。Logistic函数的图形如下:
- 如果我们忽略二分类问题中y的取值是一个离散的取值(0或1),我们继续使用线性回归来预测y的取值。这样做会导致y的取值并不为0或1。逻辑回归使用一个函数来归一化y值,使y的取值在区间(0,1)内,这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:
- 线性决策边界
- 对于线性边界的情况,边界形式如下:
θ
0
+
θ
1
x
1
+
.
.
.
+
θ
n
x
n
=
∑
i
=
1
N
θ
i
x
i
=
θ
T
x
\theta_0+\theta_1x_1+...+\theta_nx_n=\sum_{i=1}^N\theta_ix_i=\theta^Tx
θ0+θ1x1+...+θnxn=∑i=1Nθixi=θTx
构造预测函数为: h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+e−θTx1
函数 h θ ( x ) h_\theta(x) hθ(x)的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
p ( y = 1 ∣ x ; θ ) = h θ ( x ) p(y=1|x;\theta)=h_\theta(x) p(y=1∣x;θ)=hθ(x)
p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) p(y=0|x;\theta)=1-h_\theta(x) p(y=0∣x;θ)=1−hθ(x) - 构造损失函数J
梯度下降算法:
- 过拟合问题
- 对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)
- 解决方法
1)减少特征数量(减少特征会失去一些信息,即使特征选的很好)
• 可用人工选择要保留的特征;
• 模型选择算法;
2)正则化(特征较多时比较有效)
保留所有特征,但减少θ的大小 - 正则化方法
正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大。
正则项可以取不同的形式,在回归问题中取平方损失,就是参数的L2范数,也可以取L1范数。取平方损失时,模型的损失函数变为:
lambda是正则项系数:
•如果它的值很大,说明对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样
它就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但
是可能出现欠拟合的现象;
•如果它的值很小,说明比较注重对训练数据的拟合,在训练数据上的偏差会小,
但是可能会导致过拟合。
- 对于线性边界的情况,边界形式如下:
θ
0
+
θ
1
x
1
+
.
.
.
+
θ
n
x
n
=
∑
i
=
1
N
θ
i
x
i
=
θ
T
x
\theta_0+\theta_1x_1+...+\theta_nx_n=\sum_{i=1}^N\theta_ix_i=\theta^Tx
θ0+θ1x1+...+θnxn=∑i=1Nθixi=θTx
- 基本概念
- 模型
- 最小二乘法
- 最小二乘学习法是对模型的输出
f
θ
(
X
i
)
f_\theta(X_i)
fθ(Xi) 和训练集的输出
{
y
i
}
i
=
1
n
\{y_i\}^n_{i=1}
{yi}i=1n的平方误差
为最小值时的参数𝜃进行学习。
“LS”是Leaset Squares的首字母。平方误差 ( f θ ( x i ) − y i ) 2 (f_\theta(x_i) − y_i)^2 (fθ(xi)−yi)2是残差 f θ ( x i ) − y i f_\theta(x_i) − y_i fθ(xi)−yi的 l 2 l_2 l2范数。最小二乘学习法也称为ℓ2损失最小化学习法。 - 线性模型
- 最小二乘学习法是对模型的输出
f
θ
(
X
i
)
f_\theta(X_i)
fθ(Xi) 和训练集的输出
{
y
i
}
i
=
1
n
\{y_i\}^n_{i=1}
{yi}i=1n的平方误差
- 概念
分类
- 分类任务
- 定义:分类任务就是确定对象属于那个预定义的目标类。
- 分类(classification):分类任务就是通过学习得到一个目标函数f(target function),把每个属性集x映射到一个预先定义的类标号y。
- 目标函数也称分类模型(classification model):描述性建模;预测性建模
- 基本概念:训练集、属性、类标号、模型、测试集
- 有指导的学习 (分类) superwised
指导: 训练数据是已经被标注好类标号的数据,用来进行有指导的分类。
新数据是基于训练集进行分类的。 - 无指导的学习 (聚类) unsuperwised
训练数据的类标号不可知
是观察式学习 - 评价分类方法
- 预测的准确率
这涉及模型正确地预测新的或先前未见过的数据的类标号的能力 - 速度
构造模型的速度
利用模型进行分类的速度 - 强壮性
给定噪声数据或具有空缺值的数据,模型正确预测的能力 - 可伸缩性
当给定大量数据时,有效地构造模型的能力 - 可解释性
涉及学习模型提供的理解和洞察的层次
- 预测的准确率
- 评价方法-混淆矩阵
- 基于决策树的分类方法
- Hunt’s Algorithm
- 每次判断是否一个节点,如果一个节点为相同的类或者为一个空集合,它是一个叶子节点 y t y_t yt,如果包含多个类,使用其他属性继续划分
- Greedy strategy
- 根据优化某些标准的属性来拆分记录
- 根据属性类型:名词型;顺序型;连续型
- 根据划分的类别数:二分类;多分类
- 离散化的划分形成有序的范畴属性;二元判断
- 连续属性:二元划分;多路划分
- 根据优化某些标准的属性来拆分记录
- 分裂属性的选择
-
通过描述属性可以减少类标属性的不确定性
-
贪心算法:使同类的划分属性的节点被选择
-
衡量杂质的算法
- GINI衡量
- GINI计算
公式: G I N I ( t ) = 1 − ∑ j [ p ( j ∣ t ) ] 2 GINI(t) = 1 - \sum_j[p(j|t)]^2 GINI(t)=1−∑j[p(j∣t)]2
其中 p ( j ∣ t ) p(j|t) p(j∣t)是第j类在节点中所占的比例
记录被平均划分给每类时,GINI的值最大;记录被划分为只用一类时的值最小。
GINI的值越小,划分的结果越好 - GINI split
- 公式: G I N I s p l i t = ∑ i = 1 k n i n G I N I ( i ) GINI_{split} = \sum_{i=1}^k\frac{n_i}{n}GINI(i) GINIsplit=∑i=1knniGINI(i)
- 其中 n i n_i ni为在孩子节点i上的记录数,n为父节点的总的 记录数,k为被划分的孩子节点的个数
- 纯度更大的, G I N I s p l i t GINI_{split} GINIsplit值更小的是我们所需要的
- GINI计算
- 熵(entropy)衡量
- 公式: E n t r o p y ( t ) = − ∑ j p ( j ∣ t ) l o g p ( j ∣ t ) Entropy(t)=-\sum_jp(j|t) log p(j|t) Entropy(t)=−∑jp(j∣t)logp(j∣t)
- 记录被平均划分给每类时,GINI的值最大;记录被划分为只用一类时的值最小。
- 信息增益
G A I N s p l i t = E n t r o p y ( p ) − ( ∑ i = 1 k n i n E n t r o p y ( i ) ) GAIN_{split} = Entropy(p)-{(\sum_{i=1}^k\frac{n_i}{n}Entropy(i))} GAINsplit=Entropy(p)−(∑i=1knniEntropy(i))
其中 n i n_i ni为在孩子节点i上的记录数,n为父节点的总的 记录数,k为被划分的孩子节点的个数,p为父节点
最大化信息增益 - Gain Ratio
- 分类错误error
- E r r o r ( t ) = 1 − m a x i P ( i ∣ t ) Error(t)=1-max_iP(i|t) Error(t)=1−maxiP(i∣t)
- 一个节点错误的划分
- GINI衡量
-
决策树算法
- ID3 决策树建立算法
- ID3 决策树建立算法
-
理想的决策树有三种:
(1)叶子结点数最少;
(2)叶子结点深度最小;
(3)叶子结点数最少且叶子结点深度最小。
-
- 过度拟合问题
- 定义:给定一个假设空间H,一个假设h∈H,如果存在其它的假设h1 ∈H ,使得在训练样例上h的错误率比h1小,但在整个实例发布上h1的错误率比h小,则称假设h过度拟合训练数据
- 产生原因:噪声,训练样本太小
- 训练过程应该包含训练样本和验证样本。验证样本用于测试训练后的性能。如果验证结果差,则需要考虑采用不同的结构重新进行训练,例如使用更大的样本集,或者改变从连续值到离散值得数据转换等。
- 通常应该建立一个验证过程,在训练最终完成后用来检测训
练结果的泛化能力。
- 分类误差
- 训练误差是在训练记录上误分类样本比例;
- 泛化误差是模型在未知记录上的期望误差;
- 一个好的分类模型必须具有低的训练误差和泛化误差。因为一个具有低训练误差的模型,其泛化误差可能比具有较高训练误差的模型高。(训练误差低,泛化误差高,称为过渡拟合)
- 模型过渡拟合的潜在因素
- 噪声导致的过渡拟合;
错误的类别值/类标签,属性值等 - 缺乏代表性样本所导致的过渡拟合
根据少量训练记录作出的分类决策模型容易受过渡拟合的 影响。由于训练样本缺乏代表性的样本,在没有多少训练记录的情况下,学习算法仍然继续细化模型就会导致过渡拟合。
- 噪声导致的过渡拟合;
- 估计泛化误差
- 训练误差: ∑ e ( t ) \sum e(t) ∑e(t)
- 泛化误差 ∑ e ′ ( t ) \sum e'(t) ∑e′(t)
- 估计泛化误差的方法
- 乐观法: e ′ ( t ) = e ( t ) e'(t)=e(t) e′(t)=e(t)
- 悲观法:每个叶子节点: e ′ ( t ) = ( e ( t ) + 0.5 ) ) e'(t)=(e(t)+0.5)) e′(t)=(e(t)+0.5))
- REP:使用验证集来预估泛化误差
- 奥卡姆剃刀
- 在相同的泛化误差下,应该选择更简单的模型;对于更复杂的模型有更大的概率是拟合了数据中错误的部分,因此在评估模型的时候应该包含模型的复杂度
- 悲观误差评估
- 决策树过度拟合问题的解决
- 及时停止树增长
Occan法则(又称Occan剃刀 Occan Razor):具有相同泛化误差的两个模型,较简单的模型比复杂的模型更可取。 - 后剪枝法
- 及时停止树增长
- 衡量问题
-
混淆矩阵
-
准确率: p r e c i s i o n ( p ) = a a + c precision(p) = \frac{a}{a+c} precision(p)=a+ca
-
召回率: r e c a l l = a a + b recall=\frac{a}{a+b} recall=a+ba
-
F1得分: F − m e a s u r e ( F ) = 2 r p r + p F-measure(F)=\frac{2rp}{r+p} F−measure(F)=r+p2rp
-
- 验证集
- holdout(保持法) :2/3训练集,1/3验证集
- 随机抽样
- 交叉验证:将数据划分为k个不相交的子集,在其中k-1个进行训练,将1个子集验证
- 分层抽样:过采样和欠采样
- 自举法:将样本进行放回
- 模型验证
- ROC曲线
- Hunt’s Algorithm