【风光场景生成】基于改进ISODATA的负荷曲线聚类算法(Matlab代码实现)

news2025/2/26 23:06:56

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
1.1 K-means聚类算法及存在的问题
1.2 ISODATA 聚类算法及存在的问题
1.3 L-ISODATA聚类算法
1.4 K-L-ISODATA聚类算法
📚2 运行结果
2.1 聚类算法比较
2.2 K-L-ISODATA聚类算法
2.3 L-ISODATA聚类算法
2.4 ISODATA聚类算法
2.5 K-means聚类算法
🎉3 参考文献
🌈4 Matlab代码、数据、文章讲解

💥1 概述

文章来源:

对用户进行分类,将每一类用户的负荷叠加,为每个类建立预测模型,如图3.3所示:

先采用聚类算法依据用电行为和习惯对用户进行划分,将具有相似用电习惯的用户分为同一类,同一类的用户的用电数据叠加在一起,再为每一类建立负荷预测模型。这种做法综合了上述两种策略,取长补短,既可以避免为每个用户都建立预测模型带来的问题,同时又可以加强对不同用电特性的用户的学习能力,提高预测准确性。如上述分析,为了提高预测模型对用户的用电模式这一特征的表示能力,同时避免为每个用户都建立预测模型,本文采用第三种策略来进行负荷预测,需要根据用户的用电习惯将用户进行分类。用户的用电行为和习惯可以从其历史负荷曲线中分析得到,

具有相似的用电行为和习惯的用户,它们的历史负荷曲线也会是相似的[46]。因此可以从历史负荷曲线入手,使用聚类算法来对用户的历史负荷曲线进行划分,采用距离度量来评价负荷曲线间的相似性,将具有相似负荷曲线的用户划分到同一类中,负荷曲线不的用户划分为不同的类。对负荷曲线聚类后,可以针对每一类用户的用电行为单独迂进行分析,建立更加精准的负荷预测模型。在进行负荷曲线聚类之前,首先要对负荷曲线进分析,建立更加精准的负荷预测模型。在进行负荷曲线聚类之前,首先要对负荷曲线进行归一化处理,这是因为不同的用户其负荷的量级可能有较大差距,而负荷曲线聚类主要是评估用户的用电行为和习惯,也就是负荷曲线的走向和趋势,与负荷的数量级是无关的,因此事先对负荷曲线进行归一化处理是非常重要的。根据第二章的分析,可以采

用线性函数归一化来处理负荷曲线。

1.1 K-means聚类算法及存在的问题

K-means聚类算法在1967年被James MacQueen提出,是一种数据挖掘中非常常用的聚类算法I:8]。K-means聚类算法会将样本集划分为k类,每一类都有一个聚类中每个样本离哪个聚类中心最近就被划分为哪一类。K-means通过迭代来进行簇的划分,最终的目标是使得簇内的误差最小化。

K-means同时还具有一些缺点:

(1)k值的选取不容易提前确定,尤其是在样本集数据量大、维度高时,设定的k值得到的结果也是不一样的;

(2)初始的聚类中心是随机选取的,如果选取的不合适会导致收敛速度变慢,并且可能影响聚类的效果;

(3)对噪声和异常点比较敏感;

(4)不适合太离散、样本类别不平衡的聚类任务;

(5)距离度量的选取对聚类效果非常关键。

1.2 ISODATA 聚类算法及存在的问题

ISODATA 的全称是迭代自组织数据分析算法(Iterative Selforganizing Data Ana.lysisTechniques Algorithm),在K-means中,k的值需要人为提前确定,并且k的值一旦确定也就无法修改,在很多场景,尤其是数据量大、数据维度多的场景中,k的值很难提前就确定下来,往往只能多次尝试找到最优的k值。ISODATA聚类算法的出现解决了这样一个问题,它的k值是在聚类过程中可以变

动的,它主要引入了分裂和合并这两个操作:当某个类别中样本数很多并且方差较大时,则分裂该类别为两个类;当某个类别中样本数过少时并且离另一个类别靠的比较近,则对这两个类进行合并操作[49]。

综上所述,ISODATA算法和K-means算法的最大不同是新增了合并和分裂这两个操作,也因此引入了很多参数。ISODATA算法也有一定的优缺点,ISODATA最大的优点在于:ISODATA算法虽然也需要预先给出一个期望得到的聚类数目,但在运行期间ISODATA算法会根据各个聚类的实际情况而动态调整聚类数目,可以有效地解决事先无法确定聚类数目的问题。

