在讀研期間,一直在幫導師做技術開發,甚至偶爾做一做美工(幫導師和實驗室博士生畫個圖啥的),算法還是較少接觸的,其實,我發現,算法還是蠻好玩的,昨晚看了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(θ)。