数据集:转换数据#
我们都知道机器学习模型只能用浮点数来训练,可一个数据集里,很多特征天生就不是浮点数,所以机器学习中有一件很重要的事,就是把这些非浮点特征转换成浮点表示。
举个例子。假设有一个叫 street names(街道名称)的特征。街道名称大多是字符串,比如 “Broadway” 或 “Vilakazi”。模型没法在 “Broadway” 上训练,所以你必须先把 “Broadway” 变成一个浮点数。至于怎么变,处理类别型数据那一节讲得很清楚。
更进一步,大多数本来就是浮点数的特征,其实也要再变换一遍。这个变换过程叫归一化(normalization),它是把浮点数收敛到一个受约束的区间里,从而改善模型训练。具体怎么做,可以看处理数值数据。
MLWM: 关于「为什么要把特征变换到同一量纲」,可以参见文章「特征标准化:归一化与标准化的原理及实现」;把街道名这类字符串变成数值向量的思路,则可以参见「词袋模型原理:文本特征表示与机器学习建模」 中的介绍。
数据太多的时候用抽样#
有些机构很幸运,手里的数据多得用不完。
因此,当数据集里的样本太多时,你就必须挑出一个子集来训练模型。在挑的时候,尽可能选那些与模型预测最相关的样本,毕竟,数据虽多,能用得上的才是关键。
过滤含 PII 的样本#
好的数据集里,不该出现含有个人身份信息(PII,Personally Identifiable Information)的样本。这条规矩有助于保护隐私,但也可能对模型产生影响。
课程后面的「安全与隐私」模块会展开讲这些话题。
关键术语:
- 归一化