0

我有一个函数 F, [bool] = F(DATASET, tresh1, tresh2),它接受输入一个 DATASET 和一些参数,例如 2 阈值 -tresh1 e tresh2-,并返回一个布尔值:如果 DATASET 是“好”,则返回一个布尔值:1 ",否则为 0。答案当然取决于值 tresh1 e tresh2。

假设我有 100 个可用的数据集,并且我知道哪些是好的,哪些不是。我想“训练”我的函数 F,即教它几个值 tresh1_ 和 tresh2_ 使得 F(DATASET, tresh1_, tresh2_) 为所有(或大部分)数据集“好”和“假”返回“真”否则。

我希望 F(DATASET_, tresh1_, tresh2_),其中 DATASET_ 是一个新的(与之前的 100 不同),如果 DATASET_ 真的“好”,则返回 true。

我可以将此问题视为聚类问题:对于训练集中的每个 DATASET,我选择随机 tresh1 和 tresh2 并标记哪些值确保 F 返回正确的值,哪些不返回。因此,我选择了一个 tresh1 和 tresh2 值“好”的区域。这是一个好方法吗?有更好的吗?

一般来说,在我看来这是一个“参数校准问题”。是否存在一些经典的技术来解决它?

4

1 回答 1

0

你想做的事情通常被称为

超参数优化

有关详细信息,请参阅维基百科文章。常用方法是执行网格搜索,除非您可以计算函数 F的导数。

这是一种搜索方法;它常用于机器学习中以优化性能,但它本身并不是“机器学习”算法。

于 2015-09-15T16:38:20.207 回答