Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix



  1. #1
    Anubis

    Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix


    ------

    Bonsoir,
    Je travaille sur un dataset contenant des informations sur des films/ TV-show sur Netflix. Je laisse le lien vers ce dataset:
    netflix_titles (2).rar
    Je veux faire une analyse factorielle sur ces données et tracer un nuage d'individus. J'ai fait plusieurs tentatives et j'ai trouvé des résultats mais je ne sais pas quoi améliorer.
    En fait, le dataset contient des données numériques et non numériques (numerical and categorical variables). J'ai choisi d'enlever plusieurs colonnes et je me suis retrouvé finalement avec trois colonnes: type,rating,listed_in. J'ai One-hot encode la colonne listed_in. J'ai également géré les données manquantes. Bref, le nouveau dataset me parait pret pour y appliquer l'algorithme de MCA. C'est ce que j'ai fait:
    Code:
    mca = prince.MCA(
        n_components=5,
        n_iter=50,
        copy=True,
        check_input=True,
        engine='sklearn',
        random_state=42
    )
    mca = mca.fit(data)
    one_hot = pd.get_dummies(data)
    
    mca_no_one_hot = prince.MCA(one_hot=True)
    mca_no_one_hot = mca_no_one_hot.fit(one_hot)
    mca.eigenvalues_summary
    je trouve le résultat suivant:
    resultats.png
    Ce qui veut dire que les deux premières composantes n'expliquent que 10% de la variance. Une representation plane ne sera pas trop fidèle à la réalité des choses.
    Qu'est ce que vous proposez comme solution ? J'ai essayé de mélanger les variables et d'utiliser la FAMD mais cela ne marche pas. Veuillez m'aider pour améliorer le pourcentage d'explicabilité de la variance.
    Merci d'avance.

    -----

  2. #2
    MissJenny

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    bonjour, il y a combien des variables dans ton jeu de données? S'il y en a beaucoup c'est normal que le premier plan factoriel contienne une faible part de la variance totale.

  3. #3
    Anubis

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    de base il y en a 3 (j'ai choisi d'enlever les autres), j'ai one hot encode les trois variables. Au final j'ai : 8807 lignes × 60 colonnes

  4. #4
    Anubis

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Il faut donc réduire le nombre de variables, est ce que vous connaissez une technique pour faire ça ?

  5. A voir en vidéo sur Futura
  6. #5
    MissJenny

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    qu'appelles-tu "one hot encode". Sur ce forum on parle français en principe. L'ACP sert précisément à réduire le nombre de variables. Avec 60 variables, avoir 10% de part de variances sur les deux premières composantes principales ne me semble pas aberrant.

  7. #6
    Anubis

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Bonjour,
    En fait les termes techniques sont rarement traduits en français, y compris le one hot encoding. J'ai cherché la traduction, c'est l'encodage one hot . En gros cela consiste à passer d'une variable à n états à n variables binaires. (Par exemple: la variable type prend deux valeurs : movie et tv show, on passe à une representation binaire en créant deux variables movie et tv show codées en binaire et on retire la variable type. Cela sert surtout lorsqu une variable ne prend pas des valeurs "atomiques" je dirais, c'est le cas de la variable listed_in )
    Je précise également que je n'ai pas utilisé l'ACP , mais plutot l'ACM (analyse des correspondances multiples) pcq mes variables ne sont pas continues. (C'est du binaire).
    J'ai pris en compte votre remarque, j'ai décidé d'enlever plusieurs colonnes. J'ai fait le choix de prendre les genres de films les plus repondus et de creer une colonne "other" pour les autres. Pour rating je l'ai divisé en deux: "restricted" ou "not restricted" (la variable rating permet de savoir s il y a des restrictions d age sur un film). Je suis passé de 60 colonnes à 7 colonnes. La première composante permet d'expliquer 30% et la deuxième permet d'expliquer 28%. Un total de 58% est expliqué. Beaucoup mieux que le 10% du départ.

  8. #7
    MissJenny

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Tu as donc construit le tableau disjonctif complet à partir de tes variables qualitatives (tu vois, les termes français existent).

    le but d'une analyse factorielle n'est pas nécessairement d'atteindre une part de variance importante. Là tu l'as améliorée mais tu as perdu de l'information en recondant tes variables. Mais si ça te convient pourquoi pas?

  9. #8
    Anubis

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Une faible part de variance ne permettera d'expliquer "fidèlement à la réalité" les differences entre les individus, non?

  10. #9
    pm42

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Citation Envoyé par MissJenny Voir le message
    Tu as donc construit le tableau disjonctif complet à partir de tes variables qualitatives (tu vois, les termes français existent).
    Personne ne les utilise. "Tableau disjonctif" c'est 20000 références sur Google alors que "hot-one encoding en français", c'est 38 millions et cela ne donne "encodage hot-one".
    Refuser dans un domaine technique d'employer la terminologie usitée sous prétexte qu'elle est en anglais n'apporte rien à personne et relève de l'intégrisme.

  11. #10
    MissJenny

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    ok ok, moi je trouve désolant d'utiliser des appellations ésotériques alors que les termes français existent et sont connus depuis des décennnies. Mais c'est ainsi : depuis que les statistiques sont entrées dans le domaine des informaticients, toutes les techniques classiques ont été rebadgées dans ce style...

  12. #11
    pm42

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    Citation Envoyé par MissJenny Voir le message
    ok ok, moi je trouve désolant d'utiliser des appellations ésotériques
    Que tu ne connaisse pas les termes ne les rend pas ésotériques.

    Citation Envoyé par MissJenny Voir le message
    alors que les termes français existent et sont connus depuis des décennnies.
    Sauf qu'il y a une nuance entre le tableau disjonctif complet et le one-hot encode. Tu ne la connais pas donc comme pour la terminologie, tu tiens un discours obsolète.

    Citation Envoyé par MissJenny Voir le message
    Mais c'est ainsi : depuis que les statistiques sont entrées dans le domaine des informaticients, toutes les techniques classiques ont été rebadgées dans ce style...
    Et c'est vrai depuis le début de la science et des maths : au fur et à mesure des évolutions, on appelle les choses différemment.
    Là aussi, les gens qui vivent dans le passé s'en plaignent, les autres apprennent à utiliser les outils modernes plus puissants.

    Parce que faire des stats sans informatique de nos jours, il faut vouloir.

  13. #12
    MissJenny

    Re : Algorithme pour effectuer une analyse factorielle sur un jeu de données de Netflix

    je reviens sur la question du regroupement de modalités rares. C'est vu comme une mauvaise pratique en statistiques parce que non reproductible. Si tu reprends un échantillon ce sera peut-être d'autres modalités qui seront rares. Pour la même raison, on ne doit pas découper une variable quantitative en modalités qui dépendent de la distribution empirique, comme par exemple selon les quartiles. Le découpage (si on y tient) doit être fait sans regarder les données.

Discussions similaires

  1. Aide analyse factorielle
    Par invite92e433cd dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 07/09/2014, 15h28
  2. Analyse factorielle discriminante
    Par inviteac12e430 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 22/08/2011, 13h34
  3. Algorithme d'analyse de données (type LCS)
    Par invite38d980d4 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 04/04/2011, 10h29
  4. Analyse Factorielle des Correspondances
    Par invite330c23ee dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 28/02/2009, 14h58
  5. analyse factorielle.....??
    Par invitec71db7a1 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 02/02/2009, 09h39