During a class in my master's in computer science the professor asked us to come up with the best model to predict this particular data set. In it, we are given measurements of the weight and size of an abalone and need to predict the number of rings (an integer number) in its shell. Here an example of how the data looks:
The original paper (Sam Waugh (1995) "Extending and benchmarking Cascade-Correlation") in which this database was first used, uses a classification approach where each distinct number of rings is treated as a different class.
I see a couple of problems with this approach:
First of all, the evaluation metric the paper's author uses is the classification accuracy, which does not consider the closeness of the predicted value with its response. For example, a model that predicts a value of 3 when the correct value was 4 is treated the same as a model which predicts a value of 22 and the correct value was 4 (both got the classification wrong).
Second, the data set is highly unbalanced with few abalones having a high number of rings.
To my best interpretation, both these problems would be gone if we used a regression model (with a root mean square error as an evaluation metric for example) instead of classification. However usual regression models give you real values for your response. To my non-statistician brain, this seems to be not an issue since you can always round your value to the nearest integer.
My questions are then:
Is multivariate regression indeed the best approach in trying to model this data?
Is there an evaluation metric for classification that considers the closeness of the response with the classification result? If yes could it be used in this problem?
Are there any problems in rounding up the regression result to the nearest integer?
Any other comments, suggestions or ideas to help me to best tackle the problem are also very helpful.
Also, sorry if a made any incorrect assumptions or mistake in my interpretation of the problem. Feel free to correct me.