机器学习及其matlab实现—从基础到实践——HW3

Contents

  • I. 清空环境变量
  • II. 训练集/测试集产生
  • III. 数据归一化
  • IV. BP神经网络创建、训练及仿真测试
  • V. 性能评价
  • VI. 画图

I. 清空环境变量

clear all
clc

II. 训练集/测试集产生

1. 导入数据

load concrete_data.mat

2. 随机产生训练集和测试集

temp = randperm(size(attributes,2));
% 训练集——80个样本
P_train = attributes(:,temp(1:80));
T_train = strength(:,temp(1:80));
% 测试集——23个样本
P_test = attributes(:,temp(81:end));
T_test = strength(:,temp(81:end));
N = size(P_test,2);

III. 数据归一化

[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax(‘apply‘,P_test,ps_input);

[t_train,ps_output] = mapminmax(T_train,0,1);

IV. BP神经网络创建、训练及仿真测试

1. 创建网络

net = newff(p_train,t_train,11);

2. 设置训练参数

net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;

3. 训练网络

net = train(net,p_train,t_train);

4. 仿真测试

t_sim = sim(net,p_test);

5. 数据反归一化

T_sim = mapminmax(‘reverse‘,t_sim,ps_output);

V. 性能评价

1. 绝对误差error

error = abs(T_sim - T_test)./T_test;

2. 决定系数R^2

R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));

3. 结果对比

result = [T_test‘ T_sim‘ error‘]
result =

   28.1600   31.1291    0.1054
   52.6500   53.0643    0.0079
   30.9700   26.2469    0.1525
   38.4600   38.0986    0.0094
   41.1400   39.8364    0.0317
   30.8300   30.8207    0.0003
   36.1900   35.7525    0.0121
   32.7100   33.8095    0.0336
   41.0100   40.0879    0.0225
   32.8400   33.3301    0.0149
   33.9100   31.6726    0.0660
   38.1900   38.3960    0.0054
   26.4200   27.5678    0.0434
   17.1900   18.4602    0.0739
   35.5200   35.2201    0.0084
   49.9700   51.0821    0.0223
   48.7700   48.8715    0.0021
   46.3600   46.2920    0.0015
   31.5000   29.0295    0.0784
   42.0800   42.0742    0.0001
   36.4600   39.2970    0.0778
   44.4800   44.6282    0.0033
   58.5300   53.3348    0.0888

VI. 画图

figure
plot(1:N,T_test,‘b:*‘,1:N,T_sim,‘r-o‘)
legend(‘真实值‘,‘预测值‘)
xlabel(‘预测样本‘)
ylabel(‘混凝土抗压强度‘)
string = {‘测试集混凝土抗压强度预测结果对比‘;[‘R^2=‘ num2str(R2)]};
title(string)

Published with MATLAB? R2015a

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 03:46:37

机器学习及其matlab实现—从基础到实践——HW3的相关文章

机器学习及其matlab实现—从基础到实践——HW2

Contents 读取外部数据文件(文件格式不限,mat.txt.xls.csv等均可) 绘制图形(包含xlabel.ylabel.title.legend,并对字体和线性进行设置) 读取外部数据文件(文件格式不限,mat.txt.xls.csv等均可) 1. mat格式 load data.mat 2. txt格式 M = importdata('data.txt'); 3. xls格式 W = xlsread('data.xls'); 4. csv格式 V = csvread('data.c

机器学习及其matlab实现竞争神经网络与SOM神经网络进阶与提高视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

MSF基础攻击实践报告

MSF基础攻击实践 MSF的六个模块:exploit,encoder,payload,aux,post,nops exploit——渗透攻击模块 测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果.常见的有内存溢出,网站程序漏洞利用,配置错误exploit. exploits总的来说共分为两类溢出(exploit)攻击方法,即主动溢出和被动溢出.主动溢出是针对目标主机的漏洞主动的进行攻击以获得控制权限,被动溢出是针 对目标主机被动的监听然后获得相应的操作. Exploit共分为

2014.08.04,读书,《Matlab概率与数理统计分析》-第1章 MATLAB的数据基础

第1章 MATLAB数据基础 虽然一直间或使用MATLAB,但从来没有系统的学习过,现在开始也不晚.先对几个重点或者平时忽略的要点做下笔记. %后的所有文字为注释,多条命令可以放在一行,但要用逗号或分号隔开,命令后的逗号表示显示结果,分号表示禁止显示结果. 符号…表示语句的余下部分将出现在下一行,但不能出现在变量名或运算符之间. M文件又称Script文件,具有全局性,文件中的所有变量在整个工作环境中有效. 命令: cumsum(x,dim),求累积和,matlab中cumsum函数通常用于计算

Arduino从基础到实践第三章练习题

先写在这里,还没经过测试. 1. LED两端往中间移动,到中间后向两边返回. 1 // adr301.ino 2 3 byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; 4 int ledDelay(65); 5 int direction = 1; 6 int currentLED = 0; 7 unsigned long changeTime; 8 9 void setup() { 10 for(int i=0; i<10; i++){ 1

第二章 Matlab面向对象编程基础

DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab编程书上都对Matlab面向对象所提甚少甚至没提.因此在DeepLab的使用说明书中专门添加Matlab面向对象编程基础是有必要的.第一节 Matlab面向对象大体结构代码清单2.1.1 classdef className<handle & superclass1 & supercla

Spark入门到精通视频学习资料--第一章、Scala基础与实践

第一章.Scala基础与实践(3讲) Scala编程语言抓住了很多开发者的眼球.如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格. 根据David Rupp在博客中的说法,Scala可能是下下一代Java. Scala有几项关键特性表明了它的面向对象的本质.例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值.数字等)在内,连函数也是对象.另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mix

Python数据分析基础与实践 Python数据分析实践课程 Python视频教程

课程简介: Python数据分析基础与实践 Python数据分析实践课程 Python视频教程----------------------课程目录------------------------------├<章节1Python概况>├<章节2Python安装>├<章节3数据准备>├<章节4数据处理>├<章节5数据可视化>├<章节6网页数据抓取>├<章节7连接MySQL>├<章节8数据分析> 下载地址:百度网盘

初识MATLAB之编程基础一

之前4篇随笔初识MATLAB之文件读取,初识MATLAB之矩阵,初识MATLAB之运算符与字符串,初识MATLAB之数据类型介绍了MATLAB基础.接下来分2篇随笔来介绍MATLAB之编程基础.其中编程基础一讲述变量,语句及控制结构.编程基础二讲述M文件及函数. 一 变量和语句 1.1 变量 变量命名:有一些命名规则. 1)对字母大小写敏感. 2)开头必须是字母. 3)不能使用关键字.关键字共有20个(可通过命令iskeyword查询,如下所示) >> keywords= reshape(is