You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从零实现面向分类数据的Kmeans,替换make_blobs使用大洲数据集聚类?

测试模块修改方案

核心修改逻辑

直接替换原有make_blobs模拟数据生成逻辑,接入你预处理完成的大洲特征向量即可,无需改动你自己实现的Kmeans核心代码。

具体修改步骤

  1. 替换数据生成代码
    原有测试模块中类似如下的模拟数据生成段:
from sklearn.datasets import make_blobs
# 生成模拟聚类数据
X, _ = make_blobs(n_samples=200, centers=5, n_features=1, random_state=42)

直接替换为你的真实数据读取、特征提取逻辑:

import pandas as pd

# 若你的dataframe已经加载到内存,可跳过读文件步骤
dataframe = pd.read_csv("你的大洲数据集文件路径.csv")

# 提取单特征,转numpy数组适配自定义Kmeans的输入要求
X = dataframe.iloc[:, 3:4].values
  1. 适配聚类数K
    你已完成的大洲编码共8个分类,直接将聚类数设置为8即可,无需跟随模拟数据的centers参数取值:
# 原代码:kmeans = KMeans(n_clusters=3)
# 修改为
kmeans = KMeans(n_clusters=8)

完整修改后的测试模块示例

import pandas as pd
# 保留你自定义实现的Kmeans导入逻辑
from custom_kmeans import KMeans

# 1. 加载预处理完成的数据集
dataframe = pd.read_csv("continent_dataset.csv")

# 2. 提取编码后的大洲单特征
# 若还未完成编码,可先执行映射:
# continent_map = {'North America':0,'Europe':1,'Asia':2,'Africa':3,'South America':4, 'Oceania':5,'Seven seas (open ocean)':6, 'Antarctica':7}
# dataframe['continent_code'] = dataframe['大洲字段名'].map(continent_map)
X = dataframe.iloc[:, 3:4].values

# 3. 执行Kmeans聚类
kmeans = KMeans(n_clusters=8)
cluster_labels = kmeans.fit_predict(X)

# 输出结果验证
print("聚类结果标签:", cluster_labels)

注意事项

  • 单离散特征聚类的结果默认会将相同大洲编码的样本归为同一簇,你可以统计每个簇内占比最高的原大洲编码,验证聚类的匹配准确率。
  • 你通过iloc[:,3:4]提取的特征本身为二维结构,无需额外reshape即可适配大多数Kmeans实现的输入要求。

内容的提问来源于stack exchange,提问作者Omkar Salokhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:06:01