线性回归&决策树分类器 学习笔记

线性回归&决策树分类器 学习笔记

回归

​ 回归(Regression)这一概念最早由英国生物统计学家高尔顿和他的学生皮尔逊在研究父母亲和子女的身高遗传特性时提出,即“子女的身高趋向于高于父母的身高的平均值,但一般不会超过父母的身高”

回归分析

​ 在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析按照涉及的变量的多少,分为二元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

回归模型理论

模型

​ 一元线性回归模型为 y = ω 0 + ω 1 x + ε y = \omega_0+\omega_1x+\varepsilon y=ω0+ω1x+ε ,其中 ω 0 \omega_0 ω0 ω 1 \omega_1 ω1 是回归系数,反应了两变量之间的关系趋势,即该直线的截距和斜率; ε \varepsilon ε 是随机误差项或“噪声”项,代表数据中不能被模型拟合的部分,通常假设误差独立于 x x x ,并且 ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma^2) εN(0,σ2) y ∼ N ( ω 0 + ω 1 x , σ 2 ) y\sim N(\omega_0+\omega_1x,\sigma^2) yN(ω0+ω1x,σ2) .对于参数 ω 0 , ω 1 , σ \omega_0 ,\omega_1, \sigma ω0ω1σ 的估计通常有两种方法,极大似然估计(MLE)和最小二乘估计(LSE).

​ 对于数据集 D = { ( x 1 , y 1 ) , . . . , ( x n , y n ) } D=\{(x_1,y_1),...,(x_n,y_n)\} D={(x1,y1),...,(xn,yn)} 我们的目的为找到一条直线 y = ω 0 + ω 1 x y = \omega_0+\omega_1x y=ω0+ω1x 使得所有样本点尽可能的落在直线附近。根据极大似然估计方法,选取欧氏距离,则优化目标为
min ⁡ ( w 0 , w 1 ) ∑ i = 1 n ( y i − w 1 x i − w 0 ) 2 \min _{\left(w_{0}, w_{1}\right)} \sum_{i=1}^{n}\left(y_{i}-w_{1} x_{i}-w_{0}\right)^{2} (w0,w1)mini=1n(yiw1xiw0)2

image-20200705131457258

