如何实施感知器测试

时间:2015-02-24 01:50:17

标签: java machine-learning perceptron

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

示例:

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

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

我猜它就像(伪代码):

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

但是我想捕捉整个特征向量的类,而不只是一个单词,所以我想它必须是一个总和?

1 个答案:

答案 0 :(得分:1)

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

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