Machine Learning for Marketing in Python
Karolis Urbonas
Head of Analytics & Science, Amazon
Segmentation with K-means (for k
number of clusters):
from sklearn.cluster import KMeans
kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Segmentation with NMF (k
number of clusters):
from sklearn.decomposition import NMF
nmf = NMF(k)
nmf.fit(wholesale)
components = pd.DataFrame(nmf.components_, columns=wholesale.columns)
Extracting segment assignment:
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))
k
)k
: 1) Mathematically, 2) Test & learnk
valuesSSE
) for eachSSE
against k
and identify the "elbow" - diminishing incremental improvements in error reductionsse = {}
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()
k
valueMachine Learning for Marketing in Python