热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

推荐系统的定义及现状

推荐系统的定义及现状推荐系统的定义及现状推荐系统的定义及现状推荐系统将会占据每一家的公司的命脉位置推荐系统将会成为未来商家必经之路推荐系统将会改变咱们的生活Artificialin

推荐系统的定义及现状推荐系统的定义及现状




  • 推荐系统将会占据每一家的公司的命脉位置
  • 推荐系统将会成为未来商家必经之路
  • 推荐系统将会改变咱们的生活


Artificial intelligence (Al, also machine intelligence, MI) is intelligence exhibited by machines, rather than humans or other animals (natural intelligence, Nl). In computerscience, the field of Al research defines itself as the study of “intelligent agents”: any device that perceives its environment and takes actions that maximize its chance of success at some goal.[1] Colloquially, the term Martiician niengerith athar himana machine mimics " cognitive" functions that humans associate with other human minds, such as “learning” and "problem solving” .


从机器角度执行具体任务的目标最大化过程就是人工智能的表现。


在这里插入图片描述



推荐系统是指通过人工和非人工向用户建议购买/浏览物品的有规律行动。




IMDB(数据集)

lnternet Movie Database【媒体库】

  • 440万个影片信息
  • 包含电影、综艺、电视剧等节目详细信息
  • 电影数据挖掘从业者必爬的网站

lnternet Movie Database【用户资源】

  • 7千6百万个注册用户
  • 专业电影看客比去的门户网站
  • 通过增值服务盈利


在这里插入图片描述

IMDB 打分规则

在这里插入图片描述

w = weighted rating
R= average for the movie as a number from 1 to 10 (mean) = (Rating)
v = number of votes for the movie = (votes)
m = minimum votes required to be listed in the Top 250(currently25,000)
C = the mean vote across the whole report (currently 7.0)

在这里插入图片描述

IMDB的优势


  • 最悠久的历史【27年】
  • 最忠实的用户群体
  • 最完整的电影信息



Netflix Algorithms


  • Personalized Video Ranker
  • Top-N Video Ranker
  • Trending Now
  • Continue Watching
  • Video-Video Similarity
  • Page Generation: Row Selection and Ranking
  • Evidence
  • Search



个性化推荐算法


  • 人口属性

  • 地理属性

  • 资产属性

  • 兴趣属性 ·

如果能获得上诉所有的属性,用最简单的推荐算法即可。



数据衍生的推荐算法


  • 协同过滤推荐算法
  • 基于内容的推荐算法
  • 混合推荐算法
  • 流行度推荐算法


为推荐系统选择正确的推荐算法是非常重要的决定。

目前为止,已经有许多推荐算法可供选择,但为你需要解决的特定问题选择一种特定的算法仍然很困难。

每一种推荐算法都有其优点和缺点,当然也有其限制条件,在作出决定之前,你必须要一一考量。

在实践中,你可能会测试几种算法,以发现哪一种最适合你的用户,测试中你也会直观地发现它们是什么以及它们的工作原理。



基于内存的协同过滤(距离)基于内存的协同过滤(距离)()

相似统计的方法得到具有相似兴趣爱好的邻居用户

UCF
ICF

距离算法


欧几里得距离(Euclidean Distance)以及欧式距离的标准化:欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。


马哈拉诺比斯距离( Mahalanobis Distance)
曼哈顿距离(Manhattan Distance)
切比雪夫距离(Chebyshev Distance)
明可夫斯基距离( Minkowski Distance)
海明距离((Hamming distance)

用人工的方法进行度量




基于邻域的协同过滤(相似度)基于邻域的协同过滤(相似度)()

余弦相似度(Cosine Similarity)以及调整余弦相似度(Adjusted Cosine Similarity)
皮尔森相关系数(Pearson Correlation Coefficient)
Jaccard相似系数(Jaccard Coefficient)
Tanimoto系数(广义Jaccard相似系数)
对数似然相似度/对数似然相似率
互信息/信息增益,相对嫡/KL散度
信息检索–词频-逆文档频率(TF-IDF)
词对相似度–点间互信息



基于模型的协同过滤基于模型的协同过滤

先用历史数据得到一个模型,再用此模型进行预测。基于模型的推荐广泛使用的技术包括神经网络等学习技术、潜在语义检索(latent seman2tic indexing)和贝叶斯网络( bayesian networks).

用关联算法做协同过滤


用聚类算法做协同过滤


用分类算法做协同过滤


用回归算法做协同过滤


用矩阵分解做协同过滤


用神经网络做协同过滤


用图模型做协同过滤


用隐语义模型做协同过滤




聚类


K-Means

K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means算法有大量的变体,本文就从最传统的K-Means算法研起,仕具垫础上讲述K-Means的优化变体方法。包括初始化优化K-Means++,距离计算优化elkan K-Means算法和大数据情况下的优化Mini Batch K-Means算法。

BIRCH

BIRCH的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative Reducing andClustering Using Hierarchies),它是用层次方法来聚类和规约数据



