Files
ecoparasite-data-analyse/src/ecoparasite/nettoyage/Nettoyage.java

82 lines
2.1 KiB
Java
Raw Normal View History

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);
}
}