Bootstrap

SVM对训练数据的输入顺序敏感???

问题描述:

     模型:from sklearn.svm import SVC

     训练方法:用GridSearchCV和5折交叉验证,选择最佳参数后,在测试集上测试。

     问题:当训练集数据不变,仅变换训练集数据的顺序时,测试结果会不一样。

原因:

      不是SVM对训练数据的输入顺序敏感,问题在参数选择上。

      5折交叉验证——将训练集数据随机划分为5份,拿其中一份验证,四份训练。

      当训练集的数据顺序变化,验证和训练数据的划分会不一样。

      由于随机划分的数据可能不均衡,不同划分结果最适合的模型参数会不一样,所以用GridSearchCV和5折交叉验证对不同的数据顺序返回不一样的最佳参数。

      不一样的参数,自然会得到不一样的模型,在测试集上的结果也就不一样了。

 

打乱训练集顺序:

      如果train_set是numpy.array,切记要使用——numpy.random.shuffle(train_set) ,能将数据按行打乱。

      另一种打乱方法——random.shuffle(train_set),不适用2维array的打乱(详细解释的链接)。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;