算法模型好坏的评价通用标准:

1、解的精确性与最优性。基于正确性基础上。

2、计算复杂度,时间成本。

3、适应性。适应变化的输入和各种数据类型。

4、可移植性。

5、鲁棒性。健壮性。

   鲁棒性(robustness)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。

关于推荐系统的设计:参考文章1

自始至终需要关注两件事:目标、测量方法。

一个电子商务网站推荐系统设计与实现——硕士论文分析

一、应用场景

1、网站首页、新品推荐:采用item相似度策略推荐。目标:提供新颖商品。

2、商品详情、看过的还看过,看过的还买过:采用频繁项集挖掘推荐。目的:降低商品寻求成本,提高体验、促进购买。

3、网站购物车、买过的还买过:频繁项集挖掘。目的:提高客单价。

4、网站会员中心、与用户浏览历史相关商品:item相似度。目的:提升复购率。

5、商品收藏栏、搜索栏、品牌栏、品类栏:item相似度。目的:获取用户更多反馈;帮助用户发现需求;完善内链结构,流畅页面跳转;完善品类之间内链结构,流畅跳转。

二、推荐系统核心问题

三个核心要素:用户、商品、推荐系统。

用户特征分析:行为特征、兴趣特征。

用户不同特征以不同形式存储在不同介质中:注册信息存储在关系型数据库、行为数据存储在web日志中。

开发时,需要将这些数据进行清理,然后转换到统一的用户偏好数据库中。

商品特征:基本特征、动态特征。

基本特征:品牌、品类、颜色、型号、尺寸、性别等。

动态特征:销量、库存、市场价格、浏览次数、加购物车次数等。

补充说明:如果商品不能直接说明用户的兴趣特征,比如电影、图书,则可以通过用户的标签系统进行推荐。

或者通过协同过滤算法进行推荐,因为协同过滤算法不需要依赖商品自身的特征属性。

用户和商品一般具有三种关系:这是推荐系统工作的依据。

用户--喜欢--商品--相似--商品:基于item的推荐系统思想。

用户--相似--用户--喜欢--商品:协同过滤算法思想。

用户--喜欢--特征--包含--商品:基于标签和知识的推荐系统思想。

协同过滤算法优缺点:

优点:对推荐对象没有特别要求,不需要结构化可描述。适合电影、音乐、视频等非结构化对象的推荐。

缺点:需要大量用户历史数据,存在新用户、新商品、冷启动、数据稀疏等问题。

基于内容的推荐算法:根据用户浏览或者购买过的商品的特征,分析用户兴趣偏好模型,推荐相似特征商品。

优点:不需要其他用户数据支持;推荐的理由容易解释,因为是基于当前用户的行为;可以推荐新商品给用户,协同过滤做不到。

缺点:商品特征是有限的,不完备的,提取特征需要相关背景知识;过于规范化,只会推荐相似特征内的商品,高度依赖特征的提取;新用户问题,新用户数据不够,推荐效果不好。

基于知识的推荐系统:针对历史数据少,用户有明确购买要求的情况。比如买车买房、买手机电脑等,频次低、目的明确。需要商品的专业知识。

优点:不依赖用户历史数据,解决协同过滤和基于知识推荐算法不能应用的场景。

缺点:依赖商品的专业知识,用户需求越明确,商品知识越全面,匹配度越高,否则,推荐效果越差。数据获取不容一,不容易建模。

三、推荐系统中的数据挖掘方法

数据预处理:将非结构化的数据结构化,进行清理、转化、提取等操作。

常见预处理方法:采样、去噪、降维、计算相似度。

四、推荐系统整体架构

共四层:数据层、算法层、接口层、应用层。

数据层:数据存储、清理、分析、挖掘。为算法层提供数据基础。

算法层:系统核心模块,上述推荐系统算法都处于这一层,推荐算法有离线和在线,这些算法通过通过接口层对外提供统一服务。

接口层:调用算法层的接口。