然而,虽然ISODATA算法解决了K-means 的一些问题,但它仍旧有自己的缺点和局限性:

(1)首先,ISODATA依旧是随机选取初始聚类中心,选取的结果会影响到聚类收敛的速度和最终聚类的效果;

(2)ISODATA默认和K-means一样都使用欧式距离作为距离度量,在原始的负荷曲线输入空间中使用欧氏距离无法提取负荷曲线中的高维特征,这在前面已经分析过了;

(3 )ISODATA 算法需要预先确定的参数更多,算法的复杂度更高,比如标准偏差参数、聚类中心最小距离参数,这些参数都需要事先根据一些统计量来进行估计。

1.3 L-ISODATA聚类算法

经典的ISODATA 聚类算法虽然已经解决了K-means算法需要事先确定聚类数目的问题,但它还是有一定的缺点:比如随机选取初始聚类中心可能导致聚类算法收敛较慢、效果较差,还会造成聚类结果的偶然性;以及原始的负荷曲线输入空间中选取欧式距离作为距离度量无法捕捉到负荷曲线中的高维特征。本文提出 L-ISODATA 聚类算法,即Load curve-ISODATA 算法,将ISODATA算法应用在负荷曲线聚类领域中,并对ISODATA聚类算法进行改进。

1.4 K-L-ISODATA聚类算法

📚2 运行结果

2.1 聚类算法比较

2.2 K-L-ISODATA聚类算法

2.3 L-ISODATA聚类算法

2.4 ISODATA聚类算法

2.5 K-means聚类算法

以上仅展现部分结果图。

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]张辰睿. 基于机器学习的短期电力负荷预测和负荷曲线聚类研究[D].浙江大学,2021.DOI:10.27461/d.cnki.gzjdx.2021.000300.

🌈4 Matlab代码、数据、文章讲解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《计算机网络-自顶向下》04. 网络层-数据平面

文章目录网络层数据平面和控制平面两者的概述数据平面控制平面控制平面:传统方法控制平面:SDN 方法网络服务模型路由器工作原理通用路由器体系结构输入端口的功能基于目标的转发交换结构内存交换方式总线交换方式纵横式交换方式输出端口的功能何时何处出…

YOLOV8改进:如何增加注意力模块?(以CBAM模块为例)

YOLOV8改进:如何增加注意力模块?(以CBAM模块为例)前言YOLOV8nn文件夹modules.pytask.pymodels文件夹总结前言 因为毕设用到了YOLO,鉴于最近V8刚出,因此考虑将注意力机制加入到v8中。 YOLOV8 代码地址&am…

ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。

让我们来看看ChatGPT不能通过Oracle OCP的考试? 文章目录引言测试过程总结和分析关于博主,姚远:Oracle ACE(Oracle和MySQL数据库方向)。Oracle MAA 大师。华为云MVP。《MySQL 8.0运维与优化》的作者。拥有 Oracle 10g和…

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…

Esp8266+阿里云+STM32点灯(三)

1、简介 1、固件库烧录:Esp8266阿里云STM32点灯(一) 2、ESP8266通过电脑与阿里云通讯:Esp8266阿里云STM32点灯(二) 前两部分已经完成ESP8266和阿里云简单通讯,这部分通过STM32单片机通过ESP8…

vue全局使用svg

1、安装依赖 npm install svg-sprite-loader2、配置选项 在vue.config.js的chainWebpack里配置下面代码 解释:config.module.rule是一个方法,用来获取某个对象的规则。.exclude.add(文件a)是往禁用组添加文件a,就是对文…

人民链Baas服务平台上线,中创助力人民数据共建数据服务应用场景

人民链2.0是数据要素大发展时代下的可信联盟链 作为区块链分布式存储领域行业先驱与让人民放心的国家级数据云平台,中创算力与人民数据的合作从未间断。为了推动人民链2.0高质量发展,中创算力与人民数据开展了多方面合作,助力人民数据共建数据…

计算机网络 - 网络通信 (TCP与UDP)

前言 本篇通过了解套接字,TCP与UDP协议的特点,使用UDP的api套接字与TCP的api套接字进行回显程序的网络通信,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录前言1. 认识网络通信需…

JVM、JVM中的垃圾回收、类加载、IoC和DI

