線性回歸與分類,解決與區別解析

2021-12-30 08:41:50 字數 3482 閱讀 7324

機器學習可以解決很多問題,其中最為重要的兩個是 回歸與分類。 這兩個問題怎麼解決, 它們之間又有什麼區別呢? 以下舉幾個簡單的例子,以給大家乙個概念

1. 線性回歸

回歸分析常用於分析兩個變數x和y 之間的關係。 比如 x=房子大小 和 y=房價 之間的關係, x=(公園**量,公園門票票價) 與 y=(公園收入) 之間的關係等等。

那麼你的資料點在圖上可以這麼看

現在你想找到 房子大小和房價的關係, 也就是乙個函式f(x) = y. 能夠很好的表示 這兩個變數之間的關係。

於是你需要大概評估一下這個 房子大小和房價大概是乙個什麼關係.

是線性的關係嗎 還是非線性的關係

當然在這個問題裡面, 線性的關係更符合這兩者的關係。於是我們 選擇乙個合適的線性模型, 最常用的是 f(x) = ax+b.

然後用這個線性的模型 去匹配這些資料點。

1.1 怎麼匹配

有了資料點 和 你臆想出來的線性模型,怎麼進行匹配,也就是怎麼用這根線最好地描述些資料點的關係

需要最好地描述點, 我們又需要乙個關於「好」的定義。你也可以想出很多關於「好」的定義。下面有兩個,

這兩個定義都是 將模型與資料點之間的距離差 之和做為衡量匹配好壞的標準。 誤差越小, 匹配程度越大。

但是 總的來說, 我們想要找到的模型, 最後是想要使 f(x) 最大程度地 與y相似, 所以我們想要盡量地減少 f(x)與y之間的差值。 所以在這裡 用第二個圖的「好的定義」 來評估這根線的匹配程度是很合理的。於是我們有了誤差公式!!!!!

這個公式,說的是,可以通過調整不同的a 和 b的值,就能使 誤差不斷變化,而當你找到這個公式的最小值時,你就能得到最好的a,b. 而這對(a,b)就是能最好描述你資料關係的模型引數。

1.1.1 沿導數下降法(gradient descent)

怎麼找 cost(a,b)的最小cost(a,b) 的影象其實像乙個碗 一樣,有乙個最低點。 找這個最低點的辦法就是,先隨便找乙個點(e.g. a=3, b = 2), 然後 沿著這個碗下降的方向找,最後就能找到碗的最低點。

cost(a,b) 的形狀

怎麼找(某一點)碗下降的方向 答案是,找那一點導數的反方向。拿引數a 舉個例子, a與cost 關係如下圖,

只要將任意乙個a, 沿著使cost導數的反方向慢慢移動,那麼 最終有一天a值就會到達使 cost 最小的那一點. 於是你可以不斷地移動a,b, 向著最低點前進。

當然在進行移動的時候也需要考慮,每次移動的速度,也就是\alpha的值,這個值也叫做(學習率). 學習率的增大可以加速引數逼近最優的情況, 但是如果在快要到達函式的底端的時候,需要減小學習率,以免出現cost 不斷增大或者不停擺動的情況(如下圖, j(a,b)就是cost(a,b) )。 所以說,當出現以上兩種情況時候,我們應該果斷選取乙個較小的學習率, 以保證cost能減少到乙個穩定的值(我們稱為 收斂converge).

1.1.2 直接求解最小點方法

這時候,有的人會問,為什麼要讓a不停地往下跑呢? 而且還需要設定學習率, 多麻煩, 直接讓找 導數為0點(最小極值), 不就可以了嗎 嗯。。。也可以...但是各有優缺,

總結一下:回歸問題的解決方法是:

1. 假定乙個模型 2. 定義什麼叫做最好的匹配(構造誤差函式) 3. 用這個模型去匹配已有的資料點(訓練集)

需要進一步討論的問題:

如果引數(a,b)更多了該怎麼辦 如果最合適的匹配模型並不是線性的怎麼辦 --- 選用乙個 非線性模型 比如 y = ax^2 + bx + c. 如果誤差(cost)與a,b(模型引數)的關係不是像碗一樣的, 而是凹凸不平的該怎麼辦 ------ 這時候你就得注意你得到的cost的最低點(區域性的最低)可能因初始點的不同而不同。 而這些最低點你需要進行比較,以確定是不是全域性的最低

2.分類(logistic regression)

分類問題也是一類很常見的問題。 比如說,怎麼判定乙個人是高富帥還是吊絲 假如我是**電視台的記者,採訪了n個人, 拿到了第一手資料。資料如下

