入門 | 區分識別機器學習中的分類與迴歸

 2017-12-16 11:06:00.0

原標題:入門 | 區分識別機器學習中的分類與迴歸

選自MachineLearningMastery

作者:Jason Brownlee

分類問題和迴歸問題之間有着很重要的區別。從根本上來說,分類是預測一個標籤,迴歸是預測一個數量。我經常看到這樣的問題:如何計算迴歸問題的準確率?

這種問題意味着提問的人並沒有真正理解分類和迴歸之間的差別,以及準確率到底是在評估什麼?

你會在這篇文章中發現分類和迴歸之間的區別。

讀完本文,你會了解以下內容:

  • 預測建模是關於學習從輸入到輸出的函數映射的問題,這個映射稱作函數逼近。

  • 分類是給一個樣本預測離散型類別標籤的問題。

  • 迴歸是給一個樣本預測連續輸出量的問題。

讓我們開始吧。

教程概覽

本教程分爲以下 5 個部分:

1. 函數逼近

2. 分類

3. 迴歸

4. 分類與迴歸的對比

5. 分類問題和迴歸問題之間的轉換

函數逼近

預測建模就是使用歷史數據建立一個模型,去給沒有答案的新數據做預測的問題。

關於預測建模,可以在下面這篇文章中瞭解更多信息。

  • Gentle Introduction to Predictive Modeling:https://machinelearningmastery.com/gentle-introduction-to-predictive-modeling/

預測建模可以被描述成一個近似求取從輸入變量(X)到輸出變量(y)的映射函數的數學問題。這被稱爲函數逼近問題。