用分类算法做协同过滤用分类算法做协同过滤


逻辑回归原理(用户排序)

如果我们根据用户评分的高低,将分数分成几段的话,则这个问题变成分类问题。比如最直接的,设置一份评分阈值,评分高于阈值的就是推荐,评分低于阈值就是不推荐,我们将问题变成了一个二分类问题。虽然分类问题的算法多如牛毛,但是目前使用最广泛的是逻辑回归

  • 朴素贝叶斯算法

矩阵分解

在这里插入图片描述

神经网络

在这里插入图片描述
在这里插入图片描述

协同过滤优点


  • 实现快
  • 对商品和用户没有要求
  • 效果有保证

协同过滤缺点


  • 冷启动
  • 马太效应
  • 推荐解释模糊



scikit-Learn

Machine Learning in Python
源于Google竞赛算法

  • Simple and efficient tools for data mining and data analysis
  • Accessible to everybody, and reusable in yarious contexts)
  • Built on NumPy,SciPy, and matplotlib
  • Open source, commercially usable - BSD license



类目




  • Supervised learning
  • Unsupervised learning



  • Model selection and evaluation



  • Dataset transformations
  • Dataset loading utilities



  • Strategies to scale computationally: bigger data
  • Computational Performance



基础规则推荐算法


  • k-means
  • mini-batch k-means
  • Birch
  • 相似度计算



数据集:MovieLens


基于划分聚类算法(partition clustering)

在这里插入图片描述

基于层次聚类算法:

在这里插入图片描述

基于密度聚类算法:

在这里插入图片描述

K-means


1.随机选择k个初始质心;


2.如果没有满足聚类算法终止条件,则继续执行步骤3,否则转步骤5;


3.计算每个非质心点p到k个质心的欧几里德距离,将p指派给距离最近的质心;


4.根据上一步的k个质心及其对应的非质心点集,重新计算新的质心点,然后转步骤2;


5.输出聚类结果,算法可以执行多次,使用散点图比较不同的聚类结果。



在这里插入图片描述



调优方向


  • 重新分析数据
  • 重选择算法
  • 重新理解数据



关联规则算法关联规则算法




1.Apriori

Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策。比如在常见的超市购物数据集,或者电商的网购数据集中,如果我们找到了频繁出现的数据集,那么对于超市,我们可以优化产品的位置摆放,对于电商,我们可以优化商品所在的仓库位置,达到节约成本,增加经济效益的目的。

“啤酒与尿布”的故事

1993年美国学者Agrawal提出通过分析购物篮中的商品集合,从而找出商品之间关联关系的关联算法,并根据商品之间的关系,找出客户的购买行为,Agrawal从数学及计算机算法角度提出了商品关联关系的计算方法——Apriori算法。

沃尔玛从上个世纪90年代尝试将Aprior算法引入到POS机数据分析中,并获得了成功,于是产生了“啤酒与尿布”的故事。

如何寻找?

在历史购物记录中,一些商品总是在一起购买。但人看上去不是那么的直观的,而是隐蔽的。

让计算机做这事,设计算法让计算机自动去找,我到这样的模式(规律)。

目标:寻找那些总是一起出现商品。

