Skip to content

Latest commit

 

History

History
200 lines (130 loc) · 9.08 KB

feature.md

File metadata and controls

200 lines (130 loc) · 9.08 KB

数据准备和特征工程

购买

  • 各大电商平台有售
  • 电子工业出版社天猫旗舰店

读者来信

1、《数据准备和特征工程》读后感

2、阅读齐老师图书的一些感想

3、数据工程师的烦恼,就这样一扫而光

资源

源码

我利用百度提供的Ai Studio平台,创建了本书配套的实验课程,读者进入该课程之后,可以对照本书,在线调试所有代码,并且使用所提供的各种数据集。也可以将源码和数据集下载到本地使用。

地址:https://aistudio.baidu.com/aistudio/course/introduce/1337

PPT 下载

链接: https://pan.baidu.com/s/1BDBxTnc9J1LP3zpWoiJIZw 提取码: qj2l

视频课程

以下视频课程是西交利物浦大学洪贤斌博士依据本书内容录制

《Python数据处理与特征工程》https://edu.csdn.net/course/detail/30850

辅助文章

在我的微信公众号【老齐教室】和博客上有很多关于数据科学的文章,其中也包含数据准备和特征工程相关内容。

请阅读:数据科学和人工智能文章汇总

##《数据准备和特征工程》目录

  1. 课程概论

    1. 概论(一)👉视频课程:概论(一)
    2. 概论(二)👉视频课程:概论(二)
  2. 感知数据

    1. 了解数据科学项目👉视频课程:学习准备
    2. 文件中的数据👉视频课程:文件中的数据
    3. 数据库中的数据
    4. 网页上的数据
    5. 来自 API 的数据
  3. 数据清理

    1. 基本概念
    2. 转化数据类型
    3. 处理重复数据
    4. 处理缺失数据👉视频课程:处理缺失数据
    5. 处理离群数据👉视频课程:处理离群值
  4. 特征变换

    1. 特征的类型👉视频课程:特征的类型
    2. 特征数值化
    3. 特征二值化
    4. OneHot编码
    5. 数据变换
    6. 特征离散化👉视频课程:特征离散化
    7. 数据规范化👉视频课程:特征规范化
  5. 特征选择

    1. 特征选择简述
    2. 封装器法
    3. 过滤器法
    4. 嵌入法
  6. 特征抽取

    1. 无监督特征抽取👉视频课程:无监督特征抽取
    2. 有监督特征抽取

勘误与修订

2020年3月第1版第1次印刷


勘误

前言

  • 位置:第1自然段,第2行
  • 原文:另外,数据科学业界中还流传着另一句话:
  • 修改为:另外,数据科学业界还流传着另一句话:
  • 说明:去掉原文中的“另外”和“中”

第003页

  • 位置:正文,第5自然段,第5行
  • 原文:各环节之间不仅前后衔接,而且还可能循环往复。
  • 修改为:各环节之间不仅前后衔接,而且还可能循环往复。
  • 说明:去掉原文中的“而且”。

第014页

  • 位置:正文,第3自然段。
  • 原文:⑫的作用是……。注意,这一句必须在且只能在代码块的第1行。
  • 修改为:⑫的作用是……。注意,这一句必须在且只能在代码块的第1行。
  • 说明:删除“注意......”这一句。

第015页

  • 位置:正文,倒数第1段,倒数第1行
  • 原文:⑰是惰性操作,......,直到执行后续操作。
  • 修改为:⑰是惰性操作,......,直到执行后续操作。
  • 说明:原文所示的那一句删除。

第038页

  • 位置:代码段,In[9],第2行
  • 原文:tdatas.to_csv("./chapter01/movies.csv")
  • 修改为:datas.to_csv("./chapter01/movies.csv")
  • 说明:原文中,在datas前面的字母 t 应该去掉

第042页

  • 位置:动手练习,第1题,整个题目进行修改。
  • 修改为:在网上找到一个可用于读取数据的API,练习通过API读取数据。
  • 说明:原文中的题目,因为API失效,不能使用,所以将题目内容更改。

修订

第009页

  • 说明:在正文倒数第1段之前,即“下面就使用这个函数读取Excel文件的数据”此段落之前,插入如下内容

    为了顺利使用pd.read_excel函数,先安装两个操作Excel文件常用的第三方包:xlrd、openpyxl。

第029页

  • 说明:在第一段代码之后,在“建议读者在上述基础上,......”这段之前,增加下述内容。

利用read_sql_query函数,能够对数据库表直接使用SQL语句。此外,Pandas中还有一个名为read_sql的函数,它是对函数read_sql_query和read_sql_table的高级封装,用这个函数能够从指定数据库文件中读取数据。

为了使用这个函数,必须安装SQLAlchemy模块。

$ pip install sqlalchemy

在演示读取数据之前,先创建一个SQLite的数据库文件(SQLite数据库是Python默认支持的,Python中有相应的标准库sqlite3)。

from sqlalchemy import create_engine
engine = create_engine('sqlite:///data.db', echo=False)

创建名称为data.db的SQLite数据库,并用变量engine引用此数据库对象。

import pandas as pd
path = '/Users/qiwsir/Documents/Codes/DataSet/pm25'
diadf = pd.read_csv(path+"/pm2.csv")
diadf.to_sql("diadata.db", con=engine, index_label='ID')

从CSV文件中的读取数据,然后执行to_sql方法,将数据保存到前面创建的数据库中,并将相应的数据库表命名为diadata.db。

执行完上述操作之后,在本地就可以看到名为data.db的数据库文件,如果用可视化工具打开这个数据库,可以查看到里面的内容(如下图所示,相关操作方法请参阅《Python大学实用教程》)。

接下来,就可以使用Pandas的read_sql函数从这个数据库中读取数据库表diadata.db中的数据了。

df = pd.read_sql('diadata.db', con=engine, index_col='ID')
df.head()

输出:

	 RANK	CITY_ID	CITY_NAME	Exposed days
ID				
0	 1	  594	     拉萨	      2
1	 2	  579	     玉溪	      7
2	 3	  263	     厦门	      8
3	 4	  267	     泉州	      9
4	 5	  271	     漳州	      10