信用卡客户风险评估-聚类分析(python)
时间: 2023-06-19 22:08:22 浏览: 99
信用卡客户风险评估是金融行业中非常重要的一项工作,而聚类分析是其中一种常用的数据分析方法。在Python中,我们可以使用scikit-learn库进行聚类分析,下面是一个基本的聚类分析代码示例:
```python
# 导入库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 读取数据
data = pd.read_csv('credit_card.csv')
X = data.iloc[:, [3, 4]].values
# 使用肘部法则确定k值
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', random_state=42)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()
# 训练模型
kmeans = KMeans(n_clusters=3, init='k-means++', random_state=42)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[y_kmeans == 0, 0], X[y_kmeans == 0, 1], s=100, c='red', label='Cluster 1')
plt.scatter(X[y_kmeans == 1, 0], X[y_kmeans == 1, 1], s=100, c='blue', label='Cluster 2')
plt.scatter(X[y_kmeans == 2, 0], X[y_kmeans == 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('Clusters of customers')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.legend()
plt.show()
```
在这个示例中,我们首先读取了信用卡客户数据,并从中选择了两个特征值进行聚类分析。接着我们使用肘部法则确定了聚类数量k值,并训练了KMeans模型。最后我们使用matplotlib库将聚类结果可视化。可以看到,通过对客户进行聚类,我们可以更好地了解客户的消费习惯和风险评估。