Commit 6dfda007 authored by Simon Clarke's avatar Simon Clarke
Browse files

Draft SGD notebook

parent 31809c31
AGE,SEX,BMI,BP,S1,S2,S3,S4,S5,S6,Y
59,2,32.1,101,157,93.2,38,4,4.8598,87,151
48,1,21.6,87,183,103.2,70,3,3.8918,69,75
72,2,30.5,93,156,93.6,41,4,4.6728,85,141
24,1,25.3,84,198,131.4,40,5,4.8903,89,206
50,1,23,101,192,125.4,52,4,4.2905,80,135
23,1,22.6,89,139,64.8,61,2,4.1897,68,97
36,2,22,90,160,99.6,50,3,3.9512,82,138
66,2,26.2,114,255,185,56,4.55,4.2485,92,63
60,2,32.1,83,179,119.4,42,4,4.4773,94,110
29,1,30,85,180,93.4,43,4,5.3845,88,310
22,1,18.6,97,114,57.6,46,2,3.9512,83,101
56,2,28,85,184,144.8,32,6,3.5835,77,69
53,1,23.7,92,186,109.2,62,3,4.3041,81,179
50,2,26.2,97,186,105.4,49,4,5.0626,88,185
61,1,24,91,202,115.4,72,3,4.2905,73,118
34,2,24.7,118,254,184.2,39,7,5.037,81,171
47,1,30.3,109,207,100.2,70,3,5.2149,98,166
68,2,27.5,111,214,147,39,5,4.9416,91,144
38,1,25.4,84,162,103,42,4,4.4427,87,97
41,1,24.7,83,187,108.2,60,3,4.5433,78,168
35,1,21.1,82,156,87.8,50,3,4.5109,95,68
25,2,24.3,95,162,98.6,54,3,3.8501,87,49
25,1,26,92,187,120.4,56,3,3.9703,88,68
61,2,32,103.67,210,85.2,35,6,6.107,124,245
31,1,29.7,88,167,103.4,48,4,4.3567,78,184
30,2,25.2,83,178,118.4,34,5,4.852,83,202
19,1,19.2,87,124,54,57,2,4.1744,90,137
42,1,31.9,83,158,87.6,53,3,4.4659,101,85
63,1,24.4,73,160,91.4,48,3,4.6347,78,131
67,2,25.8,113,158,54.2,64,2,5.2933,104,283
32,1,30.5,89,182,110.6,56,3,4.3438,89,129
42,1,20.3,71,161,81.2,66,2,4.2341,81,59
58,2,38,103,150,107.2,22,7,4.6444,98,341
57,1,21.7,94,157,58,82,2,4.4427,92,87
53,1,20.5,78,147,84.2,52,3,3.989,75,65
62,2,23.5,80.33,225,112.8,86,2.62,4.8752,96,102
52,1,28.5,110,195,97.2,60,3,5.2417,85,265
46,1,27.4,78,171,88,58,3,4.8283,90,276
48,2,33,123,253,163.6,44,6,5.425,97,252
48,2,27.7,73,191,119.4,46,4,4.852,92,90
50,2,25.6,101,229,162.2,43,5,4.7791,114,100
21,1,20.1,63,135,69,54,3,4.0943,89,55
32,2,25.4,90.33,153,100.4,34,4.5,4.5326,83,61
54,1,24.2,74,204,109,82,2,4.1744,109,92
61,2,32.7,97,177,118.4,29,6,4.9972,87,259
56,2,23.1,104,181,116.4,47,4,4.4773,79,53
33,1,25.3,85,155,85,51,3,4.5539,70,190
27,1,19.6,78,128,68,43,3,4.4427,71,142
67,2,22.5,98,191,119.2,61,3,3.989,86,75
37,2,27.7,93,180,119.4,30,6,5.0304,88,142
58,1,25.7,99,157,91.6,49,3,4.4067,93,155
65,2,27.9,103,159,96.8,42,4,4.6151,86,225
34,1,25.5,93,218,144,57,4,4.4427,88,59
46,1,24.9,115,198,129.6,54,4,4.2767,103,104
35,1,28.7,97,204,126.8,64,3,4.1897,93,182
37,1,21.8,84,184,101,73,3,3.912,93,128
37,1,30.2,87,166,96,40,4.15,5.0106,87,52
41,1,20.5,80,124,48.8,64,2,4.0254,75,37
60,1,20.4,105,198,78.4,99,2,4.6347,79,170
66,2,24,98,236,146.4,58,4,5.0626,96,170
29,1,26,83,141,65.2,64,2,4.0775,83,61
37,2,26.8,79,157,98,28,6,5.0434,96,144
41,2,25.7,83,181,106.6,66,3,3.7377,85,52
39,1,22.9,77,204,143.2,46,4,4.3041,74,128
67,2,24,83,143,77.2,49,3,4.4308,94,71
36,2,24.1,112,193,125,35,6,5.1059,95,163
46,2,24.7,85,174,123.2,30,6,4.6444,96,150
60,2,25,89.67,185,120.8,46,4.02,4.5109,92,97
59,2,23.6,83,165,100,47,4,4.4998,92,160
53,1,22.1,93,134,76.2,46,3,4.0775,96,178
48,1,19.9,91,189,109.6,69,3,3.9512,101,48
48,1,29.5,131,207,132.2,47,4,4.9345,106,270
66,2,26,91,264,146.6,65,4,5.5683,87,202
52,2,24.5,94,217,149.4,48,5,4.585,89,111
52,2,26.6,111,209,126.4,61,3,4.6821,109,85
46,2,23.5,87,181,114.8,44,4,4.7095,98,42
40,2,29,115,97,47.2,35,2.77,4.3041,95,170
22,1,23,73,161,97.8,54,3,3.8286,91,200
50,1,21,88,140,71.8,35,4,5.112,71,252
20,1,22.9,87,191,128.2,53,4,3.8918,85,113
68,1,27.5,107,241,149.6,64,4,4.92,90,143
52,2,24.3,86,197,133.6,44,5,4.5747,91,51
44,1,23.1,87,213,126.4,77,3,3.8712,72,52
38,1,27.3,81,146,81.6,47,3,4.4659,81,210
49,1,22.7,65.33,168,96.2,62,2.71,3.8918,60,65
61,1,33,95,182,114.8,54,3,4.1897,74,141
29,2,19.4,83,152,105.8,39,4,3.5835,83,55
61,1,25.8,98,235,125.8,76,3,5.112,82,134
34,2,22.6,75,166,91.8,60,3,4.2627,108,42
36,1,21.9,89,189,105.2,68,3,4.3694,96,111
52,1,24,83,167,86.6,71,2,3.8501,94,98
61,1,31.2,79,235,156.8,47,5,5.0499,96,164
43,1,26.8,123,193,102.2,67,3,4.7791,94,48
35,1,20.4,65,187,105.6,67,2.79,4.2767,78,96
27,1,24.8,91,189,106.8,69,3,4.1897,69,90
29,1,21,71,156,97,38,4,4.654,90,162
64,2,27.3,109,186,107.6,38,5,5.3083,99,150
41,1,34.6,87.33,205,142.6,41,5,4.6728,110,279
49,2,25.9,91,178,106.6,52,3,4.5747,75,92
48,1,20.4,98,209,139.4,46,5,4.7707,78,83
53,1,28,88,233,143.8,58,4,5.0499,91,128
53,2,22.2,113,197,115.2,67,3,4.3041,100,102
23,1,29,90,216,131.4,65,3,4.585,91,302
65,2,30.2,98,219,160.6,40,5,4.5218,84,198
41,1,32.4,94,171,104.4,56,3,3.9703,76,95
55,2,23.4,83,166,101.6,46,4,4.5218,96,53
22,1,19.3,82,156,93.2,52,3,3.989,71,134
56,1,31,78.67,187,141.4,34,5.5,4.0604,90,144
54,2,30.6,103.33,144,79.8,30,4.8,5.1417,101,232
59,2,25.5,95.33,190,139.4,35,5.43,4.3567,117,81
60,2,23.4,88,153,89.8,58,3,3.2581,95,104
54,1,26.8,87,206,122,68,3,4.382,80,59
25,1,28.3,87,193,128,49,4,4.382,92,246
54,2,27.7,113,200,128.4,37,5,5.1533,113,297
55,1,36.6,113,199,94.4,43,4.63,5.7301,97,258
40,2,26.5,93,236,147,37,7,5.5607,92,229
62,2,31.8,115,199,128.6,44,5,4.8828,98,275
65,1,24.4,120,222,135.6,37,6,5.5094,124,281
33,2,25.4,102,206,141,39,5,4.8675,105,179
53,1,22,94,175,88,59,3,4.9416,98,200
35,1,26.8,98,162,103.6,45,4,4.2047,86,200
66,1,28,101,195,129.2,40,5,4.8598,94,173
62,2,33.9,101,221,156.4,35,6,4.9972,103,180
50,2,29.6,94.33,300,242.4,33,9.09,4.8122,109,84
47,1,28.6,97,164,90.6,56,3,4.4659,88,121
47,2,25.6,94,165,74.8,40,4,5.5255,93,161
24,1,20.7,87,149,80.6,61,2,3.6109,78,99
58,2,26.2,91,217,124.2,71,3,4.6913,68,109
34,1,20.6,87,185,112.2,58,3,4.3041,74,115
51,1,27.9,96,196,122.2,42,5,5.0689,120,268
31,2,35.3,125,187,112.4,48,4,4.8903,109,274
22,1,19.9,75,175,108.6,54,3,4.1271,72,158
53,2,24.4,92,214,146,50,4,4.4998,97,107
37,2,21.4,83,128,69.6,49,3,3.8501,84,83
28,1,30.4,85,198,115.6,67,3,4.3438,80,103
47,1,31.6,84,154,88,30,5.1,5.1985,105,272
23,1,18.8,78,145,72,63,2,3.912,86,85
50,1,31,123,178,105,48,4,4.8283,88,280
58,2,36.7,117,166,93.8,44,4,4.9488,109,336
55,1,32.1,110,164,84.2,42,4,5.2417,90,281
60,2,27.7,107,167,114.6,38,4,4.2767,95,118
41,1,30.8,81,214,152,28,7.6,5.1358,123,317
60,2,27.5,106,229,143.8,51,4,5.1417,91,235
40,1,26.9,92,203,119.8,70,3,4.1897,81,60
57,2,30.7,90,204,147.8,34,6,4.7095,93,174
37,1,38.3,113,165,94.6,53,3,4.4659,79,259
40,2,31.9,95,198,135.6,38,5,4.804,93,178
33,1,35,89,200,130.4,42,4.76,4.9273,101,128
32,2,27.8,89,216,146.2,55,4,4.3041,91,96
35,2,25.9,81,174,102.4,31,6,5.3132,82,126
55,1,32.9,102,164,106.2,41,4,4.4308,89,288
49,1,26,93,183,100.2,64,3,4.5433,88,88
39,2,26.3,115,218,158.2,32,7,4.9345,109,292
60,2,22.3,113,186,125.8,46,4,4.2627,94,71
67,2,28.3,93,204,132.2,49,4,4.7362,92,197
41,2,32,109,251,170.6,49,5,5.0562,103,186
44,1,25.4,95,162,92.6,53,3,4.4067,83,25
48,2,23.3,89.33,212,142.8,46,4.61,4.7536,98,84
45,1,20.3,74.33,190,126.2,49,3.88,4.3041,79,96
47,1,30.4,120,199,120,46,4,5.1059,87,195
46,1,20.6,73,172,107,51,3,4.2485,80,53
36,2,32.3,115,286,199.4,39,7,5.4723,112,217
34,1,29.2,73,172,108.2,49,4,4.3041,91,172
53,2,33.1,117,183,119,48,4,4.382,106,131
61,1,24.6,101,209,106.8,77,3,4.8363,88,214
37,1,20.2,81,162,87.8,63,3,4.0254,88,59
33,2,20.8,84,125,70.2,46,3,3.7842,66,70
68,1,32.8,105.67,205,116.4,40,5.13,5.4931,117,220
49,2,31.9,94,234,155.8,34,7,5.3982,122,268
48,1,23.9,109,232,105.2,37,6,6.107,96,152
55,2,24.5,84,179,105.8,66,3,3.5835,87,47
43,1,22.1,66,134,77.2,45,3,4.0775,80,74
60,2,33,97,217,125.6,45,5,5.4467,112,295
31,2,19,93,137,73,47,3,4.4427,78,101
53,2,27.3,82,119,55,39,3,4.8283,93,151
67,1,22.8,87,166,98.6,52,3,4.3438,92,127
61,2,28.2,106,204,132,52,4,4.6052,96,237
62,1,28.9,87.33,206,127.2,33,6.24,5.4337,99,225
60,1,25.6,87,207,125.8,69,3,4.1109,84,81
42,1,24.9,91,204,141.8,38,5,4.7958,89,151
38,2,26.8,105,181,119.2,37,5,4.8203,91,107
62,1,22.4,79,222,147.4,59,4,4.3567,76,64
61,2,26.9,111,236,172.4,39,6,4.8122,89,138
61,2,23.1,113,186,114.4,47,4,4.8122,105,185
53,1,28.6,88,171,98.8,41,4,5.0499,99,265
28,2,24.7,97,175,99.6,32,5,5.3799,87,101
26,2,30.3,89,218,152.2,31,7,5.1591,82,137
30,1,21.3,87,134,63,63,2,3.6889,66,143
50,1,26.1,109,243,160.6,62,4,4.625,89,141
48,1,20.2,95,187,117.4,53,4,4.4188,85,79
51,1,25.2,103,176,112.2,37,5,4.8978,90,292
47,2,22.5,82,131,66.8,41,3,4.7536,89,178
64,2,23.5,97,203,129,59,3,4.3175,77,91
51,2,25.9,76,240,169,39,6,5.0752,96,116
30,1,20.9,104,152,83.8,47,3,4.6634,97,86
56,2,28.7,99,208,146.4,39,5,4.7274,97,122
42,1,22.1,85,213,138.6,60,4,4.2767,94,72
62,2,26.7,115,183,124,35,5,4.7875,100,129
34,1,31.4,87,149,93.8,46,3,3.8286,77,142
60,1,22.2,104.67,221,105.4,60,3.68,5.6276,93,90
64,1,21,92.33,227,146.8,65,3.49,4.3307,102,158
39,2,21.2,90,182,110.4,60,3,4.0604,98,39
71,2,26.5,105,281,173.6,55,5,5.5683,84,196
48,2,29.2,110,218,151.6,39,6,4.92,98,222
79,2,27,103,169,110.8,37,5,4.6634,110,277
40,1,30.7,99,177,85.4,50,4,5.3375,85,99
49,2,28.8,92,207,140,44,5,4.7449,92,196
51,1,30.6,103,198,106.6,57,3,5.1475,100,202
57,1,30.1,117,202,139.6,42,5,4.625,120,155
59,2,24.7,114,152,104.8,29,5,4.5109,88,77
51,1,27.7,99,229,145.6,69,3,4.2767,77,191
74,1,29.8,101,171,104.8,50,3,4.3944,86,70
67,1,26.7,105,225,135.4,69,3,4.6347,96,73
49,1,19.8,88,188,114.8,57,3,4.3944,93,49
57,1,23.3,88,155,63.6,78,2,4.2047,78,65
56,2,35.1,123,164,95,38,4,5.0434,117,263
52,2,29.7,109,228,162.8,31,8,5.1417,103,248
69,1,29.3,124,223,139,54,4,5.0106,102,296
37,1,20.3,83,185,124.6,38,5,4.7185,88,214
24,1,22.5,89,141,68,52,3,4.654,84,185
55,2,22.7,93,154,94.2,53,3,3.5264,75,78
36,1,22.8,87,178,116,41,4,4.654,82,93
42,2,24,107,150,85,44,3,4.654,96,252
21,1,24.2,76,147,77,53,3,4.4427,79,150
41,1,20.2,62,153,89,50,3,4.2485,89,77
57,2,29.4,109,160,87.6,31,5,5.3327,92,208
20,2,22.1,87,171,99.6,58,3,4.2047,78,77
67,2,23.6,111.33,189,105.4,70,2.7,4.2195,93,108
34,1,25.2,77,189,120.6,53,4,4.3438,79,160
41,2,24.9,86,192,115,61,3,4.382,94,53
38,2,33,78,301,215,50,6.02,5.193,108,220
51,1,23.5,101,195,121,51,4,4.7449,94,154
52,2,26.4,91.33,218,152,39,5.59,4.9053,99,259
67,1,29.8,80,172,93.4,63,3,4.3567,82,90
61,1,30,108,194,100,52,3.73,5.3471,105,246
67,2,25,111.67,146,93.4,33,4.42,4.585,103,124
56,1,27,105,247,160.6,54,5,5.0876,94,67
64,1,20,74.67,189,114.8,62,3.05,4.1109,91,72
58,2,25.5,112,163,110.6,29,6,4.7622,86,257
55,1,28.2,91,250,140.2,67,4,5.366,103,262
62,2,33.3,114,182,114,38,5,5.0106,96,275
57,2,25.6,96,200,133,52,3.85,4.3175,105,177
20,2,24.2,88,126,72.2,45,3,3.7842,74,71
53,2,22.1,98,165,105.2,47,4,4.1589,81,47
32,2,31.4,89,153,84.2,56,3,4.1589,90,187
41,1,23.1,86,148,78,58,3,4.0943,60,125
60,1,23.4,76.67,247,148,65,3.8,5.1358,77,78
26,1,18.8,83,191,103.6,69,3,4.5218,69,51
37,1,30.8,112,282,197.2,43,7,5.3423,101,258
45,1,32,110,224,134.2,45,5,5.4116,93,215
67,1,31.6,116,179,90.4,41,4,5.4723,100,303
34,2,35.5,120,233,146.6,34,7,5.5683,101,243
50,1,31.9,78.33,207,149.2,38,5.45,4.5951,84,91
71,1,29.5,97,227,151.6,45,5,5.0239,108,150
57,2,31.6,117,225,107.6,40,6,5.9584,113,310
49,1,20.3,93,184,103,61,3,4.6052,93,153
35,1,41.3,81,168,102.8,37,5,4.9488,94,346
41,2,21.2,102,184,100.4,64,3,4.585,79,63
70,2,24.1,82.33,194,149.2,31,6.26,4.2341,105,89
52,1,23,107,179,123.7,42.5,4.21,4.1589,93,50
60,1,25.6,78,195,95.4,91,2,3.7612,87,39
62,1,22.5,125,215,99,98,2,4.4998,95,103
44,2,38.2,123,201,126.6,44,5,5.0239,92,308
28,2,19.2,81,155,94.6,51,3,3.8501,87,116
58,2,29,85,156,109.2,36,4,3.989,86,145
39,2,24,89.67,190,113.6,52,3.65,4.804,101,74
34,2,20.6,98,183,92,83,2,3.6889,92,45
65,1,26.3,70,244,166.2,51,5,4.8978,98,115
66,2,34.6,115,204,139.4,36,6,4.9628,109,264
51,1,23.4,87,220,108.8,93,2,4.5109,82,87
50,2,29.2,119,162,85.2,54,3,4.7362,95,202
59,2,27.2,107,158,102,39,4,4.4427,93,127
52,1,27,78.33,134,73,44,3.05,4.4427,69,182
69,2,24.5,108,243,136.4,40,6,5.8081,100,241
53,1,24.1,105,184,113.4,46,4,4.8122,95,66
47,2,25.3,98,173,105.6,44,4,4.7622,108,94
52,1,28.8,113,280,174,67,4,5.273,86,283
39,1,20.9,95,150,65.6,68,2,4.4067,95,64
67,2,23,70,184,128,35,5,4.654,99,102
59,2,24.1,96,170,98.6,54,3,4.4659,85,200
51,2,28.1,106,202,122.2,55,4,4.8203,87,265
23,2,18,78,171,96,48,4,4.9053,92,94
68,1,25.9,93,253,181.2,53,5,4.5433,98,230
44,1,21.5,85,157,92.2,55,3,3.8918,84,181
60,2,24.3,103,141,86.6,33,4,4.6728,78,156
52,1,24.5,90,198,129,29,7,5.2983,86,233
38,1,21.3,72,165,60.2,88,2,4.4308,90,60
61,1,25.8,90,280,195.4,55,5,4.9972,90,219
68,2,24.8,101,221,151.4,60,4,3.8712,87,80
28,2,31.5,83,228,149.4,38,6,5.3132,83,68
65,2,33.5,102,190,126.2,35,5,4.9698,102,332
69,1,28.1,113,234,142.8,52,4,5.2781,77,248
51,1,24.3,85.33,153,71.6,71,2.15,3.9512,82,84
29,1,35,98.33,204,142.6,50,4.08,4.0431,91,200
55,2,23.5,93,177,126.8,41,4,3.8286,83,55
34,2,30,83,185,107.2,53,3,4.8203,92,85
67,1,20.7,83,170,99.8,59,3,4.0254,77,89
49,1,25.6,76,161,99.8,51,3,3.9318,78,31
55,2,22.9,81,123,67.2,41,3,4.3041,88,129
59,2,25.1,90,163,101.4,46,4,4.3567,91,83
53,1,33.2,82.67,186,106.8,46,4.04,5.112,102,275
48,2,24.1,110,209,134.6,58,4,4.4067,100,65
52,1,29.5,104.33,211,132.8,49,4.31,4.9836,98,198
69,1,29.6,122,231,128.4,56,4,5.451,86,236
60,2,22.8,110,245,189.8,39,6,4.3944,88,253
46,2,22.7,83,183,125.8,32,6,4.8363,75,124
51,2,26.2,101,161,99.6,48,3,4.2047,88,44
67,2,23.5,96,207,138.2,42,5,4.8978,111,172
49,1,22.1,85,136,63.4,62,2.19,3.9703,72,114
46,2,26.5,94,247,160.2,59,4,4.9345,111,142
47,1,32.4,105,188,125,46,4.09,4.4427,99,109
75,1,30.1,78,222,154.2,44,5.05,4.7791,97,180
28,1,24.2,93,174,106.4,54,3,4.2195,84,144
65,2,31.3,110,213,128,47,5,5.247,91,163
42,1,30.1,91,182,114.8,49,4,4.5109,82,147
51,1,24.5,79,212,128.6,65,3,4.5218,91,97
53,2,27.7,95,190,101.8,41,5,5.4638,101,220
54,1,23.2,110.67,238,162.8,48,4.96,4.9127,108,190
73,1,27,102,211,121,67,3,4.7449,99,109
54,1,26.8,108,176,80.6,67,3,4.9558,106,191
42,1,29.2,93,249,174.2,45,6,5.0039,92,122
75,1,31.2,117.67,229,138.8,29,7.9,5.7236,106,230
55,2,32.1,112.67,207,92.4,25,8.28,6.1048,111,242
68,2,25.7,109,233,112.6,35,7,6.0568,105,248
57,1,26.9,98,246,165.2,38,7,5.366,96,249
48,1,31.4,75.33,242,151.6,38,6.37,5.5683,103,192
61,2,25.6,85,184,116.2,39,5,4.9698,98,131
69,1,37,103,207,131.4,55,4,4.6347,90,237
38,1,32.6,77,168,100.6,47,4,4.625,96,78
45,2,21.2,94,169,96.8,55,3,4.4543,102,135
51,2,29.2,107,187,139,32,6,4.382,95,244
71,2,24,84,138,85.8,39,4,4.1897,90,199
57,1,36.1,117,181,108.2,34,5,5.2679,100,270
56,2,25.8,103,177,114.4,34,5,4.9628,99,164
32,2,22,88,137,78.6,48,3,3.9512,78,72
50,1,21.9,91,190,111.2,67,3,4.0775,77,96
43,1,34.3,84,256,172.6,33,8,5.5294,104,306
54,2,25.2,115,181,120,39,5,4.7005,92,91
31,1,23.3,85,190,130.8,43,4,4.3944,77,214
56,1,25.7,80,244,151.6,59,4,5.118,95,95
44,1,25.1,133,182,113,55,3,4.2485,84,216
57,2,31.9,111,173,116.2,41,4,4.3694,87,263
64,2,28.4,111,184,127,41,4,4.382,97,178
43,1,28.1,121,192,121,60,3,4.0073,93,113
19,1,25.3,83,225,156.6,46,5,4.7185,84,200
71,2,26.1,85,220,152.4,47,5,4.6347,91,139
50,2,28,104,282,196.8,44,6,5.3279,95,139
59,2,23.6,73,180,107.4,51,4,4.6821,84,88
57,1,24.5,93,186,96.6,71,3,4.5218,91,148
49,2,21,82,119,85.4,23,5,3.9703,74,88
41,2,32,126,198,104.2,49,4,5.4116,124,243
25,2,22.6,85,130,71,48,3,4.0073,81,71
52,2,19.7,81,152,53.4,82,2,4.4188,82,77
34,1,21.2,84,254,113.4,52,5,6.0936,92,109
42,2,30.6,101,269,172.2,50,5,5.4553,106,272
28,2,25.5,99,162,101.6,46,4,4.2767,94,60
47,2,23.3,90,195,125.8,54,4,4.3307,73,54
32,2,31,100,177,96.2,45,4,5.1874,77,221
43,1,18.5,87,163,93.6,61,2.67,3.7377,80,90
59,2,26.9,104,194,126.6,43,5,4.804,106,311
53,1,28.3,101,179,107,48,4,4.7875,101,281
60,1,25.7,103,158,84.6,64,2,3.8501,97,182
54,2,36.1,115,163,98.4,43,4,4.6821,101,321
35,2,24.1,94.67,155,97.4,32,4.84,4.852,94,58
49,2,25.8,89,182,118.6,39,5,4.804,115,262
58,1,22.8,91,196,118.8,48,4,4.9836,115,206
36,2,39.1,90,219,135.8,38,6,5.4205,103,233
46,2,42.2,99,211,137,44,5,5.0106,99,242
44,2,26.6,99,205,109,43,5,5.5797,111,123
46,1,29.9,83,171,113,38,4.5,4.585,98,167
54,1,21,78,188,107.4,70,3,3.9703,73,63
63,2,25.5,109,226,103.2,46,5,5.9506,87,197
41,2,24.2,90,199,123.6,57,4,4.5218,86,71
28,1,25.4,93,141,79,49,3,4.1744,91,168
19,1,23.2,75,143,70.4,52,3,4.6347,72,140
61,2,26.1,126,215,129.8,57,4,4.9488,96,217
48,1,32.7,93,276,198.6,43,6.42,5.1475,91,121
54,2,27.3,100,200,144,33,6,4.7449,76,235
53,2,26.6,93,185,122.4,36,5,4.8903,82,245
48,1,22.8,101,110,41.6,56,2,4.1271,97,40
53,1,28.8,111.67,145,87.2,46,3.15,4.0775,85,52
29,2,18.1,73,158,99,41,4,4.4998,78,104
62,1,32,88,172,69,38,4,5.7838,100,132
50,2,23.7,92,166,97,52,3,4.4427,93,88
58,2,23.6,96,257,171,59,4,4.9053,82,69
55,2,24.6,109,143,76.4,51,3,4.3567,88,219
54,1,22.6,90,183,104.2,64,3,4.3041,92,72
36,1,27.8,73,153,104.4,42,4,3.4965,73,201
63,2,24.1,111,184,112.2,44,4,4.9345,82,110
47,2,26.5,70,181,104.8,63,3,4.1897,70,51
51,2,32.8,112,202,100.6,37,5,5.7746,109,277
42,1,19.9,76,146,83.2,55,3,3.6636,79,63
37,2,23.6,94,205,138.8,53,4,4.1897,107,118
28,1,22.1,82,168,100.6,54,3,4.2047,86,69
58,1,28.1,111,198,80.6,31,6,6.0684,93,273
32,1,26.5,86,184,101.6,53,4,4.9904,78,258
25,2,23.5,88,143,80.8,55,3,3.5835,83,43
63,1,26,85.67,155,78.2,46,3.37,5.037,97,198
52,1,27.8,85,219,136,49,4,5.1358,75,242
65,2,28.5,109,201,123,46,4,5.0752,96,232
42,1,30.6,121,176,92.8,69,3,4.2627,89,175
53,1,22.2,78,164,81,70,2,4.1744,101,93
79,2,23.3,88,186,128.4,33,6,4.8122,102,168
43,1,35.4,93,185,100.2,44,4,5.3181,101,275
44,1,31.4,115,165,97.6,52,3,4.3438,89,293
62,2,37.8,119,113,51,31,4,5.0434,84,281
33,1,18.9,70,162,91.8,59,3,4.0254,58,72
56,1,35,79.33,195,140.8,42,4.64,4.1109,96,140
66,1,21.7,126,212,127.8,45,4.71,5.2781,101,189
34,2,25.3,111,230,162,39,6,4.9767,90,181
46,2,23.8,97,224,139.2,42,5,5.366,81,209
50,1,31.8,82,136,69.2,55,2,4.0775,85,136
69,1,34.3,113,200,123.8,54,4,4.7095,112,261
34,1,26.3,87,197,120,63,3,4.2485,96,113
71,2,27,93.33,269,190.2,41,6.56,5.2417,93,131
47,1,27.2,80,208,145.6,38,6,4.804,92,174
41,1,33.8,123.33,187,127,45,4.16,4.3175,100,257
34,1,33,73,178,114.6,51,3.49,4.1271,92,55
51,1,24.1,87,261,175.6,69,4,4.4067,93,84
43,1,21.3,79,141,78.8,53,3,3.8286,90,42
55,1,23,94.67,190,137.6,38,5,4.2767,106,146
59,2,27.9,101,218,144.2,38,6,5.1874,95,212
27,2,33.6,110,246,156.6,57,4,5.0876,89,233
51,2,22.7,103,217,162.4,30,7,4.8122,80,91
49,2,27.4,89,177,113,37,5,4.9053,97,111
27,1,22.6,71,116,43.4,56,2,4.4188,79,152
57,2,23.2,107.33,231,159.4,41,5.63,5.0304,112,120
39,2,26.9,93,136,75.4,48,3,4.1431,99,67
62,2,34.6,120,215,129.2,43,5,5.366,123,310
37,1,23.3,88,223,142,65,3.4,4.3567,82,94
46,1,21.1,80,205,144.4,42,5,4.5326,87,183
68,2,23.5,101,162,85.4,59,3,4.4773,91,66
51,1,31.5,93,231,144,49,4.7,5.2523,117,173
41,1,20.8,86,223,128.2,83,3,4.0775,89,72
53,1,26.5,97,193,122.4,58,3,4.1431,99,49
45,1,24.2,83,177,118.4,45,4,4.2195,82,64
33,1,19.5,80,171,85.4,75,2,3.9703,80,48
60,2,28.2,112,185,113.8,42,4,4.9836,93,178
47,2,24.9,75,225,166,42,5,4.4427,102,104
60,2,24.9,99.67,162,106.6,43,3.77,4.1271,95,132
36,1,30,95,201,125.2,42,4.79,5.1299,85,220
36,1,19.6,71,250,133.2,97,3,4.5951,92,57
\ No newline at end of file
%% Cell type:markdown id: tags:
# Gradient Descent
%% Cell type:markdown id: tags:
Gradient descent algorithms underlie most of the optimization in Machine Learning. In this notebook we will go through some simple examples of how gradient descent is implemented, and the application of this to linear regression.
%% Cell type:markdown id: tags:
## Contents
* Vanilla Gradient Descent
* Application to Linear Regression
* Exercises
%% Cell type:markdown id: tags:
## Vanilla Gradient Descent
%% Cell type:markdown id: tags:
Consider that we have $n$ independent features, which are denoted by $x_1, \dots, x_n$, and a function $V(x_1,\dots,x_n)$ which we want to minimize. If we have have a function $W(x_1,\dots,x_n)$ that we want to maximize, then let $V = -W$ and minimizing $V$ is equivalent to maximizing $W$.
Since the name includes gradient, we first need to define the gradient. This is simply a vector which consists of all the first partial derivatives of the function $V$:
$$
\nabla V ({\textbf x}) = \left( \frac{\partial V}{\partial x_1}, \dots, \frac{\partial V}{\partial x_n}\right).
$$
Recall that the partial derivative simply corresponds to the derivative with respect to that variable, with all other variables held constant.
The first observation that we can make about a function that we want to minimize is that the gradient of the function at a point is in the direction that the function increases fastest. Hence, in the opposite direction the function will **decrease** the fastest. Therefore the most sensible direction to minimize the function is in the opposite direction to the gradient, and consequently we can let
$$
{\textbf x}^{(n+1)} = {\textbf x}^{(n)} - \eta \nabla V ({\textbf x}^{(n)}).
$$
This forms the basis of the gradient descent method, and the parameter $\eta$ is called the learning rate.
The following short function implements gradient descent. It takes as input a function which calculates the gradient, a starting point, a learning rate, the number of iterations to take and the tolerance. Once the increments for the points decrease by less than the tolerance the algorithm returns.
%% Cell type:code id: tags:
``` python
import numpy as np
import matplotlib.pyplot as plt
def gradient_descent(gradient, start, learn_rate, n_iter=50, tolerance=1.e-6):
vector = start
for n in range(n_iter):
diff = -learn_rate * gradient(vector)
if np.sum(np.abs(diff)) <= tolerance:
break
vector = vector+diff
return vector
```
%% Cell type:markdown id: tags:
To implement this method which uses as input the gradient of the quadratic function $V=x^2$. In this case the gradient is just the scalar $2x$. We do one iteration on each call to the gradient descent function, so as we can plot the evolution of the updates. In this case for a small learning rate, the solution converges monotonically to the minimum at $x=0$.
%% Cell type:code id: tags:
``` python
quad_grad = lambda v: 2 * v
quad = lambda v: v**2
xa = np.zeros((21))
xs = 5
xa[0] = xs
lrate = 0.1
for ix in range(20):
xc = gradient_descent(quad_grad,xs,lrate,n_iter=1)
xa[ix+1] = xc
xs = xc
xf = np.linspace(-6,6)
plt.plot(xa, quad(xa), 'r.-')
plt.plot(xf, quad(xf))
```
%%%% Output: execute_result
[<matplotlib.lines.Line2D at 0x7ff798458af0>]
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
If we make the learning rate larger, the iterations now oscillate between either side of the function, and the convergence is much slower. If the learning rate is larger than 1 for this example, the iterations will diverge.
%% Cell type:code id: tags:
``` python
xa = np.zeros((21))
xs = 5
xa[0] = xs
lrate = .9
for ix in range(20):
xc = gradient_descent(quad_grad,xs,lrate,n_iter=1)
xa[ix+1] = xc
xs = xc
xf = np.linspace(-6,6)
plt.plot(xa, quad(xa), 'r.-')
plt.plot(xf, quad(xf))
```
%%%% Output: execute_result
[<matplotlib.lines.Line2D at 0x7ff768095f70>]
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
One problem that often occurs with gradient descent is that the solution can converge to a local minimum. For example, for the quartic function below we see that the solution converges to the local minimum at $x\approx 1$. Whereas for a learning rate of half the given value the solution will converge to the global minimum.
%% Cell type:code id: tags:
``` python
quart_grad = lambda x: 4*x**3+6*x**2-6*x-2
quart = lambda x: x**4+2*x**3-3*x**2-2*x+1
xa = np.zeros((21))
xs = -3
xa[0] = xs
lrate = 0.1
for ix in range(20):
xc = gradient_descent(quart_grad,xs,lrate,n_iter=1)
xa[ix+1] = xc
xs = xc
xf = np.linspace(-4,4)
plt.plot(xa, quart(xa), 'r.-')
plt.plot(xf, quart(xf))
plt.ylim(-20,20)
```
%%%% Output: execute_result
(-20.0, 20.0)
%%%% Output: display_data
![](data:image/png;base64,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)
%% Cell type:markdown id: tags: