Exemplo n.º 1
0
    def clustering(self, nb_clusters):
        """Cette méthode utilise la méthode des Kmeans pour permettre à la fonction de créer des classes entre les pays.
		Elle prend en argument le nombre de classes que l'utilisateur veut former.
		Cette méthode renvoie un data frame où chaque colonne correspond à chaque classe 
		avec le nom des pays dans celles ci."""

        donnees = Data_Base().donnees

        criteres = [
            'superficie', 'population', 'croissance démographique',
            'inflation', 'dette', 'chômage', 'dépenses santé',
            'dépenses éducation', 'dépenses militaires'
        ]

        valeurs_pays = []
        liste_des_pays_comptabilises = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if True not in [
                        self.numerisation_critere(pays, critere) == 'NA'
                        for critere in criteres
                ]:
                    liste_des_pays_comptabilises.append(
                        self.simplification(pays.get_name()))
                    valeurs_pays.append([
                        self.numerisation_critere(pays, critere)
                        for critere in criteres
                    ])

        clf = KMeans(n_clusters=nb_clusters)
        clf.fit(np.array(valeurs_pays))
        labels = clf.labels_

        pays_dans_clusters = [[] for i in range(nb_clusters)]

        for i in range(len(labels)):
            for cl in range(nb_clusters):
                if labels[i] == cl:
                    pays_dans_clusters[cl].append(
                        liste_des_pays_comptabilises[i])

        for cluster in pays_dans_clusters:
            while len(cluster) < max([len(cl) for cl in pays_dans_clusters]):
                cluster.append('')

        liste_des_clusters = [
            'Cluster {}'.format(i + 1) for i in range(nb_clusters)
        ]

        return pandas.DataFrame(pays_dans_clusters, index=liste_des_clusters).T
Exemplo n.º 2
0
    def clustering(self, nb_clusters):
        donnees = Data_Base().donnees

        criteres = [
            'superficie', 'population', 'croissance démographique',
            'inflation', 'dette', 'chômage', 'dépenses santé',
            'dépenses éducation', 'dépenses militaires'
        ]

        valeurs_pays = []
        liste_des_pays_comptabilises = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if True not in [
                        self.numerisation_critere(pays, critere) == 'NA'
                        for critere in criteres
                ]:
                    liste_des_pays_comptabilises.append(
                        self.simplification(pays.get_name()))
                    valeurs_pays.append([
                        self.numerisation_critere(pays, critere)
                        for critere in criteres
                    ])

        clf = KMeans(n_clusters=nb_clusters)
        clf.fit(np.array(valeurs_pays))
        labels = clf.labels_

        pays_dans_clusters = [[] for i in range(nb_clusters)]

        for i in range(len(labels)):
            for cl in range(nb_clusters):
                if labels[i] == cl:
                    pays_dans_clusters[cl].append(
                        liste_des_pays_comptabilises[i])

        for cluster in pays_dans_clusters:
            while len(cluster) < max([len(cl) for cl in pays_dans_clusters]):
                cluster.append('')

        liste_des_clusters = [
            'Cluster {}'.format(i + 1) for i in range(nb_clusters)
        ]

        return pandas.DataFrame(pays_dans_clusters, index=liste_des_clusters).T
Exemplo n.º 3
0
	def liste_triee_selon_critere(self, donnees, critere):
		liste = []
		for num_pays in range(len(donnees)):
			pays = Pays(num_pays, donnees)
			if pays.get_name() and self.numerisation_critere(pays, critere) != 'NA':
				liste.append((self.numerisation_critere(pays, critere), pays))
		liste.sort()
		return liste
Exemplo n.º 4
0
	def liste_triee_selon_critere(self, donnees, critere):
		"""Cette méthode a besoin d'un jeu de données et d'un critère. Elle renvoie une liste triée selon
		un critère choisi par le data scientist."""
		
		liste = []
		for num_pays in range(len(donnees)):
			pays = Pays(num_pays, donnees)
			if pays.get_name() and self.numerisation_critere(pays, critere) != 'NA':
				liste.append((self.numerisation_critere(pays, critere), pays))
		liste.sort()
		return liste
Exemplo n.º 5
0
    def boites_a_moustache(self):
        """Cette méthode crée une boîte à moustache sur les différentes classes d'ages."""

        donnees = Data_Base().donnees

        classe_age_0 = []
        classe_age_1 = []
        classe_age_2 = []
        classe_age_3 = []
        classe_age_4 = []

        for num_pays in range(len(donnees)):
            pays = Pays(num_pays, donnees)
            if pays.get_name():
                if self.numerisation_critere(pays, '0-14') != 'NA':
                    classe_age_0.append(self.numerisation_critere(
                        pays, '0-14'))
                if self.numerisation_critere(pays, '15-24') != 'NA':
                    classe_age_1.append(
                        self.numerisation_critere(pays, '15-24'))
                if self.numerisation_critere(pays, '25-54') != 'NA':
                    classe_age_2.append(
                        self.numerisation_critere(pays, '25-54'))
                if self.numerisation_critere(pays, '55-64') != 'NA':
                    classe_age_3.append(
                        self.numerisation_critere(pays, '55-64'))
                if self.numerisation_critere(pays, '>=65') != 'NA':
                    classe_age_4.append(self.numerisation_critere(
                        pays, '>=65'))

        plt.title(
            "Box-plots correspondants aux répartitions des valeurs des 5 classes d’âge pour tous les pays."
        )
        plt.boxplot([
            classe_age_0, classe_age_1, classe_age_2, classe_age_3,
            classe_age_4
        ],
                    labels=[
                        "0-14 years", "15-24 years", "25-54 years",
                        "55-64 years", ">=65"
                    ])
        plt.show()