应用层:调用接口层,实现具体的推荐结果。

推荐系统的核心部分是:数据层的用户行为建模+算法层的推荐算法设计。

五、典型场景下推荐系统内部处理流程

六、推荐数据生成流程

七、去噪

通过IP黑名单过滤:办公网络的在线测试引起的频繁访问、竞争对手的恶意攻击、网络爬虫的访问。

cookie的会话ID:IP黑名单过滤可能屏蔽掉一个局域网的用户,造成误杀。如果cookie的ID一段时间内访问高出正常值很多倍,则可以加入黑名单。

通过网站注册用户ID过滤:恶意用户会在网站注册成百上千的账号,造成大量下单;可以通过cookie查看这些ID,加入黑名单。

短时间大量购买行为:从业务角度将,短时间大量购买成百上千件商品,是极不正常的,应加入黑名单。

八、使用语言:java、python、php

python分析web日志;

java编写推荐算法;

php写网站和推荐接口。

九、数据存储

web日志采用gzip压缩,存储在mongodb和mysql数据库中。

mongodb存储半结构化数据;mysql存储结构化数据,包括商品数据、交易数据、用户数据、挖掘之后的数据。

mongldb是基于分布式文件存储的数据库。

十、技术选型

Nginx是一个高性能的web http服务器。

Varnish缓存是一个http加速器。

LVS采用IP负责均衡和基于内容的请求分发技术。将一组服务器构成一个高效的虚拟服务器。

thrift是一个软件框架,用来进行可扩展、跨语言服务的开发。能支持C++、java、python、javascript、nodejs等等几乎所有编程语言的无缝对接。

十一、用户行为分析与建模

分析web日志,对用户行为进行建模。

分析web日志的意义:

网站KPI指标分析;

用户行为建模;

蜘蛛行为分析:除了百度、google、360等大蜘蛛,还有小蜘蛛,通过分析可以优化搜索引擎,提高免费流量来源。

恶意行为分析;

网站故障监控;

网站性能监控。

常用日志分析方法:

1、通过命令话shell:grep、sort、awk,快速找出我们关心的内容。

如果需要进行大量重复的统计时,需要将非结构化的日志文件转化为结构化的日志,叫做数据抽取转换加载(ETL),则通常由程序完成。

2、python/perl程序:利用正则匹配函数,解析日志信息,完成数据预处理。

日志格式设计:

清理后的结构化数据可以存为keyvalue形式,l类似与json的bson,存储在mongodb.

十二、用户身份识别和关联行为

用户没有登陆之前的浏览行为,通过cookie的sessionID来记录,这个sessionID是唯一的。

十三、用户偏好数据结构设计

影响用户偏好很重要的因素是:用户行为的频次和时效性。

十四、外部应用接口设计

thrift服务端和客户端。

服务器断由php实现,客户端由php、java、python实现。

用以上语言定义相应接口函数即可。

十五、推荐系统测试与评估

如果在正确位置显示推荐栏,则表示测试通过。

评估分为离线、在线两种方式。

离线评价标准有正确率和召回率;在线有AB测试、点击率、转化率。

参考文章:

1、http://wenku.baidu.com/link?url=4yjk6CROKvS8tdcckFiKQHKXpMxyej-I9xcYGO--ai7Ar3hwMTBcLp2djwuBh3M5uhG15m1RfB_GXMjCNKuAvflUL211cV-n2MfR3JC2NpK

(一个电子商务网站推荐系统设计与实现的硕士论文)

