我使用Liblinear来训练分类问题的模型。我注意到,更改训练数据中的样本顺序可能会导致不同的模型。 为了测试这个,我创建了两个不同的liblinear问题,包括不同顺序的相同数据。
Problem 1:
x:
[FeatureNode(idx=1, value=1.0), FeatureNode(idx=2, value=1.0), FeatureNode(idx=5, value=1.0)]
[FeatureNode(idx=1, value=1.0), FeatureNode(idx=2, value=1.0), FeatureNode(idx=3, value=1.0), FeatureNode(idx=5, value=1.0)]
y:
[1.0, 0.0]
Generated model:
[0.0, 0.0, -1.0, 0.0, 0.0]
Problem2:
x:
[FeatureNode(idx=1, value=1.0), FeatureNode(idx=2, value=1.0), FeatureNode(idx=3, value=1.0), FeatureNode(idx=5, value=1.0)]
[FeatureNode(idx=1, value=1.0), FeatureNode(idx=2, value=1.0), FeatureNode(idx=5, value=1.0)]
y:
[0.0, 1.0]
Generated model:
[0.04166666666666674, 0.04166666666666674, 0.875, 0.0, 0.04166666666666674]
这是什么原因?这可以避免吗?