<jupyter_start><jupyter_text>6. La classification hiérarchique ascendante et le K-Means selon le taux d'activité<jupyter_code>import pandas as pd
from sklearn.preprocessing import StandardScaler
import numpy as np
from matplotlib import pyplot as plt
from sklearn.decomposition import PCA
import seaborn as sns
data_communes = pd.read_excel(".../Inegalites2018_IDFCommunes.xlsx")
data_communes
#Copier le DataSet
communes_socioeco = data_communes.copy()

#Accéder aux colonnes du DataSet
communes_socioeco.columns
#Les librairies pour le clustering
import scipy.cluster.hierarchy as sch
from sklearn.cluster import KMeans
activite = communes_socioeco["Taux d'emploi 15-64 ans"]
data_actv = pd.DataFrame({"Taux d'emploi 15-64 ans":activite}).set_index(communes_socioeco['Code géographique'])
data_actv
#Convertir la variable "Taux d'emploi" en vecteur
emploi = np.array(activite)
emploi=emploi.reshape(-1,1)
emploi
#Mise en place de la classification hiérarchique ascendante du niveau d'immigration
Z = sch.linkage(emploi,method='ward',metric='euclidean')

#Afficher le dendrogramme
plt.figure(figsize=(15,15))
plt.title("Dendogramme de la Classification hiérarchique des communes d'Ile de France selon le niveau d'activité")
dendrogram = sch.dendrogram(sch.linkage(emploi, method  = "ward"))
plt.show()
#Courbe de l'inertie intra-cluster pour le K-Means
inertie_intra = []
for i in range(1,20):
    kmeans_pca = KMeans(n_clusters = i, init='k-means++',random_state=42)
    kmeans_pca.fit(emploi)
    inertie_intra.append(kmeans_pca.inertia_)
    
plt.figure(figsize=(10,8))
plt.plot(range(1,20),inertie_intra, marker='o',linestyle='--')
plt.xlabel('Nombre de Clusters')
plt.ylabel('Inertie intra-cluster')
plt.title('K-Means par la méthode des centres mobiles')<jupyter_output><empty_output><jupyter_text>En utilisant la "méthode du coude", nous devons prendre 3 clusters selon le niveau d'activité : **passable, bon, très bon**<jupyter_code>#Nuage des individus avec les 3 strates
kmeans_pca_act = KMeans(n_clusters=3,init='k-means++',random_state=42)
kmeans_pca_act.fit(emploi)
#Créer les nouvelles colonnes dans le DataFrame
data_actv['Numéro de cluster']=kmeans_pca_act.labels_
data_actv
#Traduire les numéros de clusters
data_actv["Niveau d'activité"]=data_actv["Numéro de cluster"].map({0:'Très satisfaisant',2:'Satisfaisant',1:'Passable'})
data_actv
fig, axes = plt.subplots(figsize=(8,8))
sns.scatterplot(data_actv.iloc[:,0],data_actv.iloc[:,0], hue = data_actv["Niveau d'activité"], palette = ['r','b','y'])
plt.title("Nuage des communes selon le niveau d'activité à une dimension")
plt.xlabel("Taux d'emploi")
plt.ylabel("Taux d'emploi")
plt.show()
data_actv.to_excel('.../ActivitéCommunes2018IDF.xlsx')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12176449143273788, 'fraction_numerical': 0.016769959897921984, 'mean_word_length': 7.365853658536586, 'pattern_counts': {'":': 1, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '504133', 'license': 'Apache-2.0', 'n_tokens_mistral': 1085, 'n_tokens_neox': 1045, 'n_words': 230, 'path': 'Emploi_2018Communes.ipynb', 'repo_name': 'Muyassar95/ConstrastesEconomiques_IledeFrance2018', 'size': '2743'}