機器學習中最常見的四種分類模型

2021-03-02 Python大數據分析

作者:Jason Brownlee
翻譯:候博學

前言

機器學習是一個從訓練集中學習出算法的研究領域。

分類是一項需要使用機器學習算法的任務,該算法學習如何為數據集分配類別標籤。

舉一個簡單易懂的例子:將電子郵件分類為「 垃圾郵件 」或「 非垃圾郵件」(二分類的典型特徵「非此即彼」,關於二分類,後文會涉及)。

你可能會在機器學習中遇到許多不同類型的分類任務,但是其實每種模型都會使用與之相對應的建模方法。

因此在本文中,你將了解到機器學習中不同類型的分類預測建模方法。

二分類是指預測兩個類別之一(非此即彼),而多分類則涉及預測兩個以上類別之一;

概述

本文分為五個部分,它們分別是:

分類預測建模

在機器學習中,分類[1]是指預測建模問題,對給定示例的輸入數據預測其類別標籤。

分類問題的案例包括:

從建模的角度來看,分類需要訓練數據集,其中包含許多可供學習的輸入和輸出數據。

模型將使用訓練數據集,並計算如何將輸入數據樣本更加準確地映射到特定的類別標籤。

因此,訓練數據集必須擁有足夠的代表性,並且每個分類標籤都擁有很多樣本數據。

類別標籤通常是字符串值,例如「 spam 」(垃圾郵件),「 not spam 」(非垃圾郵件),並且在提供給建模算法之前必須將其映射為數值。這通常稱為標籤編碼[2],其中為每個類別標籤分配一個唯一的整數,例如「 spam 」 = 0,「 no spam 」 = 1。

有很多不同類型的分類算法可以對分類預測問題進行建模。

關於如何將合適的算法應用到具體分類問題上,沒有固定的模式準則。但可以通過試驗來確定,通常是試驗者使用受控實驗,在給定的分類任務中,哪種算法和算法配置擁有最佳性能,從而將其挑選出來。

基於預測結果對分類預測建模算法進行評估。分類準確度是一種常用的度量標準,其通過預測的類別標籤來評估模型的性能。即使分類結果不是完美的,但對於許多分類任務來說這是個很好的開始。

某些任務可能需要預測每個樣本類別成員的概率,而不是標籤。這為預測提供了額外的不確定性,評估預測概率的一種通用判斷方法是ROC曲線(積分面積)

你可能會遇到四種主要的分類任務類型,它們分別是:

讓我們來依次仔細研究每個類型。

二分類模型

二分類[3]是指具有兩個類別標籤的分類任務。

示例包括:

通常,二分類任務涉及一個屬於正常狀態的類別和一個屬於異常狀態的類別。

例如,「 非垃圾郵件 」是正常狀態,而「 垃圾郵件 」是異常狀態。另一個示例是「 未檢測到癌症 」是涉及醫學檢查任務的正常狀態,而「 檢測到癌症 」是異常狀態。

正常狀態的類分配為類別標籤0,狀態異常的類分配為類別標籤1。

通常先預測每個樣本的伯努利概率分布模型,來對二分類任務進行建模。

伯努利分布是離散的概率分布,它涵蓋了事件的結果為0或1的兩種情況。假如結果預測為1,對於分類來說,這意味著模型預測了數據屬於1類,也可以說是異常狀態。

可以用於二分類的流行算法包括:

邏輯回歸(Logistic Regression)k最近鄰(k-Nearest Neighbors)支持向量機(Support Vector Machine)

有些算法是專門為二分類問題而設計的,它們本身不支持兩個以上的類型分類。例如邏輯回歸和支持向量機。

接下來,讓我們仔細看一下數據集,通過實踐和思考來訓練出對二分類問題的直覺。

我們可以使用make_blobs()函數[4]生成一個合成的二分類數據集。

下面的示例代碼生成一個數據集,其中包含1,000個樣本,這些樣本屬於兩個類之一,每個類具有兩個輸入特徵。

# example of binary classification task
from numpy import where
from collections import Counter
from sklearn.datasets import make_blobs
from matplotlib import pyplot
# define dataset
X, y = make_blobs(n_samples=1000, centers=2, random_state=1)
# summarize dataset shape
print(X.shape, y.shape)
# summarize observations by class label
counter = Counter(y)
print(counter)
# summarize first few examples
for i in range(10):
 print(X[i], y[i])
