iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
AI & Data

什麼演算法?一起來學機器學習!系列 第 5

Day5-線性回歸(Linear Regression)與L1、L2 regularization & Elastic net實作 + jupyter notebook路徑&瀏覽器設定教學

  • 分享至 

  • xImage
  •  

前兩天介紹了線性回歸和幾種正規化方法的概念,今天來講要如何使用python實作,以及幾種常用參數介紹

環境建置

在開始之前先講一下我所使用的環境!

我這邊python版本是3.9.13

你可能會遇到的問題(因為我遇到過QQ)

jupyter notebook的預設瀏覽器為什麼是Microsoft Edge(或是其他你有的瀏覽器)

  • 聲明一下,沒有說它不好的意思,只是我個人更習慣Google Chrome的介面
    1. 如過你遇到了類似的問題,可以到你下載jupyter notebook的資料夾,找到.jupyter中的jupyter_notebook_config.py檔案並打開(用一般文字編輯器就可以)
    2. 在剛剛開啟的檔案中找到(此時他是註解狀態)
      #c.NotebookApp.browser = u''
      
    3. 刪掉#,後面加上你想用的瀏覽器地址
      c.NotebookApp.browser = u'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'
      
    4. 最後存檔就完成啦!(重新打開jupyter notebook就會是在你希望的瀏覽器了)

jupyter notebook怎麼切換到我幫它準備好的資料夾

  • 我當時在D槽幫它開了一個資料夾,結果打開發現它找不到!!
    1. 一樣到你下載jupyter notebook的資料夾,找到.jupyter中的jupyter_notebook_config.py檔案並打開(用一般文字編輯器就可以)
    2. 在剛剛開啟的檔案中找到(此時他是註解狀態)
      #c.NotebookApp.notebook_dir = u''
      
    3. 刪掉#,後面加上你想用的資料夾地址
      c.NotebookApp.notebook_dir = u'D:\\JupyterNotebook'
      
    4. 最後存檔就完成啦!(重新打開jupyter notebook就會出現你設定好的資料夾了)

實作程式碼

  • 我這邊都是用sklearn上面的模型進行實作

常用參數

  • alpha:乘以正規項的係數
  • l1_ratio:L1正規化的比例,l1_ratio=0代表l2正規化,l1_ratio=1代表L1正規化

Lasso

from sklearn.linear_model import ElasticNet

alphas = np.logspace(-6, 6, 100) #正規化係數
mdl = ElasticNet()

for a in alphas:
    mdl.set_params(alpha=a,l1_ratio=1)
    mdl.fit(X_std, y)
    print(mdl.coef_)

Ridge

from sklearn.linear_model import ElasticNet

alphas = np.logspace(-6, 6, 100) #正規化係數
mdl = ElasticNet()

for a in alphas:
    mdl.set_params(alpha=a,l1_ratio=0)
    mdl.fit(X_std, y)
    print(mdl.coef_)

ElasticNet

from sklearn.linear_model import ElasticNet

alphas = np.logspace(-6, 6, 100) #正規化係數
mdl = ElasticNet()

for a in alphas:
    mdl.set_params(alpha=a,l1_ratio=0.5)
    mdl.fit(X_std, y)
    print(mdl.coef_)

參考資料


上一篇
Day4-L1、L2 regularization & Elastic net
下一篇
Day6-多項式回歸(Polynomial Regression)
系列文
什麼演算法?一起來學機器學習!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言