機器學習入門系列之評價模型的好壞

2021-02-21 數據空間站


但是我們也發現了,沒有對訓練出的模型進行準確率的分析,沒有用確定的指標來評判模型的精確程度,更無法明確的比對模型之間的好壞。今天我們便來說一下,如何評價模型的好壞。拆分數據集是評價模型好壞的前置條件,對於分類和回歸而言,都屬於有監督學習。就之前的KNN分類而言,我們一般是拿到的樣本數據都是有Label的:患病和不患病。但是我們的待預測數據並不知道其患病與否,如果直接將其帶入訓練好的模型,對預測的結果我們也無從評判。

因此在實際應用中,我們會將真實數據集按照一定比例分成訓練數據集和測試數據集,因為真實的數據集是有Label值的。

我們拿到訓練數據集訓練出來的模型後,用測試數據集進行預測,然後用其預測到的結果和測試數據集的真實分類做對比,再結合指標便可以衡量出預測的精準度。

基於Sklearn中切分數據集的方法,我們對鳶尾花數據集來進行一次切分。

from sklearn.model_selection import train_test_splitfrom sklearn import datasets
#測試數據集佔比為20%,加入隨機種子random_state後,每次運行後切分的數據是一致的。X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2, random_state=12345)
#查看切分後的訓練數據集和測試數據集print(X_train.shape) #(120, 4)print(X_test.shape)#(30, 4)print(y_train.shape)#(120,)print(y_test.shape)#(30,)

可以看到,利用Sklearn提供的train_test_split對樣本進行了切分,此時就可以利用訓練數據集進行模型訓練,然後用測試數據集進行模型驗證。

下面我們可以熟悉一些具體的評價指標,最後我們結合之前的例子來實踐一下。

針對分類而言,Sklearn預置了一個score方法,即分類準確度。但是分類準確度針對極度偏斜的數據,會產生問題:模型可能對某一類數據數據進行了擬合,而不能適應其他類型的數據,從而造成在某些情況下分類準確度很高的情況,在其他情況,準確度卻很低,模型看起來「時好時壞」。

所以僅憑分類準確度是無法全面的衡量一個模型是否好壞。於是我們會引入以下指標。

混淆矩陣是機器學習中總結分類模型預測結果的情形分析表,以矩陣形式將數據集中的記錄按照真實的類別與分類模型預測的類別判斷兩個標準進行匯總。
對於一個二分類問題,所有的問題都被分為0和1類,即是和否
混淆矩陣如下:

我們用positive代表0,negative代表1
根據混淆矩陣我們可以得到4個基本指標:

真實值是positive,我們預測為positive的數量,即預測正確(True Positive=TP)真實值是positive,我們預測為negative的數量,即預測錯誤(False Negative=FN)此錯誤對應統計學中的第一類錯誤真實值是negative,我們預測為positive的數量,即預測錯誤(False Positive=FP)此錯誤對應統計學的第二類錯誤真實值是negative,我們預測為negative的數量,即預測正確(True Negative=TN)

混淆矩陣比分類準確度表達的信息更為全面,同時混淆矩陣也衍生出多個指標。

我們通常比較關注我們模型預測對的情況,佔比等,比如是否患病,是否有風險等等,所以精準率通常指我們關注的那個事件,預測的有多準。



召回率是指真實值為1,預測對了的比例,即在我們關注的那個事件真實發生的情況下,我們成功預測的比例是多少。



針對上面幾種指標,我們可以結合看一個簡單的示例:我們的模型已經對一萬個人是否患病做了預測,針對預測結果,我們結合指標查看模型準確度。


分類準確度:9978/10000 = 99.78%結合上面精確率和召回率看來,驗證了我們上面說的分類準確度不能全面的評價一個模型。精確率和召回率的呈現往往是相反的,精確率越高,召回率越小,如何在兩者之間保持平衡呢?
由於精準率和召回率在有些場景下都需要關注,所以這兩個指標組合衍生出了F1 Score,F1 Score是精準率和召回率的調和平均值。

