时隔两月开始继续储备机器学习的知识,监督学习已经告一段落,非监督学习从聚类开始。非监督学习与监督学习最大的区别在于目标变量事先不存在,也就是说

一家批发经销商想将发货方式从每周五次减少到每周三次,简称成本,但是造成一些客户的不满意,取消了提货,带来更大亏损,项目要求是通过分析客户类别,选择合适的发货方式,达到技能降低成本又能降低客户不满意度的目的。

什么是聚类

聚类将相似的对象归到同一个簇中,几乎可以应用于所有对象,聚类的对象越相似,聚类效果越好。聚类与分类的不同之处在于分类预先知道所分的类到底是什么,而聚类则预先不知道目标,但是可以通过簇识别(cluster identification)告诉我们这些簇到底都是什么。

K-means

聚类的一种,之所以叫k-均值是因为它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。簇个数k是用户给定的,每一个簇通过质心来描述。

k-means的工作流程是:

  • 随机确定k个初始点做为质心
  • 给数据集中的每个点找距其最近的质心,并分配到该簇
  • 将每个簇的质心更新为该簇所有点的平均值
  • 循环上两部,直到每个点的簇分配结果不在改变为止

项目流程 载入数据集

import pandas as pd data = pd.read_csv("customers.csv"); 

分析数据

显示数据的一个描述

from IPython.display import display
display(data.discrie());

分析数据是一门学问,感觉自己在这方面还需要多加练习,数据描述包含数据总数,特征,每个特征的均值,标准差,还有最小值、25%、50%、75%、最大值处的值,这些都可以很容易列出来,但是透过这些数据需要看到什么信息,如何与需求目的结合,最开始还是比较吃力的。可以先选择几个数值差异较大的样本,然后结合数据描述和需求,对数据整体有一个把控。比如在Udacity的第三个项目中,给出客户针对不同类型产品的年度采购额,分析猜测每个样本客户的类型。

  数据描述

  三个样本客户

  样本客户

每个客户究竟是什么类型,这个问题困扰我好久,第一次回答我只是看那个方面采购额最大,就给它一个最近的类型,提交项目后Reviewer这样建议:

恍然大悟,这才知道了该如何分析一份数据集,于是有了下面的回答

  回答

所以分析数据一定要结合统计数据,四分位数和均值可以看做数据的骨架,能够一定程度勾勒出数据的分布,可以通过箱线图来可视化四分位数。

分析特征相关性

特征之间通常都有相关性,可以通过用移除某个特征后的数据集构建一个监督学习模型,用其余特征预测移除的特征,对结果进行评分的方法来判断特征间的相关性。比如用决策树回归模型和R2分数来判断某个特征是否必要。

如果是负数,说明该特征绝对不能少,因为缺少了就无法拟合数据。如果是1,表示少了也无所谓,有一个跟它相关联的特征能代替它,如果是0到1间的其他数,则可以少,只是有一定的影响,越靠近0,影响越大。

也可以通过散布矩阵(scatter matrix)来可视化特征分布,如果一个特征是必须的,则它和其他特征可能不会显示任何关系,如果不是必须的,则可能和某个特征呈线性或其他关系。

  散布矩阵图举例

数据预处理

(一)特征缩放如果数据特征呈偏态分布,通常进行非线性缩放。

可以发现散布矩阵变成了下图

特征缩放后的散布矩阵

(二)异常值检测通常用Tukey的定义异常值的方法检测异常值。

移除异常值需要具体情况具体考虑,但是要谨慎,因为我们需要充分理解数据,记录号移除的点以及移除原因。可以用counter来辅助寻找出现次数大于1的离群点。

(三)特征转换特征转换主要用到主成分分析发,请查看之前介绍。

聚类

有些问题的聚类数目可能是已知的,但是我们并不能保证某个聚类的数目对这个数据是最优的,因为我们对数据的结构是不清楚的。但是我们可以通过计算每一个簇中点的轮廓系数来衡量聚类的质量。数据点的轮廓系数衡量了分配给它的簇的相似度,范围-1(不相似)到1(相似)。平均轮廓系数为我们提供了一种简单地度量聚类质量的方法。下面代码会显示聚类数为2时的平均轮廓系数,可以修改n_clusters来得到不同聚类数目下的平均轮廓系数。

 

