目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。

ID3算法最早是由罗斯昆(J. Ross Quinlan)于1975年在悉尼大学提出的一种分类预测算法,算法的核心是“信息熵”。ID3算法通过计算每个属性的信息增益,认为信息增益高的是好属性,每次划分选取信息增益最高的属性为划分标准,重复这个过程,直至生成一个能完美分类训练样例的决策树。
       决策树是对数据进行分类,以此达到预测的目的。该决策树方法先根据训练集数据形成决策树,如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到训练集数据中,重复该过程一直到形成正确的决策集。决策树代表着决策集的树形结构。
       决策树由决策结点、分支和叶子组成。决策树中最上面的结点为根结点,每个分支是一个新的决策  结点,或者是树的叶子。每个决策结点代表一个问题或决策,通常对应于待分类对象的属性。每一个叶子结点代表一种可能的分类结果。沿决策树从上到下遍历的过程中,在每个结点都会遇到一个测试,对每个结点上问题的不同的测试输出导致不同的分支,最后会到达一个叶子结点,这个过程就是利用决策树进行分类的过程,利用若干个变量来判断所属的类别。

在利用原始数据集构建决策树之前,需要对这些历史用电信息做以下工作:
a) 由于原始数据集中包含有错误的用电调度信息,比如在电价高的时段对蓄电池充电,为了提高决策树的分类正确率,必须先从原始数据集中除去错误和无利用价值的用电调度信息。
b) 由专业人员根据样本中的性能指标数据,运用专业的知识和经验做出正确的调度决策。
c) 在选择分类属性时考虑到各数据之间大小关系对最终决策结果的影响,构建决策树所使用的分类属性定义如下:

ID3 算法是决策树的经典构建算法,它根据信息增益来评估和选择特征进行划分,每次选择信息增益最大的特征作为判断的模块(即特征节点),可用于划分标称型数据集(即数据中没有缺省特征值的数据集),虽然 ID3 比较灵活方便,但是有以下几个缺点:

(1)采用信息增益进行分裂,缺少剪枝的过程,很可能会出现过拟合的问题。我们可以合并相邻的无法产生大量信息增益的叶子结点(如设置信息增益阈值)。

(2)信息增益和属性的值域范围成正比,也就是有些特征(属性)取值很多,ID3算法很大可能将其作为分裂属性,导致分裂的精确度可能没有采用信息增益率进行分裂高。

(3)不能处理连续分布的数据特征,只能通过将连续性数据转化为离散型数据来解决,也不能处理数据集中的缺省值。

2.仿真效果预览

matlab2022a仿真结果如下:

3.MATLAB核心程序

..................................................................................
% (a) c1为调用延时启动程序;
% (b) c2为调用DR控制程序;
% (c) c3为家电按照期望运行时间工作;
% (d) c4为蓄电池充电;
% (e) c5为蓄电池放电。
%环保模式动态调度
%然后仿真,加入决策树之后,优化的结果,然后进行对比体现家电能量管理的优势
Plimit = 1.5;
flag   = 1;
CPmax  = 0.03;
DPmax  = 1.0;
Qmax   = 0.2;
Qmin   = 0.1;dat_pre3=zeros(1,48);
for i = 1:48%分析不同时间段%对300人分别进行处理dattotal =0;for j = 1:300PG   = (mean(pow1{j}(:,1))+Pb)/20;Psum = mean(pow1{j}(:,3+i));Preq = PG + Pv + Pb;Q    = 0.18+rand/5;%这个变量数据中没提供,我们假设一组数据%计算PG和Psum%先判断a2:a2为PGt> Psum,其值域为{是,否} ;if Price(i) == min(Price)%a1if PG > Psum%a2if Q < Qmax%a4if Psum + CPmax > PGflag = 4; elseflag = 6;  endelseflag = 1;  endelse%c3 flag = 3;endflagend    if Price(i) == max(Price)%a1if PG > Psum%a2flag = 1;  else%c5 if Q > Qmin%a3if Preq > Psumflag = 3;%c3 elseflag = 2;%c2endelse%a7if PG + DPmax < Psumif Preq > Psumflag = 7;%c3c5 elseflag = 2;%c2endelseflag = 5;%c5  endendendend%启动c1if flag == 1%延迟启动系统tmps = pow1{j}(:,3+i);tmps2= zeros(size(tmps));%延迟,所以当前设置为0end%启动c2if flag == 2%DR系统tmps = pow1{j}(:,3+i);idx  = find(tmps>=Plimit);tmps(idx) = Plimit;tmps2= tmps; end%启动c3c3为家电按照期望运行时间工作if flag == 3%tmps = pow1{j}(:,3+i);tmps2= tmps;%不做任何处理endif flag == 4%Pb=min(10*Pb,1);%假设充电后电量为原来的两倍,但最大不超过1endif flag == 5%Pb=max(0.1*Pb,0.1);%假设充电后电量为原来的0.5倍,但最小不大于0.1endif flag == 6%c1,c4,c1为调用延时启动程序,c4为蓄电池充电;tmps = pow1{j}(:,3+i);tmps2= zeros(size(tmps));%延迟,所以当前设置为0Pb=min(10*Pb,1);%假设充电后电量为原来的两倍,但最大不超过1endif flag == 7%c3,c5,c3为家电按照期望运行时间工作;,c5为蓄电池放电。tmps = pow1{j}(:,3+i);tmps2= tmps;%不做任何处理Pb=max(0.1*Pb,0.1);%假设充电后电量为原来的0.5倍,但最小不大于0.1enddattotal=dattotal+mean(tmps2);enddat_pre3(i)=dattotal;
end
05_070_m

