Seite 1 von 1

Error in dcSVM()

Verfasst: Mi Apr 03, 2019 10:41 am
von Student88
Ich wollte eine binäre Klassifikation mit einem Kmeans SVM durchführen hierzu habe ich die Funktion dcSVM() aus dem Packet SwarmSVM verwendet

Code: Alles auswählen


kmeans <- dcSVM(x=Stichprobe1[,-1], y=Stichprobe1[,1], k=118, m=8000, kernel=1 , max.levels = 4)

Zu meiner großen Verwunderung bekam ich die Fehlermeldung Error in sample.int(m, k) :
cannot take a sample larger than the population when 'replace = FALSE'

Mein m ist doch viel größer als mein k. Ich würde mich über Hilfe sehr freuen.

Viele Grüße

Jan

Re: Error in dcSVM()

Verfasst: Mi Apr 03, 2019 12:45 pm
von jogo
Hallo Jan,

läuft denn

Code: Alles auswählen

example(dcSVM)
ordentlich?
Welche Versionsnummer hat das Paket?

Gruß, Jörg

Re: Error in dcSVM()

Verfasst: Mi Apr 03, 2019 1:02 pm
von Student88
Vielen Dank Jörg.

Ja example(dcSVM) läuft und mit meinen Daten läuft es aus wenn ich ein ganz niedriges k habe.
Aber ich verstehe nicht warum es mit meinem k nicht funktioniert. Das k ist schließlich immer noch deutlich kleiner als das m.
In dem Skript was ich zur Rate gezogen habe gab es eine Empfehlung wie ich das k wählen soll, aber dieses k funktioniert leider nicht.
Woher weiß ich wie ich k maximal wählen kann?

Viele Grüße

Jan

Re: Error in dcSVM()

Verfasst: Mi Apr 03, 2019 1:12 pm
von jogo
Und welche Versionsnummer hat das Paket?

Noch ein Gedanke:
die beiden Objekte k und m, die Du als Parameter an die Funktion lieferst, müssen nicht identisch sein mit den beiden Objekten, die den Fehler erzeugen ...

und noch etwas. Kannst Du den Quelltext der Funktion einsehen? z.B. per

Code: Alles auswählen

print(dcSVM)
ansonsten gibt es den Quelltext auch hier:
https://github.com/cran/SwarmSVM/blob/master/R/dcSVM.R

Gruß, Jörg

Re: Error in dcSVM()

Verfasst: Mi Apr 03, 2019 1:25 pm
von Student88
Danke. Das ist ein guter Tipp mit dem Quelltext.

Das Packet hat die Versionsnummer 0.1-5

Re: Error in dcSVM()

Verfasst: Mi Apr 03, 2019 2:15 pm
von Student88
Vielleicht habe ich auch etwas falsch verstanden.
Bei der Hilfe zu der dcSVM() Funktion steht

Code: Alles auswählen

 k the number of sub-problems divided 
Entspricht die Anzahl der Teilprobleme dann der Anzahl der Cluster, die verwendet werden ?