機器學習的梯度下降迴歸法— SGDRegressor( )

更新於 發佈於 閱讀時間約 6 分鐘

在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。

為了找到這樣的函數,我們需要定義一種衡量模型好壞的方式,這就是所謂的損失函數(或稱成本函數),或是讀者可以想成這是誤差函數,目標就是找出誤差最小的函數時的參數。對於迴歸問題,一種常見的損失函數是平方誤差損失,它計算的是模型預測和真實值之間的平方差的平均值。我們的目標是找到一組模型參數,使得損失函數的值最小。

梯度下降是一種用來找到這樣一組參數的優化算法。它從一個隨機選擇的起始點開始,然後反覆地計算損失函數在當前點的梯度(即方向和速度),並沿著梯度的反方向(就是說,沿著使損失函數值下降最快的方向) 更新模型的參數。這個過程一直持續到損失函數的值不再顯著下降(或者達到預定的迭代次數) 為止。

raw-image

若是以上述誤差函數圖而言,斜率最低點就是在底部位置。讀者可以想像你現在站在一座大山的頂部,你的目標是找到一條路徑,讓你可以順利下山到達最低點,但是你被蒙上了眼睛,所以只能憑藉著腳下感覺去尋找路徑。

現在你開始嘗試一步一步地移動,你會嘗試各種方向的步伐,找到一種方式讓你感覺到下一步會讓你下降的最多,這就是你選擇前進的方向。你會重複這個過程,一直到你感覺不再下降,也就是你可能已經到達山谷的最底部。

這就是梯度下降法的基本概念。在這個比喻中,山頂是你一開始的猜測或者初始值,山谷的最底部就像是你想要找的答案,也就是使得誤差最小的那組參數值。你一步步往下走,就像是一次又一次的調整參數,試圖找到最佳解。而你嘗試找到讓你下降最多的方向,這就像是計算誤差函數的梯度,並依此更新你的參數。

機器學習模型的訓練過程其實就像這樣的一種嘗試過程,我們希望找到最佳的模型參數,讓預測的誤差最小。

SGDRegressor 就是一種利用梯度下降進行訓練的機器學習模型。SGD 英文全名是Stochastic Gradient Descent,意思是「隨機梯度下降」。它的「隨機」一詞源於每一步中用於計算梯度的樣本是隨機選取的,而不是用整個數據集。這種做法有兩個主要優點:一是計算效率高,因為每一步只需要一個(或一小批) 樣本;二是能夠避免陷入局部最小值,因為隨機性引入了一些噪聲,有助於算法跳出局部最優並找到全局最優。所以,簡單地說,SGDRegressor 是一種使用梯度下降算法進行訓練的線性模型。其語法和主要參數如下:

from sklearn.linear_model import SGDRegressor

model = SGDRegressor(loss, penalty=, alpha, max_iter)

上述可以建立一個SGDRegressor 的實例物件,各參數意義如下:

  • loss:這定義了所使用的損失函數,預設情況下,這是「平方損失 ('squared_loss')」,這對應於普通最小平方迴歸。
  • penalty:這定義了所使用的懲罰項,預設情況是 "L2",這對應於線性模型的權重的平方和。其他可能的選項包括 "L1"(對應於權重的絕對值之和) 和"elasticnet"( 這是L1 和L2 的組合)。所謂的「懲罰」,我們可以把機器學習模型想像成一個小學生正在學習拼字。每當他學到一個新的單詞,他就會試著記住它。如果他只記住了幾個單詞,那他可能會很容易把它們拼對。但是如果他試圖記住太多的單詞,那麼他可能會開始混淆,並且拼錯一些單詞。在這裡,我們可以把「試圖記住太多的單詞」看作是模型「過擬合」訓練數據。也就是說,模型可能過於複雜,試圖擬合訓練數據中的每一個細節,甚至包括噪聲,而失去了對新數據的預測能力。這時候,我們就需要一種「懲罰」來限制模型的複雜度,讓它不要試圖記住太多的單詞。這就是所謂的 penalty。我們可以通過增加模型錯誤的「成本」或「懲罰」來阻止它記住太多的單詞。這樣,模型會更加專注於學習最重要的特徵,而不是訓練數據中的每一個細節。這就是我們在機器學習模型中使用懲罰或正則化的原因。
  • alpha:這是懲罰項的強度,預設是 0.0001。
  • learning_rate:這定義了學習率的調整策略。預設情況下,它被設置為「invscaling」,這表示使用的是逆比例縮放學習率,也就是說,每一步的學習率會隨著迭代次數的增加而減小。這種學習率的調整策略有一個特點,就是在演算法開始時,給予較大的學習率以快速接近最優解,然後隨著迭代次數增加,逐漸減小學習率,以防止在最優解附近震盪,更精確地找到最優解,這學習率將由預設的學習速率時間表來確定。其他選項包括 'constant'、'optimal'和 'adaptive'。如果學習率太高可能造成梯度無法進入局部最低點,也就是無法找出錯誤最小的參數。如果學習率太低,會造成需要比較多次的迭代,才可以進入局部最低點,也就是找出錯誤最小的參數。
  • max_iter:這是要執行的最大迭代次數,預設是 1000。
  • random_state:隨機種子值。


