如何解决标准定标器在 PCA 之前产生不同的值
我正在做一个生物识别分类问题。我正在将测试集中每个探针与图库的欧几里得距离进行比较。
每次运行代码都会得到不同的结果。如果我移除缩放器,我总是会得到相同的结果。
为什么缩放器会产生不同的值? (区别略有不同,有时它识别多 10 个探针,有时少 10 个)。感谢所有回答的人。
scaler = StandardScaler()
training_walks_matrix = load('training_imputeZero.npy')
training_scaled = scaler.fit_transform(training_walks_matrix)
testing_walks_matrix = load('testing_imputeZero.npy')
testing_scaled = scaler.transform(testing_walks_matrix)
pca = PCA(n_components=50).fit(training_scaled)
training_walks_matrix = pca.transform(training_scaled)
testing_walks_matrix = pca.transform(testing_scaled)
解决方法
我唯一可以怀疑的是,在您的情况下,可能在幕后使用了 arpack
或 randomized
求解器,因为这是自动定义的。在这种情况下,您需要修复随机种子以重现结果。
尝试通过在 random_state
实例的输入参数 PCA
中传递一个值来修复随机种子。
myseed = 0
scaler = StandardScaler()
training_walks_matrix = load('training_imputeZero.npy')
training_scaled = scaler.fit_transform(training_walks_matrix)
testing_walks_matrix = load('testing_imputeZero.npy')
testing_scaled = scaler.transform(testing_walks_matrix)
#here
pca = PCA(n_components=50,random_state=myseed).fit(training_scaled)
training_walks_matrix = pca.transform(training_scaled)
testing_walks_matrix = pca.transform(testing_scaled)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。