Letztes Mal Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (11) https://github.com/legacyworld/sklearn-basic
Diese Aufgabe konnte nicht genau dieselbe sein, da ich die Zufallswerte der Originaldaten (lineare Trennung, Monde, Kreise) nicht kannte, aber ich denke, ich konnte die allgemeine Tendenz erfassen. Kommentar auf Youtube: 7. (2) pro 48 Minuten 30 Sekunden
Die Vorlesung zeigt, dass das Ändern des Wertes von C die Tendenz nicht so sehr verändert. Was ist diese Tendenz?
Das Programm wurde entwickelt, um alles, was bei $ C = 0,01,0,1,0,5,1,10,100 $ geändert wurde, in ein Bild zu kopieren.
python:Homework_6.2_linear.py
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import matplotlib.colors as mcolors
from sklearn import svm,metrics
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_circles,make_moons,make_blobs
datanames = ['linear_separation','moons','circles']
samples = 200
c_values = [0.01,0.1,0.5,1,10,100]
#3 Arten der Datenerstellung
def datasets(dataname):
if dataname == 'linear_separation':
X,y = make_blobs(n_samples=samples,centers=2,random_state=64)
elif dataname == 'moons':
X,y = make_moons(n_samples=samples,noise=0.3,random_state=74)
elif dataname == 'circles':
X,y = make_circles(n_samples=samples,noise=0.3,random_state=70)
X = preprocessing.MinMaxScaler(feature_range=(-1,1)).fit_transform(X)
return X,y
#Klassifizieren nach C und Datensatz
def learn_test_plot(clf_models):
for clf in clf_models:
plt.clf()
#Zugfehler und Testfehler für jeden der 3 Datentypen zeichnen (insgesamt 6 Typen)
fig = plt.figure(figsize=(20,10))
ax = [fig.add_subplot(2,3,i+1) for i in range(6)]
for a in ax:
a.set_xlim(-1.5,1.5)
a.set_ylim(-1.5,1.5)
for dataname in datanames:
X,y = datasets(dataname)
X_tr_val,X_test,y_tr_val,y_test = train_test_split(X,y,test_size=0.3,random_state=42)
X_tr,X_val,y_tr,y_val = train_test_split(X_tr_val,y_tr_val,test_size=0.2,random_state=42)
clf.fit(X_tr,y_tr)
dec = clf.decision_function(X_val)
predict = clf.predict(X_val)
train_acc = metrics.accuracy_score(y_val,predict)
test_predict = clf.predict(X_test)
test_acc = metrics.accuracy_score(y_test,test_predict)
c_value = clf.get_params()['C']
#Netzdaten
xlim = [-1.5,1.5]
ylim = [-1.5,1.5]
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
Z = clf.decision_function(xy).reshape(XX.shape)
#Farbe zum Füllen
blue_rgb = mcolors.to_rgb("tab:blue")
red_rgb = mcolors.to_rgb("tab:red")
#Ordnen Sie für jeden Datensatz vertikal an
index = datanames.index(dataname)
# decision_Je größer die Funktion, desto dunkler die Farbe
ax[index].contourf(XX, YY, Z,levels=[-2,-1,-0.1,0.1,1,2],colors=[red_rgb+(0.5,),red_rgb+(0.3,),(1,1,1),blue_rgb+(0.3,),blue_rgb+(0.5,)],extend='both')
ax[index].contour(XX,YY,Z,levels=[0],linestyles=["--"])
ax[index].scatter(X_tr_val[:,0],X_tr_val[:,1],c=y_tr_val,edgecolors='k',cmap=ListedColormap(['#FF0000','#0000FF']))
ax[index].set_title(f"Training Accuracy = {train_acc} C = {c_value}")
ax[index+3].contourf(XX, YY, Z,levels=[-2,-1,-0.1,0.1,1,2],colors=[red_rgb+(0.5,),red_rgb+(0.3,),(1,1,1),blue_rgb+(0.3,),blue_rgb+(0.5,)],extend='both')
ax[index+3].contour(XX,YY,Z,levels=[0],linestyles=["--"])
ax[index+3].scatter(X_test[:,0],X_test[:,1],c=y_test,edgecolors='k',cmap=ListedColormap(['#FF0000','#0000FF']))
ax[index+3].set_title(f"Test Accuracy = {test_acc} C = {c_value}")
plt.savefig(f"6.2_{c_value}.png ")
clf_models = [svm.SVC(kernel='linear',C=c_value) for c_value in c_values]
learn_test_plot(clf_models)
Klicken Sie hier für das Ergebnis von $ C = 0,01,1,100 $ Nun, Sie können das gleiche Ergebnis sagen, auch wenn Sie C ändern
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) https://github.com/legacyworld/sklearn-basic https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/
Recommended Posts