SAS Visual Data Mining and Machine Learning

SAS 機器學習 (8)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 產生機器學習模型的基本概念,此篇主要為學習筆記。

重點概念

首先當我們已經確認擁有足夠且適當的資料,並且將資料轉換為適合建模的形式,以及確認要包含在我們模型中的關鍵特徵,此時若要使用模型,則我們能夠使用強大的機器學習演算法來建立預測模型或發現資料中的模式。我們應該嘗試以不同的方法來識別演算法和設定演算法的選項為我們的特定應用程式產生最佳模型,至於必要建模任務,主要有五個步驟,分別為:

  1. 選擇演算法
  2. 改善模型
  3. 優化模型的複雜性
  4. 正規化和調整模型的超參數
  5. 建立整體模型

接著機器學習的模型通常難以解釋,實際上機器學習模型建立預測需要思考,若模型有用,則需要由企業組織使用以自動方式快速做出決策的運作方式,然而將資料寫入資料庫就是機器學習最困難和乏味的方面,這個過程稱為模型部署。我們通常會建立多個模型,因此首先要評估多個模型,然後比較這幾個模型並確定通常稱為冠軍的最佳模型,接著將冠軍模型部署到生產中,這個過程稱為評分,即便過了已部署模型,必須對其進行監控,然後根據要求進行更新,簡單來說模型評估主要是評估所建立模型的成效,至於必要部署任務,主要有五個步驟,分別為:

  1. 評估模型
  2. 比較模型
  3. 為冠軍模型評分
  4. 監控模型效能時間
  5. 根據需要更新模型

再來沒有模型是最好的,特別是在考慮資料在部署模型時的變化,所有模型都基於所提供的資料,資料描述了問題或分析了業務情景,當場景發生變化時,資料會發生變化,模型也會變化在預測方面降低,沒有模型是最好的,特別是隨著時間的推移,此時我們必須針對多個維度比較多個模型,分別為:

  1. 訓練速度
  2. 評分速度
  3. 部署可行性
  4. 噪音容忍度
  5. 解釋能力

此外根據業務需求評估模型能夠解釋預測非常重要,在某些業務情境中,目標可能會動態變更,因此模型需要訓練得非常快速, 在某些情況下模型需要即時評分,所以評分過程非常重要,請注意沒有通用的最佳模型,根據取決於解決問題和業務需求方面的要求選取最適合模型,而最適合模型可以來自多個模型的整合。

最後過度擬合雖然能夠精確地擬合訓練資料,但是通常會導致不良新的資料結果,預測建模目的是泛化,即預測新的資料,在相同資料上評估模型通常適合模型,導致樂觀的偏見評估,糾正樂觀偏見的最簡單策略是資料分割,其中一部分資料用於擬合模型,其餘資料用於驗證。訓練資料集用於使模型適合所提供的資料,該資料集使模型能夠實現學習輸入變數和目標之間的關係,但是過度訓練基於此資料集的模型將可能會導致模型在新的資料中表現不佳。

相關資源

SAS 機器學習 (7)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 產生機器學習模型的基本概念,此篇主要為學習筆記。

重點概念

首先許多資料探勘資料庫具有數百個用於預測目標 (相依變數或回應變數) 的潛在模型輸入 (獨立變數或解釋變數),此時在 Model Studio 中我們能夠透過變數選擇節點拒絕基於選擇結果的輸入變數來減少輸入變數的數量,並且儘管被拒絕的變數還是會被傳遞至管道中的後續節點,但這些變量不會被後繼建模節點用作模型的輸入變數。因此變數選擇節點是一個資料探勘預處理的節點,其能夠快速識別輸入變數,這對預測目標變數非常有用,然後,我們能夠透過一個建模節點更詳細地評估輸入變數的資訊。

接著變數選擇節點中的變數選取方法,主要能夠分為無監督選取和監督選取,所謂無監督選取主要是識別共同解釋最大值的輸入變數差異值,使用此方法將不會考慮目標變數,無監督選取主要透過 VARREDUCE 程序以執行無監督變數選取識別一組共同解釋最大資料量差異的變數,變數選取主要是基於協方差分析。所謂監督選取主要是識別共同解釋最大值的輸入變數目標中包含的變異量,監督選取主要透過 VARREDUCE 程序以識別一組共同的變數來執行監督變數選取的過程解釋回應變數中包含的最大變異量,監督選取主要基於 AIC , AICC 和 BIC 停止標準,值越小越好。

