---
schema_version: "library-reader-v1"
source_type: "original_book"
title: "人工智能与大数据技术导论"
author: null
edition: null
publisher: null
year: null
isbn: "9787302517986"
library_document_id: "cd4f7678-cd9b-4971-bde0-e9ad46a6cc71"
source_sha256: "5011cdcf83cd5e047c93a1ce7465f970fc88be69c93b94be3d7fa5fbddbb43f0"
pdf_physical_page_count: 490
pdf_physical_page_index_base: 0
range_start: 310
range_count: 10
html_url: "https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71?start=310&limit=10"
markdown_url: "https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71.md?start=310&limit=10"
previous_url: "https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71.md?start=300&limit=10"
next_url: "https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71.md?start=320&limit=10"
---

# 人工智能与大数据技术导论

> 页码规则：PDF_PHYSICAL_PAGE_INDEX 是从 0 开始的权威文件物理页索引；PRINTED_PAGE 是页面中识别出的印刷页码，可能为空，二者不得混用。

## PDF_PHYSICAL_PAGE_INDEX=310 | PRINTED_PAGE=294

人工智能与大数据技术导论

294

## PDF_PHYSICAL_PAGE_INDEX=311 | PRINTED_PAGE=295

开始训练：

第9章 TensorFlow高级知识

295

## PDF_PHYSICAL_PAGE_INDEX=312 | PRINTED_PAGE=296

人工智能与大数据技术导论

结果如图9-31、图9-32所示。

分类的几个评价指标有准确率、ROC曲线、AUC（ROC曲线下面积）等。下面的代码使用LinearClassifier.evaluate来计算一些指标值：

结果如图 9-33 所示。

296

## PDF_PHYSICAL_PAGE_INDEX=313 | PRINTED_PAGE=297

为了画出ROC曲线，我们使用sklearn的 roc curve来获得真正例和假正例的比率。其代码如下：

结果如图9-34所示。

下面调整一些参数，看看能否改进AUC。一种方法是增加迭代的次数；另一种方法是加大批处理大小。

第9章 TensorFlow 高级知识

297

## PDF_PHYSICAL_PAGE_INDEX=314 | PRINTED_PAGE=298

结果如图9-35、图9-36所示。

9.5 L1正则化

我们再来研究一下特征交叉组合（FeatureCross）。特征交叉组合很有用，但也可能会带来一些问题，尤其是将稀疏特征交叉组合起来的时候。稀疏矢量通常包含许多维度，创建特征交叉组合会导致包含更多维度。由于使用此类高维度特征矢量，因此模型可能会非常庞大，并且需要大量的RAM。在高维度稀疏矢量中，最好尽可能使权重正好降至0。正好为0的权重基本上会使相应特征从模型中移除。将特征权重设为0可节省RAM空间，且可以减少模型中的噪点。例如，以一个涵盖全世界（不只是涵盖加州）的住房数据集为例。如果按分（每度为60分）对全球纬度进行分桶，则在一次稀疏编码过程中会产生大约1万个维度；如果按分对全球经度进行分桶，则在一次稀疏编码过程中会产生大约2万个维度。这两种特征的特征交叉组合会产生大约2亿个维度。这2亿个维度中，很多维度代表非常有限的居住区域（例如海洋里），很难使用这些数据进行有效泛化。如果为这些不需要的维度浪费RAM，就太不值得了。因此，最好使无意义维度的权重正好降至0。

人工智能与大数据技术导论

298

## PDF_PHYSICAL_PAGE_INDEX=315 | PRINTED_PAGE=299

从上面的例子可以看出，即便我们拥有大量的训练数据，但其中仍有许多组合会非常罕见，因此我们最终可能会得到一些噪声系数，并可能遇到过拟合问题。可想而知，如果遇到过拟合问题，我们就要进行正则化。遗憾的是，L2正则化不能完成此任务。L2正则化可以使权重变小，但是并不能使它们正好为0。

那么，能不能以特定方式进行正则化，既能缩减模型大小，又能降低内存使用量呢？我们要做的就是将部分权重设为0，这样就不必处理其中的一些特定组合了。这样既节省了内存，还有可能帮助我们解决过拟合问题。不过必须小心一点，因为我们只想去掉那些额外的噪音系数，而不想失去正确的系数。所以要做的就是明确地将一些权重设为0，也就是所谓的L0正则化，它对不是0的权重进行惩罚。但是，它没有凸性（convex），难以优化。因此，L0正则化这种想法在实践中并不是一种有效的方法。

如果我们将条件放宽至L1正则化，只对权重的绝对值总和进行处罚，那么仍可以促使模型变得非常稀疏。这也会让其中的许多系数归零。这种正则化与L2正则化略有不同（因为L2也会尝试设置较小的权重，但实际上并不会让权重归零）。

在线性回归模型中，一个权重为0的特征等同于不用这个特征。为了减少模型复杂性，一种方法是使用正则函数来鼓励一些权重为0。除了避免过拟合外，这种做法也会更有效。下面我们通过一些代码实例来体会。

先装载数据集：

第9章 TensorFlow高级知识

299

## PDF_PHYSICAL_PAGE_INDEX=316 | PRINTED_PAGE=300

定义训练集和评估集：

人工智能与大数据技术导论

300

## PDF_PHYSICAL_PAGE_INDEX=317 | PRINTED_PAGE=301

结果如图9-37\~图9-40所示。

第9章 TensorFlow高级知识

301

## PDF_PHYSICAL_PAGE_INDEX=318 | PRINTED_PAGE=302

定义输入函数：

人工智能与大数据技术导论

302

## PDF_PHYSICAL_PAGE_INDEX=319 | PRINTED_PAGE=303

第9章 TensorFlow 高级知识

303

下一段：[继续读取](https://workshop.closeclaw.top/api/ai/read/cd4f7678-cd9b-4971-bde0-e9ad46a6cc71.md?start=320&limit=10)
