我通过Redshift SQL将大约340,000个客户记录导入Jupyter Notebook,并尝试使用Kmeans根据他们在一定时期内的收入和交易数量将这些客户分为4个细分市场。但是,Kmeans将其中约26.9万(78.9%)标记为NaN簇。当我尝试10个细分时,267k / 340k被标记为NaN。当我将相同的代码应用于一小部分子集时(1000个中的692个被标记为NaN簇)。
很抱歉,我无法为您的试验提供一组模拟数据,因为Kmeans可以很好地处理直接用Excel导入的数据。
import pandas as pd
import numpy as np
from scipy import stats
from scipy.cluster.vq import kmeans, vq
f1_df = df_df['total_revenue_m3_from_personal_investment'].values
f2_df = df_df['total_trades_m3'].values
df_tr = np.array(list(zip(f1_df, f2_df)))
kmeans_4 = KMeans(n_clusters=4)
details_4 = kmeans_4.fit(df_tr)
labels_4 = details_4.predict(df_tr)
centroids_4 = details_4.cluster_centers_
idx,_ = vq(df_tr, centroids_4)