用python对航空公司客户价值进行聚类分析

1.实验目的

1.会用Python创建KMeans聚类分析模型;
2.使用KMeans模型对航空公司客户价值进行聚类分析;
3.会对聚类结果进行分析

2.实验设备

Jupyter notebook

3.实验原理

在这里插入图片描述

4.实验内容

使用sklearn.cluester的KMeans类对航空公司客户数据进行聚类分析,把乘客分到不同的类别中。
数据集:air_data.csv
数据集大小:62052条不重复数据
原数据有40个属性,为了大家训练模型方便,本实验使用预处理后的标准化数据,该数据有5个属性。
数据说明:
ZL:入会至当前时长,反应可能的活跃时间
ZR:最近消费时间间隔,反应最近一段时间活跃程度
ZF:消费频次,反应客户忠诚度
ZM:消费里程总额,反应客户对乘机的依赖程度
ZC:舱位等级对应折扣系数,一般舱位等级越高,折扣系数越大

载入训练数据、显示读入数据的前5行

训练KMeans聚类模型,把数据聚成5类
1.
from sklearn.cluster import KMeans
k=5
model=KMeans(algorithm=’auto’,copy_x=True,init=’k-means++’,
Max_iter=300,n_clusyers=5,n_init=10,n_jobs=None,
Precompute_distances=’auto’,random_state=None,tol=0.0001,verbose=0)

检查每个聚类类别样本数、每个聚类类别中心点,统计聚类个数及中心点

画出5个聚类中心点在每个维度上的散点图,并按统一类别把聚类中心用线连接起来

分析聚类结果

5实验结果分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6附录(代码)

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
import numpy as np

# 载入数据
print("载入训练数据,输出数据前五条...")
data = pd.read_csv(r'D:\D\Download\360安全浏览器下载\air_data.csv')

# 显示前5行数据
print(data.head())

# 选取特征属性
features = ['ZL', 'ZR', 'ZF', 'ZM', 'ZC']
X = data[features]

# 训练KMeans模型并进行聚类
print("训练KMeans聚类模型...")
# num_clusters = 5
# kmeans = KMeans(n_clusters=num_clusters)
# kmeans.fit(X)
k=5
model=KMeans(algorithm='auto',copy_x=True,init='k-means++',max_iter=300,n_clusters=5,
             n_init=10,random_state=None,tol=0.0001,verbose=0)
model.fit(X)
print("检查聚类结果...")
# 统计每个类别的样本数
labels = kmeans.labels_
unique, counts = np.unique(labels, return_counts=True)
cluster_counts = dict(zip(unique, counts))
print("每个聚类类别样本数:", cluster_counts)

# 获取聚类中心点
centers = kmeans.cluster_centers_
print("聚类中心点:\n", centers)

# 画出5个聚类中心点在每个维度上的散点图,并按统一类别把聚类中心用线连接起来

# 获取每个特征的列索引
feature_indices = [data.columns.get_loc(feature) for feature in features]

# 绘制散点图
plt.figure(figsize=(8, 6))
for i in range(num_clusters):
    plt.scatter(feature_indices, centers[i], label=f'Cluster {i}', s=100)
    plt.plot(feature_indices, centers[i], label='', linestyle='solid', linewidth=1, alpha=0.5, marker='o')
plt.xlabel('Features')
plt.ylabel('Cluster Centers')
plt.title('Scatter plot of cluster centers on each dimension')
plt.xticks(ticks=feature_indices, labels=features)
plt.legend()
plt.grid(True)
plt.show()


# 画出雷达图
labels = ['ZL', 'ZR', 'ZF', 'ZM', 'ZC']

# 创建一个雷达图
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True))

# 绘制每个类别的雷达图
for i in range(num_clusters):
    cluster_center = centers[i]
    ax.plot(angles, cluster_center, label=f'Cluster {i}', linewidth=1, linestyle='solid')
    ax.fill(angles, cluster_center, alpha=0.25)

ax.set_yticklabels([])
ax.set_thetagrids(np.degrees(angles), labels)
plt.title('Radar chart of cluster centers')
plt.legend()
plt.show()
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
航空公司客户价值聚类分析是一个常见的应用案例,可以使用Python机器学习进行实现。以下是一个基本的Python代码示例,可以帮助您开始进行分析: 首先,需要导入必要的库: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans ``` 接着,读取数据并进行数据预处理,例如删除不必要的列、缺失值处理、重复值处理等: ```python # 读取数据 data = pd.read_excel('airline.xlsx') # 删除不必要的列 data.drop(['ID', 'Address'], axis=1, inplace=True) # 处理缺失值 data.fillna(data.mean(), inplace=True) # 处理重复值 data.drop_duplicates(inplace=True) ``` 然后,对数据进行标准化处理: ```python # 标准化处理 scaler = StandardScaler() data_scaled = scaler.fit_transform(data) ``` 接着,使用K-Means算法进行聚类分析: ```python # 运用K-Means算法进行聚类分析 kmeans = KMeans(n_clusters=3, init='k-means++') kmeans.fit(data_scaled) ``` 最后,将聚类结果可视化展示: ```python # 可视化展示聚类结果 plt.figure(figsize=(10, 7)) plt.scatter(data_scaled[kmeans.labels_ == 0, 0], data_scaled[kmeans.labels_ == 0, 1], s=100, c='red', label='Cluster 1') plt.scatter(data_scaled[kmeans.labels_ == 1, 0], data_scaled[kmeans.labels_ == 1, 1], s=100, c='blue', label='Cluster 2') plt.scatter(data_scaled[kmeans.labels_ == 2, 0], data_scaled[kmeans.labels_ == 2, 1], s=100, c='green', label='Cluster 3') plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=300, c='yellow', label='Centroids') plt.title('Customer Segmentation') plt.xlabel('Balance') plt.ylabel('Bonus') plt.legend() plt.show() ``` 以上就是一个基本的航空公司客户价值聚类分析Python代码示例,可以根据实际情况进行修改和优化。注意,上述代码中的数据文件“airline.xlsx”需要提前准备好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unicornlyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值