建模算法的任務就是在給定的可用時間和資源的限制下,去尋找最佳映射函數。更多關於機器學習中應用逼近函數的內容,請參閱下面這篇文章:

  • 機器學習是如何運行的(how machine learning qork,https://machinelearningmastery.com/how-machine-learning-algorithms-work/)

一般而言,我們可以將函數逼近任務劃分爲分類任務和迴歸任務。

分類預測建模

分類預測建模是逼近一個從輸入變量(X)到離散的輸出變量(y)之間的映射函數(f)。

輸出變量經常被稱作標籤或者類別。映射函數會對一個給定的觀察樣本預測一個類別標籤。

例如,一個文本郵件可以被歸爲兩類:「垃圾郵件」,和「非垃圾郵件」

  • 分類問題需要把樣本分爲兩類或者多類。

  • 分類的輸入可以是實數也可以有離散變量。

  • 只有兩個類別的分類問題經常被稱作兩類問題或者二元分類問題。

  • 具有多於兩類的問題經常被稱作多分類問題

  • 樣本屬於多個類別的問題被稱作多標籤分類問題。

分類模型經常爲輸入樣本預測得到與每一類別對應的像概率一樣的連續值。這些概率可以被解釋爲樣本屬於每個類別的似然度或者置信度。預測到的概率可以通過選擇概率最高的來別轉換成類別標籤。

例如,某封郵件可能以 0.1 的概率被分爲「垃圾郵件」,以 0.9 的概率被分爲「非垃圾郵件」。因爲非垃圾郵件的標籤的概率最大,所以我們可以將概率轉換成「非垃圾郵件」的標籤。

有很多用來衡量分類預測模型的性能的指標,但是分類準確率可能是最常用的一個。

分類準確率就是被正確分類的樣本在所有預測結果中所佔的百分比。

例如,如果一個分類預測模型做了 5 個預測,其中有 3 個是正確的,2 個這是錯誤的,那麼這個模型的準確率就是 60%:

  1. accuracy =correct predictions /total predictions *100

  2. accuracy =3/5*100

  3. accuracy =60%

能夠學習分類模型的算法就叫做分類算法。

迴歸預測模型

迴歸預測建模是逼近一個從輸入變量(X)到連續的輸出變量(y)的函數映射。

連續輸出變量是一個實數,例如一個整數或者浮點數。這些變量通常是數量或者尺寸大小等等。

例如,一座房子可能被預測到以 xx 美元出售,也許會在 $100,000 t 到$200,000 的範圍內。

  • 迴歸問題需要預測一個數量

  • 迴歸的輸入變量可以是連續的也可以是離散的

  • 有多個輸入變量的通常被稱作多變量回歸

  • 輸入變量是按照時間順序的迴歸稱爲時間序列預測問題

因爲迴歸預測問題預測的是一個數量,所以模型的性能可以用預測結果中的錯誤來評價。

有很多評價迴歸預測模型的方式,但是最常用的一個可能是計算誤差值的均方根,即 RMSE。

例如,如果迴歸預測模型做出了兩個預測結果,一個是 1.5,對應的期望結果是 1.0;另一個是 3.3 對應的期望結果是 3.0. 那麼,這兩個迴歸預測的 RMSE 如下:

  1. RMSE =sqrt(average(error^2))

  2. RMSE =sqrt(((1.0-1.5)^2+(3.0-3.3)^2)/2)

  3. RMSE =sqrt((0.25+0.09)/2)

  4. RMSE =sqrt(0.17)

  5. RMSE =0.412

使用 RMSE 的好處就是錯誤評分的單位與預測結果是一樣的。

一個能夠學習迴歸預測模型的算法稱作迴歸算法。

有些算法的名字也有「regression,迴歸」一詞,例如線性迴歸和 logistics 迴歸,這種情況有時候會讓人迷惑因爲線性迴歸確實是一個迴歸問題,但是 logistics 迴歸卻是一個分類問題。

分類 vs 迴歸

分類預測建模問題與迴歸預測建模問題是不一樣的。

  • 分類是預測一個離散標籤的任務

  • 迴歸是預測一個連續數量的任務

分類和迴歸也有一些相同的地方:

  • 分類算法可能預測到一個連續的值,但是這些連續值對應的是一個類別的概率的形式。

  • 迴歸算法可以預測離散值,但是以整型量的形式預測離散值的。

有些算法既可以用來分類,也可以稍作修改就用來做迴歸問題,例如決策樹和人工神經網絡。但是一些算法就不行了——或者說是不太容易用於這兩種類型的問題,例如線性迴歸是用來做迴歸預測建模的,logistics 迴歸是用來做分類預測建模的。

重要的是,我們評價分類模型和預測模型的方式是不一樣的,例如:

  • 分類預測可以使用準確率來評價,而回歸問題則不能。

  • 迴歸預測可以使用均方根誤差來評價,但是分類問題則不能。

分類問題和迴歸問題之間的轉換

在一些情況中是可以將回歸問題轉換成分類問題的。例如,被預測的數量是可以被轉換成離散數值的範圍的。

例如,在$0 到$100 之間的金額可以被分爲兩個區間:

  • class 0:$0 到$49

  • class 1: $50 到$100

這通常被稱作離散化,結果中的輸出變量是一個分類,分類的標籤是有順序的(稱爲敘序數)。

在一些情況中,分類是可以轉換成迴歸問題的。例如,一個標籤可以被轉換成一個連續的範圍。

一些算法早已通過爲每一個類別預測一個概率,這個概率反過來又可以被擴展到一個特定的數值範圍:

  1. quantity =min +probability *range

與此對應,一個類別值也可以被序數化,並且映射到一個連續的範圍中:

  • $0 到$49 是類別 1

  • $0 到 $49 是類別 2

如果分類問題中的類別標籤沒有自然順序的關係,那麼從分類問題到迴歸問題的轉換也許會導致奇詭的結果或者很差的性能,因爲模型可能學到一個並不存在於從輸入到連續輸出之間的映射函數。

進一步閱讀

如果讀者想更深入地瞭解,這一部分的內容包含了更多的關於這個話題的資源。

  • 預測建模簡介(https://machinelearningmastery.com/gentle-introduction-to-predictive-modeling/)

  • 機器學習算法是如何運行的(https://machinelearningmastery.com/how-machine-learning-algorithms-work/)

總結

在這個教程中,你會發現分類問題和迴歸問題之間的區別。

尤其是,學到了以下內容:

  • 預測建模是關於學習從輸入到輸出的函數映射的問題,這個映射稱作函數逼近。

  • 分類是給一個樣本預測離散型類別標籤的問題。

  • 迴歸是給一個樣本預測連續輸出量的問題。

原文鏈接:https://machinelearningmastery.com/classification-versus-regression-in-machine-learning/


文章來源:機器之心