-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfn.R~
57 lines (49 loc) · 2.45 KB
/
fn.R~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#����SVM�������ķ��ྫ��
#���룺dat��ѵ����ݣ���ʽ��n*m�ľ�����Ϊ���ԣ���m��Ϊ���
# testDat��������ݣ���ʽ��n*m�ľ�����Ϊ���ԣ���m��Ϊ���
#�����accy�����ྫ��
TestSVM = function(dat,testDat){
library("class")
library("e1071")
# sizeDat=dim(dat)
# col=sizeDat[2]
col=length(dat)
trainSamp=dat[,1:col-1]
trainLable=dat[,col]
model=svm(trainSamp,trainLable)
testSamp=testDat[,1:col-1]
testLable=testDat[,col]
prd=predict(model,testSamp)
rightLable=which(prd==testLable)
accy=length(rightLable)/length(testLable)
return(accy)
table(prd,testLable)
}
#����ݿ�Ŀ����ȥ�����ȥ�������,ʾ��Ϊȥ�� "?"
#���룺 sdat,n*m����ݿ�
#�����newDat,ȥ�����ݺ�Ľ����ݿ�
DelBlank=function(sdat){
sizeDat=dim(sdat)
for(i in 1:sizeDat[1]){
sigBlank=which(sdat[i,]=="?")
sdat[i,sigBlank]=NA
}
newDat=na.omit(sdat)
return(newDat)
}
CalAccy=function(filename){
sdats=read.table(filename,sep=",")
sdatc=DelBlank(sdats)
sdatcSamp=sdatc[,2:length(sdatc)]
sdatcCls=as.character(sdatc[,1])
sdatcD=cbind(sdatcSamp,sdatcCls)
sdatAcy=TestSVM(sdatcD,sdatcD)
return(sdatAcy)
}
CroDat=function(dat){
rowcol=dim(dat)
lableAll=levels(dat[,rowcol[2]])
for(i in 1:length(lableAll)){
idSig=dat[,rowcol[2]==lableAll[i]]
}
}