1. 程式人生 > 其它 >拓端tecdat|Matlab廣義線性模型glm泊松迴歸的lasso、彈性網路正則化分類預測考試成績資料和交叉驗證視覺化

拓端tecdat|Matlab廣義線性模型glm泊松迴歸的lasso、彈性網路正則化分類預測考試成績資料和交叉驗證視覺化

原文連結:http://tecdat.cn/?p=24777

原文出處:拓端資料部落公眾號

使用冗餘預測變數構建資料集並使用lasso和 glm識別這些預測變數。

使用lasso正則化去除冗餘預測變數

建立一個X包含 100 個觀測值和 10 個預測變數的隨機矩陣。y僅使用四個預測變數和少量噪聲建立正態分佈因變數。

  1. 預設值
  2. randn ;
  3. X*權重 + randn*0.1; % 小的附加噪音

執行lasso正則化。

lasso

求第 75 個Lambda值的係數向量B

lassoglm識別並刪除冗餘預測變數。

廣義線性模型的交叉驗證lasso正則化

從泊松模型構建資料,並使用lasso

確定重要的預測變數。

建立具有 20 個預測變數的資料。僅使用三個預測變數加上一個常數來建立泊松因變數。

  1. rng % 用於重現性
  2. randn
  3. exp(X)*weights + 1

構建資料的泊松迴歸模型的交叉驗證lasso正則化。

檢查交叉驗證圖以檢視Lambda正則化引數的效果。

  1. Plot('CV');
  2. legend

綠色圓圈和虛線定位Lambda交叉驗證誤差最小的位置。藍色圓圈和虛線定位具有最小交叉驗證誤差加一個標準偏差的點。

找到對應於兩個識別點的非零模型係數。

  1. FitInf
  2. find(B
  1. FitInf
  2. min1fnd(B)

來自最小加一標準誤差點的係數正是用於建立資料的那些係數。

使用lasso正則化預測值

載入 學生考試成績資料集。將上次考試成績轉換為邏輯向量,其中1代表80以上0的成績,代表80以下的成績。

  1. ynm = (y>=80);

將資料劃分為訓練集和測試集。

  1. rng default % 設定可重複性的種子
  2. Xi = X(iTain,:);
  3. yran = yBinom
  4. yTe = yBinom

對訓練資料進行 3 折交叉驗證,對廣義線性模型迴歸執行lasso正則化。假設 中的值y是二項分佈的。選擇對應於Lambda最小預期偏差的模型係數。

  1. lasso(Trn,Tain,'binomial','CV',3);
  2. ince = FitIiance;
  3. FitIept

使用在上一步中找到的模型係數預測測試資料的考試成績。使用 指定二項式因變數的連結函式'logit'。將預測值轉換為邏輯向量。

使用混淆矩陣確定預測的準確性。

confuhart

該函式可以正確預測 31 個考試成績。然而,該函式錯誤地預測了1名學生獲得B或以上的成績,4名學生獲得B以下的成績。


最受歡迎的見解

1.R語言多元Logistic邏輯迴歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

3.matlab中的偏最小二乘迴歸(PLSR)和主成分迴歸(PCR)

4.R語言泊松Poisson迴歸模型分析案例

5.R語言混合效應邏輯迴歸Logistic模型分析肺癌

6.r語言中對LASSO迴歸,Ridge嶺迴歸和Elastic Net模型實現

7.R語言邏輯迴歸、Naive Bayes貝葉斯、決策樹、隨機森林演算法預測心臟病

8.python用線性迴歸預測股票價格

9.R語言用邏輯迴歸、決策樹和隨機森林對信貸資料集進行分類預測

▍關注我們 【大資料部落】第三方資料服務提供商,提供全面的統計分析與資料探勘諮詢服務,為客戶定製個性化的資料解決方案與行業報告等。 ▍諮詢連結:http://y0.cn/teradat ▍聯絡郵箱:[email protected]