Accéder au contenu principal Passer au contenu complémentaire

Modéliser les zones à risques d'accident dans une ville

Dans ce scénario, le composant tKMeansModel est utilisé pour analyser un jeu de données géographiques concernant la destination d'ambulances dans une ville, afin de modéliser les zones comportant plus de risques d'accidents.

Avant de commencer

  • La version de Spark à utiliser est au minimum la 1.4.

  • Les données d'exemples doivent être stockées dans votre système de fichiers Hadoop et vous devez avoir les droits en lecture sur ces données, au minimum.

  • Votre cluster Hadoop doit être correctement installé et être en cours de fonctionnement.

    Si vous n'êtes pas sûr de respecter ces prérequis, contactez l'administrateur de votre système Hadoop.

  • Dans l'onglet Spark Configuration de la vue Run, définissez la connexion à un cluster Spark donné pour le Job complet. De plus, puisque le Job attend ses fichiers .jar dépendants pour l'exécution, vous devez spécifier le répertoire du système de fichiers dans lequel ces fichiers .jar sont transférés afin que Spark puisse accéder à ces fichiers :
    • Yarn mode (Yarn Client ou Yarn Cluster) :
      • Lorsque vous utilisez Google Dataproc, spécifiez un bucket dans le champ Google Storage staging bucket de l'onglet Spark configuration.

      • Lorsque vous utilisez HDInsight, spécifiez le blob à utiliser pour le déploiement du Job, dans la zone Windows Azure Storage configuration de l'onglet Spark configuration.

      • Lorsque vous utilisez Altus, spécifiez le bucket S3 ou le stockage Azure Data Lake Storage (aperçu technique) pour le déploiement du Job, dans l'onglet Spark configuration.
      • Lorsque vous utilisez des distributions sur site (on-premises), utilisez le composant de configuration correspondant au système de fichiers utilisé par votre cluster. Généralement, ce système est HDFS et vous devez utiliser le tHDFSConfiguration.

    • Standalone mode : utilisez le composant de configuration correspondant au système de fichiers que votre cluster utilise, comme le tHDFSConfiguration Apache Spark Batch ou le tS3Configuration Apache Spark Batch.

      Si vous utilisez Databricks sans composant de configuration dans votre Job, vos données métier sont écrites directement dans DBFS (Databricks Filesystem).

Pourquoi et quand exécuter cette tâche

  • Ce scénario s'applique uniquement aux produits Talend avec Big Data nécessitant souscription.

  • Un modèle comme celui-ci peut être employé pour permettre de déterminer le meilleur emplacement pour la construction d'hôpitaux.
  • L'échantillon de données se compose de paires de latitudes et longitudes. Ces données ont été générées aléatoirement et automatiquement à des fins de démonstration uniquement et ne reflètent pas la situation réelle de ces zones.
  • Les composant à utiliser sont les suivants :
    • un tFileInputDelimited : qui charge les données d'exemple dans le flux de données du Job ;

    • un tReplicate : qui réplique les données d'exemple et met en cache la réplication ;

    • un tKMeansModel : qui analyse les données pour l'apprentissage du modèle et écrit le modèle dans HDFS ;

    • un tModelEncoder : qui pré-traite les données afin de préparer des vecteurs de caractéristiques à utiliser par le tKMeansModel ;

    • un tPredict : qui applique le modèle KMeans sur la réplication des données d'exemple. Lors d'une utilisation réelle, ces données doivent être un jeu de données de référence, afin de tester la précision du modèle ;

    • un tFileOutputDelimited : qui écrit le résultat de la prédiction dans HDFS.

    • tHDFSConfiguration : ce composant est utilisé par Spark pour se connecter au système HDFS dans lequel les fichiers Jar dépendant du Job sont transférés.

Trier le flux de données du Job KMeans

Procédure

  1. Dans la perspective Integration du Studio Talend, créez un Job vide depuis le nœud Job Designs de la vue Repository.
  2. Dans l'espace de modélisation graphique, saisissez le nom du composant à utiliser et sélectionnez-le dans la liste qui s'affiche.
  3. Reliez le tFileInputDelimited au tReplicate à l'aide d'un lien Row > Main.
  4. Répétez l'opération afin de relier le tReplicate au tModelEncoder et le tModelEncoder au tKMeansModel.
  5. Reliez le tReplicate au tPredict et le tPredict au tFileOutputDelimited.
  6. Laissez le tHDFSConfiguration tel qu'il est.

Configurer la connexion au système de fichiers utilisé par Spark

Consultez la procédure dans le Guide de prise en main.

Lire et mettre en cache les données d'exemple

