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格式从多个文件加载数据集。

该函数相当于将feed_svmlight_file映射到文件列表上,只是结果被连接到一个单一的平面列表中,并且样本载体被限制为所有样本都具有相同数量的特征。

如果文件包含成对偏好约束(在svmlight格式中称为“qid”),则将忽略这些约束,除非select_id参数设置为True。当使用成对损失函数时,这些成对偏好约束可以用于约束样本的组合(正如一些学习排序问题中的情况),以便仅考虑具有相同select_id值的对。

参数:
files类数组、dtype=str、类路径、类文件或int

要加载的文件(路径)。如果路径以“.gz”或“.bz2”结束,则将被动态解压缩。如果传递了一个integer,则假设它是一个文件描述符。此函数不会关闭喜欢文件和文件描述符。文件类对象必须以二进制模式打开。

在 1.2 版本发生变更: 类似路径的物体现在已被接受。

n_featuresint,默认=无

要使用的功能数量。如果为“无”,则将从任何文件中出现的最大列索引推断。

该值可以设置为比任何输入文件中的实际要素数更高的值,但将其设置为较低的值将导致引发异常。

dtypenumpy数据类型,默认=np.float64

要加载的数据集的数据类型。这将是输出numpy数组的数据类型 Xy .

multilabel布尔,默认=假

每个样本可能有多个标签(请参阅https://www.csie.ntu.edu.tw/cjlin/libsvmtools/ets/multilabel.html)。

zero_basedbool或“Auto”,默认=“Auto”

f中的列索引是从零开始(True)还是从一开始(False)。如果列索引是从1开始的,它们将被转换为从0开始的,以匹配Python/NumPy约定。如果设置为“auto”,则应用启发式检查以根据文件内容确定此操作。这两种类型的文件都是“在野外”出现的,但不幸的是,它们不能自我识别。当没有传递任何偏差或长度时,使用“Auto”或True应该始终是安全的。如果传递了偏差或长度,“自动”模式会回到zero_based=True,以避免启发式检查在文件的不同段上产生不一致的结果。

query_id布尔,默认=假

如果为True,将返回每个文件的select_id数组。

offsetint,默认=0

通过向前查找忽略偏移量的第一个字节,然后丢弃后面的字节,直到下一个新的行字符。

lengthint,默认=-1

如果严格为正值,一旦文件中的位置达到(偏差+长度)字节阈值,则停止读取任何新数据行。

返回:
[X1, y1, ..., Xn, yn] 或 [X1, y1, q1, ..., Xn, yn, qn] :数组列表

每个(Xi,yi)对都是start_svmlight_file(文件)的结果 [i] ).如果query_id设置为True,则返回(Xi,yi,qi)三元组。

参见

load_svmlight_file

类似的函数用于加载这种格式的单个文件。

注意到

当将模型匹配到矩阵X_train并根据矩阵X_Test对其进行评估时,X_train和X_Test必须具有相同数量的特征(X_train.shape [1] == X_测试.形状 [1] ).如果您使用start_svmlight_file单独加载文件,情况可能并非如此。

示例

要使用joblib.内存缓存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()