機器學習之單標簽多分類及多標簽多分類

單標簽二分類算法

Logistic算法

單標簽多分類算法

Softmax算法

One-Versus-One(ovo):一對一

One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多

ovo和ovr的區別

Error Correcting Output codes(糾錯碼機制):多對多

多標簽多分類算法

Problem Transformation Methods

Binary Relevance

Classifier Chains

Calibrated Label Ranking

Algorithm Adaptation

ML-kNN

ML-DT

多標簽多分類在Scikit-learn中的實現方式


單標簽二分類算法

單標簽二分類這種問題是我們最常見的算法問題,主要是指label標簽的取值只有兩種,并且算法中只有一個需要預測的label標簽。直白來講就是每個實例的可能類別只有兩種(A or B)。此時的分類算法其實是在構建一個分類線將數據劃分為兩個類別。常見的算法有:Logistic、SVM、KNN等。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?y=f(x),\ \ \ \ \ y\in\{-1, +1\}

Logistic算法

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\begin{aligned}sigmoid&=h_{\theta}(x) \\&=\frac{1}{1+e^{-\theta^Tx}} \\J(\theta)&=-\frac{1}{m}[\sum_{i=1}^my^{(i)}\log h_{\theta}(x^{(i)})+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))], \ \ \ \ \ y^{(i)}\in\{0, 1\}\end{aligned}

單標簽多分類算法

單標簽多分類問題其實是指待預測的label標簽只有一個,但是label標簽的取值可能有多種情況。直白來講就是每個實例的可能類別有K種(t_1, t_2, \dots, t_k ,k\ge3)。常見算法:Softmax、KNN等。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\begin{aligned}y&=f(x),\ \ \ \ \ \ y\in\{t_1, t_2, \dots, t_k\} \\D&=\{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\} \\y_i&=j, \ \ \ \ i=1, 2, \dots, n \ \ \ \ j=1, 2, \dots, k\end{aligned}

Softmax算法

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\begin{aligned}p(y=k|x;\theta)&=\frac{e^{\theta_k^Tx}}{\sum_{l=1}^Ke^{\theta_l^Tx}}, \ \ \ \ \ k=1, 2, \dots, K \\h_{\theta}(x)&=\begin{bmatrix}p(y^{(i)}=1|x^{(i)};\theta) \\p(y^{(i)}=2|x^{(i)};\theta) \\\dots \\p(y^{(i)}=k|x^{(i)};\theta)\end{bmatrix} \\&=\frac{1}{\sum_{j=1}^ke^{\theta_j^Tx^{(i)}}}\cdot\begin{bmatrix}e^{\theta_1^Tx} \\e^{\theta_2^Tx} \\\dots \\e^{\theta_k^Tx}\end{bmatrix} \\\Longrightarrow \theta&=\begin{bmatrix}\theta_{11} & \theta_{12} & \cdots & \theta_{1n} \\\theta_{21} & \theta_{22} & \cdots & \theta_{2n} \\\cdots & \cdots & \cdots & \cdots \\\theta_{k1} & \theta_{k2} & \cdots & \theta_{kn}\end{bmatrix} \\J(\theta)&=-\frac{1}{m}\sum_{i=1}^m\sum_{j=1}^kI(y^{(i)}=j)\log(\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^Ke^{\theta_l^Tx}}) \\I(y^{(i)}=j)&=\begin{cases}1, &y^{(i)}=j \\0, &y^{(i)}\ne j\end{cases}\end{aligned}

在實際的工作中,如果是一個多分類的問題,我們可以將這個待求解的問題轉換為二分類算法的延伸,即將多分類任務拆分為若干個二分類任務求解,具體的策略如下:

  • One-Versus-One(ovo):一對一
  • One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多
  • Error Correcting Output codes(糾錯碼機制):多對多

One-Versus-One(ovo):一對一

將K個類別中的兩兩類別數據進行組合,然后使用組合后的數據訓練出來一個模型,從而產生K(K-1)/2個分類器,將這些分類器的結果進行融合,并將分類器的預測結果使用多數投票的方式輸出最終的預測結果值。

One-Versus-All / One-Versus-the-Rest(ova/ovr): 一對多

