nickgillian / grt

gesture recognition toolkit
859 stars 285 forks source link

CSV File format #81

Closed JairoJs closed 8 years ago

JairoJs commented 8 years ago

Hello I am trying to load a data set that is in a csv file, but "No header found" error keeps poping up. where can i get some example of the format a csv file must have to load succesfully in a classification data object

nickgillian commented 8 years ago

If you are getting a 'No header found' error, then it sounds like the load function is defaulting to the standard GRT file format.

The load function should try and parse the data as a CSV file if you have the '.csv' file extension at the end of your filename.

I'll update the documentation for the various save/load functions to make this more obvious.

See this example for more info on how to load a CSV file:

https://github.com/nickgillian/grt/blob/master/examples/Tutorials/GettingStarted/GettingStarted.cpp

nickgillian commented 8 years ago

I just pushed a new example to the dev branch that might also help here, it demonstrates how to save/load data to/from GRT and CSV files with some info about how the CSV data is stored.

You can find it here: https://github.com/nickgillian/grt/blob/dev/examples/Tutorials/DataIO/DataIOExample.cpp

I will merge this to the main master branch this weekend with some other updates.

JairoJs commented 8 years ago

Thanks for replying so soon. I was using the loadDatasetFromFile function, this was the one giving me the error. I switch then and used the load function wich gave me an error that said that the file didnt have a consistent number or columns, I had to open the file in ms excel and order the data by the class column, after this all errors were solved and I could train the model perfectly, Thanks for the link to the examples, looking at them again helped me solve this problem.

nickgillian commented 8 years ago

OK great, glad this resolved it.

Yes, the save/load functions now provide better abstraction over more specific functions like loadDatasetFromFile, so I would recommend using these abstract functions.