Merchant Category Codes (MCC) es un estandar ISO que agrupa todos los comercios que aceptan tarjetas de crédito en cerca de 1000 categorías, cada una con una breve descripción (texto!).
Pero, mil tipos de comercios es un número impráctico para temas de análisis del consumo con tarjetas de crédito.
Trataremos de usar minería de texto para intentar reducir ese número.
In [1]:
from prep import helpers
from prep import clustering
In [2]:
df = helpers.get_mcc_data()
In [3]:
df.head()[['mcc', 'irs_description','desc']]
Out[3]:
In [4]:
X, vectorizer = clustering.get_tfidf(df.desc)
In [5]:
print(df.shape)
print(X.shape)
Que paso? Nuestro super vectorizer:
In [6]:
X[1,:25]
Out[6]:
Que? ...
In [7]:
X[1,:25].todense()
Out[7]:
In [8]:
vectorizer.get_feature_names()[23:25]
Out[8]:
In [10]:
# Reduce los datos a 50 dimensiones y construye 40 clusters
clusters = clustering.get_clusters(X, k_choices=[40], dim_choices=[50])
...sencillo, no?
Se puede perfectamente experimentar con otras combinaciones de K y dimensiones...
In [11]:
rs_df = clustering.add_cluster_descriptions(df, clusters, vectorizer)
rs_df.groupby('cluster_description').mcc.count()
Out[11]:
In [13]:
rs_df.head(20)[['mcc', 'cluster_id', 'irs_description', 'cluster_description']]
Out[13]: