TypeError mit Array
Verfasst: Montag 8. Juli 2019, 10:28
Hi,
ich bin gerade am Schreiben meiner Master-Arbeit und befasse mich das erste Mal mit Neuronalen Netzen und Python.
Das ganze Konzept steht, Daten sind außerdem selbst aufbereitet und selbst gelabelt.
Im Code habe ich aber ein paar Fehler drin...
Aus einer DB werden die Daten in das Projekt geladen (in Liste "data_storage" gespeichert) und
der Datensatz anschließend in eine Liste "Input" (eine Liste mit allen Datensätzen für die Trainingsmerkmale)
und eine Liste "Output" (eine Liste mit allen Datensätzen für die Klasse) getrennt.
Diese Liste soll nun mit der Kreuzvalidierung gesplittet und sortiert werden.
Der Fehler tritt in den fettgedruckten Zeilen auf:
Fehlermeldung habe ich verstanden, aber eine Lösung für mein Problem habe ich nicht.
Die Fehlermeldung würde bedeuten, dass ich nur ein Merkmal in die Liste Input packe darf,
z. B. durch
Ich will pro Listeneintrag aber alle Merkmale, also bei i Datensätzen i Zeilen in folgender Darstellung haben:
Lasse ich die geschweiften Klammern im input.append()-Methode weg, also
for items in data_storage:
erhalte ich ebenfalls einen Fehler:
Hat jemand eine Idee, wie ich die Einteilung Training:Testdaten für die Kreuzvalidierung hinbekomme?
Also wie ich die Listen/Arrays "Input" und "Output" richtig erzeugen kann?
Vielen Dank!
ich bin gerade am Schreiben meiner Master-Arbeit und befasse mich das erste Mal mit Neuronalen Netzen und Python.
Das ganze Konzept steht, Daten sind außerdem selbst aufbereitet und selbst gelabelt.
Im Code habe ich aber ein paar Fehler drin...
Aus einer DB werden die Daten in das Projekt geladen (in Liste "data_storage" gespeichert) und
der Datensatz anschließend in eine Liste "Input" (eine Liste mit allen Datensätzen für die Trainingsmerkmale)
und eine Liste "Output" (eine Liste mit allen Datensätzen für die Klasse) getrennt.
Diese Liste soll nun mit der Kreuzvalidierung gesplittet und sortiert werden.
Code: Alles auswählen
# for seperation of data_storage
Input, Output = list(), list()
# list all results of k-fold cross-validation
scores, members, matrix = list(), list(), list()
# seperate data_storage in Input and Output data
for items in data_storage:
# Link_ID = items[0] # identifier not needed
Input.append([items[1], items[2], items[3], items[4], items[5], items[6], items[7], items[8], items[9]]) # Input: all characteristics
Output.append(items[10]) # Output: scenario_class 1 to 8
# normalize Data
Input = normalize(Input)
# Output = normalize(Output) not needed; categorical number
# prepare k-fold cross-validation
kfold = StratifiedKFold(n_splits=15, random_state=1, shuffle=True)
for train_ix, test_ix in kfold.split(Input, Output):
# select samples
[b] Train, Target_Train = Input[train_ix], Output[train_ix]
Test, Target_Test = Input[test_ix], Output[test_ix][/b]
Code: Alles auswählen
TypeError: only integer scalar arrays can be converted to a scalar index
Die Fehlermeldung würde bedeuten, dass ich nur ein Merkmal in die Liste Input packe darf,
z. B. durch
Code: Alles auswählen
for items in data_storage:
# Link_ID = items[0] # identifier not needed
Input.append(items[1])
Code: Alles auswählen
Input(i) | Output(i)
---------------------------------------------
(item[1] ... item[9]) | item[10]
(item[1] ... item[9]) | item[10]
(item[1] ... item[9]) | item[10]
for items in data_storage:
Code: Alles auswählen
# Link_ID = items[0] # identifier not needed
Input.append(items[1], items[2], items[3], items[4], items[5], items[6], items[7], items[8], items[9]) # Input: all characteristics
Code: Alles auswählen
TypeError: append() takes exactly one argument (9 given)
Also wie ich die Listen/Arrays "Input" und "Output" richtig erzeugen kann?
Vielen Dank!