要使用数据点进行聚类,您可以忽略symbol
以及Date
是必需的。
您可以通过使用iloc[row_index, col_index]
进行索引来指定列(功能)。为了使数据可用于K均值聚类,可以使用values
从数据框中提取值。这会将值提取到numpy数组,该数组可用于进一步的聚类。
# Sample data
>>> data
Open High Low Close Volume
Symbol
a 0 0 0 0 0
b 10 1 1 1 10
c 20 2 2 2 20
# Selecting features and extracting values
# '1:' ignores the first column
>>> data.iloc[:, 1:].values
array([[ 0, 0, 0, 0],
[ 1, 1, 1, 10],
[ 2, 2, 2, 20]])
您可能希望枢轴数据在每个代码中有一行。
但是我怀疑在此数据上使用k均值是否有意义。如果您对结果很认真,则需要一种可以处理缺失值,一系列不同长度的方法,并且可以将交易量用作权重而非属性。如果您只是天真地将数据输入k均值,就可以按交易量对股票进行简单分类。
首先确定您的数学目标函数。确保它可以解决您的问题。然后决定如何表示您的数据,以便算法can对此进行优化。