柯佳慧 蔡 瓊 田麗歆 周文黎
(江漢大學 湖北·武漢 430056)
隨著化工醫藥業的發展,烯烴原料具有清潔,可再生等特點,被廣泛應用于生產生活中。而C4烯烴作為塑料,香精等主要原材料之一,其制備研究就顯得更有意義。目前最常見的C4烯烴制備方法就是利用乙醇催化偶合,但過程中除了要考慮反應物的利用率以及生成物的量之外,還要考慮實際實驗操作難度,以及反應生成的一些副產物也最好盡可能的小,那么就需要找到最佳的催化劑組合和溫度,確保實驗在相對安全便捷的情況下,生成盡可能多的有用生成物,以及使烯烴收率最優。
現已知某化工實驗室針對兩種催化劑裝料方式1和2,其中分別在不同催化劑組合以及不同溫度下做了一系列試驗,得到生成物結果記錄。數據顯示催化劑是由Co負載量、Co/SiO2和HAP裝料比以及乙醇滴加速度組合而來,實驗溫度大多為250℃~400℃,生成物也有相關記載,反應性能評價由乙醇轉化率與C4烯烴選擇性組成,此二者均為正指標。
首先,將數據集中的催化劑組合進行拆分,并對數據無量綱化,標準化處理。其次,利用Pearson相關系數分析不同特征之間的相關性強弱,得出不同特征對試驗結果的大致影響。將拆分后的各數據集,分別按溫度,Co負載量等等特征分組,將分組后的數據分別用TOPSIS模型計算,得到大概的各個特征對催化劑效果的影響趨勢。最后,利用支持向量機模型對原有的拆分后的數據集進行訓練與測試,用枚舉法對這些特征的取值進行重組,得到關于裝料方式,催化劑組合,溫度的36036個組合,將得到的這些數據集放入前面訓練過的SVM程序中運行計算,便可得出最大的生成物百分數,以得到對應最優的催化劑組合與溫度。
(1)拆分數據集:首先將催化劑按照Co負載量,Co/SiO2和HAP裝料之比,乙醇加入的速度這三個特征值進行數據的拆分。但由于數據中含有Co/SiO2和HAP裝料比相同但各自的值不同這一因素,為了消除這種比值相同但質量不同的影響,在此還增加了一個HAP的質量作為一個特征值,以便隨意組合后可以得到每一個重要的影響因素的具體數值。其次數據集中有一些數據沒有直觀的數值,因此,我們針對每一種拆分數據進行了數值替代,具體替代方法如下:①feature1:Co負載量的數值替代。如Co/SiO2質量之比為1wt%=1:100,近似認為Co的負載量為1;②feature2:Co/SiO2和HAP裝料之比的數值替代。通過查詢資料得知裝料比只有1:2,1:1,2:1三種情況,因此用0.5,1,2來代替。如Co/Si02裝料為200mg,HAP裝料為200mg,用1代替;③feature3:加入HAP的數值替代。例如數據顯示HAP為200mg,則用200代替;④feature4:乙醇加入速度的數值替代。比如乙醇濃度為1.68ml/min,用1.68代替。
(2)標準化處理:根據題目需要,我們僅對生成物中乙醇轉化率和烯烴選擇性這兩個因素作為實驗好與不好的參考依據,此時該數據的顯示方式為百分比,此類數據量級等均與其他數值類型不同,所以此時若直接代入原始數據,由于量級問題可能會對后續的結果造成影響,例如數值較大的數據對結果影響會較為突出,而數值小的數據對結果的影響可能會被“忽略不計”等問題。所以為了減小運算結果誤差,我們針對上述問題對進行了標準化處理。由于我們的數據中,兩個重要需求因素(乙醇轉化率和烯烴選擇性)都是正指標,所以我們是直接對其進行了離差標準化處理,使之范圍均控制在區間[0,1]中。
Pearson相關系數的基本思想為任取兩個變量X=[x1,x2,…,xn],Y=[y1,y2,…,yn],當變量為連續性數值且總體呈正態分布或接近正態分布時,通過計算x,y的離差平方和及離差平方和之積,求得相關系數r,從而確定其相關性強度。本文利用Python建立了相關系數矩陣,發現了不同催化劑組合,溫度與乙醇轉化率,C4烯烴選擇性都是強相關的,相關系數達到了0.9左右,因此不需要篩選特征。
針對標準化之后的數據,首先按溫度由小到大排序,將溫度相同的看作同一組,找到每一組最優值和最劣值,然后計算標準化之后的數據到這兩個值的歐氏距離,然后得到距離的綜合指標。發現溫度對兩個生成物的影響都是溫度越高越好。同上處理方式,我們對裝料方式等等,也進行了相應的處理,得到催化劑的裝料方式1明顯優于裝料方式2,因此后續對于尋找最優實驗組合時,可以不用考慮第二種裝料方式。另外發現:Co負載量越小,得到的所需物相對越高;Co/SiO2和HAP裝料之比1:1時對于乙醇的轉化率效果較好;當HAP的質量越多時,轉化率與選擇性越高;加入乙醇的速度越慢則實驗結果越好。
支持向量機方法是建立在統計學習理論的基礎上,對特定訓練樣本的學習精度,Accuracy和學習能力。通俗來說,支持向量機就是通過給定的數據集中,找到一個超平面,使它能夠盡可能的分開兩類數據點,使這兩類數據點距離該平面的距離最遠,SVM就是要尋找這個最好的超平面,劃分數據集。
依據前面針對催化劑組合特征對實驗結果影響的研究結果,我們對原始數據中所給的5個指標進行了擴充,分別為:
①feature1:[0.3 0.4 0.5 0.7 0.8 1 1.5 1.9 2 2.5 4 4.5 5]
②feature2:[0.5 1 2]
③feature3:[10 25 33 50 67 75 90 100 140 170 200]
④feature4:[0.3 0.9 1.3 1.68 2.1 2.4]
⑤實驗溫度:[250 275 300 325 350 375 400]
利用Python對5組數據做笛卡爾積,將數據放入了不同的列表中,分別定義對兩組數據,求笛卡爾積的封裝函數two()以及n組數據(n個列表)求笛卡爾積的封裝函數process(),其中n組數據求笛卡爾積函數采用遞歸方法,將所得笛卡爾積用for循環與split()方法以單元格為單位進行數據切分,最終共有36036個測試數據組合。
通過前面已經測試檢驗過的支持向量機回歸模型遍歷所有的36036個組合,用溫度劃分之后進行最優排序,得到最終結果為:

