白話機器學習演算法 Part 2

2021-09-19 12:44:21 字數 2850 閱讀 9536

本文是《白話機器學習演算法》系列文章第二部分,第一部分(白話機器學習演算法 part 1)中我們介紹了:

梯度下降法/最佳擬合線

線性回歸(包括正則化)

領回歸&套索回歸

今天,我們繼續了解其他的機器學習演算法。

01.邏輯回歸logistic regression

線性回歸=線性回歸=一些變數對另乙個變數的影響,假設1)結果變數是連續的,2)變數與結果變數之間的關係是線性的。

但是如果你的結果變數是「絕對的」呢?這就是邏輯回歸的作用!

但是,如果我們考慮線性回歸模型的工作原理,我們如何能夠找出最適合某個類別的一條線呢?那是不可能的!這就是為什麼邏輯回歸模型輸出資料點在乙個或另乙個類別中的概率,而不是乙個常規數值。這就是為什麼邏輯回歸模型主要用於分類的原因。

但是回到線性回歸和邏輯回歸都是「線性的」。「如果我們找不到一條最適合邏輯回歸的直線,那麼邏輯回歸的線性部分又在**呢?」在邏輯回歸的 世界裡,結果變數與自變數的對數機率比呈線性關係。

但是對數機率究竟是多少呢?好了,我們開始…

02.機率odds

邏輯回歸的核心=機率。

直觀地說,機率是我們能夠理解的——它們是成功的概率到失敗的機率。換句話說,它們是發生某件事的機率與不發生某件事的機率比。

舉乙個具體例子,我們可以想到乙個班級的學生。假設女性通過測試的機率是5:1,而男性通過測試的機率是3:10。這意味著,在6名女性中,有5名可能通過測試,而在13名男性中,有3名可能通過測試。這裡總共有19名學生(6名女生+ 13名男生)。

那麼……機率和概率是不一樣嗎?

遺憾的是,不!機率是指某件事情發生的次數與所有事情發生的總次數之比(如10次正面出局30次投幣),概率是指某件事情發生的次數與未發生的次數之比(如10次正面出局20次反面出局)。

這意味著,雖然概率總是限制在0-1的範圍內,但機率可以不斷地從0增加到正無窮大!這給我們的邏輯回歸模型帶來了乙個問題,因為我們知道我們的預期輸出是乙個概率(即0-1之間的乙個數字)。

那麼,我們如何從機率到概率呢?

現在,你不希望你的模型**你的球隊會在未來的比賽中獲勝,僅僅是因為他們過去獲勝的機率比他們過去失敗的機率大得多,對吧?還有很多你想讓你的模型考慮的因素(可能是天氣,可能是首發球員等等)!所以,為了得到均勻分布或對稱的機率大小,我們計算了對數機率。

03.對數機率log-odds

對數機率是指取機率的自然對數的一種簡略方法。當你取某個數的自然對數時,它更趨於正態分佈。當我們讓一些東西做為正態分佈時,我們本質上是把它放在乙個非常容易使用的情況之下。

當我們計算機率時,我們將機率的範圍從0-正無窮變換為負無窮-正無窮。你可以在上面的鐘形曲線圖上看到。

即使我們仍然需要輸出的在0-1之間,我們通過取對數機率實現的對稱性使我們比以前更接近我們想要的輸出結果!

04.邏輯函式logit function

邏輯函式只是我們計算對數機率的數學方法!

邏輯函式通過取自然對數,將機率選在負無窮到正無窮的範圍內。

05.sigmoid 函式sigmoid function

ok,但是我們還沒有到我們的模型給出概率的之前,現在我們只知道從負無窮大到正無窮大的範圍內的數字。輸入:sigmoid 函式。

以s形命名的sigmoid函式,恰好是log-odds的倒數。通過取log-odds的倒數,我們將我們的值從負無窮-正無窮對映到0-1。這反過來,讓我們得到概率,這正是我們想要的!

相對於logit函式的影象y值從負無窮到正無窮,sigmoid函式的影象y值從0到1。

有了這個,我們現在可以代入任何x值並將其追溯到**的y值。這個y值就是x值在某個類中的概率。

mle通過最能描述我們資料的概率分布引數,得到了最準確的**。

為什麼我們會關心資料的分布?因為它很酷!…但實際上,它只是使我們的資料更易於使用,並使我們的模型可歸納為許多不同的資料。

一般情況下,為了得到資料的mle,我們取s曲線上的資料點並將它們的對數機率相加。基本上,我們想要找到最大化資料對數可能性的s曲線。我們只是不斷地計算每個log-odds行(有點像我們對線性回歸中每個最佳擬合行的rss所做的)的log- possibility,直到我們得到最大的數字。

(順便說一句——我們回到自然對數的世界,因為有時使用對數是最簡單的數字形式。這是因為對數是「單調遞增」的函式,這基本上意味著它總是遞增或遞減。我們在mle過程中得出的估計是那些最大化所謂的「似然函式」的估計(我們在這裡不深入討論)

現在您已經了解了所有關於梯度下降、線性回歸和邏輯回歸的知識。

接下來,敬請期待第3部分。

白話機器學習演算法(二)KNN

knn是一種分類演算法,在現實生活中,我們看乙個人怎麼樣,可以看他的朋友怎麼樣,至少說這樣推斷的可信度比較高 knn就是這種思想。1 初始化輸入為有標籤樣本 2 當我們得到乙個新樣本的時候,我們就看這個新樣本的半徑為r的周圍,各種有標籤樣本的比例,哪種標籤佔的比例最高,我們就給這個新樣本打上這個標籤...

白話機器學習演算法(四)K means

k means演算法是一種無監督聚類演算法,還是打個比方吧 1 現在房間裡有一群人,各自隨機站在房間裡,這時候有個上帝,隨機挑選了房間裡k個人當k個小組的領導 2 選完領導,每個人開始站隊了,找離自己最近的那個領導,表示自己是那一隊的 3 站完隊,大家開始不滿了,要求重新選領導,選誰?選這一小組的中...

白話機器學習演算法(七)LDA

lda也是一種線性變換,其整個證明過程與pca非常相似,找到目標函式,利用特徵值,但是其跟pca的目標是不同的,pca目的是在新座標系中方差最大,lda則是在新座標系中,類內方差盡量小,類間距離盡量大,並以這兩個指標定義乙個目標函式,通過最大化這個目標函式然後得到相應的對映方法,即新座標系 這兩者本...