zoukankan      html  css  js  c++  java
  • 机器学习-线性回归

    看完前三节课程啦,感觉概念还是分开理还可以,但是所有的拼凑在一起又觉得并不是很明朗,有种中学时代只听课不做练习的感觉。

    今天主要是记录一下malab的理解代码。

    回归问题,依旧是用房屋问题作为典型的代表,理论部分就不再这里记录了,因为手写版的理解笔记有了就好了。下面就是简要概述下流程:

    training set (x,y) 下载

    prediction=theta*x

    目标是调整theta,使得对于每一个x对应的prediction尽可能的接近对应的y.

    sqrError=(prediction-y).^2;

    [m,n]=size(x);

    cost: J=1/(2*m)*sum(sqrError)

    ok,思路都清楚了,下面就是matlab的实现。

    %损失函数的定义。存放在项目目录下,命名为costFunctionJ。m
    function J=costFunctionJ(x,y,theta)
    [m,n]=size(x);
    prediction=x*theta;
    sqrError=(prediction-y).^2;
    J=1/(2*m)*sum(sqrError);
    
    
    
    %功能:对于任意的theta,给出损失的大小,也就是误差大小。
    %数据集下载好并且重命名为house.txt,存放在项目目录下。
    %载入数据集
    house=load('house.txt');
    X=(:,1,2);%所有行,1,2,列(都是我自己的理解,没学过matlab)
    Y=(:,3);
    
    hold on %显示一个2维坐标轴。有不覆盖原图的功能
    %标上X,Y轴
    xlabel X
    ylabel Y
    %将(X,Y)显示在坐标中
    plot(X(:,2),Y(:,1),'*');
    
    %theta是自己随便取的,
    theta=[3.575;1.62];
    j=costFunctionJ(X,Y,theta) %就会自动给出误差啦
    %之后就把你这个prediction表示在坐标上
    x=(0:1);
    y=theta(1,:)+theta(2,:)*x;
    plot(x,y,'r');%用红色描绘

    ----------------  

    下面是用标准方程的方法,参考【http://blog.csdn.net/google19890102/article/details/26074827】

    %标准方程解回归问题
    %standRegres.m
    
    function [theta] = standRegres(x,y)
    	[m,n] = size(x);
    	xTx=x'*x;
    	if det(xTx) == 0
    		disp('This matrix is singular,can not do inverse');
    	end
    	theta =pinv(xTx)*x'*y;
    end

    %下面是对函数的调用:
    house=load('house.txt');
    X=(:,1,2);%所有行,1,2,列(都是我自己的理解,没学过matlab)
    Y=(:,3);
    
    hold on %显示一个2维坐标轴。有不覆盖原图的功能
    %标上X,Y轴
    xlabel X
    ylabel Y
    %将(X,Y)显示在坐标中
    plot(X(:,2),Y(:,1),'*');
    theta = standRegres(X,Y);
    x=(0:1);
    y=theta(1,:)+theta(2,:)*x;
    plot(x,y,'g');%用绿色描绘

      

  • 相关阅读:
    react-动画
    react-json渲染
    SQL 只取重复记录一条记录并且是最小值
    SQL 函数:树结构指定父节点遍历所有的子节点
    EasyUI treegrid 删除一条或多条记录
    String.Format数字格式化输出 {0:N2} {0:D2} {0:C2} (转)
    EasyUI 左,右(上、下)布局
    DataTable 树形构造加全部
    easyui datagrid 格式化列显示两位小数、千分位
    c# 判断文件是否已使用
  • 原文地址:https://www.cnblogs.com/beihaidao/p/7193556.html
Copyright © 2011-2022 走看看