枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx

上传人:b****3 文档编号:12631792 上传时间:2023-04-21 格式:DOCX 页数:25 大小:197.23KB
下载 相关 举报
枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx_第1页
第1页 / 共25页
枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx_第2页
第2页 / 共25页
枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx_第3页
第3页 / 共25页
枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx_第4页
第4页 / 共25页
枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx

《枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx》由会员分享,可在线阅读,更多相关《枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx(25页珍藏版)》请在冰豆网上搜索。

枣品质决策系统决策树生成与果实评估大学本科毕业论文.docx

枣品质决策系统决策树生成与果实评估大学本科毕业论文

摘要

枣因其营养价值高,易种植,耐存活且在不同地域拥有不同特色而成为许多地方特别是山区高原致富之道,但由于技术方面的欠缺使得果农无法用专业知识去评估自己手中果实的品质和正确价值导向,由此带来一系列问题,信息消息的滞后导致农户盲目种植,产品积压,销售停滞。

因此就要找到相关途径,知己之道,才能让枣农更快发展富裕起来。

由此需求设计了《枣品质决策系统》,它是依托当前信息的网络化、快速化,使用网络评估果实品质,给出相关建议等服务为前提的综合信息评估服务系统的设计。

实现通过Internet互联网对专家和果农给出的信息数据的采集整理生成决策树,进行相关评估工作。

通过《枣品质决策系统》进行果实评估给出建议,方便即果农专家进行相关工作,又减少成本。

缩短果农与专家的距离。

在此项目中选择了JavaWeb作为开发语言,用到了面向对象的开发思想和mvc设计模式的设计理念。

在接口设计上,实现了数据封装和信息隐藏。

关键字:

枣品质评估、决策树分析、JavaWeb、mvc模式、数据挖掘。

Abstract

Datesbecauseofitshighnutritionalvalue,easytogrow,resistancetosurviveandindifferentregionshavedifferentcharacteristicsandbecomerichinmanyplaces,especiallyinmountainousplateau,butduetothelackoftechnologymakethefruitcannotuseprofessionalknowledgetoevaluatethequalityoftheirownhandsthefruitandthecorrectvalueguidance,leadingtoaseriesofproblems,informationmessagesdelayleadtofarmersplantingblindly,productbacklog,salesstalled.Sowillfindrelevantway,bosomfriend,togetthemostrichfasterdevelopment.Thusdemand"jujubequalitydecisionsystemisdesigned,itisrelyingonthecurrentinformationnetwork,rapidness,usingthenetworkevaluatingfruitquality,andprovideadviceandotherservicesastheprerequisiteofcomprehensiveassessmentinformationservicesystemdesign.ImplementationthroughtheInternetInternetforexpertsandfruitgiveinformationdatacollectiontogeneratethedecisiontree,relatedtotheassessmentwork.Throughthejujubequalitydecision-makingsystemtoevaluatefruitrecommendations,namelyfruitexpertsforarelatedwork,andreducecosts.Shortenthedistanceofgrowersandexperts.

InthisprojectweselectJavaWebasadevelopmentlanguage,usetheobject-orienteddevelopmentthoughtandthedesignconceptoftheMVCdesignpattern.Intheinterfacedesign,realizedthedataencapsulationandinformationhiding.

Keywords:

Jujubequalityassessment,decisiontreeanalysis,JavaWeb,MVCmode,datamining.

目录

1.引言1

1.1背景和意义1

1.1.1背景1

1.1.2意义1

1.2国内外的现状1

1.3本文的重点2

2.技术支持3

2.1开发工具和环境3

2.1.1开发工具选择3

2.1.2运行环境4

2.2用JDBC连接数据库的方法4

2.3决策树算法4

3.需求分析与概要设计6

3.1需求分析6

3.1.1条件和限制6

3.1.2功能需求6

3.2概要设计6

3.2.1系统总体分析6

3.2.2按模块分总体设计7

3.2.3按各模块间关系8

3.2.4系统模块划分8

4.详细设计及实现9

4.1设计说明9

4.2数据结构设计9

4.2.1数据结构9

4.3决策流程11

4.3.2模块流程图12

4.4决策树实现13

4.4.1系统设计模式13

