距離判別法及R實現
阿新 • • 發佈:2018-12-18
簡介
根據已知分類資料,分別計算各類重心,即是各組的均值,距離判別準則是,對任給的一次觀測,若他與第i類的重心最近,就認為他來自第i類
兩總體距離判別
設有兩個總體 G1和G2,從第一個總體中抽取n1個樣品,從第二個總體中抽取n2個樣品,對每個樣品測量p個指標,取任一個樣品實測指標為X=(x1,x3,xp)‘,分別計算樣品X到總體G1和G2的距離D(X,G1)和D(X,G2),按距離最近準測判別分類,即是
具體而言,設μ1,μ2、∑1、∑2、分別為總體G1和G2的均值向量和協方差陣,通常採用馬氏距離進行判別,即:
(1)當∑1=∑2=∑時,設
令
則
為線性判別函式
其中
於是可根據W(X)的正負性判定所取樣本的類別:
(2)當∑1!=∑2時,仍然用
為判別函式,不過它是X的二次函式,而不是上面那中情況下的線性函式
R實現
> d = read.table("clipboard",header=T) > attach(d) > d N Q C P X1G X2G 1 1 8.3 4.0 29 1 1 2 2 9.5 7.0 68 1 1 3 3 8.0 5.0 39 1 1 4 4 7.4 7.0 50 1 1 5 5 8.8 6.5 55 1 1 6 6 9.0 7.5 58 1 2 7 7 7.0 6.0 75 1 2 8 8 9.2 8.0 82 1 2 9 9 8.0 7.0 67 1 2 10 10 7.6 9.0 90 1 2 11 11 7.2 8.5 86 1 2 12 12 6.4 7.0 53 1 2 13 13 7.3 5.0 48 2 2 14 14 6.0 2.0 20 2 3 15 15 6.4 4.0 39 2 3 16 16 6.8 5.0 48 2 3 17 17 5.2 3.0 29 2 3 18 18 5.8 3.5 32 2 3 19 19 5.5 4.0 34 2 3 20 20 6.0 4.5 36 2 3
> plot(Q,C);text(Q,C,X1G,adj = -0.8)
> plot(Q,P);text(Q,P,X1G,adj = -0.8)
> plot(C,P);text(C,P,X1G,adj = -0.8)
***學了兩天R語言,包找不到,各種報錯,棄坑,改python機器學習
***水文一篇,勿噴