fetch_openml#
- sklearn.datasets.fetch_openml(name: str | None = None, *, version: str | int = 'active', data_id: int | None = None, data_home: str | PathLike | None = None, target_column: str | List | None = 'default-target', cache: bool = True, return_X_y: bool = False, as_frame: str | bool = 'auto', n_retries: int = 3, delay: float = 1.0, parser: str = 'auto', read_csv_kwargs: Dict | None = None)[源码]#
按名称或数据集 ID 从 openml 获取数据集。
数据集由整数 ID 或名称与版本的组合唯一标识(即 ‘iris’ 数据集可能有多个版本)。请提供 name 或 data_id(不能同时提供)。如果提供了 name,也可以提供 version。
更多信息请参阅 用户指南。
0.20 版本新增。
注意
实验性
此 API 是实验性的(特别是返回值结构),在未来版本中可能会有细微的向后不兼容更改,且不另行通知或警告。
- 参数:
- namestr, default=None
数据集的字符串标识符。注意,OpenML 可能包含多个同名的数据集。
- versionint 或 ‘active’,默认值=’active’
数据集的版本。仅在提供了
name时才能提供。如果为 ‘active’,则使用仍处于活动状态的最早版本。由于一个数据集可能有多个活动版本,且这些版本之间可能有本质区别,强烈建议设置确切的版本。- data_idint,默认值=None
数据集的 OpenML ID。这是检索数据集最具体的方式。如果未给出 data_id,则使用 name(以及可能的 version)来获取数据集。
- data_homestr or path-like, default=None
为数据集指定另一个下载和缓存文件夹。默认情况下,所有 scikit-learn 数据都存储在 ‘~/scikit_learn_data’ 子文件夹中。
- target_columnstr, list 或 None, 默认值=’default-target’
指定数据中用作目标的列名。如果为 ‘default-target’,则使用服务器上存储的标准目标列。如果为
None,则所有列都作为数据返回,目标为None。如果为 list(字符串列表),则所有具有这些名称的列都作为多目标返回(注意:并非所有 scikit-learn 分类器都能处理所有类型的多输出组合)。- cachebool, 默认值=True
是否将下载的数据集缓存到
data_home中。- return_X_ybool, default=False
如果为 True,则返回
(data, target)而不是 Bunch 对象。有关data和target对象的更多信息,请参阅下文。- as_framebool 或 ‘auto’, 默认值=’auto’
如果为 True,则数据是一个包含适当数据类型(数值、字符串或分类型)列的 pandas DataFrame。目标是 pandas DataFrame 或 Series,取决于 target_columns 的数量。Bunch 将包含一个
frame属性,其中包含目标和数据。如果return_X_y为 True,则(data, target)将是如上所述的 pandas DataFrame 或 Series。如果
as_frame为 ‘auto’,除非数据集以稀疏格式存储,否则数据和目标将按照as_frame设置为 True 时的方式转换为 DataFrame 或 Series。如果
as_frame为 False,数据和目标将是 NumPy 数组。当parser="liac-arff"时,data将仅包含数值,且类别在Bunch实例的categories属性中提供。当parser="pandas"时,不进行序数编码。在 0.24 版本中更改:
as_frame的默认值在 0.24 中由False更改为'auto'。- n_retriesint, default=3
遇到 HTTP 错误或网络超时时的重试次数。状态码为 412 的错误将不会重试,因为它们代表 OpenML 通用错误。
- delayfloat, default=1.0
Number of seconds between retries.
- parser{“auto”, “pandas”, “liac-arff”}, 默认值=”auto”
用于加载 ARFF 文件的解析器。实现了两种解析器
"pandas": 这是最高效的解析器。但是,它需要安装 pandas 且只能打开密集数据集。"liac-arff": 这是一个纯 Python 的 ARFF 解析器,其内存和 CPU 效率低得多。它处理稀疏 ARFF 数据集。
如果为
"auto",则自动选择解析器,使得对稀疏 ARFF 数据集选择"liac-arff",否则选择"pandas"。1.2 版本新增。
在 1.4 版本中更改:
parser的默认值从"liac-arff"更改为"auto"。- read_csv_kwargsdict, 默认值=None
使用 pandas 解析器从 ARFF 文件加载数据时传递给
pandas.read_csv的关键字参数。它允许覆盖某些默认参数。在版本 1.3 中新增。
- 返回:
- data
Bunch Dictionary-like object, with the following attributes.
- datanp.array, 浮点型的 scipy.sparse.csr_matrix, 或 pandas DataFrame
特征矩阵。分类特征被编码为序数。
- targetnp.array, pandas Series 或 DataFrame
回归目标或分类标签(如果适用)。如果为数值型,则 dtype 为 float;如果为分类型,则为 object。如果
as_frame为 True,则target是一个 pandas 对象。- DESCRstr
The full description of the dataset.
- feature_nameslist
数据集列的名称。
- target_names: list
The names of the target columns.
版本 0.22 新增。
- categoriesdict 或 None
将每个分类特征名称映射到一个值列表,使得编码为 i 的值是列表中的第 i 个。如果
as_frame为 True,则此项为 None。- detailsdict
来自 OpenML 的更多元数据。
- framepandas DataFrame
仅当
as_frame=True时存在。包含data和target的 DataFrame。
- (data, target)tuple if
return_X_yis True 注意
实验性
此接口是实验性的,随后的版本可能会更改属性而不另行通知(尽管对
data和target应该只有微小的更改)。‘data’ 中的缺失值由 NaN 表示。‘target’ 中的缺失值由 NaN(数值型目标)或 None(分类型目标)表示。
- data
注意事项
"pandas"和"liac-arff"解析器可能导致输出中不同的数据类型。显著区别如下"liac-arff"解析器始终将分类特征编码为str对象。相反,"pandas"解析器在读取时推断类型,数值类别将尽可能转换为整数。"liac-arff"解析器使用 float64 对元数据中标记为 ‘REAL’ 和 ‘NUMERICAL’ 的数值特征进行编码。而"pandas"解析器会推断这些数值特征是否对应整数,并使用 pandas 的 Integer 扩展 dtype。特别是,具有整数类别的分类数据集在
"pandas"解析器中通常加载为(0, 1, ...),而"liac-arff"将强制使用字符串编码的类别标签,如"0"、"1"等。"pandas"解析器不会从字符串列中去除单引号(即')。例如,字符串'my string'将按原样保留,而"liac-arff"解析器将去除单引号。对于分类列,单引号将从值中去除。
此外,当使用
as_frame=False时,"liac-arff"解析器返回序数编码的数据,类别在Bunch实例的categories属性中提供。相反,"pandas"返回一个不对类别进行编码的 NumPy 数组。示例
>>> from sklearn.datasets import fetch_openml >>> adult = fetch_openml("adult", version=2) >>> adult.frame.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 48842 entries, 0 to 48841 Data columns (total 15 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 age 48842 non-null int64 1 workclass 46043 non-null category 2 fnlwgt 48842 non-null int64 3 education 48842 non-null category 4 education-num 48842 non-null int64 5 marital-status 48842 non-null category 6 occupation 46033 non-null category 7 relationship 48842 non-null category 8 race 48842 non-null category 9 sex 48842 non-null category 10 capital-gain 48842 non-null int64 11 capital-loss 48842 non-null int64 12 hours-per-week 48842 non-null int64 13 native-country 47985 non-null category 14 class 48842 non-null category dtypes: category(9), int64(6) memory usage: 2.7 MB