我刚刚开始学习机器学习。在我参加的迷你课程中展示的示例是预测房屋的销售价格,具有以下特征:
- 房子的大小
- 楼层数
- 房屋年龄
- 房间的数量
鉴于这些特征,训练一个算法来最小化一些成本函数是微不足道的,在我参加的课程中,它是训练集中的值与用于拟合它的函数之间差异的总和。
我的问题:我将如何使用未表示为数字的功能?
例如,如果其中一个特征是最近的高中的名称怎么办?
我刚刚开始学习机器学习。在我参加的迷你课程中展示的示例是预测房屋的销售价格,具有以下特征:
鉴于这些特征,训练一个算法来最小化一些成本函数是微不足道的,在我参加的课程中,它是训练集中的值与用于拟合它的函数之间差异的总和。
我的问题:我将如何使用未表示为数字的功能?
例如,如果其中一个特征是最近的高中的名称怎么办?
在大多数情况下,您会找到一种方法将非数字特征转换为数字特征,然后从那里开始。
最简单的解决方案是生成一组指标变量。例如,如果您有不同的学校,你可以添加一组变量到每个数据点。表明你名单上的学校是最近的,设置并将其余变量设置为零。当 1)最近学校的身份很重要,并且 2)您可以枚举数据集中存在的学校时,这很有效。
您可能还认为学校身份本身实际上并没有携带太多信息;它只是有关学校规模、考试成绩、学生:教师比例等信息的代理。您可以将您的数据集与具有此类信息的另一个数据源连接起来。现在的特征将是“最近的高中的规模”、“最近的高中的平均 SAT 分数”等。
也有可能是学校的名字里有一点信号。例如,一个好的学校系统可能有磁铁学校和/或实验室学校。您可以设计特征以从包含学校名称的字符串中提取这些特征。然后将这些作为指示变量添加到您的功能集中。这个过程,通常称为特征工程,可能需要一些领域知识。
但是,在某些情况下,您可以直接处理非数字数据。在构建判别分类器(或使用距离的任何其他东西)时尤其如此。例如,支持向量机的特殊内核允许您直接对字符串进行操作(例如,http ://www.jmlr.org/papers/volume2/lodhi02a/lodhi02a.pdf ),而无需将它们变成类似袋子的东西词向量或类似的东西。
可能有许多类别变量会影响销售价格 - 例如,Ready_for_immediate_occupancy(是/否)。我不会担心你的具体变量——最近的高中——而只是在回归中使用分类变量来解决。
正如@Matt Krause 所说,使用指标变量并将它们简单地视为数字变量当然并不少见。但也有其他方法。我的最爱之一是使用决策树。许多人将决策树作为一种分类手段来学习——预测一个标称值。您的问题是关于回归 - 预测数值。但是决策树对于回归来说工作得很好,并且对分类变量没有问题。最流行的方法之一是 CART - 分类和回归树。其他决策树算法也可以处理这个问题。尝试使用谷歌搜索 decision trees regression
,您应该会找到很多关于该主题的信息。