首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

机器学习的跨学科应用——模型篇

数据集的大小基本上可以确定您选择的机器学习模型。对于较小的数据集,经典的统计机器学习模型(例如回归,支持向量机,K近邻和决策树)更加合适。相比之下,神经网络需要大量数据,并且只有当您拥有成千上万个或者更多的训练数据条目时,神经网络才开始变得可行。通过 bagging , boosting 以及 stacking 等方法,经典统计模型可以进一步改进其性能。现有许多封装好的 Python 库可以调用实现以上模型功能,其中最著名的可能是 scikit-learn 。对于较大的数据集,神经网络和深度学习方法更为常用。在学术界中, PyTorch 以及 TensorFlow 通常用于实现这些架构。 特征工程对于较小的数据集非常重要。如果通过精心设计其特征,则可以大大提高模型的性能 。将化学成分转换成可用于机器学习研究的可用输入特征的常用方法是基于成分的特征向量(Composition-based Feature Vectors, CBFVs),例如 Jarvis , Mapie , Mat2Vec , Oliynyk 。这一系列的CBFVs包含了通过实验得出的值,通过高通量计算来得到的值,或者使用机器学习技术从材料科学文献中提取的值。除了使用CBFVs来进行特征化数据,您还可以尝试对元素进行简单的 one-hot 编码。这些CBFV特征化方案以及特征化化学成分都包含在GitHub项目中。 对于足够大的数据集和更有学习能力的架构,例如深度全连接网络 或者新兴的注意力机制架构(比如CrabNet),与简单的 one-hot 编码相比,特征工程和输入数据中领域知识的集成(例如CBFVs的使用)可能会变得无关紧要,并且不会为更好的模型性能做出贡献 。因此,由于需要整理和评估针对您的研究的领域知识功能,您可能会发现寻找其他的数据源,采用已经建立好的特征模式,或者使用不需要领域知识的学习方法会更有益。

02

训练集(train set) 验证集(validation set) 测试集(test set)

training set是用来训练模型或确定模型参数的,如ANN中权值等; validation set是用来做模型选择(model selection),即做模型的最终优化及确定的,如ANN的结构;而 test set则纯粹是为了测试已经训练好的模型的推广能力。当然,test set这并不能保证模型的正确性,他只是说相似的数据用此模型会得出相似的结果。样本少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。在应用中,一般只将数据集分成两类,即training set 和test set,大多数文章并不涉及validation set。

03
领券