監督學習/無監督學習/半監督學習

2020-12-11 北京圖靈學院

監督學習:(數據有輸入有輸出),通過已有的一部分數據和輸出數據之間的相應關係,生成一個函數,將輸入映射到合適的輸出,在準確的說有監督學習就是訓練樣本中必須有標籤或者標記;

無監督學習:(數據只有輸入),給定的訓練樣本中難以標註類別或者標註成本過高,這類沒有類別標註(未被標記)的訓練集建模模式稱為無監督學習

半監督學習:一部分數據有標籤一部分數據沒標籤稱為半監督學習

監督學習常用算法:

分為 分類(classification)和回歸(regression)倆大類

分類:

K近鄰、支持向量機、樸素貝葉斯、決策樹、隨機森林、人工神經網絡等;

回歸:

線性回歸、神經網絡等

無監督學習常用算法:

無監督學習算法主要為 聚類:

K-Means聚類,高斯混合模型等;

監督學習—KNN(k最近鄰分類算法)

KNN算法思想:

K最近鄰算法,顧名思義就是搜尋最近的K個已知類別樣本用於未知類別樣本的預測。

"最近"的度量就是應用點之間的距離或相似性,距離越小或相似度越高,說明他們之間越近

"預測",對於離散型的因變量來說,從k個最近的已知類別樣本中挑選出頻率最好的類別用

於未知樣本的判斷;對於連續性的因變量來說,則是將K個最近的已知樣本均值用作未知樣

本的預測。

最佳K值的選擇

為了在模型中防止出現過擬合或欠擬合狀態,也為了獲得最佳的k值,可以考慮倆種解決方

案:一種是設置k近鄰樣本投票權重,假設讀者在使用KNN算法進行分類或預測時設置的

k值比較大,擔心模型發生欠擬合的現象,一個簡單有效的方法就是設置近鄰樣本的投票權

重,如果一直樣本距離未知樣本比較遠,則對應的權重就設置的低一些,否則權重高一些

通常可以將權重設置為距離的倒數,另一種是採用多重交叉驗證,最後選出平均誤差最小的

k值,當然還可以將倆種方法的有點相結合,選出理想的k值。

相似度度量方法

度量點之間的相似度的方法主要有歐氏距離、曼哈頓距離、餘弦相似度和傑卡德相似係數,

本章文章我們只涉及前倆種:

歐氏距離:

該距離度量的是倆點之間的直線距離,如果二維平面存在倆點A(x1,y1),B(x2,y2),則他們之間

的直線距離為:

曼哈頓距離

該距離也稱為"曼哈頓街區距離",度量的是倆點在軸上的相對距離總和:

如果二維平面存在倆點A(x1,y1),B(x2,y2),則他們之間的曼哈頓距離為

Da,b = |x1-x2| + |y1-y2|

近鄰樣本的搜尋方法

全表掃描(暴力搜尋法)

KD樹搜尋法(一種二分之的樹)

樹球搜尋法

算法步驟

Step.1>>>初始化距離為最大值

Step.2>>>計算未知樣本和每個訓練樣本的距離dist

Step.3>>>得到目前K個最臨近樣本中的最大距離maxdist

Step.4>>>如果dist小於maxdist,則將該訓練樣本作為k_最近鄰樣本

Step.5>>>重複步驟2,3,4直到未知樣本和所有訓練樣本的距離都算完

Step.6>>>統計k-近鄰樣本中每個類標號出現的次數

Step.7>>>選擇出現頻率最大的雷彪好作為樣本的類標號

KNN算法模型應用

Python中sklearn模塊提供了有關KNN算法實現分類和預測的功能,該功能存在於子模塊neighbors中,對於分類問題需要調用KNeighborsClassifer類,對於預測問題則需要調用KNeighborsRegressor類

語法說明:

參數說明:

n_neighbors:用於指定近鄰樣本個數K,默認為5

weights:用於指定近鄰樣本的投票權重,默認為'uniform',表示所有樣本的投票權重一樣

如果為"distance",表示投票權重與距離成反比,及近鄰樣本與為未知樣本點距離越遠

權重越小,反之權重越大

algorithm:用於指定近鄰樣本的搜尋算法,如果為"ball_tree"代表使用球樹搜尋法

如果為"kd_tree"則表示使用KD樹搜尋法

如果為"brute"則表示使用暴力搜尋法

默認為auto,表示KNN算法會根據數據特徵自動選擇最佳的搜尋算法

leaf_size:用於指定球樹或KD樹葉子節點包含的最小樣本量,用於控制樹的生長條件,會影響樹的查詢速度,默認為30

metric:用於指定距離的度量指標,默認為閔可夫斯基距離

p:當參數metric為閔可夫斯基距離時,p=1表示計算點之間的曼哈頓距離,p=2表示計

算點之間的歐氏距離,該參數默認為2

