Ich arbeite durch ein Tutorial in Scikit-lernen, und ein Abschnitt erstellt ein Dataset. Dies ist:Scikit-learn Dataset Maker akzeptiert keine Befehlszeilenargumente
#Generate the example datapoints, red and blue.
X, t = sklearn.datasets.make_circles(n_samples=100, shuffle=False, factor=0.3, noise=0.1)
T = np.zeros((100,2))
T[t==1,1] = 1
T[t==0,0] = 1
#Seperate the datapoints by color.
x_red = X[t==0]
x_blue = X[t==1]
print ('shape of X: {}'.format(X.shape))
print ('shape of T: {}'.format(T.shape))
#Plotstuff
plt.plot(x_red[:,0], x_red[:,1], 'ro', label='class red')
plt.plot(x_blue[:,0], x_blue[:,1], 'bo', label='class blue')
plt.grid()
plt.legend(loc=1)
plt.xlabel('$x_1$', fontsize=15)
plt.ylabel('$x_2$', fontsize=15)
plt.axis([-1.5, 1.5, -1.5, 1.5])
plt.title('red vs. blue classes in the input space')
plt.show()
Macht eine völlig normale chart.
Allerdings, wenn ich es Befehlszeileneingaben zu akzeptieren ändern:
try:
in1 = (int(float(sys.argv[1])))
in2 = (int(float(sys.argv[2])))
in3 = (int(float(sys.argv[3])))
in4 = (int(float(sys.argv[4])))
except IndexError:
print(
"The program is run as: program.py a b c d \n"
"a = Random seed\n"
"b = Number of samples\n"
"c = Factor\n"
"d = Noise\n"
"Example: python JISIDF-[01].py 1 100 0.3 0.1")
raise SystemExit
np.random.seed(seed=in1)
#Generate the example datapoints, red and blue.
X, t = sklearn.datasets.make_circles(n_samples=in2, shuffle=False, factor=in3, noise=in4)
Auch wenn die Eingänge sind die gleichen:
[email protected]:~/Code/Tutorials/Peterrolelant$ python3 PeterNet-17.py 1 100 0.3 0.1
Ich erhalte eine Fehlermeldung:
Traceback (most recent call last):
File "PeterNet-17.py", line 27, in <module>
X, t = sklearn.datasets.make_circles(n_samples=in2, shuffle=False, factor=in3, noise=in4)
File "/usr/local/lib/python3.4/dist-packages/sklearn/datasets/samples_generator.py", line 625, in make_circles
X += generator.normal(scale=noise, size=X.shape)
File "mtrand.pyx", line 1902, in mtrand.RandomState.normal (numpy/random/mtrand/mtrand.c:17755)
ValueError: scale <= 0
Das war vorher ein Problem. Wie kann ich das beheben?
'int (float (0,3))' und 'int (float (0,1))' sind auf '0' gleich. Sind Sie sicher, dass das beabsichtigt ist? – edwinksl
Wenn ich die floats entferne, bekomme ich einen Wertfehler: 'ValueError: ungültiges Literal für int() mit Basis 10: '0.3'' – Rich
So ist es das' in1 = (((sys.argv [1])))' ? Das gibt mir einen Typfehler: 'TypeError: Kann Array von dtype ('
Rich