Adding data preprocessing functions

This commit is contained in:
Abdel Kader Chabi Sika Boni 2021-11-30 17:18:58 +01:00
parent 13ca1e16ef
commit 694ef200df
4 changed files with 123 additions and 3 deletions

View file

@ -5,7 +5,7 @@ all : myprogram
clean : clean :
rm -f *.o myprogram rm -f *.o myprogram
myprogram : randomness.o activations.o neurons.o network.o training.o main.o myprogram : randomness.o activations.o neurons.o network.o training.o preprocessing.o main.o
gcc -Wall $^ -o myprogram -lm gcc -Wall $^ -o myprogram -lm
%.o : %.c %.o : %.c

4
main.c
View file

@ -23,11 +23,11 @@ int main(int argc, char *argv[])
float a=5.0; float a=5.0;
printf("%f\n", (float)exp((double)a));*/ printf("%f\n", (float)exp((double)a));*/
int n_neurons[] = {15,120,220,120,200,25}; /*int n_neurons[] = {15,120,220,120,200,25};
char *activations[] = {"relu","relu","relu","relu","relu","relu"}; char *activations[] = {"relu","relu","relu","relu","relu","relu"};
Network *net = init_network(n_neurons, 6, activations); Network *net = init_network(n_neurons, 6, activations);
print_network(net); print_network(net);
destroy_network(net); destroy_network(net);*/
return 0; return 0;
} }

69
preprocessing.c Normal file
View file

@ -0,0 +1,69 @@
#include <stdio.h>
#include <stdlib.h>
#include "preprocessing.h"
Feature *init_feature(float value)
{
Feature *feature = (Feature*)malloc(sizeof(Feature));
feature->value = value;
feature->next_feature = NULL;
return feature;
}
OneHotLabel *init_onehotlabel(float value)
{
OneHotLabel *hot = (OneHotLabel*)malloc(sizeof(OneHotLabel));
hot->value = value;
hot->next = NULL;
return hot;
}
Sample *init_sample()
{
Sample *sample = (Sample*)malloc(sizeof(Sample));
sample->first_feature = NULL;
sample->first_hot = NULL;
sample->next_sample = NULL;
sample->t = TRAIN;
return sample;
}
Data *init_data()
{
Data *data = (Data*)malloc(sizeof(Data));
data->first_sample = NULL;
data->last_sample = NULL;
data->size = 0;
return data;
}
void destroy_features_from_feature(Feature *feature)
{
}
void destroy_hots_from_hot(OneHotLabel *first_hot)
{
}
void destroy_samples_from_sample(Sample *sample)
{
}
void destroy_data(Data *data)
{
}
Data *csv_to_samples(char *path_to_csv, char *features_separator, float train_percent)
{
Data *data = init_data();
//TODO : complete
return data;
}

51
preprocessing.h Normal file
View file

@ -0,0 +1,51 @@
#ifndef PREPROCESSING_H
#define PREPROCESSING_H
typedef struct feature Feature;
struct feature
{
float value;
Feature *next_feature;
};
typedef struct onehotlabel OneHotLabel;
struct onehotlabel
{
float value;
OneHotLabel *next;
};
typedef enum type Type;
enum type
{
TRAIN = 0 , TEST = 1 , VALID = 2
};
typedef struct sample Sample;
struct sample
{
Feature *first_feature;
OneHotLabel *first_hot;
Sample *next_sample;
Type t;
};
typedef struct data Data;
struct data
{
Sample *first_sample;
Sample *last_sample;
int size;
};
Feature *init_feature(float value);
OneHotLabel *init_onehotlabel(float value);
Sample *init_sample();
Data *init_data();
void destroy_features_from_feature(Feature *feature);
void destroy_hots_from_hot(OneHotLabel *first_hot);
void destroy_samples_from_sample(Sample *sample);
void destroy_data(Data *data);
Data *csv_to_samples(char *path_to_csv, char *features_separator, float train_percent);
#endif