# plot the dataset and color the by class label
for label, _ in counter.items():
 row_ix = where(y == label)[0]
 pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))
pyplot.legend()
pyplot.show()

首先運行示例,對創建的數據集進行匯總,將1000個樣本分為input(X)和output(y)元素。

然後匯總類標籤的分布,顯示該實例是屬於類別0還是類別1,並且每個類別中各有500個樣本。

接下來,總結數據集中的前10個樣本,顯示輸入值是數字,目標值是代表類成員類型的整數0或1。

(1000, 2) (1000,)

Counter({0: 500, 1: 500})

[-3.05837272  4.48825769] 0
[-8.60973869 -3.72714879] 1
[1.37129721 5.23107449] 0
[-9.33917563 -2.9544469 ] 1
[-11.57178593  -3.85275513] 1
[-11.42257341  -4.85679127] 1
[-10.44518578  -3.76476563] 1
[-10.44603561  -3.26065964] 1
[-0.61947075  3.48804983] 0
[-10.91115591  -4.5772537 ] 1

最後,為數據集中的input變量創建散點圖,並根據其類值對點進行著色。

我們可以很直觀的區分兩個不同的集群。

二元分類數據集的散點圖


多類別分類模型

多類別分類[5]是指具有兩個以上類別標籤的分類任務。

示例包括:

與二分類不同,多類別分類沒有正常和異常結果的概念。相反,樣本被分類為屬於一系列已知類別中的一個。

在某些問題上,類標籤的數量可能非常大。例如,模型可以預測照片屬於面部識別系統中的數千個或數萬個面部之一。

涉及預測單詞序列的問題,例如文本翻譯模型,也可以視為一種特殊類型的多類別分類。要預測的單詞序列中的每個單詞都涉及一個多類分類,其中詞彙量定義了可以預測的可能類別的數量,其數量可能是成千上萬個單詞。

通常使用每個樣本的Multinoulli概率分布的模型來對多類分類任務進行建模。

所述Multinoulli概率分布是覆蓋情況下的事件將有一個明確的結果,例如離散概率分布ķ在{1,2,3,...,ķ }。對於分類,這意味著模型可以預測樣本屬於每個類別標籤的概率。

許多用於二分類的算法也可以用於解決多分類問題。

可用於多類分類的流行算法包括:

k最近鄰(k-Nearest Neighbors)梯度Boosting(Gradient Boosting)

這涉及使用一種策略,該策略為每個類別與所有其他類別(稱為「一對多」)擬合多個二分類模型,或者為每對類別(稱為「一對一」)擬合一個模型。

一對多:為每個類別與其它所有類別擬合出一個二分類模型。

可以使用這些策略進行多分類的二分類算法包括:

邏輯回歸(Logistic Regression)支持向量機(Support Vector Machine)

接下來,讓我們仔細看一下數據集,通過實踐和思考來訓練出對多類分類問題的直覺。

我們可以使用make_blobs()函數[6]生成一個綜合的多類分類數據集。

下面的代碼表示生成一個數據集,其中包含1,000個示例,這些示例屬於三個類之一,每個類別具有兩個輸入特徵。

# example of multi-class classification task
from numpy import where
from collections import Counter
from sklearn.datasets import make_blobs
from matplotlib import pyplot
# define dataset
X, y = make_blobs(n_samples=1000, centers=3, random_state=1)
# summarize dataset shape
print(X.shape, y.shape)
# summarize observations by class label
counter = Counter(y)
print(counter)
# summarize first few examples
for i in range(10):
print(X[i], y[i])
# plot the dataset and color the by class label
for label, _ in counter.items():
row_ix = where(y == label)[0]
pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))
pyplot.legend()
pyplot.show()

首先運行代碼,對創建的數據集進行匯總,將1000個樣本分為input(X)和output(y)。

然後匯總類別標籤的分布,顯示樣本屬於類別0,類別1或類別2,並且每個類中大約有333個示例。

接下來,展示數據集中的前10個樣本,顯示輸入值是數字,目標值是代表類別成員類型的整數。

(1000, 2) (1000,)

Counter({0: 334, 1: 333, 2: 333})

