首页 > 解决方案 > 通过聚类分析能源数据集

问题描述

所以我对机器学习还很陌生,我正在尝试创建一个 python 脚本来分析计算机的能量数据集。该脚本最终应该确定计算机的不同状态(如空闲、待机、工作等)以及这些状态平均使用多少能量。

我想知道这个任务是否可以通过一些聚类方法来完成,比如 k-means 或 DBSCAN。

我对 scikit learn 中的一些聚类方法进行了一些修改,但到目前为止的结果并没有我预期的那么好。我对聚类方法进行了很多研究,但我永远找不到与我类似的场景。

所以我的问题是它是否值得麻烦,如果是的话,哪种聚类方法(或整体机器学习算法)最适合该任务?或者有更好的方法吗?

能量数据集只是一个单列表,其中一个单元格是几天内每秒一个能量值。

标签: pythonmachine-learningscikit-learncluster-analysis

解决方案


能量数据集只是一个单列表,其中一个单元格是几天内每秒一个能量值。

您将无法对此数据集应用监督学习,因为您的数据集没有标签(没有已知状态给定能量值)。这意味着在给定数据集的情况下,SVM、决策树等模型是不可行的。

您所拥有的是具有单个变量输出的时间序列。据我了解,您的目标是确定是否存在不同的能量状态,以及这些状态的平均值是多少。

我认为使用 matplotlib 或 seaborn 之类的东西来绘制时间序列会非常有帮助。绘制数据后,您可以更好地了解您的假设是否合理,以及您可能希望如何进一步解决问题。您可以通过仅绘制时间序列并观察有四种不同的能量状态(例如空闲、待机、工作等)来解决您的问题,避免使用任何复杂的统计技术、机器学习等。

要回答您的问题,您原则上可以将 k-means 用于一维数据。但是,可能不建议这样做,因为这些技术通常用于多维数据。

我建议您查看Jenks 自然中断优化内核密度优化。可以在此处此处找到与您类似的问题,应该可以帮助您入门。


推荐阅读