tableau调用python脚本2--kmeans聚类

上一篇关于tableau调用python的文章包含基本的原理、环境配置以及简单的调用实现,本文章是tableau调用python脚本的第二篇,与之前的基础篇相比有所升级,用无监督学习的kmeans聚类。

酷酷的章鱼哥:tableau调用python脚本(纯干货)zhuanlan.zhihu.com图标

本篇文章不再讲环境配置及基础原理,如需了解,请移步之前文章。

如果是拿来主义,请下翻拷贝源代码

一、Kmeans介绍

初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个 簇。然后按平均法重新计算各个簇的质心,从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值或者蔟心的距离不再变化。

优点:

  • 原理比较简单,实现也是很容易,收敛速度快。
  • 聚类效果较优。
  • 算法的可解释度比较强。
  • 主要需要调参的参数仅仅是簇数k。

缺点:

  • 簇数目k需要事先给定,但非常难以选定
  • 初始值中心点选择的不好,可能无法得到有效的聚类结果
  • 对噪音和离群点敏感,会影响中心点的位置
  • 不适合于发现非球状簇

二、数据准备

数据来自上一篇文章,已提供下载,kmeans的应用也在该文章中

酷酷的章鱼哥:用户生命周期Kmeans聚类并绘制雷达图zhuanlan.zhihu.com图标

三、tableau中脚本的编写

python中的脚本只要符合python语法,写起来随心所欲

print 函数打印的内容会在tabpy server 控制台中显示

为了方便大家复用,脚本copy如下:

import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import MinMaxScaler
print()
print('*'*60)
# data=np.array([_arg1,_arg2,_arg3,_arg4,_arg5]).T
data=np.column_stack([_arg1,_arg2,_arg3,_arg4,_arg5])
print(data[:3])
k = 5 # 定义聚类个数

# 数据归一化
min_max_scale=MinMaxScaler()
data=min_max_scale.fit_transform(data)

#调用k-means算法,进行聚类分析
kmodel = KMeans(n_clusters = k)
kmodel.fit(data)

return kmodel.labels_.tolist()

四、结果展示

tableau中聚类结果
tableau server 控制台信息

后面会分享服务器部署有监督的机器学习算法,并用tableau可视化,在第一篇文章中讲过服务器上部署方法,感兴趣的小伙伴们可以自己先试试

发布于 2019-12-19

文章被以下专栏收录