在一對多模型訓練中,不是兩兩類別的組合,而是將每一個類別作為正例,其它剩余的樣例作為反例分別來訓練K個模型。然后在預測的時候,如果在這K個模型中,只有一個模型輸出為正例,那么最終的預測結果就是屬于該分類器的這個類別。如果產生多個正例,那么則可以選擇根據分類器的置信度作為指標,來選擇置信度最大的分類器作為最終結果,常見置信度:精確度、召回率。

ovo和ovr的區別

Error Correcting Output codes(糾錯碼機制):多對多

將模型構建應用分為兩個階段:編碼階段和解碼階段。編碼階段中對K個類別中進行M次劃分,每次劃分將一部分數據分為正類,一部分數據分為反類,每次劃分都構建出來一個模型,模型的結果是在空間中對于每個類別都定義了一個點。解碼階段中使用訓練出來的模型對測試樣例進行預測,將預測樣本對應的點和類別之間的點求距離,選擇距離最近的類別作為最終的預測類別。

多標簽多分類算法

Multi-Label Machine Learning(MLL算法)是指預測模型中存在多個y值,具體分為兩類不同情況:

  • 多個待預測的y值
  • 在分類模型中,一個樣例可能存在多個不固定的類別

根據多標簽業務問題的復雜性,可以將問題分為兩大類:

  • 待預測值之間存在相互的依賴關系
  • 待預測值之間是不存在依賴關系的

對于這類問題的解決方案可以分為兩大類:

  • 轉換策略(Problem Transformation Methods)
  • 算法適應(Algorithm Adaptation)

Problem Transformation Methods

該方法又叫做策略轉換或者問題轉換,是一種將多標簽的分類問題轉換成為單標簽模型構造的問題,然后將模型合并的一種方法,主要有以下幾種方式:

  • Binary Relevance(first-order)
  • Classifier Chains(high-order)
  • Calibrated Label Ranking(second-order)

Binary Relevance

Binary Relevance的核心思想是將多標簽分類問題進行分解,將其轉換為q個二元分類問題,其中每個二元分類器對應一個待預測的標簽。

Binary Relevance方式的優點如下:

  • 實現方式簡單,容易理解
  • 當y值之間不存在相關的依賴關系的時候,模型的效果不錯

Binary Relevance方式的缺點如下:

  • 如果y之間存在相互的依賴關系,那么最終構建的模型的泛化能力比較弱
  • 需要構建q個二分類器,q為待預測的y值數量,當q比較大的時候,需要構建的模型會比較多

Classifier Chains

Classifier Chains的核心思想是將多標簽分類問題進行分解,將其轉換成為一個二元分類器鏈的形式,其中后鏈的二元分類器的構建是在前面分類器預測結果的基礎上的。在模型構建的時候,首先將標簽順序進行shuffle打亂排序操作,然后按照從頭到尾分別構建每個標簽對應的模型。

Classifier Chains方法的優點如下:

  • 實現方式相對比較簡單,容易理解
  • 考慮標簽之間的依賴關系,最終模型的泛化能力相對于Binary Relevance方式構建的模型效果要好

缺點如下:

  • 很難找到一個比較適合的標簽依賴關系

Calibrated Label Ranking

Calibrated Label Ranking的核心思想是將多標簽分類問題進行分解,將其轉換為標簽的排序問題,最終的標簽就是排序后最大的幾個標簽值。

Calibrated Label Ranking 方法的優點如下:

  • 考慮了標簽兩兩組合的情況,最終的模型相對來講泛化能力比較好

Calibrated Label Ranking 方法的缺點如下:

  • 只考慮兩兩標簽的組合,沒有考慮到標簽與標簽之間的所有依賴關系

Algorithm Adaptation

Algorithm Adaptation又叫做算法適應性策略,是一種將現有的單標簽的算法直接應用到多標簽上的一種方式,主要有以下幾種方式:

  • ML-kNN
  • ML-DT

ML-kNN

ML-kNN的思想:對于每一個實例來講,先獲取距離它最近的k個實例,然后使用這些實例的標簽集合,通過最大后驗概率(MAP)來判斷這個實例的預測標簽集合的值。