4.4.2数据库信息获取方法13

4.4.3系统拓展实现14

4.4.4接口的设计15

4.4.5后台包及设计16

4.4.6异常处理17

4.4.7出现的问题以及解决方法17

5结论18

5.1技术特点18

5.2缺点及不足18

5.3系统扩展18

5.4总结18

致谢19

参考文献20

1.引言

本系统是面向专家和农户,基于中小型数据库数据挖掘工具。

它基于语言开发,不但操作简单,界面友好,易于操作,实用性强;同时还能够跨平台运行。

1.1背景和意义

1.1.1背景

枣本身的功能价值赋予的,枣的补血、美容、保健、营养、抗癌、抗疲劳、镇静、护发、降脂、降糖、养生等等效果符合现代人追求的时尚要素

国务院总理温家宝3月5日在十二届全国人大一次会议上作政府工作报告时提出,要促进农业稳定发展和农民持续增收。

坚持把解决好“三农”问题作为各项工作的重中之重。

党的十六大以来,党中央明确要把解决好“三农”问题放在全党工作重中之重的位置,着力统筹城乡经济社会发展,加快形成城乡发展一体化新格局。

党的十八大从中国特色社会主义事业总体布局出发,推出了“促进工业化、信息化、城镇化、农业现代化同步发展”,明确“城乡发展一体化”是解决“三农”问题的根本途径。

随着计算机技术和网络技术的迅速崛起,计算机日渐深刻的在改变着人们的生产生活方式。

而互联网已日益成为收集提供信息的最佳渠道,并逐步进入科学种植决策领域。

1.1.2意义

枣树的种植区域地理环境和人文环境特征赋予的,枣树的种植不仅仅有它的经济意义,更有重要的环境意义和社会价值,枣树种植的区域主要分布在我过干旱、半干旱、风沙荒漠化和土地盐碱化的区域,枣树的种植可以极大的改善这些区域的生态环境,符合人类与自然和谐相处的命题,同时这些区域主要为中国经济发展相对滞后的区域,是我国改善这些区域人民生活环境、提高他们生活水平,增加收入来源的重要抓手,对于缩小区域经济差异,促进经济和谐发展有着重要意义。

1.2国内外的现状

过去的二十年,传统信息随着应用领域增多以电子格式存储的数据在量上有了戏剧性的增长。

数据的累积量已经在以指数性的速率递增。

人们已经评估出世界上信息的数量每二十个月翻一番,并且数据库的数量与大小正在以更快的速度增长。

诸如"物种属性"或远程移动设备等的电子数据采集设备的增长更加剧了可用数据的增加。

如何有效地获取和利用这些平时的采样数据,并且变数据为知识,是我们研究的主要课题。

数据挖掘的发展历史是建立在相关学科发展的基础上的。

随着数据库技术的发展及应用,人们积累的数据越来越多。

激增的数据背后隐藏着许多重要的信息,简单的查询和统计已经无法满足商业的需求,需要出现一种挖掘数据背后隐藏的知识的手段。

决策树通过用数据库管理系统来存储数据,用机器学习的方法来分析数据,挖掘大量数据背后的知识,这两者的结合促成了数据库中的知识发现(KDD:

KnowledgeDiscoveryinDatabases)的产生。

数据挖掘(DM:

DataMining)是知识发现(KDD)最核心的部分。

1998年第四届知识发现与数据挖掘国际学术会议上不仅进行了学术讨论,并且有30多家软件公司展示了他们的数据挖掘软件产品,不少软件已在北美、欧洲等国得到应用。

经历十多年的发展,数据挖掘已经成为一个自成体系的应用学科。

数据挖掘应用的主要对象是海量数据,从基础的数据条件来看,电信、金融机构和政府税务部门都已具备。

所以数据挖掘技术兴起不久,特别是成熟的软件产品问世后,立刻就在在这些领域里得到了广泛的应用。

比如说政府机关的税务部门,国家的宏观政策上已经在金税四期的工程里提到用数据挖掘的方法来解决目前困扰税务机关的纳税评估和稽查选案的两大问题,而且也有一部分地市作为带头人开始使用数据挖掘工具。

作为决策支持系统的一个重要组成部分,数据挖掘已经越来越成为近年来国内外税务部门关注的焦点之一。

