判別分析(discriminant analysis)是一種分類技術(shù)。它通過一個(gè)已知類別的“訓(xùn)練樣本”來建立判別準(zhǔn)則,并通過預(yù)測(cè)變量來為未知類別的數(shù)據(jù)進(jìn)行分類。
判別分析的方法大體上有三類,即距離判別、Fisher判別和Bayes判別和。距離判別思想是根據(jù)已知分類的數(shù)據(jù)計(jì)算各類別的重心,對(duì)未知分類的數(shù)據(jù),計(jì)算它與各類重心的距離,與某個(gè)重心距離最近則歸于該類。Fisher判別思想是投影降維,使多維問題簡(jiǎn)化為一維問題來處理。選擇一個(gè)適當(dāng)?shù)耐队拜S,使所有的樣品點(diǎn)都投影到這個(gè)軸上得到一個(gè)投影值。對(duì)這個(gè)投影軸的方向的要求是:使每一組內(nèi)的投影值所形成的組內(nèi)離差盡可能小,而不同組間的投影值所形成的類間離差盡可能大。Bayes判別思想是根據(jù)先驗(yàn)概率求出后驗(yàn)概率,并依據(jù)后驗(yàn)概率分布作出統(tǒng)計(jì)推斷。
用R進(jìn)行判別分析的方法在MASS包,里面有l(wèi)da(線性)和qda(二次) 注意使用條件:1、正態(tài)總體,2、協(xié)方差相同(線性)/不同(二次)
1、線性的判別分析
#載入相關(guān)包和數(shù)據(jù)集library(MASS)library(sampling)#把iris重新賦值,并加入分類標(biāo)記和行號(hào)標(biāo)記i<-irisi$lv<-as.numeric(i$Species)i$lv<-as.factor(i$lv)i$id<-c(1:150)#進(jìn)行分層抽樣,每個(gè)類別隨機(jī)抽出10個(gè)作為預(yù)測(cè)集,剩下的作為訓(xùn)練集i.s<-strata(data=i,stratanames="lv",size=c(10,10,10),method="srswor",description=F)i.train<-i[!(i$id %in% i.s$ID_unit),]i.PRedict<-i[(i$id %in% i.s$ID_unit),]#擬合線性判別ldafit<-lda(lv~.-id-Species,data=i.train)#預(yù)測(cè)訓(xùn)練集和預(yù)測(cè)集Y<-predict(fit,i.train)YN<-predict(fit,i.predict)#查看擬合情況table(Y$class,i.train$lv)table(YN$class,i.predict$lv)2、二次判別
#當(dāng)協(xié)方差矩陣不相同時(shí)(即來自不同總體),沿用上一個(gè)已經(jīng)做好的數(shù)據(jù)fit2<-qda(lv~.-id-Species,data=i.train,cv=T)#再進(jìn)行結(jié)果的擬合Y2<-predict(fit,i.train)YN2<-predict(fit,i.predict)#查看擬合情況table(Y2$class,i.train$lv)table(YN2$class,i.predict$lv)#所得結(jié)果是一樣的,不知道是否為數(shù)據(jù)的協(xié)方差是一樣的原因。另外,M一個(gè)使用貝葉斯進(jìn)行判斷分析的文章:R語言之判別分析、貝葉斯判別分析
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注