商品详情
电子书介绍

读者评价

很多代码,但是重复的太多了。比如用逻辑回归写了个代码,预处理部分写了函数,然后从sklearn调用Logistic_regression,然后fit,predict,然后到svm部分呢,预处理部分写了个代码,然后又调用sklearn svm.fit ,predict,问题是预处理部分的代码都很类似。没必要每个例子都重复一遍的。不够简洁,也许这就是cookbook的特点吧

本书(《Python 机器学习经典实例》)的标题“经典实例”让我非常感兴趣。

一直认为学习任何新事物,先上手实现简单的demo,再分析这个demo做了什么,怎么做,才能更快的学习。如果是在初始阶段就大量的学习理论,只会对要学习的东西感到痛苦,“这个有什么用啊?”或者“虽然每个字都能看懂,但放一起就不知道在说什么了”。幸运的是本书就同书名一样,上手就是实例,也穿插了必要的专有名词解释,总体来说还是能够跟得上进度。并且给出了所使用的数据,能够和书中得到相同的结果,这一反馈更能够增强学习的意愿与兴趣。但是另一方面,只给出“结果”,而没有“原因”,在一定程度上只是学会了“书里面的知识”,而无法从虚拟的例子映射到实际的现实问题。但鱼和熊掌不可得兼,专注做好一件事,对于“机器学习”的通俗解释,可以从另一本书中找到答案(还没找到这本书)。

专业评价

用火的Python语言、通过各种各样的机器学习算法来解决实际问题!书中介绍的主要问题如下。

- 探索分类分析算法并将其应用于收入等级评估问题

- 使用预测建模并将其应用到实际问题中

- 了解如何使用无监督学习来执行市场细分

- 探索数据可视化技术以多种方式与数据进行交互

- 了解如何构建推荐引擎

- 理解如何与文本数据交互并构建模型来分析它

- 使用隐马尔科夫模型来研究语音数据并识别语音

内容简介

在如今这个处处以数据驱动的世界中,机器学习正变得越来越大众化。它已经被广泛地应用于不同领域,如搜索引擎、机器人、无人驾驶汽车等。本书首先通过实用的案例介绍机器学习的基础知识,然后介绍一些稍微复杂的机器学习算法,例如支持向量机、极端随机森林、隐马尔可夫模型、条件随机场、深度神经网络,等等。

本书是为想用机器学习算法开发应用程序的Python 程序员准备的。它适合Python 初学者阅读,不过熟悉Python 编程方法对体验示例代码大有裨益。

内容精选

在真实世界中,经常需要处理大量的原始数据,这些原始数据是机器学习算法无法理解的。为了让机器学习算法理解原始数据,需要对数据进行预处理。

1.2.1 准备工作

来看看Python是如何对数据进行预处理的。首先,用你最喜欢的文本编辑器打开一个扩展名为.py的文件,例如preprocessor.py。然后在文件里加入下面两行代码:

1
2
import numpy as np
from sklearn import preprocessing

我们只是加入了两个必要的程序包。接下来创建一些样本数据。向文件中添加下面这行代码:

1
2
data = np.array([[3,  -1.5,    2,  -5.4], [0,    4,    -0.3,  2.1], [1,    3.3, 
-1.9, -4.3]])

现在就可以对数据进行预处理了。

1.2.2 详细步骤

数据可以通过许多技术进行预处理,接下来将介绍一些最常用的预处理技术。

1. 均值移除(Mean removal)

通常我们会把每个特征的平均值移除,以保证特征均值为0(即标准化处理)。这样做可以消除特征彼此间的偏差(bias)。将下面几行代码加入之前打开的Python文件中:

1
2
3
data_standardized = preprocessing.scale(data)
print "\nMean =", data_standardized.mean(axis=0)
print "Std deviation =", data_standardized.std(axis=0)

现在来运行代码。打开命令行工具,然后输入以下命令:

1
$ python preprocessor.py

命令行工具中将显示以下结果:

1
2
Mean = [  5.55111512e-17  -1.11022302e-16  -7.40148683e-17  -7.40148683e-17]
Std deviation = [ 1.  1.  1.  1.]

