Numerical data: How a model ingests data using feature vectors
Stay organized with collections
Save and categorize content based on your preferences.
Until now, we've given you the impression that a model acts directly on the
rows of a dataset; however, models actually ingest data somewhat differently.
For example, suppose a dataset provides five columns, but only two of those
columns (b and d) are features in the model. When processing
the example in row 3, does the model simply grab the contents of the
highlighted two cells (3b and 3d) as follows?
Figure 1. Not exactly how a model gets its examples.
In fact, the model actually ingests an array of floating-point values called a
feature vector. You can think
of a feature vector as the floating-point values comprising one example.
Figure 2. Closer to the truth, but not realistic.
However, feature vectors seldom use the dataset's raw values.
Instead, you must typically process the dataset's values into representations
that your model can better learn from. So, a more realistic
feature vector might look something like this:
Figure 3. A more realistic feature vector.
Wouldn't a model produce better predictions by training from the
actual values in the dataset than from altered values?
Surprisingly, the answer is no.
You must determine the best way to represent raw dataset values as trainable
values in the feature vector.
This process is called
feature engineering,
and it is a vital part of machine learning.
The most common feature engineering techniques are:
Normalization: Converting
numerical values into a standard range.
Binning (also referred to as
bucketing): Converting numerical
values into buckets of ranges.
This unit covers normalizing and binning. The next unit,
Working with categorical data,
covers other forms of
preprocessing, such as
converting non-numerical data, like strings, to floating point values.
Every value in a feature vector must be a floating-point value. However, many
features are naturally strings or other non-numerical values. Consequently,
a large part of feature engineering is representing non-numerical values as
numerical values. You'll see a lot of this in later modules.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eModels ingest data through floating-point arrays called feature vectors, which are derived from dataset features.\u003c/p\u003e\n"],["\u003cp\u003eFeature vectors often utilize processed or transformed values instead of raw dataset values to enhance model learning.\u003c/p\u003e\n"],["\u003cp\u003eFeature engineering is the crucial process of converting raw data into suitable representations for the model, encompassing techniques like normalization and binning.\u003c/p\u003e\n"],["\u003cp\u003eNon-numerical data like strings must be converted into numerical values for use in feature vectors, a key aspect of feature engineering.\u003c/p\u003e\n"]]],[],null,["# Numerical data: How a model ingests data using feature vectors\n\nUntil now, we've given you the impression that a model acts directly on the\nrows of a dataset; however, models actually ingest data somewhat differently.\n\nFor example, suppose a dataset provides five columns, but only two of those\ncolumns (`b` and `d`) are features in the model. When processing\nthe example in row 3, does the model simply grab the contents of the\nhighlighted two cells (3b and 3d) as follows?\n**Figure 1.** Not exactly how a model gets its examples.\n\nIn fact, the model actually ingests an array of floating-point values called a\n[**feature vector**](/machine-learning/glossary#feature-vector). You can think\nof a feature vector as the floating-point values comprising one example.\n**Figure 2.** Closer to the truth, but not realistic.\n\nHowever, feature vectors seldom use the dataset's *raw values*.\nInstead, you must typically process the dataset's values into representations\nthat your model can better learn from. So, a more realistic\nfeature vector might look something like this:\n**Figure 3.** A more realistic feature vector.\n\nWouldn't a model produce better predictions by training from the\n*actual* values in the dataset than from *altered* values?\nSurprisingly, the answer is no.\n\nYou must determine the best way to represent raw dataset values as trainable\nvalues in the feature vector.\nThis process is called\n[**feature engineering**](/machine-learning/glossary#feature-engineering),\nand it is a vital part of machine learning.\nThe most common feature engineering techniques are:\n\n- [**Normalization**](/machine-learning/glossary#normalization): Converting numerical values into a standard range.\n- [**Binning**](/machine-learning/glossary#binning) (also referred to as [**bucketing**](/machine-learning/glossary#bucketing)): Converting numerical values into buckets of ranges.\n\nThis unit covers normalizing and binning. The next unit,\n[Working with categorical data](/machine-learning/crash-course/categorical-data),\ncovers other forms of\n[**preprocessing**](/machine-learning/glossary#preprocessing), such as\nconverting non-numerical data, like strings, to floating point values.\n\nEvery value in a feature vector must be a floating-point value. However, many\nfeatures are naturally strings or other non-numerical values. Consequently,\na large part of feature engineering is representing non-numerical values as\nnumerical values. You'll see a lot of this in later modules.\n| **Key terms:**\n|\n| - [Binning](/machine-learning/glossary#binning)\n| - [Bucketing](/machine-learning/glossary#bucketing)\n| - [Feature engineering](/machine-learning/glossary#feature_engineering)\n| - [Feature vector](/machine-learning/glossary#feature_vector)\n| - [Normalization](/machine-learning/glossary#normalization)\n- [Preprocessing](/machine-learning/glossary#preprocessing) \n[Help Center](https://support.google.com/machinelearningeducation)"]]