如何使用经过训练的模型改进对不同数据集的预测?

如何解决如何使用经过训练的模型改进对不同数据集的预测?

我有两个数据集。这些数据集包括化学分子及其溶解度值(数值)。目标变量(因变量)是溶解度。机器学习模型的输入是从分子结构(也称为指纹)中提取的特征。

数据集 A: 193 个观察或行(用于训练和验证)

数据集 B: 151 个观察或行(仅用于预测)

问题类型:回归

模型:高斯过程回归量

两个数据集的特征或列相似。

这是我试过的程序:

1) Train / validate model on dataset A by LOOCV (R2 = 0.75)
2) Fit model on the whole train dataset or dataset A (R2 > 0.9)
3) Use trained model to predict dataset B (R2 < 0.1)

注意 1:我不允许合并或洗牌数据集。

注意 2:我不使用分子结构作为模型的输入特征。我使用 RDKit python 库从分子(称为指纹)中提取特征。两个数据集的特征数量和数据预处理步骤相似。

我注意到数据集 A 和 B 中的分子是不同的。该模型似乎应该解决外推问题。

我的问题是当数据集不同时我如何改进预测。

一个想法可能是使用观察(一行数据)作为“参考”,并根据差异训练模型(解释如下):

1) Select one observation from dataset A as Reference
2) For observations in dataset A,calculate the difference of features and target variable with the Reference. 
3) Train model on these difference values  
4) For observations in dataset B,calculate the difference of features with the Reference. 
5) Use these differences as input to the trained model to predict target variable
6) Add the value of target variable for Reference to the predicted target values in step 5 for dataset B

我不确定使用 Reference 是否是一个有效的想法。如果您有任何改进预测的想法,请告诉我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?