以使用K-Means聚类算法实现运营商客户价值分析为题,写出代码
时间: 2024-11-30 14:28:58 浏览: 25
详解Java实现的k-means聚类算法
以K-Means聚类算法实现运营商客户价值分析的一个基本步骤通常包括数据预处理、选择合适的聚类数量、执行聚类算法以及结果评估。这里我将提供一个简化的Python代码示例,使用scikit-learn库来完成这个任务:
```python
# 导入必要的库
import pandas as pd
from sklearn.cluster import KMeans
import numpy as np
# 假设我们有一个CSV文件 'telecom_data.csv' 包含客户的属性如消费、满意度等
data = pd.read_csv('telecom_data.csv')
# 数据预处理
# 将非数值特征转换成数值特征,如果有的话
numeric_features = data.select_dtypes(include='number')
if not numeric_features.columns.equals(data.columns):
data = pd.get_dummies(data)
# 确保数据标准化,因为KMeans对缩放敏感
X = (numeric_features - numeric_features.mean()) / numeric_features.std()
# 选择聚类数量k(可以根据业务需求或通过肘部法则确定)
k = 5 # 假设我们想分为5类客户
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
# 添加聚类标签到原始数据
data['cluster'] = kmeans.labels_
# 结果评估
# 可视化每个簇的中心点,查看簇内数据分布
centroids = kmeans.cluster_centers_
print("Cluster centroids:")
print(centroids)
# 分析各簇的数据特性,例如平均消费、满意度等
for i in range(k):
print(f"Cluster {i+1}:")
print(f"Average consumption: {data[data['cluster']==i]['consumption'].mean()}")
print(f"Average satisfaction: {data[data['cluster']==i]['satisfaction'].mean()}")
#
阅读全文