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, ...] 实例。
我使用支持向量机作为金融市场数据的分类器
我有一个包含 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, ...] 实例。