用线性回归找到最佳拟合直线(附实战代码python)


1.     寻找数据的拟合直线,即线性回归。

        要找到,最佳的拟合直线 :  (以只有一个特征的数据为例)

                                        

        利用最小二乘估计 寻找最佳的参数

        (为什么使用最小二乘估计,即差的平方和,而不用绝对值或者四次方作为成本函数,见最小二乘法的概率解释

        (事实上,其实最小二乘估计是在广义线性模型是对高斯分布建模的结果)

定义成本函数:

                                        

                                                                                        矩阵形式

    容易理解:

扫描二维码关注公众号,回复: 150350 查看本文章

            当成本函数值达到最小时,为拟合直线的回归系数的最佳估计参数。之所以称估计值是因为数据仅仅停留在训练集上。

    求解成本函数极值方法:

        (1).微分学求导方式(这里是矩阵求导)       (本文所用方法)

        (2).最优化算法,梯度下降算法


                来理解方法1,成本函数中对自变量进行求导,由于是个矩阵,所以要进行对矩阵求导。

                    令导函数为0,得到结果式为:(过程详见

                                                

                    即得:                        

    最终得到回归系数矩阵 从而得到拟合直线(可扩展为平面乃至更高维度)

2.    接下来,进行实战利用python进行最佳拟合直线(代码)。

        拟合结果图:

                    

            从结果上来看,线性回归的一个问题时有可能出现欠拟合现象,因为它是具有最小均方误差的无偏估计。所以有些方法允许在估计中引入一些偏差,来进一步降低均方误差。其中一种方法就是局部加权线性回归


3.    考虑一个问题,当数据特征比训练集样本点还多时,也就是说不可逆。因为 

        此时就要用缩减样本来“理解”数据,求得回归系数矩阵。



附:

    实战:可利用线性回归来预测鲍鱼的年龄

  示例代码:预测鲍鱼年龄



猜你喜欢

转载自blog.csdn.net/z_feng12489/article/details/80192957