Advertisement
Guest User

Untitled

a guest
May 20th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. import math
  2. from scipy.special import expit
  3.  
  4. #Function for finding the mean of a list of numbers
  5. def mean(data):
  6. mean = []
  7. sum = 0
  8.  
  9. for list in data:
  10. for val in list:
  11. sum += val
  12.  
  13. #The added values is divided by the amount of values
  14. mean.append(sum / len(list))
  15. sum = 0
  16. print("Mean", mean)
  17. return mean
  18.  
  19. #Function for finding the standard deviation of a list of numbers
  20. def std(data):
  21. #The mean is calculated from the mean function
  22. meanList = mean(data)
  23. deviation = []
  24.  
  25. sum = 0
  26.  
  27. #All the values have the mean subtracted
  28. #then squared and added together
  29. for i in range(len(data)):
  30. for val in data[i]:
  31. sum += (val - meanList[i])**2
  32.  
  33. #The added value is then divided by the amount of values
  34. #and at last the squareroot is found
  35. deviation.append(math.sqrt(sum / len(data)))
  36. sum = 0
  37. print("Deviation", deviation)
  38. return deviation
  39.  
  40. #Get distance between two vectors (manhattan distance)
  41. def distance(v1, v2):
  42.  
  43. if (len(v1) != len(v2)):
  44. print("CALC ERROR in commonFunctions.py:" + "\n" +
  45. "The two vectors does not have the same dimension")
  46. return
  47.  
  48. dist = 0
  49. for i in range(len(v1)):
  50. dist += (v1[i] - v2[i])**2
  51.  
  52. return math.sqrt(dist)
  53.  
  54.  
  55. #function for finding the equidistant middle point
  56. def middlePoint(points):
  57. d = dimensions = len(points[0])
  58.  
  59. midPoint = []
  60. for i in range(d):
  61. sum = 0
  62. for point in points:
  63. sum += point[i]
  64.  
  65. midPoint.append(sum / len(points))
  66.  
  67. return midPoint
  68.  
  69.  
  70. #Function for arranging data with more dimensions
  71. #Where dimenstions is the dimensions in the data (columns)
  72. #And Data is the data, arranged in an array
  73. def arrangeData(dimensions, data):
  74. dataArranged = []
  75. for i in range(len(data[0])):
  76. tmp = []
  77. for j in range(dimensions):
  78. tmp.append(data[j][i])
  79.  
  80. dataArranged.append(tmp)
  81.  
  82. return dataArranged
  83.  
  84.  
  85. #function for showing data in a graph
  86. #Data needs to be 1 array with array of data
  87. #
  88. def show2DGraph(data):
  89. dataSet = np.array(data)
  90.  
  91. colors = [['b'], ['r'], ['g'], ['y'], ['p']]
  92. color_array = []
  93. area = []
  94.  
  95. if len(dataSet[0]) >= 3:
  96. for i in range(len(dataSet)):
  97. color_array += colors[clusters[i]]
  98. area.append(((dataSet[i][2]) + 2) ** 5)
  99. else:
  100. for i in range(len(clusters)):
  101. color_array += colors[clusters[i]]
  102. area.append(10)
  103.  
  104. plt.scatter(data[:, 0], data[:, 1], s=area, c=color_array, alpha=0.5)
  105. plt.show()
  106.  
  107.  
  108. def sigmoid(x):
  109. return 1 / (1 + (math.e **(-x)))
  110.  
  111.  
  112. def getZ(a, b, c, n):
  113. zArray = []
  114. for x in range(n):
  115. for y in range(n):
  116. zArray.append([x, y, a + (x*b) + (y*c) ])
  117.  
  118. return zArray
  119.  
  120.  
  121. testArray = getZ(123.47, -4.49, 16.26, 10)
  122.  
  123.  
  124. def prepare_data(data, prepare_for_cross_validation, prepare_for_KNN):
  125.  
  126. features = []
  127. labels = []
  128.  
  129. if not prepare_for_KNN:
  130.  
  131. for i in range(len(data)):
  132. features.append(data[i][:-1])
  133. labels.append(data[i][-1])
  134.  
  135. featuers_div = []
  136. labels_div = []
  137.  
  138. if prepare_for_cross_validation and not prepare_for_KNN:
  139. n = len(labels)
  140. k = (n / 10)
  141.  
  142.  
  143. x = 0
  144. for i in range(10):
  145. tmp_f = []
  146. tmp_l = []
  147. for j in range(50):
  148. tmp_f.append(features[j + x])
  149. tmp_l.append(labels[j + x])
  150.  
  151. featuers_div.append(tmp_f)
  152. labels_div.append(tmp_l)
  153. x += 50
  154.  
  155.  
  156. features = featuers_div
  157. labels = labels_div
  158.  
  159. data_div = []
  160.  
  161. if prepare_for_cross_validation and prepare_for_KNN:
  162. n = len(labels)
  163. k = (n / 10)
  164.  
  165. x = 0
  166. for i in range(10):
  167. tmp = []
  168. for j in range(50):
  169. tmp.append(data[j + x])
  170.  
  171. data_div.append(tmp)
  172.  
  173. x += 50
  174.  
  175. data = data_div
  176. return data
  177.  
  178. return features, labels
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement