你是否想学习数据科学中的Python却苦于没有时间?你是否正转行数据科学领域因而想要学习Python?过年了,小伙伴是不是想在家也能有点收获?本篇文章旨在讨论如何在30天内速成数据科学中的Python。同时,我们也准备了Python的每周计划与主题。
在开始之前,让我们先了解一下Python在数据科学中的用途吧。
数据科学融合了数据推理、算法开发与技术等学科,旨在分析解决复杂的问题。它能够利用可用数据来解决现实问题。但是,数据分析并不是一步到位的,它需要运用多种方法才能来找到合适的解决方案。同时,数据科学家可能也需要经历多个阶段才能对某特定问题得出一些见解。这一系列阶段统称为数据科学管道。让我们来看看其中包含了哪些阶段吧!
数据科学管道的不同阶段
1. 明确问题
与大众认知不同,数据科学最困难的部分不是建立精准的模型,也不是获得优良清晰的数据;相比起来,明确可能存在的问题并提出衡量解决方案的合理方法要难得多。明确问题是为了深入理解已有的某特定问题。人们会组织多场头脑风暴会议来明确所需要解决的问题,因为你的最终方案完全取决于你要解决的问题到底是什么。因此,如果你在明确问题阶段就走偏了,那么你所解决问题很可能从一开始就从未存在过。
2. 假设检验
假设检验是统计学中的一种行为,即分析师检验有关总体参数的某项假设。分析师所用的方法取决于所用数据的性质以及分析的原因。假设检验旨在根据小部分样本数据推测假设结果。简单来说就是,我们在明确问题阶段提出一些假设,然后再运用数据来统计验证它们。
3. 数据收集与处理
数据收集指以既定的系统化方法收集与测量感兴趣的变量信息,使人们能够回答所规定的研究问题,检验假设,以及评估结果。另外,研究中的数据收集部分适用于所有研究领域,包括物理与社会科学、人文科学、商业等。虽然各学科的方法有所不同,但是在确保数据收集的准确与真实这一点上却是相同的。
此外,数据处理更多地是对数据执行的一系列操作或步骤,以便于以适当的输出形式检验、组织、转换、整合与提取数据,以供后续使用。必须要严格记录处理方法,以确保数据的实用性和准确性。
4. 探索性数据分析(EDA)与特征工程
在清理转换完数据之后,机器学习项目的下一步便是运用探索性数据分析(EDA)来熟悉数据。EDA涉及数字摘要、图表、聚合、分布与密度,可核查所有级别的因子变量和应用一般性的统计方法。了解数据可为后续的模型选择奠定基础,如选择正确的机器学习算法来解决问题。特征工程是确定哪些预测变量会对机器学习算法的预测能力发挥最大作用的过程。特征工程的整个过程既是一门艺术,也是一门科学。通常,特征工程与探索性数据分析相互合作,以提供急需的数据直觉。在这个过程中,有领域专家是很好的;但是,发挥你的想象力也是不错的。
5. 建模与预测
机器学习可用于预测未来。首先你需要提供一组训练实例,然后调整模型使其适用于该数据集,最后再将该模型应用于新的案例之中以做出预测。预测模型对于初创公司而言是非常有用的,因为你可以根据用户的预期行为来制作产品。比如,如果某用户一直用流媒体服务观看某个广播频道,那么应用程序可在启动时自行加载该频道。
6. 数据可视化
数据可视化指以图表、图形与条形图的形式呈现数据/信息,为用户提供可视化报告,以用于数据与模型预测的性能、操作或一般性统计。
7. 洞察的生成与实行
解释数据更像是将你的发现传达给感兴趣的各方一样。如果你无法向那些相信你的人阐释你的发现,那么不管你做什么都是徒劳的。因此,这一步显得尤为重要。该步骤的目标是,首先确定业务洞察,然后再将其与你的数据发现联系起来。其次,你可能需要求助于领域专家,将数据发现与商业问题联系起来。领域专家能帮助你根据业务维可视化你的发现,这也方便你向非技术人员传达事实。
Python在数据科学不同阶段的应用
在了解了数据科学管道的不同阶段之后,我们可以了解一下Python在这几个阶段中的应用。因此,现在我们能更好地理解Python是如何应用于数据科学中的了。
首先,明确问题与洞察生成不需要使用任何编程语言,因为这两个阶段更多地是基于研究与决策,而非使用代码。
1. 数据收集中的Python
许多数据科学项目都需要抓取网页来收集后期会用到的数据。Python这种编程语言被广泛应用于数据科学社区,因此具有模块与工具生态系统,以供用户在项目中使用。
2. 假设检验中的Python
假设检验需要大量的统计知识与执行。Python拥有可帮助用户轻松执行统计检测与计算的库。用户可使用这些Python库(如SciPy)来自动执行假设检验任务。
3. 探索性数据分析(EDA)中的Python
许多库都可用来执行基本的探索性数据分析(EDA),比如pandas和matplotlib。pandas用于数据操作,matplotlib用于图形绘制。Jupyter Notebooks用于写代码和其他发现。Jupyter Notebooks是一种用于数据分析和数据科学家的日记,你可以在这个基于网页的平台上结合Python、HTML与Markdwn来阐释你的数据洞察。
4. 可视化中的Python
数据科学家的关键技能之一便是能够讲述引人入胜的故事。他能以一种平易近人又让人兴奋地方式可视化数据和发现。同时,学习“库”以可视化数据也能让你提取信息,理解数据,并做出有效决策。另外,像matplotlib和seaborn这样的库能让用户轻松构建漂亮的可视化效果。此外,这些库上手简单,耗时较少。
5. 建模与预测中的Python
Python拥有像 sci-kit-learn这样的库。 sci-kit-learn是一款开源Python库,通过统一的界面实现一系列机器学习、预处理、交叉验证与可视化算法。这些Python库可将建模的数学部分抽象出来。因此,开发人员可专注于构建可靠的模型,而不是理解复杂的数学执行。如果你才刚开始接触机器学习,那么你可以点击该链接了解更多信息。
学习时间表
在这个部分,我们为大家准备了Python的每周学习主题,以帮助你们安排学习日程,做好30天的学习规划。
第一周
1. Python基础知识
首先开始学习Python的基础知识。你可以先了解变量与控制流,然后学习Python的字符串、字典、元组以及其他数据结构。
2. Python高级知识
当你学完基础概念之后,你就可以开始学习多线程、类、对象、正式表达式与网络等概念了。虽然在大多数情况下这些概念可能并不大需要,但是了解一下也是有益无害的。
第二周
1. 用Python抓取网页
它指的是使用代码从网页收集数据,这是最合乎逻辑也是最简单易得的数据来源之一。利用网页抓取工具自动执行此操作可避免手动收集数据,能节省时间,同时也可让你在所需结构中获取所有数据。你可以开始学习BeatifulSoup 和Scrapy等Python库,它们具有从网站中抓取数据的功能。熟悉这些Python库有助于你使用Python来收集数据。
2. Python中的Pandas, numPy and SciPy
Python自己有一套用于数据管理的库。像pandas这样的Python库能让用户以数据帧的形式访问数据,方便用户处理具有复杂结构的数据,并对其执行数值操作,如,数据清洗、数据汇总等。但是,numPy更多地是处理数值方法,sciPy则是科学与统计函数,以执行复杂的数学计算。如果你要学习数据科学中的Python,那么这些Python库都是必须要了解的。因此,学习这些Python库时,你需要格外上心。点击此链接了解更多上述信息。
第三周
第三周的任务是理解并熟练掌握Python的机器学习功能。
1. Scikit-learn包
本周的第一个任务是理解Python的机器学习功能。只要说起机器学习和Python,Scikit-learn包都是必须要了解的。你需要花点时间学习Scikit-learn包所提供的方法。它提供了一种统一方法来适应不同的模型,因此,在基于Python的ML开发人员中广受欢迎。
2. Keras
Theano和TensorFlow是Python的两个顶级数字平台,可用于深度学习的开发。这两个库都非常强大,但是却都难以直接用于创建深度学习的模型。因此,Keras这款Python库提供了一种简洁方便的方法,可在Theano或TensorFlow上创建一系列深度学习模型。它是一款用于深度学习的极简Python库,可在Theano或TensorFlow上运行,旨在使用于研究与开发的深度学习模型的实施尽可能地变得又快又简单。Keras可在Python 2.7或3.5中运行。
第四周
第四周更多的是学习Python的可视化,并以项目的形式总结之前的学习成果。
1. Python中的Matplotlib
Matplotlib是一款Python 2D绘图库,能够在跨平台交互式环境中,以多种硬拷贝的格式生成高质量图形,可用于Python脚本,Python和IPython shell,Jupyter Notebook,Web应用程序服务器以及四种图形用户界面工具包。它可将简单的事情变得更加简单,使困难的事情成为可能。此外,只需几行代码便可生成绘图、直方图、功率谱、条形图、错误图表以及散点图等。有关示例请参考示例图和缩略图库。
2. 项目
学习了有关数据科学的Python的大部分知识之后,是时候以项目的形式整合所有的学习成果了。你可以自由挑选自己喜欢的项目。如果你一脸困惑,不知从何下手,那么就先从Kaggle中的Titanic问题开始吧。以下是一些提示:
1. 不要在意Kaggle的得分。你的目标应该是完成项目,而不是广泛的模型拟合。
2. 专注于EDA与数据处理而非建模
3. 专注于利用学过的库(pandas与numPy)进行数据处理
总结
Python是一门通用的编程语言。除了数据科学,它还可用于搭建网站、创建机器学习算法甚至是开发无人机。世界上大部分程序员都在使用Python,这是有原因的。因此,如果你要进入数据科学领域,花点时间学习Python是值得的。有了大量可用的库,Python将始终优于其他语言。Python真的是一门十分有趣又有用的语言。