降維后輸入分類器分類時報錯_邏輯回歸解決多分類方法及其優缺點分析

眾所周知,邏輯回歸常用于解決二分類任務,但是在工作/學習/項目中,我們也經常要解決多分類問題。本文總結了 3 種邏輯回歸解決多分類的方法,并分析了他們的優缺點。


一、One-Vs-Rest

假設我們要解決一個分類問題,該分類問題有三個類別,分別用▲,■ 和 × 表示,每個實例(Entity)有兩個屬性(Attribute),如果把屬性 1 作為 X 軸,屬性 2 作為 Y 軸,訓練集(Training Dataset)的分布可以表示為下圖:

295f33f0f05f05fa259a61a05d265d89.png

One-Vs-Rest 的思想是把一個多分類的問題變成多個二分類的問題。轉變的思路是選擇其中一個類別為正類(Positive),使其他所有類別為負類(Negative)。

比如第一步,我們將 ▲ 所代表的實例全部視為正類,其他實例全部視為負類,得到的分類器:

5c5936cc647582218e0a32c1504b8471.png

同理第二步,我們把 x 視為正類,其他視為負類,可以得到第二個分類器:

19dca5bc2b38b68b25e19bfafd7fd52a.png

最后第三步,第三個分類器是把 ■ 視為正類,其余視為負類:

460c4cb2cedb973ff640eef191b50f73.png

對于一個三分類問題,我們最終得到 3 個二元分類器。在預測階段,每個分類器可以根據測試樣本,得到當前正類的概率,即 P(y = i | x; θ),i = 1, 2, 3。選擇計算概率結果最高的分類器,其正類就可以作為預測結果。

【優點】普適性比較廣,可以應用于能輸出值或者概率的分類器,同時效率相對較好,有多少個類別就訓練多少個分類器。

【缺點】很容易造成訓練集樣本數量的不平衡(Unbalance),尤其在類別較多的情況下,經常容易出現正類樣本的數量遠遠不及負類樣本的數量,這樣就會造成分類器的偏向性。


二、One-VS-One

相比于 One-Vs-Rest 由于樣本數量可能的偏向性帶來的不穩定性,One-Vs-One 是一種相對穩健的擴展方法。對于同樣的三分類問題,我們讓不同類別的數據兩兩組合訓練分類器,可以得到 3 個二元分類器。

它們分別是 ▲ 與 x 訓練得出的分類器:

c4bbea82311df589907b328343232d47.png

▲ 與 ■ 訓練的出的分類器:

e583ef211b34d23e0c7ef9a347202084.png

以及 ■ 與 x 訓練得出的分類器:

5c14e1c82e1e1caed8cdfa53a03d4569.png

假如我們要預測的一個數據在圖中紅色圓圈的位置,那么第一個分類器會認為它是 x,第二個分類器會認為它偏向▲,第三個分類器會認為它是 x,經過三個分類器的投票之后,可以預測紅色圓圈所代表的數據的類別為 x。

209c537fc8330687712982407fbefc42.png

【優點】在一定程度上規避了數據集 unbalance 的情況,性能相對穩定,并且需要訓練的模型數雖然增多,但是每次訓練時訓練集的數量都降低很多,其訓練效率會提高。

【缺點】訓練出更多的 Classifier,會影響預測時間。如果有 k 個不同的類別,對于 One-Vs-All 來說,一共只需要訓練 k 個分類器,而 One-Vs-One 則需訓練 C(k, 2) 個分類器,只是因為在本例種,k = 3 時恰好兩個值相等,一旦 k 值增多,One-Vs-One 需要訓練的分類器數量會大大增多。


三、Softmax 函數

該模型將邏輯回歸推廣到分類問題,其中類標簽 y 可以采用兩個以上的可能值。這對于諸如MNIST數字分類之類的問題將是有用的,其中目標是區分10個不同的數字。

在softmax回歸中,我們對多類分類感興趣(而不是僅對二元分類),所以y可以取k個不同的取值。因此,在我們的訓練集

,其中

給定測試輸入 x ,我們希望模型估計每個類別的概率。因此,模型將輸出k維向量(其元素總和為1),給出 k 個類別的估計概率。具體地說,我們的假設

采用以下形式:

74eeaab14c3024396ce069379d63137b.png

其中,

是模型的參數,而
是歸一化項。

為方便起見,用向量法來表示模型的所有參數。當實現 softmax 回歸時,將θ表示為通過堆疊

成行獲得的
的矩陣通常很方便,這樣

9b4efdce61b0fd26a1663fb170ec2409.png

