所以我建立了一个简单的线性回归模型,其中包含一些功能。当我尝试预测新输入时,输出不一致。例如:
In [1]: model.predict(X_new)
Out[1]: array([ 7.15993216e+08, 1.13548305e+09])
但是,如果我将其添加到原始训练样本中,我会得到一个非常不同的答案:
In [2]: model.predict(X_training[:1].append(X_new))[1:]
Out[2]: array([ 272682.59925699, 1179906.89475647])
这似乎是模型不可知的(至少在线性回归中)。我也尝试了相同的管道内部并获得sam行为。
有什么想法吗?
答案 0 :(得分:0)
这似乎与pandas数据框的排序顺序有关。对此的解决方案是按照相同的列顺序对训练和测试数据集进行预排序。有点像:
model.fit(np.array(X_training.sort_index(1)))
model.predict(np.array(new_input.sort_index(1)))
这巩固了训练和测试阵列中的列顺序。