算法模型好坏、评价标准、算法系统设计相关推荐

  1. 数据指标体系:指标好坏评价标准

    关于指标体系构建的方法论非常多,基于实际业务场景加上方法指导都可以照猫画虎地构建出自己的指标体系.但光有了所谓的指标体系不是终极目标,想要更加高效的数据驱动决策.数据赋能业务运营,指标好坏的评价标准是 ...

  2. 计算机算法优劣的主要标准,算法的评价指标有哪些 ?

    1.时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量.一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做. 2.空间复杂度 算法的空间复杂度是指算法需要消耗的内存空 ...

  3. 线性回归算法模型与线性分类算法模型联系与区别初探

    1. 线性算法模型 0x1:线性回归和线性分类中的"线性"指的是什么 线性(linear),指量与量之间按比例.成直线的关系,在数学上可以理解为一阶导数为常数的函数: 非线性(no ...

  4. 朴素贝叶斯算法+模型的评价-查准率、召回率、F1-score及混淆矩阵(code实现)

    1.介绍 朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法. 朴素:特征条件独立. 贝叶斯:基于贝叶斯定理.

  5. 机器学习模型质量评价标准 — 精准率、召回率

    1. 分类模型评判指标: Precision.Recall 和 F1Score 对于分类而言,最简单也是最常见的验证指标: 精准率( Precision) 召回率( Recall), 为了综合这两个指 ...

  6. ML/DL:关于机器学习、深度学习算法模型的选择

    ML/DL:关于机器学习.深度学习算法模型的选择 目录 算法思路 算法思路 更新--

  7. 二分类最优阈值确定_分类模型评价标准,AUC还是Macro F1?

    在人工智能领域,分类任务占据了很大的比例,例如物体识别(计算机视觉).信用卡欺诈(数值型预测).情感分析(自然语言处理)等等.针对众多的分类需求,模型的评价标准只是简单的准确率(Accuracy)吗? ...

  8. 《基于海思35xx nnie引擎进行经典目标检测算法模型推理》视频课程介绍

    前言 沉寂两个月,终于将新的视频课程<<基于海思35xx nnie引擎进行经典目标检测算法模型推理>>(其链接为https://edu.csdn.net/course/deta ...

  9. 如何构建阿里小蜜算法模型的迭代闭环?

    简介: 伴随着 AI 的兴起,越来越多的智能产品诞生,算法链路也会变得越来越复杂,在工程实践中面临着大量算法模型的从 0 到 1 快速构建和不断迭代优化的问题,本文将介绍如何打通数据分析 - 样本标注 ...

最新文章

  1. MATLAB批量实现dicom转换为bmp格式
  2. java获取当前时间戳_Java DateTime 获得当前 Unix 的时间戳
  3. Spring新注解详解
  4. SAP Spartacus root.scss里的变量层级引用
  5. JSP+Tomcat+SQL Server 2000+JDBC实现合同信息管理系统
  6. .NET轻量级任务管理类
  7. java实现线性回归(简单明了,适合理解)
  8. e.target 和 e.srcElement 的使用问题
  9. php常量的声明和使用
  10. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式...
  11. python打开浏览器的三种方法
  12. uniapp阿里云图标库如何本地引入
  13. gohost -- go 开发的命令行hosts配置管理工具 1
  14. dijistra算法
  15. 3分钟带你了解Web前端开发工程师需要掌握什么?
  16. python 透明图片合成_python:图片合成(PIL 库Image类模块)
  17. CentOS7开启Google TCP-BBR优化算法
  18. 关于5G的理解:5G的发展历程、5G原理
  19. 关于“基于模型的思想”的一些引述和评论
  20. Ubuntu软件管理、换源、驱动及部分软件安装操作(持续更新)

热门文章

  1. SSD系列(SSD、DSSD、FSSD 、RefineDet)
  2. 做销售必须具备的“三狗”素质
  3. 蜗牛爬井——Erlang版本
  4. 非合同制员工考勤及工资条模板
  5. Arduino极速入门教程——两篇文章让你会用Arduino(下)
  6. linux开机启动挂载nfs,NFS配置及开机自动挂载
  7. Python爬虫教程-10-UserAgent和常见浏览器UA值
  8. 多功能电子听诊器(CMS-VESD)产品使用说明
  9. 使用PptxGenJS框架自定义模板生成PPT文件(1)
  10. 聚类联邦学习的拜占庭鲁棒性