4.完整MATLAB

V

m基于ID3决策树算法的能量管理系统matlab仿真相关推荐

  1. 机器学习-ID3决策树算法(附matlab/octave代码)

    ID3决策树算法是基于信息增益来构建的,信息增益可以由训练集的信息熵算得,这里举一个简单的例子 data=[心情好 天气好  出门 心情好 天气不好 出门 心情不好 天气好 出门 心情不好 天气不好 ...

  2. python机器学习笔记:ID3决策树算法实战

    ID3算法是一种贪心算法,用来构造决策树,ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每一个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继 ...

  3. ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测

    ML之DT:基于DT决策树算法(交叉验证FS+for遍历最佳FS)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 fs = fea ...

  4. ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测

    ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 初步处理后的 X_train: (984, ...

  5. 在西瓜数据集上用Python实现ID3决策树算法完整代码

    在西瓜数据集上用Python实现ID3决策树算法完整代码 文章目录 1.决策树算法代码ID3.py 2.可视化决策树代码visual_decision_tree.py 3.贴几张运行结果图 1.生成的 ...

  6. matlab ssgs工具箱,基于PI控制方式的1A开关电源MATLAB仿真研究

    基于 PI 控制方式的 1A 开关电源 MATLAB 仿真研究学院:电气与光电工程学院专业:电气工程及其自动化班级:基于 PI 控制方式的 1A 开关电源 MATLAB 仿真研究0目录0 绪论 --- ...

  7. matlab仿真限幅发散,基于模糊控制的直流电机调速系统MATLAB仿真_贾东耀

    基于模糊控制的直流电机调速系统MATLAB 仿真 贾东耀,曾智刚 (广东工业大学,广州市 510090) 摘 要:采用Fuzzy-PI 控制策略进行直流电机的调速系统设计,它克服了简单模糊控制和传统P ...

  8. 【ISAR成像定标方法(4)—基于参数估计法的方位维定标MATLAB仿真】

    目录 前提介绍 基于LOG算子的目标散射点提取 基于ICPF的转速估计 ISAR成像定标仿真实验 结语 前提介绍 本章内容简介:分析了CPF(三次相位函数法),CICPF(相干三次相位函数法)和ICP ...

  9. 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真

    建议使用MATLAB2021b 资源: 基于瞬时无功功率ip-iq的谐波信号检测MATLAB仿真资源-CSDN文库 整体模型: 模型具体工作原理不做介绍,因为此方法很老,参考文献巨多!!!  单相输入 ...

最新文章

  1. QString与string的相互转换
  2. ABA问题的本质及其解决办法
  3. string容量JAVA_java的StringBuilder类的长度和容量有什么区别呢?
  4. python登录网页_Python如何爬取需要登录的页面
  5. ArcGIS工具之ET GeoWizards、GeoTools、GeoTools
  6. Java logging整理
  7. python输出为指定编码_Python 中文编码
  8. 华罗庚杯成绩查询2021高考成绩,第22届华杯赛入围决赛分数线已定,明天起可查询成绩...
  9. Ubuntu安装sasquatch时执行./build.sh报错:--no-check-certificate
  10. 商业虚拟专用网络技术一
  11. linux yum安装驱动,centos8安装alsa驱动
  12. 第四天:Spark Streaming
  13. python选手的最后得分_python戏说NBA--NBA近二十年得分王各项数据之最
  14. 免备案云服务器选香港好还是美国好
  15. mysql 军规_Mysql使用军规
  16. java定义文章的难度系数
  17. 怎么更改计算机 盘符名称,怎么更改盘符,windows修改盘符方法
  18. 小米 无线 linux 鼠标,实测小米便携式鼠标2:小巧精致 支持无线双模连接
  19. eclipse因jdk打不开解决
  20. 计算机虚拟空间怎么设置,虚拟内存怎么设置最好,教您电脑虚拟内存怎么设置最好...

热门文章

  1. 深度卷积神经网络(CNN tricks)调参技巧
  2. opencv+yolov5定位Apex游戏人物
  3. 开源免费的WordPress个人博客主题推荐
  4. 自定义Edge扩展插件|文章备忘录
  5. Linux网络编程笔记 - 05 地址转换函数 32位整数,转换为点分十进制
  6. ESP8266--Arduino开发(驱动WS2812B)
  7. 一个BI项目是如何开展的
  8. SpringBoot整合CXF框架开发
  9. 从计算机移到u盘如何加快速度,如何加快U盘或移动硬盘的传输速度
  10. Java调用WebService接口之利用hutool工具包实现