├── README.md ├── Time Series Regression-Air Passengers └── AirPassengers.csv ├── Iris Data Analysis └── Iris classification using Tensorflow and Keras.ipynb ├── AV_LoanPrediction ├── test.csv └── train.csv └── CF Recommendation System - Examples └── CF Recommendation System - Examples.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Data-Science-Projects-in-Python 2 | Data-Science-Projects-in-Python 3 | -------------------------------------------------------------------------------- /Time Series Regression-Air Passengers/AirPassengers.csv: -------------------------------------------------------------------------------- 1 | Month,#Passengers 2 | 1949-01,112 3 | 1949-02,118 4 | 1949-03,132 5 | 1949-04,129 6 | 1949-05,121 7 | 1949-06,135 8 | 1949-07,148 9 | 1949-08,148 10 | 1949-09,136 11 | 1949-10,119 12 | 1949-11,104 13 | 1949-12,118 14 | 1950-01,115 15 | 1950-02,126 16 | 1950-03,141 17 | 1950-04,135 18 | 1950-05,125 19 | 1950-06,149 20 | 1950-07,170 21 | 1950-08,170 22 | 1950-09,158 23 | 1950-10,133 24 | 1950-11,114 25 | 1950-12,140 26 | 1951-01,145 27 | 1951-02,150 28 | 1951-03,178 29 | 1951-04,163 30 | 1951-05,172 31 | 1951-06,178 32 | 1951-07,199 33 | 1951-08,199 34 | 1951-09,184 35 | 1951-10,162 36 | 1951-11,146 37 | 1951-12,166 38 | 1952-01,171 39 | 1952-02,180 40 | 1952-03,193 41 | 1952-04,181 42 | 1952-05,183 43 | 1952-06,218 44 | 1952-07,230 45 | 1952-08,242 46 | 1952-09,209 47 | 1952-10,191 48 | 1952-11,172 49 | 1952-12,194 50 | 1953-01,196 51 | 1953-02,196 52 | 1953-03,236 53 | 1953-04,235 54 | 1953-05,229 55 | 1953-06,243 56 | 1953-07,264 57 | 1953-08,272 58 | 1953-09,237 59 | 1953-10,211 60 | 1953-11,180 61 | 1953-12,201 62 | 1954-01,204 63 | 1954-02,188 64 | 1954-03,235 65 | 1954-04,227 66 | 1954-05,234 67 | 1954-06,264 68 | 1954-07,302 69 | 1954-08,293 70 | 1954-09,259 71 | 1954-10,229 72 | 1954-11,203 73 | 1954-12,229 74 | 1955-01,242 75 | 1955-02,233 76 | 1955-03,267 77 | 1955-04,269 78 | 1955-05,270 79 | 1955-06,315 80 | 1955-07,364 81 | 1955-08,347 82 | 1955-09,312 83 | 1955-10,274 84 | 1955-11,237 85 | 1955-12,278 86 | 1956-01,284 87 | 1956-02,277 88 | 1956-03,317 89 | 1956-04,313 90 | 1956-05,318 91 | 1956-06,374 92 | 1956-07,413 93 | 1956-08,405 94 | 1956-09,355 95 | 1956-10,306 96 | 1956-11,271 97 | 1956-12,306 98 | 1957-01,315 99 | 1957-02,301 100 | 1957-03,356 101 | 1957-04,348 102 | 1957-05,355 103 | 1957-06,422 104 | 1957-07,465 105 | 1957-08,467 106 | 1957-09,404 107 | 1957-10,347 108 | 1957-11,305 109 | 1957-12,336 110 | 1958-01,340 111 | 1958-02,318 112 | 1958-03,362 113 | 1958-04,348 114 | 1958-05,363 115 | 1958-06,435 116 | 1958-07,491 117 | 1958-08,505 118 | 1958-09,404 119 | 1958-10,359 120 | 1958-11,310 121 | 1958-12,337 122 | 1959-01,360 123 | 1959-02,342 124 | 1959-03,406 125 | 1959-04,396 126 | 1959-05,420 127 | 1959-06,472 128 | 1959-07,548 129 | 1959-08,559 130 | 1959-09,463 131 | 1959-10,407 132 | 1959-11,362 133 | 1959-12,405 134 | 1960-01,417 135 | 1960-02,391 136 | 1960-03,419 137 | 1960-04,461 138 | 1960-05,472 139 | 1960-06,535 140 | 1960-07,622 141 | 1960-08,606 142 | 1960-09,508 143 | 1960-10,461 144 | 1960-11,390 145 | 1960-12,432 146 | -------------------------------------------------------------------------------- /Iris Data Analysis/Iris classification using Tensorflow and Keras.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "A Simple Neural Network in Keras and TensorFlow to classify the Iris Dataset" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 125, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "#making required imports\n", 17 | "import tensorflow as tf\n", 18 | "from tensorflow import keras\n", 19 | "import numpy as np\n", 20 | "import matplotlib.pyplot as plt\n", 21 | "import pandas as pd\n", 22 | "from sklearn.model_selection import train_test_split\n", 23 | "%matplotlib inline" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 126, 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "#Loading the Iris dataset\n", 33 | "url = \"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\"\n", 34 | "names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']\n", 35 | "iris = pd.read_csv(url, names=names)" 36 | ] 37 | }, 38 | { 39 | "cell_type": "code", 40 | "execution_count": 127, 41 | "metadata": {}, 42 | "outputs": [ 43 | { 44 | "name": "stdout", 45 | "output_type": "stream", 46 | "text": [ 47 | "\n", 48 | "(150, 5)\n" 49 | ] 50 | } 51 | ], 52 | "source": [ 53 | "print(type(iris))\n", 54 | "print(iris.shape)" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 128, 60 | "metadata": {}, 61 | "outputs": [ 62 | { 63 | "data": { 64 | "text/plain": [ 65 | "array(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], dtype=object)" 66 | ] 67 | }, 68 | "execution_count": 128, 69 | "metadata": {}, 70 | "output_type": "execute_result" 71 | } 72 | ], 73 | "source": [ 74 | "#checking unique values for labels\n", 75 | "iris['class'].unique()" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": 129, 81 | "metadata": { 82 | "collapsed": true 83 | }, 84 | "outputs": [], 85 | "source": [ 86 | "#encoding categorical labels to numeric (0,1,2)\n", 87 | "iris['class'] = iris['class'].map({'Iris-setosa':0, 'Iris-versicolor':1,'Iris-virginica':2}) " 88 | ] 89 | }, 90 | { 91 | "cell_type": "code", 92 | "execution_count": 130, 93 | "metadata": {}, 94 | "outputs": [ 95 | { 96 | "data": { 97 | "text/plain": [ 98 | "array([0, 1, 2], dtype=int64)" 99 | ] 100 | }, 101 | "execution_count": 130, 102 | "metadata": {}, 103 | "output_type": "execute_result" 104 | } 105 | ], 106 | "source": [ 107 | "iris['class'].unique()" 108 | ] 109 | }, 110 | { 111 | "cell_type": "code", 112 | "execution_count": 131, 113 | "metadata": { 114 | "collapsed": true 115 | }, 116 | "outputs": [], 117 | "source": [ 118 | "#separate class labels from features\n", 119 | "labels = iris['class'].copy()\n", 120 | "iris.drop(labels=['class'], inplace=True, axis=1)" 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": 132, 126 | "metadata": {}, 127 | "outputs": [], 128 | "source": [ 129 | "#split the dataset into train and test sets\n", 130 | "train_data, test_data, train_labels, test_labels = train_test_split(iris, labels, test_size=0.20, shuffle=True)" 131 | ] 132 | }, 133 | { 134 | "cell_type": "code", 135 | "execution_count": 133, 136 | "metadata": {}, 137 | "outputs": [ 138 | { 139 | "name": "stdout", 140 | "output_type": "stream", 141 | "text": [ 142 | "(120, 4) (120,)\n", 143 | "(30, 4) (30,)\n" 144 | ] 145 | } 146 | ], 147 | "source": [ 148 | "#checking datasets' shapes\n", 149 | "print(train_data.shape, train_labels.shape)\n", 150 | "print(test_data.shape,test_labels.shape)" 151 | ] 152 | }, 153 | { 154 | "cell_type": "code", 155 | "execution_count": 134, 156 | "metadata": {}, 157 | "outputs": [], 158 | "source": [ 159 | "#building up neural network model\n", 160 | "#setting up layers\n", 161 | "model = keras.Sequential([\n", 162 | " \n", 163 | " keras.layers.Dense(64, input_shape = (4,), activation=tf.nn.relu),\n", 164 | " keras.layers.Dense(128, activation=tf.nn.relu),\n", 165 | " keras.layers.Dense(3, activation=tf.nn.softmax)\n", 166 | "])" 167 | ] 168 | }, 169 | { 170 | "cell_type": "code", 171 | "execution_count": 150, 172 | "metadata": {}, 173 | "outputs": [ 174 | { 175 | "name": "stdout", 176 | "output_type": "stream", 177 | "text": [ 178 | "_________________________________________________________________\n", 179 | "Layer (type) Output Shape Param # \n", 180 | "=================================================================\n", 181 | "dense_27 (Dense) (None, 64) 320 \n", 182 | "_________________________________________________________________\n", 183 | "dense_28 (Dense) (None, 128) 8320 \n", 184 | "_________________________________________________________________\n", 185 | "dense_29 (Dense) (None, 3) 387 \n", 186 | "=================================================================\n", 187 | "Total params: 9,027\n", 188 | "Trainable params: 9,027\n", 189 | "Non-trainable params: 0\n", 190 | "_________________________________________________________________\n", 191 | "None\n" 192 | ] 193 | } 194 | ], 195 | "source": [ 196 | "#compiling the model\n", 197 | "model.compile(optimizer=tf.train.AdamOptimizer(), \n", 198 | " loss='sparse_categorical_crossentropy',\n", 199 | " metrics=['accuracy'])\n", 200 | "print(model.summary())" 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": 151, 206 | "metadata": {}, 207 | "outputs": [ 208 | { 209 | "name": "stdout", 210 | "output_type": "stream", 211 | "text": [ 212 | "Epoch 1/10\n", 213 | "120/120 [==============================] - 2s 13ms/step - loss: 0.0790 - acc: 0.9750\n", 214 | "Epoch 2/10\n", 215 | "120/120 [==============================] - 0s 667us/step - loss: 0.0798 - acc: 0.9667\n", 216 | "Epoch 3/10\n", 217 | "120/120 [==============================] - 0s 750us/step - loss: 0.0771 - acc: 0.9750\n", 218 | "Epoch 4/10\n", 219 | "120/120 [==============================] - 0s 417us/step - loss: 0.0793 - acc: 0.9750\n", 220 | "Epoch 5/10\n", 221 | "120/120 [==============================] - 0s 417us/step - loss: 0.0849 - acc: 0.9750\n", 222 | "Epoch 6/10\n", 223 | "120/120 [==============================] - 0s 500us/step - loss: 0.0786 - acc: 0.9750\n", 224 | "Epoch 7/10\n", 225 | "120/120 [==============================] - 0s 600us/step - loss: 0.0921 - acc: 0.9583\n", 226 | "Epoch 8/10\n", 227 | "120/120 [==============================] - 0s 417us/step - loss: 0.0737 - acc: 0.9750\n", 228 | "Epoch 9/10\n", 229 | "120/120 [==============================] - 0s 417us/step - loss: 0.0874 - acc: 0.9667\n", 230 | "Epoch 10/10\n", 231 | "120/120 [==============================] - 0s 667us/step - loss: 0.0707 - acc: 0.9750\n" 232 | ] 233 | }, 234 | { 235 | "data": { 236 | "text/plain": [ 237 | "" 238 | ] 239 | }, 240 | "execution_count": 151, 241 | "metadata": {}, 242 | "output_type": "execute_result" 243 | } 244 | ], 245 | "source": [ 246 | "#train the model\n", 247 | "model.fit(train_data,train_labels, epochs=10, batch_size =10)" 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "execution_count": 152, 253 | "metadata": {}, 254 | "outputs": [ 255 | { 256 | "name": "stdout", 257 | "output_type": "stream", 258 | "text": [ 259 | "30/30 [==============================] - 1s 21ms/step\n", 260 | "Test accuracy: 0.9666666388511658\n" 261 | ] 262 | } 263 | ], 264 | "source": [ 265 | "#Evaluating the model on test set\n", 266 | "test_loss, test_acc = model.evaluate(test_data, test_labels)\n", 267 | "\n", 268 | "print('Test accuracy:', test_acc)\n", 269 | "#higher train accuracy that test accuracy indicates the amount the model overfits the data" 270 | ] 271 | }, 272 | { 273 | "cell_type": "code", 274 | "execution_count": 153, 275 | "metadata": {}, 276 | "outputs": [ 277 | { 278 | "data": { 279 | "text/plain": [ 280 | "array([2.7292182e-07, 3.5119098e-01, 6.4880878e-01], dtype=float32)" 281 | ] 282 | }, 283 | "execution_count": 153, 284 | "metadata": {}, 285 | "output_type": "execute_result" 286 | } 287 | ], 288 | "source": [ 289 | "#Making predictions on test set\n", 290 | "predictions = model.predict(test_data)\n", 291 | "predictions[4]" 292 | ] 293 | }, 294 | { 295 | "cell_type": "markdown", 296 | "metadata": {}, 297 | "source": [ 298 | "A prediction is an array of 3 numbers. These describe the \"confidence\" of the model that the image corresponds to each of the 3 different labels. We can see which label has the highest confidence value" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 154, 304 | "metadata": {}, 305 | "outputs": [ 306 | { 307 | "data": { 308 | "text/plain": [ 309 | "2" 310 | ] 311 | }, 312 | "execution_count": 154, 313 | "metadata": {}, 314 | "output_type": "execute_result" 315 | } 316 | ], 317 | "source": [ 318 | "np.argmax(predictions[4])" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": 155, 324 | "metadata": {}, 325 | "outputs": [ 326 | { 327 | "data": { 328 | "text/plain": [ 329 | "2" 330 | ] 331 | }, 332 | "execution_count": 155, 333 | "metadata": {}, 334 | "output_type": "execute_result" 335 | } 336 | ], 337 | "source": [ 338 | "#Verifying that the prediction matches the test label...and yes it does\n", 339 | "test_labels.iloc[4]" 340 | ] 341 | }, 342 | { 343 | "cell_type": "markdown", 344 | "metadata": {}, 345 | "source": [ 346 | "End of notebook
\n", 347 | "Thanks for reading!" 348 | ] 349 | } 350 | ], 351 | "metadata": { 352 | "kernelspec": { 353 | "display_name": "Python [conda env:tensorflow]", 354 | "language": "python", 355 | "name": "conda-env-tensorflow-py" 356 | }, 357 | "language_info": { 358 | "codemirror_mode": { 359 | "name": "ipython", 360 | "version": 3 361 | }, 362 | "file_extension": ".py", 363 | "mimetype": "text/x-python", 364 | "name": "python", 365 | "nbconvert_exporter": "python", 366 | "pygments_lexer": "ipython3", 367 | "version": "3.5.5" 368 | } 369 | }, 370 | "nbformat": 4, 371 | "nbformat_minor": 2 372 | } 373 | -------------------------------------------------------------------------------- /AV_LoanPrediction/test.csv: -------------------------------------------------------------------------------- 1 | Loan_ID,Gender,Married,Dependents,Education,Self_Employed,ApplicantIncome,CoapplicantIncome,LoanAmount,Loan_Amount_Term,Credit_History,Property_Area 2 | LP001015,Male,Yes,0,Graduate,No,5720,0,110,360,1,Urban 3 | LP001022,Male,Yes,1,Graduate,No,3076,1500,126,360,1,Urban 4 | LP001031,Male,Yes,2,Graduate,No,5000,1800,208,360,1,Urban 5 | LP001035,Male,Yes,2,Graduate,No,2340,2546,100,360,,Urban 6 | LP001051,Male,No,0,Not Graduate,No,3276,0,78,360,1,Urban 7 | LP001054,Male,Yes,0,Not Graduate,Yes,2165,3422,152,360,1,Urban 8 | LP001055,Female,No,1,Not Graduate,No,2226,0,59,360,1,Semiurban 9 | LP001056,Male,Yes,2,Not Graduate,No,3881,0,147,360,0,Rural 10 | LP001059,Male,Yes,2,Graduate,,13633,0,280,240,1,Urban 11 | LP001067,Male,No,0,Not Graduate,No,2400,2400,123,360,1,Semiurban 12 | LP001078,Male,No,0,Not Graduate,No,3091,0,90,360,1,Urban 13 | LP001082,Male,Yes,1,Graduate,,2185,1516,162,360,1,Semiurban 14 | LP001083,Male,No,3+,Graduate,No,4166,0,40,180,,Urban 15 | LP001094,Male,Yes,2,Graduate,,12173,0,166,360,0,Semiurban 16 | LP001096,Female,No,0,Graduate,No,4666,0,124,360,1,Semiurban 17 | LP001099,Male,No,1,Graduate,No,5667,0,131,360,1,Urban 18 | LP001105,Male,Yes,2,Graduate,No,4583,2916,200,360,1,Urban 19 | LP001107,Male,Yes,3+,Graduate,No,3786,333,126,360,1,Semiurban 20 | LP001108,Male,Yes,0,Graduate,No,9226,7916,300,360,1,Urban 21 | LP001115,Male,No,0,Graduate,No,1300,3470,100,180,1,Semiurban 22 | LP001121,Male,Yes,1,Not Graduate,No,1888,1620,48,360,1,Urban 23 | LP001124,Female,No,3+,Not Graduate,No,2083,0,28,180,1,Urban 24 | LP001128,,No,0,Graduate,No,3909,0,101,360,1,Urban 25 | LP001135,Female,No,0,Not Graduate,No,3765,0,125,360,1,Urban 26 | LP001149,Male,Yes,0,Graduate,No,5400,4380,290,360,1,Urban 27 | LP001153,Male,No,0,Graduate,No,0,24000,148,360,0,Rural 28 | LP001163,Male,Yes,2,Graduate,No,4363,1250,140,360,,Urban 29 | LP001169,Male,Yes,0,Graduate,No,7500,3750,275,360,1,Urban 30 | LP001174,Male,Yes,0,Graduate,No,3772,833,57,360,,Semiurban 31 | LP001176,Male,No,0,Graduate,No,2942,2382,125,180,1,Urban 32 | LP001177,Female,No,0,Not Graduate,No,2478,0,75,360,1,Semiurban 33 | LP001183,Male,Yes,2,Graduate,No,6250,820,192,360,1,Urban 34 | LP001185,Male,No,0,Graduate,No,3268,1683,152,360,1,Semiurban 35 | LP001187,Male,Yes,0,Graduate,No,2783,2708,158,360,1,Urban 36 | LP001190,Male,Yes,0,Graduate,No,2740,1541,101,360,1,Urban 37 | LP001203,Male,No,0,Graduate,No,3150,0,176,360,0,Semiurban 38 | LP001208,Male,Yes,2,Graduate,,7350,4029,185,180,1,Urban 39 | LP001210,Male,Yes,0,Graduate,Yes,2267,2792,90,360,1,Urban 40 | LP001211,Male,No,0,Graduate,Yes,5833,0,116,360,1,Urban 41 | LP001219,Male,No,0,Graduate,No,3643,1963,138,360,1,Urban 42 | LP001220,Male,Yes,0,Graduate,No,5629,818,100,360,1,Urban 43 | LP001221,Female,No,0,Graduate,No,3644,0,110,360,1,Urban 44 | LP001226,Male,Yes,0,Not Graduate,No,1750,2024,90,360,1,Semiurban 45 | LP001230,Male,No,0,Graduate,No,6500,2600,200,360,1,Semiurban 46 | LP001231,Female,No,0,Graduate,No,3666,0,84,360,1,Urban 47 | LP001232,Male,Yes,0,Graduate,No,4260,3900,185,,,Urban 48 | LP001237,Male,Yes,,Not Graduate,No,4163,1475,162,360,1,Urban 49 | LP001242,Male,No,0,Not Graduate,No,2356,1902,108,360,1,Semiurban 50 | LP001268,Male,No,0,Graduate,No,6792,3338,187,,1,Urban 51 | LP001270,Male,Yes,3+,Not Graduate,Yes,8000,250,187,360,1,Semiurban 52 | LP001284,Male,Yes,1,Graduate,No,2419,1707,124,360,1,Urban 53 | LP001287,,Yes,3+,Not Graduate,No,3500,833,120,360,1,Semiurban 54 | LP001291,Male,Yes,1,Graduate,No,3500,3077,160,360,1,Semiurban 55 | LP001298,Male,Yes,2,Graduate,No,4116,1000,30,180,1,Urban 56 | LP001312,Male,Yes,0,Not Graduate,Yes,5293,0,92,360,1,Urban 57 | LP001313,Male,No,0,Graduate,No,2750,0,130,360,0,Urban 58 | LP001317,Female,No,0,Not Graduate,No,4402,0,130,360,1,Rural 59 | LP001321,Male,Yes,2,Graduate,No,3613,3539,134,180,1,Semiurban 60 | LP001323,Female,Yes,2,Graduate,No,2779,3664,176,360,0,Semiurban 61 | LP001324,Male,Yes,3+,Graduate,No,4720,0,90,180,1,Semiurban 62 | LP001332,Male,Yes,0,Not Graduate,No,2415,1721,110,360,1,Semiurban 63 | LP001335,Male,Yes,0,Graduate,Yes,7016,292,125,360,1,Urban 64 | LP001338,Female,No,2,Graduate,No,4968,0,189,360,1,Semiurban 65 | LP001347,Female,No,0,Graduate,No,2101,1500,108,360,0,Rural 66 | LP001348,Male,Yes,3+,Not Graduate,No,4490,0,125,360,1,Urban 67 | LP001351,Male,Yes,0,Graduate,No,2917,3583,138,360,1,Semiurban 68 | LP001352,Male,Yes,0,Not Graduate,No,4700,0,135,360,0,Semiurban 69 | LP001358,Male,Yes,0,Graduate,No,3445,0,130,360,0,Semiurban 70 | LP001359,Male,Yes,0,Graduate,No,7666,0,187,360,1,Semiurban 71 | LP001361,Male,Yes,0,Graduate,No,2458,5105,188,360,0,Rural 72 | LP001366,Female,No,,Graduate,No,3250,0,95,360,1,Semiurban 73 | LP001368,Male,No,0,Graduate,No,4463,0,65,360,1,Semiurban 74 | LP001375,Male,Yes,1,Graduate,,4083,1775,139,60,1,Urban 75 | LP001380,Male,Yes,0,Graduate,Yes,3900,2094,232,360,1,Rural 76 | LP001386,Male,Yes,0,Not Graduate,No,4750,3583,144,360,1,Semiurban 77 | LP001400,Male,No,0,Graduate,No,3583,3435,155,360,1,Urban 78 | LP001407,Male,Yes,0,Graduate,No,3189,2367,186,360,1,Urban 79 | LP001413,Male,No,0,Graduate,Yes,6356,0,50,360,1,Rural 80 | LP001415,Male,Yes,1,Graduate,No,3413,4053,,360,1,Semiurban 81 | LP001419,Female,Yes,0,Graduate,No,7950,0,185,360,1,Urban 82 | LP001420,Male,Yes,3+,Graduate,No,3829,1103,163,360,0,Urban 83 | LP001428,Male,Yes,3+,Graduate,No,72529,0,360,360,1,Urban 84 | LP001445,Male,Yes,2,Not Graduate,No,4136,0,149,480,0,Rural 85 | LP001446,Male,Yes,0,Graduate,No,8449,0,257,360,1,Rural 86 | LP001450,Male,Yes,0,Graduate,No,4456,0,131,180,0,Semiurban 87 | LP001452,Male,Yes,2,Graduate,No,4635,8000,102,180,1,Rural 88 | LP001455,Male,Yes,0,Graduate,No,3571,1917,135,360,1,Urban 89 | LP001466,Male,No,0,Graduate,No,3066,0,95,360,1,Semiurban 90 | LP001471,Male,No,2,Not Graduate,No,3235,2015,77,360,1,Semiurban 91 | LP001472,Female,No,0,Graduate,,5058,0,200,360,1,Rural 92 | LP001475,Male,Yes,0,Graduate,Yes,3188,2286,130,360,,Rural 93 | LP001483,Male,Yes,3+,Graduate,No,13518,0,390,360,1,Rural 94 | LP001486,Male,Yes,1,Graduate,No,4364,2500,185,360,1,Semiurban 95 | LP001490,Male,Yes,2,Not Graduate,No,4766,1646,100,360,1,Semiurban 96 | LP001496,Male,Yes,1,Graduate,No,4609,2333,123,360,0,Semiurban 97 | LP001499,Female,Yes,3+,Graduate,No,6260,0,110,360,1,Semiurban 98 | LP001500,Male,Yes,1,Graduate,No,3333,4200,256,360,1,Urban 99 | LP001501,Male,Yes,0,Graduate,No,3500,3250,140,360,1,Semiurban 100 | LP001517,Male,Yes,3+,Graduate,No,9719,0,61,360,1,Urban 101 | LP001527,Male,Yes,3+,Graduate,No,6835,0,188,360,,Semiurban 102 | LP001534,Male,No,0,Graduate,No,4452,0,131,360,1,Rural 103 | LP001542,Female,Yes,0,Graduate,No,2262,0,,480,0,Semiurban 104 | LP001547,Male,Yes,1,Graduate,No,3901,0,116,360,1,Urban 105 | LP001548,Male,Yes,2,Not Graduate,No,2687,0,50,180,1,Rural 106 | LP001558,Male,No,0,Graduate,No,2243,2233,107,360,,Semiurban 107 | LP001561,Female,Yes,0,Graduate,No,3417,1287,200,360,1,Semiurban 108 | LP001563,,No,0,Graduate,No,1596,1760,119,360,0,Urban 109 | LP001567,Male,Yes,3+,Graduate,No,4513,0,120,360,1,Rural 110 | LP001568,Male,Yes,0,Graduate,No,4500,0,140,360,1,Semiurban 111 | LP001573,Male,Yes,0,Not Graduate,No,4523,1350,165,360,1,Urban 112 | LP001584,Female,No,0,Graduate,Yes,4742,0,108,360,1,Semiurban 113 | LP001587,Male,Yes,,Graduate,No,4082,0,93,360,1,Semiurban 114 | LP001589,Female,No,0,Graduate,No,3417,0,102,360,1,Urban 115 | LP001591,Female,Yes,2,Graduate,No,2922,3396,122,360,1,Semiurban 116 | LP001599,Male,Yes,0,Graduate,No,4167,4754,160,360,1,Rural 117 | LP001601,Male,No,3+,Graduate,No,4243,4123,157,360,,Semiurban 118 | LP001607,Female,No,0,Not Graduate,No,0,1760,180,360,1,Semiurban 119 | LP001611,Male,Yes,1,Graduate,No,1516,2900,80,,0,Rural 120 | LP001613,Female,No,0,Graduate,No,1762,2666,104,360,0,Urban 121 | LP001622,Male,Yes,2,Graduate,No,724,3510,213,360,0,Rural 122 | LP001627,Male,No,0,Graduate,No,3125,0,65,360,1,Urban 123 | LP001650,Male,Yes,0,Graduate,No,2333,3803,146,360,1,Rural 124 | LP001651,Male,Yes,3+,Graduate,No,3350,1560,135,360,1,Urban 125 | LP001652,Male,No,0,Graduate,No,2500,6414,187,360,0,Rural 126 | LP001655,Female,No,0,Graduate,No,12500,0,300,360,0,Urban 127 | LP001660,Male,No,0,Graduate,No,4667,0,120,360,1,Semiurban 128 | LP001662,Male,No,0,Graduate,No,6500,0,71,360,0,Urban 129 | LP001663,Male,Yes,2,Graduate,No,7500,0,225,360,1,Urban 130 | LP001667,Male,No,0,Graduate,No,3073,0,70,180,1,Urban 131 | LP001695,Male,Yes,1,Not Graduate,No,3321,2088,70,,1,Semiurban 132 | LP001703,Male,Yes,0,Graduate,No,3333,1270,124,360,1,Urban 133 | LP001718,Male,No,0,Graduate,No,3391,0,132,360,1,Rural 134 | LP001728,Male,Yes,1,Graduate,Yes,3343,1517,105,360,1,Rural 135 | LP001735,Female,No,1,Graduate,No,3620,0,90,360,1,Urban 136 | LP001737,Male,No,0,Graduate,No,4000,0,83,84,1,Urban 137 | LP001739,Male,Yes,0,Graduate,No,4258,0,125,360,1,Urban 138 | LP001742,Male,Yes,2,Graduate,No,4500,0,147,360,1,Rural 139 | LP001757,Male,Yes,1,Graduate,No,2014,2925,120,360,1,Rural 140 | LP001769,,No,,Graduate,No,3333,1250,110,360,1,Semiurban 141 | LP001771,Female,No,3+,Graduate,No,4083,0,103,360,,Semiurban 142 | LP001785,Male,No,0,Graduate,No,4727,0,150,360,0,Rural 143 | LP001787,Male,Yes,3+,Graduate,No,3089,2999,100,240,1,Rural 144 | LP001789,Male,Yes,3+,Not Graduate,,6794,528,139,360,0,Urban 145 | LP001791,Male,Yes,0,Graduate,Yes,32000,0,550,360,,Semiurban 146 | LP001794,Male,Yes,2,Graduate,Yes,10890,0,260,12,1,Rural 147 | LP001797,Female,No,0,Graduate,No,12941,0,150,300,1,Urban 148 | LP001815,Male,No,0,Not Graduate,No,3276,0,90,360,1,Semiurban 149 | LP001817,Male,No,0,Not Graduate,Yes,8703,0,199,360,0,Rural 150 | LP001818,Male,Yes,1,Graduate,No,4742,717,139,360,1,Semiurban 151 | LP001822,Male,No,0,Graduate,No,5900,0,150,360,1,Urban 152 | LP001827,Male,No,0,Graduate,No,3071,4309,180,360,1,Urban 153 | LP001831,Male,Yes,0,Graduate,No,2783,1456,113,360,1,Urban 154 | LP001842,Male,No,0,Graduate,No,5000,0,148,360,1,Rural 155 | LP001853,Male,Yes,1,Not Graduate,No,2463,2360,117,360,0,Urban 156 | LP001855,Male,Yes,2,Graduate,No,4855,0,72,360,1,Rural 157 | LP001857,Male,No,0,Not Graduate,Yes,1599,2474,125,300,1,Semiurban 158 | LP001862,Male,Yes,2,Graduate,Yes,4246,4246,214,360,1,Urban 159 | LP001867,Male,Yes,0,Graduate,No,4333,2291,133,350,1,Rural 160 | LP001878,Male,No,1,Graduate,No,5823,2529,187,360,1,Semiurban 161 | LP001881,Male,Yes,0,Not Graduate,No,7895,0,143,360,1,Rural 162 | LP001886,Male,No,0,Graduate,No,4150,4256,209,360,1,Rural 163 | LP001906,Male,No,0,Graduate,,2964,0,84,360,0,Semiurban 164 | LP001909,Male,No,0,Graduate,No,5583,0,116,360,1,Urban 165 | LP001911,Female,No,0,Graduate,No,2708,0,65,360,1,Rural 166 | LP001921,Male,No,1,Graduate,No,3180,2370,80,240,,Rural 167 | LP001923,Male,No,0,Not Graduate,No,2268,0,170,360,0,Semiurban 168 | LP001933,Male,No,2,Not Graduate,No,1141,2017,120,360,0,Urban 169 | LP001943,Male,Yes,0,Graduate,No,3042,3167,135,360,1,Urban 170 | LP001950,Female,Yes,3+,Graduate,,1750,2935,94,360,0,Semiurban 171 | LP001959,Female,Yes,1,Graduate,No,3564,0,79,360,1,Rural 172 | LP001961,Female,No,0,Graduate,No,3958,0,110,360,1,Rural 173 | LP001973,Male,Yes,2,Not Graduate,No,4483,0,130,360,1,Rural 174 | LP001975,Male,Yes,0,Graduate,No,5225,0,143,360,1,Rural 175 | LP001979,Male,No,0,Graduate,No,3017,2845,159,180,0,Urban 176 | LP001995,Male,Yes,0,Not Graduate,No,2431,1820,110,360,0,Rural 177 | LP001999,Male,Yes,2,Graduate,,4912,4614,160,360,1,Rural 178 | LP002007,Male,Yes,2,Not Graduate,No,2500,3333,131,360,1,Urban 179 | LP002009,Female,No,0,Graduate,No,2918,0,65,360,,Rural 180 | LP002016,Male,Yes,2,Graduate,No,5128,0,143,360,1,Rural 181 | LP002017,Male,Yes,3+,Graduate,No,15312,0,187,360,,Urban 182 | LP002018,Male,Yes,2,Graduate,No,3958,2632,160,360,1,Semiurban 183 | LP002027,Male,Yes,0,Graduate,No,4334,2945,165,360,1,Semiurban 184 | LP002028,Male,Yes,2,Graduate,No,4358,0,110,360,1,Urban 185 | LP002042,Female,Yes,1,Graduate,No,4000,3917,173,360,1,Rural 186 | LP002045,Male,Yes,3+,Graduate,No,10166,750,150,,1,Urban 187 | LP002046,Male,Yes,0,Not Graduate,No,4483,0,135,360,,Semiurban 188 | LP002047,Male,Yes,2,Not Graduate,No,4521,1184,150,360,1,Semiurban 189 | LP002056,Male,Yes,2,Graduate,No,9167,0,235,360,1,Semiurban 190 | LP002057,Male,Yes,0,Not Graduate,No,13083,0,,360,1,Rural 191 | LP002059,Male,Yes,2,Graduate,No,7874,3967,336,360,1,Rural 192 | LP002062,Female,Yes,1,Graduate,No,4333,0,132,84,1,Rural 193 | LP002064,Male,No,0,Graduate,No,4083,0,96,360,1,Urban 194 | LP002069,Male,Yes,2,Not Graduate,,3785,2912,180,360,0,Rural 195 | LP002070,Male,Yes,3+,Not Graduate,No,2654,1998,128,360,0,Rural 196 | LP002077,Male,Yes,1,Graduate,No,10000,2690,412,360,1,Semiurban 197 | LP002083,Male,No,0,Graduate,Yes,5833,0,116,360,1,Urban 198 | LP002090,Male,Yes,1,Graduate,No,4796,0,114,360,0,Semiurban 199 | LP002096,Male,Yes,0,Not Graduate,No,2000,1600,115,360,1,Rural 200 | LP002099,Male,Yes,2,Graduate,No,2540,700,104,360,0,Urban 201 | LP002102,Male,Yes,0,Graduate,Yes,1900,1442,88,360,1,Rural 202 | LP002105,Male,Yes,0,Graduate,Yes,8706,0,108,480,1,Rural 203 | LP002107,Male,Yes,3+,Not Graduate,No,2855,542,90,360,1,Urban 204 | LP002111,Male,Yes,,Graduate,No,3016,1300,100,360,,Urban 205 | LP002117,Female,Yes,0,Graduate,No,3159,2374,108,360,1,Semiurban 206 | LP002118,Female,No,0,Graduate,No,1937,1152,78,360,1,Semiurban 207 | LP002123,Male,Yes,0,Graduate,No,2613,2417,123,360,1,Semiurban 208 | LP002125,Male,Yes,1,Graduate,No,4960,2600,187,360,1,Semiurban 209 | LP002148,Male,Yes,1,Graduate,No,3074,1083,146,360,1,Semiurban 210 | LP002152,Female,No,0,Graduate,No,4213,0,80,360,1,Urban 211 | LP002165,,No,1,Not Graduate,No,2038,4027,100,360,1,Rural 212 | LP002167,Female,No,0,Graduate,No,2362,0,55,360,1,Urban 213 | LP002168,Male,No,0,Graduate,No,5333,2400,200,360,0,Rural 214 | LP002172,Male,Yes,3+,Graduate,Yes,5384,0,150,360,1,Semiurban 215 | LP002176,Male,No,0,Graduate,No,5708,0,150,360,1,Rural 216 | LP002183,Male,Yes,0,Not Graduate,No,3754,3719,118,,1,Rural 217 | LP002184,Male,Yes,0,Not Graduate,No,2914,2130,150,300,1,Urban 218 | LP002186,Male,Yes,0,Not Graduate,No,2747,2458,118,36,1,Semiurban 219 | LP002192,Male,Yes,0,Graduate,No,7830,2183,212,360,1,Rural 220 | LP002195,Male,Yes,1,Graduate,Yes,3507,3148,212,360,1,Rural 221 | LP002208,Male,Yes,1,Graduate,No,3747,2139,125,360,1,Urban 222 | LP002212,Male,Yes,0,Graduate,No,2166,2166,108,360,,Urban 223 | LP002240,Male,Yes,0,Not Graduate,No,3500,2168,149,360,1,Rural 224 | LP002245,Male,Yes,2,Not Graduate,No,2896,0,80,480,1,Urban 225 | LP002253,Female,No,1,Graduate,No,5062,0,152,300,1,Rural 226 | LP002256,Female,No,2,Graduate,Yes,5184,0,187,360,0,Semiurban 227 | LP002257,Female,No,0,Graduate,No,2545,0,74,360,1,Urban 228 | LP002264,Male,Yes,0,Graduate,No,2553,1768,102,360,1,Urban 229 | LP002270,Male,Yes,1,Graduate,No,3436,3809,100,360,1,Rural 230 | LP002279,Male,No,0,Graduate,No,2412,2755,130,360,1,Rural 231 | LP002286,Male,Yes,3+,Not Graduate,No,5180,0,125,360,0,Urban 232 | LP002294,Male,No,0,Graduate,No,14911,14507,130,360,1,Semiurban 233 | LP002298,,No,0,Graduate,Yes,2860,2988,138,360,1,Urban 234 | LP002306,Male,Yes,0,Graduate,No,1173,1594,28,180,1,Rural 235 | LP002310,Female,No,1,Graduate,No,7600,0,92,360,1,Semiurban 236 | LP002311,Female,Yes,0,Graduate,No,2157,1788,104,360,1,Urban 237 | LP002316,Male,No,0,Graduate,No,2231,2774,176,360,0,Urban 238 | LP002321,Female,No,0,Graduate,No,2274,5211,117,360,0,Semiurban 239 | LP002325,Male,Yes,2,Not Graduate,No,6166,13983,102,360,1,Rural 240 | LP002326,Male,Yes,2,Not Graduate,No,2513,1110,107,360,1,Semiurban 241 | LP002329,Male,No,0,Graduate,No,4333,0,66,480,1,Urban 242 | LP002333,Male,No,0,Not Graduate,No,3844,0,105,360,1,Urban 243 | LP002339,Male,Yes,0,Graduate,No,3887,1517,105,360,0,Semiurban 244 | LP002344,Male,Yes,0,Graduate,No,3510,828,105,360,1,Semiurban 245 | LP002346,Male,Yes,0,Graduate,,2539,1704,125,360,0,Rural 246 | LP002354,Female,No,0,Not Graduate,No,2107,0,64,360,1,Semiurban 247 | LP002355,,Yes,0,Graduate,No,3186,3145,150,180,0,Semiurban 248 | LP002358,Male,Yes,2,Graduate,Yes,5000,2166,150,360,1,Urban 249 | LP002360,Male,Yes,,Graduate,No,10000,0,,360,1,Urban 250 | LP002375,Male,Yes,0,Not Graduate,Yes,3943,0,64,360,1,Semiurban 251 | LP002376,Male,No,0,Graduate,No,2925,0,40,180,1,Rural 252 | LP002383,Male,Yes,3+,Graduate,No,3242,437,142,480,0,Urban 253 | LP002385,Male,Yes,,Graduate,No,3863,0,70,300,1,Semiurban 254 | LP002389,Female,No,1,Graduate,No,4028,0,131,360,1,Semiurban 255 | LP002394,Male,Yes,2,Graduate,No,4010,1025,120,360,1,Urban 256 | LP002397,Female,Yes,1,Graduate,No,3719,1585,114,360,1,Urban 257 | LP002399,Male,No,0,Graduate,,2858,0,123,360,0,Rural 258 | LP002400,Female,Yes,0,Graduate,No,3833,0,92,360,1,Rural 259 | LP002402,Male,Yes,0,Graduate,No,3333,4288,160,360,1,Urban 260 | LP002412,Male,Yes,0,Graduate,No,3007,3725,151,360,1,Rural 261 | LP002415,Female,No,1,Graduate,,1850,4583,81,360,,Rural 262 | LP002417,Male,Yes,3+,Not Graduate,No,2792,2619,171,360,1,Semiurban 263 | LP002420,Male,Yes,0,Graduate,No,2982,1550,110,360,1,Semiurban 264 | LP002425,Male,No,0,Graduate,No,3417,738,100,360,,Rural 265 | LP002433,Male,Yes,1,Graduate,No,18840,0,234,360,1,Rural 266 | LP002440,Male,Yes,2,Graduate,No,2995,1120,184,360,1,Rural 267 | LP002441,Male,No,,Graduate,No,3579,3308,138,360,,Semiurban 268 | LP002442,Female,Yes,1,Not Graduate,No,3835,1400,112,480,0,Urban 269 | LP002445,Female,No,1,Not Graduate,No,3854,3575,117,360,1,Rural 270 | LP002450,Male,Yes,2,Graduate,No,5833,750,49,360,0,Rural 271 | LP002471,Male,No,0,Graduate,No,3508,0,99,360,1,Rural 272 | LP002476,Female,Yes,3+,Not Graduate,No,1635,2444,99,360,1,Urban 273 | LP002482,Female,No,0,Graduate,Yes,3333,3916,212,360,1,Rural 274 | LP002485,Male,No,1,Graduate,No,24797,0,240,360,1,Semiurban 275 | LP002495,Male,Yes,2,Graduate,No,5667,440,130,360,0,Semiurban 276 | LP002496,Female,No,0,Graduate,No,3500,0,94,360,0,Semiurban 277 | LP002523,Male,Yes,3+,Graduate,No,2773,1497,108,360,1,Semiurban 278 | LP002542,Male,Yes,0,Graduate,,6500,0,144,360,1,Urban 279 | LP002550,Female,No,0,Graduate,No,5769,0,110,180,1,Semiurban 280 | LP002551,Male,Yes,3+,Not Graduate,,3634,910,176,360,0,Semiurban 281 | LP002553,,No,0,Graduate,No,29167,0,185,360,1,Semiurban 282 | LP002554,Male,No,0,Graduate,No,2166,2057,122,360,1,Semiurban 283 | LP002561,Male,Yes,0,Graduate,No,5000,0,126,360,1,Rural 284 | LP002566,Female,No,0,Graduate,No,5530,0,135,360,,Urban 285 | LP002568,Male,No,0,Not Graduate,No,9000,0,122,360,1,Rural 286 | LP002570,Female,Yes,2,Graduate,No,10000,11666,460,360,1,Urban 287 | LP002572,Male,Yes,1,Graduate,,8750,0,297,360,1,Urban 288 | LP002581,Male,Yes,0,Not Graduate,No,2157,2730,140,360,,Rural 289 | LP002584,Male,No,0,Graduate,,1972,4347,106,360,1,Rural 290 | LP002592,Male,No,0,Graduate,No,4983,0,141,360,1,Urban 291 | LP002593,Male,Yes,1,Graduate,No,8333,4000,,360,1,Urban 292 | LP002599,Male,Yes,0,Graduate,No,3667,2000,170,360,1,Semiurban 293 | LP002604,Male,Yes,2,Graduate,No,3166,2833,145,360,1,Urban 294 | LP002605,Male,No,0,Not Graduate,No,3271,0,90,360,1,Rural 295 | LP002609,Female,Yes,0,Graduate,No,2241,2000,88,360,0,Urban 296 | LP002610,Male,Yes,1,Not Graduate,,1792,2565,128,360,1,Urban 297 | LP002612,Female,Yes,0,Graduate,No,2666,0,84,480,1,Semiurban 298 | LP002614,,No,0,Graduate,No,6478,0,108,360,1,Semiurban 299 | LP002630,Male,No,0,Not Graduate,,3808,0,83,360,1,Rural 300 | LP002635,Female,Yes,2,Not Graduate,No,3729,0,117,360,1,Semiurban 301 | LP002639,Male,Yes,2,Graduate,No,4120,0,128,360,1,Rural 302 | LP002644,Male,Yes,1,Graduate,Yes,7500,0,75,360,1,Urban 303 | LP002651,Male,Yes,1,Graduate,,6300,0,125,360,0,Urban 304 | LP002654,Female,No,,Graduate,Yes,14987,0,177,360,1,Rural 305 | LP002657,,Yes,1,Not Graduate,Yes,570,2125,68,360,1,Rural 306 | LP002711,Male,Yes,0,Graduate,No,2600,700,96,360,1,Semiurban 307 | LP002712,Male,No,2,Not Graduate,No,2733,1083,180,360,,Semiurban 308 | LP002721,Male,Yes,2,Graduate,Yes,7500,0,183,360,1,Rural 309 | LP002735,Male,Yes,2,Not Graduate,No,3859,0,121,360,1,Rural 310 | LP002744,Male,Yes,1,Graduate,No,6825,0,162,360,1,Rural 311 | LP002745,Male,Yes,0,Graduate,No,3708,4700,132,360,1,Semiurban 312 | LP002746,Male,No,0,Graduate,No,5314,0,147,360,1,Urban 313 | LP002747,Female,No,3+,Graduate,No,2366,5272,153,360,0,Rural 314 | LP002754,Male,No,,Graduate,No,2066,2108,104,84,1,Urban 315 | LP002759,Male,Yes,2,Graduate,No,5000,0,149,360,1,Rural 316 | LP002760,Female,No,0,Graduate,No,3767,0,134,300,1,Urban 317 | LP002766,Female,Yes,0,Graduate,No,7859,879,165,180,1,Semiurban 318 | LP002769,Female,Yes,0,Graduate,No,4283,0,120,360,1,Rural 319 | LP002774,Male,Yes,0,Not Graduate,No,1700,2900,67,360,0,Urban 320 | LP002775,,No,0,Not Graduate,No,4768,0,125,360,1,Rural 321 | LP002781,Male,No,0,Graduate,No,3083,2738,120,360,1,Urban 322 | LP002782,Male,Yes,1,Graduate,No,2667,1542,148,360,1,Rural 323 | LP002786,Female,Yes,0,Not Graduate,No,1647,1762,181,360,1,Urban 324 | LP002790,Male,Yes,3+,Graduate,No,3400,0,80,120,1,Urban 325 | LP002791,Male,No,1,Graduate,,16000,5000,40,360,1,Semiurban 326 | LP002793,Male,Yes,0,Graduate,No,5333,0,90,360,1,Rural 327 | LP002802,Male,No,0,Graduate,No,2875,2416,95,6,0,Semiurban 328 | LP002803,Male,Yes,1,Not Graduate,,2600,618,122,360,1,Semiurban 329 | LP002805,Male,Yes,2,Graduate,No,5041,700,150,360,1,Urban 330 | LP002806,Male,Yes,3+,Graduate,Yes,6958,1411,150,360,1,Rural 331 | LP002816,Male,Yes,1,Graduate,No,3500,1658,104,360,,Semiurban 332 | LP002823,Male,Yes,0,Graduate,No,5509,0,143,360,1,Rural 333 | LP002825,Male,Yes,3+,Graduate,No,9699,0,300,360,1,Urban 334 | LP002826,Female,Yes,1,Not Graduate,No,3621,2717,171,360,1,Urban 335 | LP002843,Female,Yes,0,Graduate,No,4709,0,113,360,1,Semiurban 336 | LP002849,Male,Yes,0,Graduate,No,1516,1951,35,360,1,Semiurban 337 | LP002850,Male,No,2,Graduate,No,2400,0,46,360,1,Urban 338 | LP002853,Female,No,0,Not Graduate,No,3015,2000,145,360,,Urban 339 | LP002856,Male,Yes,0,Graduate,No,2292,1558,119,360,1,Urban 340 | LP002857,Male,Yes,1,Graduate,Yes,2360,3355,87,240,1,Rural 341 | LP002858,Female,No,0,Graduate,No,4333,2333,162,360,0,Rural 342 | LP002860,Male,Yes,0,Graduate,Yes,2623,4831,122,180,1,Semiurban 343 | LP002867,Male,No,0,Graduate,Yes,3972,4275,187,360,1,Rural 344 | LP002869,Male,Yes,3+,Not Graduate,No,3522,0,81,180,1,Rural 345 | LP002870,Male,Yes,1,Graduate,No,4700,0,80,360,1,Urban 346 | LP002876,Male,No,0,Graduate,No,6858,0,176,360,1,Rural 347 | LP002878,Male,Yes,3+,Graduate,No,8334,0,260,360,1,Urban 348 | LP002879,Male,Yes,0,Graduate,No,3391,1966,133,360,0,Rural 349 | LP002885,Male,No,0,Not Graduate,No,2868,0,70,360,1,Urban 350 | LP002890,Male,Yes,2,Not Graduate,No,3418,1380,135,360,1,Urban 351 | LP002891,Male,Yes,0,Graduate,Yes,2500,296,137,300,1,Rural 352 | LP002899,Male,Yes,2,Graduate,No,8667,0,254,360,1,Rural 353 | LP002901,Male,No,0,Graduate,No,2283,15000,106,360,,Rural 354 | LP002907,Male,Yes,0,Graduate,No,5817,910,109,360,1,Urban 355 | LP002920,Male,Yes,0,Graduate,No,5119,3769,120,360,1,Rural 356 | LP002921,Male,Yes,3+,Not Graduate,No,5316,187,158,180,0,Semiurban 357 | LP002932,Male,Yes,3+,Graduate,No,7603,1213,197,360,1,Urban 358 | LP002935,Male,Yes,1,Graduate,No,3791,1936,85,360,1,Urban 359 | LP002952,Male,No,0,Graduate,No,2500,0,60,360,1,Urban 360 | LP002954,Male,Yes,2,Not Graduate,No,3132,0,76,360,,Rural 361 | LP002962,Male,No,0,Graduate,No,4000,2667,152,360,1,Semiurban 362 | LP002965,Female,Yes,0,Graduate,No,8550,4255,96,360,,Urban 363 | LP002969,Male,Yes,1,Graduate,No,2269,2167,99,360,1,Semiurban 364 | LP002971,Male,Yes,3+,Not Graduate,Yes,4009,1777,113,360,1,Urban 365 | LP002975,Male,Yes,0,Graduate,No,4158,709,115,360,1,Urban 366 | LP002980,Male,No,0,Graduate,No,3250,1993,126,360,,Semiurban 367 | LP002986,Male,Yes,0,Graduate,No,5000,2393,158,360,1,Rural 368 | LP002989,Male,No,0,Graduate,Yes,9200,0,98,180,1,Rural 369 | -------------------------------------------------------------------------------- /AV_LoanPrediction/train.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,,360,1,Urban,Y 3 | LP001003,Male,Yes,1,Graduate,No,4583,1508,128,360,1,Rural,N 4 | LP001005,Male,Yes,0,Graduate,Yes,3000,0,66,360,1,Urban,Y 5 | LP001006,Male,Yes,0,Not Graduate,No,2583,2358,120,360,1,Urban,Y 6 | LP001008,Male,No,0,Graduate,No,6000,0,141,360,1,Urban,Y 7 | LP001011,Male,Yes,2,Graduate,Yes,5417,4196,267,360,1,Urban,Y 8 | LP001013,Male,Yes,0,Not Graduate,No,2333,1516,95,360,1,Urban,Y 9 | LP001014,Male,Yes,3+,Graduate,No,3036,2504,158,360,0,Semiurban,N 10 | LP001018,Male,Yes,2,Graduate,No,4006,1526,168,360,1,Urban,Y 11 | LP001020,Male,Yes,1,Graduate,No,12841,10968,349,360,1,Semiurban,N 12 | LP001024,Male,Yes,2,Graduate,No,3200,700,70,360,1,Urban,Y 13 | LP001027,Male,Yes,2,Graduate,,2500,1840,109,360,1,Urban,Y 14 | LP001028,Male,Yes,2,Graduate,No,3073,8106,200,360,1,Urban,Y 15 | LP001029,Male,No,0,Graduate,No,1853,2840,114,360,1,Rural,N 16 | LP001030,Male,Yes,2,Graduate,No,1299,1086,17,120,1,Urban,Y 17 | LP001032,Male,No,0,Graduate,No,4950,0,125,360,1,Urban,Y 18 | LP001034,Male,No,1,Not Graduate,No,3596,0,100,240,,Urban,Y 19 | LP001036,Female,No,0,Graduate,No,3510,0,76,360,0,Urban,N 20 | LP001038,Male,Yes,0,Not Graduate,No,4887,0,133,360,1,Rural,N 21 | LP001041,Male,Yes,0,Graduate,,2600,3500,115,,1,Urban,Y 22 | LP001043,Male,Yes,0,Not Graduate,No,7660,0,104,360,0,Urban,N 23 | LP001046,Male,Yes,1,Graduate,No,5955,5625,315,360,1,Urban,Y 24 | LP001047,Male,Yes,0,Not Graduate,No,2600,1911,116,360,0,Semiurban,N 25 | LP001050,,Yes,2,Not Graduate,No,3365,1917,112,360,0,Rural,N 26 | LP001052,Male,Yes,1,Graduate,,3717,2925,151,360,,Semiurban,N 27 | LP001066,Male,Yes,0,Graduate,Yes,9560,0,191,360,1,Semiurban,Y 28 | LP001068,Male,Yes,0,Graduate,No,2799,2253,122,360,1,Semiurban,Y 29 | LP001073,Male,Yes,2,Not Graduate,No,4226,1040,110,360,1,Urban,Y 30 | LP001086,Male,No,0,Not Graduate,No,1442,0,35,360,1,Urban,N 31 | LP001087,Female,No,2,Graduate,,3750,2083,120,360,1,Semiurban,Y 32 | LP001091,Male,Yes,1,Graduate,,4166,3369,201,360,,Urban,N 33 | LP001095,Male,No,0,Graduate,No,3167,0,74,360,1,Urban,N 34 | LP001097,Male,No,1,Graduate,Yes,4692,0,106,360,1,Rural,N 35 | LP001098,Male,Yes,0,Graduate,No,3500,1667,114,360,1,Semiurban,Y 36 | LP001100,Male,No,3+,Graduate,No,12500,3000,320,360,1,Rural,N 37 | LP001106,Male,Yes,0,Graduate,No,2275,2067,,360,1,Urban,Y 38 | LP001109,Male,Yes,0,Graduate,No,1828,1330,100,,0,Urban,N 39 | LP001112,Female,Yes,0,Graduate,No,3667,1459,144,360,1,Semiurban,Y 40 | LP001114,Male,No,0,Graduate,No,4166,7210,184,360,1,Urban,Y 41 | LP001116,Male,No,0,Not Graduate,No,3748,1668,110,360,1,Semiurban,Y 42 | LP001119,Male,No,0,Graduate,No,3600,0,80,360,1,Urban,N 43 | LP001120,Male,No,0,Graduate,No,1800,1213,47,360,1,Urban,Y 44 | LP001123,Male,Yes,0,Graduate,No,2400,0,75,360,,Urban,Y 45 | LP001131,Male,Yes,0,Graduate,No,3941,2336,134,360,1,Semiurban,Y 46 | LP001136,Male,Yes,0,Not Graduate,Yes,4695,0,96,,1,Urban,Y 47 | LP001137,Female,No,0,Graduate,No,3410,0,88,,1,Urban,Y 48 | LP001138,Male,Yes,1,Graduate,No,5649,0,44,360,1,Urban,Y 49 | LP001144,Male,Yes,0,Graduate,No,5821,0,144,360,1,Urban,Y 50 | LP001146,Female,Yes,0,Graduate,No,2645,3440,120,360,0,Urban,N 51 | LP001151,Female,No,0,Graduate,No,4000,2275,144,360,1,Semiurban,Y 52 | LP001155,Female,Yes,0,Not Graduate,No,1928,1644,100,360,1,Semiurban,Y 53 | LP001157,Female,No,0,Graduate,No,3086,0,120,360,1,Semiurban,Y 54 | LP001164,Female,No,0,Graduate,No,4230,0,112,360,1,Semiurban,N 55 | LP001179,Male,Yes,2,Graduate,No,4616,0,134,360,1,Urban,N 56 | LP001186,Female,Yes,1,Graduate,Yes,11500,0,286,360,0,Urban,N 57 | LP001194,Male,Yes,2,Graduate,No,2708,1167,97,360,1,Semiurban,Y 58 | LP001195,Male,Yes,0,Graduate,No,2132,1591,96,360,1,Semiurban,Y 59 | LP001197,Male,Yes,0,Graduate,No,3366,2200,135,360,1,Rural,N 60 | LP001198,Male,Yes,1,Graduate,No,8080,2250,180,360,1,Urban,Y 61 | LP001199,Male,Yes,2,Not Graduate,No,3357,2859,144,360,1,Urban,Y 62 | LP001205,Male,Yes,0,Graduate,No,2500,3796,120,360,1,Urban,Y 63 | LP001206,Male,Yes,3+,Graduate,No,3029,0,99,360,1,Urban,Y 64 | LP001207,Male,Yes,0,Not Graduate,Yes,2609,3449,165,180,0,Rural,N 65 | LP001213,Male,Yes,1,Graduate,No,4945,0,,360,0,Rural,N 66 | LP001222,Female,No,0,Graduate,No,4166,0,116,360,0,Semiurban,N 67 | LP001225,Male,Yes,0,Graduate,No,5726,4595,258,360,1,Semiurban,N 68 | LP001228,Male,No,0,Not Graduate,No,3200,2254,126,180,0,Urban,N 69 | LP001233,Male,Yes,1,Graduate,No,10750,0,312,360,1,Urban,Y 70 | LP001238,Male,Yes,3+,Not Graduate,Yes,7100,0,125,60,1,Urban,Y 71 | LP001241,Female,No,0,Graduate,No,4300,0,136,360,0,Semiurban,N 72 | LP001243,Male,Yes,0,Graduate,No,3208,3066,172,360,1,Urban,Y 73 | LP001245,Male,Yes,2,Not Graduate,Yes,1875,1875,97,360,1,Semiurban,Y 74 | LP001248,Male,No,0,Graduate,No,3500,0,81,300,1,Semiurban,Y 75 | LP001250,Male,Yes,3+,Not Graduate,No,4755,0,95,,0,Semiurban,N 76 | LP001253,Male,Yes,3+,Graduate,Yes,5266,1774,187,360,1,Semiurban,Y 77 | LP001255,Male,No,0,Graduate,No,3750,0,113,480,1,Urban,N 78 | LP001256,Male,No,0,Graduate,No,3750,4750,176,360,1,Urban,N 79 | LP001259,Male,Yes,1,Graduate,Yes,1000,3022,110,360,1,Urban,N 80 | LP001263,Male,Yes,3+,Graduate,No,3167,4000,180,300,0,Semiurban,N 81 | LP001264,Male,Yes,3+,Not Graduate,Yes,3333,2166,130,360,,Semiurban,Y 82 | LP001265,Female,No,0,Graduate,No,3846,0,111,360,1,Semiurban,Y 83 | LP001266,Male,Yes,1,Graduate,Yes,2395,0,,360,1,Semiurban,Y 84 | LP001267,Female,Yes,2,Graduate,No,1378,1881,167,360,1,Urban,N 85 | LP001273,Male,Yes,0,Graduate,No,6000,2250,265,360,,Semiurban,N 86 | LP001275,Male,Yes,1,Graduate,No,3988,0,50,240,1,Urban,Y 87 | LP001279,Male,No,0,Graduate,No,2366,2531,136,360,1,Semiurban,Y 88 | LP001280,Male,Yes,2,Not Graduate,No,3333,2000,99,360,,Semiurban,Y 89 | LP001282,Male,Yes,0,Graduate,No,2500,2118,104,360,1,Semiurban,Y 90 | LP001289,Male,No,0,Graduate,No,8566,0,210,360,1,Urban,Y 91 | LP001310,Male,Yes,0,Graduate,No,5695,4167,175,360,1,Semiurban,Y 92 | LP001316,Male,Yes,0,Graduate,No,2958,2900,131,360,1,Semiurban,Y 93 | LP001318,Male,Yes,2,Graduate,No,6250,5654,188,180,1,Semiurban,Y 94 | LP001319,Male,Yes,2,Not Graduate,No,3273,1820,81,360,1,Urban,Y 95 | LP001322,Male,No,0,Graduate,No,4133,0,122,360,1,Semiurban,Y 96 | LP001325,Male,No,0,Not Graduate,No,3620,0,25,120,1,Semiurban,Y 97 | LP001326,Male,No,0,Graduate,,6782,0,,360,,Urban,N 98 | LP001327,Female,Yes,0,Graduate,No,2484,2302,137,360,1,Semiurban,Y 99 | LP001333,Male,Yes,0,Graduate,No,1977,997,50,360,1,Semiurban,Y 100 | LP001334,Male,Yes,0,Not Graduate,No,4188,0,115,180,1,Semiurban,Y 101 | LP001343,Male,Yes,0,Graduate,No,1759,3541,131,360,1,Semiurban,Y 102 | LP001345,Male,Yes,2,Not Graduate,No,4288,3263,133,180,1,Urban,Y 103 | LP001349,Male,No,0,Graduate,No,4843,3806,151,360,1,Semiurban,Y 104 | LP001350,Male,Yes,,Graduate,No,13650,0,,360,1,Urban,Y 105 | LP001356,Male,Yes,0,Graduate,No,4652,3583,,360,1,Semiurban,Y 106 | LP001357,Male,,,Graduate,No,3816,754,160,360,1,Urban,Y 107 | LP001367,Male,Yes,1,Graduate,No,3052,1030,100,360,1,Urban,Y 108 | LP001369,Male,Yes,2,Graduate,No,11417,1126,225,360,1,Urban,Y 109 | LP001370,Male,No,0,Not Graduate,,7333,0,120,360,1,Rural,N 110 | LP001379,Male,Yes,2,Graduate,No,3800,3600,216,360,0,Urban,N 111 | LP001384,Male,Yes,3+,Not Graduate,No,2071,754,94,480,1,Semiurban,Y 112 | LP001385,Male,No,0,Graduate,No,5316,0,136,360,1,Urban,Y 113 | LP001387,Female,Yes,0,Graduate,,2929,2333,139,360,1,Semiurban,Y 114 | LP001391,Male,Yes,0,Not Graduate,No,3572,4114,152,,0,Rural,N 115 | LP001392,Female,No,1,Graduate,Yes,7451,0,,360,1,Semiurban,Y 116 | LP001398,Male,No,0,Graduate,,5050,0,118,360,1,Semiurban,Y 117 | LP001401,Male,Yes,1,Graduate,No,14583,0,185,180,1,Rural,Y 118 | LP001404,Female,Yes,0,Graduate,No,3167,2283,154,360,1,Semiurban,Y 119 | LP001405,Male,Yes,1,Graduate,No,2214,1398,85,360,,Urban,Y 120 | LP001421,Male,Yes,0,Graduate,No,5568,2142,175,360,1,Rural,N 121 | LP001422,Female,No,0,Graduate,No,10408,0,259,360,1,Urban,Y 122 | LP001426,Male,Yes,,Graduate,No,5667,2667,180,360,1,Rural,Y 123 | LP001430,Female,No,0,Graduate,No,4166,0,44,360,1,Semiurban,Y 124 | LP001431,Female,No,0,Graduate,No,2137,8980,137,360,0,Semiurban,Y 125 | LP001432,Male,Yes,2,Graduate,No,2957,0,81,360,1,Semiurban,Y 126 | LP001439,Male,Yes,0,Not Graduate,No,4300,2014,194,360,1,Rural,Y 127 | LP001443,Female,No,0,Graduate,No,3692,0,93,360,,Rural,Y 128 | LP001448,,Yes,3+,Graduate,No,23803,0,370,360,1,Rural,Y 129 | LP001449,Male,No,0,Graduate,No,3865,1640,,360,1,Rural,Y 130 | LP001451,Male,Yes,1,Graduate,Yes,10513,3850,160,180,0,Urban,N 131 | LP001465,Male,Yes,0,Graduate,No,6080,2569,182,360,,Rural,N 132 | LP001469,Male,No,0,Graduate,Yes,20166,0,650,480,,Urban,Y 133 | LP001473,Male,No,0,Graduate,No,2014,1929,74,360,1,Urban,Y 134 | LP001478,Male,No,0,Graduate,No,2718,0,70,360,1,Semiurban,Y 135 | LP001482,Male,Yes,0,Graduate,Yes,3459,0,25,120,1,Semiurban,Y 136 | LP001487,Male,No,0,Graduate,No,4895,0,102,360,1,Semiurban,Y 137 | LP001488,Male,Yes,3+,Graduate,No,4000,7750,290,360,1,Semiurban,N 138 | LP001489,Female,Yes,0,Graduate,No,4583,0,84,360,1,Rural,N 139 | LP001491,Male,Yes,2,Graduate,Yes,3316,3500,88,360,1,Urban,Y 140 | LP001492,Male,No,0,Graduate,No,14999,0,242,360,0,Semiurban,N 141 | LP001493,Male,Yes,2,Not Graduate,No,4200,1430,129,360,1,Rural,N 142 | LP001497,Male,Yes,2,Graduate,No,5042,2083,185,360,1,Rural,N 143 | LP001498,Male,No,0,Graduate,No,5417,0,168,360,1,Urban,Y 144 | LP001504,Male,No,0,Graduate,Yes,6950,0,175,180,1,Semiurban,Y 145 | LP001507,Male,Yes,0,Graduate,No,2698,2034,122,360,1,Semiurban,Y 146 | LP001508,Male,Yes,2,Graduate,No,11757,0,187,180,1,Urban,Y 147 | LP001514,Female,Yes,0,Graduate,No,2330,4486,100,360,1,Semiurban,Y 148 | LP001516,Female,Yes,2,Graduate,No,14866,0,70,360,1,Urban,Y 149 | LP001518,Male,Yes,1,Graduate,No,1538,1425,30,360,1,Urban,Y 150 | LP001519,Female,No,0,Graduate,No,10000,1666,225,360,1,Rural,N 151 | LP001520,Male,Yes,0,Graduate,No,4860,830,125,360,1,Semiurban,Y 152 | LP001528,Male,No,0,Graduate,No,6277,0,118,360,0,Rural,N 153 | LP001529,Male,Yes,0,Graduate,Yes,2577,3750,152,360,1,Rural,Y 154 | LP001531,Male,No,0,Graduate,No,9166,0,244,360,1,Urban,N 155 | LP001532,Male,Yes,2,Not Graduate,No,2281,0,113,360,1,Rural,N 156 | LP001535,Male,No,0,Graduate,No,3254,0,50,360,1,Urban,Y 157 | LP001536,Male,Yes,3+,Graduate,No,39999,0,600,180,0,Semiurban,Y 158 | LP001541,Male,Yes,1,Graduate,No,6000,0,160,360,,Rural,Y 159 | LP001543,Male,Yes,1,Graduate,No,9538,0,187,360,1,Urban,Y 160 | LP001546,Male,No,0,Graduate,,2980,2083,120,360,1,Rural,Y 161 | LP001552,Male,Yes,0,Graduate,No,4583,5625,255,360,1,Semiurban,Y 162 | LP001560,Male,Yes,0,Not Graduate,No,1863,1041,98,360,1,Semiurban,Y 163 | LP001562,Male,Yes,0,Graduate,No,7933,0,275,360,1,Urban,N 164 | LP001565,Male,Yes,1,Graduate,No,3089,1280,121,360,0,Semiurban,N 165 | LP001570,Male,Yes,2,Graduate,No,4167,1447,158,360,1,Rural,Y 166 | LP001572,Male,Yes,0,Graduate,No,9323,0,75,180,1,Urban,Y 167 | LP001574,Male,Yes,0,Graduate,No,3707,3166,182,,1,Rural,Y 168 | LP001577,Female,Yes,0,Graduate,No,4583,0,112,360,1,Rural,N 169 | LP001578,Male,Yes,0,Graduate,No,2439,3333,129,360,1,Rural,Y 170 | LP001579,Male,No,0,Graduate,No,2237,0,63,480,0,Semiurban,N 171 | LP001580,Male,Yes,2,Graduate,No,8000,0,200,360,1,Semiurban,Y 172 | LP001581,Male,Yes,0,Not Graduate,,1820,1769,95,360,1,Rural,Y 173 | LP001585,,Yes,3+,Graduate,No,51763,0,700,300,1,Urban,Y 174 | LP001586,Male,Yes,3+,Not Graduate,No,3522,0,81,180,1,Rural,N 175 | LP001594,Male,Yes,0,Graduate,No,5708,5625,187,360,1,Semiurban,Y 176 | LP001603,Male,Yes,0,Not Graduate,Yes,4344,736,87,360,1,Semiurban,N 177 | LP001606,Male,Yes,0,Graduate,No,3497,1964,116,360,1,Rural,Y 178 | LP001608,Male,Yes,2,Graduate,No,2045,1619,101,360,1,Rural,Y 179 | LP001610,Male,Yes,3+,Graduate,No,5516,11300,495,360,0,Semiurban,N 180 | LP001616,Male,Yes,1,Graduate,No,3750,0,116,360,1,Semiurban,Y 181 | LP001630,Male,No,0,Not Graduate,No,2333,1451,102,480,0,Urban,N 182 | LP001633,Male,Yes,1,Graduate,No,6400,7250,180,360,0,Urban,N 183 | LP001634,Male,No,0,Graduate,No,1916,5063,67,360,,Rural,N 184 | LP001636,Male,Yes,0,Graduate,No,4600,0,73,180,1,Semiurban,Y 185 | LP001637,Male,Yes,1,Graduate,No,33846,0,260,360,1,Semiurban,N 186 | LP001639,Female,Yes,0,Graduate,No,3625,0,108,360,1,Semiurban,Y 187 | LP001640,Male,Yes,0,Graduate,Yes,39147,4750,120,360,1,Semiurban,Y 188 | LP001641,Male,Yes,1,Graduate,Yes,2178,0,66,300,0,Rural,N 189 | LP001643,Male,Yes,0,Graduate,No,2383,2138,58,360,,Rural,Y 190 | LP001644,,Yes,0,Graduate,Yes,674,5296,168,360,1,Rural,Y 191 | LP001647,Male,Yes,0,Graduate,No,9328,0,188,180,1,Rural,Y 192 | LP001653,Male,No,0,Not Graduate,No,4885,0,48,360,1,Rural,Y 193 | LP001656,Male,No,0,Graduate,No,12000,0,164,360,1,Semiurban,N 194 | LP001657,Male,Yes,0,Not Graduate,No,6033,0,160,360,1,Urban,N 195 | LP001658,Male,No,0,Graduate,No,3858,0,76,360,1,Semiurban,Y 196 | LP001664,Male,No,0,Graduate,No,4191,0,120,360,1,Rural,Y 197 | LP001665,Male,Yes,1,Graduate,No,3125,2583,170,360,1,Semiurban,N 198 | LP001666,Male,No,0,Graduate,No,8333,3750,187,360,1,Rural,Y 199 | LP001669,Female,No,0,Not Graduate,No,1907,2365,120,,1,Urban,Y 200 | LP001671,Female,Yes,0,Graduate,No,3416,2816,113,360,,Semiurban,Y 201 | LP001673,Male,No,0,Graduate,Yes,11000,0,83,360,1,Urban,N 202 | LP001674,Male,Yes,1,Not Graduate,No,2600,2500,90,360,1,Semiurban,Y 203 | LP001677,Male,No,2,Graduate,No,4923,0,166,360,0,Semiurban,Y 204 | LP001682,Male,Yes,3+,Not Graduate,No,3992,0,,180,1,Urban,N 205 | LP001688,Male,Yes,1,Not Graduate,No,3500,1083,135,360,1,Urban,Y 206 | LP001691,Male,Yes,2,Not Graduate,No,3917,0,124,360,1,Semiurban,Y 207 | LP001692,Female,No,0,Not Graduate,No,4408,0,120,360,1,Semiurban,Y 208 | LP001693,Female,No,0,Graduate,No,3244,0,80,360,1,Urban,Y 209 | LP001698,Male,No,0,Not Graduate,No,3975,2531,55,360,1,Rural,Y 210 | LP001699,Male,No,0,Graduate,No,2479,0,59,360,1,Urban,Y 211 | LP001702,Male,No,0,Graduate,No,3418,0,127,360,1,Semiurban,N 212 | LP001708,Female,No,0,Graduate,No,10000,0,214,360,1,Semiurban,N 213 | LP001711,Male,Yes,3+,Graduate,No,3430,1250,128,360,0,Semiurban,N 214 | LP001713,Male,Yes,1,Graduate,Yes,7787,0,240,360,1,Urban,Y 215 | LP001715,Male,Yes,3+,Not Graduate,Yes,5703,0,130,360,1,Rural,Y 216 | LP001716,Male,Yes,0,Graduate,No,3173,3021,137,360,1,Urban,Y 217 | LP001720,Male,Yes,3+,Not Graduate,No,3850,983,100,360,1,Semiurban,Y 218 | LP001722,Male,Yes,0,Graduate,No,150,1800,135,360,1,Rural,N 219 | LP001726,Male,Yes,0,Graduate,No,3727,1775,131,360,1,Semiurban,Y 220 | LP001732,Male,Yes,2,Graduate,,5000,0,72,360,0,Semiurban,N 221 | LP001734,Female,Yes,2,Graduate,No,4283,2383,127,360,,Semiurban,Y 222 | LP001736,Male,Yes,0,Graduate,No,2221,0,60,360,0,Urban,N 223 | LP001743,Male,Yes,2,Graduate,No,4009,1717,116,360,1,Semiurban,Y 224 | LP001744,Male,No,0,Graduate,No,2971,2791,144,360,1,Semiurban,Y 225 | LP001749,Male,Yes,0,Graduate,No,7578,1010,175,,1,Semiurban,Y 226 | LP001750,Male,Yes,0,Graduate,No,6250,0,128,360,1,Semiurban,Y 227 | LP001751,Male,Yes,0,Graduate,No,3250,0,170,360,1,Rural,N 228 | LP001754,Male,Yes,,Not Graduate,Yes,4735,0,138,360,1,Urban,N 229 | LP001758,Male,Yes,2,Graduate,No,6250,1695,210,360,1,Semiurban,Y 230 | LP001760,Male,,,Graduate,No,4758,0,158,480,1,Semiurban,Y 231 | LP001761,Male,No,0,Graduate,Yes,6400,0,200,360,1,Rural,Y 232 | LP001765,Male,Yes,1,Graduate,No,2491,2054,104,360,1,Semiurban,Y 233 | LP001768,Male,Yes,0,Graduate,,3716,0,42,180,1,Rural,Y 234 | LP001770,Male,No,0,Not Graduate,No,3189,2598,120,,1,Rural,Y 235 | LP001776,Female,No,0,Graduate,No,8333,0,280,360,1,Semiurban,Y 236 | LP001778,Male,Yes,1,Graduate,No,3155,1779,140,360,1,Semiurban,Y 237 | LP001784,Male,Yes,1,Graduate,No,5500,1260,170,360,1,Rural,Y 238 | LP001786,Male,Yes,0,Graduate,,5746,0,255,360,,Urban,N 239 | LP001788,Female,No,0,Graduate,Yes,3463,0,122,360,,Urban,Y 240 | LP001790,Female,No,1,Graduate,No,3812,0,112,360,1,Rural,Y 241 | LP001792,Male,Yes,1,Graduate,No,3315,0,96,360,1,Semiurban,Y 242 | LP001798,Male,Yes,2,Graduate,No,5819,5000,120,360,1,Rural,Y 243 | LP001800,Male,Yes,1,Not Graduate,No,2510,1983,140,180,1,Urban,N 244 | LP001806,Male,No,0,Graduate,No,2965,5701,155,60,1,Urban,Y 245 | LP001807,Male,Yes,2,Graduate,Yes,6250,1300,108,360,1,Rural,Y 246 | LP001811,Male,Yes,0,Not Graduate,No,3406,4417,123,360,1,Semiurban,Y 247 | LP001813,Male,No,0,Graduate,Yes,6050,4333,120,180,1,Urban,N 248 | LP001814,Male,Yes,2,Graduate,No,9703,0,112,360,1,Urban,Y 249 | LP001819,Male,Yes,1,Not Graduate,No,6608,0,137,180,1,Urban,Y 250 | LP001824,Male,Yes,1,Graduate,No,2882,1843,123,480,1,Semiurban,Y 251 | LP001825,Male,Yes,0,Graduate,No,1809,1868,90,360,1,Urban,Y 252 | LP001835,Male,Yes,0,Not Graduate,No,1668,3890,201,360,0,Semiurban,N 253 | LP001836,Female,No,2,Graduate,No,3427,0,138,360,1,Urban,N 254 | LP001841,Male,No,0,Not Graduate,Yes,2583,2167,104,360,1,Rural,Y 255 | LP001843,Male,Yes,1,Not Graduate,No,2661,7101,279,180,1,Semiurban,Y 256 | LP001844,Male,No,0,Graduate,Yes,16250,0,192,360,0,Urban,N 257 | LP001846,Female,No,3+,Graduate,No,3083,0,255,360,1,Rural,Y 258 | LP001849,Male,No,0,Not Graduate,No,6045,0,115,360,0,Rural,N 259 | LP001854,Male,Yes,3+,Graduate,No,5250,0,94,360,1,Urban,N 260 | LP001859,Male,Yes,0,Graduate,No,14683,2100,304,360,1,Rural,N 261 | LP001864,Male,Yes,3+,Not Graduate,No,4931,0,128,360,,Semiurban,N 262 | LP001865,Male,Yes,1,Graduate,No,6083,4250,330,360,,Urban,Y 263 | LP001868,Male,No,0,Graduate,No,2060,2209,134,360,1,Semiurban,Y 264 | LP001870,Female,No,1,Graduate,No,3481,0,155,36,1,Semiurban,N 265 | LP001871,Female,No,0,Graduate,No,7200,0,120,360,1,Rural,Y 266 | LP001872,Male,No,0,Graduate,Yes,5166,0,128,360,1,Semiurban,Y 267 | LP001875,Male,No,0,Graduate,No,4095,3447,151,360,1,Rural,Y 268 | LP001877,Male,Yes,2,Graduate,No,4708,1387,150,360,1,Semiurban,Y 269 | LP001882,Male,Yes,3+,Graduate,No,4333,1811,160,360,0,Urban,Y 270 | LP001883,Female,No,0,Graduate,,3418,0,135,360,1,Rural,N 271 | LP001884,Female,No,1,Graduate,No,2876,1560,90,360,1,Urban,Y 272 | LP001888,Female,No,0,Graduate,No,3237,0,30,360,1,Urban,Y 273 | LP001891,Male,Yes,0,Graduate,No,11146,0,136,360,1,Urban,Y 274 | LP001892,Male,No,0,Graduate,No,2833,1857,126,360,1,Rural,Y 275 | LP001894,Male,Yes,0,Graduate,No,2620,2223,150,360,1,Semiurban,Y 276 | LP001896,Male,Yes,2,Graduate,No,3900,0,90,360,1,Semiurban,Y 277 | LP001900,Male,Yes,1,Graduate,No,2750,1842,115,360,1,Semiurban,Y 278 | LP001903,Male,Yes,0,Graduate,No,3993,3274,207,360,1,Semiurban,Y 279 | LP001904,Male,Yes,0,Graduate,No,3103,1300,80,360,1,Urban,Y 280 | LP001907,Male,Yes,0,Graduate,No,14583,0,436,360,1,Semiurban,Y 281 | LP001908,Female,Yes,0,Not Graduate,No,4100,0,124,360,,Rural,Y 282 | LP001910,Male,No,1,Not Graduate,Yes,4053,2426,158,360,0,Urban,N 283 | LP001914,Male,Yes,0,Graduate,No,3927,800,112,360,1,Semiurban,Y 284 | LP001915,Male,Yes,2,Graduate,No,2301,985.7999878,78,180,1,Urban,Y 285 | LP001917,Female,No,0,Graduate,No,1811,1666,54,360,1,Urban,Y 286 | LP001922,Male,Yes,0,Graduate,No,20667,0,,360,1,Rural,N 287 | LP001924,Male,No,0,Graduate,No,3158,3053,89,360,1,Rural,Y 288 | LP001925,Female,No,0,Graduate,Yes,2600,1717,99,300,1,Semiurban,N 289 | LP001926,Male,Yes,0,Graduate,No,3704,2000,120,360,1,Rural,Y 290 | LP001931,Female,No,0,Graduate,No,4124,0,115,360,1,Semiurban,Y 291 | LP001935,Male,No,0,Graduate,No,9508,0,187,360,1,Rural,Y 292 | LP001936,Male,Yes,0,Graduate,No,3075,2416,139,360,1,Rural,Y 293 | LP001938,Male,Yes,2,Graduate,No,4400,0,127,360,0,Semiurban,N 294 | LP001940,Male,Yes,2,Graduate,No,3153,1560,134,360,1,Urban,Y 295 | LP001945,Female,No,,Graduate,No,5417,0,143,480,0,Urban,N 296 | LP001947,Male,Yes,0,Graduate,No,2383,3334,172,360,1,Semiurban,Y 297 | LP001949,Male,Yes,3+,Graduate,,4416,1250,110,360,1,Urban,Y 298 | LP001953,Male,Yes,1,Graduate,No,6875,0,200,360,1,Semiurban,Y 299 | LP001954,Female,Yes,1,Graduate,No,4666,0,135,360,1,Urban,Y 300 | LP001955,Female,No,0,Graduate,No,5000,2541,151,480,1,Rural,N 301 | LP001963,Male,Yes,1,Graduate,No,2014,2925,113,360,1,Urban,N 302 | LP001964,Male,Yes,0,Not Graduate,No,1800,2934,93,360,0,Urban,N 303 | LP001972,Male,Yes,,Not Graduate,No,2875,1750,105,360,1,Semiurban,Y 304 | LP001974,Female,No,0,Graduate,No,5000,0,132,360,1,Rural,Y 305 | LP001977,Male,Yes,1,Graduate,No,1625,1803,96,360,1,Urban,Y 306 | LP001978,Male,No,0,Graduate,No,4000,2500,140,360,1,Rural,Y 307 | LP001990,Male,No,0,Not Graduate,No,2000,0,,360,1,Urban,N 308 | LP001993,Female,No,0,Graduate,No,3762,1666,135,360,1,Rural,Y 309 | LP001994,Female,No,0,Graduate,No,2400,1863,104,360,0,Urban,N 310 | LP001996,Male,No,0,Graduate,No,20233,0,480,360,1,Rural,N 311 | LP001998,Male,Yes,2,Not Graduate,No,7667,0,185,360,,Rural,Y 312 | LP002002,Female,No,0,Graduate,No,2917,0,84,360,1,Semiurban,Y 313 | LP002004,Male,No,0,Not Graduate,No,2927,2405,111,360,1,Semiurban,Y 314 | LP002006,Female,No,0,Graduate,No,2507,0,56,360,1,Rural,Y 315 | LP002008,Male,Yes,2,Graduate,Yes,5746,0,144,84,,Rural,Y 316 | LP002024,,Yes,0,Graduate,No,2473,1843,159,360,1,Rural,N 317 | LP002031,Male,Yes,1,Not Graduate,No,3399,1640,111,180,1,Urban,Y 318 | LP002035,Male,Yes,2,Graduate,No,3717,0,120,360,1,Semiurban,Y 319 | LP002036,Male,Yes,0,Graduate,No,2058,2134,88,360,,Urban,Y 320 | LP002043,Female,No,1,Graduate,No,3541,0,112,360,,Semiurban,Y 321 | LP002050,Male,Yes,1,Graduate,Yes,10000,0,155,360,1,Rural,N 322 | LP002051,Male,Yes,0,Graduate,No,2400,2167,115,360,1,Semiurban,Y 323 | LP002053,Male,Yes,3+,Graduate,No,4342,189,124,360,1,Semiurban,Y 324 | LP002054,Male,Yes,2,Not Graduate,No,3601,1590,,360,1,Rural,Y 325 | LP002055,Female,No,0,Graduate,No,3166,2985,132,360,,Rural,Y 326 | LP002065,Male,Yes,3+,Graduate,No,15000,0,300,360,1,Rural,Y 327 | LP002067,Male,Yes,1,Graduate,Yes,8666,4983,376,360,0,Rural,N 328 | LP002068,Male,No,0,Graduate,No,4917,0,130,360,0,Rural,Y 329 | LP002082,Male,Yes,0,Graduate,Yes,5818,2160,184,360,1,Semiurban,Y 330 | LP002086,Female,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,N 331 | LP002087,Female,No,0,Graduate,No,2500,0,67,360,1,Urban,Y 332 | LP002097,Male,No,1,Graduate,No,4384,1793,117,360,1,Urban,Y 333 | LP002098,Male,No,0,Graduate,No,2935,0,98,360,1,Semiurban,Y 334 | LP002100,Male,No,,Graduate,No,2833,0,71,360,1,Urban,Y 335 | LP002101,Male,Yes,0,Graduate,,63337,0,490,180,1,Urban,Y 336 | LP002103,,Yes,1,Graduate,Yes,9833,1833,182,180,1,Urban,Y 337 | LP002106,Male,Yes,,Graduate,Yes,5503,4490,70,,1,Semiurban,Y 338 | LP002110,Male,Yes,1,Graduate,,5250,688,160,360,1,Rural,Y 339 | LP002112,Male,Yes,2,Graduate,Yes,2500,4600,176,360,1,Rural,Y 340 | LP002113,Female,No,3+,Not Graduate,No,1830,0,,360,0,Urban,N 341 | LP002114,Female,No,0,Graduate,No,4160,0,71,360,1,Semiurban,Y 342 | LP002115,Male,Yes,3+,Not Graduate,No,2647,1587,173,360,1,Rural,N 343 | LP002116,Female,No,0,Graduate,No,2378,0,46,360,1,Rural,N 344 | LP002119,Male,Yes,1,Not Graduate,No,4554,1229,158,360,1,Urban,Y 345 | LP002126,Male,Yes,3+,Not Graduate,No,3173,0,74,360,1,Semiurban,Y 346 | LP002128,Male,Yes,2,Graduate,,2583,2330,125,360,1,Rural,Y 347 | LP002129,Male,Yes,0,Graduate,No,2499,2458,160,360,1,Semiurban,Y 348 | LP002130,Male,Yes,,Not Graduate,No,3523,3230,152,360,0,Rural,N 349 | LP002131,Male,Yes,2,Not Graduate,No,3083,2168,126,360,1,Urban,Y 350 | LP002137,Male,Yes,0,Graduate,No,6333,4583,259,360,,Semiurban,Y 351 | LP002138,Male,Yes,0,Graduate,No,2625,6250,187,360,1,Rural,Y 352 | LP002139,Male,Yes,0,Graduate,No,9083,0,228,360,1,Semiurban,Y 353 | LP002140,Male,No,0,Graduate,No,8750,4167,308,360,1,Rural,N 354 | LP002141,Male,Yes,3+,Graduate,No,2666,2083,95,360,1,Rural,Y 355 | LP002142,Female,Yes,0,Graduate,Yes,5500,0,105,360,0,Rural,N 356 | LP002143,Female,Yes,0,Graduate,No,2423,505,130,360,1,Semiurban,Y 357 | LP002144,Female,No,,Graduate,No,3813,0,116,180,1,Urban,Y 358 | LP002149,Male,Yes,2,Graduate,No,8333,3167,165,360,1,Rural,Y 359 | LP002151,Male,Yes,1,Graduate,No,3875,0,67,360,1,Urban,N 360 | LP002158,Male,Yes,0,Not Graduate,No,3000,1666,100,480,0,Urban,N 361 | LP002160,Male,Yes,3+,Graduate,No,5167,3167,200,360,1,Semiurban,Y 362 | LP002161,Female,No,1,Graduate,No,4723,0,81,360,1,Semiurban,N 363 | LP002170,Male,Yes,2,Graduate,No,5000,3667,236,360,1,Semiurban,Y 364 | LP002175,Male,Yes,0,Graduate,No,4750,2333,130,360,1,Urban,Y 365 | LP002178,Male,Yes,0,Graduate,No,3013,3033,95,300,,Urban,Y 366 | LP002180,Male,No,0,Graduate,Yes,6822,0,141,360,1,Rural,Y 367 | LP002181,Male,No,0,Not Graduate,No,6216,0,133,360,1,Rural,N 368 | LP002187,Male,No,0,Graduate,No,2500,0,96,480,1,Semiurban,N 369 | LP002188,Male,No,0,Graduate,No,5124,0,124,,0,Rural,N 370 | LP002190,Male,Yes,1,Graduate,No,6325,0,175,360,1,Semiurban,Y 371 | LP002191,Male,Yes,0,Graduate,No,19730,5266,570,360,1,Rural,N 372 | LP002194,Female,No,0,Graduate,Yes,15759,0,55,360,1,Semiurban,Y 373 | LP002197,Male,Yes,2,Graduate,No,5185,0,155,360,1,Semiurban,Y 374 | LP002201,Male,Yes,2,Graduate,Yes,9323,7873,380,300,1,Rural,Y 375 | LP002205,Male,No,1,Graduate,No,3062,1987,111,180,0,Urban,N 376 | LP002209,Female,No,0,Graduate,,2764,1459,110,360,1,Urban,Y 377 | LP002211,Male,Yes,0,Graduate,No,4817,923,120,180,1,Urban,Y 378 | LP002219,Male,Yes,3+,Graduate,No,8750,4996,130,360,1,Rural,Y 379 | LP002223,Male,Yes,0,Graduate,No,4310,0,130,360,,Semiurban,Y 380 | LP002224,Male,No,0,Graduate,No,3069,0,71,480,1,Urban,N 381 | LP002225,Male,Yes,2,Graduate,No,5391,0,130,360,1,Urban,Y 382 | LP002226,Male,Yes,0,Graduate,,3333,2500,128,360,1,Semiurban,Y 383 | LP002229,Male,No,0,Graduate,No,5941,4232,296,360,1,Semiurban,Y 384 | LP002231,Female,No,0,Graduate,No,6000,0,156,360,1,Urban,Y 385 | LP002234,Male,No,0,Graduate,Yes,7167,0,128,360,1,Urban,Y 386 | LP002236,Male,Yes,2,Graduate,No,4566,0,100,360,1,Urban,N 387 | LP002237,Male,No,1,Graduate,,3667,0,113,180,1,Urban,Y 388 | LP002239,Male,No,0,Not Graduate,No,2346,1600,132,360,1,Semiurban,Y 389 | LP002243,Male,Yes,0,Not Graduate,No,3010,3136,,360,0,Urban,N 390 | LP002244,Male,Yes,0,Graduate,No,2333,2417,136,360,1,Urban,Y 391 | LP002250,Male,Yes,0,Graduate,No,5488,0,125,360,1,Rural,Y 392 | LP002255,Male,No,3+,Graduate,No,9167,0,185,360,1,Rural,Y 393 | LP002262,Male,Yes,3+,Graduate,No,9504,0,275,360,1,Rural,Y 394 | LP002263,Male,Yes,0,Graduate,No,2583,2115,120,360,,Urban,Y 395 | LP002265,Male,Yes,2,Not Graduate,No,1993,1625,113,180,1,Semiurban,Y 396 | LP002266,Male,Yes,2,Graduate,No,3100,1400,113,360,1,Urban,Y 397 | LP002272,Male,Yes,2,Graduate,No,3276,484,135,360,,Semiurban,Y 398 | LP002277,Female,No,0,Graduate,No,3180,0,71,360,0,Urban,N 399 | LP002281,Male,Yes,0,Graduate,No,3033,1459,95,360,1,Urban,Y 400 | LP002284,Male,No,0,Not Graduate,No,3902,1666,109,360,1,Rural,Y 401 | LP002287,Female,No,0,Graduate,No,1500,1800,103,360,0,Semiurban,N 402 | LP002288,Male,Yes,2,Not Graduate,No,2889,0,45,180,0,Urban,N 403 | LP002296,Male,No,0,Not Graduate,No,2755,0,65,300,1,Rural,N 404 | LP002297,Male,No,0,Graduate,No,2500,20000,103,360,1,Semiurban,Y 405 | LP002300,Female,No,0,Not Graduate,No,1963,0,53,360,1,Semiurban,Y 406 | LP002301,Female,No,0,Graduate,Yes,7441,0,194,360,1,Rural,N 407 | LP002305,Female,No,0,Graduate,No,4547,0,115,360,1,Semiurban,Y 408 | LP002308,Male,Yes,0,Not Graduate,No,2167,2400,115,360,1,Urban,Y 409 | LP002314,Female,No,0,Not Graduate,No,2213,0,66,360,1,Rural,Y 410 | LP002315,Male,Yes,1,Graduate,No,8300,0,152,300,0,Semiurban,N 411 | LP002317,Male,Yes,3+,Graduate,No,81000,0,360,360,0,Rural,N 412 | LP002318,Female,No,1,Not Graduate,Yes,3867,0,62,360,1,Semiurban,N 413 | LP002319,Male,Yes,0,Graduate,,6256,0,160,360,,Urban,Y 414 | LP002328,Male,Yes,0,Not Graduate,No,6096,0,218,360,0,Rural,N 415 | LP002332,Male,Yes,0,Not Graduate,No,2253,2033,110,360,1,Rural,Y 416 | LP002335,Female,Yes,0,Not Graduate,No,2149,3237,178,360,0,Semiurban,N 417 | LP002337,Female,No,0,Graduate,No,2995,0,60,360,1,Urban,Y 418 | LP002341,Female,No,1,Graduate,No,2600,0,160,360,1,Urban,N 419 | LP002342,Male,Yes,2,Graduate,Yes,1600,20000,239,360,1,Urban,N 420 | LP002345,Male,Yes,0,Graduate,No,1025,2773,112,360,1,Rural,Y 421 | LP002347,Male,Yes,0,Graduate,No,3246,1417,138,360,1,Semiurban,Y 422 | LP002348,Male,Yes,0,Graduate,No,5829,0,138,360,1,Rural,Y 423 | LP002357,Female,No,0,Not Graduate,No,2720,0,80,,0,Urban,N 424 | LP002361,Male,Yes,0,Graduate,No,1820,1719,100,360,1,Urban,Y 425 | LP002362,Male,Yes,1,Graduate,No,7250,1667,110,,0,Urban,N 426 | LP002364,Male,Yes,0,Graduate,No,14880,0,96,360,1,Semiurban,Y 427 | LP002366,Male,Yes,0,Graduate,No,2666,4300,121,360,1,Rural,Y 428 | LP002367,Female,No,1,Not Graduate,No,4606,0,81,360,1,Rural,N 429 | LP002368,Male,Yes,2,Graduate,No,5935,0,133,360,1,Semiurban,Y 430 | LP002369,Male,Yes,0,Graduate,No,2920,16.12000084,87,360,1,Rural,Y 431 | LP002370,Male,No,0,Not Graduate,No,2717,0,60,180,1,Urban,Y 432 | LP002377,Female,No,1,Graduate,Yes,8624,0,150,360,1,Semiurban,Y 433 | LP002379,Male,No,0,Graduate,No,6500,0,105,360,0,Rural,N 434 | LP002386,Male,No,0,Graduate,,12876,0,405,360,1,Semiurban,Y 435 | LP002387,Male,Yes,0,Graduate,No,2425,2340,143,360,1,Semiurban,Y 436 | LP002390,Male,No,0,Graduate,No,3750,0,100,360,1,Urban,Y 437 | LP002393,Female,,,Graduate,No,10047,0,,240,1,Semiurban,Y 438 | LP002398,Male,No,0,Graduate,No,1926,1851,50,360,1,Semiurban,Y 439 | LP002401,Male,Yes,0,Graduate,No,2213,1125,,360,1,Urban,Y 440 | LP002403,Male,No,0,Graduate,Yes,10416,0,187,360,0,Urban,N 441 | LP002407,Female,Yes,0,Not Graduate,Yes,7142,0,138,360,1,Rural,Y 442 | LP002408,Male,No,0,Graduate,No,3660,5064,187,360,1,Semiurban,Y 443 | LP002409,Male,Yes,0,Graduate,No,7901,1833,180,360,1,Rural,Y 444 | LP002418,Male,No,3+,Not Graduate,No,4707,1993,148,360,1,Semiurban,Y 445 | LP002422,Male,No,1,Graduate,No,37719,0,152,360,1,Semiurban,Y 446 | LP002424,Male,Yes,0,Graduate,No,7333,8333,175,300,,Rural,Y 447 | LP002429,Male,Yes,1,Graduate,Yes,3466,1210,130,360,1,Rural,Y 448 | LP002434,Male,Yes,2,Not Graduate,No,4652,0,110,360,1,Rural,Y 449 | LP002435,Male,Yes,0,Graduate,,3539,1376,55,360,1,Rural,N 450 | LP002443,Male,Yes,2,Graduate,No,3340,1710,150,360,0,Rural,N 451 | LP002444,Male,No,1,Not Graduate,Yes,2769,1542,190,360,,Semiurban,N 452 | LP002446,Male,Yes,2,Not Graduate,No,2309,1255,125,360,0,Rural,N 453 | LP002447,Male,Yes,2,Not Graduate,No,1958,1456,60,300,,Urban,Y 454 | LP002448,Male,Yes,0,Graduate,No,3948,1733,149,360,0,Rural,N 455 | LP002449,Male,Yes,0,Graduate,No,2483,2466,90,180,0,Rural,Y 456 | LP002453,Male,No,0,Graduate,Yes,7085,0,84,360,1,Semiurban,Y 457 | LP002455,Male,Yes,2,Graduate,No,3859,0,96,360,1,Semiurban,Y 458 | LP002459,Male,Yes,0,Graduate,No,4301,0,118,360,1,Urban,Y 459 | LP002467,Male,Yes,0,Graduate,No,3708,2569,173,360,1,Urban,N 460 | LP002472,Male,No,2,Graduate,No,4354,0,136,360,1,Rural,Y 461 | LP002473,Male,Yes,0,Graduate,No,8334,0,160,360,1,Semiurban,N 462 | LP002478,,Yes,0,Graduate,Yes,2083,4083,160,360,,Semiurban,Y 463 | LP002484,Male,Yes,3+,Graduate,No,7740,0,128,180,1,Urban,Y 464 | LP002487,Male,Yes,0,Graduate,No,3015,2188,153,360,1,Rural,Y 465 | LP002489,Female,No,1,Not Graduate,,5191,0,132,360,1,Semiurban,Y 466 | LP002493,Male,No,0,Graduate,No,4166,0,98,360,0,Semiurban,N 467 | LP002494,Male,No,0,Graduate,No,6000,0,140,360,1,Rural,Y 468 | LP002500,Male,Yes,3+,Not Graduate,No,2947,1664,70,180,0,Urban,N 469 | LP002501,,Yes,0,Graduate,No,16692,0,110,360,1,Semiurban,Y 470 | LP002502,Female,Yes,2,Not Graduate,,210,2917,98,360,1,Semiurban,Y 471 | LP002505,Male,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,N 472 | LP002515,Male,Yes,1,Graduate,Yes,3450,2079,162,360,1,Semiurban,Y 473 | LP002517,Male,Yes,1,Not Graduate,No,2653,1500,113,180,0,Rural,N 474 | LP002519,Male,Yes,3+,Graduate,No,4691,0,100,360,1,Semiurban,Y 475 | LP002522,Female,No,0,Graduate,Yes,2500,0,93,360,,Urban,Y 476 | LP002524,Male,No,2,Graduate,No,5532,4648,162,360,1,Rural,Y 477 | LP002527,Male,Yes,2,Graduate,Yes,16525,1014,150,360,1,Rural,Y 478 | LP002529,Male,Yes,2,Graduate,No,6700,1750,230,300,1,Semiurban,Y 479 | LP002530,,Yes,2,Graduate,No,2873,1872,132,360,0,Semiurban,N 480 | LP002531,Male,Yes,1,Graduate,Yes,16667,2250,86,360,1,Semiurban,Y 481 | LP002533,Male,Yes,2,Graduate,No,2947,1603,,360,1,Urban,N 482 | LP002534,Female,No,0,Not Graduate,No,4350,0,154,360,1,Rural,Y 483 | LP002536,Male,Yes,3+,Not Graduate,No,3095,0,113,360,1,Rural,Y 484 | LP002537,Male,Yes,0,Graduate,No,2083,3150,128,360,1,Semiurban,Y 485 | LP002541,Male,Yes,0,Graduate,No,10833,0,234,360,1,Semiurban,Y 486 | LP002543,Male,Yes,2,Graduate,No,8333,0,246,360,1,Semiurban,Y 487 | LP002544,Male,Yes,1,Not Graduate,No,1958,2436,131,360,1,Rural,Y 488 | LP002545,Male,No,2,Graduate,No,3547,0,80,360,0,Rural,N 489 | LP002547,Male,Yes,1,Graduate,No,18333,0,500,360,1,Urban,N 490 | LP002555,Male,Yes,2,Graduate,Yes,4583,2083,160,360,1,Semiurban,Y 491 | LP002556,Male,No,0,Graduate,No,2435,0,75,360,1,Urban,N 492 | LP002560,Male,No,0,Not Graduate,No,2699,2785,96,360,,Semiurban,Y 493 | LP002562,Male,Yes,1,Not Graduate,No,5333,1131,186,360,,Urban,Y 494 | LP002571,Male,No,0,Not Graduate,No,3691,0,110,360,1,Rural,Y 495 | LP002582,Female,No,0,Not Graduate,Yes,17263,0,225,360,1,Semiurban,Y 496 | LP002585,Male,Yes,0,Graduate,No,3597,2157,119,360,0,Rural,N 497 | LP002586,Female,Yes,1,Graduate,No,3326,913,105,84,1,Semiurban,Y 498 | LP002587,Male,Yes,0,Not Graduate,No,2600,1700,107,360,1,Rural,Y 499 | LP002588,Male,Yes,0,Graduate,No,4625,2857,111,12,,Urban,Y 500 | LP002600,Male,Yes,1,Graduate,Yes,2895,0,95,360,1,Semiurban,Y 501 | LP002602,Male,No,0,Graduate,No,6283,4416,209,360,0,Rural,N 502 | LP002603,Female,No,0,Graduate,No,645,3683,113,480,1,Rural,Y 503 | LP002606,Female,No,0,Graduate,No,3159,0,100,360,1,Semiurban,Y 504 | LP002615,Male,Yes,2,Graduate,No,4865,5624,208,360,1,Semiurban,Y 505 | LP002618,Male,Yes,1,Not Graduate,No,4050,5302,138,360,,Rural,N 506 | LP002619,Male,Yes,0,Not Graduate,No,3814,1483,124,300,1,Semiurban,Y 507 | LP002622,Male,Yes,2,Graduate,No,3510,4416,243,360,1,Rural,Y 508 | LP002624,Male,Yes,0,Graduate,No,20833,6667,480,360,,Urban,Y 509 | LP002625,,No,0,Graduate,No,3583,0,96,360,1,Urban,N 510 | LP002626,Male,Yes,0,Graduate,Yes,2479,3013,188,360,1,Urban,Y 511 | LP002634,Female,No,1,Graduate,No,13262,0,40,360,1,Urban,Y 512 | LP002637,Male,No,0,Not Graduate,No,3598,1287,100,360,1,Rural,N 513 | LP002640,Male,Yes,1,Graduate,No,6065,2004,250,360,1,Semiurban,Y 514 | LP002643,Male,Yes,2,Graduate,No,3283,2035,148,360,1,Urban,Y 515 | LP002648,Male,Yes,0,Graduate,No,2130,6666,70,180,1,Semiurban,N 516 | LP002652,Male,No,0,Graduate,No,5815,3666,311,360,1,Rural,N 517 | LP002659,Male,Yes,3+,Graduate,No,3466,3428,150,360,1,Rural,Y 518 | LP002670,Female,Yes,2,Graduate,No,2031,1632,113,480,1,Semiurban,Y 519 | LP002682,Male,Yes,,Not Graduate,No,3074,1800,123,360,0,Semiurban,N 520 | LP002683,Male,No,0,Graduate,No,4683,1915,185,360,1,Semiurban,N 521 | LP002684,Female,No,0,Not Graduate,No,3400,0,95,360,1,Rural,N 522 | LP002689,Male,Yes,2,Not Graduate,No,2192,1742,45,360,1,Semiurban,Y 523 | LP002690,Male,No,0,Graduate,No,2500,0,55,360,1,Semiurban,Y 524 | LP002692,Male,Yes,3+,Graduate,Yes,5677,1424,100,360,1,Rural,Y 525 | LP002693,Male,Yes,2,Graduate,Yes,7948,7166,480,360,1,Rural,Y 526 | LP002697,Male,No,0,Graduate,No,4680,2087,,360,1,Semiurban,N 527 | LP002699,Male,Yes,2,Graduate,Yes,17500,0,400,360,1,Rural,Y 528 | LP002705,Male,Yes,0,Graduate,No,3775,0,110,360,1,Semiurban,Y 529 | LP002706,Male,Yes,1,Not Graduate,No,5285,1430,161,360,0,Semiurban,Y 530 | LP002714,Male,No,1,Not Graduate,No,2679,1302,94,360,1,Semiurban,Y 531 | LP002716,Male,No,0,Not Graduate,No,6783,0,130,360,1,Semiurban,Y 532 | LP002717,Male,Yes,0,Graduate,No,1025,5500,216,360,,Rural,Y 533 | LP002720,Male,Yes,3+,Graduate,No,4281,0,100,360,1,Urban,Y 534 | LP002723,Male,No,2,Graduate,No,3588,0,110,360,0,Rural,N 535 | LP002729,Male,No,1,Graduate,No,11250,0,196,360,,Semiurban,N 536 | LP002731,Female,No,0,Not Graduate,Yes,18165,0,125,360,1,Urban,Y 537 | LP002732,Male,No,0,Not Graduate,,2550,2042,126,360,1,Rural,Y 538 | LP002734,Male,Yes,0,Graduate,No,6133,3906,324,360,1,Urban,Y 539 | LP002738,Male,No,2,Graduate,No,3617,0,107,360,1,Semiurban,Y 540 | LP002739,Male,Yes,0,Not Graduate,No,2917,536,66,360,1,Rural,N 541 | LP002740,Male,Yes,3+,Graduate,No,6417,0,157,180,1,Rural,Y 542 | LP002741,Female,Yes,1,Graduate,No,4608,2845,140,180,1,Semiurban,Y 543 | LP002743,Female,No,0,Graduate,No,2138,0,99,360,0,Semiurban,N 544 | LP002753,Female,No,1,Graduate,,3652,0,95,360,1,Semiurban,Y 545 | LP002755,Male,Yes,1,Not Graduate,No,2239,2524,128,360,1,Urban,Y 546 | LP002757,Female,Yes,0,Not Graduate,No,3017,663,102,360,,Semiurban,Y 547 | LP002767,Male,Yes,0,Graduate,No,2768,1950,155,360,1,Rural,Y 548 | LP002768,Male,No,0,Not Graduate,No,3358,0,80,36,1,Semiurban,N 549 | LP002772,Male,No,0,Graduate,No,2526,1783,145,360,1,Rural,Y 550 | LP002776,Female,No,0,Graduate,No,5000,0,103,360,0,Semiurban,N 551 | LP002777,Male,Yes,0,Graduate,No,2785,2016,110,360,1,Rural,Y 552 | LP002778,Male,Yes,2,Graduate,Yes,6633,0,,360,0,Rural,N 553 | LP002784,Male,Yes,1,Not Graduate,No,2492,2375,,360,1,Rural,Y 554 | LP002785,Male,Yes,1,Graduate,No,3333,3250,158,360,1,Urban,Y 555 | LP002788,Male,Yes,0,Not Graduate,No,2454,2333,181,360,0,Urban,N 556 | LP002789,Male,Yes,0,Graduate,No,3593,4266,132,180,0,Rural,N 557 | LP002792,Male,Yes,1,Graduate,No,5468,1032,26,360,1,Semiurban,Y 558 | LP002794,Female,No,0,Graduate,No,2667,1625,84,360,,Urban,Y 559 | LP002795,Male,Yes,3+,Graduate,Yes,10139,0,260,360,1,Semiurban,Y 560 | LP002798,Male,Yes,0,Graduate,No,3887,2669,162,360,1,Semiurban,Y 561 | LP002804,Female,Yes,0,Graduate,No,4180,2306,182,360,1,Semiurban,Y 562 | LP002807,Male,Yes,2,Not Graduate,No,3675,242,108,360,1,Semiurban,Y 563 | LP002813,Female,Yes,1,Graduate,Yes,19484,0,600,360,1,Semiurban,Y 564 | LP002820,Male,Yes,0,Graduate,No,5923,2054,211,360,1,Rural,Y 565 | LP002821,Male,No,0,Not Graduate,Yes,5800,0,132,360,1,Semiurban,Y 566 | LP002832,Male,Yes,2,Graduate,No,8799,0,258,360,0,Urban,N 567 | LP002833,Male,Yes,0,Not Graduate,No,4467,0,120,360,,Rural,Y 568 | LP002836,Male,No,0,Graduate,No,3333,0,70,360,1,Urban,Y 569 | LP002837,Male,Yes,3+,Graduate,No,3400,2500,123,360,0,Rural,N 570 | LP002840,Female,No,0,Graduate,No,2378,0,9,360,1,Urban,N 571 | LP002841,Male,Yes,0,Graduate,No,3166,2064,104,360,0,Urban,N 572 | LP002842,Male,Yes,1,Graduate,No,3417,1750,186,360,1,Urban,Y 573 | LP002847,Male,Yes,,Graduate,No,5116,1451,165,360,0,Urban,N 574 | LP002855,Male,Yes,2,Graduate,No,16666,0,275,360,1,Urban,Y 575 | LP002862,Male,Yes,2,Not Graduate,No,6125,1625,187,480,1,Semiurban,N 576 | LP002863,Male,Yes,3+,Graduate,No,6406,0,150,360,1,Semiurban,N 577 | LP002868,Male,Yes,2,Graduate,No,3159,461,108,84,1,Urban,Y 578 | LP002872,,Yes,0,Graduate,No,3087,2210,136,360,0,Semiurban,N 579 | LP002874,Male,No,0,Graduate,No,3229,2739,110,360,1,Urban,Y 580 | LP002877,Male,Yes,1,Graduate,No,1782,2232,107,360,1,Rural,Y 581 | LP002888,Male,No,0,Graduate,,3182,2917,161,360,1,Urban,Y 582 | LP002892,Male,Yes,2,Graduate,No,6540,0,205,360,1,Semiurban,Y 583 | LP002893,Male,No,0,Graduate,No,1836,33837,90,360,1,Urban,N 584 | LP002894,Female,Yes,0,Graduate,No,3166,0,36,360,1,Semiurban,Y 585 | LP002898,Male,Yes,1,Graduate,No,1880,0,61,360,,Rural,N 586 | LP002911,Male,Yes,1,Graduate,No,2787,1917,146,360,0,Rural,N 587 | LP002912,Male,Yes,1,Graduate,No,4283,3000,172,84,1,Rural,N 588 | LP002916,Male,Yes,0,Graduate,No,2297,1522,104,360,1,Urban,Y 589 | LP002917,Female,No,0,Not Graduate,No,2165,0,70,360,1,Semiurban,Y 590 | LP002925,,No,0,Graduate,No,4750,0,94,360,1,Semiurban,Y 591 | LP002926,Male,Yes,2,Graduate,Yes,2726,0,106,360,0,Semiurban,N 592 | LP002928,Male,Yes,0,Graduate,No,3000,3416,56,180,1,Semiurban,Y 593 | LP002931,Male,Yes,2,Graduate,Yes,6000,0,205,240,1,Semiurban,N 594 | LP002933,,No,3+,Graduate,Yes,9357,0,292,360,1,Semiurban,Y 595 | LP002936,Male,Yes,0,Graduate,No,3859,3300,142,180,1,Rural,Y 596 | LP002938,Male,Yes,0,Graduate,Yes,16120,0,260,360,1,Urban,Y 597 | LP002940,Male,No,0,Not Graduate,No,3833,0,110,360,1,Rural,Y 598 | LP002941,Male,Yes,2,Not Graduate,Yes,6383,1000,187,360,1,Rural,N 599 | LP002943,Male,No,,Graduate,No,2987,0,88,360,0,Semiurban,N 600 | LP002945,Male,Yes,0,Graduate,Yes,9963,0,180,360,1,Rural,Y 601 | LP002948,Male,Yes,2,Graduate,No,5780,0,192,360,1,Urban,Y 602 | LP002949,Female,No,3+,Graduate,,416,41667,350,180,,Urban,N 603 | LP002950,Male,Yes,0,Not Graduate,,2894,2792,155,360,1,Rural,Y 604 | LP002953,Male,Yes,3+,Graduate,No,5703,0,128,360,1,Urban,Y 605 | LP002958,Male,No,0,Graduate,No,3676,4301,172,360,1,Rural,Y 606 | LP002959,Female,Yes,1,Graduate,No,12000,0,496,360,1,Semiurban,Y 607 | LP002960,Male,Yes,0,Not Graduate,No,2400,3800,,180,1,Urban,N 608 | LP002961,Male,Yes,1,Graduate,No,3400,2500,173,360,1,Semiurban,Y 609 | LP002964,Male,Yes,2,Not Graduate,No,3987,1411,157,360,1,Rural,Y 610 | LP002974,Male,Yes,0,Graduate,No,3232,1950,108,360,1,Rural,Y 611 | LP002978,Female,No,0,Graduate,No,2900,0,71,360,1,Rural,Y 612 | LP002979,Male,Yes,3+,Graduate,No,4106,0,40,180,1,Rural,Y 613 | LP002983,Male,Yes,1,Graduate,No,8072,240,253,360,1,Urban,Y 614 | LP002984,Male,Yes,2,Graduate,No,7583,0,187,360,1,Urban,Y 615 | LP002990,Female,No,0,Graduate,Yes,4583,0,133,360,0,Semiurban,N 616 | -------------------------------------------------------------------------------- /CF Recommendation System - Examples/CF Recommendation System - Examples.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "**Examples of Collaborative Filtering based Recommendation Systems**" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": {}, 14 | "outputs": [], 15 | "source": [ 16 | "#make necesarry imports\n", 17 | "import numpy as np\n", 18 | "import pandas as pd\n", 19 | "import matplotlib.pyplot as plt\n", 20 | "import sklearn.metrics as metrics\n", 21 | "import numpy as np\n", 22 | "from sklearn.neighbors import NearestNeighbors\n", 23 | "from scipy.spatial.distance import correlation, cosine\n", 24 | "import ipywidgets as widgets\n", 25 | "from IPython.display import display, clear_output\n", 26 | "from sklearn.metrics import pairwise_distances\n", 27 | "from sklearn.metrics import mean_squared_error\n", 28 | "from math import sqrt\n", 29 | "import sys, os\n", 30 | "from contextlib import contextmanager" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 2, 36 | "metadata": { 37 | "collapsed": true 38 | }, 39 | "outputs": [], 40 | "source": [ 41 | "#M is user-item ratings matrix where ratings are integers from 1-10\n", 42 | "M = np.asarray([[3,7,4,9,9,7], \n", 43 | " [7,0,5,3,8,8],\n", 44 | " [7,5,5,0,8,4],\n", 45 | " [5,6,8,5,9,8],\n", 46 | " [5,8,8,8,10,9],\n", 47 | " [7,7,0,4,7,8]])\n", 48 | "M=pd.DataFrame(M)\n", 49 | "\n", 50 | "#declaring k,metric as global which can be changed by the user later\n", 51 | "global k,metric\n", 52 | "k=4\n", 53 | "metric='cosine' #can be changed to 'correlation' for Pearson correlation similaries" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 3, 59 | "metadata": {}, 60 | "outputs": [ 61 | { 62 | "data": { 63 | "text/html": [ 64 | "
\n", 65 | "\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 | " \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 | "
012345
0374997
1705388
2755084
3568598
45888109
5770478
\n", 147 | "
" 148 | ], 149 | "text/plain": [ 150 | " 0 1 2 3 4 5\n", 151 | "0 3 7 4 9 9 7\n", 152 | "1 7 0 5 3 8 8\n", 153 | "2 7 5 5 0 8 4\n", 154 | "3 5 6 8 5 9 8\n", 155 | "4 5 8 8 8 10 9\n", 156 | "5 7 7 0 4 7 8" 157 | ] 158 | }, 159 | "execution_count": 3, 160 | "metadata": {}, 161 | "output_type": "execute_result" 162 | } 163 | ], 164 | "source": [ 165 | "M" 166 | ] 167 | }, 168 | { 169 | "cell_type": "markdown", 170 | "metadata": {}, 171 | "source": [ 172 | "**User-based Recommendation Systems**" 173 | ] 174 | }, 175 | { 176 | "cell_type": "code", 177 | "execution_count": 4, 178 | "metadata": { 179 | "collapsed": true 180 | }, 181 | "outputs": [], 182 | "source": [ 183 | "#get cosine similarities for ratings matrix M; pairwise_distances returns the distances between ratings and hence\n", 184 | "#similarities are obtained by subtracting distances from 1\n", 185 | "cosine_sim = 1-pairwise_distances(M, metric=\"cosine\")" 186 | ] 187 | }, 188 | { 189 | "cell_type": "code", 190 | "execution_count": 5, 191 | "metadata": {}, 192 | "outputs": [ 193 | { 194 | "data": { 195 | "text/html": [ 196 | "
\n", 197 | "\n", 210 | "\n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | "
012345
01.0000000.7992680.7792270.9346220.9738900.884600
10.7992681.0000000.8747440.9058500.8661460.827036
20.7792270.8747441.0000000.9095130.8654540.853275
30.9346220.9058500.9095131.0000000.9893440.865614
40.9738900.8661460.8654540.9893441.0000000.881640
50.8846000.8270360.8532750.8656140.8816401.000000
\n", 279 | "
" 280 | ], 281 | "text/plain": [ 282 | " 0 1 2 3 4 5\n", 283 | "0 1.000000 0.799268 0.779227 0.934622 0.973890 0.884600\n", 284 | "1 0.799268 1.000000 0.874744 0.905850 0.866146 0.827036\n", 285 | "2 0.779227 0.874744 1.000000 0.909513 0.865454 0.853275\n", 286 | "3 0.934622 0.905850 0.909513 1.000000 0.989344 0.865614\n", 287 | "4 0.973890 0.866146 0.865454 0.989344 1.000000 0.881640\n", 288 | "5 0.884600 0.827036 0.853275 0.865614 0.881640 1.000000" 289 | ] 290 | }, 291 | "execution_count": 5, 292 | "metadata": {}, 293 | "output_type": "execute_result" 294 | } 295 | ], 296 | "source": [ 297 | "#Cosine similarity matrix\n", 298 | "pd.DataFrame(cosine_sim)" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 6, 304 | "metadata": { 305 | "collapsed": true 306 | }, 307 | "outputs": [], 308 | "source": [ 309 | "#get pearson similarities for ratings matrix M\n", 310 | "pearson_sim = 1-pairwise_distances(M, metric=\"correlation\")" 311 | ] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "execution_count": 7, 316 | "metadata": {}, 317 | "outputs": [ 318 | { 319 | "data": { 320 | "text/html": [ 321 | "
\n", 322 | "\n", 335 | "\n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | "
012345
01.000000-0.137446-0.3573980.2081790.7619050.277350
1-0.1374461.0000000.4538970.5159100.1124560.218328
2-0.3573980.4538971.0000000.451378-0.0428880.297373
30.2081790.5159100.4513781.0000000.763325-0.057739
40.7619050.112456-0.0428880.7633251.0000000.039621
50.2773500.2183280.297373-0.0577390.0396211.000000
\n", 404 | "
" 405 | ], 406 | "text/plain": [ 407 | " 0 1 2 3 4 5\n", 408 | "0 1.000000 -0.137446 -0.357398 0.208179 0.761905 0.277350\n", 409 | "1 -0.137446 1.000000 0.453897 0.515910 0.112456 0.218328\n", 410 | "2 -0.357398 0.453897 1.000000 0.451378 -0.042888 0.297373\n", 411 | "3 0.208179 0.515910 0.451378 1.000000 0.763325 -0.057739\n", 412 | "4 0.761905 0.112456 -0.042888 0.763325 1.000000 0.039621\n", 413 | "5 0.277350 0.218328 0.297373 -0.057739 0.039621 1.000000" 414 | ] 415 | }, 416 | "execution_count": 7, 417 | "metadata": {}, 418 | "output_type": "execute_result" 419 | } 420 | ], 421 | "source": [ 422 | "#Pearson correlation similarity matrix\n", 423 | "pd.DataFrame(pearson_sim)" 424 | ] 425 | }, 426 | { 427 | "cell_type": "code", 428 | "execution_count": 8, 429 | "metadata": { 430 | "collapsed": true 431 | }, 432 | "outputs": [], 433 | "source": [ 434 | "#This function finds k similar users given the user_id and ratings matrix M\n", 435 | "#Note that the similarities are same as obtained via using pairwise_distances\n", 436 | "def findksimilarusers(user_id, ratings, metric = metric, k=k):\n", 437 | " similarities=[]\n", 438 | " indices=[]\n", 439 | " model_knn = NearestNeighbors(metric = metric, algorithm = 'brute') \n", 440 | " model_knn.fit(ratings)\n", 441 | "\n", 442 | " distances, indices = model_knn.kneighbors(ratings.iloc[user_id-1, :].values.reshape(1, -1), n_neighbors = k)\n", 443 | " similarities = 1-distances.flatten()\n", 444 | " print '{0} most similar users for User {1}:\\n'.format(k-1,user_id)\n", 445 | " for i in range(0, len(indices.flatten())):\n", 446 | " if indices.flatten()[i]+1 == user_id:\n", 447 | " continue;\n", 448 | "\n", 449 | " else:\n", 450 | " print '{0}: User {1}, with similarity of {2}'.format(i, indices.flatten()[i]+1, similarities.flatten()[i])\n", 451 | " \n", 452 | " return similarities,indices" 453 | ] 454 | }, 455 | { 456 | "cell_type": "code", 457 | "execution_count": 9, 458 | "metadata": {}, 459 | "outputs": [ 460 | { 461 | "name": "stdout", 462 | "output_type": "stream", 463 | "text": [ 464 | "3 most similar users for User 1:\n", 465 | "\n", 466 | "1: User 5, with similarity of 0.973889935402\n", 467 | "2: User 4, with similarity of 0.934621684178\n", 468 | "3: User 6, with similarity of 0.88460045723\n" 469 | ] 470 | } 471 | ], 472 | "source": [ 473 | "similarities,indices = findksimilarusers(1,M, metric='cosine')" 474 | ] 475 | }, 476 | { 477 | "cell_type": "code", 478 | "execution_count": 10, 479 | "metadata": { 480 | "scrolled": true 481 | }, 482 | "outputs": [ 483 | { 484 | "name": "stdout", 485 | "output_type": "stream", 486 | "text": [ 487 | "3 most similar users for User 1:\n", 488 | "\n", 489 | "1: User 5, with similarity of 0.761904761905\n", 490 | "2: User 6, with similarity of 0.277350098113\n", 491 | "3: User 4, with similarity of 0.208179450927\n" 492 | ] 493 | } 494 | ], 495 | "source": [ 496 | "similarities,indices = findksimilarusers(1,M, metric='correlation')" 497 | ] 498 | }, 499 | { 500 | "cell_type": "code", 501 | "execution_count": 11, 502 | "metadata": { 503 | "collapsed": true 504 | }, 505 | "outputs": [], 506 | "source": [ 507 | "#This function predicts rating for specified user-item combination based on user-based approach\n", 508 | "def predict_userbased(user_id, item_id, ratings, metric = metric, k=k):\n", 509 | " prediction=0\n", 510 | " similarities, indices=findksimilarusers(user_id, ratings,metric, k) #similar users based on cosine similarity\n", 511 | " mean_rating = ratings.loc[user_id-1,:].mean() #to adjust for zero based indexing\n", 512 | " sum_wt = np.sum(similarities)-1\n", 513 | " product=1\n", 514 | " wtd_sum = 0 \n", 515 | " \n", 516 | " for i in range(0, len(indices.flatten())):\n", 517 | " if indices.flatten()[i]+1 == user_id:\n", 518 | " continue;\n", 519 | " else: \n", 520 | " ratings_diff = ratings.iloc[indices.flatten()[i],item_id-1]-np.mean(ratings.iloc[indices.flatten()[i],:])\n", 521 | " product = ratings_diff * (similarities[i])\n", 522 | " wtd_sum = wtd_sum + product\n", 523 | " \n", 524 | " prediction = int(round(mean_rating + (wtd_sum/sum_wt)))\n", 525 | " print '\\nPredicted rating for user {0} -> item {1}: {2}'.format(user_id,item_id,prediction)\n", 526 | "\n", 527 | " return prediction" 528 | ] 529 | }, 530 | { 531 | "cell_type": "code", 532 | "execution_count": 12, 533 | "metadata": {}, 534 | "outputs": [ 535 | { 536 | "name": "stdout", 537 | "output_type": "stream", 538 | "text": [ 539 | "3 most similar users for User 3:\n", 540 | "\n", 541 | "1: User 4, with similarity of 0.90951268934\n", 542 | "2: User 2, with similarity of 0.874744414849\n", 543 | "3: User 5, with similarity of 0.86545387815\n", 544 | "\n", 545 | "Predicted rating for user 3 -> item 4: 3\n" 546 | ] 547 | } 548 | ], 549 | "source": [ 550 | "predict_userbased(3,4,M);" 551 | ] 552 | }, 553 | { 554 | "cell_type": "markdown", 555 | "metadata": {}, 556 | "source": [ 557 | "**Item-based Recommendation Systems**" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": 13, 563 | "metadata": { 564 | "collapsed": true 565 | }, 566 | "outputs": [], 567 | "source": [ 568 | "#This function finds k similar items given the item_id and ratings matrix M\n", 569 | "\n", 570 | "def findksimilaritems(item_id, ratings, metric=metric, k=k):\n", 571 | " similarities=[]\n", 572 | " indices=[] \n", 573 | " ratings=ratings.T\n", 574 | " model_knn = NearestNeighbors(metric = metric, algorithm = 'brute')\n", 575 | " model_knn.fit(ratings)\n", 576 | "\n", 577 | " distances, indices = model_knn.kneighbors(ratings.iloc[item_id-1, :].values.reshape(1, -1), n_neighbors = k)\n", 578 | " similarities = 1-distances.flatten()\n", 579 | " print '{0} most similar items for item {1}:\\n'.format(k-1,item_id)\n", 580 | " for i in range(0, len(indices.flatten())):\n", 581 | " if indices.flatten()[i]+1 == item_id:\n", 582 | " continue;\n", 583 | "\n", 584 | " else:\n", 585 | " print '{0}: Item {1} :, with similarity of {2}'.format(i,indices.flatten()[i]+1, similarities.flatten()[i])\n", 586 | "\n", 587 | "\n", 588 | " return similarities,indices" 589 | ] 590 | }, 591 | { 592 | "cell_type": "code", 593 | "execution_count": 14, 594 | "metadata": {}, 595 | "outputs": [ 596 | { 597 | "name": "stdout", 598 | "output_type": "stream", 599 | "text": [ 600 | "3 most similar items for item 3:\n", 601 | "\n", 602 | "1: Item 5 :, with similarity of 0.918336125535\n", 603 | "2: Item 6 :, with similarity of 0.874759773038\n", 604 | "3: Item 1 :, with similarity of 0.810364746222\n" 605 | ] 606 | } 607 | ], 608 | "source": [ 609 | "similarities,indices=findksimilaritems(3,M)" 610 | ] 611 | }, 612 | { 613 | "cell_type": "code", 614 | "execution_count": 15, 615 | "metadata": { 616 | "collapsed": true 617 | }, 618 | "outputs": [], 619 | "source": [ 620 | "#This function predicts the rating for specified user-item combination based on item-based approach\n", 621 | "def predict_itembased(user_id, item_id, ratings, metric = metric, k=k):\n", 622 | " prediction= wtd_sum =0\n", 623 | " similarities, indices=findksimilaritems(item_id, ratings) #similar users based on correlation coefficients\n", 624 | " sum_wt = np.sum(similarities)-1\n", 625 | " product=1\n", 626 | " \n", 627 | " for i in range(0, len(indices.flatten())):\n", 628 | " if indices.flatten()[i]+1 == item_id:\n", 629 | " continue;\n", 630 | " else:\n", 631 | " product = ratings.iloc[user_id-1,indices.flatten()[i]] * (similarities[i])\n", 632 | " wtd_sum = wtd_sum + product \n", 633 | " prediction = int(round(wtd_sum/sum_wt))\n", 634 | " print '\\nPredicted rating for user {0} -> item {1}: {2}'.format(user_id,item_id,prediction) \n", 635 | "\n", 636 | " return prediction" 637 | ] 638 | }, 639 | { 640 | "cell_type": "code", 641 | "execution_count": 16, 642 | "metadata": {}, 643 | "outputs": [ 644 | { 645 | "name": "stdout", 646 | "output_type": "stream", 647 | "text": [ 648 | "3 most similar items for item 3:\n", 649 | "\n", 650 | "1: Item 5 :, with similarity of 0.918336125535\n", 651 | "2: Item 6 :, with similarity of 0.874759773038\n", 652 | "3: Item 1 :, with similarity of 0.810364746222\n", 653 | "\n", 654 | "Predicted rating for user 1 -> item 3: 6\n" 655 | ] 656 | } 657 | ], 658 | "source": [ 659 | "prediction = predict_itembased(1,3,M)" 660 | ] 661 | }, 662 | { 663 | "cell_type": "code", 664 | "execution_count": 17, 665 | "metadata": {}, 666 | "outputs": [], 667 | "source": [ 668 | "#This function is used to compute adjusted cosine similarity matrix for items\n", 669 | "def computeAdjCosSim(M):\n", 670 | " sim_matrix = np.zeros((M.shape[1], M.shape[1]))\n", 671 | " M_u = M.mean(axis=1) #means\n", 672 | " \n", 673 | " for i in range(M.shape[1]):\n", 674 | " for j in range(M.shape[1]):\n", 675 | " if i == j:\n", 676 | " \n", 677 | " sim_matrix[i][j] = 1\n", 678 | " else: \n", 679 | " if i\n", 727 | "\n", 740 | "\n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | " \n", 759 | " \n", 760 | " \n", 761 | " \n", 762 | " \n", 763 | " \n", 764 | " \n", 765 | " \n", 766 | " \n", 767 | " \n", 768 | " \n", 769 | " \n", 770 | " \n", 771 | " \n", 772 | " \n", 773 | " \n", 774 | " \n", 775 | " \n", 776 | " \n", 777 | " \n", 778 | " \n", 779 | " \n", 780 | " \n", 781 | " \n", 782 | " \n", 783 | " \n", 784 | " \n", 785 | " \n", 786 | " \n", 787 | " \n", 788 | " \n", 789 | " \n", 790 | " \n", 791 | " \n", 792 | " \n", 793 | " \n", 794 | " \n", 795 | " \n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | "
012345
01.0000000.2369080.421263-0.519085-0.1258920.010090
10.2369081.000000-0.8052430.0857410.2372730.520625
20.421263-0.8052431.000000-0.767941-0.230521-0.053640
3-0.5190850.085741-0.7679411.000000-0.299059-0.644550
4-0.1258920.237273-0.230521-0.2990591.0000000.599158
50.0100900.520625-0.053640-0.6445500.5991581.000000
\n", 809 | "" 810 | ], 811 | "text/plain": [ 812 | " 0 1 2 3 4 5\n", 813 | "0 1.000000 0.236908 0.421263 -0.519085 -0.125892 0.010090\n", 814 | "1 0.236908 1.000000 -0.805243 0.085741 0.237273 0.520625\n", 815 | "2 0.421263 -0.805243 1.000000 -0.767941 -0.230521 -0.053640\n", 816 | "3 -0.519085 0.085741 -0.767941 1.000000 -0.299059 -0.644550\n", 817 | "4 -0.125892 0.237273 -0.230521 -0.299059 1.000000 0.599158\n", 818 | "5 0.010090 0.520625 -0.053640 -0.644550 0.599158 1.000000" 819 | ] 820 | }, 821 | "execution_count": 19, 822 | "metadata": {}, 823 | "output_type": "execute_result" 824 | } 825 | ], 826 | "source": [ 827 | "adjcos_sim" 828 | ] 829 | }, 830 | { 831 | "cell_type": "code", 832 | "execution_count": 20, 833 | "metadata": { 834 | "collapsed": true 835 | }, 836 | "outputs": [], 837 | "source": [ 838 | "#This function finds k similar items given the item_id and ratings matrix M\n", 839 | "\n", 840 | "def findksimilaritems_adjcos(item_id, ratings, k=k):\n", 841 | " \n", 842 | " sim_matrix = computeAdjCosSim(ratings)\n", 843 | " similarities = sim_matrix[item_id-1].sort_values(ascending=False)[:k].values\n", 844 | " indices = sim_matrix[item_id-1].sort_values(ascending=False)[:k].index\n", 845 | " \n", 846 | " print '{0} most similar items for item {1}:\\n'.format(k-1,item_id)\n", 847 | " for i in range(0, len(indices)):\n", 848 | " if indices[i]+1 == item_id:\n", 849 | " continue;\n", 850 | "\n", 851 | " else:\n", 852 | " print '{0}: Item {1} :, with similarity of {2}'.format(i,indices[i]+1, similarities[i])\n", 853 | " \n", 854 | " return similarities ,indices " 855 | ] 856 | }, 857 | { 858 | "cell_type": "code", 859 | "execution_count": 21, 860 | "metadata": {}, 861 | "outputs": [ 862 | { 863 | "name": "stdout", 864 | "output_type": "stream", 865 | "text": [ 866 | "3 most similar items for item 3:\n", 867 | "\n", 868 | "1: Item 1 :, with similarity of 0.421262731871\n", 869 | "2: Item 6 :, with similarity of -0.0536398904889\n", 870 | "3: Item 5 :, with similarity of -0.230521358269\n" 871 | ] 872 | } 873 | ], 874 | "source": [ 875 | "similarities, indices = findksimilaritems_adjcos(3,M)" 876 | ] 877 | }, 878 | { 879 | "cell_type": "code", 880 | "execution_count": 22, 881 | "metadata": { 882 | "collapsed": true 883 | }, 884 | "outputs": [], 885 | "source": [ 886 | "#This function predicts the rating for specified user-item combination for adjusted cosine item-based approach\n", 887 | "#As the adjusted cosine similarities range from -1,+1, sometimes the predicted rating can be negative or greater than max value\n", 888 | "#Hack to deal with this: Rating is set to min if prediction is negative, Rating is set to max if prediction is above max\n", 889 | "def predict_itembased_adjcos(user_id, item_id, ratings):\n", 890 | " prediction=0\n", 891 | "\n", 892 | " similarities, indices=findksimilaritems_adjcos(item_id, ratings) #similar users based on correlation coefficients\n", 893 | " sum_wt = np.sum(similarities)-1\n", 894 | "\n", 895 | " product=1\n", 896 | " wtd_sum = 0 \n", 897 | " for i in range(0, len(indices)):\n", 898 | " if indices[i]+1 == item_id:\n", 899 | " continue;\n", 900 | " else:\n", 901 | " product = ratings.iloc[user_id-1,indices[i]] * (similarities[i])\n", 902 | " wtd_sum = wtd_sum + product \n", 903 | " prediction = int(round(wtd_sum/sum_wt))\n", 904 | " if prediction < 0:\n", 905 | " prediction = 1\n", 906 | " elif prediction >10:\n", 907 | " prediction = 10\n", 908 | " print '\\nPredicted rating for user {0} -> item {1}: {2}'.format(user_id,item_id,prediction) \n", 909 | " \n", 910 | " return prediction" 911 | ] 912 | }, 913 | { 914 | "cell_type": "code", 915 | "execution_count": 23, 916 | "metadata": {}, 917 | "outputs": [ 918 | { 919 | "name": "stdout", 920 | "output_type": "stream", 921 | "text": [ 922 | "3 most similar items for item 4:\n", 923 | "\n", 924 | "1: Item 2 :, with similarity of 0.0857414341149\n", 925 | "2: Item 5 :, with similarity of -0.29905882779\n", 926 | "3: Item 1 :, with similarity of -0.519085268895\n", 927 | "\n", 928 | "Predicted rating for user 3 -> item 4: 8\n" 929 | ] 930 | } 931 | ], 932 | "source": [ 933 | "prediction=predict_itembased_adjcos(3,4,M)" 934 | ] 935 | }, 936 | { 937 | "cell_type": "code", 938 | "execution_count": 24, 939 | "metadata": {}, 940 | "outputs": [ 941 | { 942 | "data": { 943 | "text/html": [ 944 | "
\n", 945 | "\n", 958 | "\n", 959 | " \n", 960 | " \n", 961 | " \n", 962 | " \n", 963 | " \n", 964 | " \n", 965 | " \n", 966 | " \n", 967 | " \n", 968 | " \n", 969 | " \n", 970 | " \n", 971 | " \n", 972 | " \n", 973 | " \n", 974 | " \n", 975 | " \n", 976 | " \n", 977 | " \n", 978 | " \n", 979 | " \n", 980 | " \n", 981 | " \n", 982 | " \n", 983 | " \n", 984 | " \n", 985 | " \n", 986 | " \n", 987 | " \n", 988 | " \n", 989 | " \n", 990 | " \n", 991 | " \n", 992 | " \n", 993 | " \n", 994 | " \n", 995 | " \n", 996 | " \n", 997 | " \n", 998 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | " \n", 1005 | " \n", 1006 | " \n", 1007 | " \n", 1008 | " \n", 1009 | " \n", 1010 | " \n", 1011 | " \n", 1012 | " \n", 1013 | " \n", 1014 | " \n", 1015 | " \n", 1016 | " \n", 1017 | " \n", 1018 | " \n", 1019 | " \n", 1020 | " \n", 1021 | " \n", 1022 | " \n", 1023 | " \n", 1024 | " \n", 1025 | " \n", 1026 | "
012345
01.0000000.2369080.421263-0.519085-0.1258920.010090
10.2369081.000000-0.8052430.0857410.2372730.520625
20.421263-0.8052431.000000-0.767941-0.230521-0.053640
3-0.5190850.085741-0.7679411.000000-0.299059-0.644550
4-0.1258920.237273-0.230521-0.2990591.0000000.599158
50.0100900.520625-0.053640-0.6445500.5991581.000000
\n", 1027 | "
" 1028 | ], 1029 | "text/plain": [ 1030 | " 0 1 2 3 4 5\n", 1031 | "0 1.000000 0.236908 0.421263 -0.519085 -0.125892 0.010090\n", 1032 | "1 0.236908 1.000000 -0.805243 0.085741 0.237273 0.520625\n", 1033 | "2 0.421263 -0.805243 1.000000 -0.767941 -0.230521 -0.053640\n", 1034 | "3 -0.519085 0.085741 -0.767941 1.000000 -0.299059 -0.644550\n", 1035 | "4 -0.125892 0.237273 -0.230521 -0.299059 1.000000 0.599158\n", 1036 | "5 0.010090 0.520625 -0.053640 -0.644550 0.599158 1.000000" 1037 | ] 1038 | }, 1039 | "execution_count": 24, 1040 | "metadata": {}, 1041 | "output_type": "execute_result" 1042 | } 1043 | ], 1044 | "source": [ 1045 | "adjcos_sim" 1046 | ] 1047 | }, 1048 | { 1049 | "cell_type": "code", 1050 | "execution_count": 25, 1051 | "metadata": { 1052 | "collapsed": true 1053 | }, 1054 | "outputs": [], 1055 | "source": [ 1056 | "#This function utilizes above function to recommend items for selected approach. Recommendations are made if the predicted\n", 1057 | "#rating for an item is greater than or equal to 6, and the items has not been rated already\n", 1058 | "def recommendItem(user_id, item_id, ratings):\n", 1059 | " \n", 1060 | " if user_id<1 or user_id>6 or type(user_id) is not int:\n", 1061 | " print 'Userid does not exist. Enter numbers from 1-6'\n", 1062 | " else: \n", 1063 | " ids = ['User-based CF (cosine)','User-based CF (correlation)','Item-based CF (cosine)',\n", 1064 | " 'Item-based CF (adjusted cosine)']\n", 1065 | "\n", 1066 | " approach = widgets.Dropdown(options=ids, value=ids[0],\n", 1067 | " description='Select Approach', width='500px')\n", 1068 | " \n", 1069 | " def on_change(change):\n", 1070 | " prediction = 0\n", 1071 | " clear_output(wait=True)\n", 1072 | " if change['type'] == 'change' and change['name'] == 'value': \n", 1073 | " if (approach.value == 'User-based CF (cosine)'):\n", 1074 | " metric = 'cosine'\n", 1075 | " prediction = predict_userbased(user_id, item_id, ratings, metric)\n", 1076 | " elif (approach.value == 'User-based CF (correlation)') : \n", 1077 | " metric = 'correlation' \n", 1078 | " prediction = predict_userbased(user_id, item_id, ratings, metric)\n", 1079 | " elif (approach.value == 'Item-based CF (cosine)'):\n", 1080 | " prediction = predict_itembased(user_id, item_id, ratings)\n", 1081 | " else:\n", 1082 | " prediction = predict_itembased_adjcos(user_id,item_id,ratings)\n", 1083 | "\n", 1084 | " if ratings[item_id-1][user_id-1] != 0: \n", 1085 | " print 'Item already rated'\n", 1086 | " else:\n", 1087 | " if prediction>=6:\n", 1088 | " print '\\nItem recommended'\n", 1089 | " else:\n", 1090 | " print 'Item not recommended'\n", 1091 | "\n", 1092 | " approach.observe(on_change)\n", 1093 | " display(approach)" 1094 | ] 1095 | }, 1096 | { 1097 | "cell_type": "code", 1098 | "execution_count": 26, 1099 | "metadata": {}, 1100 | "outputs": [ 1101 | { 1102 | "name": "stdout", 1103 | "output_type": "stream", 1104 | "text": [ 1105 | "Userid does not exist. Enter numbers from 1-6\n" 1106 | ] 1107 | } 1108 | ], 1109 | "source": [ 1110 | "#check for incorrect entries\n", 1111 | "recommendItem(-1,3,M)" 1112 | ] 1113 | }, 1114 | { 1115 | "cell_type": "code", 1116 | "execution_count": 27, 1117 | "metadata": {}, 1118 | "outputs": [ 1119 | { 1120 | "name": "stdout", 1121 | "output_type": "stream", 1122 | "text": [ 1123 | "3 most similar users for User 3:\n", 1124 | "\n", 1125 | "1: User 4, with similarity of 0.90951268934\n", 1126 | "2: User 2, with similarity of 0.874744414849\n", 1127 | "3: User 5, with similarity of 0.86545387815\n", 1128 | "\n", 1129 | "Predicted rating for user 3 -> item 4: 3\n", 1130 | "Item not recommended\n" 1131 | ] 1132 | } 1133 | ], 1134 | "source": [ 1135 | "recommendItem(3,4,M)" 1136 | ] 1137 | }, 1138 | { 1139 | "cell_type": "code", 1140 | "execution_count": 28, 1141 | "metadata": {}, 1142 | "outputs": [ 1143 | { 1144 | "name": "stdout", 1145 | "output_type": "stream", 1146 | "text": [ 1147 | "3 most similar users for User 3:\n", 1148 | "\n", 1149 | "1: User 2, with similarity of 0.453897185842\n", 1150 | "2: User 4, with similarity of 0.451378005098\n", 1151 | "3: User 6, with similarity of 0.297373304825\n", 1152 | "\n", 1153 | "Predicted rating for user 3 -> item 4: 3\n", 1154 | "Item not recommended\n" 1155 | ] 1156 | } 1157 | ], 1158 | "source": [ 1159 | "recommendItem(3,4,M)" 1160 | ] 1161 | }, 1162 | { 1163 | "cell_type": "code", 1164 | "execution_count": 29, 1165 | "metadata": {}, 1166 | "outputs": [ 1167 | { 1168 | "name": "stdout", 1169 | "output_type": "stream", 1170 | "text": [ 1171 | "3 most similar items for item 4:\n", 1172 | "\n", 1173 | "1: Item 6 :, with similarity of 0.89977997614\n", 1174 | "2: Item 2 :, with similarity of 0.887160079571\n", 1175 | "3: Item 5 :, with similarity of 0.88180009273\n", 1176 | "\n", 1177 | "Predicted rating for user 3 -> item 4: 6\n", 1178 | "\n", 1179 | "Item recommended\n" 1180 | ] 1181 | } 1182 | ], 1183 | "source": [ 1184 | "recommendItem(3,4,M)" 1185 | ] 1186 | }, 1187 | { 1188 | "cell_type": "code", 1189 | "execution_count": 30, 1190 | "metadata": {}, 1191 | "outputs": [ 1192 | { 1193 | "name": "stdout", 1194 | "output_type": "stream", 1195 | "text": [ 1196 | "3 most similar items for item 4:\n", 1197 | "\n", 1198 | "1: Item 2 :, with similarity of 0.0857414341149\n", 1199 | "2: Item 5 :, with similarity of -0.29905882779\n", 1200 | "3: Item 1 :, with similarity of -0.519085268895\n", 1201 | "\n", 1202 | "Predicted rating for user 3 -> item 4: 8\n", 1203 | "\n", 1204 | "Item recommended\n" 1205 | ] 1206 | } 1207 | ], 1208 | "source": [ 1209 | "recommendItem(3,4,M)" 1210 | ] 1211 | }, 1212 | { 1213 | "cell_type": "code", 1214 | "execution_count": 31, 1215 | "metadata": {}, 1216 | "outputs": [ 1217 | { 1218 | "name": "stdout", 1219 | "output_type": "stream", 1220 | "text": [ 1221 | "3 most similar users for User 2:\n", 1222 | "\n", 1223 | "1: User 4, with similarity of 0.515910067398\n", 1224 | "2: User 3, with similarity of 0.453897185842\n", 1225 | "3: User 6, with similarity of 0.218327934565\n", 1226 | "\n", 1227 | "Predicted rating for user 2 -> item 1: 5\n", 1228 | "Item already rated\n" 1229 | ] 1230 | } 1231 | ], 1232 | "source": [ 1233 | "#if the item is already rated, it is not recommended\n", 1234 | "recommendItem(2,1,M)" 1235 | ] 1236 | }, 1237 | { 1238 | "cell_type": "code", 1239 | "execution_count": 35, 1240 | "metadata": {}, 1241 | "outputs": [], 1242 | "source": [ 1243 | "#This is a quick way to temporarily suppress stdout in particular code section\n", 1244 | "@contextmanager\n", 1245 | "def suppress_stdout():\n", 1246 | " with open(os.devnull, \"w\") as devnull:\n", 1247 | " old_stdout = sys.stdout\n", 1248 | " sys.stdout = devnull\n", 1249 | " try: \n", 1250 | " yield\n", 1251 | " finally:\n", 1252 | " sys.stdout = old_stdout" 1253 | ] 1254 | }, 1255 | { 1256 | "cell_type": "code", 1257 | "execution_count": 45, 1258 | "metadata": {}, 1259 | "outputs": [], 1260 | "source": [ 1261 | "#This is final function to evaluate the performance of selected recommendation approach and the metric used here is RMSE\n", 1262 | "#suppress_stdout function is used to suppress the print outputs of all the functions inside this function. It will only print \n", 1263 | "#RMSE values\n", 1264 | "def evaluateRS(ratings):\n", 1265 | " ids = ['User-based CF (cosine)','User-based CF (correlation)','Item-based CF (cosine)','Item-based CF (adjusted cosine)']\n", 1266 | " approach = widgets.Dropdown(options=ids, value=ids[0],description='Select Approach', width='500px')\n", 1267 | " n_users = ratings.shape[0]\n", 1268 | " n_items = ratings.shape[1]\n", 1269 | " prediction = np.zeros((n_users, n_items))\n", 1270 | " prediction= pd.DataFrame(prediction)\n", 1271 | " def on_change(change):\n", 1272 | " clear_output(wait=True)\n", 1273 | " with suppress_stdout():\n", 1274 | " if change['type'] == 'change' and change['name'] == 'value': \n", 1275 | " if (approach.value == 'User-based CF (cosine)'):\n", 1276 | " metric = 'cosine'\n", 1277 | " for i in range(n_users):\n", 1278 | " for j in range(n_items):\n", 1279 | " prediction[i][j] = predict_userbased(i+1, j+1, ratings, metric)\n", 1280 | " elif (approach.value == 'User-based CF (correlation)') : \n", 1281 | " metric = 'correlation' \n", 1282 | " for i in range(n_users):\n", 1283 | " for j in range(n_items):\n", 1284 | " prediction[i][j] = predict_userbased(i+1, j+1, ratings, metric)\n", 1285 | " elif (approach.value == 'Item-based CF (cosine)'):\n", 1286 | " for i in range(n_users):\n", 1287 | " for j in range(n_items):\n", 1288 | " prediction[i][j] = predict_userbased(i+1, j+1, ratings)\n", 1289 | " else:\n", 1290 | " for i in range(n_users):\n", 1291 | " for j in range(n_items):\n", 1292 | " prediction[i][j] = predict_userbased(i+1, j+1, ratings)\n", 1293 | " \n", 1294 | " MSE = mean_squared_error(prediction, ratings)\n", 1295 | " RMSE = round(sqrt(MSE),3)\n", 1296 | " print \"RMSE using {0} approach is: {1}\".format(approach.value,RMSE)\n", 1297 | " \n", 1298 | " approach.observe(on_change)\n", 1299 | " display(approach)" 1300 | ] 1301 | }, 1302 | { 1303 | "cell_type": "code", 1304 | "execution_count": 46, 1305 | "metadata": {}, 1306 | "outputs": [ 1307 | { 1308 | "name": "stdout", 1309 | "output_type": "stream", 1310 | "text": [ 1311 | "RMSE using User-based CF (cosine) approach is: 2.667\n" 1312 | ] 1313 | } 1314 | ], 1315 | "source": [ 1316 | "evaluateRS(M)" 1317 | ] 1318 | }, 1319 | { 1320 | "cell_type": "code", 1321 | "execution_count": 47, 1322 | "metadata": {}, 1323 | "outputs": [ 1324 | { 1325 | "name": "stdout", 1326 | "output_type": "stream", 1327 | "text": [ 1328 | "RMSE using User-based CF (correlation) approach is: 2.764\n" 1329 | ] 1330 | } 1331 | ], 1332 | "source": [ 1333 | "evaluateRS(M)" 1334 | ] 1335 | }, 1336 | { 1337 | "cell_type": "markdown", 1338 | "metadata": {}, 1339 | "source": [ 1340 | "**Thanks for reading this notebook**" 1341 | ] 1342 | } 1343 | ], 1344 | "metadata": { 1345 | "kernelspec": { 1346 | "display_name": "Python 2", 1347 | "language": "python", 1348 | "name": "python2" 1349 | }, 1350 | "language_info": { 1351 | "codemirror_mode": { 1352 | "name": "ipython", 1353 | "version": 2 1354 | }, 1355 | "file_extension": ".py", 1356 | "mimetype": "text/x-python", 1357 | "name": "python", 1358 | "nbconvert_exporter": "python", 1359 | "pygments_lexer": "ipython2", 1360 | "version": "2.7.13" 1361 | } 1362 | }, 1363 | "nbformat": 4, 1364 | "nbformat_minor": 2 1365 | } 1366 | --------------------------------------------------------------------------------