1. 程式人生 > >機器學習之旅(二)

機器學習之旅(二)

吳恩達教授的機器學習課程的第二週相關內容:

1、多變數線性迴歸(Linear Regression with Multiple Variables)

1.1、多維特徵

x j ( i )

x_{j}^{\left ( i \right )} 代表特徵矩陣中第 i 行的第 j 個特徵,也就是第 i 個訓練例項的第 j 個特徵.
支援多變數的假設 h 表示為: h θ ( x
) = θ 0 + θ 1 x
1
+ θ 2 x 2 + . . . + θ n x n h_{\theta }\left ( x \right )=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n}
,這個公式中有 n+1 個引數和 n 個變數,為了使得公式能夠簡化一些,引入 x 0 = 1 x_{0}=1 ,則公式轉化為: h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta }\left ( x \right )=\theta_{0}x_{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n}
此時模型中的引數是一個 n+1 維的向量,任何一個訓練例項也都是 n+1 維的向量,特徵矩陣 X 的維度是 m*(n+1)。 因此公式可以簡化為: h θ ( x ) = θ x h_{\theta }\left ( x \right )=\theta ^{\top }x , 其中上標 T 代表矩陣轉置。
注意:這裡的x表示矩陣X的某一行,例如:
在這裡插入圖片描述

1.2、多變數梯度下降

與單變數線性迴歸類似,在多變數線性迴歸中,我們也構建一個代價函式,則這個代價函式是所有建模誤差的平方和,即: J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) ( y ( i ) ) 2 J\left ( \theta _{0},\theta _{1},...,\theta _{n} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left (h _{\theta }\left (x ^{\left ( i \right )} \right )- (y ^{\left ( i \right )}\right )^{2}
其中: h θ ( x ) = θ x = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta }\left ( x \right )=\theta ^{\top }x=\theta_{0}x_{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n}
我們的目標和單變數線性迴歸問題中一樣,是要找出使得代價函式最小的一系列引數。
多變數線性迴歸的批量梯度下降演算法為
在這裡插入圖片描述
我們開始隨機選擇一系列的引數值,計算所有的預測結果後,再給所有的引數一個新的值,如此迴圈直到收斂。

1.3、梯度下降法實踐 1-特徵縮放

在我們面對多維特徵問題的時候,我們要保證這些特徵都具有相近的尺度,這將幫助梯度下降演算法更快地收斂。
以房價問題為例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值為 0-2000 平方英尺,而房間數量的值則是 0-5,以兩個引數分別為橫縱座標,繪製代價函式的等高線圖能, 看出影象會顯得很扁,梯度下降演算法需要非常多次的迭代才能收斂。
在這裡插入圖片描述
解決的方法是嘗試將所有特徵的尺度都儘量縮放到-1 到 1 之間。通常我們所用的方法是令: x n = x n μ n s n x_{n}=\frac{x_{n}-\mu _{n}}{s_{n}} ,其中 μ n \mu _{n} 是平均值, s n s_{n} 是標準差,即:
在這裡插入圖片描述

1.4 梯度下降法實踐 2-學習率

梯度下降演算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們可以繪製迭代次數和代價函式的圖表來觀測演算法在何時趨於收斂。
在這裡插入圖片描述
梯度下降演算法的每次迭代受到學習率的影響, 如果學習率 α 過小, 則達到收斂所需的迭代次數會非常高; 如果學習率 α 過大, 每次迭代可能不會減小代價函式, 可能會越過區域性最小值導致無法收斂。
通常可以考慮嘗試些學習率:
α=0.01, 0.03, 0.1, 0.3, 1, 3, 10

1.5 特徵和多項式迴歸

線性迴歸並不適用於所有資料,有時我們需要曲線來適應我們的資料,比如一個二次方模型: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 h_{\theta }\left ( x \right )=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}^{2}
或者三次方模型: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 h_{\theta }\left ( x \right )=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}^{2}+\theta _{3}x_{3}^{3}

相關推薦

機器學習

吳恩達教授的機器學習課程的第二週相關內容: 1、多變數線性迴歸(Linear Regression with Multiple Variables) 1.1、多維特徵 x

小白的linux學習

探索linux一、linux系統結構linux是一個倒樹結構linux中所有的東西都是文件這些文件都在系統頂級目錄“/” /就是根目錄/目錄以下為二級目錄這些目錄都是系統裝機時系統自動建立的二級目錄的作用/bin 二進制可執行文件也就是系統命令/sbin

Node.js學習-----MongoDB的安裝與啟動

tar 商業 blank script img blog javascrip ref es2017 安裝與啟動MongoDB Windows 用戶向導:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-

我的機器學習:回歸與工程應用

多個 算法 ati function RR numpy pen 圖片 bsp 內容:線性回歸;邏輯回歸,應用場景。 一、線性回歸 有監督學習,根據學習樣本{x->y},學習一個映射f:X->Y(線性相關),輸出預測結果y_i。最簡單的例子:y=ax+b 重要組成

我的機器學習:決策樹

