| 作者 |
| [印] 苏雷什·库马尔·戈拉卡拉(Suresh Kumar Gorakala)[英] 戈登·F.威廉姆斯(Gordon F.Williams) |
| 丛书名 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782001061539 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------自己动手做推荐引擎--------------------------- 推荐引擎,是主动发现用户当前或潜在需求,并主动推送信息给用户的信息网络。挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的对象。近些年该技术得到普遍使用,应用于各种应用程序中。因此,更多的开发者开始关注个性推荐引擎的搭建。本书是人工智能数据科学家Suresh Kumar Gorakala经多年实践及研究所著,由浅入深介绍了推荐引擎搭建的方法,并展望了推荐引擎的未来发展。 ---------------------------自己动手做智能产品:嵌入式JavaScript实现--------------------------- 本书将通过简单的嵌入式编程,教会大家如何将日常物品转变为智能机器。当然市场中的ARM编程书籍多为平淡的教科书,相对复杂,编程语言对于初学者存在一定难度,本书采用读者易学易懂的编程语言,并结合实际动手操作来帮助读者实现产品智能化。 |
| 目录 |
---------------------------自己动手做推荐引擎--------------------------- 作者简介 技术评审员简介 前言 第1章 推荐引擎介绍 1 1.1推荐引擎定义 1 1.2推荐系统的必要性 3 1.3大数据对推荐系统的推动作用 4 1.4推荐系统类型 4 1.4.1协同过滤推荐系统 4 1.4.2基于内容的推荐系统 5 1.4.3混合推荐系统 6 1.4.4情境感知推荐系统 7 1.5推荐系统技术的发展 8 1.5.1Mahout在可扩展推荐系统中的应用 8 1.5.2Apache Spark在可扩展实时推荐系统中的应用 9 1.6本章小结 12 第2章 构建第一个推荐引擎 13 2.1构建基础推荐引擎 14 2.1.1载入并格式化数据 15 2.1.2计算用户相似度 17 2.1.3为用户预测未知评级 18 2.2本章小结 24 第3章 推荐引擎详解 25 3.1推荐引擎的发展 26 3.2基于近邻算法的推荐引擎 27 3.2.1基于用户的协同过滤 29 3.2.2基于项目的协同过滤 30 3.2.3优点 32 3.2.4缺点 32 3.3基于内容的推荐系统 32 3.3.1用户画像生成 35 3.3.2优点 36 3.3.3缺点 36 3.4情境感知推荐系统 37 3.4.1情境定义 38 3.4.2前置过滤法 40 3.4.3后置过滤法 40 3.4.4优点 41 3.4.5缺点 41 3.5混合推荐系统 41 3.5.1加权法 42 3.5.2混合法 42 3.5.3层叠法 42 3.5.4特征组合法 42 3.5.5优点 43 3.6基于模型的推荐系统 43 3.6.1概率法 44 3.6.2机器学习法 44 3.6.3数学法 44 3.6.4优点 45 3.7本章小结 45 第4章 数据挖掘技术在推荐引擎中的应用 46 4.1基于近邻算法的技术 47 4.1.1欧氏距离 47 4.1.2余弦相似度 48 4.1.3Jaccard相似度 51 4.1.4皮尔逊相关系数 51 4.2数学建模技术 53 4.2.1矩阵分解 53 4.2.2交替最小二乘法 55 4.2.3奇异值分解 55 4.3机器学习技术 57 4.3.1线性回归 57 4.3.2分类模型 59 4.4聚类技术 69 4.5降维 71 4.6向量空间模型 75 4.6.1词频 75 4.6.2词频-逆文档频率 76 4.7评估技术 78 4.7.1交叉验证 79 4.7.2正则化 80 4.8本章小结 82 第5章 构建协同过滤推荐引擎 83 5.1在RStudio上安装recommenderlab 83 5.2recommenderlab包中可用的数据集 85 5.3探讨数据集 88 5.4使用recommenderlab构建基于用户的协同过滤 89 5.4.1准备训练数据和测试数据 90 5.4.2创建一个基于用户的协同模型 90 5.4.3在测试集上进行预测 92 5.4.4分析数据集 93 5.4.5使用k折交叉验证评估推荐模型 95 5.4.6评估基于用户的协同过滤 96 5.5构建基于项目的推荐模型 99 5.5.1构建IBCF推荐模型 100 5.5.2模型评估 103 5.5.3模型准确率度量 104 5.5.4模型准确率绘图 105 5.5.5IBCF参数调优 107 5.6使用Python构建协同过滤 110 5.6.1安装必要包 110 5.6.2数据源 110 5.7数据探讨 111 5.7.1表示评级矩阵 113 5.7.2创建训练集和测试集 114 5.7.3构建UBCF的步骤 115 5.7.4基于用户的相似度计算 115 5.7.5预测活跃用户的未知评级 116 5.8使用KNN 进行基于用户的协同过滤 117 5.9基于项目的推荐 118 5.9.1评估模型 119 5.9.2KNN训练模型 120 5.9.3评估模型 120 5.10本章小结 120 第6章 构建个性化推荐引擎 121 6.1个性化推荐系统 122 6.2基于内容的推荐系统 122 6.2.1构建一个基于内容的推荐系统 123 6.2.2使用 R语言构建基于内容的推荐 123 6.2.3使用Python语言构建基于内容的推荐 133 6.3情境感知推荐系统 144 6.3.1构建情境感知推荐系统 144 6.3.2使用R语言构建情境感知推荐 145 6.4本章小结 150 第7章 使用Spark构建实时推荐引擎 151 7.1Spark 2.0介绍 152 7.1.1Spark架构 152 7.1.2Spark组件 154 7.1.3Spark Core 154 7.1.4Spark的优点 156 7.1.5Spark设置 156 7.1.6SparkSession 157 7.1.7弹性分布式数据集 158 7.1.8关于ML流水线 158 7.2使用交替最小二乘法进行协同过滤 160 7.3使用PySpark构建基于模型的推荐系统 162 7.4MLlib推荐引擎模块 163 7.5推荐引擎方法 164 7.5.1实现 164 7.5.2基于用户的协同过滤 172 7.5.3模型评估 173 7.5.4模型选择和超参数调优 174 7.6本章小结 179 第8章 通过Neo4j构建实时推荐 180 8.1图数据库种类 181 8.2Neo4j 183 8.2.1Cypher查询语言 184 8.2.2节点语法 184 8.2.3关系语法 185 8.2.4构建第一个图 185 8.3Neo4j Windows安装 192 8.4Neo4j Linux安装 194 8.4.1下载Neo4j 194 8.4.2设置Neo4j 195 8.4.3命令行启动Neo4j 195 8.5构建推荐引擎 197 8.5.1将数据加载到Neo4j 197 8.5.2使用Neo4j生成推荐 200 8.5.3使用欧氏距离进行协同过滤 201 8.5.4使用余弦相似度进行协同过滤 206 8.6本章小结 209 第9章 使用Mahout构建可扩展的推荐引擎 210 9.1Mahout简介 211 9.2配置Mahout 211 9.2.1Mahout单机模式 211 9.2.2Mahout分布式模式 218 9.3Mahout的核心构建模块 220 9.3.1基于用户的协同过滤推荐引擎组件 220 9.3.2使用Mahout构建推荐引擎 223 9.3.3数据描述 223 9.3.4基于用户的协同过滤 225 9.4基于项目的协同过滤 228 9.5协同过滤评估 231 9.6基于用户的推荐评估 231 9.7基于项目的推荐评估 232 9.8SVD推荐系统 235 9.9使用Mahout进行分布式推荐 236 9.10可扩展系统的架构 240 9.11本章小结 241 第10章 推荐引擎的未来 242 10.1推荐引擎的未来 242 10.2推荐系统的发展阶段 243 10.2.1一般的推荐系统 243 10.2.2个性化推荐系统 244 10.2.3未来的推荐系统 245 10.2.4下一个最佳举措 249 10.2.5使用案例 249 10.3流行方法 251 10.4推荐引擎的时效性 252 10.4.1A/B测试 253 10.4.2反馈机制 254 10.5本章小结 255 ---------------------------自己动手做智能产品:嵌入式JavaScript实现--------------------------- 前言 1 第1章 简介 5 为何要将物品智能化 5 在实践中学习 5 利用JavaScript进行创造 6 工具和材料 7 第一部分 微控制器 第2章 微控制器为何物 13 ARM历史 14 利用微控制器编程 15 第3章 Espruino入门 19 准备工作 20 插入接口 21 软件安装 22 连接开发板 24 固件升级 25 命令行初体验 26 编辑器 27 第4章 开启JavaScript之旅 31 准备工作 31 注释 32 数据类型 32 数学计算 33 变量 35 自增与自减 37 对象 38 函数 38 数组 42 面向对象 44 按位运算 45 if语句 51 &&和|| 52 三元操作符 53 for循环 53 异常 55 第二部分 电动机 第5章 什么是电动机 59 实验1:法拉第的电动机 60 实验2:电动机换向器 64 无刷直流电动机 68 实验3:步进电动机 69 实验4:步进电动机控制 72 实验5:多个步进电动机控制 76 第6章 频闪仪 79 找到一个风扇 79 实验6:速度检测 81 实验7:频闪仪 84 实验8:照得更远的频闪仪 86 第7章 约翰·罗杰·贝尔德的电视机 89 实验9:视觉的持续性 89 实验10:约翰·罗杰·贝尔德的电视机 92 第三部分 机电部分 第8章 制作一个简单的机器人 101 实验11:试用伺服电机 102 实验12:制作一个简单的机器人 105 实验13:循光 113 第9章 铅笔绘图仪 117 实验14:铅笔绘图仪 117 第10章 数码针孔相机 131 实验15:制作一个数码相机 131 第11章 打印机 145 实验16:制作一个打印机 145 第四部分 通信 第12章 有线通信 161 时序 161 实验17:制作示波器 163 第13章 切断连线:红外线 169 实验18:制作红外接收器 169 实验19:解码红外线信号 171 实验20:使用解码信号 175 实验21:用dweet.io在网络上使用遥控器 176 实验22:通过IFTTT在网络上使用遥控器 178 第14章 切断连线:无线电信号 181 实验23:连接接收器 182 实验24:连接发射器 183 实验25:从Espruino发射 185 实验26:解码接收的数据 186 第15章 连接无线网络 193 实验27:将WiFi添加到你的Pico 194 实验28:测试你的布线 198 实验29:连接到WiFi 199 实验30:将数据发送到Internet 200 实验31:从Internet接收数据 202 实验32:建立一个服务器 206 控制物品 209 第16章 低功耗蓝牙 213 低功耗蓝牙如何工作 214 如何使用低功耗蓝牙 216 Web Bluetooth 216 实验33:使用Puck.js 217 实验34:制作一个开门计数器 219 实验35:广播开门次数 222 实验36:用Eddystone接收开门次数 223 第五部分 合而为一 第17章 XY绘图仪 229 实验37:制作XY表 229 实验38:控制XY表 235 第18章 联网绘图仪 243 实验39:联网绘图仪 245 第六部分 总结 第19章 未来如何 257 附录A 零件和材料 259 附录B 常见的Espruino命令和变量 271 附录C Espruino汇编 277 |