透過SGDRegressor( ) 我們可以讓機器學習運用梯度下降的方式來達到目標或預測結果,也能透過不同的參數設定來調整修正,降低誤差值。更多有關機器學習的方法與運用,歡迎參閱《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》獲取最完整的內容!

 

上文圖片及書摘由深智數位提供,內容取材自《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》。

天瓏:https://reurl.cc/aVj4oX

深智數位出版:《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》

深智數位出版:《機器學習最強入門 - 基礎數學/機率/統計邁向AI真實數據專題實作 - 王者歸來》


留言
avatar-img
留言分享你的想法!
avatar-img
深智數位的沙龍
9會員
25內容數
深智數位的沙龍的其他內容
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
2023/03/10
ChatGPT 橫空出世,開啟新的工作模式,電腦領域人氣作家洪錦魁最新力作《ChatGPT領軍 DALL-E 2 + Midjourney + D-ID + Synthesia:邁向AI文字、圖像、影片之路》,為國內第一本講解AI文字、圖像、影片的專書,展示多種AI生成技術的應用指南。
Thumbnail
2023/03/10
ChatGPT 橫空出世,開啟新的工作模式,電腦領域人氣作家洪錦魁最新力作《ChatGPT領軍 DALL-E 2 + Midjourney + D-ID + Synthesia:邁向AI文字、圖像、影片之路》,為國內第一本講解AI文字、圖像、影片的專書,展示多種AI生成技術的應用指南。
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
抄底追高策略優化的觀點。我們還能怎麼進化呢! 你知道抄底追高策略的問題在哪裡嗎? 快來跟選擇權策略大師 Steven 一起探究這個有趣的問題,用選擇權優化你的超底追高策略喔!
Thumbnail
抄底追高策略優化的觀點。我們還能怎麼進化呢! 你知道抄底追高策略的問題在哪裡嗎? 快來跟選擇權策略大師 Steven 一起探究這個有趣的問題,用選擇權優化你的超底追高策略喔!
Thumbnail
首先回憶魔鬼藏在細節裹,提到雖然以淨利為主要目標進行最佳化,可得到很傑出的年化報酬,但問題也在此,過渡追求淨利,容易忽略了風險,造成最大的獲利回撤很大、賺賠比過低、全時段持倉⋯⋯等問題,本篇就為上週的策略加入停損機制,以風險角度為策略進行改善。 在改善最大獲利回撤問題,有許多進階出場方式可使用,如
Thumbnail
首先回憶魔鬼藏在細節裹,提到雖然以淨利為主要目標進行最佳化,可得到很傑出的年化報酬,但問題也在此,過渡追求淨利,容易忽略了風險,造成最大的獲利回撤很大、賺賠比過低、全時段持倉⋯⋯等問題,本篇就為上週的策略加入停損機制,以風險角度為策略進行改善。 在改善最大獲利回撤問題,有許多進階出場方式可使用,如
Thumbnail
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
「學數學到底有什麼用?作為一個普通人,也要學數學嗎?」 作為一個高中之後數學科目就如同春天的雪山一般,分數雪崩式下滑,甚至還質問過數學老師「學這麼難的數學有什麼用?會加減乘除會算錢就夠了不是嗎?」的人,現在看來,實在錯得離譜。
Thumbnail
「學數學到底有什麼用?作為一個普通人,也要學數學嗎?」 作為一個高中之後數學科目就如同春天的雪山一般,分數雪崩式下滑,甚至還質問過數學老師「學這麼難的數學有什麼用?會加減乘除會算錢就夠了不是嗎?」的人,現在看來,實在錯得離譜。
Thumbnail
這篇文章想與你分享,我閱讀動態定價(Dynamic Pricing)入門文章後,產生的理解與思考。
Thumbnail
這篇文章想與你分享,我閱讀動態定價(Dynamic Pricing)入門文章後,產生的理解與思考。
Thumbnail
多數的人都知道停損很重要,但感覺好像總是在錯誤的停損,有時候事後一看,好像不停損,結果還比較好,但偏偏在不停損那次,傷的最重。 如果對帳單上的虧損,並非所謂的懲罰,當我們做出錯誤的動作後,才要面對真正的懲罰,我們是否還會一錯再錯、大錯特錯呢?
Thumbnail
多數的人都知道停損很重要,但感覺好像總是在錯誤的停損,有時候事後一看,好像不停損,結果還比較好,但偏偏在不停損那次,傷的最重。 如果對帳單上的虧損,並非所謂的懲罰,當我們做出錯誤的動作後,才要面對真正的懲罰,我們是否還會一錯再錯、大錯特錯呢?
Thumbnail
思索著將心理觀念以數學模型對照,在先前本專題的文章《先入為主,模型定義帶來的語境遊戲》中,便以兩種定義風險的方式,導出兩種看似矛盾的結論。而在想著市場中成交的觀念,很自然的對於此一成交價,有人買、有人賣。於是本貓貓認為對於既有的市場資訊,存在著分歧的買賣行為是市場存在流動性的必要條件。
Thumbnail
思索著將心理觀念以數學模型對照,在先前本專題的文章《先入為主,模型定義帶來的語境遊戲》中,便以兩種定義風險的方式,導出兩種看似矛盾的結論。而在想著市場中成交的觀念,很自然的對於此一成交價,有人買、有人賣。於是本貓貓認為對於既有的市場資訊,存在著分歧的買賣行為是市場存在流動性的必要條件。
Thumbnail
一個優秀的投資人他的交易明細與帳戶資訊藏著什麼樣的秘密?要怎麼樣量化這樣的「優異」?如果要像這樣的投資人一樣的話,我需不需要用同樣的標準來看待自己?以上是本篇試著探討的問題。
Thumbnail
一個優秀的投資人他的交易明細與帳戶資訊藏著什麼樣的秘密?要怎麼樣量化這樣的「優異」?如果要像這樣的投資人一樣的話,我需不需要用同樣的標準來看待自己?以上是本篇試著探討的問題。
Thumbnail
【失望之谷與興奮之巔】 失望之谷 我最近看了很有感觸的一本書。但這本書其實不是在講投資理財。這本書叫《原子習慣》 但說不是,也是有相關。我覺得是更深層的人性設定。這本書主要在宣導如何透過導正「習慣」這件事,進而幫助你改變人生。 書中給這過程一個很棒的名稱,叫做:《失望之谷》 興奮之巔 系統的偏離
Thumbnail
【失望之谷與興奮之巔】 失望之谷 我最近看了很有感觸的一本書。但這本書其實不是在講投資理財。這本書叫《原子習慣》 但說不是,也是有相關。我覺得是更深層的人性設定。這本書主要在宣導如何透過導正「習慣」這件事,進而幫助你改變人生。 書中給這過程一個很棒的名稱,叫做:《失望之谷》 興奮之巔 系統的偏離
Thumbnail
  在前個兩章中,我們先後討論了負責發出訊號「系統」,以及必須和系統相互搭配的「策略」這兩個部分。並且在上一章的結尾我們提到了,就算理論上聽起來可行,事實上卻不一定是這麼一回事。為什麼會這樣?可能是由於我們的思考不夠縝密,也可能是現實條件不允許。總之,要確認某種交易模式是否可行,還必須經由實際...
Thumbnail
  在前個兩章中,我們先後討論了負責發出訊號「系統」,以及必須和系統相互搭配的「策略」這兩個部分。並且在上一章的結尾我們提到了,就算理論上聽起來可行,事實上卻不一定是這麼一回事。為什麼會這樣?可能是由於我們的思考不夠縝密,也可能是現實條件不允許。總之,要確認某種交易模式是否可行,還必須經由實際...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News