Aus scicit-learn, das häufig beim maschinellen Lernen mit Python verwendet wird, ist eine schillernde Bibliothek erschienen, die durch Aufrufen des kürzlich besprochenen TensorFlow verwendet werden kann. Darüber hinaus wird es von Google gemacht. Das ist skflow.
Bisher hatte scikit-learn keine Implementierung eines neuronalen Netzwerksystems, aber dies ermöglicht es, nicht nur neuronale Netzwerke, sondern auch Deep Learning zu handhaben. Auf der TensorFlow-Seite ist es auch möglich, eine Verknüpfung mit der Datenvorverarbeitungsfunktion (Vorverarbeitung usw.) herzustellen, die auf der Scikit-Lernseite häufig vorhanden ist. Das ist ein großer Vorteil.
In diesem Sinne denke ich, dass das Aufkommen von skflow, das die beiden verbindet, es sehr einfach machen wird, maschinelles Lernen zu verarbeiten.
Seit 0.8.0 von TensorFlow ist skflow in die Haupteinheit integriert, sodass eine separate Installation nicht mehr erforderlich ist. Optional ist es praktisch, "scikit-learn", "numpy", "pandas" zu installieren, aber Sie können es auch ohne verwenden.
Dies ist ein Zitat von GitHub, aber der lineare Klassifikator verwendet Folgendes.
from tensorflow.contrib import skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
classifier = skflow.TensorFlowLinearClassifier(n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))
print("Accuracy: %f" % score)
skflow.TensorFlowLinearClassifier
ist die IF mit der TensorFlow-Seite. Danach können Sie mit der Verarbeitung mit vertrauten APIs in scicit-learn wie "fit" fortfahren.
Für das neuronale Netzwerk sieht es so aus: Mit TensorFlowDNNClassifier
bauen wir ein neuronales Netzwerk mit versteckten Schichten von 10-20-10 auf.
from tensorflow.contrib import skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
classifier = skflow.TensorFlowDNNClassifier(hidden_units=[10, 20, 10], n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))
print("Accuracy: %f" % score)
Wenn Sie das Modell detaillierter erstellen möchten, gehen Sie wie folgt vor. Es fühlt sich an, als würde man direkt mit skflow.ops
erstellen.
from tensorflow.contrib import skflow
from sklearn import datasets, metrics
iris = datasets.load_iris()
def my_model(X, y):
"""This is DNN with 10, 20, 10 hidden layers, and dropout of 0.5 probability."""
layers = skflow.ops.dnn(X, [10, 20, 10], dropout=0.5)
return skflow.models.logistic_regression(layers, y)
classifier = skflow.TensorFlowEstimator(model_fn=my_model, n_classes=3)
classifier.fit(iris.data, iris.target)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))
print("Accuracy: %f" % score)
Es war eine einfache Einführung, aber im Gegenteil, es ist so einfach, dass es selten eingeführt wird. Wenn Sie an TensorFlow interessiert sind, aber keine neue Schreibweise erlernen möchten, schauen Sie bitte.