#P4475.第2题-终端款型聚类识别

第2题-终端款型聚类识别 - problem_ide - CodeFun2000

python 复制代码
import sys
import numpy as np

def solve():
    # 读取数据
    input_data = sys.stdin.read().strip().split()
    if not input_data:
        return

    k = int(input_data[0])
    m = int(input_data[1])
    n = int(input_data[2])

    # 将数据 reshape 成了 (m, 4) 的矩阵!
    data = np.array(input_data[3:], dtype=np.float64).reshape(m, 4)

    # 1. 初始化质心 (前 k 个点)
    centers = data[0:k].copy()

    # np.full(shape, fill_value, dtype)
    # np.zeros(shape, dtype)

    labels = np.zeros(m,dtype=int)

    for stap in range(n):
        old_centers = centers.copy()

        for i in range(m):
            distances = np.zeros(k)

            for j in range(k):
                dist = np.sqrt(np.sum((data[i]-old_centers[j] )**2))
                distances[j] = dist
            
            labels[i] = np.argmin(distances)
        
        
        # 更新质心
        for j in range(k):
            cluster = data[labels==j]

            if len(cluster)>0:
                centers[j] = np.mean(cluster,axis=0)
        
        max_shift = 0
        # 检查是否收敛 (质心不怎么动了)
        for j in range(k):
            shift = np.sqrt(np.sum((centers[j]-old_centers[j] )**2))
            if shift>max_shift:
                max_shift = shift

        if max_shift<1e-8:
            break

    counts = []
    for i in range(k):
        counts.append(np.sum(labels==i))
    
    counts.sort()
    print(" ".join(map(str,counts)))

if __name__ =='__main__':
    solve()
相关推荐
标小白4 小时前
立达标讯:数据分析在招投标全流程中的战略价值与实践探索
大数据·数据挖掘·数据分析
程序人生8884 小时前
PDF 转 Word 版式错乱、表格丢失?DocConverter Web 格式互转引擎的保真实践
前端·人工智能·opencv·机器学习·pdf·word
EchoMind-Henry5 小时前
DeepSeek换个位置,检索准确率差40.2个百分点?
人工智能·机器学习
larance6 小时前
[菜鸟教程] 机器学习教程十课-Python 机器学习应用
人工智能·python·机器学习
FL16238631297 小时前
城市道路叶子叶堆检测数据集VOC+YOLO格式351张2类别
人工智能·yolo·机器学习
零域码客7 小时前
RAG 和微调解决的是同一类问题吗?从大模型底层全链路拆解两者的本质与选择逻辑
大数据·人工智能·机器学习·模型微调·fine-tuning·检索增强生成·llm 架构
AI日报派送佬7 小时前
Ultralytics YOLO 模型训练技巧与最佳实践
人工智能·python·深度学习·yolo·机器学习·计算机视觉
龙腾-虎跃8 小时前
AI 与机器学习 1000 个实战项目合集:从入门到进阶的全景指南
人工智能·机器学习
wuyk5559 小时前
ROS2 Humble 从入门实战教程:第五章 ROS2工作空间与功能包:开发过程的大本营【VMware Ubuntu22.04实操】
机器学习
FPGA信号处理9 小时前
【信号检测与估计】第一次作业:无偏性、均方误差与最小方差无偏估计
人工智能·机器学习·概率论