Transforming categorical data into numerical values for dummies

In the field of data science, converting categorical data into numerical values is an essential step for various machine learning algorithms.

Categorical data refers to data that represents categories or labels, such as gender, country, or color.

Most machine learning algorithms require numerical inputs, which necessitates the conversion of categorical data to a numerical format.

This article will discuss seven methods for transforming categorical data into numerical values: ordinal encoding, label encoding, one-hot encoding, binary encoding, hashing, target encoding, and date-time encoding.

Ordinal Encoding

Ordinal encoding is a technique that assigns a unique integer value to each category based on its rank or order. This method is suitable for ordinal data, which has a natural order or hierarchy, such as education levels or customer satisfaction ratings.

The main advantage of ordinal encoding is its simplicity, but one downside is that it may introduce artificial relationships between categories if there is no inherent order.

Label Encoding

Label encoding is a method that assigns a unique integer value to each category in a random or alphabetical order. It is useful for nominal data, which has no inherent order, such as colors or countries.

While label encoding is simple to implement, it can create misleading relationships between categories, as the assigned numerical values may not reflect any true relationship between the categories.

As a result, label encoding is best suited for simple classification tasks and tree-based algorithms, which are less sensitive to the encoding method.

One-hot Encoding

One-hot encoding is a popular technique that creates binary features for each category. This method involves creating a new feature for each category and assigning a value of 1 if the observation belongs to that category and 0 otherwise.

One-hot encoding results in sparse data, meaning that most values are 0, which can be computationally expensive for large datasets.

Despite its drawbacks, one-hot encoding is useful for linear models and algorithms that rely on the independence of features, as it does not create artificial relationships between categories.

Binary Encoding

Binary encoding is a compromise between label encoding and one-hot encoding. It assigns a unique binary representation to each category based on its integer value.

Binary encoding reduces the dimensionality of the data compared to one-hot encoding, making it more suitable for high-cardinality categorical data.

However, it may still introduce artificial relationships between categories and can be less interpretable than one-hot encoding.


Hashing is a technique that maps categories to a fixed-size hash table using a hash function.

This method can handle large numbers of categories and is memory-efficient, as it does not require storing the category mappings.

However, hashing can lead to collisions, where different categories are assigned the same hash value. This may result in a loss of information and reduced model performance.

Hashing is best suited for situations with a large number of categories or when memory is a constraint.

Target Encoding

Target encoding, also known as mean encoding, is a method that replaces each category with the mean of the target variable for that category.

This technique captures the relationship between the categorical feature and the target variable, potentially improving model performance.

However, target encoding can introduce leakage if not applied carefully, as it uses information from the target variable during the encoding process.

To prevent leakage, it is essential to perform target encoding separately for the training and validation sets.

Date-time Encoding

Date-time encoding is a technique used to transform date and time variables into numerical features.

Dates and times can be decomposed into components such as year, month, day, hour, minute, and second, or transformed into cyclical features, such as day of the week or month of the year.

Date-time encoding enables algorithms to capture patterns and trends within temporal data, such as seasonality or daily fluctuations.

Additionally, it allows the creation of new features, such as time since a particular event or the difference between two dates.


Transforming categorical data into numerical values is a crucial step in preparing data for machine learning algorithms.

The choice of encoding method depends on the nature of the categorical data, the specific algorithm being used, and the desired balance between simplicity, interpretability, and model performance.

By understanding the advantages and drawbacks of each encoding method, data scientists and practitioners can make informed decisions about which technique is best suited for their particular use case.

Regardless of the method chosen, it is essential to apply encoding techniques carefully and consistently to avoid introducing artificial relationships or leakage, ensuring the highest possible model performance.

Leave a Comment