||
上次举了一个模型回归的机器学习的例子,这是我们比较熟悉的场景,数据集中有自变量和因变量,然后建立因变量与自变量的关系模型。利用机器学习可以在模型函数形式未知条件下,仅用已知数据集进行模型训练即可建立模型。这一类机器学习叫做监督学习,即用已知的因变量数据监督模型预测的应变量结果,根据其残差调整优化模型参数。除此之外,机器学习还有一大类,数据集中的各变量没有因果关系,仅根据数据本身特性或相关性进行数据挖掘,如聚类、因子分析降维等。
这里举一个聚类在材料研究中的应用。聚类就是根据数据特性的相近程度,将数据分为一定数量的类别(子集)。
电镜照片是材料研究中的重要数据,但是,照片不能简单地用于建立定量模型,需要提取照片的数值特征。如下图是氮化硅陶瓷的背散射电子照片,其灰度体现物质衬度。该氮化硅陶瓷的烧结助剂为氧化钇和氧化铝,各金属离子的原子序数存在差异,特别是钇很大。因此,由图可见材料中存在3种区域:深灰色为氮化硅主晶相,亮白色为氧化钇相,介于2者之间的浅灰色为氧化铝、氧化硅形成的玻璃相。我们一眼就能从照片的灰度差得出这种定性的信息,但是,如何提取各相含量的定量信息?

灰度照片是所有像素点灰度值矩阵的平面显示结果,该矩阵行数和列数分别为照片横向像素数和纵向像素数。因此,照片的数字特征的挖掘本质就是灰度值数据的特征值的挖掘问题。下图为原照片的所有像素的灰度分布图,由图可见,灰度接近于1(接近与白色)的峰似乎是氧化钇,较好判断,而氮化硅与玻璃相的灰度区域划分难以判断。

定性可以通过人类大脑的模糊判断实现,但是,定量需要从上图所示的连续灰度分布数据中,合理地分类出属于3各相的像素点数据集,各子据集的像素数与总像素数的百分比就是所要求的各相的含量。但问题是如何划分3个子集?
Kmeans是重要的机器学习聚类算法,即将原数据集根据距离远近分为k个子集的无监督机器学习算法。该算法的基本策略是使得所有数据到各自应归属类的中心距离的和为最小。 该例灰度数据集gray_vec的3聚类Kmeans算法的R语言为:
k3_fit <- kmeans(gray_vec, centers = 3, nstart = 25)
3分类的2个阈值结果如下图所示,

仅由此图很难判断其合理性,但是,这样划分是有数学依据的。为了验证该分类的合理性,将原连续灰度照片与3值化(3相)照片对比如下图,结果表明该结果是可接受的。
![]()

由此,简单统计3类灰度数据集中的像素点个数的百分比,即可算出氮化硅、玻璃相和残余氧化钇的含量分别为73.4、23.4和3.2%。
通过该例可知,通过机器学习算法可以将原数据合理地进行分类,从而提炼出原数据所含信息的特征数值,这对材料多维度数据的定量模型建立具有广泛的意义。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2026-9-3 16:46
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社