A local school district has a goal to reach a 95% graduation rate by the end of the decade by identifying students who need intervention before they drop out of school. As a software engineer contacted by the school district, your task is to model the factors that predict how likely a student is to pass their high school final exam, by constructing an intervention system that leverages supervised learning techniques. The board of supervisors has asked that you find the most effective model that uses the least amount of computation costs to save on the budget. You will need to analyze the dataset on students' performance and develop a model that will predict the likelihood that a given student will pass, quantifying whether an intervention is necessary.
This project requires Python 2.7 and the following Python libraries installed:
You will also need to have software installed to run and execute an iPython Notebook
Udacity recommends our students install Anaconda, a pre-packaged Python distribution that contains all of the necessary libraries and software for this project.
Template code is provided in the notebook student_intervention.ipynb
notebook file. While some code has already been implemented to get you started, you will need to implement additional functionality when requested to successfully complete the project.
In a terminal or command window, navigate to the top-level project directory student_intervention/
(that contains this README) and run one of the following commands:
ipython notebook student_intervention.ipynb
jupyter notebook student_intervention.ipynb
This will open the iPython Notebook software and project file in your browser.
The dataset used in this project is included as student-data.csv
. This dataset has the following attributes:
school
: student's school (binary: "GP" or "MS")sex
: student's sex (binary: "F" - female or "M" - male)age
: student's age (numeric: from 15 to 22)address
: student's home address type (binary: "U" - urban or "R" - rural)famsize
: family size (binary: "LE3" - less or equal to 3 or "GT3" - greater than 3)Pstatus
: parent's cohabitation status (binary: "T" - living together or "A" - apart)Medu
: mother's education (numeric: 0 - none, 1 - primary education (4th grade), 2 - 5th to 9th grade, 3 - secondary education or 4 - higher education)Fedu
: father's education (numeric: 0 - none, 1 - primary education (4th grade), 2 - 5th to 9th grade, 3 - secondary education or 4 - higher education)Mjob
: mother's job (nominal: "teacher", "health" care related, civil "services" (e.g. administrative or police), "at_home" or "other")Fjob
: father's job (nominal: "teacher", "health" care related, civil "services" (e.g. administrative or police), "at_home" or "other")reason
: reason to choose this school (nominal: close to "home", school "reputation", "course" preference or "other")guardian
: student's guardian (nominal: "mother", "father" or "other")traveltime
: home to school travel time (numeric: 1 - <15 min., 2 - 15 to 30 min., 3 - 30 min. to 1 hour, or 4 - >1 hour)studytime
: weekly study time (numeric: 1 - <2 hours, 2 - 2 to 5 hours, 3 - 5 to 10 hours, or 4 - >10 hours)failures
: number of past class failures (numeric: n if 1<=n<3, else 4)schoolsup
: extra educational support (binary: yes or no)famsup
: family educational support (binary: yes or no)paid
: extra paid classes within the course subject (Math or Portuguese) (binary: yes or no)activities
: extra-curricular activities (binary: yes or no)nursery
: attended nursery school (binary: yes or no)higher
: wants to take higher education (binary: yes or no)internet
: Internet access at home (binary: yes or no)romantic
: with a romantic relationship (binary: yes or no)famrel
: quality of family relationships (numeric: from 1 - very bad to 5 - excellent)freetime
: free time after school (numeric: from 1 - very low to 5 - very high)goout
: going out with friends (numeric: from 1 - very low to 5 - very high)Dalc
: workday alcohol consumption (numeric: from 1 - very low to 5 - very high)Walc
: weekend alcohol consumption (numeric: from 1 - very low to 5 - very high)health
: current health status (numeric: from 1 - very bad to 5 - very good)absences
: number of school absences (numeric: from 0 to 93)passed
: did the student pass the final exam (binary: yes or no)