发表于2024-11-27
实践、实践、实践
本书通过不同的例子展示机器学习在具体项目中的应用和实践经验
使用 scikit-learn 作为编程框架,强调简单、快速地建立模型
《机器学习——Python实践》系统地讲解了机器学习的基本知识,以及在实际项目中使用机器学习的基本步骤和方法;详细地介绍了在进行数据处理、分析时怎样选择合适的算法,以及建立模型并优化等方法,通过不同的例子展示了机器学习在具体项目中的应用和实践经验,是一本非常好的机器学习入门和实践的书籍。
不同于很多讲解机器学习的书籍,本书以实践为导向,使用 scikit-learn 作为编程框架,强调简单、快速地建立模型,解决实际项目问题。读者通过对《机器学习——Python实践》的学习,可以迅速上手实践机器学习,并利用机器学习解决实际问题。《机器学习——Python实践》非常适合于项目经理、有意从事机器学习开发的程序员,以及高校相关专业在的读学生阅读。
魏贞原,IBM 高级项目经理,主要负责银行客户的复杂系统开发。同时是 IBM CIC量子计算 COE 团队的 Python 领域专家(Subject Matter Expert),负责量子计算应用的探索工作,对机器学习和深度学习有深入的研究,精通于运用机器学习来解决数据科学的问题。并运营“知之Python”公众号,定期分享 Python 在机器学习和深度学习中的实践知识。
基于大数据的人工智能如今异常火爆。 对于普通人而言,人工智能意味着自动驾驶、电脑医生,甚至意味着许许多多人类的工作将被机器取代。而对于有志于投身大数据和人工智能领域的传统IT 人士来说,需要了解这些名词的真正内涵,更加需要了解支撑这个所谓“智能时代”背后的机和原理。机器的智能当然不是天生的,需要通过从数据中学习来获得,而 Python 是目前数据分和机器学习领域处于领先地位的编程语言。本书以初学者的视角,带领读者通过 Python 编程实践,实际接触和了解机器学习以及 Python 语言本身,希望在给读者带去知识和技能的同时,也能大家悄悄开启一段驾驭智能时代的旅程。
——王若平 IBM 客户创新中心质量保证部负责人
本书面向于有一定编程基础,并且有志于大数据分析、数据挖掘和算法的程序员、项目经理,以及相关专业的学生。本书不同于教授编程语言的普通教材,而是通过列举很多经典实例,来帮助读者理解 Python 语言,同时可以使读者理解和延伸对大数据分析与挖掘的认识。未来是一个数据的世界,希望读者通过这本书能够很好地驾驭数据,给予我们更大的帮助!同时感谢作者的辛努力与智慧!
——李鸿飞,IBM 高级经理, Cloud Application Development Leader,Complex SI & Arch Leade
第一部分 初始
1 初识机器学习 2
1.1 学习机器学习的误区 2
1.2 什么是机器学习 3
1.3 Python 中的机器学习 3
1.4 学习机器学习的原则 5
1.5 学习机器学习的技巧 5
1.6 这本书不涵盖以下内容 6
1.7 代码说明 6
1.8 总结 6
2 Python 机器学习的生态圈 7
2.1 Python 7
2.2 SciPy 9
2.3 scikit-learn 9
2.4 环境安装 10
2.5 总结 12
3 第一个机器学习项目 13
3.1 机器学习中的 Hello World 项目 13
3.2 导入数据 14
3.3 概述数据 15
3.4 数据可视化 18
3.5 评估算法 20
3.6 实施预测 23
3.7 总结 24
4 Python 和 SciPy 速成 25
4.1 Python 速成 25
4.2 NumPy 速成 34
4.3 Matplotlib 速成 36
4.4 Pandas 速成 39
4.5 总结 41
第二部分 数据理解
5 数据导入 44
5.1 CSV 文件 44
5.2 Pima Indians 数据集 45
5.3 采用标准 Python 类库导入数据 46
5.4 采用 NumPy 导入数据 46
5.5 采用 Pandas 导入数据 47
5.6 总结 47
6 数据理解 48
6.1 简单地查看数据 48
6.2 数据的维度 49
6.3 数据属性和类型 50
6.4 描述性统计 50
6.5 数据分组分布(适用于分类算法) 51
6.6 数据属性的相关性 52
6.7 数据的分布分析 53
6.8 总结 54
7 数据可视化 55
7.1 单一图表 55
7.2 多重图表 58
7.3 总结 61
第三部分 数据准备
8 数据预处理 64
8.1 为什么需要数据预处理 64
8.2 格式化数据 65
8.3 调整数据尺度 65
8.4 正态化数据 67
8.5 标准化数据 68
8.6 二值数据 69
8.7 总结 70
9 数据特征选定 71
9.1 特征选定 72
9.2 单变量特征选定 72
9.3 递归特征消除 73
9.4 主要成分分析 75
9.5 特征重要性 76
9.6 总结 76
第四部分 选择模型
10 评估算法 78
10.1 评估算法的方法 78
10.2 分离训练数据集和评估数据集 79
10.3 K 折交叉验证分离 80
10.4 弃一交叉验证分离 81
10.5 重复随机分离评估数据集与训练数据集 82
10.6 总结 83
11 算法评估矩阵 85
11.1 算法评估矩阵 85
11.2 分类算法矩阵 86
11.3 回归算法矩阵 93
11.4 总结 96
12 审查分类算法 97
12.1 算法审查 97
12.2 算法概述 98
12.3 线性算法 98
12.4 非线性算法 101
12.5 总结 105
13 审查回归算法 106
13.1 算法概述 106
13.2 线性算法 107
13.3 非线性算法 111
13.4 总结 113
14 算法比较 115
14.1 选择最佳的机器学习算法 115
14.2 机器学习算法的比较 116
14.3 总结 118
15 自动流程 119
15.1 机器学习的自动流程 119
15.2 数据准备和生成模型的 Pipeline 120
15.3 特征选择和生成模型的 Pipeline 121
15.4 总结 122
第五部分 优化模型
16 集成算法 124
16.1 集成的方法 124
16.2 装袋算法 125
16.3 提升算法 129
16.4 投票算法 131
16.5 总结 132
17 算法调参 133
17.1 机器学习算法调参 133
17.2 网格搜索优化参数 134
17.3 随机搜索优化参数 135
17.4 总结 136
第六部分 结果部署
18 持久化加载模型 138
18.1 通过 pickle 序列化和反序列化机器学习的模型 138
18.2 通过 joblib 序列化和反序列化机器学习的模型 140
18.3 生成模型的技巧 141
18.4 总结 141
第七部分 项目实践
19 预测模型项目模板 144
19.1 在项目中实践机器学习 145
19.2 机器学习项目的 Python 模板 145
19.3 各步骤的详细说明 146
19.4 使用模板的小技巧 148
19.5 总结 149
20 回归项目实例 150
20.1 定义问题 150
20.2 导入数据 151
20.3 理解数据 152
20.4 数据可视化 155
20.5 分离评估数据集 159
20.6 评估算法 160
20.7 调参改善算法 164
20.8 集成算法 165
20.9 集成算法调参 167
20.10 确定最终模型 168
20.11 总结 169
21 二分类实例 170
21.1 问题定义 170
21.2 导入数据 171
21.3 分析数据 172
21.4 分离评估数据集 180
21.5 评估算法 180
21.6 算法调参 184
21.7 集成算法 187
21.8 确定最终模型 190
21.9 总结 190
22 文本分类实例 192
22.1 问题定义 192
22.2 导入数据 193
22.3 文本特征提取 195
22.4 评估算法 196
22.5 算法调参 198
22.6 集成算法 200
22.7 集成算法调参 201
22.8 确定最终模型 202
22.9 总结 203
5 数据导入
在训练机器学习的模型时,需要用到大量数据,最常用的做法是利用历史的数据来训练模型。这些数据通常会以 CSV 的格式来存储,或者能够方便地转化为 CSV 格式。在开始启动机器学习项目之前,必须先将数据导入到 Python 中。下面将介绍三种将 CSV数据导入到 Python 中的方法,以便完成对机器学习算法的训练。
通过标准的 Python 库导入 CSV 文件。
通过 NumPy 导入 CSV 文件。
通过 Pandas 导入 CSV 文件。
5.1 CSV 文件
CSV 文件是用逗号(,)分隔的文本文件。在数据导入之前,通常会审查一下 CSV文件中包含的内容。在审查 CSV 文件时,通常要注意以下几个方面。
5.1.1 文件头
如果 CSV 的文件里包括文件头的信息,可以很方便地使用文件头信息来设置读入数据字段的属性名称。如果文件里不含有文件头信息,需要自己手动设定读入文件的字段属性名称。数据导入时,设置字段属性名称,有助于提高数据处理程序的可读性。
5.1.2 文件中的注释
在 CSV 文件中,注释行是以“井”号(#)开头的。是否需要对读入的注释行做处理,取决于采用什么方式读入 CSV 文件。
5.1.3 分隔符
CSV 文件的标准分隔符是逗号(,),当然也可以使用 Tab 键或空格键作为自定义的分隔符。当使用这两种分隔符时,文件读取是要指明分隔符的。
5.1.4 引号
当有的字段值中有空白时,这些值通常都会被引号引起来,默认使用双引号来标记这些字段值。如果采用自定义格式,那么在文件读取时要明确在文件中采用的自定义格式。
5.2 Pima Indians 数据集
首先介绍一下在本章和后续章节中要使用的测试数据。目前在 UCI 机器学习仓库(http://archive.ics.uci.edu/ml/datasets.html)中有大量的免费数据,可以利用这些数据来学习机器学习,并训练算法模型 。本章选择的 Pima Indians 数据集就是从 UCI 中获取的。这是一个分类问题的数据集, 主要记录了印第安人最近五年内是否患糖尿病的医疗数据。
这些数据都是以数字的方式记录的,并且输出结果是 0 或 1,使我们在机器学习的算法中建立模型变得非常方便。
5.3 采用标准 Python 类库导入数据
Python 提供了一个标准类库 CSV,用来处理 CSV 文件。这个类库中的 reader()函数用来读入 CSV 文件。当 CSV 文件被读入后,可以利用这些数据生成一个 NumPy 数组,用来训练算法模型。首先下载数据文件到应用目录下,并命名文件为 pima.csv。这个文件中所有的数据都是数字,并且数据中不含有文件头。代码如下:
from csv import reader
import numpy as np
# 使用标准的 Python 类库导入 CSV 数据
filename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:
readers = reader(raw_data, delimiter=',')
x = list(readers)
data = np.array(x).astype('float')
print(data.shape)
执行结果如下:
(768, 9)
代码非常简单,就不详细进行讲解了。详细内容请查阅 Python 的 API 介绍。
5.4 采用 NumPy 导入数据
也可以使用 NumPy 的 loadtxt()函数导入数据。使用这个函数处理的数据没有文件头,并且所有的数据结构是一样的,也就是说,数据类型是一样的。代码如下:
from numpy import loadtxt
# 使用 NumPy 导入 CSV 数据
filename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:
data = loadtxt(raw_data, delimiter=',')
print(data.shape)
这段代码就比直接使用 Python 的标准类库简洁了很多,执行结果如下:
(768, 9)
5.5 采用 Pandas 导入数据
前面介绍了如何通过标准的 Python 类库和 NumPy 来导入数据。接下来会通过一个例子来演示如何通过 Pandas 导入 CSV 文件的数据。 通过 Pandas 来导入 CSV 文件要使用pandas.read_csv()函数。这个函数的返回值是 DataFrame,可以很方便地进行下一步的处理。这个函数的名称非常直观,便于代码的阅读和后续对数据的处理。在机器学习的项目中,经常利用 Pandas 来做数据清洗与数据准备工作。因此,在导入 CSV 文件时,推荐大家使用这个方法。代码如下:
from pandas import read_csv
# 使用 Pandas 导入 CSV 数据
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age',
'class']
data = read_csv(filename, names=names)
print(data.shape)
这段代码为数据补充了文件头,执行结果如下:
(768, 9)
5.6 总结
本章主要介绍了三种导入 CSV 文件到 Python 的方法,分别是:通过标准的 Python 类库导入、通过 NumPy 导入和通过 Pandas 导入。在进行机器学习项目实践时,建议采用 Pandas方式导入数据。 到目前为止, 本书已经介绍了在机器学习中的基本环境和相应的类库的使用方法,以及一个简单的机器学习的分类的例子。本章介绍了如何导入数据到 Python 中,接下来就通过描述统计的方式来理解导入的数据。
前言
“这是最好的时代,也是最坏的时代”,这是英国文豪狄更斯的名著《双城记》开篇的第一句话,一百多年来不断被人引用。这里再次引用它来形容智能革命给我们带来的未来社会。从 2016 年 AlphaGo 在围棋比赛中战胜韩国选手李世石,到 2017 年 Master 战胜世界排名第一的围棋选手柯洁,人工智能再一次引起了世人的注意。在大数据出现之前,人工智能的概念虽然一直存在,但是计算机一直不擅长处理需要依赖人类的智慧解决的问题,现在换个思路就可以解决这些问题,其核心就是变智能问题为数据问题。由此,全世界开始了新一轮的技术革命——智能革命。
自从 1687 年艾萨克·牛顿发表了论文《自然定律》,对万有引力和三大运动定律进行了描述,人类社会进入了科学时代。在此之后,瓦特通过科学原理直接改进蒸汽机,开启了工业革命的篇章,由于机器的发明及运用成为这个时代的标志,因此历史学家称这个时代为“机器时代”。机器时代是利用机器代替人力,在原有的产业基础上加上蒸汽机形成新的产业,例如马车加上蒸汽机成为火车,改变了人的出行方式;帆船加上蒸汽机成为轮船,让货物的运输变得更加便捷。同时,原有的工匠被更加便宜的工人替代,社会的财富分配不均,社会进入动荡期,如英国大约花费了半个世纪的时间才完成了工业革命的变革。同样,第二次工业革命和信息革命,每一次变革都让财富更加集中,给社会带来动荡。第二次工业革命同样花费了 机器学习 Python实践 下载 mobi epub pdf txt 电子书 格式
机器学习 Python实践 下载 mobi pdf epub txt 电子书 格式 2024
机器学习 Python实践 下载 mobi epub pdf 电子书就是今生今世都觉得好多好多好多话好多会变得不到
评分非常好的一本书,值得认真看,反复看
评分很不错的书级,自学起来难度不算太大
评分好书,每次京东做活动都是一堆一堆的书。正品,书的质量不错?
评分天下任我纵横。
评分容易懂,看起来上手比较容易的
评分加油学习机器学习,找到好工作
评分算是入门的书吧,还不错,趁着打折买的,挺划算的。京东物流也很快,第二天就到了。
评分书不错,内容循序渐进,适合入门
机器学习 Python实践 mobi epub pdf txt 电子书 格式下载 2024