你会发现特征均值几乎是0,而且标准差为1。

2. 范围缩放(Scaling)

数据点中每个特征的数值范围可能变化很大,因此,有时将特征的数值范围缩放到合理的大小是非常重要的。在Python文件中加入下面几行代码,然后运行程序:

1
2
3
data_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
data_scaled = data_scaler.fit_transform(data)
print "\nMin max scaled data =", data_scaled

范围缩放之后,所有数据点的特征数值都位于指定的数值范围内。输出结果如下所示:

1
2
3
4
Min max scaled data:
[[ 1.            0.            1.            0.        ]
 [ 0.            1.            0.41025641    1.        ]
 [ 0.33333333    0.87272727    0.            0.14666667]]

3. 归一化(Normalization)

数据归一化用于需要对特征向量的值进行调整时,以保证每个特征向量的值都缩放到相同的数值范围。机器学习中最常用的归一化形式就是将特征向量调整为L1范数,使特征向量的数值之和为1。增加下面两行代码到前面的Python文件中:

1
2
data_normalized = preprocessing.normalize(data, norm='l1')
print "\nL1 normalized data =", data_normalized

执行Python文件,就可以看到下面的结果:

1
2
3
4
L1    normalized    data:   
[[    0.25210084    -0.12605042    0.16806723    -0.45378151]
 [    0.             0.625        -0.046875       0.328125  ]
 [    0.0952381      0.31428571   -0.18095238    -0.40952381]]

这个方法经常用于确保数据点没有因为特征的基本性质而产生较大差异,即确保数据处于同一数量级,提高不同特征数据的可比性。

4. 二值化(Binarization)

二值化用于将数值特征向量转换为布尔类型向量。增加下面两行代码到前面的Python文件中:

1
2
data_binarized = preprocessing.Binarizer(threshold=1.4).transform(data)
print "\nBinarized data =", data_binarized

再次执行Python文件,就可以看到下面的结果:

1
2
3
4
Binarized data:
[[    1.    0.    1.    0.]
 [    0.    1.    0.    1.]
 [    0.    1.    0.    0.]]

如果事先已经对数据有了一定的了解,就会发现使用这个技术的好处了。

5. 独热编码

通常,需要处理的数值都是稀疏地、散乱地分布在空间中,然而,我们并不需要存储这些大数值,这时就需要使用独热编码(One-Hot Encoding)。可以把独热编码看作是一种收紧(tighten)特征向量的工具。它把特征向量的每个特征与特征的非重复总数相对应,通过one-of-k的形式对每个值进行编码。特征向量的每个特征值都按照这种方式编码,这样可以更加有效地表示空间。例如,我们需要处理4维向量空间,当给一个特性向量的第n个特征进行编码时,编码器会遍历每个特征向量的第n个特征,然后进行非重复计数。如果非重复计数的值是K,那么就把这个特征转换为只有一个值是1其他值都是0的K维向量。增加下面几行代码到前面的Python文件中:

1
2
3
4
encoder = preprocessing.OneHotEncoder()
encoder.fit([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4, 3]])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print "\nEncoded vector =", encoded_vector

结果如下所示:

1
2
Encoded vector:
[[ 0.  0.  1.  0.  1.  0.  0.  0.  1.  1.  0.]]

在上面的示例中,观察一下每个特征向量的第三个特征,分别是1、5、2、4这4个不重复的值,也就是说独热编码向量的长度是4。如果你需要对5进行编码,那么向量就是[0, 1, 0, 0]。向量中只有一个值是1。第二个元素是1,对应的值是5。

……

作者介绍

Prateek Joshi

人工智能专家,重点关注基于内容的分析和深度学习,曾在英伟达、微软研究院、高通公司以及硅谷的几家早期创业公司任职。

译者简介:

陶俊杰

长期从事数据分析工作,酷爱Python,每天都和Python面对面,乐此不疲。本科毕业于北京交通大学机电学院,硕士毕业于北京交通大学经管学院。曾就职于中国移动设计院,目前在京东任职。

陈小莉

长期从事数据分析工作,喜欢Python。本科与硕士毕业于北京交通大学电信学院。目前在中科院从事科技文献与专利分析工作。