調和平均值的特點是:如果兩者極度不平衡,即一個特別大一個特別小,那調和平均值也會很小,只有當兩者都非常高時,它才會很高。在了解ROC曲線前,需要先熟悉TPR(True Precision Rate)和FPR(false precision rate)。TPR就是上面說到的召回率,即預測對了的比例;而FPR便是 FP/(TN+FP),即預測錯了的比例。

ROC曲線(Receiver Operation Characteristic Cureve)即是描述TPR和FPR之間的關係。x軸是FPR,y軸是TPR。TPR越大越好,FPR越小越好。如果單一的增大TPR,勢必會增加FPR的值,增加了更多預測錯誤的比例。ROC曲線呈現的是FPR與TPR之間的關係,我們關注的是曲線下的面積大小(AUC),面積越大,效果越小,即FPR越小,TPR越大的時候,分類算法就會越好。如下圖,是模型在不同超參數下繪製出的ROC曲線,根據上面,我們可以發現藍色曲線對應的模型是最好的,因為其AUC最大。對應著就是當FPR為10%的時候,藍色曲線的TPR最大,為90%。


分類算法有分類準確度,有精準率,召回率,ROC,那麼對回歸算法而言,都有哪些指標呢?


即真實值減去預測值差值的平方均值。由於有對原數據進行了平方,所以會產生量綱的問題,引入RMSE。




RMSE是對MSE的平方根,消除了量綱的影響。


MAE是直接對真值和預測值差值絕對值的均值。

RMSE和MAE的區別?

RMSE和MAE一樣,有時候RMSE會大於MAE,這是由於RMSE是將錯誤差值平方後再開根號。如果錯誤值本身就很大,則平方後就更大。

所以,RMSE有放大錯誤值中最大錯誤的趨勢,所以我們一般會讓RMSE儘可能的小,意義會更大。


MSE/RMSE/MAE都只是對預測結果做一個差值的呈現,如果將模型用於兩個不同的場景:用來預測房產和預測成績,差值分別是10萬元 和10分,則如何判斷模型更適用於哪一個場景?

此時便引入R方

解釋一下R方的公式:

分子是:根據訓練的模型預測得到的結果和真值結果差值的平方和。

分母是:將y的均值理解為一個基準模型(base model),即針對所有的數據,預測值都是y的均值。所以分母就是根據基準模型預測得到的結果和真值結果差值的平方和。

用1減去,則可以衡量模型基於基準模型的好壞程度:

R方=1,此時分子趨於0,表示模型的數據與真值相差無幾,不犯任何錯誤。

R方=0,此時分子與分母相近,表示模型和基準模型差不多。

R方<0,此時說明我們的模型還不如基準模型,也可能是數據不存在任何線性關係。


🧐分享、點讚、在看,給個三連擊唄!👇 

