├── 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 | 
60 | ----------------------------------------------
61 | ### Dataset
62 | 
63 | ----------------------------------------------
64 | ### Dashboard
65 | 
66 | ----------------------------------------------
67 | ### Machine Learning
68 | 
69 | ----------------------------------------------
70 | ### Prediction
71 | 
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": "iVBORw0KGgoAAAANSUhEUgAAAesAAAHWCAYAAABXF6HSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAEedJREFUeJzt3V+I5fdZx/HP08RYrLUVs4JkExNx\na12CkDrEiqCVVklysbmpJYFSK6ELaipoKUSUKvHKighCtK5YqoKN0QtdypYINaWlNCVbqqFJCaxp\nbZYUkv4xN6FNo48XM9XpdHbnt5szu8/ueb1g4PzO+c6Zh+8O887vzJlfqrsDAMz1sos9AABwdmIN\nAMOJNQAMJ9YAMJxYA8BwYg0Aw+0Z66p6f1U9U1WfPcPjVVV/WlWnqurRqnrd6scEgPW15Mz6A0lu\nOcvjtyY5tPVxNMmfv/SxAIBv2TPW3f2xJF89y5Lbk/xNb3o4yaur6odWNSAArLtV/M76miRPbTs+\nvXUfALACV67gOWqX+3a9hmlVHc3mS+V5xSte8ZOvfe1rV/DlAWC+T3/601/u7gPn87mriPXpJNdu\nOz6Y5OndFnb3sSTHkmRjY6NPnjy5gi8PAPNV1X+e7+eu4mXw40netvWu8Ncnea67v7SC5wUAsuDM\nuqo+mOQNSa6uqtNJfi/JdyVJd78vyYkktyU5leT5JL+yX8MCwDraM9bdfecej3eSX1/ZRADAt3EF\nMwAYTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwB\nYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDh\nxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNr\nABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFg\nOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHE\nGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFguEWxrqpbquqJqjpV\nVffs8vh1VfVQVX2mqh6tqttWPyoArKc9Y11VVyS5L8mtSQ4nubOqDu9Y9rtJHujum5LckeTPVj0o\nAKyrJWfWNyc51d1PdvcLSe5PcvuONZ3k+7ZuvyrJ06sbEQDW25UL1lyT5Kltx6eT/NSONb+f5F+q\n6p1JXpHkTSuZDgBYdGZdu9zXO47vTPKB7j6Y5LYkf1tV3/HcVXW0qk5W1clnn3323KcFgDW0JNan\nk1y77fhgvvNl7ruSPJAk3f3JJC9PcvXOJ+ruY9290d0bBw4cOL+JAWDNLIn1I0kOVdUNVXVVNt9A\ndnzHmi8meWOSVNWPZzPWTp0BYAX2jHV3v5jk7iQPJvlcNt/1/VhV3VtVR7aWvSvJO6rq35N8MMnb\nu3vnS+UAwHlY8gazdPeJJCd23PeebbcfT/Izqx0NAEhcwQwAxhNrABhOrAFgOLEGgOHEGgCGE2sA\nGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4\nsQaA4cQaAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQa\nAIYTawAYTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAY\nTqwBYDixBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDix\nBoDhxBoAhhNrABhOrAFgOLEGgOHEGgCGE2sAGE6sAWA4sQaA4cQaAIYTawAYTqwBYDixBoDhxBoA\nhhNrABhOrAFgOLEGgOHEGgCGE2sAGG5RrKvqlqp6oqpOVdU9Z1jzlqp6vKoeq6q/W+2YALC+rtxr\nQVVdkeS+JL+Q5HSSR6rqeHc/vm3NoSS/neRnuvtrVfWD+zUwAKybJWfWNyc51d1PdvcLSe5PcvuO\nNe9Icl93fy1JuvuZ1Y4JAOtrSayvSfLUtuPTW/dt95okr6mqT1TVw1V1y6oGBIB1t+fL4Elql/t6\nl+c5lOQNSQ4m+XhV3djd//VtT1R1NMnRJLnuuuvOeVgAWEdLzqxPJ7l22/HBJE/vsuafu/ub3f35\nJE9kM97fpruPdfdGd28cOHDgfGcGgLWyJNaPJDlUVTdU1VVJ7khyfMeaf0ry80lSVVdn82XxJ1c5\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 | " Serial No. | \n",
98 | " GRE Score | \n",
99 | " TOEFL Score | \n",
100 | " University Rating | \n",
101 | " SOP | \n",
102 | " LOR | \n",
103 | " CGPA | \n",
104 | " Research | \n",
105 | " Chance of Admit | \n",
106 | "
\n",
107 | " \n",
108 | " \n",
109 | " \n",
110 | " | 0 | \n",
111 | " 1 | \n",
112 | " 337 | \n",
113 | " 118 | \n",
114 | " 4 | \n",
115 | " 4.5 | \n",
116 | " 4.5 | \n",
117 | " 9.65 | \n",
118 | " 1 | \n",
119 | " 0.92 | \n",
120 | "
\n",
121 | " \n",
122 | " | 1 | \n",
123 | " 2 | \n",
124 | " 324 | \n",
125 | " 107 | \n",
126 | " 4 | \n",
127 | " 4.0 | \n",
128 | " 4.5 | \n",
129 | " 8.87 | \n",
130 | " 1 | \n",
131 | " 0.76 | \n",
132 | "
\n",
133 | " \n",
134 | " | 2 | \n",
135 | " 3 | \n",
136 | " 316 | \n",
137 | " 104 | \n",
138 | " 3 | \n",
139 | " 3.0 | \n",
140 | " 3.5 | \n",
141 | " 8.00 | \n",
142 | " 1 | \n",
143 | " 0.72 | \n",
144 | "
\n",
145 | " \n",
146 | " | 3 | \n",
147 | " 4 | \n",
148 | " 322 | \n",
149 | " 110 | \n",
150 | " 3 | \n",
151 | " 3.5 | \n",
152 | " 2.5 | \n",
153 | " 8.67 | \n",
154 | " 1 | \n",
155 | " 0.80 | \n",
156 | "
\n",
157 | " \n",
158 | " | 4 | \n",
159 | " 5 | \n",
160 | " 314 | \n",
161 | " 103 | \n",
162 | " 2 | \n",
163 | " 2.0 | \n",
164 | " 3.0 | \n",
165 | " 8.21 | \n",
166 | " 0 | \n",
167 | " 0.65 | \n",
168 | "
\n",
169 | " \n",
170 | "
\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 | " Serial No. | \n",
254 | " GRE Score | \n",
255 | " TOEFL Score | \n",
256 | " University Rating | \n",
257 | " SOP | \n",
258 | " LOR | \n",
259 | " CGPA | \n",
260 | " Research | \n",
261 | " Chance of Admit | \n",
262 | "
\n",
263 | " \n",
264 | " \n",
265 | " \n",
266 | " | 0 | \n",
267 | " 1 | \n",
268 | " 139 | \n",
269 | " 118 | \n",
270 | " 4 | \n",
271 | " 4.5 | \n",
272 | " 4.5 | \n",
273 | " 9.65 | \n",
274 | " 1 | \n",
275 | " 0.92 | \n",
276 | "
\n",
277 | " \n",
278 | " | 1 | \n",
279 | " 2 | \n",
280 | " 138 | \n",
281 | " 107 | \n",
282 | " 4 | \n",
283 | " 4.0 | \n",
284 | " 4.5 | \n",
285 | " 8.87 | \n",
286 | " 1 | \n",
287 | " 0.76 | \n",
288 | "
\n",
289 | " \n",
290 | " | 2 | \n",
291 | " 3 | \n",
292 | " 137 | \n",
293 | " 104 | \n",
294 | " 3 | \n",
295 | " 3.0 | \n",
296 | " 3.5 | \n",
297 | " 8.00 | \n",
298 | " 1 | \n",
299 | " 0.72 | \n",
300 | "
\n",
301 | " \n",
302 | " | 3 | \n",
303 | " 4 | \n",
304 | " 138 | \n",
305 | " 110 | \n",
306 | " 3 | \n",
307 | " 3.5 | \n",
308 | " 2.5 | \n",
309 | " 8.67 | \n",
310 | " 1 | \n",
311 | " 0.80 | \n",
312 | "
\n",
313 | " \n",
314 | " | 4 | \n",
315 | " 5 | \n",
316 | " 137 | \n",
317 | " 103 | \n",
318 | " 2 | \n",
319 | " 2.0 | \n",
320 | " 3.0 | \n",
321 | " 8.21 | \n",
322 | " 0 | \n",
323 | " 0.65 | \n",
324 | "
\n",
325 | " \n",
326 | "
\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 | " Serial No. | \n",
98 | " GRE Score | \n",
99 | " TOEFL Score | \n",
100 | " University Rating | \n",
101 | " SOP | \n",
102 | " LOR | \n",
103 | " CGPA | \n",
104 | " Research | \n",
105 | " Chance of Admit | \n",
106 | "
\n",
107 | " \n",
108 | " \n",
109 | " \n",
110 | " | 0 | \n",
111 | " 1 | \n",
112 | " 337 | \n",
113 | " 118 | \n",
114 | " 4 | \n",
115 | " 4.5 | \n",
116 | " 4.5 | \n",
117 | " 9.65 | \n",
118 | " 1 | \n",
119 | " 0.92 | \n",
120 | "
\n",
121 | " \n",
122 | " | 1 | \n",
123 | " 2 | \n",
124 | " 324 | \n",
125 | " 107 | \n",
126 | " 4 | \n",
127 | " 4.0 | \n",
128 | " 4.5 | \n",
129 | " 8.87 | \n",
130 | " 1 | \n",
131 | " 0.76 | \n",
132 | "
\n",
133 | " \n",
134 | " | 2 | \n",
135 | " 3 | \n",
136 | " 316 | \n",
137 | " 104 | \n",
138 | " 3 | \n",
139 | " 3.0 | \n",
140 | " 3.5 | \n",
141 | " 8.00 | \n",
142 | " 1 | \n",
143 | " 0.72 | \n",
144 | "
\n",
145 | " \n",
146 | " | 3 | \n",
147 | " 4 | \n",
148 | " 322 | \n",
149 | " 110 | \n",
150 | " 3 | \n",
151 | " 3.5 | \n",
152 | " 2.5 | \n",
153 | " 8.67 | \n",
154 | " 1 | \n",
155 | " 0.80 | \n",
156 | "
\n",
157 | " \n",
158 | " | 4 | \n",
159 | " 5 | \n",
160 | " 314 | \n",
161 | " 103 | \n",
162 | " 2 | \n",
163 | " 2.0 | \n",
164 | " 3.0 | \n",
165 | " 8.21 | \n",
166 | " 0 | \n",
167 | " 0.65 | \n",
168 | "
\n",
169 | " \n",
170 | "
\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 | " Serial No. | \n",
254 | " GRE Score | \n",
255 | " TOEFL Score | \n",
256 | " University Rating | \n",
257 | " SOP | \n",
258 | " LOR | \n",
259 | " CGPA | \n",
260 | " Research | \n",
261 | " Chance of Admit | \n",
262 | "
\n",
263 | " \n",
264 | " \n",
265 | " \n",
266 | " | 0 | \n",
267 | " 1 | \n",
268 | " 139 | \n",
269 | " 118 | \n",
270 | " 4 | \n",
271 | " 4.5 | \n",
272 | " 4.5 | \n",
273 | " 9.65 | \n",
274 | " 1 | \n",
275 | " 0.92 | \n",
276 | "
\n",
277 | " \n",
278 | " | 1 | \n",
279 | " 2 | \n",
280 | " 138 | \n",
281 | " 107 | \n",
282 | " 4 | \n",
283 | " 4.0 | \n",
284 | " 4.5 | \n",
285 | " 8.87 | \n",
286 | " 1 | \n",
287 | " 0.76 | \n",
288 | "
\n",
289 | " \n",
290 | " | 2 | \n",
291 | " 3 | \n",
292 | " 137 | \n",
293 | " 104 | \n",
294 | " 3 | \n",
295 | " 3.0 | \n",
296 | " 3.5 | \n",
297 | " 8.00 | \n",
298 | " 1 | \n",
299 | " 0.72 | \n",
300 | "
\n",
301 | " \n",
302 | " | 3 | \n",
303 | " 4 | \n",
304 | " 138 | \n",
305 | " 110 | \n",
306 | " 3 | \n",
307 | " 3.5 | \n",
308 | " 2.5 | \n",
309 | " 8.67 | \n",
310 | " 1 | \n",
311 | " 0.80 | \n",
312 | "
\n",
313 | " \n",
314 | " | 4 | \n",
315 | " 5 | \n",
316 | " 137 | \n",
317 | " 103 | \n",
318 | " 2 | \n",
319 | " 2.0 | \n",
320 | " 3.0 | \n",
321 | " 8.21 | \n",
322 | " 0 | \n",
323 | " 0.65 | \n",
324 | "
\n",
325 | " \n",
326 | "
\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 |
--------------------------------------------------------------------------------