損失函數:

1594afa6a86b0cf1abbf5d89e13529e4.png

求導后,可得

768d594d67c68d511c14bcbf0913f07e.png

更新參數:

06439a88804557e798aef0b419b5f9bc.png

【注】 One-vs-Rest V.S. Softmax

假設正在處理音樂分類應用程序,并且正在嘗試識別 k 種類型的音樂。您應該使用softmax分類器,還是使用邏輯回歸構建k個單獨的二元分類器呢?這取決于這四個類是否相互排斥。如果類別之間是互斥的,softmax 會比較合適,如果類別之間不是互斥的,用 OvR 比較合適。

例如,如果四個類是經典,鄉村,搖滾和爵士樂,每個訓練樣例都標有這四個類別標簽中的一個,那么您應該構建一個 k = 4 的 softmax 分類器,因為這些標簽都是互斥的。但是,如果類別是舞蹈,配樂,流行音樂,那這些并不相互排斥,因為可以有一段來自音軌的流行音樂,另外還有人聲。在這種情況下,構建 4 個二元邏輯回歸分類器更合適。這樣,對于每個新的音樂作品,算法可以單獨決定它是否屬于四個類別中的每一個

總結,如果類別之間是互斥的,那么用 softmax 會比較合適,如果類別之間不是互斥的,用 OvR 比較合適。

參考:

[1]

力扣(LeetCode):3 種方法實現邏輯回歸多分類?zhuanlan.zhihu.com
a10dd37236206f81c95c6f22899fe086.png

[2]

飛魚Talk:邏輯回歸 - 4 邏輯回歸與多分類?zhuanlan.zhihu.com
b348dfcf03041071672871cf97225b63.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532400.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532400.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談 PyTorch 中的 tensor 及使用

淺談 PyTorch 中的 tensor 及使用 轉自:淺談 PyTorch 中的 tensor 及使用 這篇文章主要是圍繞 PyTorch 中的 tensor 展開的,討論了張量的求導機制,在不同設備之間的轉換,神經網絡中權重的更新等內容。面向的讀者是使用過 PyTorch …

簡述springmvc過程_spring mvc的工作流程是什么?

展開全部SpringMVC工作流程描述向服務器發送HTTP請求,請求被前端控制器 DispatcherServlet 捕獲。DispatcherServlet 根據 -servlet.xml 中的配置對請62616964757a686964616fe59b9ee7ad9431333365646233求的URL進行解析,得到請求資源標識符(URI)。 然后根…

PyTorch 的 Autograd