在此,我们也可以借鉴一下国外税务机关使用数据挖掘的先进经验:

1、Texas州的税务稽查人员需要确保联邦税法在存在欺诈和不服从的纳税人也可以得到有效得执行。

40万个纳税人每年得特许税(Franchisetax)和营业税征收额都在1亿9千万美圆以上。

采用数据挖掘方法,每年Texas州利用数据挖掘技术从未申报的税收中发现百万计的偷逃税款。

2、美国华盛顿国家税务局通过建立数据仓库并进行相应的挖掘工作,把最先只能对100个左右的公司进行稽查工作,通过数据挖掘进行稽查选案工作,大大提高了对稽查选案时的准确性和稽查额度,节约了稽查成本并使稽查成果大幅提高。

虽然在我们探讨研究的同时还需要逐渐完善,但是数据挖掘作为一门学科正从原来的边缘学科转变成为一门成熟学科,同时,伴随着信息化技术的发展,数据挖掘的技术也逐渐趋于成熟,国外的专业杂志-麻省理工学院的《科技评论》去年提出未来5年对人类产生重大影响的10大新兴技术,“数据挖掘”位居第三。

从以上数据挖掘发展的历史和未来的前景来看,数据挖掘技术现在已经处于一个相对成熟的阶段。

这为我们查询和分析工具的设计提供了很好的技术支持。

同时面向对象编程技术的应用,使得系统有了更加灵活的扩展性,从而使各个模块间的耦合性大大降低,提高了系统的聚合性。

同时基于面向对象的设计模式和重构方法的应用,使得系统的维护和扩展变的更加容易。

1.3本文的重点

叙述如何使用MVC的框架,用ID3算法实现决策树,并用实际数据进行评估。

2.技术支持

2.1开发工具和环境

通过MVC结构添加相关样本数据导入数据库,后台生成相应决策树,用户通过前台确定相关的查询数据,通过决策树评估得到由该品种的品质等级。

专家用户可以进行样本数据查看,增加和删除,也可以自己通过选择相应的属性建立决策树判断某些属性对决策结果的影响。

2.1.1开发工具选择

当前开发此类工具的语言很多,比如:

JAVA,VB,C++,NET…在这些语言当中,要想开发一个功能完善、界面友好、移植性好、扩展性好的系统并不是所有语言都能满足的。

首先看VB语言:

VB在用户界面开发方面有很大优势,比如:

操作简单,可视化强。

但是它没有脱离开面向过程的编程模式,可扩展行和维护性很差。

而且不支持B/S模式。

C++虽然既支持面向对象编程,同时又支持面向过程编程。

然而面向对象部分结构复杂,而且并不能支持B/S模式。

.NET架构不但支持面向对象编程,而且同时支持B/S模式和C/S模式,按说是系统选择的对象,然而不能实现跨平台运行导致的低移植性是它的致命缺点。

最后,我们把选择了java。

Java语言与其他语言相比有一下优点:

1.可移植性与结构中立——结构中立,平台无关;对网络编程,单系统软件发布有用。

2.分布式——对象可以在本地或远程系统中。

3.安全性——并不允许程序访问所有的计算机内存和磁盘空间。

4.健壮性——Java便一起可以在编译时自行检测许多问题,而别的语言只有运行时才检测,Java不支持指针算法,不会有不良的指针管理引起的内存泄露或者内存错误。

5.多线程——可以同时执行多个任务。

6.动态性——足够多的运行时类型信息,用于在运行时校验对象。

这使得在一种安全有效的方式下动态的连接代码成为可能。

在设计模式上选用MVC设计模式:

当用户有请求提交时,所有请求都会交给Servlet进行处理,然后由Servlet调用JavaBean,并将JavaBean的操作结果通过RequestDispatcher接口传递到JSP页面上。

由于这些要显示的内容只是在一次请求-回应中有效,所以在MVC设计模式中,所有的属性传递都将使用request属性范围传递,这样可以提升代码的操作性能。

2.1.2运行环境

操作系统:

Windows系列,内存128M以上,硬盘1G以上

Java虚拟机版本:

jdk1.7.0

目前系统可支持的数据库:

SqlServer。

