Letztes Mal Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (13) https://github.com/legacyworld/sklearn-basic
Dieses Mal habe ich scicit-learn nicht zum ersten Mal verwendet. Kommentar auf Youtube ist der 7. (1) pro 25 Minuten und 50 Sekunden Es ist nicht schwierig als Problem, aber eine Einschränkung.
w^T = (w_0,w_1,w_2),
X = \begin{pmatrix}
x_{11}&x_{12}&\cdots&x_{110} \\
x_{21}&x_{22}&\cdots&x_{210} \\
1&1&\cdots&1
\end{pmatrix} \\
w^TX =0 ist x_1,x_W in der Ebene von 2_0x_1 + w_1x_2 + w_2 =Ausgedrückt als 0. Transformiert\\
x_2 = -\frac{w_2}{w_1} - \frac{w_0}{w_1}x_1
Normalerweise ist $ w_0 $ der Abschnittsteil, aber in diesem Problem ist es $ w_2 $. Klicken Sie hier für den Quellcode
python:Homework_6.4.py
import numpy as np
import matplotlib.pyplot as plt
#Sigmaid-Funktion
def sigmoid(w,x):
return 1/(1+np.exp(-np.dot(w,x)))
# 0.Klassifiziert nach 5
def classification(a):
return 1 if a > 0.5 else 0
X = np.array([[1.5,-0.5],[-0.5,-1.0],[1.0,-2.5],[1.5,-1.0],[0.5,0.0],[1.5,-2.0],[-0.5,-0.5],[1.0,-1.0],[0.0,-1.0],[0.0,0.5]])
#Da sich der Abschnittsteil hinten befindet, fügen Sie am Ende 1 hinzu
X = np.concatenate([X,np.ones(10).reshape(-1,1)],1)
y = np.array([1,0,0,1,1,1,0,1,0,0])
w = np.array([[6,3,-2],[4.6,1,-2.2],[1,-1,-2]])
#Erstellen Sie eine Logit-Konturlinie für dieselbe Referenz wie die Erklärung
fig = plt.figure(figsize=(20,10))
ax = [fig.add_subplot(2,2,i+1) for i in range(4)]
ax[0].scatter(X[:,0],X[:,1])
x_plot = np.linspace(-1.0,2.0,100)
ax[0].set_ylim(-3,1)
for i in range(0,3,1):
y_plot = -w[i][2]/w[i][1]-w[i][0]/w[i][1]*x_plot
ax[0].plot(x_plot,y_plot,label=f"w{i+1}")
ax[0].set_title("Sample Distribution")
ax[0].legend()
ax[0].grid(b=True)
#Netzdaten
xlim = [-2.0,2.0]
ylim = [-3.0,3.0]
n = 100
xx = np.linspace(xlim[0], xlim[1], n)
yy = np.linspace(ylim[0], ylim[1], n)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel(),np.ones(n**2)])
for i in range(3):
Z = sigmoid(w[i],xy).reshape(XX.shape)
interval = np.arange(0,1,0.01)
#0 ist lila, 1 ist rot, Abstufung zwischen ihnen
m = ax[i+1].contourf(XX,YY,Z,interval,cmap="rainbow",extend="both")
m = ax[i+1].scatter(X[:,0],X[:,1],c=y)
ax[i+1].set_title(f"w{i+1} Logit Contour")
fig.colorbar(mappable = m,ax=ax[i+1])
plt.savefig("6.4.png ")
# w^Berechnung von T x
for index,w_i in enumerate(w):
print(f"w{index+1} {np.dot(w_i,X.T)}")
# sigmoid(w^T x)Berechnung von
np.set_printoptions(formatter={'float': '{:.2e}'.format})
for index,w_i in enumerate(w):
print(f"w{index+1} {sigmoid(w_i,X.T)}")
#Einstufung
for index,w_i in enumerate(w):
print(f"w{index+1} {np.vectorize(classification)(sigmoid(w_i,X.T))}")
#Wahrscheinlichkeit
for index,w_i in enumerate(w):
print(f"w{index+1} {np.count_nonzero(np.vectorize(classification)(sigmoid(w_i,X.T))==y)*10}%")
Dies ist die im Kommentar gezeigte logistische Konturlinie.
Klicken Sie hier für Ausführungsergebnisse
w1 [ 5.5 -8. -3.5 4. 1. 1. -6.5 1. -5. -0.5]
w2 [ 4.2 -5.5 -0.1 3.7 0.1 2.7 -5. 1.4 -3.2 -1.7]
w3 [ 0. -1.5 1.5 0.5 -1.5 1.5 -2. 0. -1. -2.5]
w1 [9.96e-01 3.35e-04 2.93e-02 9.82e-01 7.31e-01 7.31e-01 1.50e-03 7.31e-01 6.69e-03 3.78e-01]
w2 [9.85e-01 4.07e-03 4.75e-01 9.76e-01 5.25e-01 9.37e-01 6.69e-03 8.02e-01 3.92e-02 1.54e-01]
w3 [5.00e-01 1.82e-01 8.18e-01 6.22e-01 1.82e-01 8.18e-01 1.19e-01 5.00e-01 2.69e-01 7.59e-02]
$ Klassifizierungsergebnis von x_j nach Modell \ sigma (w_i ^ Tx_j) $
w1 [1 0 0 1 1 1 0 1 0 0]
w2 [1 0 0 1 1 1 0 1 0 0]
w3 [0 0 1 1 0 1 0 0 0 0]
Richtige Antwortrate
w1 100%
w2 100%
w3 60%
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 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. Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (9) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (10) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (11) Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (12) https://github.com/legacyworld/sklearn-basic https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/
Recommended Posts