family 分配 根據 drop chrom labels arch ntp -o 決策樹概念: 分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點和有向邊組成。結點有兩種類型:內部節點和葉節點,內部節點表示一個特征或屬性,葉節點表示一個類。 分類的時候,從根

機器學習

吳恩達教授的機器學習課程的第五週相關內容: 1、代價函式 首先引入一些便於稍後討論的新標記方法: 假設神經網路的訓練樣本有 m 個,每個包含一組輸入 x 和一組輸出訊號 y, L 表示神經網路層數, S I 表示每層的 neuron 個數(SL 表示輸出層神經元個數), S L 代表

機器學習

吳恩達教授的機器學習課程的第四周相關內容: 1、神經網路:表述(Neural Networks: Representation) 1.1、非線性假設( Non-linear Hypotheses ) 我們之前學的,無論是線性迴歸還是邏輯迴歸都有這樣一個缺點,即: 當特徵太多時,計

機器學習

吳恩達教授的機器學習課程的第三週相關內容: 1、邏輯迴歸(Logistic Regression) 1.1、分類問題 在分類問題中,你要預測的變數 y 是離散的值,我們將學習一種叫做邏輯迴歸 (Logistic Regression) 的演算法,這是目前最流行使用最廣泛的一種學習

系統學習機器學習總結--機器學習演算法比較

轉自:https://blog.csdn.net/bryan__/article/details/52026214 其實這篇文章真正出處來自:csuldw 本文主要回顧下幾個常用演算法的適應場景及其優缺點! 機器學習演算法太多了,分類、迴歸、聚類、推薦、影象識別領域等等,要想找到一個合適演算

python學習

Python基礎知識(1) 一、變數 變數名可以由字母、數字、下劃線任意組合而成。 注意:1.變數名不能以數字開頭;            2.變數名不能為關鍵字;           &n

記錄我的Python學習time庫的基本操作

1、time() 功能:獲取當前時間戳,即計算機內部時間值,浮點數  2、ctime() 功能:獲取當前時間並以易讀方式表示,返回字串 3、gmtime() 功能:獲取當前實踐,表示為計算機可處理的時間格式  4、時間格式化:如t=time.gmtime()  

Servlet學習:生命週期

Servlet 生命週期 Servlet 生命週期可被定義為從建立直到毀滅的整個過程。以下是 Servlet 遵循的過程: Servlet 通過呼叫 init () 方法進行初始化。 Servlet 呼叫 service() 方法來處理客戶端的請求。 Servlet

系統學習機器學習總結--離散型特徵編碼方式:one-hot與啞變數*

在機器學習問題中,我們通過訓練資料集學習得到的其實就是一組模型的引數,然後通過學習得到的引數確定模型的表示,最後用這個模型再去進行我們後續的預測分類等工作。在模型訓練過程中,我們會對訓練資料集進行抽象、抽取大量特徵,這些特徵中有離散型特徵也有連續型特徵。若此時你使用的模型

機器學習

吳恩達教授的機器學習課程的第八週相關內容: 1、聚類(Clustering) 1.1、無監督學習:簡介 在一個典型的監督學習中,我們有一個有標籤的訓練集,我們的目標是找到能夠區分正樣本和負樣本的決策邊界,在這裡的監督學習中,我們有一系列標籤,我們需要據此擬合一個

機器學習

吳恩達教授的機器學習課程的第九周相關內容: 1、異常檢測(Anomaly Detection) 1.1、問題的動機 異常檢測(Anomaly detection)問題。這是機器學習演算法的一個常見應用。 這種演算法的一個有趣之處在於:它雖然主要用於非監督學習問題

我的Kotlin學習

在Kotlin語言中文站學習了一段時間,這是第二次看文件,第一次簡單的看了一遍,等真正要用的時候又發現不真正實踐的話,學習的效果並沒有很好,所以在第二遍看文件的時候,自己手寫做了一遍筆記,然後接著寫這個學習之旅的部落格 首先是Kotlin的基本語法: 1.定

Python學習

mil 循環 函數 type() 高級編程 裝飾器 pri 綁定 沒有 Python基礎知識(19):面向對象高級編程(Ⅱ) 定制類 形如“__xx__”的變量或函數在Python中是有特殊用途的 1、__str__ 讓打印出來的結果更好看 __str__:面向用戶;__r

Python學習十一

Python基礎知識(20):錯誤、除錯和測試 一、錯誤處理 在執行程式的過程中有可能會出錯,一般我們會在新增一段程式碼在可能出錯的地方,返回約定的值,就可以知道會不會出錯以及出錯的原因 1、使用try......except......finally......錯誤處理機制 try...可能會出異常

Python學習十六

Python基礎知識(25):常用內建模組 1、datetime:處理日期和時間 (1)獲取當前日期和時間 from datetime import datetime now = datetime.now() print(now) 結果: 2018-12-07 16:05:53.396953

Python學習十八

Python基礎知識(27):常用內建模組(Ⅲ) 1、urlblib urllib提供了一系列用於操作URL的功能 url是統一資源定位符,對可以從網際網路上得到的資源的位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的地址 網際網路上的每個檔案都有一個唯一的URL,它包含的資訊指出檔案的位置以及