SVM 分类器模型上的 StandardScaler 问题
Posted
技术标签:
【中文标题】SVM 分类器模型上的 StandardScaler 问题【英文标题】:Problem with StandardScaler on SVM classifier model 【发布时间】:2021-08-14 04:33:09 【问题描述】:我使用支持向量机作为金融市场数据的分类器
我有一个包含 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)
但为了保持良好的控制,我用泡菜保存了训练文件
然后我用新数据(大约 150 个)将文件上传到另一个数据库
我还对新数据执行标准缩放器
当我运行模型并执行准确性测试时,我得到了 60%,例如
我的问题是当我增加这个新数据库时,从 150 增加到 151、152、153 等等
当增加新数据时,我注意到模型失去了准确性,甚至以前的分类也不同,当我将它分类为 1 时,它是 0,或者相反
我怀疑对于新数据,缩放数据的维度会变得不同
我希望在插入新数据时,以前的数据没有新的评分 0 和 1,因此会降低我的初始准确性
谁能帮忙解决这个问题?
【问题讨论】:
请花一点时间看看如何正确格式化您的代码 sn-ps(不是为斜体文本)。 【参考方案1】:由于信息不足,我们自然只能推测。问题是,我从它的预测发生变化的事实中推断出,你不是简单地用当前的缩放器转换新数据,而是你正在拟合然后转换数据。因此,长话短说,您需要将缩放器导出为泡菜,然后在处理新数据时加载它并简单地转换(不合适!)这些 [150, 151, ...] 实例。
【讨论】:
以上是关于SVM 分类器模型上的 StandardScaler 问题的主要内容,如果未能解决你的问题,请参考以下文章