如何获取OpenML数据集特征元数据 准确区分标称与数值特征
OpenML数据集特征元数据获取方案

你需要的特征类型标记直接可以通过fetch_openml返回的原生对象提取,不需要自行根据pandas列类型判断,官方标记的特征类型准确率远高于自行推断:
- 第一步:加载数据集并提取元数据
import pandas as pd from sklearn.datasets import fetch_openml # 替换为目标数据集的ID或名称 data = fetch_openml(name="目标数据集名称", version=1, as_frame=True) # 官方标注的完整特征元数据存储在features属性中 feature_meta = data.features # 数据集内容存储在frame属性中 df = data.frame
- 第二步:区分分类(标称)、数值特征
feature_meta的data_type字段为OpenML官方标注的特征类型,nominal对应分类特征,numeric对应数值特征,完全匹配官网公布的特征分类:
# 提取分类特征列表 cat_features = feature_meta[feature_meta['data_type'] == 'nominal']['name'].tolist() # 提取数值特征列表 num_features = feature_meta[feature_meta['data_type'] == 'numeric']['name'].tolist() # 统计两类特征数量 cat_feature_count = len(cat_features) num_feature_count = len(num_features)
- 第三步:计算两类特征的平均唯一值数量
# 分类特征平均唯一值 avg_cat_unique = df[cat_features].nunique().mean() # 数值特征平均唯一值 avg_num_unique = df[num_features].nunique().mean()
内容的提问来源于stack exchange,提问作者user12314098
相关产品推荐
相关产品推荐

