如何实现感知器测试

how to implement perceptron test

我有一个感知器算法的实现,它根据词袋模型运行,定义了一系列权重来分隔两个特征向量。

示例:

Document 1 = ["I", "am", "awesome"]
Document 2 = ["I", "am", "great", "great"]

字典是:

["I", "am", "awesome", "great"]

所以作为向量的文档看起来像:

Document 1 = [1, 1, 1, 0]
Document 2 = [1, 1, 0, 2]

然后算法学习一个决策边界方程,即:

feature_0 * weight_0 +
feature_1 * weight_1 +
feature_2 * weight_2 +
feature_3 * weight_3 +
bias

现在我有一个测试集,其格式与上面描述的训练集非常相似。根据我的决策边界方程测试这些值并从而为它们分配标签的伪代码是什么?

我猜是这样的(伪代码):

For each word in the test set
    if that word exists in the global dict
        value = the frequency of that word * the learned weight
            if value >= 0
                return 1
            else
                return -1

但是我想捕获整个特征向量的class,而不是一个词,所以我猜它一定是求和?

不确定我是否理解正确。训练集和测试集需要具有 完全 相同的格式。要进行测试,您只需求解(测试集的)已知权重和特征的方程式。

原则上,您应该同时生成测试和训练数据以确保它们尽可能相等 - 然后将它们分成两组。根据决策边界的设置方式生成测试数据(即标签)是一个非常糟糕的主意:测试集的主要思想是针对未知的数据测试当前训练的边界,real边界。通过将知识引入系统,您的测试结果将无法很好地反映 真实 的准确性。