我以数据帧格式设置了训练数据。以下只是出于理解目的。
训练数据集:-
column Names = [SepalL,SepalW,PetalL,PetalW,Species]
Training Data Set 1 = [5.1,3.5,1.4,0.2,Iris-setosa]
Training Data Set 2 = [4.9,3.0,1.4,0.2,Iris-setosa]
Training Data Set 3 = [4.7,3.2,1.3,0.2,Iris-veriscolor]
Training Data Set 4 = [4.6,3.1,1.5,0.2,Iris-versicolor]
Training Data Set 5 = [5.0,3.6,1.4,0.2,Iris-verginica]
当列数据号比训练数据少的测试数据时,是否有任何方法可以根据测试数据考虑训练数据的列值?
Test Data Set1 Cols = [PetalL,PetalW]
Test Data Set1 = [1.1,0.1]
Test Data Set2 Cols = [SepalL,SepalW,PetalL]
Test Data Set2 = [5.1,3.9,1.4]
答案 0 :(得分:1)
我相信这会降低模型的准确性。最好的方法是训练一些模型,每个模型都有1或2个缺失的列。或者,您可以尝试使用方法here中的一种来估算一些缺失的值,但是请注意,这将无法为您提供模型最初得到的准确度,而该模型将使用训练时使用的相同数据格式来获得。 / p>
答案 1 :(得分:1)
默认情况下,kNN模型不会处理缺失值。
如果您使用的是sklearn模型,则在使用较少的功能时应该会看到故障,表明功能数量不匹配。原因是模型的k个质心是基于所有特征制作的。对于您拥有的几个功能,也许所有的质心都相同。
如果您的训练集中也缺少数值,那么您可能希望选择另一种通过构造处理缺失值的算法。