3.1 选择合适的特征
去除无关特征,数据集中包含以下列:
CustomerID(客户ID):是唯一标识符,对聚类没有意义,应当删除。Gender(性别):可能会影响消费行为,但我们主要关注消费习惯,因此暂时不纳入聚类。Age(年龄):可能影响消费行为,保留。Annual Income (k$)(年收入):影响购买力,保留。Spending Score (1-100)(消费评分):衡量客户忠诚度或消费习惯,保留。
我们最终选择的特征是 Age、Annual Income (k$) 和 Spending Score (1-100)。
# 删除无关列
df_cluster = df.drop(columns=['CustomerID', 'Gender'])
3.2 数据标准化
在 K-Means 聚类等算法中,数据的尺度会影响结果,因此我们需要对数据进行标准化(归一化到相同范围)。
这里使用 MinMaxScaler 归一化到 [0,1] 范围,以保持数据分布特性。
from sklearn.preprocessing import MinMaxScaler
# 归一化数据
scaler = MinMaxScaler()
df_cluster_scaled = pd.DataFrame(scaler.fit_transform(df_cluster), columns=df_cluster.columns)
# 查看归一化后的数据
df_cluster_scaled.head()
3.3 相关性分析与特征选择
在数据探索阶段,我们已经分析过特征之间的相关性。虽然年收入和消费评分的相关性不高,但它们是重要的业务指标,因此我们仍然保留所有三个特征。
3.4 小结
- 删除了无关特征 (
CustomerID和Gender),仅保留Age、Annual Income (k$)和Spending Score (1-100)。 - 使用 MinMaxScaler 进行了数据归一化,保证各特征处于相同数值范围。
- 未删除特征,因为所有保留的特征在业务上均有意义。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











请登录后查看评论内容