人工智能试验-天气决策树

人工智能试验-天气决策树

ID:45761048

大小:107.67 KB

页数:12页

时间:2019-11-17

人工智能试验-天气决策树_第1页
人工智能试验-天气决策树_第2页
人工智能试验-天气决策树_第3页
人工智能试验-天气决策树_第4页
人工智能试验-天气决策树_第5页
资源描述:

《人工智能试验-天气决策树》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2013年秋季学期研究生课程考核(读书报告、研究报告)能实验报告(二)学生所在院(系):计学生姓名:学号:学生类别:学术考核结果阅卷人学生所在学科:计算科机学与技术一.问题描述决策树是最简单的但是最成功的学习算法形式之一,一个决策树将用属性集合描述的事物或情景作为输入,并返回一个“决策”作为输入的预测的输出值,输入的属性值可以使离散的,也可以是连续的,实验中我们使用的是离散的数据,决策树通过执行一个测试序列來得到它的决策。下面为实验数据,运用InformationGain构造一个天气决策树。编号属性分类天况温度湿度风况1睛执八、、大无N2晴执八、、大有N3多云执八、、大

2、无P4雨屮大无P5雨冷正常无P6雨冷正常有N7多云冷正常有P8晴中大无N9睛冷正常无P10雨中正常无P11晴中正常有P12多云中大有P13多云执八、、止常无P14雨中大有N二、算法介绍及程序流程图(1)设计并实现程序,构造出正确的决策树,实验考虑到几个属性:天况——晴、雨、多云;温度一一热、中、冷;湿度——大、止常;风况——有、无;然后根据每个属性来算出信息增益,接下来我们根据信息增益最大的来进行划分。根据问题设计算法,建立数据结构,设计需要用的类,然后通过编程实现问题求解。了解和求解最大信息增益和最小爛选择平均爛最小的属性作为根节点,用同样的方法选择其他节点直至形成整

3、个决策树。dataset就是具体的划分过程,首先找到可用的划分项目,再第一次划分Z后再相关的数据來计算爛。问题分许:天况——晴、雨、多云温度——热、中、冷湿度——大、正常风况——冇、无首先我们要根据每个属性来算出信息增益,接下来我们根据信息增益最大的来进行划分。(sM乂尢「)低申朋柏豈;:)(和让“)(甬冷跡朮・)(毗如九札•)(氐冷』亿尢⑴…’’’(甬,冷』心九♦)(丙冲■九缶-)側冲氏比厂)(飢中上忙尢㈤选择一个属性,根据该InformationGain把数据分割为K份。分许如下:产牛多个待处理元素一—aueue(2)主要函数流程图:—A数据集未使用的属性段V计JI

4、G挑出分割数据集属性I划分数据集一数据*列表Basefun流程图N*三、算法实现1•实验环境一台PC及VISUALC++6.0软件2.部分程序代码Main,cpp:ttinclude#ineludettinclude#inelude^includettinclude〈string>ifinclude"AttributeValue,h"itinclude"DataPoint.h〃ttincludc"DataSct.h〃DataPointprocessLine(std::stringcons

5、t&shine)istd::istringstreamisLine(sLine,std::istringstream::in);std::vectorattributes;//TODO:needtohandlebeginningandendingemptyspaces.while(isLine.good())std::stringrawfield;isLine>>rawfield;attributcs.push_back(AttributcValuc(rawficld));}AttributeValuev=attributes.back(

6、);attributes.popbackO;booltype=v.GetTypeO;returnDataPoint(attributcs,typc);}voidmain()!std::ifstreamifs("in.txt",std::ifstream::in);DataSetinitDataset;whi1e(ifs.good())i//TODO:needtohandleemptylines.std::stringsLine;std::getline(ifs,sLine);initDataset.addDataPoint(processLine(sLine));std

7、::list〈DataSet>processQ;std::vectorfinishedDataSet;processQ・push_back(initDataset);while(processQ.sizc()>0){std::vectorsplittedDataSets;DataSetdataset二processQ.front();dataset,spliLDataSet(splittedDataSets);processQ.popfront();for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。