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

Weka et MOA Discussion :

Algorithme k-means avec weka


Sujet :

Weka et MOA

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    L3 informatique
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : L3 informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 26
    Points
    26
    Par défaut Algorithme k-means avec weka
    Bonjour,

    je suis actuellement en train de développer une application pour android qui nécessite l'utilisation de l'algorithme k-mean. Mais lorsque j'ouvre le fragment contenant l'algorithme, j'ai un NullPointerException à la ligne ou il devrait s’exécuter. Je précise que sans cette ligne de code, le fragment s'ouvre sans soucis.

    Voici la classe du fragment qui pour l'instant ne contient que la création de ce dernier :

    Code java : 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
     
    package info.androidhive.slidingmenu;
     
    import android.app.Fragment;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
     
    import info.androidhive.slidingmenu.datamining.Cluster;
    import weka.clusterers.SimpleKMeans;
     
    /**
     * Created by Florian on 02/02/2016.
     */
     
    public class ActivitiesFragment extends Fragment {
     
        public Cluster cl;
     
    	public ActivitiesFragment(){}
     
    	@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_activities, container, false);
            Log.v("Test cluster file",cl.clusterKMean("letter.txt",5,26).toString());
            return rootView;
        }
    }

    et voici ma classe Cluster :
    Code java : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    package info.androidhive.slidingmenu.datamining;
     
    import android.util.Log;
     
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
     
    import weka.clusterers.SimpleKMeans;
    import weka.core.Instances;
     
    /**
     * Created by Florian on 02/02/2016.
     */
     
    public class Cluster {
     
        private static String TAG = Cluster.class.getName();
     
        public SimpleKMeans clusterKMean(String dataFile, int seed, int clusters){
            SimpleKMeans kmeans;
            BufferedReader input = null;
            Instances data = null;
            try{
                input = new BufferedReader(new FileReader(dataFile));
            }catch (FileNotFoundException ex){
                Log.d(TAG,"Error, file not found");
                ex.printStackTrace();
            }
            kmeans = new SimpleKMeans();
            kmeans.setSeed(seed);
            try {
                kmeans.setNumClusters(clusters);
            } catch (Exception e) {
                Log.e(TAG, "error during creation of " + clusters + " clusters");
                e.printStackTrace();
            }
            try {
                data = new Instances(input);
            } catch (IOException e) {
                Log.e(TAG,"Error during instances creation");
                e.printStackTrace();
            }
            try {
                kmeans.buildClusterer(data);
            } catch (Exception e) {
                Log.e(TAG,"Error during clustering data");
                e.printStackTrace();
            }
            return kmeans;
        }
     
        public int getNumberCluster(SimpleKMeans kmeans) throws Exception {
            return kmeans.getAssignments().length;
        }
    }

    Malheureusement, je n'ai pas d'autre détail sur l'erreur à part que l'objet SimpleKMeans crée reste à priori à null mais je ne sais pas pourquoi. Merci à ceux qui m'aideront.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    L3 informatique
    Inscrit en
    Mars 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : L3 informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 21
    Points : 26
    Points
    26
    Par défaut
    Bonsoir,

    n'ayant pas de retour sur cette question est ne réussissant pas à éviter l'application de crasher à cause d'un NullPointerException qui se passe lors de l'appel à la méthode pour créer les cluster, je viens ici pour mieux détailler mon problème en espérant que l'on puisse m'aider.

    L'algorithme k-means, ou algorithme des k plus proches voisins et utilisé pour effectuer du data-mining. En effet, pour efectuer ce data-mining, il faut d'abord regrouper les données similaires ensemble grâce à un algorithme de clustering, comme celui des k-means. Ici, le but est de trier des activités dont les données sont reçues par une montre connecté au téléphone, La plupart des données étant les variances de l'accéléromètre. J'ai un fichier contenant plus de 70000 activités déjà définies et ce sont ces activités là que je veux trier avec mon algorithme (activités physiques bien entendu). Mais je n'y arrive pas car je ne comprend pas d'où vient mon erreur dans mon code (pourquoi ce nullPointerException).

    Merci à ceux qui essaieront de m'aider.

    Cordialement,
    papabury59

Discussions similaires

  1. Datamining avec weka
    Par meriyem dans le forum Weka et MOA
    Réponses: 6
    Dernier message: 16/10/2010, 16h45
  2. hybridation de k-means avec les méta-heuristiques
    Par takfa2008 dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 28/03/2009, 11h27
  3. préparation des données avec weka
    Par rvfranck dans le forum Weka et MOA
    Réponses: 8
    Dernier message: 23/03/2008, 17h06
  4. Algorithme de recherche avec retour de propositions.
    Par zeavan dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/11/2007, 12h48

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