試驗方案 催化劑 溫度1 200mg 0.5wt%Co/SiO2-200mg HAP-乙醇濃度0.3ml/min 400 2 200mg 0.8wt%Co/SiO2-200mg HAP-乙醇濃度0.3ml/min 350 3 200mg 1wt%Co/SiO2-200mg HAP-乙醇濃度0.5ml/min 325
出于對試驗安全性,節約成本等考慮,我們選擇試驗方案2。
(1)SVM模型比直接線性回歸要擬合度更高,實用性較強,可以應用于許多非線性的實際問題。
(2)本文中創建了封裝函數,即代入任何類似數據都可以直接得到計算結果,用很少的實驗次數,得到最好的實驗結果,對于實驗評估與實現都有很大的意義,具有很好的推廣性。
由于試驗數據過少,導致我們模型的穩定性不高;對于化學反應過程中的其他副產品沒做過多研究,實際操作中會面臨許多的不可控因素;支持向量機(SVM)的測試機中擬合度r2還不夠高,還有改進空間。
后面可以通過詢問化學老師等,了解一下其他副產物對實驗是否有影響,那樣就會有更多的影響因子,對我們的程序測試也更加有利。針對支持向量機SVM的情況,我們可以對數據集的結果進行分類處理,放在分類器中,得到不同的分類組合,使結果擬合到這些組合中,以便精度更高,效果更加明顯。