Procédure

  1. Double-cliquez sur le premier tFileInputInput pour ouvrir sa vue Component.
  2. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma en ajoutant deux colonnes latitude et longitude de type Double.
  3. Cliquez sur OK pour valider ces modifications et acceptez la propagation proposée par la boîte de dialogue qui s'ouvre.
  4. Cochez la case Define a storage configuration component et sélectionnez le composant tHDFSConfiguration à utiliser.
    Le tFileInputDelimited utilise cette configuration pour accéder aux données d'exemple à utiliser comme jeu d'apprentissage.
  5. Dans le champ Folder/File, saisissez le chemin du répertoire où stocker le jeu d'apprentissage.
  6. Double-cliquez sur le composant tReplicate pour ouvrir sa vue Component.
  7. Cochez la case Cache replicated RDD et, dans la liste Storage level, sélectionnez Memory only. Ainsi, les données d'exemple sont répliquées et stockées dans la mémoire pour utilisation en tant que jeu de test.

Préparer les caractéristiques pour KMeans

Procédure

  1. Double-cliquez sur le composant tModelEncoder pour ouvrir sa vue Component.
  2. Cliquez sur le bouton [...] à côté du champ Edit schema et, du côté du tModelEncoder, dans la fenêtre de schéma, définissez le schéma en ajoutant une colonne nommée map, de type Vector.
  3. Cliquez sur OK pour valider ces modifications et acceptez la propagation proposée par la boîte de dialogue qui s'ouvre.
  4. Dans la table Transformations, ajoutez une ligne en cliquant sur le bouton [+] et en procédant comme suit :
    1. Dans la colonne Output column, sélectionnez la colonne contenant les caractéristiques. Dans ce scénario, la colonne est map.
    2. Dans la colonne Transformation, sélectionnez l'algorithme à utiliser pour la transformation. Dans ce scénario, sélectionnez Vector assembler.
    3. Dans la colonne Parameters, saisissez les paramètres à personnaliser pour utilisation dans l'algorithme Vector assembler. Dans ce scénario, saisissez inputCols=latitude,longitude.
    Dans cette transformation, le tModelEncoder combine tous les vecteurs de caractéristiques en une seule colonne de caractéristiques.
  5. Double-cliquez sur le tKMeansModel pour ouvrir sa vue Component.
  6. Cochez la case Define a storage configuration component et sélectionnez le composant tHDFSConfiguration à utiliser.
  7. Dans la liste Vector to process, sélectionnez la colonne fournissant les vecteurs de caractéristiques à analyser. Dans ce scénario, sélectionnez map, qui combine toutes les caractéristiques.
  8. Cochez la case Save the model on file system et, dans le champ HDFS folder qui s'affiche, saisissez le répertoire à utiliser pour stocker le modèle généré.
  9. Dans le champ Number of cluster, saisissez le nombre d'arbres de décision que vous souhaitez que tKMeans construise. Vous devez essayer différents nombres pour exécuter le Job, afin de créer plusieurs fois le modèle de clustering. Après comparaison des résultats d'évaluation de chaque modèle créé à chaque exécution, vous pouvez décider du nombre à utiliser. Par exemple, saisissez 6.
    Vous devez écrire vous-même le code d'évaluation.
  10. Dans la liste Initialization function, sélectionnez Random. Généralement, ce mode est utilisé pour les jeux de données simples.
  11. Laissez les autres champs tels qu'ils sont.

Tester le modèle KMeans

Procédure

  1. Double-cliquez sur le tPredict pour ouvrir sa vue Component.
  2. Cochez la case Define a storage configuration component et sélectionnez le composant tHDFSConfiguration à utiliser.
  3. Dans la liste Model type, sélectionnez Kmeans model.
  4. Sélectionnez le bouton radio Model on filesystem et saisissez le chemin d'accès au répertoire dans lequel le modèle KMeans est stocké.
    Dans ce scénario, le tPredict contient une colonne en lecture seule nommée label, dans laquelle le modèle fournit les libellés des clusters.
  5. Double-cliquez sur le tFileOutputDelimited afin d'ouvrir sa vue Component.
  6. Cochez la case Define a storage configuration component et sélectionnez le composant tHDFSConfiguration à utiliser.
  7. Dans le champ Folder, parcourez jusqu'à l'emplacement de HDFS dans lequel vous souhaitez stocker les résultats des prédictions.
  8. Dans la liste Action, sélectionnez Overwrite. Si le dossier cible n'existe pas, sélectionnez Create.
  9. Cochez la case Merge result to single file et la case Remove source dir.
  10. Dans le champ Merge file path, parcourez jusqu'à l'emplacement de HDFS dans lequel vous souhaitez stocker les résultats fusionnés des prédictions.

Sélectionner le mode Spark

Consultez la procédure dans le Guide de prise en main.

Exécuter le Job

Procédure

  1. Appuyez sur les touches Ctrl+S pour enregistrer le Job.
  2. Appuyez sur F6 pour l'exécuter.
    Les résultats fusionnés des prédictions sont stockés dans HDFS et vous pouvez évaluer ces résultats à l'aide de votre processus d'évaluation. Exécutez le Job plusieurs fois encore, avec différents paramètres KMeans, afin d'obtenir le meilleur modèle possible.

Résultats

L'image suivante montre un exemple des clusters prédits. Cette visualisation est produite à l'aide d'un script Python. Vous pouvez télécharger ce script ici et penser à personnaliser le chemin dans le script pour accéder aux résultats de prédiction, sur votre machine.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.