[-3.05837272  4.48825769] 0
[-8.60973869 -3.72714879] 1
[1.37129721 5.23107449] 0
[-9.33917563 -2.9544469 ] 1
[-8.63895561 -8.05263469] 2
[-8.48974309 -9.05667083] 2
[-7.51235546 -7.96464519] 2
[-7.51320529 -7.46053919] 2
[-0.61947075  3.48804983] 0
[-10.91115591  -4.5772537 ] 1

最後,為數據集中的input變量創建散點圖,並根據其分類值對點進行著色。

我們可以很容易區分三個不同的集群。

多類分類數據集的散點圖

多標籤分類模型

多標籤分類[7]是指具有兩個或多個分類標籤的分類任務,其中每個樣本可以預測一個或多個分類標籤。

考慮照片分類[8]的示例,其中給定的照片可能在場景中具有多個對象,並且模型可以預測照片中存在多個已知對象,例如「 自行車 」,「 蘋果 」,「 人 」等。

這與二分類和多分類不同,在二分類和多分類中,為每個樣本預測了單個分類標籤。

通常使用預測多個輸出的模型來對多標籤分類任務進行建模,而每個輸出都將作為伯努利概率分布(0,1分布)進行預測。本質上,這是對每個樣本進行多個二分類預測的模型。

用於二分類或多類分類的分類算法不能直接用於多標籤分類。可以使用標準分類算法的專用版本,即所謂的多標籤版本算法,包括:

多標籤決策樹(Multi-label Decision Trees)多標籤隨機森林(Multi-label Random Forests)多標籤梯度Boosting(Multi-label Gradient Boosting)

另一種方法是使用單獨的分類算法來預測每個類別的標籤。

接下來,讓我們仔細看一下數據集,通過實踐和思考來訓練出對多標籤分類問題的直覺。

我們可以使用make_multilabel_classification()函數[9]生成一個由算法合成的多標籤分類數據集。

下面的代碼表示生成一個包含1,000個示例的數據集,每個示例都有兩個輸入特徵。一共有三個類別,每個類別可能帶有兩個標籤(0或1)之一。

# example of a multi-label classification task
from sklearn.datasets import make_multilabel_classification
# define dataset
X, y = make_multilabel_classification(n_samples=1000, n_features=2, n_classes=3, n_labels=2, random_state=1)
# summarize dataset shape
print(X.shape, y.shape)
# summarize first few examples
for i in range(10):
 print(X[i], y[i])

首先運行代碼,對創建的數據集進行匯總,將1000個示例分為input(X)和output(y)。

接下來,展示數據集中的前10個樣本,顯示輸入值是數字,目標值是代表類標籤成員類別的整數。

(1000, 2) (1000, 3)

[18. 35.] [1 1 1]
[22. 33.] [1 1 1]
[26. 36.] [1 1 1]
[24. 28.] [1 1 0]
[23. 27.] [1 1 0]
[15. 31.] [0 1 0]
[20. 37.] [0 1 0]
[18. 31.] [1 1 1]
[29. 27.] [1 0 0]
[29. 28.] [1 1 0]

不平衡分類模型

不平衡分類[10]是指在分類任務中,每個類別中的樣本數不均勻分布。

通常,不平衡分類任務是二分類任務,其中訓練數據集中的大多數樣本屬於正常類,而少數樣本屬於異常類。

示例包括:

這些問題被建模為二分類任務,儘管可能會需要專門的技術。

通過對多數類別進行欠採樣或過採樣,使用專門的建模算法來修正訓練數據集中樣本的組成。

示例包括:

當將模型擬合到訓練數據集上時,可以使用專門的建模算法來關注少數群體,例如成本敏感的機器學習算法。

示例包括:

成本敏感邏輯回歸(Cost-sensitive Logistic Regression)成本敏感決策樹(Cost-sensitive Decision Trees)成本敏感支持向量機(Cost-sensitive Support Vector Machines)

最後,由於報告分類準確性可能會產生誤差,因此可能需要其他性能指標來進行評估。

示例包括:

接下來,讓我們仔細看一下數據集,通過實踐和思考來訓練出對不平衡分類問題的直覺。

我們可以使用make_classification()函數[13]生成一個由代碼合成的不平衡二分類數據集。

