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

Calcul scientifique Python Discussion :

ANALYSE EN COMPOSANTES PRINCIPALES


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ergonome
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut ANALYSE EN COMPOSANTES PRINCIPALES
    Bonjour

    je suis débutante en python et aussi c'est la premiere fois que je fais l'acp nous n'avons pas fais ça en cours je veux réaliser une acp sur une base de données mais je comprend pas comment faire je sais que je dois utiliser la bibliothéque scikit-learn mais le soucis que je comprend pas comment je peux choisir le nombre de composantes

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 766
    Par défaut
    Salut,

    Il faut commencer par lire la documentation, le guide utilisateur et les exemples associés.
    Normalement, les exemples sont orientés "cas d'utilisation": vous en cherchez un qui est similaire à vos traitements et vous essayez de l'adapter.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Femme Profil pro
    Ergonome
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Merci pour les documents moi je cherche à avoir la représentation des variables sur un plan est ce que vous avez un exemple ??

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    Je pense qu'avant de se lancer dans l'utilisation de scikit learn, un tuto simple à reproduire serait pas mal. Je trouve celui-ci assez clair. En utilisant des outils simples de numpy on peut reproduire entièrement le tuto pas à pas. Puis le refaire en utilisant directement sklearn.decomposition.PCA. De cette façon on comprend mieux ce que fait cette grosse boite noire et plus important encore on est sûr de bien l'utiliser.

    Je ne sais pas vraiment comment choisir le nombre de composantes, si ce n'est en faisant des tests. Si la quantité de données est conséquente, on peut toujours faire l'analyse sur un nombre restreint. Dans le tuto en lien, on voit que les composantes sont plus ou moins importantes en fonction de leur eigen value. Dans le cas de 5 variables, imaginons que 3 ont une valeur proche de 1 et 2 proches de 0.05 (nombres au hasard), alors il est assez simple de supposer que les 3 plus fortes composantes suffiront.. Un test sera toujours nécessaire pour valider ou non l'hypothèse.

    J

  5. #5
    Membre confirmé
    Femme Profil pro
    Ergonome
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    Merci pour les information je vais suivre ce que vous me dites

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 766
    Par défaut
    Citation Envoyé par Julien N Voir le message
    Je ne sais pas vraiment comment choisir le nombre de composantes, si ce n'est en faisant des tests. Si la quantité de données est conséquente, on peut toujours faire l'analyse sur un nombre restreint. Dans le tuto en lien, on voit que les composantes sont plus ou moins importantes en fonction de leur eigen value.
    Ca permet juste de construire un modèle "simple" à partir d'un jeu de données bien choisies.
    La difficulté étant que "bien choisir" les données et savoir à quoi doit ressembler le modèle demande un savoir faire "métier". La plupart des exemples sont assez bons pour montrer comment utiliser l'outil numérique mais très superficiels sur la partie "métier": si on a un problème qui sort des exemples données, on va ramer comme une bête pour produire des résultats possiblement dangereux (un modèle qui marche sans correspondre aux réalités).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre confirmé
    Femme Profil pro
    Ergonome
    Inscrit en
    Février 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ergonome

    Informations forums :
    Inscription : Février 2016
    Messages : 53
    Par défaut
    J'ai lu la documentation que vous m'avez donné j'ai réussit à écrire ce petite code est ce que j'ai bien fais ?

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #####        importation des bibliothéques          #####
    import pickle
    import numpy as np 
    import matplotlib.pyplot as plt
    from scipy import stats
    import os
    os.sys.path.append('/home1/homedir6/perso/oarcher/prog/python')
    from utils.struct import filter_data
    import seaborn as sns 
    sns.set(context="paper",font="monospace")
    import pdb
    from sklearn.preprocessing import StandardScaler
    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2
    from sklearn.feature_selection import VarianceThreshold
    from sklearn.decomposition import PCA
     
     
     
    #####       importation de données   #####
     
    data=pickle.load(open("test.pkl","rb"))
     
    mesures_names_sec = [ 'Var1','Var2','Var3']
     
    l=np.zeros((len(data['Var1']),len(mesures_names_sec)))
    for i in range(len(mesures_names_sec)):
        for j in range(len(data['Var1'])):
           l[j][i]= data[mesures_names_sec[i]][j]
     
     
    l_new=np.zeros((len(data['Var1']),len(mesures_names_sec)))
    for i in range(len(mesures_names_sec)):
        m=np.mean(data[mesures_names_sec[i]],0)
        v=np.std(data[mesures_names_sec[i]],0)
        for j in range(len(data['Var1'])):
           l_new[j][i]= ((data[mesures_names_sec[i]][j]-m)/v)
     
     
    pca = PCA(n_components=None)
    l_r=pca.fit(l_new)
    print (pca.explained_variance_ratio_)
    plt.plot(pca.explained_variance_ratio_)
    plt.show()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Analyse en composantes principales en Java
    Par jmini dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2014, 17h03
  2. analyse par composante principale
    Par takfa2008 dans le forum Méthodes exploratoires
    Réponses: 4
    Dernier message: 30/03/2009, 13h58
  3. [Débutante] Analyse en composantes principales
    Par cixidetroy dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/06/2008, 14h33
  4. Analyse en composantes principales
    Par afnane dans le forum Méthodes exploratoires
    Réponses: 1
    Dernier message: 12/06/2008, 15h25
  5. Analyse en composante principale
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/03/2007, 13h26

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