可用浏览器:

默认为Ie浏览器(支持javascript脚本)。

Office:

使用excel2003

2.2用JDBC连接数据库的方法

通过java可以有两种方式连接数据库:

JDBC和ODBC,但是因为ODBC是一个C语言接口,所以ODBC在Java中直接使用不适当。

因为从Java中来调用C代码在安全性,健壮性,实现的方便,可移植性等方面有许多不便。

它使得Java在这些方面的许多优点得不到发挥。

于是我们选择了JDBC与数据库连接。

Jdbc是Sun提供的一套数据库编程接口API函数,由Java语言编写的类、界面组成。

用写的程序能够自动地将SQL语句传送给相应的数据库管理系统。

JDBC连接数据库方法图2-1:

图2-1:

JDBC连接数据库方法

2.3决策树算法

采用ID3决策树算法

造决策树的基本算法是贪心算法,它以自顶向下递归的各个击破方式构造决策树。

一种著名的决策树算法是ID3,算法的基本策略如下:

①创建一个节点。

如果样本都在同一类,则算法停止,把该节点改成树叶节点,并用该类标记。

②否则,选择一个能够最好的将训练集分类的属性,该属性作为该节点的测试属性。

③对测试属性中的每一个值,创建相应的一个分支,并据此划分样本。

④使用同样的过程,自顶向下的递归,直到满足下面的三个条件中的一个时就停止递归。

给定节点的所有样本都属于同一类。

没有剩余的属性可以用来划分。

分支没有样本。

设S是s个数据样本的集合。

假定类标号属性具有m个不同值,定义m个不同类Ci(i=1,2,…,m)。

设si是类Ci中的样本数。

对一个给定的样本分类所需要的期望信息由下式给出:

其中pi是任意样本属于Ci的概率,并用si/s估计。

设属性A具有v个不同值{a1,a2,…,av}。

可以用属性A将S划分为v个子集{S1,S2,…,SV};其中,Sj包含S中这样一些样本,它们在A上具有值aj。

如果A选作测试属性(即最好的分裂属性),则这些子集对应于由包含集合S的节点生长出来的分枝。

设sij是子集Sj中类Ci的样本数。

根据由A划分成子集的熵或期望信息由下式给出:

其中,

是第j个子集的权,并且等于子集(即A值为aj)中的样本个数除以S中的样本总数。

熵值越小,子集划分的纯度越高。

注意,对于给定的子集Sj,

 

其中,

是Sj中的样本属于类Ci的概率。

在A上分枝将获得的编码信息是

Gain(A)称为信息增益,它是由于知道属性A的值而导致的熵的期望压缩。

具有最高信息增益的属性选作给定集合S的测试属性。

创建一个节点,并以该属性标记,对属性的每个值创建分枝,并据此划分样本。

3.需求分析与概要设计

3.1需求分析

3.1.1条件和限制

用户必须登录进入相关角色才能使用相关权限的功能,样本数据库默认必须至少有一个样本值。

3.1.2功能需求

功能划分:

(1)用户增删改查,个人信息修改。

(2)样本数据的录入,导出,删除。

(3)显示样本数据,样本数据值与含义转换。

(4)样本数据生成相关决策树。

(5)输入相应属性通过决策树分析评估品种级别。

(6)自定义属性决策树,进行属性影响力对比。

3.2概要设计

3.2.1系统总体分析

总体分析如图3—1:

 

图3—1系统总分析图

3.2.2按模块分总体设计

3.2.3按各模块间关系

3.2.4系统模块划分

模块一,决策树生成模块。

(由张金磊完成)

负责用JDBC桥接数据库,使用ID3算法生成ID3型决策树,根据输入属性完成品质评估,样本数据管理,属性评估。

前台页面设计。

数据库表设计。

用户增删改查。

模块二,分词模块,显示模块。

(由臧进进完成)

负责根据输入的对于果实的通俗描述语句,分出相应属性词语,并将新描述词填入词库。

模块三,数据导入模块,基础模块。

(由富兆慧完成)

负责完成单条数据录入数据和用excel表批量导入数据库。

 

4.详细设计及实现

4.1设计说明

