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)#

从openml按名称或数据集ID获取数据集。

数据集通过整数ID或名称和版本(即可能存在多个版本的’iris’数据集)唯一标识。请提供名称或data_id(不要同时提供两者)。如果提供了名称,也可以提供版本。

更多信息请参阅 用户指南

Added in version 0.20.

Note

实验性

该API是实验性的(特别是返回值结构),可能在未来的版本中没有通知或警告的情况下进行小的向后不兼容更改。

Parameters:
namestr, default=None

数据集的字符串标识符。请注意,OpenML可以有多个同名数据集。

versionint 或 ‘active’, default=’active’

数据集的版本。只有在提供了 name 时才能提供。如果为’active’,则使用仍处于活动状态的最旧版本。由于可能存在多个活动版本的数据集,并且这些版本可能根本不同,强烈建议设置一个精确的版本。

data_idint, default=None

数据集的OpenML ID。这是检索数据集的最具体方式。如果未提供data_id,则使用名称(和潜在的版本)获取数据集。

data_homestr 或 path-like, default=None

指定数据集的另一个下载和缓存文件夹。默认情况下,所有scikit-learn数据存储在’~/scikit_learn_data’子文件夹中。

target_columnstr, list 或 None, default=’default-target’

指定数据中用作目标的列名。如果为’default-target’,则使用服务器上存储的标准目标列。如果为 None ,则所有列都作为数据返回,目标为 None 。如果为列表(字符串),则所有这些名称的列都作为多目标返回(注意:并非所有scikit-learn分类器都能处理所有类型的多输出组合)。

cachebool, default=True

是否将下载的数据集缓存到 data_home 中。

return_X_ybool, default=False

如果为True,则返回 (data, target) 而不是Bunch对象。有关 datatarget 对象的更多信息,请参见下文。

as_framebool 或 ‘auto’, default=’auto’

如果为True,数据是包含适当数据类型(数值、字符串或分类)列的pandas DataFrame。目标是一个pandas DataFrame或Series,具体取决于target_columns的数量。Bunch将包含一个 frame 属性,包含目标和数据。如果 return_X_y 为True,则 (data, target) 将是如上所述的pandas DataFrame或Series。

如果 as_frame 为’auto’,数据和目标将转换为DataFrame或Series,如同 as_frame 设置为True,除非数据集以稀疏格式存储。

如果 as_frame 为False,数据和目标将是NumPy数组,并且 data 仅在 parser="liac-arff" 时包含数值,类别在 Bunch 实例的属性 categories 中提供。当 parser="pandas" 时,不进行序数编码。

Changed in version 0.24: 在0.24中, as_frame 的默认值从 False 改为 'auto'

n_retriesint, default=3

遇到HTTP错误或网络超时时重试的次数。状态码412的错误不会重试,因为它们代表OpenML通用错误。

delayfloat, default=1.0

重试之间的秒数。

parser{“auto”, “pandas”, “liac-arff”}, default=”auto”

用于加载ARFF文件的解析器。实现了两个解析器:

  • "pandas" :这是最有效的解析器。然而,它需要pandas,并且只能打开密集数据集。

  • "liac-arff" :这是一个纯Python ARFF解析器,内存和CPU效率较低。它处理稀疏ARFF数据集。

如果为 "auto" ,解析器会自动选择,以便为稀疏ARFF数据集选择 "liac-arff" ,否则选择 "pandas"

Added in version 1.2.

Changed in version 1.4: 在1.4中, parser 的默认值从 "liac-arff" 改为 "auto"

read_csv_kwargsdict, default=None

当使用pandas解析器加载ARFF文件时传递给:func:pandas.read_csv 的关键字参数。它可以允许覆盖一些默认参数。

Added in version 1.3.

Returns:
dataBunch

类似字典的对象,具有以下属性。

datanp.array, scipy.sparse.csr_matrix of floats, 或 pandas DataFrame

特征矩阵。分类特征编码为序数。

targetnp.array, pandas Series 或 DataFrame

回归目标或分类标签(如果适用)。数据类型为float(如果为数值),对象(如果为分类)。如果 as_frame 为True, target 是pandas对象。

DESCRstr

数据集的完整描述。

feature_nameslist

数据集列的名称。

target_names: list

目标列的名称。

Added in version 0.22.

categoriesdict 或 None

将每个分类特征名称映射到值列表,使得编码为i的值是列表中的第i个。如果 as_frame 为True,则为None。

detailsdict

OpenML的更多元数据。

framepandas DataFrame

仅当 as_frame=True 时存在。包含 datatarget 的DataFrame。

(data, target)tuple 如果 return_X_y 为 True

Note

实验性

此接口是 实验性的 ,后续版本可能会在没有通知的情况下更改属性(尽管应该只对 datatarget 进行小的更改)。

‘data’中的缺失值表示为NaN。’target’中的缺失值表示为NaN(数值目标)或None(分类目标)。

  • "liac-arff" 解析器总是将分类特征编码为 str 对象。相反, "pandas" 解析器在读取时推断类型,并且尽可能将数值类别转换为整数。

  • "liac-arff" 解析器使用float64编码元数据中标记为’REAL’和’NUMERICAL’的数值特征。 "pandas" 解析器则推断这些数值特征是否对应于整数,并使用pandas的Integer扩展数据类型。

  • 特别是,具有整数类别的分类数据集通常会使用 "pandas" 解析器加载为 (0, 1, ...) ,而 "liac-arff" 将强制使用字符串编码的类标签,如 "0""1" 等。

  • "pandas" 解析器不会从字符串列中去除单引号 - 即 ' 。例如,字符串 'my string' 将保持原样,而 "liac-arff" 解析器会去除单引号。对于分类列,单引号从值中去除。

此外,当使用 as_frame=False 时, "liac-arff" 解析器返回序数编码的数据,其中类别在 Bunch 实例的属性 categories 中提供。相反, "pandas" 返回一个NumPy数组,其中类别未编码。

Examples

>>> 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