Как я могу построить 3D-кластер для анализа RFM?

#python #pandas #matplotlib #plotly #data-analysis

#python #pandas #matplotlib #plotly #анализ данных

Вопрос:

У меня есть сегментация клиентов с проектом анализа RFM. Я разделил клиентов на группы типа «Не могу их потерять», «Лояльные», «Чемпионы» по уровню RFM. Существует 7 разных групп.

Мне нужен 3D-график кластеров. У меня есть пример 3D-графика. по частоте, новизне, денежному эквиваленту, но он имеет 3 разных кластера. Мне нужно 7 разных кластеров. Итак, как я могу построить 3D-график уровней RFM?

Фотография моего набора данных

 import plotly.graph_objs as go
import plotly as py

x3 = data[['R_Quartile','F_Quartile','M_Quartile']].iloc[:,:].values 

algorithm = (KMeans(n_clusters = 3 ,init='k-means  ', n_init = 10 ,max_iter=300, 
                        tol=0.0001,  random_state= 111  , algorithm='elkan') )
algorithm.fit(x3)
labels3 = algorithm.labels_
centroids3 = algorithm.cluster_centers_

data['label3'] =  labels3
trace1 = go.Scatter3d(
    x= data['recency'],
    y= data['frequency'],
    z= data['monetary'],
    mode='markers',
     marker=dict(
        color = data['label3'], 
        size= 1,
        line=dict(
            color= data['label3'],
            width= 12
        ),
        opacity=0.8
     )
)
data_temp = [trace1]
layout = go.Layout(
#     margin=dict(
#         l=0,
#         r=0,
#         b=0,
#         t=0
#     )
    title= 'Clusters',
    scene = dict(
            xaxis = dict(title  = 'R'),
            yaxis = dict(title  = 'F'),
            zaxis = dict(title  = 'M')
        )
)
fig = go.Figure(data=data_temp, layout=layout)
py.offline.iplot(fig)