Fout in xj[i] : ongeldig subscripttype ‘lijst’

Ik heb geprobeerd de data(bank) te splitsen in trainingsdata en testdata. Maar op de een of andere manier krijg ik hieronder een foutmelding. Hoe kan ik dit probleem oplossen?

train = bank[1:100, ]
test = bank[!train,]
Status.test =Status[!train]
glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=bank,family=binomial,subset=train)
#Error in xj[i] : invalid subscript type 'list'
glm.probs=predict(glm.fit,test,type="response") 
glm.pred=rep("genuine",100)  
glm.pred[glm.probs>.5]="counterfeit"
table(glm.pred,test)##classification on training data
#Error in table(glm.pred, test) : all arguments must have the same length

Antwoord 1, autoriteit 100%

Het probleem zit in subset=train. Volgens de ?glm. de subsetmoet een vector zijn in tegenstelling tot een subset van de originele dataset:

subset een optionele vector die een subset van waarnemingen specificeert die moeten worden
gebruikt in het aanpasproces.

Daarom moet u de code mogelijk wijzigen in:
glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=train,family=binomial)

of

glm.fit=glm(Status~Length+Right+Bottom+Top+Diagonal,data=bank,family=binomial,subset=1:100)


Antwoord 2

Over het algemeen kun je bereiken wat je hebt gevraagd door zoiets als dit te doen:
Stel dat kolom ‘reactie’ wordt waargenomen kolom:

samples=1:100
train = bank[samples, ]
test = bank[-samples,]
Status.test =bank[samples,'response']

Trouwens, ik zou willen voorstellen om de functie sample()te gebruiken om willekeurig monsters te nemen voor trein en test. zoals dit:

samples=sample(nrow(bank), 0.8*nrow(bank))
train = bank[samples, ]
test = bank[-samples,]
Status.test =bank[samples,'response']

Antwoord 3

Als je de trainingsgegevens als volgt instelt:

data[1: 100,]

Vervolgens gebruik je in de functie lm()het argument:

data = bank[train,]

U kunt ook een trein instellen als:

seq(1: 100)

als een reeks indices die u moet gebruiken in de

lm(): data = bank, subset = train

LEAVE A REPLY

Please enter your comment!
Please enter your name here

2 − 1 =

Other episodes