目录

  • 第1章 监督学习  1
  • 1.1 简介  1
  • 1.2 数据预处理技术  2
  • 1.2.1 准备工作  2
  • 1.2.2 详细步骤  2
  • 1.3 标记编码方法  4
  • 1.4 创建线性回归器  6
  • 1.4.1 准备工作  6
  • 1.4.2 详细步骤  7
  • 1.5 计算回归准确性  9
  • 1.5.1 准备工作  9
  • 1.5.2 详细步骤  10
  • 1.6 保存模型数据  10
  • 1.7 创建岭回归器  11
  • 1.7.1 准备工作  11
  • 1.7.2 详细步骤  12
  • 1.8 创建多项式回归器  13
  • 1.8.1 准备工作  13
  • 1.8.2 详细步骤  14
  • 1.9 估算房屋价格  15
  • 1.9.1 准备工作  15
  • 1.9.2 详细步骤  16
  • 1.10 计算特征的相对重要性  17
  • 1.11 评估共享单车的需求分布  19
  • 1.11.1 准备工作  19
  • 1.11.2 详细步骤  19
  • 1.11.3 更多内容  21
  • 第2章 创建分类器  24
  • 2.1 简介  24
  • 2.2 建立简单分类器  25
  • 2.2.1 详细步骤  25
  • 2.2.2 更多内容  27
  • 2.3 建立逻辑回归分类器  27
  • 2.4 建立朴素贝叶斯分类器  31
  • 2.5 将数据集分割成训练集和测试集  32
  • 2.6 用交叉验证检验模型准确性  33
  • 2.6.1 准备工作  34
  • 2.6.2 详细步骤  34
  • 2.7 混淆矩阵可视化  35
  • 2.8 提取性能报告  37
  • 2.9 根据汽车特征评估质量  38
  • 2.9.1 准备工作  38
  • 2.9.2 详细步骤  38
  • 2.10 生成验证曲线  40
  • 2.11 生成学习曲线  43
  • 2.12 估算收入阶层  45
  • 第3章 预测建模  48
  • 3.1 简介  48
  • 3.2 用SVM建立线性分类器  49
  • 3.2.1 准备工作  49
  • 3.2.2 详细步骤  50
  • 3.3 用SVM建立非线性分类器  53
  • 3.4 解决类型数量不平衡问题  55
  • 3.5 提取置信度  58
  • 3.6 寻找最优超参数  60
  • 3.7 建立事件预测器  62
  • 3.7.1 准备工作  62
  • 3.7.2 详细步骤  62
  • 3.8 估算交通流量  64
  • 3.8.1 准备工作  64
  • 3.8.2 详细步骤  64
  • 第4章 无监督学习——聚类  67
  • 4.1 简介  67
  • 4.2 用k-means算法聚类数据  67
  • 4.3 用矢量量化压缩图片  70
  • 4.4 建立均值漂移聚类模型  74
  • 4.5 用凝聚层次聚类进行数据分组  76
  • 4.6 评价聚类算法的聚类效果  79
  • 4.7 用DBSCAN算法自动估算集群数量  82
  • 4.8 探索股票数据的模式  86
  • 4.9 建立客户细分模型  88
  • 第5章 构建推荐引擎  91
  • 5.1 简介  91
  • 5.2 为数据处理构建函数组合  92
  • 5.3 构建机器学习流水线  93
  • 5.3.1 详细步骤  93
  • 5.3.2 工作原理  95
  • 5.4 寻找最近邻  95
  • 5.5 构建一个KNN分类器  98
  • 5.5.1 详细步骤  98
  • 5.5.2 工作原理  102
  • 5.6 构建一个KNN回归器  102
  • 5.6.1 详细步骤  102
  • 5.6.2 工作原理  104
  • 5.7 计算欧氏距离分数  105
  • 5.8 计算皮尔逊相关系数  106
  • 5.9 寻找数据集中的相似用户  108
  • 5.10 生成电影推荐  109
  • 第6章 分析文本数据  112
  • 6.1 简介  112
  • 6.2 用标记解析的方法预处理数据  113
  • 6.3 提取文本数据的词干  114
  • 6.3.1 详细步骤  114
  • 6.3.2 工作原理  115
  • 6.4 用词形还原的方法还原文本的基本形式  116
  • 6.5 用分块的方法划分文本  117
  • 6.6 创建词袋模型  118
  • 6.6.1 详细步骤  118
  • 6.6.2 工作原理  120
  • 6.7 创建文本分类器  121
  • 6.7.1 详细步骤  121
  • 6.7.2 工作原理  123
  • 6.8 识别性别  124
  • 6.9 分析句子的情感  125
  • 6.9.1 详细步骤  126
  • 6.9.2 工作原理  128
  • 6.10 用主题建模识别文本的模式  128
  • 6.10.1 详细步骤  128
  • 6.10.2 工作原理  131
  • 第7章 语音识别  132
  • 7.1 简介  132
  • 7.2 读取和绘制音频数据  132
  • 7.3 将音频信号转换为频域  134
  • 7.4 自定义参数生成音频信号  136
  • 7.5 合成音乐  138
  • 7.6 提取频域特征  140
  • 7.7 创建隐马尔科夫模型  142
  • 7.8 创建一个语音识别器  143
  • 第8章 解剖时间序列和时序数据  147
  • 8.1 简介  147
  • 8.2 将数据转换为时间序列格式  148
  • 8.3 切分时间序列数据  150
  • 8.4 操作时间序列数据  152
  • 8.5 从时间序列数据中提取统计数字  154
  • 8.6 针对序列数据创建隐马尔科夫模型  157
  • 8.6.1 准备工作  158
  • 8.6.2 详细步骤  158
  • 8.7 针对序列文本数据创建条件随机场  161
  • 8.7.1 准备工作  161
  • 8.7.2 详细步骤  161
  • 8.8 用隐马尔科夫模型分析股票市场数据  164
  • 第9章 图像内容分析  166
  • 9.1 简介  166
  • 9.2 用OpenCV-Pyhon操作图像  167
  • 9.3 检测边  170
  • 9.4 直方图均衡化  174
  • 9.5 检测棱角  176
  • 9.6 检测SIFT特征点  178
  • 9.7 创建Star特征检测器  180
  • 9.8 利用视觉码本和向量量化创建特征  182
  • 9.9 用极端随机森林训练图像分类器  185
  • 9.10 创建一个对象识别器  187
  • 第10章 人脸识别  189
  • 10.1 简介  189
  • 10.2 从网络摄像头采集和处理视频信息  189
  • 10.3 用Haar级联创建一个人脸识别器  191
  • 10.4 创建一个眼睛和鼻子检测器  193
  • 10.5 做主成分分析  196
  • 10.6 做核主成分分析  197
  • 10.7 做盲源分离  201
  • 10.8 用局部二值模式直方图创建一个人脸识别器  205
  • 第11章 深度神经网络  210
  • 11.1 简介  210
  • 11.2 创建一个感知器  211
  • 11.3 创建一个单层神经网络  213
  • 11.4 创建一个深度神经网络  216
  • 11.5 创建一个向量量化器  219
  • 11.6 为序列数据分析创建一个递归神经网络  221
  • 11.7 在光学字符识别数据库中将字符可视化  225
  • 11.8 用神经网络创建一个光学字符识别器  226
  • 第12章 可视化数据  230
  • 12.1 简介  230
  • 12.2 画3D散点图  230
  • 12.3 画气泡图  232
  • 12.4 画动态气泡图  233
  • 12.5 画饼图  235
  • 12.6 画日期格式的时间序列数据  237
  • 12.7 画直方图  239
  • 12.8 可视化热力图  241
  • 12.9 动态信号的可视化模拟  242

声明

1、链接失效请联系客服人员。
2、购买后如果链接失效可联系客服人员完善资源或进行退款办理。
3、资源均来源于网友分享及网络公开发表文件,所有资料仅供学习交流。
4、所收取费用仅用来维系网站运营,性质为用户友情赞助,并非售卖文件费用。
5、如侵犯您的权益,请联系客服人员,我们将会在第一时间进行处理。

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
相关推荐