2026-04-01 15:05:16 +02:00
|
|
|
package ecoparasite.nettoyage;
|
|
|
|
|
|
|
|
|
|
import ecoparasite.poisson.Poisson;
|
|
|
|
|
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
|
2026-04-01 16:24:42 +02:00
|
|
|
/**
|
|
|
|
|
* Class Définissant les méthodes statics de Nettoyage des données
|
|
|
|
|
*/
|
2026-04-01 15:05:16 +02:00
|
|
|
public class Nettoyage {
|
|
|
|
|
|
|
|
|
|
/**
|
2026-04-01 16:24:42 +02:00
|
|
|
* Methode Static de nettoyage des valeurs abérrante et absurde
|
|
|
|
|
* @param tablePoisson Un Hashset de Poisson contenant nos données
|
|
|
|
|
* @return Le Hashset de Poisson une fois qu'il est nettoyé
|
2026-04-01 15:05:16 +02:00
|
|
|
*/
|
2026-04-01 16:20:41 +02:00
|
|
|
public static HashSet<Poisson> nettoiePoissonMean(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double mean = mean(tablePoisson); //Moyenne
|
|
|
|
|
Double ecart = ecartType(tablePoisson); // Ecart Type
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double z = 0.0;
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
|
|
|
z = ( p.getInfestation() - mean ) / ecart;
|
|
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
if ( z >= 2.5 ) {
|
2026-04-01 15:05:16 +02:00
|
|
|
p.setInfestation(mean);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return tablePoisson;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:24:42 +02:00
|
|
|
/**
|
|
|
|
|
* Methode Privée permettant de calculer la moyenne
|
|
|
|
|
* @param tablePoisson Un Hashset de Poisson contenant nos données
|
|
|
|
|
* @return Un Double correspondant à la moyenne
|
|
|
|
|
*/
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double mean(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double mean = 0.0;
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson){
|
|
|
|
|
mean += p.getInfestation();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mean / tablePoisson.size();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:24:42 +02:00
|
|
|
/**
|
|
|
|
|
* Methode Privée permettant de calculer la variance
|
|
|
|
|
* @param tablePoisson Un Hashset de Poisson contenant nos données
|
|
|
|
|
* @return Un Double correspondant à la variance
|
|
|
|
|
*/
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double variance(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double vari = 0.0;
|
|
|
|
|
Double mean = mean(tablePoisson);
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
for (Poisson p : tablePoisson) {
|
|
|
|
|
vari += Math.pow( (p.getInfestation() - mean), 2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return vari / tablePoisson.size();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 16:24:42 +02:00
|
|
|
/**
|
|
|
|
|
* Methode Privée permettant de calculer l'écart-type
|
|
|
|
|
* @param tablePoisson Un Hashset de Poisson contenant nos données
|
|
|
|
|
* @return Un Double correspondant à l'écart-type
|
|
|
|
|
*/
|
2026-04-01 16:20:41 +02:00
|
|
|
private static Double ecartType(HashSet<Poisson> tablePoisson){
|
2026-04-01 15:05:16 +02:00
|
|
|
|
2026-04-01 16:20:41 +02:00
|
|
|
Double vari = variance(tablePoisson);
|
2026-04-01 15:05:16 +02:00
|
|
|
|
|
|
|
|
return Math.sqrt(vari);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|