# _*_ coding:utf-
8 _*_
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from pandas import to_datetime
#引入sklearn框架,匯入k-means聚類演算法
from sklearn.cluster import kmeans
#from sklearn.manifold import
inputfile = r'transformdata.xls' #待聚類的資料檔案
outputfile = r'data_type.xls'
#讀取資料並進行聚類分析
data = pd.
read_excel
(inputfile, skiprows=2)
# print
(data)
#利用k-means聚類演算法對客戶資料進行客戶分群,聚成4類。
k =4
iteration =
500kmodel =
kmeans
(n_clusters=k, max_iter=iteration)
kmodel.
fit(data) #訓練模型
r1 = pd.
series
(kmodel.labels_)
.value_counts()
print
(r1)
r2 = pd.
dataframe
(kmodel.cluster_centers_)
print
(r2)
r=pd.
concat
([r2, r1]
, axis=1)
r.columns =
list
(data.columns)
+[u'聚類數量'
] #data.columns是什麼意思呢?
print
(r)r3 = pd.
series
(kmodel.labels_, index=data.index)
r = pd.
concat
([data, r3]
, axis=1)
r.columns =
list
(data.columns)
+[u'聚類類別'
]print
(r)r.
to_excel
(outputfile)
kmodel.cluster_centers_
kmodel.labels_
#繪製客戶類別圖表
plt.rcparams[
'font.sans-serif']=
['simhei'
]plt.rcparams[
'axes.unicode_minus'
]= false
for i in
range
(k):
cls = data[r[u'聚類類別'
]==i]
cls.
plot
(kind=
'kde'
, linewidth=
2, subplots=true, sharex=false)
plt.
suptitle
('客戶群=%d; 聚類數量=%d'
%(i, r1[i]))
plt.
legend()
plt.
show
()
聚類分析(銀行客戶畫像)
cda 11 聚類分析 客戶畫像 匯入資料 customer names customer customer1 names customer1 11.2 銀行客戶 k均值 層次聚類 names customer1 找到聚類數 pam演算法 pamkmd pamkmd nc layout matrix...
RFM模型聚類分析客戶價值
import pandas as pd from math import ceil from datetime import datetime from sklearn.cluster import kmeans 讀取資料 df pd.read excel 原始資料.xlsx index col 使...
聚類分析(一) 什麼是聚類分析
將一群物理物件或者抽象物件的劃分成相似的物件類的過程。其中類簇是資料物件的集合,在類簇中所有的物件都彼此相似,而類簇與類簇之間的物件是彼此相異。聚類除了可以用於資料分割 data segmentation 也可以用於離群點檢測 outlier detection 所謂的離群點指的是與 普通 點相對應...