| 作者 |
| 莫凡钟林森 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782001101456 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------机器学习算法的数学解析与Python实现--------------------------- 本书由资深工程师撰写,系统介绍机器学习中需要的主要数学知识,以及机器学习算法的实现和应用场景,为机器学习初学者制定了如何夯实基础的方案。本书以机器学习的算法为主线,深入剖析算法的概念和数学原理,以通俗形象的语言进行介绍,让读者无需了解太多前置数学知识,就能看懂数学公式的表达意思,从而深度掌握机器学习的思想和原理。主要内容包括:首先介绍机器学习基本概念及工具,然后从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中最主要的算法,如线性回归算法、逻辑回归算法、KNN、朴素贝叶斯、决策分类、支持向量机分类、K-means聚类、神经网络分类、集成学习等。 ---------------------------分布式中间件技术实战(Java版)--------------------------- 《分布式中间件技术实战(Java版)》站在初学者的角度,介绍了几款比较流行的分布式中间件,带领读者从零开始一步一个脚印地学习Java企业级应用开发。书中在讲解必要的理论知识和应用场景后都给出了实际项目案例,可以提高读者的开发水平和项目实战能力。 《分布式中间件技术实战(Java版)》共10章,分为3篇。第1篇开发工具准备,介绍了分布式系统架构的相关知识要点,包括其功能、作用及演进历程,并由此引出了分布式中间件的相关介绍。第2篇开发实战,全面介绍了目前在实际开发中应用比较广泛的几款Java中间件,包括缓存中间件Redis、消息中间件RabbitMQ、统一协调管理中间件ZooKeeper和综合中间件Redisson等,重点介绍了这几款中间件的基本概念、典型应用场景及相应的功能组件等。第3篇总结,对相关内容做了重点回顾与总结。值得一提的是,《分布式中间件技术实战(Java版)》在介绍几款中间件的理论知识时,还以Spring Boot微服务框架作为奠基,整合了相关中间件之间的依赖,并结合作者的实际项目经验进行了代码实战。 《分布式中间件技术实战(Java版)》特别适合中间件实践经验为零的开发者阅读;对于有一定Java应用开发经验的工程师而言,通过阅读《分布式中间件技术实战(Java版)》可以了解中间件在构建企业级应用过程中所提供的思路和解决方案;IT培训机构的学员,也可以通过《分布式中间件技术实战(Java版)》系统地学习中间件技术。 |
| 目录 |
---------------------------机器学习算法的数学解析与Python实现--------------------------- 前言 第1章 机器学习概述 1 1.1 什么是机器学习 1 1.2 机器学习的几个需求层次 3 1.3 机器学习的基本原理 5 1.4 机器学习的基本概念 7 1.4.1 书中用到的术语介绍 7 1.4.2 机器学习的基本模式 11 1.4.3 优化方法 12 1.5 机器学习问题分类 14 1.6 常用的机器学习算法 15 1.7 机器学习算法的性能衡量指标 16 1.8 数据对算法结果的影响 18 第2章 机器学习所需的环境 20 2.1 常用环境 20 2.2 Python简介 21 2.2.1 Python的安装 23 2.2.2 Python的基本用法 24 2.3 Numpy简介 25 2.3.1 Numpy的安装 26 2.3.2 Numpy的基本用法 26 2.4 Scikit-Learn简介 27 2.4.1 Scikit-Learn的安装 28 2.4.2 Scikit-Learn的基本用法 28 2.5 Pandas简介 29 2.5.1 Pandas的安装 30 2.5.2 Pandas的基本用法 31 第3章 线性回归算法 33 3.1 线性回归:“钢铁直男”解决回归问题的正确方法 33 3.1.1 用于预测未来的回归问题 35 3.1.2 怎样预测未来 38 3.1.3 线性方程的“直男”本性 40 3.1.4 最简单的回归问题—线性回归问题 44 3.2 线性回归的算法原理 46 3.2.1 线性回归算法的基本思路 46 3.2.2 线性回归算法的数学解析 48 3.2.3 线性回归算法的具体步骤 53 3.3 在Python中使用线性回归算法 54 3.4 线性回归算法的使用场景 60 第4章 Logistic回归分类算法 61 4.1 Logistic回归:换上“S型曲线马甲”的线性回归 61 4.1.1 分类问题:选择困难症患者的自我救赎 63 4.1.2 Logistic函数介绍 66 4.1.3 此回归非彼回归:“LR”辨析 70 4.2 Logistic回归的算法原理 71 4.2.1 Logistic回归算法的基本思路 71 4.2.2 Logistic回归算法的数学解析 74 4.2.3 Logistic回归算法的具体步骤 78 4.3 在Python中使用Logistic回归算法 78 4.4 Logistic回归算法的使用场景 81 第5章 KNN分类算法 82 5.1 KNN分类算法:用多数表决进行分类 82 5.1.1 用“同类相吸”的办法解决分类问题 84 5.1.2 KNN分类算法的基本方法:多数表决 86 5.1.3 表决权问题 89 5.1.4 KNN的具体含义 89 5.2 KNN分类的算法原理 90 5.2.1 KNN分类算法的基本思路 90 5.2.2 KNN分类算法的数学解析 93 5.2.3 KNN分类算法的具体步骤 94 5.3 在Python中使用KNN分类算法 95 5.4 KNN分类算法的使用场景 96 第6章 朴素贝叶斯分类算法 98 6.1 朴素贝叶斯:用骰子选择 98 6.1.1 从统计角度看分类问题 99 6.1.2 贝叶斯公式的基本思想 102 6.1.3 用贝叶斯公式进行选择 104 6.2 朴素贝叶斯分类的算法原理 106 6.2.1 朴素贝叶斯分类算法的基本思路 106 6.2.2 朴素贝叶斯分类算法的数学解析 108 6.2.3 朴素贝叶斯分类算法的具体步骤 111 6.3 在Python中使用朴素贝叶斯分类算法 111 6.4 朴素贝叶斯分类算法的使用场景 112 第7章 决策树分类算法 114 7.1 决策树分类:用“老朋友”if-else进行选择 114 7.1.1 程序员的选择观:if-else 116 7.1.2 如何种植一棵有灵魂的“树” 118 7.1.3 决策条件的选择艺术 119 7.1.4 决策树的剪枝问题 122 7.2 决策树分类的算法原理 125 7.2.1 决策树分类算法的基本思路 125 7.2.2 决策树分类算法的数学解析 127 7.2.3 决策树分类算法的具体步骤 133 7.3 在Python中使用决策树分类算法 134 7.4 决策树分类算法的使用场景 135 第8章 支持向量机分类算法 137 8.1 支持向量机:线性分类器的“王者” 137 8.1.1 距离是不同类别的天然间隔 139 8.1.2 何为“支持向量” 140 8.1.3 从更高维度看“线性不可分” 142 8.2 支持向量机分类的算法原理 146 8.2.1 支持向量机分类算法的基本思路 146 8.2.2 支持向量机分类算法的数学解析 150 8.2.3 支持向量机分类算法的具体步骤 153 8.3 在Python中使用支持向量机分类算法 154 8.4 支持向量机分类算法的使用场景 156 第9章 K-means聚类算法 157 9.1 用投票表决实现“物以类聚” 157 9.1.1 聚类问题就是“物以类聚”的实施问题 159 9.1.2 用“K”来决定归属类别 162 9.1.3 度量“相似”的距离 164 9.1.4 聚类问题中的多数表决 165 9.2 K-means聚类的算法原理 168 9.2.1 K-means聚类算法的基本思路 168 9.2.2 K-means聚类算法的数学解析 169 9.2.3 K-means聚类算法的具体步骤 170 9.3 在Python中使用K-means聚类算法 171 9.4 K-means聚类算法的使用场景 172 第10章 神经网络分类算法 174 10.1 用神经网络解决分类问题 174 10.1.1 神经元的“内心世界” 177 10.1.2 从神经元看分类问题 180 10.1.3 神经网络的“细胞”:人工神经元 181 10.1.4 构成网络的魔力 184 10.1.5 神经网络与深度学习 188 10.2 神经网络分类的算法原理 188 10.2.1 神经网络分类算法的基本思路 188 10.2.2 神经网络分类算法的数学解析 190 10.2.3 神经网络分类算法的具体步骤 193 10.3 在Python中使用神经网络分类算法 194 10.4 神经网络分类算法的使用场景 195 第11章 集成学习方法 197 11.1 集成学习方法:三个臭皮匠赛过诸葛亮 197 11.1.1 集成学习方法与经典机器学习算法的关系 198 11.1.2 集成学习的主要思想 199 11.1.3 几种集成结构 200 11.2 集成学习方法的具体实现方式 202 11.2.1 Bagging算法 202 11.2.2 Boosting算法 202 11.2.3 Stacking算法 202 11.3 在Python中使用集成学习方法 203 11.4 集成学习方法的使用场景 205 ---------------------------分布式中间件技术实战(Java版)--------------------------- 第1篇 开发工具准备 第1章 走进分布式中间件 2 1.1 分布式系统概述 2 1.1.1 白话分布式系统 3 1.1.2 分布式系统发展历程 3 1.1.3 分布式系统特性 6 1.1.4 分布式系统常见问题 7 1.2 分布式中间件概述 7 1.2.1 白话分布式中间件 7 1.2.2 常见中间件介绍 8 1.3 本书核心知识要点 9 1.4 本书实战要求与建议 10 第2章 搭建微服务项目 11 2.1 Spring Boot概述 11 2.1.1 什么是Spring Boot 11 2.1.2 Spring Boot的优势 12 2.1.3 Spring Boot的几大特性 13 2.2 搭建规范与搭建流程 13 2.2.1 Spring Boot项目搭建规范 14 2.2.2 Spring Boot项目搭建流程 14 2.2.3 写个Hello World吧 26 2.3 总结 28 第2篇 开发实战 第3章 缓存中间件Redis 30 3.1 Redis概述与典型应用场景介绍 30 3.2 Redis的使用 32 3.2.1 快速安装Redis 32 3.2.2 在Windows环境下使用Redis 34 3.2.3 Spring Boot项目整合Redis 37 3.2.4 Redis自定义注入Bean组件配置 38 3.2.5 RedisTemplate实战 39 3.2.6 StringRedisTemplate实战 43 3.3 Redis常见数据结构实战 45 3.3.1 字符串 45 3.3.2 列表 47 3.3.3 集合 48 3.3.4 有序集合 50 3.3.5 哈希Hash存储 52 3.3.6 Key失效与判断是否存在 54 3.4 Redis实战场景之缓存穿透 56 3.4.1 什么是缓存穿透 57 3.4.2 缓存穿透的解决方案 58 3.4.3 实战过程 58 3.4.4 其他典型问题介绍 65 3.5 总结 66 第4章 Redis典型应用场景实战之抢红包系统 67 4.1 整体业务流程介绍 67 4.1.1 抢红包系统业务流程 68 4.1.2 业务流程分析 68 4.1.3 业务模块划分 70 4.2 数据库表设计与环境搭建 71 4.2.1 数据库表设计 71 4.2.2 开发环境搭建 73 4.2.3 开发流程介绍 83 4.3 红包金额”随机生成算法实战 85 4.3.1 随机数算法 86 4.3.2 红包随机金额生成算法要求 86 4.3.3 二倍均值法简介 87 4.3.4 红包随机金额生成算法实战 88 4.3.5 红包随机金额生成算法自测 90 4.4 发红包”模块实战 91 4.4.1 业务模块分析 92 4.4.2 整体流程实战 93 4.4.3 业务模块自测 99 4.5 抢红包”模块实战 101 4.5.1 业务模块分析 101 4.5.2 整体流程 102 4.5.3 业务模块自测 105 4.5.4 总结 109 4.6 Jmeter压力测试高并发抢红包 110 4.7 问题分析与优化方案 116 4.7.1 问题分析 117 4.7.2 优化方案介绍 118 4.7.3 优化方案之Redis分布式锁实战 118 4.7.4 不足之处 122 4.8 总结 122 第5章 消息中间件RabbitMQ 124 5.1 RabbitMQ简介 124 5.1.1 认识RabbitMQ 125 5.1.2 典型应用场景介绍 126 5.1.3 RabbitMQ后端控制台介绍 132 5.1.4 基于Spring的事件驱动模型实战 133 5.2 Spring Boot项目整合RabbitMQ 137 5.2.1 RabbitMQ相关词汇介绍 138 5.2.2 Spring Boot项目整合RabbitMQ 139 5.2.3 自定义注入配置Bean相关组件 140 5.2.4 RabbitMQ发送、接收消息实战 142 5.2.5 其他发送接收消息方式实战 147 5.3 RabbitMQ多种消息模型实战 152 5.3.1 基于FanoutExchange的消息模型实战 152 5.3.2 基于DirectExchange的消息模型实战 160 5.3.3 基于TopicExchange的消息模型实战 165 5.4 RabbitMQ确认消费机制 171 5.4.1 消息高可用和确认消费 172 5.4.2 常见的确认消费模式介绍 174 5.4.3 基于自动确认消费模式实战 176 5.4.4 基于手动确认消费模式实战 182 5.5 典型应用场景实战之用户登录成功写日志 188 5.5.1 整体业务流程介绍与分析 188 5.5.2 数据库表设计 189 5.5.3 开发环境搭建 197 5.5.4 基于TopicExchange构建日志消息模型 200 5.5.5 异步发送接收登录日志消息实战 201 5.5.6 整体业务模块自测实战 205 5.6 总结 208 第6章 死信队列/延迟队列实战 209 6.1 死信队列概述 209 6.1.1 死信队列简介与作用 209 6.1.2 典型应用场景介绍 212 6.2 RabbitMQ死信队列实战 213 6.2.1 死信队列专有词汇介绍 214 6.2.2 死信队列消息模型实战 215 6.2.3 死信队列延迟发送消息实战 221 6.3 典型应用场景实战之商城平台订单支付超时 226 6.3.1 整体业务场景介绍 227 6.3.2 整体业务流程分析 228 6.3.3 数据库设计 229 6.3.4 构建RabbitMQ死信队列消息模型 236 6.3.5 Controller层开发用户下单及订单失效功能 240 6.3.6 用户下单支付超时”延迟发送接收实战 246 6.3.7 用户下单支付超时”整体功能自测 250 6.4 总结 254 第7章 分布式锁实战 256 7.1 分布式锁概述 256 7.1.1 锁机制 257 7.1.2 分布式锁登场 263 7.1.3 典型应用场景介绍 265 7.1.4 小结 268 7.2 基于数据库实现分布式锁 268 7.2.1 乐观锁简介 268 7.2.2 乐观锁实战 269 7.2.3 Jmeter高并发测试乐观锁 280 7.2.4 悲观锁简介 286 7.2.5 悲观锁实战 288 7.2.6 Jmeter高并发测试悲观锁 290 7.2.7 小结 291 7.3 基于Redis实现分布式锁 292 7.3.1 Redis温故而知新 292 7.3.2 分布式锁的实现流程与原理分析 294 7.3.3 基于Redis实战实现分布式锁 295 7.3.4 Jmeter高并发测试 303 7.3.5 小结 307 7.4 基于ZooKeeper实现分布式锁 308 7.4.1 ZooKeeper简介与作用 308 7.4.2 分布式锁的实现流程与原理分析 310 7.4.3 Spring Boot整合ZooKeeper 312 7.4.4 基于ZooKeeper实现分布式锁 315 7.4.5 Jmeter高并发测试 317 7.4.6 小结 319 7.5 典型应用场景之书籍抢购模块设计与实战 319 7.5.1 整体业务流程介绍与分析 319 7.5.2 数据库表设计与用例设计 321 7.5.3 书籍抢购核心业务逻辑开发实战 324 7.5.4 Jmeter重现库存超卖”的问题 328 7.5.5 采用分布式锁解决问题 330 7.5.6 小结 334 7.6 总结 334 第8章 综合中间件Redisson 336 8.1 Redisson概述 336 8.1.1 Redisson简介与作用 337 8.1.2 Redisson的功能特性 339 8.1.3 典型应用场景之布隆过滤器与主题 340 8.1.4 典型应用场景之延迟队列与分布式锁 345 8.1.5 Spring Boot整合Redisson 348 8.2 Redisson常见功能组件实战 352 8.2.1 布隆过滤器 352 8.2.2 发布-订阅式主题 355 8.2.3 数据结构之映射Map 361 8.2.4 数据结构之集合Set 366 8.2.5 队列Queue实战 370 8.2.6 延迟队列Delayed Queue实战1 374 8.2.7 延迟队列Delayed Queue实战2 381 8.3 分布式锁实战 385 8.3.1 重温分布式锁 385 8.3.2 分布式锁之一次性锁实战 387 8.3.3 分布式锁之可重入锁实战 392 8.4 总结 398 第9章 Redisson典型应用场景实战之高性能点赞 399 9.1 整体业务流程介绍与分析 399 9.1.1 业务背景介绍 400 9.1.2 业务流程介绍与分析 401 9.1.3 业务模块划分与数据库设计 404 9.2 点赞与取消点赞”操作模块实战 409 9.2.1 点赞与取消点赞”业务流程分析 409 9.2.2 Controller层接收请求信息 412 9.2.3 Service层插入、更新并缓存记录信息 415 9.2.4 业务模块自测 421 9.3 排行榜”业务模块实战 424 9.3.1 排行榜”业务流程分析 425 9.3.2 接收前端请求并触发缓存排行榜 426 9.3.3 业务模块自测 428 9.4 总结 432 第3篇 总结 第10章 总结与回顾 434 |