Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » “only integer scalar arrays can be converted to a scalar index” erscheint
Druckversion
Druckversion
Autor
Universität/Hochschule J “only integer scalar arrays can be converted to a scalar index” erscheint
lissy1234567
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 01.09.2017
Mitteilungen: 448
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-05-09


Hallo,

ich versuche gerade in Python 2 mit dem Package anfis zu spielen (Code zu finden unter Dabei habe ich das allseits bekannte load_iris()-Dataset aus sklearn geladen. Es hat auch alles geklappt, allerdings erhalte ich beim Versuch, "anfis.plotMF()" anzuwenden, ständig den oben stehenden Fehler: only integer scalar arrays can be converted to a scalar index
Hier mein Code:
python
import anfis
from anfis.membership import membershipfunction, mfDerivs
import numpy
from sklearn.datasets import load_iris
 
data = load_iris()
X = data['data']
Y = data['target']
#training_data = numpy.loadtxt("training.txt", usecols=[1,2,3])
#X = training_data [:,0:2]
#Y = training_data [:,2]
# Defining the Membership Functions
mf = [[['gaussmf',{'mean':0.,'sigma':1.}],['gaussmf',{'mean':-1.,'sigma':2.}],['gaussmf',{'mean':-4.,'sigma':10.}],['gaussmf',{'mean':-7.,'sigma':7.}]], 
      [['gaussmf',{'mean':1.,'sigma':2.}],['gaussmf',{'mean':2.,'sigma':3.}],['gaussmf',{'mean':-2.,'sigma':10.}],['gaussmf',{'mean':-10.5,'sigma':5.}]],
      [['gaussmf',{'mean':0.,'sigma':1.}],['gaussmf',{'mean':-1.,'sigma':2.}],['gaussmf',{'mean':-4.,'sigma':10.}],['gaussmf',{'mean':-7.,'sigma':7.}]], 
      [['gaussmf',{'mean':1.,'sigma':2.}],['gaussmf',{'mean':2.,'sigma':3.}],['gaussmf',{'mean':-2.,'sigma':10.}],['gaussmf',{'mean':-10.5,'sigma':5.}]]]
# Updating the model with Membership Functions
mfc = membershipfunction.MemFuncs(mf)
 
# Creating the ANFIS Model Object
from anfis import anfis
anf = anfis.ANFIS(X, Y, mfc)
# Fitting the ANFIS Model
anf.trainHybridJangOffLine(epochs=10)
 
anf.plotMF(mf, X)
Ich weiß echt nicht, was ich da als Argumente verwenden soll, da ich den Code von anfis nicht ganz durchblicke. Ich bin kein Informatiker und relativ neu in dem fuzzy neuro Genre :(



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
lissy1234567
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 01.09.2017
Mitteilungen: 448
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2020-05-11


Hilfe!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 182
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2020-05-11


Hi,

was für einen Typ hat Y? Falls der float ist probier mal den in integer umzuwandeln. In numpy müsste das sowas wie .astype(int) sein. Ansonsten wäre eine komplette Trace nützlich.
Gruß



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
lissy1234567
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 01.09.2017
Mitteilungen: 448
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2020-05-11


Hi, danke für deine Antwort!
Wenn man sich mal den Code in github.com/twmeggs/anfis anguckt, dann ist glaube ich inzwischen X und Y egal (aber beides sind arrays). Soweit ich es verstanden habe, muss ich mf als InputVar nehmen (siehe anfis.py auf github)...wobei mf halt aus Wörtern besteht.
Ich blicke echt nicht durch und ich weiß auch nicht was eine ganze Trace ist?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
schnitzel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 26.02.2009
Mitteilungen: 182
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-05-11


Hi,

eine Stacktrace ist die Fehlermeldung die dir python zurückgibt. (Traceback steht ganz oben) Man sieht dort genau wo das Programm nicht mehr weitergekommen ist und welche Variable man sich dann ansehen sollte.

Rein vom Code würde ich sagen, dass du die Funktion eher mit sowas wie
anf.plotMF(X, 0)
aufrufen musst.

Gruß



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
lissy1234567
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 01.09.2017
Mitteilungen: 448
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2020-05-11


tatsächlich - wenn ich zB 0 eingebe wie du sagst, dann erhalte ich ein Ergebnis, das allerdings totaler Schwachsinn ist:D

Cool, jetzt weiß ich auch was eine Stacktrace ist, vielen Dank :)

Ich muss das glaube ich nochmal alles durchdenken und würde mich ggf nochmals hier melden...könnte etwas dauern :)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
philippw
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 01.06.2005
Mitteilungen: 1134
Aus: Hoyerswerda
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-05-11


Ich reite eigentlich ungern auf Grammatik rum, aber da du das Wort gerade lernst: Stacktrace ist im deutschen grammatikalisch männlich, also "ein/der Stacktrace". Siehe auch

Sorry, konnte es mir nicht verkneifen. Weitermachen.



-----------------
"Eine Wissenschaft ist erst dann als voll entwickelt anzusehen, wenn sie dahin gelangt ist, sich der Mathematik bedienen zu können."
Karl Marx



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
lissy1234567 hat die Antworten auf ihre/seine Frage gesehen.
lissy1234567 hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]