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 其中一個(不要同時提供兩者)。如果提供名稱,也可以提供版本。

使用者指南中閱讀更多。

在 0.20 版本中新增。

注意

實驗性質

此 API 具有實驗性質(特別是回傳值的結構),而且未來版本可能會在未事先通知或警告的情況下進行小的向後不相容變更。

參數:
namestr,預設值=None

資料集的字串識別碼。請注意,OpenML 可能有多個同名的資料集。

versionint 或 'active',預設值='active'

資料集的版本。只有在也提供 name 的情況下才能提供。如果為 'active',則會使用仍處於活動狀態的最舊版本。由於資料集可能有多個活動版本,而且這些版本之間可能存在根本上的差異,因此強烈建議設定確切的版本。

data_idint,預設值=None

資料集的 OpenML ID。這是擷取資料集最明確的方式。如果未提供 data_id,則會使用名稱(以及可能的版本)來取得資料集。

data_homestr 或 path-like,預設值=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 物件。請參閱下方以瞭解有關 datatarget 物件的更多資訊。

as_framebool 或 ‘auto’,預設值為 ‘auto’

如果為 True,則資料會是 pandas DataFrame,其中包含具有適當 dtypes(數值、字串或類別)的欄位。目標會是 pandas DataFrame 或 Series,取決於 target_columns 的數量。Bunch 將會包含具有目標和資料的 frame 屬性。如果 return_X_y 為 True,則 (data, target) 將會是 pandas DataFrames 或 Series,如上所述。

如果 as_frame 為 ‘auto’,則資料和目標將會轉換為 DataFrame 或 Series,如同將 as_frame 設定為 True,除非資料集以稀疏格式儲存。

如果 as_frame 為 False,則資料和目標將會是 NumPy 陣列,且當 parser="liac-arff" 時,data 將只會包含數值,其中類別會提供在 Bunch 實例的屬性 categories 中。當 parser="pandas" 時,不會進行序數編碼。

在版本 0.24 中變更:as_frame 的預設值在 0.24 中從 False 變更為 'auto'

n_retriesint,預設值為 3

當遇到 HTTP 錯誤或網路逾時時的重試次數。狀態碼為 412 的錯誤不會重試,因為它們代表 OpenML 通用錯誤。

delayfloat,預設值為 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_kwargsdict,預設值為 None

當從 ARFF 檔案載入資料並使用 pandas 剖析器時,傳遞給 pandas.read_csv 的關鍵字引數。它可以允許覆寫某些預設參數。

在版本 1.3 中新增。

傳回值:
dataBunch

類似字典的物件,具有下列屬性。

datanp.array、scipy.sparse.csr_matrix(浮點數)或 pandas DataFrame

特徵矩陣。類別特徵會編碼為序數。

targetnp.array、pandas Series 或 DataFrame

迴歸目標或分類標籤(如果適用)。如果為數值,則 Dtype 為 float;如果為類別,則為 object。如果 as_frame 為 True,則 target 為 pandas 物件。

DESCRstr

資料集的完整描述。

feature_nameslist

資料集欄位的名稱。

target_names: list

目標欄位的名稱。

在版本 0.22 中新增。

categoriesdict 或 None

將每個類別特徵名稱對應到一個值列表,使得編碼為 i 的值在列表中是第 i 個。如果 as_frame 為 True,則此值為 None。

detailsdict

來自 OpenML 的更多中繼資料。

framepandas DataFrame

僅當 as_frame=True 時才存在。具有 datatarget 的 DataFrame。

(data, target)如果 return_X_y 為 True,則為元組

注意

實驗性質

此介面為實驗性,後續版本可能會在不另行通知的情況下變更屬性(雖然應該只會對 datatarget 進行微小的變更)。

「data」中的遺失值表示為 NaN。 「target」中的遺失值表示為 NaN(數值目標)或 None(類別目標)。

附註

"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