1
+ {
2
+ "nbformat" : 4 ,
3
+ "nbformat_minor" : 0 ,
4
+ "metadata" : {
5
+ "colab" : {
6
+ "name" : " Troy Bradley High Dimensional Vector Distance CC - Master.ipynb" ,
7
+ "version" : " 0.3.2" ,
8
+ "provenance" : [],
9
+ "collapsed_sections" : []
10
+ },
11
+ "kernelspec" : {
12
+ "name" : " python3" ,
13
+ "display_name" : " Python 3"
14
+ }
15
+ },
16
+ "cells" : [
17
+ {
18
+ "cell_type" : " markdown" ,
19
+ "metadata" : {
20
+ "id" : " view-in-github" ,
21
+ "colab_type" : " text"
22
+ },
23
+ "source" : [
24
+ " [View in Colaboratory](https://colab.research.google.com/github/bitcointroy/MLcodechallenges/blob/master/Troy_Bradley_High_Dimensional_Vector_Distance_CC.ipynb)"
25
+ ]
26
+ },
27
+ {
28
+ "metadata" : {
29
+ "id" : " luCg81YEjaP1" ,
30
+ "colab_type" : " code" ,
31
+ "colab" : {}
32
+ },
33
+ "cell_type" : " code" ,
34
+ "source" : [
35
+ " import numpy as np\n " ,
36
+ " import matplotlib.pyplot as plt"
37
+ ],
38
+ "execution_count" : 0 ,
39
+ "outputs" : []
40
+ },
41
+ {
42
+ "metadata" : {
43
+ "id" : " k3P7Si8cj37a" ,
44
+ "colab_type" : " text"
45
+ },
46
+ "cell_type" : " markdown" ,
47
+ "source" : [
48
+ " First, define a function that takes two inputs (a mean and a standard deviation) and spits out a random number.\n " ,
49
+ " The number should be generated randomly from a normal distribution with that mean and that standard deviation. See [numpy.random.normal](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html), though, implementing the PDF for a normal distribution is a good exercise if you finish early."
50
+ ]
51
+ },
52
+ {
53
+ "metadata" : {
54
+ "id" : " wMkZOsQ2kUpX" ,
55
+ "colab_type" : " code" ,
56
+ "colab" : {
57
+ "base_uri" : " https://localhost:8080/" ,
58
+ "height" : 34
59
+ },
60
+ "outputId" : " e1aa1926-4eed-4e95-d8fa-134b4cb18abd"
61
+ },
62
+ "cell_type" : " code" ,
63
+ "source" : [
64
+ " def rand_val(mean, stdev):\n " ,
65
+ " return np.random.normal(mean, stdev)\n " ,
66
+ " \n " ,
67
+ " rand_val(10, 2)\n " ,
68
+ " "
69
+ ],
70
+ "execution_count" : 63 ,
71
+ "outputs" : [
72
+ {
73
+ "output_type" : " execute_result" ,
74
+ "data" : {
75
+ "text/plain" : [
76
+ " 11.051335018124922"
77
+ ]
78
+ },
79
+ "metadata" : {
80
+ "tags" : []
81
+ },
82
+ "execution_count" : 63
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "metadata" : {
88
+ "id" : " nayMEH_3nRZC" ,
89
+ "colab_type" : " text"
90
+ },
91
+ "cell_type" : " markdown" ,
92
+ "source" : [
93
+ " Now define a function that takes in a mean, a standard deviation, and a number n, and returns a numpy vector with n components.\n " ,
94
+ " The components should be randomly generated from a normal distribution with that mean and standard deviation"
95
+ ]
96
+ },
97
+ {
98
+ "metadata" : {
99
+ "id" : " ExAJD2CxngF1" ,
100
+ "colab_type" : " code" ,
101
+ "colab" : {
102
+ "base_uri" : " https://localhost:8080/" ,
103
+ "height" : 136
104
+ },
105
+ "outputId" : " 0ece737d-f53a-4517-ee01-dc489afee13f"
106
+ },
107
+ "cell_type" : " code" ,
108
+ "source" : [
109
+ " new_vec = []\n " ,
110
+ " def rand_vec(mean, stdev, n):\n " ,
111
+ " new_vec = np.random.normal(mean, stdev, size=n)\n " ,
112
+ " return new_vec\n " ,
113
+ " \n " ,
114
+ " print('random: \\ n', rand_vec(10,2,(5,2)))\n " ,
115
+ " print('new: ', new_vec)"
116
+ ],
117
+ "execution_count" : 73 ,
118
+ "outputs" : [
119
+ {
120
+ "output_type" : " stream" ,
121
+ "text" : [
122
+ " random: \n " ,
123
+ " \r [[ 9.2406166 7.39290715]\n " ,
124
+ " [ 9.32357534 10.89028469]\n " ,
125
+ " [11.63520949 11.31414626]\n " ,
126
+ " [11.11438854 12.81961532]\n " ,
127
+ " [12.29890036 8.6219731 ]]\n " ,
128
+ " new: []\n "
129
+ ],
130
+ "name" : " stdout"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "metadata" : {
136
+ "id" : " FdU1-hoOsyXz" ,
137
+ "colab_type" : " text"
138
+ },
139
+ "cell_type" : " markdown" ,
140
+ "source" : [
141
+ " Recall that there are many ways to compute the distance between two vectors. However you wish to do so, write a function that takes in\n " ,
142
+ " two vectors and returns the distance between them. Since this function only makes sense if the two vectors have the same number of\n " ,
143
+ " components, this function should return -1 if the two vectors live in different numbers of dimensions"
144
+ ]
145
+ },
146
+ {
147
+ "metadata" : {
148
+ "id" : " F6OKPxP8nvFn" ,
149
+ "colab_type" : " code" ,
150
+ "colab" : {}
151
+ },
152
+ "cell_type" : " code" ,
153
+ "source" : [
154
+ " def vec_dist(vecA, vecB):\n " ,
155
+ " if vecA.shape !== vecB.shape\n " ,
156
+ " "
157
+ ],
158
+ "execution_count" : 0 ,
159
+ "outputs" : []
160
+ },
161
+ {
162
+ "metadata" : {
163
+ "id" : " tEPgA2qHuaFT" ,
164
+ "colab_type" : " text"
165
+ },
166
+ "cell_type" : " markdown" ,
167
+ "source" : [
168
+ " From here on out, every component you randomly generate should come from a normal distribution centered at 0 with standard\n " ,
169
+ " deviation 1. With that in mind, write a function that takes in a number n (the number of dimensions), creates two random\n " ,
170
+ " vectors in n-dimensional space, calculates the distance between them, and returns that distance."
171
+ ]
172
+ },
173
+ {
174
+ "metadata" : {
175
+ "id" : " 8dAXAmjyuZGm" ,
176
+ "colab_type" : " code" ,
177
+ "colab" : {}
178
+ },
179
+ "cell_type" : " code" ,
180
+ "source" : [
181
+ " def rand_vec_dist(n):\n " ,
182
+ " return None\n " ,
183
+ " ##################\n " ,
184
+ " # Your Code Here #\n " ,
185
+ " ##################"
186
+ ],
187
+ "execution_count" : 0 ,
188
+ "outputs" : []
189
+ },
190
+ {
191
+ "metadata" : {
192
+ "id" : " MuRwge4GvZrS" ,
193
+ "colab_type" : " text"
194
+ },
195
+ "cell_type" : " markdown" ,
196
+ "source" : [
197
+ " Using what you've made so far, what is the average distance between two points in 1-dimensional space? In other words, between\n " ,
198
+ " two regular old floating point numbers with mean 0 and standard deviation 1. After you calculate this, store it as the first\n " ,
199
+ " component in a Pythin list named average_dist_list."
200
+ ]
201
+ },
202
+ {
203
+ "metadata" : {
204
+ "id" : " -xBiAWMHvw3h" ,
205
+ "colab_type" : " code" ,
206
+ "colab" : {
207
+ "base_uri" : " https://localhost:8080/" ,
208
+ "height" : 34
209
+ },
210
+ "outputId" : " ccdcd419-85cf-47ca-9c3d-5fe6bf147f9e"
211
+ },
212
+ "cell_type" : " code" ,
213
+ "source" : [
214
+ " def average_dist_calculator(n, trials):\n " ,
215
+ " return None\n " ,
216
+ " ##################\n " ,
217
+ " # Your Code Here #\n " ,
218
+ " ##################\n " ,
219
+ " average_dist_list = []\n " ,
220
+ " print(average_dist_list)"
221
+ ],
222
+ "execution_count" : 0 ,
223
+ "outputs" : [
224
+ {
225
+ "output_type" : " stream" ,
226
+ "text" : [
227
+ " []\n "
228
+ ],
229
+ "name" : " stdout"
230
+ }
231
+ ]
232
+ },
233
+ {
234
+ "metadata" : {
235
+ "id" : " 8mPH39jfzLM4" ,
236
+ "colab_type" : " text"
237
+ },
238
+ "cell_type" : " markdown" ,
239
+ "source" : [
240
+ " What's the average distance between two points in 2-dimensional space? What about 3? Keep calculating these average distances and\n " ,
241
+ " appending them to average_dist_list up through 200-dimensional space."
242
+ ]
243
+ },
244
+ {
245
+ "metadata" : {
246
+ "id" : " dxHLm6J1wMwP" ,
247
+ "colab_type" : " code" ,
248
+ "colab" : {
249
+ "base_uri" : " https://localhost:8080/" ,
250
+ "height" : 34
251
+ },
252
+ "outputId" : " 3d843ecd-308b-473c-f682-a97ba2358fbe"
253
+ },
254
+ "cell_type" : " code" ,
255
+ "source" : [
256
+ " ##################\n " ,
257
+ " # Your Code Here #\n " ,
258
+ " ##################\n " ,
259
+ " print(average_dist_list)"
260
+ ],
261
+ "execution_count" : 0 ,
262
+ "outputs" : [
263
+ {
264
+ "output_type" : " stream" ,
265
+ "text" : [
266
+ " []\n "
267
+ ],
268
+ "name" : " stdout"
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "metadata" : {
274
+ "id" : " t_DED4x70zMV" ,
275
+ "colab_type" : " code" ,
276
+ "colab" : {
277
+ "base_uri" : " https://localhost:8080/" ,
278
+ "height" : 347
279
+ },
280
+ "outputId" : " 82f21134-4fe5-4051-900f-19787f0f22c6"
281
+ },
282
+ "cell_type" : " code" ,
283
+ "source" : [
284
+ " plt.plot(np.arange(0,0),average_dist_list);"
285
+ ],
286
+ "execution_count" : 0 ,
287
+ "outputs" : [
288
+ {
289
+ "output_type" : " display_data" ,
290
+ "data" : {
291
+ "image/png": "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\n7qYAAAAASUVORK5CYII=\n",
292
+ "text/plain" : [
293
+ " <matplotlib.figure.Figure at 0x7f6e708e2b38>"
294
+ ]
295
+ },
296
+ "metadata" : {
297
+ "tags" : []
298
+ }
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ "metadata" : {
304
+ "id" : " urd9Ficj4axm" ,
305
+ "colab_type" : " text"
306
+ },
307
+ "cell_type" : " markdown" ,
308
+ "source" : [
309
+ " As the number of dimensions n grows larger and larger, approximately how does the average distance grow?\n " ,
310
+ " \n " ,
311
+ " It should be well-approximated by the function f(n) = c*n^p for some numbers c and p. However you choose to do so, find the values of c and p."
312
+ ]
313
+ },
314
+ {
315
+ "metadata" : {
316
+ "id" : " YBVLh9gM16kI" ,
317
+ "colab_type" : " code" ,
318
+ "colab" : {}
319
+ },
320
+ "cell_type" : " code" ,
321
+ "source" : [
322
+ " "
323
+ ],
324
+ "execution_count" : 0 ,
325
+ "outputs" : []
326
+ }
327
+ ]
328
+ }
0 commit comments