线性回归——最小二乘法_实例(二)

上篇文章介绍了最小二乘法矩阵形式的理论与证明、计算过程,这里使用程序代码的方式计算出矩阵形式的解,并给出线性拟合;

Octave代码

 clear all;close all;
 % 拟合的数据集
 x = [1,2;1,6;1,9;1,13];
 y = [4;8;12;21];
 % 根据公式 w = (x‘*x)^-1  * x‘ * y
 % 与上篇文章一样一步步分解如下,其实这里可以不用分解,上篇文章分解时为了好计算
 x_t =x‘*x;   

 %% (x‘*x)^-1或inv(x‘ * x)
 x_i = x_t^-1; 

 x_i_t = x_i*x‘; 

% 求出w
 w = x_i_t * y;   

 %% 在画板上绘制出数据集的点
 figure(1);hold off
 plot(x(:,2),y,‘bo‘,‘markersize‘,5,‘linewidth‘,2)
 set(gca,‘xtick‘,0:1:25)  

 % 画布大小为25*25
 xplot = [0 25];
 yplot = [0 25];
 xlim(xplot)
 ylim(yplot)
 hold on
 % 打印出拟合的线段
 plot(xplot,w(1,:)+w(2,:)*xplot,‘r‘,‘linewidth‘,2)
 set(gca,‘yTick‘,1:1:25)
 set(gca,‘xTick‘,1:1:25)
 xlabel(‘x‘);
 ylabel(‘y‘);
 

运行结果

文章首发地址:Solinx
http://www.solinx.co/archives/753

时间: 2024-10-07 17:22:50

线性回归——最小二乘法_实例(二)的相关文章

线性回归——最小二乘法_实例(一)

上篇文章介绍了最小二乘法的理论与证明.计算过程,这里给出两个最小二乘法的计算程序代码: Octave代码 clear all;close all; % 拟合的数据集 x = [2;6;9;13]; y = [4;8;12;21]; % 数据长度 N = length(x); % 3 %% 计算x平均值 m_x = sum(x)/N; %% % 计算t的平均值 m_t = sum(y)/N; %% % 计算t*x的平均值 m_xt = sum(y.*x)/N; %% % 计算x平方的平均值 m_x

DWR入门实例(二)

DWR(Direct Web Remoting) DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible. Dwr能让在服务器端的java代码和浏览器客户端的javascript代码尽可能简单的相互调用. DWR is Easy Ajax for Java!  官网:http://d

Hibernate实例二

Hibernate实例二 一.测试openSession方法和getCurrentSession方法 hebernate中可以通过上述两种方法获取session对象以对数据库进行操作,下面的代码以及注解是对两种方法的辨析 SessionTest.java 1 import java.sql.Connection; 2 import java.sql.SQLException; 3 import java.util.Date; 4 5 import org.hibernate.Session; 6

Linux DNS的主从服务器配置实例(二)

在主DNS服务器运行正常的情况下,在另外的一台与之相同的服务器上配置从DNS服务器:操作如下: 我们这里创建DNS从服务器是实验,没有注册,,实际工作中需要注册才能正常使用,明白!!嘻嘻你懂得! 从服务器配置前提调试:(网络必须相同,小孩都知道的!)  1.统一时间  #ntpdate 172.16.0.1 -----指定时间服务器地址(瞬间跟新时间)  #corntab -e----------------------计划任务可以设置定期更新   */3 * * * * /sbin/ntpda

c#事件实例二

c#事件实例二 事件驱动程序与过程式程序最大的不同就在于,程序不再不停地检查输入设备,而是呆着不动,等待消息的到来,每个输入的消息会被排进队列,等待程序处理它.如果没有消息在等待, 则程序会把控制交回给操作系统,以运行其他程序. 操作系统只是简单地将消息传送给对象,由对象的事件驱动程序确定事件的处理方法.操作系统不必知道程序的内部工作机制,只是需要知道如何与对象进行对话,也就是如何传递消息. 先来看看事件编程有哪些好处. 1.使用事件,可以很方便地确定程序执行顺序. 2.当事件驱动程序等待事件时

二维码_(二)分割与读取

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Collections;using System.Drawing

函数_实例2_计算器

#!/bin/bash compute() {         if [ $# != 3 ];then                 echo "Your input num is not enough!"         fi         let "s=0"         case $2 in                 +)                         let "s=$1+$3"                

函数_实例4_使用位置参数和函数返回结果

#函数中也可以使用位置参数! #函数是有返回结果的! #!/bin/bash show_week() {         echo -n  "your input is :"          echo "$1"         case $1 in      #变量是$1                 1)                         echo "Today is Monday"                      

C语言库函数大全及应用实例二

原文:C语言库函数大全及应用实例二                                              [编程资料]C语言库函数大全及应用实例二 函数名: bioskey 功 能: 直接使用BIOS服务的键盘接口 用 法: int bioskey(int cmd); 程序例: #i nclude #i nclude #i nclude #define RIGHT 0x01 #define LEFT 0x02 #define CTRL 0x04 #define ALT 0x0