IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

IA pour trouver la meilleure combinaison à partir de données


Sujet :

Algorithmes et structures de données

  1. #1
    Inactif  
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2018
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 71
    Points : 0
    Points
    0
    Par défaut IA pour trouver la meilleure combinaison à partir de données
    Bonjour, je vous expose mon probleme.

    j'ai posté ce message dans le forum python, mais on m'a conseiller d'aller plutôt d'abord sur ce forum afin de m'orienter vers un algo pouvant répondre à mon probleme

    https://www.developpez.net/forums/d1.../#post10149875

    J'ai des données sous forme d'une liste 2D contenant des données de chauffage de maisons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    """
        0 fenetre ouverte
        1 fenetre fermer
     
        2 chauffage eau
        3 chauffage solaire
        4 chauffage bois
        5 chauffage fuel
     
        6 mauvaise isolation
        7 bonne isolation
        """
     
        inputs = array([[0, 2, 6], [1, 4, 6], [1, 5, 7], [0, 3, 7], [0, 2], [7]]) # combinaison des elements
        outputs = array([[8, 10, 11, 9, 7, 11]]).T # temperature de la maison en combinant les resultats
        question=array([0, 4, 7]) # quelle temperature donne la combinaison des elements 0,4 et 7 ?

    input c'est les élemnts qui compose la maison, output c'est la température qu'il fait dans la maison
    par exemple [0, 2, 6] donne 8° ainsi la fenêtre ouverte (0) le chauffage eau (2) et la mauvaise isolation (6) donne une température de 8 degrée
    autre exemple : [0, 2] donne 7°, une maison qui a la fenêtre ouverte (0) et le chauffage eau (2) a donner a été enregistré avec une température de 7°, vous remmarquer ici qu'il manque la 3ieme information : bonne ou mauvaise isolation

    voila mon probleme, je cherche a partir de ces données (certaines sont "incomplète"), a trouver la meilleur combinaison possible pour obtenir la température maximal

    j'ai regardé du coté des réseau de neurone mais ils ont 2 problèmes : la première c'est qu'il ne semble pas possible de les utilisé si mes donnée n'ont pas la même longueur d'input (mes données incomplète ou il manque 1 ou 2 informations)

    et 2ieme probleme, le réseau de neurone finalement ne répond pas a mon probleme, il vas essayer de prédire la température qu'il peut faire dans la maison en combinant les paramètres mais ne vas pas chercher a trouver la meilleur combinaison possible.

    voila, je cherche donc en python une solution pour résoudre mon probleme

    autre probleme aussi avec le réseau de neurone, c'est que l'entrainement des neurones ne semble pas pouvoir etre parallélisable, concrètement moi j'ai pas 3 entrées comme dans l'exemple que je donne, mais plus de 300000, j'aimerais une solution parallélisable.

    je vous demande évidement pas de coder sa à ma place, mais de m'orienter vers une solution concrète (avec un exemple de code) qui répondrait à mes contraintes.

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Je n'ai rien compris à la question.
    Dans ton exemple, la température maximale est 11 car c'est le maximum du tableau "outputs".
    Cela correspond à [1, 5, 7] et [7].
    Fin du jeu.
    Pourquoi ceci ne répond-il pas à ta question ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Inactif  
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2018
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 71
    Points : 0
    Points
    0
    Par défaut
    A partir des données que j'ai, je voudrais arriver a prédire d'autres combinaisons de paramètres que j'ai pas.

    si tu regarde dans mon input, peut être que si je fais :
    fenetre fermer
    chauffage eau
    bonne isolation

    donc [1,2,7] j'aurais peut être plus de 11 en température.

    c'est pour cela que j'ai penser au début à l'utilisation d'un réseau de neurone.

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Le réseau de neurones répond tout à fait à ta problématique.
    Tu vas l'entrainer avec les entrées connues et les températures associées.
    Après l'entrainement, tu pourras soumettre des entrées selon une combinaison non entrainée et le réseau te donnera la température.
    Par contre, il te faut un nombre suffisant d'exemples pour l'apprentissage. Comment savoir ? Si le réseau te répond trop souvent n'importe quoi, alors tu dois augmenter les exemples pour l'apprentissage.


    Ok, je viens de saisir ta problématique. Pour un set d'entrées, connaissant la température, tu cherches à modifier les entrées pour augmenter la température. C'est ça ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Inactif  
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2018
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 71
    Points : 0
    Points
    0
    Par défaut
    Oui exacte !
    mais se doit être de la simulation, a partir des données que j'ai, le programme dois pouvoir essayer de prédire la température qui fera si je mets tels ou tels paramètres

    évidement j'ai un plus que 3 données (d’où mon intérêt pour le réseau de neurone)
    mais le réseau de neurone vas juste prédire, il vas pas chercher a trouver la combinaison

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par vayel Voir le message
    mais se doit être de la simulation, a partir des données que j'ai, le programme dois pouvoir essayer de prédire la température qui fera si je mets tels ou tels paramètres
    euh... tu changes de problématique là...
    Finalement, tu décris deux problèmes :
    1. connaitre la température selon des paramètres : un réseau de neurones est fait pour ça. Tu l'entraînes avec des entrées/sorties connues puis tu lui soumets un nouveau set d'entrées => il donne la température s'il est correctement entrainé
    2. pour un set d'entrées, apporter des modifications pour améliorer la température : un algorithme génétique est fait pour ça. Par contre, il faut un bon simulateur : ce sera ton réseau de neurones déjà entrainé.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    un réseau de neurones est fait pour ça.
    Certes. Les questions sont:
    • Comment gérer les données incomplètes ?
      Une entrée peut être quelconque sur un paramètre. Comment la/le gérer ?
    • Est-ce qu'un réseau de neurones aboutit à autre chose qu'un barycentre à poids positifs ?
      Autrement dit, si on a des données produisant une température entre 3° et 11°, pourra-t-il sortir un résultat de 15°, ou seulement des températures entre 3° et 11° ?


    j'aimerais une solution parallélisable.
    C'est à toi de coder la parallélisation.

    mais plus de 300000
    C'est le nombre de variables ou le nombre de mesures ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Inactif  
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2018
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 71
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    euh... tu changes de problématique là...
    Finalement, tu décris deux problèmes :
    1. connaitre la température selon des paramètres : un réseau de neurones est fait pour ça. Tu l'entraînes avec des entrées/sorties connues puis tu lui soumets un nouveau set d'entrées => il donne la température s'il est correctement entrainé
    2. pour un set d'entrées, apporter des modifications pour améliorer la température : un algorithme génétique est fait pour ça. Par contre, il faut un bon simulateur : ce sera ton réseau de neurones déjà entrainé.
    non je me suis mùal exprimé, je veut faire ce que tu décris dans ton 1er point

    [*]connaitre la température selon des paramètres : un réseau de neurones est fait pour ça. Tu l'entraînes avec des entrées/sorties connues puis tu lui soumets un nouveau set d'entrées => il donne la température s'il est correctement entrainé

    du coup je vais essayer d'aller voir du coté de tensorflow en python.
    j'ai fais quelque recherche et je pense m’orienter vers un RNN

  9. #9
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut Un algorithme ne résoudra jamais un problème mal posé.
    L'informatique n'est pas de ma magie. Croire que l'on peut montrer et exploités des causalités simplement en "analysant" beaucoup de données de mauvaise qualité ne peut mener qu'à de mauvais résultats, voire catastrophiques.
    En plus dans ce cas, les données sont déjà absurdes : Un chauffage peut être au fuel et à l'eau, rarement à l'eau seulement. De même une maison a plusieurs fenêtres et l'effet de l'ouverture d'une fenêtre dépend de la température extérieure ...
    Un algorithme ne résoudra jamais un problème mal posé.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

Discussions similaires

  1. ia pour trouver la meilleur combinaison a parti de données
    Par vayel dans le forum Général Python
    Réponses: 2
    Dernier message: 09/04/2018, 19h02
  2. Réponses: 1
    Dernier message: 02/03/2017, 14h00
  3. trouver les meilleures combinaisons
    Par Emma95 dans le forum Excel
    Réponses: 15
    Dernier message: 15/04/2010, 14h20
  4. quel programme pour dessiner un graphe a partir de données
    Par Tex-Twil dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 10/12/2007, 12h47
  5. Réponses: 35
    Dernier message: 16/05/2006, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo