附 預測數(shù)值型數(shù)據(jù):回歸_第1頁
附 預測數(shù)值型數(shù)據(jù):回歸_第2頁
附 預測數(shù)值型數(shù)據(jù):回歸_第3頁
附 預測數(shù)值型數(shù)據(jù):回歸_第4頁
附 預測數(shù)值型數(shù)據(jù):回歸_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、附 預測數(shù)值型數(shù)據(jù):回歸擬合直線擬合直線局部加權(quán)線性回歸局部加權(quán)線性回歸理解數(shù)據(jù)理解數(shù)據(jù)權(quán)衡偏差和方差權(quán)衡偏差和方差前言 預測聯(lián)系型數(shù)據(jù) “回歸可以做任何事情” 最近有新意的應(yīng)用:預測名人的離婚率1. 先介紹線性回歸2. 再引入局部平滑技術(shù)3. 分析如何更好的擬合數(shù)據(jù)4. 在欠擬合情況下的縮減技術(shù)5. 探討偏差和方差的概念用線性回歸找到最佳擬合直線 線性回歸 優(yōu)點:結(jié)果易于理解,計算上不復雜 缺點:對非線性的數(shù)據(jù)擬合不好 回歸的目的是預測數(shù)值型目標值:找到目標的計算公式 預測某人的汽車功率: HorsePower = 0.0015*annualSalary-0.99*hoursListenin

2、gToRadio 以上為回歸方程 0.0015和-0.99為回歸系數(shù) 求回歸系數(shù)的過程即為回歸本次只討論線性回歸回歸的一般方法 收集數(shù)據(jù) 按輸入要求整理數(shù)據(jù) 數(shù)據(jù)可視化以直觀分析數(shù)據(jù) 訓練算法:找到回歸系數(shù) 測試算法:使用R2或者預測值和數(shù)據(jù)的擬合度來分析模型的效果 使用算法:給定輸入的時候預測輸出基本算法例:對以下點集進行擬合 import numpy as np lstDt = lstLbl = # lbl: label fr = open(.ex0.txt) for line in fr.readlines(): arLn = line.strip().split() lstDt.app

3、end(float(arLn0), float(arLn1) lstLbl.append(float(arLn2)計算回歸: xMat = np.mat(lstDt) yMat = np.mat(lstLbl).T xTx = xMat.T*xMat if np.linalg.det(xTx)=0.0: print This is matrix is singular, cannot do inverse! else: ws = xTx.I*(xMat.T*yMat)繪圖 plt.figure() lstX = dt1 for dt in lstDt plt.scatter(lstX, lst

4、Lbl) lstY = ws0, 0+ws1, 0*x for x in lstX plt.plot(lstX, lstY)如何如何評判模型的好壞? 不同數(shù)據(jù)集: 分別做線性回歸, 得到完全一樣的兩個模型 如何比較回歸效果? 計算yHat和y的相關(guān)系數(shù): arrYHat = np.array(lstY) arrY = np.squeeze(np.array(yMat) print np.corrcoef(arrY, arrYHat)局部加權(quán)線性回歸平滑值 k = 1平滑值 k = 0.01平滑值 k = 0.003代碼:算法實現(xiàn) xMat = np.mat(lstDt) yMat = np.m

5、at(lstLbl).T m = xMat.shape0 k = 0.01 lstY = for i in range(m): wgt = np.mat(np.eye(m) dtTst = xMati, : for j in range(m): difMat = dtTst - xMatj, : wgtj, j = np.exp(difMat*difMat.T/(-2*k*2) xTx = xMat.T*(wgt*xMat) if np.linalg.det(xTx)=0.0: print This is matrix is singular, cannot do inverse! else:

6、 ws = xTx.I*(xMat.T*(wgt*yMat) matV = dtTst*ws lstY.append(matV0, 0)代碼:顯示結(jié)果 plt.figure() lstX = dt1 for dt in lstDt plt.scatter(lstX, lstLbl) sIdx = np.argsort(lstX) lstXSort = lstXidx for idx in sIdx lstYSort = lstYidx for idx in sIdx plt.plot(lstXSort, lstYSort) arrYHat = np.array(lstY) arrY = np.

7、squeeze(np.array(yMat) print np.corrcoef(arrY, arrYHat)普通和加權(quán)的代碼區(qū)別示例:預測鮑魚的年齡 使用較小的核將得到較小的訓練誤差: k = 0.1:擬合值與原點集的誤差為56.8426 k = 1:擬合值與原點集的誤差為429.891 k = 10:擬合值與原點集的誤差為549.118 為什么不使用盡量小的核?因為會過擬合 過擬合會體現(xiàn)在新數(shù)據(jù)的大誤差上: k = 0.1:擬合點與原值點的誤差為25619.93 k = 1:擬合點與原值點的誤差為573.526 k = 10:擬合點與原值點的誤差為517.571縮減系數(shù)來“理解”數(shù)據(jù)縮減系

8、數(shù)來“理解”數(shù)據(jù) 縮減法能取得更好的預測效果 可通過預測誤差最小化得到:1. 獲取數(shù)據(jù)2. 抽出部分數(shù)據(jù)作為測試用3. 剩余數(shù)據(jù)作為訓練集4. 訓練完畢再用測試集測試5. 使用不同的重復上述過程6. 選取使預測誤差最小的嶺回歸編程 在普通回歸方法可能會產(chǎn)生錯誤的時候,嶺回歸仍能正常工作 所以不需要再判斷行列式是否為0( 0) 對列做歸一化處理,使所有列同等重要 如右圖: 以指數(shù)變化 最小時:回歸系數(shù)與線性回歸一致 最大時:回歸系數(shù)全部縮減為0修改代碼:嶺回歸 lam = 0.2 xMat = np.mat(lstDt) yMat = np.mat(lstLbl).T xTx = xMat.T*

9、xMat denom = xTx+np.eye(xMat.shape1)*lam ws = denom.I*(xMat.T*yMat)嶺回歸結(jié)果圖預備:lasso方法lasso方法前向逐步回歸 與lasso效果相似,但計算更簡單 屬于貪心算法,即每一步都盡可能減少誤差 算法開始時,所有權(quán)值都設(shè)為1 然后每一步都決策對某個權(quán)值增加或減少一個很小的步長 優(yōu)點:理解現(xiàn)有模型并作出改進 當模型建立,可以運行該算法找出最重要的特征 及時停止對那些不重要特征的搜集 如果用于測試,該算法每100次迭代就可以構(gòu)建出一個模型,可以使用類似10折交叉驗證的方法比較這些模型,選擇最優(yōu)模型權(quán)衡偏差與方差 偏差:模型預測值和原始數(shù)據(jù)之間的差異 方差:是模型之間的差異 偏差是學習的產(chǎn)物,是度量學習效果的標準 方差用來比較和選擇較好的模型 選擇模型必須折中考慮偏差和方差示例:預測樂高玩具套裝價格 樂高套裝的生命周期大約幾年

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論