誤差計算
使用**值到真實值距離的平方來計算誤差
def從一條簡單的直線開始error(f,x,y):
return sp.sum((f(x)-y)**2)
scipy中的polyfit(多項式擬合)函式使用者解決這個問題。
給定資料x和y,以及期望的多項式的階(直線的階是1)可以找到乙個模型,能夠最小化之前定義的誤差函式
fp1,residuals,rank,sv,rcond = sp.polyfit(x,y,1,full=true)該函式會把擬合函式所使用的引數返回,即fp1=
[ 2.59619213 989.02487106];把full設定為true可以獲得更多逼近過程的背景資訊。
在這裡我們對殘差感興趣,即近似誤差
#散點座標圖
plt.scatter(x, y)
#x座標
plt.xlabel('
time')
plt.ylabel(
'hits/hour')
#tick 標記號於
plt.xticks([w*7*24 for w in range(10)],
['week %i
'%w for w in range(10)])
#自動測量/規模 tight=緊
plt.autoscale(tight=true)
fp1, residuals, rank, sv, rcond = sp.polyfit(x, y, 1, full=true)
fp1#
根據引數建立模型
f1 =sp.poly1d(fp1)
deferror(f, x, y):
return sp.sum((f(x)-y)**2)
error(f1, x, y)
#生成x值用於作圖
fx = sp.linspace(0, x[-1], 1000)
plt .plot(fx, f1(fx), linewidth=4)
plt.legend([
"d=%i
" % f1.order], loc="
upper left")
#2階多項式
f2p = sp.polyfit(x, y, 2)
f2 =sp.poly1d(f2p)
error(f2, x, y)
plt .plot(fx, f2(fx), linewidth=4)
plt.legend([
"d=%i
" % f1.order,"
d=%i
" % f2.order], loc="
upper left")
#開啟網格
plt.grid()
#顯示圖表
機器學習第一章
q 什麼是機器學習 機器學習不同於以往的計算機程式設計,致力於研究如何通過計算機手段,利用以往的經驗來改善系統自身的效能。一般的程式設計都是明確的告訴電腦該做什麼。機器學習希望提供資料給學習演算法,讓它自己學習,找到其種的規律。在面對新情況的時候就能應用已產生的模型,提供相應的判斷。機器學習的本質任...
機器學習第一章
今天進行了機器學習第一章的學習,我覺得首先你可以認清這些概念 1 模型 策略 演算法 2 分類與回歸的概念 3 監督 無監督 半監督問題 2 過擬合 欠擬合 下面是拓展的一些概念 海森矩陣 黑塞矩陣 hessian matrix 又譯作海森矩陣 海瑟矩陣 海塞矩陣等,是乙個多元函式的二階偏導數構成的...
《機器學習》 第一章
圖書館借了本機器學習,作者是 tom m.mitchell,亞馬遜這本書排名挺靠前的。好了,直接開篇。接下來大篇幅講述了,如何挑選訓練經驗,選擇目標函式,目標函式的表示,選擇函式逼近演算法。整個設計下來,分為了四大模組 執行系統 鑑定器 泛化器 實驗生成器。看過這本書的都會被第一章的跳棋學習深深吸引...