首页 > 其他分享 >pyth

pyth

时间:2024-03-19 23:46:10浏览次数:29  
标签:pyth plt range values sse clusters data

import pandas as pd
from kmodes.kmodes import KModes
from sklearn.metrics import silhouette_score
import matplotlib.pyplot as plt

# 假设数据列名如下(请替换为实际的列名)
columns = ['售票服务', '候车服务', '乘车服务', '下车服务', '行李寄存和托运服务', '线路布局', '文化建设', '安全保障', '您的年龄', '出行目的', '地区']

# 加载csv数据并转换年龄字段为类别字段
data = pd.read_csv('ma.csv')
# 对年龄进行离散化或直接转为类别标签(例如:青年、中年、老年等)
# 这里假设已经有一个预处理步骤将其转化为字符串类别
# data['年龄类别'] = ...

# 确保所有待聚类列均为非数值类别
data_for_clustering = data[columns]

# 定义一个函数来计算SSE或类似的聚类效果度量值(这里以轮廓系数为例)
def calc_silhouette_kmodes(data, k_range):
sse_values = []
for k in k_range:
km = KModes(n_clusters=k, init='Cao', n_init=10)
clusters = km.fit_predict(data)
# 使用Hamming距离适应类别变量,但请注意Silhouette Score对于K-modes可能不是最优评价指标
sil = silhouette_score(data, clusters, metric='hamming')
sse_values.append(sil)
return sse_values

# 测试的k值范围
k_range = range(2, 11) # 从2到10个聚类

# 计算不同k值下的轮廓系数
sse_values = calc_silhouette_kmodes(data_for_clustering, k_range)

# 绘制轮廓系数随聚类簇数量变化的曲线
plt.figure(figsize=(10, 6))
plt.plot(k_range, sse_values, marker='o')
plt.xlabel('Number of clusters (k)')
plt.ylabel('Silhouette Score')
plt.title('Elbow Method using Silhouette Score to determine the optimal number of clusters')

# 找出拐点,即轮廓系数最大或增长趋势明显放缓的点
plt.show()

标签:pyth,plt,range,values,sse,clusters,data
From: https://www.cnblogs.com/azwz/p/18084236

相关文章

  • 3 python的数值在内存中如何存储
    python的数值在内存中如何存储 在Python中,数值在内存中的存储方式取决于数值的类型和大小,以及Python的版本。Python使用固定的字节数来表示整数类型,并且对于浮点数,通常使用双精度(64位)或者扩展精度(128位)的浮点表示。整数的存储方式:对于较小的整数,Python通常使用一个机器字长......
  • 详细分析Python模块中的雪花算法(附模板)
    目录前言1.基本知识2.模板3.Demo前言分布式ID的生成推荐阅读:分布式ID生成方法的超详细分析(全)1.基本知识Snowflake算法是一种用于生成全局唯一ID的分布式算法,最初由Twitter设计并开源它被设计用于解决分布式系统中生成唯一ID的需求,特别是在微服务架构和......
  • 【Python】使用selenium对Poe批量模拟注册脚本
    配置好接码api即可实现自动化注册登录试用一体。运行后会注册账号并绑定邮箱与手机号进行登录试用。测试结果30秒一个号importreimporttimeimportrequestsfrombs4importBeautifulSoupfromseleniumimportwebdriverfromselenium.webdriver.chrome.option......
  • Python 机器学习 HMM模型三种经典问题
    ​ 隐马尔可夫模型(HiddenMarkovModel,HMM)是一个强大的工具,用于模拟具有隐藏状态的时间序列数据。HMM广泛应用于多个领域,如语音识别、自然语言处理和生物信息学等。在处理HMM时,主要集中于三个经典问题:评估问题、解码问题和学习问题。三个问题构成了使用隐马尔可夫模型时的基础......
  • 一文了解Python中的运算
    Python的运算符和其他语言类似数学运算>>>print 1+9        # 加法>>>print 1.3-4      # 减法>>>print 3*5        # 乘法>>>print 4.5/1.5    # 除法>>>print 3**2       # 乘方     >>>print 10%3      ......
  • Python小白的福利之基本数据类型
    简单的数据类型以及赋值变量不需要声明Python的变量不需要声明,你可以直接输入:>>>a = 10那么你的内存里就有了一个变量a,它的值是10,它的类型是integer(整数)。在此之前你不需要做什么特别的声明,而数据类型是Python自动决定的。>>>print a>>>print type(a)那......
  • Python 数据持久层ORM框架 TorToise模块(异步)
    文章目录TortoiseORM简介TortoiseORM特性TortoiseORM安装TortoiseORM数据库支持TortoiseORM创建模型aerich迁移工具简介aerich迁移工具安装aerich迁移工具使用TrotoiseORM查询数据TrotoiseORM修改数据TrotoiseORM删除数据TrotoiseORM新增数据......
  • 【蓝桥杯选拔赛真题70】python最短路径和 第十五届青少年组蓝桥杯python选拔赛真题 算
    目录python最短路径和一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、 推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python最短路径和第十五届蓝桥杯青少年组python比赛选拔赛真题一、题目要求(注:i......
  • Python的优点和缺点(详细解说版本)——《跟老吕学Python编程》附录资料
    Python的优点和缺点(详细解说版本)——《跟老吕学Python编程》附录资料Python的优点和缺点Python的优点Python语法简单Python是开源的程序员使用Python编写的代码是开源的。Python解释器和模块是开源的。Python是免费的Python是高级语言Python是解释型语言,能跨平......
  • Python面向对象编程之多态你学会了吗?
    在Python面向对象编程中,多态是一个非常重要的概念。多态意味着一个接口可以有多种实现方式,或者说一个接口可以被多种对象所实现。这在编程中非常重要,因为它可以帮助我们编写更加灵活和可扩展的代码。想象一下,如果你有一个函数,它需要处理不同的对象,但是这些对象都实现了同一......