下面的代碼表示生成一個數據集,其中包含1,000個示例,這些示例屬於兩個類之一,每個類具有兩個輸入特徵。

# example of an imbalanced binary classification task
from numpy import where
from collections import Counter
from sklearn.datasets import make_classification
from matplotlib import pyplot
# define dataset
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_classes=2, n_clusters_per_class=1, weights=[0.99,0.01], random_state=1)
# summarize dataset shape
print(X.shape, y.shape)
# summarize observations by class label
counter = Counter(y)
print(counter)
# summarize first few examples
for i in range(10):
 print(X[i], y[i])
# plot the dataset and color the by class label
for label, _ in counter.items():
 row_ix = where(y == label)[0]
 pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))
pyplot.legend()
pyplot.show()

首先運行代碼,對創建的數據集進行匯總,將1000個示例分為input(X)和output(y)。

然後匯總類標籤的分布,顯示出來嚴重的類別不平衡,其中約980個示例屬於類別0,約20個示例屬於類別1。

接下來,展示數據集中的前10個樣本,顯示輸入值是數字,目標值是代表類成員類別的整數。在這種情況下,我們可以看到,大多數示例都屬於類別0。

(1000, 2) (1000,)

Counter({0: 983, 1: 17})

[0.86924745 1.18613612] 0
[1.55110839 1.81032905] 0
[1.29361936 1.01094607] 0
[1.11988947 1.63251786] 0
[1.04235568 1.12152929] 0
[1.18114858 0.92397607] 0
[1.1365562  1.17652556] 0
[0.46291729 0.72924998] 0
[0.18315826 1.07141766] 0
[0.32411648 0.53515376] 0

最後,為數據集中的輸入變量創建散點圖,並根據其類值對點進行著色。

我們可以看到一個主類,屬於類別0,一些零散的則屬於類別1。可以看到,具有不平衡類標籤屬性的數據集在建模方面更具挑戰性。

不平衡二元分類數據集的散點圖

摘要總結

本文展示了機器學習中不同類型的分類預測建模方法。

具體來說,以下幾點:

分類預測建模涉及到將類別標籤分配給輸入樣本(測試集);二分類是指預測兩個類別之一,而多分類則涉及預測兩個以上的類別之一;不平衡分類指的是樣本在各個類別之間分布不相等時的分類任務;參考資料[1]

分類: https://en.wikipedia.org/wiki/Statistical_classification

[2]

標籤編碼: https://machinelearningmastery.com/how-to-prepare-categorical-data-for-deep-learning-in-python/

[3]

二分類: https://en.wikipedia.org/wiki/Binary_classification

[4]

make_blobs()函數: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_blobs.html

[5]

多類別分類: https://en.wikipedia.org/wiki/Multiclass_classification

[6]

make_blobs()函數: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_blobs.html

[7]

多標籤分類: https://en.wikipedia.org/wiki/Multi-label_classification

[8]

照片分類: https://machinelearningmastery.com/object-recognition-with-deep-learning/

[9]

make_multilabel_classification()函數: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html

[10]

不平衡分類: https://machinelearningmastery.com/what-is-imbalanced-classification/

[11]

隨機欠採樣: https://machinelearningmastery.com/random-oversampling-and-undersampling-for-imbalanced-classification/

[12]

SMOTE過採樣: https://machinelearningmastery.com/smote-oversampling-for-imbalanced-classification/

[13]

make_classification()函數: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html

