Karate Club数据集使用教程:从本地数据到标准数据集的完整流程

【免费下载链接】karateclub Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020) 【免费下载链接】karateclub 项目地址: https://gitcode.com/gh_mirrors/ka/karateclub

Karate Club是一个基于NetworkX构建的图表示学习库,提供了丰富的图数据集处理功能。本教程将带您了解如何高效使用Karate Club处理本地数据并转换为标准数据集格式,帮助您快速上手图机器学习项目。

Karate Club logo 图1:Karate Club框架logo - 基于NetworkX的图表示学习库

一、数据集目录结构解析

Karate Club项目提供了两种级别的标准数据集,存放在项目根目录下的dataset文件夹中:

1.1 节点级别数据集

路径:dataset/node_level/

包含多个社交网络和信息网络数据集,每个数据集包含三个核心文件:

  • edges.csv:图的边列表数据
  • features.csv:节点属性特征
  • target.csv:节点标签数据

支持的节点级别数据集包括:

  • deezer
  • facebook
  • github
  • lastfm
  • twitch
  • wikipedia

1.2 图级别数据集

路径:dataset/graph_level/

包含图分类任务的数据集,如reddit10k,包含:

  • graphs.json:图数据集合
  • target.csv:图标签数据

二、快速加载标准数据集

Karate Club提供了便捷的GraphReader类,可以一行代码加载内置数据集。以下是具体步骤:

2.1 导入数据集读取器

from karateclub.dataset import GraphReader

2.2 加载指定数据集

# 加载Facebook数据集
reader = GraphReader("facebook")

2.3 获取图数据和标签

# 获取图对象
graph = reader.get_graph()

# 获取节点标签
target = reader.get_target()

完整示例代码可参考:examples/reader/graph_reader_example.py

三、处理本地自定义数据集

如果您有自己的本地数据,Karate Club也提供了灵活的处理方式:

3.1 数据格式要求

确保您的本地数据符合以下格式:

  • 边列表:每行包含两个节点ID,用逗号分隔
  • 特征数据:每行第一列为节点ID,后续为特征值
  • 标签数据:每行包含节点ID和对应的标签

3.2 使用DatasetReader加载本地数据

from karateclub.dataset import DatasetReader

# 初始化数据集读取器
reader = DatasetReader()

# 加载本地边列表
edges = reader.read_edges("path/to/your/edges.csv")

# 加载本地特征数据
features = reader.read_features("path/to/your/features.csv")

# 加载本地标签数据
target = reader.read_target("path/to/your/target.csv")

3.3 构建图对象

import networkx as nx

# 创建图对象
G = nx.Graph()

# 添加边
G.add_edges_from(edges)

# 添加节点特征
nx.set_node_attributes(G, features, "feature")

四、数据集应用示例

加载数据集后,您可以将其用于各种图学习任务:

4.1 节点嵌入任务

from karateclub.node_embedding.neighbourhood import Node2Vec

# 初始化模型
model = Node2Vec()

# 训练模型
model.fit(graph)

# 获取节点嵌入
embeddings = model.get_embedding()

4.2 社区检测任务

from karateclub.community_detection.non_overlapping import LabelPropagation

# 初始化模型
model = LabelPropagation()

# 训练模型
model.fit(graph)

# 获取社区划分结果
communities = model.get_memberships()

五、常见问题解决

5.1 数据集加载失败

  • 检查数据集名称是否正确
  • 确认数据集文件是否完整
  • 验证文件路径是否正确

5.2 内存问题处理

对于大型数据集,建议使用分批处理或降维技术:

# 使用节点采样减少计算量
from karateclub.utils.walker import RandomWalker

walker = RandomWalker(walk_length=10, walk_number=5)
walker.do_walks(graph)

六、总结

通过本教程,您已经掌握了Karate Club数据集的基本使用方法,包括加载标准数据集和处理本地自定义数据。Karate Club提供的数据集接口简单易用,能够帮助您快速构建图机器学习项目。

官方文档:docs/source/modules/dataset.rst

数据集处理源码:karateclub/dataset/dataset_reader.py

希望本教程能帮助您更好地利用Karate Club进行图学习研究和应用开发!如有任何问题,欢迎查阅项目文档或提交issue。

【免费下载链接】karateclub Karate Club: An API Oriented Open-source Python Framework for Unsupervised Learning on Graphs (CIKM 2020) 【免费下载链接】karateclub 项目地址: https://gitcode.com/gh_mirrors/ka/karateclub

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