由于系统分三个模块,由我来负责决策树生成模块因此在系统详细设计部分,由我来完成决策树生成模块的设计和开发。

4.2数据结构设计

由于数据库内部结构复杂并且关系紧密,因此设计一个合理的数据结构,用来存储数据库内部表与表、字段与表、字段与字段之间的关系和信息是很有必要的。

4.2.1数据结构

根据系统面对用户,数据库设计以下结构:

数据库信息结构:

数据库名称(fruit)

数据库表信息结构:

user表

createtableusers(

user_idintidentity(1,1)notnullprimarykey,

user_namevarchar(16)notnull,

passwordvarchar(20)notnull,

emailvarchar(40),

phonevarchar(20),

remarksvarchar(50),

limitintnotnullcheck(limit>=0andlimit<=2))

用户数据表记录用户相关数据,用户名,密码(md5加密),电子邮件,权限(管理员0,专家1,用户2)。

Part表:

createtablepart(

part_idintidentity(1,1)notnullprimarykey,

part_namevarchar(20)notnull,

user_idintreferencesusers(user_id),

datedatetime)

品种范围记录范围的名称,创建人id,日期。

引用用户表的user_id。

Variety表:

createtablevariety(

var_idintidentity(1,1)notnullprimarykey,

var_namevarchar(20),

user_idintreferencesusers(user_id),

part_idintreferencespart(part_id),

datedatetime)

品种表记录引入创建品种的用户,品种名,所属范围,日期。

引用了用户表的user_id

范围表的part_id。

varfield_1表:

createtablevarfield_1(

vf_idintnotnullprimarykey,

attributevarchar(20)notnull,

weightfloatnotnull

品种数据表,记录品种属性名,品种权值。

引用了品种表var_id,表名由品种id决定

attvalue_1表:

createtableattvalue_1(

vf_idintreferencesvarfield_1(vf_id),

valueintnotnull,

valuenamevarchar(20)notnull

primarykey(vf_id,value)

某品种具体属性记录表,引用外键vf_id,属性编号value,属性名称valuename表名由品种id决定,主键由vf_id,value联合决定

tree_1表:

createtabletree_1(

idintidentity(1,1)notnullprimarykey,

果肉色泽float,

果肉质地float,

酥脆程度float,

果肉粗细float,

果肉汁液float,

酸甜度float,

特殊口味float,

裂果率float,

形状float,

表皮颜色float,

果点密度float,

果皮厚度float,

果顶float,

果面float,

斑点大小float,

果肩float,

梗洼深度float,

梗洼广度float,

萼片状态float,

柱头状态float,

果实整齐度float,

果核形状float,

种仁饱满度float,

核壳有无float,

含仁率float,

丰产性float,

浆烂度float,

果实大小float,

树形float,

有无残渣float,

成熟期float,

可食率float,

resultintcheck(result>=0andresult<=5))

某品种决策树中具体数据表记录该品种决策树相关数据(随品种创建一起创建)

表名由品种id决定tree_id。

4.3决策流程

基础模块流程如下:

用户选择相关属性值连接数据库提取样本生成决策树根据提供值评估结果输出结果。

 

4.3.2模块流程图

4.4决策树实现

4.4.1系统设计模式

面向对象编程是近来程序开发的主流,和以往的面向过程编程相比,它更具有可维护性和可扩展性。

无论是从程序设计还是到程序开发,都展现出了面向过程无法比拟的优点。

首先,它从人类认识世界的角度出发,提出了“万物皆对象”的思想。

其次,对象具有的继承、封装和多态的特征,为程序的开发和维护带来了很大的便利。

再次,面向对象的设计重点放在了对象和对象接口设计上,从而摆脱了以往面向过程的把主要精力放在如何实现的细节上。

从面向对象的思想出发,我们开发数据库查询和分析工具的基础模块,在开发基础模块之前我们要把握好以下几点:

模块封装性要好:

一个模块分解是否成功的标志是看该模块自身的数据和细节封装的程度的大小。

一个好的模块,可以把所有的实现细节隐藏起来,提供各外部的API与自己的具体实现区分开来。

这样各个模块之间就只通过API进程通信,而不考虑具体的实现细节。

模块扩展性要好:

系统的最大特点就是要做到通用性,要想实现通用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1