PyTorch 的 Autograd 轉自:PyTorch 的 Autograd PyTorch 作為一個深度學習平臺,在深度學習任務中比 NumPy 這個科學計算庫強在哪里呢?我覺得一是 PyTorch 提供了自動求導機制,二是對 GPU 的支持。由此可見,自動求導 (a…

商場樓層導視牌圖片_百寶圖商場電子導視軟件中預約產品功能簡介

百寶圖商場電子導視軟件中預約產品功能簡介 管理端,可配合百寶圖商場電子導視軟件配套使用 1:數據展示:圖形展示總預約數/預約時間峰值/預約途徑/各途徑數量對比 2:數據統計:有效預約數量/無效預約數量/無效預約原因備…

Pytorch autograd.grad與autograd.backward詳解

Pytorch autograd.grad與autograd.backward詳解 引言 平時在寫 Pytorch 訓練腳本時,都是下面這種無腦按步驟走: outputs model(inputs) # 模型前向推理 optimizer.zero_grad() # 清除累積梯度 loss.backward() # 模型反向求導 optimizer.step()…

相對熵與交叉熵_熵、KL散度、交叉熵

公眾號關注 “ML_NLP”設為 “星標”,重磅干貨,第一時間送達!機器學習算法與自然語言處理出品公眾號原創專欄作者 思婕的便攜席夢思單位 | 哈工大SCIR實驗室KL散度 交叉熵 - 熵1. 熵(Entropy)抽象解釋:熵用于計算一個隨機變量的信…

動手實現一個帶自動微分的深度學習框架

動手實現一個帶自動微分的深度學習框架 轉自:Automatic Differentiation Tutorial 參考代碼:https://github.com/borgwang/tinynn-autograd (主要看 core/tensor.py 和 core/ops.py) 目錄 簡介自動求導設計自動求導實現一個例子總結參考資料 簡介 梯度…

git安裝后找不見版本_結果發現git版本為1.7.4,(git --version)而官方提示必須是1.7.10及以后版本...

結果發現git版本為1.7.4,(git --version)而官方提示必須是1.7.10及以后版本升級增加ppasudo apt-add-repository ppa:git-core/ppasudo apt-get updatesudo apt-get install git如果本地已經安裝過Git,可以使用升級命令:sudo apt-get dist-upgradeapt命令…

隨機數生成算法:K進制逐位生成+拒絕采樣

隨機數生成算法:K進制逐位生成拒絕采樣 轉自:【宮水三葉】k 進制諸位生成 拒絕采樣 基本分析 給定一個隨機生成 1 ~ 7 的函數,要求實現等概率返回 1 ~ 10 的函數。 首先需要知道,在輸出域上進行定量整體偏移,仍然滿…

深入理解NLP Subword算法:BPE、WordPiece、ULM

深入理解NLP Subword算法:BPE、WordPiece、ULM 本文首發于微信公眾號【AI充電站】,感謝大家的贊同、收藏和轉發(▽) 轉自:深入理解NLP Subword算法:BPE、WordPiece、ULM 前言 Subword算法如今已經成為了一個重要的NLP模型性能提升…

http 錯誤 404.0 - not found_電腦Regsvr32 用法和錯誤消息的說明

? 對于那些可以自行注冊的對象鏈接和嵌入 (OLE) 控件,例如動態鏈接庫 (DLL) 文件或 ActiveX 控件 (OCX) 文件,您可以使用 Regsvr32 工具 (Regsvr32.exe) 來將它們注冊和取消注冊。Regsvr32.exe 的用法RegSvr32.exe 具有以下命令行選項: Regs…

mysql error 1449_MySql錯誤:ERROR 1449 (HY000)

筆者系統為 mac ,不知怎的,Mysql 竟然報如下錯誤:ERROR 1449 (HY000): The user specified as a definer (mysql.infoschemalocalhost) does not exist一時沒有找到是什么操作導致的這個錯誤。然后經過查詢,參考文章解決了問題。登…

MobileNet 系列:從V1到V3

MobileNet 系列:從V1到V3 轉自:輕量級神經網絡“巡禮”(二)—— MobileNet,從V1到V3 自從2017年由谷歌公司提出,MobileNet可謂是輕量級網絡中的Inception,經歷了一代又一代的更新。成為了學習輕…

mysql 查詢表的key_mysql查詢表和字段的注釋

1,新建表以及添加表和字段的注釋.create table auth_user(ID INT(19) primary key auto_increment comment 主鍵,NAME VARCHAR(300) comment 姓名,CREATE_TIME date comment 創建時間)comment 用戶信息表;2,修改表/字段的注釋.alter table auth_user comment 修改后的表注…

mysql 高級知識點_這是我見過最全的《MySQL筆記》,涵蓋MySQL所有高級知識點!...

作為運維和編程人員,對MySQL一定不會陌生,尤其是互聯網行業,對MySQL的使用是比較多的。MySQL 作為主流的數據庫,是各大廠面試官百問不厭的知識點,但是需要了解到什么程度呢?僅僅停留在 建庫、創表、增刪查改…

teechart mysql_TeeChart 的應用

TeeChart 是一個很棒的繪圖控件,不過由于里面沒有注釋,網上相關的資料也很少,所以在應用的時候只能是一點點的試。為了防止以后用到的時候忘記,我就把自己用到的東西都記錄下來,以便以后使用的時候查詢。1、進制縮放圖…

NLP新寵——淺談Prompt的前世今生

NLP新寵——淺談Prompt的前世今生 轉自:NLP新寵——淺談Prompt的前世今生 作者:閔映乾,中國人民大學信息學院碩士,目前研究方向為自然語言處理。 《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in…

mysql key_len_淺談mysql explain中key_len的計算方法

mysql的explain命令可以分析sql的性能,其中有一項是key_len(索引的長度)的統計。本文將分析mysql explain中key_len的計算方法。1、創建測試表及數據CREATE TABLE member (id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,age tinyint(…

requestfacade 這個是什么類?_Java 的大 Class 到底是什么?

作者在之前工作中,面試過很多求職者,發現有很多面試者對Java的 Class 搞不明白,理解的不到位,一知半解,一到用的時候,就不太會用。想寫一篇關于Java Class 的文章,沒有那么多專業名詞&#xff0…

初學機器學習:直觀解讀KL散度的數學概念

初學機器學習:直觀解讀KL散度的數學概念 轉自:初學機器學習:直觀解讀KL散度的數學概念 譯自:https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-understanding-kl-divergence-2b382ca2b2a8 解讀…