





摘要:隨著大數據時代不斷發展,數據中蘊藏著豐富的知識,且其價值日益提升。為了更好地認識數據規律,通過從UCI數據庫中選取陶瓷樣本化學成分數據集,基于開源的R語言對該數據集進行了預處理,然后使用不同的功能函數進行可視化與分析,經過實驗探索在一定程度上反映了陶瓷樣本數據中化學成分的規律。
關鍵詞:R語言;數據分析;陶瓷樣本化學成分;可視化分析;UCI
中圖分類號:TP312 文獻標識碼:A
文章編號:1009-3044(2024)22-0067-03
開放科學(資源服務)標識碼(OSID)
0 引言
以大數據為核心的時代,數據在社會中扮演著重要資產的角色并發揮著可觀的作用,其種類來源日趨豐富。因此,如何從數據中準確挖掘信息并提取價值,繼而賦能科技生產,促進社會經濟向前發展成為當今時代的主題。
R是一種開源的編程語言(https://cloud.r-project.org) ,其具備強大的數據分析與統計功能,并能產生優越的作圖效果。第一屆中國R大會于2008年在中國人民大學召開,至今已成功延續至16屆。與此同時,R語言已愈發受到人們的廣泛關注,應用于農業、醫學、教育、材料等領域的各項分析任務中。余等人[1]從教學改革的角度出發,利用R語言進行了課程探索。唐等人[2]從課程創新的角度出發,利用R語言針對醫學類信息專業教學進行了探索研究。楊等人[3]從防災應用的角度出發,利用R語言對地震數據進行了可視化以對防震工作和防震規律的認識形成參考。本文選取了UCI數據庫中的陶瓷樣本化學成分數據,基于R語言對其進行了預處理與可視化過程,旨在通過分析獲得數據集內隱含的知識。
針對數據集的分析過程分為數據采集、數據預處理、數據可視化與分析三個步驟,均在以下實驗環境中進行:R版本為4.3.3(64位),Rstudio版本為2023.06.1.0(64位),硬件操作系統為Windows11,處理器參數為11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40 GHz。
1 數據采集
UCI數據庫[5]是機器學習領域中一個不可或缺的數據源,其由世界各地的研究人員捐贈數據集并保持更新,該庫中的數據集涵蓋范圍廣泛,數據格式標準且種類繁多,適用于聚類、分類、回歸等多種場景。本文從UCI數據庫中將數據集Chemical Composition of Ceramic Samples[4]下載至本地,并采用read.table函數將其導入Rstudio集成開發環境中。
在UCI數據庫中對Chemical Composition of Ceramic Samples即陶瓷樣品的化學成分數據集的描述如下:
該數據源于采用了能量色散X射線熒光測定了龍泉窯(大瑤縣)和景德鎮窯青瓷胎體和釉料的化學成分,選取了一些典型碎片,對其原材料和燒制工藝進行了研究。該數據集中各個屬性名稱、含義及其取值情況如表1所示。
2 數據預處理
由于相關研究人員在將本數據集上傳至UCI網站之前經過了前期處理,因此在本文的數據預處理步驟中,僅使用is.na函數對數據集中的缺失值進行查詢,并結合summary函數對數據集中各個變量進行初步了解與分析,如變量個數、變量最大最小值、均值等,以便進一步提高數據質量,進行后續的數據分析與可視化步驟。
在數據集中非數值型變量有兩個,分別是Ceramic.Name和Part。為了便于后續可視化與分析,根據各自取值情況和含義的不同分別對這兩個變量進行了轉換,并將Ceramic.Name列的位置由第一列調整至最后一列。
由于Part的取值包含兩種(Body、Glaze) ,這里使用R語言中的as.numeric函數對其進行了編碼處理,將因子型變量轉換為數值型變量。(轉換規則:數值1代表字符Body,2代表字符Glaze) 。
變量Ceramic.Name的取值為字符串型,需對其進行規約化。首先通過R語言中的grepl函數進行字符串匹配,然后結合as.numeric函數對其進行了編碼處理,將字符串型變量轉換為數值型變量。通過分析得知,該變量下每個字符串中第一子串的取值為二元情況,即“FLQ”與“DY”,因此將該變量下的兩類字符型值全部轉換為二元數值1和2。以字符串“FLQ-1-b”為例,對其轉化后用數值1表示。這里將第一個子串“FLQ”視作瓷器種類,將中間數字字串“1”視作為該種類下的實例序號,將最后字串“g”視作部位標識釉(Glaze的首字母)。本文按照上述規則對Ceramic.Name變量下的取值進行轉換后的結果如表2所示。
3 數據可視化與分析
3.1 pairs函數分析
首先確保R中導入graphics包,便可使用包中的pairs函數繪制矩陣圖形,以同時涵蓋數據集中的所有變量,針對變量兩兩之間的關系形成整體描述。對陶瓷樣本化學成分數據集經過上述預處理完成后,得到的可視化分析結果如圖1和圖2所示。
如圖1所示為去掉標簽列Ceramic.Name后的可視化結果,對角線位置依序為陶瓷樣本的化學成分數據集中各個特征的名稱。例如,第一行的第一個圖形為本數據集第一個變量Part,第一行的第二個圖形顯示了第一個變量Part和第二個變量Na2O重量百分比之間的關系,而第二行中對角線位置的右側第一個圖形顯示了Na2O重量百分比和第三個變量MgO重量百分比之間的關系。圖2所示為保留標簽列Ceramic.Name后的可視化結果,可以看到右下角比圖1多一個對角線位置即標簽列。
3.2 PCA函數分析
PCA是統計學中常用的分析技術,其通過降維的思想,結合計算特征值等數學量作用于數據集中的主成分分析。為了便于可視化分析,這里將陶瓷樣本數據集作為分類集對待,首先刪除了標簽列即Ceramic.Name,其次需確保R中導入ggplot2、factoextra、FactoMineR包,便可使用包中的PCA函數一步到位繪制主成分分析圖,預處理完成后的數據集可視化分析結果如圖3所示。
由圖3可知,經PCA函數分析后可視化為一個半徑為1的圓,橫縱坐標軸1.0刻度處的Dim1和Dim2分別表示經PCA函數分析后確定的兩個主成分,貢獻百分比分別為39.52%和14.95%。圓內各個箭頭標識了不同的特征,在同一空間內反映了陶瓷樣本數據集中主成分與各個特征之間的關系。另外,特征之間的夾角不同,例如,ZnO與MgO之間較為靠近且夾角為銳角,表示兩者之間為正相關關系;而Al2O3與MgO之間較為疏遠且夾角為鈍角,表示兩者之間為負相關關系。
為了進一步探索不同種類陶瓷樣本與化學成分的規律,使用get_eigenvalue函數查看PCA分析后的統計量,包括各個主成分的eigenvalue(特征值)、variance.percent(貢獻百分比)、cumulative.variance.percent(累積貢獻百分比),并根據每個主成分的貢獻百分比使用fviz_eig函數繪制柱形圖,當貢獻百分比降低的趨勢基本穩定并達到初期設定的閾值時,可得出數據集中的主成分各項及數目,柱形圖分析結果如圖4所示。
根據圖4可知,在本數據集中,各項的貢獻百分比在x坐標軸上從左至右呈現下降現象。例如,第一維特征貢獻百分比為39.5%,第二維特征貢獻百分比為15%,二者下降梯度較大;第三維特征貢獻百分比為8.4%,第二、三維特征間下降梯度較上一間隔要小,此后依次各維特征貢獻百分比與相鄰特征間下降梯度的數值不斷減小且漸趨平穩,因此可選取縱坐標數值較大所對應的特征作為此數據集的主成分,例如前三個特征。
4 結論
本文選取UCI數據源中的陶瓷樣本化學成分數據集作為分析對象,基于R語言對該數據集進行了預處理,在此基礎上使用不同的功能函數進行了數據可視化與分析操作,旨在對陶瓷樣本數據中化學成分的規律進行探索,對后續該數據集及相關領域的分析具有一定的參考意義。
參考文獻:
[1] 余卓芮,孫怡恒,劉鈺,等.基于開源R語言建模的空間分析教學改革研究[J].電腦知識與技術,2024,20(1):10-13.
[2] 唐丹丹,張志豪,田翔華.基于R語言的醫學院生物信息學課程教學探新[J].電腦知識與技術,2023,19(19):133-135.
[3] 楊麗佳,陳新房,汪世偉.基于R語言與BDP的地震數據可視化[J].科學技術創新,2024(2):139-142.
[4] UCI Machine Learning Repository. Chemical Composition of Ceramic Samples[DB/OL]. https://doi.org/10.24432/C54P5X, 2019.
【通聯編輯:王 力】