再來監督選取變數除了預設為快速監督選取之外,我們更能夠透過以下四種變數選取方法進行變數選取,分別為:

  1. 線性回歸選取
  2. 決策樹選取
  3. 森林選取
  4. 梯度加速選取

所謂線性回歸選取適合普通最小平方的變數選取迴歸預測模型,這對於間隔目標和二元目標有效,在一個案例中二元目標或具有用戶定義格式的二元目標,預設數字建立值為 0 或 1 的變數,然後取代目標,線性回歸選取主要指定 REGSELECT 程序以執行基於線性回歸選擇普通最小平方回歸。其提供了許多效果選擇方法,包括後向、前向、前向交換,逐步方法,以及現代 LASSO 和自適應 LASSO 方法,它還提供了廣泛的功能,可以通過各種方式自定義模型選取和停止標準,從基於計算效率的顯著性水平的標準到現代的,計算密集基於驗證的標準。所謂決策樹選取訓練決策樹預測模型剩餘平方和主要是用於計算每個預測變數的變數重要性,以及相對變數的重要性,我們能夠定的門檻值用於選擇最有用的預測變數。決策樹取取主要使用 TREESPLIT 程序以基於 CHAID 執行決策樹選擇,卡方,熵,基尼,資訊增益比,F 檢定和變異目標標準,其產生了一個分類樹,模擬分類回應或回歸樹,模擬持續的反應,不論哪一種樹皆稱為決策樹,因為模型是表達為系列 IF-THEN 語句。所謂森林選取透過擬合多個決策樹來訓練森林預測模型,剩餘對每個預測變數計算平方和變數重要性,對所有預測變量求平均值樹和指定的相對變數重要性門檻值用於選擇最多有用的預測變量,樹系選取主要用於建立預測的 FOREST 程序,其由多個決策樹組成的模型。至於梯度增強選取透過擬合一組梯度來訓練梯度增強預測模型決策樹,針對每個預測值計算殘差平方和變數重要性,變數在所有樹中的平均,以及我們相對變數重要性門檻值主要用於選取最有用的預測變數,梯度加速選取主要指定 GRADBOOST 程序用於建立由多個決策樹組成的預測模型。

最後我們在 Model Studio 中從訓練建立訓練樣本和驗證樣本資料,以利用於評估變數選取,我們能夠選擇所有上述方法進行變數選取,但這可能會導致處理時間長,具體取決於所使用的資料和分散式平行處理的環境。此外除了變數選取能夠減少輸入變數,我們更能夠透過變數分群減少輸入變數,特別是許多輸入變數皆是冗餘,冗餘的輸入變數可能會降低分析,像是破壞參數估計的穩定性、增加過度擬合的風險、混淆解釋性、增加計算時間、增加資料收集和擴充的成本、…等。變數分群主要分為不相交或分層的群組,不同群組中的變數是有條件的獨立給予本身的群組,對於包含多個變數的群組,選擇對該群組中的變化貢獻最大的變數作為代表變數,而所有其它變數都被拒絕,所以我們能夠透過變數分群找到最佳變數分析,並且消除了共線性,減少了冗餘,有助於揭示底層資料集中輸入變數的結構,有效減少變數數量。

相關資源

SAS 機器學習 (6)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 產生機器學習模型的基本概念,此篇主要為學習筆記。

重點概念

首先異常值主要用於預測分析,像是欺詐偵測,設備健康監測和高光譜圖像分析應用中罕見事件的比例非常低,我們主要將模型擬合到這些資料中,基本上不會考慮事件發生的極端不平衡,此時我們能夠透過特殊的取樣方法是修改不平衡的資料集,通常用於提供更均衡的罕見事件分佈。至於常見的預測建模實務主要是從具有主要結果的樣本基於事件型抽樣 (Event-based Sampling) 用於產生建模資料的技術,在罕見的情況下事件,通常選擇所有事件,然後每個事件結果匹配一個或多個的非事件結果,並且在評分程式碼中包含調整後驗機率能夠修改後驗機率乘以實際機率,以及基於事件機率先前指定的取樣值之比例,而 Model Studio 預設主要就是基於事件型抽樣,此外會自動調整評估指標,評估圖表和偏見的預測估計。

