Machine Learning - Coursera week6 Evaluating a learning algorithm

Evaluating a learning algorithm

1. Design what to do next

在預測房價的學習例子,假如你已經完成了正則化線性回歸,也就是最小化代價函數J的值。假如在你得到你的學習參數以后把它應用到放到一組新的房屋樣本上進行測試,發現在預測房價時產生了巨大的誤差。
要想改進這個算法,應該怎么辦?
其中一種辦法是使用更多的訓練樣本,但是這個辦法不總是有用;
也許需要更多的特征,或者減少特征;
減小或增大正則化參數lambda的值;

機器學習診斷能夠讓你深入理解系統哪里工作,哪里不工作或者存在問題。

2. Evaluating a hypothesis

如何評估假設函數?下面討論如何避免過擬合和欠擬合問題。
如何判斷一個假設函數是過擬合的?
對于簡單的例子,可以對假設函數h(x)進行畫圖,然后觀察圖形趨勢。但對于特征變量不止一個的這種一般情況,想要通過畫出假設函數來進行觀察就會變得很難甚至是不可能實現。因此,我們需要另一種方法來評估我們的假設函數。 如下給出了一種評估假設函數的標準方法,假設我們有這樣一組數據組,在這里我只展示出10組訓練樣本。為了確保我們可以評估我們的假設函數,將這些數據分成兩部分。按照7:3的比例將70%的數據作為訓練集,30%的數據作為測試集。如果這組數據有某種規律或順序的話,那么隨機選擇70%作為訓練集,剩下的30%作為測試集。如果數據已經隨機分布了,可以選擇前70%和后30%.
接下來展示了一種典型的方法,你可以按照這些步驟訓練和測試你的學習算法 比如線性回歸算法。 首先,你需要對訓練集進行學習得到參數θ。 具體來講就是最小化訓練誤差J(θ)。 這里的J(θ)是使用那70%數據。 然后計算出測試誤差, JtestJtest來表示測試誤差.使用包含參數θ的假設函數對每一個測試樣本進行測試,然后通過假設函數和測試樣本計算出mtest個平方誤差. 這是使用線性回歸和平方誤差標準時測試誤差的定義.

如果是考慮分類問題,比如說使用邏輯回歸.訓練和測試邏輯回歸的步驟與之前所說的非常類似. 唯一的區別是現在我們使用的是mtest個測試樣本.測試誤差Jtest(θ)叫誤分類率,也被稱為0/1錯分率. 當你的假設函數h(x)的值大于等于0.5,并且y的值等于0或者當h(x)小于0.5并且y的值等于1,這個誤差等于1.用錯分率誤差來定義測試誤差.

3. Model selection and Train/Validation/Test sets

模型選擇問題:
怎樣選用正確的特征來構造學習算法?
選擇學習算法中的正則化參數λ?

數據集的劃分:
通常劃分為3部分,按照6:2:2分為訓練集、驗證集和測試集,定義訓練誤差 交叉驗證誤差 和測試誤差。

我們的做法是訓練多個不同的模型,使用驗證集去選擇交叉驗證最小的模型,最后使用測試集估計模型的泛化誤差。

轉載于:https://www.cnblogs.com/siucaan/p/9623132.html

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

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

相關文章

Tiny Core Linux 4.5 發布,微型 Linux 操作系統

世界上最小的Linux桌面發行版——Tiny Core Linux 今天發布了4.5版本。Tiny Core Linux是一個基于Linux2.6版本內核,采用BusyBox、Tiny X、FLTK 和其它小型軟件構筑的帶圖形用戶界面的微型Linux操作系統。由于體積很小,大約10MB,故采用整體裝…

30-- 返回倒數第 k 個節點

文章目錄1.問題描述2.代碼詳情1.問題描述 實現一種算法,找出單向鏈表中倒數第 k 個節點。返回該節點的值。 輸入: 1->2->3->4->5 和 k 2 輸出: 4 2.代碼詳情 設置快和慢兩個指針,初始化時快指針比慢指針多走k-1步…

maven的web工程打包為war并部署到服務器

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.在maven工程上右鍵 --> export --> 選擇WAR file --> next 2. 點擊Browse... 選擇導出后存放位置 3. 將工程名改為ROOT.war…

使用線程池的好處

第一:降低資源消耗。通過重復利用已創建的線程降低線程創建和銷毀造成的消耗。第二:提高響應速度。當任務到達時,任務可以不需要等到線程創建就能立即執行。第三:提高線程的可管理性。線程是稀缺資源,如果無限制的創建…

5.19 - Stacks and Queues

