我有一个感知器算法的实现,它根据词袋模型进行操作,定义了一系列权重来分离两个特征向量。
示例:
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
但是我想捕捉整个特征向量的类,而不只是一个单词,所以我想它必须是一个总和?
答案 0 :(得分:1)
不确定我是否理解正确。培训和测试集需要具有完全相同的格式。要测试,您只需求解已知权重和特征(测试集)的等式。
原则上,您应该一起生成测试和训练数据,以确保它们尽可能相等 - 然后将它们分成两组。根据决策边界的设置方式生成测试数据(即标签)是一个非常糟糕的主意:测试集的主要思想是针对未知,真实之后的数据测试当前训练边界>边界。通过将知识引入系统,您的测试结果将严重反映真实准确性。