接著我們能夠在 Model Studio 中透過異常偵測節點於識別排除異常支援向量資料描述 (Support Vector Data Description,SVDD),SVDD 主要是透過已確定最小可能之用於建立使用支援向量封裝訓練資料點的超球面來識別異常值。 SVDD 主要排除那些位於構建範圍之外的訓練資料的資料點,使用 SVDD 進行異常檢測對於資料集非常有用,大多數資料皆屬於一個類別,而另一個類別屬於稀缺或遺漏。我們能夠可以使用 SVDD 對於屬於稀缺或遺漏類別的資料進行建模,然後使用該模型執行異常偵測的分析應用。

再來雖然很多機器學習演算法不受異常值影響,但是有些人對於極端或異常值問題非常敏感,像是回歸模型進行最佳預測時,若有異常值則會影響預測模型。在 Model Studio 中最佳轉換並不是真正的轉換,而是一種轉換為間隔輸入轉換最佳的方法或過程。輸入轉換可被用於改變變數分佈形狀壓縮它,以利減少異常值和標準化輸入相同的範圍和規模,以及更可被用於減少輸入模型預測中的偏見。輸入變數的轉換主要是常見的資料預處理任務,在機器學習中,有兩類通常使用的變數轉換類型,分別為數學函數和分箱。我們主要能夠使用取代之後的輸入來取替原始輸入就能夠準確地預測模型,這不僅減輕了極端情況下的影響力,還會在輸入和目標之間建立所需的關聯原始輸入比例,以及透過分箱能夠對於遺漏值進行分類變數,減少異常值可能對於模型所造成的影響。

最後不論異常值是否用於預測分析或不用於預測分析,我們皆有可能需要使用資料前處理相關節點,分別為:

  1. 異常偵測節點
  2. 篩選節點
  3. 設算節點
  4. 管理變數節點
  5. 取代節點
  6. 轉換節點

其中篩選節點主要排除某些觀察值,像是罕見值和異常值,並且從訓練資料中過濾極值,以利參數估計更穩定,更進一步產生更好的模型。取代節點主要用於可以取代異常值和未知類別具有指定值的等級別,但是簡單取代異常值和未知類別等級,並不總是有效的,應該小心有效的進行取代。轉換節點主要透過轉換來變更輸入變數與該變數的某些功能,轉型有許多使用案例,像是可以用於穩定差異,刪除非線性,並且糾正非正態性。

相關資源

SAS 機器學習 (5)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 產生機器學習模型的基本概念,此篇主要為學習筆記。

重點概念

首先預測模型的最佳輸入變數是什麼?若我們嘗試每種輸入變數組合,則在可用輸入變數數量上將會呈指數式的成長,對於現實預測問題是不切實際的,而維度代表輸入變數的數量或自由度數,可用於建立多維度預測和資料探勘問題,至於維度的問題主要是密集產生所需資料的維度空間指數成長,當有很多輸入變數時,需要密集的輸入空間以適應高度複雜的模型,我們就會需要評估可以用於資料探勘的資料量,此時就會必須考慮維度的問題。為了解決維度問題,我們主要會進行降維,降維主要是減少所需考慮的變數數量,在許多應用中,原始資料具有非常高的維度特徵,並且某些特徵是多餘或非相關,此時減少維度將有助於找出真實潛在關係所相關的特徵值,而在 SAS Visual Data Mining and Machine Learning 中針對變數進行降維主要有三種方式,分別為:

  1. 特徵擷取
  2. 變數分群
  3. 變數選取

接著特徵擷取主要是將現有特徵變數轉換為低維空間,在 Model Studio 中的特徵擷取能夠使用各種不同技術,主要有四種技術,分別為:

  1. 主成分分析 (Principal Component Analysis,PCA)
  2. 強建性主成分分析 (Robust Principal Component Analysis,RPCA)
  3. 奇異值分解 (Singular Value Decomposition,SVD)
  4. 自動編碼器 (Autoencoders)

其中 PCA、RPCA 和 SVD 皆是一般常見的特徵擷取技術,但僅適用於間隔輸入,而自動編碼器主要是一種神經網路用於高效編碼,適用於類別輸入和間隔輸入,並且廣泛用於特徵擷取和非線性主成分分析。在架構上自動編碼器就像一個屬層感知器神經網路,因為它有一個輸入層、隱藏層 (編碼層) 和輸出層 (解碼層),但是其不同之處在於輸出層是從中複製的輸入層,因此自動編碼器是非監督學習模型,網路訓練有素重建其輸入,並且迫使隱藏層嘗試學習良好的輸入。

