Académique Documents
Professionnel Documents
Culture Documents
NUEVO
RODEO SCIENCEOPS EMPRESA
http://blog.yhat.com/posts/customersegmentationusingpython.html 1/11
16/10/2016 yhat|SegmentacindeclientesenPython
El Blog yhat
aprendizaje de las mquinas, la ciencia de datos, ingeniera
Email Address
Recibe actualizaciones
SegmentacindeclientesenPython
porGreg
25dedeagostode,elao2015
CompartirenLinkedin CompartirenReddit
En este post voy a hablar de algo que es relativamente simple, pero fundamental
para cualquier negocio: Segmentacin de clientes. En el ncleo de la segmentacin
de clientes es ser capaz de identicar los diferentes tipos de clientes y luego
averiguar la manera de encontrar ms de esos individuos para que pueda ...
adivinaron, conseguir ms clientes! En este post, voy a detalle cmo se puede
utilizar K-means clustering para ayudar con algunos de los aspectos exploratorios
de segmentacin de clientes.
nuestrosdatos
Los datos que estamos utilizando viene del libro de John capataz de datos
inteligente . El conjunto de datos contiene informacin sobre los boletines de
marketing / campaas de correo electrnico (ofertas de correo electrnico
http://blog.yhat.com/posts/customersegmentationusingpython.html 2/11
marketing / campaas de correo electrnico
16/10/2016
(ofertas de correo electrnico
yhat|SegmentacindeclientesenPython
enviados) y los datos del nivel de transacciones de los clientes (que ofrecen a los
clientes y respondieron a lo que han comprado).
import pandas as pd
3 Johnson 24 1
4 Johnson 26 1
UnacartillarpidadeKmedias
Con el n de segmentar a nuestros clientes, necesitamos una manera de
compararlas. Para ello vamos a utilizar K-means clustering . K-medios es una
manera de tomar un conjunto de datos y la bsqueda de grupos (o
conglomerados) de puntos que tienen propiedades similares. K-signica obras de
la agrupacin de los puntos juntos de una manera tal que la distancia entre todos
los puntos y el punto medio del grupo al que pertenecen se minimiza.
En K-medias hablan, la "x" 's son llamados "centroides" e indicar (lo has adivinado),
el centro de un grupo determinado. No voy a entrar en los pormenores de lo que
K-Medios est haciendo en realidad bajo el cap, pero es de esperar que este
ejemplo le da una buena idea.
Laagrupacindenuestrosclientes
De acuerdo, entonces, cmo se aplican a la agrupacin de nuestros clientes?
Bueno, ya que estamos tratando de aprender ms acerca de cmo se comportan
nuestros clientes, podemos utilizar su comportamiento (si estn o no comprarse
algo basado en una oferta) como una forma de agrupar los clientes con mentalidad
similares juntos. entonces podemos estudiar esos grupos para buscar patrones y 4/11
http://blog.yhat.com/posts/customersegmentationusingpython.html
16/10/2016 yhat|SegmentacindeclientesenPython
similares juntos. entonces podemos estudiar esos grupos para buscar patrones y
tendencias que pueden ayudar a formular futuras ofertas.
La primera cosa que necesitamos es una manera de comparar los clientes. Para
ello, vamos a crear una matriz que contiene cada cliente y un indicador de 0/1 de si
son o no respondieron a una oferta dada. Esto es bastante fcil de hacer en
Python:
cluster = KMeans(n_clusters=5)
# slice matrix so we only include the 0/1 indicator columns in the clustering
matrix['cluster'] = cluster.fit_predict(matrix[matrix.columns[2:]])
matrix.cluster.value_counts()
2 32
1 22
4 20
0 15
3 11
dtype: int64
http://blog.yhat.com/posts/customersegmentationusingpython.html 5/11
16/10/2016 yhat|SegmentacindeclientesenPython
Visualizacindelosracimos
Un truco genial que el probablemente no te lo ensean en la escuela es de Anlisis
de Componentes Principales . Hay un montn de aplicaciones para l, pero hoy
vamos a utilizarlo para transformar nuestro conjunto de datos multidimensional en
un conjunto de datos de 2 dimensiones. Por qu preguntas? Bueno una vez que
est en 2 dimensiones (o simplemente, que tiene 2 columnas), se hace mucho ms
fcil para trazar!
pca = PCA(n_components=2)
matrix['x'] = pca.fit_transform(matrix[x_cols])[:,0]
matrix['y'] = pca.fit_transform(matrix[x_cols])[:,1]
matrix = matrix.reset_index()
Lo que hemos hecho es que hemos tomado esas x_cols columnas de 0/1 variables
indicadoras, y los hemos transformado en un conjunto de datos 2-D. Tomamos
una columna y arbitrariamente llamamos x y llamamos a la otra y . Ahora
podemos lanzar cada punto en un diagrama de dispersin. Tendremos cdigo de
color de cada punto sobre la base de que es de clster, as que es ms fcil verlos.
http://blog.yhat.com/posts/customersegmentationusingpython.html 6/11
16/10/2016 yhat|SegmentacindeclientesenPython
df = pd.merge(df_transactions, customer_clusters)
df = pd.merge(df_offers, df)
cluster_centers = pca.transform(cluster.cluster_centers_)
cluster_centers = pd.DataFrame(cluster_centers, columns=['x', 'y'])
cluster_centers['cluster'] = range(0, len(cluster_centers))
http://blog.yhat.com/posts/customersegmentationusingpython.html 7/11
16/10/2016 yhat|SegmentacindeclientesenPython
Profundizandoenlosclusters
Vamos a profundizar un poco ms en los racimos. Tome el grupo 4, por ejemplo. Si
rompemos el grupo 4 y la comparamos con los clientes restantes, podemos
empezar a buscar facetas interesantes que podramos ser capaces de explotar.
Como lnea de base, eche un vistazo a las varietal cuentas para el grupo 4 vs todos
los dems. Resulta que casi todas las ofertas de Cabernet Sauvignon fueron
comprados por los miembros del grupo 4. Adems, ninguna de las ofertas
Espumante fueron adquiridos por los miembros del grupo 4.
df['is_4'] = df.cluster==4
df.groupby("is_4").varietal.value_counts()
champn 45
espumante 40
Prosecco 37
Pinot Noir 37
Falso Malbec 17
Cabernet Sauvignon 6
Chardonnay 4
champn 36
Cabernet Sauvignon 26
Malbec 15
Merlot 12
Cierto
Chardonnay 11
Pinot Noir 7
Prosecco 6
Pinot Grigio 1
df.groupby("is_4")[['min_qty', 'discount']].mean()
min_qty descuento
is_4
Pensamientosfinales
A pesar de que no va a decir mgicamente todas las respuestas, la agrupacin es
un gran ejercicio de exploracin que pueden ayudarle a aprender ms acerca de
sus clientes. Para obtener ms informacin sobre K-medias y segmentacin de
clientes, echa un vistazo a los siguientes recursos:
http://blog.yhat.com/posts/customersegmentationusingpython.html 9/11
16/10/2016 yhat|SegmentacindeclientesenPython
COMPARTIRENLINKEDIN COMPARTIRENREDDIT
Nuestrosproductos
DESCRGALO AHORA!
APRENDE MS
http://blog.yhat.com/posts/customersegmentationusingpython.html 10/11
16/10/2016 yhat|SegmentacindeclientesenPython
Contctenos
info@yhathq.com
+1 718 855 2107
+49 15735983455
Nuestros productos
ScienceOps
Rodeo
Aprende ms
Empresa
Blog
Trabajos
RSS
hoja informativa
Email Address
Recibe actualizaciones
http://blog.yhat.com/posts/customersegmentationusingpython.html 11/11