三.构建和评估聚类模型

一.聚类方法类别

1.划分(分裂)方法

  • K-平均值(K-MEANS算法)
  • K-中心点(K-MEDOIDS算法)
  • 基于选择(CLARANS算法)

2.层次分析方法

  • 平衡迭代规划和聚类(BIRCH算法)
  • 点聚类(CURE算法)
  • 动态模型(CHAMELEON算法)

3.基于密度的方法

基于密度连接区域

  • 密度分布
  • 对象排序识别

4. 基于网络的方法

  • 统计信息网络(STING算法)
  • 聚类高维空间(CLIOUE算法)
  • 小波变化(WAVE-CLUSTER)

二.模块

1.聚类(cluster)

函数名参数适用样本数目适用聚类数目距离度量
KMeans簇数点之间的度量
Spectral Clustering簇数图距离
Ward hierarchical clustering簇数点之间的度量
AgglomerativeClustering簇数,链接联系,距离成对的点线图的度量
DBSCAN半径大小,最低成员数目最近点的距离
Birch分子因子,阀值,可选全局集群点之间的欧式距离

2.估计器(estimator)

方法说明
fit1.用于训练算法,
接收有监督训练集,标签参数+无监督学习的数据
predict1.用于有监督学习的测试集标签
2.划分传入数据的类别

3.聚类评价指标

  • 研究分类相关性
方法名称真实性最佳值sklearn函数
ARI评估法(兰德系数)需要1.0adjusted_rand_score
AMI评估法(互信息)需要1.0adjusted_mutual_info_score
V-measur评分需要1.0completeness_score
FMI评价法需要1.0fowlkes_mallows_score
轮廓系数评价法不需要畸变程度最大silhouette_score
指数评价法不需要相较最大calinski_harabasz_score
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个使用Spark构建聚类模型的完整案例及其代码。 1.准备数据 首先,我们需要准备数据。我们选择使用一个经典的数据集:Iris数据集。这个数据集包含了150个样本,每个样本包含了4个特征(花萼长度,花萼宽度,花瓣长度,花瓣宽度),以及一个分类标签(鸢尾花的种类)。我们将这个数据集保存为CSV文件。 2.启动Spark 我们需要启动一个Spark集群。在这个例子中,我们选择在本地模式下运行Spark。 3.读取数据 我们使用Spark的CSV读取器来读取Iris数据集。读取器会自动推断数据集的模式。 ``` from pyspark.sql import SparkSession spark = SparkSession.builder.appName('KMeans').getOrCreate() data = spark.read.csv('iris.csv', header=True, inferSchema=True) ``` 4.特征工程 在聚类之前,我们需要进行特征工程。我们需要将特征向量标准化,以确保每个特征都具有相同的权重。 ``` from pyspark.ml.feature import VectorAssembler, StandardScaler assembler = VectorAssembler(inputCols=data.columns[:-1], outputCol='features') data = assembler.transform(data) scaler = StandardScaler(inputCol='features', outputCol='scaled_features') scaler_model = scaler.fit(data) data = scaler_model.transform(data) ``` 5.构建模型 我们选择使用KMeans算法来构建聚类模型。KMeans需要指定聚类的数量。在这个例子中,我们选择将数据集聚类成3个簇。 ``` from pyspark.ml.clustering import KMeans kmeans = KMeans(k=3, seed=1) model = kmeans.fit(data) ``` 6.评估模型 我们需要评估模型的性能。我们使用WCSS(Within-Cluster Sum of Squares)来评估模型的性能。WCSS是所有点到它们所属簇的中心点的距离之和。 ``` from pyspark.ml.evaluation import ClusteringEvaluator predictions = model.transform(data) evaluator = ClusteringEvaluator() wcss = evaluator.evaluate(predictions) print('WCSS:', wcss) ``` 7.可视化结果 最后,我们需要将聚类结果可视化。我们选择使用Matplotlib来绘制散点图。 ``` import matplotlib.pyplot as plt centers = model.clusterCenters() x = centers[:, 0] y = centers[:, 1] plt.scatter(predictions.toPandas().iloc[:, -2], predictions.toPandas().iloc[:, -1], c=predictions.toPandas().iloc[:, -3]) plt.scatter(x, y, marker='x', color='red') plt.show() ``` 这就是一个使用Spark构建聚类模型的完整案例及其代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唐-import-某人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值