{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "# from pylab import *\n", "\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import numpy as np\n", "\n", "from sklearn.naive_bayes import MultinomialNB" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "data = pd.read_csv('Chicago_Public_Schools_-_Elementary_School_Progress_Report__2013-2014_.csv',index_col='School ID')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "# import progress report data, titles are included in the file\n", "#data = pd.read_csv('Chicago_Public_Schools_-_Elementary_School_Progress_Report__2013-2014_.csv').dropna()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "data.head(5) # print the first 5 rows\n" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Name of SchoolStreet AddressCityStateZIP CodePhone NumberWebsiteBlue Ribbon AwardCPS Performance Policy LevelCPS Performance Policy StatusProbation LengthMy Voice, My School Overall RatingStudent Response RateTeacher Response RateInvolved FamilySupportive EnvironmentAmbitious InstructionEffective LeadersCollaborative TeachersSafe
School ID
400009 Academy for Global Citizenship Elementary School 4647 W 47th St Chicago IL 60632 (773) 582-1100 http://www.agcchicago.org/NaN LEVEL 1 NOT APPLICABLENaN NOT ENOUGH DATA 0% 47.6% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400011 Alain Locke Charter Elementary Academy 3141 W Jackson Blvd Chicago IL 60612 (773) 265-7232 http://www.alainlocke.orgNaN LEVEL 1 NOT APPLICABLENaN NOT ENOUGH DATA 0.9% 0% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400017 ASPIRA Charter - Haugan Campus 3729 W Leland Ave Chicago IL 60625 (773) 252-0970 http://www.aspirail.orgNaN LEVEL 2 NOT APPLICABLENaN ORGANIZED 93.2% 86.8% NEUTRAL STRONG STRONG NEUTRAL NEUTRAL NEUTRAL...
400019 Bronzeville Lighthouse Charter Elementary School 8 W Root St Chicago IL 60609 (773) 535-1460 http://www.lighthouse-academies.org/BZLCS.htmNaN LEVEL 3 NOT APPLICABLENaN NOT ENOUGH DATA 2.4% 0% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400020 Catalyst Charter ES - Howland 1616 S Spaulding Ave Chicago IL 60623 (773) 527-7330 http://www.catalystschools.orgNaN LEVEL 3 NOT APPLICABLENaN PARTIALLY ORGANIZED 65.2% 84% VERY WEAK STRONG NEUTRAL VERY WEAK VERY WEAK NEUTRAL...
\n", "

5 rows \u00d7 73 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ " Name of School \\\n", "School ID \n", "400009 Academy for Global Citizenship Elementary School \n", "400011 Alain Locke Charter Elementary Academy \n", "400017 ASPIRA Charter - Haugan Campus \n", "400019 Bronzeville Lighthouse Charter Elementary School \n", "400020 Catalyst Charter ES - Howland \n", "\n", " Street Address City State ZIP Code Phone Number \\\n", "School ID \n", "400009 4647 W 47th St Chicago IL 60632 (773) 582-1100 \n", "400011 3141 W Jackson Blvd Chicago IL 60612 (773) 265-7232 \n", "400017 3729 W Leland Ave Chicago IL 60625 (773) 252-0970 \n", "400019 8 W Root St Chicago IL 60609 (773) 535-1460 \n", "400020 1616 S Spaulding Ave Chicago IL 60623 (773) 527-7330 \n", "\n", " Website Blue Ribbon Award \\\n", "School ID \n", "400009 http://www.agcchicago.org/ NaN \n", "400011 http://www.alainlocke.org NaN \n", "400017 http://www.aspirail.org NaN \n", "400019 http://www.lighthouse-academies.org/BZLCS.htm NaN \n", "400020 http://www.catalystschools.org NaN \n", "\n", " CPS Performance Policy Level CPS Performance Policy Status \\\n", "School ID \n", "400009 LEVEL 1 NOT APPLICABLE \n", "400011 LEVEL 1 NOT APPLICABLE \n", "400017 LEVEL 2 NOT APPLICABLE \n", "400019 LEVEL 3 NOT APPLICABLE \n", "400020 LEVEL 3 NOT APPLICABLE \n", "\n", " Probation Length My Voice, My School Overall Rating \\\n", "School ID \n", "400009 NaN NOT ENOUGH DATA \n", "400011 NaN NOT ENOUGH DATA \n", "400017 NaN ORGANIZED \n", "400019 NaN NOT ENOUGH DATA \n", "400020 NaN PARTIALLY ORGANIZED \n", "\n", " Student Response Rate Teacher Response Rate Involved Family \\\n", "School ID \n", "400009 0% 47.6% NOT ENOUGH DATA \n", "400011 0.9% 0% NOT ENOUGH DATA \n", "400017 93.2% 86.8% NEUTRAL \n", "400019 2.4% 0% NOT ENOUGH DATA \n", "400020 65.2% 84% VERY WEAK \n", "\n", " Supportive Environment Ambitious Instruction Effective Leaders \\\n", "School ID \n", "400009 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400011 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400017 STRONG STRONG NEUTRAL \n", "400019 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400020 STRONG NEUTRAL VERY WEAK \n", "\n", " Collaborative Teachers Safe \n", "School ID \n", "400009 NOT ENOUGH DATA NOT ENOUGH DATA ... \n", "400011 NOT ENOUGH DATA NOT ENOUGH DATA ... \n", "400017 NEUTRAL NEUTRAL ... \n", "400019 NOT ENOUGH DATA NOT ENOUGH DATA ... \n", "400020 VERY WEAK NEUTRAL ... \n", "\n", "[5 rows x 73 columns]" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "print data.describe()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " school_zip Blue Ribbon Award prob_length rea_grw_perc_all \\\n", "count 483.000000 3.000000 158.000000 442.000000 \n", "mean 60630.784679 2012.333333 5.303797 60.237557 \n", "std 23.354458 1.154701 3.347608 36.393480 \n", "min 60605.000000 2011.000000 1.000000 0.000000 \n", "25% 60618.000000 2012.000000 2.000000 24.000000 \n", "50% 60628.000000 2013.000000 6.000000 72.500000 \n", "75% 60640.500000 2013.000000 7.000000 95.000000 \n", "max 60827.000000 2013.000000 18.000000 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 3 \\\n", "count 425.000000 \n", "mean 53.555294 \n", "std 32.516213 \n", "min 0.000000 \n", "25% 24.000000 \n", "50% 55.000000 \n", "75% 84.000000 \n", "max 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 4 \\\n", "count 420.000000 \n", "mean 55.657143 \n", "std 33.530331 \n", "min 0.000000 \n", "25% 27.000000 \n", "50% 57.000000 \n", "75% 89.250000 \n", "max 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 5 \\\n", "count 420.000000 \n", "mean 59.576190 \n", "std 32.180449 \n", "min 0.000000 \n", "25% 33.000000 \n", "50% 63.500000 \n", "75% 90.000000 \n", "max 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 6 \\\n", "count 411.000000 \n", "mean 58.199513 \n", "std 30.868709 \n", "min 1.000000 \n", "25% 31.000000 \n", "50% 60.000000 \n", "75% 86.000000 \n", "max 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 7 \\\n", "count 400.000000 \n", "mean 60.972500 \n", "std 31.587437 \n", "min 0.000000 \n", "25% 36.000000 \n", "50% 67.000000 \n", "75% 92.000000 \n", "max 99.000000 \n", "\n", " NWEA Reading Growth Percentile Grade 8 math_grw_perc_all \\\n", "count 396.000000 443.000000 \n", "mean 56.659091 70.934537 \n", "std 32.107532 33.754876 \n", "min 0.000000 0.000000 \n", "25% 27.750000 46.500000 \n", "50% 59.000000 88.000000 \n", "75% 87.000000 99.000000 \n", "max 99.000000 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 3 \\\n", "count 425.000000 \n", "mean 65.703529 \n", "std 33.301674 \n", "min 0.000000 \n", "25% 43.000000 \n", "50% 78.000000 \n", "75% 96.000000 \n", "max 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 4 \\\n", "count 422.000000 \n", "mean 67.187204 \n", "std 32.211969 \n", "min 0.000000 \n", "25% 44.000000 \n", "50% 79.000000 \n", "75% 96.000000 \n", "max 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 5 \\\n", "count 423.000000 \n", "mean 62.264775 \n", "std 33.903485 \n", "min 0.000000 \n", "25% 30.500000 \n", "50% 73.000000 \n", "75% 95.000000 \n", "max 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 6 \\\n", "count 412.000000 \n", "mean 61.194175 \n", "std 32.043935 \n", "min 0.000000 \n", "25% 35.000000 \n", "50% 65.000000 \n", "75% 93.000000 \n", "max 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 7 \\\n", "count 399.000000 \n", "mean 63.779449 \n", "std 33.353090 \n", "min 0.000000 \n", "25% 38.000000 \n", "50% 73.000000 \n", "75% 95.000000 \n", "max 99.000000 \n", "\n", " NWEA Math Growth Percentile Grade 8 rea_att_perc_all \\\n", "count 396.000000 447.000000 \n", "mean 66.492424 36.874720 \n", "std 34.030998 31.120948 \n", "min 0.000000 0.000000 \n", "25% 36.000000 8.000000 \n", "50% 82.000000 30.000000 \n", "75% 97.000000 61.000000 \n", "max 99.000000 99.000000 \n", "\n", " NWEA Reading Attainment Percentile Grade 2 \\\n", "count 417.000000 \n", "mean 40.681055 \n", "std 35.366304 \n", "min 0.000000 \n", "25% 6.000000 \n", "50% 30.000000 \n", "75% 74.000000 \n", "max 99.000000 \n", "\n", " NWEA Reading Attainment Percentile Grade 3 \n", "count 426.000000 ... \n", "mean 39.521127 ... \n", "std 33.197318 ... \n", "min 0.000000 ... \n", "25% 8.000000 ... \n", "50% 31.000000 ... \n", "75% 68.750000 ... \n", "max 99.000000 ... \n", "\n", "[8 rows x 42 columns]\n" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n", "C:\\Users\\ADukes\\Anaconda\\lib\\site-packages\\pandas\\compat\\scipy.py:68: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", " score = values[idx]\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "#rename features so that they're python-friendly\n", "data.rename(columns={'School ID':'school_id'}, inplace=True)\t\n", "data.rename(columns={'Name of School':'school_name'}, inplace=True)\t\n", "data.rename(columns={'Street Address':'school_add'}, inplace=True)\t\n", "data.rename(columns={'City':'school_city'}, inplace=True)\t\n", "data.rename(columns={'State':'school_state'}, inplace=True)\t\n", "data.rename(columns={'ZIP Code':'school_zip'}, inplace=True)\t\n", "data.rename(columns={'Student Response Rate':'student_resp_rate'}, inplace=True)\t\n", "data.rename(columns={'Teacher Response Rate':'teacher_resp_rate'}, inplace=True)\t\n", "data.rename(columns={'Probation Length':'prob_length'}, inplace=True)\t\n", "data.rename(columns={'Involved Family':'inv_family'}, inplace=True)\t\n", "data.rename(columns={'Supportive Environment':'supp_env'}, inplace=True)\t\n", "data.rename(columns={'Ambitious Instruction':'amb_inst'}, inplace=True)\t\n", "data.rename(columns={'Effective Leaders':'eff_lead'}, inplace=True)\n", "data.rename(columns={'Collaborative Teachers':'coll_tea'}, inplace=True)\t\n", "data.rename(columns={'NWEA Reading Growth Percentile All Grades':'rea_grw_perc_all'}, inplace=True)\t\n", "data.rename(columns={'NWEA Reading Attainment Percentile All Grades':'rea_att_perc_all'}, inplace=True)\t\n", "data.rename(columns={'CPS Performance Policy Level':'cps_perf'}, inplace=True)\t\n", "data.rename(columns={'School Communit':'sch_comm'}, inplace=True)\t\n", "data.rename(columns={'Parent-Teacher Partnership':'par_tea_partn'}, inplace=True)\t\n", "data.rename(columns={'Quality of Facilities':'fac_qual'}, inplace=True)\t\n", "data.rename(columns={'Healthy Schools Certification':'health_cert'}, inplace=True)\t\n", "data.rename(columns={'Creative Schools Certification':'creative_cert'}, inplace=True)\t\n", "data.rename(columns={'NWEA Math Growth Percentile All Grades':'math_grw_perc_all'}, inplace=True)\t\n", "data.rename(columns={'Suspensions Per 100 students 2013':'suspensions'}, inplace=True)\t\n", "data.rename(columns={'Student Attendance Percentage 2013':'stud_att'}, inplace=True)\t\n", "data.rename(columns={'Teacher Attendance Percentage 2013':'teach_att'}, inplace=True)\n", "data.rename(columns={'One-Year Drop Out Rate Percentage 2013':'drop_out'}, inplace=True)\n", "\n", "#Safe" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "data.head(5)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
school_nameschool_addschool_cityschool_stateschool_zipPhone NumberWebsiteBlue Ribbon Awardcps_perfCPS Performance Policy Statusprob_lengthMy Voice, My School Overall Ratingstudent_resp_rateteacher_resp_rateinv_familysupp_envamb_insteff_instcoll_teaSafe
School ID
400009 Academy for Global Citizenship Elementary School 4647 W 47th St Chicago IL 60632 (773) 582-1100 http://www.agcchicago.org/NaN LEVEL 1 NOT APPLICABLENaN NOT ENOUGH DATA 0% 47.6% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400011 Alain Locke Charter Elementary Academy 3141 W Jackson Blvd Chicago IL 60612 (773) 265-7232 http://www.alainlocke.orgNaN LEVEL 1 NOT APPLICABLENaN NOT ENOUGH DATA 0.9% 0% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400017 ASPIRA Charter - Haugan Campus 3729 W Leland Ave Chicago IL 60625 (773) 252-0970 http://www.aspirail.orgNaN LEVEL 2 NOT APPLICABLENaN ORGANIZED 93.2% 86.8% NEUTRAL STRONG STRONG NEUTRAL NEUTRAL NEUTRAL...
400019 Bronzeville Lighthouse Charter Elementary School 8 W Root St Chicago IL 60609 (773) 535-1460 http://www.lighthouse-academies.org/BZLCS.htmNaN LEVEL 3 NOT APPLICABLENaN NOT ENOUGH DATA 2.4% 0% NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA...
400020 Catalyst Charter ES - Howland 1616 S Spaulding Ave Chicago IL 60623 (773) 527-7330 http://www.catalystschools.orgNaN LEVEL 3 NOT APPLICABLENaN PARTIALLY ORGANIZED 65.2% 84% VERY WEAK STRONG NEUTRAL VERY WEAK VERY WEAK NEUTRAL...
\n", "

5 rows \u00d7 73 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ " school_name \\\n", "School ID \n", "400009 Academy for Global Citizenship Elementary School \n", "400011 Alain Locke Charter Elementary Academy \n", "400017 ASPIRA Charter - Haugan Campus \n", "400019 Bronzeville Lighthouse Charter Elementary School \n", "400020 Catalyst Charter ES - Howland \n", "\n", " school_add school_city school_state school_zip \\\n", "School ID \n", "400009 4647 W 47th St Chicago IL 60632 \n", "400011 3141 W Jackson Blvd Chicago IL 60612 \n", "400017 3729 W Leland Ave Chicago IL 60625 \n", "400019 8 W Root St Chicago IL 60609 \n", "400020 1616 S Spaulding Ave Chicago IL 60623 \n", "\n", " Phone Number Website \\\n", "School ID \n", "400009 (773) 582-1100 http://www.agcchicago.org/ \n", "400011 (773) 265-7232 http://www.alainlocke.org \n", "400017 (773) 252-0970 http://www.aspirail.org \n", "400019 (773) 535-1460 http://www.lighthouse-academies.org/BZLCS.htm \n", "400020 (773) 527-7330 http://www.catalystschools.org \n", "\n", " Blue Ribbon Award cps_perf CPS Performance Policy Status \\\n", "School ID \n", "400009 NaN LEVEL 1 NOT APPLICABLE \n", "400011 NaN LEVEL 1 NOT APPLICABLE \n", "400017 NaN LEVEL 2 NOT APPLICABLE \n", "400019 NaN LEVEL 3 NOT APPLICABLE \n", "400020 NaN LEVEL 3 NOT APPLICABLE \n", "\n", " prob_length My Voice, My School Overall Rating student_resp_rate \\\n", "School ID \n", "400009 NaN NOT ENOUGH DATA 0% \n", "400011 NaN NOT ENOUGH DATA 0.9% \n", "400017 NaN ORGANIZED 93.2% \n", "400019 NaN NOT ENOUGH DATA 2.4% \n", "400020 NaN PARTIALLY ORGANIZED 65.2% \n", "\n", " teacher_resp_rate inv_family supp_env \\\n", "School ID \n", "400009 47.6% NOT ENOUGH DATA NOT ENOUGH DATA \n", "400011 0% NOT ENOUGH DATA NOT ENOUGH DATA \n", "400017 86.8% NEUTRAL STRONG \n", "400019 0% NOT ENOUGH DATA NOT ENOUGH DATA \n", "400020 84% VERY WEAK STRONG \n", "\n", " amb_inst eff_inst coll_tea Safe \\\n", "School ID \n", "400009 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400011 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400017 STRONG NEUTRAL NEUTRAL NEUTRAL \n", "400019 NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA NOT ENOUGH DATA \n", "400020 NEUTRAL VERY WEAK VERY WEAK NEUTRAL \n", "\n", " \n", "School ID \n", "400009 ... \n", "400011 ... \n", "400017 ... \n", "400019 ... \n", "400020 ... \n", "\n", "[5 rows x 73 columns]" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# Return the original value if a string, otherwise return 'Unknown'\n", "def cleanPerf(perf):\n", " if type(perf) is str:\n", " return perf\n", " else:\n", " return 'Unknown'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "#create ordinal variable for size\n", "def catPerf(perf):\n", " if 'LEVEL 1' in perf:\n", " return 1\n", " elif 'LEVEL 2' in perf:\n", " return 2\n", " elif 'LEVEL 3' in perf:\n", " return 3\n", " else:\n", " return 0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "#apply perf function for categorical feature\n", "data['cps_clean_cat']=data['cps_perf'].apply(cleanPerf)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "data['cps_perf_cat'] = data['cps_clean_cat'].apply(catPerf)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "print data['cps_perf_cat'].unique()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1 2 3 0]\n" ] } ], "prompt_number": 35 }, { "cell_type": "raw", "metadata": {}, "source": [ "Fix variables that have 'Not Enough Data' as an entry" ] }, { "cell_type": "code", "collapsed": false, "input": [ "data['inv_fam_fixed']=data['inv_family']\n", "data['supp_env_fixed']=data['supp_env']\n", "data['amb_inst_fixed']=data['amb_inst']\n", "data['eff_lead_fixed']=data['eff_lead']\n", "data['coll_tea_fixed']=data['coll_tea']\n", "data['safe_fixed']=data['Safe']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 55 }, { "cell_type": "code", "collapsed": false, "input": [ "#recode not enough data inv_family\tsupp_env\tamb_inst\teff_inst\tcoll_tea\tSafe\n", "data.inv_fam_fixed[data.inv_fam_fixed=='NOT ENOUGH DATA'] = 'other'\n", "data.supp_env_fixed[data.supp_env_fixed=='NOT ENOUGH DATA'] = 'other'\n", "data.amb_inst_fixed[data.amb_inst_fixed=='NOT ENOUGH DATA'] = 'other'\n", "data.eff_lead_fixed[data.eff_lead_fixed=='NOT ENOUGH DATA'] = 'other'\n", "data.coll_tea_fixed[data.coll_tea_fixed=='NOT ENOUGH DATA'] = 'other'\n", "data.safe_fixed[data.safe_fixed=='NOT ENOUGH DATA'] = 'other'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 56 }, { "cell_type": "code", "collapsed": false, "input": [ "#groupby categorical data\n", "print data.groupby('supp_env_fixed').count()\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " school_name school_add school_city school_state \\\n", "supp_env_fixed \n", "NEUTRAL 188 188 188 188 \n", "STRONG 121 121 121 121 \n", "VERY STRONG 47 47 47 47 \n", "VERY WEAK 6 6 6 6 \n", "WEAK 67 67 67 67 \n", "other 54 54 54 54 \n", "\n", " school_zip Phone Number Website Blue Ribbon Award \\\n", "supp_env_fixed \n", "NEUTRAL 188 188 188 2 \n", "STRONG 121 121 121 1 \n", "VERY STRONG 47 47 47 0 \n", "VERY WEAK 6 6 6 0 \n", "WEAK 67 67 67 0 \n", "other 54 49 54 0 \n", "\n", " cps_perf CPS Performance Policy Status prob_length \\\n", "supp_env_fixed \n", "NEUTRAL 186 186 70 \n", "STRONG 121 121 32 \n", "VERY STRONG 47 47 9 \n", "VERY WEAK 5 5 4 \n", "WEAK 67 67 38 \n", "other 49 49 5 \n", "\n", " My Voice, My School Overall Rating student_resp_rate \\\n", "supp_env_fixed \n", "NEUTRAL 188 188 \n", "STRONG 121 121 \n", "VERY STRONG 47 47 \n", "VERY WEAK 6 6 \n", "WEAK 67 67 \n", "other 54 49 \n", "\n", " teacher_resp_rate inv_family supp_env amb_inst eff_inst \\\n", "supp_env_fixed \n", "NEUTRAL 188 188 188 188 188 \n", "STRONG 121 121 121 121 121 \n", "VERY STRONG 47 47 47 47 47 \n", "VERY WEAK 6 6 6 6 6 \n", "WEAK 67 67 67 67 67 \n", "other 49 54 54 54 54 \n", "\n", " coll_tea Safe \n", "supp_env_fixed \n", "NEUTRAL 188 188 ... \n", "STRONG 121 121 ... \n", "VERY STRONG 47 47 ... \n", "VERY WEAK 6 6 ... \n", "WEAK 67 67 ... \n", "other 54 54 ... \n", "\n", "[6 rows x 86 columns]\n" ] } ], "prompt_number": 54 }, { "cell_type": "code", "collapsed": false, "input": [ "#groupby categorical data inv_fam_fixed" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "#create numerical variable for family involvement\n", "def cat(var_name):\n", " if 'VERY STRONG' in var_name:\n", " return 1\n", " elif 'STRONG' in var_name:\n", " return 2\n", " elif 'NEUTRAL' in var_name:\n", " return 3\n", " elif 'WEAK' in var_name:\n", " return 4\n", " elif 'VERY WEAK' in var_name:\n", " return 5\n", " else:\n", " return 0\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "data['inv_fam_cat'] = data['inv_family'].apply(cat)\n", "data['supp_env_cat'] = data['supp_env'].apply(cat)\n", "data['amb_inst_cat'] = data['amb_inst'].apply(cat)\n", "data['eff_lead_cat'] = data['eff_lead'].apply(cat)\n", "data['coll_tea_cat'] = data['coll_tea'].apply(cat)\n", "data['safe_cat'] = data['Safe'].apply(cat)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "#create dummy variables for family involvement \n", "dummy_inv_fam = pd.get_dummies(data['inv_fam_cat'], prefix='fam')\n", "dummy_supp_env = pd.get_dummies(data['supp_env_cat'], prefix='env')\n", "dummy_amb_inst = pd.get_dummies(data['amb_inst_cat'], prefix='amb_inst')\n", "dummy_eff_lead = pd.get_dummies(data['eff_lead_cat'], prefix='eff_lead')\n", "dummy_coll_tea = pd.get_dummies(data['coll_tea_cat'], prefix='coll_tea')\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "dummy_inv_fam.columns = ['fam_1', 'fam_2','fam_3','fam_4','fam_5']\n", "dummy_supp_env.columns = ['env_1', 'env_2','env_3','env_4','env_5']\n", "dummy_amb_inst.columns = ['amb_inst_1', 'amb_inst_2','amb_inst_3','amb_inst_4','amb_inst_5']\n", "dummy_eff_lead.columns = ['eff_lead_1', 'eff_lead_2','eff_lead_3','eff_lead_4','eff_lead_5']\n", "dummy_coll_tea.columns = ['coll_tea_1', 'coll_tea_2','coll_tea_3','coll_tea_4','coll_tea_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "data['fam_1'] = dummy_inv_fam['fam_1']\n", "data['fam_2'] = dummy_inv_fam['fam_2']\n", "data['fam_3'] = dummy_inv_fam['fam_3']\n", "data['fam_4'] = dummy_inv_fam['fam_4']\n", "data['fam_5'] = dummy_inv_fam['fam_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "data['env_1'] = dummy_supp_env['env_1']\n", "data['env_2'] = dummy_supp_env['env_2']\n", "data['env_3'] = dummy_supp_env['env_3']\n", "data['env_4'] = dummy_supp_env['env_4']\n", "data['env_5'] = dummy_supp_env['env_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "data['amb_inst_1'] = dummy_amb_inst['amb_inst_1']\n", "data['amb_inst_2'] = dummy_amb_inst['amb_inst_2']\n", "data['amb_inst_3'] = dummy_amb_inst['amb_inst_3']\n", "data['amb_inst_4'] = dummy_amb_inst['amb_inst_4']\n", "data['amb_inst_5'] = dummy_amb_inst['amb_inst_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "data['eff_lead_1'] = dummy_eff_lead['eff_lead_1']\n", "data['eff_lead_2'] = dummy_eff_lead['eff_lead_2']\n", "data['eff_lead_3'] = dummy_eff_lead['eff_lead_3']\n", "data['eff_lead_4'] = dummy_eff_lead['eff_lead_4']\n", "data['eff_lead_5'] = dummy_eff_lead['eff_lead_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "data['coll_tea_1'] = dummy_coll_tea['coll_tea_1']\n", "data['coll_tea_2'] = dummy_coll_tea['coll_tea_2']\n", "data['coll_tea_3'] = dummy_coll_tea['coll_tea_3']\n", "data['coll_tea_4'] = dummy_coll_tea['coll_tea_4']\n", "data['coll_tea_5'] = dummy_coll_tea['coll_tea_5']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "print data['teacher_resp_rate_st'].unique()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['47.6%' '0%' '86.8%' '84%' '91.3%' '84.6%' '70.8%' '93.8%' '89.7%' '87.5%'\n", " '100%' '96.6%' '97.1%' '83.3%' '61.1%' '78.6%' '76.9%' '91.4%' '96%'\n", " '74.3%' '81.8%' '52%' '76%' '60.5%' '55%' '93.6%' '53.3%' '94.7%' '80.7%'\n", " '82.4%' '77.8%' '74.2%' '82.6%' '52.8%' '90.6%' '70.3%' '56.3%' '82.8%'\n", " '80%' '93.1%' '70%' '84.4%' nan '91.8%' '85.3%' '76.5%' '92%' '79.3%'\n", " '88.2%' '77.4%' '95.2%' '90.7%' '88.6%' '66.7%' '94.6%' '93.9%' '94.1%'\n", " '88.5%' '85%' '61.5%' '82.2%' '89.8%' '91.1%' '73%' '90%' '78.4%' '88.9%'\n", " '90.5%' '92.2%' '86.3%' '73.3%' '69.6%' '95.5%' '81.5%' '91.2%' '57.9%'\n", " '97.7%' '84.1%' '68.9%' '68.2%' '70.6%' '87%' '95%' '35.3%' '93.3%'\n", " '72.4%' '71.9%' '96.9%' '86.7%' '78.1%' '79%' '85.7%' '94.9%' '57.1%'\n", " '88%' '80.8%' '81.3%' '86.4%' '72.2%' '97%' '50%' '86.5%' '60%' '69%'\n", " '95.7%' '59.2%' '97.6%' '45%' '69.2%' '68%' '56.8%' '69.7%' '65.2%'\n", " '72.1%' '65.7%' '97.8%' '35%' '97.9%' '80.6%' '76.3%' '90.9%' '74.1%'\n", " '75%' '89.5%' '75.5%' '97.2%' '73.9%' '86%' '87.1%' '92.5%' '84.7%'\n", " '72.7%' '89.4%' '87.9%' '96.3%' '92.9%' '90.3%' '47.4%' '82.9%' '68.1%'\n", " '58.6%' '64%' '81.4%' '75.4%' '79.2%' '92.3%' '69.4%' '54.3%' '68.8%'\n", " '82.1%' '74.5%' '96.4%' '91.7%' '63%' '53.9%' '80.4%' '77.5%' '71%'\n", " '63.2%' '98.6%' '81%' '70.2%' '59.3%' '58.1%' '86.1%' '78.3%' '71.1%'\n", " '64.3%' '84.2%' '77.2%' '68.4%' '79.1%' '98%' '13.9%' '78.7%' '67.8%'\n", " '44.2%' '94.4%' '95.8%' '45.3%' '27%' '84.9%' '64.7%' '58.7%' '84.3%'\n", " '63.6%' '76.2%' '71.4%' '34.8%' '84.8%' '42.9%' '82.7%' '67.9%' '57%'\n", " '86.2%' '73.7%' '46.2%' '92.6%']\n" ] } ], "prompt_number": 105 }, { "cell_type": "code", "collapsed": false, "input": [ "#data['teacher_resp_rate_st']=data['teacher_resp_rate'].strip('%');\n", "\n", "#data.teacher_resp_rate_st[data.teacher_resp_rate_st=='%'] = ''\n", "\n", "def rem_per(x):\n", " return (x.strip(\"%\"))#doesn't work" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 119 }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "data['teacher_resp_rate_st'] = data['teacher_resp_rate']\n", "\n", "#data['teacher_resp_rate_st'] = data['teacher_resp_rate_st'].apply(rem_per)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 122 }, { "cell_type": "code", "collapsed": false, "input": [ "#histogram\n", "data.rea_grw_perc_all.hist()\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 162, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nVYHjh33uBw4cUJxOZ+DttmzZonz66afTfuxZu2XPP7gSvF4vPv/8c6xbtw4+nw9GoxEAYDQa4fP5\nJE83O1555RUcOnQIsbHiS1CPWfT09GDx4sXYvXs3nn32WezZswd37tzRZRaJiYl49dVX8cwzz2Dp\n0qVISEiA3W7XZRaTHva5DwwMBN2t/XH26awt+8f9g6tod/v2bezYsQNHjhzB/Pnzg14XExOji5w+\n+OADLFmyBDk5OQ99yFa9ZDE6Oorz589j7969OH/+PL797W8/UFPoJYtr167hjTfegNfrxcDAAG7f\nvo33338/6G30kkUoj/rcH5XLrC37x/mDq2h3//597NixA7t27UJxcTGA8e/WN27cAAAMDg5iyZIl\nMkecFZ988glOnTqFZcuWobS0FG1tbdi1a5cuszCZTDCZTFi7di0AYOfOnTh//jySkpJ0l8Vnn32G\n9evXY+HChYiLi8P27dvx6aef6jKLSQ/7N/HNfdrX14fk5ORpP9asLfs1a9agu7sbXq8XIyMjOHHi\nBIqKimbr9NIpioIXX3wRVqsVL7/8cuDyoqIi1NWN/4VgXV1d4JtANDtw4AB6e3vR09ODhoYGbNq0\nCcePH9dlFklJSUhJSYHH4wEAtLa2IiMjA4WFhbrLIi0tDe3t7bh37x4URUFrayusVqsus5j0sH8T\nRUVFaGhowMjICHp6etDd3Y3c3NzpP5jav2CYzocffqhYLBZl+fLlyoEDB2bz1NKdPXtWiYmJUbKy\nspTs7GwlOztb+fvf/67cvHlTyc/PV1JTUxW73a4MDw/LHnVWuVwupbCwUFEURbdZuN1uZc2aNcrq\n1auVH//4x4rf79dtFgcPHlSsVquyatUqpby8XBkZGdFNFi+88ILy3e9+VzEYDIrJZFKOHTs27ee+\nf/9+Zfny5crKlSuVpqamR358/lEVEZEO8L8lJCLSAS57IiId4LInItIBLnsiIh3gsici0gEueyIi\nHeCyJyLSAS57IiId+P8S+WIQ9A/LLQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 162 }, { "cell_type": "code", "collapsed": false, "input": [ "#scatterplot\n", "# relatively strong relationship with performance: supp_env_cat, collaborative teacher rea_grw_perc_all math_grw_perc_all\n", "\n", "plt.scatter(data.cps_perf_cat, data.coll_tea_cat, lw=10, alpha=.1, color='b')\n", "plt.xlabel(\"school performance\")\n", "plt.ylabel(\"collaborative teachers\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 173, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n73//W8yZM0cIIURtba0YN26c2LFjh5v/c9TascmIVJeUlIS5c+di3rx5GDduHIYMGYLDhw8jMjIS\naWlpAFC/LLLBYMCIESPQtm1bAEB8fDxyc3NRVFQEo9GI0NBQAMC0adOwY8cOGAwGu9snTpzoMB4v\nLy9MmTIFADB9+nTccccdKC8vx+7duzF58uT6/SxX+gaDAZMnT65vghINVn85duwYYmJi0KNHDwDy\nRk9//etf8dRTTwFA/XEsLIsPJiYmory8HEFBQQgKCoK/vz8uX76MgIAAvPTSS9i5cye8vLyQn5+P\n3377DQAQExODpKQkAEBaWhpyc3NRVlaG/Pz8+n+vn58fAGDLli3YsmVL/eJn5eXlOHHihKLLxpP+\nMCGQ6uLi4nDgwAFs2LABL7/8MkaMGIFJkyY53N/f37/+797e3jCZTDb9AcLBklxCCLf6Diz7m81m\ndOjQwWG/gGVJYVc/zyIoKMjqdcu/zcvLq/7kbXl+5coV/Otf/0JRURGys7Ph7e2NmJiY+qahxuVi\n2e7ISy+9hDlz5rgUN12f2IdAqjt37hzatGmDadOmYe7cuThw4AB69eqFc+fO1a/nXlpaitraWrsn\neoPBgPT0dHz77be4cOECamtr8dlnn8FoNNrdPmzYsCbjMZvN9aODVq5ciaFDh6Jt27aIiYnB559/\nDkCe2A8dOuT039arVy/k5uYiJycHAPDJJ584Pb7l8+25fPkyOnXqBG9vb2zfvh2nTp1q8jOCg4PR\ntWvX+lunVldXo7KyEqNHj8YHH3yA8vJyAPKOX4WFhU7jousLawikusOHD+P555+Hl5cXfH198d57\n78HX1xerVq3CE088gcrKSgQGBuLrr792eOe8iIgIvPHGGxg+fDiEEBg3bhzGjx8PAA63O6opBAUF\nISsrC6+99hrCw8OxatUqAMCKFSvwyCOP4LXXXsOVK1cwderU+iaahp/VMMY2bdrgww8/xOTJk2Ey\nmZCeno6HH37Y7vEdfUbD59OmTcP48eORlJSE/v37o0+fPnbf3/D5J598goceegivvPIKfH198fnn\nnyMjIwM///wzBg0aBEDeOGX58uUICwuz/59E1yUuf03XvbZt29bfdInoesYmI7ruafF+zUSewBoC\nEREBYA2BiIjqMCEQEREAJgQiIqrDhEBERACYEIiIqA4TAhERAQD+HxRBPkoqiKXmAAAAAElFTkSu\nQmCC\n", "text": [ "" ] } ], "prompt_number": 173 }, { "cell_type": "code", "collapsed": false, "input": [ "#print data['teacher_resp_rate'].unique\n", "\n", "data[['teacher_resp_rate']].describe()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
teacher_resp_rate
count 478
unique 197
top 100%
freq 58
\n", "

4 rows \u00d7 1 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 126, "text": [ " teacher_resp_rate\n", "count 478\n", "unique 197\n", "top 100%\n", "freq 58\n", "\n", "[4 rows x 1 columns]" ] } ], "prompt_number": 126 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import linear_model, datasets\n", "from sklearn.cross_validation import train_test_split" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 63 }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline " ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "# define X; supp_env_cat amb_inst_cat eff_lead_cat coll_tea_cat safe_cat\n", "\n", "features=['amb_inst_cat','eff_lead_cat','coll_tea_cat','safe_cat']\n", "\n", "X=data[features]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 175 }, { "cell_type": "code", "collapsed": false, "input": [ "# Define Y/target\n", "Y = (data.cps_perf_cat.values)==1\n", "\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 176 }, { "cell_type": "code", "collapsed": false, "input": [ "# Slice off a test set\n", "# Use train_test_split\n", "x_train, x_test, y_train, y_test = train_test_split(X,Y,test_size=0.25)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 177 }, { "cell_type": "code", "collapsed": false, "input": [ "#create classifier \n", "clf=linear_model.LogisticRegression().fit(x_train,y_train)\n", "print clf.score(x_train,y_train)\n", "\n", "print clf.score(x_test,y_test)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0.709944751381\n", "0.719008264463\n" ] } ], "prompt_number": 178 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import metrics\n", "def measure_performance(X,y,clf, show_accuracy=True, show_classification_report=True, show_confusion_matrix=True):\n", " y_pred=clf.predict(X) \n", " if show_accuracy:\n", " print \"Accuracy:{0:.3f}\".format(metrics.accuracy_score(y,y_pred)),\"\\n\"\n", " \n", " if show_classification_report:\n", " print \"Classification report\"\n", " print metrics.classification_report(y,y_pred),\"\\n\"\n", " \n", " if show_confusion_matrix:\n", " print \"Confusion matrix\"\n", " print metrics.confusion_matrix(y,y_pred),\"\\n\"\n", " \n", "print measure_performance(x_train, y_train, clf)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Accuracy:0.710 \n", "\n", "Classification report\n", " precision recall f1-score support\n", "\n", " False 0.74 0.88 0.80 243\n", " True 0.60 0.35 0.44 119\n", "\n", "avg / total 0.69 0.71 0.69 362\n", "\n", "\n", "Confusion matrix\n", "[[215 28]\n", " [ 77 42]]" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " \n", "\n", "None\n" ] } ], "prompt_number": 179 }, { "cell_type": "code", "collapsed": false, "input": [ "print clf.coef_" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.76397835 0.06849151 -0.28981508 -0.98393147]]\n" ] } ], "prompt_number": 180 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }