SVM 分类器模型上 StandardScaler 的问题

Problem with StandardScaler on SVM classifier model

我使用支持向量机作为金融市场数据的分类器

我有一个包含 1500 条数据记录的数据库

然后我做预处理分割训练测试

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 42, stratify = y)

scaler = StandardScaler()

X_train = scaler.fit_transform(X_train)

X_test = scaler.transform(X_test)

但为了保持良好的控制,我用 pickle 保存了训练文件

然后我用新数据(大约 150 个)将文件上传到另一个数据库

我还对新数据执行标准缩放器

当我 运行 模型并执行准确度测试时,我得到 60%,作为示例

我的问题是我增加了这个新数据库,从 150 增加到 151、152、153 等等

当增加新数据时,我注意到模型失去了准确性,甚至以前的分类也不同,当我将它分类为 1 时它是 0 或相反

我怀疑使用新数据后,缩放数据的维度会变得不同

我希望在插入新数据时,之前的数据没有新的评级 0 和 1,因此会降低我的初始准确性

谁能帮忙解决这个问题?

当然,由于信息不足,我们只能推测。问题是,我从它的预测发生变化这一事实推断出,您不是简单地使用当前缩放器转换新数据,而是在拟合然后转换数据。因此,长话短说,您需要将缩放器导出为 pickle,然后在处理新数据时加载它并简单地转换(不适合!)这些 [150, 151, ...] 实例。