sklearn.datasets
.load_svmlight_file¶
- sklearn.datasets.load_svmlight_file()¶
Carga conjuntos de datos en el formato svmlight / libsvm en la matriz CSR dispersa
Este formato está basado en texto, con una muestra por línea. No almacena características de valor cero, por lo que es adecuado para conjuntos de datos dispersos.
El primer elemento de cada línea puede utilizarse para almacenar una variable objetivo para predecir.
Este formato se utiliza como formato predeterminado para los programas de línea de comandos svmlight y libsvm.
Analizar una fuente basada en texto puede ser costoso. Cuando se trabaja repetidamente en el mismo conjunto de datos, se recomienda envolver (wrap) este cargador con joblib.Memory.cache para almacenar una copia de seguridad memmapped de los resultados CSR de la primera llamada y beneficiarse de la carga casi instantánea de las estructuras memmapped para las llamadas posteriores.
En caso de que el archivo contenga una restricción de preferencia por pares (conocida como «qid» en el formato svmlight), ésta se ignora a menos que el parámetro query_id se establezca como True. Estas restricciones de preferencia por pares pueden utilizarse para restringir la combinación de muestras cuando se utilizan funciones de pérdida por pares (como es el caso de algunos problemas de aprendizaje para clasificación), de modo que sólocise consideren los pares con el mismo valor de query_id.
Esta implementación está escrita en Cython y es razonablemente rápida. Sin embargo, un cargador más rápido compatible con la API también está disponible en:
- Parámetros
- fstr, file-like o int
(Ruta de) un archivo a cargar. Si una ruta termina en «.gz» o «.bz2», se descomprimirá sobre la marcha. Si se pasa un entero, se asume que es un descriptor de archivo. Un file-like o un descriptor de archivo no será cerrado por esta función. Un objeto file-like debe abrirse en modo binario.
- n_featuresint, default=None
El número de características a utilizar. Si es None, se inferirá. Este argumento es útil para cargar varios archivos que son subconjuntos de un conjunto de datos más grande dividido: cada subconjunto podría no tener ejemplos de cada característica, por lo tanto la forma inferida podría variar de una división a otra. n_features sólo se requiere si a
offset
olength
se le pasa un valor no predeterminado.- dtypetipo de dato numpy, default=np.float64
Tipo de dato del conjunto de datos a cargar. Este será el tipo de dato de los arreglos numpy de salida
X
yy
.- multilabelbool, default=False
Las muestras pueden tener varias etiquetas cada una (ver https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html)
- zero_basedbool o «auto», default=»auto»
Si los índices de columna en f están basados en cero (True) o en uno (False). Si los índices de las columnas están basados en uno, se transforman en basados en cero para que coincidan con las convenciones de Python/NumPy. Si se establece como «auto», se aplica una comprobación heurística para determinar esto a partir del contenido del archivo. Ambos tipos de archivos ocurren «in the wild», pero desafortunadamente no son autoidentificables. El uso de «auto» o True debería ser siempre seguro cuando no se pasa
offset
olength
. Si se pasaoffset
olength
, el modo «auto» vuelve a zero_based=True para evitar que la comprobación heurística produzca resultados inconsistentes en diferentes segmentos del archivo.- query_idbool, default=False
Si es True, devolverá el arreglo query_id para cada archivo.
- offsetint, default=0
Ignora los primeros bytes desplazados buscando hacia adelante, y descartando los siguientes bytes hasta el siguiente carácter de línea nueva.
- lengthint, default=-1
Si es estrictamente positivo, deja de leer cualquier nueva línea de datos una vez que la posición en el archivo ha alcanzado el umbral de (desplazamiento + longitud) bytes.
- Devuelve
- Xmatriz scipy.sparse de forma (n_samples, n_features)
- yndarray de forma (n_samples,), o, en el multietiqueta una lista de
tuples de longitud n_samples.
- query_idarreglo de forma (n_samples,)
query_id para cada muestra. Sólo se devuelve cuando query_id se establece en True.
Ver también
load_svmlight_files
Función similar para cargar múltiples archivos en este formato, haciendo cumplir el mismo número de características/columnas en todos ellos.
Ejemplos
Para utilizar joblib.Memory para almacenar en caché el archivo svmlight:
from joblib import Memory from .datasets import load_svmlight_file mem = Memory("./mycache") @mem.cache def get_data(): data = load_svmlight_file("mysvmlightfile") return data[0], data[1] X, y = get_data()