支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP
RDKit一個用于化學(xué)信息學(xué)的python庫。使用支持向量回歸(SVR)來預(yù)測logP。 分子的輸入結(jié)構(gòu)特征是摩根指紋,輸出是logP。
代碼示例:
#導(dǎo)入依賴庫
import numpy as np
from rdkit import Chem
from rdkit.Chem.Crippen import MolLogP
from rdkit import Chem, DataStructs
from rdkit.Chem import AllChem
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error, r2_score
from scipy import stats
import matplotlib.pyplot as plt
載入smile分子庫,計算morgan指紋和logP
num_mols = 5000
f = open('smiles.txt', 'r')
contents = f.readlines()
fps_total = []
logP_total = []
for i in range(num_mols):
smi = contents[i].split()[0]
m = Chem.MolFromSmiles(smi)
fp = AllChem.GetMorganFingerprintAsBitVect(m,2)
arr = np.zeros((1,))
DataStructs.ConvertToNumpyArray(fp,arr)
fps_total.append(arr)
logP_total.append(MolLogP(m))
fps_total = np.asarray(fps_total)
logP_total = np.asarray(logP_total)
劃分訓(xùn)練集和測試集
num_total = fps_total.shape[0]
num_train = int(num_total*0.8)
num_total, num_train, (num_total-num_train)
fps_train = fps_total[0:num_train]
logP_train = logP_total[0:num_train]
fps_test = fps_total[num_train:]
logP_test = logP_total[num_train:]
將SVR模型用于回歸模型
https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html
_gamma = 5.0
clf = SVR(kernel='poly', gamma=_gamma)
clf.fit(fps_train, logP_train)
完成訓(xùn)練后,應(yīng)該檢查預(yù)測的準(zhǔn)確性。對于評估,將使用r2和指標(biāo)的均方誤差。
logP_pred = clf.predict(fps_test)
r2 = r2_score(logP_test, logP_pred)
mse = mean_squared_error(logP_test, logP_pred)
r2, mse
模型結(jié)果可視化
slope, intercept, r_value, p_value, std_error = stats.linregress(logP_test, logP_pred)
yy = slope*logP_test+intercept
plt.scatter(logP_test, logP_pred, color='black', s=1)
plt.plot(logP_test, yy, label='Predicted logP = '+str(round(slope,2))+'*True logP + '+str(round(intercept,2)))
plt.xlabel('True logP')
plt.ylabel('Predicted logP')
plt.legend()
plt.show()
參考:
https://github.com/SeongokRyu/CH485---Artificial-Intelligence-and-Chemistry
https://blog.csdn.net/zb123455445/article/details/78354489
總結(jié)
以上是生活随笔為你收集整理的支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql pmod项目_内置函数 -
- 下一篇: 在哪可以看直播ONE综合格斗在哪可以看直