[PYTHON] Verwenden Sie den Scikit-Learn-Trainingsdatensatz mit Chainer (für Training / Vorhersage).

Beachten Sie, dass der in Scikit-learn verwendete np.array-Datensatz in Chainer (1.11) nicht sofort verwendet werden konnte.

Vorbereiten

Hier

--train_X und test_X sind np.array von (Anzahl der Proben, Abmessungen). Normalerweise float32. --train_y und test_y sind np.array von (Anzahl der Proben,). Wahrscheinlich standardmäßig int64.

Für sklearn

SVM-Beispiel mit sklearn


from sklearn import svm
clf = svm.SVC()
clf.fit(train_X, train_y) #Lernen
clf.score(test_X, test_y) #Vorhersage / Punkteberechnung
prob_X = clf.predict_proba(test_X) #Wahrscheinlichkeitsvorhersage

Für Chainer

Verwenden Sie einen Chainer-Trainer



#Erstellen Sie zunächst eine Klasse.
class sk_dataset(chainer.dataset.DatasetMixin):
    def __init__(self, X, y):
        self.X = X.astype('float32') #Float32 ist erforderlich, also hier konvertieren
        self.y = y.astype('int32')   #Da int32 erforderlich ist, konvertieren Sie hier
    def __len__(self):
        return self.X.shape[0]
    def get_example(self, i):
        return self.X[i], self.y[i]

# np.sk Array_In Datensatztyp konvertieren
train = sk_dataset(train_X, train_y)
test  = sk_dataset(test_X, test_y)

#Der Rest ist Tutorial Street
model = L.Classifier(MLP())
optimizer = chainer.optimizers.SGD()
optimizer.setup(model)

train_iter = iterators.SerialIterator(train, batch_size=100)
test_iter  = iterators.SerialIterator(test,  batch_size=100, repeat=False, shuffle=False)

updater = training.StandardUpdater(train_iter, optimizer)
trainer = training.Trainer(updater, (20, 'epoch'), out='result')

trainer.run() #Lernen


###Prognose
i = 10 #i-te Daten
dim = 4096 #Datendimension

print("predict:", model.predictor(Variable(test[i][0].reshape((1,dim)))).data) #Rohleistung

print("probability:", F.softmax(model.predictor(Variable(test[i][0].reshape((1,dim)))).data).data) #Wahrscheinlichkeitsvorhersage

print("label:", F.softmax(model.predictor(Variable(test[i][0].reshape((1,dim)))).data).data.argmax()) #Etikettenvorhersage


Recommended Posts

Verwenden Sie den Scikit-Learn-Trainingsdatensatz mit Chainer (für Training / Vorhersage).
Verwenden Sie Tensorboard mit Chainer
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Verwendung von Chainer mit Jetson TK1
Versuchen Sie, Pferderennen mit Chainer vorherzusagen
[Chainer] Lernen von XOR mit mehrschichtigem Perzeptron
SVM versucht maschinelles Lernen mit Scikit-Learn
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Versuchen Sie Common Representation Learning mit Chainer
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 13 Training für neuronale Netze ~ Chainer abgeschlossen
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Verstärken Sie Bilder für maschinelles Lernen mit Python
Klassifizieren Sie Anime-Gesichter mit tiefem Lernen mit Chainer
Versuchen Sie es mit Chainer Deep Q Learning - Launch
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Array-Pufferobjekt, das mit Cython verwendet werden kann
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Wickeln Sie C mit Cython für Python ein
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Maschinelles Lernen Aufteilung der Trainingsdaten und Lernen / Vorhersage / Verifizierung
Wrap C ++ mit Cython zur Verwendung von Python
Ich habe den Deep Learning Framework Chainer installiert