mahout实战一>机器学习实战《mahout实战》与《机器学习实战》一起该买的记录数占所有商品记录总数的比例一一支持度(整体)买了《mahout实战》与《机器学习实战》一起该买的记录数占所有购买《mahout实战》记录数的比例一一置信度(局部)需要达到一定的阈值支持度、置信度越大,商品出现一起购买的次数就越多,可信度就越大。支持度:在所有的商品记录中有2%量是购买《mahout实战》与《机器学习实战》
置信度:买《mahout实战》的顾客中有60%的顾客购买了《机器学习实战》作用:找到商品购买记录中反复一起出现的商品,帮能助营销人员做更好的策略,帮助顾客方便购买。策略:
1、同时购买的商品放一起
2、同时购买的商品放两端支持度、置信度转化为数学语言进行计算:
A表示《mahout实战》
B表示《机器学习实战》support(A->B)= P(AB) (《mahout实战》和《机器学习实战》一起买占总的购买记录的比例)
confidence(A->B)=P(A|B) (购买了《mahout实战》后,买《机器学习实战》占的比例)项集:项的集合称为项集,即商品的组合。
k项集: k件商品的组合,不关心商品件数,仅商品的种类。
项集频率:商品的购买记录数,简称为项集频率,支持度计数。
注意,定义项集的支持度有时称为相对支持度,而出现的频率称为绝对支持度。
频繁项集:如果项集的相对支持度满足给定的最小支持度阈值,则该项集是频繁项集.
强关联规则:满足给定支持度和置信度阈值的关联规则明确问题
1、要找总是在一起出现的商品组合—
2、提出衡量标准支持度、置信度(达到一定的阀值)
3、给出支持度、置信度直观计算方法
4、在计算方法中起决定因素的是频繁项集
5、由频繁项集轻松找到强关联规则找关联规则--------->找频繁项集步骤:
1.找出所有的频繁项集;这个项集出现的次数至少与要求的最小计数一样。如在100次购买记录中,至少一起出2.由频繁项集产生强关联规则;这些关联规则满足最小支持度与最小置信度。



2.FPGROWTH

FpGrowth算法通过构造一个树结构来压缩数据记录,使得挖掘频繁项集只需要扫描两次数据记录,而且该算法不需要生成候选集合,所以效率会比较高



推荐阅读
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 本文探讨了在当前开发环境中使用Django 1.5和Python 3.3的情况下,如何解决AWS和GAE仅支持Python 2.7的问题,并提供了相应的解决方案。 ... [详细]
  • 本文介绍了如何在Spring框架中配置和使用定时任务,包括初始化配置和动态启动定时器的方法。通过示例代码展示了如何利用Spring的TaskScheduler接口来创建和管理定时任务。 ... [详细]
  • 本文详细介绍了如何通过配置 Chrome 和 VS Code 来实现对 Vue 项目的高效调试。步骤包括启用 Chrome 的远程调试功能、安装 VS Code 插件以及正确配置 launch.json 文件。 ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • 本文深入探讨了HTML5中十五个重要的新特性,为开发者提供了详细的指南。 ... [详细]
  • HDU1085 捕获本·拉登!
    问题描述众所周知,本·拉登是一位臭名昭著的恐怖分子,他已失踪多年。但最近有报道称,他藏匿在中国杭州!虽然他躲在杭州的一个洞穴中不敢外出,但近年来他因无聊而沉迷于数学问题,并声称如果有人能解出他的题目,他就自首。 ... [详细]
  • 本文探讨了一个在Spring项目中常见的问题——当pom.xml文件中引入了servlet依赖但未指定其作用域为provided时导致的应用启动失败。文章详细分析了错误原因,并提供了有效的解决方案。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • 计算机视觉初学者指南:如何顺利入门
    本文旨在为计算机视觉领域的初学者提供一套全面的入门指南,涵盖基础知识、技术工具、学习资源等方面,帮助读者快速掌握计算机视觉的核心概念和技术。 ... [详细]
  • 本文介绍了多种将多行数据合并为单行的方法,包括使用动态SQL、函数、CTE等技术,适用于不同的SQL Server版本。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 本文整理了关于Sia去中心化存储平台的重要网址和资源,旨在为研究者和用户提供全面的信息支持。 ... [详细]
author-avatar
胡萝卜咯198408
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有