数据挖掘实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告说明

本课程一共需要写两个实验报告:

实验报告一:基于人工神经网络的曲线拟合

实验目的:首先,熟悉人工神经网络的产生背景、算法的思想和原理以及步骤;其次,熟悉人工神经网络的Matlab工具箱;最后,通过对曲线的拟合的实验,熟练掌握神经网络的程序设计。

实验时间:第11周周二9-10节、第12周周二9-10节;学时:4

参考程序:

实验数据集文件名:data.mat

%% 清空环境变量

clc

clear

%% 训练数据预测数据提取及归一化

%下载输入输出数据

load data input output %input 是2000行2列,output是1行2000列

%从1到2000间随机排序

k=rand(1,2000); %随机生成一个1行2000列的矩阵

[m,n]=sort(k); %对矩阵K排序,其中m表示从小到大的排序结果,n表示m中各数据的排序前的索引(位置结果)

%产生训练数据和预测数据

input_train=input(n(1:1900),:)'; %input_train为2行1900列的训练的输入矩阵

output_train=output(n(1:1900)); %output_train为1行1900列的训练的输出矩阵

input_test=input(n(1901:2000),:)';

output_test=output(n(1901:2000));

%选连样本输入输出数据归一化

[inputn,inputps]=mapminmax(input_train); % mapminmax是对矩阵的行进行归一化处理,其中inputn为归一化后的数据矩阵,inputps是归一化后的结构体,包含最大值、最小值、平均值等信息

[outputn,outputps]=mapminmax(output_train);

%% BP网络训练

% %初始化网络结构

net=newff(inputn,outputn,5);

net.trainParam.epochs=100; %迭代次数

net.trainParam.lr=0.1; %学习率

net.trainParam.goal=0.00004;%目标

%网络训练

net=train(net,inputn,outputn);

%% BP网络预测

%预测数据归一化

inputn_test=mapminmax('apply',input_test,inputps); %按照inputps的规则进行反归一化

%网络预测输出

an=sim(net,inputn_test);

%网络输出反归一化

BPoutput=mapminmax('reverse',an,outputps);

%% 结果分析

figure(1)

plot(BPoutput,':og')

hold on

plot(output_test,'-*');

legend('预测输出','期望输出')

title('BP网络预测输出','fontsize',12)

ylabel('函数输出','fontsize',12)

xlabel('样本','fontsize',12)

%预测误差

error=BPoutput-output_test;

figure(2)

plot(error,'-*')

title('BP网络预测误差','fontsize',12)

ylabel('误差','fontsize',12)

xlabel('样本','fontsize',12)

figure(3)

plot((output_test-BPoutput)./BPoutput,'-*');

title('神经网络预测误差百分比')

errorsum=sum(abs(error))

实验报告二:基于支持向量机的葡萄酒分类

实验目的:首先,熟悉支持向量机的产生背景、算法的思想和原理以及步骤;其次,熟悉支持向量机的Matlab软件包---LibSVM(使用LibSVM软件时,请先安装VC软件);最后,通过对葡萄酒分类的实验,熟练掌握支持向量机的程序设计。

实验时间:第13周周二9-10节、第14周周二9-10节、第15周周二9-10节;学时:6

参考程序:

实验数据集文件名:chapter12_wine.mat

%% SVM的数据分类预测----意大利葡萄酒种类识别

% 问题描述:wine的数据来自于UCI数据库,记录的是在意大利同一区域上三种不同品种的葡萄酒的化学成分,数据里有178个样本,每个样本含有13个特征分量(化学成分),每个样本的类标签已给。

%% 清空环境变量

close all;

clear;

clc;

format compact; %紧凑格式。数据之间无空行

%% 数据提取

% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量

load chapter12_wine.mat;

% 画出测试数据的box可视化图

figure;

boxplot(wine,'orientation','horizontal','labels',categories);

title('wine数据的box可视化图','FontSize',12);

xlabel('属性值','FontSize',12);

grid on;

% 画出测试数据的分维可视化图

%% 画出178个样本的类别图

figure

subplot(3,5,1);

hold on

for run = 1:178

相关文档
最新文档