应用K表示将聚类到3个暗淡数据

时间:2019-06-30 04:50:42

标签: python scikit-learn k-means

我正在尝试在(52,168,2)维数据集上的sklearn中应用k均值聚类。如预期的那样,由于需要2D数据,因此会给估算器带来尺寸误差。前进的方向应该是什么?

我将风和负荷数据保存在两个单独的文件中,一年,两个文件中的每一行都包含每周数据(一个小时的分辨率)。风和负荷数据是相关的(即,第1周的风数据对应于第2周)。我试图应用K-means聚类将手术时间从52周减少到适当的周数(理想情况下为12周)。因此,在这种情况下,每个数据点都是一个168 * 2 np阵列,其中包含每周的风和负荷数据。

由于我有52周,每个数据点为168 * 2,因此数据的维数为(52,168,2)。但是,我不能将其应用于sklearn k-means,因为它需要2D数据。我想知道是否将数据重塑为data.reshape(52,168 * 2),它将保留我的目标吗?

Load_data = pd.read_csv('Scenario_Load_Data.csv', header = None) 
Load_data_final = Load_data.to_numpy() 
Wind_data = pd.read_csv('Scenario_Wind_Data.csv', header = None) 
Wind_data_final = Wind_data.to_numpy()

create_list = []

for i in range(len(Load_data_final)):
 intermediate_v = np.column_stack((Load_data_final[i,:],Wind_data_final[i,:]))
create_list.append(intermediate_v)
data = np.array(create_list)

ValueError:找到的数组为暗3。估计值应为<= 2。

1 个答案:

答案 0 :(得分:0)

当您想按星期分组时,我相信您可以将风连接起来并在同一阵列中加载数据。我的意思是,1周将是一行,而168 + 168将是属性。因此,您将拥有类似的东西:

tinymce

所以,我认为这很像您打算使用Week_1: at1, at2, at3, ..., at336 Week_2: at1, at2, at3, ..., at336 ... Week_52: at1, at2, at3, ..., at336