数据科学是一门研究数据并从中挖掘信息的学科。它不要求自创或学习新的算法,只需要知道怎么样研究数据并解决问题。这一过程的关键点之一就在于使用合适的库。本文概述了数据科学中常用的、并且有一定重要性的库。在进入正题之前,本文先介绍了解决数据科学问题的5个基本步骤。这些步骤是笔者自己总结撰写的,并无对错之分。步骤的正确与否取决于数据的研究方法。
数据科学的五个重要步骤包括:
- 获取数据
- 清理数据
- 探索数据
- 构建数据
- 呈现数据
这五个步骤只是经验之谈,并不是什么标准答案。但是如果仔细思考,就会发现这五个步骤是非常合理的。
1. 获取数据
获取数据是解决数据科学问题的关键一步。你需要提出一个问题并最终解决它。这取决于你是如何以及从何处获取数据的。获取数据最好的方法就是从Kaggle上下载或从网络上抓取。
当然,你也可以采用适当的方法和工具从网络上抓取数据。
网络数据抓取最重要、最常用的库包括:
- Beautiful Soup
- Requests
- Pandas
Beautiful Soup是一个可从HTML和XML文件中提取数据的Python库。推荐读者阅读Beautiful Soup库官方文档。
如果已经安装Python,只需输入以下命令,即可安装Beautiful Soup。文中所涉及的库全部给出了安装方法。但是我更推荐读者使用Google Colab,便于练习代码。在Google Colab中,无需手动安装,只需要输入“importlibrary_name”,Colab就会自动安装。
- pip install beautifulsoup4
导入Beautiful Soup库:
- from bs4 import BeautifulSoupBeautifulSoupSoup = BeautifulSoup(page_name.text, ‘html.parser’)
Python的Requests库采用更加简单易用的方式发送HTTP请求。Requests库中有很多种方法,其中最常用的是request.get()。在URL转发成功或失败的情况下,request.get()都能够返回URL转发状态。推荐读者阅读Requests库官方文档了解更多信息
(https://realpython.com/python-requests/?source=post_page-----a58e90f1b4ba----------------------)。
安装Requets:
- pip install requests
导入Requests库:
- import requestsrequestspaga_name = requests.get('url_name')
Pandas是一种方便易用的高性能数据结构,同时也是Python编程语言分析工具。Pandas提供了一种能够清晰、简洁地存储数据的数据框架。Pandas库官方文档如下:
https://pandas.pydata.org/pandas-docs/stable/?source=post_page-----a58e90f1b4ba----------------------
安装Pandas:
- pip install pandas
导入Pandas库:
- import pandas as pd
2. 清理数据
清理数据有许多重要的步骤,往往包括清除重复行、清除异常值、查找缺失值和空值,以及将对象值转换成空值并绘制成图表等。
数据清理常用的库包括:
- Pandas
- NumPy
Pandas可以说是数据科学中的“万金油”——到处都可用。关于Pandas的介绍详见上文,此处不再赘述。
NumPy即Numeric Python,是一个支持科学计算的Python库。众所周知,Python本身并不支持矩阵数据结构,而Python中的NumPy库则支持创建和运行矩阵计算。NumPy库官方文档如下:
https://numpy.org/devdocs/?source=post_page-----a58e90f1b4ba----------------------
运行以下命令下载NumPy(确保已经安装了Python):
- python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
导入NumPy库:
- import numpy as np
3. 探索数据
探索性数据分析(Exploratory Data Analysis, EDA)是用于增强信息索引理解的工具,通过有规律地删减和用图表绘制索引基本特征实现。使用EDA能够帮助用户更加深入、清晰地探索数据,展现重要信息采集的发布或情况。
运行EDA常用的库包括:
- Pandas
- Seaborn
- Matplotlib.pyplot
Pandas:详见上文。
Seaborn是一个Python数据可视化库,为绘制数据图表提供了一个高级接口。安装最新版本的Seaborn:
- pip install seaborn
推荐读者阅读Seaborn官方文档:
https://seaborn.pydata.org/examples/index.html?source=post_page-----a58e90f1b4ba----------------------#example-gallery
使用Seaborn,可以轻松绘制条形图、散点图、热力图等图表。导入Seaborn:
- import seaborn as sns
Matplotlib是一个Python 2D图形绘图库,能够在多种环境中绘制图表,可替代Seaborn。事实上,Seaborn是基于Matplotlib开发的。
安装Matplotlib:
- python -m pip install -U matplotlib
推荐阅读Matplotlib官方文档:
https://matplotlib.org/users/index.html?source=post_page-----a58e90f1b4ba----------------------
导入Matplotlib.pyplot库:
- import matplotlib.pyplot as plt
4. 构建模型
构建模型是数据科学中的关键一步。由于这一步要求根据要解决的问题和所获取的数据来构建机器学习模型,所以和其他步骤相比难度更大。在这一步中,问题陈述是至关重要的一点,因为它会影响对问题的定义和提出的解决方法。网络上大部分公开的数据集都是基于某一个问题收集的,因此解决问题的能力就尤为重要。而且,由于没有某个特定的算法最适合自己,你需要在多种算法中进行选择,考虑数据适合用回归、分类、聚类还是降维算法。
选择算法经常是一件让人头疼的事。读者可以使用SciKit learn算法选择路径图来记录追踪哪个算法的性能最优。下图展示了一张SciKit learn的路径图:
来源:scikit learn
不难猜出,建模时最常用的库是:
(1) SciKit learn
SciKit learn是Python中一个便于使用的构建机器学习模型的库。它是基于NumPy、SciPy和Matplotlib开发的。SciKit learn库官方文档如下:
https://scikit-learn.org/stable/?source=post_page-----a58e90f1b4ba----------------------
导入scikit learn:
- import sklearn
安装scikit learn:
- pip install -U scikit-learn
5. 呈现数据
这是数据科学的最后一步,也是很多人不想做的一步——毕竟没有人想要公开发表他们的数据发现。呈现数据也是有法可循的,并且这个方法极为重要,因为无论如何,成果最终还是要向人们展示的。而且由于人们并不关心所使用的的算法,他们只关心结果,所以展示还要做到简洁明了。为了展现数据成果,推荐读者安装Jupyter notebook:
https://jupyter.org/install.html?source=post_page-----a58e90f1b4ba----------------------
同时,安装如下指令给notebook配备展示选项:
- pip install RISE
阅读文章:
http://www.blog.pythonlibrary.org/2018/09/25/creating-presentations-with-jupyter-notebook/,了解更多如何使用notebook做出精彩展示的教程。务必遵循教程的步骤。读者还可以观看Youtube的视频进行学习:
https://mp.weixin.qq.com/s?__biz=MzI2NjkyNDQ3Mw==&mid=2247491724&idx=2&sn=84ec47e8fa0cb390f8031225317fa1c5&chksm=ea84185addf3914c71e5c3bcc83e7bcf7655c57a1a125c87961cf0f9eba9f1f4c68f2a72e5d4&mpshare=1&scene=23&srcid=&sharer_sharetime=1572619264987&sharer_shareid=9603544ecd5d7f3dc66603ae089636f4#rd
来源:LiveLessons
以上就是本文全部内容。本文从最基础的内容开始介绍,读完全文,读者已经知道了在数据科学中如何、在何时、以及在哪一步使用Python库。