python - 通过聚类分析能源数据集
问题描述
所以我对机器学习还很陌生,我正在尝试创建一个 python 脚本来分析计算机的能量数据集。该脚本最终应该确定计算机的不同状态(如空闲、待机、工作等)以及这些状态平均使用多少能量。
我想知道这个任务是否可以通过一些聚类方法来完成,比如 k-means 或 DBSCAN。
我对 scikit learn 中的一些聚类方法进行了一些修改,但到目前为止的结果并没有我预期的那么好。我对聚类方法进行了很多研究,但我永远找不到与我类似的场景。
所以我的问题是它是否值得麻烦,如果是的话,哪种聚类方法(或整体机器学习算法)最适合该任务?或者有更好的方法吗?
能量数据集只是一个单列表,其中一个单元格是几天内每秒一个能量值。
解决方案
能量数据集只是一个单列表,其中一个单元格是几天内每秒一个能量值。
您将无法对此数据集应用监督学习,因为您的数据集没有标签(没有已知状态给定能量值)。这意味着在给定数据集的情况下,SVM、决策树等模型是不可行的。
您所拥有的是具有单个变量输出的时间序列。据我了解,您的目标是确定是否存在不同的能量状态,以及这些状态的平均值是多少。
我认为使用 matplotlib 或 seaborn 之类的东西来绘制时间序列会非常有帮助。绘制数据后,您可以更好地了解您的假设是否合理,以及您可能希望如何进一步解决问题。您可以通过仅绘制时间序列并观察有四种不同的能量状态(例如空闲、待机、工作等)来解决您的问题,避免使用任何复杂的统计技术、机器学习等。
要回答您的问题,您原则上可以将 k-means 用于一维数据。但是,可能不建议这样做,因为这些技术通常用于多维数据。
我建议您查看Jenks 自然中断优化或内核密度优化。可以在此处和此处找到与您类似的问题,应该可以帮助您入门。
推荐阅读
- node.js - 创建一个继承自 EventEmitter 的函数
- unix - SUID exploit and patch
- java - Is there a way mapping ListProperties
- cron - cron can't see systemctl --user services
- c++ - 如何从两个分隔符之间的文件中提取数据或读取数据--> '|' 在 C++ 中使用 getline 函数?
- java - How to send list (primitive type or any class type) in SOAP request body
- wordpress - Wordpress theme development: Posts in multiple columns using Bootstrap 4
- arrays - 如何在双引号中键入数组的选定元素
- python - 记录模块示例代码重复消息 n 次 - 每次调用
- typescript - TypeScript - 基于鉴别器将联合类型映射到另一个联合类型的函数