Usually refers to the number of attributes.
Is one particular type of data in your points, so each observation/datapoint contains many different attributes. Ex- Like, we have our presonal record(dataset/observation) which contains different attributes like person,height,weight,age,etc.
It may have multiple meaning depending on the context.
- It sometimes refers to an attribute
- It sometimes refers to the internal representation of data generated by particular learning model, Ex - Neural Networks extract features which are combination of the attributes or other features.
- It sometimes refers to the hypothethical representation of the data induced by the kernel method(in kernel PCA, kernel k-means, SVM)
In general you have some objects X, which you describe using some attributes (which is the first step of feature extraction, and so these attributes are also sometimes refered as features), which creates a representation of given dimension (number of attributes, extracted features). Then you train some model, which often creates some kind of abstraction (sometimes even multi-level), and each of such abstractions generate new features (extracts features from features) which are more complex objects then the ones on the lower "level".
<pre class="prettyprint"><code> X ---> repr(X) ---> f1(repr(X)) ---> .... ---> fn(repr(X)) data attributes 1st level nth level (0th features) features features |repr(X)|=dimension </code></pre>
f's are often recurrent, so
f2(repr(X)) is actually some