11-Clustering

1 - Unsupervised Learning Introduction 无监督学习

数据事先没有标记分类。
应用:

  • Market segmentation 市场分割
  • Social network analysis 社交网络分析
  • Organize computing clusters 计算集群组织
  • Astronomical data analysis 天文数据分析

2 - K-Means Algorithm

K-means
输入:

  • 簇数目:K
  • 训练数据集: {x(1),x(2),,x(m)},x(i)Rn(x0=1)

算法步骤:

  • 随机的选择 K 个 cluster centroids μ1,μ2,,μKRn
    Repeat{fori=1tomc(i):=indexofcentroidclosesttox(i)fork=1toKμk:=averageofpointsassignedtoclusterk}

3 - Optimization Objective 优化目标

约定的符号:

  • c(i) :训练数据 x(i) 当前所属的簇的编号
  • μk :第 k 个簇的中心点
  • μc(i) :数据 x(i) 所在簇的中心点

Optimiation Objective

minJ(c(1),,c(m),μ1,,μK)=1mi=1mx(i)μc(i)2

4 - Random Initialization 中心点的随机初始化

条件:
- 簇数量 K 应该小于样本数 m:K < m

选取方法:

  • 从训练集中随机选取 K 个点作为 cluster centroid
  • 为了避免陷入 Local optima,应该重复选取多次,最后取 J 最小的情况

5 - Choosing the Number of Clusters 聚类数目 K 的选择

  • Elbow method:
    Elbow method

  • Evaluate K-means based on a metric for how well it performs for that later purpose.
    例如 T-shirt 尺码的选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信用卡客户风险评估是金融行业中非常重要的一项工作,而聚类分析是其中一种常用的数据分析方法。在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库将聚类结果可视化。可以看到,通过对客户进行聚类,我们可以更好地了解客户的消费习惯和风险评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值