题目要求在给定初始聚类中心的前提下,按 KMeans 聚类算法迭代更新中心点。
核心流程(重复给定迭代次数 T 轮):
网络流量分析是网络安全和性能优化的关键任务。假设你有一个包含网络流量数据的数据集,每条数据包含以下特征:
packet_size(数据包大小,单位,字节)
inter_ arrival_ time(数据包到达间隔时间,单位:毫秒)
protocol_type(协议类型,如 TCP、UDP、ICMP 等,已转换为数值编码)
你的任务是使用 KMeans 聚类算法对网络流量进行分类,分类后的中心点再经过一个分类头,能识别出可能的流量类型(如正常流量、异常流量、DDoS 攻击流量等)。KMeans 算法原理为:先将数据分为 K 组,随机选取 K 个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,将每一个对象分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类。(为保证结果固定,本题初始的聚类中心已给出,不需要随机)
初始聚类点个数 k
初始聚类中心集合(往下 k 行,一行一个中心点)
迭代次数
样本个数 m
样本数 m ,每个样本有三个特征(往下 m 行,假定各特征数据已归一化处理,各维度权重占比一致)
按给定次数迭代后新的聚类中心集合
输入
3
50 25 30
60 15 60
25 75 90
3
9
50 25 30
30 50 30
60 15 60
25 75 90
10 05 60
26 15 30
32 67.5 90
80 7.5 60
20 100 90
输出
35.33 30.00 30.00
50.00 9.17 60.00
25.67 80.83 90.00
说明
采用欧式距离计算不同数据之间的距离:
d=(x1−x2)2+(y1−y2)2+(z1−z2)2
计算每个特征距离中心点的距离,选择距离最近的点作为当前特征归属的类别;按照划分的类别,使用重新计算每个类别的中心点,完成一轮迭代(中心点为对应类里所有样本的平均值)
重复上述流程 k 次得到结果,最终结果保留两位小数,注意四舍五入
输入
3
50 20 30
60 10 60
180 180 180
3
8
50 20 30
30 50 30
60 10 60
25 75 90
100 5 60
30 60 90
80 10 60
180 180 180
输出
40.00 35.00 30.00
59.00 32.00 72.00
180.00 180.00 180.00
说明
采用欧式距离计算不同数据之间的距离:
d=(x1−x2)2+(y1−y2)2+(z1−z2)2
计算每个特征距离中心点的距离,选择距离最近的点作为当前特征归属的类别;按照划分的类别,使用重新计算每个类别的中心点,完成一轮迭代(中心点为对应类里所有样本的平均值)
重复上述流程 k 次得到结果,最终结果保留两位小数,注意四舍五入
提示
取值范围
初始聚类中心点个数:0<=n<=1000,类型为 int
初始聚类中心点集合:每个特征的取值范围为 0<=f<=1000 ,类型为 float
迭代次数:0<=k<=1000,类型为 int
初始特征个数:0<=n<=1000,类型为 int
初始特征集合:每个特征的取值范围为 0<=f<=1000,类型为 float