玻璃制品的成分分析与鉴别-分析与讨论
文章目录
- 玻璃制品的成分分析与鉴别-分析与讨论
- 1. 更新讨论 0916
- 1.1 题目读几遍都不多
- 1. “空白处表示未检测到该成分”
- 2. “各成分的累加之和应为 100%,但可能导致成分比例累加和非 100%”
- 3. “将成分比例累加和介入 85~105%之间的数据视为有效数据”
- 4. “对表面风化与玻璃类型,纹饰和颜色的关系进行分析”
- 5. “根据风化点检测数据,预测风化前化学成分含量”
- 6. “分析高钾、铅钡的分类规律。”
- 7. “亚类划分,对合理性和敏感性进行分析”
- 2. 算法讨论
- 2.1 基本分析:分类问题+聚类问题+预测问题
- 2.2 聚类问题参考例程—只供参考,非赛题解答
- Kmeans 聚类例程:
- 2.3 分类问题参考例程—只供参考,非赛题解答
- 分类问题 Python 例程1:LinearSVC 使用例程
- 分类问题 Python 例程2:NuSVC 使用例程
- 3. 参考文献
- [1]李沫. 战国秦汉时期费昂斯制品的制备及铅钡玻璃研究[D].北京化工大学,2014.
- [2]胡志中,李佩,蒋璐蔓,王通洋,杜谷,杨波.古代玻璃材料LA-ICP-MS组分分析及产源研究[J].岩矿测试,2020,39(04):505-514
- [3]张丽艳,李洪,陈树彬,李忠镝,阮苠秩,薛天锋,钱敏,凡思军.玻璃的成分和性质的模拟方法[J].硅酸盐学报,2022,50(08):2338-2350.
1. 更新讨论 0916
讨论只能点到为止。愿意思考的同学,可以琢磨一下。没有看懂的同学,就当我无知乱说好了。
1.1 题目读几遍都不多
1. “空白处表示未检测到该成分”
未检测到该成分,能否理解为不含该成分,即含量为 0?
2. “各成分的累加之和应为 100%,但可能导致成分比例累加和非 100%”
如果成分比例累加和非 100%,是否需要进行归一化处理?
3. “将成分比例累加和介入 85~105%之间的数据视为有效数据”
有没有在此区间之外的数据,如何处理?
4. “对表面风化与玻璃类型,纹饰和颜色的关系进行分析”
- 逐一分析,还是综合分析?
- 如果综合分析,其中有些行的颜色数据缺失,如何处理?
5. “根据风化点检测数据,预测风化前化学成分含量”
- 初看无从着手,其实有很多方法,当然都要做一定的假设。
- 采用什么方法,如何假设,取决于读者,但假设要相对合理。
6. “分析高钾、铅钡的分类规律。”
- 其实不用建模都能说清楚,当初分类时显然不是通过数学建模,而是人为总结规律进行分类的
- 这是比较简单的二分类问题,所有数据往模型里一装就能得到结果。但是,这样做合理吗?
7. “亚类划分,对合理性和敏感性进行分析”
- 分几类,如何分类?这是分类问题,还是聚类问题?真的吗?
- 亚类划分的合理性,有标准答案吗?中国古代分几个阶段?
- 亚类划分的敏感性,这是指什么?用什么指标来反映敏感性?
- 按照数学建模方法,基于合理性和敏感性划分的亚类,真的科学合理吗?此问跑题了。
先聊到这里,有兴趣的同学,点赞收藏,我今晚或明天可以再更新一下。
2. 算法讨论
2.1 基本分析:分类问题+聚类问题+预测问题
2.2 聚类问题参考例程—只供参考,非赛题解答
Python数模笔记-Sklearn(2)聚类分析 Python数模笔记-Sklearn (2)聚类分析
Kmeans 聚类例程:
# Kmeans_sklearn_v1d.py# K-Means cluster by scikit-learn for problem "education2015"# v1.0d: K-Means 聚类算法(SKlearn)求解:各地区高等教育发展状况-2015 问题# 日期:2021-05-10# -*- coding: utf-8 -*-import numpy as npimport pandas as pdfrom sklearn.cluster import KMeans, MiniBatchKMeans# 主程序 = 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =def main(): # 读取数据文件 readPath = "../data/education2015.xlsx" # 数据文件的地址和文件名 dfFile = pd.read_excel(readPath, header=0) # 首行为标题行 dfFile = dfFile.dropna() # 删除含有缺失值的数据 # print(dfFile.dtypes) # 查看 df 各列的数据类型 # print(dfFile.shape) # 查看 df 的行数和列数 print(dfFile.head()) # 数据准备 z_scaler = lambda x:(x-np.mean(x))/np.std(x) # 定义数据标准化函数 dfScaler = dfFile[['x1','x2','x3','x4','x5','x6','x7','x8','x9','x10']].apply(z_scaler) # 数据归一化 dfData = pd.concat([dfFile[['地区']], dfScaler], axis=1) # 列级别合并 df = dfData.loc[:,['x1','x2','x3','x4','x5','x6','x7','x8','x9','x10']] # 基于全部 10个特征聚类分析 # df = dfData.loc[:,['x1','x2','x7','x8','x9','x10']] # 降维后选取 6个特征聚类分析 X = np.array(df) # 准备 sklearn.cluster.KMeans 模型数据 print("Shape of cluster data:", X.shape) # KMeans 聚类分析(sklearn.cluster.KMeans) nCluster = 4 kmCluster = KMeans(n_clusters=nCluster).fit(X) # 建立模型并进行聚类,设定 K=2 print("Cluster centers:\n", kmCluster.cluster_centers_) # 返回每个聚类中心的坐标 print("Cluster results:\n", kmCluster.labels_) # 返回样本集的分类结果 # 整理聚类结果 listName = dfData['地区'].tolist() # 将 dfData 的首列 '地区' 转换为 listName dictCluster = dict(zip(listName,kmCluster.labels_)) # 将 listName 与聚类结果关联,组成字典 listCluster = [[] for k in range(nCluster)] for v in range(0, len(dictCluster)): k = list(dictCluster.values())[v] # 第v个城市的分类是 k listCluster[k].append(list(dictCluster.keys())[v]) # 将第v个城市添加到 第k类 print("\n聚类分析结果(分为{}类):".format(nCluster)) # 返回样本集的分类结果 for k in range(nCluster): print("第 {} 类:{}".format(k, listCluster[k])) # 显示第 k 类的结果 return# = 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =if __name__ == '__main__': main()
2.3 分类问题参考例程—只供参考,非赛题解答
Python数模笔记-Sklearn(5)支持向量机 Python数模笔记-Sklearn (5)支持向量机
说明:支持向量机也可以用于多分类问题。
分类问题 Python 例程1:LinearSVC 使用例程
# skl_SVM_v1a.py# Demo of linear SVM by scikit-learn# v1.0a: 线性可分支持向量机模型(SciKitLearn)# Copyright 2021 YouCans, XUPT# Crated:2021-05-15import numpy as npimport matplotlib.pyplot as pltfrom sklearn.svm import SVC, LinearSVCfrom sklearn.datasets import make_blobsX, y = make_blobs(n_samples=40, centers=2, random_state=27) # 产生数据集: 40个样本, 2类modelSVM = SVC(kernel='linear', C=100) # SVC 建模:使用 SVC类,线性核函数# modelSVM = LinearSVC(C=100) # SVC 建模:使用 LinearSVC类,运行结果同上modelSVM.fit(X, y) # 用样本集 X,y 训练 SVM 模型print("\nSVM model: Y = w0 + w1*x1 + w2*x2") # 分类超平面模型print('截距: w0={}'.format(modelSVM.intercept_)) # w0: 截距, YouCansprint('系数: w1={}'.format(modelSVM.coef_)) # w1,w2: 系数, XUPTprint('分类准确度:{:.4f}'.format(modelSVM.score(X, y))) # 对训练集的分类准确度# 绘制分割超平面和样本集分类结果plt.scatter(X[:,0], X[:,1], c=y, s=30, cmap=plt.cm.Paired) # 散点图,根据 y值设置不同颜色ax = plt.gca() # 移动坐标轴xlim = ax.get_xlim() # 获得Axes的 x坐标范围ylim = ax.get_ylim() # 获得Axes的 y坐标范围xx = np.linspace(xlim[0], xlim[1], 30) # 创建等差数列,从 start 到 stop,共 num 个yy = np.linspace(ylim[0], ylim[1], 30) #YY, XX = np.meshgrid(yy, xx) # 生成网格点坐标矩阵 XUPTxy = np.vstack([XX.ravel(), YY.ravel()]).T # 将网格矩阵展平后重构为数组Z = modelSVM.decision_function(xy).reshape(XX.shape)ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) # 绘制决策边界和分隔ax.scatter(modelSVM.support_vectors_[:, 0], modelSVM.support_vectors_[:, 1], s=100, linewidth=1, facecolors='none', edgecolors='k') # 绘制 支持向量plt.title("Classification by LinearSVM (youcans, XUPT)")plt.show()# = 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =
分类问题 Python 例程2:NuSVC 使用例程
# skl_SVM_v1b.py# Demo of nonlinear SVM by scikit-learn# v1.0b: 线性可分支持向量机模型(SciKitLearn)# Copyright 2021 YouCans, XUPT# Crated:2021-05-15import numpy as npimport matplotlib.pyplot as pltfrom sklearn.svm import SVC, NuSVC, LinearSVCfrom sklearn.datasets import make_moons# 数据准备:生成训练数据集,生成等高线网格数据X, y = make_moons(n_samples=100, noise=0.1, random_state=27) # 生成数据集x0s = np.linspace(-1.5, 2.5, 100) # 创建等差数列,从 start 到 stop,共 num 个x1s = np.linspace(-1.0, 1.5, 100) # start, stop 根据 Moon 数据范围选择确定x0, x1 = np.meshgrid(x0s, x1s) # 生成网格点坐标矩阵Xtest = np.c_[x0.ravel(), x1.ravel()] # 返回展平的一维数组# SVC 建模,训练和输出modelSVM1 = SVC(kernel='poly', degree=3, coef0=0.2) # 'poly' 多项式核函数modelSVM1.fit(X, y) # 用样本集 X,y 训练支持向量机 1yPred1 = modelSVM1.predict(Xtest).reshape(x0.shape) # 用模型 1 预测分类结果# NuSVC 建模,训练和输出modelSVM2 = NuSVC(kernel='rbf', gamma='scale', nu=0.1) #'rbf' 高斯核函数modelSVM2.fit(X, y) # 用样本集 X,y 训练支持向量机 2yPred2 = modelSVM2.predict(Xtest).reshape(x0.shape) # 用模型 2 预测分类结果fig, ax = plt.subplots(figsize=(8, 6)) ax.contourf(x0, x1, yPred1, cmap=plt.cm.brg, alpha=0.1) # 绘制模型1 分类结果ax.contourf(x0, x1, yPred2, cmap='PuBuGn_r', alpha=0.1) # 绘制模型2 分类结果ax.plot(X[:,0][y==0], X[:,1][y==0], "bo") # 按分类绘制数据样本点ax.plot(X[:,0][y==1], X[:,1][y==1], "r^") # XUPTax.grid(True, which='both')ax.set_title("Classification of moon data by LinearSVM")plt.show()# = 关注 Youcans,分享原创系列 https://blog.csdn.net/youcans =
3. 参考文献
[1]李沫. 战国秦汉时期费昂斯制品的制备及铅钡玻璃研究[D].北京化工大学,2014.
摘要:费昂斯制品被学者称为是原始玻璃的雏形,我国战国至秦汉时期十分常见的蓝紫色八棱柱状费昂斯制品更以其独特的铅钡成分和特殊的风化形貌受到国内外学者的广泛关注。本文从该类器物的显色成分中国紫(Chinese Purple, BaCuSi2O6)和中国蓝(Chinese Blue, BaCuSi4O10)的合成反应入手,层层深入,结合古代样品分析,最终在实验室条件下模拟成型工艺过程并得到与原始费昂斯文物较为相似的产物。主要研究内容和结果如下: 1.合成了中国紫和中国蓝颜料,研究了合成方法、钡源及含铅催化剂对硅酸铜钡颜料合成反应的影响。通过对产物的XRD分析及显微结构研究,得出了高温固相法更适宜作为模拟实验的反应方法,以BaCO3为钡源的配方更易在实验室条件下获得较为纯净的产物。通过SEM、TG (DTG)、XRD研究,得出PbCO3催化剂比PbO和PbS可有效降低合成反应温度,在600-700℃范围内可使BaCO3分解,从而合成出较为纯正的中国紫颜料。 2.对两件风化严重的蓝紫色费昂斯八棱柱状物分别进行了SEM+EDX测试和拉曼光谱研究,发现由不同检测方法得到了相同的结果,即外部结壳的主要成分均为SiO2,PbCO3,Al2O3及钡盐(BaCO3或BaSO4),而内部风化层中主要显色成分均为中国紫。 3.对中国战国秦汉时期蓝色费昂斯料珠的加工成型过程进行了初步实验室模拟试验采用XRF对古代蓝紫色费昂斯制品进行了化学成分研究,获得了模拟料珠的实验配方。对经过手工成型后的模拟产物进行XRD、显微分析,并与古代料珠进行宏观和显微结构比较后,确定其为与古代产物相似程度较高的模拟产物。 4.对八棱柱状费昂斯制品模拟成型过程中涉及的铅盐含量与烧制温度,烧结次数,成型压力,成型方法等因素进行了研究。通过模拟样品与文物样品密度、孔隙率的比较得出铅含量严重影响着费昂斯制品的成品状态,常见的高铅含量费昂斯制品,最高反应温度一般不会超过950℃(铅盐含量>35wt%)。蓝紫色八棱柱状费昂斯制品的原料粉末应为二次烧结粉末,成型过程中的压力参数应在1500-2000psi(10.34-13.79MPa)范围内,采用的成型方法应为先成型(柱状)后打磨的方法,最终获得了与古代样品十分形似的模拟产物。 5.分析研究了两件中国古代秦汉时期绿色八棱柱状铅钡玻璃样品中的针状物质,对其进行成分EDX和形貌SEM分析及拉曼光谱测试后,根据EDX分析结果及实验室合成物质的XRD、拉曼光谱比对,确定古代样品中该针状物的组成应为BaSiO3、PbSiO3及Al2O3。
[2]胡志中,李佩,蒋璐蔓,王通洋,杜谷,杨波.古代玻璃材料LA-ICP-MS组分分析及产源研究[J].岩矿测试,2020,39(04):505-514
摘要:古代玻璃及玻璃质材料的定量分析对于研究其制作年代及产地、原料的来源以及制作工艺有着重要的参考意义。与电子探针(EMPA)、能谱扫描-电子显微镜(EDX-SEM)等分析方法相比,LA-ICP-MS能够快速且准确地提供样品主次量及微量元素信息。本文对LA-ICP-MS古代玻璃元素定量分析中的影响因素进行研究认为:在193nm激光下玻璃标准NIST610和康宁玻璃标准之间基体差异造成的影响较小,而采用玻璃标准NIST610为外标结合基体归一化法的校正策略测定康宁标准结果表明,该策略能够准确反映不同类型古代玻璃材料中成分组成;实验中不同剥蚀模式的研究,有助于不同实验条件的建立,从而满足不同研究的需要。本次研究对出土样品进行了分析,为该制品的产源研究提供了数据支持。
[3]张丽艳,李洪,陈树彬,李忠镝,阮苠秩,薛天锋,钱敏,凡思军.玻璃的成分和性质的模拟方法[J].硅酸盐学报,2022,50(08):2338-2350.
摘要:介绍了加和法、相图法、Priven法、拓扑束缚理论、分子动力学模拟、机器学习及数理统计模拟等7种玻璃成分性质模拟方法,总结了各模拟方法的主要理论依据、模拟过程及应用现状。加和法可进行多种玻璃物理性质的预测,相图法在二、三、四元硅酸盐、硼酸盐及硼硅酸盐玻璃体系上的运用较为成熟,Priven法结合了玻璃结构、热力学方程及计算机模拟,拓扑束缚理论目前应用于氧化物和硫化物体系个别性质的模拟,分子动力学模拟亦应用于多种玻璃体系中的分子结构分析和相关性质预测,机器学习能充分利用文献中提供的大量数据来模拟复杂玻璃性质。目前数理统计模拟法已用在建立复杂玻璃体系中的成分(C)–结构(S)–性质(P)的相关数学模型,包括硅酸盐,硼硅酸盐和磷酸盐玻璃。较传统的C–P统计模拟方法,C–S–P统计模拟法能对复杂玻璃体系提供更精准的性质评估,有助于新型玻璃开发。