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, " ")[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, " ")[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()