将该优化目标记作 L ( ω 0 , ω 1 ) = ∑ i = 1 n ( y i − ω 1 x i − ω 0 ) 2 L(\omega_0,\omega_1)=\sum_{i=1}^{n}(y_i-\omega_1x_i-\omega_0)^2 L(ω0,ω1)=i=1n(yiω1xiω0)2 ,因为 L ( ω 0 , ω 1 ) L(\omega_0,\omega_1) L(ω0,ω1) 为二次凸函数,可以令各偏导数为零:
{ ∂ L ( w 1 , w 0 ) ∂ w 1 = 2 ∑ i = 1 n ( y i − w 1 x i − w 0 ) ( − x i ) = 0 ∂ L ( w 1 , w 0 ) ∂ w 0 = 2 ∑ i = 1 n ( y i − w 1 x i − w 0 ) ( − 1 ) = 0 \left\{\begin{array}{l} \frac{\partial L \left( w _{1}, w _{0}\right)}{\partial w _{1}}=2 \sum_{i=1}^{n}\left(y_{i}- w _{1} x_{i}- w _{0}\right)\left(-x_{i}\right)=0 \\ \frac{\partial L \left( w _{1}, w _{0}\right)}{\partial w _{0}}=2 \sum_{i=1}^{n}\left(y_{i}- w _{1} x_{i}- w _{0}\right)(-1)=0 \end{array}\right. {w1L(w1,w0)=2i=1n(yiw1xiw0)(xi)=0w0L(w1,w0)=2i=1n(yiw1xiw0)(1)=0
解上述方程组可得
{ w 1 = n ∑ i = 1 n y i x i − ( ∑ i = 1 n y i ) ( ∑ i = 1 n x i ) n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 w 0 = ∑ i = 1 n y i n − ∑ i = 1 n x i n w 1 \left\{\begin{array}{l} w_{1}=\frac{n \sum_{i=1}^{n} y_{i} x_{i}-\left(\sum_{i=1}^{n} y_{i}\right)\left(\sum_{i=1}^{n} x_{i}\right)}{n \sum_{i=1}^{n} x_{i}^{2}-\left(\sum_{i=1}^{n} x_{i}\right)^{2}} \\ w_{0}=\frac{\sum_{i=1}^{n} y_{i}}{n}-\frac{\sum_{i=1}^{n} x_{i}}{n} w _{1} \end{array}\right. w1=ni=1nxi2(i=1nxi)2ni=1nyixi(i=1nyi)(i=1nxi)w0=ni=1nyini=1nxiw1

相关统计量

​ 上述推导过程的 S S R = ∑ i = 1 n ( y i − ω 1 x i − ω 0 ) 2 = ∑ i = 1 n ( y i − y i ^ ) 2 SSR=\sum_{i=1}^{n}(y_i-\omega_1x_i-\omega_0)^2=\sum_{i=1}^{n}(y_i-\hat{y_i})^2 SSR=i=1n(yiω1xiω0)2=i=1n(yiyi^)2 , S S R SSR SSR 称为残差平方和。相关统计量如下:

名称描述公式
S S E SSE SSE残差平方和拟合值与实际值差的平方和 ∑ i = 1 n ( y ^ i − y i ) 2 \sum_{i=1}^{n}\left(\hat{y}_{i}-{y_i}\right)^{2} i=1n(y^iyi)2
S S R SSR SSR回归平方和预测数据与原始数据均值之差的平方和 ∑ i = 1 n ( y ^ i − y ˉ ) 2 \sum_{i=1}^{n}\left(\hat{y}_{i}-\bar{y}\right)^{2} i=1n(y^iyˉ)2
S S T SST SST总离差平方和原始数据和均值之差的平方和 ∑ i = 1 n ( y i − y ˉ ) 2 \sum_{i=1}^{n}\left(y_{i}-\bar{y}\right)^{2} i=1n(yiyˉ)2
R 2 R^2 R2决定系数表征自变量对因变量的解释能力(范围 [ 0 , 1 ] [0,1] [0,1] S S R S S T = 1 − S S E S S T \frac{SSR}{SST}=1-\frac{SSE}{SST} SSTSSR=1SSTSSE
多元线性回归

​ 与一元线性回归不同的是, y y y 是多个特征的线性组合
y = ω 0 + ω 1 x 1 + ω 2 x 3 + . . . + ω d x d y = \omega_0+\omega_1x_1+\omega_2x_3+...+\omega_dx_d y=ω0+ω1x1+ω2x3+...+ωdxd
训练集为 D = ( x 1 , y 1 ) , . . . ( x n , y n ) D={(x_1,y_1),...(x_n,y_n)} D=(x1,y1),...(xn,yn) x i x_i xi d d d 维特征向量 x i = ( x 11 , x 12 , ⋅ ⋅ ⋅ , x 1 d ) T x_i=(x_{11},x_{12},\cdot\cdot \cdot,x_{1d})^T xi=(x11,x12,,x1d)T ,优化目标为残差平方和 S S R SSR SSR,矩阵表示为 L ( w ) = S S R = ( y ^ − y ) T ( y ^ − y ) = ( X w − y ) T ( X w − y ) L(w)=SSR=(\hat y-y)^T(\hat y - y)=(Xw-y)^T(Xw-y) L(w)=SSR=(y^y)T(y^y)=(Xwy)T(Xwy)即使得残差平方和最小已达到最优拟合程度。在几何上理解为寻找一个超平面,使得训练集中样本到超平面的误差平方和最小。

image-20200706085959465

线性回归的问题

​ 过渡拟合的问题:当模型的变量过多时,线性回归可能会出现过度拟合问题

​ 多重共线性问题:变量之间相关性很强导致 X T X X^TX XTX近似奇异,参数估计 ω ^ = ( X T X ) − 1 X T y \hat\omega=(X^TX)^{-1}X^Ty ω^=(XTX)1XTy 不准确,进而过度拟合现象。

解决方法:正则化、主成分分析、偏最小二乘回归
正则化:

​ 加入正则项, ( X ω − y ) T ( X ω − y ) + λ ∣ ∣ ω ∣ ∣ q q (X\omega-y)^T(X\omega-y)+\lambda||\omega||_q^q (Xωy)T(Xωy)+λωqq , ∣ ∣ ω ∣ ∣ q ||\omega||_q ωq 表示 ω \omega ω q q q 范数。当取定不同的范数,得到不同的正则化方法。 q = 2 q=2 q=2:岭回归(Ridge), q = 1 q=1 q=1:LASSO。

​ 岭回归(Ridge)和LASSO可以理解为将原本的无约束优化变成带约束优化,两者区别为约束区域的不同。

![岭回归 LASSO对比](https://img-blog.csdnimg.cn/20200707143029946.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dob3N0X19s,size_16,color_FFFFFF,t_70) ### 线性回归模型代码实现
## 线性回归
def linear_regression(X,y):
    w = np.zeros_like(X.shape[1])
    if np.linalg.det(X.T.dot(X)) != 0 : ##判断 X^T·X 是否奇异
        w = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)  ## $\Omega$ 表达式
    return w
## 岭回归
def ridge_regression(X,y,ridge_lambda):
    penality_matrix = np.eye(X.shape[1])
    penality_matrix[X.shape[1] - 1][X.shape[1] - 1] = 0
    w = np.linalg.inv(X.T.dot(X)+ridge_lambda*penality_matrix).dot(X.T).dot(y)
    return w

sklearn 中的 linear_model 模块实现了常见的线性模型,包括线性回归、岭回归和 LASSO 等。对应的算法和类名如下表所示。

算法类名
线性回归linear_model.LinearRegression
岭回归linear_model.Ridge
LASSOlinear_model.Lasso

线性回归模型假设与诊断

序号假设图形法统计方法
1线性回归假设残差图(残差与拟合值)-
2误差项同方差学生化残差图Modified Levene检验
Breusch-Pagan Test检验
3误差项相互独立残差图(残差与观测)Durbin-Watson检验(时间
Moran I指数(空间)
4误差项正态分布残差Q-Q图正态性检验
5无离群点、强影响点学生化残差与杠杆值图、Cook’s D图学生化残差、杠杆值 Cook’s D统计量

探索性可视化分析

将数据集读取PandasDataFrame的格式 例如 data = pandas.read_csv("./input/data.csv");

然后 data.head()预览数据,默认显示5行;

通过 data.shape 查看数据集中样本数量和特征数量

通过 seaborn 中的 countplot or distplot 函数绘制条形图或者直方图观察特征取值分布情况

通过 pairplot 定性的查看各个特征之间的线性相关性,或者计算特征相关系数矩阵然后热力图定量可视化线性相关性 data.corr() sns.heatmap()

模型实现及评价;

决策树

决策树举例:

image-20200706104052080

决策树算法

​ 决策树是一种基于树形结构的算法,内部节点表示一个特征,叶节点表示一个类,决策树等价于队空间的方块划分。

image-20200706104521592

相关概念

不纯度(impurity):

​ 表示落在当前节点的样本类别分布的均衡程度。节点分裂后,节点的不纯度降低(纯度更高),类分布更不均衡。特征以及对应分割点的选择应该使得分裂前后的不纯度(impurity)下降最大。

如图,比较Imp(D_0 )-Imp(D_123)与Imp(D_0 )-Imp(D_456)的大小来选择节点特征是收入还是教育程度?

image-20200706132008422
不纯度的度量
Gini指数(Gini index):

Gini ⁡ ( t ) = 1 − ∑ c = 1 C [ p ( c ∣ t ) ] 2 \operatorname{Gini}(t)=1-\sum_{c=1}^{C}[p(c \mid t)]^{2} Gini(t)=1c=1C[p(ct)]2

G i n i ( t ) Gini(t) Gini(t) 表示在节点 t t t 的Gini指数其中 p ( c ∣ t ) p(c|t) p(ct) 是在节点 t t t 中第 c c c 类样本的相对频率, C C C 为类的总个数;当样本均匀分布的每一个类中,Gini指数为 1 − 1 / C 1-1/C 11/C ,说明不纯度大;当样本都分布在一个类中,Gini指数为0,说明不纯度小。

计算示例:

image-20200706132851248 $$ \text {Gini}_{\text {split}}=\sum_{k=1}^{K} \frac{n_{k}}{n} \operatorname{Gini}\left(t_{k}\right) $$ $Gini_{split}$ 表示节点 $t$ 分割后的Gini指数,$n_k$ 是子节点 $t_k$ 的样本数量,$n$ 是父节点 $t$ 的样本数量
信息熵(entropy):

​ 节点 t t t 的信息熵表示为:
Entropy ( t ) = − ∑ c = 1 C p ( c ∣ t ) log ⁡ 2 p ( c ∣ t ) \text {Entropy}(t)=-\sum_{c=1}^{C} p(c \mid t) \log _{2} p(c \mid t) Entropy(t)=c=1Cp(ct)log2p(ct)
当样本均匀分布在每一个类中时候,熵为 l o g 2 C log_2C log2C ,说明不纯度大;当所有的样本属于同一个类是,熵为0,说明不纯度小。

​ 信息增益,即节点分裂前后的信息熵的下降值,公示为
InfoGain = Entropy ( t 0 ) − ∑ k = 1 K n k n Entropy ( t k ) \text {InfoGain}=\text {Entropy}\left(t_{0}\right)-\sum_{k=1}^{K} \frac{n_{k}}{n} \text {Entropy}\left(t_{k}\right) InfoGain=Entropy(t0)k=1KnnkEntropy(tk)
n k n_k nk 是子节点 t k t_k tk 的样本数量, n n n 是父节点 t 0 t_0 t0 的样本数量。

误分率(misclassfication error):

​ 误分率是指当按照多数类来预测当前节点样本的类别是,呗错误分类的数据的比例。
E r r o r ( t ) = 1 − max ⁡ ( p ( 1 ∣ t ) , p ( 2 ∣ t ) , … , p ( C ∣ t ) ) { Error }(t)=1-\max (p(1 \mid t), p(2 \mid t), \ldots, p(C \mid t)) Error(t)=1max(p(1t),p(2t),,p(Ct))
表示节点 t t t 的误分率,当样本均匀分布在每一个类中,误分率为 1 − 1 c 1-\frac{1}{c} 1c1 , 不纯度最大;当样本分布在同一个类中时,误分率为0,不纯度最小。

​ 如下图,显示的是二分类问题中基尼指数Gini§、熵(单位比特)一半 1 2 H ( p ) \frac{1}{2}H(p) 21H(p) 和 分类误差率的关系,横坐标表示概率,纵坐标表示损失,可以看出基尼指数Gini和二分之一熵的曲线很接近,都可以近似的代表分类误差率。

image-20200706164108792

决策树的生成

ID3算法:

​ 离散型特征,信息熵(信息增益)为不纯度度量,分割的子节点数量 K ≥ 2 K\geq 2 K2 ,目标特征类型为离散型。

​ ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征, 递归地构建决策树. 具体方法是,从根结点(root node)开始, 对结点计算所有可能的特征的信息增益, 选择信息增益最大的特征作为结点的特征, 由该特征的不同取值建立子结点; 再对子结点递归地调用以上方法, 构建决策树; 直到所有特征的信息增益均很小或没有特征可以选择为止. 最后得到一个决策树ID3相当千用极大似然法进行概率模型的选择.

ID3算法

​ 输入: 训练数据集D, 特征集A , 阙值e,
​ 输出:决策树T.

(I) 若 D D D中所有实例属千同一类 C k C_k Ck, 则 T T T为单结点树,井将类 C k C_k Ck, 作为该结点的类标记, 返回 T T T ;

(2)若 A = ∅ A=\empty A=, 则 T T T为单结点树,井将 D D D中实例数最大的类 C C C, 作为该结点的类标记, 返回 T T T

(3)否则, 按信息增益算法计算 A A A中各特征对 D D D的信息增益, 选择信息增益最大的特征 A g A_g Ag

(4)如果 A g A_g Ag 的信息增益小于阈值 ε \varepsilon ε, 则置 T T T 为单结点树,并将 D D D中实例数呆大的类 C k C_k Ck, 作为该结点类标记后返回 T T T:

(5)否则, 对 A g A_g Ag 的每一可能值 a i a_i ai, 依 A g = a i A_g=a_i Ag=ai, 将 D D D分割为若干非空子集 D i D_i Di, 将 D i D_i Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树 T i T_i Ti , 返回 T T T ;

(6)对第 i i i个子结点,以 D i 为 训 练 集 , 以 D_i 为训练集,以 Di A − { A g } A-\{A_g\} A{Ag}为特征集, 递归地调用步(1)~步(5), 得到子树 T i T_i Ti , 返回 T i T_i Ti

C4.5的生成算法

C4.5算法与ID3算法相似,C4.5 算法对ID3算法进行了改进. C4.5 在生成的过程中,用信息增益比来选择特征.

决策树的剪枝

​ 决策树生成算法递归地产生决策树,直到不能继续下去为止.这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象.过拟合的原因在于学习时过多地考虑如何提高对训练数据的正确分类,从而构建出过于复杂的决策树.解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化。

​ 在决策树学习中将已生成的树进行简化的过程称为剪枝(pruning). 具体地,剪枝从已生成的树.上裁掉一些子树或叶结点,并将其根结点或父结点作为新的叶结点,从而简化分类树模型.

CART算法

​ CART是在给定输入随机变量 X X X 条件下输出随机变量 Y Y Y 的条件概率分布的学习方法。 CART假设决策树是二叉树,内部结点特征的取值为 ”是“ 和 “否” ,左分支是取值为 “是” 的分支,右分支是取值为 “否” 的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。

​ CART算法由一下两步组成:

​ (1)决策树生成:基于训练数据及生成决策树,生成的决策树要尽量大;

X X X 条件下输出随机变量 Y Y Y 的条件概率分布的学习方法。 CART假设决策树是二叉树,内部结点特征的取值为 ”是“ 和 “否” ,左分支是取值为 “是” 的分支,右分支是取值为 “否” 的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。

​ CART算法由一下两步组成:

​ (1)决策树生成:基于训练数据及生成决策树,生成的决策树要尽量大;

​ (2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。

文献
部分理论内容参考 李航《统计学习方法》

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北极星~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值