• No results found

3. DESIGN AND METHODOLOGY

3.3. NUMERICAL METHOD

Como se explicó en el epígrafe 1.1.4 se cuenta en el mercado internacional con numerosos productos de software para el aprendizaje, edición y ejecución de RB. En múltiples casos estos sistemas tienen un alto precio debido esencialmente a los beneficios que les reportan a las organizaciones que los utilizan. Esta es una de las causas por lo que se hace necesario que las investigaciones lleven conjuntamente desarrollos de productos de software para los modelos que se proponen.

En los inicios de esta investigación, se propuso el primer algoritmo explicado en el epígrafe 2.1.1. Las aplicaciones se dedicaron, fundamentalmente a problemas de diagnóstico médico, y para el aprendizaje de RB se usaron productos de software tradicionales como: Mathematica, SPSS, Microsoft Excel, etc. Para hacer inferencias con estas redes se hizo un primer desarrollo de software denominado ByShell (Chávez y Rodríguez 2002), después se desarrolló un sistema que incluyó el aprendizaje y la propagación, pero que aún no estaba totalmente validado (Rodríguez et al. 2006). Estos software se desarrollaron en Borlan Delphi, y esta plataforma no es de código libre.

Si se tiene en cuenta que, la implementación de nuevos algoritmos como extensión de la plataforma de aprendizaje automatizado Weka, ha mostrado ventajas tales como (Morell et al. 2006):

• Se simplifica la implementación pues solo hay que redefinir métodos ya existentes en Weka o crear otros nuevos con las funcionalidades específicas del algoritmo a adicionar.

• Se facilita la validación de un nuevo modelo. No es necesario preocuparse por implementar las variantes de validación, ni las medidas de desempeño a emplear; se pueden utilizar las ya existentes en la herramienta. Es posible hacer ejecuciones en lotes y en varias terminales, sin esfuerzos adicionales de programación utilizando el modo Experimentador.

• Se propicia y facilita la comparación del nuevo algoritmo con otros ya reportados en la literatura e implementados en la herramienta, facilitando el análisis de la factibilidad de este último, algo que sería más costoso en tiempo si se hubiera implementado como un modelo aislado.

• Facilidades para el pre-procesamiento de los datos, y el hecho de que los filtros estén separados de los algoritmos facilita la implementación y el reuso.

• Se propicia el uso y divulgación de los nuevos modelos implementados. El hecho de queden incorporados a Weka los hace disponibles para la comunidad de científicos y usuarios de este campo.

• El tiempo de desarrollo del prototipo de un software a la medida, utilizando un algoritmo implementado en Weka, se disminuye a partir de reutilizar su código.

Para fortalecer esta plataforma, al lograr una contribución en este campo, se pueden incluir los tres algoritmos definidos en el capítulo dos.

El Weka está desarrollado en Java, y está estructurado de forma tal que se hace muy sencillo hacer cambios en el código. Por las características del trabajo que se está desarrollando, sólo se hará referencia a lo concerniente a la adición de los algoritmos de aprendizaje estructural propuestos como nuevos modelos de clasificación.

En este sistema existe una clase abstracta que implementa los métodos que debe usar cualquier clasificador, y que es denominada weka.classifiers.Classifier. Si se desea implementar un nuevo modelo de clasificación se deben redefinir el método buildClassifier(), y al menos uno entre los métodos clasifyInstance() y distributionForInstance().

Si la adición a Weka es un nuevo clasificador bayesiano, el cual forma parte del paquete “weka.classifier.BayesNet”, el clasificador BayesNet usa diferentes tipos de algoritmos para el aprendizaje automatizado de la RB a usar en el proceso de clasificación, a los que denomina algoritmos de búsqueda, cuya tarea principal es definir la estructura de la RB. La clase que contenga la codificación del nuevo algoritmo debe quedar ubicada en este nombre de espacio: “weka.classifier.bayes.net.search”, en los paquetes ya definidos: ci, fixed, global y local, o crear uno nuevo si el algoritmo no se ajusta a ninguno de los ya existentes. Los algoritmos ByNet y BayesChaid se ubicaron en un nuevo paquete que nombramos: deterministic, y el algoritmo BayesPSO en el paquete global de los ya definidos en Weka. Las relaciones que se establecen entre los paquetes y clases se pueden ver en el diseño del diagrama de relación de clases, que se muestra en el anexo 10, la cual se elaboró con un lenguaje de modelo unificado: Paradigma Visual para UML VisualParadigm (Hernandis 2005), (Headquarters 2007).

Los ficheros de datos se deben definir de uno de los dos tipos siguientes: • ARFF (Attribute-Relation File Format)

• CSV (delimitado por comas)

En el anexo 11 se especifica la sintaxis de estos ficheros.

Para utilizar la herramienta Weka previamente se debe instalar la maquina virtual de java, y Weka se ejecuta simplemente ejecutando el fichero weka.jar, o desde la línea de comandos: java -jar weka.jar o por ejemplo C:\WINDOWS\system32\java.exe -Xmx290m -jar " D:\mchavez\Weka\weka.jar"

En el ejemplo la ejecución permite aumentar la memoria virtual con -Xmx290m a partir 290MB como memoria mínima, además se índica el camino en el que está instalado el java y el camino al fichero weka.jar.

Cuando se ejecuta Weka se tiene una ventana selectora de interfaces, la que se utiliza para realizar pruebas: Explorer y para hacer experimentos: Experimenter.

Se le puede indicar a Weka por línea de comandos la ejecución de un clasificador específico, como los implementados para crear RB, se deben incluir todos los parámetros necesarios: parámetros para abrir ficheros, el clasificador a utilizar, etc.

Esta opción es más difícil, de hecho para usar Weka en la versión Weka parallel (Arboláez 2008), que permite ejecute la validación cruzada (Kohavi 1995), (Efron y Tibshirani 1997), (Fu y Carroll 2005), (Varma y Simon 2006), con varias terminales, se crearon dos ficheros que ejecutan Weka para poder indicar los puertos de conexión, uno para weka cliente y uno weka servidor, y si no se va a realizar la validación cruzada con varios subconjuntos de datos con distintas terminales, porque no merece la pena hacerlo, se puede usar el Weka cliente. En el anexo 11 se pueden ver las características de estos dos ficheros. Cuando se utiliza el algoritmo PSO se selecciona una medida de calidad, en Weka ya se encuentran incorporadas medidas basada en validaciones cruzadas o la medida basada en el método LOO-CV (Leave one out crossvalidation: validación cruzada dejando uno fuera). Se hizo la extensión a Weka de otras medidas de calidad global: dos medidas presentadas en (Eitrich et al. 2007), que a su vez se consideran medidas de calidad robustas para clasificación, se trata del coeficiente de correlación de Matthews y una medida de calidad basada en la sensibilidad y una medida que mide la precisión de la clasificación de (Fawcett 2004), las cuales se han descrito en el capítulo dos.

Alternativamente se incorporó a Weka un filtro para selección de atributos propuesto por (Wang et al. 2006) el cual se usa previamente a la construcción de la RB, especialmente cuando hay demasiados atributos (digamos, más de 100) (Chávez et al. 2007b).

3.2 Planteamiento del problema sobre predicción de interacciones de

Related documents