Во-первых, все категориальные признаки должны быть закодированы (представлены числами), чтобы их можно было интерпретировать для регрессионных моделей. Для этого вы можете использовать LabelEncoder , а затем OneHotEncoder . В случае старших кардинальных функций вы можете использовать FeatureHasher .
Как пример:
from sklearn.feature_extraction import FeatureHasher
# n_feature: number of unique values in the feature(s)
# input_type should be passed as 'string' to be compatible to pandas DataFrames
feature_hasher = FeatureHasher(n_features=5000, input_type='string')
df['COLUMN_NAME'] = feature_hasher.transform(df['COLUMN_NAME'])
Затем вы можете передать свои функции регрессору.