├── Backend ├── model_RandF.sav ├── Prediction.ipynb └── .ipynb_checkpoints │ └── Prediction-checkpoint.ipynb ├── Frontend ├── assets │ ├── kunal.png │ ├── logo.jpg │ ├── saif.jpg │ ├── Sepideh.jpg │ ├── lamees.png │ ├── tamanna.jpg │ ├── objective.jpg │ ├── overlay-img.jpg │ └── style.css ├── .ipynb_checkpoints │ └── Visualization-checkpoint.ipynb └── app.py ├── README.md └── Dataset ├── Admission_Predict_Ver1.1.csv └── admission_predict_V1.2.csv /Backend/model_RandF.sav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Backend/model_RandF.sav -------------------------------------------------------------------------------- /Frontend/assets/kunal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/kunal.png -------------------------------------------------------------------------------- /Frontend/assets/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/logo.jpg -------------------------------------------------------------------------------- /Frontend/assets/saif.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/saif.jpg -------------------------------------------------------------------------------- /Frontend/assets/Sepideh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/Sepideh.jpg -------------------------------------------------------------------------------- /Frontend/assets/lamees.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/lamees.png -------------------------------------------------------------------------------- /Frontend/assets/tamanna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/tamanna.jpg -------------------------------------------------------------------------------- /Frontend/assets/objective.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/objective.jpg -------------------------------------------------------------------------------- /Frontend/assets/overlay-img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tamanna18/SAP-project/HEAD/Frontend/assets/overlay-img.jpg -------------------------------------------------------------------------------- /Frontend/assets/style.css: -------------------------------------------------------------------------------- 1 | body{ 2 | width: 100%; 3 | margin:0; 4 | padding: 0; 5 | 6 | } 7 | P { 8 | margin-block-end: 0em; 9 | } 10 | .block-caption { 11 | font-size: 20px; 12 | margin: 40px 0 20px 0; 13 | text-transform: uppercase; 14 | color:#276678; 15 | font-weight: bold; 16 | } 17 | .custom-tabs-container { 18 | width: 100%; 19 | } 20 | .custom-tabs { 21 | border-top-left-radius: 3px; 22 | background-color: #fff; 23 | padding: 0px; 24 | margin-bottom:10px; 25 | 26 | } 27 | /* 28 | .custom-tab { 29 | color:#276678; 30 | border-top-left-radius: 3px; 31 | border-top-right-radius: 3px; 32 | border-top: 3px solid transparent !important; 33 | border-left: 0px !important; 34 | border-right: 0px !important; 35 | border-bottom: 0px !important; 36 | background-color: #fafbfc; 37 | padding: 12px !important; 38 | font-family: "system-ui"; 39 | display: flex !important; 40 | align-items: center; 41 | justify-content: center; 42 | } 43 | .tabs { 44 | text-align: center; 45 | height:40px; 46 | padding:10px; 47 | margin:10px 0px; 48 | line-height: 0; 49 | } 50 | */ 51 | .tab-icon { 52 | font-size:15px; 53 | padding:10px; 54 | color: #1687a7; 55 | 56 | } 57 | .custom-tab--selected { 58 | color:#276678; 59 | box-shadow: 1px 1px 0px white; 60 | border-left: 1px solid lightgrey !important; 61 | border-right: 1px solid lightgrey !important; 62 | border-top: 3px solid #e36209 !important; 63 | } 64 | 65 | 66 | .text-content { 67 | text-align: justify; 68 | font-size: 18px; 69 | margin: 5px; 70 | } 71 | 72 | .text-content-title { 73 | font-size: 20px; 74 | margin: 40px 0 20px 0; 75 | text-transform: uppercase; 76 | font-style: normal 77 | } 78 | 79 | .avatar-container { 80 | display: flex; 81 | margin: 20px; 82 | justify-content: center; 83 | flex-wrap: wrap; 84 | } 85 | .avatar { 86 | width: 50%; 87 | margin: 10px; 88 | box-shadow: 0px 4px 5px rgb(96 160 147 / 0.4); 89 | border-radius: 50%; 90 | width: 100px; 91 | height: 100px; 92 | object-fit: cover; 93 | } 94 | 95 | .social-link { 96 | font-size:30px; 97 | padding:5px; 98 | text-decoration:none; 99 | color: #1687a7; 100 | } 101 | 102 | .header-style { 103 | background-color: #fff; 104 | color:#1687a7 105 | } 106 | 107 | 108 | .header-links{ 109 | font-size: 16px; 110 | padding: 5px; 111 | text-decoration: none; 112 | color:#276678 113 | } 114 | 115 | .box { 116 | background-color:rgb(249 249 249); 117 | padding: 10px; 118 | margin: 5px; 119 | } 120 | 121 | 122 | .AboutUs { 123 | background-color:#fff; 124 | padding:5px 0px; 125 | margin: 0px; 126 | text-align:center; 127 | color:#276678; 128 | } 129 | 130 | .section { 131 | /*rgb(249 249 249);*/ 132 | padding:0px 0px; 133 | margin: 0px; 134 | text-align:center; 135 | 136 | } 137 | .objective-H2{ 138 | padding:2px; 139 | font-size:20px; 140 | font-weight:bold; 141 | } 142 | .objective-overlay{ 143 | background: rgba(49,55,61,0.3); 144 | width: 100%; 145 | height: 200px; 146 | 147 | } 148 | .objective-overlay-img { 149 | background-image: url('../assets/objective.jpg'); 150 | -webkit-background-size: cover; 151 | -moz-background-size: cover; 152 | -o-background-size: cover; 153 | background-size: cover; 154 | color: #FFF; 155 | height:200px; 156 | } 157 | 158 | .border-style{ 159 | border-style: outset; 160 | border-radius: 20px; 161 | padding: 20px; 162 | box-shadow: 1px 1px; 163 | margin-top:50px; 164 | } 165 | 166 | .table { 167 | margin-top: 20px; 168 | text-align: center; 169 | } 170 | .prediction-text{ 171 | font-weight:bold; 172 | font-size:30px; 173 | color:#1687a7; 174 | text-align:center; 175 | } 176 | .prediction-bar { 177 | text-align: center; 178 | } 179 | 180 | 181 | .overlay { 182 | background: rgba(49,55,61,0.5); 183 | width: 100%; 184 | height: 300px; 185 | 186 | } 187 | 188 | .overlay-img { 189 | background-image: url('../assets/overlay-img.jpg'); 190 | -webkit-background-size: cover; 191 | -moz-background-size: cover; 192 | -o-background-size: cover; 193 | background-size: cover; 194 | color: #FFF 195 | } 196 | 197 | .banner { 198 | text-align: center; 199 | padding: 92px; 200 | } 201 | 202 | .footer { 203 | text-align: center; 204 | background-color: #1687a7; 205 | color: #FFF; 206 | bottom: 0; 207 | } 208 | 209 | 210 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Student Admission Prediction (SAP-Project) 2 | 3 |

4 | 5 |

6 | 7 | # Project Idea 8 | This is a student project about predicting the chance of admission. For this project we are using Graduate Admission Dataset from Kaggle. We will use machine learning to analyze the data, find a model to predict the University Ranking and then visualize the result. 9 | 10 | 11 | # Requirments and Preparation 12 | 13 | * Required Libraries 14 | + [Dash](https://plotly.com/dash/) 15 | + [Numpy](https://numpy.org/) 16 | + [Pandas](https://pandas.pydata.org/) 17 | + [scikit-learn](https://scikit-learn.org/stable/) 18 | + [Joblib](https://joblib.readthedocs.io/en/latest/) 19 | 20 | * Start Server 21 | * Create a virtual environment for the project: python -m venv venv 22 | * Activate the virtual environment for windows: venv\Scripts\activate 23 | - Activate the virtual environment for Linux/macOS: source venv/bin/activate 24 | * Install required libraries in the project: pip install dash pandas numpy joblib 25 | * Start server: python app.py 26 | 27 | 28 | 29 | # Implementation approach 30 | 31 | ## Dataset: 32 | https://www.kaggle.com/mohansacharya/graduate-admissions?select=Admission_Predict_Ver1.1.csv 33 | 34 | ## Algorithms: 35 | * Regression 36 | * DecisionTree 37 | * Linear Regression 38 | * RandomForest 39 | * KNeighbours 40 | * SVM 41 | * AdaBoostClassifier 42 | * GradientBoostingClassifier 43 | * Ridge 44 | * BayesianRidge 45 | * ElasticNet 46 | * HuberRegressor 47 | 48 | ## Tools: 49 | * DASH/Plotly 50 | 51 | ## Project Arcithecture: 52 | * Machine learning model: regression with RandonForestRegressor 53 | * Backend: Flask which is embedded in Dash 54 | * Frontend: Dash/Plotly 55 | 56 | ## Visualization: 57 | 58 | ### Home 59 | ![Home](https://user-images.githubusercontent.com/57901189/107371093-258cbc00-6ae4-11eb-8c8b-c059b9f9cc26.png) 60 | ---------------------------------------------- 61 | ### Dataset 62 | ![Dataset](https://user-images.githubusercontent.com/57901189/107371106-2887ac80-6ae4-11eb-9198-cca7ff58b900.png) 63 | ---------------------------------------------- 64 | ### Dashboard 65 | ![Dashboard'](https://user-images.githubusercontent.com/57901189/107371115-2c1b3380-6ae4-11eb-9044-572573527dec.png) 66 | ---------------------------------------------- 67 | ### Machine Learning 68 | ![ML](https://user-images.githubusercontent.com/57901189/107371134-30475100-6ae4-11eb-8494-f6084c03b9a5.png) 69 | ---------------------------------------------- 70 | ### Prediction 71 | ![Prediction](https://user-images.githubusercontent.com/57901189/107371144-34736e80-6ae4-11eb-8afb-3644751a2d65.png) 72 | 73 | 74 | 75 | # SAP-Project on GitHub: 76 | https://github.com/LameesKadhim/SAP-project 77 | 78 | # SAP-Project on Heroku: 79 | https://predict-student-admission.herokuapp.com/ 80 | 81 | # SAP-Project Video Trailer: 82 | https://youtu.be/rXDHiqIxYuQ 83 | 84 | # Deployment steps on Heroku 85 | 86 | * Step 1. Create a new folder for your project: 87 | 88 | $ mkdir sap-project 89 | 90 | $ cd sap-project 91 | 92 | 93 | * Step 2. Initialize the folder with git and a virtualenv 94 | 95 | $ git init // initializes an empty git repo 96 | 97 | $ virtualenv venv // creates a virtualenv called "venv" 98 | 99 | $ venv\Scripts\activate // Activate the virtual environment for windows 100 | 101 | -uses the virtualenv for linux and Macos: $ source venv/bin/activate 102 | 103 | You will need to reinstall your app's dependencies with this virtualenv: 104 | 105 | $ pip install dash 106 | 107 | $ pip install plotly 108 | 109 | You will also need a new dependency, gunicorn, for deploying the app: 110 | 111 | $ pip install gunicorn 112 | 113 | * Step 3. Initialize the folder with the (app.py), requirements.txt, and a Procfile for deployment 114 | 115 | 116 | content of Procfile is --> web: gunicorn app:server 117 | 118 | creation of requirements.txt file: 119 | 120 | requirements.txt describes your Python dependencies. You can fill this file in automatically with: 121 | 122 | $ pip freeze > requirements.txt 123 | 124 | 125 | * Step 4 Initialize Heroku, add files to Git, and deploy 126 | 127 | $ heroku create my-dash-app # change my-dash-app to a unique name 128 | 129 | $ git add . # add all files to git 130 | 131 | $ git commit -m 'Initial app boilerplate' 132 | 133 | $ git push heroku master # deploy code to heroku 134 | 135 | 136 | # Contributors 137 | * Saif Almaliki 138 | 139 | * Lamees Kadhim 140 | 141 | * Tamanna 142 | 143 | * Kunal 144 | 145 | * Sepideh Hosseini Dehkordi 146 | 147 | 148 | -------------------------------------------------------------------------------- /Dataset/Admission_Predict_Ver1.1.csv: -------------------------------------------------------------------------------- 1 | Serial No.,GRE Score,TOEFL Score,University Rating,SOP,LOR ,CGPA,Research,Chance of Admit 2 | 1,337,118,4,4.5,4.5,9.65,1,0.92 3 | 2,324,107,4,4,4.5,8.87,1,0.76 4 | 3,316,104,3,3,3.5,8,1,0.72 5 | 4,322,110,3,3.5,2.5,8.67,1,0.8 6 | 5,314,103,2,2,3,8.21,0,0.65 7 | 6,330,115,5,4.5,3,9.34,1,0.9 8 | 7,321,109,3,3,4,8.2,1,0.75 9 | 8,308,101,2,3,4,7.9,0,0.68 10 | 9,302,102,1,2,1.5,8,0,0.5 11 | 10,323,108,3,3.5,3,8.6,0,0.45 12 | 11,325,106,3,3.5,4,8.4,1,0.52 13 | 12,327,111,4,4,4.5,9,1,0.84 14 | 13,328,112,4,4,4.5,9.1,1,0.78 15 | 14,307,109,3,4,3,8,1,0.62 16 | 15,311,104,3,3.5,2,8.2,1,0.61 17 | 16,314,105,3,3.5,2.5,8.3,0,0.54 18 | 17,317,107,3,4,3,8.7,0,0.66 19 | 18,319,106,3,4,3,8,1,0.65 20 | 19,318,110,3,4,3,8.8,0,0.63 21 | 20,303,102,3,3.5,3,8.5,0,0.62 22 | 21,312,107,3,3,2,7.9,1,0.64 23 | 22,325,114,4,3,2,8.4,0,0.7 24 | 23,328,116,5,5,5,9.5,1,0.94 25 | 24,334,119,5,5,4.5,9.7,1,0.95 26 | 25,336,119,5,4,3.5,9.8,1,0.97 27 | 26,340,120,5,4.5,4.5,9.6,1,0.94 28 | 27,322,109,5,4.5,3.5,8.8,0,0.76 29 | 28,298,98,2,1.5,2.5,7.5,1,0.44 30 | 29,295,93,1,2,2,7.2,0,0.46 31 | 30,310,99,2,1.5,2,7.3,0,0.54 32 | 31,300,97,2,3,3,8.1,1,0.65 33 | 32,327,103,3,4,4,8.3,1,0.74 34 | 33,338,118,4,3,4.5,9.4,1,0.91 35 | 34,340,114,5,4,4,9.6,1,0.9 36 | 35,331,112,5,4,5,9.8,1,0.94 37 | 36,320,110,5,5,5,9.2,1,0.88 38 | 37,299,106,2,4,4,8.4,0,0.64 39 | 38,300,105,1,1,2,7.8,0,0.58 40 | 39,304,105,1,3,1.5,7.5,0,0.52 41 | 40,307,108,2,4,3.5,7.7,0,0.48 42 | 41,308,110,3,3.5,3,8,1,0.46 43 | 42,316,105,2,2.5,2.5,8.2,1,0.49 44 | 43,313,107,2,2.5,2,8.5,1,0.53 45 | 44,332,117,4,4.5,4,9.1,0,0.87 46 | 45,326,113,5,4.5,4,9.4,1,0.91 47 | 46,322,110,5,5,4,9.1,1,0.88 48 | 47,329,114,5,4,5,9.3,1,0.86 49 | 48,339,119,5,4.5,4,9.7,0,0.89 50 | 49,321,110,3,3.5,5,8.85,1,0.82 51 | 50,327,111,4,3,4,8.4,1,0.78 52 | 51,313,98,3,2.5,4.5,8.3,1,0.76 53 | 52,312,100,2,1.5,3.5,7.9,1,0.56 54 | 53,334,116,4,4,3,8,1,0.78 55 | 54,324,112,4,4,2.5,8.1,1,0.72 56 | 55,322,110,3,3,3.5,8,0,0.7 57 | 56,320,103,3,3,3,7.7,0,0.64 58 | 57,316,102,3,2,3,7.4,0,0.64 59 | 58,298,99,2,4,2,7.6,0,0.46 60 | 59,300,99,1,3,2,6.8,1,0.36 61 | 60,311,104,2,2,2,8.3,0,0.42 62 | 61,309,100,2,3,3,8.1,0,0.48 63 | 62,307,101,3,4,3,8.2,0,0.47 64 | 63,304,105,2,3,3,8.2,1,0.54 65 | 64,315,107,2,4,3,8.5,1,0.56 66 | 65,325,111,3,3,3.5,8.7,0,0.52 67 | 66,325,112,4,3.5,3.5,8.92,0,0.55 68 | 67,327,114,3,3,3,9.02,0,0.61 69 | 68,316,107,2,3.5,3.5,8.64,1,0.57 70 | 69,318,109,3,3.5,4,9.22,1,0.68 71 | 70,328,115,4,4.5,4,9.16,1,0.78 72 | 71,332,118,5,5,5,9.64,1,0.94 73 | 72,336,112,5,5,5,9.76,1,0.96 74 | 73,321,111,5,5,5,9.45,1,0.93 75 | 74,314,108,4,4.5,4,9.04,1,0.84 76 | 75,314,106,3,3,5,8.9,0,0.74 77 | 76,329,114,2,2,4,8.56,1,0.72 78 | 77,327,112,3,3,3,8.72,1,0.74 79 | 78,301,99,2,3,2,8.22,0,0.64 80 | 79,296,95,2,3,2,7.54,1,0.44 81 | 80,294,93,1,1.5,2,7.36,0,0.46 82 | 81,312,105,3,2,3,8.02,1,0.5 83 | 82,340,120,4,5,5,9.5,1,0.96 84 | 83,320,110,5,5,4.5,9.22,1,0.92 85 | 84,322,115,5,4,4.5,9.36,1,0.92 86 | 85,340,115,5,4.5,4.5,9.45,1,0.94 87 | 86,319,103,4,4.5,3.5,8.66,0,0.76 88 | 87,315,106,3,4.5,3.5,8.42,0,0.72 89 | 88,317,107,2,3.5,3,8.28,0,0.66 90 | 89,314,108,3,4.5,3.5,8.14,0,0.64 91 | 90,316,109,4,4.5,3.5,8.76,1,0.74 92 | 91,318,106,2,4,4,7.92,1,0.64 93 | 92,299,97,3,5,3.5,7.66,0,0.38 94 | 93,298,98,2,4,3,8.03,0,0.34 95 | 94,301,97,2,3,3,7.88,1,0.44 96 | 95,303,99,3,2,2.5,7.66,0,0.36 97 | 96,304,100,4,1.5,2.5,7.84,0,0.42 98 | 97,306,100,2,3,3,8,0,0.48 99 | 98,331,120,3,4,4,8.96,1,0.86 100 | 99,332,119,4,5,4.5,9.24,1,0.9 101 | 100,323,113,3,4,4,8.88,1,0.79 102 | 101,322,107,3,3.5,3.5,8.46,1,0.71 103 | 102,312,105,2,2.5,3,8.12,0,0.64 104 | 103,314,106,2,4,3.5,8.25,0,0.62 105 | 104,317,104,2,4.5,4,8.47,0,0.57 106 | 105,326,112,3,3.5,3,9.05,1,0.74 107 | 106,316,110,3,4,4.5,8.78,1,0.69 108 | 107,329,111,4,4.5,4.5,9.18,1,0.87 109 | 108,338,117,4,3.5,4.5,9.46,1,0.91 110 | 109,331,116,5,5,5,9.38,1,0.93 111 | 110,304,103,5,5,4,8.64,0,0.68 112 | 111,305,108,5,3,3,8.48,0,0.61 113 | 112,321,109,4,4,4,8.68,1,0.69 114 | 113,301,107,3,3.5,3.5,8.34,1,0.62 115 | 114,320,110,2,4,3.5,8.56,0,0.72 116 | 115,311,105,3,3.5,3,8.45,1,0.59 117 | 116,310,106,4,4.5,4.5,9.04,1,0.66 118 | 117,299,102,3,4,3.5,8.62,0,0.56 119 | 118,290,104,4,2,2.5,7.46,0,0.45 120 | 119,296,99,2,3,3.5,7.28,0,0.47 121 | 120,327,104,5,3,3.5,8.84,1,0.71 122 | 121,335,117,5,5,5,9.56,1,0.94 123 | 122,334,119,5,4.5,4.5,9.48,1,0.94 124 | 123,310,106,4,1.5,2.5,8.36,0,0.57 125 | 124,308,108,3,3.5,3.5,8.22,0,0.61 126 | 125,301,106,4,2.5,3,8.47,0,0.57 127 | 126,300,100,3,2,3,8.66,1,0.64 128 | 127,323,113,3,4,3,9.32,1,0.85 129 | 128,319,112,3,2.5,2,8.71,1,0.78 130 | 129,326,112,3,3.5,3,9.1,1,0.84 131 | 130,333,118,5,5,5,9.35,1,0.92 132 | 131,339,114,5,4,4.5,9.76,1,0.96 133 | 132,303,105,5,5,4.5,8.65,0,0.77 134 | 133,309,105,5,3.5,3.5,8.56,0,0.71 135 | 134,323,112,5,4,4.5,8.78,0,0.79 136 | 135,333,113,5,4,4,9.28,1,0.89 137 | 136,314,109,4,3.5,4,8.77,1,0.82 138 | 137,312,103,3,5,4,8.45,0,0.76 139 | 138,316,100,2,1.5,3,8.16,1,0.71 140 | 139,326,116,2,4.5,3,9.08,1,0.8 141 | 140,318,109,1,3.5,3.5,9.12,0,0.78 142 | 141,329,110,2,4,3,9.15,1,0.84 143 | 142,332,118,2,4.5,3.5,9.36,1,0.9 144 | 143,331,115,5,4,3.5,9.44,1,0.92 145 | 144,340,120,4,4.5,4,9.92,1,0.97 146 | 145,325,112,2,3,3.5,8.96,1,0.8 147 | 146,320,113,2,2,2.5,8.64,1,0.81 148 | 147,315,105,3,2,2.5,8.48,0,0.75 149 | 148,326,114,3,3,3,9.11,1,0.83 150 | 149,339,116,4,4,3.5,9.8,1,0.96 151 | 150,311,106,2,3.5,3,8.26,1,0.79 152 | 151,334,114,4,4,4,9.43,1,0.93 153 | 152,332,116,5,5,5,9.28,1,0.94 154 | 153,321,112,5,5,5,9.06,1,0.86 155 | 154,324,105,3,3,4,8.75,0,0.79 156 | 155,326,108,3,3,3.5,8.89,0,0.8 157 | 156,312,109,3,3,3,8.69,0,0.77 158 | 157,315,105,3,2,2.5,8.34,0,0.7 159 | 158,309,104,2,2,2.5,8.26,0,0.65 160 | 159,306,106,2,2,2.5,8.14,0,0.61 161 | 160,297,100,1,1.5,2,7.9,0,0.52 162 | 161,315,103,1,1.5,2,7.86,0,0.57 163 | 162,298,99,1,1.5,3,7.46,0,0.53 164 | 163,318,109,3,3,3,8.5,0,0.67 165 | 164,317,105,3,3.5,3,8.56,0,0.68 166 | 165,329,111,4,4.5,4,9.01,1,0.81 167 | 166,322,110,5,4.5,4,8.97,0,0.78 168 | 167,302,102,3,3.5,5,8.33,0,0.65 169 | 168,313,102,3,2,3,8.27,0,0.64 170 | 169,293,97,2,2,4,7.8,1,0.64 171 | 170,311,99,2,2.5,3,7.98,0,0.65 172 | 171,312,101,2,2.5,3.5,8.04,1,0.68 173 | 172,334,117,5,4,4.5,9.07,1,0.89 174 | 173,322,110,4,4,5,9.13,1,0.86 175 | 174,323,113,4,4,4.5,9.23,1,0.89 176 | 175,321,111,4,4,4,8.97,1,0.87 177 | 176,320,111,4,4.5,3.5,8.87,1,0.85 178 | 177,329,119,4,4.5,4.5,9.16,1,0.9 179 | 178,319,110,3,3.5,3.5,9.04,0,0.82 180 | 179,309,108,3,2.5,3,8.12,0,0.72 181 | 180,307,102,3,3,3,8.27,0,0.73 182 | 181,300,104,3,3.5,3,8.16,0,0.71 183 | 182,305,107,2,2.5,2.5,8.42,0,0.71 184 | 183,299,100,2,3,3.5,7.88,0,0.68 185 | 184,314,110,3,4,4,8.8,0,0.75 186 | 185,316,106,2,2.5,4,8.32,0,0.72 187 | 186,327,113,4,4.5,4.5,9.11,1,0.89 188 | 187,317,107,3,3.5,3,8.68,1,0.84 189 | 188,335,118,5,4.5,3.5,9.44,1,0.93 190 | 189,331,115,5,4.5,3.5,9.36,1,0.93 191 | 190,324,112,5,5,5,9.08,1,0.88 192 | 191,324,111,5,4.5,4,9.16,1,0.9 193 | 192,323,110,5,4,5,8.98,1,0.87 194 | 193,322,114,5,4.5,4,8.94,1,0.86 195 | 194,336,118,5,4.5,5,9.53,1,0.94 196 | 195,316,109,3,3.5,3,8.76,0,0.77 197 | 196,307,107,2,3,3.5,8.52,1,0.78 198 | 197,306,105,2,3,2.5,8.26,0,0.73 199 | 198,310,106,2,3.5,2.5,8.33,0,0.73 200 | 199,311,104,3,4.5,4.5,8.43,0,0.7 201 | 200,313,107,3,4,4.5,8.69,0,0.72 202 | 201,317,103,3,2.5,3,8.54,1,0.73 203 | 202,315,110,2,3.5,3,8.46,1,0.72 204 | 203,340,120,5,4.5,4.5,9.91,1,0.97 205 | 204,334,120,5,4,5,9.87,1,0.97 206 | 205,298,105,3,3.5,4,8.54,0,0.69 207 | 206,295,99,2,2.5,3,7.65,0,0.57 208 | 207,315,99,2,3.5,3,7.89,0,0.63 209 | 208,310,102,3,3.5,4,8.02,1,0.66 210 | 209,305,106,2,3,3,8.16,0,0.64 211 | 210,301,104,3,3.5,4,8.12,1,0.68 212 | 211,325,108,4,4.5,4,9.06,1,0.79 213 | 212,328,110,4,5,4,9.14,1,0.82 214 | 213,338,120,4,5,5,9.66,1,0.95 215 | 214,333,119,5,5,4.5,9.78,1,0.96 216 | 215,331,117,4,4.5,5,9.42,1,0.94 217 | 216,330,116,5,5,4.5,9.36,1,0.93 218 | 217,322,112,4,4.5,4.5,9.26,1,0.91 219 | 218,321,109,4,4,4,9.13,1,0.85 220 | 219,324,110,4,3,3.5,8.97,1,0.84 221 | 220,312,104,3,3.5,3.5,8.42,0,0.74 222 | 221,313,103,3,4,4,8.75,0,0.76 223 | 222,316,110,3,3.5,4,8.56,0,0.75 224 | 223,324,113,4,4.5,4,8.79,0,0.76 225 | 224,308,109,2,3,4,8.45,0,0.71 226 | 225,305,105,2,3,2,8.23,0,0.67 227 | 226,296,99,2,2.5,2.5,8.03,0,0.61 228 | 227,306,110,2,3.5,4,8.45,0,0.63 229 | 228,312,110,2,3.5,3,8.53,0,0.64 230 | 229,318,112,3,4,3.5,8.67,0,0.71 231 | 230,324,111,4,3,3,9.01,1,0.82 232 | 231,313,104,3,4,4.5,8.65,0,0.73 233 | 232,319,106,3,3.5,2.5,8.33,1,0.74 234 | 233,312,107,2,2.5,3.5,8.27,0,0.69 235 | 234,304,100,2,2.5,3.5,8.07,0,0.64 236 | 235,330,113,5,5,4,9.31,1,0.91 237 | 236,326,111,5,4.5,4,9.23,1,0.88 238 | 237,325,112,4,4,4.5,9.17,1,0.85 239 | 238,329,114,5,4.5,5,9.19,1,0.86 240 | 239,310,104,3,2,3.5,8.37,0,0.7 241 | 240,299,100,1,1.5,2,7.89,0,0.59 242 | 241,296,101,1,2.5,3,7.68,0,0.6 243 | 242,317,103,2,2.5,2,8.15,0,0.65 244 | 243,324,115,3,3.5,3,8.76,1,0.7 245 | 244,325,114,3,3.5,3,9.04,1,0.76 246 | 245,314,107,2,2.5,4,8.56,0,0.63 247 | 246,328,110,4,4,2.5,9.02,1,0.81 248 | 247,316,105,3,3,3.5,8.73,0,0.72 249 | 248,311,104,2,2.5,3.5,8.48,0,0.71 250 | 249,324,110,3,3.5,4,8.87,1,0.8 251 | 250,321,111,3,3.5,4,8.83,1,0.77 252 | 251,320,104,3,3,2.5,8.57,1,0.74 253 | 252,316,99,2,2.5,3,9,0,0.7 254 | 253,318,100,2,2.5,3.5,8.54,1,0.71 255 | 254,335,115,4,4.5,4.5,9.68,1,0.93 256 | 255,321,114,4,4,5,9.12,0,0.85 257 | 256,307,110,4,4,4.5,8.37,0,0.79 258 | 257,309,99,3,4,4,8.56,0,0.76 259 | 258,324,100,3,4,5,8.64,1,0.78 260 | 259,326,102,4,5,5,8.76,1,0.77 261 | 260,331,119,4,5,4.5,9.34,1,0.9 262 | 261,327,108,5,5,3.5,9.13,1,0.87 263 | 262,312,104,3,3.5,4,8.09,0,0.71 264 | 263,308,103,2,2.5,4,8.36,1,0.7 265 | 264,324,111,3,2.5,1.5,8.79,1,0.7 266 | 265,325,110,2,3,2.5,8.76,1,0.75 267 | 266,313,102,3,2.5,2.5,8.68,0,0.71 268 | 267,312,105,2,2,2.5,8.45,0,0.72 269 | 268,314,107,3,3,3.5,8.17,1,0.73 270 | 269,327,113,4,4.5,5,9.14,0,0.83 271 | 270,308,108,4,4.5,5,8.34,0,0.77 272 | 271,306,105,2,2.5,3,8.22,1,0.72 273 | 272,299,96,2,1.5,2,7.86,0,0.54 274 | 273,294,95,1,1.5,1.5,7.64,0,0.49 275 | 274,312,99,1,1,1.5,8.01,1,0.52 276 | 275,315,100,1,2,2.5,7.95,0,0.58 277 | 276,322,110,3,3.5,3,8.96,1,0.78 278 | 277,329,113,5,5,4.5,9.45,1,0.89 279 | 278,320,101,2,2.5,3,8.62,0,0.7 280 | 279,308,103,2,3,3.5,8.49,0,0.66 281 | 280,304,102,2,3,4,8.73,0,0.67 282 | 281,311,102,3,4.5,4,8.64,1,0.68 283 | 282,317,110,3,4,4.5,9.11,1,0.8 284 | 283,312,106,3,4,3.5,8.79,1,0.81 285 | 284,321,111,3,2.5,3,8.9,1,0.8 286 | 285,340,112,4,5,4.5,9.66,1,0.94 287 | 286,331,116,5,4,4,9.26,1,0.93 288 | 287,336,118,5,4.5,4,9.19,1,0.92 289 | 288,324,114,5,5,4.5,9.08,1,0.89 290 | 289,314,104,4,5,5,9.02,0,0.82 291 | 290,313,109,3,4,3.5,9,0,0.79 292 | 291,307,105,2,2.5,3,7.65,0,0.58 293 | 292,300,102,2,1.5,2,7.87,0,0.56 294 | 293,302,99,2,1,2,7.97,0,0.56 295 | 294,312,98,1,3.5,3,8.18,1,0.64 296 | 295,316,101,2,2.5,2,8.32,1,0.61 297 | 296,317,100,2,3,2.5,8.57,0,0.68 298 | 297,310,107,3,3.5,3.5,8.67,0,0.76 299 | 298,320,120,3,4,4.5,9.11,0,0.86 300 | 299,330,114,3,4.5,4.5,9.24,1,0.9 301 | 300,305,112,3,3,3.5,8.65,0,0.71 302 | 301,309,106,2,2.5,2.5,8,0,0.62 303 | 302,319,108,2,2.5,3,8.76,0,0.66 304 | 303,322,105,2,3,3,8.45,1,0.65 305 | 304,323,107,3,3.5,3.5,8.55,1,0.73 306 | 305,313,106,2,2.5,2,8.43,0,0.62 307 | 306,321,109,3,3.5,3.5,8.8,1,0.74 308 | 307,323,110,3,4,3.5,9.1,1,0.79 309 | 308,325,112,4,4,4,9,1,0.8 310 | 309,312,108,3,3.5,3,8.53,0,0.69 311 | 310,308,110,4,3.5,3,8.6,0,0.7 312 | 311,320,104,3,3,3.5,8.74,1,0.76 313 | 312,328,108,4,4.5,4,9.18,1,0.84 314 | 313,311,107,4,4.5,4.5,9,1,0.78 315 | 314,301,100,3,3.5,3,8.04,0,0.67 316 | 315,305,105,2,3,4,8.13,0,0.66 317 | 316,308,104,2,2.5,3,8.07,0,0.65 318 | 317,298,101,2,1.5,2,7.86,0,0.54 319 | 318,300,99,1,1,2.5,8.01,0,0.58 320 | 319,324,111,3,2.5,2,8.8,1,0.79 321 | 320,327,113,4,3.5,3,8.69,1,0.8 322 | 321,317,106,3,4,3.5,8.5,1,0.75 323 | 322,323,104,3,4,4,8.44,1,0.73 324 | 323,314,107,2,2.5,4,8.27,0,0.72 325 | 324,305,102,2,2,2.5,8.18,0,0.62 326 | 325,315,104,3,3,2.5,8.33,0,0.67 327 | 326,326,116,3,3.5,4,9.14,1,0.81 328 | 327,299,100,3,2,2,8.02,0,0.63 329 | 328,295,101,2,2.5,2,7.86,0,0.69 330 | 329,324,112,4,4,3.5,8.77,1,0.8 331 | 330,297,96,2,2.5,1.5,7.89,0,0.43 332 | 331,327,113,3,3.5,3,8.66,1,0.8 333 | 332,311,105,2,3,2,8.12,1,0.73 334 | 333,308,106,3,3.5,2.5,8.21,1,0.75 335 | 334,319,108,3,3,3.5,8.54,1,0.71 336 | 335,312,107,4,4.5,4,8.65,1,0.73 337 | 336,325,111,4,4,4.5,9.11,1,0.83 338 | 337,319,110,3,3,2.5,8.79,0,0.72 339 | 338,332,118,5,5,5,9.47,1,0.94 340 | 339,323,108,5,4,4,8.74,1,0.81 341 | 340,324,107,5,3.5,4,8.66,1,0.81 342 | 341,312,107,3,3,3,8.46,1,0.75 343 | 342,326,110,3,3.5,3.5,8.76,1,0.79 344 | 343,308,106,3,3,3,8.24,0,0.58 345 | 344,305,103,2,2.5,3.5,8.13,0,0.59 346 | 345,295,96,2,1.5,2,7.34,0,0.47 347 | 346,316,98,1,1.5,2,7.43,0,0.49 348 | 347,304,97,2,1.5,2,7.64,0,0.47 349 | 348,299,94,1,1,1,7.34,0,0.42 350 | 349,302,99,1,2,2,7.25,0,0.57 351 | 350,313,101,3,2.5,3,8.04,0,0.62 352 | 351,318,107,3,3,3.5,8.27,1,0.74 353 | 352,325,110,4,3.5,4,8.67,1,0.73 354 | 353,303,100,2,3,3.5,8.06,1,0.64 355 | 354,300,102,3,3.5,2.5,8.17,0,0.63 356 | 355,297,98,2,2.5,3,7.67,0,0.59 357 | 356,317,106,2,2,3.5,8.12,0,0.73 358 | 357,327,109,3,3.5,4,8.77,1,0.79 359 | 358,301,104,2,3.5,3.5,7.89,1,0.68 360 | 359,314,105,2,2.5,2,7.64,0,0.7 361 | 360,321,107,2,2,1.5,8.44,0,0.81 362 | 361,322,110,3,4,5,8.64,1,0.85 363 | 362,334,116,4,4,3.5,9.54,1,0.93 364 | 363,338,115,5,4.5,5,9.23,1,0.91 365 | 364,306,103,2,2.5,3,8.36,0,0.69 366 | 365,313,102,3,3.5,4,8.9,1,0.77 367 | 366,330,114,4,4.5,3,9.17,1,0.86 368 | 367,320,104,3,3.5,4.5,8.34,1,0.74 369 | 368,311,98,1,1,2.5,7.46,0,0.57 370 | 369,298,92,1,2,2,7.88,0,0.51 371 | 370,301,98,1,2,3,8.03,1,0.67 372 | 371,310,103,2,2.5,2.5,8.24,0,0.72 373 | 372,324,110,3,3.5,3,9.22,1,0.89 374 | 373,336,119,4,4.5,4,9.62,1,0.95 375 | 374,321,109,3,3,3,8.54,1,0.79 376 | 375,315,105,2,2,2.5,7.65,0,0.39 377 | 376,304,101,2,2,2.5,7.66,0,0.38 378 | 377,297,96,2,2.5,2,7.43,0,0.34 379 | 378,290,100,1,1.5,2,7.56,0,0.47 380 | 379,303,98,1,2,2.5,7.65,0,0.56 381 | 380,311,99,1,2.5,3,8.43,1,0.71 382 | 381,322,104,3,3.5,4,8.84,1,0.78 383 | 382,319,105,3,3,3.5,8.67,1,0.73 384 | 383,324,110,4,4.5,4,9.15,1,0.82 385 | 384,300,100,3,3,3.5,8.26,0,0.62 386 | 385,340,113,4,5,5,9.74,1,0.96 387 | 386,335,117,5,5,5,9.82,1,0.96 388 | 387,302,101,2,2.5,3.5,7.96,0,0.46 389 | 388,307,105,2,2,3.5,8.1,0,0.53 390 | 389,296,97,2,1.5,2,7.8,0,0.49 391 | 390,320,108,3,3.5,4,8.44,1,0.76 392 | 391,314,102,2,2,2.5,8.24,0,0.64 393 | 392,318,106,3,2,3,8.65,0,0.71 394 | 393,326,112,4,4,3.5,9.12,1,0.84 395 | 394,317,104,2,3,3,8.76,0,0.77 396 | 395,329,111,4,4.5,4,9.23,1,0.89 397 | 396,324,110,3,3.5,3.5,9.04,1,0.82 398 | 397,325,107,3,3,3.5,9.11,1,0.84 399 | 398,330,116,4,5,4.5,9.45,1,0.91 400 | 399,312,103,3,3.5,4,8.78,0,0.67 401 | 400,333,117,4,5,4,9.66,1,0.95 402 | 401,304,100,2,3.5,3,8.22,0,0.63 403 | 402,315,105,2,3,3,8.34,0,0.66 404 | 403,324,109,3,3.5,3,8.94,1,0.78 405 | 404,330,116,4,4,3.5,9.23,1,0.91 406 | 405,311,101,3,2,2.5,7.64,1,0.62 407 | 406,302,99,3,2.5,3,7.45,0,0.52 408 | 407,322,103,4,3,2.5,8.02,1,0.61 409 | 408,298,100,3,2.5,4,7.95,1,0.58 410 | 409,297,101,3,2,4,7.67,1,0.57 411 | 410,300,98,1,2,2.5,8.02,0,0.61 412 | 411,301,96,1,3,4,7.56,0,0.54 413 | 412,313,94,2,2.5,1.5,8.13,0,0.56 414 | 413,314,102,4,2.5,2,7.88,1,0.59 415 | 414,317,101,3,3,2,7.94,1,0.49 416 | 415,321,110,4,3.5,4,8.35,1,0.72 417 | 416,327,106,4,4,4.5,8.75,1,0.76 418 | 417,315,104,3,4,2.5,8.1,0,0.65 419 | 418,316,103,3,3.5,2,7.68,0,0.52 420 | 419,309,111,2,2.5,4,8.03,0,0.6 421 | 420,308,102,2,2,3.5,7.98,1,0.58 422 | 421,299,100,3,2,3,7.42,0,0.42 423 | 422,321,112,3,3,4.5,8.95,1,0.77 424 | 423,322,112,4,3.5,2.5,9.02,1,0.73 425 | 424,334,119,5,4.5,5,9.54,1,0.94 426 | 425,325,114,5,4,5,9.46,1,0.91 427 | 426,323,111,5,4,5,9.86,1,0.92 428 | 427,312,106,3,3,5,8.57,0,0.71 429 | 428,310,101,3,3.5,5,8.65,1,0.71 430 | 429,316,103,2,2,4.5,8.74,0,0.69 431 | 430,340,115,5,5,4.5,9.06,1,0.95 432 | 431,311,104,3,4,3.5,8.13,1,0.74 433 | 432,320,112,2,3.5,3.5,8.78,1,0.73 434 | 433,324,112,4,4.5,4,9.22,1,0.86 435 | 434,316,111,4,4,5,8.54,0,0.71 436 | 435,306,103,3,3.5,3,8.21,0,0.64 437 | 436,309,105,2,2.5,4,7.68,0,0.55 438 | 437,310,110,1,1.5,4,7.23,1,0.58 439 | 438,317,106,1,1.5,3.5,7.65,1,0.61 440 | 439,318,110,1,2.5,3.5,8.54,1,0.67 441 | 440,312,105,2,1.5,3,8.46,0,0.66 442 | 441,305,104,2,2.5,1.5,7.79,0,0.53 443 | 442,332,112,1,1.5,3,8.66,1,0.79 444 | 443,331,116,4,4.5,4.5,9.44,1,0.92 445 | 444,321,114,5,4.5,4.5,9.16,1,0.87 446 | 445,324,113,5,4,5,9.25,1,0.92 447 | 446,328,116,5,4.5,5,9.08,1,0.91 448 | 447,327,118,4,5,5,9.67,1,0.93 449 | 448,320,108,3,3.5,5,8.97,1,0.84 450 | 449,312,109,2,2.5,4,9.02,0,0.8 451 | 450,315,101,3,3.5,4.5,9.13,0,0.79 452 | 451,320,112,4,3,4.5,8.86,1,0.82 453 | 452,324,113,4,4.5,4.5,9.25,1,0.89 454 | 453,328,116,4,5,3.5,9.6,1,0.93 455 | 454,319,103,3,2.5,4,8.76,1,0.73 456 | 455,310,105,2,3,3.5,8.01,0,0.71 457 | 456,305,102,2,1.5,2.5,7.64,0,0.59 458 | 457,299,100,2,2,2,7.88,0,0.51 459 | 458,295,99,1,2,1.5,7.57,0,0.37 460 | 459,312,100,1,3,3,8.53,1,0.69 461 | 460,329,113,4,4,3.5,9.36,1,0.89 462 | 461,319,105,4,4,4.5,8.66,1,0.77 463 | 462,301,102,3,2.5,2,8.13,1,0.68 464 | 463,307,105,4,3,3,7.94,0,0.62 465 | 464,304,107,3,3.5,3,7.86,0,0.57 466 | 465,298,97,2,2,3,7.21,0,0.45 467 | 466,305,96,4,3,4.5,8.26,0,0.54 468 | 467,314,99,4,3.5,4.5,8.73,1,0.71 469 | 468,318,101,5,3.5,5,8.78,1,0.78 470 | 469,323,110,4,4,5,8.88,1,0.81 471 | 470,326,114,4,4,3.5,9.16,1,0.86 472 | 471,320,110,5,4,4,9.27,1,0.87 473 | 472,311,103,3,2,4,8.09,0,0.64 474 | 473,327,116,4,4,4.5,9.48,1,0.9 475 | 474,316,102,2,4,3.5,8.15,0,0.67 476 | 475,308,105,4,3,2.5,7.95,1,0.67 477 | 476,300,101,3,3.5,2.5,7.88,0,0.59 478 | 477,304,104,3,2.5,2,8.12,0,0.62 479 | 478,309,105,4,3.5,2,8.18,0,0.65 480 | 479,318,103,3,4,4.5,8.49,1,0.71 481 | 480,325,110,4,4.5,4,8.96,1,0.79 482 | 481,321,102,3,3.5,4,9.01,1,0.8 483 | 482,323,107,4,3,2.5,8.48,1,0.78 484 | 483,328,113,4,4,2.5,8.77,1,0.83 485 | 484,304,103,5,5,3,7.92,0,0.71 486 | 485,317,106,3,3.5,3,7.89,1,0.73 487 | 486,311,101,2,2.5,3.5,8.34,1,0.7 488 | 487,319,102,3,2.5,2.5,8.37,0,0.68 489 | 488,327,115,4,3.5,4,9.14,0,0.79 490 | 489,322,112,3,3,4,8.62,1,0.76 491 | 490,302,110,3,4,4.5,8.5,0,0.65 492 | 491,307,105,2,2.5,4.5,8.12,1,0.67 493 | 492,297,99,4,3,3.5,7.81,0,0.54 494 | 493,298,101,4,2.5,4.5,7.69,1,0.53 495 | 494,300,95,2,3,1.5,8.22,1,0.62 496 | 495,301,99,3,2.5,2,8.45,1,0.68 497 | 496,332,108,5,4.5,4,9.02,1,0.87 498 | 497,337,117,5,5,5,9.87,1,0.96 499 | 498,330,120,5,4.5,5,9.56,1,0.93 500 | 499,312,103,4,4,5,8.43,0,0.73 501 | 500,327,113,4,4.5,4.5,9.04,0,0.84 -------------------------------------------------------------------------------- /Dataset/admission_predict_V1.2.csv: -------------------------------------------------------------------------------- 1 | Serial No.,GRE Score,TOEFL Score,University Rating,SOP,LOR,CGPA,Research,Chance of Admit 2 | 1,139,118,4,4.5,4.5,9.65,1,0.92 3 | 2,138,107,4,4.0,4.5,8.87,1,0.76 4 | 3,137,104,3,3.0,3.5,8.0,1,0.72 5 | 4,138,110,3,3.5,2.5,8.67,1,0.8 6 | 5,137,103,2,2.0,3.0,8.21,0,0.65 7 | 6,138,115,5,4.5,3.0,9.34,1,0.9 8 | 7,138,109,3,3.0,4.0,8.2,1,0.75 9 | 8,137,101,2,3.0,4.0,7.9,0,0.68 10 | 9,136,102,1,2.0,1.5,8.0,0,0.5 11 | 10,138,108,3,3.5,3.0,8.6,0,0.45 12 | 11,138,106,3,3.5,4.0,8.4,1,0.52 13 | 12,138,111,4,4.0,4.5,9.0,1,0.84 14 | 13,138,112,4,4.0,4.5,9.1,1,0.78 15 | 14,137,109,3,4.0,3.0,8.0,1,0.62 16 | 15,137,104,3,3.5,2.0,8.2,1,0.61 17 | 16,137,105,3,3.5,2.5,8.3,0,0.54 18 | 17,137,107,3,4.0,3.0,8.7,0,0.66 19 | 18,137,106,3,4.0,3.0,8.0,1,0.65 20 | 19,137,110,3,4.0,3.0,8.8,0,0.63 21 | 20,136,102,3,3.5,3.0,8.5,0,0.62 22 | 21,137,107,3,3.0,2.0,7.9,1,0.64 23 | 22,138,114,4,3.0,2.0,8.4,0,0.7 24 | 23,138,116,5,5.0,5.0,9.5,1,0.94 25 | 24,138,119,5,5.0,4.5,9.7,1,0.95 26 | 25,139,119,5,4.0,3.5,9.8,1,0.97 27 | 26,139,120,5,4.5,4.5,9.6,1,0.94 28 | 27,138,109,5,4.5,3.5,8.8,0,0.76 29 | 28,136,98,2,1.5,2.5,7.5,1,0.44 30 | 29,136,93,1,2.0,2.0,7.2,0,0.46 31 | 30,137,99,2,1.5,2.0,7.3,0,0.54 32 | 31,136,97,2,3.0,3.0,8.1,1,0.65 33 | 32,138,103,3,4.0,4.0,8.3,1,0.74 34 | 33,139,118,4,3.0,4.5,9.4,1,0.91 35 | 34,139,114,5,4.0,4.0,9.6,1,0.9 36 | 35,138,112,5,4.0,5.0,9.8,1,0.94 37 | 36,138,110,5,5.0,5.0,9.2,1,0.88 38 | 37,136,106,2,4.0,4.0,8.4,0,0.64 39 | 38,136,105,1,1.0,2.0,7.8,0,0.58 40 | 39,136,105,1,3.0,1.5,7.5,0,0.52 41 | 40,137,108,2,4.0,3.5,7.7,0,0.48 42 | 41,137,110,3,3.5,3.0,8.0,1,0.46 43 | 42,137,105,2,2.5,2.5,8.2,1,0.49 44 | 43,137,107,2,2.5,2.0,8.5,1,0.53 45 | 44,138,117,4,4.5,4.0,9.1,0,0.87 46 | 45,138,113,5,4.5,4.0,9.4,1,0.91 47 | 46,138,110,5,5.0,4.0,9.1,1,0.88 48 | 47,138,114,5,4.0,5.0,9.3,1,0.86 49 | 48,139,119,5,4.5,4.0,9.7,0,0.89 50 | 49,138,110,3,3.5,5.0,8.85,1,0.82 51 | 50,138,111,4,3.0,4.0,8.4,1,0.78 52 | 51,137,98,3,2.5,4.5,8.3,1,0.76 53 | 52,137,100,2,1.5,3.5,7.9,1,0.56 54 | 53,138,116,4,4.0,3.0,8.0,1,0.78 55 | 54,138,112,4,4.0,2.5,8.1,1,0.72 56 | 55,138,110,3,3.0,3.5,8.0,0,0.7 57 | 56,138,103,3,3.0,3.0,7.7,0,0.64 58 | 57,137,102,3,2.0,3.0,7.4,0,0.64 59 | 58,136,99,2,4.0,2.0,7.6,0,0.46 60 | 59,136,99,1,3.0,2.0,6.8,1,0.36 61 | 60,137,104,2,2.0,2.0,8.3,0,0.42 62 | 61,137,100,2,3.0,3.0,8.1,0,0.48 63 | 62,137,101,3,4.0,3.0,8.2,0,0.47 64 | 63,136,105,2,3.0,3.0,8.2,1,0.54 65 | 64,137,107,2,4.0,3.0,8.5,1,0.56 66 | 65,138,111,3,3.0,3.5,8.7,0,0.52 67 | 66,138,112,4,3.5,3.5,8.92,0,0.55 68 | 67,138,114,3,3.0,3.0,9.02,0,0.61 69 | 68,137,107,2,3.5,3.5,8.64,1,0.57 70 | 69,137,109,3,3.5,4.0,9.22,1,0.68 71 | 70,138,115,4,4.5,4.0,9.16,1,0.78 72 | 71,138,118,5,5.0,5.0,9.64,1,0.94 73 | 72,139,112,5,5.0,5.0,9.76,1,0.96 74 | 73,138,111,5,5.0,5.0,9.45,1,0.93 75 | 74,137,108,4,4.5,4.0,9.04,1,0.84 76 | 75,137,106,3,3.0,5.0,8.9,0,0.74 77 | 76,138,114,2,2.0,4.0,8.56,1,0.72 78 | 77,138,112,3,3.0,3.0,8.72,1,0.74 79 | 78,136,99,2,3.0,2.0,8.22,0,0.64 80 | 79,136,95,2,3.0,2.0,7.54,1,0.44 81 | 80,136,93,1,1.5,2.0,7.36,0,0.46 82 | 81,137,105,3,2.0,3.0,8.02,1,0.5 83 | 82,139,120,4,5.0,5.0,9.5,1,0.96 84 | 83,138,110,5,5.0,4.5,9.22,1,0.92 85 | 84,138,115,5,4.0,4.5,9.36,1,0.92 86 | 85,139,115,5,4.5,4.5,9.45,1,0.94 87 | 86,137,103,4,4.5,3.5,8.66,0,0.76 88 | 87,137,106,3,4.5,3.5,8.42,0,0.72 89 | 88,137,107,2,3.5,3.0,8.28,0,0.66 90 | 89,137,108,3,4.5,3.5,8.14,0,0.64 91 | 90,137,109,4,4.5,3.5,8.76,1,0.74 92 | 91,137,106,2,4.0,4.0,7.92,1,0.64 93 | 92,136,97,3,5.0,3.5,7.66,0,0.38 94 | 93,136,98,2,4.0,3.0,8.03,0,0.34 95 | 94,136,97,2,3.0,3.0,7.88,1,0.44 96 | 95,136,99,3,2.0,2.5,7.66,0,0.36 97 | 96,136,100,4,1.5,2.5,7.84,0,0.42 98 | 97,137,100,2,3.0,3.0,8.0,0,0.48 99 | 98,138,120,3,4.0,4.0,8.96,1,0.86 100 | 99,138,119,4,5.0,4.5,9.24,1,0.9 101 | 100,138,113,3,4.0,4.0,8.88,1,0.79 102 | 101,138,107,3,3.5,3.5,8.46,1,0.71 103 | 102,137,105,2,2.5,3.0,8.12,0,0.64 104 | 103,137,106,2,4.0,3.5,8.25,0,0.62 105 | 104,137,104,2,4.5,4.0,8.47,0,0.57 106 | 105,138,112,3,3.5,3.0,9.05,1,0.74 107 | 106,137,110,3,4.0,4.5,8.78,1,0.69 108 | 107,138,111,4,4.5,4.5,9.18,1,0.87 109 | 108,139,117,4,3.5,4.5,9.46,1,0.91 110 | 109,138,116,5,5.0,5.0,9.38,1,0.93 111 | 110,136,103,5,5.0,4.0,8.64,0,0.68 112 | 111,137,108,5,3.0,3.0,8.48,0,0.61 113 | 112,138,109,4,4.0,4.0,8.68,1,0.69 114 | 113,136,107,3,3.5,3.5,8.34,1,0.62 115 | 114,138,110,2,4.0,3.5,8.56,0,0.72 116 | 115,137,105,3,3.5,3.0,8.45,1,0.59 117 | 116,137,106,4,4.5,4.5,9.04,1,0.66 118 | 117,136,102,3,4.0,3.5,8.62,0,0.56 119 | 118,136,104,4,2.0,2.5,7.46,0,0.45 120 | 119,136,99,2,3.0,3.5,7.28,0,0.47 121 | 120,138,104,5,3.0,3.5,8.84,1,0.71 122 | 121,139,117,5,5.0,5.0,9.56,1,0.94 123 | 122,138,119,5,4.5,4.5,9.48,1,0.94 124 | 123,137,106,4,1.5,2.5,8.36,0,0.57 125 | 124,137,108,3,3.5,3.5,8.22,0,0.61 126 | 125,136,106,4,2.5,3.0,8.47,0,0.57 127 | 126,136,100,3,2.0,3.0,8.66,1,0.64 128 | 127,138,113,3,4.0,3.0,9.32,1,0.85 129 | 128,137,112,3,2.5,2.0,8.71,1,0.78 130 | 129,138,112,3,3.5,3.0,9.1,1,0.84 131 | 130,138,118,5,5.0,5.0,9.35,1,0.92 132 | 131,139,114,5,4.0,4.5,9.76,1,0.96 133 | 132,136,105,5,5.0,4.5,8.65,0,0.77 134 | 133,137,105,5,3.5,3.5,8.56,0,0.71 135 | 134,138,112,5,4.0,4.5,8.78,0,0.79 136 | 135,138,113,5,4.0,4.0,9.28,1,0.89 137 | 136,137,109,4,3.5,4.0,8.77,1,0.82 138 | 137,137,103,3,5.0,4.0,8.45,0,0.76 139 | 138,137,100,2,1.5,3.0,8.16,1,0.71 140 | 139,138,116,2,4.5,3.0,9.08,1,0.8 141 | 140,137,109,1,3.5,3.5,9.12,0,0.78 142 | 141,138,110,2,4.0,3.0,9.15,1,0.84 143 | 142,138,118,2,4.5,3.5,9.36,1,0.9 144 | 143,138,115,5,4.0,3.5,9.44,1,0.92 145 | 144,139,120,4,4.5,4.0,9.92,1,0.97 146 | 145,138,112,2,3.0,3.5,8.96,1,0.8 147 | 146,138,113,2,2.0,2.5,8.64,1,0.81 148 | 147,137,105,3,2.0,2.5,8.48,0,0.75 149 | 148,138,114,3,3.0,3.0,9.11,1,0.83 150 | 149,139,116,4,4.0,3.5,9.8,1,0.96 151 | 150,137,106,2,3.5,3.0,8.26,1,0.79 152 | 151,138,114,4,4.0,4.0,9.43,1,0.93 153 | 152,138,116,5,5.0,5.0,9.28,1,0.94 154 | 153,138,112,5,5.0,5.0,9.06,1,0.86 155 | 154,138,105,3,3.0,4.0,8.75,0,0.79 156 | 155,138,108,3,3.0,3.5,8.89,0,0.8 157 | 156,137,109,3,3.0,3.0,8.69,0,0.77 158 | 157,137,105,3,2.0,2.5,8.34,0,0.7 159 | 158,137,104,2,2.0,2.5,8.26,0,0.65 160 | 159,137,106,2,2.0,2.5,8.14,0,0.61 161 | 160,136,100,1,1.5,2.0,7.9,0,0.52 162 | 161,137,103,1,1.5,2.0,7.86,0,0.57 163 | 162,136,99,1,1.5,3.0,7.46,0,0.53 164 | 163,137,109,3,3.0,3.0,8.5,0,0.67 165 | 164,137,105,3,3.5,3.0,8.56,0,0.68 166 | 165,138,111,4,4.5,4.0,9.01,1,0.81 167 | 166,138,110,5,4.5,4.0,8.97,0,0.78 168 | 167,136,102,3,3.5,5.0,8.33,0,0.65 169 | 168,137,102,3,2.0,3.0,8.27,0,0.64 170 | 169,136,97,2,2.0,4.0,7.8,1,0.64 171 | 170,137,99,2,2.5,3.0,7.98,0,0.65 172 | 171,137,101,2,2.5,3.5,8.04,1,0.68 173 | 172,138,117,5,4.0,4.5,9.07,1,0.89 174 | 173,138,110,4,4.0,5.0,9.13,1,0.86 175 | 174,138,113,4,4.0,4.5,9.23,1,0.89 176 | 175,138,111,4,4.0,4.0,8.97,1,0.87 177 | 176,138,111,4,4.5,3.5,8.87,1,0.85 178 | 177,138,119,4,4.5,4.5,9.16,1,0.9 179 | 178,137,110,3,3.5,3.5,9.04,0,0.82 180 | 179,137,108,3,2.5,3.0,8.12,0,0.72 181 | 180,137,102,3,3.0,3.0,8.27,0,0.73 182 | 181,136,104,3,3.5,3.0,8.16,0,0.71 183 | 182,137,107,2,2.5,2.5,8.42,0,0.71 184 | 183,136,100,2,3.0,3.5,7.88,0,0.68 185 | 184,137,110,3,4.0,4.0,8.8,0,0.75 186 | 185,137,106,2,2.5,4.0,8.32,0,0.72 187 | 186,138,113,4,4.5,4.5,9.11,1,0.89 188 | 187,137,107,3,3.5,3.0,8.68,1,0.84 189 | 188,139,118,5,4.5,3.5,9.44,1,0.93 190 | 189,138,115,5,4.5,3.5,9.36,1,0.93 191 | 190,138,112,5,5.0,5.0,9.08,1,0.88 192 | 191,138,111,5,4.5,4.0,9.16,1,0.9 193 | 192,138,110,5,4.0,5.0,8.98,1,0.87 194 | 193,138,114,5,4.5,4.0,8.94,1,0.86 195 | 194,139,118,5,4.5,5.0,9.53,1,0.94 196 | 195,137,109,3,3.5,3.0,8.76,0,0.77 197 | 196,137,107,2,3.0,3.5,8.52,1,0.78 198 | 197,137,105,2,3.0,2.5,8.26,0,0.73 199 | 198,137,106,2,3.5,2.5,8.33,0,0.73 200 | 199,137,104,3,4.5,4.5,8.43,0,0.7 201 | 200,137,107,3,4.0,4.5,8.69,0,0.72 202 | 201,137,103,3,2.5,3.0,8.54,1,0.73 203 | 202,137,110,2,3.5,3.0,8.46,1,0.72 204 | 203,139,120,5,4.5,4.5,9.91,1,0.97 205 | 204,138,120,5,4.0,5.0,9.87,1,0.97 206 | 205,136,105,3,3.5,4.0,8.54,0,0.69 207 | 206,136,99,2,2.5,3.0,7.65,0,0.57 208 | 207,137,99,2,3.5,3.0,7.89,0,0.63 209 | 208,137,102,3,3.5,4.0,8.02,1,0.66 210 | 209,137,106,2,3.0,3.0,8.16,0,0.64 211 | 210,136,104,3,3.5,4.0,8.12,1,0.68 212 | 211,138,108,4,4.5,4.0,9.06,1,0.79 213 | 212,138,110,4,5.0,4.0,9.14,1,0.82 214 | 213,139,120,4,5.0,5.0,9.66,1,0.95 215 | 214,138,119,5,5.0,4.5,9.78,1,0.96 216 | 215,138,117,4,4.5,5.0,9.42,1,0.94 217 | 216,138,116,5,5.0,4.5,9.36,1,0.93 218 | 217,138,112,4,4.5,4.5,9.26,1,0.91 219 | 218,138,109,4,4.0,4.0,9.13,1,0.85 220 | 219,138,110,4,3.0,3.5,8.97,1,0.84 221 | 220,137,104,3,3.5,3.5,8.42,0,0.74 222 | 221,137,103,3,4.0,4.0,8.75,0,0.76 223 | 222,137,110,3,3.5,4.0,8.56,0,0.75 224 | 223,138,113,4,4.5,4.0,8.79,0,0.76 225 | 224,137,109,2,3.0,4.0,8.45,0,0.71 226 | 225,137,105,2,3.0,2.0,8.23,0,0.67 227 | 226,136,99,2,2.5,2.5,8.03,0,0.61 228 | 227,137,110,2,3.5,4.0,8.45,0,0.63 229 | 228,137,110,2,3.5,3.0,8.53,0,0.64 230 | 229,137,112,3,4.0,3.5,8.67,0,0.71 231 | 230,138,111,4,3.0,3.0,9.01,1,0.82 232 | 231,137,104,3,4.0,4.5,8.65,0,0.73 233 | 232,137,106,3,3.5,2.5,8.33,1,0.74 234 | 233,137,107,2,2.5,3.5,8.27,0,0.69 235 | 234,136,100,2,2.5,3.5,8.07,0,0.64 236 | 235,138,113,5,5.0,4.0,9.31,1,0.91 237 | 236,138,111,5,4.5,4.0,9.23,1,0.88 238 | 237,138,112,4,4.0,4.5,9.17,1,0.85 239 | 238,138,114,5,4.5,5.0,9.19,1,0.86 240 | 239,137,104,3,2.0,3.5,8.37,0,0.7 241 | 240,136,100,1,1.5,2.0,7.89,0,0.59 242 | 241,136,101,1,2.5,3.0,7.68,0,0.6 243 | 242,137,103,2,2.5,2.0,8.15,0,0.65 244 | 243,138,115,3,3.5,3.0,8.76,1,0.7 245 | 244,138,114,3,3.5,3.0,9.04,1,0.76 246 | 245,137,107,2,2.5,4.0,8.56,0,0.63 247 | 246,138,110,4,4.0,2.5,9.02,1,0.81 248 | 247,137,105,3,3.0,3.5,8.73,0,0.72 249 | 248,137,104,2,2.5,3.5,8.48,0,0.71 250 | 249,138,110,3,3.5,4.0,8.87,1,0.8 251 | 250,138,111,3,3.5,4.0,8.83,1,0.77 252 | 251,138,104,3,3.0,2.5,8.57,1,0.74 253 | 252,137,99,2,2.5,3.0,9.0,0,0.7 254 | 253,137,100,2,2.5,3.5,8.54,1,0.71 255 | 254,139,115,4,4.5,4.5,9.68,1,0.93 256 | 255,138,114,4,4.0,5.0,9.12,0,0.85 257 | 256,137,110,4,4.0,4.5,8.37,0,0.79 258 | 257,137,99,3,4.0,4.0,8.56,0,0.76 259 | 258,138,100,3,4.0,5.0,8.64,1,0.78 260 | 259,138,102,4,5.0,5.0,8.76,1,0.77 261 | 260,138,119,4,5.0,4.5,9.34,1,0.9 262 | 261,138,108,5,5.0,3.5,9.13,1,0.87 263 | 262,137,104,3,3.5,4.0,8.09,0,0.71 264 | 263,137,103,2,2.5,4.0,8.36,1,0.7 265 | 264,138,111,3,2.5,1.5,8.79,1,0.7 266 | 265,138,110,2,3.0,2.5,8.76,1,0.75 267 | 266,137,102,3,2.5,2.5,8.68,0,0.71 268 | 267,137,105,2,2.0,2.5,8.45,0,0.72 269 | 268,137,107,3,3.0,3.5,8.17,1,0.73 270 | 269,138,113,4,4.5,5.0,9.14,0,0.83 271 | 270,137,108,4,4.5,5.0,8.34,0,0.77 272 | 271,137,105,2,2.5,3.0,8.22,1,0.72 273 | 272,136,96,2,1.5,2.0,7.86,0,0.54 274 | 273,136,95,1,1.5,1.5,7.64,0,0.49 275 | 274,137,99,1,1.0,1.5,8.01,1,0.52 276 | 275,137,100,1,2.0,2.5,7.95,0,0.58 277 | 276,138,110,3,3.5,3.0,8.96,1,0.78 278 | 277,138,113,5,5.0,4.5,9.45,1,0.89 279 | 278,138,101,2,2.5,3.0,8.62,0,0.7 280 | 279,137,103,2,3.0,3.5,8.49,0,0.66 281 | 280,136,102,2,3.0,4.0,8.73,0,0.67 282 | 281,137,102,3,4.5,4.0,8.64,1,0.68 283 | 282,137,110,3,4.0,4.5,9.11,1,0.8 284 | 283,137,106,3,4.0,3.5,8.79,1,0.81 285 | 284,138,111,3,2.5,3.0,8.9,1,0.8 286 | 285,139,112,4,5.0,4.5,9.66,1,0.94 287 | 286,138,116,5,4.0,4.0,9.26,1,0.93 288 | 287,139,118,5,4.5,4.0,9.19,1,0.92 289 | 288,138,114,5,5.0,4.5,9.08,1,0.89 290 | 289,137,104,4,5.0,5.0,9.02,0,0.82 291 | 290,137,109,3,4.0,3.5,9.0,0,0.79 292 | 291,137,105,2,2.5,3.0,7.65,0,0.58 293 | 292,136,102,2,1.5,2.0,7.87,0,0.56 294 | 293,136,99,2,1.0,2.0,7.97,0,0.56 295 | 294,137,98,1,3.5,3.0,8.18,1,0.64 296 | 295,137,101,2,2.5,2.0,8.32,1,0.61 297 | 296,137,100,2,3.0,2.5,8.57,0,0.68 298 | 297,137,107,3,3.5,3.5,8.67,0,0.76 299 | 298,138,120,3,4.0,4.5,9.11,0,0.86 300 | 299,138,114,3,4.5,4.5,9.24,1,0.9 301 | 300,137,112,3,3.0,3.5,8.65,0,0.71 302 | 301,137,106,2,2.5,2.5,8.0,0,0.62 303 | 302,137,108,2,2.5,3.0,8.76,0,0.66 304 | 303,138,105,2,3.0,3.0,8.45,1,0.65 305 | 304,138,107,3,3.5,3.5,8.55,1,0.73 306 | 305,137,106,2,2.5,2.0,8.43,0,0.62 307 | 306,138,109,3,3.5,3.5,8.8,1,0.74 308 | 307,138,110,3,4.0,3.5,9.1,1,0.79 309 | 308,138,112,4,4.0,4.0,9.0,1,0.8 310 | 309,137,108,3,3.5,3.0,8.53,0,0.69 311 | 310,137,110,4,3.5,3.0,8.6,0,0.7 312 | 311,138,104,3,3.0,3.5,8.74,1,0.76 313 | 312,138,108,4,4.5,4.0,9.18,1,0.84 314 | 313,137,107,4,4.5,4.5,9.0,1,0.78 315 | 314,136,100,3,3.5,3.0,8.04,0,0.67 316 | 315,137,105,2,3.0,4.0,8.13,0,0.66 317 | 316,137,104,2,2.5,3.0,8.07,0,0.65 318 | 317,136,101,2,1.5,2.0,7.86,0,0.54 319 | 318,136,99,1,1.0,2.5,8.01,0,0.58 320 | 319,138,111,3,2.5,2.0,8.8,1,0.79 321 | 320,138,113,4,3.5,3.0,8.69,1,0.8 322 | 321,137,106,3,4.0,3.5,8.5,1,0.75 323 | 322,138,104,3,4.0,4.0,8.44,1,0.73 324 | 323,137,107,2,2.5,4.0,8.27,0,0.72 325 | 324,137,102,2,2.0,2.5,8.18,0,0.62 326 | 325,137,104,3,3.0,2.5,8.33,0,0.67 327 | 326,138,116,3,3.5,4.0,9.14,1,0.81 328 | 327,136,100,3,2.0,2.0,8.02,0,0.63 329 | 328,136,101,2,2.5,2.0,7.86,0,0.69 330 | 329,138,112,4,4.0,3.5,8.77,1,0.8 331 | 330,136,96,2,2.5,1.5,7.89,0,0.43 332 | 331,138,113,3,3.5,3.0,8.66,1,0.8 333 | 332,137,105,2,3.0,2.0,8.12,1,0.73 334 | 333,137,106,3,3.5,2.5,8.21,1,0.75 335 | 334,137,108,3,3.0,3.5,8.54,1,0.71 336 | 335,137,107,4,4.5,4.0,8.65,1,0.73 337 | 336,138,111,4,4.0,4.5,9.11,1,0.83 338 | 337,137,110,3,3.0,2.5,8.79,0,0.72 339 | 338,138,118,5,5.0,5.0,9.47,1,0.94 340 | 339,138,108,5,4.0,4.0,8.74,1,0.81 341 | 340,138,107,5,3.5,4.0,8.66,1,0.81 342 | 341,137,107,3,3.0,3.0,8.46,1,0.75 343 | 342,138,110,3,3.5,3.5,8.76,1,0.79 344 | 343,137,106,3,3.0,3.0,8.24,0,0.58 345 | 344,137,103,2,2.5,3.5,8.13,0,0.59 346 | 345,136,96,2,1.5,2.0,7.34,0,0.47 347 | 346,137,98,1,1.5,2.0,7.43,0,0.49 348 | 347,136,97,2,1.5,2.0,7.64,0,0.47 349 | 348,136,94,1,1.0,1.0,7.34,0,0.42 350 | 349,136,99,1,2.0,2.0,7.25,0,0.57 351 | 350,137,101,3,2.5,3.0,8.04,0,0.62 352 | 351,137,107,3,3.0,3.5,8.27,1,0.74 353 | 352,138,110,4,3.5,4.0,8.67,1,0.73 354 | 353,136,100,2,3.0,3.5,8.06,1,0.64 355 | 354,136,102,3,3.5,2.5,8.17,0,0.63 356 | 355,136,98,2,2.5,3.0,7.67,0,0.59 357 | 356,137,106,2,2.0,3.5,8.12,0,0.73 358 | 357,138,109,3,3.5,4.0,8.77,1,0.79 359 | 358,136,104,2,3.5,3.5,7.89,1,0.68 360 | 359,137,105,2,2.5,2.0,7.64,0,0.7 361 | 360,138,107,2,2.0,1.5,8.44,0,0.81 362 | 361,138,110,3,4.0,5.0,8.64,1,0.85 363 | 362,138,116,4,4.0,3.5,9.54,1,0.93 364 | 363,139,115,5,4.5,5.0,9.23,1,0.91 365 | 364,137,103,2,2.5,3.0,8.36,0,0.69 366 | 365,137,102,3,3.5,4.0,8.9,1,0.77 367 | 366,138,114,4,4.5,3.0,9.17,1,0.86 368 | 367,138,104,3,3.5,4.5,8.34,1,0.74 369 | 368,137,98,1,1.0,2.5,7.46,0,0.57 370 | 369,136,92,1,2.0,2.0,7.88,0,0.51 371 | 370,136,98,1,2.0,3.0,8.03,1,0.67 372 | 371,137,103,2,2.5,2.5,8.24,0,0.72 373 | 372,138,110,3,3.5,3.0,9.22,1,0.89 374 | 373,139,119,4,4.5,4.0,9.62,1,0.95 375 | 374,138,109,3,3.0,3.0,8.54,1,0.79 376 | 375,137,105,2,2.0,2.5,7.65,0,0.39 377 | 376,136,101,2,2.0,2.5,7.66,0,0.38 378 | 377,136,96,2,2.5,2.0,7.43,0,0.34 379 | 378,136,100,1,1.5,2.0,7.56,0,0.47 380 | 379,136,98,1,2.0,2.5,7.65,0,0.56 381 | 380,137,99,1,2.5,3.0,8.43,1,0.71 382 | 381,138,104,3,3.5,4.0,8.84,1,0.78 383 | 382,137,105,3,3.0,3.5,8.67,1,0.73 384 | 383,138,110,4,4.5,4.0,9.15,1,0.82 385 | 384,136,100,3,3.0,3.5,8.26,0,0.62 386 | 385,139,113,4,5.0,5.0,9.74,1,0.96 387 | 386,139,117,5,5.0,5.0,9.82,1,0.96 388 | 387,136,101,2,2.5,3.5,7.96,0,0.46 389 | 388,137,105,2,2.0,3.5,8.1,0,0.53 390 | 389,136,97,2,1.5,2.0,7.8,0,0.49 391 | 390,138,108,3,3.5,4.0,8.44,1,0.76 392 | 391,137,102,2,2.0,2.5,8.24,0,0.64 393 | 392,137,106,3,2.0,3.0,8.65,0,0.71 394 | 393,138,112,4,4.0,3.5,9.12,1,0.84 395 | 394,137,104,2,3.0,3.0,8.76,0,0.77 396 | 395,138,111,4,4.5,4.0,9.23,1,0.89 397 | 396,138,110,3,3.5,3.5,9.04,1,0.82 398 | 397,138,107,3,3.0,3.5,9.11,1,0.84 399 | 398,138,116,4,5.0,4.5,9.45,1,0.91 400 | 399,137,103,3,3.5,4.0,8.78,0,0.67 401 | 400,138,117,4,5.0,4.0,9.66,1,0.95 402 | 401,136,100,2,3.5,3.0,8.22,0,0.63 403 | 402,137,105,2,3.0,3.0,8.34,0,0.66 404 | 403,138,109,3,3.5,3.0,8.94,1,0.78 405 | 404,138,116,4,4.0,3.5,9.23,1,0.91 406 | 405,137,101,3,2.0,2.5,7.64,1,0.62 407 | 406,136,99,3,2.5,3.0,7.45,0,0.52 408 | 407,138,103,4,3.0,2.5,8.02,1,0.61 409 | 408,136,100,3,2.5,4.0,7.95,1,0.58 410 | 409,136,101,3,2.0,4.0,7.67,1,0.57 411 | 410,136,98,1,2.0,2.5,8.02,0,0.61 412 | 411,136,96,1,3.0,4.0,7.56,0,0.54 413 | 412,137,94,2,2.5,1.5,8.13,0,0.56 414 | 413,137,102,4,2.5,2.0,7.88,1,0.59 415 | 414,137,101,3,3.0,2.0,7.94,1,0.49 416 | 415,138,110,4,3.5,4.0,8.35,1,0.72 417 | 416,138,106,4,4.0,4.5,8.75,1,0.76 418 | 417,137,104,3,4.0,2.5,8.1,0,0.65 419 | 418,137,103,3,3.5,2.0,7.68,0,0.52 420 | 419,137,111,2,2.5,4.0,8.03,0,0.6 421 | 420,137,102,2,2.0,3.5,7.98,1,0.58 422 | 421,136,100,3,2.0,3.0,7.42,0,0.42 423 | 422,138,112,3,3.0,4.5,8.95,1,0.77 424 | 423,138,112,4,3.5,2.5,9.02,1,0.73 425 | 424,138,119,5,4.5,5.0,9.54,1,0.94 426 | 425,138,114,5,4.0,5.0,9.46,1,0.91 427 | 426,138,111,5,4.0,5.0,9.86,1,0.92 428 | 427,137,106,3,3.0,5.0,8.57,0,0.71 429 | 428,137,101,3,3.5,5.0,8.65,1,0.71 430 | 429,137,103,2,2.0,4.5,8.74,0,0.69 431 | 430,139,115,5,5.0,4.5,9.06,1,0.95 432 | 431,137,104,3,4.0,3.5,8.13,1,0.74 433 | 432,138,112,2,3.5,3.5,8.78,1,0.73 434 | 433,138,112,4,4.5,4.0,9.22,1,0.86 435 | 434,137,111,4,4.0,5.0,8.54,0,0.71 436 | 435,137,103,3,3.5,3.0,8.21,0,0.64 437 | 436,137,105,2,2.5,4.0,7.68,0,0.55 438 | 437,137,110,1,1.5,4.0,7.23,1,0.58 439 | 438,137,106,1,1.5,3.5,7.65,1,0.61 440 | 439,137,110,1,2.5,3.5,8.54,1,0.67 441 | 440,137,105,2,1.5,3.0,8.46,0,0.66 442 | 441,137,104,2,2.5,1.5,7.79,0,0.53 443 | 442,138,112,1,1.5,3.0,8.66,1,0.79 444 | 443,138,116,4,4.5,4.5,9.44,1,0.92 445 | 444,138,114,5,4.5,4.5,9.16,1,0.87 446 | 445,138,113,5,4.0,5.0,9.25,1,0.92 447 | 446,138,116,5,4.5,5.0,9.08,1,0.91 448 | 447,138,118,4,5.0,5.0,9.67,1,0.93 449 | 448,138,108,3,3.5,5.0,8.97,1,0.84 450 | 449,137,109,2,2.5,4.0,9.02,0,0.8 451 | 450,137,101,3,3.5,4.5,9.13,0,0.79 452 | 451,138,112,4,3.0,4.5,8.86,1,0.82 453 | 452,138,113,4,4.5,4.5,9.25,1,0.89 454 | 453,138,116,4,5.0,3.5,9.6,1,0.93 455 | 454,137,103,3,2.5,4.0,8.76,1,0.73 456 | 455,137,105,2,3.0,3.5,8.01,0,0.71 457 | 456,137,102,2,1.5,2.5,7.64,0,0.59 458 | 457,136,100,2,2.0,2.0,7.88,0,0.51 459 | 458,136,99,1,2.0,1.5,7.57,0,0.37 460 | 459,137,100,1,3.0,3.0,8.53,1,0.69 461 | 460,138,113,4,4.0,3.5,9.36,1,0.89 462 | 461,137,105,4,4.0,4.5,8.66,1,0.77 463 | 462,136,102,3,2.5,2.0,8.13,1,0.68 464 | 463,137,105,4,3.0,3.0,7.94,0,0.62 465 | 464,136,107,3,3.5,3.0,7.86,0,0.57 466 | 465,136,97,2,2.0,3.0,7.21,0,0.45 467 | 466,137,96,4,3.0,4.5,8.26,0,0.54 468 | 467,137,99,4,3.5,4.5,8.73,1,0.71 469 | 468,137,101,5,3.5,5.0,8.78,1,0.78 470 | 469,138,110,4,4.0,5.0,8.88,1,0.81 471 | 470,138,114,4,4.0,3.5,9.16,1,0.86 472 | 471,138,110,5,4.0,4.0,9.27,1,0.87 473 | 472,137,103,3,2.0,4.0,8.09,0,0.64 474 | 473,138,116,4,4.0,4.5,9.48,1,0.9 475 | 474,137,102,2,4.0,3.5,8.15,0,0.67 476 | 475,137,105,4,3.0,2.5,7.95,1,0.67 477 | 476,136,101,3,3.5,2.5,7.88,0,0.59 478 | 477,136,104,3,2.5,2.0,8.12,0,0.62 479 | 478,137,105,4,3.5,2.0,8.18,0,0.65 480 | 479,137,103,3,4.0,4.5,8.49,1,0.71 481 | 480,138,110,4,4.5,4.0,8.96,1,0.79 482 | 481,138,102,3,3.5,4.0,9.01,1,0.8 483 | 482,138,107,4,3.0,2.5,8.48,1,0.78 484 | 483,138,113,4,4.0,2.5,8.77,1,0.83 485 | 484,136,103,5,5.0,3.0,7.92,0,0.71 486 | 485,137,106,3,3.5,3.0,7.89,1,0.73 487 | 486,137,101,2,2.5,3.5,8.34,1,0.7 488 | 487,137,102,3,2.5,2.5,8.37,0,0.68 489 | 488,138,115,4,3.5,4.0,9.14,0,0.79 490 | 489,138,112,3,3.0,4.0,8.62,1,0.76 491 | 490,136,110,3,4.0,4.5,8.5,0,0.65 492 | 491,137,105,2,2.5,4.5,8.12,1,0.67 493 | 492,136,99,4,3.0,3.5,7.81,0,0.54 494 | 493,136,101,4,2.5,4.5,7.69,1,0.53 495 | 494,136,95,2,3.0,1.5,8.22,1,0.62 496 | 495,136,99,3,2.5,2.0,8.45,1,0.68 497 | 496,138,108,5,4.5,4.0,9.02,1,0.87 498 | 497,139,117,5,5.0,5.0,9.87,1,0.96 499 | 498,138,120,5,4.5,5.0,9.56,1,0.93 500 | 499,137,103,4,4.0,5.0,8.43,0,0.73 501 | 500,138,113,4,4.5,4.5,9.04,0,0.84 502 | -------------------------------------------------------------------------------- /Frontend/.ipynb_checkpoints/Visualization-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Requirement already satisfied: plotly in c:\\users\\lamees\\anaconda3\\lib\\site-packages (4.14.1)\n", 13 | "Requirement already satisfied: six in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from plotly) (1.15.0)\n", 14 | "Requirement already satisfied: retrying>=1.3.3 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from plotly) (1.3.3)\n" 15 | ] 16 | }, 17 | { 18 | "name": "stderr", 19 | "output_type": "stream", 20 | "text": [ 21 | "WARNING: You are using pip version 20.2.4; however, version 20.3.3 is available.\n", 22 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 23 | ] 24 | }, 25 | { 26 | "name": "stdout", 27 | "output_type": "stream", 28 | "text": [ 29 | "Requirement already satisfied: chart_studio in c:\\users\\lamees\\anaconda3\\lib\\site-packages (1.1.0)\n", 30 | "Requirement already satisfied: six in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from chart_studio) (1.15.0)\n", 31 | "Requirement already satisfied: retrying>=1.3.3 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from chart_studio) (1.3.3)\n", 32 | "Requirement already satisfied: plotly in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from chart_studio) (4.14.1)\n", 33 | "Requirement already satisfied: requests in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from chart_studio) (2.24.0)\n", 34 | "Requirement already satisfied: chardet<4,>=3.0.2 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from requests->chart_studio) (3.0.4)\n", 35 | "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from requests->chart_studio) (2017.7.27.1)\n", 36 | "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from requests->chart_studio) (1.22)\n", 37 | "Requirement already satisfied: idna<3,>=2.5 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from requests->chart_studio) (2.6)\n" 38 | ] 39 | }, 40 | { 41 | "name": "stderr", 42 | "output_type": "stream", 43 | "text": [ 44 | "WARNING: You are using pip version 20.2.4; however, version 20.3.3 is available.\n", 45 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 46 | ] 47 | }, 48 | { 49 | "name": "stdout", 50 | "output_type": "stream", 51 | "text": [ 52 | "Requirement already satisfied: cufflinks in c:\\users\\lamees\\anaconda3\\lib\\site-packages (0.17.3)\n", 53 | "Requirement already satisfied: six>=1.9.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (1.15.0)\n", 54 | "Requirement already satisfied: plotly>=4.1.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (4.14.1)\n", 55 | "Requirement already satisfied: pandas>=0.19.2 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (0.23.2)\n", 56 | "Requirement already satisfied: ipywidgets>=7.0.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (7.0.0)\n", 57 | "Requirement already satisfied: setuptools>=34.4.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (49.6.0)\n", 58 | "Requirement already satisfied: colorlover>=0.2.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (0.3.0)\n", 59 | "Requirement already satisfied: ipython>=5.3.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (6.1.0)\n", 60 | "Requirement already satisfied: numpy>=1.9.2 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from cufflinks) (1.19.1)\n", 61 | "Requirement already satisfied: retrying>=1.3.3 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from plotly>=4.1.1->cufflinks) (1.3.3)\n", 62 | "Requirement already satisfied: pytz>=2011k in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from pandas>=0.19.2->cufflinks) (2017.2)\n", 63 | "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from pandas>=0.19.2->cufflinks) (2.8.1)\n", 64 | "Requirement already satisfied: ipykernel>=4.5.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipywidgets>=7.0.0->cufflinks) (4.6.1)\n", 65 | "Requirement already satisfied: traitlets>=4.3.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipywidgets>=7.0.0->cufflinks) (4.3.2)\n", 66 | "Requirement already satisfied: nbformat>=4.2.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipywidgets>=7.0.0->cufflinks) (4.4.0)\n", 67 | "Requirement already satisfied: widgetsnbextension~=3.0.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipywidgets>=7.0.0->cufflinks) (3.0.2)\n", 68 | "Requirement already satisfied: jedi>=0.10 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (0.10.2)\n", 69 | "Requirement already satisfied: decorator in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (4.1.2)\n", 70 | "Requirement already satisfied: pickleshare in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (0.7.4)\n", 71 | "Requirement already satisfied: simplegeneric>0.8 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (0.8.1)\n", 72 | "Requirement already satisfied: prompt_toolkit<2.0.0,>=1.0.4 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (1.0.15)\n", 73 | "Requirement already satisfied: pygments in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (2.2.0)\n", 74 | "Requirement already satisfied: colorama in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipython>=5.3.0->cufflinks) (0.3.9)\n", 75 | "Requirement already satisfied: jupyter_client in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->cufflinks) (5.1.0)\n", 76 | "Requirement already satisfied: tornado>=4.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->cufflinks) (4.5.2)\n", 77 | "Requirement already satisfied: ipython_genutils in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from traitlets>=4.3.1->ipywidgets>=7.0.0->cufflinks) (0.2.0)\n", 78 | "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->cufflinks) (2.6.0)\n", 79 | "Requirement already satisfied: jupyter_core in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->cufflinks) (4.3.0)\n", 80 | "Requirement already satisfied: notebook>=4.4.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from widgetsnbextension~=3.0.0->ipywidgets>=7.0.0->cufflinks) (5.0.0)\n", 81 | "Requirement already satisfied: wcwidth in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from prompt_toolkit<2.0.0,>=1.0.4->ipython>=5.3.0->cufflinks) (0.1.7)\n", 82 | "Requirement already satisfied: pyzmq>=13 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from jupyter_client->ipykernel>=4.5.1->ipywidgets>=7.0.0->cufflinks) (16.0.2)\n" 83 | ] 84 | }, 85 | { 86 | "name": "stderr", 87 | "output_type": "stream", 88 | "text": [ 89 | "WARNING: You are using pip version 20.2.4; however, version 20.3.3 is available.\n", 90 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 91 | ] 92 | } 93 | ], 94 | "source": [ 95 | "!pip install plotly\n", 96 | "!pip install chart_studio\n", 97 | "!pip install cufflinks" 98 | ] 99 | }, 100 | { 101 | "cell_type": "markdown", 102 | "metadata": {}, 103 | "source": [ 104 | "# Importing required libraries" 105 | ] 106 | }, 107 | { 108 | "cell_type": "code", 109 | "execution_count": 5, 110 | "metadata": {}, 111 | "outputs": [ 112 | { 113 | "data": { 114 | "text/html": [ 115 | " \n", 130 | " " 131 | ] 132 | }, 133 | "metadata": {}, 134 | "output_type": "display_data" 135 | }, 136 | { 137 | "data": { 138 | "text/html": [ 139 | " \n", 154 | " " 155 | ] 156 | }, 157 | "metadata": {}, 158 | "output_type": "display_data" 159 | } 160 | ], 161 | "source": [ 162 | "import pandas as pd\n", 163 | "import numpy as np\n", 164 | "import chart_studio.plotly as py\n", 165 | "import cufflinks as cf\n", 166 | "import seaborn as sns\n", 167 | "import plotly.express as px\n", 168 | "%matplotlib inline\n", 169 | "\n", 170 | "# Make Plotly work in your Jupyter Notebook\n", 171 | "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", 172 | "init_notebook_mode(connected=True)\n", 173 | "# Use Plotly locally\n", 174 | "cf.go_offline()" 175 | ] 176 | }, 177 | { 178 | "cell_type": "markdown", 179 | "metadata": {}, 180 | "source": [ 181 | "# Finding the correlartion between the features" 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": 6, 187 | "metadata": {}, 188 | "outputs": [ 189 | { 190 | "name": "stdout", 191 | "output_type": "stream", 192 | "text": [ 193 | " GRE Score TOEFL Score University Rating SOP \\\n", 194 | "GRE Score 1.000000 0.827200 0.635376 0.613498 \n", 195 | "TOEFL Score 0.827200 1.000000 0.649799 0.644410 \n", 196 | "University Rating 0.635376 0.649799 1.000000 0.728024 \n", 197 | "SOP 0.613498 0.644410 0.728024 1.000000 \n", 198 | "LOR 0.524679 0.541563 0.608651 0.663707 \n", 199 | "CGPA 0.825878 0.810574 0.705254 0.712154 \n", 200 | "Research 0.563398 0.467012 0.427047 0.408116 \n", 201 | "Chance of Admit 0.810351 0.792228 0.690132 0.684137 \n", 202 | "\n", 203 | " LOR CGPA Research Chance of Admit \n", 204 | "GRE Score 0.524679 0.825878 0.563398 0.810351 \n", 205 | "TOEFL Score 0.541563 0.810574 0.467012 0.792228 \n", 206 | "University Rating 0.608651 0.705254 0.427047 0.690132 \n", 207 | "SOP 0.663707 0.712154 0.408116 0.684137 \n", 208 | "LOR 1.000000 0.637469 0.372526 0.645365 \n", 209 | "CGPA 0.637469 1.000000 0.501311 0.882413 \n", 210 | "Research 0.372526 0.501311 1.000000 0.545871 \n", 211 | "Chance of Admit 0.645365 0.882413 0.545871 1.000000 \n" 212 | ] 213 | } 214 | ], 215 | "source": [ 216 | "df = pd.read_csv('../Dataset/Admission_Predict_Ver1.1.csv')\n", 217 | "df = df.drop('Serial No.',axis=1)\n", 218 | "corr = df.corr()\n", 219 | "print(corr)" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "metadata": {}, 225 | "source": [ 226 | "# Heatmap Drawing to show correlation between the features" 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "execution_count": 7, 232 | "metadata": { 233 | "collapsed": true 234 | }, 235 | "outputs": [], 236 | "source": [ 237 | "import matplotlib.pyplot as plt\n", 238 | "import seaborn as sns" 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 8, 244 | "metadata": {}, 245 | "outputs": [ 246 | { 247 | "ename": "TypeError", 248 | "evalue": "'float' object cannot be interpreted as an integer", 249 | "output_type": "error", 250 | "traceback": [ 251 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 252 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 253 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mcorr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcorr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m8\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m8\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mcolormap\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdiverging_palette\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m220\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mas_cmap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[0mcolormap\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdiverging_palette\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m220\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mas_cmap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0msns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcorr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcolormap\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlinewidths\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m.5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mannot\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfmt\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\".2f\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 254 | "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\seaborn\\palettes.py\u001b[0m in \u001b[0;36mdiverging_palette\u001b[1;34m(h_neg, h_pos, s, l, sep, n, center, as_cmap)\u001b[0m\n\u001b[0;32m 692\u001b[0m \"\"\"\n\u001b[0;32m 693\u001b[0m \u001b[0mpalfunc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdark_palette\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcenter\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m\"dark\"\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mlight_palette\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 694\u001b[1;33m \u001b[0mneg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpalfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mh_neg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m128\u001b[0m \u001b[1;33m-\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0msep\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreverse\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"husl\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 695\u001b[0m \u001b[0mpos\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpalfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mh_pos\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m128\u001b[0m \u001b[1;33m-\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0msep\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"husl\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 696\u001b[0m midpoint = dict(light=[(.95, .95, .95, 1.)],\n", 255 | "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\seaborn\\palettes.py\u001b[0m in \u001b[0;36mlight_palette\u001b[1;34m(color, n_colors, reverse, as_cmap, input)\u001b[0m\n\u001b[0;32m 589\u001b[0m \u001b[0mlight\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mset_hls_values\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ml\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m.95\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 590\u001b[0m \u001b[0mcolors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mcolor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlight\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mreverse\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mlight\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 591\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mblend_palette\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_colors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mas_cmap\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 592\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 593\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", 256 | "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\seaborn\\palettes.py\u001b[0m in \u001b[0;36mblend_palette\u001b[1;34m(colors, n_colors, as_cmap, input)\u001b[0m\n\u001b[0;32m 725\u001b[0m \u001b[0mpal\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLinearSegmentedColormap\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfrom_list\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 726\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mas_cmap\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 727\u001b[1;33m \u001b[0mpal\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_ColorPalette\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpal\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_colors\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 728\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mpal\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 729\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", 257 | "\u001b[1;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mlinspace\u001b[1;34m(*args, **kwargs)\u001b[0m\n", 258 | "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\numpy\\core\\function_base.py\u001b[0m in \u001b[0;36mlinspace\u001b[1;34m(start, stop, num, endpoint, retstep, dtype, axis)\u001b[0m\n\u001b[0;32m 111\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 112\u001b[0m \"\"\"\n\u001b[1;32m--> 113\u001b[1;33m \u001b[0mnum\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moperator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 114\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mnum\u001b[0m \u001b[1;33m<\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 115\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Number of samples, %s, must be non-negative.\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mnum\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 259 | "\u001b[1;31mTypeError\u001b[0m: 'float' object cannot be interpreted as an integer" 260 | ] 261 | }, 262 | { 263 | "data": { 264 | "image/png": "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\nKACsqz1j3d0vJrk7yYNJPpfkge5+rKruraojW8seTPKVqno8yUNJ3t3dX9mvoQFgnVT3zl8/Xxgb\nGxt98uTJi/K1AeBCq6pPd/fG+XyuK5gBwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxY\nA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0A\nw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn\n1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgD\nwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDD\niTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfW\nADCcWAPAcGINAMMtinVV3VJVT1TVqaq65yzr3lxVXVUbqxsRANbbnrGuqiuS3Jfk1iSHk9xZVYd3\nWffKJL+R5FOrHhIA1tmSM+ubk5zq7ie7+4Uk9ye5fZd1f5DkvUm+vsL5AGDtLYn1NUme2nZ8euu+\n/1NVNyW5trs/tMLZAIAsi3Xtcl//34NVL0vyJ0netecTVR2tqpNVdfLZZ59dPiUArLElsT6d5Npt\nxweTPL3t+JVJbkzy0ar6QpLXJzm+25vMuvtYd29098aBAwfOf2oAWCNLYv1IkkNVdUNVXZXkjiTH\nv/Vgdz/X3Vd39/XdfX2Sh5Mc6e6T+zIxAKyZPWPd3S8muTvJg0k+l+SB7n6squ6tqiP7PSAArLsr\nlyzq7hNJTuy47z1nWPuGlz4WAPAtrmAGAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBi\nDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUA\nDCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCc\nWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGIN\nAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAM\nJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxY\nA8BwYg0Aw4k1AAy3KNZVdUtVPVFVp6rqnl0e/62qeryqHq2qj1TVD69+VABYT3vGuqquSHJfkluT\nHE5yZ1Ud3rHsM0k2uvsnkvxjkveuelAAWFdLzqxvTnKqu5/s7heS3J/k9u0Luvuh7n5+6/DhJAdX\nOyYArK8lsb4myVPbjk9v3XcmdyX58EsZCgD4f1cuWFO73Ne7Lqx6a5KNJD93hsePJjmaJNddd93C\nEQFgvS05sz6d5NptxweTPL1zUVW9KcnvJDnS3d/Y7Ym6+1h3b3T3xoEDB85nXgBYO0ti/UiSQ1V1\nQ1VdleSOJMe3L6iqm5L8RTZD/czqxwSA9bVnrLv7xSR3J3kwyeeSPNDdj1XVvVV1ZGvZHyX53iT/\nUFX/VlXHz/B0AMA5WvI763T3iSQndtz3nm2337TiuQCALa5gBgDDiTUADCfWADCcWAPAcGINAMOJ\nNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YA\nMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8Bw\nYg0Aw4k1AAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1\nAAwn1gAwnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAw\nnFgDwHBiDQDDiTUADCfWADCcWAPAcGINAMOJNQAMJ9YAMJxYA8BwYg0Aw4k1AAwn1gAwnFgDwHBi\nDQDDiTUADCfWADCcWAPAcGINAMOJNQAMtyjWVXVLVT1RVaeq6p5dHv/uqvr7rcc/VVXXr3pQAFhX\ne8a6qq5Icl+SW5McTnJnVR3eseyuJF/r7h9N8idJ/nDVgwLAulpyZn1zklPd/WR3v5Dk/iS371hz\ne5K/3rr9j0neWFW1ujEBYH0tifU1SZ7adnx6675d13T3i0meS/IDqxgQANbdlQvW7HaG3OexJlV1\nNMnRrcNvVNVnF3x9zt/VSb58sYdYA/Z5/9nj/WeP99+Pne8nLon16STXbjs+mOTpM6w5XVVXJnlV\nkq/ufKLuPpbkWJJU1cnu3jifoVnGHl8Y9nn/2eP9Z4/3X1WdPN/PXfIy+CNJDlXVDVV1VZI7khzf\nseZ4kl/euv3mJP/a3d9xZg0AnLs9z6y7+8WqujvJg0muSPL+7n6squ5NcrK7jyf5qyR/W1WnsnlG\nfcd+Dg0A62TJy+Dp7hNJTuy47z3bbn89yS+d49c+do7rOXf2+MKwz/vPHu8/e7z/znuPy6vVADCb\ny40CwHD7HmuXKt1/C/b4t6rq8ap6tKo+UlU/fDHmvJTttcfb1r25qrqqvKv2PCzZ56p6y9b382NV\n9XcXesZL3YKfF9dV1UNV9Zmtnxm3XYw5L2VV9f6qeuZMf55cm/5069/g0ap63Z5P2t379pHNN6T9\nR5IfSXJVkn9PcnjHml9L8r6t23ck+fv9nOly+1i4xz+f5Hu2bv+qPV79Hm+te2WSjyV5OMnGxZ77\nUvtY+L18KMlnknz/1vEPXuy5L6WPhXt8LMmvbt0+nOQLF3vuS+0jyc8meV2Sz57h8duSfDib1yh5\nfZJP7fWc+31m7VKl+2/PPe7uh7r7+a3Dh7P5t/Ist+T7OEn+IMl7k3z9Qg53GVmyz+9Icl93fy1J\nuvuZCzzjpW7JHneS79u6/ap853U12EN3fyy7XGtkm9uT/E1vejjJq6vqh872nPsda5cq3X9L9ni7\nu7L5X3Qst+ceV9VNSa7t7g9dyMEuM0u+l1+T5DVV9Ymqeriqbrlg010eluzx7yd5a1WdzuZfAb3z\nwoy2Vs715/ayP916CVZ2qVLOaPH+VdVbk2wk+bl9nejyc9Y9rqqXZfP/Nvf2CzXQZWrJ9/KV2Xwp\n/A3ZfIXo41V1Y3f/1z7PdrlYssd3JvlAd/9xVf10Nq+hcWN3/8/+j7c2zrl7+31mfS6XKs3ZLlXK\nGS3Z41TVm5L8TpIj3f2NCzTb5WKvPX5lkhuTfLSqvpDN30Ed9yazc7b058U/d/c3u/vzSZ7IZrxZ\nZske35XkgSTp7k8meXk2rxvO6iz6ub3dfsfapUr33557vPUS7V9kM9R+x3fuzrrH3f1cd1/d3dd3\n9/XZfF/Ake4+7+sAr6klPy/+KZtvmExVXZ3Nl8WfvKBTXtqW7PEXk7wxSarqx7MZ62cv6JSXv+NJ\n3rb1rvDXJ3muu790tk/Y15fB26VK993CPf6jJN+b5B+23rv3xe4+ctGGvsQs3GNeooX7/GCSX6yq\nx5P8d5J3d/dXLt7Ul5aFe/yuJH9ZVb+ZzZdm3+4E6txU1Qez+auaq7d+9/97Sb4rSbr7fdl8L8Bt\nSU4leT7Jr+z5nP4NAGA2VzADgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYLj/BT/nvv1X\noEssAAAAAElFTkSuQmCC\n", 265 | "text/plain": [ 266 | "" 267 | ] 268 | }, 269 | "metadata": {}, 270 | "output_type": "display_data" 271 | } 272 | ], 273 | "source": [ 274 | "import numpy as np\n", 275 | "corr = df.corr()\n", 276 | "fig, ax = plt.subplots(figsize=(8, 8))\n", 277 | "colormap = sns.diverging_palette(220, 10, as_cmap=True)\n", 278 | "colormap = sns.diverging_palette(220, 10, as_cmap=True)\n", 279 | "sns.heatmap(corr, cmap=colormap, linewidths=.5, annot=True, fmt=\".2f\")\n", 280 | "plt.show()" 281 | ] 282 | }, 283 | { 284 | "cell_type": "markdown", 285 | "metadata": {}, 286 | "source": [ 287 | "# Effect of University Ratings on average Chance of Admission " 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": null, 293 | "metadata": {}, 294 | "outputs": [], 295 | "source": [ 296 | "df.sort_values(by=['University Rating'], inplace=True)\n", 297 | "df.head()" 298 | ] 299 | }, 300 | { 301 | "cell_type": "code", 302 | "execution_count": null, 303 | "metadata": { 304 | "collapsed": true 305 | }, 306 | "outputs": [], 307 | "source": [ 308 | "import plotly.graph_objects as go" 309 | ] 310 | }, 311 | { 312 | "cell_type": "code", 313 | "execution_count": null, 314 | "metadata": {}, 315 | "outputs": [], 316 | "source": [ 317 | "df_avg = df.groupby('University Rating', as_index=False)['Chance of Admit '].mean()\n", 318 | "df_avg.head()" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": null, 324 | "metadata": {}, 325 | "outputs": [], 326 | "source": [ 327 | "fig = go.Figure()\n", 328 | "fig.add_trace(go.Scatter(x=df_avg['University Rating'], \n", 329 | " y=df_avg['Chance of Admit '],\n", 330 | " mode='lines+markers'))\n", 331 | "\n", 332 | "fig.update_layout(title='Effect of University Ratings on average Chance of Admission',\n", 333 | " xaxis_title='University Rating',\n", 334 | " yaxis_title='Average Chance of Admit')" 335 | ] 336 | }, 337 | { 338 | "cell_type": "markdown", 339 | "metadata": {}, 340 | "source": [ 341 | "# Effect of CGPA on the chance of Admission" 342 | ] 343 | }, 344 | { 345 | "cell_type": "code", 346 | "execution_count": null, 347 | "metadata": {}, 348 | "outputs": [], 349 | "source": [ 350 | "df.sort_values(by=['CGPA'], inplace=True)\n", 351 | "df.head()" 352 | ] 353 | }, 354 | { 355 | "cell_type": "code", 356 | "execution_count": null, 357 | "metadata": {}, 358 | "outputs": [], 359 | "source": [ 360 | "fig = go.Figure()\n", 361 | "fig.add_trace(go.Scatter(x=df['CGPA'], \n", 362 | " y=df['Chance of Admit '],\n", 363 | " mode='markers'))\n", 364 | "\n", 365 | "fig.update_layout(title='Effect of CGPA on the chance of Admission',\n", 366 | " xaxis_title='CGPA',\n", 367 | " yaxis_title='Chance of Admit')" 368 | ] 369 | }, 370 | { 371 | "cell_type": "markdown", 372 | "metadata": {}, 373 | "source": [ 374 | "# The distribution of students' applications across universities (by rating)" 375 | ] 376 | }, 377 | { 378 | "cell_type": "code", 379 | "execution_count": null, 380 | "metadata": {}, 381 | "outputs": [], 382 | "source": [ 383 | "\n", 384 | "df_count = df.groupby('University Rating', as_index=False).agg('count')\n", 385 | "\n", 386 | "df_count['std_count'] = df_count['LOR ']\n", 387 | "df_count.head()\n" 388 | ] 389 | }, 390 | { 391 | "cell_type": "code", 392 | "execution_count": null, 393 | "metadata": {}, 394 | "outputs": [], 395 | "source": [ 396 | "fig = px.bar(df_count, y='std_count', x='University Rating', color='University Rating')\n", 397 | "\n", 398 | "fig.update_layout(title='The distribution of students\\' applications across universities (by rating)',\n", 399 | " xaxis_title='University Rating',\n", 400 | " yaxis_title='Number of Students' )\n", 401 | "fig.show()" 402 | ] 403 | }, 404 | { 405 | "cell_type": "markdown", 406 | "metadata": {}, 407 | "source": [ 408 | "# The percentages of students' applications across universities (by rating)" 409 | ] 410 | }, 411 | { 412 | "cell_type": "code", 413 | "execution_count": null, 414 | "metadata": {}, 415 | "outputs": [], 416 | "source": [ 417 | "total = df_count['std_count'].sum()\n", 418 | "df_count['percentage'] = df_count['std_count'] / total\n", 419 | "df_count.head()" 420 | ] 421 | }, 422 | { 423 | "cell_type": "code", 424 | "execution_count": null, 425 | "metadata": {}, 426 | "outputs": [], 427 | "source": [ 428 | "fig = px.pie(df_count,\n", 429 | " values=df_count['percentage'], \n", 430 | " names='University Rating',\n", 431 | " title=\"The percentages of students' applications across universities (by rating)\")\n", 432 | "\n", 433 | "fig.update_traces(hoverinfo='label+percent', textfont_size=15,\n", 434 | " textinfo='label+percent',\n", 435 | " marker=dict(colors=colors, line=dict(color='#FFFFFF', width=2)))\n", 436 | "fig.show()" 437 | ] 438 | }, 439 | { 440 | "cell_type": "markdown", 441 | "metadata": {}, 442 | "source": [ 443 | "# The impact of the various features on the chance of admission" 444 | ] 445 | }, 446 | { 447 | "cell_type": "code", 448 | "execution_count": null, 449 | "metadata": { 450 | "collapsed": true 451 | }, 452 | "outputs": [], 453 | "source": [ 454 | "from sklearn.model_selection import train_test_split\n", 455 | "\n", 456 | "X = df.drop(['Chance of Admit '], axis=1)\n", 457 | "y = df['Chance of Admit ']\n", 458 | "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.20, shuffle=False)" 459 | ] 460 | }, 461 | { 462 | "cell_type": "code", 463 | "execution_count": null, 464 | "metadata": { 465 | "collapsed": true 466 | }, 467 | "outputs": [], 468 | "source": [ 469 | "from sklearn.ensemble import RandomForestRegressor" 470 | ] 471 | }, 472 | { 473 | "cell_type": "code", 474 | "execution_count": null, 475 | "metadata": { 476 | "collapsed": true 477 | }, 478 | "outputs": [], 479 | "source": [ 480 | "classifier = RandomForestRegressor()\n", 481 | "classifier.fit(X,y)\n", 482 | "feature_names = X.columns\n", 483 | "importance_frame = pd.DataFrame()\n", 484 | "importance_frame['Features'] = X.columns\n", 485 | "importance_frame['Importance'] = classifier.feature_importances_\n", 486 | "importance_frame = importance_frame.sort_values(by=['Importance'], ascending=True)" 487 | ] 488 | }, 489 | { 490 | "cell_type": "code", 491 | "execution_count": null, 492 | "metadata": {}, 493 | "outputs": [], 494 | "source": [ 495 | "importance_frame.head(7)" 496 | ] 497 | }, 498 | { 499 | "cell_type": "code", 500 | "execution_count": null, 501 | "metadata": {}, 502 | "outputs": [], 503 | "source": [ 504 | "fig = px.bar(importance_frame, y='Features', x='Importance', color='Features',orientation='h')\n", 505 | "\n", 506 | "fig.update_layout(title='The impact of the various features on the chance of admission',\n", 507 | " xaxis_title='Importance',\n", 508 | " yaxis_title='' )\n", 509 | "fig.show()" 510 | ] 511 | } 512 | ], 513 | "metadata": { 514 | "kernelspec": { 515 | "display_name": "Python 3", 516 | "language": "python", 517 | "name": "python3" 518 | }, 519 | "language_info": { 520 | "codemirror_mode": { 521 | "name": "ipython", 522 | "version": 3 523 | }, 524 | "file_extension": ".py", 525 | "mimetype": "text/x-python", 526 | "name": "python", 527 | "nbconvert_exporter": "python", 528 | "pygments_lexer": "ipython3", 529 | "version": "3.6.3" 530 | } 531 | }, 532 | "nbformat": 4, 533 | "nbformat_minor": 4 534 | } 535 | -------------------------------------------------------------------------------- /Frontend/app.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import numpy as np 3 | import dash 4 | import dash_html_components as html 5 | import dash_core_components as dcc 6 | import dash_table 7 | import pandas as pd 8 | import dash_daq as daq 9 | import cufflinks as cf 10 | import plotly.express as px 11 | import joblib 12 | from dash.dependencies import Input, Output 13 | import base64 14 | import plotly.graph_objects as go 15 | # Use Plotly locally 16 | cf.go_offline() 17 | 18 | external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css', 19 | 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css'] 20 | 21 | 22 | df1 = pd.read_csv('../Dataset/admission_predict_V1.2.csv').head() 23 | model = joblib.load('../Backend/model_RandF.sav') 24 | #---------------------------------------------------------------------------------------- 25 | 26 | # Plotting regression result 27 | df = pd.read_csv('../Dataset/admission_predict_V1.2.csv') 28 | X = df.drop(['Chance of Admit','Serial No.'], axis=1) 29 | y = df['Chance of Admit'] 30 | y_predicted = model.predict(X) 31 | 32 | regression_fig = go.Figure() 33 | regression_fig.add_trace(go.Scatter(x=y, 34 | y=y_predicted, 35 | mode='markers', 36 | name='actual vs. predicted')) 37 | 38 | regression_fig.add_trace(go.Scatter(x=[y.min(), y.max()], 39 | y=[y.min(), y.max()], 40 | mode='lines', 41 | name='regression line')) 42 | regression_fig.update_layout(xaxis_title='Actual output', 43 | yaxis_title='Predicted output', 44 | height=500, width = 700) 45 | #---------------------------------------------------------------------------------- 46 | # Feature importance Visualization 47 | importance_frame = pd.DataFrame() 48 | importance_frame['Features'] = X.columns 49 | importance_frame['Importance'] = model.feature_importances_ 50 | importance_frame = importance_frame.sort_values(by=['Importance'], ascending=True) 51 | 52 | importance_fig = px.bar(importance_frame, y='Features', x='Importance', color='Features',orientation='h') 53 | 54 | importance_fig.update_layout(xaxis_title='Importance', 55 | yaxis_title='', 56 | height=500, width = 700 ) 57 | #---------------------------------------------------------------------------------- 58 | gerVSadmit_fig = px.scatter(df, x="GRE Score", 59 | y="Chance of Admit", 60 | log_x=True, 61 | size_max=60, 62 | title = 'GRE vs. Chance of admission') 63 | #---------------------------------------------------------------------------------- 64 | toeflVSadmit_fig = px.scatter(df, x="TOEFL Score", 65 | y="Chance of Admit", 66 | log_x=True, 67 | size_max=60, 68 | title = 'TOEFL vs. Chance of admission') 69 | #----------------------------------------------------------------------------------- 70 | cgpaVSadmit = px.scatter(df, x="CGPA", 71 | y="Chance of Admit", 72 | log_x=True, size_max=60, 73 | title = 'CGPA vs. Chance of admission') 74 | #-------------------------------------------------------------------------- 75 | df_count = df.groupby('University Rating', as_index = False).agg('count') 76 | df_count ['std_count'] = df_count['LOR'] 77 | lorVSadmit_fig = px.bar(df_count, 78 | y='std_count', 79 | x='University Rating', 80 | title = ' Student Distriution across Universities') 81 | #--------------------------------------------------------------------- 82 | df.sort_values(by=['University Rating'], inplace=True) 83 | df_avg =df.groupby ('University Rating', as_index=False)['Chance of Admit'].mean() 84 | rateVSadmit_fig=go.Figure() 85 | rateVSadmit_fig.add_trace(go.Scatter(x=df_avg['University Rating'], 86 | y=df_avg['Chance of Admit'], 87 | mode='lines+markers')) 88 | 89 | rateVSadmit_fig.update_layout(title='Effect of Uni Ratings on avg. admission chance', 90 | xaxis_title='University Rating', 91 | yaxis_title='Avg. Chance of Admit') 92 | #---------------------------------------------------------------------- 93 | total = df_count['std_count'].sum() 94 | df_count['percentage'] = df_count['std_count']/total 95 | 96 | colors = ['#003f5c','#58508d','#bc5090','#ff6361','#ffa600'] 97 | pie_fig = px.pie(df_count, 98 | values=df_count['percentage'], 99 | names='University Rating', 100 | title=" Percentage of students across universities") 101 | 102 | 103 | pie_fig.update_traces(hoverinfo='label+percent', textfont_size=15, 104 | textinfo='label+percent', 105 | marker=dict(colors=colors, line=dict(color='#FFFFFF', width=2))) 106 | #-------------------------------------------------------------------- 107 | 108 | app = dash.Dash(__name__, external_stylesheets=external_stylesheets) 109 | 110 | app.layout = html.Div( children=[ 111 | html.Div(children=[ 112 | 113 | # Start Header *********************************************** 114 | html.Header(className='header-style',children=[ 115 | html.Div(className= 'container ', children=[ 116 | html.Div(className='ten columns', children=[ 117 | #html.Img(src=app.get_asset_url('logo.png'), style={'width':'50%'}), 118 | html.H3("SAP", style={'font-family': 'fantasy'}) 119 | ]), 120 | 121 | html.Div(className='two columns', style = {'text-align':'left','padding-top':'15px'} , children=[ 122 | html.A(" Video ", href='https://github.com/LameesKadhim/SAP-project', className='fa fa-youtube-play header-links', target="_blank"), 123 | html.A(" Source code ", href='https://github.com/LameesKadhim/SAP-project', className='fa fa-github header-links', target="_blank") 124 | 125 | ]) 126 | ]) 127 | ]), 128 | # End Header ************************************************** 129 | 130 | dcc.Tabs(parent_className='custom-tabs', 131 | className='custom-tabs-container', children=[ 132 | 133 | # Start HOME Tab********************************************* 134 | dcc.Tab(label=' HOME', className='tab-icon fa fa-home',selected_className='custom-tab--selected', children=[ 135 | 136 | # Start Overlay Section ********************************* 137 | html.Section(className='row overlay-img', children=[ 138 | html.Div(className='overlay', children=[ 139 | html.Div(className='banner', children=[ 140 | html.H1('Student Admission Predicion'), 141 | html.P('SAP is the best place for the bachelor students to understand their chances of getting accepted into shortlisted universities') 142 | ]) 143 | ]) 144 | ]), 145 | # End Overlay Section ************************************* 146 | 147 | # INTRODUCTION *************************************** 148 | html.Div(className='container' , children=[ 149 | html.Div(className='row', children=[ 150 | # LOGO 151 | html.Div(className='three columns', children=[ 152 | html.Img(src=app.get_asset_url('logo.jpg'), style={'width': '220px','padding-top':'20px'}), 153 | ]), 154 | # TEXT 155 | html.Div(className='nine columns', children=[ 156 | html.H2('Motivation', className='block-caption'), 157 | html.P('''Post graduate degrees are becoming more and more desired degrees all over the world. 158 | It is an advantage for the students to have an idea a head about their probability 159 | of being admitted to a university, as a result the students can work on enhancing 160 | the language test or the degree for their currently running courses and so on. 161 | In our project we use a regression task to predict the student admission percentage.''', 162 | className='text-content',style={'margin-bottom':'20px'}) 163 | ]) 164 | ]), 165 | ]), 166 | 167 | html.Section(className='section objective-overlay-img', children=[ 168 | html.Div(className='objective-overlay', children=[ 169 | html.Div(className='container',style={'padding-top':'5px'}, children=[ 170 | html.H2('PROJECT OBJECTIVE',className='objective-H2'), 171 | html.Div(className='row', children=[ 172 | html.Div(children=[ 173 | html.P('''Our university acceptance calculator can help you 174 | to find the probability of getting accepted into a 175 | particular university based on your profile, and it is 176 | completely free. Enter your language scores and CGPA to see the 177 | predicted output. This output will give you a fair 178 | idea about your chance for being admitted to a particular university.''', 179 | className='text-content') 180 | ]) 181 | ]) 182 | ]) 183 | ]) 184 | ]), 185 | 186 | # Start About Us Section ***************************************** 187 | html.Div(className='AboutUs', children=[ 188 | html.Section(className='container', children=[ 189 | html.H3('Datology Team',className='block-caption'), 190 | 191 | html.Div(style={'overflow': 'hidden'}, children=[ 192 | html.Div(style={'float': 'left','width':'20%'}, children=[ 193 | html.H6("Saif Almaliki"), 194 | html.Img(src=app.get_asset_url('saif.jpg'), className='avatar'), 195 | html.Div(children=[ 196 | html.A(href= 'https://github.com/SaifAlmaliki', className='fa fa-github social-link ', target="_blank"), 197 | html.A(href= 'https://www.linkedin.com/in/saif-almaliki-5a681376/', className='fa fa-linkedin social-link', target="_blank") 198 | ]) 199 | ]), 200 | 201 | 202 | html.Div(style={'float': 'left','width':'20%'}, children=[ 203 | html.H6("Sepideh Hosseini"), 204 | html.Img(src=app.get_asset_url('Sepideh.jpg'), className='avatar'), 205 | html.Div(children=[ 206 | html.A(href= 'https://github.com/Sepideh-hd', className='fa fa-github social-link ', target="_blank"), 207 | html.A(href= 'https://www.linkedin.com/in/sepideh-hosseini-dehkordi-16452610a/', className='fa fa-linkedin social-link', target="_blank") 208 | 209 | ]) 210 | ]), 211 | 212 | html.Div(style={'float': 'left','width':'20%'}, children=[ 213 | html.H6("Lamees Kadhim"), 214 | html.Img(src=app.get_asset_url('lamees.png'), className='avatar'), 215 | html.Div(children=[ 216 | html.A(href= 'https://github.com/LameesKadhim', className='fa fa-github social-link ', target="_blank"), 217 | html.A(href= 'https://www.linkedin.com/in/lamees-mohammed-nazar-976587119/', className='fa fa-linkedin social-link', target="_blank") 218 | 219 | ]) 220 | ]), 221 | 222 | 223 | html.Div(style={'float': 'left','width':'20%'}, children=[ 224 | html.H6("Tamanna"), 225 | html.Img(src=app.get_asset_url('Tamanna.jpg'), className='avatar'), 226 | html.Div(children=[ 227 | html.A(href= 'https://github.com/tamanna18', className='fa fa-github social-link ', target="_blank"), 228 | html.A(href= 'https://www.linkedin.com/in/tamanna-724345189/', className='fa fa-linkedin social-link', target="_blank") 229 | 230 | ]) 231 | ]), 232 | 233 | html.Div(style={'float': 'left','width':'20%'}, children=[ 234 | html.H6("Kunal"), 235 | html.Img(src=app.get_asset_url('kunal.png'), className='avatar'), 236 | html.Div(children=[ 237 | html.A(href= 'https://github.com/kunalait', className='fa fa-github social-link ', target="_blank"), 238 | html.A(href= 'https://www.linkedin.com/in/kunal-2375b515a/', className='fa fa-linkedin social-link', target="_blank") 239 | 240 | ]) 241 | ]) 242 | ]) 243 | ]) 244 | ]) 245 | 246 | ]), 247 | 248 | # Start Dataset Tab ********************************** 249 | dcc.Tab(label=' DATASET', className='tab-icon fa fa-database',selected_className='custom-tab--selected' , children=[ 250 | # Start Overlay Section ********************************* 251 | html.Section(className='row overlay-img', children=[ 252 | html.Div(className='overlay', children=[ 253 | html.Div(className='banner', children=[ 254 | html.H2('Dataset Details',style={'font-size':'32pt'}), 255 | html.P("Explanation of the different features and the output of the dataset") 256 | ]) 257 | ]) 258 | ]), 259 | # End Overlay Section ************************************* 260 | 261 | # About Dataset 262 | html.Div(className='container', children=[ 263 | html.Label('DATASET', className='block-caption'), 264 | html.Div(className='row', style={'text-align':'center'}, children=[ 265 | html.P('''This dataset was built with the purpose of helping students in shortlisting 266 | universities with their profiles. The predicted output gives them a fair idea 267 | about their chances for a particular university. 268 | We use the dataset which is available in link below: ''', 269 | className='text-content') 270 | ]), 271 | 272 | html.Div(className='row', style={'text-align': 'left' , 'margin-down':'5px'} , children=[ 273 | html.A( 274 | "View our dataset source link", 275 | href='https://www.kaggle.com/mohansacharya/graduate-admissions?select=Admission_Predict.csv', 276 | target="_blank") 277 | ]), 278 | 279 | 280 | html.Div(className='row', children=[ 281 | html.H6('Attributes Of Dataset', className='block-caption'), 282 | html.Ul(className='text-content', children=[ 283 | html.Li('Serial: Students serial number'), 284 | html.Li('GRE Score (130-170)'), 285 | html.Li('TOEFL Score (60-120)'), 286 | html.Li('SOP ( Statement of Purpose)'), 287 | html.Li('LOR(Letter of Recommendation) Strength(out of 5)'), 288 | html.Li('Research Experience ( 0 for no experience and 1 for having an experience)'), 289 | html.Li('Undergraduate CGPA is the average of grade points obtained in all the subject (out of 10)'), 290 | html.Li('Chance of Admit (range from 0 to 1) --The Label') 291 | ]), 292 | 293 | html.P( 294 | '''The size of dataset is 500 records and 9 columns and it contains 295 | several parameters which are considered important during the application for Masters Programs. 296 | Table below shows a sample from our dataset :''', 297 | className='text-content') 298 | ]), 299 | 300 | html.Div(className='row table', children=[ 301 | dash_table.DataTable( 302 | id='table', 303 | columns=[{"name": i, "id": i} for i in df1.columns], 304 | data=df1.to_dict('records'), 305 | style_cell={'textAlign': 'center'}, 306 | style_header={ 307 | 'backgroundColor': '#276678', 308 | 'color':'#FFFF', 309 | 'fontWeight': 'bold'} 310 | ) 311 | ]), 312 | ]) 313 | 314 | ]), 315 | 316 | # Start Dashboard Tab ****************************** 317 | dcc.Tab(label=' DASHBOARD', className='tab-icon fa fa-bar-chart',selected_className='custom-tab--selected' , children=[ 318 | 319 | # Start Overlay Section ********************************* 320 | html.Section(className='row overlay-img', children=[ 321 | html.Div(className='overlay', children=[ 322 | html.Div(className='banner', children=[ 323 | html.H2('Data Visualization',style={'font-size':'32pt'}), 324 | html.P("This dashboard show the relations between the features in the dataset") 325 | ]) 326 | ]) 327 | ]), 328 | # End Overlay Section ************************************* 329 | 330 | html.Div(className='container',style={'margin-top':'10px'}, children=[ 331 | html.Div(className='row', children=[ 332 | html.Div(className='six columns', children=[ 333 | html.Div(className='row box', children=[ 334 | dcc.Graph( 335 | id='bar', 336 | figure= lorVSadmit_fig 337 | ) 338 | ]), 339 | html.Div(className='row box', children=[ 340 | dcc.Graph( 341 | id='scatter1', 342 | figure= gerVSadmit_fig 343 | ) 344 | 345 | ]), 346 | html.Div(className='row box', children=[ 347 | dcc.Graph( 348 | id='scatter', 349 | figure= cgpaVSadmit 350 | ) 351 | ]) 352 | ]), 353 | html.Div(className='six columns', children=[ 354 | html.Div(className='row box', children=[ 355 | dcc.Graph( 356 | id='pie', 357 | figure= pie_fig 358 | ) 359 | 360 | ]), 361 | html.Div(className='row box', children=[ 362 | dcc.Graph( 363 | id='scatter2', 364 | figure= toeflVSadmit_fig 365 | ) 366 | ]), 367 | html.Div(className='row box', children=[ 368 | dcc.Graph( 369 | id='line', 370 | figure= rateVSadmit_fig 371 | ) 372 | ]) 373 | ]), 374 | ]) 375 | ]) 376 | 377 | ]), #End Dashboard Tab ****************************** 378 | 379 | # Start ML tab 380 | dcc.Tab(label=' MACHINE LEARNING', className='tab-icon fa fa-lightbulb-o', selected_className='custom-tab--selected', children=[ 381 | # Start Overlay Section ********************************* 382 | html.Section(className='row overlay-img', children=[ 383 | html.Div(className='overlay', children=[ 384 | html.Div(className='banner', children=[ 385 | html.H2('Machine Learning',style={'font-size':'32pt'}), 386 | html.P("Model explanation, feature impact and model evaluation") 387 | ]) 388 | ]) 389 | ]), 390 | # End Overlay Section ************************************* 391 | 392 | # Building Steps section ***************************** 393 | html.Div(className='container', children=[ 394 | html.H6('Steps to build our model:', className='block-caption'), 395 | html.Ul(id='model-list',className='text-content', children=[ 396 | html.Li('Data preprocessing (remove null values, normalization, map GRE score to the new scale)'), 397 | html.Li('Apply different machine learning regression models'), 398 | html.Li('Select the best model'), 399 | html.Li('Save the model') 400 | ]), 401 | html.P('In our task we used Random Forest Regressor model from scikit-learn library', 402 | className='text-content'), 403 | ]), 404 | 405 | 406 | # Random Forest Explaination ********************** 407 | html.Div(className='container', children=[ 408 | html.H6('Random Forest method explanation:', className='block-caption'), 409 | 410 | html.P('''Random forests are an ensemble learning method for classification, regression and other tasks 411 | that work by building a multitude of decision trees at training time and generating the class 412 | that is the class type (classification) or mean/average prediction (regression) of the 413 | individual trees''', 414 | className='text-content'), 415 | ]), 416 | # Features impact 417 | html.Div(className='container', children=[ 418 | html.H6('Features Impact on chance of admission:', className='block-caption'), 419 | html.P('''The graph below shows the impact of various features on the chance of students' admission percentage ''', 420 | className='text-content'), 421 | html.Div(className='row',style={'margin':'0px 115px',"border":"2px #1687a7 solid"},children=[ 422 | dcc.Graph(figure=importance_fig) 423 | ]), 424 | ]), 425 | 426 | # Evaluation Section ************************* 427 | html.Div(className='container', children=[ 428 | html.H6('Evaluation', className='block-caption'), 429 | 430 | html.P('We test our model on the test set and the random forest regressor score was 85%', 431 | className='text-content'), 432 | 433 | html.Div(className='row',style={'margin':'0px 115px',"border":"2px #1687a7 solid"}, children=[ 434 | dcc.Graph(figure=regression_fig) 435 | ]), 436 | 437 | ]), 438 | 439 | ]), 440 | #End ML Tab********************************************* 441 | 442 | # Start Prediction Tab ********************************************* 443 | dcc.Tab(label=' PREDICTION', className='tab-icon fa fa-line-chart',selected_className='custom-tab--selected', children=[ 444 | # Start Overlay Section ********************************* 445 | html.Section(className='row overlay-img', children=[ 446 | html.Div(className='overlay', children=[ 447 | html.Div(className='banner', children=[ 448 | html.H2('Model Prediction',style={'font-size':'32pt'}), 449 | html.P("Enter your information to get your expected chance of admission") 450 | ]) 451 | ]) 452 | ]), 453 | # End Overlay Section ************************************* 454 | 455 | html.Div(className='container', children=[ 456 | html.Div(className='row', style={'margin':'15px'} , children=[ 457 | # Start Left Side ***************************** 458 | html.Div(className='five columns border-style', children=[ 459 | 460 | # CGPA Slider ************************************ 461 | html.Div(style={'padding':'5px',}, children=[ 462 | html.Label('CGPA') 463 | 464 | ]), 465 | 466 | html.Div(style={'padding':'5px','width':'85%'}, children=[ 467 | daq.NumericInput( 468 | id = 'CGPAInput', 469 | min=5, 470 | max=10, 471 | value=7, 472 | size=265 473 | ) 474 | 475 | ]), 476 | 477 | # GRE Score Slider ************************************ 478 | html.Div(className='row',style={'padding':'5px'}, children=[ 479 | html.Label('GRE score') 480 | ]), 481 | html.Div(className='row', style={'padding':'5px','width':'85%'}, children=[ 482 | daq.Slider(id = 'GRESlider', min=130, max=170, value=140, 483 | handleLabel={"showCurrentValue": True, "label": "VALUE"}, 484 | step=1 485 | ) 486 | ]), 487 | 488 | # TOFEL Slider ************************************ 489 | html.Div(className='row', style={'padding':'5px'}, children=[ 490 | html.Label('TOEFL iBT Score') 491 | ]), 492 | html.Div(className='row', style={'padding':'5px','width':'85%'}, children=[ 493 | daq.Slider(id = 'TOEFLSlider', min=61, max=120, value=90, 494 | handleLabel={"showCurrentValue": True, "label": "VALUE"}, 495 | step=1 496 | ) 497 | ]), 498 | 499 | # Rating Div ************************************* 500 | html.Div(style={'padding':'5px'}, children=[ 501 | html.Label('University Rating') 502 | ]), 503 | html.Div(className='row', style={'padding':'5px','width':'85%'}, children=[ 504 | dcc.Dropdown( 505 | id = 'RatingDrop', 506 | options=[ 507 | {'label': '1', 'value': '1'}, 508 | {'label': '2', 'value': '2'}, 509 | {'label': '3', 'value': '3'}, 510 | {'label': '4', 'value': '4'}, 511 | {'label': '5', 'value': '5'} 512 | ], 513 | value='1' 514 | ) 515 | ]), 516 | 517 | # LOR Div ***************************************** 518 | html.Div(className='row', style={'padding':'5px'}, children=[ 519 | html.Label('Letter Of Recommendation') 520 | ]), 521 | html.Div(className='row', style={'padding':'5px','width':'85%'}, children=[ 522 | dcc.Dropdown( 523 | id = 'LORDrop', 524 | options=[ 525 | {'label': '0.5', 'value': '0.5'}, 526 | {'label': '1.0', 'value': '1.0'}, 527 | {'label': '1.5', 'value': '1.5'}, 528 | {'label': '2.0', 'value': '2.0'}, 529 | {'label': '2.5', 'value': '2.5'}, 530 | {'label': '3.0', 'value': '3.0'}, 531 | {'label': '3.5', 'value': '3.5'}, 532 | {'label': '4.0', 'value': '4.0'}, 533 | {'label': '4.5', 'value': '4.5'}, 534 | {'label': '5.0', 'value': '5.0'} 535 | ], 536 | value='0.5' 537 | ) 538 | ]), 539 | 540 | # SOP DIv *************************************** 541 | html.Div(className='row', style={'padding':'5px'}, children=[ 542 | html.Label('Statement of Purpose') 543 | ]), 544 | html.Div(className='row', style={'padding':'5px','width':'85%'}, children=[ 545 | dcc.Dropdown( 546 | id = 'SOPDrop', 547 | options=[ 548 | {'label': '1', 'value': '1'}, 549 | {'label': '2', 'value': '2'}, 550 | {'label': '3', 'value': '3'}, 551 | {'label': '4', 'value': '4'}, 552 | {'label': '5', 'value': '5'} 553 | ], 554 | value='1' 555 | ) 556 | ]), 557 | 558 | 559 | # Reaserch DIv ************************************ 560 | html.Div(style={'padding':'5px'}, children=[ 561 | html.Label('Reasearch Experience') 562 | ]), 563 | html.Div(className='row', style={'padding':'5px'}, children=[ 564 | html.Div(className='six columns', children=[ 565 | dcc.RadioItems( 566 | id = 'ResearchRadio', 567 | options=[ 568 | {'label': 'YES', 'value': '1'}, 569 | {'label': 'NO', 'value': '0'} 570 | ], 571 | value='0' 572 | ) 573 | ]) 574 | ]) 575 | ]), 576 | # End Left Side ***************************** 577 | 578 | 579 | # Start Right Side *************************** 580 | html.Div(className='seven columns' , style={'text-align' : 'center', 'margin-top':'35px'}, children=[ 581 | 582 | #Admission prediction Text 583 | html.Div(children=[ 584 | html.H6("Admission Probablity" ,className='prediction-text'), 585 | html.H5(id="prediction_result",className='prediction-text'), 586 | ]), 587 | 588 | # Prediction bar 589 | dcc.Graph(id = 'barGraph',className='prediction-bar') 590 | 591 | ]) 592 | ]) 593 | ]) 594 | 595 | ]), # ***END ML TAB**************************************** 596 | 597 | 598 | ]) # ***END TABS **************************************** 599 | ]), 600 | # End Tabs *********************************************** 601 | 602 | # Start Footer *********************************************** 603 | html.Footer(className='footer', children=[ 604 | html.P('Copyright © 2021 Datology Group. Learning Analysis course . WS20/21') 605 | ]) 606 | # End Footer ************************************************* 607 | 608 | ]) # End Main Layout *********************************************************** 609 | 610 | # The callback function will provide one "Ouput" in the form of a string (=children) 611 | @app.callback([Output(component_id="prediction_result",component_property="children"), 612 | Output(component_id="barGraph",component_property="figure")], 613 | # The values correspnding to the three sliders are obtained by calling their id and value property 614 | [ 615 | Input("GRESlider","value"), 616 | Input("TOEFLSlider","value"), 617 | Input("RatingDrop","value"), 618 | Input("SOPDrop","value"), 619 | Input("LORDrop","value"), 620 | Input("CGPAInput","value"), 621 | Input("ResearchRadio","value"), 622 | ]) 623 | 624 | # The input variable are set in the same order as the callback Inputs 625 | def update_prediction(GRE, TOEFL, Rating,SOP,LOR, CGPA, Research): 626 | 627 | # We create a NumPy array in the form of the original features 628 | # ["GRE","TOEFL","Rating", "SOP","LOR", "CGPA","Research"] 629 | 630 | input_X = np.array([ 631 | GRE, 632 | TOEFL, 633 | Rating, 634 | SOP, 635 | LOR, 636 | CGPA, 637 | Research]).reshape(1,-1) 638 | 639 | 640 | # Prediction is calculated based on the input_X array 641 | prediction = round(model.predict(input_X)[0] * 100, 2) 642 | 643 | #prepare the prediction bar chart graph 644 | data = go.Bar(x =[0,1,2], y = [0,prediction,0]) 645 | 646 | layout = go.Layout( 647 | title = 'Admission Probability Graph', 648 | title_x=0.5, 649 | height = 500, 650 | width = 500, 651 | xaxis=dict( 652 | autorange=True, 653 | ticks='', 654 | showticklabels=False ), 655 | 656 | yaxis=dict( 657 | fixedrange=True, 658 | range = [ 0, 100 ], 659 | ticks='', 660 | showticklabels=True) 661 | ) 662 | figure = go.Figure(data=data, layout=layout) 663 | # Customize aspect 664 | figure.update_traces(marker_color='rgb(158,202,225)', 665 | marker_line_color='rgb(8,48,107)', 666 | marker_line_width=1.5, opacity=0.8) 667 | prediction = '{:.2f} %'.format(prediction) 668 | # And retuned to the Output of the callback function 669 | return prediction, figure 670 | 671 | if __name__ == '__main__': 672 | app.run_server(debug=True) -------------------------------------------------------------------------------- /Backend/Prediction.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Requirement already satisfied: xgboost in c:\\users\\lamees\\anaconda3\\lib\\site-packages (1.3.1)\n", 13 | "Requirement already satisfied: scipy in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from xgboost) (1.4.1)\n", 14 | "Requirement already satisfied: numpy in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from xgboost) (1.17.4)\n" 15 | ] 16 | }, 17 | { 18 | "name": "stderr", 19 | "output_type": "stream", 20 | "text": [ 21 | "WARNING: You are using pip version 20.3.3; however, version 21.0.1 is available.\n", 22 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 23 | ] 24 | } 25 | ], 26 | "source": [ 27 | "!pip install xgboost" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "name": "stdout", 37 | "output_type": "stream", 38 | "text": [ 39 | "Requirement already satisfied: scikit-learn in c:\\users\\lamees\\appdata\\roaming\\python\\python36\\site-packages (0.24.1)\n", 40 | "Requirement already satisfied: scipy>=0.19.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (1.4.1)\n", 41 | "Requirement already satisfied: numpy>=1.13.3 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (1.17.4)\n", 42 | "Requirement already satisfied: threadpoolctl>=2.0.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (2.1.0)\n", 43 | "Requirement already satisfied: joblib>=0.11 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (0.17.0)\n" 44 | ] 45 | }, 46 | { 47 | "name": "stderr", 48 | "output_type": "stream", 49 | "text": [ 50 | "WARNING: You are using pip version 20.3.3; however, version 21.0.1 is available.\n", 51 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 52 | ] 53 | } 54 | ], 55 | "source": [ 56 | "!pip install -U scikit-learn --user" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 3, 62 | "metadata": { 63 | "collapsed": true 64 | }, 65 | "outputs": [], 66 | "source": [ 67 | "import numpy as np\n", 68 | "import pandas as pd" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 4, 74 | "metadata": {}, 75 | "outputs": [ 76 | { 77 | "data": { 78 | "text/html": [ 79 | "
\n", 80 | "\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 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | "
Serial No.GRE ScoreTOEFL ScoreUniversity RatingSOPLORCGPAResearchChance of Admit
0133711844.54.59.6510.92
1232410744.04.58.8710.76
2331610433.03.58.0010.72
3432211033.52.58.6710.80
4531410322.03.08.2100.65
\n", 171 | "
" 172 | ], 173 | "text/plain": [ 174 | " Serial No. GRE Score TOEFL Score University Rating SOP LOR CGPA \\\n", 175 | "0 1 337 118 4 4.5 4.5 9.65 \n", 176 | "1 2 324 107 4 4.0 4.5 8.87 \n", 177 | "2 3 316 104 3 3.0 3.5 8.00 \n", 178 | "3 4 322 110 3 3.5 2.5 8.67 \n", 179 | "4 5 314 103 2 2.0 3.0 8.21 \n", 180 | "\n", 181 | " Research Chance of Admit \n", 182 | "0 1 0.92 \n", 183 | "1 1 0.76 \n", 184 | "2 1 0.72 \n", 185 | "3 1 0.80 \n", 186 | "4 0 0.65 " 187 | ] 188 | }, 189 | "execution_count": 4, 190 | "metadata": {}, 191 | "output_type": "execute_result" 192 | } 193 | ], 194 | "source": [ 195 | "import pandas as pd\n", 196 | "import warnings\n", 197 | "warnings.filterwarnings(\"ignore\")\n", 198 | "df = pd.read_csv('../Dataset/Admission_Predict_Ver1.1.csv')\n", 199 | "df.head()" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 5, 205 | "metadata": { 206 | "collapsed": true 207 | }, 208 | "outputs": [], 209 | "source": [ 210 | "# renaming data frame columns\n", 211 | "df.rename(columns={'LOR ': 'LOR', 'Chance of Admit ': 'Chance of Admit'}, inplace=True)" 212 | ] 213 | }, 214 | { 215 | "cell_type": "code", 216 | "execution_count": 6, 217 | "metadata": { 218 | "collapsed": true 219 | }, 220 | "outputs": [], 221 | "source": [ 222 | "#converting GRE score\n", 223 | "df['GRE Score'] = (130 + ((170 - 130) / (800 - 200)) * (df['GRE Score'].values - 200))\n", 224 | "df['GRE Score'] = df['GRE Score'].astype(int)" 225 | ] 226 | }, 227 | { 228 | "cell_type": "code", 229 | "execution_count": 7, 230 | "metadata": {}, 231 | "outputs": [ 232 | { 233 | "data": { 234 | "text/html": [ 235 | "
\n", 236 | "\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 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | "
Serial No.GRE ScoreTOEFL ScoreUniversity RatingSOPLORCGPAResearchChance of Admit
0113911844.54.59.6510.92
1213810744.04.58.8710.76
2313710433.03.58.0010.72
3413811033.52.58.6710.80
4513710322.03.08.2100.65
\n", 327 | "
" 328 | ], 329 | "text/plain": [ 330 | " Serial No. GRE Score TOEFL Score University Rating SOP LOR CGPA \\\n", 331 | "0 1 139 118 4 4.5 4.5 9.65 \n", 332 | "1 2 138 107 4 4.0 4.5 8.87 \n", 333 | "2 3 137 104 3 3.0 3.5 8.00 \n", 334 | "3 4 138 110 3 3.5 2.5 8.67 \n", 335 | "4 5 137 103 2 2.0 3.0 8.21 \n", 336 | "\n", 337 | " Research Chance of Admit \n", 338 | "0 1 0.92 \n", 339 | "1 1 0.76 \n", 340 | "2 1 0.72 \n", 341 | "3 1 0.80 \n", 342 | "4 0 0.65 " 343 | ] 344 | }, 345 | "execution_count": 7, 346 | "metadata": {}, 347 | "output_type": "execute_result" 348 | } 349 | ], 350 | "source": [ 351 | "df.head()" 352 | ] 353 | }, 354 | { 355 | "cell_type": "code", 356 | "execution_count": 8, 357 | "metadata": { 358 | "collapsed": true 359 | }, 360 | "outputs": [], 361 | "source": [ 362 | "df.to_csv('../Dataset/admission_predict_V1.2.csv', index = False)" 363 | ] 364 | }, 365 | { 366 | "cell_type": "code", 367 | "execution_count": 9, 368 | "metadata": {}, 369 | "outputs": [ 370 | { 371 | "data": { 372 | "text/plain": [ 373 | "GRE Score 0\n", 374 | "TOEFL Score 0\n", 375 | "University Rating 0\n", 376 | "SOP 0\n", 377 | "LOR 0\n", 378 | "CGPA 0\n", 379 | "Research 0\n", 380 | "Chance of Admit 0\n", 381 | "dtype: int64" 382 | ] 383 | }, 384 | "execution_count": 9, 385 | "metadata": {}, 386 | "output_type": "execute_result" 387 | } 388 | ], 389 | "source": [ 390 | "df = df.drop(['Serial No.'], axis=1)\n", 391 | "df.isnull().sum()" 392 | ] 393 | }, 394 | { 395 | "cell_type": "markdown", 396 | "metadata": {}, 397 | "source": [ 398 | "## Splitting the data into train and test" 399 | ] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "execution_count": 68, 404 | "metadata": { 405 | "collapsed": true 406 | }, 407 | "outputs": [], 408 | "source": [ 409 | "from sklearn.model_selection import train_test_split\n", 410 | "\n", 411 | "X = df.drop(['Chance of Admit'], axis=1)\n", 412 | "y = df['Chance of Admit']\n", 413 | "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.20, shuffle=True, random_state=42)" 414 | ] 415 | }, 416 | { 417 | "cell_type": "markdown", 418 | "metadata": {}, 419 | "source": [ 420 | "## Data Normalization" 421 | ] 422 | }, 423 | { 424 | "cell_type": "code", 425 | "execution_count": 11, 426 | "metadata": { 427 | "collapsed": true 428 | }, 429 | "outputs": [], 430 | "source": [ 431 | "# #Import Libraries\n", 432 | "# from sklearn.preprocessing import MinMaxScaler\n", 433 | "# #----------------------------------------------------\n", 434 | "\n", 435 | "# #MinMaxScaler for Data\n", 436 | "\n", 437 | "# scaler = MinMaxScaler(copy=True, feature_range=(0, 1))\n", 438 | "# X_train = scaler.fit_transform(X_train)\n", 439 | "# X_test = scaler.transform(X_test)" 440 | ] 441 | }, 442 | { 443 | "cell_type": "markdown", 444 | "metadata": {}, 445 | "source": [ 446 | "## Training the model " 447 | ] 448 | }, 449 | { 450 | "cell_type": "code", 451 | "execution_count": 69, 452 | "metadata": {}, 453 | "outputs": [ 454 | { 455 | "name": "stdout", 456 | "output_type": "stream", 457 | "text": [ 458 | "Results...\n", 459 | "DecisionTree : 0.7170997898455582\n", 460 | "Linear Regression : 0.862965908802418\n", 461 | "RandomForest : 0.8332126916722851\n", 462 | "KNeighbours : 0.6863824455983882\n", 463 | "SVM : 0.6850274634260758\n", 464 | "AdaBoostClassifier : 0.7920669978665666\n", 465 | "GradientBoostingClassifier: 0.8193803575547379\n", 466 | "Xgboost: 0.7968135240482461\n", 467 | "BayesianRidge: 0.8629802192535944\n", 468 | "ElasticNet: 0.2782990840945112\n", 469 | "HuberRegressor: 0.8489551501704565\n" 470 | ] 471 | } 472 | ], 473 | "source": [ 474 | "from sklearn.svm import SVR\n", 475 | "from sklearn.linear_model import LinearRegression\n", 476 | "from sklearn.ensemble import AdaBoostRegressor\n", 477 | "from sklearn.ensemble import RandomForestClassifier, VotingClassifier\n", 478 | "from sklearn.ensemble import GradientBoostingRegressor\n", 479 | "from xgboost import XGBRegressor\n", 480 | "from sklearn.linear_model import BayesianRidge,ElasticNet,HuberRegressor,LinearRegression,LogisticRegression,SGDRegressor\n", 481 | "from sklearn.tree import DecisionTreeRegressor\n", 482 | "from sklearn.ensemble import RandomForestRegressor\n", 483 | "from sklearn.neighbors import KNeighborsRegressor\n", 484 | "from sklearn.naive_bayes import GaussianNB\n", 485 | "from sklearn.metrics import mean_squared_error\n", 486 | "\n", 487 | "\n", 488 | "\n", 489 | "models = [['DecisionTree :',DecisionTreeRegressor()],\n", 490 | " ['Linear Regression :', LinearRegression()],\n", 491 | " ['RandomForest :',RandomForestRegressor()],\n", 492 | " ['KNeighbours :', KNeighborsRegressor(n_neighbors = 2)],\n", 493 | " ['SVM :', SVR()],\n", 494 | " ['AdaBoostClassifier :', AdaBoostRegressor()],\n", 495 | " ['GradientBoostingClassifier: ', GradientBoostingRegressor()],\n", 496 | " ['Xgboost: ', XGBRegressor()],\n", 497 | " ['BayesianRidge: ', BayesianRidge()],\n", 498 | " ['ElasticNet: ', ElasticNet()],\n", 499 | " ['HuberRegressor: ', HuberRegressor()]]\n", 500 | "\n", 501 | "print(\"Results...\")\n", 502 | "\n", 503 | "\n", 504 | "for name,model in models:\n", 505 | " model = model\n", 506 | " model.fit(X_train, y_train)\n", 507 | " predictions = model.predict(X_test)\n", 508 | " #print(name, (np.sqrt(mean_squared_error(y_test, predictions))))\n", 509 | " print(name, model.score(X_test, y_test))\n", 510 | " " 511 | ] 512 | }, 513 | { 514 | "cell_type": "markdown", 515 | "metadata": {}, 516 | "source": [ 517 | "### Using RandomForestRegressor" 518 | ] 519 | }, 520 | { 521 | "cell_type": "code", 522 | "execution_count": 70, 523 | "metadata": {}, 524 | "outputs": [ 525 | { 526 | "data": { 527 | "text/plain": [ 528 | "RandomForestRegressor()" 529 | ] 530 | }, 531 | "execution_count": 70, 532 | "metadata": {}, 533 | "output_type": "execute_result" 534 | } 535 | ], 536 | "source": [ 537 | "model_RandF = RandomForestRegressor()\n", 538 | "model_RandF.fit(X_train,y_train)" 539 | ] 540 | }, 541 | { 542 | "cell_type": "code", 543 | "execution_count": 71, 544 | "metadata": {}, 545 | "outputs": [], 546 | "source": [ 547 | "predicted=model_RandF.predict(X_test)" 548 | ] 549 | }, 550 | { 551 | "cell_type": "code", 552 | "execution_count": 72, 553 | "metadata": {}, 554 | "outputs": [ 555 | { 556 | "data": { 557 | "image/png": "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\n", 558 | "text/plain": [ 559 | "
" 560 | ] 561 | }, 562 | "metadata": {}, 563 | "output_type": "display_data" 564 | } 565 | ], 566 | "source": [ 567 | "import matplotlib.pyplot as plt\n", 568 | "fig, ax = plt.subplots()\n", 569 | "ax.scatter(y_test, predicted)\n", 570 | "ax.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)\n", 571 | "ax.set_xlabel('Actual')\n", 572 | "ax.set_ylabel('Predicted')\n", 573 | "plt.show()" 574 | ] 575 | }, 576 | { 577 | "cell_type": "markdown", 578 | "metadata": {}, 579 | "source": [ 580 | "## Save the model" 581 | ] 582 | }, 583 | { 584 | "cell_type": "code", 585 | "execution_count": 13, 586 | "metadata": { 587 | "collapsed": true 588 | }, 589 | "outputs": [], 590 | "source": [ 591 | "import joblib" 592 | ] 593 | }, 594 | { 595 | "cell_type": "code", 596 | "execution_count": 135, 597 | "metadata": {}, 598 | "outputs": [ 599 | { 600 | "data": { 601 | "text/plain": [ 602 | "['model_RandF.sav']" 603 | ] 604 | }, 605 | "execution_count": 135, 606 | "metadata": {}, 607 | "output_type": "execute_result" 608 | } 609 | ], 610 | "source": [ 611 | "# save the model to disk\n", 612 | "filename = 'model_RandF.sav'\n", 613 | "joblib.dump(model_RandF, filename)" 614 | ] 615 | }, 616 | { 617 | "cell_type": "code", 618 | "execution_count": 136, 619 | "metadata": {}, 620 | "outputs": [ 621 | { 622 | "name": "stdout", 623 | "output_type": "stream", 624 | "text": [ 625 | "0.8527799292901824\n" 626 | ] 627 | } 628 | ], 629 | "source": [ 630 | "# load the model from disk\n", 631 | "loaded_model = joblib.load(filename)\n", 632 | "result = loaded_model.score(X_test, y_test)\n", 633 | "\n", 634 | "print(result)" 635 | ] 636 | }, 637 | { 638 | "cell_type": "code", 639 | "execution_count": 137, 640 | "metadata": {}, 641 | "outputs": [ 642 | { 643 | "name": "stdout", 644 | "output_type": "stream", 645 | "text": [ 646 | "0.24.1\n" 647 | ] 648 | } 649 | ], 650 | "source": [ 651 | "import sklearn\n", 652 | "print(sklearn.__version__)" 653 | ] 654 | } 655 | ], 656 | "metadata": { 657 | "kernelspec": { 658 | "display_name": "Python 3", 659 | "language": "python", 660 | "name": "python3" 661 | }, 662 | "language_info": { 663 | "codemirror_mode": { 664 | "name": "ipython", 665 | "version": 3 666 | }, 667 | "file_extension": ".py", 668 | "mimetype": "text/x-python", 669 | "name": "python", 670 | "nbconvert_exporter": "python", 671 | "pygments_lexer": "ipython3", 672 | "version": "3.6.3" 673 | } 674 | }, 675 | "nbformat": 4, 676 | "nbformat_minor": 2 677 | } 678 | -------------------------------------------------------------------------------- /Backend/.ipynb_checkpoints/Prediction-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Requirement already satisfied: xgboost in c:\\users\\lamees\\anaconda3\\lib\\site-packages (1.3.1)\n", 13 | "Requirement already satisfied: scipy in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from xgboost) (1.4.1)\n", 14 | "Requirement already satisfied: numpy in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from xgboost) (1.17.4)\n" 15 | ] 16 | }, 17 | { 18 | "name": "stderr", 19 | "output_type": "stream", 20 | "text": [ 21 | "WARNING: You are using pip version 20.3.3; however, version 21.0.1 is available.\n", 22 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 23 | ] 24 | } 25 | ], 26 | "source": [ 27 | "!pip install xgboost" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 2, 33 | "metadata": {}, 34 | "outputs": [ 35 | { 36 | "name": "stdout", 37 | "output_type": "stream", 38 | "text": [ 39 | "Requirement already satisfied: scikit-learn in c:\\users\\lamees\\appdata\\roaming\\python\\python36\\site-packages (0.24.1)\n", 40 | "Requirement already satisfied: scipy>=0.19.1 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (1.4.1)\n", 41 | "Requirement already satisfied: numpy>=1.13.3 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (1.17.4)\n", 42 | "Requirement already satisfied: threadpoolctl>=2.0.0 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (2.1.0)\n", 43 | "Requirement already satisfied: joblib>=0.11 in c:\\users\\lamees\\anaconda3\\lib\\site-packages (from scikit-learn) (0.17.0)\n" 44 | ] 45 | }, 46 | { 47 | "name": "stderr", 48 | "output_type": "stream", 49 | "text": [ 50 | "WARNING: You are using pip version 20.3.3; however, version 21.0.1 is available.\n", 51 | "You should consider upgrading via the 'c:\\users\\lamees\\anaconda3\\python.exe -m pip install --upgrade pip' command.\n" 52 | ] 53 | } 54 | ], 55 | "source": [ 56 | "!pip install -U scikit-learn --user" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 3, 62 | "metadata": { 63 | "collapsed": true 64 | }, 65 | "outputs": [], 66 | "source": [ 67 | "import numpy as np\n", 68 | "import pandas as pd" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": 4, 74 | "metadata": {}, 75 | "outputs": [ 76 | { 77 | "data": { 78 | "text/html": [ 79 | "
\n", 80 | "\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 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | "
Serial No.GRE ScoreTOEFL ScoreUniversity RatingSOPLORCGPAResearchChance of Admit
0133711844.54.59.6510.92
1232410744.04.58.8710.76
2331610433.03.58.0010.72
3432211033.52.58.6710.80
4531410322.03.08.2100.65
\n", 171 | "
" 172 | ], 173 | "text/plain": [ 174 | " Serial No. GRE Score TOEFL Score University Rating SOP LOR CGPA \\\n", 175 | "0 1 337 118 4 4.5 4.5 9.65 \n", 176 | "1 2 324 107 4 4.0 4.5 8.87 \n", 177 | "2 3 316 104 3 3.0 3.5 8.00 \n", 178 | "3 4 322 110 3 3.5 2.5 8.67 \n", 179 | "4 5 314 103 2 2.0 3.0 8.21 \n", 180 | "\n", 181 | " Research Chance of Admit \n", 182 | "0 1 0.92 \n", 183 | "1 1 0.76 \n", 184 | "2 1 0.72 \n", 185 | "3 1 0.80 \n", 186 | "4 0 0.65 " 187 | ] 188 | }, 189 | "execution_count": 4, 190 | "metadata": {}, 191 | "output_type": "execute_result" 192 | } 193 | ], 194 | "source": [ 195 | "import pandas as pd\n", 196 | "import warnings\n", 197 | "warnings.filterwarnings(\"ignore\")\n", 198 | "df = pd.read_csv('../Dataset/Admission_Predict_Ver1.1.csv')\n", 199 | "df.head()" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 5, 205 | "metadata": { 206 | "collapsed": true 207 | }, 208 | "outputs": [], 209 | "source": [ 210 | "# renaming data frame columns\n", 211 | "df.rename(columns={'LOR ': 'LOR', 'Chance of Admit ': 'Chance of Admit'}, inplace=True)" 212 | ] 213 | }, 214 | { 215 | "cell_type": "code", 216 | "execution_count": 6, 217 | "metadata": { 218 | "collapsed": true 219 | }, 220 | "outputs": [], 221 | "source": [ 222 | "#converting GRE score\n", 223 | "df['GRE Score'] = (130 + ((170 - 130) / (800 - 200)) * (df['GRE Score'].values - 200))\n", 224 | "df['GRE Score'] = df['GRE Score'].astype(int)" 225 | ] 226 | }, 227 | { 228 | "cell_type": "code", 229 | "execution_count": 7, 230 | "metadata": {}, 231 | "outputs": [ 232 | { 233 | "data": { 234 | "text/html": [ 235 | "
\n", 236 | "\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 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | "
Serial No.GRE ScoreTOEFL ScoreUniversity RatingSOPLORCGPAResearchChance of Admit
0113911844.54.59.6510.92
1213810744.04.58.8710.76
2313710433.03.58.0010.72
3413811033.52.58.6710.80
4513710322.03.08.2100.65
\n", 327 | "
" 328 | ], 329 | "text/plain": [ 330 | " Serial No. GRE Score TOEFL Score University Rating SOP LOR CGPA \\\n", 331 | "0 1 139 118 4 4.5 4.5 9.65 \n", 332 | "1 2 138 107 4 4.0 4.5 8.87 \n", 333 | "2 3 137 104 3 3.0 3.5 8.00 \n", 334 | "3 4 138 110 3 3.5 2.5 8.67 \n", 335 | "4 5 137 103 2 2.0 3.0 8.21 \n", 336 | "\n", 337 | " Research Chance of Admit \n", 338 | "0 1 0.92 \n", 339 | "1 1 0.76 \n", 340 | "2 1 0.72 \n", 341 | "3 1 0.80 \n", 342 | "4 0 0.65 " 343 | ] 344 | }, 345 | "execution_count": 7, 346 | "metadata": {}, 347 | "output_type": "execute_result" 348 | } 349 | ], 350 | "source": [ 351 | "df.head()" 352 | ] 353 | }, 354 | { 355 | "cell_type": "code", 356 | "execution_count": 8, 357 | "metadata": { 358 | "collapsed": true 359 | }, 360 | "outputs": [], 361 | "source": [ 362 | "df.to_csv('../Dataset/admission_predict_V1.2.csv', index = False)" 363 | ] 364 | }, 365 | { 366 | "cell_type": "code", 367 | "execution_count": 9, 368 | "metadata": {}, 369 | "outputs": [ 370 | { 371 | "data": { 372 | "text/plain": [ 373 | "GRE Score 0\n", 374 | "TOEFL Score 0\n", 375 | "University Rating 0\n", 376 | "SOP 0\n", 377 | "LOR 0\n", 378 | "CGPA 0\n", 379 | "Research 0\n", 380 | "Chance of Admit 0\n", 381 | "dtype: int64" 382 | ] 383 | }, 384 | "execution_count": 9, 385 | "metadata": {}, 386 | "output_type": "execute_result" 387 | } 388 | ], 389 | "source": [ 390 | "df = df.drop(['Serial No.'], axis=1)\n", 391 | "df.isnull().sum()" 392 | ] 393 | }, 394 | { 395 | "cell_type": "markdown", 396 | "metadata": {}, 397 | "source": [ 398 | "## Splitting the data into train and test" 399 | ] 400 | }, 401 | { 402 | "cell_type": "code", 403 | "execution_count": 68, 404 | "metadata": { 405 | "collapsed": true 406 | }, 407 | "outputs": [], 408 | "source": [ 409 | "from sklearn.model_selection import train_test_split\n", 410 | "\n", 411 | "X = df.drop(['Chance of Admit'], axis=1)\n", 412 | "y = df['Chance of Admit']\n", 413 | "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.20, shuffle=True, random_state=42)" 414 | ] 415 | }, 416 | { 417 | "cell_type": "markdown", 418 | "metadata": {}, 419 | "source": [ 420 | "## Data Normalization" 421 | ] 422 | }, 423 | { 424 | "cell_type": "code", 425 | "execution_count": 11, 426 | "metadata": { 427 | "collapsed": true 428 | }, 429 | "outputs": [], 430 | "source": [ 431 | "# #Import Libraries\n", 432 | "# from sklearn.preprocessing import MinMaxScaler\n", 433 | "# #----------------------------------------------------\n", 434 | "\n", 435 | "# #MinMaxScaler for Data\n", 436 | "\n", 437 | "# scaler = MinMaxScaler(copy=True, feature_range=(0, 1))\n", 438 | "# X_train = scaler.fit_transform(X_train)\n", 439 | "# X_test = scaler.transform(X_test)" 440 | ] 441 | }, 442 | { 443 | "cell_type": "markdown", 444 | "metadata": {}, 445 | "source": [ 446 | "## Training the model " 447 | ] 448 | }, 449 | { 450 | "cell_type": "code", 451 | "execution_count": 69, 452 | "metadata": {}, 453 | "outputs": [ 454 | { 455 | "name": "stdout", 456 | "output_type": "stream", 457 | "text": [ 458 | "Results...\n", 459 | "DecisionTree : 0.7170997898455582\n", 460 | "Linear Regression : 0.862965908802418\n", 461 | "RandomForest : 0.8332126916722851\n", 462 | "KNeighbours : 0.6863824455983882\n", 463 | "SVM : 0.6850274634260758\n", 464 | "AdaBoostClassifier : 0.7920669978665666\n", 465 | "GradientBoostingClassifier: 0.8193803575547379\n", 466 | "Xgboost: 0.7968135240482461\n", 467 | "BayesianRidge: 0.8629802192535944\n", 468 | "ElasticNet: 0.2782990840945112\n", 469 | "HuberRegressor: 0.8489551501704565\n" 470 | ] 471 | } 472 | ], 473 | "source": [ 474 | "from sklearn.svm import SVR\n", 475 | "from sklearn.linear_model import LinearRegression\n", 476 | "from sklearn.ensemble import AdaBoostRegressor\n", 477 | "from sklearn.ensemble import RandomForestClassifier, VotingClassifier\n", 478 | "from sklearn.ensemble import GradientBoostingRegressor\n", 479 | "from xgboost import XGBRegressor\n", 480 | "from sklearn.linear_model import BayesianRidge,ElasticNet,HuberRegressor,LinearRegression,LogisticRegression,SGDRegressor\n", 481 | "from sklearn.tree import DecisionTreeRegressor\n", 482 | "from sklearn.ensemble import RandomForestRegressor\n", 483 | "from sklearn.neighbors import KNeighborsRegressor\n", 484 | "from sklearn.naive_bayes import GaussianNB\n", 485 | "from sklearn.metrics import mean_squared_error\n", 486 | "\n", 487 | "\n", 488 | "\n", 489 | "models = [['DecisionTree :',DecisionTreeRegressor()],\n", 490 | " ['Linear Regression :', LinearRegression()],\n", 491 | " ['RandomForest :',RandomForestRegressor()],\n", 492 | " ['KNeighbours :', KNeighborsRegressor(n_neighbors = 2)],\n", 493 | " ['SVM :', SVR()],\n", 494 | " ['AdaBoostClassifier :', AdaBoostRegressor()],\n", 495 | " ['GradientBoostingClassifier: ', GradientBoostingRegressor()],\n", 496 | " ['Xgboost: ', XGBRegressor()],\n", 497 | " ['BayesianRidge: ', BayesianRidge()],\n", 498 | " ['ElasticNet: ', ElasticNet()],\n", 499 | " ['HuberRegressor: ', HuberRegressor()]]\n", 500 | "\n", 501 | "print(\"Results...\")\n", 502 | "\n", 503 | "\n", 504 | "for name,model in models:\n", 505 | " model = model\n", 506 | " model.fit(X_train, y_train)\n", 507 | " predictions = model.predict(X_test)\n", 508 | " #print(name, (np.sqrt(mean_squared_error(y_test, predictions))))\n", 509 | " print(name, model.score(X_test, y_test))\n", 510 | " " 511 | ] 512 | }, 513 | { 514 | "cell_type": "markdown", 515 | "metadata": {}, 516 | "source": [ 517 | "### Using RandomForestRegressor" 518 | ] 519 | }, 520 | { 521 | "cell_type": "code", 522 | "execution_count": 70, 523 | "metadata": {}, 524 | "outputs": [ 525 | { 526 | "data": { 527 | "text/plain": [ 528 | "RandomForestRegressor()" 529 | ] 530 | }, 531 | "execution_count": 70, 532 | "metadata": {}, 533 | "output_type": "execute_result" 534 | } 535 | ], 536 | "source": [ 537 | "model_RandF = RandomForestRegressor()\n", 538 | "model_RandF.fit(X_train,y_train)" 539 | ] 540 | }, 541 | { 542 | "cell_type": "code", 543 | "execution_count": 71, 544 | "metadata": {}, 545 | "outputs": [], 546 | "source": [ 547 | "predicted=model_RandF.predict(X_test)" 548 | ] 549 | }, 550 | { 551 | "cell_type": "code", 552 | "execution_count": 72, 553 | "metadata": {}, 554 | "outputs": [ 555 | { 556 | "data": { 557 | "image/png": "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\n", 558 | "text/plain": [ 559 | "
" 560 | ] 561 | }, 562 | "metadata": {}, 563 | "output_type": "display_data" 564 | } 565 | ], 566 | "source": [ 567 | "import matplotlib.pyplot as plt\n", 568 | "fig, ax = plt.subplots()\n", 569 | "ax.scatter(y_test, predicted)\n", 570 | "ax.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)\n", 571 | "ax.set_xlabel('Actual')\n", 572 | "ax.set_ylabel('Predicted')\n", 573 | "plt.show()" 574 | ] 575 | }, 576 | { 577 | "cell_type": "markdown", 578 | "metadata": {}, 579 | "source": [ 580 | "## Save the model" 581 | ] 582 | }, 583 | { 584 | "cell_type": "code", 585 | "execution_count": 13, 586 | "metadata": { 587 | "collapsed": true 588 | }, 589 | "outputs": [], 590 | "source": [ 591 | "import joblib" 592 | ] 593 | }, 594 | { 595 | "cell_type": "code", 596 | "execution_count": 135, 597 | "metadata": {}, 598 | "outputs": [ 599 | { 600 | "data": { 601 | "text/plain": [ 602 | "['model_RandF.sav']" 603 | ] 604 | }, 605 | "execution_count": 135, 606 | "metadata": {}, 607 | "output_type": "execute_result" 608 | } 609 | ], 610 | "source": [ 611 | "# save the model to disk\n", 612 | "filename = 'model_RandF.sav'\n", 613 | "joblib.dump(model_RandF, filename)" 614 | ] 615 | }, 616 | { 617 | "cell_type": "code", 618 | "execution_count": 136, 619 | "metadata": {}, 620 | "outputs": [ 621 | { 622 | "name": "stdout", 623 | "output_type": "stream", 624 | "text": [ 625 | "0.8527799292901824\n" 626 | ] 627 | } 628 | ], 629 | "source": [ 630 | "# load the model from disk\n", 631 | "loaded_model = joblib.load(filename)\n", 632 | "result = loaded_model.score(X_test, y_test)\n", 633 | "\n", 634 | "print(result)" 635 | ] 636 | }, 637 | { 638 | "cell_type": "code", 639 | "execution_count": 137, 640 | "metadata": {}, 641 | "outputs": [ 642 | { 643 | "name": "stdout", 644 | "output_type": "stream", 645 | "text": [ 646 | "0.24.1\n" 647 | ] 648 | } 649 | ], 650 | "source": [ 651 | "import sklearn\n", 652 | "print(sklearn.__version__)" 653 | ] 654 | } 655 | ], 656 | "metadata": { 657 | "kernelspec": { 658 | "display_name": "Python 3", 659 | "language": "python", 660 | "name": "python3" 661 | }, 662 | "language_info": { 663 | "codemirror_mode": { 664 | "name": "ipython", 665 | "version": 3 666 | }, 667 | "file_extension": ".py", 668 | "mimetype": "text/x-python", 669 | "name": "python", 670 | "nbconvert_exporter": "python", 671 | "pygments_lexer": "ipython3", 672 | "version": "3.6.3" 673 | } 674 | }, 675 | "nbformat": 4, 676 | "nbformat_minor": 2 677 | } 678 | --------------------------------------------------------------------------------