第1章数据与大数据导论1 1.1大数据概述1 1.1.1大数据的来源1 1.1.2大数据的定义和特征3 1.1.3数据结构类型4 1.1.4数据分析流程5 1.2大数据采集和预处理6 1.2.1大数据采集设备6 1.2.2大数据采集方法7 1.2.3大数据预处理技术7 1.3大数据的存储20 1.3.1数据存储设备20 1.3.2传统大数据存储22 1.3.3数据中心与云存储23 1.3.4大数据存储26 1.3.5数据仓库31 1.4云计算与大数据并行计算32 1.4.1云计算与云计算平台32 1.4.2MapReduce计算模型35 1.4.3Hadoop36 1.4.4Spark37 1.5大数据分析38 1.5.1大数据分析概念38 1.5.2大数据分析方法39 1.5.3机器学习与特征选择42 1.5.4机器学习算法45 1.5.5深度学习算法47 1.6大数据可视化51 1.6.1数据可视化概述51 1.6.2数据可视化技术51 1.6.3数据可视化工具54 1.6.4数据可视化案例56 1.7大数据应用及挑战58 1.7.1大数据应用58 1.7.2大数据带来的挑战60 思考题61第2章Python基础62 2.1Python编程环境62 2.1.1Anaconda概述62 2.1.2Anaconda的安装63 2.1.3Anaconda的包管理63 2.1.4运行Python代码或程序64 2.2变量和内置数据类型66 2.2.1变量和变量赋值66 2.2.2内置数据类型68 2.2.3运算符69 2.2.4注释和编码规范70 2.3列表、元组和字典70 2.3.1列表70 2.3.2元组79 2.3.3字典81 2.4选择和循环86 2.4.1选择结构86 2.4.2for循环89 2.4.3while循环90 2.5函数和模块92 2.5.1函数的定义和使用92 2.5.2模块导入101 2.6文件操作101 2.6.1文件操作基础101 2.6.2CSV文件操作103 2.6.3JSON文件操作105第3章Pandas数据处理和分析107 3.1Pandas基础107 3.1.1Pandas简介107 3.1.2Series108 3.1.3DataFrame114 3.2文件读写122 3.2.1读写CSV文件123 3.2.2读写Excel文件125 3.3数据清洗126 3.3.1缺失值处理126 3.3.2重复值处理131 3.3.3异常值处理133 3.4数据操作135 3.4.1常规运算135 3.4.2统计139 3.4.3排序142 3.5索引操作143 3.5.1索引重命名143 3.5.2索引设置144 3.5.3重新索引147 3.5.4索引排序149 3.6合并150 3.6.1concat()150 3.6.2merge()152 3.6.3join()155 3.7分组156 3.7.1groupby()156 3.7.2聚合操作159 3.7.3过滤与变换160 3.7.4apply()161 3.8变形162 3.8.1透视162 3.8.2哑变量与因子化164 3.8.3其他变形方法168 思考题171第4章Matplotlib数据可视化173 4.1Matplotlib的安装和导入173 4.2绘制折线图174 4.2.1导入数据174 4.2.2绘制图表174 4.2.3增加基本修饰175 4.3图表修饰176 4.3.1标题176 4.3.2坐标轴标签177 4.3.3坐标轴刻度177 4.3.4图例178 4.3.5线条和标记178 4.3.6网格线180 4.3.7注释180 4.4绘制条形图183 4.4.1垂直条形图183 4.4.2水平条形图184 4.4.3组合条形图表186 4.5绘制饼图和环图187 4.5.1饼图187 4.5.2环图189 4.6绘制散点图和泡图190 4.6.1散点图190 4.6.2气泡图191 4.7绘制雷达图、组合雷达图、极坐标散点图和极坐标条形图191 4.7.1雷达图191 4.7.2组合雷达图195 4.7.3极坐标散点图196 4.7.4极坐标条形图197 4.8绘制箱线图198 4.9多子图布局200 4.10样式选择202 思考题204第5章回归模型原理与应用205 5.1线性回归模型205 5.1.1回归分析的含义205 5.1.2线性回归模型的形式206 5.1.3线性回归方程参数求解207 5.1.4线性回归方程选择209 5.1.5线性回归方程预测214 5.2非线性回归模型215 5.2.1可转换为线性回归模型的非线性回归模型215 5.2.2非线性回归模型216 5.3线性回归模型实践案例216 思考题228第6章聚类分析231 6.1聚类分析概述231 6.2聚类分析中的相似度计算方法232 6.2.1欧几里得距离232 6.2.2曼哈顿距离232 6.2.3余弦相似度232 6.2.4切比雪夫距离232 6.2.5闵可夫斯基距离233 6.3划分聚类算法233 6.3.1kmeans聚类算法233 6.3.2kmeans++算法235 6.3.3kmedoids算法237 6.3.4肘法237 6.3.5轮廓系数238 6.4层次聚类算法242 6.5基于密度的聚类算法246 6.5.1DBSCAN算法246 6.5.2均值漂移聚类算法248 6.6聚类算法的评价指标249 6.6.1内部质量评价标准250 6.6.2外部质量评价标准252 6.7聚类分析应用案例254 6.7.1非球形数据分布聚类分析254 6.7.2手写体数字聚类分析257 6.7.3鸢尾花数据集聚类分析259 思考题263第7章分类模型264 7.1逻辑斯谛回归分类模型264 7.1.1逻辑斯谛回归模型简介264 7.1.2损失函数265 7.1.3损失函数求解方法266 7.1.4逻辑斯谛回归分类应用实例267 7.2决策树分类模型268 7.2.1特征选择268 7.2.2决策树构建269 7.2.3决策树剪枝270 7.2.4决策树分类应用实例270 7.3朴素贝叶斯分类模型272 7.3.1朴素贝叶斯分类模型原理272 7.3.2朴素贝叶斯分类模型参数估计273 7.3.3贝叶斯分类应用实例274 7.4支持向量机分类模型275 7.4.1SVM分类模型原理275 7.4.2损失函数275 7.4.3经验风险与结构风险276 7.4.4标准算法277 7.4.5算法求解278 7.4.6支持向量机分类应用实例279 7.5综合案例应用280 7.5.1读取数据文件281 7.5.2数据清洗282 7.5.3数据分析284 思考题291第8章集成学习293 8.1概述293 8.2序列集成方法294 8.2.1Boosting集成方法294 8.2.2AdaBoost集成方法295 8.3并行集成方法297 8.3.1Bagging集成方法297 8.3.2随机森林集成方法298 8.4组合策略299 8.4.1平均法299 8.4.2投票法300 8.4.3学习法300 8.5集成学习应用案例301 8.5.1集成学习用于分类任务301 8.5.2集成学习用于回归任务302 思考题304第9章深度学习305 9.1神经网络与多层感知机305 9.1.1神经元306 9.1.2激活函数306 9.1.3多层感知机307 9.1.4神经网络的参数学习309 9.2卷积神经网络309 9.2.1卷积层309 9.2.2池化层312 9.2.3全连接层313 9.3循环神经网络313 9.3.1循环神经网络的基本结构313 9.3.2双向循环神经网络314 9.3.3其他类型的循环神经网络314 9.4深度学习模型的优化316 9.4.1初始化参数优化316 9.4.2逐层归一化316 9.4.3超参数优化317 9.4.4优化算法317 9.5深度学习应用案例318 9.5.1PyTorch的基本用法318 9.5.2PyTorch中的神经网络层321 9.5.3PyTorch神经网络的训练过程325 9.5.4深度学习模型实例325 思考题331参考文献332