问题一: 机器学习的基本流程( 三 )


生成样本点
现在对上图数据进行拟合:
from sklearn.linear_model import LinearRegression#实例化lr = LinearRegression(fit_intercept=True)x2 = x.reshape(-1,1)# 训练模型lr.fit(x2, y)# 生成绘制直线的横坐标xfit = np.linspace(0,10,100) #从0到10生成100个xfit2 = xfit.reshape(-1,1)yfit = lr.predict(xfit2) #预测#画出点的直线plt.plot(xfit,yfit)#画出原来训练集的点plt.plot(x,y,'o')
拟合结果:
看上去效果还是不错的 。
假设该拟合直线为y ^ = w 0 + w 1 x \hat{y}=w_{0}+w_{1} x y^?=w0?+w1?x。现在我们的目标是使得该拟合直线的总的残差和达到最小, 也就是最小化S S E S S E SSE。我们令该直线是以均值为核心的「均值回归┘ \ ┘, 即散点的x ˉ \bar{x} xˉ 和y ˉ \bar{y} yˉ? 必经过这条直线:
y ˉ = w 0 + w 1 x ˉ \bar{y}=w_{0}+w_{1} \bar{x} yˉ?=w0?+w1?xˉ
对于真实值y来说, 我们可以得到:
y = w 0 + w 1 x + ? y=w_{0}+w_{1} x+\ y=w0?+w1?x+?
这里的? \ ? 即为「 「 「 残差┘ \ ┘, 对其进行变形, 则残差平方和S S E S S E SSE 就为:
∑ ? 2 = ∑ ( y ? w 0 ? w 1 x ) 2 \sum \^{2}=\sum\left(y-w_{0}-w_{1} x\right)^{2} ∑?2=∑(y?w0??w1?x)2
要求得残差平方和最小值, 我们通过微积分求偏导算其极值来解决 。这里我们计算残差最小对应的参数w 1 w_{1} w1? :
? ? w 1 = 2 ∑ ( y ? w 0 ? w 1 x ) ( ? x ) = 0 一阶导数 ∵ w 0 = y ˉ ? w 1 x ˉ ∴ ∑ ( y ? y ˉ + w 1 x ˉ ? w 1 x ) ( x ) = 0 ∑ ( y x ? y ˉ x + w 1 x ˉ x ? w 1 x 2 ) = 0 ∑ ( y x ? y ˉ x ) + ∑ ( w 1 x ˉ x ? w 1 x 2 ) = 0 ∑ ( y x ? y ˉ x ) = ∑ ( w 1 x 2 ? w 1 x ˉ x ) ∑ ( y ? y ˉ ) x = w 1 ∑ ( x ? x ˉ ) x ∑ w 1 = ∑ ( y ? y ˉ ) x ∑ ( x ? x ˉ ) x \begin{} \frac{\}{\ w_{1}} &=2 \sum\left(y-w_{0}-w_{1} x\right)(-x)=0 \quad \text { 一阶导数 } \\ & \ w_{0}=\bar{y}-w_{1} \bar{x} \\ & \ \sum\left(y-\bar{y}+w_{1} \bar{x}-w_{1} x\right)(x)=0 \\ & \sum\left(y x-\bar{y} x+w_{1} \bar{x} x-w_{1} x^{2}\right)=0 \\ & \sum(y x-\bar{y} x)+\sum\left(w_{1} \bar{x} x-w_{1} x^{2}\right)=0 \\ & \sum(y x-\bar{y} x)=\sum\left(w_{1} x^{2}-w_{1} \bar{x} x\right) \\ & \sum(y-\bar{y}) x=w_{1} \sum(x-\bar{x}) x \\ & \sum w_{1}=\frac{\sum(y-\bar{y}) x}{\sum(x-\bar{x}) x} \end{} ?w1????=2∑(y?w0??w1?x)(?x)=0一阶导数∵w0?=yˉ??w1?xˉ∴∑(y?yˉ?+w1?xˉ?w1?x)(x)=0∑(yx?yˉ?x+w1?xˉx?w1?x2)=0∑(yx?yˉ?x)+∑(w1?xˉx?w1?x2)=0∑(yx?yˉ?x)=∑(w1?x2?w1?xˉx)∑(y?yˉ?)x=w1?∑(x?xˉ)x∑w1?=∑(x?xˉ)x∑(y?yˉ?)x??
根?协方差和方差的猚?公式,我们将分子分母同时除以n ? 1 n-1 n?1, 则可以得到:
w ^ 1 = ∑ ( y ? y ˉ ) ( x ? x ˉ ) ∑ ( x ? x ˉ ) 2 \hat{w}_{1}=\frac{\sum(y-\bar{y})(x-\bar{x})}{\sum(x-\bar{x})^{2}} w^1?=∑(x?xˉ)2∑(y?yˉ?)(x?xˉ)?
同理,可知:
w ^ 0 = y ˉ ? w ^ 1 x ˉ \hat{w}_{0}=\bar{y}-\hat{w}_{1} \bar{x} w^0?=yˉ??w^1?xˉ
此时, 使得S S E S S E SSE 最小的量w ^ 0 , w ^ 1 \hat{w}_{0}, \hat{w}_{1} w^0?,w^1? 称为总体参数w 0 , w 1 w_{0}, w_{1} w0?,w1? 的最小二乘估计值, 预测方程y ^ = w ^ 0 + w ^ 1 x \hat{y}=\hat{w}_{0}+\hat{w}_{1} x y^?=w^0?+w^1?x 称为最小二乘直线 。
问题二: 决策树
要求: 利用决策树应用划分
在构建决策树过程中有哪些优化方法
举例说明信息增益原理及其改进途径
试用类C语言(或)写出剪枝算法.
决策树是一种自上而下,对样本数据进行树形分类的过程,由结点和有向边 组成.结点分为内部结点和叶结点,其中每个内部结点表示一个特征或属性,叶 结点表示类别.从顶部根结点开始,所有样本聚在一起.经过根结点的划分,样 本被分到不同的子结点中.再根据子结点的特征进一步划分,直至所有样本都被 归到某一个类别(即叶结点)中.
决策树作为最基础、最常见的有监督学习模型,常被用于分类问题和回归问 题,在市场营销和生物医药等领域尤其受欢迎,主要因为树形结构与销售、诊断 等场景下的决策过程十分相似.将决策树应用集成学习的思想可以得到随机森 林、梯度提升决策树等模型,这些将在第12章中详细介绍.完全生长的决策树模 型具有简单直观、解释性强的特点,值得读者认真理解,这也是为融会贯通集成 学习相关内容所做的铺垫.