I believe different terminologies can be found, here are my suggestions after 5 years of PhD in Machine Learning, working mostly with hidden Markov models for classification, and some work on prediction.
In general, when working with a time-series we will say either observations sequence, or talk about data samples, which correspond to your first point "the thing about which you want to make a prediction?"
When doing classification, we classify samples or observations, or sequences of observations (depending on the problem that one solves) into classes. Each class can be represented by a label. It is said that a sample belongs to class A, or that the data sample is labelled A.
Prediction is the act of guessing/predicting the next thing that is going to happen. There is the idea of "future" in it (though I've seen the term used sometimes for algorithms like the Viterbi algorithm, but I have always found it confusing for people...).
Inference is more used in an estimation framework. You can use inference methods to train a model for example.
Usually (from what I have seen and use) packages will have methods called train
to train/estimate a model (or fit
sometimes), which makes it clearer that infer
. I would avoid using this confusing word in general.
Hope this help, and open to discuss more in the comments.