import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
df = pd.read_csv(r'D:\project\RFM\rfm\kate_rfm.csv', encoding='gbk')
column_list = list(df.columns)
column_list.remove('buyer_nick')
# 归一化
def standardization(x,Max,Min):
x = (x-Min)/(Max-Min)
return x
for column in column_list:
column_x = column + '_x'
max_x = np.max(df[column])
min_x = np.min(df[column])
df[column_x] = df[column].apply(standardization,Max=max_x, Min=min_x)
print(column + ' is ok ')
SSE = []
for i in range(1,10):
estimator = KMeans(n_clusters=i)
estimator.fit(df[['recency_x', 'frequency_x', 'monetary_x']])
SSE.append(estimator.inertia_)
X = range(1,10)
plt.xlabel('k')
plt.ylabel('SSE')
plt.plot(X, SSE, 'o-')
plt.show()
model = KMeans(n_clusters=4, max_i
使用Python聚类算法,实现RFM客户分群,进行精准营销!
最新推荐文章于 2025-03-11 11:09:26 发布