面對一堆輸入、輸出資料集合d,構建乙個模型t,使得t盡可能地擬合d中輸入資料和輸出資料的關係。其模型可以用下列公式表示:
y =w
1∗x+
w0y = w1 * x + w0
y=w1∗x
+w0這裡的w1和w0是回歸係數。線性回歸就是通過對訓練集的學習,獲得這兩個權值。線性回歸的目的就是求得一條擬合線,使得**值和真實值之間的誤差盡可能的小。求解這樣的一條擬合線,常用的方法是最小二乘法。其主要思想是選擇未知引數,以某種策略使得理論值和測量值之差的平方和達到最小。這樣一來,線性回歸的損失函式可表達為下式:
h mi
n=su
m(y−
y′)=
sum(
y−w1
∗x−w
0)hmin = sum(y - y') = sum(y - w1 * x - w0)
hmin=s
um(y
−y′)
=sum
(y−w
1∗x−
w0)對於求解公式最小化問題,一般採用兩種方法。第一種方法是『解析法』,就是根據極值存在的必要條件,對損失函式的引數(w0和w1)進行求導,得到引數方程,然後將引數方程為0,將最小化問題轉化為方程組求解問題。通過求解得到w1可以用下式表達:
原理是給定乙個集合,對於新輸入的例項,在這個集合中找k個與該例項最近的鄰居,然後判斷這k個鄰居大多屬於某一類,於是這個新輸入的例項就『隨大流』的自動分為這一類。所以從原理就能看出k-近鄰演算法的三個主要元素分別是:k值的選擇、鄰居距離的度量以及分類決策的制定。
k值的選擇:
k值較小,演算法的魯棒性較差,容易發生過擬合現象;k值較大也會增大魯棒性,容易受雜訊和其他類的例項的影響。目前一般採取交叉驗證的方式來選擇k值(若干次檢查驗證,選取平均誤差最小所對應的k值);
鄰居距離的度量
要計算距離,就要求所有特徵都可量化,對於非數值型別的特徵要盡量將其量化。對於不同的特徵,取值範圍也會不同,身高差10cm不能等同於體重差10kg,所以一般需要對特徵進行歸一化處理。歸一化的機制很多,最簡單的方法如下公式:
對於距離的度量有不同的方式,計算方式的不同,也會顯著的影響誰是例項的「最近鄰」。對於n維樣本xi和xj之間的距離l,有如下幾種計算方式:
上面是筆者在書中介紹的幾種距離的計算方式。距離的計算方式還有切比雪夫距離、閔可夫斯基距離、夾角余弦、傑卡德距離 & 傑卡德相似係數、相關係數 & 相關距離、資訊熵等。
格式化的符號及意義
格式符號
表示型別
%s格式化字串
%c格式化字元及ascii碼
%d格式化十進位制整數
%o格式化八進位制整數
%x/%x
格式化十六進製制整數
%e/%e
科學計數
%f/%f
浮點數%%
輸出%m.n
m為顯示的最小整數的寬度,n是小數點後的位數
-輸出結果左對齊
+在正數前面顯示加號
#在八進位制數前面顯示『0o』字樣,十六進製制數前顯示『0x64』字樣
0在輸出數字前填充0代替空格
彙編學習筆記 第五章
從鍵盤獲取乙個位元組 輸出乙個位元組 輸出字串 mov dx,offset lable mov ah,09h int 21h cmp的詳細解釋 cf標誌位 無符號數 of標誌位 帶符號數 單標誌條件轉移指令 無符號數條件轉移指令 帶符號數條件轉移指令 cx暫存器條件轉移指令 of 0 的情況比較方便...
python學習筆記第五章
1.物件是屬性和方法的集合。同樣也有繼承機制。init 就是python的建構函式。變數私有化是在變數前加上 繼承機制 class cat def hello self print i m a cat class dog cat def eat self print i eat bone kitty...
第五章 Python學習筆記
迴圈中break與else關係 salary sum 0salary tatal for i in range 4 a input 請輸入員工的工資 if i 3 print 請繼續輸入 if a.upper q print 輸入已完成 break iffloat a 0 print 輸入有誤,請重...