[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community
接下来我们讨论如何计算给定文档间的距离。
对一维情况我们可以用欧式距离。
你应该对它不陌生，
但是我们的重点并不在此
因为它要求我们的词汇表中只能有一个单词，
但是在我们要讨论的各种情境中，
我们都假设有多个特征值，
或者说多个维度需要考虑
这时事情就变得有趣了
因为有许多距离度量函数可供选择
举一个关于多维度的有趣的例子，
我们可以考虑给维度加权
也就是说，我们可以赋权重值给词汇表中的词语，
或者给其它特征。
比如，如果你重温第二讲回归（Regression）
我们讨论了如何预测房价
使用了最近邻回归来预测房价，
并说，我们可以给房屋的不同属性加权
如果我们觉得某些特征对预测房价更重要，
比如卧室数目，卫生间数目，
房屋占地面积
这些都很重要，而其它比如楼层、
翻新年代相比之下就不太关键了
我们可以把文档的例子做一个类比。
也许我们要计算两篇文章间的相似度
也许因为标题信息量大，我们想要给标题加更多的权重。
而正文中则有许多不可靠的噪音
类似的，假如像科研论文一样，文章有摘要部分
摘要可能包含比正文更有效的信息
这两个例子说明了何时你想要为不同特征定下不同权重。
另一个需要为特征加权的例子，
是当某些特征在不同观测点上变化很小，
而其它特征变化很大的情况。
原因可能是某一个特征的单位和其它特征不同，
或者只是因为那个维度上的方差（Variance）很大
这时如果你要计算欧氏距离，
但是把两类特征的权重值设成相等，
波动大的特征可能就会掩盖波动小的特征
然而实际上，特征 1 的小变化可能和特征 2 同等重要
即使特征 2 在不同观测点上的变化更大。
这种情况下，研究者通常会做几件事。
这些方法都基于观测点的分布，按比例增减特征值。
观察区.
一种考虑了数据分布的方法是
对特征 J，取对应列的所有观测值，
这里的每一行都是一个不同的观测点
每一列代表一个特征
然后你取出数据矩阵的一整列，乘以该列最大最小值的差
对该列的每个元素都做同样的操作
另一种方法是用方差的倒数乘以这个特征的所有观测值
在这些例子中，
我们引入了不同特征的权重以计算距离
更正式的说法是，我们要计算比例尺欧氏距离（Scaled Euclidean Distance）
它很像是标准欧氏距离的多维空间版
但现在每个维度都有各自的权重
我在这里用 ai 表示
a1 到 ad表示各个特征的权重
也代表着各个特征的相对重要性
举个如何设定权重的例子
比如设定二态权重，值为0或1
这是计算比例尺欧氏距离的一种特殊情况
这种方法等同于特征选择
因为如果你把某个特征的权重设成0，你就剔除了它的影响
这个特征也不会被在距离计算里用到
也就是，你设定说，这个特征无关紧要
不论用来是计算相似度还是文档距离
但是请记住，这和我们提过的 lasso
或者其它特征选择的概念不同，这里我们预先定义了权重值
对二态权重而言，就是定义了哪些特征被包含，哪些被剔除
不过总的来说，我想要强调的是
如何表示数据
以及如何计算距离，非常非常重要
而且很有挑战性
所以特征工程，或者说特征选择既是关键
又是十分艰巨的工作
虽然关于特征工程的文献有很多，
但是相对机器学习的其它领域来说，这里需要做大量的调参工作
这个阶段有很多选择可做
因而也要求有足够多的领域知识
来更好地设定权重，或者定义距离度量
总而言之，我想强调的关键是，
尽管没有固定的解法，
也需要在算距离时深入思考，不能随随便便地
假定这个距离就适合这个应用
而不考虑数据是什么，距离计算的原理是什么
[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community