Я изучаю различные способы кластеризации многомерных данных. В одном методе я применяю k-means для своих переменных (ниже: Recency) индивидуально и упорядочив кластер в соответствии со средним значением переменной в этом кластере.
def order_cluster(cluster_field_name, target_field_name,df,ascending):
new_cluster_field_name = 'new_' + cluster_field_name
df_new = df.groupby(cluster_field_name)[target_field_name].mean().reset_index()
df_new = df_new.sort_values(by=target_field_name,ascending=ascending).reset_index(drop=True)
df_new['index'] = df_new.index
df_final = pd.merge(df,df_new[[cluster_field_name,'index']], on=cluster_field_name)
df_final = df_final.drop([cluster_field_name],axis=1)
df_final = df_final.rename(columns={"index":cluster_field_name})
return df_final
kmeans = KMeans(n_clusters=7,random_state=0)
tx_user['RecencyCluster'] = kmeans.fit_predict(tx_user[['Recency']])
tx_user = order_cluster('RecencyCluster', 'Recency',tx_user,False)
Я хочу построить свои кластеры, чтобы увидеть как кластеры разного размера группируют данные, но я не знаю, как я могу сделать это с одним измерением. Любая помощь будет оценена. Спасибо