liveBook · Manning

SimilarityEncoder

As explained in Ensemble Methods for Machine Learning

SimilarityEncoder is a dirty_cat transformer that encodes categorical strings according to their character or n-gram similarities.

SimilarityEncoder turns categorical strings into similarity-based features. Instead of treating every spelling as unrelated, it uses character or n-gram similarity to group high-cardinality categories and soften noisy values such as typos. section 8.4

A practical workflow is:

  • Identify high-cardinality string columns before encoding them. section 8.4
  • Use SimilarityEncoder for similarity-based one-hot-style features, while treating low-cardinality and continuous columns separately. section 8.4
  • Place the encoder in a modeling pipeline and compare it with alternatives such as MinHashEncoder and GapEncoder. section 8.4

Employee salary prediction

In an employee-salary regression dataset, employee_position_title contains 385 categories. SimilarityEncoder is used with XGBoost alongside other dirty_cat encoders; the reported R² is 0.89956. section 8.4

How Ensemble Methods for Machine Learning covers it

How deep it goes
Defines similarity-based encoding and demonstrates library use, but does not detail its internal similarity calculation.
Examples
Uses employee job titles with 385 categories in salary regression and compares three dirty_cat encoders.
What it assumes
Assumes categorical-feature modeling and distinguishes low-cardinality, high-cardinality, and continuous columns.
What you can do after
Apply it via dirty_cat to encode high-cardinality string features in an ensemble regression pipeline.
How it connects
Connects one-hot encoding, n-grams, MinHashEncoder, GapEncoder, XGBoost, and scikit-learn pipelines.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Ensemble Methods for Machine Learning. The section links point to the parts of the book it draws on.