metric_parames:為metric參數所對應的距離指標添加關鍵字參數

n_jobs:用於設置KNN算法並行計算所需的cpu數量,默認為1

分類問題解決

數據來源:http://archive.ics.uci.edu/ml/datasets.html

相關焦點

  • 比監督學習做的更好:半監督學習
    然而,一個重大突破揭示了添加「無監督數據」可以提高模型泛化和性能。事實上,在非常多的場景中,帶有標籤的數據並不容易獲得。半監督學習可以在標準的任務中實現SOTA的效果,只需要一小部分的有標記數據 —— 數百個訓練樣本。在這個我們對半監督學習的探索中,我們會有:半監督學習簡介。
  • 監督學習,非監督學習,半監督學習三者的區別是什麼,舉出一個最有...
    監督(supervised)=標籤(label),是否有監督,就是輸入數據(input)是否有標籤,有標籤則為有監督學習,沒標籤則為無監督學習。至於半監督學習,就是一半(一點點)數據有標籤,一半(極其巨大)數據沒標籤。——簡單一句話答案。
  • 「半監督學習系列」2. 半監督學習概述
    具體來說,半監督學習包括以下幾種不同的場景:· 半監督分類。也叫做對有標籤數據和無標籤數據(或部分標籤數據)的分類,是一種對監督分類問題的拓展。訓練數據由 1 個標記的實例通常我們會假設無標籤數據比有標籤數據多得多,i.e.u>>l。半監督分類的目標是得到一個分類器,這個分類器是通過對有標籤數據和無標籤數據訓練而得到的,它比我們單獨訓練有標籤數據得到的監督分類器更好。· 約束聚類。這是無監督聚類的一種拓展。訓練數據包括未標記的實例
  • 機器學習實戰-監督學習、無監督學習
    上一篇:機器學習實戰-特徵選擇之遞歸特徵消除最近兩天收到同學的私信,對於算法中的一些監督學習,無監督學習不是很了解,也不知道從何下手,本篇小編就來介紹一下這三者是什麼東西。本文章節1、監督學習2、無監督學習3、兩者的區別4、兩者的使用場景監督學習監督學習,小編有個簡單的理解方式,按照這個順序來理解1、有兩撥人,一撥人是好人,一撥是壞人2、好人的行為特徵有:扶老奶奶過馬路,撿到一分錢交給警察叔叔,當志願者等等3、壞人的行為特徵有:偷東西
  • 什麼是無監督學習?
    這時有人可能會想,難道有監督學習和無監督學習就是非黑即白的關係嗎?有沒有灰呢?Good idea。灰是存在的。二者的中間帶就是半監督學習(semi-supervised learning)。對於半監督學習,其訓練數據的一部分是有標籤的,另一部分沒有標籤,而沒標籤數據的數量常常極大於有標籤數據數量(這也是符合現實情況的)。隱藏在半監督學習下的基本規律在於:數據的分布必然不是完全隨機的,通過一些有標籤數據的局部特徵,以及更多沒標籤數據的整體分布,就可以得到可以接受甚至是非常好的分類結果。
  • 半監督學習入門基礎(一)
    SSL的目標是要比單獨使用有標記數據訓練的監督學習技術得到更好的結果。這是半監督學習系列文章的第1部分,對這個機器學習的重要子領域進行了簡要的介紹。區分半監督學習,監督學習和無監督學習整個數據集中可用於訓練的有標記數據的範圍區分了機器學習的這三個相關領域。
  • 《機器學習》筆記-半監督學習(13)
    >讓學習器不依賴外界交互,自動地利用未標記樣本來提升學習性能,就是半監督學習(semi-supervised learning)。 半監督學習可進一步劃分為純(pure)半監督學習和直推學習(transductive learning),前者假定訓練數據中的未標記樣本並非待預測數據,而後者則假定學習過程中所考慮的未標記樣本恰是待預測數據,學習的目的就是在這些未標記樣本上獲得最優泛化性能。
  • 機器學習算法之有監督學習和無監督學習的區別
    在這篇文章中,我們將探討有監督和無監督學習,這是機器學習算法的兩個主要類別。一、監督學習如果你有關注有關於人工智慧的新聞,你可能已經聽說過AI算法需要很多人工標記的示例。這些故事指的是監督學習,這是機器學習算法中比較流行的類別。監督式機器學習適用於你知道輸入數據結果的情況。假設你要創建一個圖像分類機器學習算法,該算法可以檢測貓,狗和馬的圖像。
  • 監督學習、非監督學習和強化學習
    learning)、非監督學習(Unsupervised learning)與強化學習(Reinforcement learning),不過在沒有任何概念的前提下,只看定義很難理解它們,我試著用教育孩子的方式來解釋,如果有什麼疏漏之處,歡迎大家指正。
  • 無監督學習的魅力
    無監督學習是機器學習算法裡非常撲朔迷離的一個類別,負責解決這些「沒有真實值 (no-ground-truth) 」的數據。本文會講到,無監督學習到底是什麼,和機器學習的其他算法有何本質區別,用的時候有哪些難點,以及推薦閱讀的傳送門。最簡單的理解方式,就是把算法想像成考試。
  • 手把手教你實現GAN半監督學習
    在正式介紹實現半監督學習之前,我在這裡首先介紹一下監督學習(supervised learning),半監督學習(semi-supervised learning)和無監督學習(unsupervised learning)的區別。監督學習是指在訓練集中包含訓練數據的標籤(label),比如類別標籤,位置標籤等等。
  • 【乾貨】監督學習與無監督學習簡介
    當我們希望將輸入映射到輸出時,監督學習通常將其作為分類任務去完成,監督學習中的常用算法包括邏輯回歸,樸素貝葉斯,支持向量機,人工神經網絡和隨機森林。在回歸和分類任務中,目標都是找到輸入數據中的特定關係,以便我們有效地生成正確的輸出數據。
  • 自監督、半監督和有監督全涵蓋,四篇論文遍歷對比學習的研究進展
    其中,SimCLRv2 是在 SimCLR 的基礎上構建的一個半監督學習框架,作者給出的分析和實驗顯示,半監督學習(SimCLRv2)極大提升了自監督對比學習(SimCLR)的效果,在文章中的實驗條件下,SimCLRv2 僅使用 10% 的標記數據就獲得了超過監督學習的效果。
  • 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
    目前最常用的模型是 word2vec 和 GloVe,它們都是基於分布假設(在相同的上下文中出現的單詞往往具有相似的含義)的無監督學習方法。讓我們快速瀏覽一下目前研究出來的四種嵌入方法吧:從簡單的詞向量平均的基線到無監督/監督學習方法,以及多任務學習方案(如上文所述)。
  • Yann LeCun:用預測學習替代無監督學習
    Perez、Yann LeCun編譯:王楠、劉小芹【新智元導讀】日前,Facebook AI 實驗室負責人、紐約大學教授 Yann LeCun 受邀在今年的 NIPS 大會發表主旨演講,暢談深度學習最近技術進展。
  • 深度 | 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多任務學習
    目前最常用的模型是 word2vec 和 GloVe,它們都是基於分布假設(在相同的上下文中出現的單詞往往具有相似的含義)的無監督學習方法。儘管像平均詞嵌入這樣簡單的基線也能夠一直給出很好的實驗結果,但一些新的類似於無監督和監督學習以及多任務學習的方法,在 2017 年底 2018 年初出現在了人們的視野中,並且取得了令人矚目的性能提升。讓我們快速瀏覽一下目前研究出來的四種嵌入方法吧:從簡單的詞向量平均的基線到無監督/監督學習方法,以及多任務學習方案(如上文所述)。
  • 機器學習三兄弟概念大揭秘:監督學習、非監督學習、強化學習
    監督學習、非監督學習和強化學習描述了機器處理和利用數據學習的三種不同手段,根據不同的數據和任務人們採用不同的學習方式來從數據中凝練出知識,從而在生產生活中幫助人類。在深度學習中著名的反向傳播算法根本上也是將誤差向後傳播來指導模型改進的。目前監督學習佔據了機器學習算法的絕大部分,通過算法將輸入變量x和輸出變量y銜接起來創造了很多具有深遠影響的應用。要理解監督學習我們需要把握住以下幾點,在監督學習中所有的算法、輸入、輸出以及場景都是人類提供的。將監督學習問題分為兩類將更好地幫助我們理解監督學習地含義。
  • 機器學習模型一覽:監督型、半監督型和無監督型
    全文共2149字,預計學習時長4分鐘圖片來源:Unsplash 拍攝者:Franck V.機器學習領域主要有以下三種任務類型:監督型,半監督型和無監督型。監督學習的目標是學習一個函數,已知該函數的樣本數據和輸出值的情況下,盡最大可能擬合輸入和輸出間的關係。半監督學習旨在使用從少量標記數據點所學的知識來標記未標記的數據點。無監督學習中不存在標註過的樣本輸出值,因此其目標是推斷一組數據樣本中的內部結構。
  • 監督學習、非監督學習、強化學習都是什麼?終於有人講明白了
    作者:小川雄太郎來源:大數據DT(ID:hzdashuju)01 術語整理本節概述機器學習及其三個分類(監督學習、非監督學習和強化學習)。02 監督學習、非監督學習、強化學習這裡對三種機器學習(監督學習、非監督學習和強化學習)分別進行介紹。首先說明監督學習。
  • 自步對比學習: 充分挖掘無監督學習樣本
    本文介紹一篇我們發表於NeurIPS-2020的論文《Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID》,該工作提出自步對比學習框架及混合記憶模型,旨在解決無監督及領域自適應表徵學習中數據無法被充分挖掘的問題。