In de rijen van een 2D NumPy-tabel ($$M$$ rijen, $$N$$ kolommen) vinden we $$M$$
vectoren terug met elk $$N$$ componenten. We willen die vectoren onderbrengen in een klasse 0 of 1.
Hiertoe berekenen we de grootheid
$$
d(\mathbf{x}) = b_N + \sum_{i=0}^{N-1} b_i x_i
$$
en hieruit bepalen we de klasse $$k$$ van de vector $$\mathbf{x}$$ wordt dan:
$$ k(\mathbf{x}) = \Big\{
\begin{matrix}
1 & \text{voor} & d(\mathbf{x}) \gt 0 \\
0 & \text{anders} & \\
\end{matrix}
$$
Schrijf de functie classificeer()
met als argumenten:
b
met $$N+1$$ elementen, die de parameters $$b_i$$ bevat $$ $$Het resultaat van de functie is een nieuwe 2D NumPy-tabel, met $$M$$ rijen en $$N+1$$ kolommen. De eerste $$N$$ kolommen zijn overgenomen uit het eerste argument van de functie. De laatste kolom bevat het bijhorend klassenummer (dus 0.0 of 1.0). $$ $$
Merk op dat het Dodonascript je resultaat omzet naar een lijst-van-lijsten. Het resultaat van je functie moet wel degelijk een 2D NumPy-tabel zijn. De numerieke waarden worden ook afgekapt op 4 decimalen.
classificeer(np.array([[-8.7, -4.1, 8.4, -2.8], [4.7, -1.4, -8.1, -5.8], [-0.3, -6.9, -2.7, -1.6], [6.4, -0.3, -1.7, 3.9], [5.3, -2.5, -4.5, -9.5], [-5.1, -7.3, 5.7, -9.9], [-5.2, -3.2, 7.2, 8.3], [-6.5, -9.9, -7.0, -8.7], [-2.4, -5.0, 7.6, 9.4]]), np.array([0.0, 3.0, 8.0, -6.0, 4.0])) #[[-8.7, -4.1, 8.4, -2.8, 1.0], [4.7, -1.4, -8.1, -5.8, 0.0], [-0.3, -6.9, -2.7, -1.6, 0.0], [6.4, -0.3, -1.7, 3.9, 0.0], [5.3, -2.5, -4.5, -9.5, 1.0], [-5.1, -7.3, 5.7, -9.9, 1.0], [-5.2, -3.2, 7.2, 8.3, 1.0], [-6.5, -9.9, -7.0, -8.7, 0.0], [-2.4, -5.0, 7.6, 9.4, 0.0]] classificeer(np.array([[-5.2, -5.0, 7.2, 9.5], [-1.5, -1.4, 1.6, -4.2], [-4.1, -6.0, 2.0, -5.2], [8.8, -7.9, 7.0, -9.8], [-2.6, 4.7, -5.6, -1.8], [-2.6, 0.0, -3.6, -4.8], [-8.5, 2.5, 9.8, -8.9], [-4.7, -6.6, 9.0, -7.4]]), np.array([-8.0, -5.0, 3.0, -6.0, 9.0])) #[[-5.2, -5.0, 7.2, 9.5, 1.0], [-1.5, -1.4, 1.6, -4.2, 1.0], [-4.1, -6.0, 2.0, -5.2, 1.0], [8.8, -7.9, 7.0, -9.8, 1.0], [-2.6, 4.7, -5.6, -1.8, 1.0], [-2.6, 0.0, -3.6, -4.8, 1.0], [-8.5, 2.5, 9.8, -8.9, 1.0], [-4.7, -6.6, 9.0, -7.4, 1.0]]