从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)[source]#
- 根据名称或数据集 ID 从 openml 获取数据集。 - 数据集通过整数 ID 或名称和版本的组合唯一标识(即,“iris”数据集可能有多个版本)。请提供 name 或 data_id(两者不要同时提供)。如果给出名称,也可以提供版本。 - 在 用户指南 中了解更多信息。 - 版本 0.20 中新增。 - 注意 - 实验性功能 - 此 API 处于实验阶段(特别是返回值结构),在将来的版本中可能会进行小的向后不兼容更改,恕不另行通知。 - 参数:
- namestr,默认为 None
- 数据集的字符串标识符。请注意,OpenML 可能有多个具有相同名称的数据集。 
- versionint 或 ‘active’,默认为 ‘active’
- 数据集的版本。只有在也给出 - name时才能提供。如果为“active”,则使用仍然有效的最早版本。由于一个数据集可能存在多个活动版本,并且这些版本可能从根本上有所不同,因此强烈建议设置精确的版本。
- data_idint,默认为 None
- 数据集的 OpenML ID。检索数据集最精确的方法。如果未给出 data_id,则使用 name(和潜在的版本)来获取数据集。 
- data_homestr 或路径型对象,默认为 None
- 指定数据集的另一个下载和缓存文件夹。默认情况下,所有 scikit-learn 数据都存储在 ‘~/scikit_learn_data’ 子文件夹中。 
- target_columnstr、list 或 None,默认为 ‘default-target’
- 指定数据中用作目标的列名。如果为“default-target”,则使用服务器上存储的标准目标列。如果为 - None,则所有列都作为数据返回,目标为- None。如果为列表(字符串列表),则所有具有这些名称的列都将作为多目标返回(注意:并非所有 scikit-learn 分类器都能处理所有类型的多输出组合)。
- cachebool,默认为 True
- 是否将下载的数据集缓存到 - data_home中。
- return_X_ybool,默认为 False
- 如果为 True,则返回 - (data, target)而不是 Bunch 对象。有关- data和- target对象的更多信息,请参见下文。
- as_frame布尔值或“auto”,默认为“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 数组,并且当- parser="liac-arff"时,- data将只包含数值,其中类别在- Bunch实例的- categories属性中提供。当- parser="pandas"时,不会进行序数编码。- 0.24 版本中的变更: 在 0.24 版本中, - as_frame的默认值从- False更改为- 'auto'。
- n_retries整数,默认为 3
- 遇到 HTTP 错误或网络超时时的重试次数。状态码为 412 的错误不会重试,因为它们代表 OpenML 通用错误。 
- delay浮点数,默认为 1.0
- 两次重试之间的时间间隔(秒)。 
- 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_kwargs字典,默认为 None
- 从 ARFF 文件加载数据并使用 pandas 解析器时,传递给 - pandas.read_csv的关键字参数。它可以允许覆盖一些默认参数。- 1.3 版本中添加。 
 
- 返回:
- dataBunch
- 类似字典的对象,具有以下属性。 - datanp.array,scipy.sparse.csr_matrix 浮点数或 pandas DataFrame
- 特征矩阵。类别特征被编码为序数。 
- targetnp.array,pandas Series 或 DataFrame
- 回归目标或分类标签(如果适用)。如果为数值型,则数据类型为浮点数;如果为类别型,则数据类型为对象。如果 - as_frame为 True,则- target为 pandas 对象。
- DESCR字符串
- 数据集的完整描述。 
- feature_names列表
- 数据集列的名称。 
- target_names: 列表
- 目标列的名称。 
 - 0.22 版本中添加。 - categories字典或 None
- 将每个类别特征名称映射到一个值列表,以便编码为 i 的值是列表中的第 i 个值。如果 - as_frame为 True,则为 None。
- details字典
- 来自 OpenML 的更多元数据。 
- framepandas DataFrame
- 仅当 - as_frame=True时出现。包含- data和- target的 DataFrame。
 
- (data, target)如果 return_X_y为 True,则为元组
- 注意 - 实验性功能 - 此接口为实验性接口,后续版本可能会更改属性而无需另行通知(尽管对 - data和- target的更改应该很小)。- “data”中的缺失值表示为 NaN。“target”中的缺失值表示为 NaN(数值目标)或 None(类别目标)。 
 
- data
 - 注释 - "pandas"和- "liac-arff"解析器可能导致输出中的数据类型不同。值得注意的区别如下:- "liac-arff"解析器始终将类别特征编码为- str对象。相反,- "pandas"解析器在读取时推断类型,并且数值类别将尽可能转换为整数。
- "liac-arff"解析器使用 float64 来编码元数据中标记为“REAL”和“NUMERICAL”的数值特征。- "pandas"解析器改为推断这些数值特征是否对应于整数,并使用 panda 的整数扩展数据类型。
- 特别是,使用整数类别进行分类的数据集通常使用 - "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 
 
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
