基于kaggle欧洲国家太阳能发电数据集进行聚类分析

2023-12-14 10:59

本文主要是介绍基于kaggle欧洲国家太阳能发电数据集进行聚类分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 简介
    • 1、聚类
      • 1.1 数据获取
      • 1.2 簇数确定
      • 1.3 聚类结果
    • 2、 分析每个集群

简介

该数据集由两部分组成,一个是各国数据,一个是各国各太阳能站点数据。确定簇数时,两个数据集都使用!簇数确定后,仅适用国家数据集进行聚类,并对每个集群中的国家代表进行统计分析。

1、聚类

1.1 数据获取

path = "dataset"
df_solar_co = pd.read_csv(path + "\solar_generation_by_country.csv")
df_solar_st = pd.read_csv(path + "\solar_generation_by_station.csv")
df_solar_st = df_solar_st.drop(columns=['time_step'])#删去时间戳列

1.2 簇数确定

   以近1年的数据计算轮廓系数和肘图,从而确定簇数k。

from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_scoredef plot_elbow_scores(df_, cluster_nb):#轮廓系数+肘方法km_inertias, km_scores = [], []for k in range(2, cluster_nb):km = KMeans(n_clusters=k).fit(df_)km_inertias.append(km.inertia_)#所有簇平方和km_scores.append(silhouette_score(df_, km.labels_))#轮廓系数sns.lineplot(range(2, cluster_nb), km_inertias)plt.title('elbow graph / inertia depending on k')plt.show()sns.lineplot(range(2, cluster_nb), km_scores)plt.title('scores depending on k')plt.show()
#太阳能站点
df_solar_transposed = df_solar_st[-24*365:].T
plot_elbow_scores(df_solar_transposed, 20)
#对太阳能发电国家
df_solar_transposed = df_solar_co[-24 * 365:].T
plot_elbow_scores(df_solar_transposed, 20)

对于站点
   如果第一个图上没有任何真正的肘部,那么最好的 k 似乎是 7。
   肘图
在这里插入图片描述
   轮廓系数
在这里插入图片描述
对于国家
   如果第一个图上没有任何真正的肘部,那么最好的 k 似乎是 6。
   肘图
在这里插入图片描述
   轮廓系数
在这里插入图片描述
最优簇数k确定:站点和国家的结果相差不大,表示簇数为6可信度较好,因此取k=6。

1.3 聚类结果

km = KMeans(n_clusters=6).fit(X)
X['label'] = km.labels_
print("Cluster nb / Nb of countries in the cluster", X.label.value_counts())
print("Countries grouped by cluster")
for k in range(6):print('cluster nb : {k}', " ".join(list(X[X.label == k].index)))

聚类结果如图所示:
在这里插入图片描述

2、 分析每个集群

每个集群都用一个国家来代表
24小时内每个国家太阳能发电站的效率
在这里插入图片描述
特定某天各国太阳能发电站的效率
在这里插入图片描述
非空值的站点效率分布(即白天)
在这里插入图片描述
法国1985到2015的效率分布
在这里插入图片描述
各国月效率
在这里插入图片描述
各国周效率
在这里插入图片描述
各国年效率
在这里插入图片描述
只考虑上午5点到下午10点
各国第三4分位数
在这里插入图片描述小提琴图了解密度
在这里插入图片描述
箱线图
在这里插入图片描述
相关图
在这里插入图片描述
热力图
在这里插入图片描述

这篇关于基于kaggle欧洲国家太阳能发电数据集进行聚类分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492258

相关文章

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除