4.6 无监督学习—K

阅读: 评论:0

4.6 无监督学习—K

4.6 无监督学习—K

文章目录

    • 4.6.1 什么是无监督学习
    • 4.6.2 无监督学习包含算法
    • 4.6.3 K-means原理
    • 4.6.4 K-meansAPI
    • 4.6.5 案例:k-means对Instacart Market用户聚类
      • 1. 分析
      • 2. 代码
    • 4.6.6 Kmeans性能评估指标
      • 1. 轮廓系数
      • 2. 轮廓系数值分析
      • 3. 结论
      • 4. 轮廓系数API
      • 5. 用户聚类结果评估
    • 4.6.7 K-means总结
    • 每日作业

4.6.1 什么是无监督学习

  • 一家广告平台需要根据相似的人口学特征和购买习惯将美国人口分成不同的小组,以便广告客户可以通过有关联的广告接触到他们的目标客户
  • Airbnb 需要将自己的房屋清单分组成不同的社区,以便用户能更轻松地查阅这些清单。
  • 一个数据科学团队需要降低一个大型数据集的维度的数量,以便简化建模和降低文件大小

我们可以怎样最有用地对其进行归纳和分组?我们可以怎样以一种压缩格式有效地表征数据?这都是无监督学习的目标,之所以称之为无监督,是因为这是从无标签的数据开始学习

4.6.2 无监督学习包含算法

  • 聚类
    K-means(K均值聚类)
  • 降维
    PCA

4.6.3 K-means原理

我们先来看一下一个K-means的聚类效果图

K-means聚类步骤

  • 1、随机设置K个特征空间内的点作为初始的聚类中心
  • 2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别
  • 3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)
  • 4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第二步过程

我们以一张图来解释效果

4.6.4 K-meansAPI

sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)

  • k-means聚类
  • n_clusters:开始的聚类中心数量
  • init:初始化方法,默认为’k-means ++’
  • labels_:默认标记的类型,可以和真实值比较(不是值比较)

4.6.5 案例:k-means对Instacart Market用户聚类

k=3

1. 分析

在 2.6 主成分分析小节中,我们进行了数据合并和降维,之后我们进行

  1. 预估器流程
  2. 看结果
  3. 模型评估

2. 代码

# 预估器流程
from sklearn.cluster import KMeans
estimator = KMeans(n_clusters=3)
estimator.fit(data_new)y_predict = estimator.predict(data_new)
y_predict[:300]
# 看前300个数据的分类
  • 输出
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 2,2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0,2, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0,2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0,0, 0, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2], dtype=int32)

4.6.6 Kmeans性能评估指标

1. 轮廓系数

注:对于每个点i 为已聚类数据中的样本 ,b_i 为i 到其它族群的所有样本的距离最小值,a_i 为i 到本身簇的距离平均值。最终计算出所有的样本点的轮廓系数平均值
b_i—外部距离
a_i—内部距离

2. 轮廓系数值分析

分析过程(我们以一个蓝1点为例)

  • 1、计算出蓝1离本身族群所有点的距离的平均值a_i
  • 2、蓝1到其它两个族群的距离计算出平均值红平均,绿平均,取最小的那个距离作为b_i
  • 根据公式:极端值考虑:
    如果b_i >> a_i: 那么公式结果趋近于1;
    如果a_i >> b_i: 那么公式结果趋近于-1

3. 结论

  • 如果b_i>>a_i:趋近于1效果越好,b_i<<a_i:趋近于-1,效果不好
  • 轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。

4. 轮廓系数API

  • 计算所有样本的平均轮廓系数
  • X:特征值
  • labels:被聚类标记的目标值

代码

# 模型评估--轮廓系数
ics import silhouette_score
silhouette_score(data_new,y_predict)

输出
0.5394164432077544

5. 用户聚类结果评估

silhouette_score(cust, pre)

4.6.7 K-means总结

  • 特点分析:采用迭代式算法,直观易懂并且非常实用
  • 缺点:容易收敛到局部最优解(多次聚类 避免)
  • 应用场景:没有目标值的分类,聚类一般做在分类之前

每日作业

  • 1、线性回归的参数求解的方法是什么?
    答案: 正规方程和梯度下降
  • 2、什么是过拟合? 原因有哪些?
    答案: 过拟合就是训练误差很小,但是测试误差很大
    原因有: 样本偏差, 模型过于复杂
  • 3、分类问题, 回归问题, 聚类问题的评估方法分别是什么?
    答案: 分类问题的评估方法是准确率, 精确率和召回率
    回归问题的评估方法是均方差
    聚类问题的评估方法是轮廓系数

本文发布于:2024-02-01 19:37:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170678742238971.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23