
前言
Anaconda是一个开源的数据科学平台,它将数据科学中的好工具集中在一起。它是一个数据科学栈,包含100多个基于Python、Scala和R的工具包。在它的包管理器conda的帮助下,用户能够使用数百个不同语言的包,并轻松地进行数据预处理、建模、聚类、分类和验证。
本书将带领你学习Anaconda,并教你如何使用它在现实世界中执行数据科学操作。首先,你将为Anaconda、Jupyter搭建环境,并安装相关的软件包。然后,学习数据科学基础和线性代数,为执行数据科学任务做准备。一旦准备完毕,你将开始进行数据科学操作,例如清理、排序和数据分类。接着,你将学习如何执行数据科学任务,例如聚类、回归、预测、创建机器学习模型并优化它们。此外,你也会学习如何可视化数据及共享项目。
在本书中,你将学习如何在Anaconda平台上使用不同的软件包获得最佳结果。你还将学习如何有效地使用conda——Anaconda的包管理器。另外,书中还将介绍Anaconda的几个强大特性,例如附加项目、项目附加组件、共享项目驱动以及强大的计算节点,这些节点存在于付费版本中,可用来完成高级数据处理流程。此外,你将学习如何构建可伸缩的和功能强大的包,以及如何进行各种各样的数据探索、分布式计算等。你还将通过发现和共享包、Notebook和环境来提高工作效率。最后,你还将学习Anaconda的加速,这是一种能够帮助你轻松优化计算能力的特性。
在本书中,我们将介绍4种编程语言——R、Python、Octave和Julia,这样做有几个原因。首先,这4种语言都是开源的,这是未来的一个趋势。其次,使用Anaconda平台最明显的优势之一就是我们可以实现用多种语言编写程序。然而,对于很多初学者来说,同时学习4种语言会很有挑战性,所以最好的策略是先关注R和Python。一段时间后,或者读完整本书后,再学习Octave或Julia。
●R:这是一个用于统计和绘图的免费软件环境,它能够在各种平台上编译并运行,例如Windows和macOS。我们认为R可能是很多优秀计算机语言中比较简单的一个,特别是那些提供开源软件的语言。本书作者已经出版了一本关于R的著作Financial Modeling Using R。
●Python:这是一种通用的解释型高级编程语言。对于商业分析和数据科学来说,Python可能是很多编程语言中的首选。
●Octave:这是一款以高级编程语言为特色的软件,主要用于数值计算。Octave有助于通过数值计算解决线性和非线性问题,以及其他数值实验。其次,Octave也是免费的。此外,Octave的语法与MATLAB基本兼容,这一特性使它在华尔街和很多行业很受欢迎。
●Julia:这是一种用于数值计算的高级、高性能动态编程语言,它提供了一个复杂的编译器、分布式并行执行、数值精度,以及大量的数学函数库。Julia的基本库大部分用Julia语言编写,它集成了开源的C和Fortran库,这些库主要用于线性代数、随机数生成、信号处理和字符串处理。
本书面向的读者
如果你是一位正在寻找执行数据科学操作最佳工具的开发者,那么本书就是为你准备的。对于那些想通过使用多种语言的库来提高数据科学应用效率的数据分析师和数据科学专业人士,这也是他们的理想选择。在阅读本书之前,读者需要具备R或Python的基本编程知识,以及线性代数的基本知识。
本书涵盖内容
第1章,Anaconda生态系统,介绍了一些基本概念,例如使用Anaconda的原因,使用完整版的Anaconda和其子版本Miniconda的优势。然后,本章还介绍了Anaconda在无须安装情况下的在线使用方法。此外,我们还测试了一些用R、Python、Julia和Octave编写的简单程序。
第2章,Anaconda安装,展示了如何安装Anaconda、测试安装是否成功、如何启动Jupyter并使用它启动Python、如何启动Spyder和R,以及如何查找帮助。这些概念或程序大部分都比较简单,所以对掌握它们非常有信心的读者可以跳过本章,直接进入下一章。
第3章,数据基础,讨论了开放的数据源,包括美国劳工统计局、美国人口普查局、French教授的数据库、美联储的数据库和UCI(加州大学欧文分校)的机器学习库。然后解释了如何输入数据、如何处理缺失数据、如何排序、切割数据集,以及如何合并不同的数据集和数据输出。对于不同的语言,例如Python、R、Julia和Octave,本章也介绍并讨论了一些与数据操作相关的包。
第4章,数据可视化,讨论了各种类型的可视化表示,包括用不同语言(如R、Python和Julia)编写的简单图表、条形图、饼图和直方图。由于视觉呈现可以帮助读者更好地理解数据,所以对于很多复杂的概念或理论,可以使用视觉表现来帮助解释它们的逻辑和复杂性,一个典型的例子就是所谓的二分法或二分搜索。
第5章,在Anaconda中统计建模,解释了很多与统计相关的重要问题,例如T分布、F分布、T检验和F检验。我们还讨论了线性回归、如何处理缺失数据、如何处理异常值、共线性及其处理方法,以及如何进行多变量线性回归。
第6章,管理包,解释了管理包的重要性,如何查找R、Python和Julia的所有可用包,以及如何查找每个包的使用手册。此外,我们还讨论了包依赖的问题,以及在处理包时如何使编程更容易一些。
第7章,Anaconda的优化,讨论了几个优化主题,包括一般优化问题、将各种优化问题表示为LPP,以及二次优化。为了使我们的讨论更加深入实践,书中还给出了几个例子,例如如何选择最优的股票组合、如何优化财富和资源以促进可持续发展,以及政府实际应该收多少税。此外,我们还介绍了R、Python、Julia和Octave中用于优化的一些包。
第8章,Anaconda中的无监督学习,讨论了层次聚类和k-均值聚类。此外,我们详细学习了R和Python的几个相关包,包括R包rattle、Rmixmod和randomUniformForest,以及Python包Scipy.cluster、Contrastive和sklearn。
第9章,Anaconda中的监督学习,讨论了分类、k-最近邻算法、贝叶斯分类器、强化学习,以及特定的R和Python相关模块(如RTextTools和sklearn)。此外,读者还将学习它们的R、Python、Julia和Octave实现。
第10章,数据预测分析:建模和验证,本章涵盖了数据预测分析、建模和验证、一些有用的数据集、时间序列分析、如何预测未来事件、季节性问题,以及如何可视化数据。此外,书中也提到了Python包prsklearn和catwalk、R包datarobot、LiblineaR和eclust、Julia包QuantEcon及Octave包ltfat。
第11章,Anaconda云,讨论的主题包括:深入学习Jupyter Notebook、Jupyter Notebook的不同格式,如何与同伴共享Notebook,如何在不同平台上共享不同的项目,如何共享你的工作环境,以及如何在本地复制其他人的环境。
第12章,分布式计算、并行计算和HPCC,涵盖了分布式计算和Anaconda加速。当数据或任务变得更复杂时,我们需要一个好的系统或一组工具来处理数据和运行复杂的算法。为此,分布式计算是一种解决方案。另外,我们将解释计算节点、项目附加组件、并行处理以及用于数据并行化的高级Python特性。
充分利用本书
本书需要一台内存为8GB或16GB(内存越大越好)的个人计算机或Mac。此外,你的计算机应该至少具有一个2.2 GHz的Core i3或i5处理器,或者一个等配的AMD处理器。
体例约定
在本书中,你会发现多种用以区分不同信息类型的文本样式。下面是这些样式的一些例子,以及对它们含义的解释。
文本中的代码单词、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter账号如下所示:“图形和图像方面使用最广泛的Python包为matplotlib。”
代码块的样式如下所示:
import matplotlib.pyplot as plt plt.plot([2,3,8,12]) plt.show()
当我们希望代码块的某个特定部分能够引起你的注意时,相关的行或项目会设置成粗体:
import matplotlib.pyplot as plt
plt.plot([2,3,8,12])
plt.show()
任何命令行输入或输出都如下所示:
install.packages("rattle")
粗体:表示在屏幕上看到的新术语、一个重要单词或一些单词。例如,菜单或对话框中的单词就会像这样出现在文本中。举个例子:“对于数据源,我们从7种可能的格式中进行选择,例如File、ARFF、ODBC、R Dataset、RData File,我们可以从那里加载数据。”
警告或重要说明是这样的。
提示和技巧是这样的。