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 物件。請參閱下方以瞭解有關data
和target
物件的更多資訊。- 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 中新增。
- 傳回值:
- data
Bunch
類似字典的物件,具有下列屬性。
- 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
時才存在。具有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"
剖析器則會推斷這些數值特徵是否對應到整數,並使用 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