機器學習中的常用操作
阿新 • • 發佈:2018-11-16
機器學習中的常用操作
- 輸入節點到隱藏節點,特徵數量n可能會變化,這個取決於我們定義的隱藏層的節點個數,但是樣本數量m是不變的,從隱藏層出來還是m
- 在預測的時候,我們需要不斷的迭代輸入的特徵
提高精度
- 增加樣本數量
- 增加特徵
- 根據現有的特徵生成多項式(從\(x_1\), \(x_2\)擴充套件到\(x_1 + x_2 + x_1^{2} + x_2^{2} + x_1{x_2}\))
- 尋找新的特徵
- 增加正則化引數\(\lambda\)
- 減小正則化引數\(\lambda\)
對資料的劃分
- 將原來的訓練樣本按照6:2:2的比例劃分成Train, Cross Validation, Test三個集合
- 如果不考慮Cross Validation的話, 則將訓練樣本劃分成7:3的比例 -> Train(7), Test(3)
- 關於Cross Validation
- 如果我們對同一個機器學習問題, 假設了多個不同的模型(表現形式不同, 如\(kx+b\)和\(x^2+b\), 而不是\(k_1x+b_1\)和\(kx+b\), 因為k和b是我們的引數, 是我們要求的, 他們不應該考慮進去), 我們需要選擇最好的模型, 這個時候就要通過Cross Validation中的資料計算每一個模型測試的\(J_{cv}(\theta)\)來判斷, \(J_{cv}(\theta)\)
- 如果我們對同一個機器學習問題, 假設了多個不同的模型(表現形式不同, 如\(kx+b\)和\(x^2+b\), 而不是\(k_1x+b_1\)和\(kx+b\), 因為k和b是我們的引數, 是我們要求的, 他們不應該考慮進去), 我們需要選擇最好的模型, 這個時候就要通過Cross Validation中的資料計算每一個模型測試的\(J_{cv}(\theta)\)來判斷, \(J_{cv}(\theta)\)
誤差
- 一旦對資料集合進行了劃分,那麼我們的損失值就從原來的\(J(\theta)\)變成了\(J_{train}(\theta)\), \(J_{cv}(\theta)\), \(J_{test}(\theta)\), 其中\(J_{train}(\theta)\)的功能就是在沒有進行資料集合劃分的\(J(\theta)\)的功能, 而\(J_{test}(\theta)\)是在我們已經擬合了假設函式, 使用Test集合中的資料進行測試所產生的損失, \(J_{cv}(\theta)\)在上面已經提到過了
- \(J_{train}(\theta)\), \(J_{cv}(\theta)\)
高偏差(high bias)和高方差(high variance)
- 高偏差: 欠擬合
- 增加樣本數量是徒勞
- 高方差: 過擬合
- 增加樣本數量會提高精度