Repolode
nok

nok/sklearn-porter

Herramienta de Python que transpila modelos y transformadores entrenados de scikit-learn a código C, C#, Go, Java, JavaScript, PHP o Ruby.

Estrellas
1,304
Forks
168
Issues abiertos
4
Último commit
hace 23 horas

¿Qué es?

sklearn-porter recibe un estimador, transformador o pipeline entrenado de scikit-learn y genera código fuente en C, C#, Go, Java, JavaScript, PHP o Ruby. El código generado puede hacer predicciones sin un entorno de ejecución de Python, lo que resulta útil en dispositivos integrados, navegadores o aplicaciones existentes escritas en otro lenguaje.

El proyecto admite una amplia variedad de clasificadores, regresores, detectores de valores atípicos y transformadores de preprocesamiento o selección de características, incluidos ensembles de árboles, modelos lineales, SVM y redes neuronales. Se espera que los estimadores adaptados produzcan las mismas predicciones que los originales, y que los transformadores adaptados transformen las características de la misma manera.

Los datos del modelo se pueden adjuntar al código, exportar a un archivo JSON independiente o compilar dentro de la lógica como sentencias `if-else` anidadas. El paquete ofrece una API de Python, una herramienta de línea de comandos `porter` y una función auxiliar `test` que compara la salida adaptada con la del modelo original. La instalación requiere Python 3.11 o posterior y scikit-learn 1.8 o posterior.

Funciones clave

  • 01Transpila clasificadores, regresores y detectores de valores atípicos a siete lenguajes.
  • 02Adapta transformadores y pipelines habituales de preprocesamiento y selección de características.
  • 03Ofrece plantillas con los datos del modelo adjuntos, exportados o integrados.
  • 04Proporciona tanto una API de Python como una interfaz de línea de comandos `porter`.
  • 05Incluye una función de prueba que compara las predicciones adaptadas con las del modelo original.

Casos de uso

  • Ejecutar un modelo entrenado de scikit-learn en un dispositivo integrado sin Python.
  • Incorporar las predicciones de un modelo a un backend de Java, Go o PHP sin un servicio de Python.
  • Ejecutar un clasificador en el navegador con JavaScript.

Inicio rápido

  1. 1

    Instala el paquete con uv

    uv add sklearn-porter
  2. 2

    O instálalo con pip

    pip install sklearn-porter
  3. 3

    Entrena un modelo de scikit-learn en Python y transpórtalo con port(clf, language='js')

Antes de usarlo

  • Requiere Python 3.11 o posterior y scikit-learn 1.8 o posterior.
  • Solo admite una lista fija de estimadores y transformadores de scikit-learn.

En colecciones

Temas

Preguntas frecuentes

¿Qué es sklearn-porter?
Herramienta de Python que transpila modelos y transformadores entrenados de scikit-learn a código C, C#, Go, Java, JavaScript, PHP o Ruby. sklearn-porter recibe un estimador, transformador o pipeline entrenado de scikit-learn y genera código fuente en C, C#, Go, Java, JavaScript, PHP o Ruby. El código generado puede hacer predicciones sin un entorno de ejecución de Python, lo que resulta útil en dispositivos integrados, navegadores o aplicaciones existentes escritas en otro lenguaje.
¿sklearn-porter es gratuito? ¿Qué licencia tiene?
sklearn-porter es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿sklearn-porter sigue mantenido?
Mantenimiento activo. El último commit de sklearn-porter fue el 5 nov 2026.
¿Para qué puedo usar sklearn-porter?
Ejecutar un modelo entrenado de scikit-learn en un dispositivo integrado sin Python. Incorporar las predicciones de un modelo a un backend de Java, Go o PHP sin un servicio de Python. Ejecutar un clasificador en el navegador con JavaScript.
¿Cómo se instala sklearn-porter?
Instala el paquete con uv: uv add sklearn-porter O instálalo con pip: pip install sklearn-porter Entrena un modelo de scikit-learn en Python y transpórtalo con port(clf, language='js')
¿Dónde consigo sklearn-porter?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/nok/sklearn-porter

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados