对于大型的推荐系统,直接上协同过滤或者矩阵分解的话可能存在计算复杂度过高的问题,这个时候可以考虑用聚类做处理,其实聚类本身在机器学习中也常用,属于是非监督学习的应用,我们有的只是一组组数据,最终我们要把它们分组,但是前期没有任何的先验知识告诉我们那个点是属于那个组的。

当我们有足够的数据的时候可以考虑先用聚类做第一步处理,来缩减协同过滤的选择范围,从而降低复杂度。

对了还想起来机器学习里面也经常用聚类的方式进行降维。这个在机器学习笔记部分后期我会整理。

最终,每个聚类中的用户,都会收到为这个聚类计算出的推荐内容。聚类的话也有很多种方法时间,今天是整理最简单的那个姿势:K-MEANS

K-MEANS聚类算法是非常常用的聚类算法。它出现在很多介绍性的数据科学和机器学习课程中。在代码中很容易理解和实现!

  1. 首先,选择一些类/组来使用并随机地初始化它们各自的中心点。要想知道要使用的类的数量,最好快速地查看一下数据,并尝试识别任何不同的分组。中心点是与每个数据点向量相同长度的向量,在上面的图形中是“X”。
  2. 每个数据点通过计算点可每个组中心之间的距离进行分类,然后将这个点分类为最接近它的组。
  3. 基于这些分类点,我们通过去组中所有向量的均值来重新计算中心。
  4. 对一组迭代重复这些步骤。你还可以选择随机初始化组中心几次,然后选择那些看起来对他提供好结果的来运行。

K-MEANS聚类算法的优势在于它的速度非常快,因为我们所有的只是计算点和集群中心之间的距离,它有一个线性复杂度O(n)[注意不是整体的时间复杂度]。

另一方面,K-MEANS也有几个缺点。首先,你必须选择有多少组/类。这并不是不重要的事,理想情况下,我们希望它能帮我门解决这些问题,因为他的关键在于从数据中国的一些启示,K-MEANS也从随机的聚类中心开始,因此在不同的算法运行中可能产生不同的聚类结果。因此,结果可能是不可重复的,并且缺乏一致性。其他聚类方法更加一致。

K-Medians是另一种与K-MEANS有关的聚类算法,除了使用均值的中间值来重新计算数组中心点以外,这种方法对于离散值的民高度较低(因为使用中值),但对于较大的数据集来说,它要慢得多,因为在计算中值向量时,每次迭代都需要进行排序。

推荐算法-聚类-K-MEANS相关推荐

  1. 算法-聚类-K均值与模糊K均值:原理+python代码

    这篇文章是根据作业修改后得到的,个人感觉写的比较详细了.但还有许多不足,希望大家评论指出. K均值聚类与模糊K均值 1. 算法原理及流程 相关名词解释如表1. 表1-相关名词解释 1.1 K均值算法原 ...

  2. 推荐算法-聚类-层次聚类法

    层次聚类算法实际上分为两类:自上而下或自下而上.自下而上的算法在一开始就将每个数据点视为一个单一的聚类,然后依次合并(或聚集)类.直到所有类合并成一个包含所有数据点的单一聚类.因此,自下而上的层次聚类 ...

  3. 推荐算法-聚类-DBSCAN

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法,类似于均值转移聚类算法,但 ...

  4. 推荐算法-聚类-均值偏移聚类(爬山算法)

    均值偏移(Mean shift)聚类算法是一种基于滑动窗口(sliding-window)的算法,它视图找到密集的数据点.而且,它还是一种基于中心的算法,他的目标是定位每一组群/类的中心点,通过更新中 ...

  5. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  6. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  7. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  8. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  9. 基于聚类的推荐算法笔记——以豆瓣电影为例(三)(附源代码)

    基于聚类的推荐算法笔记--以豆瓣电影为例(三)(附源代码) 第一章 聚类算法介绍 基于聚类的推荐算法笔记一 第二章 数据介绍 基于聚类的推荐算法笔记二 第三章 实现推荐算法 基于聚类的推荐算法笔记三 ...

最新文章

  1. alpine 编译c语言,Docker alpine中编译和测试Go RocketMQ Client
  2. 书脊开胶了用什么胶粘_画册印制1万本,结果一本不能用,这些问题你注意了吗...
  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前进实验调试
  4. 电影推荐_亲和性分析_规则提取(数据挖掘入门与实践-实验6)
  5. Nexus 安装(Linux 环境)
  6. linux grep 匹配空格_17 个案例,5 分钟简单搞定 Linux 正则表达式!
  7. 信息学奥赛一本通 1411:区间内的真素数 | OpenJudge NOI 1.13 23:区间内的真素数
  8. 多路平衡归并和败者树
  9. 基于51单片机的八位流水灯(三种形式)
  10. Facebook开源了两个无监督翻译模型,只用单语就能训练双语
  11. 【tf.keras.utils.Sequence】构建自己的数据集生成器
  12. php+access源码,php操作access源码
  13. 认知无线电网络中的频谱切换理论
  14. echarts实现山东地图可放大缩小可下钻
  15. 问题解决:IndentationError: expected an indented block
  16. Linux服务器间信任关系建立方法
  17. 如何使用免费的WordPress FooGallery插件创建图像库
  18. Java面向对象知识点总结
  19. 工业锅炉计算机控制系统框图,锅炉控制(汇总).ppt
  20. 采购很容易,油水又多?那你来啊

热门文章

  1. 一名作曲专业毕业生的安全架构师之路
  2. ABP 重写主键ID
  3. ORCLE 表中列的修改(非常全面哦)
  4. Spring注解使用方法
  5. SVN在centos5.4的安装步骤:
  6. C#里的委托和事件实现 (转)
  7. 解决vuex页面刷新导致数据丢失问题
  8. 为什么用B+树做索引MySQL存储引擎简介
  9. 生成ssh key (Mac Linux )
  10. SQLite简易入门