[PYTHON] Utilisez l'ensemble de données d'entraînement scikit-learn avec chainer (pour l'entraînement / la prédiction)

Notez que l'ensemble de données np.array utilisé dans Scikit-learn ne pouvait pas être utilisé immédiatement dans Chainer (1.11).

Préparer

--Ensemble de données de formation: train_X, train_y --Ensemble de données de test: test_X, test_y

ici

--train_X et test_X sont np.array de (nombre d'échantillons, dimensions). Habituellement float32. --train_y et test_y sont np.array of (nombre d'échantillons,). Probablement int64 par défaut.

Pour sklearn

Exemple SVM avec sklearn


from sklearn import svm
clf = svm.SVC()
clf.fit(train_X, train_y) #Apprentissage
clf.score(test_X, test_y) #Prédiction / calcul du score
prob_X = clf.predict_proba(test_X) #Prédiction de probabilité

Pour Chainer

Utiliser le formateur de chainer



#Commencez par créer une classe.
class sk_dataset(chainer.dataset.DatasetMixin):
    def __init__(self, X, y):
        self.X = X.astype('float32') #Float32 est requis, alors convertissez ici
        self.y = y.astype('int32')   #Puisque int32 est requis, convertissez ici
    def __len__(self):
        return self.X.shape[0]
    def get_example(self, i):
        return self.X[i], self.y[i]

# np.tableau sk_Convertir en type de jeu de données
train = sk_dataset(train_X, train_y)
test  = sk_dataset(test_X, test_y)

#Le reste est la rue du tutoriel
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() #Apprentissage


###Prévoir
i = 10 #i-ème données
dim = 4096 #Dimension des données

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

print("probability:", F.softmax(model.predictor(Variable(test[i][0].reshape((1,dim)))).data).data) #Prédiction de probabilité

print("label:", F.softmax(model.predictor(Variable(test[i][0].reshape((1,dim)))).data).data.argmax()) #Prédiction d'étiquette


Recommended Posts

Utilisez l'ensemble de données d'entraînement scikit-learn avec chainer (pour l'entraînement / la prédiction)
Utiliser tensorboard avec Chainer
Créer un ensemble de données d'images à utiliser pour la formation
Utilisation du chainer avec Jetson TK1
Essayez de prédire les courses de chevaux avec Chainer
[Chainer] Apprentissage de XOR avec perceptron multicouche
SVM essayant l'apprentissage automatique avec scikit-learn
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 9 Introduction à scikit-learn
Essayez l'apprentissage de la représentation commune avec le chainer
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 13 Formation sur les réseaux neuronaux ~ Chainer terminé
scikit-learn Comment utiliser le résumé (apprentissage automatique)
Utiliser DeepL avec python (pour la traduction d'articles)
Amplifiez les images pour l'apprentissage automatique avec Python
Classez les visages d'anime avec l'apprentissage en profondeur avec Chainer
Essayez avec Chainer Deep Q Learning - Lancement
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Objet de tampon de tableau pouvant être utilisé avec Cython
J'ai essayé d'implémenter diverses méthodes d'apprentissage automatique (modèle de prédiction) en utilisant scicit-learn
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
Envelopper C avec Cython pour une utilisation à partir de Python
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Division des données de formation en apprentissage automatique et apprentissage / prédiction / vérification
Envelopper C ++ avec Cython pour une utilisation à partir de Python
J'ai installé le framework Deep Learning Chainer