因此,我对机器学习和所有领域还相当陌生,我正在尝试创建一个python脚本来分析计算机的能源数据集。 最后,脚本应确定计算机的不同状态(例如空闲,待机,工作等)以及这些状态平均消耗多少电量。
我想知道是否可以通过某些聚类方法(例如k-means或DBSCAN)来完成此任务。
我对scikit learning中的一些聚类方法进行了一些修改,但是到目前为止,结果还没有达到我的预期。 我对聚类方法进行了很多研究,但找不到与我类似的场景。
所以我的问题是,是否值得为此烦恼,是否可以采用聚类方法(或总体机器学习算法)来完成该任务?还是有更好的方法呢?
能量数据集只是一个单列表,一个单元格是几天中每秒的一个能量值。
答案 0 :(得分:0)
能量数据集只是一个单列表,一个单元格是几天中每秒的一个能量值。
您将无法对此数据集应用有监督的学习,因为您没有数据集的标签(没有给定能量值的已知状态)。这意味着对于您的数据集,像SVM,决策树等模型是不可行的。
您拥有的是一个带有单个变量输出的时间序列。据我了解,您的目标是确定是否存在不同的能量状态,以及这些状态的平均值。
我认为使用matplotlib或seaborn之类的东西绘制时间序列将非常有用。绘制数据后,您可以更好地了解您的假设是否合理以及您可能如何进一步解决该问题。您可以通过绘制时间序列并观察到存在四种不同的能量状态(例如,空闲,待机,工作等)来避免任何复杂的统计技术,机器学习等,从而解决问题。>
要回答您的问题,原则上您可以 将k均值用于一维数据。但是,可能不建议这样做,因为这些技术通常用于多维数据。
我建议您研究Jenks natural breaks optimization或kernel density optimization。可以在here和here中找到与您类似的问题,这些问题应该可以帮助您入门。
答案 1 :(得分:0)
不要忽略时间。
首先,如果您的信号有噪声,则时间平滑可能会有所帮助。
第二,您需要首先执行一些特征提取。例如,通过使用细分将您的时间序列分成不同的状态。然后,您可以尝试对这些状态进行聚类,但是我不认为聚类在这里完全适用。您可能需要使用直方图或密度图。这是一维数据-您可以将其可视化,然后手动选择阈值,而不是希望某些自动化技术可行(因为它可能无法...)