第一章 乙個極小的機器學習應用 構建第乙個模型

2022-08-27 01:51:11 字數 1546 閱讀 7506

誤差計算

使用**值到真實值距離的平方來計算誤差

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)

print

fp1#

根據引數建立模型

f1 =sp.poly1d(fp1)

deferror(f, x, y):

return sp.sum((f(x)-y)**2)

print

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)

print

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,亞馬遜這本書排名挺靠前的。好了,直接開篇。接下來大篇幅講述了,如何挑選訓練經驗,選擇目標函式,目標函式的表示,選擇函式逼近演算法。整個設計下來,分為了四大模組 執行系統 鑑定器 泛化器 實驗生成器。看過這本書的都會被第一章的跳棋學習深深吸引...