《Python+Spark 2.0+Hadoop机器学习与大数据实战》
五星好评+强烈推荐的一本书,虽然内容可能没有很深入,但作者非常用心的把每一步操作详细的列出来并给出说明,让我们跟着做的时候非常有信心,没有出现奇奇怪怪的报错,没有不知道为啥就是进行不下去的情况。这本书用实例告诉你spark,hdfs的基础使用和操作方法,让你快速入门,懂得操作。后面再进行针对性的入门和进阶,就会非常顺手。非常好的一本书⭐⭐⭐⭐⭐
百度网盘链接: https://pan.baidu.com/s/1XO1r5tblEDsjjYUvfvTPew 提取码: canq
出版社: 清华大学出版社
页数: 519定价: 99ISBN: 9787302490739豆瓣评分:8.1
内容简介 · · · · · ·
本书从浅显易懂的“大数据和机器学习”原理说明入手,讲述大数据和机器学习的基本概念,如分类、分析、训练、建模、预测、机器学习(推荐引擎)、机器学习(二元分类)、机器学习(多元分类)、机器学习(回归分析)和数据可视化应用等。书中不仅加入了新近的大数据技术,还丰富了“机器学习”内容。 为降低读者学习大数据技术的门槛,书中提供了丰富的上机实践操作和范例程序详解,展示了如何在单机Windows系统上通过Virtual Box虚拟机安装多机Linux虚拟机,如何建立Hadoop集群,再建立Spark开发环境。书中介绍搭建的上机实践平台并不限制于单台实体计算机。对于有条件的公司和学校,参照书中介绍的搭建过程,同样可以实现将自己的平台搭建在多台实体计算机上,以便更加接近于大数据和机器学习真实的运行环境。 本书非常适合于学习大数据基础知识的初学者阅读,更适合正在学习大数据理论和技术的人员作为上机实践用的教材。
作者简介 · · · · · ·
林大贵,从事IT行业多年,在系统设计、网站开发、数字营销、商业智慧、大数据、机器学习等领域具有丰富的实战经验。
目录 · · · · · ·
目 录
第1章 Python Spark机器学习与Hadoop大数据 11.1 机器学习的介绍 21.2 Spark的介绍 51.3 Spark数据处理 RDD、DataFrame、Spark SQL 71.4 使用Python开发 Spark机器学习与大数据应用 81.5 Python Spark 机器学习 91.6 Spark ML Pipeline机器学习流程介绍 101.7 Spark 2.0的介绍 121.8 大数据定义 131.9 Hadoop 简介 141.10 Hadoop HDFS分布式文件系统 141.11 Hadoop MapReduce的介绍 171.12 结论 18第2章 VirtualBox虚拟机软件的安装 192.1 VirtualBox的下载和安装 202.2 设置VirtualBox存储文件夹 232.3 在VirtualBox创建虚拟机 252.4 结论 29第3章 Ubuntu Linux 操作系统的安装 303.1 Ubuntu Linux 操作系统的安装 313.2 在Virtual设置Ubuntu虚拟光盘文件 333.3 开始安装Ubuntu 353.4 启动Ubuntu 403.5 安装增强功能 413.6 设置默认输入法 453.7 设置“终端”程序 483.8 设置“终端”程序为白底黑字 493.9 设置共享剪贴板 503.10 设置最佳下载服务器 523.11 结论 56第4章 Hadoop Single Node Cluster的安装 574.1 安装JDK 584.2 设置SSH无密码登录 614.3 下载安装Hadoop 644.4 设置Hadoop环境变量 674.5 修改Hadoop配置设置文件 694.6 创建并格式化HDFS目录 734.7 启动Hadoop 744.8 打开HadoopResource-Manager Web界面 764.9 NameNode HDFS Web界面 784.10 结论 79第5章 Hadoop Multi Node Cluster的安装 805.1 把Single NodeCluster复制到data1 835.2 设置VirtualBox网卡 845.3 设置data1服务器 875.4 复制data1服务器到data2、data3、master 945.5 设置data2服务器 975.6 设置data3服务器 1005.7 设置master服务器 1025.8 master连接到data1、data2、data3 创建HDFS目录 1075.9 创建并格式化NameNodeHDFS目录 1105.10 启动Hadoop Multi Node Cluster 1125.11 打开Hadoop ResourceManager Web界面 1145.12 打开NameNode Web界面 1155.13 停止Hadoop Multi Node Cluster 1165.14 结论 116第 6 章 Hadoop HDFS命令 1176.1 启动HadoopMulti-Node Cluster 1186.2 创建与查看HDFS目录 1206.3 从本地计算机复制文件到HDFS 1226.4 将HDFS上的文件复制到本地计算机 1276.5 复制与删除HDFS文件 1296.6 在Hadoop HDFSWeb用户界面浏览HDFS 1316.7 结论 134第7章 Hadoop MapReduce 1357.1 简单介绍WordCount.java 1367.2 编辑WordCount.java 1377.3 编译WordCount.java 1417.4 创建测试文本文件 1437.5 运行WordCount.java 1457.6 查看运行结果 1467.7 结论 147第8章 Python Spark的介绍与安装 1488.1 Scala的介绍与安装 1508.2 安装Spark 1538.3 启动pyspark交互式界面 1568.4 设置pyspark显示信息 1578.5 创建测试用的文本文件 1598.6 本地运行pyspark程序 1618.7 在Hadoop YARN运行pyspark 1638.8 构建SparkStandalone Cluster运行环境 1658.9 在SparkStandalone运行pyspark 1718.10 Spark Web UI界面 1738.11 结论 175第9章 在 IPythonNotebook 运行 Python Spark 程序 1769.1 安装Anaconda 1779.2 在IPythonNotebook使用Spark 1809.3 打开IPythonNotebook笔记本 1849.4 插入程序单元格 1859.5 加入注释与设置程序代码说明标题 1869.6 关闭IPythonNotebook 1889.7 使用IPythonNotebook在Hadoop YARN-client模式运行 1899.8 使用IPythonNotebook在Spark Stand Alone模式运行 1929.9 整理在不同的模式运行IPythonNotebook的命令 1949.9.1 在 Local 启动 IPython Notebook 1959.9.2 在Hadoop YARN-client 模式启动 IPython Notebook 1959.9.3 在Spark Stand Alone 模式启动 IPython Notebook 1959.10 结论 196第10章 Python Spark RDD 19710.1 RDD的特性 19810.2 开启IPython Notebook 19910.3 基本RDD“转换”运算 20110.4 多个RDD“转换”运算 20610.5 基本“动作”运算 20810.6 RDD Key-Value 基本“转换”运算 20910.7 多个RDD Key-Value“转换”运算 21210.8 Key-Value“动作”运算 21510.9 Broadcast 广播变量 21710.10 accumulator累加器 22010.11 RDD Persistence持久化 22110.12 使用Spark创建WordCount 22310.13 Spark WordCount详细解说 22610.14 结论 228第11章 Python Spark的集成开发环境 22911.1 下载与安装eclipse Scala IDE 23211.2 安装PyDev 23511.3 设置字符串替代变量 24011.4 PyDev 设置 Python 链接库 24311.5 PyDev设置anaconda2链接库路径 24511.6 PyDev设置Spark Python链接库 24711.7 PyDev设置环境变量 24811.8 新建PyDev项目 25111.9 加入WordCount.py程序 25311.10 输入WordCount.py程序 25411.11 创建测试文件并上传至HDFS目录 25711.12 使用spark-submit执行WordCount程序 25911.13 在Hadoop YARN-client上运行WordCount程序 26111.14 在Spark Standalone Cluster上运行WordCount程序 26411.15 在eclipse外部工具运行Python Spark程序 26711.16 在eclipse运行spark-submit YARN-client 27311.17 在eclipse运行spark-submit Standalone 27711.18 结论 280第12章 Python Spark创建推荐引擎 28112.1 推荐算法介绍 28212.2 “推荐引擎”大数据分析使用场景 28212.3 ALS推荐算法的介绍 28312.4 如何搜索数据 28512.5 启动IPython Notebook 28912.6 如何准备数据 29012.7 如何训练模型 29412.8 如何使用模型进行推荐 29512.9 显示推荐的电影名称 29712.10 创建Recommend项目 29912.11 运行RecommendTrain.py 推荐程序代码 30212.12 创建Recommend.py推荐程序代码 30412.13 在eclipse运行Recommend.py 30712.14 结论 310第13章 Python Spark MLlib决策树二元分类 31113.1 决策树介绍 31213.2 “StumbleUpon Evergreen”大数据问题 31313.2.1 Kaggle网站介绍 31313.2.2 “StumbleUpon Evergreen”大数据问题场景分析 31313.3 决策树二元分类机器学习 31413.4 如何搜集数据 31513.4.1 StumbleUpon数据内容 31513.4.2 下载 StumbleUpon 数据 31613.4.3 用LibreOffice Calc 电子表格查看train.tsv 31913.4.4 复制到项目目录 32213.5 使用IPython Notebook示范 32313.6 如何进行数据准备 32413.6.1 导入并转换数据 32413.6.2 提取 feature 特征字段 32713.6.3 提取分类特征字段 32813.6.4 提取数值特征字段 33113.6.5 返回特征字段 33113.6.6 提取 label 标签字段 33113.6.7 建立训练评估所需的数据 33213.6.8 以随机方式将数据分为 3 部分并返回 33313.6.9 编写 PrepareData(sc) 函数 33313.7 如何训练模型 33413.8 如何使用模型进行预测 33513.9 如何评估模型的准确率 33813.9.1 使用 AUC 评估二元分类模型 33813.9.2 计算 AUC 33913.10 模型的训练参数如何影响准确率 34113.10.1 建立 trainEvaluateModel 34113.10.2 评估impurity参数 34313.10.3 训练评估的结果以图表显示 34413.10.4 编写 evalParameter 34713.10.5 使用 evalParameter 评估 maxDepth 参数 34713.10.6 使用 evalParameter 评估 maxBins 参数 34813.11 如何找出准确率最高的参数组合 34913.12 如何确认是否过度训练 35213.13 编写RunDecisionTreeBinary.py程序 35213.14 开始输入RunDecisionTreeBinary.py程序 35313.15 运行RunDecisionTreeBinary.py 35513.15.1 执行参数评估 35513.15.2 所有参数训练评估找出最好的参数组合 35513.15.3 运行 RunDecisionTreeBinary.py 不要输入参数 35713.16 查看DecisionTree的分类规则 35813.17 结论 360第14章 Python Spark MLlib 逻辑回归二元分类 36114.1 逻辑回归分析介绍 36214.2 RunLogisticRegression WithSGDBinary.py程序说明 36314.3 运行RunLogisticRegression WithSGDBinary.py进行参数评估 36714.4 找出最佳参数组合 37014.5 修改程序使用参数进行预测 37014.6 结论 372第15章 Python Spark MLlib支持向量机SVM二元分类 37315.1 支持向量机SVM算法的基本概念 37415.2 运行SVMWithSGD.py进行参数评估 37615.3 运行SVMWithSGD.py 训练评估参数并找出最佳参数组合 37815.4 运行SVMWithSGD.py 使用最佳参数进行预测 37915.5 结论 381第16章 Python Spark MLlib朴素贝叶斯二元分类 38216.1 朴素贝叶斯分析原理的介绍 38316.2 RunNaiveBayesBinary.py程序说明 38416.3 运行NaiveBayes.py进行参数评估 38616.4 运行训练评估并找出最好的参数组合 38716.5 修改RunNaiveBayesBinary.py 直接使用最佳参数进行预测 38816.6 结论 390第17章 Python Spark MLlib决策树多元分类 39117.1 “森林覆盖植被”大数据问题分析场景 39217.2 UCI Covertype数据集介绍 39317.3 下载与查看数据 39417.4 修改PrepareData() 数据准备 39617.5 修改trainModel 训练模型程序 39817.6 使用训练完成的模型预测数据 39917.7 运行RunDecisionTreeMulti.py 进行参数评估 40117.8 运行RunDecisionTreeMulti.py 训练评估参数并找出最好的参数组合 40317.9 运行RunDecisionTreeMulti.py 不进行训练评估 40417.10 结论 406第18章 Python Spark MLlib决策树回归分析 40718.1 Bike Sharing大数据问题分析 40818.2 Bike Sharing数据集 40918.3 下载与查看数据 40918.4 修改 PrepareData() 数据准备 41218.5 修改DecisionTree.trainRegressor训练模型 41518.6 以 RMSE 评估模型准确率 41618.7 训练评估找出最好的参数组合 41718.8 使用训练完成的模型预测数据 41718.9 运行RunDecisionTreeMulti.py进行参数评估 41918.10 运行RunDecisionTreeMulti.py训练评估参数并找出最好的参数组合 42118.11 运行RunDecisionTreeMulti.py 不进行训练评估 42218.12 结论 424第19章 Python Spark SQL、DataFrame、RDD数据统计与可视化 42519.1 RDD、DataFrame、Spark SQL 比较 42619.2 创建RDD、DataFrame与Spark SQL 42719.2.1 在 local 模式运行 IPython Notebook 42719.2.2 创建RDD 42719.2.3 创建DataFrame 42819.2.4 设置 IPython Notebook 字体 43019.2.5 为DataFrame 创建别名 43119.2.6 开始使用 Spark SQL 43119.3 SELECT显示部分字段 43419.3.1 使用 RDD 选取显示部分字段 43419.3.2 使用 DataFrames 选取显示字段 43419.3.3 使用 Spark SQL 选取显示字段 43519.4 增加计算字段 43619.4.1 使用 RDD 增加计算字段 43619.4.2 使用 DataFrames 增加计算字段 43619.4.3 使用 Spark SQL 增加计算字段 43719.5 筛选数据 43819.5.1 使用 RDD 筛选数据 43819.5.2 使用 DataFrames 筛选数据 43819.5.3 使用 Spark SQL 筛选数据 43919.6 按单个字段给数据排序 43919.6.1 RDD 按单个字段给数据排序 43919.6.2 使用 Spark SQL排序 44019.6.3 使用 DataFrames按升序给数据排序 44119.6.4 使用 DataFrames按降序给数据排序 44219.7 按多个字段给数据排序 44219.7.1 RDD 按多个字段给数据排序 44219.7.2 Spark SQL 按多个字段给数据排序 44319.7.3 DataFrames 按多个字段给数据排序 44319.8 显示不重复的数据 44419.8.1 RDD 显示不重复的数据 44419.8.2 Spark SQL 显示不重复的数据 44519.8.3 Dataframes显示不重复的数据 44519.9 分组统计数据 44619.9.1 RDD 分组统计数据 44619.9.2 Spark SQL分组统计数据 44719.9.3 Dataframes分组统计数据 44819.10 Join 联接数据 45019.10.1 创建 ZipCode 45019.10.2 创建 zipcode_tab 45219.10.3 Spark SQL 联接 zipcode_table 数据表 45419.10.4 DataFrame user_df 联接 zipcode_df 45519.11 使用 Pandas DataFrames 绘图 45719.11.1 按照不同的州统计并以直方图显示 45719.11.2 按照不同的职业统计人数并以圆饼图显示 45919.12 结论 461第20章 Spark ML Pipeline 机器学习流程二元分类 46220.1 数据准备 46420.1.1 在 local 模式执行 IPython Notebook 46420.1.2 编写 DataFrames UDF 用户自定义函数 46620.1.3 将数据分成 train_df 与 test_df 46820.2 机器学习pipeline流程的组件 46820.2.1 StringIndexer 46820.2.2 OneHotEncoder 47020.2.3 VectorAssembler 47220.2.4 使用 DecisionTreeClassi?er 二元分类 47420.3 建立机器学习pipeline流程 47520.4 使用pipeline进行数据处理与训练 47620.5 使用pipelineModel 进行预测 47720.6 评估模型的准确率 47820.7 使用TrainValidation进行训练验证找出最佳模型 47920.8 使用crossValidation交叉验证找出最佳模型 48120.9 使用随机森林 RandomForestClassi?er分类器 48320.10 结论 485第21章 Spark ML Pipeline 机器学习流程多元分类 48621.1 数据准备 48721.1.1 读取文本文件 48821.1.2 创建 DataFrame 48921.1.3 转换为 double 49021.2 建立机器学习pipeline流程 49221.3 使用dt_pipeline进行数据处理与训练 49321.4 使用pipelineModel 进行预测 49321.5 评估模型的准确率 49521.4 使用TrainValidation进行训练验证找出最佳模型 49621.7 结论 498第22章 Spark ML Pipeline 机器学习流程回归分析 49922.1 数据准备 50122.1.1 在local 模式执行 IPython Notebook 50122.1.2 将数据分成 train_df 与 test_df 50422.2 建立机器学习pipeline流程 50422.3 使用dt_pipeline进行数据处理与训练 50622.4 使用pipelineModel 进行预测 50622.5 评估模型的准确率 50722.6 使用TrainValidation进行训练验证找出最佳模型 50822.7 使用crossValidation进行交叉验证找出最佳模型 51022.8 使用GBT Regression 51122.9 结论 513附录A 本书范例程序下载与安装说明 514A.1 下载范例程序 515A.2 打开本书IPythonNotebook范例程序 516A.3 打开 eclipsePythonProject 范例程序 518