摘要
本周的学习主要分为三个模块。
- 回归分析。在统计建模中,回归分析是一组用于估计因变量与一个或多个自变量之间关系的统计过程。这周的课程主要是关于线性回归。
- 分类问题,分类是与分类相关的过程,是识别、区分和理解思想和对象的过程。 分类是将相关事实分组。
- 除此之外,还对本周课程相关的数学知识进行了学习。例如,最大似然估计、高斯分布、协方差矩阵
Abstract
This week’s study is mainly divided into three parts.
- regression analysis. In statistical modeling, regression analysis is a set of statistical processes for estimating the relationships between a dependent variable and one or more independent variables. This week’s lecture is mainly about linear regression.
- Classification. Classification is the grouping of related facts into classes.
- In addition, the mathematics knowledge related to this week’s course was also learned. For example, maximum likelihood estimation, Gaussian distribution, covariance matrix
预测神奇宝可梦pokemon
Regression回归问题
根据已知数据集中变量相关性,建立一条最佳拟合曲线,该曲线上的点对应的观测数据的距离总和最小,此曲线即回归函数,用于预测数据的变量输出
回归方法应用举例
eg:预测宝可梦进化后cp值
- xs:种族
- xhp:血量
- xw:重量
- xh:高度
- xcp:进化前cp值
- y:进化后cp值
- 将各参数输入function,输出预测的y
预测步骤
仅考虑进化前cp
- 建立model
- 建立function: y = b + w*xcp
- w,b为参数,可取任意值
- Linear model: y = b + ∑wixi
- xi: feature
- w: weight
- b: bias
- 建立function: y = b + w*xcp
- Goodness of Function
评估函数,输入数据后,将预测值与真实值对比,根据误差判断函数
-
a set of function,即model
- y = b + w*xcp
- input: 进化前cp xi
- output( 值 ): 进化后cp y’i
-
Training Data
- 真实数据如图
-
定义Loss function
-
input: a function
-
output: how bad it is
-
L(f) = L(w, b) = ∑10n=1( y’n - (b + w* xncp))2
- 用MSE计算误差,然后输出误差和
-
根据该方法获得的结果如图,越接近蓝色系误差越小,越接近红色系,误差越大
- Best Function
取“最好”的函数
- f* = arg minfL(f)
- w*, b* = arg minw,bL(w, b) = arg minw,b∑10n=1 ( y’n - ( b + w*xncp))2
-
通过Gradient Descent的方式获取函数
-
仅考虑单一参数的损失函数L(w)
- 随机选取初始值w0
- 计算在w=w0的位置求w对L的微分dL/dw|w=w0
- 根据微分调整w,获取w1
- 若微分为正,则增加w;若微分为负,则减小w
- w1 = w0-η*dL/dw|w=w0,其中η称学习率learning rate
- 迭代的计算w,直至local optimal,而非global optimal
- 对于local regression,没有local minimum
-
两个参数的情况
-
随机选取w0, b0
-
计算在w = w0, b = b0位置的w对L以及b对L的偏微分
-
根据偏微分、η获取w1, b1
-
迭代的计算w以及b
-
将上述步骤可视化如下
-
根据上述步骤进行更新,各参数会沿着损失函数等值线的法线方向调整
-
在线性回归中,由于损失函数是凸的且没有local optimal,故随机取参数迭代后均可到达global optimal
-
-
Formulation
值得注意的是在新数据(testing data)上的误差,通常会大于在training data。为了获取更好的结果,可以采用其他model
- Overfitting过拟合
- 可以引入(xcp)2, (xcp)3……,之后会得到在training data上表现更好的model
- 但当function更为complex,在testing上的loss反而更大,这与初衷相悖,此时模型出现了过拟合
引入更多参数
- more factors
- 当输入更多的data之后,仅以进化前的cp值作为feature不能很好的进行预测;若希望获得更好的model,可以引入更多的参数
-
back to step 1: Redesign the model
-
例如引入种族,根据种族调整function
-
为了得到linear model,引入一组δ。
- 若为种族Pidgey,则将该种族对应参数δ(xs=Pidgey)置1,其余δ置0,
-
linear model如下
-
进化后cp也可能与其他因素(例如hp、h、w)相关,但当引入更多参数后出现了过拟合,在testing data上表现得更差,可以通过正则化平滑曲线
-
-
back to step 2: Regularization
-
可以在损失函数中加上λ*Σ(wi)2
- 因为调整bias不影响曲线的平滑程度,因此该项没有bias
-
通过该方式可以获取更小的wi,而更小的wi对y的影响更小,从而有更为平滑的曲线
-
相应的,若在训练中输入了一些杂讯,一个更平滑的function受到的影响更小
-
在训练中,可以通过增大λ来获取更为平滑的曲线,同样的可以获得在training data上更小的误差
-
但当λ过大,testing data上的误差会变得更大,因此曲线并不是越平滑越好
-
此时可以通过计算不同λ的误差、调整λ获取在训练集上表现更好的曲线,此时曲线的平滑程度更为契合
-
Conclusion & Following Lectures 结论及后续课程
- 梯度下降:
- 后续课程:理论与技巧
- 过拟合与正则化
- 后续课程:更多理论
- 最终得到在训练集上的平均误差为11.1
- 在其他新数据上表现如何
- 后续课程:validation验证
神奇宝贝分类
Classification: Probabilistic Generative model分类:概率生成模型
Classification 分类问题
分类是指输入一些相关信息之后,模型在诸多选择中选出最符合预期的结果
分类问题的应用
eg: 根据宝可梦输出宝可梦的属性
根据以下信息预测宝可梦的属性
如何进行分类
训练分类数据
-
将分类看作回归问题
-
以二元分类为例
-
训练:
- class1意味着目标是1
- class2意味着目标是-1
-
测试
- 接近1->class1
- 接近-1->class2
-
若根据上述方式进行训练,则可能出现离群点,造成杂讯
- 为了解决该问题需要惩罚“太正确”的例子
-
ideal alternatives理想中的修改方案
- function(model):输入x,当g(x)>0时,输出类别1,其他情况输出类别2
- loss function损失函数:L(f) = ∑nδ(f(xn)≠y’n);数值为f在训练集上得出错误结果的次数
- 寻找最佳函数:可以使用在后续课程中的perceptron( 感知器 ), SVM( 支持向量机 )
贝叶斯分布
-
若box1中有4蓝1绿,box2中有2蓝3绿,则 P ( B l u e ∣ B 1 ) = 4 5 P(Blue|B_{1}) = \frac{4}{5} P(Blue∣B1)=54, P ( G r e e n ∣ B 1 ) = 1 5 P(Green|B_{1}) = \frac{1}{5} P(Green∣B1)=51, P ( B l u e ∣ B 2 ) = 2 5 P(Blue|B_{2}) = \frac{2}{5} P(Blue∣B2)=52, P ( G r e e n ∣ B 2 ) = 3 5 P(Green|B_{2}) = \frac{3}{5} P(Green∣B2)=53。
-
又 P ( B 1 ) = 2 3 P(B_{1}) = \frac{2}{3} P(B1)=32, P ( B 2 ) = 1 3 P(B_{2}) = \frac{1}{3} P(B2)=31
-
则有 P ( B 1 ∣ B l u e ) = P ( B l u e ∣ B 1 ) P ( B ( 1 ) ) P ( B l u e ∣ B 1 ) P ( B 1 ) + P ( B l u e ∣ B 2 ) P ( B 2 ) P(B_{1}|Blue) = \frac{P(Blue|B_{1})P(B_(1))}{P(Blue|B_{1})P(B_{1})+P(Blue|B_{2})P(B_{2})} P(B1∣Blue)=P(Blue∣B1)P(B1)+P(Blue∣B2)P(B2)P(Blue∣B1)P(B(1))
-
对于Classification,可以将box看作class,则根据 P ( C 1 ) P(C_{1}) P(C1)、 P ( C 2 ) P(C_{2}) P(C2)、 P ( x ∣ C 1 ) P(x|C_{1}) P(x∣C1)、 P ( x ∣ C 2 ) P(x|C_{2}) P(x∣C2)计算 P ( C 1 ∣ x ) P(C_{1}|x) P(C1∣x),因此需要上述从训练集中得出上述四项数据用以预测概率
-
因此可以建立Generative Model生成模型 P ( x ) = P ( x ∣ C 1 ) P ( C 1 ) + P ( x ∣ C 2 ) P ( C 2 ) P(x) = P(x|C_{1})P(C_{1})+P(x|C_{2})P(C_{2}) P(x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)
-
用 P ( C 1 ) P(C_{1}) P(C1)表达水系的概率,用 P ( C 2 ) P(C_{2}) P(C2)表达一般系的概率
-
若训练集中79水61一般,则 P ( C 1 ) = 0.56 P(C_{1})=0.56 P(C1)=0.56, P ( C 2 ) = 0.44 P(C_{2})=0.44 P(C2)=0.44
Probability from Class类概率
- 此时为了计算 P ( x ∣ C 1 ) P(x|C_{1}) P(x∣C1)、 P ( x ∣ C 2 ) P(x|C_{2}) P(x∣C2),可以假定图中的点均来自一个高斯分布Gaussian distribution
- 可以将每个宝可梦表示为由其attribute组成的向量,作为feature
- 例如考虑防御及特防两个特征组成的向量,将训练集中的数据标记在下图中
- 此时,有水属性的new data,如何通过feature判断其属性是否为水系
Gaussian Distribution高斯分布
- f μ , ∑ = 1 ( 2 Π ) D / 2 1 ∣ ∑ ∣ 1 / 2 e x p { − 1 2 ( x − μ ) T ∑ − 1 ( x − μ ) } f_{μ,∑} = \frac{1}{(2Π)^{D/2}}\frac{1}{|∑|}^{1/2}exp\{-\frac{1}{2}(x-μ)^{T}∑^{-1}(x-μ)\} fμ,∑=(2Π)D/21∣∑∣11/2exp{−21(x−μ)T∑−1(x−μ)}
- 输入:向量x
- 输出:抽取x的概率
- function的形状取决于平均值μ以及协方差矩阵∑
- 不同μ,最高点不同;不同∑,集散程度不同
Maximum Likelihood最大似然估计
-
基于上述的高斯分布,可以确定feature被分布选中的likelihood
-
L ( μ , ∑ ) = ∏ i = 1 79 f μ , ∑ ( x i ) L(μ, ∑)=\prod_{i=1}^{79}f_{μ,∑}(x^{i}) L(μ,∑)=∏i=179fμ,∑(xi)
-
注:此处L(μ, ∑)并非loss function
-
根据上述L(μ, ∑)可以确定一组μ, ∑使得L(μ, ∑)最大
- μ ∗ , ∑ ∗ = a r g max μ , ∑ L ( μ , ∑ ) μ^{*},∑^{*} = arg\max_{μ,∑}L(μ,∑) μ∗,∑∗=argmaxμ,∑L(μ,∑)
- μ ∗ = 1 79 μ^{*}=\frac{1}{79} μ∗=791
- Σ ∗ = ∑ n = 1 79 ( x n − μ ∗ ) ( x n − μ ∗ ) \Sigma^{*}=\sum^{79}_{n=1}(x^{n}-\mu^{*})(x^{n}-\mu^{*}) Σ∗=∑n=179(xn−μ∗)(xn−μ∗)
-
根据上式计算如下
-
根据以上结果可以得出水系以及一般系的高斯分布,而由高斯分布可以计算出 P ( x ∣ C 1 ) P(x|C_{1}) P(x∣C1)、 P ( x ∣ C 2 ) P(x|C_{2}) P(x∣C2),最后可得 P ( C 1 ∣ x ) P(C_{1}|x) P(C1∣x)。若 P ( C 1 ∣ x ) P(C_{1}|x) P(C1∣x),则称x属于水系
-
由上图得出的模型在预测过程中准确率仅为47%,且引入更多维的feature准确率仍为54%
-
因此需要对该模型进行优化
Modifying Model调整模型
两个高斯分布的集散程度应当是相近的,因此可以采用相同的 Σ \Sigma Σ
L ( μ 1 , μ 2 , Σ ) = ∏ i = 1 79 f μ 1 , Σ ( x i ) ∏ j = 80 140 f μ 2 , Σ ( x j ) L(\mu^{1}, \mu^{2}, \Sigma)=\prod^{79}_{i=1}f_{\mu^{1},\Sigma}(x^{i})\prod^{140}_{j=80}f_{\mu^{2},\Sigma}(x^{j}) L(μ1,μ2,Σ)=∏i=179fμ1,Σ(xi)∏j=80140fμ2,Σ(xj)
重新进行计算,求 μ 1 , μ 2 , Σ \mu^{1}, \mu^{2}, \Sigma μ1,μ2,Σ使得 L ( μ 1 , μ 2 , Σ ) L(\mu^{1}, \mu^{2}, \Sigma) L(μ1,μ2,Σ)最大
μ 1 , μ 2 \mu^{1}, \mu^{2} μ1,μ2的计算方法是相同的
而
Σ
\Sigma
Σ的计算方式可以修改为
Σ
=
79
140
Σ
1
+
61
140
Σ
2
\Sigma = \frac{79}{140}\Sigma^{1}+\frac{61}{140}\Sigma^{2}
Σ=14079Σ1+14061Σ2
若使用上述model,采用相同的协方差矩阵,则两个类别的分界线会呈线性,准确率为53%
当采用高维feature时,准确率为73%,均有明显的提升
Three Steps
概率分布的选择
- 可以根据个人喜好选择分布
- 例如1维高斯分布、伯努利分布
- 若假设各维数据的产生是独立,此时可以采用naive bayes classifier朴素贝叶斯分类器
Posterior Probability后验概率
相关数学基础
最大似然估计