積跬步以至千里,積怠惰以至深淵git
注:本篇文章在整理時主要參考了 周志華 的《機器學習》。機器學習
線性模型(linear model)試圖學得一個經過屬性的線性組合來進行預測的函數。其形式簡單、易於建模,許多功能更爲強大的非線性模型可在線性模型的基礎上經過引入層級結構或高維映射而得。ide
給定由d個屬性描述的示例,即:函數
通常用向量形式寫成:學習
其中xi是樣本的第i個屬性的屬性值,wi是線性模型對第i個屬性的權重,b是模型的線性偏移量。此外,因爲ω直觀表達了各屬性在預測中的重要性,所以線性模型有很好的可解釋性。idea
「線性迴歸」 (linear regression) 試圖學得一個線性模型以儘量準確地預測實值輸出標記。spa
由於是函數訓練,因此咱們在訓練以前須要將離散值屬性轉換爲連續值屬性。而且該屬性的屬性值之間是否存在「序」關係,會有不一樣的轉換方式。若是是有序屬性,咱們會根據屬性序數高低給予一個數字序列,好比身高,具備「高、中等、矮」三個有序屬性值,那麼咱們就能將其轉換爲{1,0.5,0};若是屬性值之間沒有序列,咱們要將這k個屬性值轉爲k維向量,好比天氣,「下雨、晴天、多雲」三個屬性值之間並無序列關係,那麼就應該將其轉換爲3維向量,(1,0,0),(0,1,0),(0,0,1)。it
在對數據進行轉換以後,爲了能生成線性迴歸模型,咱們應該如何確認w和b呢?經過分析線性迴歸的函數目的,咱們發現線性迴歸是爲了能使得生成的迴歸函數能更貼近樣本標籤,也就是說當訓練出來的模型f(x)和真實值y之間的偏差最小時,對應於訓練出來的模型f(x)和真實值y之間歐幾里得距離或稱「歐氏距離」(Euclidean distance)最小時,該線性迴歸模型就是咱們要的,此時咱們稱之爲函數收斂。該模型求解方法稱爲「最小二乘法」(least square method)。在線性迴歸中,最小二乘法就是試圖找到一條直線,使全部樣本到直線的歐氏距離之和最小 (sum of square) 。io
應該如何使得距離最小呢?咱們經過對距離之和求導,當導數爲0時,說明原函數達到了一個極值(由於是凹函數,因此該極值是最小值)。ast
簡單線性模型-斜率
簡單線性模型-截距
線性迴歸函數能夠簡寫爲:y = wx + b,這是用模型的預測值去逼近真實標記y。那麼咱們能不能令預測值去逼近y的衍生物呢?基於這樣的考慮,咱們就獲得了線性迴歸的各類變型函數。
好比,假設咱們認爲示例所對應的輸出標記是在指數尺度上變化的,那麼就可將輸出標記的對數做爲線性模型逼近的目標,便可獲得「對數線性迴歸」(log-linear regression):
ln(y) = wx + b
更通常地,考慮單調可微函數g,令:
g(y) = wx + b
這樣獲得的模型稱爲「廣義線性模型」(generalized linear model),其中函數g稱爲「聯繫函數」(link function)。不一樣的聯繫函數會構成不一樣的線性迴歸模型。廣義線性模型的參數估計常經過加權最小二乘法或極大似然估計法進行。
一樣,當咱們根據腫瘤的大小判斷一個腫瘤是否是惡性的時候,輸出結果只有是或者否,分別用1和0表示。給定的樣本點,而且咱們使用傳統的線性迴歸問題解決擬合的圖像以下:
腫瘤線性擬合曲線
圖像中咱們能夠根據擬合曲線,當輸出值大於0.5(根據圖像判斷的值)的時候,肯定輸出的爲惡性(即爲1);當輸出值小於0.5(根據圖像上的值)的時候,肯定輸出的爲良性(即爲0)。可是,當咱們有新的樣本點加入的時候,以下圖:
腫瘤線性擬合曲線
咱們會發現,對於新的擬合曲線使用上面的方法和標準(0.5)並不能很好的做出預測。所以咱們判斷這種形式的曲線不合理。
針對以上問題,咱們提出當 g(y) = ln( y / (1-y) ) 時,咱們獲得了「對數概率迴歸」(logit regression),也稱「邏輯迴歸函數」。經過聯繫函數,咱們能夠看出該模型其實是在用線性迴歸模型的預測結果去逼近真實標記的對數概率。
一樣咱們須要肯定w和b,咱們將y視爲後驗機率估計p(y=1|x),則
顯然
因而,咱們可經過「極大似然法」 (maximum likelihood method) 來估計w和b。即令每一個樣本屬於其真實標記的機率越大越好。
簡單線性迴歸模型
被用來描述因變量 (y) 和自變量 (x) 以及誤差 (error) 之間關係的方程叫作迴歸模型。
簡單線性迴歸模型
錯誤項ε知足指望值爲0的正態分佈,則E(y)=β0+β1x。其中,E(y)是一個給定x值下y的指望值(均值)。假定估計線性迴歸方程̂y=b0+b1x。程̂y是咱們訓練得出線性模型在自變量x下的估計值。
關於誤差ε的假定:
一、是一個隨機的變量,均值爲0;
二、ε的方差 (variance) 對於全部的自變量x是同樣的;
三、ε的值是獨立的;
四、ε知足正態分佈。
Sigmoid函數
因爲函數定義域爲0~∞,值域爲0~1,並且咱們想要一個非線形的轉化關係。所以咱們引入Sigmoid函數令曲線平滑化,處理二值數據。
梯度降低(Gradient Descent)
線性模型是一個形式簡單、易於建模的機器學習模型,由於w直觀表達了各屬性在預測中的重要性,所以線性模型有很好的可解釋性
線性迴歸背後的邏輯是用模型的預測值去逼近真實標記y,並經過計算訓練樣本在向量空間上距離模型線的歐式距離之和的最小值來肯定參數w和b
線性迴歸可寫成廣義線性模型形式:g(y) = wx + b,經過選擇不一樣的聯繫函數g(.)會構成不一樣的線性迴歸模型
在遇到多分類學習任務時,基本的解決思路是「拆解法」,即將多分類任務拆爲若干個二分類任務求解
當不一樣類別的樣例數不一樣時,會形成類別不平衡問題,解決該問題的基本策略是對數據進行「再縮放」