Iris数据集-机器学习分类模型

时间:2018-10-31 06:50:29

标签: python machine-learning knn

我以数据帧格式设置了训练数据。以下只是出于理解目的。

训练数据集:-

 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]

2 个答案:

答案 0 :(得分:1)

我相信这会降低模型的准确性。最好的方法是训练一些模型,每个模型都有1或2个缺失的列。或者,您可以尝试使用方法here中的一种来估算一些缺失的值,但是请注意,这将无法为您提供模型最初得到的准确度,而该模型将使用训练时使用的相同数据格式来获得。 / p>

答案 1 :(得分:1)

默认情况下,kNN模型不会处理缺失值。

如果您使用的是sklearn模型,则在使用较少的功能时应该会看到故障,表明功能数量不匹配。原因是模型的k个质心是基于所有特征制作的。对于您拥有的几个功能,也许所有的质心都相同。

如果您的训练集中也缺少数值,那么您可能希望选择另一种通过构造处理缺失值的算法。