Created
September 20, 2023 12:41
-
-
Save diegoolipa/07c4e3662da7c6431e9338f0246b0632 to your computer and use it in GitHub Desktop.
Algoritmo de Arbol Decision en Java ' predecir enfermedad cardiaca.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.example.argoritmia; | |
import weka.classifiers.trees.J48; | |
import weka.core.Attribute; | |
import weka.core.Instances; | |
import weka.core.converters.CSVLoader; | |
import weka.core.Instance; | |
import weka.core.DenseInstance; | |
import java.io.File; | |
public class ArbolDecisionDesdeCSV { | |
public static void main(String[] args) throws Exception { | |
// Cargar datos desde un archivo CSV | |
CSVLoader loader = new CSVLoader(); | |
loader.setSource(new File("data/dacacardi.csv")); // Reemplaza "ruta/al/archivo.csv" con la ubicación de tu archivo CSV | |
Instances datos = loader.getDataSet(); | |
// Establecer la columna de clase (Enfermedad Cardíaca en este caso) - ajusta según tu CSV | |
datos.setClassIndex(datos.numAttributes() - 1); | |
// Construir el árbol de decisión | |
J48 arbolDecision = new J48(); | |
arbolDecision.buildClassifier(datos); | |
// Crear una nueva instancia para hacer una predicción | |
Attribute edad = datos.attribute("Edad"); // Ajusta con los nombres de tus columnas | |
Attribute presionArterial = datos.attribute("PresionArterial"); | |
Attribute colesterol = datos.attribute("Colesterol"); | |
DenseInstance nuevoPaciente = new DenseInstance(4); | |
nuevoPaciente.setValue(edad, 50); // Cambia los valores según el nuevo paciente | |
nuevoPaciente.setValue(presionArterial, 140); | |
nuevoPaciente.setValue(colesterol, 200); | |
// Añadir la instancia al conjunto de datos | |
datos.add(nuevoPaciente); | |
// Realizar la predicción | |
double predicciones[] = arbolDecision.distributionForInstance(datos.lastInstance()); // Utiliza la última instancia agregada | |
String resultado = datos.classAttribute().value((int) predicciones[0]); | |
System.out.println("Resultado de la predicción para el nuevo paciente: " + resultado); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Edad,PresionArterial,Colesterol,EnfermedadCardiaca
45,130,210,Si
52,142,185,No
61,150,245,Si
38,128,167,No
55,138,190,Si
48,135,220,Si
63,155,250,Si
41,132,175,No
59,145,198,Si
44,129,200,No