Criar segmentação de clientes e produtos

Machine Learning para Marketing em Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Etapas de segmentação com K-means

Segmentação com K-means (para k número de clusters):

from sklearn.cluster import KMeans

kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Machine Learning para Marketing em Python

Etapas de segmentação com NMF

Segmentação com NMF (k número de clusters):

from sklearn.decomposition import NMF
nmf = NMF(k)
nmf.fit(wholesale)
components = pd.DataFrame(nmf.components_, columns=wholesale.columns)

Extraindo a atribuição de segmento:

segment_weights = pd.DataFrame(nmf.transform(wholesale, columns=components.index)
segment_weights.index = wholesale.index
wholesale_nmf = wholesale.assign(segment = segment_weights.idxmax(axis=1))
Machine Learning para Marketing em Python

Como inicializar o número de segmentos?

  • Tanto K-means quanto NMF exigem definir o número de clusters (k)
  • Duas formas de definir k: 1) Matematicamente, 2) Testar e aprender
  • Vamos usar o método do cotovelo para ter uma estimativa inicial
Machine Learning para Marketing em Python

Método do critério do cotovelo

  • Iterar por vários valores de k
  • Rodar a clusterização para cada um no mesmo dado
  • Calcular a soma dos erros quadráticos (SSE) de cada
  • Plotar SSE vs. k e identificar o "cotovelo" — ganhos marginais menores na redução do erro
Machine Learning para Marketing em Python

Calcular a soma dos erros quadráticos e plotar os resultados

sse = {}
for k in range(1, 11):
    kmeans=KMeans(n_clusters=k, random_state=333)
    kmeans.fit(wholesale_scaled_df)
    sse[k] = kmeans.inertia_
plt.title('Elbow criterion method chart')
sns.pointplot(x=list(sse.keys()), y=list(sse.values()))
plt.show()
Machine Learning para Marketing em Python

Identificar o número ideal de segmentos

Método do cotovelo

Machine Learning para Marketing em Python

Método de testar e aprender

  • Primeiro, calcule matematicamente o número ideal de segmentos
  • Construa a segmentação com valores ao redor do k ideal
  • Explore os resultados e escolha o mais relevante para o negócio (Você consegue nomear os segmentos? Eles são ambíguos/sobrepostos?)
Machine Learning para Marketing em Python

Vamos criar segmentos de clientes!

Machine Learning para Marketing em Python

Preparing Video For Download...