最大后驗概率(MAP):其實就是在最大似然估計(MLE)中加入了這個要估計量的先驗概率分布。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??\begin{aligned}\hat{\theta}_{MLE}(x)&=\arg\max_{\theta}f(x|\theta) \\\hat{\theta}_{MAP}(x)&=\arg\max_{\theta}\frac{f(x|\theta)g(\theta)}{\int_{\theta}f(x|\theta')g(\theta')d\theta'} \\&=\arg\max_{\theta}f(x|\theta)g(\theta)\end{aligned}

ML-DT

ML-DT是使用決策樹處理多標簽內容,核心在于給予更細粒度的信息熵增益準則來構建這個決策樹模型。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \begin{aligned}entry&=\sum_{j=1}^q[-p_j\log p_j-(1-p_j)\log(1-p_j)] \\p_j&=\frac{\sum_{i=1}^n||y_j\in Y_i||}{n}\end{aligned}

多標簽多分類在Scikit-learn中的實現方式

在Scikit-learn中使用OneVsRestClassifier對多標簽進行分類操作,內部其實是將多標簽問題轉換為多類別的區分問題。

?

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

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

相關文章

ionic3 隱藏子頁面tabs

看了幾天ionic3 問題還挺多的,今天想把所有子頁面tabs 給去掉,整了半天,發現app.Module 是可以配置的 修改 IonicModule.forRoot(MyApp) imports: [BrowserModule,// IonicModule.forRoot(MyApp),HttpModule,IonicModule.forRoot(…

cas單點登錄-jdbc認證(三)

前言 本節的內容為JDBC認證,查找數據庫進行驗證,其中包括: 密碼加密策略(無密碼,簡單加密,加鹽處理)認證策略(jdbc)一、業務需求 不同的公司,需求業務需求或者…

get clone 出現 fatal: the remote end hung up unexpectedly5 MiB | 892.00 KiB/s 報錯信息

fatal: the remote end hung up unexpectedly5 MiB | 892.00 KiB/s 解決方案 (親測有效) 解決方案如下: git clone時加上 --depth1,比如: git clone https://gitee.com/songyitian/tctm.git --depth 1depth用于指定…

mybatis foreach map_重學Mybatis(六)-------輸入映射(含面試題)

博主將會針對Java面試題寫一組文章,包括J2ee,SQL,主流Web框架,中間件等面試過程中面試官經常問的問題,歡迎大家關注。一起學習,一起成長,文章底部有面試題。入參映射關鍵字說明圖中paramenterTy…

php輸出多余的空格或者空行

1&#xff0c;文件是否有bom。可以通過腳步檢測&#xff0c;或者利用notepa打開&#xff0c;查看編碼格式。 2. <?php echo something; ?> 或許是你的php標簽外&#xff0c;有空格或者空行。一般的項目都是用框架&#xff0c;包含很多的文件&#xff0c;如果一個個文…

執行git命令時出現fatal: ‘origin‘ does not appear to be a git repository錯誤

執行git命令時出現fatal: ‘origin’ does not appear to be a git repository錯誤 在執行git pull origin master時出現&#xff1a;   fatal: ‘origin’ does not appear to be a git repository   致命提示:“origin”看起來不是一個git存儲庫   fatal: Could not r…

蔣濤作序盛贊Leo新作為“程序員職場實用百科全書”——《程序員羊皮卷》連載(1)

《程序員羊皮卷》當當購買地址&#xff1a;http://product.dangdang.com/product.aspx?product_id20691986 互動購買地址&#xff1a;http://www.china-pub.com/196049 程序員行業從外面看起來有很多絢麗的光環&#xff0c;這里有無數以程序致富的天才&#xff0c;世界首富比…

matlab ones函數_Matlab中相見恨晚的命令(持續更新)

知乎上有個“有哪些讓人相見恨晚的Matlab命令”的話題&#xff0c;很多答主提供的命令確實很實用&#xff0c;為了更方便大家的學習&#xff0c;我就知乎上的答案和我自己想到的都綜合整理成了一篇文章&#xff0c;把我覺得很實用的指令整理出來。知乎原答案鏈接dbstop if erro…

機器學習之特征工程

特征工程-概念 特征工程是一個面向十分廣的概念&#xff0c;只要是在處理數據就可以認為是在做特征工程。個人理解&#xff0c;真正意義上的特征工程還是數據降維和數據升維的過程。 而前期對數據的處理過程&#xff1a; 需要哪些數據&#xff1f;數據如何存儲&#xff1f;數…

ArcGIS AO開發高亮顯示某些要素

參考代碼1 ifeaturecursor pcur ifeatureclass.search(iqueryfilter pfilter); pfilter.whereclause strAddress; //輸入查詢條件&#xff0c;也就是你寸地址的字段名didian ifeature pfeat pcur.nextfeature();// 如果pCur多個要素&#xff0c;則可以考慮將其合并并一起高亮…

Oracle傳輸表空間介紹

傳輸表空間通過拷貝數據文件的方式&#xff0c;實現可跨平臺的數據遷移&#xff0c;效率遠超expdp/impdp, exp/imp等工具。還可以應用跨平臺&數據庫版本遷移表數據、歸檔歷史數據和實現表空間級時間點數據恢復等場景。轉載于:https://www.cnblogs.com/ilifeilong/p/7712654…

git push到GitHub的時候遇到! [rejected] master -> master (non-fast-forward)的問題

git push到GitHub的時候遇到! [rejected] master -> master (non-fast-forward)的問題 解決方法&#xff1a; 1、git pull origin master --allow-unrelated-histories //把遠程倉庫和本地同步&#xff0c;消除差異 2、重新add和commit相應文件 3、git push origin maste…

程序員考核的五大死因(上)

程序員作為企業開發力量的最核心資產&#xff0c;無疑得到公司從上至下的一致關注。開發是個智力密集型產業&#xff0c;程序開發的特點是&#xff0c;付出相同時間的情況下&#xff0c;兩個開發者之間的產能會相差十幾甚至幾十倍。軟件開發人員向來以“不容易考核、工作不容易…

du -sh 如何找到最大的文件夾_小白必看!手把手教你如何在linux上安裝redis數據庫...

首先我們要清楚redis是什么&#xff1f;redis是一種非關系型數據庫&#xff0c;它與MySQL的這種關系型數據庫不同&#xff0c;MySQL是將數據存儲在磁盤中&#xff0c;而redis是儲存在內存中。一般很多公司都是使用MySQLredis兩種數據存儲方式&#xff0c;這樣可以提高性能&…

Linux刪除特殊字符文件

1.刪除帶“-”的文件名的方法使用-- &#xff08;2個橫杠&#xff09;#touch -- -%F-%T#rm -- -%F-%Trm: remove regular empty file -%F-%T?使用絕對路徑并TAB特殊文件名#rm /root/-%F-%Trm: remove regular empty file /root/-%F-%T?2. 刪除包含其它特殊字符的文件對于含有…

機器學習之線性回歸 損失函數、代價函數、目標函數

損失函數&#xff08;Loss Function&#xff09;定義在單個樣本上&#xff0c;算的是一個樣本的誤差。比如&#xff1a; 其中0-1損失函數: 感知器損失函數&#xff1a; 平方和損失函數&#xff1a; 絕對損失函數&#xff1a; 對數損失函數&#xff1a; 代價函數&#xff08;Cos…

bzoj4950(二分圖最大匹配)

[Wf2017]Mission Improbable Time Limit: 1 Sec Memory Limit: 1024 MBSubmit: 105 Solved: 49[Submit][Status][Discuss]Description 那是春日里一個天氣晴朗的好日子,你準備去見見你的老朋友Patrick,也是你之前的犯罪同伙。Patrick在編程競賽上豪賭輸掉了一大筆錢,所以他需…

git 遠程倉庫管理 分支創建、管理、查看、切換

作用&#xff1a; 區分生產環境代碼以及開發環境代碼研究新的功能或者攻關難題解決線上bug 特點&#xff1a; 項目開發中公用分支包括master、dev分支master是默認分支&#xff0c;用于發布&#xff0c;當需要發布時將dev分支合并到master分支分支dev是用于開發的分支&#…

大學生活應該這樣度過之參加一個社團讓自己溶入團隊——《程序員羊皮卷》連載(11)

《程序員羊皮卷》當當購買地址&#xff1a;http://product.dangdang.com/product.aspx?product_id20691986 互動購買地址&#xff1a;http://www.china-pub.com/196049 1.3參加一個社團讓自己溶入團隊 有人曾經問我“學校里的什么活動和工作中的項目管理比較類似&#xff1f…

Hadoop Hive概念學習系列之hive的數據壓縮(七)

Hive文件存儲格式包括以下幾類&#xff1a; 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE 其中TEXTFILE為默認格式&#xff0c;建表時不指定默認為這個格式&#xff0c;導入數據時會直接把數據文件拷貝到hdfs上不進行處理。 SEQUENCEFILE&#xff0c;RCFILE&#xff0c;O…