在讀研期間,一直在幫導師做技術開發,甚至偶爾做一做美工(幫導師和實驗室博士生畫個圖啥的),演算法還是較少接觸的,其實,我發現,演算法還是蠻好玩的,昨晚看了B站一個美女演算法工程師講了線性迴歸和邏輯迴歸兩種演算法,做下總結吧,不然看了之後過兩天就拋在腦後,忘光光了。。視訊點選這裡。
概念1:迴歸與分類問題。
1)迴歸:迴歸問題模型傾向於一個輸入點X對應著一個輸出點Y。我們們可以抽象的想象成小學時候學的(Y=aX+b)方程,即X與Y一一對應。
2)分類:分類問題也是類似於迴歸的一種計算模型,但是,差異就在分類問題的Y值(也稱label),更加離散化一些。而且,同一個Y值可能對應著一大批的X值,當然,對應的這些X肯定是有個範圍的,所以,分類問題可理解成一定區域的X值(多X)對應著一個Y(單Y)。
概念2:線性迴歸詳解與例項。
1)線性迴歸:用一個直線較為精準的描述資料之間的關係,每當出現新的資料時(X),可以預測出一個對應的輸出值(Y)。
2)例項:房屋面積與房價的對應關係。
訓練資料如下:
根據上面的這個訓練集,擬合一條直線,表示面積與房價的關係,但是呢,不同的人擬合的直線是不同的,所以,我們必須找到一條最合理的直線。
如何找出這條直線,就是要求出各個點到直線的距離,讓這個距離最小,那這條直線就是我們要求的。
3)總結(3部)
1.構造預測函式(也就是構造那個擬合的直線,這裡是多維線性迴歸)
2.構造損失函式
3.最小化損失函式
概念3:邏輯迴歸詳解。
細說:邏輯迴歸是線上性迴歸的基礎上巢狀了一個sigmoid函式,目的是將線性迴歸函式的結果對映到sigmoid函式中(如下圖)。
我們知道,線性迴歸的模型是求出輸出特徵向量Y和輸入樣本矩陣X之間的線性關係係數θ,滿足Y=Xθ。此時我們的Y是連續的,所以是迴歸模型。
如果我們想要Y是離散的話,怎麼辦呢?一個可以想到的辦法是,我們對於這個Y再做一次函式轉換,變為g(Y) -- 即為如下的sigmoid函式。
如果我們令g(Y)的值在某個實數區間的時候是類別A,在另一個實數區間的時候是類別B,以此類推,就得到了一個分類模型。
如果結果的類別只有兩種,那麼就是一個二元分類模型了。邏輯迴歸的出發點就是從這來的。
步驟:(構造過程可借鑑這裡)
1)構造預測函式
2)構造損失函式
3)最小化損失函式
概念4:兩種演算法的步驟總結
1)找一個合適的預測函式(hypothesis,h函式),該函式就是我們需要找的分類函式,他用來預測輸入資料的判斷結果,需要對資料分佈有一定的瞭解,比如是線性函式還是非線性函式。
2)構造一個Cost函式(損失函式),該函式表示預測的輸出(h函式)與訓練資料類別(Y)之間的偏差,即為(h-Y),綜合考慮所有的訓練資料的“損失”,記為J(θ)函式,表示所有訓練資料與實際資料之間的偏差。
3)J(θ)函式的值越小表示預測函式越準確,所以這一步是找出最小的J(θ)。