我正在使用3种不同的分类器执行分类问题,即Decision Tree,Naive Bayes和IBK。我有两个数据集,它们在布局和属性名称中是相同的,但每个数据集中的值都不同。
Training Set Example;
State
Population
HouseholdIncome
FamilyIncome
perCapInc
NumUnderPov
EducationLevel_1
EducationLevel_2
EducationLevel_3
UnemploymentRate
EmployedRate
ViolentCrimesPerPop
Crime
Rate
8, 0.19, 0.37, 0.39, 0.4, 0.08, 0.1, 0.18, 0.48, 0.27 ,0.68 ,0.2 ,Low
如果Target Class值为Low,Med或High,我希望我的决策树使用12个属性进行预测,基于ViolentCrimesPerPop数字,在此示例中为0.2。
我的问题是......在我的测试集上,我只是以相同的格式提供更多未见的示例,或者我应该删除其中一个属性,以便我可以看到它是否学到了什么?
答案 0 :(得分:1)
在同一个训练数据上测试分类器并不是一件好事,因为您的模型已经学会了,希望能够正确地对这些实例进行分类。
通常的设置是训练训练数据集,然后在不同的数据集(具有相同的格式/结构)上进行测试,以查看它的表现。
答案 1 :(得分:1)
将数据集分成三个独立的集合是一个好主意:培训,测试和验证。
训练集用于训练您正在构建的每个模型。通常使用测试集检查性能。随着设计人员继续调整模型的参数(例如,决策树上的修剪选项和k-NN或神经网络参数的k),您可以看到模型对测试集的执行情况。
最后,一旦为您的模型完成了这些参数,您就可以针对验证集运行这些参数,以确认模型没有过度拟合测试数据(由于应用于模型本身的参数调整)。
可以找到对这些集合的进一步讨论here。
一般来说,我使用了60-20-20的数据分割,但是通常也使用50-25-25,这实际上取决于您需要使用多少数据。
我希望这有帮助!