repositories
/
TP_AA.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP3 exo2 fixes.
[TP_AA.git]
/
TP3
/
exo2
/
tp3_exo2.py
diff --git
a/TP3/exo2/tp3_exo2.py
b/TP3/exo2/tp3_exo2.py
index e1c03dde8b616335b18aad4f442c64af8f5e1e68..4ca092ddd0015126efe66d2a3b02fceb8b444433 100755
(executable)
--- a/
TP3/exo2/tp3_exo2.py
+++ b/
TP3/exo2/tp3_exo2.py
@@
-117,7
+117,7
@@
def kg(x, y, sigma=10):
def perceptron_k(X, Y, k):
coeffs = []
def perceptron_k(X, Y, k):
coeffs = []
- support_set =
[]
+ support_set =
np.array([])
# Go in the loop at least one time
classification_error = 1
while not classification_error == 0:
# Go in the loop at least one time
classification_error = 1
while not classification_error == 0:
@@
-125,26
+125,31
@@
def perceptron_k(X, Y, k):
for i in range(X.shape[0]):
if Y[i] * f_from_k(coeffs, support_set, k, X[i]) <= 0:
classification_error += 1
for i in range(X.shape[0]):
if Y[i] * f_from_k(coeffs, support_set, k, X[i]) <= 0:
classification_error += 1
-
support_set.append([Y[i], X[i]
])
+
np.append(support_set, X[i
])
coeffs.append(1)
else:
coeffs[len(coeffs) - 1] = coeffs[len(coeffs) - 1] + 1
coeffs.append(1)
else:
coeffs[len(coeffs) - 1] = coeffs[len(coeffs) - 1] + 1
- return
coeffs
, support_set
+ return
np.array(coeffs)
, support_set
-def f(
x, y, w
):
- return
+def f(
w, x, y
):
+ return
w[0] + w[1] * x + w[2] * y + w[3] * x**2 + w[4] * x * y + w[5] * y**2
-coeffs, support_set = perceptron_k(X, Y, k1)
+pl.scatter(X[:, 0], X[:, 1], c=Y, s=training_set_size)
+pl.title(u"Perceptron - hyperplan")
+
+# coeffs, support_set = perceptron_k(X, Y, k1)
# coeffs, support_set = perceptron_k(X, Y, kg)
# coeffs, support_set = perceptron_k(X, Y, kg)
-print(coeffs)
-print(support_set)
+res = training_set_size
+# for c, X in zip(coeffs, support_set):
+# pl.plot(X[0], 'xr')
X = apply_plongement(X, plongement_phi)
w = perceptron_nobias(X, Y)
X = apply_plongement(X, plongement_phi)
w = perceptron_nobias(X, Y)
-print(w)
+for x in range(res):
+ for y in range(res):
+ if abs(f(w, -3 / 2 + 3 * x / res, -3 / 2 + 3 * y / res)) < 0.01:
+ pl.plot(-3 / 2 + 3 * x / res, -3 / 2 + 3 * y / res, 'xb')
-pl.scatter(X[:, 0], X[:, 1], c=Y, s=training_set_size)
-pl.title(u"Perceptron - hyperplan")
pl.show()
pl.show()