相關焦點

  • 機器學習系列|機器學習評價指標
    評價指標是針對將相同的數據,輸入不同的算法模型,或者輸入不同參數的同一種算法模型,而給出這個算法或者參數好壞的定量指標。
  • 機器學習入門線路
    ML表示機器學習,DEV表示開發,本專欄旨在為大家分享作為算法工程師的工作,機器學習生態下的有關模型方法和技術,從數據生產到模型部署維護監控全流程,預備知識、理論、技術、經驗等都會涉及,近期內容以入門線路為主,敬請期待!往期回顧:之前寫了有關計算機開發能力和數學能力的入門,在已有一定開發和數學基礎的前提下,大家可以慢慢開展機器學習方面的學習。
  • 小白必看的機器學習入門知識
    也就是說,機器學習是人工智慧的子領域,而深度學習又是機器學習的一個分支!因此我們可以看出機器學習在 AI 領域具有很重要的地位。為什麼要先學習機器學習而不是直接學習深度學習呢?我相信很多初學者應該都會有這方面的疑惑或者思維誤區。正所謂「基礎不牢,地動山搖」講得就是這個道理。所以入門機器學習也要從基礎知識開始。
  • GitHub | 機器學習&深度學習&nlp&cv從入門到深入全套資源分享
    amp;代碼deep_learning_object_detectionObjectDetectionImbalance經典CNN模型LeNet解讀機器學習進階筆記之三 | 深入理解Alexnet一文讀懂VGG網絡Inception V1,V2,V3,V4 模型總結ResNet解析一文簡述
  • 乾貨分享 | 機器學習、深度學習、nlp、cv從入門到深入全套資源分享
    amp;代碼deep_learning_object_detectionObjectDetectionImbalance經典CNN模型LeNet解讀機器學習進階筆記之三 | 深入理解Alexnet一文讀懂VGG網絡Inception V1,V2,V3,V4 模型總結ResNet解析一文簡述
  • 數據分析技術:決策樹分析;機器學習入門模型
    例如,當今時代,剩男與剩女問題嚴峻,選擇合適的結婚對象,需要從身高、體重、長相、學歷、人品、脾氣、家庭條件等很多角度進行考察;同樣的,評價一家公司的好壞,可以從工作量、福利待遇、公司文化、辦公環境、盈利情況等角度進行評價;銀行和商業公司在記錄用戶信息時,會記錄包括年齡、性別、學歷、收入、工作單位、家庭成員、銀行存款、貸款情況、還款情況等信息。
  • 春節充電系列:李宏毅2017機器學習課程學習筆記19之遷移學習(Transfer Learning)
    春節充電系列:李宏毅2017機器學習課程學習筆記01之簡介春節充電系列:李宏毅2017機器學習課程學習筆記02之Regression春節充電系列:李宏毅2017機器學習課程學習筆記03之梯度下降春節充電系列:李宏毅2017機器學習課程學習筆記04分類(Classification)春節充電系列:李宏毅2017機器學習課程學習筆記05
  • Spark機器學習.pdf
    Java 編程入門1.6 Spark Python 編程入門1.7 在*** EC2 上運?K-均值聚類7.1.2 混合模型7.1.3 層次聚類7.2 從數據中提取正確的特徵7.3 訓練聚類模型7.4 使用聚類模型進行預測7.5 評估聚類模型的性能7.5.1 內部評價指標7.5.2 外部評價指標7.5.3 在MovieLens數據集計算性能7.6 聚類模型參數調優7.7 小結第8章 Spark
  • 我的機器學習入門路線圖
  • 【全自動機器學習】ML 工程師屠龍利器,一鍵接收訓練好的模型
    似乎一夜之間,機器學習飛入尋常百姓家,大有全民機器學習之勢。  然而,若在街上拉住一位大爺說:我們來討論一下 SVM 的機制吧,大爺必然掙脫開來大吼:不要耽誤我買菜!機器學習算法紛繁複雜,No free lunch 理論告訴我們,每一個模型都有其偏好,對待不同的學習任務,都需用不同的模型來解決。
  • [算法]機器學習分類模型評估指標
    新的機器學習方法主要包括:深度學習和強化學習。深度學習中可以做分類和回歸的無監督算法,在無監督學習方法主要還是做分類,深度學習的無監督主要是生成模型GAN。強化學習是一種激勵性的學習方式,其評價方式也比較獨特。
  • sklearn:Python語言開發的通用機器學習庫
    小編說:深入理解機器學習並完全看懂sklearn文檔,需要較深厚的理論基礎。但是,要將sklearn應用於實際的項目中,只需要對機器學習理論有一個基本的掌握,就可以直接調用其API來完成各種機器學習問題。本文選自《全棧數據之門》,將向你介紹通過三個步驟來解決具體的機器學習問題。
  • 最入門級別的機器學習圖書:Chris Bishop發布在線新書
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。PRML 大神、微軟劍橋研究院院長 Chris Bishop 與 John Winn 的機器學習新書 Model Based Machine Learning(基於模型的機器學習)不久之前剛剛公布。
  • 機器學習入門教程-第03課:如何學習「機器學習」
    第03課:如何學習「機器學習」學習「機器學習」這件事,我走過很長的一段彎路。有一些心得、體會和方法,在此和大家分享。以模型為驅動,了解「機器學習」的本質本課力圖引導大家以模型為驅動,進行學習。我選擇了幾種經典模型(例如:線性回歸、邏輯回歸、決策樹、支持向量機、條件隨機場、K 均值等),作為入門的進階。初次學習模型,不必貪多。但就這些選定的模型,一定要搞清楚其問題域、模型函數、目標函數、訓練算法……潛入到數學公式推導的層面,對每一步的公式變換和對應的物理意義有所理解,然後再去實踐。
  • 機器學習入門經典課程,臺大李宏毅教授機器學習課程 2019 版來啦
    雷鋒網 AI 科技評論按,提到臺灣大學李宏毅教授,想必很多同學馬上會想到他的機器學習課程。近日,李教授機器學習課程 2019 年版視頻&課程資料終於上線啦~那麼我們在哪裡可以學習這個課程呢?目前,他是國立臺灣大學電氣工程系助理教授,研究方向是機器學習、語音識別和語意理解。 在此前,他在 2017 年開設過《機器學習》的課程,受到很多同學的歡迎,好評如潮。讓我們看看知乎上的網友是怎麼評價李宏毅教授的課程的: 有人說,李教授的課幽默風趣、重點突出、基礎知識和最新技術一應俱全,PPT 也做得簡潔易懂,非常用心。
  • 開發 | 開發者入門必讀:最值得看的十大機器學習慕課教程
    這門課程與之類似,能幫助學習者理清機器學習的發展脈絡。它適合計劃進行系統性學習、投入大量時間的人。對於初學者,建議至少聽完吳恩達的機器學習課程之後,再修這一門。林老師是教科書《Learning From Data》 的作者之一,是華人機器學習領域年輕有為的青年學者。這門課程十分用心細緻,內容比吳恩達老師的入門課程稍稍充實一些。林老師表示,針對頂級機器學習公開課全是英語授課的現狀,不少學生反映英語教學有不易吸收之處。因此,借推出這門課程,希望幫助漢語為母語的學生減少入門難度。
  • Python機器學習系列3:一個通用、強大的Python機器學習函數庫
    如果你對Python機器學習感興趣,正在尋找一個強大的Python機器學習庫,那麼本文將強烈推薦scikit-learn,它可以幫助你把機器學習輕鬆應用到生產環境中。本文將會介紹對scikit-learn庫進行基本介紹,並擴展介紹相關常用機器學習資源。
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。科普書籍:《數學之美》:用妙趣橫生的語言講述了自然語言處理和搜尋引擎裡的數學原理《浪潮之巔》:講述IT產業發展和美國矽谷IT公司的興衰沉浮《黑客與畫家》:本書是矽谷創業之父Paul Graham的文集,程式設計師的世界觀和眼裡的世界興趣是最好的老師,閱讀科普書籍有助於積累興趣,對人工智慧領域有個大概的了解。
  • Python機器學習入門實例
    本文來源《Python程序設計案例教程——從入門到機器學習(微課版)》1.
  • 5分鐘入門機器學習 | 文末視頻教程福利大放送
    作為支撐人工智慧的底層技術之一,機器學習是許多從事人工智慧研發和應用的創業公司真正在做的事情。今天小編就給大家帶來一篇超詳細的機器學習入門指南。 (一) 機器學習是什麼(二) 機器學習能幹什麼(三) 機器學習基本概念(四) 機器學習理論簡介(五) 機器學習的局限性(六) 思考題(七) 面試求職探究和開發一系列算法來如何使計算機不需要通過外部明顯的指示,而可以自己通過數據來學習,建模,並且利用建好的模型和新的輸入來進行預測的學科。