
R語言中的線性判別分析_r語言 線性判別分析
在R語言中,線性判別分析(Liner Discriminant Analysis,簡稱LDA),依靠軟件包MASS中有線性判別函數(shù)lqa()來實(shí)現(xiàn)。該函數(shù)有三種調(diào)用格式:
1)當(dāng)對(duì)象為數(shù)據(jù)框data.frame時(shí)
lda(x,grouping,prior = propotions,tol = 1.0e-4,method,CV = FALSE,nu,…)
2) 當(dāng)對(duì)象為公式Formula時(shí)
lda(formula,data,…,subnet,na.action)
3) 當(dāng)對(duì)象為矩陣Matrix時(shí)
lda(x,group,…,subnet,na.action)
對(duì)于第一種情況,grouping表示每個(gè)觀測樣本的所屬類別;
prior表示各類別的先驗(yàn)概率,默認(rèn)取訓(xùn)練集中各樣本的比例;
tol表示篩選變量,默認(rèn)取0.0001
對(duì)于第二種情況,formula表示判別公式,比如,y~x1+x2+x3,或者y~x1*x1
data表示數(shù)據(jù)集
subnet表示樣本
na.action表示處理缺失值的方法,默認(rèn)為“如果樣本中有缺失值,則lda()函數(shù)無法運(yùn)行”;如果設(shè)置為na.omit,則表示“自動(dòng)刪除樣本中的缺失值,然后,進(jìn)行計(jì)算”
對(duì)于第三種情況,x表示矩陣
data表示數(shù)據(jù)集
subnet表示樣本
na.action表示處理缺失值的方法,默認(rèn)為“如果樣本中有缺失值,則lda()函數(shù)無法運(yùn)行”;如果設(shè)置為na.omit,則表示“自動(dòng)刪除樣本中的缺失值,然后,進(jìn)行計(jì)算”
下面,舉一個(gè)例子,來說明線性判別分析。我們選用kknn軟件包中的miete數(shù)據(jù)集進(jìn)行算法演示。miete數(shù)據(jù)集記錄了1994年慕尼黑的住房傭金標(biāo)準(zhǔn)中一些有趣變量,比如房子的面積、是否有浴室、是否有中央供暖、是否供應(yīng)熱水等等,這些因素都影響著傭金的高低。
1.數(shù)據(jù)概況
首先,簡單了解一下,miete數(shù)據(jù)集。
> library(kknn) > data(miete) > head(miete)
nm wfl bj bad0 zh ww0 badkach fenster kueche mvdauer bjkat wflkat
1 693.29 50 1971.5 0 1 0 0 0 0 2 4 1
2 736.60 70 1971.5 0 1 0 0 0 0 26 4 2
3 732.23 50 1971.5 0 1 0 0 0 0 1 4 1
4 1295.14 55 1893.0 0 1 0 0 0 0 0 1 2
5 394.97 46 1957.0 0 0 1 0 0 0 27 3 1
6 1285.64 94 1971.5 0 1 0 1 0 0 2 4 3
nmqm rooms nmkat adr wohn
1 13.865800 1 3 2 2
2 10.522857 3 3 2 2
3 14.644600 1 3 2 2
4 23.548000 3 5 2 2
5 8.586304 3 1 2 2
6 13.677021 4 5 2 2
> dim(miete)
[1] 1082 17
我們看到,該數(shù)據(jù)集一共有1082條樣本,和17個(gè)變量。下面,我們利用summary()來查看變量的信息。
> summary(miete)
nm wfl bj bad0 zh ww0
Min. : 127.1 Min. : 20.00 Min. :1800 0:1051 0:202 0:1022
1st Qu.: 543.6 1st Qu.: 50.25 1st Qu.:1934 1: 31 1:880 1: 60
Median : 746.0 Median : 67.00 Median :1957
Mean : 830.3 Mean : 69.13 Mean :1947
3rd Qu.:1030.0 3rd Qu.: 84.00 3rd Qu.:1972
Max. :3130.0 Max. :250.00 Max. :1992
badkach fenster kueche mvdauer bjkat wflkat nmqm
0:446 0:1024 0:980 Min. : 0.00 1:218 1:271 Min. : 1.573
1:636 1: 58 1:102 1st Qu.: 2.00 2:154 2:513 1st Qu.: 8.864
Median : 6.00 3:341 3:298 Median :12.041
Mean :10.63 4:226 Mean :12.647
3rd Qu.:17.00 5: 79 3rd Qu.:16.135
Max. :82.00 6: 64 Max. :35.245
rooms nmkat adr wohn
Min. :1.000 1:219 1: 25 1: 90
1st Qu.:2.000 2:230 2:1035 2:673
Median :3.000 3:210 3: 22 3:319
Mean :2.635 4:208
3rd Qu.:3.000 5:215
Max. :9.000
我們可以選擇nmkat(凈租金)作為 待判別變量—一是,由于該變量在含義上容易受其他變量影響,為被解釋變量;二是,nmkat自身就有5個(gè)等級(jí)類別,其相應(yīng)的樣本量依次為 219、230、210、208、215,即每一類的樣本量都為200個(gè)左右,分布比較均勻。
2.數(shù)據(jù)預(yù)處理
下面,我們將miete數(shù)據(jù)集,分為訓(xùn)練集和測試集。
為了提高判別效果,我們考慮采用分層抽樣的方式,由于miete數(shù)據(jù)集中,待判別變量nmkat的5個(gè)等級(jí)分布比較均勻,因此采用5個(gè)等級(jí)按等量抽取樣本。(如果分布不均勻,則采用按比例抽取樣本)。具體如下:
> library(sampling) > n = round(2/3*nrow(miete)/5) > n
[1] 144
可以看到,訓(xùn)練集占總樣本的2/3,測試集占總樣本的1/3,從訓(xùn)練集中nmkat變量的每一個(gè)等級(jí)抽取的樣本數(shù)是144個(gè)。
> #以nmkat變量的5個(gè)等級(jí)劃分層次,進(jìn)行分層抽樣 > sub_train = strata(miete,stratanames = "nmkat",size=rep(n,5),method="srswor") > head(sub_train)
#顯示訓(xùn)練集抽取的情況,包括nmkat變量取值、該樣本在數(shù)據(jù)集中的序號(hào)、被抽取的概率、以及被抽取的層次。
nmkat ID_unit Prob Stratum
1 3 1 0.6857143 1
2 3 2 0.6857143 1
3 3 3 0.6857143 1
16 3 16 0.6857143 1
20 3 20 0.6857143 1
22 3 22 0.6857143 1
>
> #獲取如上ID_unit所對(duì)應(yīng)的樣本構(gòu)成訓(xùn)練集,并刪除變量1、3、12 > data_train = getdata(miete[,c(-1,-3,-12)],sub_train$ID_unit) > data_test = getdata(miete[,c(-1,-3,-12)],-sub_train$ID_unit) > dim(data_train); dim(data_test) #分別顯示訓(xùn)練集、測試集的維度
[1] 720 14
[1] 362 14
> head(data_test)
wfl bad0 zh ww0 badkach fenster kueche mvdauer bjkat nmqm rooms nmkat
7 28 0 1 0 0 1 1 9 4 17.011071 1 1
8 36 0 1 0 0 0 1 3 4 19.710278 1 3
9 33 0 1 0 0 0 0 1 4 25.840606 1 4
10 57 0 1 0 1 0 1 9 6 11.534035 2 2
11 75 0 1 0 1 0 1 3 6 16.504533 3 5
17 79 0 1 0 0 0 0 20 4 7.507215 3 2
adr wohn
7 2 2
8 2 2
9 2 2
10 2 2
11 2 2
17 2 2
至此,數(shù)據(jù)理解和數(shù)據(jù)預(yù)處理過程結(jié)束,得到可以直接使用的訓(xùn)練集data_train和測試集data_test。
3.線性判別
這里使用公式formula格式,進(jìn)行判別。首先要加載軟件包MASS,接著使用nmkat作為待判別變量,其他變量作為特征變量,根據(jù)公式nmkat~. (如果變量為y,則公式為y~. ) ,使用訓(xùn)練集data_train來運(yùn)行 lda()函數(shù)。
> library(MASS) > fit_lda1 = lda(nmkat~., data_train) #以公式格式進(jìn)行線性判別 > names(fit_lda1) > fit_lda1$prior
1 2 3 4 5
0.2 0.2 0.2 0.2 0.2
我們可以看到,各類別的先驗(yàn)概率在5個(gè)等級(jí)中都為0.2,之和為1,即它們都相等,這與它們分別均勻?qū)?yīng)。
> fit_lda1$means
wfl bad01 zh1 ww01 badkach1 fenster1 kueche1
1 54.87500 0.055555556 0.6041667 0.138888889 0.3888889 0.06944444 0.04166667
2 60.59722 0.013888889 0.8125000 0.027777778 0.5486111 0.08333333 0.04166667
3 66.76389 0.013888889 0.8194444 0.041666667 0.5208333 0.06944444 0.07638889
4 74.70833 0.013888889 0.8750000 0.041666667 0.6458333 0.03472222 0.07638889
5 90.10417 0.006944444 0.9375000 0.006944444 0.7708333 0.04166667 0.20833333
mvdauer bjkat.L bjkat.Q bjkat.C bjkat^4 bjkat^5
1 14.444444 -0.21580517 -0.104562739 0.031056500 0.17323372 -0.17585847
2 11.923611 -0.12450298 -0.211398581 -0.002588042 0.20604313 -0.12642562
3 11.847222 -0.12782306 -0.145478593 0.049690399 0.16273470 -0.07349309
4 10.347222 -0.08964215 -0.127293769 -0.035197366 0.12861291 0.01137393
5 5.333333 -0.04482107 -0.009092412 0.018633900 0.02624753 -0.01574852
nmqm rooms adr.L adr.Q wohn.L wohn.Q
1 8.231574 2.173611 -0.019641855 -0.7654655 0.03437325 -0.3997431
2 10.988627 2.416667 -0.034373246 -0.7569604 0.08838835 -0.4252586
3 12.495436 2.597222 -0.019641855 -0.7654655 0.11294067 -0.3487121
4 14.107342 2.861111 0.004910464 -0.7909811 0.16695577 -0.3912379
5 17.108865 3.250000 0.019641855 -0.7484552 0.27498597 -0.2041241
從上面的結(jié)果中,可以看到一些很能反映現(xiàn)實(shí)情況的數(shù)據(jù)特征。比如,住房面積wfl變量,它明顯隨著租金nmkat的升高而逐步提高。這與我們的常識(shí)“房子的面積越大,租金就越貴”是十分吻合的。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03