Decode Stringk[encoded_string] 的編碼字符串,將編碼的字符重復k次,最后打印出一個完整的字符串。 思路:使用棧結構,由里層向外層,層層解碼,當遇到了[ 字符時,向stack當中添加元素,…

Hive筆記之嚴格模式(strict mode)

Hive有一個嚴格模式,在嚴格模式下會對可能產生較大查詢結果的語句做限制,禁止其提交執行。 一、切換嚴格模式 查看當前的模式:hive> set hive.mapred.mode; hive.mapred.mode is undefined 未定義即為false,即no-strict模式。 …

Notepad++ 6.0 發布,優化了大文件加載性能

開源編輯器Notepad今天發布了最新的6.0版本。 Notepad 是一款免費的開源跨平臺代碼編輯器。它支持包括中文在內的多國語言,功能強大,除了可以用來制作一般的純文字說明文件外,也可以作為代碼編輯器。Notepad不僅可以實現語法高亮顯示&#x…

31-- 二叉搜索樹的范圍和

文章目錄1.問題描述2.代碼詳情1.問題描述 給定二叉搜索樹的根結點 root,返回 L 和 R(含)之間的所有結點的值的和。 二叉搜索樹保證具有唯一的值。 示例 1: 輸入:root [10,5,15,3,7,null,18], L 7, R 15 輸出&…

java中 flush()方法

一般主要用在IO中,即清空緩沖區數據,就是說你用讀寫流的時候,其實數據是先被讀到了內存中,然后用數據寫到文件中,當你數據讀完的時候不代表你的數據已經寫完了,因為還有一部分有可能會留在內存這個緩沖區中…

JDK下載地址、SecureCRT中JDK安裝和環境配置、SecureCRT窗口編程、linux下命令運行小程序

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. 下載linux版本的JDK。java SE、java EE JDK是通用的, 32位系統選Linux x86, 64位系統選Linux x64&#xff…

HTMLTestRunner 漢化版---來源一個大神的源碼(加了失敗截圖,用例失敗重新執行 功能)...

HTMLTestRunner 漢化版 20170925 測試報告完全漢化,包括錯誤日志的中文處理針對selenium UI測試增加失敗自動截圖功能增加失敗自動重試功能增加餅圖統計同時兼容python2.x 和3.x20180402 表格樣式優化修復部分bug增加截圖組,可展示多張截圖,首…

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder

一.問題描述&#xff1a;pom.xml導入依賴時報錯 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder 二.解決方法&#xff1a; 1.加入ali鏡像源 <repositories><repository><id>maven-ali</id><url>https://mave…

你很棒的---自我管理方法,一生受用!!!

激勵自己--自我暗示 每天寫下五件幸福的事 &#xff1a;&#xff08;例12月2日周日&#xff09;1、給爸媽各買了一件衣服 2、出門曬了一下太陽 3、認識了一個新朋友&#xff0c;去了青年湖公園&#xff0c;人生就是一種經歷&#xff01;4、看了場電影《命運呼叫轉移》悟人生真…

持續集成與自動化部署 - jenkins sonar代碼質量管理平臺 部署和基礎使用(五)...

1 jenkins 安裝參考鏈接 1.1 安裝jenkins [roottest-node3 ~]# yum install -y java-1.8.0 [roottest-node3 ~]# cd /etc/yum.repos.d/ [roottest-node3 yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [roottest-node3 yum.repos.d]# rpm --import http://pkg…

【轉】數學與編程——求余、取模運算及其性質

一、求余運算&#xff08;Remainder&#xff09; &#xff08;參考維基百科&#xff1a; http://zh.wikipedia.org/wiki/余數 http://en.wikipedia.org/wiki/Remainder http://en.wikipedia.org/wiki/Euclidean_divisionhttp://zh.wikipedia.org/wiki/同余&#xff09; Euclid…

javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer‘s close_notify

1. 問題描述&#xff1a; ** BEGIN NESTED EXCEPTION ** javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peers close_notifySTACKTRACE:javax.net.ssl.SSLException: closing inbound before receiving peers close_notifyat sun.security.ssl.Alert.…

提高虛擬機運行速度方法

原網頁 要我注冊才能復制... 所以我只記錄了那個網址&#xff0c;我的情況是啟動很慢&#xff0c;照作后有效果。 該網址&#xff1a;提高虛擬機速度

InputStream 、 InputStreamReader和BufferedReader

InputStream &#xff1a; 是所有字節輸入流的超類&#xff0c;一般使用它的子類&#xff1a;FileInputStream等&#xff0c;它能輸出字節流&#xff1b;InputStreamReader &#xff1a; 是字節流與字符流之間的橋梁&#xff0c;能將字節流輸出為字符流&#xff0c;并且能為字節…

多線程原理分析面試題理解

系列前言 本系列是本人參加微軟亞洲研究院&#xff0c;騰訊研究院&#xff0c;迅雷面試時整理的&#xff0c;另外也加入一些其它IT公司如百度&#xff0c;阿里巴巴的筆試面試題目&#xff0c;因此具有很強的針對性。系列中不但會詳細講解多線程同步互斥的各種“招式”&#xff…

Could not load driverClass “com.mysql.jdbc.Driver“

1. 問題描述 Could not load driverClass “com.mysql.jdbc.Driver” 2. 解決辦法 檢查是否成功導入了mysql的jdbc的jar包 導入后成功解決 參考文獻&#xff1a; https://blog.csdn.net/weixin_43433032/article/details/98494228 感謝作者分享&#xff01;