Skip to content

Instantly share code, notes, and snippets.

@diegoolipa
Created September 20, 2023 12:41
Show Gist options
  • Save diegoolipa/07c4e3662da7c6431e9338f0246b0632 to your computer and use it in GitHub Desktop.
Save diegoolipa/07c4e3662da7c6431e9338f0246b0632 to your computer and use it in GitHub Desktop.
Algoritmo de Arbol Decision en Java ' predecir enfermedad cardiaca.
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);
}
}
@diegoolipa
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment