当前位置:主页 > 书籍配套资源 > 数据分析配套资源
《数据分析实战》源代码

《数据分析实战》源代码

  • 更新:2022-02-10
  • 大小:22.1 MB
  • 类别:数据分析
  • 作者:托马兹·卓巴斯
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

微软数据科学家融合自己多年数据分析实践经验系统讲解数据分析与建模的各种方法、工具及算法,给出一系列Python代码示例,并提供60多个实战技巧,可以帮助深入理解数据分析技术,高效使用Python工具解决现实数据科学任务。
全书共11章,可分为三部分。第一部分(第1~2章)讲授一些实战技巧,用于读取、写入、清洗、格式化、探索与理解数据;第二部分(第3~7章)介绍一些较深入的主题,包括分类问题的处理、多种聚类模型、降维技巧、回归模型和时间序列技术等。第三部分(第8~11章)介绍更高深的主题,从图论到自然语言处理,到离散选择模型,再到模拟。

程序员、科学家、工程师之间有什么差别?

这个问题,我问过许多“软件工程师”,大家似乎都没法说得特别清楚,常见的答案是从名字上来区分:程序员只关心代码,工程师负责的是系统,科学家的理论知识非常深厚。它的潜台词是:你看,我是个工程师,我不只关心代码,我还为系统负责,但是,你没法对我的理论知识做太多要求。
看来,实际情况也确实如此。前些年,我在一支颇有效率的开发团队里,组织大家“补习”数据结构和算法。我惊奇地发现,不少主力开发人员做起业务功能来异常拿手,毫不畏惧,但面对简单的“理论问题”—比如如何从一个数组中找到和最大的两个元素—竟然束手无策。而且很多人都认为,这不是问题。
我想,这就是很大的问题。

“工程”这回事,是什么时候出现,并让大家意识到它不等于“手艺”的呢?具体时间或者不可考,但有个故事很能说明问题。

1742年,教皇本尼迪克特十四世(Benedict XIV)需要派人诊断罗马圣彼得大教堂拱顶出现的裂纹。传统上,这种事情总是要找建造经验最丰富的工匠。但是这次不一样,教皇把任务指派给了三位数学家,其中一位还曾编辑和注释过艾萨克·牛顿的《自然哲学的数学原理》。在那个年代,他们的诊断方法和结论都引发了巨大的争议,因为其违背了无数工匠的经验和直觉。按照三位数学家的结论,拱顶的箍环承受不了水平的推力,必须新增三个带链条和铁钉的铁环,才能确保建筑的完整。

他们的建议被采纳了。今天,如果你去罗马,仍然可以看到完整的圣彼得大教堂。

土木工程师兼历史学家斯特劳布评论说:这份报告在土木工程史上有划时代的意义……重要性在于,与所有的传统和常规相反,对建筑结构的稳定性的勘测,不是建立在经验规则和静态感觉的基础之上,而是建立在科学的分析和研究之上。
从此大家逐渐相信,建筑不再是一门“手艺”,要想建造更复杂、更伟大的建筑,科学和研究是无论如何离不开的。今天,如果土木工程师在工作时不依照模型、理论、计算,而是完全按照经验和直觉,哪怕他的经验再丰富,也不能称为“工程师”。
在我看来,软件开发,在某种程度上也处于相同的时间点。我承认,之前的大量开发工作,不需要太多理论和科学知识,单纯凭经验和直觉就可以完成。但是如今,我们已经无可避免地被卷入大数据的洪流之中—哪怕是“传统”的互联网开发,也已经大不相同了。我们写的每一个功能,都可能被成千上万人,在成千上万的场景下,成千上万次地使用。在整个过程中,成千上万的埋点、成千上万的传感器,会留下巨细靡遗的数据。如何还原场景、找到问题、做出改进,答案往往就藏在这些数据当中,谁看得懂、玩得转这些数据,谁就能找到答案。
拿简单的“上课前给用户打电话通知”来说,它绝不再是“调用供应商接口发一个语音”那么简单。提前多久给用户打电话反馈最好?什么样的语音信息最容易接受?各地用户有什么特别偏好?不同年龄段的用户接受程度如何?……如果我们承认“用户体验”重要,那么搞清楚这些问题便也很重要。公司搞不清楚,就会被用户嫌弃。工程师搞不清楚,就只能被动接受产品经理的指挥。而这些问题的答案,只能来自对数据的积累和分析。

不要妄想“数据科学家”能帮忙解决这些问题,“数据科学家”太宝贵了,只能用在业务价值最关键的场合。更多的场合,工程师只能挽起袖子自己上场。然而,大部分工程师目前的数据处理能力还局限于极值、算数平均、方差等等少数几项。许多工程师也承认,数据分析能力很重要,也希望学习,可是打开数据分析的专门教材,一看到密集的公式,就已经打了退堂鼓。

