• regularized 线性回归练习


    在机器学习中,如果参数很多,而样本数量比较少,很容易产生过拟合问题。因此在函数的损失模型中加入惩罚系数,这些参数一般都会很小,而越小的参数,模型越简单,越不会产生过拟合问题。参考的网页资源为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html

    实验原理:

        假设对于一个由10个点组成的样本,要拟合一条曲线来表示。如果想采取高次多项式预测表示,如下:

                

        那么现在我们有了模型的六个特征,分别对应的六个预测参数。如果用这个五次多项式去拟合一个只有十个点的样本集,很容易产生过拟合。所以我们引入惩罚参数:

                

      是怎么控制过拟合的呢?它独立于预测参数的平方和,当预测参数很大时,损失函数必然会很大。所以往往预测参数就会很小,在极端情况下,假设第五个参数小到零,则变成四次多项式了,再小呢,最后就有可能接近于二次曲线、乃至直线。这样的话,模型就趋于简单化。有效的控制了过拟合的产生。

    Normal equations方法:

      

    和普通的正则方程法相比,公式左边括号中增加了一个乘以一个(n+1)*(n+1)的矩阵。最左上角是零,剩下的是一个单位对角矩阵。The vector $\vec{y}$ and the matrix $X$unregularized regression的定义是一样的:

              

    使用这个等式,寻求对于以下三个不同的的预测参数:

    a. $\lambda = 0$ (等同于non-regularized linear regression)

    b. $\lambda = 1$

    c. $\lambda = 10$

    实验结果如下:

     等于10的时候的过拟合的可能性最小。

    源代码如下:

    clc,clear
    %加载数据
    x = load('ex5Linx.dat');
    y = load('ex5Liny.dat');
    
    %显示原始数据
    plot(x,y,'o','MarkerEdgeColor','b','MarkerFaceColor','r')
    
    %将特征值变成训练样本矩阵
    x = [ones(length(x),1) x x.^2 x.^3 x.^4 x.^5];
    [m n] = size(x);
    n = n -1;
    
    %计算参数sidta,并且绘制出拟合曲线
    rm = diag([0;ones(n,1)]);%lamda后面的矩阵
    lamda = [0 1 10]';
    colortype = {'g','b','r'};
    sida = zeros(n+1,3);
    xrange = linspace(min(x(:,2)),max(x(:,2)))';
    hold on;
    for i = 1:3
        sida(:,i) = inv(x'*x+lamda(i).*rm)*x'*y;%计算参数sida
        norm_sida = norm(sida)
        yrange = [ones(size(xrange)) xrange xrange.^2 xrange.^3,...
            xrange.^4 xrange.^5]*sida(:,i);
        plot(xrange',yrange,char(colortype(i)))
        hold on
    end
    legend('traning data', '\lambda=0', '\lambda=1','\lambda=10')%注意转义字符的使用方法
    hold off
  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/ahujack/p/3022945.html
Copyright © 2020-2023  润新知