ich hoffe ihr habt schöne Ostertage.
ich bestreite meine ersten Schritte mit Python im Rahmen einer Machine Learning Vorlesung.
Für eine Aufgabe mit dem Stochastic Gradient Descent, ist es erforderlich Daten (100 Datenpunkte) zu generieren.
Es sollen 100 Datenpunkte generiert werden (x,y) wobei
x random generiert werden soll im Intervall [0,1]
y = sin(2 PI x) + Epsilon (wobei Epsilon random noise ist im Interval von [-0.3, 0.3])
Wenn ich das so mache wie ich es verstanden habe, bekomme ich aber eine "perfekte" Sinuskurve
ich hätte erwartet das durch das noise die Punkte mal über und mal unter der Kurve springen (für eine Verfälschung)
picture hosting
Zelle1 aus Jupyter Notebook
Code: Alles auswählen
import numpy as np
import random
def randomNoise():
print("randomNoise")
noise = np.random.uniform(low=-0.3, high=0.3, size=(1,))
print(noise)
return noise
X = np.random.rand(100,1)
print("X")
print(X)
print()
print()
print("---------")
k = np.sin(2 * np.pi * X) + randomNoise()
print("K")
print(k)
print("---------")
Code: Alles auswählen
plt.plot(X, k, "b.")
plt.xlabel("$x_1$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.axis([-2, 2, -2, 2])
#save_fig("generated_data_plot")
plt.show()
Mir erschließt sich nicht ganz wie die Generierung der Daten funktioniert
Beim generieren von X erhalte ich 100 Zeilen in einer Spalte mit Werten von 0 bis 1
Wie ich zu den entsprechenden Y Werten komme verstehe ich jedoch nicht so recht, da meine erste Sinus kurve zu "perfekt" aussieht, als hätte das addieren meines Noise keine Auswirkung
Würde mich sehr über einen Denkanstoss freuen.