Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (9).

Letztes Mal Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen. (8) Erstellen Sie Ihre eigene stochastische Methode für den steilsten Abstieg. https://github.com/legacyworld/sklearn-basic

Herausforderung 5.3 Scharnierverlust und Quadratverlust

Wir klassifizieren die beiden Chunks, aber das Problem ist in solche mit und ohne Abweichungen unterteilt, die erheblich von den Chunks abweichen.

Scharnierverlust ohne Ausreißer

Der Youtube-Kommentar ist ungefähr 54 Minuten vom 6. (1) Der Scharnierverlust desjenigen ohne Abweichungswert ist tatsächlich der gleiche wie am Beispiel des Scicit-Learn. Es war schwieriger, Matplotlib als den SVM-Teil zu verwenden. Die ursprüngliche Geschichte ist diese https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane.html#sphx-glr-auto-examples-svm-plot-separating-hyperplane-py Ich habe einen Kommentar für mein eigenes Lernen hinzugefügt.

python:Homework_5.3_hinge_no_outlier.py


import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.datasets import make_blobs

#Erstellen Sie 40 zufällige Klassifizierungsdatensätze. Geben Sie die Anzahl der Blöcke in Zentren an
X, y = make_blobs(n_samples=40, centers=2, random_state=6)
# kernel='linear'Je größer der Scharnierverlust C ist, desto weniger effektiv ist die Regularisierung
clf = svm.SVC(kernel='linear', C=1000)
clf.fit(X, y)
#Klassifizierungsdaten zeichnen. Die Farbe wird durch den cmap-Teil bestimmt.
plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired)

#Entscheidungsgrenze zeichnen
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()

#Machen Sie ein 30x30 Gitter
xx = np.linspace(xlim[0], xlim[1], 30)
yy = np.linspace(ylim[0], ylim[1], 30)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
#Klassifizierung in jedem Gitter
Z = clf.decision_function(xy).reshape(XX.shape)

#Zeichnen Sie Entscheidungsgrenzen mithilfe der Konturlinienebene=0 entspricht ihm
ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1], alpha=0.5,
           linestyles=['--', '-', '--'])
#Zeichnen Sie den Stützvektor mit dem kleinsten Rand
ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=100,
           linewidth=1, facecolors='none', edgecolors='k')
plt.savefig("5.3.png ")

Es werden tatsächlich nur zwei Zeilen berechnet. Das Ergebnis sieht so aus. 5.3.png

Quadratischer Verlust ohne Ausreißer

Ich konnte das verstehen, weil das Kommentarvideo einen Quellcode enthielt, aber ohne ihn war es unmöglich.

python:Homework_5.3_square_no_outlier.py


import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.datasets import make_blobs

#Erstellen Sie 40 zufällige Klassifizierungsdatensätze. Geben Sie die Anzahl der Blöcke in Zentren an
X, y = make_blobs(n_samples=40, centers=2, random_state=6)
#Der Wert von y-1,Auf 1 setzen
y = y*2-1
#Quadratischer Verlust
clf = linear_model.LinearRegression(fit_intercept=True,normalize=True,copy_X=True)
clf.fit(X, y)
#Klassifizierungsdaten zeichnen. Die Farbe wird durch den cmap-Teil bestimmt.
plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired)

#Entscheidungsgrenze zeichnen
x_plot = np.linspace(4,10,100)
w = [clf.intercept_,clf.coef_[0],clf.coef_[1]]
y_plot = -(w[1]/w[2]) * x_plot - w[0]/w[2]
plt.plot(x_plot,y_plot)
plt.savefig("5.3.png ")

Die Idee ist, eine lineare multiple Regression mit $ X $ durchzuführen, die mit make_blobs als Merkmalsmenge (2 Typen) und $ y $ als Zielmenge erstellt wurde. In diesem Beispiel beträgt die Anzahl der Feature-Beispiele 40. In der obigen Grafik ist die horizontale Achse $ x_1 $ und die vertikale Achse ist $ x_2 $.

y = w_0 + w_1\times x_1 + w_2\times x_2

Kann ausgedrückt werden als. In make_blobs ist $ y = 0,1 $, aber dies wird durch y = y * 2-1 in $ y = -1,1 $ geändert. Die Entscheidungsgrenze kann durch Setzen von $ y = 0 $ gezogen werden.

0 = w_0 + w_1\times x_1 + w_2\times x_2 \\
x_2 = -\frac{w_0}{w_2} - \frac{w_1}{w_2}x_1

Dies ist der letzte Teil des Quellcodes. Das habe ich gezeichnet. 5.3.png

Absicht dieses Problems

Wenn keine große Abweichung vorliegt, können ähnliche Ergebnisse sowohl mit Scharnierverlust als auch mit Quadratverlust erzielt werden. Wenn es jedoch einen großen Ausreißer gibt, überschätzt der quadratische Verlust den Verlust des Ausreißers, was es unmöglich macht, das richtige Ergebnis zu erhalten. Dies wird beim nächsten Mal erklärt.

Frühere Beiträge

Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (1) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (2) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (3) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (4) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (5) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (6) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (7) Erstellen Sie Ihre eigene Methode für den steilsten Abstieg https://github.com/legacyworld/sklearn-basic https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/

Recommended Posts

Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (17).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (5).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (16).
Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (10).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (2).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (9).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (4).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (12).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (1)
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (11).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (3).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (14).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (6).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (15).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen. (7) Erstellen Sie Ihre eigene Methode für den steilsten Abstieg
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen. (8) Erstellen Sie Ihre eigene stochastischste Methode für den steilsten Abstieg
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Bildersammlung Python-Skript zum Erstellen von Datensätzen für maschinelles Lernen
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
[Bildbuch zum maschinellen Lernen] Memo, wenn die Python-Übung am Ende des Buches ausgeführt wurde, während die Daten überprüft wurden
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2
Python & Machine Learning Study Memo: Vorbereitung der Umgebung
Notizen vom Anfang von Python 1 lernen
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Python-Grundkurs (Ende 15)
Python & Machine Learning Study Memo ③: Neuronales Netz
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Notizen vom Anfang von Python 2 lernen
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Richten Sie die Anzahl der Stichproben zwischen Datenklassen für maschinelles Lernen mit Python aus
Maschinelles Lernen eines jungen Ingenieurs Teil 1
[Python] Lesen Sie den Quellcode von Flasche Teil 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Die Geschichte, dass die Lernkosten von Python niedrig sind
2016 Todai Mathematik mit Python gelöst
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
[Python] Lesen Sie den Quellcode von Flasche Teil 1
Über die Entwicklungsinhalte des maschinellen Lernens (Beispiel)
Maschinelles Lernen eines jungen Ingenieurs Teil 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
[Python + OpenCV] Malen Sie den transparenten Teil des Bildes weiß
Vorhersage der Zielzeit eines vollständigen Marathons mit maschinellem Lernen - Visual: Visualisierung von Daten mit Python-
Der erste Schritt des maschinellen Lernens ~ Für diejenigen, die versuchen möchten, mit Python zu implementieren ~
[CodeIQ] Ich habe die Wahrscheinlichkeitsverteilung von Würfeln geschrieben (aus dem CodeIQ-Mathematikkurs für maschinelles Lernen [Wahrscheinlichkeitsverteilung]).