In dem Programm scanne ich alle 2,5 Sekunden eine Anzahl von Gehirnproben, die in einer Zeitreihe von 40 x 64 x 64 Bildern aufgenommen wurden. Die Anzahl der "Voxel" (3D-Pixel) in jedem Bild beträgt somit ~ 168.000 ish (40 × 64 × 64), von denen jedes ein "Merkmal" für ein Bildmuster ist.sklearns Vorhersage sagt Werte außerhalb des Bereichs voraus
Ich dachte an die Verwendung von Principle Component Analysis (PCA) wegen der übermäßig hohen n zur Reduzierung der Dimensionalität. Dann folgen Sie dies mit Rekursive Feature Elimination (RFS).
Es gibt 9 Klassen zur Vorhersage. Also ein mehrklassiges Klassifizierungsproblem. Im Folgenden wandle ich diese 9-Klassen-Klassifizierung in ein binäres Klassifizierungsproblem um und speichere die Modelle in einer Liste Modelle.
models = []
model_count = 0
for i in range(0,DS.nClasses):
for j in range(i+1,DS.nClasses):
binary_subset = sample_classes[i] + sample_classes[j]
print 'length of combined = %d' % len(binary_subset)
X,y = zip(*binary_subset)
print 'y = ',y
estimator = SVR(kernel="linear")
rfe = RFE(estimator , step=0.05)
rfe = rfe.fit(X, y)
#save the model
models.append(rfe)
model_count = model_count + 1
print '%d model fitting complete!' % model_count
Jetzt durchlaufen Sie diese Modelle und machen Sie Vorhersagen. Angabe der 9 möglichen Ergebnisse
predictions = []
for X,y in test_samples:
Votes = np.zeros(DS.nClasses)
for mod in models:
#X = mod.transform(X)
label = mod.predict(X.reshape(1,-1)) #Something goes wrong here
print 'label is type',type(label),' and value ',label
Votes[int(label)] = Votes[int(label)] + 1
prediction = np.argmax(Votes)
predictions.append(prediction)
print 'Votes Array = ',Votes
print "We predicted %d , actual is %d" % (prediction,y)
sollten die Etiketten Zahlen von 0-8 sein. Ich bin das Drucken der Label Werte und das ist, was ich bekommen:
label is type <type 'numpy.ndarray'> and value [ 0.87011103]
label is type <type 'numpy.ndarray'> and value [ 2.09093105]
label is type <type 'numpy.ndarray'> and value [ 1.96046739]
label is type <type 'numpy.ndarray'> and value [ 2.73343935]
label is type <type 'numpy.ndarray'> and value [ 3.60415663]
label is type <type 'numpy.ndarray'> and value [ 6.10577602]
label is type <type 'numpy.ndarray'> and value [ 6.49922691]
label is type <type 'numpy.ndarray'> and value [ 8.35338294]
label is type <type 'numpy.ndarray'> and value [ 1.29765466]
label is type <type 'numpy.ndarray'> and value [ 1.60883217]
label is type <type 'numpy.ndarray'> and value [ 2.03839272]
label is type <type 'numpy.ndarray'> and value [ 2.03794106]
label is type <type 'numpy.ndarray'> and value [ 2.58830013]
label is type <type 'numpy.ndarray'> and value [ 3.28811133]
label is type <type 'numpy.ndarray'> and value [ 4.79660621]
label is type <type 'numpy.ndarray'> and value [ 2.57755697]
label is type <type 'numpy.ndarray'> and value [ 2.72263461]
label is type <type 'numpy.ndarray'> and value [ 2.58129428]
label is type <type 'numpy.ndarray'> and value [ 3.96296151]
label is type <type 'numpy.ndarray'> and value [ 4.80280219]
label is type <type 'numpy.ndarray'> and value [ 7.01768046]
label is type <type 'numpy.ndarray'> and value [ 3.3720926]
label is type <type 'numpy.ndarray'> and value [ 3.67517869]
label is type <type 'numpy.ndarray'> and value [ 4.52089242]
label is type <type 'numpy.ndarray'> and value [ 4.83746684]
label is type <type 'numpy.ndarray'> and value [ 6.76557315]
label is type <type 'numpy.ndarray'> and value [ 4.606097]
label is type <type 'numpy.ndarray'> and value [ 6.00243346]
label is type <type 'numpy.ndarray'> and value [ 6.59194317]
label is type <type 'numpy.ndarray'> and value [ 7.63559593]
label is type <type 'numpy.ndarray'> and value [ 5.8116106]
label is type <type 'numpy.ndarray'> and value [ 6.37096926]
label is type <type 'numpy.ndarray'> and value [ 7.57033285]
label is type <type 'numpy.ndarray'> and value [ 6.29465433]
label is type <type 'numpy.ndarray'> and value [ 7.91623641]
label is type <type 'numpy.ndarray'> and value [ 7.79524801]
Votes Array = [ 1. 3. 8. 5. 5. 1. 7. 5. 1.]
We predicted 2 , actual is 8
ich nicht, warum die Label Werte Punktzahlen schweben. Sie sollten Zahlen von 0-8 sein.
Ich habe die Daten korrekt geladen. Irgendetwas schief geht bei der Ausführung predict()
Aber ich kann immer noch nicht herausfinden, was.
Wow. Ich fühle mich jetzt ein bisschen dumm. Es klappt! Vielen Dank! :) Ich habe gerade einen Brief geändert –