相關焦點

  • 機器學習丨機器學習中最常見的四種分類模型
    舉一個簡單易懂的例子:將電子郵件分類為「 垃圾郵件 」或「 非垃圾郵件」(二分類的典型特徵「非此即彼」,關於二分類,後文會涉及)。你可能會在機器學習中遇到許多不同類型的分類任務,但是其實每種模型都會使用與之相對應的建模方法。因此在本文中,你將了解到機器學習中不同類型的分類預測建模方法。
  • 機器學習常見算法分類匯總
    機器
  • 獨家 | 機器學習中的四種分類任務(附代碼)
    全文約4400字,建議閱讀18分鐘本文為大家介紹了機器學習中常見的四種分類任務分別是二分類、多類別分類、多標籤分類、不平衡分類,並提供了實戰代碼。 標籤:機器學習機器學習是一個研究領域,其涉及到從示例中學習的算法。分類是一項需要使用機器學習算法去學習如何根據問題域為示例分配類標籤的任務。一個簡單易懂的例子是將電子郵件分為「垃圾郵件」或「非垃圾郵件」。在機器學習中,你可能會遇到許多不同類型的分類任務,並且每種模型都會使用專門的建模方法。
  • 14種機器學習常見算法分類匯總!
    很多人在平時的工作中都或多或少會用到機器學習的算法。這裡總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。很多時候困惑人們都是,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的。這裡,我們從兩個方面來給大家介紹,第一個方面是學習的方式,第二個方面是算法的類似性。根據數據類型的不同,對一個問題的建模有不同的方式。
  • 大數據之機器學習常見算法分類匯總
    機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。這裡IT經理網為您總結一下常見的機器學習算法,以供您在工作和學習中參考。機器學習的算法很多。在機器學習領域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。監督式學習
  • [算法]機器學習分類模型評估指標
    新的機器學習方法主要包括:深度學習和強化學習。深度學習中可以做分類和回歸的無監督算法,在無監督學習方法主要還是做分類,深度學習的無監督主要是生成模型GAN。強化學習是一種激勵性的學習方式,其評價方式也比較獨特。
  • 機器學習算法中分類知識總結!
    」我們做出以下定義:我們可以使用一個 2x2的混淆矩陣來總結我們的「狼預測」模型,該矩陣描述了所有可能出現的結果(共四種):假正例是指模型將負類別樣本錯誤地預測為正類別,而假負例是指模型將正類別樣本錯誤地預測為負類別。在後面的部分中,我們將介紹如何使用從這四種結果中衍生出的指標來評估分類模型。
  • 機器學習分類和應用
    其中:圖1-8 機器學習的從經驗中學習示意圖在上圖中顯示,機器(計算機系統)本身包含兩個主要組件:學習機和推理機(learner and  reasoner)。藉助於輸入和背景知識,學習機可以生成模型。該模型包含從輸入和背景知識中學習到的信息。現在,將任務/問題(problem/task)(例如預測、分類等)提供給推理機。
  • 小白也看得懂的機器學習模型工作原理
    給幼兒園的小朋友講清楚機器學習可能有點誇張,實際上這一問題的要求就是,儘可能簡單地解釋某一技術。這就是筆者在本文中嘗試做到的事。筆者將解釋什麼是機器學習以及不同類型的機器學習,再介紹常見的模型。本文裡,筆者不會介紹任何數學運算,小白請放心食用。
  • 80頁筆記看遍機器學習基本概念、算法、模型,幫新手少走彎路
    不過對於初學者來說,或許閱讀學習筆記是一種最容易快速上手的方法。本文要介紹的是一份長約 80 頁的學習筆記,旨在總結機器學習的一系列基本概念(如梯度下降、反向傳播等),不同的機器學習算法和流行模型,以及一些作者在實踐中學到的技巧和經驗。如果你是一個剛剛入門機器學習領域的人,這份學習筆記或許可以幫你少走很多彎路;如果你不是學生,這些筆記還可以在你忘記某些模型或算法時供你快速查閱。
  • 機器學習面試中最常考的樹模型(附答案)
    樹模型可以說在機器學習的面試中,是面試官最喜歡問的一類問題,今天小編就帶你一起回顧一下去年校招中我所經歷的樹模型相關的問題,這次帶答案呦~~(答案是小編的理解,如果有遺漏的地方,歡迎大家在留言區指正,同時,如果有更多關於樹模型的題目,也歡迎在留言區補充)1、決策樹的實現、ID3、C4.5、CART(貝殼)2
  • 機器學習中的模型漂移(Model Drift)簡介
    當今,機器學習模型已經成為商業決策的主要驅動因素,和其他商業策略一樣,這些機器學習模型需要隨著時間的推移而進行修改,其背後的技術原因是「模型漂移」。雖然大多數課程、文章和帖子都描述了機器學習(ML)生命周期(從收集數據開始到部署機器學習模型結束),但是它們往往忘記了機器學習生命周期中一個非常重要的特性,即模型漂移。模型漂移的本質意思是指目標變量和自變量之間的關係隨時間而變化。由於這種漂移,模型會變得不穩定,並且隨著時間的推移預測會不斷出錯。
  • 機器學習分類算法總結
    訓練改變了網絡節點的連接權的值使其具有分類的功能,經過訓練的網絡就可用於對象的識別。 目前,神經網絡已有上百種不同的模型,常見的有BP網絡、徑向基RBF網絡、Hopfield網絡、隨機神經網絡(Boltzmann機)、競爭神經網絡(Hamming網絡,自組織映射網絡)等。但是當前的神經網絡仍普遍存在收斂速度慢、計算量大、訓練時間長和不可解釋等缺點。
  • 數據建模中分類與預測模型
    因此,本文基於上期數據預處理部分之後,介紹如何在清洗過後的數據基礎之上建立分類與預測模型,為此種模型的構建方法進行簡單介紹,輔助投資者對自身分析邏輯中的分析框架進行量化分析,方便其多元化的交易分析。  一、分類與預測的介紹  數據建模中分類與預測模型主要是尋求合適的分類模型並在此基礎之上進行未來預測。
  • 機器學習概念、步驟、分類和實踐
    —— 湯姆·米切爾,1997機器學習是一類算法的總稱,這些算法從大量歷史數據中挖掘出其中隱含的規律,並用於預測或者分類,更具體的說,機器學習可以看作是尋找一個函數,輸入是樣本數據,輸出是期望的結果,只是這個函數過於複雜,以至於不太方便形式化表達。需要注意的是,機器學習的目標是使學到的函數很好地適用於「新樣本」,而不僅僅是在訓練樣本上表現很好。
  • 【入門】機器學習中的線性代數
    數據集和數據文件在機器學習中,你可以在數據集上擬合一個模型。這是表格式的一組數字,其中每行代表一組觀察值,每列代表觀測的一個特徵。3. one-hot 編碼有時機器學習中要用到分類數據。可能是用於解決分類問題的類別標籤,也可能是分類輸入變量。對分類變量進行編碼以使它們更易於使用並通過某些技術進行學習是很常見的。one-hot 編碼是一種常見的分類變量編碼。
  • 8種常見機器學習算法比較
    簡介機器學習算法太多了,分類、回歸、聚類、推薦、圖像識別領域等等,要想找到一個合適算法真的不容易,所以在實際應用中,我們一般都是採用啟發式學習方式來實驗。通常最開始我們都會選擇大家普遍認同的算法,諸如SVM,GBDT,Adaboost,現在深度學習很火熱,神經網絡也是一個不錯的選擇。
  • 9 張手繪,圖解機器學習模型訓練全流程
    根據目標變量(通常稱為Y變量)的數據類型(定性或定量),我們要建立一個分類(如果Y是定性的)或回歸(如果Y是定量的)模型。5.1 學習算法機器學習算法可以大致分為以下三種類型之一:監督學習:是一種機器學習任務,建立輸入X和輸出Y變量之間的數學(映射)關係。這樣的X、Y對構成了用於建立模型的標籤數據,以便學習如何從輸入中預測輸出。
  • 圖解機器學習的常見算法
    常見的降維方法有PCA, LDA, SVD等。主成分分析 PCA降維裡最經典的方法是主成分分析PCA,也就是找到數據的主要組成成分,拋棄掉不重要的成分。1、隨機在圖中取K(這裡K=3)個中心種子點。回歸線性回歸線性回歸是最經典的回歸算法。在統計學中,線性回歸(Linear regression)是利用稱為線性回歸方程的最小二乘函數對一個或多個自變量和因變量之間關係進行建模的一種回歸分析。這種函數是一個或多個稱為回歸係數的模型參數的線性組合。
  • 機器學習常見的損失函數以及何時使用它們
    每一個機器學習工程師都應該知道機器學習中這些常見的損失函數以及何時使用它們。在數學優化和決策理論中,損失函數或成本函數將一個或多個變量的值映射為一個實數,該實數直觀地表示與該事件相關的一些「成本」。損失函數是機器學習算法中的一個重要部分,主要用於進行算法對特徵數據集建模效果的評估,衡量算法的性能。損失函數是每個樣本預測值和真實值的差值,而成本函數是所有損失函數的平均值。但是一般兩者語義沒有明顯的區分。 損失函數直接反映了機器學習模型的預測結果。一般而言,損失函數越低,所建立的模型所提供的結果就越好。