RDKit | 基于RF和SVM的溶解度预测模型比较

本文对比了基于RDKit的随机森林(RF)和支持向量机(SVM)在预测化合物溶解度方面的性能。随机森林在处理高维数据时表现出良好的泛化能力和特征重要性评估,而SVM则利用内积核函数实现非线性分类,对小样本学习有优势。两者各有优缺点,适用于不同的场景。
摘要由CSDN通过智能技术生成

随机森林与支持向量机


随机森林

  • 目的

随机森林是一个用随机方式建立的,包含多个决策树的分类器。其随机性主要体现在两个方面:(1)训练每棵树时,从全部训练样本(样本数为N)中选取一个可能有重复的大小同样为N的数据集进行训练(即BootStrap取样);(2)在每个节点,随机选取所有特征的一个子集,用来计算最佳的分割方式。

  • 优点

能够处理高维(即特征很多)的数据,并且不用进行特征选择,是随机选择的。
训练结束后,能够给出哪些特征比较重要。
模型的泛化能力较强。
训练速度快,容易做成并行化方法,训练时树与树之间是相互独立的。
在训练过程中,能够检测到特征间的相互影响。
对于不平衡的数据集来说,可以平衡误差。
具有鲁棒性,即使有特征遗失,仍可以维持准确度。

  • 缺点

在噪音较大的分类或回归问题上会出现过拟合。
对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生很大的影响,因此随机森林在这种数据上产生的属性权值是不可信的。

SVM

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
NRTL模型可以用于描述混合物中各组分的活度系数,进而可以用于预测溶解度等热力学性质。下面是一个简单的NRTL模型拟合溶解度的例子。 假设我们要研究异丙醇在水中的溶解度,我们可以用NRTL模型拟合异丙醇和水的活度系数,进而计算异丙醇在水中的溶解度。NRTL模型的形式为: ln(γ1) = Σ2-3[ln(1+k21*X2/X1+ k31*X3/X1)] + X2*[G21/X2-k21/X1*(X3/(X1+k31*X3))] + X3*[G31/X3-k31/X1*(X2/(X1+k21*X2))] ln(γ2) = Σ1,3[ln(1+k12*X1/X2+ k32*X3/X2)] + X1*[G12/X1-k12/X2*(X3/(X2+k32*X3))] + X3*[G32/X3-k32/X2*(X1/(X2+k12*X1))] 其中,X1和X2分别是水和异丙醇的摩尔分数,Gij是结合能参数,kij是经验参数。 首先,我们需要准备实验数据,包括异丙醇在不同温度下的溶解度和水和异丙醇的摩尔分数等信息。然后,我们可以使用Matlab中的拟合函数,如fit、lsqcurvefit等,来拟合NRTL模型。 下面是一个简单的Matlab代码,假设我们已经将实验数据存储在一个名为data的结构体中,包括T和X1等变量。可以使用如下代码进行拟合: ``` % 初始化参数 G = [0.0 -0.2; -0.2 0.0]; k = [0.1 0.2; 0.2 0.1]; x0 = [G(:); k(:)]; % 定义拟合函数 fun = @(x,xdata) nrtl(x(1:4),reshape(x(5:end),[2,2]),xdata(:,2:3)); % 拟合数据 x = lsqcurvefit(fun,x0,[data.T data.X1 data.X2],log(data.sol)); % 输出拟合结果 disp(reshape(x(1:4),[2,2])); % 输出结合能参数 disp(reshape(x(5:end),[2,2])); % 输出kij参数 ``` 最后,可以使用拟合后的NRTL模型来预测异丙醇在水中的溶解度。假设我们要预测异丙醇在给定温度下的溶解度,可以使用如下代码: ``` % 给定温度 T = 298; % K % 计算相应的X1和X2 X1 = 0.9; X2 = 0.1; % 计算相应的活度系数 gamma1 = exp(nrtl(x(1:4),reshape(x(5:end),[2,2]),[T X1 X2])); gamma2 = exp(nrtl(x(1:4),reshape(x(5:end),[2,2]),[T X2 X1])); % 计算溶解度 sol = X2*gamma2/(X1*gamma1+X2*gamma2); % 输出结果 disp(sol); ``` 这样就可以使用NRTL模型拟合溶解度,并预测异丙醇在水中的溶解度了。需要注意的是,NRTL模型的拟合需要根据具体的实验数据,选择合适的参数个数和初始值,并进行适当的调整,以获得较好的拟合效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DrugAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值