封面图

目录

  • 推荐序
  • 译者序
  • 前言
  • 致谢
  • 关于作者
  • 关于审稿人
  • 第1章准备数据1
  • 1.1导论1
  • 1.2使用Python读写CSV/TSV文件2
  • 1.3使用Python读写JSON文件6
  • 1.4使用Python读写Excel文件7
  • 1.5使用Python读写XML文件10
  • 1.6使用pandas检索HTML页面13
  • 1.7存储并检索关系数据库15
  • 1.8存储并检索MongoDB18
  • 1.9使用OpenRefine打开并转换数据20
  • 1.10使用OpenRefine探索数据23
  • 1.11排重25
  • 1.12使用正则表达式与GREL清理数据27
  • 1.13插补缺失值28
  • 1.14将特征规范化、标准化29
  • 1.15分级数据30
  • 1.16编码分类变量32
  • 第2章探索数据34
  • 2.1导论34
  • 2.2生成描述性的统计数据34
  • 2.3探索特征之间的相关性37
  • 2.4可视化特征之间的相互作用38
  • 2.5生成直方图43
  • 2.6创建多变量的图表46
  • 2.7数据取样49
  • 2.8将数据集拆分成训练集、交叉验证集和测试集51
  • 第3章分类技巧53
  • 3.1导论53
  • 3.2测试并比较模型53
  • 3.3朴素贝叶斯分类器56
  • 3.4将逻辑回归作为通用分类器使用58
  • 3.5将支持向量机用作分类引擎61
  • 3.6使用决策树进行分类65
  • 3.7使用随机森林预测订阅者69
  • 3.8使用神经网络对呼叫进行分类72
  • 第4章聚类技巧79
  • 4.1导论79
  • 4.2评估聚类方法的表现79
  • 4.3用k均值算法聚类数据82
  • 4.4为k均值算法找到最优的聚类数84
  • 4.5使用mean shift聚类模型发现聚类90
  • 4.6使用c均值构建模糊聚类模型91
  • 4.7使用层次模型聚类数据93
  • 4.8使用DBSCAN和BIRCH算法发现潜在的订阅者96
  • 第5章降维99
  • 5.1导论99
  • 5.2创建三维散点图,显示主成分99
  • 5.3使用核PCA降维102
  • 5.4用主成分分析找到关键因素105
  • 5.5使用随机PCA在数据中寻找主成分109
  • 5.6使用线性判别分析提取有用的维度114
  • 5.7用kNN分类模型给电话分类时使用多种降维技巧117
  • 第6章回归模型122
  • 6.1导论122
  • 6.2识别并解决数据中的多重共线性124
  • 6.3构建线性回归模型128
  • 6.4使用OLS预测生产的电量134
  • 6.5使用CART估算发电厂生产的电量138
  • 6.6将kNN模型用于回归问题141
  • 6.7将随机森林模型用于回归分析143
  • 6.8使用SVM预测发电厂生产的电量145
  • 6.9训练神经网络,预测发电厂生产的电量151
  • 第7章时间序列技术154
  • 7.1导论154
  • 7.2在Python中如何处理日期对象155
  • 7.3理解时间序列数据159
  • 7.4平滑并转换观测值163
  • 7.5过滤时间序列数据166
  • 7.6移除趋势和季节性169
  • 7.7使用ARMA和ARIMA模型预测未来173
  • 第8章图181
  • 8.1导论181
  • 8.2使用NetworkX在Python中处理图对象182
  • 8.3使用Gephi将图可视化190
  • 8.4识别信用卡信息被盗的用户200
  • 8.5识别谁盗窃了信用卡204
  • 第9章自然语言处理207
  • 9.1导论207
  • 9.2从网络读入原始文本208
  • 9.3标记化和标准化212
  • 9.4识别词类,处理n-gram,识别命名实体218
  • 9.5识别文章主题224
  • 9.6识别句子结构226
  • 9.7根据评论给影片归类229
  • 第10章离散选择模型233
  • 10.1导论233
  • 10.2准备数据集以估算离散选择模型235
  • 10.3估算知名的多项Logit模型239
  • 10.4测试来自无关选项的独立性冲突244
  • 10.5用巢式Logit模型处理IIA冲突249
  • 10.6用混合Logit模型处理复杂的替代模式251
  • 第11章模拟254
  • 11.1导论254
  • 11.2使用SimPy模拟加油站的加油过程255
  • 11.3模拟电动车耗尽电量的场景264
  • 11.4判断羊群面对群狼时是否有团灭的风险269

资源下载

资源下载地址1:https://pan.baidu.com/s/1bcqe_UUnDVocMHZaXIitCw

相关资源

网友留言