[PYTHON] So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML

In diesem Artikel werde ich die Implementierung der ab Version 0.23 von scicit-learn installierten interaktiven Pipeline-Bestätigung sowie deren Speicherung und Verwendung als HTML erläutern.

Umgebung

Der Implementierungscode für diesen Artikel finden Sie hier https://github.com/YutaroOgawa/Qiita/tree/master/sklearn

Implementierung

[1] Versionsaktualisierung

Erstens ist die Version von scikit-learn von Google Colaboratory im September 2020 Version 0.22. Aktualisieren Sie sie daher auf Version 0.23.

!pip install scikit-learn==0.23.2

Führen Sie nach dem Update mit pip "Runtime" -> "Restart runtime" von Google Colaboratory aus. Starten Sie die Laufzeit neu. (Dies ist die neue Version 0.23, die Scikit-Learn mit pip integriert hat.)

[2] Pipelinebau

Beispielsweise wurden das Vorverarbeitungs- und das maschinelle Lernmodell wie folgt kombiniert: Erstellen Sie eine ** Pipeline für maschinelles Lernen **.

[Notwendigen Import durchführen]

python from sklearn.pipeline import make_pipeline from sklearn.preprocessing import OneHotEncoder, StandardScaler from sklearn.impute import SimpleImputer from sklearn.compose import make_column_transformer from sklearn.linear_model import LogisticRegression


[Erstellen Sie eine Pipeline]

```python```
#Vorverarbeitung numerischer Daten (Standardisierung durch Ergänzung fehlender Werte mit Medianwert)
num_proc = make_pipeline(SimpleImputer(strategy='median'), StandardScaler())

#Vorverarbeitung von Kategoriedaten (für fehlende Werte"misssing"Substitution abgeschlossen, eine Hot-Codierung)
cat_proc = make_pipeline(
    SimpleImputer(strategy='constant', fill_value='missing'),
    OneHotEncoder(handle_unknown='ignore'))

#Erstellen Sie eine Vorverarbeitungsklasse
preprocessor = make_column_transformer((num_proc, ('feat1', 'feat3')),
                                       (cat_proc, ('feat0', 'feat2')))

#Kombinieren Sie Vorverarbeitungs- und maschinelles Lernmodelle in einer Pipeline
clf = make_pipeline(preprocessor, LogisticRegression())

[3] Interaktive Visualisierung der Pipeline

Um die Pipeline interaktiv zu visualisieren, ist es einfach:

sklearn.set_config(display="diagram")

Einfach hinzufügen.

[Interaktive Visualisierung]

python

Einstellungen zum Anzeigen der Pipeline

from sklearn import set_config

set_config(display="diagram")

Zeichnung

clf


Anschließend wird die Pipeline in der Ergebnisspalte von JupyterNotebook (Google Colabortory) gezeichnet (siehe unten).
![pipe_sklearn3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191401/b43a1142-4172-94c6-42e7-fa93445ee81c.png)


Klicken Sie auf jedes Element in diesem Pipeline-Diagramm
Das Bild ändert sich interaktiv und zeigt die detaillierten Einstellungen für dieses Element an.
(Die folgende Abbildung zeigt die detaillierte Bestätigung der Methode zur Verarbeitung fehlender Werte für die Spaltenvorverarbeitung: Pipeline.-Klicken Sie auf 2 Simple Impactor)

![pipe_sklearn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191401/0ab138e6-8ade-33af-ca56-68291d827465.png)


##So speichern Sie die Pipeline als HTML

Wie Sie in den Kommentaren erwähnt haben, können Sie diese interaktive Pipeline als HTML speichern.

"Es ist ein bisschen, wenn es nur auf Jupyter Notebook funktioniert ..."

Ich dachte, es sind also sehr nette Informationen.

@Vielen Dank an DataSkywalker.

Schließlich als Implementierung,

