Ausführlichere Inhalte finden Sie im folgenden Blog. https://kakedashi-engineer.appspot.com/2020/02/03/ml-sklearn/
Es gibt einige Male, in denen ich mit einem neuronalen Netzwerk (Multilayer Perceptron) spielen möchte. In letzter Zeit wurden viele Bibliotheken für Tensorflow, Chainer, Theano und Deep Learning veröffentlicht, aber das Erstellen einer Umgebung kann etwas mühsam sein. Und aus irgendeinem Grund wurde das neuronale Netzwerk nicht in Scicit-Learn implementiert, was im maschinellen Lernen bekannt ist. (Übrigens gibt es auch eine Bibliothek namens PyBrain) scikit-learn 0.18.0 Das neuronale Netzwerk wurde jedoch schließlich in Version 0.18.0 implementiert, die im September 2016 veröffentlicht wurde. Jetzt können Sie das neuronale Netzwerk mit der bekannten supereinfachen API verwenden. Du hast es geschafft. Im folgenden Beispielcode wird die Irisklassifizierung durchgeführt.
sklearn_nn.py
# -*- coding: utf-8 -*-
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
clf = MLPClassifier(solver="sgd",random_state=0,max_iter=10000)
clf.fit(X_train, y_train)
print (clf.score(X_test, y_test))
neural_network.MLPClassifier() Außerdem neural_network.BernoulliRBM() neural_network.MLPRegressor() und so weiter.
API Informationen zu den Argumenten, die neural_network.MLPClassifier () verwendet. Für weitere Informationen offiziell http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier Ich möchte, dass Sie es sehen, aber ich werde es kurz zusammenfassen. (Die rechte Seite ist der Standardwert)
python
hidden_layer_sizes=(100, )#Anzahl der Knoten mit versteckten Ebenen(Kann mehrschichtig sein)
activation='relu'#Aktivierungsfunktion(identify, logistic, tanh, relu)
solver='adam'#Optimierungsmethode(lbfgs(Semi-Newton-Methode), sgd, adam)
alpha=0.0001
batch_size='auto'#Chargengröße(sgd,Bewerben Sie sich mit Adam)
learning_rate='constant'
learning_rate_init=0.001
power_t=0.5
max_iter=200#Maximale Anzahl von Epochen
shuffle=True#Mische die Probe bei jeder Iteration
random_state=None
tol=0.0001
verbose=False
warm_start=False
momentum=0.9
nesterovs_momentum=True
early_stopping=False
validation_fraction=0.1
beta_1=0.9
beta_2=0.999
epsilon=1e-08
Sie können sehen, dass es ziemlich fein eingestellt werden kann. Ist das nicht genug für die meisten Leute, die ein neuronales Netzwerk nutzen wollen? GPGPU usw. können jedoch nicht verwendet werden, daher sollten diese Personen Tensorflow usw. gehorsam verwenden.
train_test_split befand sich zuvor im cross_validation-Modul. Es scheint von 0.18.0 auf das model_selection-Modul verschoben worden zu sein.
Recommended Posts