再來變數分群主要是將數值變數劃分為不相交的群組,並且選擇一個代表每個群組的變數,變數分群將會移除共線性,減少冗餘,並且協助了解底層資料集的結構,而當達到或超過其中一個門檻值時,則會停止分群過程,主要有三個門檻值屬性,分別為:

  1. 分群步驟數
  2. 分群變數量
  3. 分群數量

最後變數選取主要使用監督式變數選擇技術確定哪些變數對於模型影響最大的方法,監督式變數選擇技術主要基於變數選取線性模型和基於樹的模型,像是決策樹,森林和梯度增強。此外我們可以指定多個選擇技術,以及不同選擇標準,當不同的技術使用時,可能會對所選變數產生分歧,使用此功能可以選取一致的變數選取,若不符合選取標準的變數將會被標記為拒絕,並且不會在後續建模節點中使用。

相關資源

SAS 機器學習 (4)

教學目標

初步了解 SAS Visual Data Mining and Machine Learning 產生機器學習模型的基本概念,此篇主要為學習筆記。

重點概念

首先當預測中使用其中一個輸入是遺漏值時應該怎麼做呢?對於許多機器學習的任務,遺漏值可能在理論上和實際上皆會存在問題,特別是當變數中存在遺漏值。當遺漏值出現在在輸入資料中隨機輸入,則我們可以在 Model Studio 中新增專案設定的顧問選項設定當變數的遺漏值的比例大於最大遺漏百分比則會被拒絕,雖然不會對於模型造成偏差,但是從訓練資料中刪除大量遺漏值,將會降低預測模型的準確性。至於保留與遺漏值相關的資訊, 包括遺漏值本身,理論上將能夠提高模型預測的準確性,但是資料中遺漏值的問題幾乎始終存在,當面對輸入變數中有遺漏值,則我們必須考慮是否隨機分配遺漏值或是否以某種方式預測遺漏值,像是我們會以平均值進行設算,當遺漏是非隨機時,則估算遺漏值將會依賴於輸入或條件,這就可能會是一個更複雜的問題。

接著我們提到遺漏值會影響預測模型的準確性,為何呢?試想若有 k 個輸入變數隨機遺漏值的比率為 p,則就僅會有 ( 1 – p ) 的 k 次方機率的資料是可用於分析,例如當發生遺漏值的機率為 1% ,則若有 100 個輸入變數,則僅有 37% 的資料可用於分析,當發生遺漏值的機率為 5% ,則若有 100 個輸入變數,則僅有 1% 的資料可用於分析,因此當發生遺漏值的機率越大將會導致可用於分析的資料快速減少,除此之外遺漏值還會影響預測評分的計算,預測評分主要會基於預測公式,但是若有遺漏值將會導致無法正常計算。

再來在 SAS Visual Data Mining and Machine Learning 中管理遺漏值主要有六種解決方式,分別為:

  1. 單純貝氏 (Naïve Bayes)
  2. 決策樹 (Decision trees)
  3. 遺失指標 (Missing indicators)
  4. 設算 (Imputation)
  5. 分箱 (Binning)
  6. 評分遺失資料 (Scoring missing data)

其中設算主要是取代資料集中的遺漏值,簡單的設算主要包括用平均值取代輸入變數中的遺漏值,當遺漏值為非隨機的變數時,則設算可能無效,則我們將會建立遺漏指標,並且在模型中用於推算變數,這種做法可以改善結果,即使在變數是正態分佈和遺漏值很少的情況下也是如此。

最後我們針對遺漏值的問題先歸至遺漏資料的主題,針對遺漏資料的主題主要會面臨偏差和資訊損失的挑戰,此時面對偏差的挑戰我們主要會透過設算節點中的設算方式來解決遺漏資料的問題,而面對資訊損失的挑戰我們主要會透過轉換節點中的分箱方式來解決遺漏資料的問題,至於實務上我們為了避免資訊損失,所以會透過轉換節點中的分箱方式,將輸入變數透過函數進行轉換,通常應用轉換將會使得資料更能夠滿足需要應用的建模演算法之假設。

相關資源