我們想要根據乙個人的口袋錢數量,來**乙個人是(富帥) 還是 (吊絲). 我們能不能用回歸的方法做呢顯然是可以的, 我們只要找到乙個模型,然後再進行匹配就可以了。

但是因為分類問題的y值常常是一些離散的數字,(比如, 富帥為1, 吊絲為0), 所以我們已經不能用乙個簡單的線性函式來擬合這些資料了。我們需要乙個更逼真的模型。

於是我們引入了乙個更適合處理分類問題的函式--- 乙個非線性函式, 階躍函式。

這個函式的形狀更像我們分類問題的資料分布,所以,用他來擬合分類問題的資料將更適合!

所以我們有了乙個新的模型,

通過調整a,b 的值,可以讓模型不斷改變以匹配資料點。 為了匹配資料點,我們又需要乙個衡量匹配程度的函式,就像 回歸問題一樣的cost 函式. 於是同理我們可以得到cost

於是我們急切地想要把它用我們之前的gradient descent 的方法求解出使cost 最小的兩個a,b值。 但是很遺憾的是, 這個cost函式關於a,b,是非凸(non-convex)的。 就像下面那張圖那樣坑坑窪窪。。。

所以你沒有辦法通過以上兩種方法(1.1.1和1.1.2)求出這個cost函式的全域性最小值。

所以你需要構造乙個更好的cost函式, 在可以衡量擬合程度的同時 又是乙個關於a,b 的凸函式(像回歸問題的cost一樣,和乙個碗一樣,只有乙個極小值).

這怎麼構造啊....

幸好我們還有各種偉大的數學家,他們夜以繼日,終於趕製出了乙個形狀和碗一樣(convex)的cost函式. (maximumlikelihoodsestimation 更具體的介紹請看

現在我們又可以用我們熟悉的 導數方向下降法(gradient descent) 移動a, b的值,使cost 降低到最小。

最後,分類的問題就這樣被解決了。

當然,更複雜的問題可能有:

現在是分成兩類,如果資料需要分成三類或者更多該怎麼辦 ---- 假如有a,b,c三類, 把其中a類做為1,bc做為0,然後做logistic regression, 得到模型a, 同理將b類做為1,ac作為0,得到模型b, 再同理得到模型c. 最後測試的時候, 對任意乙個資料點x, 我們能夠得到x分別屬於a,b,c三類的概率值

最後比較大小,哪個大,這個x就屬於哪一類

3.總結(兩個問題的區別)

這篇文章大概的意圖是能想讓大家了解, 機器學習中最基本的兩類問題,線性回歸和分類。 能讓大家有個清晰的思想,對於這兩類問題都有以下幾個步驟,

如何選取乙個合理的模型(線性的,or 非線性的(e.g. 階躍函式, 高斯函式)). 製造乙個"美好"的誤差函式(可以評估擬合程度,而且還是convex函式) 採取一切可能的技術(e.g. 導數下降法,解極值方程法) 求出最好的模型引數

談談回歸和分類的區別:

總的來說兩個問題本質上都是一致的,就是模型的擬合(匹配)。 但是分類問題的y值(也稱為label), 更離散化一些. 而且, 同乙個y值可能對應著一大批的x, 這些x是具有一定範圍的。

所以分類問題更多的是 (一定區域的一些x) 對應 著 (乙個y). 而回歸問題的模型更傾向於 (很小區域內的x,或者一般是乙個x) 對應著 (乙個y).

在把乙個問題建模的時候一定要考慮好需求,讓你的模型更好的與現實問題相對應。

分類與回歸的區別

在資料探勘 人工智慧等領域中存在兩個 分類和回歸。單說分類很容易理解,但想到回歸就容易分不清晰,那麼這兩者到底有什麼區別和聯絡呢?下面簡單介紹下我的理解。其實 回歸問題和分類問題的本質一樣,都是針對乙個輸入做出乙個輸出 其區別在於 輸出變數的型別。分類問題是指,給定乙個新的模式,根據訓練集推斷它所對...

分類與回歸的區別

chevalier meirtz 的總結如下 如何區分類與回歸,看的不是輸入,而是輸出的連續與否。例如 雲青青兮欲雨。這個 雲青青 就是輸入,青青 就是雲的特徵,而雨就是我們的 輸出。可以看到,在這個問題中,我們想得到的輸出是天氣,他是晴朗 陰天等天氣狀況的子集,是不連續的,所以這就是乙個典型的分類...

線性回歸與邏輯回歸的區別

以經典的 房價為例,假設樣本為 x,y ix,y i x,yi 其中x是多維變數 x x1,x 2.xn x x 1,x 2.x n x x1 x2 x n 屬性包括房子大小,使用年限等,y是對應該樣本的房價。那麼我們就可以得到乙個 房價的假設模型,h x txh theta x theta t x...