Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private double[] calcularu(Instance instancia) throws Exception {
- // Busqueda de vecinos para poder tener la distancia de la instancia a
- // cada prototipo
- LinearNNSearch S = new LinearNNSearch(prototipos);
- S.setSkipIdentical(true);
- Instances knn = S.kNearestNeighbours(instancia, prototipos.numInstances());
- double distancias[] = S.getDistances();
- // Calcula la suma de las distancias del punto a todos los prototipos
- double suma_den = 0.0;
- for (int i = 0; i < distancias.length; i++) {
- // RELLENAR: Actualizar suma_den utilizando distancias[i]
- suma_den += 1.0/Math.pow(distancias[i],2.0/(m-1));
- }
- // Crea y da valor al vector de pertenencias
- double u[] = new double[prototipos.numInstances()];
- for (int i = 0; i < knn.numInstances(); i++) {
- // Al estar ordenados de acuerdo a la distancia, los class value
- // estan desordenados
- int classValue = (int) knn.instance(i).classValue();
- // RELLENAR: Calcular el numerador
- double suma_num = 1/Math.pow(distancias[i], 2/(m-1));
- // RELLENAR: Actualizar u[classValue]
- u[classValue] = suma_num / suma_den;
- }
- return (u);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement