Avant toute chose, sachez que cette importation nécessite quelques connaissances en Java ou en langage orienté objet. Cependant, si vous ne les avez pas, ce tutoriel devrait vous fournir toutes les étapes nécessaires à l'importation de nouvelles données.
Avant de commencer, sachez que cette importation nécessite certaines connaissances en Java ou en programmation orientée objet. Toutefois, si vous n'êtes pas familier avec ces concepts, ce tutoriel vous guidera à travers toutes les étapes nécessaires pour importer de nouvelles données.
Il est important que vous disposiez d'une base de données sous la forme d'un fichier CSV, avec les noms des colonnes situés sur la première ligne. Il est également essentiel que vous ayez en tête les données que vous souhaitez étudier. Cela ne dépend pas du logiciel, mais bien de la manière dont vous allez importer les données.
Assurez-vous que votre base de données est sous forme de fichier CSV, avec les noms des colonnes sur la première ligne. Il est également essentiel de savoir quelles données vous souhaitez analyser. Cette étape est indépendante du logiciel que vous utilisez, et dépend plutôt de la manière dont vous allez importer vos données.
___
---
### Procédure
Ce modèle de classification permet d'importer une base de données. Pour cela, il vous suffit d'ajouter au modèle, dans le dossier `src/main/java/fr.univlille.sae.classification/model`, une nouvelle classe avec le nom que vous souhaitez attribuer à votre jeu de données.
Ce modèle de classification permet d’importer une base de données. Pour ce faire, il vous suffit d'ajouter au modèle, dans le dossier `src/main/java/fr.univlille.sae.classification/model`, une nouvelle classe portant le nom de votre choix, correspondant à votre jeu de données.
Une fois cela fait, il vous faudra implémenter les différentes méthodes présentes dans l'interface `LoadableData`. Dans votre nouvelle classe, vous devez tout d'abord créer les attributs correspondant aux différentes colonnes de votre CSV. Par exemple :
Une fois cela fait, vous devrez implémenter les différentes méthodes présentes dans l'interface `LoadableData`. Dans votre nouvelle classe, commencez par définir les attributs correspondant aux colonnes de votre fichier CSV. Par exemple :
```java
@CsvBindByName(column="column1")
...
...
@@ -25,9 +25,9 @@ private boolean column3;
privatedoublecolumn4;
```
Faites cela pour toutes les colonnes de votre CSV. Vous aurez probablement remarqué qu'il faut aussi leur attribuer des types. À vous de les définir, en veillant à différencier les nombres et les chaînes de caractères.
Réitérez cette opération pour toutes les colonnes de votre CSV. Vous remarquerez qu’il est nécessaire d’attribuer un type à chaque attribut. Assurez-vous de bien distinguer les types numériques (entiers, réels) des chaînes de caractères.
Il faudra ensuite créer les différents constructeurs pour votre classe. Commencez par en créer un vide, sans lequel l'importation échouera :
Ensuite, créez les différents constructeurs pour votre classe. Commencez par un constructeur vide, indispensable au bon fonctionnement de l’importation :
```java
public[NomDeLaClasse](){
...
...
@@ -35,7 +35,7 @@ public [NomDeLaClasse]() {
}
```
Ensuite, créez un constructeur qui prend en paramètre tous les attributs que vous avez définis précédemment :
Puis, créez un constructeur prenant en paramètre tous les attributs définis précédemment :
@@ -47,7 +47,7 @@ public [NomDeLaClasse](String column1, int column2, boolean column3, double colu
}
```
Enfin, créez un autre constructeur qui prend en paramètre une liste d'objets. Chaque objet de cette liste doit être "casté" avec le type correspondant à chaque attribut, en commençant par le premier élément de la liste (indice 0) :
Enfin, créez un autre constructeur qui accepte une liste d'objets. Chaque élément de cette liste doit être converti au type correspondant à chaque attribut, en commençant par l'élément à l'indice 0 :
```java
public[NomDeLaClasse](Object[]list){
...
...
@@ -55,9 +55,71 @@ public [NomDeLaClasse](Object[] list) {
}
```
Ensuite, vous devez ajouter ce nouveau type à l'énumération `DataType`, où vous devrez spécifier le nombre d'arguments à exploiter. Cela correspond au nombre de colonnes du tableau, moins 1.
Ensuite, modifiez les méthodes `getClassification()` et `setClassification()` pour leur attribuer la valeur que vous souhaitez étudier. C’est à vous de définir cette valeur :
La méthode `getAttributesNames()` permet de renvoyer les différents attributs étudiés dans le graphe, c'est-à-dire tous les attributs sauf celui que vous souhaitez classifier. Vous pouvez rendre les noms des attributs plus lisibles que leur nom de variable, comme dans l’exemple ci-dessous :
```java
@Override
publicMap<String,Object>getAttributesNames(){
Map<String,Object>attrNames=newLinkedHashMap<>();
attrNames.put("Column 1",column1);
attrNames.put("Column 2",column2);
attrNames.put("Column 3",column3);
attrNames.put("Column 4",column4);
returnattrNames;
}
```
La méthode `getAttributes()` permet de renvoyer les différents attributs numériques sous forme de tableau de doubles. Cela correspond aux données qui pourront être affichées dans le graphe :
Il ne vous reste plus qu'à personnaliser la méthode `toString()`, qui permet d’afficher les informations d’un point. Vous pouvez entièrement personnaliser l’affichage, mais il est recommandé de respecter cette structure pour une présentation claire :
```java
@Override
publicStringtoString(){
return"Column 1: "+this.column1+"\n"+
"Column 2: "+this.column2+"\n"+
"Column 3: "+this.column3+"\n"+
"Column 4: "+this.column4+"\n";
}
```
Votre classe pour le nouveau jeu de données est maintenant prête.
---
Ensuite, vous devez ajouter ce nouveau type à l'énumération `DataType`, en spécifiant le nombre d'arguments à exploiter, soit le nombre de colonnes dans le fichier CSV, moins un (puisque vous avez une colonne pour la classification).
---
Rendez-vous ensuite dans la classe `PointFactory` et ajoutez le code suivant dans le `switch case` de la méthode `createPoint()` :
thrownewIllegalArgumentException("Le nombre de coordonnées doit être de "+DataType.[Nomdesdonnées].getArgumentSize()+" pour le type [Nom des données].");
Ces explications devraient vous permettre d’ajouter des données à la classification. Si vous rencontrez des difficultés lors de votre implémentation, n'hésitez pas à relire ce tutoriel ou à consulter les implémentations existantes.