一、JVM 1、概念 JVM:Java Virtual Machine 的简称,意为 Java虚拟机,可以运行Java代码,是整个Java实现跨平台的最核心的部分;所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行&…

2022-ISCC信息安全与对抗竞赛wp-misc(详解,有脚本( •̀ ω •́ )y)

前言 没想到不知不觉一年时间就这样过去了,又到了一年一度的ISCC信息对抗大赛,不知道去年打比赛的小伙伴今年还能不能再碰到,期待与君再相见( •̀ ω •́ )y 所以今天就把去年的题目再复现一遍供师傅们参考 嘻嘻 目录 misc &#xff08…

2023MathorCup数模B题思路数据代码论文【全网最全分享】

文章目录赛题思路赛题详情参赛建议(个人见解)选择队友及任务分配问题(重要程度:5星)2023MathorCup数模B题思路数据论文代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片,…

STM-32:I2C外设总线—硬件I2C读写MPU6050

目录一、I2C外设简介二、I2C框图三、I2C基本结构四、主机发送五、主机接收六、I2C的中断请求七、软件/硬件波形对比八、应用实例:硬件I2C读写MPU60508.1接线图8.2程序代码一、I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、…

Blender安装最新版本

目录1. Blender下载1.1 Blender硬件要求1.2 下载Blender1.3 或者下载LTS版本2. 安装向导2.1 在Windows上安装2.1.1安装msi文件(这里演示案例)2.1.2 点击“Next”2.1.3 勾选,点击“Next”2.1.4 点击“Next”2.1.5 点击“Install”2.1.6 安装进度2.1.7 点击“Finish”…

来了,简单宣告下 Compose for iOS Alpha 正式发布

来了来了,盼星星盼月亮,广大 Compose 开发者期待许久的 Jetpack Compose Multiplatform for iOS 近期终于正式发布了 Alpha 支持,其实在此之前,我在 《一文快速带你了解 KMM 、 Compose 和 Flutter 的现状》 等文章里说了很多次 C…

十三款MySQL可视化管理工具

文章目录一、DBeaver二、DataGrip三、phpMyAdmin四、MySQLDumper五、Navicat六、MySQL GUI Tools七、MySQL ODBC Connector八、MySQL Workbench九、SQLyog十、MySQL-Front十一、dbForge Studio for MySQL十二、HeidiSQL十三、Beekeeper StudioMySQL 的管理维护工具非常多&#…

【C++ 二】选择结构、循环结构、跳转语句

选择结构、循环结构、跳转语句 文章目录选择结构、循环结构、跳转语句前言1 选择结构1.1 if语句1.2 三目运算符1.3 switch 语句2 循环结构2.1 while 循环语句2.2 do...while 循环语句2.3 for 循环语句2.4 嵌套循环3 跳转语句3.1 break 语句3.2 continue 语句3.3 goto语句总结前…

Unity | Video Player的使用方法和原理

讲解逻辑为Unity | 基础逻辑_菌菌巧乐兹的博客-CSDN博客 一、把素材仓库里的视频放进Game界面 1.我们需要在素材仓库中放一个视频(其他文件夹不用管,我只是懒得删了) 2.在Unity里建一个能接收视频的地方VideoPlayer 备注:视频和…

【Python基础入门学习】Python背景知识及介绍

一、背景知识 主流编程语言:java/python/c(c) Python主要应用领域:人工智能、大数据 云计算领域的openstack 框架就是Python写的 测试发展方向:测开、安全、性能 1.1 发展过程 机器语言(二进制)-- 汇编语言 – 高级汇…

招募妙记多 Mojidoc 体验官| 我们准备了诚意大礼,就等你来

在以往的推文和妙记多 Mojidoc 的官方社群里,我们分享、见证了很多妙记多 Mojidoc 用户在产品使用过程中的故事。 我们欣喜于大家对 妙记多 Mojidoc 的信任,也惊喜于在这个过程中,大家对于产品的优化和升级,不遗余力地提出建议和…

IDEA虚拟机参数配置【自我总结】

idea内存溢出问题 最近自己在跑一个大一点的微服务项目时候,发生了这样的一个现象,就是启动idea的时候,首先发现电脑的CPU小风扇急速的飞转,电脑的运行内存也快要飙升到100%了,而且最重要的是光是加载项目就加载了几分钟啊(我当时就炸锅锅)像下图一样,一直加载一直加载 想了想,…