├── Session 2 ├── House_data_LR.csv ├── House_data_MLR.csv ├── Linear_Regression.ipynb ├── Readme └── Session2.pdf ├── Session 3 ├── CreditRisk.csv ├── Logistic Regression.ipynb ├── Readme ├── SMOTE and Missing Values.ipynb └── Session3.pdf ├── Session1 ├── Content ├── Session1.ipynb ├── Session1.pdf └── ratings-small.csv ├── Session4 ├── Cust_Spend_Data.csv ├── Depression.csv ├── HierarchialClustering.ipynb ├── KMeansClustering.ipynb ├── Readme └── Session4.pdf └── Session5 ├── Dimension Reduction.ipynb ├── PCA.ipynb ├── Readme └── Session5.pdf /Session 2/Readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Session 2/Session2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vverdhan/MachineLearningSessionsJan2021/586f8e2e6ba576eacb7bc4489178a75c54eec7dd/Session 2/Session2.pdf -------------------------------------------------------------------------------- /Session 3/CreditRisk.csv: -------------------------------------------------------------------------------- 1 | Loan_ID,Gender,Married,Dependents,Education,Self_Employed,ApplicantIncome,CoapplicantIncome,LoanAmount,Loan_Amount_Term,Credit_History,Property_Area,Loan_Status 2 | LP001002,Male,No,0,Graduate,No,5849,0,0,360,1,Urban,1 3 | LP001003,Male,Yes,1,Graduate,No,4583,1508,128,360,1,Rural,0 4 | LP001005,Male,Yes,0,Graduate,Yes,3000,0,66,360,1,Urban,1 5 | LP001006,Male,Yes,0,Not Graduate,No,2583,2358,120,360,1,Urban,1 6 | LP001008,Male,No,0,Graduate,No,6000,0,141,360,1,Urban,1 7 | LP001011,Male,Yes,2,Graduate,Yes,5417,4196,267,360,1,Urban,1 8 | LP001013,Male,Yes,0,Not Graduate,No,2333,1516,95,360,1,Urban,1 9 | LP001014,Male,Yes,3+,Graduate,No,3036,2504,158,360,0,Semiurban,0 10 | LP001018,Male,Yes,2,Graduate,No,4006,1526,168,360,1,Urban,1 11 | LP001020,Male,Yes,1,Graduate,No,12841,10968,349,360,1,Semiurban,0 12 | LP001024,Male,Yes,2,Graduate,No,3200,700,70,360,1,Urban,1 13 | LP001027,Male,Yes,2,Graduate,,2500,1840,109,360,1,Urban,1 14 | LP001028,Male,Yes,2,Graduate,No,3073,8106,200,360,1,Urban,1 15 | LP001029,Male,No,0,Graduate,No,1853,2840,114,360,1,Rural,0 16 | LP001030,Male,Yes,2,Graduate,No,1299,1086,17,120,1,Urban,1 17 | LP001032,Male,No,0,Graduate,No,4950,0,125,360,1,Urban,1 18 | LP001034,Male,No,1,Not Graduate,No,3596,0,100,240,,Urban,1 19 | LP001036,Female,No,0,Graduate,No,3510,0,76,360,0,Urban,0 20 | LP001038,Male,Yes,0,Not Graduate,No,4887,0,133,360,1,Rural,0 21 | LP001041,Male,Yes,0,Graduate,,2600,3500,115,,1,Urban,1 22 | LP001043,Male,Yes,0,Not Graduate,No,7660,0,104,360,0,Urban,0 23 | LP001046,Male,Yes,1,Graduate,No,5955,5625,315,360,1,Urban,1 24 | LP001047,Male,Yes,0,Not Graduate,No,2600,1911,116,360,0,Semiurban,0 25 | LP001050,,Yes,2,Not Graduate,No,3365,1917,112,360,0,Rural,0 26 | LP001052,Male,Yes,1,Graduate,,3717,2925,151,360,,Semiurban,0 27 | LP001066,Male,Yes,0,Graduate,Yes,9560,0,191,360,1,Semiurban,1 28 | LP001068,Male,Yes,0,Graduate,No,2799,2253,122,360,1,Semiurban,1 29 | LP001073,Male,Yes,2,Not Graduate,No,4226,1040,110,360,1,Urban,1 30 | LP001086,Male,No,0,Not Graduate,No,1442,0,35,360,1,Urban,0 31 | LP001087,Female,No,2,Graduate,,3750,2083,120,360,1,Semiurban,1 32 | LP001091,Male,Yes,1,Graduate,,4166,3369,201,360,,Urban,0 33 | LP001095,Male,No,0,Graduate,No,3167,0,74,360,1,Urban,0 34 | LP001097,Male,No,1,Graduate,Yes,4692,0,106,360,1,Rural,0 35 | LP001098,Male,Yes,0,Graduate,No,3500,1667,114,360,1,Semiurban,1 36 | LP001100,Male,No,3+,Graduate,No,12500,3000,320,360,1,Rural,0 37 | LP001106,Male,Yes,0,Graduate,No,2275,2067,0,360,1,Urban,1 38 | LP001109,Male,Yes,0,Graduate,No,1828,1330,100,,0,Urban,0 39 | LP001112,Female,Yes,0,Graduate,No,3667,1459,144,360,1,Semiurban,1 40 | LP001114,Male,No,0,Graduate,No,4166,7210,184,360,1,Urban,1 41 | LP001116,Male,No,0,Not Graduate,No,3748,1668,110,360,1,Semiurban,1 42 | LP001119,Male,No,0,Graduate,No,3600,0,80,360,1,Urban,0 43 | LP001120,Male,No,0,Graduate,No,1800,1213,47,360,1,Urban,1 44 | LP001123,Male,Yes,0,Graduate,No,2400,0,75,360,,Urban,1 45 | LP001131,Male,Yes,0,Graduate,No,3941,2336,134,360,1,Semiurban,1 46 | LP001136,Male,Yes,0,Not Graduate,Yes,4695,0,96,,1,Urban,1 47 | LP001137,Female,No,0,Graduate,No,3410,0,88,,1,Urban,1 48 | LP001138,Male,Yes,1,Graduate,No,5649,0,44,360,1,Urban,1 49 | LP001144,Male,Yes,0,Graduate,No,5821,0,144,360,1,Urban,1 50 | LP001146,Female,Yes,0,Graduate,No,2645,3440,120,360,0,Urban,0 51 | LP001151,Female,No,0,Graduate,No,4000,2275,144,360,1,Semiurban,1 52 | LP001155,Female,Yes,0,Not Graduate,No,1928,1644,100,360,1,Semiurban,1 53 | LP001157,Female,No,0,Graduate,No,3086,0,120,360,1,Semiurban,1 54 | LP001164,Female,No,0,Graduate,No,4230,0,112,360,1,Semiurban,0 55 | LP001179,Male,Yes,2,Graduate,No,4616,0,134,360,1,Urban,0 56 | LP001186,Female,Yes,1,Graduate,Yes,11500,0,286,360,0,Urban,0 57 | LP001194,Male,Yes,2,Graduate,No,2708,1167,97,360,1,Semiurban,1 58 | LP001195,Male,Yes,0,Graduate,No,2132,1591,96,360,1,Semiurban,1 59 | LP001197,Male,Yes,0,Graduate,No,3366,2200,135,360,1,Rural,0 60 | LP001198,Male,Yes,1,Graduate,No,8080,2250,180,360,1,Urban,1 61 | LP001199,Male,Yes,2,Not Graduate,No,3357,2859,144,360,1,Urban,1 62 | LP001205,Male,Yes,0,Graduate,No,2500,3796,120,360,1,Urban,1 63 | LP001206,Male,Yes,3+,Graduate,No,3029,0,99,360,1,Urban,1 64 | LP001207,Male,Yes,0,Not Graduate,Yes,2609,3449,165,180,0,Rural,0 65 | LP001213,Male,Yes,1,Graduate,No,4945,0,0,360,0,Rural,0 66 | LP001222,Female,No,0,Graduate,No,4166,0,116,360,0,Semiurban,0 67 | LP001225,Male,Yes,0,Graduate,No,5726,4595,258,360,1,Semiurban,0 68 | LP001228,Male,No,0,Not Graduate,No,3200,2254,126,180,0,Urban,0 69 | LP001233,Male,Yes,1,Graduate,No,10750,0,312,360,1,Urban,1 70 | LP001238,Male,Yes,3+,Not Graduate,Yes,7100,0,125,60,1,Urban,1 71 | LP001241,Female,No,0,Graduate,No,4300,0,136,360,0,Semiurban,0 72 | LP001243,Male,Yes,0,Graduate,No,3208,3066,172,360,1,Urban,1 73 | LP001245,Male,Yes,2,Not Graduate,Yes,1875,1875,97,360,1,Semiurban,1 74 | LP001248,Male,No,0,Graduate,No,3500,0,81,300,1,Semiurban,1 75 | LP001250,Male,Yes,3+,Not Graduate,No,4755,0,95,,0,Semiurban,0 76 | LP001253,Male,Yes,3+,Graduate,Yes,5266,1774,187,360,1,Semiurban,1 77 | LP001255,Male,No,0,Graduate,No,3750,0,113,480,1,Urban,0 78 | LP001256,Male,No,0,Graduate,No,3750,4750,176,360,1,Urban,0 79 | LP001259,Male,Yes,1,Graduate,Yes,1000,3022,110,360,1,Urban,0 80 | LP001263,Male,Yes,3+,Graduate,No,3167,4000,180,300,0,Semiurban,0 81 | LP001264,Male,Yes,3+,Not Graduate,Yes,3333,2166,130,360,,Semiurban,1 82 | LP001265,Female,No,0,Graduate,No,3846,0,111,360,1,Semiurban,1 83 | LP001266,Male,Yes,1,Graduate,Yes,2395,0,0,360,1,Semiurban,1 84 | LP001267,Female,Yes,2,Graduate,No,1378,1881,167,360,1,Urban,0 85 | LP001273,Male,Yes,0,Graduate,No,6000,2250,265,360,,Semiurban,0 86 | LP001275,Male,Yes,1,Graduate,No,3988,0,50,240,1,Urban,1 87 | LP001279,Male,No,0,Graduate,No,2366,2531,136,360,1,Semiurban,1 88 | LP001280,Male,Yes,2,Not Graduate,No,3333,2000,99,360,,Semiurban,1 89 | LP001282,Male,Yes,0,Graduate,No,2500,2118,104,360,1,Semiurban,1 90 | LP001289,Male,No,0,Graduate,No,8566,0,210,360,1,Urban,1 91 | LP001310,Male,Yes,0,Graduate,No,5695,4167,175,360,1,Semiurban,1 92 | LP001316,Male,Yes,0,Graduate,No,2958,2900,131,360,1,Semiurban,1 93 | LP001318,Male,Yes,2,Graduate,No,6250,5654,188,180,1,Semiurban,1 94 | LP001319,Male,Yes,2,Not Graduate,No,3273,1820,81,360,1,Urban,1 95 | LP001322,Male,No,0,Graduate,No,4133,0,122,360,1,Semiurban,1 96 | LP001325,Male,No,0,Not Graduate,No,3620,0,25,120,1,Semiurban,1 97 | LP001326,Male,No,0,Graduate,,6782,0,0,360,,Urban,0 98 | LP001327,Female,Yes,0,Graduate,No,2484,2302,137,360,1,Semiurban,1 99 | LP001333,Male,Yes,0,Graduate,No,1977,997,50,360,1,Semiurban,1 100 | LP001334,Male,Yes,0,Not Graduate,No,4188,0,115,180,1,Semiurban,1 101 | LP001343,Male,Yes,0,Graduate,No,1759,3541,131,360,1,Semiurban,1 102 | LP001345,Male,Yes,2,Not Graduate,No,4288,3263,133,180,1,Urban,1 103 | LP001349,Male,No,0,Graduate,No,4843,3806,151,360,1,Semiurban,1 104 | LP001350,Male,Yes,,Graduate,No,13650,0,0,360,1,Urban,1 105 | LP001356,Male,Yes,0,Graduate,No,4652,3583,0,360,1,Semiurban,1 106 | LP001357,Male,,,Graduate,No,3816,754,160,360,1,Urban,1 107 | LP001367,Male,Yes,1,Graduate,No,3052,1030,100,360,1,Urban,1 108 | LP001369,Male,Yes,2,Graduate,No,11417,1126,225,360,1,Urban,1 109 | LP001370,Male,No,0,Not Graduate,,7333,0,120,360,1,Rural,0 110 | LP001379,Male,Yes,2,Graduate,No,3800,3600,216,360,0,Urban,0 111 | LP001384,Male,Yes,3+,Not Graduate,No,2071,754,94,480,1,Semiurban,1 112 | LP001385,Male,No,0,Graduate,No,5316,0,136,360,1,Urban,1 113 | LP001387,Female,Yes,0,Graduate,,2929,2333,139,360,1,Semiurban,1 114 | LP001391,Male,Yes,0,Not Graduate,No,3572,4114,152,,0,Rural,0 115 | LP001392,Female,No,1,Graduate,Yes,7451,0,0,360,1,Semiurban,1 116 | LP001398,Male,No,0,Graduate,,5050,0,118,360,1,Semiurban,1 117 | LP001401,Male,Yes,1,Graduate,No,14583,0,185,180,1,Rural,1 118 | LP001404,Female,Yes,0,Graduate,No,3167,2283,154,360,1,Semiurban,1 119 | LP001405,Male,Yes,1,Graduate,No,2214,1398,85,360,,Urban,1 120 | LP001421,Male,Yes,0,Graduate,No,5568,2142,175,360,1,Rural,0 121 | LP001422,Female,No,0,Graduate,No,10408,0,259,360,1,Urban,1 122 | LP001426,Male,Yes,,Graduate,No,5667,2667,180,360,1,Rural,1 123 | LP001430,Female,No,0,Graduate,No,4166,0,44,360,1,Semiurban,1 124 | LP001431,Female,No,0,Graduate,No,2137,8980,137,360,0,Semiurban,1 125 | LP001432,Male,Yes,2,Graduate,No,2957,0,81,360,1,Semiurban,1 126 | LP001439,Male,Yes,0,Not Graduate,No,4300,2014,194,360,1,Rural,1 127 | LP001443,Female,No,0,Graduate,No,3692,0,93,360,,Rural,1 128 | LP001448,,Yes,3+,Graduate,No,23803,0,370,360,1,Rural,1 129 | LP001449,Male,No,0,Graduate,No,3865,1640,0,360,1,Rural,1 130 | LP001451,Male,Yes,1,Graduate,Yes,10513,3850,160,180,0,Urban,0 131 | LP001465,Male,Yes,0,Graduate,No,6080,2569,182,360,,Rural,0 132 | LP001469,Male,No,0,Graduate,Yes,20166,0,650,480,,Urban,1 133 | LP001473,Male,No,0,Graduate,No,2014,1929,74,360,1,Urban,1 134 | LP001478,Male,No,0,Graduate,No,2718,0,70,360,1,Semiurban,1 135 | LP001482,Male,Yes,0,Graduate,Yes,3459,0,25,120,1,Semiurban,1 136 | LP001487,Male,No,0,Graduate,No,4895,0,102,360,1,Semiurban,1 137 | LP001488,Male,Yes,3+,Graduate,No,4000,7750,290,360,1,Semiurban,0 138 | LP001489,Female,Yes,0,Graduate,No,4583,0,84,360,1,Rural,0 139 | LP001491,Male,Yes,2,Graduate,Yes,3316,3500,88,360,1,Urban,1 140 | LP001492,Male,No,0,Graduate,No,14999,0,242,360,0,Semiurban,0 141 | LP001493,Male,Yes,2,Not Graduate,No,4200,1430,129,360,1,Rural,0 142 | LP001497,Male,Yes,2,Graduate,No,5042,2083,185,360,1,Rural,0 143 | LP001498,Male,No,0,Graduate,No,5417,0,168,360,1,Urban,1 144 | LP001504,Male,No,0,Graduate,Yes,6950,0,175,180,1,Semiurban,1 145 | LP001507,Male,Yes,0,Graduate,No,2698,2034,122,360,1,Semiurban,1 146 | LP001508,Male,Yes,2,Graduate,No,11757,0,187,180,1,Urban,1 147 | LP001514,Female,Yes,0,Graduate,No,2330,4486,100,360,1,Semiurban,1 148 | LP001516,Female,Yes,2,Graduate,No,14866,0,70,360,1,Urban,1 149 | LP001518,Male,Yes,1,Graduate,No,1538,1425,30,360,1,Urban,1 150 | LP001519,Female,No,0,Graduate,No,10000,1666,225,360,1,Rural,0 151 | LP001520,Male,Yes,0,Graduate,No,4860,830,125,360,1,Semiurban,1 152 | LP001528,Male,No,0,Graduate,No,6277,0,118,360,0,Rural,0 153 | LP001529,Male,Yes,0,Graduate,Yes,2577,3750,152,360,1,Rural,1 154 | LP001531,Male,No,0,Graduate,No,9166,0,244,360,1,Urban,0 155 | LP001532,Male,Yes,2,Not Graduate,No,2281,0,113,360,1,Rural,0 156 | LP001535,Male,No,0,Graduate,No,3254,0,50,360,1,Urban,1 157 | LP001536,Male,Yes,3+,Graduate,No,39999,0,600,180,0,Semiurban,1 158 | LP001541,Male,Yes,1,Graduate,No,6000,0,160,360,,Rural,1 159 | LP001543,Male,Yes,1,Graduate,No,9538,0,187,360,1,Urban,1 160 | LP001546,Male,No,0,Graduate,,2980,2083,120,360,1,Rural,1 161 | LP001552,Male,Yes,0,Graduate,No,4583,5625,255,360,1,Semiurban,1 162 | LP001560,Male,Yes,0,Not Graduate,No,1863,1041,98,360,1,Semiurban,1 163 | LP001562,Male,Yes,0,Graduate,No,7933,0,275,360,1,Urban,0 164 | LP001565,Male,Yes,1,Graduate,No,3089,1280,121,360,0,Semiurban,0 165 | LP001570,Male,Yes,2,Graduate,No,4167,1447,158,360,1,Rural,1 166 | LP001572,Male,Yes,0,Graduate,No,9323,0,75,180,1,Urban,1 167 | LP001574,Male,Yes,0,Graduate,No,3707,3166,182,,1,Rural,1 168 | LP001577,Female,Yes,0,Graduate,No,4583,0,112,360,1,Rural,0 169 | LP001578,Male,Yes,0,Graduate,No,2439,3333,129,360,1,Rural,1 170 | LP001579,Male,No,0,Graduate,No,2237,0,63,480,0,Semiurban,0 171 | LP001580,Male,Yes,2,Graduate,No,8000,0,200,360,1,Semiurban,1 172 | LP001581,Male,Yes,0,Not Graduate,,1820,1769,95,360,1,Rural,1 173 | LP001585,,Yes,3+,Graduate,No,51763,0,700,300,1,Urban,1 174 | LP001586,Male,Yes,3+,Not Graduate,No,3522,0,81,180,1,Rural,0 175 | LP001594,Male,Yes,0,Graduate,No,5708,5625,187,360,1,Semiurban,1 176 | LP001603,Male,Yes,0,Not Graduate,Yes,4344,736,87,360,1,Semiurban,0 177 | LP001606,Male,Yes,0,Graduate,No,3497,1964,116,360,1,Rural,1 178 | LP001608,Male,Yes,2,Graduate,No,2045,1619,101,360,1,Rural,1 179 | LP001610,Male,Yes,3+,Graduate,No,5516,11300,495,360,0,Semiurban,0 180 | LP001616,Male,Yes,1,Graduate,No,3750,0,116,360,1,Semiurban,1 181 | LP001630,Male,No,0,Not Graduate,No,2333,1451,102,480,0,Urban,0 182 | LP001633,Male,Yes,1,Graduate,No,6400,7250,180,360,0,Urban,0 183 | LP001634,Male,No,0,Graduate,No,1916,5063,67,360,,Rural,0 184 | LP001636,Male,Yes,0,Graduate,No,4600,0,73,180,1,Semiurban,1 185 | LP001637,Male,Yes,1,Graduate,No,33846,0,260,360,1,Semiurban,0 186 | LP001639,Female,Yes,0,Graduate,No,3625,0,108,360,1,Semiurban,1 187 | LP001640,Male,Yes,0,Graduate,Yes,39147,4750,120,360,1,Semiurban,1 188 | LP001641,Male,Yes,1,Graduate,Yes,2178,0,66,300,0,Rural,0 189 | LP001643,Male,Yes,0,Graduate,No,2383,2138,58,360,,Rural,1 190 | LP001644,,Yes,0,Graduate,Yes,674,5296,168,360,1,Rural,1 191 | LP001647,Male,Yes,0,Graduate,No,9328,0,188,180,1,Rural,1 192 | LP001653,Male,No,0,Not Graduate,No,4885,0,48,360,1,Rural,1 193 | LP001656,Male,No,0,Graduate,No,12000,0,164,360,1,Semiurban,0 194 | LP001657,Male,Yes,0,Not Graduate,No,6033,0,160,360,1,Urban,0 195 | LP001658,Male,No,0,Graduate,No,3858,0,76,360,1,Semiurban,1 196 | LP001664,Male,No,0,Graduate,No,4191,0,120,360,1,Rural,1 197 | LP001665,Male,Yes,1,Graduate,No,3125,2583,170,360,1,Semiurban,0 198 | LP001666,Male,No,0,Graduate,No,8333,3750,187,360,1,Rural,1 199 | LP001669,Female,No,0,Not Graduate,No,1907,2365,120,,1,Urban,1 200 | LP001671,Female,Yes,0,Graduate,No,3416,2816,113,360,,Semiurban,1 201 | LP001673,Male,No,0,Graduate,Yes,11000,0,83,360,1,Urban,0 202 | LP001674,Male,Yes,1,Not Graduate,No,2600,2500,90,360,1,Semiurban,1 203 | LP001677,Male,No,2,Graduate,No,4923,0,166,360,0,Semiurban,1 204 | LP001682,Male,Yes,3+,Not Graduate,No,3992,0,0,180,1,Urban,0 205 | LP001688,Male,Yes,1,Not Graduate,No,3500,1083,135,360,1,Urban,1 206 | LP001691,Male,Yes,2,Not Graduate,No,3917,0,124,360,1,Semiurban,1 207 | LP001692,Female,No,0,Not Graduate,No,4408,0,120,360,1,Semiurban,1 208 | LP001693,Female,No,0,Graduate,No,3244,0,80,360,1,Urban,1 209 | LP001698,Male,No,0,Not Graduate,No,3975,2531,55,360,1,Rural,1 210 | LP001699,Male,No,0,Graduate,No,2479,0,59,360,1,Urban,1 211 | LP001702,Male,No,0,Graduate,No,3418,0,127,360,1,Semiurban,0 212 | LP001708,Female,No,0,Graduate,No,10000,0,214,360,1,Semiurban,0 213 | LP001711,Male,Yes,3+,Graduate,No,3430,1250,128,360,0,Semiurban,0 214 | LP001713,Male,Yes,1,Graduate,Yes,7787,0,240,360,1,Urban,1 215 | LP001715,Male,Yes,3+,Not Graduate,Yes,5703,0,130,360,1,Rural,1 216 | LP001716,Male,Yes,0,Graduate,No,3173,3021,137,360,1,Urban,1 217 | LP001720,Male,Yes,3+,Not Graduate,No,3850,983,100,360,1,Semiurban,1 218 | LP001722,Male,Yes,0,Graduate,No,150,1800,135,360,1,Rural,0 219 | LP001726,Male,Yes,0,Graduate,No,3727,1775,131,360,1,Semiurban,1 220 | LP001732,Male,Yes,2,Graduate,,5000,0,72,360,0,Semiurban,0 221 | LP001734,Female,Yes,2,Graduate,No,4283,2383,127,360,,Semiurban,1 222 | LP001736,Male,Yes,0,Graduate,No,2221,0,60,360,0,Urban,0 223 | LP001743,Male,Yes,2,Graduate,No,4009,1717,116,360,1,Semiurban,1 224 | LP001744,Male,No,0,Graduate,No,2971,2791,144,360,1,Semiurban,1 225 | LP001749,Male,Yes,0,Graduate,No,7578,1010,175,,1,Semiurban,1 226 | LP001750,Male,Yes,0,Graduate,No,6250,0,128,360,1,Semiurban,1 227 | LP001751,Male,Yes,0,Graduate,No,3250,0,170,360,1,Rural,0 228 | LP001754,Male,Yes,,Not Graduate,Yes,4735,0,138,360,1,Urban,0 229 | LP001758,Male,Yes,2,Graduate,No,6250,1695,210,360,1,Semiurban,1 230 | LP001760,Male,,,Graduate,No,4758,0,158,480,1,Semiurban,1 231 | LP001761,Male,No,0,Graduate,Yes,6400,0,200,360,1,Rural,1 232 | LP001765,Male,Yes,1,Graduate,No,2491,2054,104,360,1,Semiurban,1 233 | LP001768,Male,Yes,0,Graduate,,3716,0,42,180,1,Rural,1 234 | LP001770,Male,No,0,Not Graduate,No,3189,2598,120,,1,Rural,1 235 | LP001776,Female,No,0,Graduate,No,8333,0,280,360,1,Semiurban,1 236 | LP001778,Male,Yes,1,Graduate,No,3155,1779,140,360,1,Semiurban,1 237 | LP001784,Male,Yes,1,Graduate,No,5500,1260,170,360,1,Rural,1 238 | LP001786,Male,Yes,0,Graduate,,5746,0,255,360,,Urban,0 239 | LP001788,Female,No,0,Graduate,Yes,3463,0,122,360,,Urban,1 240 | LP001790,Female,No,1,Graduate,No,3812,0,112,360,1,Rural,1 241 | LP001792,Male,Yes,1,Graduate,No,3315,0,96,360,1,Semiurban,1 242 | LP001798,Male,Yes,2,Graduate,No,5819,5000,120,360,1,Rural,1 243 | LP001800,Male,Yes,1,Not Graduate,No,2510,1983,140,180,1,Urban,0 244 | LP001806,Male,No,0,Graduate,No,2965,5701,155,60,1,Urban,1 245 | LP001807,Male,Yes,2,Graduate,Yes,6250,1300,108,360,1,Rural,1 246 | LP001811,Male,Yes,0,Not Graduate,No,3406,4417,123,360,1,Semiurban,1 247 | LP001813,Male,No,0,Graduate,Yes,6050,4333,120,180,1,Urban,0 248 | LP001814,Male,Yes,2,Graduate,No,9703,0,112,360,1,Urban,1 249 | LP001819,Male,Yes,1,Not Graduate,No,6608,0,137,180,1,Urban,1 250 | LP001824,Male,Yes,1,Graduate,No,2882,1843,123,480,1,Semiurban,1 251 | LP001825,Male,Yes,0,Graduate,No,1809,1868,90,360,1,Urban,1 252 | LP001835,Male,Yes,0,Not Graduate,No,1668,3890,201,360,0,Semiurban,0 253 | LP001836,Female,No,2,Graduate,No,3427,0,138,360,1,Urban,0 254 | LP001841,Male,No,0,Not Graduate,Yes,2583,2167,104,360,1,Rural,1 255 | LP001843,Male,Yes,1,Not Graduate,No,2661,7101,279,180,1,Semiurban,1 256 | LP001844,Male,No,0,Graduate,Yes,16250,0,192,360,0,Urban,0 257 | LP001846,Female,No,3+,Graduate,No,3083,0,255,360,1,Rural,1 258 | LP001849,Male,No,0,Not Graduate,No,6045,0,115,360,0,Rural,0 259 | LP001854,Male,Yes,3+,Graduate,No,5250,0,94,360,1,Urban,0 260 | LP001859,Male,Yes,0,Graduate,No,14683,2100,304,360,1,Rural,0 261 | LP001864,Male,Yes,3+,Not Graduate,No,4931,0,128,360,,Semiurban,0 262 | LP001865,Male,Yes,1,Graduate,No,6083,4250,330,360,,Urban,1 263 | LP001868,Male,No,0,Graduate,No,2060,2209,134,360,1,Semiurban,1 264 | LP001870,Female,No,1,Graduate,No,3481,0,155,36,1,Semiurban,0 265 | LP001871,Female,No,0,Graduate,No,7200,0,120,360,1,Rural,1 266 | LP001872,Male,No,0,Graduate,Yes,5166,0,128,360,1,Semiurban,1 267 | LP001875,Male,No,0,Graduate,No,4095,3447,151,360,1,Rural,1 268 | LP001877,Male,Yes,2,Graduate,No,4708,1387,150,360,1,Semiurban,1 269 | LP001882,Male,Yes,3+,Graduate,No,4333,1811,160,360,0,Urban,1 270 | LP001883,Female,No,0,Graduate,,3418,0,135,360,1,Rural,0 271 | LP001884,Female,No,1,Graduate,No,2876,1560,90,360,1,Urban,1 272 | LP001888,Female,No,0,Graduate,No,3237,0,30,360,1,Urban,1 273 | LP001891,Male,Yes,0,Graduate,No,11146,0,136,360,1,Urban,1 274 | LP001892,Male,No,0,Graduate,No,2833,1857,126,360,1,Rural,1 275 | LP001894,Male,Yes,0,Graduate,No,2620,2223,150,360,1,Semiurban,1 276 | LP001896,Male,Yes,2,Graduate,No,3900,0,90,360,1,Semiurban,1 277 | LP001900,Male,Yes,1,Graduate,No,2750,1842,115,360,1,Semiurban,1 278 | LP001903,Male,Yes,0,Graduate,No,3993,3274,207,360,1,Semiurban,1 279 | LP001904,Male,Yes,0,Graduate,No,3103,1300,80,360,1,Urban,1 280 | LP001907,Male,Yes,0,Graduate,No,14583,0,436,360,1,Semiurban,1 281 | LP001908,Female,Yes,0,Not Graduate,No,4100,0,124,360,,Rural,1 282 | LP001910,Male,No,1,Not Graduate,Yes,4053,2426,158,360,0,Urban,0 283 | LP001914,Male,Yes,0,Graduate,No,3927,800,112,360,1,Semiurban,1 284 | LP001915,Male,Yes,2,Graduate,No,2301,985.7999878,78,180,1,Urban,1 285 | LP001917,Female,No,0,Graduate,No,1811,1666,54,360,1,Urban,1 286 | LP001922,Male,Yes,0,Graduate,No,20667,0,0,360,1,Rural,0 287 | LP001924,Male,No,0,Graduate,No,3158,3053,89,360,1,Rural,1 288 | LP001925,Female,No,0,Graduate,Yes,2600,1717,99,300,1,Semiurban,0 289 | LP001926,Male,Yes,0,Graduate,No,3704,2000,120,360,1,Rural,1 290 | LP001931,Female,No,0,Graduate,No,4124,0,115,360,1,Semiurban,1 291 | LP001935,Male,No,0,Graduate,No,9508,0,187,360,1,Rural,1 292 | LP001936,Male,Yes,0,Graduate,No,3075,2416,139,360,1,Rural,1 293 | LP001938,Male,Yes,2,Graduate,No,4400,0,127,360,0,Semiurban,0 294 | LP001940,Male,Yes,2,Graduate,No,3153,1560,134,360,1,Urban,1 295 | LP001945,Female,No,,Graduate,No,5417,0,143,480,0,Urban,0 296 | LP001947,Male,Yes,0,Graduate,No,2383,3334,172,360,1,Semiurban,1 297 | LP001949,Male,Yes,3+,Graduate,,4416,1250,110,360,1,Urban,1 298 | LP001953,Male,Yes,1,Graduate,No,6875,0,200,360,1,Semiurban,1 299 | LP001954,Female,Yes,1,Graduate,No,4666,0,135,360,1,Urban,1 300 | LP001955,Female,No,0,Graduate,No,5000,2541,151,480,1,Rural,0 301 | LP001963,Male,Yes,1,Graduate,No,2014,2925,113,360,1,Urban,0 302 | LP001964,Male,Yes,0,Not Graduate,No,1800,2934,93,360,0,Urban,0 303 | LP001972,Male,Yes,,Not Graduate,No,2875,1750,105,360,1,Semiurban,1 304 | LP001974,Female,No,0,Graduate,No,5000,0,132,360,1,Rural,1 305 | LP001977,Male,Yes,1,Graduate,No,1625,1803,96,360,1,Urban,1 306 | LP001978,Male,No,0,Graduate,No,4000,2500,140,360,1,Rural,1 307 | LP001990,Male,No,0,Not Graduate,No,2000,0,0,360,1,Urban,0 308 | LP001993,Female,No,0,Graduate,No,3762,1666,135,360,1,Rural,1 309 | LP001994,Female,No,0,Graduate,No,2400,1863,104,360,0,Urban,0 310 | LP001996,Male,No,0,Graduate,No,20233,0,480,360,1,Rural,0 311 | LP001998,Male,Yes,2,Not Graduate,No,7667,0,185,360,,Rural,1 312 | LP002002,Female,No,0,Graduate,No,2917,0,84,360,1,Semiurban,1 313 | LP002004,Male,No,0,Not Graduate,No,2927,2405,111,360,1,Semiurban,1 314 | LP002006,Female,No,0,Graduate,No,2507,0,56,360,1,Rural,1 315 | LP002008,Male,Yes,2,Graduate,Yes,5746,0,144,84,,Rural,1 316 | LP002024,,Yes,0,Graduate,No,2473,1843,159,360,1,Rural,0 317 | LP002031,Male,Yes,1,Not Graduate,No,3399,1640,111,180,1,Urban,1 318 | LP002035,Male,Yes,2,Graduate,No,3717,0,120,360,1,Semiurban,1 319 | LP002036,Male,Yes,0,Graduate,No,2058,2134,88,360,,Urban,1 320 | LP002043,Female,No,1,Graduate,No,3541,0,112,360,,Semiurban,1 321 | LP002050,Male,Yes,1,Graduate,Yes,10000,0,155,360,1,Rural,0 322 | LP002051,Male,Yes,0,Graduate,No,2400,2167,115,360,1,Semiurban,1 323 | LP002053,Male,Yes,3+,Graduate,No,4342,189,124,360,1,Semiurban,1 324 | LP002054,Male,Yes,2,Not Graduate,No,3601,1590,0,360,1,Rural,1 325 | LP002055,Female,No,0,Graduate,No,3166,2985,132,360,,Rural,1 326 | LP002065,Male,Yes,3+,Graduate,No,15000,0,300,360,1,Rural,1 327 | LP002067,Male,Yes,1,Graduate,Yes,8666,4983,376,360,0,Rural,0 328 | LP002068,Male,No,0,Graduate,No,4917,0,130,360,0,Rural,1 329 | LP002082,Male,Yes,0,Graduate,Yes,5818,2160,184,360,1,Semiurban,1 330 | LP002086,Female,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,0 331 | LP002087,Female,No,0,Graduate,No,2500,0,67,360,1,Urban,1 332 | LP002097,Male,No,1,Graduate,No,4384,1793,117,360,1,Urban,1 333 | LP002098,Male,No,0,Graduate,No,2935,0,98,360,1,Semiurban,1 334 | LP002100,Male,No,,Graduate,No,2833,0,71,360,1,Urban,1 335 | LP002101,Male,Yes,0,Graduate,,63337,0,490,180,1,Urban,1 336 | LP002103,,Yes,1,Graduate,Yes,9833,1833,182,180,1,Urban,1 337 | LP002106,Male,Yes,,Graduate,Yes,5503,4490,70,,1,Semiurban,1 338 | LP002110,Male,Yes,1,Graduate,,5250,688,160,360,1,Rural,1 339 | LP002112,Male,Yes,2,Graduate,Yes,2500,4600,176,360,1,Rural,1 340 | LP002113,Female,No,3+,Not Graduate,No,1830,0,0,360,0,Urban,0 341 | LP002114,Female,No,0,Graduate,No,4160,0,71,360,1,Semiurban,1 342 | LP002115,Male,Yes,3+,Not Graduate,No,2647,1587,173,360,1,Rural,0 343 | LP002116,Female,No,0,Graduate,No,2378,0,46,360,1,Rural,0 344 | LP002119,Male,Yes,1,Not Graduate,No,4554,1229,158,360,1,Urban,1 345 | LP002126,Male,Yes,3+,Not Graduate,No,3173,0,74,360,1,Semiurban,1 346 | LP002128,Male,Yes,2,Graduate,,2583,2330,125,360,1,Rural,1 347 | LP002129,Male,Yes,0,Graduate,No,2499,2458,160,360,1,Semiurban,1 348 | LP002130,Male,Yes,,Not Graduate,No,3523,3230,152,360,0,Rural,0 349 | LP002131,Male,Yes,2,Not Graduate,No,3083,2168,126,360,1,Urban,1 350 | LP002137,Male,Yes,0,Graduate,No,6333,4583,259,360,,Semiurban,1 351 | LP002138,Male,Yes,0,Graduate,No,2625,6250,187,360,1,Rural,1 352 | LP002139,Male,Yes,0,Graduate,No,9083,0,228,360,1,Semiurban,1 353 | LP002140,Male,No,0,Graduate,No,8750,4167,308,360,1,Rural,0 354 | LP002141,Male,Yes,3+,Graduate,No,2666,2083,95,360,1,Rural,1 355 | LP002142,Female,Yes,0,Graduate,Yes,5500,0,105,360,0,Rural,0 356 | LP002143,Female,Yes,0,Graduate,No,2423,505,130,360,1,Semiurban,1 357 | LP002144,Female,No,,Graduate,No,3813,0,116,180,1,Urban,1 358 | LP002149,Male,Yes,2,Graduate,No,8333,3167,165,360,1,Rural,1 359 | LP002151,Male,Yes,1,Graduate,No,3875,0,67,360,1,Urban,0 360 | LP002158,Male,Yes,0,Not Graduate,No,3000,1666,100,480,0,Urban,0 361 | LP002160,Male,Yes,3+,Graduate,No,5167,3167,200,360,1,Semiurban,1 362 | LP002161,Female,No,1,Graduate,No,4723,0,81,360,1,Semiurban,0 363 | LP002170,Male,Yes,2,Graduate,No,5000,3667,236,360,1,Semiurban,1 364 | LP002175,Male,Yes,0,Graduate,No,4750,2333,130,360,1,Urban,1 365 | LP002178,Male,Yes,0,Graduate,No,3013,3033,95,300,,Urban,1 366 | LP002180,Male,No,0,Graduate,Yes,6822,0,141,360,1,Rural,1 367 | LP002181,Male,No,0,Not Graduate,No,6216,0,133,360,1,Rural,0 368 | LP002187,Male,No,0,Graduate,No,2500,0,96,480,1,Semiurban,0 369 | LP002188,Male,No,0,Graduate,No,5124,0,124,,0,Rural,0 370 | LP002190,Male,Yes,1,Graduate,No,6325,0,175,360,1,Semiurban,1 371 | LP002191,Male,Yes,0,Graduate,No,19730,5266,570,360,1,Rural,0 372 | LP002194,Female,No,0,Graduate,Yes,15759,0,55,360,1,Semiurban,1 373 | LP002197,Male,Yes,2,Graduate,No,5185,0,155,360,1,Semiurban,1 374 | LP002201,Male,Yes,2,Graduate,Yes,9323,7873,380,300,1,Rural,1 375 | LP002205,Male,No,1,Graduate,No,3062,1987,111,180,0,Urban,0 376 | LP002209,Female,No,0,Graduate,,2764,1459,110,360,1,Urban,1 377 | LP002211,Male,Yes,0,Graduate,No,4817,923,120,180,1,Urban,1 378 | LP002219,Male,Yes,3+,Graduate,No,8750,4996,130,360,1,Rural,1 379 | LP002223,Male,Yes,0,Graduate,No,4310,0,130,360,,Semiurban,1 380 | LP002224,Male,No,0,Graduate,No,3069,0,71,480,1,Urban,0 381 | LP002225,Male,Yes,2,Graduate,No,5391,0,130,360,1,Urban,1 382 | LP002226,Male,Yes,0,Graduate,,3333,2500,128,360,1,Semiurban,1 383 | LP002229,Male,No,0,Graduate,No,5941,4232,296,360,1,Semiurban,1 384 | LP002231,Female,No,0,Graduate,No,6000,0,156,360,1,Urban,1 385 | LP002234,Male,No,0,Graduate,Yes,7167,0,128,360,1,Urban,1 386 | LP002236,Male,Yes,2,Graduate,No,4566,0,100,360,1,Urban,0 387 | LP002237,Male,No,1,Graduate,,3667,0,113,180,1,Urban,1 388 | LP002239,Male,No,0,Not Graduate,No,2346,1600,132,360,1,Semiurban,1 389 | LP002243,Male,Yes,0,Not Graduate,No,3010,3136,0,360,0,Urban,0 390 | LP002244,Male,Yes,0,Graduate,No,2333,2417,136,360,1,Urban,1 391 | LP002250,Male,Yes,0,Graduate,No,5488,0,125,360,1,Rural,1 392 | LP002255,Male,No,3+,Graduate,No,9167,0,185,360,1,Rural,1 393 | LP002262,Male,Yes,3+,Graduate,No,9504,0,275,360,1,Rural,1 394 | LP002263,Male,Yes,0,Graduate,No,2583,2115,120,360,,Urban,1 395 | LP002265,Male,Yes,2,Not Graduate,No,1993,1625,113,180,1,Semiurban,1 396 | LP002266,Male,Yes,2,Graduate,No,3100,1400,113,360,1,Urban,1 397 | LP002272,Male,Yes,2,Graduate,No,3276,484,135,360,,Semiurban,1 398 | LP002277,Female,No,0,Graduate,No,3180,0,71,360,0,Urban,0 399 | LP002281,Male,Yes,0,Graduate,No,3033,1459,95,360,1,Urban,1 400 | LP002284,Male,No,0,Not Graduate,No,3902,1666,109,360,1,Rural,1 401 | LP002287,Female,No,0,Graduate,No,1500,1800,103,360,0,Semiurban,0 402 | LP002288,Male,Yes,2,Not Graduate,No,2889,0,45,180,0,Urban,0 403 | LP002296,Male,No,0,Not Graduate,No,2755,0,65,300,1,Rural,0 404 | LP002297,Male,No,0,Graduate,No,2500,20000,103,360,1,Semiurban,1 405 | LP002300,Female,No,0,Not Graduate,No,1963,0,53,360,1,Semiurban,1 406 | LP002301,Female,No,0,Graduate,Yes,7441,0,194,360,1,Rural,0 407 | LP002305,Female,No,0,Graduate,No,4547,0,115,360,1,Semiurban,1 408 | LP002308,Male,Yes,0,Not Graduate,No,2167,2400,115,360,1,Urban,1 409 | LP002314,Female,No,0,Not Graduate,No,2213,0,66,360,1,Rural,1 410 | LP002315,Male,Yes,1,Graduate,No,8300,0,152,300,0,Semiurban,0 411 | LP002317,Male,Yes,3+,Graduate,No,81000,0,360,360,0,Rural,0 412 | LP002318,Female,No,1,Not Graduate,Yes,3867,0,62,360,1,Semiurban,0 413 | LP002319,Male,Yes,0,Graduate,,6256,0,160,360,,Urban,1 414 | LP002328,Male,Yes,0,Not Graduate,No,6096,0,218,360,0,Rural,0 415 | LP002332,Male,Yes,0,Not Graduate,No,2253,2033,110,360,1,Rural,1 416 | LP002335,Female,Yes,0,Not Graduate,No,2149,3237,178,360,0,Semiurban,0 417 | LP002337,Female,No,0,Graduate,No,2995,0,60,360,1,Urban,1 418 | LP002341,Female,No,1,Graduate,No,2600,0,160,360,1,Urban,0 419 | LP002342,Male,Yes,2,Graduate,Yes,1600,20000,239,360,1,Urban,0 420 | LP002345,Male,Yes,0,Graduate,No,1025,2773,112,360,1,Rural,1 421 | LP002347,Male,Yes,0,Graduate,No,3246,1417,138,360,1,Semiurban,1 422 | LP002348,Male,Yes,0,Graduate,No,5829,0,138,360,1,Rural,1 423 | LP002357,Female,No,0,Not Graduate,No,2720,0,80,,0,Urban,0 424 | LP002361,Male,Yes,0,Graduate,No,1820,1719,100,360,1,Urban,1 425 | LP002362,Male,Yes,1,Graduate,No,7250,1667,110,,0,Urban,0 426 | LP002364,Male,Yes,0,Graduate,No,14880,0,96,360,1,Semiurban,1 427 | LP002366,Male,Yes,0,Graduate,No,2666,4300,121,360,1,Rural,1 428 | LP002367,Female,No,1,Not Graduate,No,4606,0,81,360,1,Rural,0 429 | LP002368,Male,Yes,2,Graduate,No,5935,0,133,360,1,Semiurban,1 430 | LP002369,Male,Yes,0,Graduate,No,2920,16.12000084,87,360,1,Rural,1 431 | LP002370,Male,No,0,Not Graduate,No,2717,0,60,180,1,Urban,1 432 | LP002377,Female,No,1,Graduate,Yes,8624,0,150,360,1,Semiurban,1 433 | LP002379,Male,No,0,Graduate,No,6500,0,105,360,0,Rural,0 434 | LP002386,Male,No,0,Graduate,,12876,0,405,360,1,Semiurban,1 435 | LP002387,Male,Yes,0,Graduate,No,2425,2340,143,360,1,Semiurban,1 436 | LP002390,Male,No,0,Graduate,No,3750,0,100,360,1,Urban,1 437 | LP002393,Female,,,Graduate,No,10047,0,0,240,1,Semiurban,1 438 | LP002398,Male,No,0,Graduate,No,1926,1851,50,360,1,Semiurban,1 439 | LP002401,Male,Yes,0,Graduate,No,2213,1125,0,360,1,Urban,1 440 | LP002403,Male,No,0,Graduate,Yes,10416,0,187,360,0,Urban,0 441 | LP002407,Female,Yes,0,Not Graduate,Yes,7142,0,138,360,1,Rural,1 442 | LP002408,Male,No,0,Graduate,No,3660,5064,187,360,1,Semiurban,1 443 | LP002409,Male,Yes,0,Graduate,No,7901,1833,180,360,1,Rural,1 444 | LP002418,Male,No,3+,Not Graduate,No,4707,1993,148,360,1,Semiurban,1 445 | LP002422,Male,No,1,Graduate,No,37719,0,152,360,1,Semiurban,1 446 | LP002424,Male,Yes,0,Graduate,No,7333,8333,175,300,,Rural,1 447 | LP002429,Male,Yes,1,Graduate,Yes,3466,1210,130,360,1,Rural,1 448 | LP002434,Male,Yes,2,Not Graduate,No,4652,0,110,360,1,Rural,1 449 | LP002435,Male,Yes,0,Graduate,,3539,1376,55,360,1,Rural,0 450 | LP002443,Male,Yes,2,Graduate,No,3340,1710,150,360,0,Rural,0 451 | LP002444,Male,No,1,Not Graduate,Yes,2769,1542,190,360,,Semiurban,0 452 | LP002446,Male,Yes,2,Not Graduate,No,2309,1255,125,360,0,Rural,0 453 | LP002447,Male,Yes,2,Not Graduate,No,1958,1456,60,300,,Urban,1 454 | LP002448,Male,Yes,0,Graduate,No,3948,1733,149,360,0,Rural,0 455 | LP002449,Male,Yes,0,Graduate,No,2483,2466,90,180,0,Rural,1 456 | LP002453,Male,No,0,Graduate,Yes,7085,0,84,360,1,Semiurban,1 457 | LP002455,Male,Yes,2,Graduate,No,3859,0,96,360,1,Semiurban,1 458 | LP002459,Male,Yes,0,Graduate,No,4301,0,118,360,1,Urban,1 459 | LP002467,Male,Yes,0,Graduate,No,3708,2569,173,360,1,Urban,0 460 | LP002472,Male,No,2,Graduate,No,4354,0,136,360,1,Rural,1 461 | LP002473,Male,Yes,0,Graduate,No,8334,0,160,360,1,Semiurban,0 462 | LP002478,,Yes,0,Graduate,Yes,2083,4083,160,360,,Semiurban,1 463 | LP002484,Male,Yes,3+,Graduate,No,7740,0,128,180,1,Urban,1 464 | LP002487,Male,Yes,0,Graduate,No,3015,2188,153,360,1,Rural,1 465 | LP002489,Female,No,1,Not Graduate,,5191,0,132,360,1,Semiurban,1 466 | LP002493,Male,No,0,Graduate,No,4166,0,98,360,0,Semiurban,0 467 | LP002494,Male,No,0,Graduate,No,6000,0,140,360,1,Rural,1 468 | LP002500,Male,Yes,3+,Not Graduate,No,2947,1664,70,180,0,Urban,0 469 | LP002501,,Yes,0,Graduate,No,16692,0,110,360,1,Semiurban,1 470 | LP002502,Female,Yes,2,Not Graduate,,210,2917,98,360,1,Semiurban,1 471 | LP002505,Male,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,0 472 | LP002515,Male,Yes,1,Graduate,Yes,3450,2079,162,360,1,Semiurban,1 473 | LP002517,Male,Yes,1,Not Graduate,No,2653,1500,113,180,0,Rural,0 474 | LP002519,Male,Yes,3+,Graduate,No,4691,0,100,360,1,Semiurban,1 475 | LP002522,Female,No,0,Graduate,Yes,2500,0,93,360,,Urban,1 476 | LP002524,Male,No,2,Graduate,No,5532,4648,162,360,1,Rural,1 477 | LP002527,Male,Yes,2,Graduate,Yes,16525,1014,150,360,1,Rural,1 478 | LP002529,Male,Yes,2,Graduate,No,6700,1750,230,300,1,Semiurban,1 479 | LP002530,,Yes,2,Graduate,No,2873,1872,132,360,0,Semiurban,0 480 | LP002531,Male,Yes,1,Graduate,Yes,16667,2250,86,360,1,Semiurban,1 481 | LP002533,Male,Yes,2,Graduate,No,2947,1603,0,360,1,Urban,0 482 | LP002534,Female,No,0,Not Graduate,No,4350,0,154,360,1,Rural,1 483 | LP002536,Male,Yes,3+,Not Graduate,No,3095,0,113,360,1,Rural,1 484 | LP002537,Male,Yes,0,Graduate,No,2083,3150,128,360,1,Semiurban,1 485 | LP002541,Male,Yes,0,Graduate,No,10833,0,234,360,1,Semiurban,1 486 | LP002543,Male,Yes,2,Graduate,No,8333,0,246,360,1,Semiurban,1 487 | LP002544,Male,Yes,1,Not Graduate,No,1958,2436,131,360,1,Rural,1 488 | LP002545,Male,No,2,Graduate,No,3547,0,80,360,0,Rural,0 489 | LP002547,Male,Yes,1,Graduate,No,18333,0,500,360,1,Urban,0 490 | LP002555,Male,Yes,2,Graduate,Yes,4583,2083,160,360,1,Semiurban,1 491 | LP002556,Male,No,0,Graduate,No,2435,0,75,360,1,Urban,0 492 | LP002560,Male,No,0,Not Graduate,No,2699,2785,96,360,,Semiurban,1 493 | LP002562,Male,Yes,1,Not Graduate,No,5333,1131,186,360,,Urban,1 494 | LP002571,Male,No,0,Not Graduate,No,3691,0,110,360,1,Rural,1 495 | LP002582,Female,No,0,Not Graduate,Yes,17263,0,225,360,1,Semiurban,1 496 | LP002585,Male,Yes,0,Graduate,No,3597,2157,119,360,0,Rural,0 497 | LP002586,Female,Yes,1,Graduate,No,3326,913,105,84,1,Semiurban,1 498 | LP002587,Male,Yes,0,Not Graduate,No,2600,1700,107,360,1,Rural,1 499 | LP002588,Male,Yes,0,Graduate,No,4625,2857,111,12,,Urban,1 500 | LP002600,Male,Yes,1,Graduate,Yes,2895,0,95,360,1,Semiurban,1 501 | LP002602,Male,No,0,Graduate,No,6283,4416,209,360,0,Rural,0 502 | LP002603,Female,No,0,Graduate,No,645,3683,113,480,1,Rural,1 503 | LP002606,Female,No,0,Graduate,No,3159,0,100,360,1,Semiurban,1 504 | LP002615,Male,Yes,2,Graduate,No,4865,5624,208,360,1,Semiurban,1 505 | LP002618,Male,Yes,1,Not Graduate,No,4050,5302,138,360,,Rural,0 506 | LP002619,Male,Yes,0,Not Graduate,No,3814,1483,124,300,1,Semiurban,1 507 | LP002622,Male,Yes,2,Graduate,No,3510,4416,243,360,1,Rural,1 508 | LP002624,Male,Yes,0,Graduate,No,20833,6667,480,360,,Urban,1 509 | LP002625,,No,0,Graduate,No,3583,0,96,360,1,Urban,0 510 | LP002626,Male,Yes,0,Graduate,Yes,2479,3013,188,360,1,Urban,1 511 | LP002634,Female,No,1,Graduate,No,13262,0,40,360,1,Urban,1 512 | LP002637,Male,No,0,Not Graduate,No,3598,1287,100,360,1,Rural,0 513 | LP002640,Male,Yes,1,Graduate,No,6065,2004,250,360,1,Semiurban,1 514 | LP002643,Male,Yes,2,Graduate,No,3283,2035,148,360,1,Urban,1 515 | LP002648,Male,Yes,0,Graduate,No,2130,6666,70,180,1,Semiurban,0 516 | LP002652,Male,No,0,Graduate,No,5815,3666,311,360,1,Rural,0 517 | LP002659,Male,Yes,3+,Graduate,No,3466,3428,150,360,1,Rural,1 518 | LP002670,Female,Yes,2,Graduate,No,2031,1632,113,480,1,Semiurban,1 519 | LP002682,Male,Yes,,Not Graduate,No,3074,1800,123,360,0,Semiurban,0 520 | LP002683,Male,No,0,Graduate,No,4683,1915,185,360,1,Semiurban,0 521 | LP002684,Female,No,0,Not Graduate,No,3400,0,95,360,1,Rural,0 522 | LP002689,Male,Yes,2,Not Graduate,No,2192,1742,45,360,1,Semiurban,1 523 | LP002690,Male,No,0,Graduate,No,2500,0,55,360,1,Semiurban,1 524 | LP002692,Male,Yes,3+,Graduate,Yes,5677,1424,100,360,1,Rural,1 525 | LP002693,Male,Yes,2,Graduate,Yes,7948,7166,480,360,1,Rural,1 526 | LP002697,Male,No,0,Graduate,No,4680,2087,0,360,1,Semiurban,0 527 | LP002699,Male,Yes,2,Graduate,Yes,17500,0,400,360,1,Rural,1 528 | LP002705,Male,Yes,0,Graduate,No,3775,0,110,360,1,Semiurban,1 529 | LP002706,Male,Yes,1,Not Graduate,No,5285,1430,161,360,0,Semiurban,1 530 | LP002714,Male,No,1,Not Graduate,No,2679,1302,94,360,1,Semiurban,1 531 | LP002716,Male,No,0,Not Graduate,No,6783,0,130,360,1,Semiurban,1 532 | LP002717,Male,Yes,0,Graduate,No,1025,5500,216,360,,Rural,1 533 | LP002720,Male,Yes,3+,Graduate,No,4281,0,100,360,1,Urban,1 534 | LP002723,Male,No,2,Graduate,No,3588,0,110,360,0,Rural,0 535 | LP002729,Male,No,1,Graduate,No,11250,0,196,360,,Semiurban,0 536 | LP002731,Female,No,0,Not Graduate,Yes,18165,0,125,360,1,Urban,1 537 | LP002732,Male,No,0,Not Graduate,,2550,2042,126,360,1,Rural,1 538 | LP002734,Male,Yes,0,Graduate,No,6133,3906,324,360,1,Urban,1 539 | LP002738,Male,No,2,Graduate,No,3617,0,107,360,1,Semiurban,1 540 | LP002739,Male,Yes,0,Not Graduate,No,2917,536,66,360,1,Rural,0 541 | LP002740,Male,Yes,3+,Graduate,No,6417,0,157,180,1,Rural,1 542 | LP002741,Female,Yes,1,Graduate,No,4608,2845,140,180,1,Semiurban,1 543 | LP002743,Female,No,0,Graduate,No,2138,0,99,360,0,Semiurban,0 544 | LP002753,Female,No,1,Graduate,,3652,0,95,360,1,Semiurban,1 545 | LP002755,Male,Yes,1,Not Graduate,No,2239,2524,128,360,1,Urban,1 546 | LP002757,Female,Yes,0,Not Graduate,No,3017,663,102,360,,Semiurban,1 547 | LP002767,Male,Yes,0,Graduate,No,2768,1950,155,360,1,Rural,1 548 | LP002768,Male,No,0,Not Graduate,No,3358,0,80,36,1,Semiurban,0 549 | LP002772,Male,No,0,Graduate,No,2526,1783,145,360,1,Rural,1 550 | LP002776,Female,No,0,Graduate,No,5000,0,103,360,0,Semiurban,0 551 | LP002777,Male,Yes,0,Graduate,No,2785,2016,110,360,1,Rural,1 552 | LP002778,Male,Yes,2,Graduate,Yes,6633,0,0,360,0,Rural,0 553 | LP002784,Male,Yes,1,Not Graduate,No,2492,2375,0,360,1,Rural,1 554 | LP002785,Male,Yes,1,Graduate,No,3333,3250,158,360,1,Urban,1 555 | LP002788,Male,Yes,0,Not Graduate,No,2454,2333,181,360,0,Urban,0 556 | LP002789,Male,Yes,0,Graduate,No,3593,4266,132,180,0,Rural,0 557 | LP002792,Male,Yes,1,Graduate,No,5468,1032,26,360,1,Semiurban,1 558 | LP002794,Female,No,0,Graduate,No,2667,1625,84,360,,Urban,1 559 | LP002795,Male,Yes,3+,Graduate,Yes,10139,0,260,360,1,Semiurban,1 560 | LP002798,Male,Yes,0,Graduate,No,3887,2669,162,360,1,Semiurban,1 561 | LP002804,Female,Yes,0,Graduate,No,4180,2306,182,360,1,Semiurban,1 562 | LP002807,Male,Yes,2,Not Graduate,No,3675,242,108,360,1,Semiurban,1 563 | LP002813,Female,Yes,1,Graduate,Yes,19484,0,600,360,1,Semiurban,1 564 | LP002820,Male,Yes,0,Graduate,No,5923,2054,211,360,1,Rural,1 565 | LP002821,Male,No,0,Not Graduate,Yes,5800,0,132,360,1,Semiurban,1 566 | LP002832,Male,Yes,2,Graduate,No,8799,0,258,360,0,Urban,0 567 | LP002833,Male,Yes,0,Not Graduate,No,4467,0,120,360,,Rural,1 568 | LP002836,Male,No,0,Graduate,No,3333,0,70,360,1,Urban,1 569 | LP002837,Male,Yes,3+,Graduate,No,3400,2500,123,360,0,Rural,0 570 | LP002840,Female,No,0,Graduate,No,2378,0,9,360,1,Urban,0 571 | LP002841,Male,Yes,0,Graduate,No,3166,2064,104,360,0,Urban,0 572 | LP002842,Male,Yes,1,Graduate,No,3417,1750,186,360,1,Urban,1 573 | LP002847,Male,Yes,,Graduate,No,5116,1451,165,360,0,Urban,0 574 | LP002855,Male,Yes,2,Graduate,No,16666,0,275,360,1,Urban,1 575 | LP002862,Male,Yes,2,Not Graduate,No,6125,1625,187,480,1,Semiurban,0 576 | LP002863,Male,Yes,3+,Graduate,No,6406,0,150,360,1,Semiurban,0 577 | LP002868,Male,Yes,2,Graduate,No,3159,461,108,84,1,Urban,1 578 | LP002872,,Yes,0,Graduate,No,3087,2210,136,360,0,Semiurban,0 579 | LP002874,Male,No,0,Graduate,No,3229,2739,110,360,1,Urban,1 580 | LP002877,Male,Yes,1,Graduate,No,1782,2232,107,360,1,Rural,1 581 | LP002888,Male,No,0,Graduate,,3182,2917,161,360,1,Urban,1 582 | LP002892,Male,Yes,2,Graduate,No,6540,0,205,360,1,Semiurban,1 583 | LP002893,Male,No,0,Graduate,No,1836,33837,90,360,1,Urban,0 584 | LP002894,Female,Yes,0,Graduate,No,3166,0,36,360,1,Semiurban,1 585 | LP002898,Male,Yes,1,Graduate,No,1880,0,61,360,,Rural,0 586 | LP002911,Male,Yes,1,Graduate,No,2787,1917,146,360,0,Rural,0 587 | LP002912,Male,Yes,1,Graduate,No,4283,3000,172,84,1,Rural,0 588 | LP002916,Male,Yes,0,Graduate,No,2297,1522,104,360,1,Urban,1 589 | LP002917,Female,No,0,Not Graduate,No,2165,0,70,360,1,Semiurban,1 590 | LP002925,,No,0,Graduate,No,4750,0,94,360,1,Semiurban,1 591 | LP002926,Male,Yes,2,Graduate,Yes,2726,0,106,360,0,Semiurban,0 592 | LP002928,Male,Yes,0,Graduate,No,3000,3416,56,180,1,Semiurban,1 593 | LP002931,Male,Yes,2,Graduate,Yes,6000,0,205,240,1,Semiurban,0 594 | LP002933,,No,3+,Graduate,Yes,9357,0,292,360,1,Semiurban,1 595 | LP002936,Male,Yes,0,Graduate,No,3859,3300,142,180,1,Rural,1 596 | LP002938,Male,Yes,0,Graduate,Yes,16120,0,260,360,1,Urban,1 597 | LP002940,Male,No,0,Not Graduate,No,3833,0,110,360,1,Rural,1 598 | LP002941,Male,Yes,2,Not Graduate,Yes,6383,1000,187,360,1,Rural,0 599 | LP002943,Male,No,,Graduate,No,2987,0,88,360,0,Semiurban,0 600 | LP002945,Male,Yes,0,Graduate,Yes,9963,0,180,360,1,Rural,1 601 | LP002948,Male,Yes,2,Graduate,No,5780,0,192,360,1,Urban,1 602 | LP002949,Female,No,3+,Graduate,,416,41667,350,180,,Urban,0 603 | LP002950,Male,Yes,0,Not Graduate,,2894,2792,155,360,1,Rural,1 604 | LP002953,Male,Yes,3+,Graduate,No,5703,0,128,360,1,Urban,1 605 | LP002958,Male,No,0,Graduate,No,3676,4301,172,360,1,Rural,1 606 | LP002959,Female,Yes,1,Graduate,No,12000,0,496,360,1,Semiurban,1 607 | LP002960,Male,Yes,0,Not Graduate,No,2400,3800,0,180,1,Urban,0 608 | LP002961,Male,Yes,1,Graduate,No,3400,2500,173,360,1,Semiurban,1 609 | LP002964,Male,Yes,2,Not Graduate,No,3987,1411,157,360,1,Rural,1 610 | LP002974,Male,Yes,0,Graduate,No,3232,1950,108,360,1,Rural,1 611 | LP002978,Female,No,0,Graduate,No,2900,0,71,360,1,Rural,1 612 | LP002979,Male,Yes,3+,Graduate,No,4106,0,40,180,1,Rural,1 613 | LP002983,Male,Yes,1,Graduate,No,8072,240,253,360,1,Urban,1 614 | LP002984,Male,Yes,2,Graduate,No,7583,0,187,360,1,Urban,1 615 | LP002990,Female,No,0,Graduate,Yes,4583,0,133,360,0,Semiurban,0 616 | -------------------------------------------------------------------------------- /Session 3/Readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Session 3/SMOTE and Missing Values.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# SMOTE for data imbalance" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 2, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "# Generate and plot a synthetic imbalanced classification dataset\n", 17 | "from collections import Counter\n", 18 | "from sklearn.datasets import make_classification\n", 19 | "from matplotlib import pyplot\n", 20 | "from numpy import where\n" 21 | ] 22 | }, 23 | { 24 | "cell_type": "code", 25 | "execution_count": 12, 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "# define dataset\n", 30 | "X, y = make_classification(n_samples=10000, n_features=2, n_redundant=0,\n", 31 | " n_clusters_per_class=1, weights=[0.99], flip_y=0, random_state=1)\n" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 4, 37 | "metadata": {}, 38 | "outputs": [ 39 | { 40 | "name": "stdout", 41 | "output_type": "stream", 42 | "text": [ 43 | "Counter({0: 9900, 1: 100})\n" 44 | ] 45 | } 46 | ], 47 | "source": [ 48 | "# summarize class distribution\n", 49 | "counter = Counter(y)\n", 50 | "print(counter)\n" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 5, 56 | "metadata": {}, 57 | "outputs": [ 58 | { 59 | "data": { 60 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2de3gc9Xnvv++uVtYKEsu3HLBkYROoKeBbkR1z5ObhUjDBwehwMdeWHEKdtOQQaGowbY5tKCkKPi3UIWkfB/KQFMexg10h4hA3xU4Tc2LAjnyJAZc7luSc2Bg5wVpbK+17/tid9ezs/GZmd2d3bu/nefRIOzOa+WklvfOb7+99vy8xMwRBEITwE/N6AIIgCEJtkIAvCIIQESTgC4IgRAQJ+IIgCBFBAr4gCEJEqPN6ACrGjx/PkydP9noYgiAIgWLnzp2HmXmC2T7fBvzJkydjx44dXg9DEAQhUBDRe6p9IukIgiBEBAn4giAIEUECviAIQkTwrYZvRjqdRm9vL44fP+71UCxpaGhAS0sLEomE10MRBEHIE6iA39vbi4997GOYPHkyiMjr4ZjCzPjggw/Q29uLKVOmeD0cQRCEPIGSdI4fP45x48b5NtgDABFh3Lhxvn8KEQQhegQq4APwdbDXCMIYBUGIHoEL+IIgCEJ5SMAvg5/85CeYOnUqzjrrLHR2dno9nGCzZz3w6PnAiqbs5z3rvR6RIIQWCfglMjIygjvvvBPPP/88Xn31Vaxduxavvvqq18MKJnvWA8/dBRw9AICzn5+7KzxBX25mgs8IdcDv6ulDe+cWTFm6Ce2dW9DV01fxOV9++WWcddZZOPPMM1FfX48bb7wRzz77rAujjSAvPAikU4Xb0qns9qAT9puZEEhCG/C7evpw/8a96BtIgQH0DaRw/8a9FQf9vr4+TJo0Kf+6paUFfX2V30giydHe0rYHiTDfzITAEtqAv3LzfqTSIwXbUukRrNy8v6LzmvUAlqycMhndUtr2IBHmm5kQWCoO+ETUQEQvE9FuItpHRA+YHDOKiNYR0ZtE9BIRTa70unb0D6RK2u6UlpYWHDhwIP+6t7cXEydOrOickeXSZUAiWbgtkcxuDzphvpkJgcWNGf4JAJcw8wwAMwFcQURzDcd8HsCHzHwWgEcBfN2F61oysSlZ0nanzJ49G2+88QbeeecdDA0N4Qc/+AEWLlxY0Tkjy/RFwFWrgNGTAFD281WrstuDTphvZoIl1Vg7dIuKrRU4q3F8lHuZyH0YdY+rAazIff0MgMeJiNhMH3GJJfOn4v6NewtknWQijiXzp1Z03rq6Ojz++OOYP38+RkZGcPvtt+O8886rdLjRZfqicAR4I9rP9MKDWRlndEs22IfxZxXyaGuHWtzR1g4BoGNWs5dDA+CSlw4RxQHsBHAWgG8y80uGQ5oBHAAAZh4moqMAxgE4bDjPYgCLAaC1tbWiMWlv7srN+9E/kMLEpiSWzJ/qypt+5ZVX4sorr6z4PELICevNTFBitXYYmoDPzCMAZhJRE4B/I6LzmfnXukPMVjWLZvfMvBrAagBoa2urePbfMavZF2+yIAjRoFprh27hapYOMw8A+BmAKwy7egFMAgAiqgMwGsARN68tCILgNdVaO3QLN7J0JuRm9iCiJIA/AfC64bBuALflvr4OwJZq6veCIAhesGT+VCQT8YJtbqwduoUbks7pAL6b0/FjANYz84+I6EEAO5i5G8CTAP6ViN5EdmZ/owvXFQRB8BXVXDt0AzeydPYAmGWyfZnu6+MArq/0WoIgCH7Hz2uHoa20FQRBEAqRgF8Gt99+Oz7xiU/g/PPP93oogiAIjpGAXwaf+9zn8JOf/MTrYVQPsfUVhFAS7oBfpcD16U9/GmPHjnXlXL5DbH0FIbSEN+BL4CoPsfUVhNAS3oAvgas8amXrK7KRINQcV6wVfIn4kZfH6JbcU5HJdrfQnr60G7L29AWI94wAIGtC5tdc9iAT3hm++JGXRy1sfeXpS7CgWt3qhDAH/CoGrptuugkXXngh9u/fj5aWFjz55JMVn9M31MKjXp6+BAuq1a1OCLOkU0U/8rVr11Z8Dl9TbVvfWshGQmCxcpwMitTj13GGN+AD4kfuVy5dVqjhA9INSsgzsSmJPpOgPzqZ8HVzEQ0/N0EJr6Qj+JcwtzYUKkblOEmEQEg9fpakAjfDZ2YQmfVT8Q/i/OwAefoSFKgcJ+9Zt8v0eL80F9FQjadvIIX2zi2eyjuBCvgNDQ344IMPMG7cON8GfWbGBx98gIaGBq+HInjFnvXSy7ZCzBwnV27ebyr1+KW5iIZKkgK8l3cCFfBbWlrQ29uLQ4cOeT0USxoaGtDSIguQkURqDKrGkvlTC7RxwF/NRTTMxqnHyx63gQr4iUQCU6ZM8XoYgqDGqsZAAn5F1KK5iBvZNfpxqmb6XslQgQr4guB7pMagqlSruUhXTx8eeG4fPhxM57dVIr9o42zv3OIrGcqNnraTiGgrEb1GRPuI6Msmx1xEREeJaFfuQ/LvhHAiFd6BQ0uj1Ad7jUqza/zW49aNGf4wgK8w86+I6GMAdhLRT5n5VcNxv2Dmz7pwPUHwL1JjEDjM0ij1VCK/+K3HrRs9bQ8COJj7+vdE9BqAZgDGgC8I4aeKFd6COxh1epXOrlGp/OKnHreuavhENBnZhuYvmey+kIh2A+gH8NfMvM/k+xcDWAwAra2tbg5NEGqH1Bj4FrMqWAKgqpzxYxZQJbgW8InoVAAbANzNzL8z7P4VgDOY+SMiuhJAF4Czjedg5tUAVgNAW1ubVC8JQsCopYeM2bUAa/nETL5hwDToNyUTWLHwvJrOzqv9/pEbVaFElADwIwCbmfkfHRz/LoA2Zj6sOqatrY137NhR8dgEQagNxtkzkJ0hP3zNNNeDptm1EnECGEhnTsY0AnDL3FY81DENXT19uFtRrQsAzU3JfKC9+JwJ2Pr6oYoCb6nB2633j4h2MnOb2b6KZ/iULXl9EsBrqmBPRKcB+H/MzEQ0B9nsoA8qvbYgCP7BykPG7YBvdq30SPHklQGs2f4+AGDDTrWffnNTEi8uvQSAO+Zn5ZyjFu+fG+Zp7QD+FMAlurTLK4noi0T0xdwx1wH4dU7DXwXgRhbDGUEIFVa2xm5jt9CqhwGsfemAMhPHqNO7YX72wHP7Sj5HLd4/N7J0tiH75GR1zOMAHq/0WoIg+BdVxovbRUZdPX2WC61mjFjML/WBuGNWs6X52eSlm2y1/a6ePtOcfsA6eNfi/ZNKW0EQXMGJ142dru1kIXZwaLikYA8AcSLLoN83kMKSH+4GYG1+BgADqXT+WLOgbzWLtwretfAKEj98QRAK6OrpQ3vnFkxZugntnVsc95LtmNWMh6+ZhuamJAhZXVy/4GjXq9Zs/5JndmPJD3cXbFPNngHg1rmtRXJDMhHHTZ+aVFTxaiSdYazo3mdaHWt2rCqwW83irYK33fvnBjLDFwQhT6ULlsYiI+3m0T+QQsxklq1flHS6EGvF1tcP4Za5raYZNm1njMWK7n0YSKlvGAOptCPzM0Ad2FVPCE3JhO17WO0iLZnhC4KQx81uTcYZu0pS0QKnG4uTfQMpbNjZh4vPmYCJuTTLlZv3o6unDx2zmnHKKPs57pSlm7By834smT8VzRYSjEqeUfnnrFh4Xmk/TBWQGb4QfqQhiWPcsvPt6unDV9bvttTNNSY2JbMLsQS4kbuXSo/g6VwqJnBSnze6YarQy03XXtCMda8cKHrSSMQIS+ZPtVyT8It/jh4J+EK4kYYkjrHKfrHLFNEHvtHJBI4NDTsK9kA2uFoVRLlBOsOOgr2eVHoEW18/hJXXzSi4WWhZOgAs5S8/BHgjrlTaVgOptBVc4dHzs0HeyOhJwD2/rv14fIzKux3IBrmjqbQys8aqw1OQIQDvdC4w3ad6v/RFXF5Q1UpbQfA1EWxIUq4fi5Vsoy10mi3i2tkLu0UyEQeBMZjOVP1aGk2NCeW+WhaauYUs2grhJmINSexSH61wWuBjXMStVYBLpUcwKhHPeubUiKOptPK9U71ffmuqrkdm+EK4iVhDErssG/3M32gQNnlcNqvFicirD/JOPOXd4sPBNG6d24o1298vufiqHDIMpZdNUJqq6xENXwg/EcrSmbJ0k6W3eynSCwFIJmKmEkqcCBlmNDUmcCI9UlOZxQseu2GmadCvpR20U0TDF6JNRBqSdPX0mRY3AdkAXarOzoAykGvXKDXzJaiorBSMKZh6Tx4/Ihq+IIQATbs3C/bJRNxximQUIQDtnxyLREy9NqDZLhipZM3ECyTgu8Ge9dn0vxVN2c971ns9IiFiqDJl4kR5fxbBHAbw7gcprLx+BpqS6qwcM0sGNyuTa4EE/ErRCnuOHgDAJwt7JOgLNUSVKZNhRsesZlx8zoQajyhYaMVfTqwXjN9nhl9TMyXgV8oLDxZmgADZ1y886M14hEhilyK49fVDtRxOYLHKNmpMFIZLrTLZDL+mZkrAr5SwFvaITBUoVIZdWoqgX2ecQWKU4f1duXm/aUYUwdoG2UsqDvhENImIthLRa0S0j4i+bHIMEdEqInqTiPYQ0R9Vel3fEMbCHr/IVF7cdAJ6o7PzUvfrjLPWVFKyNaDLSOrq6VM+DTD8m6XjRlrmMICvMPOviOhjAHYS0U+Z+VXdMZ8BcHbu41MA/jn3OfiEsbDHSqaqVXqjF6ZnPjNaKzXH28qw6+JzJhQ4SEYJzYWzucICMe2mqWXmqPDzArkbPW0PAjiY+/r3RPQagGYA+oB/NYDv5RqXbyeiJiI6Pfe9wUYLBGEq7PGDTOXFTccPN7ocZo1IljyzGyu69ylNzFTnsWv6EXYmjj5pZmZlEGeFXh6z8g5KxMm3cg7gcuEVEU0GMAvAS4ZdzQD0loW9uW0FAZ+IFgNYDACtra1uDq26hK2wZ3SLwmGyhjKV8qZzIOeAWYWbqx9udDlU3Z/0JmZ3r9uFB57bh+VXmTfUDrOLZSloAb6rpw/HTgw7+p6mZAKnjKozfbqyWg85pb7Ot3IO4GLAJ6JTAWwAcDcz/8642+RbitY7mHk1gNVA1lrBrbEJJeIHmUp10wGd3O625KK6ZnJM5ecuEaeLrB8Opk1bEJbSgCQK3PLtX+Lldz8samRySn0cQ8MZpDMnt2vdqVSB28o7aCCVxpSlm3xjs2DElSwdIkogG+zXMPNGk0N6AUzSvW4B0O/GtYUqMH0RcNWqrGc8KPv5qlW1fYq5dFn2JlOASXsON1NgL10GxEwKb4Y+qvnibSmLrMZCn1u+/UvcvW6XBHsdL751xLQ/7rGhEQzr3qdT6uMYVRfDPet2KRu420k2fq64dSNLhwA8CeA1Zv5HxWHdAP4sl60zF8DRUOj3YWb6omyDkBUD2c+1lqzMbjoqWzC3JJfpi4BRHyvePjJU87oKszRLK/oGUujq6cNXu/bixbeOVHFk4UN/Xzw2NIKBVNo2aMctbBg0/Fhx64ak0w7gTwHsJSKtT9nfAGgFAGb+FwA/BnAlgDcBDAL4ny5cVwg7xrURZfcqF9cWUh+ab6+xjm805WpqTNgalVW7TWAU0YK2XppZuXk/RjLOnp78Vv/gRpbONtikt+ayc+6s9FpCgKiGJXEt1hb8sGCdw5hmeeb9m+AwzgguYtTrSwnifqt/EHtkwX2qlc9eixRYPyxY59Dn4Tc1JiTYewQh+7vQF7GZLdoaV5j82AxFGqAI7hP0xuEuPJ1U2hjjq117a9bVSbBH35jcLN01mYjj2guaCzqIeZWlIw1QhNrio3z2sqiwrsKsaMosddLq+yXY144YwfbpST+jN66v+DUF0wwJ+IL7+EgH9wKVR/qK7n2O2uQdOzEswb5GvNu5AAAweekmy+PiVLhMaWVj4Wck4Avu4yMdvNZYmWoNpNL4atfegsf+i8+ZgA07+wqeBoTaoG92YuezE5aaBrFHFtzHD4VbtULnrjn49XOw7d++ZXn4mu3vF7TDW7P9/chbH3jFsaHhfI69Xd2Dnw3RSkFm+EIWt9Mow+YvZIYhG6kxdRAP0moMxTLozswz/RbjPDEc88Zgkh7hfI69Js+YGc35MdumXGSGL1TP/z6g3vKOMXHXbKQh3FsXsp8zxPQbFmN3Lb8cj90ws0DuaUiEJ0yG5ycRyqcabRr90kSlmiiyjibSBzUeiFAuqsKoE8OZ/NeaQZ3ffHHKQQJ+2ChnVl2NNMoo9PpVZB3187gaD0QolyPHTmDK0k0FRmmqLCu/+eKUgwT8MFHurLoabRqDnovvhLMvL8rfHuR6PDKcXbsIy0JfmEmlM0VGaSrrBL/54pSDBPwwYTWrtpr5m1kRV5pGGcZev3r2rAd2fx9608QMAz8c+XR+wfbicyZ4NDihHLRZvErm8ZsvTjlIwPcLbixwWnWJspr5VyONsho3ET9hcnONEXBpbFf+66j2kA0yfQMpXHzOhKIUzbBk6khaph9wy2xMVeFKcfterfo0Si1Fc+Pi8lM0A97r19YLx2bBVozOgsuGnX2+8cVxGzFP8wNumY0ZbxxAdlZtDPZ5KNvgxMk5wlo4ZWTPegw+vwwNgwfRz+PxyPAidGfmIREj3DBnUj4I/LLhyzgNh4q+vTczHvOGVnkwcEFPPEaOPevN0JulBQ0r8zSRdPyAWwucKmlm9CTz48309Chk16jYsx7Dz/4vNKYOIkZAS+wwOhNPYGFsG9IZxtO6KtnNwzNgnCsxAy9kZnoydOEkTckE/uH6GRjTaNKu0iFhWKA1QyQdP+Cm2ZiqwtWpt00UsmsUDD6/DI0jxwu2aYVU3UOFlbOXxnbB4KcFymn4y6s9UEEJAfjsjNMLqmfbO7co/etHJxNFlbVAOBZozXCrifl3iOi3RGSqPxDRRUR0lIh25T5CsnJXJsYF2rMvr+4CZymLsmHPrrGgIfUb0+1mhVQT6bDjY4Xawcj6FX21a29+25L5U01b8jGyN+mwLtCa4Zak8xSAK2yO+QUzz8x9REAfUGCWK7/7+8CMm0vLkik1q8dpU/IQZdd09fShvXNLUWGNiv6MecGUWSFVP493fKxQHWIENJrYHjCyGVLa77tjVrPSs2hgMI2Hr5mG5qYkCFnt/uFrpoVigdYMVyQdZv45EU1241yhR6WRv/Hvzhdoq9VCUP/9Ac2u0TBrQnLPul24e90uNBuyLrp6+vDAc/vwx8OL0Jl4Ao00lD+PvpBKzyMlHCtUh483JHDURI7ReOC5k/0HVPbHE5uSgfW2L4daavgXEtFuAP0A/pqZ9xkPIKLFABYDQGtraw2HVkPc0MitFlbdCMw+crrs6ukrcDAc05jA8qvOs/0HNSuP12Z5+g5UAPI3hm7MA9LAvXXrMZE+QD+Py2fpGOnOOD9WqA4DqbSlj/2Hg+m8fm8m6YRZulHhWlpmbob/I2Y+32TfxwFkmPkjIroSwD8x89lW5wttWqYbKZgrmmBurGuSZhlgunr6sOSHu5E2pNcl4oSV180oDvo6i+fejH0A1qwPpOlIcLl1bmtZBW5OJw5BxPO0TGb+HTN/lPv6xwASRGQugoYdNzTyiCysrty8vyjYAyd9zAswrI3oUypV9A2kJNgHnHWvHEA57sWN9XWhDPZ21CTgE9FpRNkkNiKak7tuNNMZ3LAx8PPCqose+Fa50EX7xJs+kqRHGKc2JJCImYk2asKaZ2+HKxo+Ea0FcBGA8UTUC2A5gAQAMPO/ALgOwF8Q0TCAFIAb2a8lvpXipHNUpRq5XxdWy1lMtni/Jlros0V50uJNH1kGBtN49IaZRY3gzfLrNcKaZ2+HW1k6N9nsfxzA425cy9dUM3vGSDUXVsttd1jqYrLN+7Vk/lSlhl+02KYoXpM0yfBjlmmjWv8BgETM5O8nIoi1QqlYSRZhsCWopFNVqRlINu9Xx6xmrLx+RkG7uTGNCdwwexJWbt5fmF9vInOlMErSJEOO6c0f2b+dUxvM57OnNkRTvwfEWqE07GbwtbIlcLvhuJ5KUj5LtYhw8H6ZzdyM+fX3b9wLXNOOjqtW5d+XweRp+LvU9ejOzLUesxBobpg9SRm8BwbNJR3V9iggM/xSsJvB1yJ7ptq9Yq089a2usWc9kDpSvN1qMbmM98uy/VyumvirM3+B8z78B6w9LsE+iMSNJkUWbNjZp6ygDnMjk3KRgF8KdjPSWmTPVFs2sro5qW4se9YDz94JDB0r3jfjZldtHOzaz3X19GHN9veVpfSC//mHRTPwbucCRy0iU+kRfGX9btOgv2T+1Ej55DhBAn4p2M1Iq9E5yki1ZSOzIKyhurG88CAwMlS8HQB2PKlOzyzj/VLNzpoaE2jv3IK71+2SYB9w7t+4F1/t2ovBoWFHx48w5/vR6umY1RwpnxwnSAOUUvBDcxC3mqVYsWc9sPHPFTtNqnmVlb86XHqfjBo+kF24A8M0I0MIJgTbv6gigty0xE08r7QNDbWYwdtRC9lo+qLSmqY4WaNwSXYym7WdUl/nWbBfGNuGbfV34e1RN2Nb/V2Wlb2Cc8x+m2MaE0USjR6rYqpSnVPDigT8UnFqM1zN69fiplPKjeXSZUC83v6cLshOmrOl1nnKrsCmmiyMbUNn4gm0xA4XdcgS3EezMlYt6qrkPu2pUPub0TK7ohj0JS0ziNTCzbKUal5t2/P3mWfqaFSYrdTV04clz+xGeuTk/M+rYA9knTL19siAukOWUDlNjYm8/m6U9awWY60yu6Km50c74Fcznz0MlHJj0R+rWuuoUHZauXl/QbD3Gul65T4EoC4GpDPF+7TlRi1I660U9P0NjNhldkWJ6Ab8WtogRI0yvX7svO+r8Q+6MLYt52l/GP08viRP+34ejxaToC92DuWhNaa5Z90u0/36ZielNC1ReTJFMR8/uhp+GGwQvMKJI2aJax2a94leovlwMI0lz5zMsR6ts1hwg0o1+EeGF2GQC9cupOtV+by49BJ0zGp2vWBK8vFPEt0Zfq1sEPyIlZRlJ3O5+GTU1dOXfyyPEWHEJEU4PcK4e92unJxj8pxfAZVq8NL1yj3GNCbyfw9ahyr9X0MlAbpUCSjMRDcPvxb57H7EqpYAsK8zcOl9M8unrzVvj7oZZjbqGSaceWJN7QdkoBK5KWjcOrcVG3b2Ffw9aEHf2INYsMYqDz+6M/xLl1VlYdH32ElZdsZpLj0ZmWVO1Bo/a/Ca3KQ9gbRQVm5CGqEL+mMaE9j6+iHTHsRSTOUu0dXw/VBE5QVWAdtJMC/XIM6g+7f97qf2Y60yftbgreSmIGN8oEom4lh+1XmSSVMjojvDB2qTz+437CyM7eyNy3kyMtH9O+ufBA+VPlttSiaQHsng2FDlTwd+1uDDmvLJAGIEZDjrinntBdlsG027NxLFTJpq4soMn4i+Q0S/JSJTEZeyrCKiN4loDxH9kRvXFcrAqoLWSXWt6skIKKkxTBIncF+i9NnqRUNbsRl3umZl0J2Zh3lDq3DmiTWYN7TKF8EeyMpN5tu9l5sqRXPBGGHO2xtLJk1tcEvSeQrAFRb7PwPg7NzHYgD/7NJ1hVIxBuzkWKAuCWxcnA3MM262l7mMKZeAtUe/st/sYbzdcIvjwL0wtg1/XxcNKwM/y01uoq94FWfL6uNWT9ufE9Fki0OuBvC9XOPy7UTURESnM/NBN64vlIjKCuHoAWD390tfy7DrkqWQkQgAgfOB225BMkpWBn6Wm9xG0+lLKaYSyqNWGn4zAP1/fG9uW0HAJ6LFyD4BoLW11Z0rR9U+wS7X3qjDazhtZ6hHMYPnoweAFU2g5JisuZrKMx/OArdK125WbA863Zl5gbyRxRU1FSpEp68dtcrSMbO3K/qLYObVzNzGzG0TJkyo/KrVbgfoV+x+brMZuZ5Si88UGTraDB6pIxjJZHCET0WGCapYYLcgqdK1GQilrBNUMsym//BmiE5fW2oV8HsB6A3WWwD0V/2qUbVPsPu57QJ6qa6WVl2ycsR5GIPcgDNPrEGfzYKkymP+keFFMLO9jxFqmq4oHvjWTGxKKmftRNm8e9HpvaFWAb8bwJ/lsnXmAjhaE/0+qvYJVo3IVzQBZPFrL6f4LLcQ3JsZ72gGb7UgaeVvY6Vf1ypdUTzwrdFm7Kqsm0cXzcTyq87DxKYk+gdSWLl5fyR96b3CrbTMtQB+CWAqEfUS0eeJ6ItE9MXcIT8G8DaANwF8G8BfunFdW8otEgo6lj8fA6zIYU+OxSvTHkD7j8eX3hlo+iLc0Pht3J3+C4wo/qy0GXx3Zh6Wpu/I3yB6M+OxNH0HujPzbAuOvE5XDGtBlBvoZ+yqrBsA0ozEQ9zK0rnJZj8DuNONa5VEVO0TzH5uMygOcCa/qNs10p7zt8l+n/bPCMDRY/dj576B83c+gToqNjkb5Hr8n5GTC8GqBUm7gqNHhhcVWA5o565VumJYC6IqQWV/YJZ10965RZqReEi4rRWiap9g/LlVcKbAvtiqM5ATZr/1DSSpOBNnmGNYmr4DXSPmkoxeE89U8HRQC7x+wvAbhOzEwOnToFgoeEv4rRWiaJ8AFP7cSofLQumn4n9GxdpBDKwMyEaTsBgyYM4u7mkYZ/Bepit6/YThN7TlGqdPg9KMxFvCPcMXsjhsSG78p9Nm3m813KJudKJHsXZgNfs108SJsk8FXszg7fD6CcPPOHkaFAsFb5GAHxasulA5lLb0/4wF2ShOaxhMbix2s1+VJh4D+87fRqM7Mw+PDC9CP4/DRDqMe+vWhzJLx6xXgB12T4NioeAt4Zd0SiWIlblOulA5kLb0nYHuHSyeeauqcE92rjoFt536BdybXIdk6jc4iHHoTFvbAfjZk15FFLzqCTCtebDDiTQjFgreITN8PUGtzHWxwKxjVjNeXHoJWmKKrBODTq91rtLS7J76aA4u+Ogx/O+Zv8Afn/iGbQAMoklYFFIzrWL9mEZ1b+FjJ4YlxdLHSMDXE9TK3CoUmA0mTzPdniEqkI1Wbt6Py0b+s6Dy9LKR/8Sa7e878lMJoiZeampmmCpzk4k4jlt0KhtIpSWv3seIpKMnqJW5dk1NyuCR9A24l79VMJNlzmbRAMg//Xwh1Y7rEj+vSN4ImklYKTJU2OQfJ20pJa/ev8gMX0PfVNoAABesSURBVE9QK3MdZuE4oaunD+2dW/DUR3MKZt7DHCtIlQQApFO4uW5L6OUNI6XIUFGQf8yQvHp/IgFfj4uBs5Z0jbRjBX8hG5xBGEyeXlaBmV6PBwq7QeVn9gbiiu1hrjwtRYaKamWu5NX7E5F09GgB0ussnRIyhbQgnUrPwVOYAwBIDBFO7arDwPc3YWJTEkvmT3X0eG1WaauhkjGI4qbePHrny2wTj8Po5/GhaeLhVIYKShbSmMYEFkw/HRt29jmSbayQvHr/IjN8I8b2fV4E+xIyhcyCdDrD+HAwbW1OZZK3b/UYbiZjIJEELvgchuMNBZudOF8GmVIWYYOShdRYX4eHOqblc+RLIUbZ5vKSV+9/JOD7jRIzhZxopUUVkIqbym2nvqw8h5mMcX/6zzF526X4q9TtZTlfBpFSb2JByULStxk0q4a1qsHKMHA0lS7paVLwBpF0/EaJmUIqbxIjBTcGxU3l3uQ6rEtcqHykV8kY5TpfBpFy+uoGIQtJr7mbPTUyrFsX6p8mAWfuqkLtkRm+37DLFDJIMY+d+0bRbMwM/T80K24ejanfOHqkd1pxb+UsGdTc9DDexBIxKtDcVU+NI8y2f2uluKsKtUcCvt+wyhQykWJm712O781+L+9N0pRMIBEvDMnJRByPnfsG8Oj54BVNGGFFyB7dkq+0tcJpxb1Kv34hMzOw2n7Y7JGbkgmsvH5GwYxclWGj6fPa35oKScn0LxLw/YaV0ZlCipn9WideHHUX3mm4Bbs+/lf4/qcOFJhTfW/2e5i9dzlw9AAIjDrKFLUhTKG+IP20Kakun08mnP3ZqPTrS2O7AqvtB2UR1o7mpiTe7VyAXcsvL5JfrBwttQnBO50LlE+CkpLpX9xqcXgFEe0nojeJaKnJ/s8R0SEi2pX7uMON69pi5SDpR7TxblycfX3N6sJMIZW+nzpSNOt/8crDeKdzAV5ceglmv/WNohuF0YL4vqE7CjKSViw8DwmFXWIqbZ57b4Y+l19zvgyyLBKURVg7Jo9TB2WnjpZidRw8Kl60JaI4gG8CuAxAL4BXiKibmV81HLqOmb9U6fUc48RB0mv0+fbJMcDQR8BIbuZrNl6VhYIRo6ulRWOSM0+syb9epdun/XPfvW6X5aXKybMPSm66iiAswtrxf986gq6ePuXiqhNHS727av9ASrJ0AoAbWTpzALzJzG8DABH9AMDVAIwBv7ZYpTf6IeAbb0ipI8XHGMfrtFctUBjkFTcKfYDVOyCetDu2vk65PjHSNcp7GHDF70asjoOFG5JOMwB9NOnNbTNyLRHtIaJniGiS2YmIaDER7SCiHYcOHapsVH43QjO7IZmhH6+Zvp8ca/59+mwfRWOSFzIz85kyL47KFncZ7Y6tKDfPPiyyiJfcOrfVUXaWFbK4Gj3cmOGbCb3GWPEcgLXMfIKIvgjguwCKUkGYeTWA1QDQ1tZWRvsFHVVwkHQVJ9IMUDxeYyMT45MCUOz/Y7CMGEyehuePz8D1OGl81pg6CDx7Jy4aGYV9sd+jv95enqlEi9fLIpos9Bh9K1T2C9ViTGMCD3VMQ9sZYwvklCPHTpS0viKLq9HDjYDfC0A/Y28B0K8/gJn1EeDbAL7uwnWtMZM//GKEtmc9svdJm3uak/E69f/R3SgaAVz76PnAUUNHq5EhNGEIIGfyjBtafNjsg2vBgumnAyiWUyYv3eT4HLK4Gk3cCPivADibiKYA6ANwI4Cb9QcQ0enMfDD3ciGA11y4rjV+MUIz44UHoQz2ybFA6sPSxuugfWERDqQtuwpSN7T4cipXo866lw9g056DGBh0bmfQlEyACCV9jxA+Kg74zDxMRF8CsBlAHMB3mHkfET0IYAczdwO4i4gWAhgGcATA5yq9riPKCYS1wCrY3vdOxafXL7oq/7kdZvxYyTPdmXlAGrksnQ/Qz+NKlmOCnKLpFZo5HlBoZzCmMZHfrmdMYwI9yy6v6RgFf0LsoA2dF7S1tfGOHTu8HkZ1ePR8xfrCpGzefQWctEs+6YWSTMSL86j3rMfghjuLG5UbGOYYYshUTVvfVn8XWmLFQb83Mx7zhlaZfIdgRnPuxr7kmd1Ij5z8n07ECSuvmyGz+QhBRDuZuc1sn1TaekEljVZsisnMjK9M/U2mL8Ijib9Eb2Z8UdWtBjNQR5mq2h+EpXLVa/oHUuiY1YyV180oKJiSYC/oEbdMLyh3fcFBMZkq1c5s+8wFi3HZxguxj24wTbUytjSshrbuhiwknMy4kbx4wQoJ+F6hWl+w6nbloJhMZZfMyGZxxCjrX97clMTF50wAwMpsGzOqoa2HoXLVSyTjRnCKSDp+wq7blYNisovPmWDbrALILvY9vf19pNIZU1klo5B5gmJ/EHa037F0mBJKQWb45VJC31nHKGbwv9n4N9g+0o4ORWbNbzAeFy7dhNHJBI4NDTu2L9Ywk1VeyMzE9fGfi/1BFSAAj94wM59JVU7aBCMb7O2srAVBjwT8cqiWMZtiBv8JPox71u3ClthV+Hr9k0jiRH5fiuvx9+nrwQAGUsUpeU4xk1V2Zv5AtPUqwCjU2j95/4+VnaSs6B9IOUvBFYQcIumUQ4l9Zx2jsH3o53FgZIPyfUOfRx+PB4PwG0zAfVX0oDGzNhYqJ05U0FT+pk+ZWkvh1rmteNfCd76pMVHge6RsWC8IOSTgl4NTY7ZS/fgVJmd6GaU7Mw/tJ1ZhFq3H3OP/JEE4gIwwFwTmhzqm4da5rYjn0qLiRLh1bise6pgGQO07zwxnKbiCkEMknXJwYsxWhuzTNdKOXfwF3JF52lZGqUS+EbxHC8ya/PJQx7R8gDei8p2/R9GrQFwwBRUywy8HJ4VTJco+WoXsUx/NwbyhVbg7/RcAgMcS3yqpyXciRgXe9lEgqA3RSwnM+taCLy69BB2zmpVul+KCKaiQgF8OVn1nNUr049dXyGoOkuU0+U5nGI31dY77zlaTWgTiSt4rr6k0MEuLQaFURNIpFztjthL9+PWzvUodJM0Kr2pNrWyPg+q26UZglhaDQqlIwK8WJfrx6ytkq+0guTC2Dfcm1mMinPehLZVaBeIgum02uxiYxUpBKAXvn/vDihPZR4f+8byfx5se81sy314KeQmEqiuB1CoQq94rv1YEa8VSEqQFL5CAX02mL8raHa8YyH62kIA6ZjXj2guaQTB3kEQiiQN/tMRUsy1lkbbcPrSlUqtAHCS3TdHXBa+RgO8mpebdG9j6+qF8gZW+yfdvMAG4ahVmL/wCHr5mWoH97cPXTMPyq85z3NC6VjPvWgXiWjVEjxutQw0Y9yYTcdw6t7XodyUze8FLRMN3CxfsFvQLt3qrAwLwzvQFAIo1W6203liAo7yGC31onVBL2+Nqum1qzWN2vHcET29/3/SYOBFGmPOf3dToBcFNXJnhE9EVRLSfiN4koqUm+0cR0brc/peIaLIb1/UVTvLubZ4AVGl6DKC9c0tRybyWu19KVk4tJZCgWzNos3IA2LBTbVeg+eCMMOdlGy3Yd/X0ob1zC6Ys3WT6OxSEWlJxwCeiOIBvAvgMgHMB3ERE5xoO+zyAD5n5LACPAvh6pdf1HXZ593bWxzDPq9Yw80l54Ll9tjN74/lqJYEEmWQijsdumJlfXC3lCUpvbaC/IYvXjeAH3JjhzwHwJjO/zcxDAH4A4GrDMVcD+G7u62cAXEpkI4oGDUV+fX67gyeAjlnNeY3eDGMw+ePjW5WFTZpufO0FxbJC0Gfe1cRMay/VqkA73nG7SUGoEW4E/GYA+gqj3tw202OYeRjAUQD+zJsrFzu7BYeVt1oJvepuqAWTXZtWW1aYTsx1tLKSIoRC4kSmKZOlVsRqx6tuFH0DKZF5BE9wI+CbxSajubeTY0BEi4loBxHtOHTokAtDqyF2efd2TwA6unr6EFM8AGnB5I6hpy3TK/sGUliz/X3HUkSYGVXn7M9cZVOssjC4dW6rpbWB6kZBgMg8gie4kaXTC0D/n9ICoF9xTC8R1QEYDeCI8UTMvBrAagBoa2srpxGQt1jZLZhU3g7HG/DQsWvx3aWb8mXxAHD/xr2mDTEKgknMPI1Sn14ZvDfQOQtj23IZQPbVwpkM45T6OI4NqW9+8Rih7YyxpvusLAzazhirtDZYMn8q7t+4t+CmSyj+vRidMwWhWrgR8F8BcDYRTQHQB+BGADcbjukGcBuAXwK4DsAW5jJa/AQZfSPyo70YTJ6GZceuxTNDcwCcnOmNqouZzsrjRAXa8vHkaWhMHSw6zq8Vpm5Sqk9POsM4JR4DYUR5ExzJsGXQVVkYWFkbmN0oVBlVYmks1AJyI+4S0ZUAHgMQB/AdZv4aET0IYAczdxNRA4B/BTAL2Zn9jcz8ttU529raeMeOHRWPza+0d24p2+SsKZnA30zai8++11nUczYKGTfb6u9CS6y4lqA3Mx7zhlaZfo/ZzNrsmHc6F1Q8PitUv3fpTyu4BRHtZOY2s32u5OEz84+Z+Q+Y+ZPM/LXctmXM3J37+jgzX8/MZzHzHLtgHwUqmdENpNK497/OiWx6ZTnVwhObksrsJ/0x1UYsjQUvkUrbarNnfV7GweiWrJY/fZHy8X5MYwLH0xlHi63VrDD1M6VWC+sDqlFT13PxORPcG6QCsTQWvEQCfjWxsFtYMr+9KPgkE3Esv+o8ACcDQrQWOpzxyPCiAg0fsK4WNubVf2X9btNF8a2v1yYzTCyNBa+QgF9NLIqtOu75NQD1TE/7XInWH1bMfHqeqL8V3SfmFB3b3JQsCK4ds5qlF6wQWSTgVxObYisnM70l86diyTO7kR6J5lxftdiql7M0s7KkyROTmTauktOkF6wQdqJtj1yhnbEtJRRbqeiY1YyV182IXGNyjUdvmGlp/ZxMxHHxORPyNgaajbGVHbEsnApRJboB34GZWcXY2S04pGNWc0me91aMaUzkfXbaP2leaOQX4kQF/kKEbEqq/me49oJmbNjZl5+xmzlWGjGeU7zqhajgSh5+Nah6Hv6j5yuajE/KdqdyC0WWTqm4peW/a8gz/2rXXqx96YDpIqYfMI7XiOS1C0IhVnn40dXwFfo6H+1VGpeVhZXdQgm4saBo1rXpoY5peKgj6/k+eemmiq+h4aTQCcgG5mMnhjGQSpvus0P1vsgCrCAUE11JR6Gj9/M4XxpZubGgqDIH03ASYJ2QTMRxy9xWR8f2D6SwYmGxXGXU1FWNRFTviyzACkIx0Q34ly5DCqMKNg1yPb6eXuRLv3Kr5iiVoA+kx04MIxGv7PkmToRrL2jGQx3THC00T8ylTVpp6laNRGQBVhCcE11JZ/oiLP1BD5aY9FwlH8oBWvC7W5FD7oS1Lx3IyzfAyUCqpTIOpNJIxAhjGhMYGEyjqTGBj44PI51xru+PMGPDzj60nTEWy686zzKlNBGnfGC2SlG1aiSi6fRSuSoI9kQ34APY8fHLMG+g2JrAr3KA1m6v3MVb48KsWSBNZxiN9XXoWXY5gJNN0vsGUvkm3Xb6vDEYqypbT6mvcxSY7XR6qVwVBGdEV9JBMPOxK5F2tEVbTcZxYtWrdeB6t3MB3nr4SrzbuQCP3jAzL7+o0AfjjCID6KjJQq0ZotMLgjtEOuD7Nh/boiDMLC/dqe5+06cmFejhKuwCqXYTeKdzgXKhV3+OSgN2EG/MguBHopuH71eMhmtAtlhL3y7RgCa76DXsHe8dyefXx4lw06cm4aGOabb5/MlEvKSbnnEdQDvH92a/h9lvfcPQ7OW/V3Qd0ekFwR6rPHwJ+H6jygVhU5ZuUurvzWUGUmMwfuzcNzB77/Lido70RXz3ozkSsAWhikjADxIrmmC2JJoB4ZPH1xQEy3JmvVYz/OamJC4+ZwK2vn5IeU5H16xVFbMgCEVIpW2QGN1iGiz7M+MKctB3vHcEG3b25aUUbTsAy6Bv1lhbo28ghae3v1/wWn9Oo3yjvKaNS6ggCN5Q0aItEY0lop8S0Ru5z2MUx40Q0a7cR3cl1ww9JoZrxuYeqfQI1r50QJmbboV+0dcJ+nNa5cMX4IJLqCAI7lNpls5SAC8w89kAXsi9NiPFzDNzHwsrvGa4mb4ou0A7ehIAda9aldlZ30CqyH7AiJZl47SmVkuxdOxb45JLqCAI7lKppHM1gItyX38XwM8A3FfhOQWd4doNCs1dK4ICgIWxbbnuT4fRz+OzFcMD82wlHlUjELPjrI4vSq/UsolccAkVBME9Kp3h/zdmPggAuc+fUBzXQEQ7iGg7EXWoTkZEi3PH7Th0qDb9Rf2OKgf9pk9NQjIRx8LYNnQmnkBL7DBiBLTEDqMz8QQWxrbZSjxOirj0+e4l5cNPX5RdoF0xkP0swV4QPMd2hk9E/wHgNJNdf1vCdVqZuZ+IzgSwhYj2MvNbxoOYeTWA1UA2S6eE84cWbXZulhnTdsZYzH32S2jEUMH3NNIQ7q1bj+6heZY2wWbntsrSsRqLIAj+p6K0TCLaD+AiZj5IRKcD+BkzW5Y/EtFTAH7EzM9YHRfZtMxSUaVxMuHME2ukEYggRAyrtMxKJZ1uALflvr4NwLMmFx9DRKNyX48H0A7g1QqvK2hY+PprcovKS14QhGhRacDvBHAZEb0B4LLcaxBRGxE9kTvmDwHsIKLdALYC6GRmCfhuoUjjfKL+Vjx8TdYKWeUlLwhCtJBK2zBg0TdXer4KQrSQStuwY9E3V3q+CoKgEWl75CggXvKCIGhIwA854iUvCIKGSDohR3LnBUHQkIAfAaTnqyAIgEg6giAIkUECviAIQkSQgC8IghARJOALgiBEBAn4giAIEUECviAIQkTwrZcOER0C8F4VTj0ewOEqnNctZHyVIeOrDBlfZfhhfGcw8wSzHb4N+NWCiHaojIX8gIyvMmR8lSHjqwy/j08kHUEQhIggAV8QBCEiRDHgr/Z6ADbI+CpDxlcZMr7K8PX4IqfhC4IgRJUozvAFQRAiiQR8QRCEiBDJgE9Ef0dEe4hoFxH9OxFN9HpMeohoJRG9nhvjvxFRk9dj0kNE1xPRPiLKEJFvUtCI6Aoi2k9EbxLRUq/Ho4eIvkNEvyWiX3s9FiNENImIthLRa7nf65e9HpMeImogopeJaHdufA94PSYziChORD1E9COvx6IikgEfwEpmns7MMwH8CMAyrwdk4KcAzmfm6QD+C8D9Ho/HyK8BXAPg514PRIOI4gC+CeAzAM4FcBMRnevtqAp4CsAVXg9CwTCArzDzHwKYC+BOn713JwBcwswzAMwEcAURzfV4TGZ8GcBrXg/CikgGfGb+ne7lKQB8tXLNzP/OzMO5l9sBtHg5HiPM/Boz7/d6HAbmAHiTmd9m5iEAPwBwtcdjysPMPwdwxOtxmMHMB5n5V7mvf49s0PJNxxzO8lHuZSL34av/WSJqAbAAwBNej8WKSAZ8ACCirxHRAQC3wH8zfD23A3je60EEgGYAB3Sve+GjoBUUiGgygFkAXvJ2JIXk5JJdAH4L4KfM7KvxAXgMwL0AMl4PxIrQBnwi+g8i+rXJx9UAwMx/y8yTAKwB8CW/jS93zN8i+7i9xo/j8xlkss1Xs0C/Q0SnAtgA4G7DU7DnMPNIToJtATCHiM73ekwaRPRZAL9l5p1ej8WO0Pa0ZeY/cXjo9wFsArC8isMpwm58RHQbgM8CuJQ9KJYo4f3zC70AJuletwDo92gsgYOIEsgG+zXMvNHr8ahg5gEi+hmy6yF+WQBvB7CQiK4E0ADg40T0NDPf6vG4igjtDN8KIjpb93IhgNe9GosZRHQFgPsALGTmQa/HExBeAXA2EU0honoANwLo9nhMgYCICMCTAF5j5n/0ejxGiGiClqlGREkAfwIf/c8y8/3M3MLMk5H9u9vix2APRDTgA+jMyRN7AFyO7Oq6n3gcwMcA/DSXOvovXg9IDxH9DyLqBXAhgE1EtNnrMeUWub8EYDOyi47rmXmft6M6CRGtBfBLAFOJqJeIPu/1mHS0A/hTAJfk/t525WarfuF0AFtz/6+vIKvh+zb10c+ItYIgCEJEiOoMXxAEIXJIwBcEQYgIEvAFQRAiggR8QRCEiCABXxAEISJIwBcEQYgIEvAFQRAiwv8Hy8qaVvFgyaQAAAAASUVORK5CYII=\n", 61 | "text/plain": [ 62 | "
" 63 | ] 64 | }, 65 | "metadata": { 66 | "needs_background": "light" 67 | }, 68 | "output_type": "display_data" 69 | } 70 | ], 71 | "source": [ 72 | "# scatter plot of examples by class label\n", 73 | "for label, _ in counter.items():\n", 74 | " row_ix = where(y == label)[0]\n", 75 | " pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))\n", 76 | "pyplot.legend()\n", 77 | "pyplot.show()" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 8, 83 | "metadata": {}, 84 | "outputs": [], 85 | "source": [ 86 | "from imblearn.over_sampling import SMOTE\n", 87 | "\n", 88 | "# transform the dataset\n", 89 | "oversample = SMOTE()\n", 90 | "X, y = oversample.fit_resample(X, y)" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 9, 96 | "metadata": {}, 97 | "outputs": [ 98 | { 99 | "name": "stdout", 100 | "output_type": "stream", 101 | "text": [ 102 | "Counter({0: 9900, 1: 9900})\n" 103 | ] 104 | }, 105 | { 106 | "data": { 107 | "image/png": "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\n", 108 | "text/plain": [ 109 | "
" 110 | ] 111 | }, 112 | "metadata": { 113 | "needs_background": "light" 114 | }, 115 | "output_type": "display_data" 116 | } 117 | ], 118 | "source": [ 119 | "# summarize the new class distribution\n", 120 | "counter = Counter(y)\n", 121 | "print(counter)\n", 122 | "# scatter plot of examples by class label\n", 123 | "for label, _ in counter.items():\n", 124 | " row_ix = where(y == label)[0]\n", 125 | " pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))\n", 126 | "pyplot.legend()\n", 127 | "pyplot.show()" 128 | ] 129 | }, 130 | { 131 | "cell_type": "markdown", 132 | "metadata": {}, 133 | "source": [ 134 | "# Define the sampling strategy" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 13, 140 | "metadata": {}, 141 | "outputs": [ 142 | { 143 | "name": "stdout", 144 | "output_type": "stream", 145 | "text": [ 146 | "Counter({0: 1980, 1: 990})\n" 147 | ] 148 | }, 149 | { 150 | "data": { 151 | "image/png": "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\n", 152 | "text/plain": [ 153 | "
" 154 | ] 155 | }, 156 | "metadata": { 157 | "needs_background": "light" 158 | }, 159 | "output_type": "display_data" 160 | } 161 | ], 162 | "source": [ 163 | "from imblearn.under_sampling import RandomUnderSampler\n", 164 | "from imblearn.pipeline import Pipeline\n", 165 | "\n", 166 | "over = SMOTE(sampling_strategy=0.1)\n", 167 | "under = RandomUnderSampler(sampling_strategy=0.5)\n", 168 | "steps = [('o', over), ('u', under)]\n", 169 | "pipeline = Pipeline(steps=steps)\n", 170 | "# transform the dataset\n", 171 | "X, y = pipeline.fit_resample(X, y)\n", 172 | "# summarize the new class distribution\n", 173 | "counter = Counter(y)\n", 174 | "print(counter)\n", 175 | "# scatter plot of examples by class label\n", 176 | "for label, _ in counter.items():\n", 177 | " row_ix = where(y == label)[0]\n", 178 | " pyplot.scatter(X[row_ix, 0], X[row_ix, 1], label=str(label))\n", 179 | "pyplot.legend()\n", 180 | "pyplot.show()" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": null, 186 | "metadata": {}, 187 | "outputs": [], 188 | "source": [] 189 | }, 190 | { 191 | "cell_type": "code", 192 | "execution_count": null, 193 | "metadata": {}, 194 | "outputs": [], 195 | "source": [] 196 | }, 197 | { 198 | "cell_type": "code", 199 | "execution_count": null, 200 | "metadata": {}, 201 | "outputs": [], 202 | "source": [] 203 | }, 204 | { 205 | "cell_type": "code", 206 | "execution_count": null, 207 | "metadata": {}, 208 | "outputs": [], 209 | "source": [] 210 | }, 211 | { 212 | "cell_type": "code", 213 | "execution_count": null, 214 | "metadata": {}, 215 | "outputs": [], 216 | "source": [] 217 | }, 218 | { 219 | "cell_type": "markdown", 220 | "metadata": {}, 221 | "source": [ 222 | "# Missing Value Treatment using knn" 223 | ] 224 | }, 225 | { 226 | "cell_type": "code", 227 | "execution_count": 16, 228 | "metadata": {}, 229 | "outputs": [], 230 | "source": [ 231 | "# knn imputation transform for the horse colic dataset\n", 232 | "from numpy import isnan\n", 233 | "from pandas import read_csv\n", 234 | "from sklearn.impute import KNNImputer\n", 235 | "# load dataset\n", 236 | "url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/horse-colic.csv'\n", 237 | "dataframe = read_csv(url, header=None, na_values='?')\n" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": 17, 243 | "metadata": {}, 244 | "outputs": [ 245 | { 246 | "name": "stdout", 247 | "output_type": "stream", 248 | "text": [ 249 | "Missing: 1605\n" 250 | ] 251 | } 252 | ], 253 | "source": [ 254 | "# split into input and output elements\n", 255 | "data = dataframe.values\n", 256 | "ix = [i for i in range(data.shape[1]) if i != 23]\n", 257 | "X, y = data[:, ix], data[:, 23]\n", 258 | "# print total missing\n", 259 | "print('Missing: %d' % sum(isnan(X).flatten()))\n" 260 | ] 261 | }, 262 | { 263 | "cell_type": "code", 264 | "execution_count": 18, 265 | "metadata": {}, 266 | "outputs": [ 267 | { 268 | "name": "stdout", 269 | "output_type": "stream", 270 | "text": [ 271 | "Missing: 0\n" 272 | ] 273 | } 274 | ], 275 | "source": [ 276 | "# define imputer\n", 277 | "imputer = KNNImputer()\n", 278 | "# fit on the dataset\n", 279 | "imputer.fit(X)\n", 280 | "# transform the dataset\n", 281 | "Xtrans = imputer.transform(X)\n", 282 | "# print total missing\n", 283 | "print('Missing: %d' % sum(isnan(Xtrans).flatten()))" 284 | ] 285 | }, 286 | { 287 | "cell_type": "code", 288 | "execution_count": null, 289 | "metadata": {}, 290 | "outputs": [], 291 | "source": [] 292 | }, 293 | { 294 | "cell_type": "markdown", 295 | "metadata": {}, 296 | "source": [ 297 | "# knn and evaluate and use pipeline" 298 | ] 299 | }, 300 | { 301 | "cell_type": "code", 302 | "execution_count": 19, 303 | "metadata": {}, 304 | "outputs": [], 305 | "source": [ 306 | "# evaluate knn imputation and random forest for the horse colic dataset\n", 307 | "from numpy import mean\n", 308 | "from numpy import std\n", 309 | "from pandas import read_csv\n", 310 | "from sklearn.ensemble import RandomForestClassifier\n", 311 | "from sklearn.impute import KNNImputer\n", 312 | "from sklearn.model_selection import cross_val_score\n", 313 | "from sklearn.model_selection import RepeatedStratifiedKFold\n", 314 | "from sklearn.pipeline import Pipeline\n", 315 | "# load dataset\n", 316 | "url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/horse-colic.csv'\n", 317 | "dataframe = read_csv(url, header=None, na_values='?')\n" 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "execution_count": 20, 323 | "metadata": {}, 324 | "outputs": [], 325 | "source": [ 326 | "# split into input and output elements\n", 327 | "data = dataframe.values\n", 328 | "ix = [i for i in range(data.shape[1]) if i != 23]\n", 329 | "X, y = data[:, ix], data[:, 23]\n" 330 | ] 331 | }, 332 | { 333 | "cell_type": "code", 334 | "execution_count": 21, 335 | "metadata": {}, 336 | "outputs": [], 337 | "source": [ 338 | "# define modeling pipeline\n", 339 | "model = RandomForestClassifier()\n", 340 | "imputer = KNNImputer()\n", 341 | "pipeline = Pipeline(steps=[('i', imputer), ('m', model)])\n" 342 | ] 343 | }, 344 | { 345 | "cell_type": "code", 346 | "execution_count": 22, 347 | "metadata": {}, 348 | "outputs": [ 349 | { 350 | "name": "stdout", 351 | "output_type": "stream", 352 | "text": [ 353 | "Mean Accuracy: 0.863 (0.059)\n" 354 | ] 355 | } 356 | ], 357 | "source": [ 358 | "# define model evaluation\n", 359 | "cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)\n", 360 | "# evaluate model\n", 361 | "scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise')\n", 362 | "print('Mean Accuracy: %.3f (%.3f)' % (mean(scores), std(scores)))" 363 | ] 364 | }, 365 | { 366 | "cell_type": "code", 367 | "execution_count": null, 368 | "metadata": {}, 369 | "outputs": [], 370 | "source": [] 371 | }, 372 | { 373 | "cell_type": "markdown", 374 | "metadata": {}, 375 | "source": [ 376 | "# Use different values of k" 377 | ] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "execution_count": 24, 382 | "metadata": {}, 383 | "outputs": [], 384 | "source": [ 385 | "# compare knn imputation strategies for the horse colic dataset\n", 386 | "from numpy import mean\n", 387 | "from numpy import std\n", 388 | "from pandas import read_csv\n", 389 | "from sklearn.ensemble import RandomForestClassifier\n", 390 | "from sklearn.impute import KNNImputer\n", 391 | "from sklearn.model_selection import cross_val_score\n", 392 | "from sklearn.model_selection import RepeatedStratifiedKFold\n", 393 | "from sklearn.pipeline import Pipeline\n", 394 | "from matplotlib import pyplot\n", 395 | "# load dataset\n", 396 | "url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/horse-colic.csv'\n", 397 | "dataframe = read_csv(url, header=None, na_values='?')\n" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": 25, 403 | "metadata": {}, 404 | "outputs": [], 405 | "source": [ 406 | "# split into input and output elements\n", 407 | "data = dataframe.values\n", 408 | "ix = [i for i in range(data.shape[1]) if i != 23]\n", 409 | "X, y = data[:, ix], data[:, 23]\n" 410 | ] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "execution_count": 26, 415 | "metadata": {}, 416 | "outputs": [ 417 | { 418 | "name": "stdout", 419 | "output_type": "stream", 420 | "text": [ 421 | ">1 0.856 (0.056)\n", 422 | ">3 0.859 (0.052)\n", 423 | ">5 0.862 (0.053)\n", 424 | ">7 0.863 (0.058)\n", 425 | ">9 0.860 (0.061)\n", 426 | ">15 0.859 (0.056)\n", 427 | ">18 0.864 (0.056)\n", 428 | ">21 0.866 (0.051)\n" 429 | ] 430 | }, 431 | { 432 | "data": { 433 | "image/png": "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\n", 434 | "text/plain": [ 435 | "
" 436 | ] 437 | }, 438 | "metadata": { 439 | "needs_background": "light" 440 | }, 441 | "output_type": "display_data" 442 | } 443 | ], 444 | "source": [ 445 | "# evaluate each strategy on the dataset\n", 446 | "results = list()\n", 447 | "strategies = [str(i) for i in [1,3,5,7,9,15,18,21]]\n", 448 | "for s in strategies:\n", 449 | " # create the modeling pipeline\n", 450 | " pipeline = Pipeline(steps=[('i', KNNImputer(n_neighbors=int(s))), ('m', RandomForestClassifier())])\n", 451 | " # evaluate the model\n", 452 | " cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)\n", 453 | " scores = cross_val_score(pipeline, X, y, scoring='accuracy', cv=cv, n_jobs=-1)\n", 454 | " # store results\n", 455 | " results.append(scores)\n", 456 | " print('>%s %.3f (%.3f)' % (s, mean(scores), std(scores)))\n", 457 | "# plot model performance for comparison\n", 458 | "pyplot.boxplot(results, labels=strategies, showmeans=True)\n", 459 | "pyplot.show()" 460 | ] 461 | }, 462 | { 463 | "cell_type": "code", 464 | "execution_count": null, 465 | "metadata": {}, 466 | "outputs": [], 467 | "source": [] 468 | }, 469 | { 470 | "cell_type": "code", 471 | "execution_count": null, 472 | "metadata": {}, 473 | "outputs": [], 474 | "source": [] 475 | }, 476 | { 477 | "cell_type": "code", 478 | "execution_count": null, 479 | "metadata": {}, 480 | "outputs": [], 481 | "source": [] 482 | }, 483 | { 484 | "cell_type": "code", 485 | "execution_count": null, 486 | "metadata": {}, 487 | "outputs": [], 488 | "source": [] 489 | }, 490 | { 491 | "cell_type": "code", 492 | "execution_count": null, 493 | "metadata": {}, 494 | "outputs": [], 495 | "source": [] 496 | }, 497 | { 498 | "cell_type": "code", 499 | "execution_count": null, 500 | "metadata": {}, 501 | "outputs": [], 502 | "source": [] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "execution_count": null, 507 | "metadata": {}, 508 | "outputs": [], 509 | "source": [] 510 | } 511 | ], 512 | "metadata": { 513 | "kernelspec": { 514 | "display_name": "Python 3", 515 | "language": "python", 516 | "name": "python3" 517 | }, 518 | "language_info": { 519 | "codemirror_mode": { 520 | "name": "ipython", 521 | "version": 3 522 | }, 523 | "file_extension": ".py", 524 | "mimetype": "text/x-python", 525 | "name": "python", 526 | "nbconvert_exporter": "python", 527 | "pygments_lexer": "ipython3", 528 | "version": "3.6.8" 529 | } 530 | }, 531 | "nbformat": 4, 532 | "nbformat_minor": 2 533 | } 534 | -------------------------------------------------------------------------------- /Session 3/Session3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vverdhan/MachineLearningSessionsJan2021/586f8e2e6ba576eacb7bc4489178a75c54eec7dd/Session 3/Session3.pdf -------------------------------------------------------------------------------- /Session1/Content: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Session1/Session1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vverdhan/MachineLearningSessionsJan2021/586f8e2e6ba576eacb7bc4489178a75c54eec7dd/Session1/Session1.pdf -------------------------------------------------------------------------------- /Session4/Cust_Spend_Data.csv: -------------------------------------------------------------------------------- 1 | Cust_ID,Name,Avg_Mthly_Spend,No_Of_Visits,Apparel_Items,FnV_Items,Staples_Items 2 | 1,A,10000,2,1,1,0 3 | 2,B,7000,3,0,10,9 4 | 3,C,7000,7,1,3,4 5 | 4,D,6500,5,1,1,4 6 | 5,E,6000,6,0,12,3 7 | 6,F,4000,3,0,1,8 8 | 7,G,2500,5,0,11,2 9 | 8,H,2500,3,0,1,1 10 | 9,I,2000,2,0,2,2 11 | 10,J,1000,4,0,1,7 12 | -------------------------------------------------------------------------------- /Session4/Depression.csv: -------------------------------------------------------------------------------- 1 | "id","simplicity","fatalism","depression","adjsimp","adjfatal","adjdep" 2 | "1",0.92983,0.35589,0.5987,0.75934,0.10673,0.41865 3 | "2",0.91097,1.18439,0.72787,0.72717,0.99915,0.51688 4 | "3",0.53366,-0.05837,0.53411,0.62176,0.03811,0.70699 5 | "4",0.74118,0.35589,0.56641,0.83522,0.42218,0.65639 6 | "5",0.53366,0.77014,0.50182,0.47697,0.81423,0.53518 7 | "6",0.62799,1.39152,0.56641,0.40664,1.23261,0.34042 8 | "7",0.77891,0.35589,0.46953,0.84556,0.29789,0.42168 9 | "8",0.8355,0.56301,0.53411,1.49961,1.20366,1.08127 10 | "9",0.5148,0.77014,0.46953,0.31082,0.65651,0.36337 11 | "10",0.87323,0.35589,0.46953,1.40836,0.85391,0.91711 12 | "11",0.53366,0.56301,0.46953,0.43378,0.41506,0.32811 13 | "12",0.74118,0.35589,0.63099,0.53485,0.06531,0.411 14 | "13",0.68458,-0.05837,0.46953,1.17308,0.30413,0.83122 15 | "14",0.47707,0.97727,0.56641,0.42366,1.08912,0.64871 16 | "15",0.76004,0.97727,0.66329,0.755,1.13055,0.79753 17 | "16",0.98643,1.39152,0.72787,1.38099,1.82207,1.01999 18 | "17",0.36387,0.56301,0.56641,0.8206,1.04594,0.98004 19 | "18",0.8355,1.18439,0.56641,1.23164,1.67146,0.92942 20 | "19",0.55253,0.77014,0.5987,0.49834,0.81423,0.64106 21 | "20",0.38274,0.56301,0.56641,0.5524,0.7305,0.70702 22 | "21",0.53366,0.56301,0.46953,0.96973,0.88023,0.70239 23 | "22",0.70345,1.39152,0.5987,0.77089,1.50663,0.60579 24 | "23",1.11848,0.97727,0.69558,1.09622,0.88198,0.57515 25 | "24",0.74118,0.56301,0.66329,0.83522,0.65564,0.76227 26 | "25",0.57139,0.97727,0.63099,1.04486,1.47144,1.00768 27 | "26",0.70345,0.77014,0.46953,1.03886,1.03883,0.65177 28 | "27",0.47707,0.56301,0.46953,0.52526,0.61421,0.50757 29 | "28",0.57139,0.35589,0.50182,0.75529,0.45561,0.59349 30 | "29",0.64685,0.77014,0.53411,0.58359,0.73138,0.48458 31 | "30",0.85437,1.18439,0.53411,0.66306,0.99915,0.30513 32 | "31",1.09962,0.97727,0.63099,0.95166,0.80712,0.45395 33 | "32",1.19394,0.97727,0.5987,1.20329,0.96484,0.55517 34 | "33",0.57139,0.56301,0.46953,0.34253,0.29877,0.23454 35 | "34",1.04302,0.56301,0.5987,1.03234,0.49792,0.55517 36 | "35",1.28827,0.97727,0.72787,1.03136,0.69082,0.46625 37 | "36",0.25068,1.18439,0.50182,0.5368,1.54718,0.73 38 | "37",0.47707,0.77014,0.50182,0.51446,0.80624,0.49992 39 | "38",0.91097,0.35589,0.56641,0.99515,0.29789,0.52756 40 | "39",0.47707,0.35589,0.53411,0.23569,0.06531,0.30513 41 | "40",0.77891,-0.05837,0.53411,1.00115,0.03012,0.67172 42 | "41",0.38274,0.56301,0.46953,0.69719,0.88822,0.73765 43 | "42",1.3826,0.77014,1.30915,1.12741,0.41594,1.05856 44 | "43",1.2694,1.59865,1.34144,1.15478,1.54893,1.27331 45 | "44",0.72231,0.97727,1.14768,0.43348,0.85653,1.09682 46 | "45",1.00529,0.97727,1.21227,0.9788,0.92341,1.18277 47 | "46",0.98643,0.97727,1.11539,0.70026,0.73225,0.9327 48 | "47",0.5148,0.97727,1.0831,0.43401,0.96484,1.08454 49 | "48",1.68444,1.39152,1.37373,1.67889,1.5226,1.52332 50 | "49",1.2694,0.97727,1.01851,1.05318,0.85653,0.95565 51 | "50",2.08061,1.39152,1.27685,2.06284,1.27404,1.15978 52 | "51",1.04302,0.97727,1.17997,0.79676,0.85653,1.13211 53 | "52",0.92983,0.97727,1.0831,0.78093,0.88997,1.03392 54 | "53",1.59011,1.59865,1.14768,1.67363,1.74808,1.24102 55 | "54",0.77891,1.18439,1.11539,0.4544,0.92429,0.88975 56 | "55",1.23167,1.39152,1.27685,0.96725,1.15775,1.06621 57 | "56",1.34487,1.59865,1.37373,1.08467,1.34978,1.12914 58 | "57",0.47707,0.97727,1.14768,0.39127,0.96484,1.15513 59 | "58",1.30714,1.18439,1.14768,1.05273,0.92429,0.92504 60 | "59",1.42033,1.59865,1.21227,1.31493,1.5075,1.0892 61 | "60",1.326,1.18439,1.27685,1.19729,0.99915,1.11684 62 | "61",1.09962,0.56301,0.92163,1.38602,0.81336,1.18111 63 | "62",1.02416,0.56301,1.21227,1.02177,0.53934,1.26866 64 | "63",0.8921,0.97727,1.79354,0.7166,0.80712,1.72445 65 | "64",1.00529,1.18439,1.69666,0.71083,0.92429,1.525 66 | "65",2.85408,2.22003,1.5352,2.94977,2.24931,1.48506 67 | "66",0.68458,1.39152,1.59979,0.77111,1.58948,1.78573 68 | "67",2.11834,2.0129,1.50291,1.99319,1.94099,1.39914 69 | "68",1.57125,1.18439,1.92272,1.60907,1.11544,1.91624 70 | "69",1.74104,2.0129,2.0196,1.54422,1.85813,1.87792 71 | "70",0.87323,0.77014,1.76125,0.9848,0.8891,1.96219 72 | "71",0.72231,1.59865,2.24565,1.4406,2.2387,2.78763 73 | "72",1.74104,1.80577,2.05189,1.50102,1.45896,1.74144 74 | "73",0.81664,1.39152,1.40603,0.74352,1.30748,1.30863 75 | "74",1.30714,1.59865,1.66437,1.03113,1.30835,1.40382 76 | "75",0.70345,0.97727,1.43832,0.79248,1.12256,1.60927 77 | "76",1.85423,1.59865,1.63208,1.83881,1.63178,1.67682 78 | "77",2.26926,1.59865,1.85813,2.09935,1.2255,1.52969 79 | "78",1.04302,1.80577,1.47061,0.72117,1.50039,1.14913 80 | "79",1.79763,2.22003,1.40603,1.59752,2.05016,1.16443 81 | "80",2.11834,0.77014,2.0196,2.39515,0.8891,2.24452 82 | "81",1.42033,1.18439,1.47061,1.31493,1.04058,1.37153 83 | "82",0.98643,1.18439,1.56749,0.97903,1.23973,1.65687 84 | -------------------------------------------------------------------------------- /Session4/Readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Session4/Session4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vverdhan/MachineLearningSessionsJan2021/586f8e2e6ba576eacb7bc4489178a75c54eec7dd/Session4/Session4.pdf -------------------------------------------------------------------------------- /Session5/Readme: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Session5/Session5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vverdhan/MachineLearningSessionsJan2021/586f8e2e6ba576eacb7bc4489178a75c54eec7dd/Session5/Session5.pdf --------------------------------------------------------------------------------