拓端tecdat|python聚类算法的应用实例相关推荐

  1. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  2. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  3. 用python做简单的聚类分析案例_Python聚类算法之DBSACN实例分析

    本文实例讲述了Python聚类算法之DBSACN.分享给大家供大家参考,具体如下: DBSCAN:是一种简单的,基于密度的聚类算法.本次实现中,DBSCAN使用了基于中心的方法.在基于中心的方法中,每 ...

  4. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  5. python 聚类算法包_Python聚类算法之DBSACN实例分析 python怎么用sklearn包进行聚类

    python 怎么可视化聚类的结果 science 发表的聚类算法的python代码 测试数据长什...说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或None值引起的. 解决办法是把 ...

  6. 10种Python聚类算法完整操作示例(建议收藏

    来源:海豚数据科学实验室 著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 !!文末附每日小知识点哦!! 聚类或聚类分析是无监督学习问题.它通常被用作数据分析技术,用于发现数据中的有趣模 ...

  7. python 散点图聚类,【聚类算法】10种Python聚类算法完整操作示例(建议收藏

    点击上方,选择星标,每天给你送干货! 来源:海豚数据科学实验室著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 聚类或聚类分析是无监督学习问题.它通常被用作数据分析技术,用于发现数据中的 ...

  8. 聚类算法应用场景实例十则

    本文整理了10个天池.DataCastle.DataFountain等中出现的,可使用聚类算法处理的问题场景实例. 1 基于用户位置信息的商业选址 随着信息技术的快速发展,移动设备和移动互联网已经普及 ...

  9. Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享

    Django 官网 有详细的使用说明,这里只做简单记录. 1.起因 Java 项目用到了 Python 的类库,使用jython-standalone在 idea 里可以调用,但是部署时模块无法找到, ...

  10. python聚类算法中x是多维、y是一维怎么画图_基于Python的数据可视化:从一维到多维...

    目录 一.iris数据集介绍 二.一维数据可视化 三.二维数据可视化 四.多维数据可视化 五.参考资料 一.iris数据集介绍 iris数据集有150个观测值和5个变量,分别是sepal length ...

最新文章

  1. keil5函数 默认返回值_C++的返回值return
  2. 小米Android N新功能,快升级牛轧糖 小米Android N支持汇总
  3. 什么是认证、授权、会话
  4. 揭秘大流量场景下发布如「丝般顺滑」背后的原因
  5. SQL存储过程与自定义函数实例
  6. 在webstorm中新建模板
  7. 阿里centos php版本升级
  8. 介绍Unity中相机的投影矩阵与剪切图像、投影概念
  9. 浪潮存储进逼国际一线厂商
  10. virtualbox安装Windows 7 64位旗舰版 (包含镜像文件)
  11. linux搭建dlna媒体服务器,Serviio:一款功能强大的DLNA媒体服务器软件
  12. 汽车CAN总线技术详解
  13. 【大数据技术干货】(还不懂数仓,数据中心?看这一篇就够了!)在实际的开发生产中,让你了解企业级数据中心整体架构(DB+ETL+ODS+DW+DM)的各个层次的过程详解,数据联系及功能区分
  14. 程序猿成长之路之密码学篇-DES介绍
  15. 有没有便宜一点的网站服务器,有便宜一点的云服务器卖吗
  16. C3P0Util 的制作 及DButils 中的 QueryRunner 类的使用
  17. Duplicate Finder for Mac 1.4.3 重复文件查找和删除 破解版下载
  18. 计算机组成原理——指令流水线数据通路和控制逻辑
  19. 重庆大学计算机学院与马云,相聚计科,执梦起航——重庆大学计算机学院2020级研究生迎新会圆满结束...
  20. 中国企业NAS行业市场供需与战略研究报告

热门文章

  1. XCode帮助文档离线下载解决办法
  2. 我的Android进阶之旅------Android ListView优化详解
  3. 本人做的电子地图效果图
  4. AjaxControlToolkit的CalendarExtender的本地化
  5. 【熵】熵,KL散度,交叉熵,最大熵模型
  6. sql group by统计
  7. Ubuntu 12.04 root默认密码? 如何使用root登录?
  8. 在Windows下的路径分隔符和Linux下的路径分隔符是不一样的
  9. 对volatile不具有原子性的理解
  10. Android Studio 第五十五期 - Studio3.0升级到gradle3.0.0后API失效方案