```python
from sklearn.utils import estimator_html_repr

with open('my_estimator.html', 'w') as f:  
    f.write(estimator_html_repr(clf))

Ausführen. Dann meine_estimator.Der HTML-Code der interaktiven Pipeline wird als HTML gespeichert.

Mit Google Colaboratory

# Download von Google Colaboratory
from google.colab import files
files.download('my_estimator.html')

Indem ich meine laufen lasse_estimator.Sie können HTML herunterladen (Die HTML-Datei enthielt den CSS-Stil und bestand aus etwa 300 Zeilen).

Als Material zur interaktiven Erklärung der Pipeline Es scheint, dass Sie HTML in Dokumente usw. einfügen können.

Sie können es als Link in die MD-Datei einfügen oder die MD-Datei zwangsweise in HTML konvertieren und dann kombinieren. (Es ist schwierig, HTML zu lesen, da es in der MD-Datei enthalten ist ...?)

document_example.gif

Alle Dateien hier sind auch hier platziert https://github.com/YutaroOgawa/Qiita/tree/master/sklearn

##Zusammenfassung

scikit-Lerne Version v0.23 oder höher sklearn.set_config(display="diagram")Einfach hinzufügen Sie können Ihre Pipeline interaktiv visualisieren (und als HTML speichern).

Bitte versuchen Sie es ♪


###Bemerkungen

**【Schriftsteller】**Dentsu Internationaler Informationsdienst (ISID)AI Transformation CenterEntwicklung Gr Yutaro Ogawa (Hauptbuch)"Lerne beim Machen!Development Deep Learning von PyTorch ",Andere"DetailsderSelbsteinführung"

【Twitter】 Ich konzentriere mich auf IT / KI und Business / Management und versende Artikel, die ich interessant finde, und Eindrücke von neuen Büchern, die ich kürzlich gelesen habe. Wenn Sie Informationen zu diesen Feldern sammeln möchten, folgen Sie uns bitte ♪ (Es gibt viele Informationen aus Übersee)

Yutaro Ogawa@ISID_AI_team

[Andere] Das von mir geleitete "AI Transformation Center Development Team" sucht Mitglieder. Wenn Sie interessiert sind,Diese SeiteWir freuen uns auf Ihre Bewerbung.

[Sokumen-Kun] Wenn Sie sich plötzlich bewerben möchten, haben wir ein ungezwungenes Interview mit "Sokumen-kun". Bitte benutzen Sie dies auch ♪ https://sokumenkun.com/2020/08/17/yutaro-ogawa/

[Haftungsausschluss] Der Inhalt dieses Artikels ist die Meinung des Autors./Es ist eine Übermittlung, keine offizielle Ansicht des Unternehmens, zu dem der Autor gehört.


(Referenz) https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_0_23_0.html https://towardsdatascience.com/9-things-you-should-know-about-scikit-learn-0-23-9426d8e1772c

Recommended Posts

So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML
Erstellen einer virtuellen Anaconda-Umgebung für die Verwendung mit Azure Machine Learning und Verknüpfen mit Jupyter
So erstellen Sie mit AWS Lambda eine serverlose API für maschinelles Lernen
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
So machen Sie den Containernamen in Docker als Subdomain zugänglich
So zeichnen Sie ein 2-Achsen-Diagramm mit Pyplot
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
So generieren Sie QR-Code und Barcode in Python und lesen ihn normal oder in Echtzeit mit OpenCV
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
Führen Sie eine Pipeline für maschinelles Lernen mit Cloud Dataflow (Python) aus.
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Wie man Decorator in Django benutzt und wie man es macht
Praktisches maschinelles Lernen mit Scikit-Learn und TensorFlow-TensorFlow gab auf-
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
[TF] Speichern und Laden von Tensorflow-Trainingsparametern
So bereiten Sie die Umgebung mit Courseras fortgeschrittenem Kurs für maschinelles Lernen auf Google Colab vor
Aufteilen von Trainingsdaten für maschinelles Lernen in objektive Variablen und andere in Pandas
So erstellen Sie schnell eine maschinelle Lernumgebung mit Jupyter Notebook mit UbuntuServer 16.04 LTS
Bis Sie mit Python unter Windows 7 eine maschinelle Lernumgebung erstellen und ausführen
So passen Sie mehrere Bibliotheken für maschinelles Lernen auf einmal an
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
So erstellen Sie schnell eine maschinelle Lernumgebung mit Jupyter Notebook mit UbuntuServer 16.04 LTS mit anaconda
So geben Sie ein Dokument im PDF-Format mit Sphinx aus
[Google Colab] So unterbrechen Sie das Lernen und setzen es dann fort
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
[TF] Laden / Speichern von Modell und Parameter in Keras
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
[Python] Was ist ein Tupel? Erklärt, wie man es benutzt und wie man es benutzt, ohne zu tippen.
So melden Sie sich mit Python bei AtCoder an und senden automatisch
[Python] So kratzen Sie eine lokale HTML-Datei und geben sie mit Beautiful Soup als CSV aus
Schnelle Schritte zum Erstellen einer maschinellen Lernumgebung mit Jupyter Notebook unter macOS Sierra mit anaconda
So legen Sie eine Verknüpfung fest, um in IBus zwischen voller und halber Breite zu wechseln
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
So vergleichen Sie Listen und rufen allgemeine Elemente in einer Liste ab
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
[Lesehinweis] Praktisches maschinelles Lernen mit Scikit-Learn, Keras und TensorFlow Kapitel 1
Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt
Bereiten Sie ein Projektformat für maschinelles Lernen vor und führen Sie es in SageMaker aus
Klassifikation und Regression beim maschinellen Lernen
SVM versucht maschinelles Lernen mit Scikit-Learn
Sammeln von Daten zum maschinellen Lernen
Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (3: Gesichtsbildgenerierung aus Kandidatenbildern Teil 1)
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für verbessertes Lernen # 4 machen
(Maschinelles Lernen) Ich habe versucht, den EM-Algorithmus in der gemischten Gaußschen Verteilung sorgfältig mit der Implementierung zu verstehen.
Ich habe ein Buch geschrieben, in dem Sie maschinelle Lernimplementierungen und -algorithmen auf ausgewogene Weise lernen können.
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für erweitertes Lernen # 5 machen
Anfänger möchten mit UE4 so etwas wie einen Rubic Cube erstellen und daraus eine Bibliothek für verbessertes Lernen # 6 machen
Coursera Machine Learning Challenge in Python: ex6 (Anpassen von SVM-Parametern)