本節書摘來自華章計算機《r語言資料分析與挖掘實戰》一書中的第2章,第2.3節,作者 張良均,雲偉标,王路,劉曉勇,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
r包主要包含的類别有空間資料分析類、機器學習與統計學習類、多元統計類、藥物動力學資料分析類、計量經濟類、金融分析類、并行計算類、資料庫通路類。各類别都有相應的r包來實作其功能。例如,機器學習與統計學習類别就包含實作分類、聚類、關聯規則、時間序列分析等功能的r包。
r在資料挖掘領域也提供了足夠的支援,如分類、聚類、關聯規則挖掘等,通過加載不同的r包就能夠實作相應的資料挖掘功能,如表2-1所示。

分類是資料挖掘領域研究的主要問題之一,分類器作為解決問題的工具一直是研究的熱點。常用的分類器有神經網絡、随機森林、支援向量機、決策樹等,這些分類器都有各自的性能特點。
nnet包執行單隐層前饋神經網絡,nnet()函數涉及的主要參數有隐層節點數(size)、節點權重(weights)、最大疊代次數(maxit)等,為了達到最好的分類效果,這些都是需要使用者根據經驗或者不斷地嘗試來确定的;随機森林分類器利用基于breiman随機森林理論的r語言軟體包randomforest中的randomforest()函數來實作,需要設定三個主要的參數:森林中決策樹的數量(ntree)、内部節點随機選擇屬性的個數(mtry)及終節點的最小樣本數(nodesize)。
支援向量機分類器采用r語言軟體包e1071實作,該軟體包是以台灣大學林智仁教授的libsvm源代碼為基礎開發的。svm()函數提供了r與libsvm的接口,涉及的參數主要有類型(type,“c”實作支援向量機分類,“eps-regression”實作支援向量機回歸)、核函數(kernel)。svm包含了4種主要的核函數:線性核函數(linear)、多項式核函數(polynomial)、徑向基核函數(rbf)以及sigmoid核函數。一般情況下會選擇徑向基核函數,這主要源于:其一,線性核函數隻能處理線性關系,且被證明是徑向基核函數的一個特例;其二,sigmoid核函數在某些參數上近似徑向基核函數的功能,徑向基核函數取一定參數也可得到sigmoid核函數的性能;其三,多項式核函數參數較多,不易于參數優選。而徑向基核函數支援向量機包含兩個重要的參數:懲罰參數cost和核參數gamma,tune()函數可以對兩者進行網格尋優(grid-search)确定最優值。
常用的聚類方法有系統聚類與k-means聚類。系統聚類可以使用hclust()函數實作,涉及的參數有距離矩陣(d)和系統聚類方法(method),其中距離矩陣可以使用dist()函數求得,常用的系統聚類方法有最短距離法(single)、最長距離法(complete)、類平均法(average)、中間距離法(median)、重心法(centroid)以及ward法(ward)。k-means法是一種快速聚類法,可以使用kmeans()函數實作,涉及的主要參數為聚類數(centers)。
k-means法和系統聚類法的不同之處在于:系統聚類對不同的類數産生一系列的聚類結果,而k均值法隻能産生指定類數的聚類結果。具體類數的确定,離不開實踐經驗的積累。有時也可借助系統聚類法,以一部分樣本為對象進行聚類,其結果作為k均值法确定類數的參考。
作為資料挖掘中一個獨立的課題,關聯規則用于從大量資料中挖掘出有價值的資料項之間的相關關系,常用的有arules包中的apriori算法。使用apriori算法生成規則前,要把資料轉換為transcation格式,通過as()轉換;其中涉及的參數清單(parameter)用于自定義最小支援度與置信度。
時間序列分析是根據系統觀測得到的時間序列資料,通過曲線拟合和參數估計來建立數學模型的理論和方法。進行時間序列分析時,可以使用ts()函數将資料轉化成時間序列格式;模型拟合可以通過arima()函數實作,涉及的主要參數有order(自回歸項數、滑動平均項數及使時間序列成為平穩序列的差分階數)、seasonal(序清單現出季節性趨勢時需要,除了上述order内容,還有季節周期period)、method(參數估計方法,“css”為條件最小二乘法,“ml”為極大似然法)等。r裡面有個函數auto.arima()可以自動生成一個最優拟合模型。