4
4
from typing import List , Tuple
5
5
6
6
7
- def make_pts (N : int ) -> List [ Tuple [ float , float ]] :
7
+ def make_pts (N ) :
8
8
X = []
9
9
for i in range (N ):
10
10
x_1 = random .random ()
@@ -20,7 +20,7 @@ class Graph:
20
20
y : List [int ]
21
21
22
22
23
- def simple (N : int ) -> Graph :
23
+ def simple (N ) :
24
24
X = make_pts (N )
25
25
y = []
26
26
for x_1 , x_2 in X :
@@ -29,7 +29,7 @@ def simple(N: int) -> Graph:
29
29
return Graph (N , X , y )
30
30
31
31
32
- def diag (N : int ) -> Graph :
32
+ def diag (N ) :
33
33
X = make_pts (N )
34
34
y = []
35
35
for x_1 , x_2 in X :
@@ -38,7 +38,7 @@ def diag(N: int) -> Graph:
38
38
return Graph (N , X , y )
39
39
40
40
41
- def split (N : int ) -> Graph :
41
+ def split (N ) :
42
42
X = make_pts (N )
43
43
y = []
44
44
for x_1 , x_2 in X :
@@ -47,49 +47,39 @@ def split(N: int) -> Graph:
47
47
return Graph (N , X , y )
48
48
49
49
50
- def xor (N : int ) -> Graph :
50
+ def xor (N ) :
51
51
X = make_pts (N )
52
52
y = []
53
53
for x_1 , x_2 in X :
54
- y1 = 1 if (( x_1 < 0.5 and x_2 > 0.5 ) or ( x_1 > 0.5 and x_2 < 0.5 )) else 0
54
+ y1 = 1 if x_1 < 0.5 and x_2 > 0.5 or x_1 > 0.5 and x_2 < 0.5 else 0
55
55
y .append (y1 )
56
56
return Graph (N , X , y )
57
57
58
58
59
- def circle (N : int ) -> Graph :
59
+ def circle (N ) :
60
60
X = make_pts (N )
61
61
y = []
62
62
for x_1 , x_2 in X :
63
- x1 , x2 = ( x_1 - 0.5 , x_2 - 0.5 )
63
+ x1 , x2 = x_1 - 0.5 , x_2 - 0.5
64
64
y1 = 1 if x1 * x1 + x2 * x2 > 0.1 else 0
65
65
y .append (y1 )
66
66
return Graph (N , X , y )
67
67
68
68
69
- def spiral (N : int ) -> Graph :
70
- def x (t : float ) -> float :
69
+ def spiral (N ):
70
+
71
+ def x (t ):
71
72
return t * math .cos (t ) / 20.0
72
73
73
- def y (t : float ) -> float :
74
+ def y (t ) :
74
75
return t * math .sin (t ) / 20.0
75
-
76
- X = [
77
- (x (10.0 * (float (i ) / (N // 2 ))) + 0.5 , y (10.0 * (float (i ) / (N // 2 ))) + 0.5 )
78
- for i in range (5 + 0 , 5 + N // 2 )
79
- ]
80
- X = X + [
81
- (y (- 10.0 * (float (i ) / (N // 2 ))) + 0.5 , x (- 10.0 * (float (i ) / (N // 2 ))) + 0.5 )
82
- for i in range (5 + 0 , 5 + N // 2 )
83
- ]
76
+ X = [(x (10.0 * (float (i ) / (N // 2 ))) + 0.5 , y (10.0 * (float (i ) / (N //
77
+ 2 ))) + 0.5 ) for i in range (5 + 0 , 5 + N // 2 )]
78
+ X = X + [(y (- 10.0 * (float (i ) / (N // 2 ))) + 0.5 , x (- 10.0 * (float (i ) /
79
+ (N // 2 ))) + 0.5 ) for i in range (5 + 0 , 5 + N // 2 )]
84
80
y2 = [0 ] * (N // 2 ) + [1 ] * (N // 2 )
85
81
return Graph (N , X , y2 )
86
82
87
83
88
- datasets = {
89
- "Simple" : simple ,
90
- "Diag" : diag ,
91
- "Split" : split ,
92
- "Xor" : xor ,
93
- "Circle" : circle ,
94
- "Spiral" : spiral ,
95
- }
84
+ datasets = {'Simple' : simple , 'Diag' : diag , 'Split' : split , 'Xor' : xor ,
85
+ 'Circle' : circle , 'Spiral' : spiral }
0 commit comments