load_svmlight_files#
- sklearn.datasets.load_svmlight_files(files, *, n_features=None, dtype=<class 'numpy.float64'>, multilabel=False, zero_based='auto', query_id=False, offset=0, length=-1)[原始碼]#
從多個 SVMlight 格式的檔案載入資料集。
此函式等同於將 load_svmlight_file 映射到檔案清單上,但結果會被串連成單一扁平清單,且樣本向量會被限制為都具有相同的特徵數量。
如果檔案包含成對偏好限制(在 svmlight 格式中稱為 “qid”),除非將 query_id 參數設定為 True,否則將會忽略這些限制。這些成對偏好限制可用於在使用成對損失函數時(例如某些學習排序問題)約束樣本的組合,以便僅考慮具有相同 query_id 值的配對。
- 參數:
- files類陣列(array-like)、dtype=str、路徑類(path-like)、檔案類(file-like)或整數(int)
要載入的檔案(的路徑)。如果路徑以“.gz”或“.bz2”結尾,它將會即時解壓縮。如果傳遞整數,則假定為檔案描述符。檔案類和檔案描述符不會被此函數關閉。檔案類物件必須以二進制模式開啟。
版本 1.2 中變更:現在接受路徑類物件。
- n_features整數(int),預設值=None
要使用的特徵數量。如果為 None,它將從任何檔案中出現的最大欄索引推斷出來。
可以將其設定為高於任何輸入檔案中實際特徵數的值,但將其設定為較低的值會引發例外。
- dtypenumpy 資料類型,預設值=np.float64
要載入的資料集的資料類型。這將是輸出 numpy 陣列
X
和y
的資料類型。- multilabel布林值(bool),預設值=False
樣本可能各自有多個標籤(請參閱https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html)。
- zero_based布林值(bool)或 “auto”,預設值=”auto”
檔案 f 中的欄索引是否為從零開始(True)或從一開始(False)。如果欄索引是從一開始,則它們會被轉換為從零開始,以符合 Python/NumPy 的慣例。如果設定為 “auto”,則會套用啟發式檢查,以從檔案內容判斷。這兩種檔案都“在野外”出現,但不幸的是,它們並非自我識別。當沒有傳遞 offset 或 length 時,使用 “auto” 或 True 應該始終是安全的。如果傳遞 offset 或 length,則 “auto” 模式會回退到 zero_based=True,以避免啟發式檢查在檔案的不同片段上產生不一致的結果。
- query_id布林值(bool),預設值=False
如果為 True,則會返回每個檔案的 query_id 陣列。
- offset整數(int),預設值=0
透過向前搜尋來忽略前 offset 個位元組,然後丟棄直到下一個換行字元為止的後續位元組。
- length整數(int),預設值=-1
如果嚴格為正數,一旦檔案中的位置達到 (offset + length) 位元組閾值,則停止讀取任何新的資料行。
- 返回:
- [X1, y1, …, Xn, yn] 或 [X1, y1, q1, …, Xn, yn, qn]: 陣列列表
每個 (Xi, yi) 對是 load_svmlight_file(files[i]) 的結果。如果 query_id 設定為 True,則會改為返回 (Xi, yi, qi) 三元組。
另請參閱
load_svmlight_file
用於以這種格式載入單個檔案的類似函數。
注意
當將模型擬合到矩陣 X_train 並針對矩陣 X_test 進行評估時,X_train 和 X_test 必須具有相同數量的特徵 (X_train.shape[1] == X_test.shape[1]),這點至關重要。如果使用 load_svmlight_file 單獨載入檔案,則情況可能並非如此。
範例
使用 joblib.Memory 來快取 svmlight 檔案
from joblib import Memory from sklearn.datasets import load_svmlight_file mem = Memory("./mycache") @mem.cache def get_data(): data_train, target_train, data_test, target_test = load_svmlight_files( ["svmlight_file_train", "svmlight_file_test"] ) return data_train, target_train, data_test, target_test X_train, y_train, X_test, y_test = get_data()