- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python 数据化运营之KMeans聚类分析总结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
。
。
以 Python 使用 Keans 进行聚类分析的简单举例应用介绍聚类分析.
聚类分析 或 聚类 是对一组对象进行分组的任务,使得同一组(称为聚类)中的对象(在某种意义上)与其他组(聚类)中的对象更相似(在某种意义上)。它是探索性数据挖掘的主要任务,也是统计数据分析的常用技术,用于许多领域,包括机器学习,模式识别,图像分析,信息检索,生物信息学,数据压缩和计算机图形学.
。
(1)目标用户的群体分类:根据运营或商业目的挑选出来的变量,对目标群体进行聚类,将目标群体分成几个有明显的特征区别的细分群体,在运营活动中为这些细分群体采用精细化、个性化的运营和服务,提升运营的效率和商业效果.
(2)不同产品的价值组合:按特定的指标变量对众多产品种类进行聚类。将产品体系细分成具有不同价值、不同目的、多维度产品组合,在此基础上制定相应的产品开发计划、运营计划和服务计划.
(3)探索、发现孤立点及异常值:主要是风控应用。孤立点可能会存在欺诈的风险成分.
。
分为基于划分、层次、密度、网格、统计学、模型等类型的算法,典型算法包括K均值(经典的聚类算法)、DBSCAN、两步聚类、BIRCH、谱聚类等。4、Keans聚类实现import numpy as npimport matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom sklearn import metricsimport random# 随机生成100组包含3组特征的数据feature = [[random.random(),random.random(),random.random()] for i in range(100)]label = [int(random.randint(0,2)) for i in range(100)]# 转换数据格式x_feature = np.array(feature)# 训练聚类模型n_clusters = 3 # 设置聚类数量model_kmeans = KMeans(n_clusters=n_clusters, random_state=0) # 建立聚类模型对象model_kmeans.fit(x_feature) # 训练聚类模型y_pre = model_kmeans.predict(x_feature) # 预测聚类模型y_pre
。
inertias 是K均值模型对象的属性,表示样本距离最近的聚类中心的总和,它是作为在没有真实分类结果标签下的非监督式评估指标。该值越小越好,值越小证明样本在类间的分布越集中,即类内的距离越小.
# 样本距离最近的聚类中心的总和inertias = model_kmeans.inertia_
adjusted_rand_s:调整后的兰德指数(Adjusted Rand Index),兰德指数通过考虑在预测和真实聚类中在相同或不同聚类中分配的所有样本对和计数对来计算两个聚类之间的相似性度量。调整后的兰德指数通过对兰德指数的调整得到独立于样本量和类别的接近于0的值,其取值范围为[-1, 1],负数代表结果不好,越接近于1越好意味着聚类结果与真实情况越吻合.
# 调整后的兰德指数adjusted_rand_s = metrics.adjusted_rand_score(label, y_pre)
mutual_info_s:互信息(Mutual Information, MI),互信息是一个随机变量中包含的关于另一个随机变量的信息量,在这里指的是相同数据的两个标签之间的相似度的量度,结果是非负值.
# 互信息mutual_info_s = metrics.mutual_info_score(label, y_pre)
adjusted_mutual_info_s:调整后的互信息(Adjusted Mutual Information, AMI),调整后的互信息是对互信息评分的调整得分。它考虑到对于具有更大数量的聚类群,通常MI较高,而不管实际上是否有更多的信息共享,它通过调整聚类群的概率来纠正这种影响。当两个聚类集相同(即完全匹配)时,AMI返回值为1;随机分区(独立标签)平均预期AMI约为0,也可能为负数.
# 调整后的互信息adjusted_mutual_info_s = metrics.adjusted_mutual_info_score(label, y_pre)
homogeneity_s:同质化得分(Homogeneity),如果所有的聚类都只包含属于单个类的成员的数据点,则聚类结果将满足同质性。其取值范围[0,1]值越大意味着聚类结果与真实情况越吻合.
# 同质化得分homogeneity_s = metrics.homogeneity_score(label, y_pre)
completeness_s:完整性得分(Completeness),如果作为给定类的成员的所有数据点是相同集群的元素,则聚类结果满足 。
完整性。其取值范围[0,1],值越大意味着聚类结果与真实情况越吻合。# 完整性得分completeness_s = metrics.completeness_score(label, y_pre)
v_measure_s:它是同质化和完整性之间的谐波平均值,v = 2 (均匀性 完整性)/(均匀性+完整性)。其取值范围[0,1],值越大意味着聚类结果与真实情况越吻合.
v_measure_s = metrics.v_measure_score(label, y_pre)
silhouette_s:轮廓系数(Silhouette),它用来计算所有样本的平均轮廓系数,使用平均群内距离和每个样本的平均最近簇距离来计算,它是一种非监督式评估指标。其最高值为1,最差值为-1,0附近的值表示重叠的聚类,负值通常表示样本已被分配到错误的集群.
# 平均轮廓系数silhouette_s = metrics.silhouette_score(x_feature, y_pre, metric="euclidean")
calinski_harabaz_s:该分数定义为群内离散与簇间离散的比值,它是一种非监督式评估指标.
# Calinski和Harabaz得分calinski_harabaz_s = metrics.calinski_harabasz_score(x_feature, y_pre)
。
# 模型效果可视化centers = model_kmeans.cluster_centers_ # 各类别中心colors = ["#4EACC5", "#FF9C34", "#4E9A06"] # 设置不同类别的颜色plt.figure() # 建立画布for i in range(n_clusters): # 循环读类别 index_sets = np.where(y_pre == i) # 找到相同类的索引集合 cluster = x_feature[index_sets] # 将相同类的数据划分为一个聚类子集 plt.scatter(cluster[:, 0], cluster[:, 1], c=colors[i], marker=".") # 展示聚类子集内的样本点 plt.plot(centers[i][0], centers[i][1], "o", markerfacecolor=colors[i], markeredgecolor="k", markersize=6) # 展示各聚类子集的中心plt.show() # 展示图像
。
# 模型应用new_X = [1, 3.6,9.9]cluster_label = model_kmeans.predict(np.array(new_X).reshape(1,-1))print ("聚类预测结果为: %d" % cluster_label)
到此这篇关于Python 数据化运营之KMeans聚类分析总结的文章就介绍到这了,更多相关Python 数据化运营内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/qq_20288327/article/details/119853847 。
最后此篇关于Python 数据化运营之KMeans聚类分析总结的文章就讲到这里了,如果你想了解更多关于Python 数据化运营之KMeans聚类分析总结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是 python 的新手。我试图找到我的文本的频率分布。这是代码, import nltk nltk.download() import os os.getcwd() text_file=open(
我对安卓 fragment 感到困惑。我知道内存 fragment 但无法理解什么是 android fragment 问题。虽然我发现很多定义,比如 Android fragmentation re
尝试对 WordPress 进行 dockerise 我发现了这个场景: 2个数据卷容器,一个用于数据库(bbdd),另一个用于wordpress文件(wordpress): sudo docker
这个问题已经有答案了: From the server is there a way to know that my page is being loaded in an Iframe (1 个回答)
我正在玩小型服务器,试图对运行在其上的服务进行docker化。为简化起见,假设我必须主要处理:Wordpress和另一项服务。 在Docker集线器上有许多用于Wordpress的图像,但是它们似乎都
我想要发生的是,当帐户成功创建后,提交的表单应该消失,并且应该出现一条消息(取决于注册的状态)。 如果成功,他们应该会看到一个简单的“谢谢。请检查您的电子邮件。” 如果不是,那么他们应该会看到一条适当
就是这样,我需要为客户添加一个唯一标识符。通过 strip 元数据。这就是我现在完全构建它的方式,但是我只有最后一部分告诉我用户购买了哪个包。 我试着看这里: Plans to stripe 代码在这
我有一个类将执行一些复杂的操作,涉及像这样的一些计算: public class ComplexAction { public void someAction(String parameter
这个问题已经有答案了: maven add a local classes directory to module's classpath (1 个回答) 已关闭10 年前。 我有一些不应更改的旧 E
我使用 fragment 已经有一段时间了,但我经常遇到一个让我烦恼的问题。 fragment 有时会相互吸引。现在,我设法为此隔离了一个用例,它是这样的: Add fragment A(也使用 ad
我的 html 中有一个 ol 列表,上面有行条纹。看起来行条纹是从数字后面开始的。有没有办法让行条纹从数字开始? 我已经包含了正在发生的事情的片段 h4:nth-child(even) {
如何仅使用 css 将附加图像 html 化? 如果用纯 css 做不到,那我怎么能至少用一个图像来做 最佳答案 这不是真正的问题,而是您希望我们为您编写代码。我建议您搜索“css breadcrum
以下是 Joshua 的 Effective Java 的摘录: If you do synchronize your class internally, you can use various te
在这里工作时,我们有一个框向业务合作伙伴提供 XML 提要。对我们的提要的请求是通过指定查询字符串参数和值来定制的。其中一些参数是必需的,但很多不是。 例如,我们要求所有请求都指定一个 GUID 来标
我有 3 个缓冲区,其中包含在 32 位处理器上运行的 R、G、B 位数据。 我需要按以下方式组合三个字节: R[0] = 0b r1r2r3r4r5r6r7r8 G[0] = 0b g1g2g3g4
我最近发现了关于如何使用 History.js、jQuery 和 ScrollTo 通过 HTML5 History API 对网站进行 Ajax 化的要点:https://github.com/br
我们有一个 Spring Boot 应用程序,由于集成需要,它变得越来越复杂——比如在你这样做之后发送一封电子邮件,或者在你之后广播一条 jms 消息等等。在寻找一些更高级别的抽象时,我遇到了 apa
我正在尝试首次实施Google Pay。我面临如何指定gateway和gatewayMarchantId的挑战。 我所拥有的是google console帐户,不知道在哪里可以找到此信息。 priva
昨天下午 3 点左右,我为两个想要从一个 Azure 帐户转移到另一个帐户的网站设置了 awverify 记录。到当天结束时,Azure 仍然不允许我添加域,所以我赌了一把,将域和 www 子域重新指
我正在使用terms facet在elasticsearch服务器中获取顶级terms。现在,我的标签"indian-government"不被视为一个标签。将其视为"indian" "governm
我是一名优秀的程序员,十分优秀!