INT104-lab9

 1 import numpy as np
 2 
 3 
 4 def sign(x: float) -> int:
 5     if x > 0:
 6         return 1
 7     elif x < 0:
 8         return -1
 9     else:
10         return 0
11 
12 
13 def f(w, x, b) -> float:
14     return mul(w, x) + b
15 
16 
17 def mul(A, B) -> float:
18     res = 0
19     for i in range(len(A)):
20         res += A[i] * B[i]
21     return res
22 
23 
24 def read(path: str) -> list:
25     with open(path, "r") as f:
26         text = f.readlines()
27         D = []
28         for row in text:
29             substr = str.split(str.split(row, "\n")[0], ",")
30             X = []
31             for a in substr:
32                 X.append(int(a))
33             D.append(X)
34     return D
35 
36 
37 def init(D: list) -> tuple:
38     n, m = len(D), len(D[0])
39     X, Y = [], []
40     for i in range(n):
41         x = []
42         for j in range(m - 1):
43             x.append(D[i][j])
44         X.append(x)
45         Y.append(D[i][m - 1])
46     return X, Y, n, m - 1
47 
48 
49 if __name__ == '__main__':
50     D = read("binary_data.csv")
51     X, Y, n, m = init(D)
52     W, b = [0 for _ in range(m)], 0

 

 1 import numpy as np
 2 from sklearn.manifold import TSNE
 3 import matplotlib.pyplot as plt
 4 
 5 
 6 def read(path: str) -> list:
 7     with open(path, "r") as f:
 8         text = f.readlines()
 9         D = []
10         for row in text:
11             substr = str.split(str.split(row, "\n")[0], ",")
12             X = []
13             for a in substr:
14                 X.append(int(a))
15             D.append(X)
16     return D
17 
18 
19 def init(D: list) -> tuple:
20     n, m = len(D), len(D[0])
21     X, Y = [], []
22     for i in range(n):
23         x = []
24         for j in range(m - 1):
25             x.append(D[i][j])
26         X.append(x)
27         Y.append(D[i][m - 1])
28     return X, Y, n, m - 1
29 
30 
31 D = read("binary_data.csv")
32 X, Y, n, m = init(D)
33 
34 x = np.array(X)
35 
36 tsne = TSNE(n_components=2)
37 
38 tsne.fit_transform(x)
39 
40 one_x, one_y, zero_x, zero_y = [], [], [], []
41 for i in range(n):
42     _x, _y = tsne.embedding_[i][0], tsne.embedding_[i][1]
43     if Y[i] == 0:
44         zero_x.append(_x)
45         zero_y.append(_y)
46     else:
47         one_x.append(_x)
48         one_y.append(_y)
49 plt.scatter(one_x, one_y)
50 plt.scatter(zero_x, zero_y)
51 plt.show()

 

posted @ 2021-05-11 16:57  墨鳌  阅读(87)  评论(0编辑  收藏  举报