├── data ├── ex6data1.mat ├── ex6data2.mat ├── ex6data3.mat ├── spamTest.mat ├── spamTrain.mat ├── Advertising.csv └── breastCancer.csv ├── Resampling and Regularization.ipynb ├── Linear Regression.ipynb └── causal_ml_blog.ipynb /data/ex6data1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcopeix/datasciencewithmarco/HEAD/data/ex6data1.mat -------------------------------------------------------------------------------- /data/ex6data2.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcopeix/datasciencewithmarco/HEAD/data/ex6data2.mat -------------------------------------------------------------------------------- /data/ex6data3.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcopeix/datasciencewithmarco/HEAD/data/ex6data3.mat -------------------------------------------------------------------------------- /data/spamTest.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcopeix/datasciencewithmarco/HEAD/data/spamTest.mat -------------------------------------------------------------------------------- /data/spamTrain.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcopeix/datasciencewithmarco/HEAD/data/spamTrain.mat -------------------------------------------------------------------------------- /data/Advertising.csv: -------------------------------------------------------------------------------- 1 | ,TV,radio,newspaper,sales 2 | 1,230.1,37.8,69.2,22.1 3 | 2,44.5,39.3,45.1,10.4 4 | 3,17.2,45.9,69.3,9.3 5 | 4,151.5,41.3,58.5,18.5 6 | 5,180.8,10.8,58.4,12.9 7 | 6,8.7,48.9,75,7.2 8 | 7,57.5,32.8,23.5,11.8 9 | 8,120.2,19.6,11.6,13.2 10 | 9,8.6,2.1,1,4.8 11 | 10,199.8,2.6,21.2,10.6 12 | 11,66.1,5.8,24.2,8.6 13 | 12,214.7,24,4,17.4 14 | 13,23.8,35.1,65.9,9.2 15 | 14,97.5,7.6,7.2,9.7 16 | 15,204.1,32.9,46,19 17 | 16,195.4,47.7,52.9,22.4 18 | 17,67.8,36.6,114,12.5 19 | 18,281.4,39.6,55.8,24.4 20 | 19,69.2,20.5,18.3,11.3 21 | 20,147.3,23.9,19.1,14.6 22 | 21,218.4,27.7,53.4,18 23 | 22,237.4,5.1,23.5,12.5 24 | 23,13.2,15.9,49.6,5.6 25 | 24,228.3,16.9,26.2,15.5 26 | 25,62.3,12.6,18.3,9.7 27 | 26,262.9,3.5,19.5,12 28 | 27,142.9,29.3,12.6,15 29 | 28,240.1,16.7,22.9,15.9 30 | 29,248.8,27.1,22.9,18.9 31 | 30,70.6,16,40.8,10.5 32 | 31,292.9,28.3,43.2,21.4 33 | 32,112.9,17.4,38.6,11.9 34 | 33,97.2,1.5,30,9.6 35 | 34,265.6,20,0.3,17.4 36 | 35,95.7,1.4,7.4,9.5 37 | 36,290.7,4.1,8.5,12.8 38 | 37,266.9,43.8,5,25.4 39 | 38,74.7,49.4,45.7,14.7 40 | 39,43.1,26.7,35.1,10.1 41 | 40,228,37.7,32,21.5 42 | 41,202.5,22.3,31.6,16.6 43 | 42,177,33.4,38.7,17.1 44 | 43,293.6,27.7,1.8,20.7 45 | 44,206.9,8.4,26.4,12.9 46 | 45,25.1,25.7,43.3,8.5 47 | 46,175.1,22.5,31.5,14.9 48 | 47,89.7,9.9,35.7,10.6 49 | 48,239.9,41.5,18.5,23.2 50 | 49,227.2,15.8,49.9,14.8 51 | 50,66.9,11.7,36.8,9.7 52 | 51,199.8,3.1,34.6,11.4 53 | 52,100.4,9.6,3.6,10.7 54 | 53,216.4,41.7,39.6,22.6 55 | 54,182.6,46.2,58.7,21.2 56 | 55,262.7,28.8,15.9,20.2 57 | 56,198.9,49.4,60,23.7 58 | 57,7.3,28.1,41.4,5.5 59 | 58,136.2,19.2,16.6,13.2 60 | 59,210.8,49.6,37.7,23.8 61 | 60,210.7,29.5,9.3,18.4 62 | 61,53.5,2,21.4,8.1 63 | 62,261.3,42.7,54.7,24.2 64 | 63,239.3,15.5,27.3,15.7 65 | 64,102.7,29.6,8.4,14 66 | 65,131.1,42.8,28.9,18 67 | 66,69,9.3,0.9,9.3 68 | 67,31.5,24.6,2.2,9.5 69 | 68,139.3,14.5,10.2,13.4 70 | 69,237.4,27.5,11,18.9 71 | 70,216.8,43.9,27.2,22.3 72 | 71,199.1,30.6,38.7,18.3 73 | 72,109.8,14.3,31.7,12.4 74 | 73,26.8,33,19.3,8.8 75 | 74,129.4,5.7,31.3,11 76 | 75,213.4,24.6,13.1,17 77 | 76,16.9,43.7,89.4,8.7 78 | 77,27.5,1.6,20.7,6.9 79 | 78,120.5,28.5,14.2,14.2 80 | 79,5.4,29.9,9.4,5.3 81 | 80,116,7.7,23.1,11 82 | 81,76.4,26.7,22.3,11.8 83 | 82,239.8,4.1,36.9,12.3 84 | 83,75.3,20.3,32.5,11.3 85 | 84,68.4,44.5,35.6,13.6 86 | 85,213.5,43,33.8,21.7 87 | 86,193.2,18.4,65.7,15.2 88 | 87,76.3,27.5,16,12 89 | 88,110.7,40.6,63.2,16 90 | 89,88.3,25.5,73.4,12.9 91 | 90,109.8,47.8,51.4,16.7 92 | 91,134.3,4.9,9.3,11.2 93 | 92,28.6,1.5,33,7.3 94 | 93,217.7,33.5,59,19.4 95 | 94,250.9,36.5,72.3,22.2 96 | 95,107.4,14,10.9,11.5 97 | 96,163.3,31.6,52.9,16.9 98 | 97,197.6,3.5,5.9,11.7 99 | 98,184.9,21,22,15.5 100 | 99,289.7,42.3,51.2,25.4 101 | 100,135.2,41.7,45.9,17.2 102 | 101,222.4,4.3,49.8,11.7 103 | 102,296.4,36.3,100.9,23.8 104 | 103,280.2,10.1,21.4,14.8 105 | 104,187.9,17.2,17.9,14.7 106 | 105,238.2,34.3,5.3,20.7 107 | 106,137.9,46.4,59,19.2 108 | 107,25,11,29.7,7.2 109 | 108,90.4,0.3,23.2,8.7 110 | 109,13.1,0.4,25.6,5.3 111 | 110,255.4,26.9,5.5,19.8 112 | 111,225.8,8.2,56.5,13.4 113 | 112,241.7,38,23.2,21.8 114 | 113,175.7,15.4,2.4,14.1 115 | 114,209.6,20.6,10.7,15.9 116 | 115,78.2,46.8,34.5,14.6 117 | 116,75.1,35,52.7,12.6 118 | 117,139.2,14.3,25.6,12.2 119 | 118,76.4,0.8,14.8,9.4 120 | 119,125.7,36.9,79.2,15.9 121 | 120,19.4,16,22.3,6.6 122 | 121,141.3,26.8,46.2,15.5 123 | 122,18.8,21.7,50.4,7 124 | 123,224,2.4,15.6,11.6 125 | 124,123.1,34.6,12.4,15.2 126 | 125,229.5,32.3,74.2,19.7 127 | 126,87.2,11.8,25.9,10.6 128 | 127,7.8,38.9,50.6,6.6 129 | 128,80.2,0,9.2,8.8 130 | 129,220.3,49,3.2,24.7 131 | 130,59.6,12,43.1,9.7 132 | 131,0.7,39.6,8.7,1.6 133 | 132,265.2,2.9,43,12.7 134 | 133,8.4,27.2,2.1,5.7 135 | 134,219.8,33.5,45.1,19.6 136 | 135,36.9,38.6,65.6,10.8 137 | 136,48.3,47,8.5,11.6 138 | 137,25.6,39,9.3,9.5 139 | 138,273.7,28.9,59.7,20.8 140 | 139,43,25.9,20.5,9.6 141 | 140,184.9,43.9,1.7,20.7 142 | 141,73.4,17,12.9,10.9 143 | 142,193.7,35.4,75.6,19.2 144 | 143,220.5,33.2,37.9,20.1 145 | 144,104.6,5.7,34.4,10.4 146 | 145,96.2,14.8,38.9,11.4 147 | 146,140.3,1.9,9,10.3 148 | 147,240.1,7.3,8.7,13.2 149 | 148,243.2,49,44.3,25.4 150 | 149,38,40.3,11.9,10.9 151 | 150,44.7,25.8,20.6,10.1 152 | 151,280.7,13.9,37,16.1 153 | 152,121,8.4,48.7,11.6 154 | 153,197.6,23.3,14.2,16.6 155 | 154,171.3,39.7,37.7,19 156 | 155,187.8,21.1,9.5,15.6 157 | 156,4.1,11.6,5.7,3.2 158 | 157,93.9,43.5,50.5,15.3 159 | 158,149.8,1.3,24.3,10.1 160 | 159,11.7,36.9,45.2,7.3 161 | 160,131.7,18.4,34.6,12.9 162 | 161,172.5,18.1,30.7,14.4 163 | 162,85.7,35.8,49.3,13.3 164 | 163,188.4,18.1,25.6,14.9 165 | 164,163.5,36.8,7.4,18 166 | 165,117.2,14.7,5.4,11.9 167 | 166,234.5,3.4,84.8,11.9 168 | 167,17.9,37.6,21.6,8 169 | 168,206.8,5.2,19.4,12.2 170 | 169,215.4,23.6,57.6,17.1 171 | 170,284.3,10.6,6.4,15 172 | 171,50,11.6,18.4,8.4 173 | 172,164.5,20.9,47.4,14.5 174 | 173,19.6,20.1,17,7.6 175 | 174,168.4,7.1,12.8,11.7 176 | 175,222.4,3.4,13.1,11.5 177 | 176,276.9,48.9,41.8,27 178 | 177,248.4,30.2,20.3,20.2 179 | 178,170.2,7.8,35.2,11.7 180 | 179,276.7,2.3,23.7,11.8 181 | 180,165.6,10,17.6,12.6 182 | 181,156.6,2.6,8.3,10.5 183 | 182,218.5,5.4,27.4,12.2 184 | 183,56.2,5.7,29.7,8.7 185 | 184,287.6,43,71.8,26.2 186 | 185,253.8,21.3,30,17.6 187 | 186,205,45.1,19.6,22.6 188 | 187,139.5,2.1,26.6,10.3 189 | 188,191.1,28.7,18.2,17.3 190 | 189,286,13.9,3.7,15.9 191 | 190,18.7,12.1,23.4,6.7 192 | 191,39.5,41.1,5.8,10.8 193 | 192,75.5,10.8,6,9.9 194 | 193,17.2,4.1,31.6,5.9 195 | 194,166.8,42,3.6,19.6 196 | 195,149.7,35.6,6,17.3 197 | 196,38.2,3.7,13.8,7.6 198 | 197,94.2,4.9,8.1,9.7 199 | 198,177,9.3,6.4,12.8 200 | 199,283.6,42,66.2,25.5 201 | 200,232.1,8.6,8.7,13.4 202 | -------------------------------------------------------------------------------- /data/breastCancer.csv: -------------------------------------------------------------------------------- 1 | Age,BMI,Glucose,Insulin,HOMA,Leptin,Adiponectin,Resistin,MCP.1,Classification 2 | 48,23.5,70,2.707,0.467408667,8.8071,9.7024,7.99585,417.114,1 3 | 83,20.69049454,92,3.115,0.706897333,8.8438,5.429285,4.06405,468.786,1 4 | 82,23.12467037,91,4.498,1.009651067,17.9393,22.43204,9.27715,554.697,1 5 | 68,21.36752137,77,3.226,0.612724933,9.8827,7.16956,12.766,928.22,1 6 | 86,21.11111111,92,3.549,0.8053864,6.6994,4.81924,10.57635,773.92,1 7 | 49,22.85445769,92,3.226,0.732086933,6.8317,13.67975,10.3176,530.41,1 8 | 89,22.7,77,4.69,0.890787333,6.964,5.589865,12.9361,1256.083,1 9 | 76,23.8,118,6.47,1.883201333,4.311,13.25132,5.1042,280.694,1 10 | 73,22,97,3.35,0.801543333,4.47,10.358725,6.28445,136.855,1 11 | 75,23,83,4.952,1.013839467,17.127,11.57899,7.0913,318.302,1 12 | 34,21.47,78,3.469,0.6674356,14.57,13.11,6.92,354.6,1 13 | 29,23.01,82,5.663,1.145436133,35.59,26.72,4.58,174.8,1 14 | 25,22.86,82,4.09,0.827270667,20.45,23.67,5.14,313.73,1 15 | 24,18.67,88,6.107,1.33,8.88,36.06,6.85,632.22,1 16 | 38,23.34,75,5.782,1.06967,15.26,17.95,9.35,165.02,1 17 | 44,20.76,86,7.553,1.6,14.09,20.32,7.64,63.61,1 18 | 47,22.03,84,2.869,0.59,26.65,38.04,3.32,191.72,1 19 | 61,32.03895937,85,18.077,3.790144333,30.7729,7.780255,13.68392,444.395,1 20 | 64,34.5297228,95,4.427,1.037393667,21.2117,5.46262,6.70188,252.449,1 21 | 32,36.51263743,87,14.026,3.0099796,49.3727,5.1,17.10223,588.46,1 22 | 36,28.57667585,86,4.345,0.921719333,15.1248,8.6,9.1539,534.224,1 23 | 34,31.97501487,87,4.53,0.972138,28.7502,7.64276,5.62592,572.783,1 24 | 29,32.27078777,84,5.81,1.203832,45.6196,6.209635,24.6033,904.981,1 25 | 35,30.27681661,84,4.376,0.9067072,39.2134,9.048185,16.43706,733.797,1 26 | 54,30.48315806,90,5.537,1.229214,12.331,9.73138,10.19299,1227.91,1 27 | 45,37.03560819,83,6.76,1.383997333,39.9802,4.617125,8.70448,586.173,1 28 | 50,38.57875854,106,6.703,1.752611067,46.6401,4.667645,11.78388,887.16,1 29 | 66,31.44654088,90,9.245,2.05239,45.9624,10.35526,23.3819,1102.11,1 30 | 35,35.2507611,90,6.817,1.513374,50.6094,6.966895,22.03703,667.928,1 31 | 36,34.17489,80,6.59,1.300426667,10.2809,5.065915,15.72187,581.313,1 32 | 66,36.21227888,101,15.533,3.869788067,74.7069,7.53955,22.32024,864.968,1 33 | 53,36.7901662,101,10.175,2.534931667,27.1841,20.03,10.26309,695.754,1 34 | 28,35.85581466,87,8.576,1.8404096,68.5102,4.7942,21.44366,358.624,1 35 | 43,34.42217362,89,23.194,5.091856133,31.2128,8.300955,6.71026,960.246,1 36 | 51,27.68877813,77,3.855,0.732193,20.092,3.19209,10.37518,473.859,1 37 | 67,29.60676726,79,5.819,1.133929133,21.9033,2.19428,4.2075,585.307,1 38 | 66,31.2385898,82,4.181,0.845676933,16.2247,4.267105,3.29175,634.602,1 39 | 69,35.09270153,101,5.646,1.4066068,83.4821,6.796985,82.1,263.499,1 40 | 60,26.34929208,103,5.138,1.305394533,24.2998,2.19428,20.2535,378.996,1 41 | 77,35.58792924,76,3.881,0.727558133,21.7863,8.12555,17.2615,618.272,1 42 | 76,29.2184076,83,5.376,1.1006464,28.562,7.36996,8.04375,698.789,1 43 | 76,27.2,94,14.07,3.262364,35.891,9.34663,8.4156,377.227,1 44 | 75,27.3,85,5.197,1.089637667,10.39,9.000805,7.5767,335.393,1 45 | 69,32.5,93,5.43,1.245642,15.145,11.78796,11.78796,270.142,1 46 | 71,30.3,102,8.34,2.098344,56.502,8.13,4.2989,200.976,1 47 | 66,27.7,90,6.042,1.341324,24.846,7.652055,6.7052,225.88,1 48 | 75,25.7,94,8.079,1.8732508,65.926,3.74122,4.49685,206.802,1 49 | 78,25.3,60,3.508,0.519184,6.633,10.567295,4.6638,209.749,1 50 | 69,29.4,89,10.704,2.3498848,45.272,8.2863,4.53,215.769,1 51 | 85,26.6,96,4.462,1.0566016,7.85,7.9317,9.6135,232.006,1 52 | 76,27.1,110,26.211,7.111918,21.778,4.935635,8.49395,45.843,1 53 | 77,25.9,85,4.58,0.960273333,13.74,9.75326,11.774,488.829,1 54 | 45,21.30394858,102,13.852,3.4851632,7.6476,21.056625,23.03408,552.444,2 55 | 45,20.82999519,74,4.56,0.832352,7.7529,8.237405,28.0323,382.955,2 56 | 49,20.9566075,94,12.305,2.853119333,11.2406,8.412175,23.1177,573.63,2 57 | 34,24.24242424,92,21.699,4.9242264,16.7353,21.823745,12.06534,481.949,2 58 | 42,21.35991456,93,2.999,0.6879706,19.0826,8.462915,17.37615,321.919,2 59 | 68,21.08281329,102,6.2,1.55992,9.6994,8.574655,13.74244,448.799,2 60 | 51,19.13265306,93,4.364,1.0011016,11.0816,5.80762,5.57055,90.6,2 61 | 62,22.65625,92,3.482,0.790181867,9.8648,11.236235,10.69548,703.973,2 62 | 38,22.4996371,95,5.261,1.232827667,8.438,4.77192,15.73606,199.055,2 63 | 69,21.51385851,112,6.683,1.846290133,32.58,4.138025,15.69876,713.239,2 64 | 49,21.36752137,78,2.64,0.507936,6.3339,3.886145,22.94254,737.672,2 65 | 51,22.89281998,103,2.74,0.696142667,8.0163,9.349775,11.55492,359.232,2 66 | 59,22.83287935,98,6.862,1.658774133,14.9037,4.230105,8.2049,355.31,2 67 | 45,23.14049587,116,4.902,1.4026256,17.9973,4.294705,5.2633,518.586,2 68 | 54,24.21875,86,3.73,0.791257333,8.6874,3.70523,10.34455,635.049,2 69 | 64,22.22222222,98,5.7,1.37788,12.1905,4.783985,13.91245,395.976,2 70 | 46,20.83,88,3.42,0.742368,12.87,18.55,13.56,301.21,2 71 | 44,19.56,114,15.89,4.468268,13.08,20.37,4.62,220.66,2 72 | 45,20.26,92,3.44,0.780650667,7.65,16.67,7.84,193.87,2 73 | 44,24.74,106,58.46,15.28534133,18.16,16.1,5.31,244.75,2 74 | 51,18.37,105,6.03,1.56177,9.62,12.76,3.21,513.66,2 75 | 72,23.62,105,4.42,1.14478,21.78,17.86,4.82,195.94,2 76 | 46,22.21,86,36.94,7.836205333,10.16,9.76,5.68,312,2 77 | 43,26.5625,101,10.555,2.629602333,9.8,6.420295,16.1,806.724,2 78 | 55,31.97501487,92,16.635,3.775036,37.2234,11.018455,7.16514,483.377,2 79 | 43,31.25,103,4.328,1.099600533,25.7816,12.71896,38.6531,775.322,2 80 | 86,26.66666667,201,41.611,20.6307338,47.647,5.357135,24.3701,1698.44,2 81 | 41,26.6727633,97,22.033,5.271762467,44.7059,13.494865,27.8325,783.796,2 82 | 59,28.67262608,77,3.188,0.605507467,17.022,16.44048,31.6904,910.489,2 83 | 81,31.64036818,100,9.669,2.38502,38.8066,10.636525,29.5583,426.175,2 84 | 48,32.46191136,99,28.677,7.0029234,46.076,21.57,10.15726,738.034,2 85 | 71,25.51020408,112,10.395,2.871792,19.0653,5.4861,42.7447,799.898,2 86 | 42,29.296875,98,4.172,1.008511467,12.2617,6.695585,53.6717,1041.843,2 87 | 65,29.666548,85,14.649,3.071407,26.5166,7.28287,19.46324,1698.44,2 88 | 48,28.125,90,2.54,0.56388,15.5325,10.22231,16.11032,1698.44,2 89 | 85,27.68877813,196,51.814,25.05034187,70.8824,7.901685,55.2153,1078.359,2 90 | 48,31.25,199,12.162,5.9699204,18.1314,4.104105,53.6308,1698.44,2 91 | 58,29.15451895,139,16.582,5.685415067,22.8884,10.26266,13.97399,923.886,2 92 | 40,30.83653053,128,41.894,13.22733227,31.0385,6.160995,17.55503,638.261,2 93 | 82,31.21748179,100,18.077,4.458993333,31.6453,9.92365,19.94687,994.316,2 94 | 52,30.8012487,87,30.212,6.4834952,29.2739,6.26854,24.24591,764.667,2 95 | 49,32.46191136,134,24.887,8.225983067,42.3914,10.79394,5.768,656.393,2 96 | 60,31.23140988,131,30.13,9.736007333,37.843,8.40443,11.50005,396.021,2 97 | 49,29.77777778,70,8.396,1.449709333,51.3387,10.73174,20.76801,602.486,2 98 | 44,27.88761707,99,9.208,2.2485936,12.6757,5.47817,23.03306,407.206,2 99 | 40,27.63605442,103,2.432,0.617890133,14.3224,6.78387,26.0136,293.123,2 100 | 71,27.91551882,104,18.2,4.668906667,53.4997,1.65602,49.24184,256.001,2 101 | 69,28.44444444,108,8.808,2.3464512,14.7485,5.288025,16.48508,353.568,2 102 | 74,28.65013774,88,3.012,0.6538048,31.1233,7.65222,18.35574,572.401,2 103 | 66,26.5625,89,6.524,1.432235467,14.9084,8.42996,14.91922,269.487,2 104 | 65,30.91557669,97,10.491,2.5101466,44.0217,3.71009,20.4685,396.648,2 105 | 72,29.13631634,83,10.949,2.241625267,26.8081,2.78491,14.76966,232.018,2 106 | 57,34.83814777,95,12.548,2.940414667,33.1612,2.36495,9.9542,655.834,2 107 | 73,37.109375,134,5.636,1.862885867,41.4064,3.335665,6.89235,788.902,2 108 | 45,29.38475666,90,4.713,1.046286,23.8479,6.644245,15.55625,621.273,2 109 | 46,33.18,92,5.75,1.304866667,18.69,9.16,8.89,209.19,2 110 | 68,35.56,131,8.15,2.633536667,17.87,11.9,4.19,198.4,2 111 | 75,30.48,152,7.01,2.628282667,50.53,10.06,11.73,99.45,2 112 | 54,36.05,119,11.91,3.495982,89.27,8.01,5.06,218.28,2 113 | 45,26.85,92,3.33,0.755688,54.68,12.1,10.96,268.23,2 114 | 62,26.84,100,4.53,1.1174,12.45,21.42,7.32,330.16,2 115 | 65,32.05,97,5.73,1.370998,61.48,22.54,10.33,314.05,2 116 | 72,25.59,82,2.82,0.570392,24.96,33.75,3.27,392.46,2 117 | 86,27.18,138,19.91,6.777364,90.28,14.11,4.35,90.09,2 -------------------------------------------------------------------------------- /Resampling and Regularization.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Resampling and Regularization " 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "import pandas as pd\n", 17 | "import numpy as np\n", 18 | "import matplotlib.pyplot as plt\n", 19 | "\n", 20 | "%matplotlib inline" 21 | ] 22 | }, 23 | { 24 | "cell_type": "code", 25 | "execution_count": 3, 26 | "metadata": {}, 27 | "outputs": [ 28 | { 29 | "data": { 30 | "text/html": [ 31 | "
\n", 32 | "\n", 45 | "\n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | "
TVradionewspapersales
1230.137.869.222.1
244.539.345.110.4
317.245.969.39.3
4151.541.358.518.5
5180.810.858.412.9
\n", 93 | "
" 94 | ], 95 | "text/plain": [ 96 | " TV radio newspaper sales\n", 97 | "1 230.1 37.8 69.2 22.1\n", 98 | "2 44.5 39.3 45.1 10.4\n", 99 | "3 17.2 45.9 69.3 9.3\n", 100 | "4 151.5 41.3 58.5 18.5\n", 101 | "5 180.8 10.8 58.4 12.9" 102 | ] 103 | }, 104 | "execution_count": 3, 105 | "metadata": {}, 106 | "output_type": "execute_result" 107 | } 108 | ], 109 | "source": [ 110 | "DATAPATH = 'data/Advertising.csv'\n", 111 | "data = pd.read_csv(DATAPATH, index_col=0)\n", 112 | "data.head()" 113 | ] 114 | }, 115 | { 116 | "cell_type": "code", 117 | "execution_count": 8, 118 | "metadata": {}, 119 | "outputs": [], 120 | "source": [ 121 | "def scatter_plot(feature):\n", 122 | " plt.figure(figsize=(10,5))\n", 123 | " plt.scatter(data[feature], data['sales'], c='black')\n", 124 | " plt.xlabel(f'Money spent on {feature} ads ($)')\n", 125 | " plt.ylabel('Sales (k$)')\n", 126 | " plt.show()" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 9, 132 | "metadata": {}, 133 | "outputs": [ 134 | { 135 | "data": { 136 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAE9CAYAAADaqWzvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3de5gsd13n8c935syRTMLtTEI2RKbHCyiIcCAHlhXNElgB4wVQdiE7xog8zuYACoqr0V6XCNv7AK4guob17BI4cBoQBQQh3B4kZNWHy5wQkmAIsDgzhkQTTrgPkpMz3/2jq096+lR1V3fX5VdV79fz1DMz1bdf/7qm6tu/37e+Ze4uAAAA5G+u7AYAAAA0BYEXAABAQQi8AAAACkLgBQAAUBACLwAAgIIQeAEAABRkT9kNSOPMM8/0lZWVspsBAAAw1tGjR7/s7mfF3VaJwGtlZUXr6+tlNwMAAGAsM9tMuo2pRgAAgIIQeAEAABSEwAsAAKAgBF4AAAAFIfACAAAoCIEXAABAQQi8AAAACkLgBQAActPtdrWysqK5uTmtrKyo2+2W3aRSVaKAKgAAqJ5ut6u1tTVtb29LkjY3N7W2tiZJWl1dLbNppWHECwAA5KLdbp8Muvq2t7fVbrdLalH5CLwAAEAutra2JlrfBAReAAAgF8vLyxOtbwICLwAAkItOp6PFxcVd6xYXF9XpdEpqUfkIvAAAQC5WV1d16NAhtVotmZlarZYOHTrU2MR6STJ3L7sNYx04cMDX19fLbgYAAMBYZnbU3Q/E3caIFwAACF5d6oFRxwsAAAStTvXAGPECAABBq1M9MAIvAAAQtDrVAyPwAgAAQatTPTACLwAAELQ61QMj8AIAAEGrUz0wAi8AABCMpLIRq6ur2tjY0M7OjjY2NioZdEkEXgAAlKIKdamKbmO/bMTm5qbc/WTZiLjXrUL/xaFyPQAABRuuSyX1cpZCmj4ro40rKyva3Nw8ZX2r1dLGxkapbZvEqMr1BF4AABQsbYBRpjLaODc3p7i4xMy0s7NTatsmUcolg8zsQWb2ETO7ycw+Y2YvjNZfbmZfMrProuXCvNoAAECIqlCXqow2pi0bUYX+S5Jnjtfdkl7s7g+V9DhJzzezh0W3vdrd90fLVTm2AQCA4FShLlUZbUxbNqIK/Zckt8DL3W9z92uj378h6SZJ5+b1egAAVEUV6lKV0ca0ZSOq0H+J3D33RdKKpC1J95F0uaQNSddLulLS/cc9/rzzznMAAOrkyJEj3mq13My81Wr5kSNHym7SKUJuY8htk7TuCTFN7sn1ZnaGpI9K6rj7O8zsbElfluSSXibpHHf/pZjHrUlak6Tl5eXz4pLoAAAYpdvtqt1ua2trS8vLy+p0OkGc9YZ6K+2sRjNbkPQeSR9w91fF3L4i6T3u/vBRz8NZjQCASYVecgD1VdZZjSbpdZJuGgy6zOycgbs9Q9KNebUBANBc7XZ7V9AlSdvb22q32yW1CMj3rMbHS7pY0hOHSke80sxuMLPrJV0g6ddybAMAoKGqXHKgSapagX5ae/J6Ynf/G0kWcxPlIwAAuVteXo4tslmFkgNNMTwd3L9EkKTaTgdzrUYAQC1VuuRAzkIZZWridDCBFwCgltLWhGqaSS5EnbcmTgdzrUYAABokpOschtSWLJVyViMAALMKZUqsTkIaZSpyOjiUbYnACwCQiawPbCFNidVJSNc5LGo6OKRtialGAMDM8ihWWtdpqLI1sbBs0dtSaZXrs0LgBQBhy+PANjc3p7hjlJlpZ2dnqudET9MupVT0tkTgBQDIVR4HNka8kJWQRrzI8QIAzCyPvCHqcCErIW1LBF4AgJnlcWCrUx2uUM6oa6qQtiWmGgEAmWha3lBaTUxmbzpyvAAAKAm5as1DjhcAACUJqWApykfgBQBAjkIqWIryEXgBAJCjkM6oQ/kIvAAAhcvyLL/QzxgM6Yw6lI/kegBAobI8y48zBhEikusBAJmZdYSp3W7vCpQkaXt7W+12e+K2ZPlcQBH2lN0AAEB1DI8wbW5uam1tTZJSjzBleZZf0mPiyjcAIWDECwCQWhYjTFme5Zf0GDMLLtcrK6HntGE0Ai8AQGpZjFZleZZfp9ORmZ2y3t0zm24MKdDpjzhubm7K3U+OOBJ8VQfJ9QCA1LKqwp7l5YXiAq/++p2dnamesy+05H2q4FcDlwwCAGQitEBEyjcYCS3QmZubU9xxO4sgE9nhrEYAQCZCrEmVZ4HSPC73M8vUJVXwq4/ACwAwkdXVVW1sbGhnZ0cbGxuFBl1xQUuewWDWgc6sOVpUwa8Bdw9+Oe+88xwA0GxHjhzxxcVFl3RyWVxc9CNHjlTmNVut1q7n6i+tVmuiNrVaLTczb7Vaub5/TEfSuifENOR4AQAqoah8q+HE/wsvvFBXXXVVJicCkKPVDOR4AQAqL498q2FxU4GHDx9Wp9PJZGqVHK38hVT+Iw6BFwCgEooIWvK+BBE5WvmqQp0zAi8AqKnQv/lPqoigJe9RtRDPCq2TKly7kxwvAKihEOttZSHLwqtxQqvbhcmEkkNHAVUAaBgCiOnUNWBtilC2e5LrAaBhikhEryOmAqutCjl0BF4AUEOcPTe9MgvEVl3ZeYVVCJwJvACghuK++S8sLOib3/xmbZLtQ1d2EFK0UM4oXF1dVafT0fLysra2ttRut8Pq+6TKqiEtVK4HgMkNVjhfWlryvXv3Flr1vcnKqLJftiyq8mchhL4XlesBoNlCSTpuiib2dyhnFIbQ9yTXA0DDkWxfrCb2dyh5haH3PYEXADRAKAfFpmhif4dyRmHofU/gBQANEMpBsWhlJbhn1d9FtD+r1wjljMLgt/Wk5K9ZF0kPkvQRSTdJ+oykF0br90n6kKTPRz/vP+65SK4HgNkNJtu3Wq1aJ3q7l59kPWt/F9H+svsoL2Vv6yojud7MzpF0jrtfa2b3lnRU0tMl/aKkO9395WZ2WRR4/dao5yK5HgAwqRCSrGdRRPur3kehKiW53t1vc/dro9+/od7I17mSnibpcHS3w+oFYwAAZCr0JOtxpmn/pNOGVe+jKiokx8vMViQ9StLHJZ3t7rdJveBM0gMSHrNmZutmtn7HHXcU0UwAQI1kkWRdZhHUSds/TQHT0BPR6yj3wMvMzpD0dkkvcvevp32cux9y9wPufuCss87Kr4EAUKCmVTMv04UXXigz27VukiTrsiuxT5ok3m63d13cW5K2t7fVbrczew1kICn5K4tF0oKkD0j69YF1N6uX+yVJ50i6edzzkFwPoA7qmsgcori+NjM/ePBg6ucIoRL7JEniZhbbXjPL7DWQjkpKrjf1crjudPcXDaz/fUnH/J7k+n3u/pujnovkegB1QCJz/rrdrtrtdmw/S5P1dSiV2NNi+wpHWZXrHy/pYklPNLProuVCSS+X9ONm9nlJPx79DQC1RyJzvganBpNM0tdVy39i2rAa8jyr8W/c3dz9Ee6+P1qucvdj7v4kd39w9PPOvNoAoF6qnh9VtQP5oCr0fVyO07BJ+rpqgUwoBUwxRtIcZEgLOV4A6pAfVdX3UJV2J+U4zdJm8p8wDY3I8So9qEqzEHgBCCHROQvjDuQhHuiz7Ps8319SO/ttDaEv0QwEXgAqb9oztqok1JGlrPo+7/cXSv9lHVyGGIxjNAIvAJVXlxGvUUJ9j1m1q4j3V3aQknXwF0owicmMCrxyKyeRJcpJAOifsTaYPL24uFir5OFQyxdk1fehvr8sZV3SgRIR1VRWOQkAyEwTztgK9azHrPo+1PeXpaxLhlCCpH4IvABUxurqqjY2NrSzs6ONjY1Mg64QyiWEXL4gi74P+f1lJevgsgnBatMQeAFovLKvyddX91G9ad5fCAHxJLIOLpsQrDZOUvJXSAvJ9QDyFGpSexVlmdxe1cRyzmqESK4HgGRNSPouQtYnQJBYjqoiuR4ARiCPJhtxl+zZ3t5Wu92e6vlILEcdEXgBKE0o+Tt55dGE8v6KknWgNG1A3LR+R8UkzUGGtJDjBdRPaPk7eeTlhPT+ipB1rtw0fdjEfkd4RI4XgNDUPX+n7u8vTh5Fbrvdrtrttra2trS8vKxOpzPyuZrY7wjPqBwvAi8Apah7Qnvd31+SSQOlrDW13xEWkusBBKfuCe11f39J8ixym0ZT+528tuog8AJQiroXhqz7+wtVE/s9lALASIfAC0ApqNKOWSSN8DSx37Mu4yExgparpKz7kBbOagSQByqCJwu5bzhzcTcziz2b1Mymej76d3YacVZj6UFVmoXAC2ievA/8HFyShd43XOJpt6z7g/6dHYEXgEop4sBf9YNLnoFp6H2TNMIjKZjgsEhZ/79kPYLWRAReACqliAN/lQ8ueQemIffNkSNHfH5+PjHwCmlkrkhZBuKhB95VMCrwIrkeQHCKuEZf3mUH8kxOziOZelCoJRn6Z++dOHEi8T5Z9kOVZFnGo4lnhhaJwAtAcIo48Od5cMn79P68A9NQD7xxAWccLqI9myaeGVqopKGwkBamGoHZhXyW2rCikrvz6pO8p2qKmAoKcXsZlduVVz8A0xA5XkCzhX6WWpwQD/xp5Z0jFdrnmeazyuLzTAo4Q+kHoI/AC2g4kmWL1aQRqTRBYFaBYtzzLCws+NLSUun9AAwaFXiNvUi2mf0bST8v6ccknSPp25JulPReSUfc/Wtj5zNnxEWygdlw4eBi9XO8BvORFhcXa5kns7Kyos3NzVPWt1otbWxspL5PWmVfhBtIY9RFskcGXmb2Pkm3SnqXpHVJt0u6l6SHSLpA0k9LepW7vzvrRg8i8AJmk+WBD+k0JUBIE9QT+KNpRgVe485qvNjdn+vu73b3W939bnf/prtf6+5/4O5PkPR3mbcYQKZCPUutzrI8vT9kac5ADbU8BcrXxGtCjgy83P3L454gzX0AlGvw9HBJmp+fP1nvqAk7OuQnTVBP4I84eZddCVZS8ld/kfQsSd8b/f4ISV9Qb/rx58Y9NquF5HogG0WeDRdK8jfyl8dZjXXbfur2frKQ9iSUKvadZjmrUb3cru+Kfn+XpJ9UL8n++nGPzWoh8AKyUdTZjaGVO0C11G37qdv7yUqasitV7btRgde45PqXSLpU0mslzUt6gaQ/jt78L0l6naSr3f2aycfa0iO5HshGUUnOJPNjFnXbfs4880wdO3bslPVVfT9ZKfqM2CJNnVzv7r8n6XOSbpH0L5I+4O6XR+tvdfeX5h10AchOUUnORVxrEdkIMbm5TttPt9uNDbqkar6fLKXJ/avTttCX5lqNl0p6iqSHSnqxJJnZw9Sr4wWgQopKci76LLYQg4cQDffT8573vCCTm0M4CzKrbWrUBbubflZnmmtChrAtZC5pDnJwUZTjNbRuX5rHZrGQ4wVkp4hE1aKT+KuYA1K0uH5KyrEp+4oGZX+mWb7+qOtLso2OV/a2MC3Neskg9Ua39gz8fY6ko2kem8VC4IW6quLZOmkV9d64HFI6aa5zOBiQla3M/40st6mk51paWsq+4TVVxf1kFoHXL0v6S/US7FckXS/pyWkem8VC4IU6quo3uThl7hjzviB1XYwaeUkTYFTx4DetLLepOv2fI72ZA6/ec+j5kv5K0g2SfiTF/a9U7xJDNw6su1zSlyRdFy0XpnltAi/UUV1Gaso+sNSlH/OW1E/DQUbcZ1f2Z1y0rLepJgWt6Jk68JL06wPLi6Ng6U39dWMee76kR8cEXr8x6nFxC4EX6qguIzVlBz5xQUF/KocD3D2SgqeDBw+ODQrK/oyL1rRAM0RVD1ZHBV7jzmq898ByhqR3qle5vr8ukffKTNw55vmBxqrL2Tpln+7dPzNqaWlp1/pjx44FcYZeVmY9yy7pDLIrrrhCnU5Hy8vL2trair2MVNmfcdHSnG2H/NT+UkJJEVkWi3r5YMMjXhvq5YhdKen+aZ6HES/UUV2+VYcyGhJKO/KQ57aS5rnr3LfDqj7SUiVJfV2H7U0zTDUekvTwhNtOV696/eqIxw8HXmerl6A/J6kj6coRj11T73JF68vLy/n3EhonhB1sCG2YVSgBZF2mbuPkeSBaWloa+9yhfMZ5a8r7DMGovq7D//Isgdd+SW+TdJOkP5d0RTRS9X8lfVrSCxVT48sTAq+0tw0vjHgha6P+6esQDBUthD5LE5yE0M5p5HUgOnLkSOzzxj13VftuEnUYaamKUX1dh89h6sDL7wmSzpD0BEkXSXq6pB9I+bjhEa9zBn7/NUlvTfM8BF7I2qjaOnzjraZxoxVljWZkEbDkdSBKet6qHeSyUoeRlqoY1dd1GHmcOfCaZpH0Fkm3STqu3rUen6veGZE3qJfj9e7BQGzUQuCFrE1S06ipB6EqGhXklPEtepYDyOB7WVpa8oWFhcwPRFRV360OIy1VMa6vqz7CWkrgleVC4IWsjfqmzzfeeipjNGPaA3lcwLZ3715fWlrK9EA0auS3ieow0lIVde/rUYFXmotkA7WTdLHo4ZIEfVUr8ZC3Kl6UuozyHdOWYWi329re3t617q677tIZZ5yhnZ0dbWxsZFLaIOn/4DWvec3Mz11FlJEoTqP7OikiS1rUOyPxPpM+bpaFES/kIW4ou+7fwrJQ1T4qo93TjniNy3/Jcgqm6lM6QIiUQXL9myXdR70SEp9VL3frP6d5bBYLgReKVJUDUVntrHIeTNF9Nm2wx8kfQLWNCrysd/toZnadu+83s1VJ50n6LUlH3f0REw+xTeHAgQO+vr5exEsBldCv7Dw4HbW4uFjIUP3c3Jzi9htmpp2dnVxfu4q63a7a7ba2tra0vLysTqcz9jNK+nxPO+00HTt27JT7t1otbWxsZN10AFMys6PufiD2tpSB12fUq+n1Zkn/090/amafdvdHZtvUeARewG4rKyva3Nw8ZX0RB+AyX7tJ4gK2iy++mKAXqIBRgVfa5Po/Ve9SP6dLusbMWpK+nk3zAEyqzGvnJSVkdzqd3F+7SVZXV7WxsbErmb4u1/cEmixV4OXuf+Tu57r7hdH05aakC3JuGzCxKp5tN40yD8CNPhupZAS9QPWlCrzM7Gwze52ZvS/6+2GSLsm1ZcCEan9F+wFlH4DjRmOQP4JeoPrSTjW+QdIHJD0w+vtzkl6UR4OAacXVPtre3la73S6pRflp+gG4KSObcQh6szfJ9tTkbQ8ZSTrdcXCR9Mno56cG1l2X5rFZLJSTQBplXmetKiUo6qCqdcQQpkm2J7Y9pKUM6nhdLWlJ0rXR34+T9NE0j81iIfBCGmXVl2razriMWliDr7e0tFTZOmIIzyT7jVn2MXw5a5YsAq9HS/pbSV+Lfn5O0iPSPDaLhcALaZQVAFW5oOikiu7juNdLWrieJqYxyUj5tKPqTftyhtGBV6o6XpJkZnsk/YAkk3Szux9P9cAMUMcLaU1TrHJWTSooWnQNr6TXi0MdMUxjkm162u2f2nfNM3UdLzP72f4i6WfUC7weIumno3VAUMpIPE4q4bBv377aJeHmUT9sVLJy2udtYkmFpH6rYvJ3mW2e5Azhac8mLrPuXhNUbptPGgqLvsG/fsRy5ajHZrkw1YiQxU0j7N271xcWFmo3tZD1tOq4KZhR1yxscr5MUr8dPHiwclNaIUzDTZJ/NU2uVtXSEaqUjxbC9hNHs+Z4lb0QeCEvWe1gmpIAnvVObtwBKdSd6jSyPJgl9dv8/HzltruqBSXTqNJ2XKW2uoe7/WQSeEn6SUm/Kem/9pe0j511IfBCGpMe2PLcwZRZ2iJvWQYQafqpSt++k2S9rSX1W9IS8nZXx/+VuG22KttxqIFMklC3n5kDL0n/S9IbJf2jpJdIukHS69I8NouFwAvjTHNgy3MHE+LOK8Qdf4j9lIes3ycjXuGq2ojRsFADmSShbj9ZBF7XD/08Q9IH0zw2i4XAC+NM88+X5w4mtJ1vaO0JvV1Zy3pbI8crXKOC4pC+9CQJNZBJEur2k0Xg9fHo58fUu2zQd0n6fJrHZrEQeGGcaQ5see9gQhphCnlnOk0/hdS3aeTR/0l9ULW+cXc/ePDgydG6+fl5P3jw4EzPV2YfpJkGDiEwSBJqIDNKiNt8FoHX70q6n6Sfk/RPkm6T9NI0j81iIfDCONMc2Kq4g5lW1aYPRqni51bFNhcl674pu6+T9kUhfulJEmIgUzUzB167HtAb7brvpI+bZSHwwjjT7mz7O5j+N+3+DrFuO5qQR7wmVdX3wsEsXlH5b0VtH2mvthDSlx62zexNHXhJeoykfzXw9y9IepekP5K0b9Rjs1wIvJDGtDuPsr8hF2HUexzVbyHukOs0eofsP8+it49xZzCGfsJDE/Z/ZZgl8Lq2H2BJOl/SrdF048sk/cWox2a5EHjVX5kH+LK/IRcl6QAxKiALcYfclM+rKao84pXmfyTU/6O+IvorxC9weZsl8Pr0wO9/Iunygb+vG/XYLBcCr3ore8c0ajqg7kbtdEMNcMreXrI0eEBaWlrypaWlSh6cZjmwFp3jVUQh2+H/kZADj7xHCOv0/zqJWQKvGyXtiX7/rKTzB28b9dgsFwKv8M2yYyn7AJ80FTA/P1/I65dp1E533A65zINJyAeytMblAlXl4JTFgTXrz3PUGZ9xfb60tDTVa9Zh2jvv/W/Z+/eyzBJ4tSX9rXp5XZ+SZNH675f0t6Mem+VC4BW2WXe8Ze+86jrileZgNu2IV1O/xWYpqX+rdnCq0oF1VJ9Ps/1W6b0nyft/uez9e1mmDrx6j9XjJD1D0ukD6x4i6dHjHpvVQuAVtll3PmXvvMp+/UFZffNPuzOdNscrpD6rqjT1nqpwcBr1PkIbkcw60K3LF5A8R5Cbuq+YKfAKYSHwCtus32jy2Hml3ZEcOXIk9oLWZew8s+yHSXZ205zV2NRvsVmq+4hX2f9PcZLSCmbZfusw7Z2nugSnkyLwQq6y+EaT5c5rltEeafp8j1ll+c0w78Ao72+xTTiY1TnHK9QgsgptrKMm/D8PI/BCrkL7RpM2KAhtCDzLYKmIwCivzzy07SlPdTyrMcvRpKxlneMFJCHwQu5C+kaTNoAJbbosy2Bp1uAlzec57Wc+7nGhBcSYTMifX2ij3KgvAi8kCilgysq4Hf+o5PAyDxB51DOaNjAqczQrtIAYkwl9xLKO+zyEh8ALp0hKKu8f9Kq8Q5r0TL2QDhAhHBTyHLFI89whj5ggnRC2Y6BMBF7YJW0ybNlByCySdvzjRrpCfr9FHczyHHFK89yhj5gAwDgEXthlVPBR91GGIqaxhgOkgwcPzhwwFRmMlD3i5c6ISdXx+aHpCLywS5rCjXXJqxk+AMRNr2YZYKYZTQy9QnbZOV4hI6AYr+qfMZAFAi/sMu2IV9UOOnEHgIWFBd+7d29uB4W0fTtpwJR2ii6rzyfPz7pq21EfAUU65OgBBF4YMk2OVxUPOkkHgKWlpdwO/GlHEycdSUxzpmbVPp9ZDJ6Z2q9GnncQR0CRDmelAgReiBE36jBqJKKKB50yDgB5jXiNC6yq+PlMa9QXhzyDTQKKdJq0LQJJSgm8JF0p6XZJNw6s2yfpQ5I+H/28f5rnIvAq15EjR0YGEaEq4wCQV45X/7mTAuMmBQXjgttJPt9Jpj0JKNJp2ugrEKeswOt8SY8eCrxeKemy6PfLJL0izXMReJVnXCBhZsHuUMs6AORxVuM4TQoKxk3n5nVxdgKK9KqaxwdkpZTAq/e6WhkKvG6WdE70+zmSbk7zPARe5UkzdRbywT3PS9+EpElBQVYjXtMEq3XYVgDkL6TA66tDt38lzfMQeJUnTbJ4laez6hSwNCUoyCrHq0nTswCKNSrwmlOgzGzNzNbNbP2OO+4ouzmNtby8nMl9JtHtdrWysqK5uTmtrKyo2+3Grhv3mDTa7ba2t7d3rdve3la73c7s/YwzzfuNs7q6qo2NDe3s7GhjY0Orq6sFtL54q6urOnTokFqtliRpfn5ektRqtXTo0KHU7ztpu816ewaAXZIisiwWMdVYeUeOHPGFhYXME8VHvd7waMbevXtPaUNWpS7KHvVIer9zc3O71i0sLNR2BKssdRrtBBAWBTTi9W5Jl0S/XyLpXQW/fqWlHQWZdvQniZnFrp90hCGNuBGou+66S8ePH9+1bnBUapZRq7JHPZLe787Ozq51x48f1wtf+MJC2tQUgyNnZpbL9gwAp0iKyGZdJL1F0m2Sjku6RdJzJS1J+rB65SQ+LGlfmudixCv9t/Osv8UXfbbcNJczmmXUKq6/zMwPHjyYy/sbNsn77f27AgBCpzJGvNz9Inc/x90X3P273f117n7M3Z/k7g+Oft6Z1+uHbJoRqbSjOlnnLG1tbU20flaTjDT175v0GHcf27+rq6u65JJLdo3qubsOHz4880hhGuQTAUCzBJtcX1fdbldra2va3NyUu2tzc1Nra2tjpw03Nzdjbx8OgLIOlIqeiut0OlpcXNy1bu/evVpYWNi1bnFxUZ1OJ/ExfeP6V5Kuuuqq/ijtSUUl2I9q+7ClpaWcWwMAyF3SUFhIS52mGieZuktTBX34cVlPDZaRgDzp5YwGH5O2nwaFkGDfv95g0rJ3716SvgGgIsS1GsMxyUF+XKHIInK8+s9ZlfpQ0wRRIVR9T8o167cj5D4HAOxG4BWQSQ7yoxKv+yMko0Z/qhAoZW3aauSjgtWi+rPJnxsA1AmBV0AOHjx4SkCVNCKVFESkfXwVZB1sTDvil9SOrEYQCaoAoDkIvAIxaemCUdNPZU6LZSWvoCbLi1JnMQ1JoU4AaJZRgZf1bg/bgQMHfH19vexmzCzp7MRWq6WNjY3Yx3S7XbXbbW1ubmp+fl4nTpyIvZ+ZnVJ0M3TT9Mew/lmigyU0FhcXMyuEOTc3p7j/kUn6O4v3CQCoDjM76u4H4m6jnESBpin1sLq6erLkQFLQJYVVDyptnbIsSl/kfa3FLMppFF0LDQAQLgKvAk17EI8LLgYN1rQq2yR1yqoQ1MTV2Zq0v8u+LBEAIBwEXgWa9iA+KogI7fpyk4xAVSGoyeJ6flm8TwBATSQlf4W01CW53n26s9tCqDOV1qg6WtMURh2nKonrnNUIAM0hzmoMzyQH4qoEF+7JQeLS0iLvLroAABEwSURBVFJu74GgBgAQklGBF2c1lmCaM/H6ZzdubW1peXlZnU4nmOnFQUnv7bTTTtOxY8dOuT9n9gEA6mbUWY0EXiWoe3mBuCDx4osvnrksAwAAVUDgFZgsakNVTd2DTQAA+qjjFZikM+7cfWTdq7ykrbs1C87sAwCAwKsUcUFI36i6V3mYpO7WLLIoywAAQNUx1ViSwUsBxSlqCo4pQAAAssVUY0EmmbJbXV3VxsaGzCz29rSV12edJuRyNgAAFIfAa0rDAc/znve8qabs0lZejwuwspgm5HI2AAAUKKnAV0hLaAVU4wqaJlVsH1ddPk1x1KT7LC0tzVzRvkrFWQEAqAKNKKDKiNcU4q5H6Am5cqOm7Pp5Xtvb25qfn5cUf+3FpOsfxhUkHfeaw0h6BwCgOCTXTyGpDlecpCT1SarXT/J6o14TAADkj+T6jCXlPw0nyo+qU5U0itVut1O/XhxqYwEAEC4CrykkFQO99NJLU0/ZTXI24ai6X4Pm5+eZJgQAIGB7ym5A1QznZZ04cUKtVmvii1bv27cvNkcrLsDqP2//+odJ0447OzsEXQAABIwRrwkMlm+QpBMnTpyc2ssq4PnWt74VWw6iX/drZ2dHrVYr9rGUgAAAIGwEXhOYJC9rnDvvvHPk64zCdQ8BAKgmAq8JZFnlfdTo1LjnowQEAADVROA1gSyrvHc6ncTLBaV5vsGpx42NDYIuAAAqgMBrAllO8a2ururSSy+dqAQFAACoNgKvCWQ9xXfFFVfoTW96E1OGAAA0BJXrS9AvSbG1taXl5eVMz4oEAADlGlW5njpeBRu+VNDm5qbW1tYkieALAICaY6pxSt1uVysrK5qbm9PKykps7a04WZakAAAA1ULgNYXBQqrufnLUajD4SgrMsixJAQAAqoXAa0LdbleXXHLJyFGrUYFZliUpAABAtRB4jTE4cnXmmWfqOc95jk6cOBF73/6o1ajpRKrOAwDQXAReIwyPXB07dkzHjx9PvH9/1Kp/Lcdhm5ubVJ0HAKDBKCcxwsrKSmIQNWxxcfFkALVnz57YUbH5+XndfffdWTcTAAAEJLhyEma2Iekbkk5IujupcWVLm/A+Pz+/a9QqaSoyaT0AAGiGMqcaL3D3/aEGXVK6hPfFxUUdPnx411Rhq9WKvW/SegAA0AzkeI0Qlwi/d+9eLS0tSeqNdPWT5gdLSZBADwAA4pQVeLmkD5rZUTNbi7uDma2Z2bqZrd9xxx0FN68nLhH+yiuv1Gte8xotLi6enDocruNFAj0AAIhTSnK9mT3Q3W81swdI+pCkX3H3a5LuH9q1GpOS7lutljY2NopvEAAACMao5PpSRrzc/dbo5+2S3inpsWW0Y1pUnwcAANMoPPAys9PN7N793yU9WdKNRbdjFlSfBwAA0yhjxOtsSX9jZp+W9AlJ73X395fQjqmRPA8AAKZReB0vd/+ipEcW/bpZ6ifJt9ttbW1taXl5WZ1Oh+R5AAAwEpXrAQAAMhRccj0AAEATEXgBAAAUhMALAACgIAReAAAABSHwAgAAKAiBFwAAQEEIvAAAAApC4AUAAFAQAq8E3W5XKysrmpub08rKirrdbtlNAgAAFVf4JYOqoNvtam1tTdvb25Kkzc1Nra2tSRKXBQIAAFNjxCtGu90+GXT1bW9vq91ul9QiAABQBwReMba2tiZaDwAAkAaBV4zl5eWJ1gMAAKRB4BWj0+locXFx17rFxUV1Op2SWgQAAOqAwCvG6uqqDh06pFarJTNTq9XSoUOHSKwHAAAzMXcvuw1jHThwwNfX18tuBgAAwFhmdtTdD8TdxogXAABAQQi8AAAACkLgBQAAUBACLwAAgIIQeAEAABSEwAsAAKAgBF4AAAAFaXzg1e12tbKyorm5Oa2srKjb7ZbdJAAAUFN7ym5AmbrdrtbW1rS9vS1J2tzc1NramiRRpR4AAGSu0SNe7Xb7ZNDVt729rXa7XVKLAABAnTU68Nra2ppoPQAAwCwaHXgtLy9PtB4AAGAWjQ68Op2OFhcXd61bXFxUp9MpqUUAAKDOGh14ra6u6tChQ2q1WjIztVotHTp0iMR6AACQC3P3stsw1oEDB3x9fb3sZgAAAIxlZkfd/UDcbY0e8QIAACgSgRcAAEBBCLwAAAAKQuAFAABQEAIvAACAghB4AQAAFITACwAAoCAEXgAAAAWpRAFVM7tD0maOL3GmpC/n+PxNRb/mg37NHn2aD/o1H/RrPrLs15a7nxV3QyUCr7yZ2XpShVlMj37NB/2aPfo0H/RrPujXfBTVr0w1AgAAFITACwAAoCAEXj2Hym5ATdGv+aBfs0ef5oN+zQf9mo9C+pUcLwAAgIIw4gUAAFCQxgdeZvZUM7vZzL5gZpeV3Z6qMrMNM7vBzK4zs/Vo3T4z+5CZfT76ef+y2xk6M7vSzG43sxsH1sX2o/X8UbTtXm9mjy6v5WFL6NfLzexL0TZ7nZldOHDbb0f9erOZPaWcVofPzB5kZh8xs5vM7DNm9sJoPdvslEb0KdvrDMzsXmb2CTP7dNSvvxet/x4z+3i0rf6Zme2N1n9X9PcXottXsmpLowMvM5uX9CeSfkLSwyRdZGYPK7dVlXaBu+8fOB33MkkfdvcHS/pw9DdGe4Okpw6tS+rHn5D04GhZk/TagtpYRW/Qqf0qSa+Ottn97n6VJEX7gGdL+qHoMVdE+wqc6m5JL3b3h0p6nKTnR/3HNju9pD6V2F5n8R1JT3T3R0raL+mpZvY4Sa9Qr18fLOkrkp4b3f+5kr7i7t8v6dXR/TLR6MBL0mMlfcHdv+jud0l6q6SnldymOnmapMPR74clPb3EtlSCu18j6c6h1Un9+DRJb/Sej0m6n5mdU0xLqyWhX5M8TdJb3f077v4Pkr6g3r4CQ9z9Nne/Nvr9G5JuknSu2GanNqJPk7C9phBtc9+M/lyIFpf0REl/Ea0f3lb72/BfSHqSmVkWbWl64HWupH8c+PsWjd7AkcwlfdDMjprZWrTubHe/TertTCQ9oLTWVVtSP7L9zu4F0ZTXlQNT4fTrFKKpmEdJ+rjYZjMx1KcS2+tMzGzezK6TdLukD0n6f5K+6u53R3cZ7LuT/Rrd/jVJS1m0o+mBV1z0ymme03m8uz9avamE55vZ+WU3qAHYfmfzWknfp960w22S/iBaT79OyMzOkPR2SS9y96+PumvMOvo2Rkyfsr3OyN1PuPt+Sd+t3qjgQ+PuFv3MrV+bHnjdIulBA39/t6RbS2pLpbn7rdHP2yW9U72N+p/70wjRz9vLa2GlJfUj2+8M3P2fox3xjqT/rXumZ+jXCZjZgnoBQtfd3xGtZpudQVyfsr1mx92/Kulq9XLo7mdme6KbBvvuZL9Gt99X6dMVRmp64PVJSQ+OzmrYq16C4rtLblPlmNnpZnbv/u+SnizpRvX68pLobpdIelc5Lay8pH58t6RfiM4Ue5ykr/WndzDeUG7RM9TbZqVevz47Oqvpe9RLBP9E0e2rgijn5XWSbnL3Vw3cxDY7paQ+ZXudjZmdZWb3i34/TdK/Uy9/7iOSnhndbXhb7W/Dz5T0155R4dM94+9SX+5+t5m9QNIHJM1LutLdP1Nys6robEnvjPIO90h6s7u/38w+KeltZvZcSVuS/n2JbawEM3uLpCdIOtPMbpH0EkkvV3w/XiXpQvWSabclPafwBldEQr8+wcz2qzd9sCHpP0mSu3/GzN4m6e/VO8Ps+e5+oox2V8DjJV0s6YYod0aSfkdss7NI6tOL2F5nco6kw9EZn3OS3ubu7zGzv5f0VjP7b5I+pV7Qq+jnm8zsC+qNdD07q4ZQuR4AAKAgTZ9qBAAAKAyBFwAAQEEIvAAAAApC4AUAAFAQAi8AAICCEHgBDWRmbmZvGvh7j5ndYWbvKbNdeTGz38nhOZ9jZtdFy11mdkP0+1vN7BYzmxu6/3VmNtU19MzsajM7MP6eJ+//IjP7haF1lw/9fZaZvX+a9gCYHoEX0EzfkvTwqJCgJP24pC+V2J68ZR54ufvr3X1/dAmSWyVdEP39bPWu8fZj/fua2Q9Kure7517YMqqy/UuS3hz9/TAzu0bSQTO71swuitp/h6TbzOzxebcJwD0IvIDmep+kn4x+v0jSW/o3mNk+M/vL6IK8HzOzR0TrL48u0Hu1mX3RzH514DE/b2afiEZ2/jS6IO1zzezVA/f5ZTMbrHDev3DtG8zsxmjU6Nei9Veb2R+a2d9Ftz02Wn961IZPmtmnzOxp0fpfNLN3mNn7zezzZvbKaP3LJZ0Wtas73AlmdlH0ujea2SsG1n/TzDpm9umoD86eoG/fot0FF5892L8Dr/HY6P19Kvr5A9H606KRs+vN7M8knTaqr4Y8UdK1Axf+vVzSG9W71t/j1btiR99fSlqd4H0BmBGBF9Bcb1XvUiP3kvQISR8fuO33JH3K3R+h3mjRGwdu+0FJT1HvWnEvMbMFM3uopGepd7H0/ZJOqHdAf6ukn7HeteekXqXy1w+1Y7+kc9394e7+w0O3n+7uPyLpeZKujNa11bt8x2MkXSDp9613qar+cz1L0g9LepaZPcjdL5P07Wg0aleQYWYPlPQK9YKV/ZIeY2ZP77+2pI+5+yMlXSPpl5O78hRvk/R0u+cacM+K+mLYZyWd7+6PkvRfJf33aP1BSdtR/3cknTfw/pL6qu/xko4O/H2XpAdImnP3b7v7FwZuW9fAyByA/BF4AQ3l7tdLWlFvtOuqoZt/VNKbovv9taQlM7tvdNt73f077v5l9S5+fLakJ6kXHHwyuszJkyR9r7t/S9JfS/qpaLptwd1vGHqtL0r6XjP7YzN7qqSvD9z2lqgN10i6j/WutfZkSZdFr3O1pHtJWo7u/2F3/5q7/4t6l1BpjemGx0i62t3viEaIupLOj267S1I/5+1o1FepuPs/SfqMpCdFl3k57u43xtz1vpL+3MxulPRqST8UrT9f0pHoua6XdH20flRf9Z0j6Y6Bv39LvUD0BWb2V2b2yIHbbpf0wLTvC8DsGn2tRgB6t6T/od51DJcG1lvMffvXF/vOwLoT6u1HTNJhd//tmMf9H/VGzT6rmBEad/9KFAw8RdLzJf0H9XKUBl9zsA0m6efc/ebBG8zsXye0bZS499l3fOCiuGmea1h/uvGfFTPNGHmZpI+4+zPMbEW9QLLvlOu5jemrvm+rF4z2H/Ml9a7z91L1phnfIen7opvvFd0fQEEY8QKa7UpJL40ZhbpGUe6PmT1B0pfdPW50pe/Dkp5pZg+IHrPPzFqS5O4fl/QgSf9R8XlOZ6o3DfZ2Sb8r6dEDNz8rus+PSvqau39NvYva/4pZ76rsZvaoFO/z+MB056CPS/q3Znam9S6ee5Gkj6Z4vjTert4FoZOmGaXeiFf/pIZfHFg/2P8PV28qeFxf9d0k6fv7f5hZfxRtR72Ru9MH7vsQSXEjcQBywogX0GDufouk18TcdLmk15vZ9ZK2JV0y5nn+3sz+i6QPRmUUjqs3IrMZ3eVtkva7+1diHn5u9Fr9L4KDo2ZfMbO/k3Qf3TOy8zJJfyjp+ij42pD0U6PaJ+lQdP9rB/O83P02M/ttSR9Rb/TrKnd/15jnSsXdv2pmH5N0trv/Q8LdXinpsJn9unpTsn2v1T39f52k/tmQo/qq732KpokjP2tmr1NvSvGZkn514LYLJL13grcFYEZ2z0g6AOTDevXBXu3uH57gMVdL+g13X8+tYTVlZu+U9Jvu/vmBdZe7++VD97tG0tMSAmIAOWCqEUBuzOx+ZvY59c4qTB10YWaXqZdkP+jqwT/M7CxJryLoAorFiBcAAEBBGPECAAAoCIEXAABAQQi8AAAACkLgBQAAUBACLwAAgIIQeAEAABTk/wN82ur+yxHU3gAAAABJRU5ErkJggg==\n", 137 | "text/plain": [ 138 | "
" 139 | ] 140 | }, 141 | "metadata": { 142 | "needs_background": "light" 143 | }, 144 | "output_type": "display_data" 145 | }, 146 | { 147 | "data": { 148 | "image/png": "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\n", 149 | "text/plain": [ 150 | "
" 151 | ] 152 | }, 153 | "metadata": { 154 | "needs_background": "light" 155 | }, 156 | "output_type": "display_data" 157 | }, 158 | { 159 | "data": { 160 | "image/png": "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\n", 161 | "text/plain": [ 162 | "
" 163 | ] 164 | }, 165 | "metadata": { 166 | "needs_background": "light" 167 | }, 168 | "output_type": "display_data" 169 | } 170 | ], 171 | "source": [ 172 | "scatter_plot('TV')\n", 173 | "scatter_plot('radio')\n", 174 | "scatter_plot('newspaper')" 175 | ] 176 | }, 177 | { 178 | "cell_type": "markdown", 179 | "metadata": {}, 180 | "source": [ 181 | "## Baseline model " 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": 10, 187 | "metadata": {}, 188 | "outputs": [], 189 | "source": [ 190 | "from sklearn.model_selection import cross_val_score\n", 191 | "from sklearn.linear_model import LinearRegression" 192 | ] 193 | }, 194 | { 195 | "cell_type": "code", 196 | "execution_count": 13, 197 | "metadata": {}, 198 | "outputs": [], 199 | "source": [ 200 | "X = data.drop(['sales'], axis=1)\n", 201 | "y = data['sales'].values.reshape(-1,1)" 202 | ] 203 | }, 204 | { 205 | "cell_type": "code", 206 | "execution_count": 14, 207 | "metadata": {}, 208 | "outputs": [ 209 | { 210 | "name": "stdout", 211 | "output_type": "stream", 212 | "text": [ 213 | "3.072946597100209\n" 214 | ] 215 | } 216 | ], 217 | "source": [ 218 | "lin_reg = LinearRegression()\n", 219 | "\n", 220 | "MSEs = cross_val_score(lin_reg, X, y, scoring='neg_mean_squared_error', cv=5)\n", 221 | "\n", 222 | "mean_MSE = np.mean(MSEs)\n", 223 | "\n", 224 | "print(-mean_MSE)" 225 | ] 226 | }, 227 | { 228 | "cell_type": "markdown", 229 | "metadata": {}, 230 | "source": [ 231 | "## Regularization" 232 | ] 233 | }, 234 | { 235 | "cell_type": "markdown", 236 | "metadata": {}, 237 | "source": [ 238 | "### Ridge regression " 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 15, 244 | "metadata": {}, 245 | "outputs": [], 246 | "source": [ 247 | "from sklearn.model_selection import GridSearchCV\n", 248 | "from sklearn.linear_model import Ridge" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": 16, 254 | "metadata": {}, 255 | "outputs": [ 256 | { 257 | "data": { 258 | "text/plain": [ 259 | "GridSearchCV(cv=5, error_score='raise-deprecating',\n", 260 | " estimator=Ridge(alpha=1.0, copy_X=True, fit_intercept=True,\n", 261 | " max_iter=None, normalize=False, random_state=None,\n", 262 | " solver='auto', tol=0.001),\n", 263 | " iid='warn', n_jobs=None,\n", 264 | " param_grid={'alpha': [1e-15, 1e-10, 1e-08, 0.0001, 0.001, 0.01, 1,\n", 265 | " 5, 10, 20]},\n", 266 | " pre_dispatch='2*n_jobs', refit=True, return_train_score=False,\n", 267 | " scoring='neg_mean_squared_error', verbose=0)" 268 | ] 269 | }, 270 | "execution_count": 16, 271 | "metadata": {}, 272 | "output_type": "execute_result" 273 | } 274 | ], 275 | "source": [ 276 | "ridge = Ridge()\n", 277 | "\n", 278 | "parameters = {'alpha': [1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}\n", 279 | "\n", 280 | "ridge_regressor = GridSearchCV(ridge, parameters, scoring='neg_mean_squared_error', cv=5)\n", 281 | "\n", 282 | "ridge_regressor.fit(X, y)" 283 | ] 284 | }, 285 | { 286 | "cell_type": "code", 287 | "execution_count": 18, 288 | "metadata": {}, 289 | "outputs": [ 290 | { 291 | "name": "stdout", 292 | "output_type": "stream", 293 | "text": [ 294 | "{'alpha': 20}\n", 295 | "3.0726713383411433\n" 296 | ] 297 | } 298 | ], 299 | "source": [ 300 | "print(ridge_regressor.best_params_)\n", 301 | "print(-ridge_regressor.best_score_)" 302 | ] 303 | }, 304 | { 305 | "cell_type": "markdown", 306 | "metadata": {}, 307 | "source": [ 308 | "### Lasso " 309 | ] 310 | }, 311 | { 312 | "cell_type": "code", 313 | "execution_count": 19, 314 | "metadata": {}, 315 | "outputs": [], 316 | "source": [ 317 | "from sklearn.linear_model import Lasso" 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "execution_count": 27, 323 | "metadata": {}, 324 | "outputs": [ 325 | { 326 | "name": "stdout", 327 | "output_type": "stream", 328 | "text": [ 329 | "{'alpha': 1}\n", 330 | "3.035998320911192\n" 331 | ] 332 | } 333 | ], 334 | "source": [ 335 | "lasso = Lasso(tol=0.05)\n", 336 | "\n", 337 | "parameters = {'alpha': [1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20]}\n", 338 | "\n", 339 | "lasso_regressor = GridSearchCV(lasso, parameters, scoring='neg_mean_squared_error', cv=5)\n", 340 | "\n", 341 | "lasso_regressor.fit(X, y)\n", 342 | "\n", 343 | "print(lasso_regressor.best_params_)\n", 344 | "print(-lasso_regressor.best_score_)" 345 | ] 346 | }, 347 | { 348 | "cell_type": "code", 349 | "execution_count": null, 350 | "metadata": {}, 351 | "outputs": [], 352 | "source": [] 353 | } 354 | ], 355 | "metadata": { 356 | "kernelspec": { 357 | "display_name": "Python 3", 358 | "language": "python", 359 | "name": "python3" 360 | }, 361 | "language_info": { 362 | "codemirror_mode": { 363 | "name": "ipython", 364 | "version": 3 365 | }, 366 | "file_extension": ".py", 367 | "mimetype": "text/x-python", 368 | "name": "python", 369 | "nbconvert_exporter": "python", 370 | "pygments_lexer": "ipython3", 371 | "version": "3.7.4" 372 | } 373 | }, 374 | "nbformat": 4, 375 | "nbformat_minor": 2 376 | } 377 | -------------------------------------------------------------------------------- /Linear Regression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 14, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np\n", 11 | "\n", 12 | "import matplotlib.pyplot as plt\n", 13 | "\n", 14 | "from sklearn.linear_model import LinearRegression\n", 15 | "\n", 16 | "import statsmodels.api as sm\n", 17 | "\n", 18 | "%matplotlib inline" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 15, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "data": { 28 | "text/html": [ 29 | "
\n", 30 | "\n", 43 | "\n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | "
TVradionewspapersales
1230.137.869.222.1
244.539.345.110.4
317.245.969.39.3
4151.541.358.518.5
5180.810.858.412.9
\n", 91 | "
" 92 | ], 93 | "text/plain": [ 94 | " TV radio newspaper sales\n", 95 | "1 230.1 37.8 69.2 22.1\n", 96 | "2 44.5 39.3 45.1 10.4\n", 97 | "3 17.2 45.9 69.3 9.3\n", 98 | "4 151.5 41.3 58.5 18.5\n", 99 | "5 180.8 10.8 58.4 12.9" 100 | ] 101 | }, 102 | "execution_count": 15, 103 | "metadata": {}, 104 | "output_type": "execute_result" 105 | } 106 | ], 107 | "source": [ 108 | "data = pd.read_csv('data/Advertising.csv', index_col=0)\n", 109 | "data.head()" 110 | ] 111 | }, 112 | { 113 | "cell_type": "markdown", 114 | "metadata": {}, 115 | "source": [ 116 | "## Simple linear regression " 117 | ] 118 | }, 119 | { 120 | "cell_type": "code", 121 | "execution_count": 16, 122 | "metadata": {}, 123 | "outputs": [ 124 | { 125 | "data": { 126 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6wAAAHgCAYAAAChPuB6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dfZh06V0X+O/d80xMOiAhM0M2hnS1SlBCgIE8xGg0JrAqjq7hTUNsw/CyNC9BYdWVSK1LUHuvKJqIL7y0S8LgFIlZIcJieLuAmF1dAs+EGAIRyWJ1C8RkMhOCoVmSTN/7R1c/6aenqruru6rOOVWfz3X19Tx9qrrOXafuc6p+df/u311qrQEAAIC2WWu6AQAAADCOgBUAAIBWErACAADQSgJWAAAAWknACgAAQCsJWAEAAGila0034CLuvPPOurm52XQzAAAAmIMHHnjgvbXWu05v70TAurm5mRs3bjTdDAAAAOaglLI3bruUYAAAAFpJwAoAAEArCVgBAABoJQErAAAArSRgBQAAoJUErAAAALSSgBUAAIBWErACAADQSgJWAAAAWknACgAAQCsJWAEAAGglASsAAACtJGAFAACglQSsAAAAtJKAFQAAgFYSsAIAACtvMBhkc3Mza2tr2dzczGAwaLpJJLnWdAMAAACaNBgMsr29nYODgyTJ3t5etre3kyRbW1tNNm3lGWEFAABWWr/fvxmsHjs4OEi/32+oRRwTsAIAACttf39/qu0sjoAVAABYaRsbG1NtZ3EErAAAwErb2dnJ+vr6LdvW19ezs7PTUIs4JmAFAABW2tbWVnZ3d9Pr9VJKSa/Xy+7uroJLLVBqrU234VzXr1+vN27caLoZAAAAzEEp5YFa6/XT242wAgAA0EoCVgAAAFpJwAoAAEArCVgBAABoJQErAABAAwaDQTY3N7O2tpbNzc0MBoOmm9Q615puAAAAwKoZDAbZ3t7OwcFBkmRvby/b29tJYjmdE4ywAgAALFi/378ZrB47ODhIv99vqEXtJGAFAABYsP39/am2ryoBKwAAwIJtbGxMtX1VCVgBAAAWbGdnJ+vr67dsW19fz87OTkMtaicBKwAAwIJtbW1ld3c3vV4vpZT0er3s7u4quHRKqbU23YZzXb9+vd64caPpZgAAADAHpZQHaq3XT283wgoAAEArCVgBAABoJQErAAAArSRgBQAAmJHBYJDNzc2sra1lc3Mzg8Gg6SZ12rWmGwAAALAMBoNBtre3c3BwkCTZ29vL9vZ2kqj+e0lGWAEAoGWM0nXzGPT7/ZvB6rGDg4P0+/2pHqeLz31ejLACAECLGKXr7jHY39+favs4XX3u82IdVgAAaJHNzc3s7e09anuv18twOFx8gxrQ1WMwi3Z39blflXVYAQCgA2YxStd1XT0GOzs7WV9fv2Xb+vp6dnZ2LvwYXX3u8yJgBQCAFtnY2Jhq+zLq6jHY2trK7u5uer1eSinp9XrZ3d2dKpW3q899XuYWsJZSnlpK+alSyjtKKb9QSvm60faXlVJ+rZTy1tHPPfNqAwAAdM0sRum6rsvHYGtrK8PhMIeHhxkOh1PPO+3yc5+HeY6wfjjJX6u1flKSZyd5SSnl6aPbXllrvXv084Y5tgEAADplFqN0XbfKx2CVn/s4Cyu6VEr5gST/NMlzknyg1voPLvq3ii4BAAAsr0aLLpVSNpN8epI3jzZ9bSnlbaWUV5VSPnYRbQAAAKBb5h6wllI+Ksn3Jfn6WutvJvn2JL8/yd1J3pXkH074u+1Syo1Syo0HH3xw3s0EAACgZeYasJZSbs9RsDqotX5/ktRa311rfaTWepjknyd51ri/rbXu1lqv11qv33XXXfNsJgAAAC00zyrBJcl3JXlHrfUVJ7Y/+cTdPi/J2+fVBgAAumswGGRzczNra2vZ3NzMYDBouknAgl2b42M/J8mLk/x8KeWto23fmORFpZS7k9QkwyRfOcc2AADQQYPBINvb2zk4OEiS7O3tZXt7O0lWtloqrKKFVQm+ClWCAQBWy+bmZvb29h61vdfrZTgcLr5BwFw1WiUYAACmsb+/P9V2YDkJWAEAaJ2NjY2ptsOimWO9GAJWAABaZ2dnJ+vr67dsW19fz87OTkMtgo84nmO9t7eXWuvNOdaC1tkTsAIA0DpbW1vZ3d1Nr9dLKSW9Xi+7u7sKLtEK/X7/ZkGwYwcHB+n3+w21aHkJWAEAaKWtra0Mh8McHh5mOBwKVjtoWdNmzbFeHAErAAAwc8ucNmuO9eIIWAEAgJlb5rRZc6wXR8AKAADM3DKnzZpjvTil1tp0G851/fr1euPGjaabAQAAXNDm5mb29vYetb3X62U4HC6+QbRaKeWBWuv109uNsAIAADMnbZZZELACAAAzJ22WWRCwAgAwlWVdqoTZszRRs5bhXBWwAgB0TJMfQpd5qRJYJstyriq6BADQIccfQk8uF7K+vr6wVEuFdKAbunauTiq6JGAFAOiQpj+Erq2tZdznx1JKDg8P575/4GK6dq6qEgwAsASaXttyY2Njqu1AM5blXBWwAgB0SNMfQi1VAt2wLOeqgBUAoEOa/hBqqRLohmU5V81hBQDomMFgkH6/n/39/WxsbGRnZ6dzH0IBTlJ0CQAAgFZSdAkAAFqgyXV0oWuuNd0AAABYFafX0d3b28v29naSSOuGMYywAgDAgvT7/ZvB6rGDg4P0+/2GWgTtJmAFAIAFaXodXegaASsAACxI0+voQtcIWAEAYEGaXkcXukbACgAAC7K1tZXd3d30er2UUtLr9bK7u6vgEkxgHVYAAAAaZR1WAAAAOkXACgCwYgaDQTY3N7O2tpbNzc0MBoOV2j/QHdeabgAAAIszGAyyvb19cy3Qvb29bG9vJ8lC5lE2vX+gW8xhBQBYIZubm9nb23vU9l6vl+FwuPT7B9rJHFYAgJZbRKrs/v7+VNuXbf9AtwhYAQBa4DhVdm9vL7XWm6mysw5aNzY2pto+a03vH+gWASsAQAv0+/2b8zqPHRwcpN/vz3Q/Ozs7WV9fv2Xb+vp6dnZ2ZrqfafZfSsk999yzkP0D3SJgBQBogUWlym5tbWV3dze9Xi+llPR6vezu7i6s4NHW1lbuvffelFJubqu15r777lMteM5UZ6aLFF0CAGiBVSpGtErPtS1OV2dOjkbWF/llBZxF0SUAgBZrOlV3kdpYeGnZRx8XlXIOsyZgBQBogaZTdRepbYWXFlXwqklt/JIALkJKMAAAC9W29NRVSFFehedIt0kJBgCgFdo2mrwKo4+rlHLOcjHCCgDASluV0cfBYJB+v5/9/f1sbGxkZ2dnKVPO6SYjrAAAMEYbRh8XUfRpa2srw+Ewh4eHGQ6HglU6QcAKAMBMda3ibtMpyqtQ9AkuS0owAAAz07aCSl2wKinJcJZJKcECVgAAZkbwNb21tbWM+0xeSsnh4WEDLYLFM4cVAIC5a3vF3TamK7dtXVpoEwErAAAz0+bgq61zRdtQ9AnaSsAKAMDMtDn46vf7t8ytTZKDg4P0+/2GWnSk6aJPdFMbswXmwRxWAABmqq3rfZoryrJYxuJmii4BALDSFIRiWSxjX1Z0CQBgjFVJq6Pd6cowjbYXN5slASsAsLLaWoSH+TBXlGXR5uJmsyYlGABYWcuYVgcsv1Waw2qEFQBYWauUVgcsj1XKFjDCCgCsLCOsAO1ghBUA4BRFeADaTcAKAKysVUqrg1WmGnh3SQkGAACW1jIWKFpGUoIBAKZgRIZZ0I+a1+/3bwlWk+Tg4CD9fr+hFs3OKvSva003AACgbU6PyByvz5rEiAwXph+1w7JWA1+V/iUlGADgFNWDmQX9qB2W9XVYtuclJRgA4IKWdUSGxdKP2mFZq4GvSv8SsAIAnLKxsTHVdhhHP2qHZa0Gvir9S8AKAHDKso7IsFj6UXtsbW1lOBzm8PAww+Gw88Fqsjr9S8AKAHDKso7IsFj6EfO0Kv1L0SUAAAAapegSAAAsubavy9n29tE+AlYAAFpLgHNxx+ty7u3tpdZ6c13OthyztrePdppbSnAp5alJvifJf5fkMMlurfVbSylPTPIvk2wmGSb5C7XW9531WFKCAQBWz3GAc3BwcHPb+vr6Us7Tm4W2r8vZ9vbRrEkpwfMMWJ+c5Mm11reUUj46yQNJPjfJlyR5uNb68lLKS5N8bK31G856LAErAMDqEeBMZ21tLeM+25dScnh42ECLbtX29tGshc9hrbW+q9b6ltH//1uSdyR5SpIXJLlvdLf7chTEAgDALfb396favuravi5n29tHOy1kDmspZTPJpyd5c5In1VrflRwFtUk+bhFtAACgWwQ402n7upxtbx/tNPeAtZTyUUm+L8nX11p/c4q/2y6l3Cil3HjwwQfn10AAAFpJgDOdeazLOcuiV6uybiizNdd1WEsptyf5oSQ/Wmt9xWjbLyV5Xq31XaN5rm+stf6Bsx7HHFYAgNU0GAzS7/ezv7+fjY2N7OzszDzAWcQ+ukjRKxapiaJLJUdzVB+utX79ie3fkuShE0WXnlhr/RtnPZaAFQCAeRCUTaboFYu08KJLSZ6T5MVJPquU8tbRzz1JXp7kT5RSfjnJnxj9DgAsCetmMguL6kf9fv+WYDVJDg4O0u/357K/LlH0ija4Nq8HrrX+30nKhJs/e177BQCac3q0am9vL9vb20my8qNVXNwi+5GgbLKNjY2xI6yKXrFIC6kSDACsBqNVzMIi+5FKxJMpekUbCFgBgJkxWsW0xqX+LrIfCcomU9WXNphrleBZUXQJALpBkRamMang0eMe97g89NBDj7r/vPqRKsHQvCaKLgEAK8ZoFdOYlPqbZKH9aGtrK8PhMIeHhxkOh4JVaBEBKwCModLt5UghvDh9bHKK78MPP6wfAUmkBAPAo1iXkXnTx45IIQeOSQkGgAtS6ZZ508eOSCEHziNgBYBTVLpdvFVLj22qj7XtOEshB84jJRgATpGmuFirmB7bRB9bxeMMdIeUYAC4IGmKi7WK6bFN9LFVPM5Nano0u+n9w6wIWAHgFGmKi7WKKdhN9LFVPM5NOR7N3tvbS601e3t72d7eXljQ2PT+YZakBAMAjZKCvRiO8+I0fayb3j9chpRgAKCVpGAvhuO8OE2PZje9f5glASsA0Cgp2IvhOC/OxsbGVNuXbf8wS1KCAQBghpquyNz0/uEypAQDQMep+gnd0PRodtP7h1kywgoAHWDEBIBlZoQVADrMGpq0idF+YFEErADQAap+clKTAaM1PoFFErACQAeo+smxpgNGo/3AIglYAaADrKHJsaYDRqP9wCIJWAGgA1T95FjTAaPRfmCRBKwA0BFbW1sZDoc5PDzMcDgUrK6opgNGo/3AIglYAVgaKpfOn2PcvKYDxnmN9utbwDjWYQVgKVindP4c4/YYDAbp9/vZ39/PxsZGdnZ2Ov0a6FvApHVYBawALIXNzc3s7e09anuv18twOFx8g5aQY8y86FuAgBWApba2tpZx72mllBweHjbQouXjGDMv+hYwKWA1hxWApdB0IZpV4BgzL/oWMImAFYCl0HQhmlXgGDMv+hYwiYAVgKVgndL5c4yZF32rHVRqpo3MYQUAgBWnUjNNM4cVAAAYq9/v3xKsJsnBwUH6/X5DLYIjAlYAAOZGmmk37O/vT7V9XvQXTrvWdAMAAFhOp9NM9/b2sr29nSTSTFtmY2Nj7Fq4i6zUrL8wjhFWAGgpIw3dt+qvoTTT7mhDpWb9hXEErACsrDYHE8cjDXt7e6m13hxpaFMbOZvXsD1pppyvDZWa9RfGUSUYgJXU9oqYm5ubY9Pzer1ehsPh4hvE1LyGjgHT0V9WmyrBAHBC21PPjDRcXFtHyr2G49NMk+QDH/hAa14n2qMNacm0j4AVgJXU9mBiUqGTRRZA6YI2p92u6mt48guEfr+fe++9N3fcccct93nooYda8zrRHm1IS6Z9pAQDsJLannrW9pTltmjz67iKr+Gk5/y4xz0uDz300KPu34bXCWgHKcEAcELbU8/aOtLQtvTbNo+Ut/U1nKdJqfbjgtWkHa8T0G5GWAFYWYPBIP1+P/v7+9nY2MjOzs5SBxNX1cYRwzaPsK6itbW1TPPZ0usEHDPCCgCnbG1tZTgc5vDwMMPhULB6jjYWqmr7SPmqmTQ/94477vA6AZciYAVYAW1L46Sb2ph+u4ppt2026QuEb/3Wb/U6AZciJRhgybUxjZNukn7LRUi1By5DSjDAimpjGifdJP22OZfJkmgqs0KqPTBL15puAADz1cY0TrrpOPAwerZYp7MkjteaTTLx2F/mbwDaSEowwJKTxgnddplz2HkPdI2UYIAVJY0Tuu0yWRIyK4BlIWAFWHKqqEK3TVoqZtL2y/4NQBsJWAFWgCIo0F2XyZKQWQEsCwErAECLXSZLQmYFsCwUXQIAALggaw3Px6SiS5a1AQAAuABLRi2elGCAFTIYDLK5uZm1tbVsbm5mMBg03SQA6Ix+v38zWD12cHCQfr/fUIuWn4AVYEUcfyu8t7eXWuvNb4XbGLQKrKF9nJez5Xh201WXjPK6T88cVoAVsbm5mb29vUdt7/V6GQ6Hi2/QBKfTrZKj6qYKxkBznJez5Xh211XeS73uZ5s0h1XACrAi1tbWMu6aX0rJ4eFhAy0aryuBNawS5+VsOZ7ddZWg0+t+tkkBq5RggBWxsbEx1famXDXdCpg95+VsOZ7ddZUlo7zulyNgBVgROzs7WV9fv2Xb+vp6dnZ2GmrReF0JrGGVOC9n43j+4qQMR8ezG7a2tjIcDnN4eJjhcHjhdF7n0eUIWAFWxFW+FV6krgTWsErFU5yXV3ey8N04jufycx5dzrlzWEspfzjJX0ryx5I8OclvJ3l7kn+T5P5a6/vn3UhzWAFWi0XZabtVLJ7ivLyaSfMXk6M5jI7nanAeTXapokullB9O8utJfiDJjSTvSfLYJJ+Y5PlJ/ockr6i1/uA8Gn1MwApAG/ngsdzOen0VT+m2Js7drhS+g6ZcNmC9s9b63nMe+Nz7XJWAFYC2WcURtlVy3usr+Oiups5dX3LA2SxrAwAz5MPncjvv9fX6d1dTr50vueBsl17WppTywlLK7xv9/1NLKe8spfx6KeUL5tFQgC5YpWIrjGd5guV23uureEp3NXXudqXwHbTNRaoE/89Jfm30/7+T5OuSPDPJN82rUQBtdrLSY601e3t72d7eFrROYRkCfssTLLfzXt+rBh/LcA50VZPn7mWXQ4FVdmbAWkr5piRPSfINpZRvTvJHk3xmku0kH1NK+V9LKc+dfzMB2qPf79+S0pUkBwcH6ff7DbWoW5Yl4DfCttwu8vpeNvhYlnOgq5y70C0XWdbm3ya5L8mTknxKrfUvjrb/P7XWPzz/JprDCrSLYitXs0xz/1QJXm7zen2X6RzoKucutM+liy6VUj4pycuS/E6Sb6i1vquU8vQkn19r/btn/N2rkvzZJO+ptT5jtO1lSb4iyYOju31jrfUN5zVewAq0iQ+bV7PsAb8Pwpxn2c8B4Ij3g+lcuuhSrfUdSb641vrFtdZ3jbb9YpJvO+dPvzvJ54zZ/spa692jn3ODVYC2kU52Ncs891OqJxexzOcAcMT7wexcpOhSknx/KeXa8S+llCcn+fGz/qDW+qYkD1+hbQCtpNLj1SxzwG9+8/y1sVjRtG1a5nMAOOL9YHYutA5rKeUrkvyZJF+Q5KlJfjDJX6+1/tg5f7eZ5IdOpQR/SZLfTHIjyV+rtb5vwt9u56i4UzY2Np45Lv0OgG5a1jQpqZ7z1cZ1LC/bpmU9B4Aj3g+md+k5rCce4CU5SvHdTPKVtdZ/f4G/2cytAeuTkrw3Sc3REjlPrrV+2XmPYw4rAF1gfvN8tfH4trFNjOdLAmbhov3ItWF6l5rDWkr5q8c/SR6bo9HVtyZ59mjbVGqt7661PlJrPUzyz5M8a9rHALqpjWl8MGtSPedrf39/qu3zNhgMxn4gTZprE+OZT8gsTNOPvB/MznlzWD/6xM9HJXl9knee2DaV0dzXY5+X5O3TPgbQPT4osCrMb56vNhUrOr6uTaKAUruYT8gsTNOPvB/MzoVTgqd+4FJek+R5Se5M8u4k3zT6/e4cpQQPc5Ra/K7zHktKMHTbRdNipGuxivT7i2vTHNZJ17Um28Rk5hMyC/rRfF02JXi3lPKMCbc9vpTyZaWUsVfjWuuLaq1PrrXeXmv9+Frrd9VaX1xr/ZRa66fWWv/cRYJVoPsuksZnFJZV1PV+v+hU/zaNWJyV8itYbZ82jc7TXfpRM84cYS2l3J3kG5N8So7Sdx/M0VzWpyX53UleleQ7aq2/M89GGmGFbrvICKviBKyiLvf7No12NqHLr90qWvX+ymzoR/N1qRHWWutba61/IclnJvlnSf6vHC1p8z/WWj+t1vqt8w5Wge67SOGBthVTgUXocr+f55zALhRpU1ClW9o0Ok936UfNmNsc1lkywgrdd948PaMVrKIu9/t5zeXq0giG+ccAs3PldVibJGCF5delD6kwK13u9/MKtrscxANweZdKCQZYFGk2y6cLaZ1N63K/n1dKbJfTpAGYvalHWEspa0k+qtb6m/Np0qMZYQXoli6PHHJx80iJtQwWwGq6UkpwKeV7k3xVkkeSPJDkY5K8otb6LbNu6DgCVoBukdbJZV3kyw5fiAAsn6umBD99NKL6uUnekGQjyYtn2D4ATulySq20Ti7rImnS86xQDEC7XLvg/W4vpdyeo4D1n9ZaP1RKaX+1JoCOOj2CtLe3l+3t7STpxAjSxsbG2BFWi6tzEVtbW2f2c1+IAKyOi46wfmeSYZLHJ3lTKaWXZGFzWAFWTddHkKxRyTxN+uLDFyIAy+dCAWut9R/XWp9Sa72nHtlL8vw5tw1gZXV9BKnL1W9pP1+IAKyOCwWspZQnlVK+q5Tyw6Pfn57k3rm2DGCFLcMI0tbWVobDYQ4PDzMcDgWrzIwvRABWx0VTgr87yY8m+T2j3/9Tkq+fR4MAMIIE5/GFCMBquGjAemet9XVJDpOk1vrhHC1xAyy5Lleq7TIjSAAAF68S/FullDuS1CQppTw7yfvn1iqgFbpeqbbrzquUCgCw7Eqt569OU0r5jCT/JMkzkrw9yV1JvrDW+rb5Nu/I9evX640bNxaxK+CEzc3NsUuT9Hq9DIfDxTcIAIClVEp5oNZ6/fT2i1YJfkuSP57kjyT5yiSfvKhgFWhO1yvVwixJj4dumdU569yHZp2ZElxK+fwJN31iKSW11u+fQ5uAltjY2Bg7wtqlSrUwC9LjoVtmdc4696F5Z6YEl1Jefcbf1lrrl82+SY8mJRiacfqNOjmqVNul4j+DwSD9fj/7+/vZ2NjIzs5OZ9pOe0iPh26Z1Tnr3IfFuVRKcK31S8/4WUiwCjSn65VqjwPuvb291FpvfjMunWsxupRGd15bpcdDt8zqnJ3nud+layQ06UJFl5KklPJnknxyksceb6u1/u05tesWRliBy/DNeHO6NDp/kbbqS9AtbR9h7dI1EhblSkWXSinfkeSFSf5ykpLkzyfpzbSFADNmVKw5/X7/lg9iSXJwcJB+v99Qiya7SFt3dnayvr5+y33W19ezs7OzkDYC05nVOTuvc79L10ho2oUC1iR/pNb6xUneV2v95iR/OMlT59csgKubVBxK0aj569KXBRdpa9fT42HVzOqcnde536VrJDTtouuwvrnW+odKKT+d5POTPJTk7bXWp827gYmUYOBypFw1p0sptF1qK7AcXHfg0a6UEpzkh0opT0jyLUnekmSY5DWzax7A7J33zbiCF/PTdArtNK9t021lsZz3Z3N8FsN1B6ZQa53qJ8nvSvIx0/7dVX6e+cxnVoBZuv/+++v6+npNcvNnfX293n///U03bWncf//9tdfr1VJK7fV6Czu2l3ltm2ori+W8P5vjs1iuO3CrJDfqmFjwvHVYPzPJf6m1/tfR71+c5AuS7CV5Wa314blE0adICQZmTTrW8vLarp6Lrresb5zN8YF2WpU15S+bEvydST44eoDnJnl5ku9J8v4ku7NuJMCiKHixvLy2q2Wa9Zb1jbM5PjRNSvqjWVP+/ID1thOjqC9Msltr/b5a699K8gnzbRrA/KggvLy8tqtlmuVB9I2zOT40SWA2niWQLhCwllKujf7/2Ul+8sRt18bcH2CiNn1zquDF8vLaNqOp83uaUUF942yOD00SmI0n8yFnF11K0k/y75L8QJKfy0eWwfmEJP/urL+d5Y+iS9CMWRaEaGMxDwUvlpfXdrGaPL97vd4t+z3+6fV6E9uqb0zm+MyOYzmdUsrYc7mU0nTTGjXtNa7LcpmiS0lSSnl2kicn+bFa62+Ntn1iko+qtb5lBjHzuRRdgsWb9RqminnA8mry/LbeMm2kX07P54TxVqkvXXod1lrrT9daX38crI62/adFBatAM2admiOlpVltSsdm+TR5fp+33jI0QXrr9KSkj+cal/NHWNvACCss3traWsZdH0opOTw8nPrxfHPanFX6dpZmOL/hVue9h67KMiXTclxW26VHWIHVNOtqkb45bY5v+pk35zfc6qz3UNVwJ9va2spwOMzh4WGGw6FglSQCVmCCWX8AldLSHOnYsyGtejLn93Jouo83vf9ZOus91JeIMKVxlZja9qNKMDRDhcPlsEoVBueljVWuYZaa7uNN738eJr2HqoYL4+WyVYLbwBxWgMszh/XqzNFk2TXdx5ve/yKt0nOFaZjDCrTKMqV+tZ10zauTVs2ya7qPN73/RVr1Od/e/5mWgBVYOAUnFk8hi6uZdREyaJum+3jT+1+kVf4S0fs/lyFgBRZOwYl2muZb71X7hnzVR0RYfk338ab3fxlXuQ6u6peI3v+5lHETW9v2o+gSLFcBJAUn2meagifLWBzlIpbpHIRxmu7jTe9/Gqt6HbyqNr//d6n/LasougTdtWxFc+6888489NBDj9p+xx135L3vfW8DLWKaIiAKhgCrznXwctp63Jbtc1ZXKboEHSaFhnmbpuDJKhVHYXbGpU+uWmr5VThWt2r6eLgOXk5bU799zmq5ccOubfuREkzbzTuNpM0pNJexbM9nGUyzVoXTJiEAAB2TSURBVOu067pKs2Jc+uTtt99eH/OYx0ipvADpp7ea1J/uuOOOhV1nrG99eW18T/C5pB0yISW48WD0Ij8CVtpsER8klu2NcdmezzKY1xxWH7SpdfI57zpwMa6Zt7pIf5r3dca1bbk4x9pBwApzsoiL3LK9MS7b82mLq35rPc3fX/S+PgRQ6+TRCyMaF2P051YX7U/zvs60caSQy/G5pB0ErDAni/ogsWxvjMv2fE5q4rm19c3WB21qNcJ6VWd98bPM19JJ7rjjDl9+MHOreC61zaSAVZVguKK2VryjGU1VGmxrP2xru1iscefF7bffnlJKPvjBD97cpirneJOuK/fee2/uu+++latsOqnS/GmuM9AtqgTDnLS14t08XLUqY9NVHRehqUqDba1YuUrnB5NtbW1ld3c3vV4vpZT0er28+tWvzqte9apbti17oHVZ447f7u5u3vCGN6xkZdOHH3743Pu4zsASGTfs2rYfKcG03SqkkVw15bStKauz1lQKbJvniq7C+QFNWNWU+0nXu9tuu811BjosUoKBq7hqaueqpIY29Twten5xg8Eg/X4/+/v72djYyM7OjmNEJ63KdfU01ztYTlKCgSu5asppW1NWZ62pFNhJKYM+vN3q+IPu3t5eaq3Z29vL9vb2Uqans/xWNeXe9Q5WixFW4EKMsF6cEbz2WqV+yGpwvQGWhRFW4Equ+k3+Ko0EbG1tZTgc5vDwMMPhcGk+PLaxaNa0bVqVkX5Wx7JebwCOCVhZSm38YN1106ZgnX4Nkkjh6rA2ptJepk0bGxtTbQcAmiUlmKWjGEPzvAbLp42ptJdpk74JAO00KSVYwMrSOJ7HM+4DbJLcdtttOTw8NMdnAdoY3HA1a2trGfd+UUrJ4eFhAy26fJvM+QOA9jGHlaV2MjVwkkceeaQ1qYzLzjzBi+tK+nobU2kv2yZz/gCgOwSsLIV+v39Lit95Dg4O0u/359ii1dbG4KaN2jgvdJI2Fs1qY5sAgNkSsLIULjNyZ7RvftocSJw1orno0c5xX7S09cuUNq572MY2waJ1JUsD4NJqra3/eeYzn1nhLL1eryYZ+3PbbbeN3d7r9Zpudqfdf//9tdfr1VJK7fV69f7775/q9ibcf//9dX19/ZZ+sL6+Xu+///4zb5uXUsrYvllKmds+WU1tPB+5uiauWwDzkuRGHRMLKrrEUjir8mcSVUFnrKuVVs8qBpVk4YWiFKdiEbp6vnI+1xBgmSi6xFI7KzXwKmmDUq3G61Iq60lnFYNqolDUZVKn9Umm1dXzlfMpcAesAiOsMIFRicnauMTJRbRthDWZbokVfZLL6Or5yvmMsALLxAgrTMmoxGRdrQJ81ohmU4WiplliRZ9s3vEIdykl165dSyml9SPdXT1fOV+bC9wBzIqAFSaQajVZVz8kzSt1fFH0yWadXu/5kUceSZJWL0eUdPd85XxduG4BXJWUYJhAqtXZpkllZTb0yWZNOv7H2vw6OF8BaDspwXABJwvafOADH8ja2q2nyO23325UYmSaVFZmw0hZs84byZ7HSPesimw5XwHoqrkFrKWUV5VS3lNKefuJbU8spfx4KeWXR/9+7Lz2D9M6me5Xa81DDz30qIIkpZSGWgfS/5p23pzPWc8JPX1NanvqMQDMw9xSgkspz03ygSTfU2t9xmjb30/ycK315aWUlyb52FrrN5z3WFKCWYTz0v2OtTntD5ifcVWaj82jWrMUcABWycJTgmutb0ry8KnNL0hy3+j/9yX53HntH6Z10XQ+BW6uxjqidNXJEe4kue2225JkbiPdimwBwJyLLpVSNpP80IkR1t+otT7hxO3vq7WOTQsupWwn2U6SjY2NZ15k5Auuwgjr/FlHFC7OCCsAq6RzRZdqrbu11uu11ut33XVX081hBYwraHOaAjdXYx1RuDhFtgBg8QHru0spT06S0b/vWfD+YaJxBW2++qu/uvUFbs5LsZ02BXeeKbvLluJ4kWMlBZrLUmQLAJJrC97fDya5N8nLR//+wIL3D1N5znOek2/7tm9ruhkTnU6xPa4imhx92D3v9mkf76o2NjbGpjjOurrqIlzkWH3N13xNvuM7viPHUy9mfTxZfltbW/oKACttnlWCX5PkeUnuTPLuJN+U5F8neV2SjST7Sf58rfV0YaZHUSWYReji/Mrz5rhNOwdu3nPmuniMJznvWA0Gg7z4xS/OuGusOYgAALdqokrwi2qtT6613l5r/fha63fVWh+qtX52rfVpo3/PDVbplqumPzaZPtnF+ZXnpdhOm4I775TdZUpxnHRM9vb2sra2lnvvvXdssHrW3wIAcKvWFl2ie666yP1V//6quji/clIq7fH2826/6vbL2NraynA4zOHhYYbDYSeD1eTsY1JrzSOPPHKpvwUA4CMErMzMVUcomx7hXESwNmvnVRGdtsroIquSdr0Y0UWqSo9TSlHlFQDgggSsK2hegcJVRyibHuHs4hIS56XYTpuCe9b9Z9lvmh5Nn4XTx+oiSin5qq/6qs6OKgMALNrcii7NkqJLszPPojdXLdgz74I/FzEYDNLv97O/v5+NjY3s7OwILjL7ftOG13rWJj2n2267LYeHh/oTAMAZFl50iXaaZdrt6RG3e+6550ojlG0Y4VyW+ZWzNut07aZH0+dhUv+977779CcAgEsSsK6YWQUK41I677vvvtx7772XrgC7TBVkl82sA8wuzhc+j/4LADB7UoJXzKxSMZcxpZPJZv16L9N6rAAAXJ2UYJLMLu12GVM6mWzW6dpGIwEAuAgB64qZVaCwjCmdTDaPANN8YQAAziMlmEuR0gkAAMyKlGBm6iIjbvNa75XVoy8BAKwmAeuKmeUH/7NSOsdVEd7e3hZoTEmg1kxfctwBANpBSvAKWWQaryrCVyft+sii+5LjDgCweJNSggWsK2SRH/zX1tYyrm+VUnJ4eDjTfS2rJgK1fr+f/f39bGxsZGdnpxUB2qL7ki9bAAAWzxxWFroUjSrCV7fI16vNKdyL7kuWbAIAaA8B6wqZ9wf/k/P+PvCBD+Qxj3nMLbdfZd3OVbTIQK3f79+SApskBwcH6ff7M9/XtGa9Bux5fNkCANAeAtYVMs8P/qdH6B566KHUWnPHHXfMbN3Orrlq4Z5FBmptHlWcxxqwZ1l0gAwAwGTmsK6Yec1TNO/vVrMq3LOoeaVev1u1dT4vAMCyUnSJuVJk6VZdCwBVxgUAoEmKLjFX5v3dqs0ptuMsOu0WAAAuQsDKTJj3d6suBvBbW1sZDoc5PDzMcDgUrAIA0DgBKzNhhO5WFw3gr1qYCQAAlpmAdYXNOlgyQvcRFwng27z2KQAAtIGiSytKkZ3mda0wEwAAzIsqwdxCsNQ8lZUBAOCIKsHcomtVbJdRFwszAQDAIglYV5RgqXkqKwMAwNkErCtKsNQ8lZUBAOBs5rCusMFgkH6/n/39/WxsbGRnZ0ewBAAALJw5rDzK6WVokizNmqDWNwUAgO671nQDaIfTy9wcrwmapHOjrsv0XAAAYJVJCSbJci1zs0zPBQAAVoGUYM60TMvcLNNzAQCAVSZg7ahZz9Fc1DI3i5hbaskeAABYDgLWDjqeo7m3t5da6805mlcJ/haxzM082j2OJXsAAGA5CFhb6LxRyH6/f7Og0LGDg4P0+/1L7/Oqa4JeZOR0Hu0ex/qmAACwHBRdapnTFW6To9HBkwHX2tpaxr1upZQcHh4urK3HLtLmpH3tBgAA2mFS0SUBa8tcpMJt26rgXrQ9bWs3AADQDqoEd8RFKtzOeo7mVQshXbQqr7mlAADANASsLXORCreznKM5i0JI57X5OCB+8YtfnMc97nG54447zC0FAADOJSW4ZS46H3RWZpGme1abkyz0+QAAAN0jJbgjFl3h9qLpvGc5q82LqgwMAAAsHyOsK27ehZBUBgYAAM5jhJWxdnZ2cvvtt9+y7fbbb59ZIaSLzMkFAAAYR8DaIlet1ntZpZRbfv/Qhz6Ur/u6r5vJ/lUGBgAALkvA2hKzqNZ7Gf1+Px/84Acftf2hhx6ayf4XPScXAABYHuawtsS855JOMmmO6aL2DwAAYA5ry82iWu9lnDeXdN77BwAAmETA2hJNFScaN8d0kfsHAACYRMDaEk0VJzqeY3rHHXc86jbFkQAAgCYJWFuiyeJEW1tbee9735v7779fcSQAAKA1FF0CAACgUYouAQAA0CkCVgAAAFpJwAoAAEArCVhX0GAwyObmZtbW1rK5uZnBYNB0kwAAAB7lWtMNYLEGg0G2t7dzcHCQJNnb28v29naSqAgMAAC0ihHWFdPv928Gq8cODg7S7/cbahEAAMB4AtYWmmfK7v7+/lTbAQAAmiJgbZnjlN29vb3UWm+m7M4qaN3Y2JhqOwAAQFMErC1z2ZTdi47K7uzsZH19/ZZt6+vr2dnZuVrDAQAAZkzA2hLHAefe3t7Y289K2Z1mVHZrayu7u7vp9XoppaTX62V3d1fBJQAAoHVKrbXpNpzr+vXr9caNG003Y25OV+4dp9frZTgcjr1tUqB71t8AAAC0RSnlgVrr9dPbjbC2wLg04JPOS9lVSAkAAFhGAtYFGzfX9KzA8iIpuwopAQAAy0jAukCT5po+8YlPHHv/45Te8+aX3nPPPVNtBwAA6AIB6wJNqgCc5EqVe9/whjdMtR0AAKALBKwLNCn19+GHH75S5V5zWAEAgGV0rYmdllKGSf5bkkeSfHhcNahltLGxMbaa78bGRra2ti69tMxZjwsAANBVTY6wPr/WeveqBKtJsrOzc6XU30U/LgAAQJOkBC/Q1tbWlVJ/F/24AAAATSq11sXvtJT/nOR9SWqS76y17p51/+vXr9cbN24spG0AAAAsVinlgXHZt02NsD6n1voZSf50kpeUUp57+g6llO1Syo1Syo0HH3xw8S1s0Li1WgEAAFZNIwFrrfXXR/++J8nrkzxrzH12a63Xa63X77rrrkU3sTGT1moVtAIAAKtm4QFrKeXxpZSPPv5/kj+Z5O2LbkdbTVqrtd/vN9QiAACAZjSxrM2Tkry+lHK8/++ttf5IA+1oJWuqAgAAHFl4wFpr/ZUkn7bo/XaFNVUBAACOWNamZaypCgAAcETA2jLWVAUAADjSyDqs07IOKwAAwPJq2zqsAAAAcCYBKwAAAK0kYAUAAKCVBKwAAAC0koAVAACAVhKwAgAA0EoCVgAAAFpJwAoAAEArCVgBAABoJQErAAAArSRgBQAAoJUErAAAALSSgBUAAIBWErACAADQSgJWAAAAWknACgAAQCsJWAEAAGglAesCDAaDbG5uZm1tLZubmxkMBk03CQAAoPWuNd2AZTcYDLK9vZ2Dg4Mkyd7eXra3t5MkW1tbTTYNAACg1Yywzlm/378ZrB47ODhIv99vqEUAAADdIGCds/39/am2AwAAcETAOmcbGxtTbQcAAOCIgHXOdnZ2sr6+fsu29fX17OzsNNQiAACAbhCwztnW1lZ2d3fT6/VSSkmv18vu7q6CSwAAAOcotdam23Cu69ev1xs3bjTdDAAAAOaglPJArfX66e1GWAEAAGglASsAAACtJGAFAACglQSsAAAAtJKAFQAAgFYSsAIAANBKAlYAAABaScAKAABAKwlYAQAAaCUBKwAAAK0kYAUAAKCVBKwAAAC0koAVAACAVhKwAgAA0EoCVgAAAFpJwAoAAEArCVgBAABoJQHrFQ0Gg2xubmZtbS2bm5sZDAZNNwkAAGApXGu6AV02GAyyvb2dg4ODJMne3l62t7eTJFtbW002DQAAoPOMsF5Bv9+/GaweOzg4SL/fb6hFAAAAy0PAegX7+/tTbQcAAODiBKxXsLGxMdV2AAAALk7AegU7OztZX1+/Zdv6+np2dnYaahEAAMDyELBewdbWVnZ3d9Pr9VJKSa/Xy+7uroJLAAAAM1BqrU234VzXr1+vN27caLoZAAAAzEEp5YFa6/XT242wAgAA0EoCVgAAAFpJwAoAAEArCVgBAABoJQErAAAArSRgBQAAoJUErAAAALSSgBUAAIBWErACAADQSgJWAAAAWknACgAAQCsJWAEAAGglASsAAACtJGAFAACglQSsAAAAtFKptTbdhnOVUh5Mstd0Oya4M8l7m24EraaPcB59hPPoI1yEfsJ59BHO02Qf6dVa7zq9sRMBa5uVUm7UWq833Q7aSx/hPPoI59FHuAj9hPPoI5ynjX1ESjAAAACtJGAFAACglQSsV7fbdANoPX2E8+gjnEcf4SL0E86jj3Ce1vURc1gBAABoJSOsAAAAtJKA9ZJKKZ9TSvmlUso7Sykvbbo9tEMpZVhK+flSyltLKTdG255YSvnxUsovj/792KbbyWKVUl5VSnlPKeXtJ7aN7RflyD8eXVveVkr5jOZazqJM6CMvK6X82uh68tZSyj0nbvuboz7yS6WUP9VMq1mkUspTSyk/VUp5RynlF0opXzfa7lpCkjP7iGsJSZJSymNLKT9TSvkPoz7yzaPtv7eU8ubRdeRfllIeM9r+u0a/v3N0+2YT7RawXkIp5bYk/yzJn07y9CQvKqU8vdlW0SLPr7XefaIk+EuT/ESt9WlJfmL0O6vlu5N8zqltk/rFn07ytNHPdpJvX1AbadZ359F9JEleObqe3F1rfUOSjN5vvijJJ4/+5ttG70sstw8n+Wu11k9K8uwkLxn1BdcSjk3qI4lrCUd+J8ln1Vo/LcndST6nlPLsJH8vR33kaUnel+TLR/f/8iTvq7V+QpJXju63cALWy3lWknfWWn+l1vrBJK9N8oKG20R7vSDJfaP/35fkcxtsCw2otb4pycOnNk/qFy9I8j31yE8neUIp5cmLaSlNmdBHJnlBktfWWn+n1vqfk7wzR+9LLLFa67tqrW8Z/f+/JXlHkqfEtYSRM/rIJK4lK2Z0PfjA6NfbRz81yWcl+Vej7aevI8fXl3+V5LNLKWVBzb1JwHo5T0nyX078/qs5+4LA6qhJfqyU8kApZXu07Um11nclR28mST6usdbRJpP6hesLJ33tKJ3zVSemE+gjK26UlvfpSd4c1xLGONVHEtcSRkopt5VS3prkPUl+PMn/m+Q3aq0fHt3lZD+42UdGt78/yR2LbbGA9bLGfbOg3DJJ8pxa62fkKBXrJaWU5zbdIDrH9YVj357k9+cobetdSf7haLs+ssJKKR+V5PuSfH2t9TfPuuuYbfrJChjTR1xLuKnW+kit9e4kH5+jEfVPGne30b+t6CMC1sv51SRPPfH7xyf59YbaQovUWn999O97krw+RxeCdx+nYY3+fU9zLaRFJvUL1xeSJLXWd48+WBwm+ef5SKqePrKiSim35ygQGdRav3+02bWEm8b1EdcSxqm1/kaSN+ZovvMTSinXRjed7Ac3+8jo9o/JxaevzIyA9XJ+NsnTRhW1HpOjCes/2HCbaFgp5fGllI8+/n+SP5nk7TnqG/eO7nZvkh9opoW0zKR+8YNJvnhU4fPZSd5/nO7Hajk13/DzcnQ9SY76yBeNqjf+3hwV1fmZRbePxRrNG/uuJO+otb7ixE2uJSSZ3EdcSzhWSrmrlPKE0f8fl+S/z9Fc559K8oWju52+jhxfX74wyU/WWhc+wnrt/LtwWq31w6WUr03yo0luS/KqWusvNNwsmvekJK8fzUW/luR7a60/Ukr52SSvK6V8eZL9JH++wTbSgFLKa5I8L8mdpZRfTfJNSV6e8f3iDUnuyVHxi4MkX7rwBrNwE/rI80opd+co/WqY5CuTpNb6C6WU1yX5xRxVBX1JrfWRJtrNQj0nyYuT/Pxo/lmSfGNcS/iISX3kRa4ljDw5yX2jatBrSV5Xa/2hUsovJnltKeXvJvm5HH3xkdG//6KU8s4cjax+URONLg0EyQAAAHAuKcEAAAC0koAVAACAVhKwAgAA0EoCVgAAAFpJwAoAAEArCVgBaI1SSi2l/IsTv18rpTxYSvmhJts1L6WUb5zDY35pKeWto58PllJ+fvT/15ZSfrWUsnbq/m8tpTzrkvt6Yynl+hT3//pSyhef2vayU7/fVUr5kcu0B4DlI2AFoE1+K8kzRguaJ8mfSPJrDbZn3mYesNZaX11rvbvWeneSX0/y/NHvX5TkvyT5Y8f3LaX8wSQfXWv9mVm347RSyrUkX5bke0e/P72U8qYkX11KeUsp5UWj9j+Y5F2llOfMu00AtJ+AFYC2+eEkf2b0/xclec3xDaWUJ5ZS/nUp5W2llJ8upXzqaPvLSimvGo34/Uop5a+c+Ju/VEr5mdFI4neWUm4rpXx5KeWVJ+7zFaWUV5xsxOh+311KeftolPJ/Gm1/YynlH5VS/v3otmeNtj9+1IafLaX8XCnlBaPtX1JK+f5Syo+UUn65lPL3R9tfnuRxo3YNTh+EUsqLRvt9eynl753Y/oFSyk4p5T+MjsGTpji2r8mtC79/0cnje2Ifzxo9v58b/fsHRtsfNxqpfVsp5V8medxZx+qUz0ryllrrh0e/vyzJ9yT59iTPSfKzJ+77r5NsTfG8AFhSAlYA2ua1Sb6olPLYJJ+a5M0nbvvmJD9Xa/3UHI1Ofs+J2/5gkj+V5FlJvqmUcnsp5ZOSvDDJc0Yjjo/kKBB6bZI/V0q5ffS3X5rk1afacXeSp9Ran1Fr/ZRTtz++1vpHknxNkleNtvWT/GSt9TOTPD/Jt5RSHn/isV6Y5FOSvLCU8tRa60uT/PZo9POW4KyU8nuS/L0cBXl3J/nMUsrnHu87yU/XWj8tyZuSfMXkQ/kor0vyuaPRzoza9Nox9/uPSZ5ba/30JP9rkv9ttP2rkxyMjv9OkmeeeH6TjtWx5yR54MTvH0zycUnWaq2/XWt954nbbuTESDAAq0vACkCr1FrflmQzR6Orbzh18x9N8i9G9/vJJHeUUj5mdNu/qbX+Tq31vUnek+RJST47R0HVz5ZS3jr6/ffVWn8ryU8m+bOjtNjba60/f2pfv5Lk95VS/kkp5XOS/OaJ214zasObkvzuUsoTkvzJJC8d7eeNSR6bZGN0/5+otb6/1vr/JfnFJL1zDsNnJnljrfXB0YjkIMlzR7d9MMnxnN4HRsfqQmqt/zXJLyT57FLK3Uk+VGt9+5i7fkyS/6OU8vYkr0zyyaPtz01y/+ix3pbkbaPtZx2rY09O8uCJ378hRwH815ZS/s9SyqeduO09SX7PRZ8XAMvr2vl3AYCF+8Ek/yDJ85LccWJ7GXPfOvr3d05seyRH73ElyX211r855u/+9xyN0v7HjBkRrLW+bxRE/akkL0nyF3I0B/PkPk+2oST5glrrL528oZTyhya07SzjnuexD9Vaj/d/kcc67Tgt+N0Zkw488neS/FSt9fNKKZs5CsCPnX7u5x2rY7+doyD++G9+LcmLSil/O0fpwN+f5PePbn7s6P4ArDgjrAC00auS/O0xo55vymhuYynleUneW2sdN5p37CeSfGEp5eNGf/PEUkovSWqtb07y1CR/MePncd6Zo3TV70vyt5J8xombXzi6zx9N8v5a6/uT/GiSv1xKKaPbPv0Cz/NDJ9KST3pzkj9eSrmzlHJbjkab/+0FHu8ivi/JPZmcDpwcjbAeF7v6khPbTx7/Z+QoZfu8Y3XsHUk+4fiXUsrxqO1hjkaKH3/ivp+YZNzILwArxggrAK1Ta/3VJN865qaXJXl1KeVtSQ6S3HvO4/xiKeV/SfJjo+VcPpSjEcC90V1el+TuWuv7xvz5U0b7Ov5y9+Qo7ftKKf8+ye/OR0YS/06Sf5TkbaOgdZjkz57VviS7o/u/5eQ81lrru0opfzPJT+VotPUNtdYfOOexLqTW+hullJ9O8qRa63+ecLe/n+S+UspfzVHq9LFvz0eO/1uTHFcXPutYHfvhjNK5Rz6/lPJdOUr9/cIkf+XEbc9P8m+meFoALKnykawiAFgt5Wh911fWWn9iir95Y5K/Xmu9MbeGLalSyuuT/I1a6y+f2PayWuvLTt3vTUleMOGLBABWiJRgAFZOKeUJpZT/lKMqvRcOVrmyl+ao+NJJbzz5SynlriSvEKwCkBhhBQAAoKWMsAIAANBKAlYAAABaScAKAABAKwlYAQAAaCUBKwAAAK0kYAUAAKCV/n8CeovBN5hRzAAAAABJRU5ErkJggg==\n", 127 | "text/plain": [ 128 | "
" 129 | ] 130 | }, 131 | "metadata": { 132 | "needs_background": "light" 133 | }, 134 | "output_type": "display_data" 135 | } 136 | ], 137 | "source": [ 138 | "plt.figure(figsize=(16,8))\n", 139 | "plt.scatter(data['TV'], data['sales'], c='black')\n", 140 | "plt.xlabel('Money spent on TV ads ($)')\n", 141 | "plt.ylabel('Sales (k$)')\n", 142 | "plt.show()" 143 | ] 144 | }, 145 | { 146 | "cell_type": "code", 147 | "execution_count": 17, 148 | "metadata": {}, 149 | "outputs": [ 150 | { 151 | "name": "stdout", 152 | "output_type": "stream", 153 | "text": [ 154 | "The linear model is: \n", 155 | " Y = 7.032593549127693 + 0.047536640433019764*TV\n" 156 | ] 157 | } 158 | ], 159 | "source": [ 160 | "X = data['TV'].values.reshape(-1, 1)\n", 161 | "y = data['sales'].values.reshape(-1, 1)\n", 162 | "\n", 163 | "reg = LinearRegression()\n", 164 | "reg.fit(X, y)\n", 165 | "\n", 166 | "print(f\"The linear model is: \\n Y = {reg.intercept_[0]} + {reg.coef_[0][0]}*TV\")" 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "execution_count": 18, 172 | "metadata": {}, 173 | "outputs": [ 174 | { 175 | "data": { 176 | "image/png": "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\n", 177 | "text/plain": [ 178 | "
" 179 | ] 180 | }, 181 | "metadata": { 182 | "needs_background": "light" 183 | }, 184 | "output_type": "display_data" 185 | } 186 | ], 187 | "source": [ 188 | "predictions = reg.predict(X)\n", 189 | "\n", 190 | "plt.figure(figsize=(16,8))\n", 191 | "plt.scatter(X, y, c='black')\n", 192 | "plt.plot(X, predictions, c='blue', linewidth=2)\n", 193 | "plt.xlabel('Money spent on TV ads ($)')\n", 194 | "plt.ylabel('Sales (k$)')\n", 195 | "plt.show()" 196 | ] 197 | }, 198 | { 199 | "cell_type": "code", 200 | "execution_count": 19, 201 | "metadata": {}, 202 | "outputs": [ 203 | { 204 | "name": "stdout", 205 | "output_type": "stream", 206 | "text": [ 207 | " OLS Regression Results \n", 208 | "==============================================================================\n", 209 | "Dep. Variable: sales R-squared: 0.612\n", 210 | "Model: OLS Adj. R-squared: 0.610\n", 211 | "Method: Least Squares F-statistic: 312.1\n", 212 | "Date: Sat, 09 May 2020 Prob (F-statistic): 1.47e-42\n", 213 | "Time: 15:19:51 Log-Likelihood: -519.05\n", 214 | "No. Observations: 200 AIC: 1042.\n", 215 | "Df Residuals: 198 BIC: 1049.\n", 216 | "Df Model: 1 \n", 217 | "Covariance Type: nonrobust \n", 218 | "==============================================================================\n", 219 | " coef std err t P>|t| [0.025 0.975]\n", 220 | "------------------------------------------------------------------------------\n", 221 | "const 7.0326 0.458 15.360 0.000 6.130 7.935\n", 222 | "TV 0.0475 0.003 17.668 0.000 0.042 0.053\n", 223 | "==============================================================================\n", 224 | "Omnibus: 0.531 Durbin-Watson: 1.935\n", 225 | "Prob(Omnibus): 0.767 Jarque-Bera (JB): 0.669\n", 226 | "Skew: -0.089 Prob(JB): 0.716\n", 227 | "Kurtosis: 2.779 Cond. No. 338.\n", 228 | "==============================================================================\n", 229 | "\n", 230 | "Warnings:\n", 231 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 232 | ] 233 | }, 234 | { 235 | "name": "stderr", 236 | "output_type": "stream", 237 | "text": [ 238 | "D:\\Anaconda3\\lib\\site-packages\\numpy\\core\\fromnumeric.py:2389: FutureWarning: Method .ptp is deprecated and will be removed in a future version. Use numpy.ptp instead.\n", 239 | " return ptp(axis=axis, out=out, **kwargs)\n" 240 | ] 241 | } 242 | ], 243 | "source": [ 244 | "X = data['TV']\n", 245 | "y = data['sales']\n", 246 | "\n", 247 | "exog = sm.add_constant(X)\n", 248 | "est = sm.OLS(y, exog).fit()\n", 249 | "\n", 250 | "print(est.summary())" 251 | ] 252 | }, 253 | { 254 | "cell_type": "markdown", 255 | "metadata": {}, 256 | "source": [ 257 | "## Multiple linear regression " 258 | ] 259 | }, 260 | { 261 | "cell_type": "code", 262 | "execution_count": 21, 263 | "metadata": {}, 264 | "outputs": [ 265 | { 266 | "name": "stdout", 267 | "output_type": "stream", 268 | "text": [ 269 | "The linear model is: \n", 270 | " Y = 2.9388893694594085 + 0.045764645455397615*TV + 0.18853001691820456*radio + -0.0010374930424763272*newspaper\n" 271 | ] 272 | } 273 | ], 274 | "source": [ 275 | "Xs = data.drop(['sales'], axis=1)\n", 276 | "y = data['sales'].values.reshape(-1, 1)\n", 277 | "\n", 278 | "reg = LinearRegression()\n", 279 | "reg.fit(Xs, y)\n", 280 | "\n", 281 | "print(f\"The linear model is: \\n Y = {reg.intercept_[0]} + {reg.coef_[0][0]}*TV + {reg.coef_[0][1]}*radio + {reg.coef_[0][2]}*newspaper\")" 282 | ] 283 | }, 284 | { 285 | "cell_type": "code", 286 | "execution_count": 22, 287 | "metadata": {}, 288 | "outputs": [ 289 | { 290 | "name": "stdout", 291 | "output_type": "stream", 292 | "text": [ 293 | " OLS Regression Results \n", 294 | "==============================================================================\n", 295 | "Dep. Variable: y R-squared: 0.897\n", 296 | "Model: OLS Adj. R-squared: 0.896\n", 297 | "Method: Least Squares F-statistic: 570.3\n", 298 | "Date: Sat, 09 May 2020 Prob (F-statistic): 1.58e-96\n", 299 | "Time: 15:24:10 Log-Likelihood: -386.18\n", 300 | "No. Observations: 200 AIC: 780.4\n", 301 | "Df Residuals: 196 BIC: 793.6\n", 302 | "Df Model: 3 \n", 303 | "Covariance Type: nonrobust \n", 304 | "==============================================================================\n", 305 | " coef std err t P>|t| [0.025 0.975]\n", 306 | "------------------------------------------------------------------------------\n", 307 | "const 2.9389 0.312 9.422 0.000 2.324 3.554\n", 308 | "x1 0.0458 0.001 32.809 0.000 0.043 0.049\n", 309 | "x2 0.1885 0.009 21.893 0.000 0.172 0.206\n", 310 | "x3 -0.0010 0.006 -0.177 0.860 -0.013 0.011\n", 311 | "==============================================================================\n", 312 | "Omnibus: 60.414 Durbin-Watson: 2.084\n", 313 | "Prob(Omnibus): 0.000 Jarque-Bera (JB): 151.241\n", 314 | "Skew: -1.327 Prob(JB): 1.44e-33\n", 315 | "Kurtosis: 6.332 Cond. No. 454.\n", 316 | "==============================================================================\n", 317 | "\n", 318 | "Warnings:\n", 319 | "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" 320 | ] 321 | } 322 | ], 323 | "source": [ 324 | "X = np.column_stack((data['TV'], data['radio'], data['newspaper']))\n", 325 | "y = data['sales'].values.reshape(-1,1)\n", 326 | "\n", 327 | "exog = sm.add_constant(X)\n", 328 | "est = sm.OLS(y, exog).fit()\n", 329 | "\n", 330 | "print(est.summary())" 331 | ] 332 | }, 333 | { 334 | "cell_type": "code", 335 | "execution_count": null, 336 | "metadata": {}, 337 | "outputs": [], 338 | "source": [] 339 | } 340 | ], 341 | "metadata": { 342 | "kernelspec": { 343 | "display_name": "Python 3", 344 | "language": "python", 345 | "name": "python3" 346 | }, 347 | "language_info": { 348 | "codemirror_mode": { 349 | "name": "ipython", 350 | "version": 3 351 | }, 352 | "file_extension": ".py", 353 | "mimetype": "text/x-python", 354 | "name": "python", 355 | "nbconvert_exporter": "python", 356 | "pygments_lexer": "ipython3", 357 | "version": "3.7.4" 358 | } 359 | }, 360 | "nbformat": 4, 361 | "nbformat_minor": 2 362 | } 363 | -------------------------------------------------------------------------------- /causal_ml_blog.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "ad753907-4d7a-479b-88d7-1455496c213f", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stderr", 11 | "output_type": "stream", 12 | "text": [ 13 | "D:\\Anaconda\\lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", 14 | " from .autonotebook import tqdm as notebook_tqdm\n" 15 | ] 16 | } 17 | ], 18 | "source": [ 19 | "import numpy as np\n", 20 | "import pandas as pd\n", 21 | "import seaborn as sns\n", 22 | "import matplotlib.pyplot as plt\n", 23 | "\n", 24 | "import dowhy\n", 25 | "from dowhy import CausalModel\n", 26 | "import dowhy.datasets\n", 27 | "\n", 28 | "import warnings\n", 29 | "warnings.filterwarnings('ignore')" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "id": "9fecf860-0a4a-493e-87ee-9685b710e420", 35 | "metadata": {}, 36 | "source": [ 37 | "## Set the value of treatment effect" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 2, 43 | "id": "13d6407e-d00a-49d6-b51a-11569f60c840", 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "BETA = 8" 48 | ] 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "id": "abeb7c5e-c864-4f4f-8c33-73a8d64ebe3f", 53 | "metadata": {}, 54 | "source": [ 55 | "## Generate synthetic data" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 11, 61 | "id": "e7b8b08a-f32f-4430-8e0d-1f7d73fb2855", 62 | "metadata": {}, 63 | "outputs": [ 64 | { 65 | "data": { 66 | "text/html": [ 67 | "
\n", 68 | "\n", 81 | "\n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | "
X0Z0Z1W0W1v0y
0-0.9183150.00.1027470.2592521.139336True5.644823
1-0.6624311.00.218614-0.5964610.807450True5.005966
20.4143021.00.635194-0.389247-0.570277True8.587625
3-0.5758690.00.4919161.1199051.771579True8.450914
40.3863571.00.1433460.195709-0.034058True9.623193
\n", 147 | "
" 148 | ], 149 | "text/plain": [ 150 | " X0 Z0 Z1 W0 W1 v0 y\n", 151 | "0 -0.918315 0.0 0.102747 0.259252 1.139336 True 5.644823\n", 152 | "1 -0.662431 1.0 0.218614 -0.596461 0.807450 True 5.005966\n", 153 | "2 0.414302 1.0 0.635194 -0.389247 -0.570277 True 8.587625\n", 154 | "3 -0.575869 0.0 0.491916 1.119905 1.771579 True 8.450914\n", 155 | "4 0.386357 1.0 0.143346 0.195709 -0.034058 True 9.623193" 156 | ] 157 | }, 158 | "execution_count": 11, 159 | "metadata": {}, 160 | "output_type": "execute_result" 161 | } 162 | ], 163 | "source": [ 164 | "data = dowhy.datasets.linear_dataset(BETA,\n", 165 | " num_common_causes=2, # confounders\n", 166 | " num_samples=5000,\n", 167 | " num_instruments=2, # instrument variables\n", 168 | " num_effect_modifiers=1, # features\n", 169 | " treatment_is_binary=True,\n", 170 | " stddev_treatment_noise=5,\n", 171 | " num_treatments=1)\n", 172 | "\n", 173 | "df = data['df']\n", 174 | "\n", 175 | "df.head()" 176 | ] 177 | }, 178 | { 179 | "cell_type": "code", 180 | "execution_count": 12, 181 | "id": "01dc03da-05e2-4806-a12b-a4570094a7bb", 182 | "metadata": {}, 183 | "outputs": [ 184 | { 185 | "data": { 186 | "image/png": "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cIGWLl2qnJyckHFAZxQnAIBtdNxK5YorrpDDEfpXoMPh0OWXXx4yDuiMxeEAANtITEyUJL355pvKy8vTAw88ENyO4He/+522bdsWMg7ojOIEALCNQYMGSZK2b9+un/70p8Hj1dXVIa87xgGdcakOAGAbHo9H/fqdeM6gX79+3KsO3WLGCQBgG0eOHNE333wj6eh968aOHatzzz1XVVVV2rJli9ra2vTNN9/oyJEjOvPMMy1Oi3DEjBMAwDaWLVsm6WhpGjhwoDZv3qzS0lJt3rxZgwYNCu7d1DEO6IwZJwCAbVRVVUmS8vPzNX36dPl8PtXX1yspKUkej0erV6/WunXrguOAzihOAADb6LiJ7969exUdHa3s7OyQ83v37g0ZB3RGcQIAGGtqalJNTY3VMb613Nxcvfjii9q6dat8Pp/i4uKC55qamvTmm28Gx3300UdWxfzO0tPTQ743nD7cqw4AYOyjjz7SHXfcYXUMnMSqVauUlZVldYyIcSr9gBknAICx9PR0rVq1yuoY38nzzz+v1157rdvzV199tf7t3/6tFxOdfunp6VZH6LMoTgAAY3FxcRE/k/H73/9eSUlJevbZZ3XsRReHw6EpU6bozjvvtDAdwh2X6gAAttTS0qLHH39c69ev15QpUzRz5kwWhdvUqfQD9nECANhSbGysxo8fL0kaP348pQlGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGKE4AAACGwqY4lZeX69prr1VqaqqioqL00ksvhZy/7bbbFBUVFfKYOHGiNWEBAIAthU1x+uqrr3ThhReqpKSk2zETJ07UgQMHgo///u//7sWEAADA7vpZHaDDpEmTNGnSpBOOcTqdcrvdvZQIAAAgVNjMOJnYsmWLhgwZonPPPVcFBQU6ePDgCcc3NzersbEx5AEAAPBtRUxxmjhxop566ilt3rxZDzzwgLZu3apJkyapra2t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", 187 | "text/plain": [ 188 | "
" 189 | ] 190 | }, 191 | "metadata": {}, 192 | "output_type": "display_data" 193 | } 194 | ], 195 | "source": [ 196 | "plt.figure(figsize=(6,5))\n", 197 | "\n", 198 | "sns.boxplot(y='y', x='v0', data=df)\n", 199 | "\n", 200 | "plt.tight_layout()" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "id": "13a21c68-cc4d-433a-833d-1bfcabde760c", 206 | "metadata": {}, 207 | "source": [ 208 | "## Visualize causal pathway" 209 | ] 210 | }, 211 | { 212 | "cell_type": "code", 213 | "execution_count": 13, 214 | "id": "eb31fdee-a6f5-4977-9e22-f911f23b5e56", 215 | "metadata": {}, 216 | "outputs": [ 217 | { 218 | "data": { 219 | "image/png": "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", 220 | "text/plain": [ 221 | "
" 222 | ] 223 | }, 224 | "metadata": {}, 225 | "output_type": "display_data" 226 | } 227 | ], 228 | "source": [ 229 | "model = CausalModel(data=data['df'],\n", 230 | " treatment=data['treatment_name'],\n", 231 | " outcome=data['outcome_name'],\n", 232 | " graph=data['gml_graph'])\n", 233 | "\n", 234 | "model.view_model()" 235 | ] 236 | }, 237 | { 238 | "cell_type": "code", 239 | "execution_count": 14, 240 | "id": "951722fe-07e2-4ec3-8a2a-74a468fbd95e", 241 | "metadata": {}, 242 | "outputs": [ 243 | { 244 | "name": "stdout", 245 | "output_type": "stream", 246 | "text": [ 247 | "Estimand type: EstimandType.NONPARAMETRIC_ATE\n", 248 | "\n", 249 | "### Estimand : 1\n", 250 | "Estimand name: backdoor\n", 251 | "Estimand expression:\n", 252 | " d \n", 253 | "─────(E[y|W0,W1])\n", 254 | "d[v₀] \n", 255 | "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W0,W1,U) = P(y|v0,W0,W1)\n", 256 | "\n", 257 | "### Estimand : 2\n", 258 | "Estimand name: iv\n", 259 | "Estimand expression:\n", 260 | " ⎡ -1⎤\n", 261 | " ⎢ d ⎛ d ⎞ ⎥\n", 262 | "E⎢─────────(y)⋅⎜─────────([v₀])⎟ ⎥\n", 263 | " ⎣d[Z₀ Z₁] ⎝d[Z₀ Z₁] ⎠ ⎦\n", 264 | "Estimand assumption 1, As-if-random: If U→→y then ¬(U →→{Z0,Z1})\n", 265 | "Estimand assumption 2, Exclusion: If we remove {Z0,Z1}→{v0}, then ¬({Z0,Z1}→y)\n", 266 | "\n", 267 | "### Estimand : 3\n", 268 | "Estimand name: frontdoor\n", 269 | "No such variable(s) found!\n", 270 | "\n" 271 | ] 272 | } 273 | ], 274 | "source": [ 275 | "identified_estimand= model.identify_effect(proceed_when_unidentifiable=True)\n", 276 | "\n", 277 | "print(identified_estimand)" 278 | ] 279 | }, 280 | { 281 | "cell_type": "code", 282 | "execution_count": 15, 283 | "id": "cb8ffe3c-0787-42a9-9c61-65d0c6d95831", 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "name": "stdout", 288 | "output_type": "stream", 289 | "text": [ 290 | "8.218755524405902\n" 291 | ] 292 | } 293 | ], 294 | "source": [ 295 | "causal_estimate = model.estimate_effect(\n", 296 | " identified_estimand,\n", 297 | " method_name=\"iv.instrumental_variable\")\n", 298 | "\n", 299 | "print(causal_estimate.value)" 300 | ] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": 16, 305 | "id": "fd0f1c68-b8c8-4553-87cc-7544c61a00ab", 306 | "metadata": {}, 307 | "outputs": [ 308 | { 309 | "name": "stdout", 310 | "output_type": "stream", 311 | "text": [ 312 | "7.4114527282113825\n" 313 | ] 314 | } 315 | ], 316 | "source": [ 317 | "from sklearn.preprocessing import PolynomialFeatures\n", 318 | "from sklearn.linear_model import LassoCV\n", 319 | "from sklearn.ensemble import GradientBoostingRegressor\n", 320 | "\n", 321 | "dml_estimate = model.estimate_effect(\n", 322 | " identified_estimand, \n", 323 | " method_name=\"iv.econml.dml.DML\",\n", 324 | " control_value = 0,\n", 325 | " treatment_value = 1,\n", 326 | " confidence_intervals=False,\n", 327 | " method_params={\"init_params\":{'model_y':GradientBoostingRegressor(),\n", 328 | " 'model_t': GradientBoostingRegressor(),\n", 329 | " \"model_final\":LassoCV(fit_intercept=False),\n", 330 | " 'featurizer':PolynomialFeatures(degree=1, include_bias=False)},\n", 331 | " \"fit_params\":{}})\n", 332 | "print(dml_estimate.value)" 333 | ] 334 | }, 335 | { 336 | "cell_type": "markdown", 337 | "id": "88b683dd-ff48-42ee-a7ca-fe4e3c1f65d4", 338 | "metadata": {}, 339 | "source": [ 340 | "## Refute estimate" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": 17, 346 | "id": "4f098e86-2316-4088-8e52-12ce7d0fa08e", 347 | "metadata": {}, 348 | "outputs": [ 349 | { 350 | "name": "stdout", 351 | "output_type": "stream", 352 | "text": [ 353 | "Refute: Add a random common cause\n", 354 | "Estimated effect:8.218755524405902\n", 355 | "New effect:8.218755524405902\n", 356 | "p value:1.0\n", 357 | "\n" 358 | ] 359 | } 360 | ], 361 | "source": [ 362 | "res_random=model.refute_estimate(identified_estimand, causal_estimate, method_name=\"random_common_cause\")\n", 363 | "\n", 364 | "print(res_random)" 365 | ] 366 | }, 367 | { 368 | "cell_type": "code", 369 | "execution_count": null, 370 | "id": "3e798380-4be1-442c-abb9-c47feff06d09", 371 | "metadata": {}, 372 | "outputs": [], 373 | "source": [] 374 | } 375 | ], 376 | "metadata": { 377 | "kernelspec": { 378 | "display_name": "Python 3", 379 | "language": "python", 380 | "name": "python3" 381 | }, 382 | "language_info": { 383 | "codemirror_mode": { 384 | "name": "ipython", 385 | "version": 3 386 | }, 387 | "file_extension": ".py", 388 | "mimetype": "text/x-python", 389 | "name": "python", 390 | "nbconvert_exporter": "python", 391 | "pygments_lexer": "ipython3", 392 | "version": "3.10.13" 393 | } 394 | }, 395 | "nbformat": 4, 396 | "nbformat_minor": 5 397 | } 398 | --------------------------------------------------------------------------------