From 149d067375423e9bb5d7421a0ee98ee0caeec2e2 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Sun, 24 Jan 2016 15:20:40 -0500 Subject: [PATCH 01/12] train and test data --- .gitignore | 1 + test.csv | 419 +++++++++++++++++++++++++ train.csv | 892 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1312 insertions(+) create mode 100644 .gitignore create mode 100644 test.csv create mode 100644 train.csv diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5509140 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.DS_Store diff --git a/test.csv b/test.csv new file mode 100644 index 0000000..f705412 --- /dev/null +++ b/test.csv @@ -0,0 +1,419 @@ +PassengerId,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +892,3,"Kelly, Mr. James",male,34.5,0,0,330911,7.8292,,Q +893,3,"Wilkes, Mrs. James (Ellen Needs)",female,47,1,0,363272,7,,S +894,2,"Myles, Mr. Thomas Francis",male,62,0,0,240276,9.6875,,Q +895,3,"Wirz, Mr. Albert",male,27,0,0,315154,8.6625,,S +896,3,"Hirvonen, Mrs. Alexander (Helga E Lindqvist)",female,22,1,1,3101298,12.2875,,S +897,3,"Svensson, Mr. Johan Cervin",male,14,0,0,7538,9.225,,S +898,3,"Connolly, Miss. Kate",female,30,0,0,330972,7.6292,,Q +899,2,"Caldwell, Mr. Albert Francis",male,26,1,1,248738,29,,S +900,3,"Abrahim, Mrs. Joseph (Sophie Halaut Easu)",female,18,0,0,2657,7.2292,,C +901,3,"Davies, Mr. John Samuel",male,21,2,0,A/4 48871,24.15,,S +902,3,"Ilieff, Mr. Ylio",male,,0,0,349220,7.8958,,S +903,1,"Jones, Mr. Charles Cresson",male,46,0,0,694,26,,S +904,1,"Snyder, Mrs. John Pillsbury (Nelle Stevenson)",female,23,1,0,21228,82.2667,B45,S +905,2,"Howard, Mr. Benjamin",male,63,1,0,24065,26,,S +906,1,"Chaffee, Mrs. Herbert Fuller (Carrie Constance Toogood)",female,47,1,0,W.E.P. 5734,61.175,E31,S +907,2,"del Carlo, Mrs. Sebastiano (Argenia Genovesi)",female,24,1,0,SC/PARIS 2167,27.7208,,C +908,2,"Keane, Mr. Daniel",male,35,0,0,233734,12.35,,Q +909,3,"Assaf, Mr. Gerios",male,21,0,0,2692,7.225,,C +910,3,"Ilmakangas, Miss. Ida Livija",female,27,1,0,STON/O2. 3101270,7.925,,S +911,3,"Assaf Khalil, Mrs. Mariana (Miriam"")""",female,45,0,0,2696,7.225,,C +912,1,"Rothschild, Mr. Martin",male,55,1,0,PC 17603,59.4,,C +913,3,"Olsen, Master. Artur Karl",male,9,0,1,C 17368,3.1708,,S +914,1,"Flegenheim, Mrs. Alfred (Antoinette)",female,,0,0,PC 17598,31.6833,,S +915,1,"Williams, Mr. Richard Norris II",male,21,0,1,PC 17597,61.3792,,C +916,1,"Ryerson, Mrs. Arthur Larned (Emily Maria Borie)",female,48,1,3,PC 17608,262.375,B57 B59 B63 B66,C +917,3,"Robins, Mr. Alexander A",male,50,1,0,A/5. 3337,14.5,,S +918,1,"Ostby, Miss. Helene Ragnhild",female,22,0,1,113509,61.9792,B36,C +919,3,"Daher, Mr. Shedid",male,22.5,0,0,2698,7.225,,C +920,1,"Brady, Mr. John Bertram",male,41,0,0,113054,30.5,A21,S +921,3,"Samaan, Mr. Elias",male,,2,0,2662,21.6792,,C +922,2,"Louch, Mr. Charles Alexander",male,50,1,0,SC/AH 3085,26,,S +923,2,"Jefferys, Mr. Clifford Thomas",male,24,2,0,C.A. 31029,31.5,,S +924,3,"Dean, Mrs. Bertram (Eva Georgetta Light)",female,33,1,2,C.A. 2315,20.575,,S +925,3,"Johnston, Mrs. Andrew G (Elizabeth Lily"" Watson)""",female,,1,2,W./C. 6607,23.45,,S +926,1,"Mock, Mr. Philipp Edmund",male,30,1,0,13236,57.75,C78,C +927,3,"Katavelas, Mr. Vassilios (Catavelas Vassilios"")""",male,18.5,0,0,2682,7.2292,,C +928,3,"Roth, Miss. Sarah A",female,,0,0,342712,8.05,,S +929,3,"Cacic, Miss. Manda",female,21,0,0,315087,8.6625,,S +930,3,"Sap, Mr. Julius",male,25,0,0,345768,9.5,,S +931,3,"Hee, Mr. Ling",male,,0,0,1601,56.4958,,S +932,3,"Karun, Mr. Franz",male,39,0,1,349256,13.4167,,C +933,1,"Franklin, Mr. Thomas Parham",male,,0,0,113778,26.55,D34,S +934,3,"Goldsmith, Mr. Nathan",male,41,0,0,SOTON/O.Q. 3101263,7.85,,S +935,2,"Corbett, Mrs. Walter H (Irene Colvin)",female,30,0,0,237249,13,,S +936,1,"Kimball, Mrs. Edwin Nelson Jr (Gertrude Parsons)",female,45,1,0,11753,52.5542,D19,S +937,3,"Peltomaki, Mr. Nikolai Johannes",male,25,0,0,STON/O 2. 3101291,7.925,,S +938,1,"Chevre, Mr. Paul Romaine",male,45,0,0,PC 17594,29.7,A9,C +939,3,"Shaughnessy, Mr. Patrick",male,,0,0,370374,7.75,,Q +940,1,"Bucknell, Mrs. William Robert (Emma Eliza Ward)",female,60,0,0,11813,76.2917,D15,C +941,3,"Coutts, Mrs. William (Winnie Minnie"" Treanor)""",female,36,0,2,C.A. 37671,15.9,,S +942,1,"Smith, Mr. Lucien Philip",male,24,1,0,13695,60,C31,S +943,2,"Pulbaum, Mr. Franz",male,27,0,0,SC/PARIS 2168,15.0333,,C +944,2,"Hocking, Miss. Ellen Nellie""""",female,20,2,1,29105,23,,S +945,1,"Fortune, Miss. Ethel Flora",female,28,3,2,19950,263,C23 C25 C27,S +946,2,"Mangiavacchi, Mr. Serafino Emilio",male,,0,0,SC/A.3 2861,15.5792,,C +947,3,"Rice, Master. Albert",male,10,4,1,382652,29.125,,Q +948,3,"Cor, Mr. Bartol",male,35,0,0,349230,7.8958,,S +949,3,"Abelseth, Mr. Olaus Jorgensen",male,25,0,0,348122,7.65,F G63,S +950,3,"Davison, Mr. Thomas Henry",male,,1,0,386525,16.1,,S +951,1,"Chaudanson, Miss. Victorine",female,36,0,0,PC 17608,262.375,B61,C +952,3,"Dika, Mr. Mirko",male,17,0,0,349232,7.8958,,S +953,2,"McCrae, Mr. Arthur Gordon",male,32,0,0,237216,13.5,,S +954,3,"Bjorklund, Mr. Ernst Herbert",male,18,0,0,347090,7.75,,S +955,3,"Bradley, Miss. Bridget Delia",female,22,0,0,334914,7.725,,Q +956,1,"Ryerson, Master. John Borie",male,13,2,2,PC 17608,262.375,B57 B59 B63 B66,C +957,2,"Corey, Mrs. Percy C (Mary Phyllis Elizabeth Miller)",female,,0,0,F.C.C. 13534,21,,S +958,3,"Burns, Miss. Mary Delia",female,18,0,0,330963,7.8792,,Q +959,1,"Moore, Mr. Clarence Bloomfield",male,47,0,0,113796,42.4,,S +960,1,"Tucker, Mr. Gilbert Milligan Jr",male,31,0,0,2543,28.5375,C53,C +961,1,"Fortune, Mrs. Mark (Mary McDougald)",female,60,1,4,19950,263,C23 C25 C27,S +962,3,"Mulvihill, Miss. Bertha E",female,24,0,0,382653,7.75,,Q +963,3,"Minkoff, Mr. Lazar",male,21,0,0,349211,7.8958,,S +964,3,"Nieminen, Miss. Manta Josefina",female,29,0,0,3101297,7.925,,S +965,1,"Ovies y Rodriguez, Mr. Servando",male,28.5,0,0,PC 17562,27.7208,D43,C +966,1,"Geiger, Miss. Amalie",female,35,0,0,113503,211.5,C130,C +967,1,"Keeping, Mr. Edwin",male,32.5,0,0,113503,211.5,C132,C +968,3,"Miles, Mr. Frank",male,,0,0,359306,8.05,,S +969,1,"Cornell, Mrs. Robert Clifford (Malvina Helen Lamson)",female,55,2,0,11770,25.7,C101,S +970,2,"Aldworth, Mr. Charles Augustus",male,30,0,0,248744,13,,S +971,3,"Doyle, Miss. Elizabeth",female,24,0,0,368702,7.75,,Q +972,3,"Boulos, Master. Akar",male,6,1,1,2678,15.2458,,C +973,1,"Straus, Mr. Isidor",male,67,1,0,PC 17483,221.7792,C55 C57,S +974,1,"Case, Mr. Howard Brown",male,49,0,0,19924,26,,S +975,3,"Demetri, Mr. Marinko",male,,0,0,349238,7.8958,,S +976,2,"Lamb, Mr. John Joseph",male,,0,0,240261,10.7083,,Q +977,3,"Khalil, Mr. Betros",male,,1,0,2660,14.4542,,C +978,3,"Barry, Miss. Julia",female,27,0,0,330844,7.8792,,Q +979,3,"Badman, Miss. Emily Louisa",female,18,0,0,A/4 31416,8.05,,S +980,3,"O'Donoghue, Ms. Bridget",female,,0,0,364856,7.75,,Q +981,2,"Wells, Master. Ralph Lester",male,2,1,1,29103,23,,S +982,3,"Dyker, Mrs. Adolf Fredrik (Anna Elisabeth Judith Andersson)",female,22,1,0,347072,13.9,,S +983,3,"Pedersen, Mr. Olaf",male,,0,0,345498,7.775,,S +984,1,"Davidson, Mrs. Thornton (Orian Hays)",female,27,1,2,F.C. 12750,52,B71,S +985,3,"Guest, Mr. Robert",male,,0,0,376563,8.05,,S +986,1,"Birnbaum, Mr. Jakob",male,25,0,0,13905,26,,C +987,3,"Tenglin, Mr. Gunnar Isidor",male,25,0,0,350033,7.7958,,S +988,1,"Cavendish, Mrs. Tyrell William (Julia Florence Siegel)",female,76,1,0,19877,78.85,C46,S +989,3,"Makinen, Mr. Kalle Edvard",male,29,0,0,STON/O 2. 3101268,7.925,,S +990,3,"Braf, Miss. Elin Ester Maria",female,20,0,0,347471,7.8542,,S +991,3,"Nancarrow, Mr. William Henry",male,33,0,0,A./5. 3338,8.05,,S +992,1,"Stengel, Mrs. Charles Emil Henry (Annie May Morris)",female,43,1,0,11778,55.4417,C116,C +993,2,"Weisz, Mr. Leopold",male,27,1,0,228414,26,,S +994,3,"Foley, Mr. William",male,,0,0,365235,7.75,,Q +995,3,"Johansson Palmquist, Mr. Oskar Leander",male,26,0,0,347070,7.775,,S +996,3,"Thomas, Mrs. Alexander (Thamine Thelma"")""",female,16,1,1,2625,8.5167,,C +997,3,"Holthen, Mr. Johan Martin",male,28,0,0,C 4001,22.525,,S +998,3,"Buckley, Mr. Daniel",male,21,0,0,330920,7.8208,,Q +999,3,"Ryan, Mr. Edward",male,,0,0,383162,7.75,,Q +1000,3,"Willer, Mr. Aaron (Abi Weller"")""",male,,0,0,3410,8.7125,,S +1001,2,"Swane, Mr. George",male,18.5,0,0,248734,13,F,S +1002,2,"Stanton, Mr. Samuel Ward",male,41,0,0,237734,15.0458,,C +1003,3,"Shine, Miss. Ellen Natalia",female,,0,0,330968,7.7792,,Q +1004,1,"Evans, Miss. Edith Corse",female,36,0,0,PC 17531,31.6792,A29,C +1005,3,"Buckley, Miss. Katherine",female,18.5,0,0,329944,7.2833,,Q +1006,1,"Straus, Mrs. Isidor (Rosalie Ida Blun)",female,63,1,0,PC 17483,221.7792,C55 C57,S +1007,3,"Chronopoulos, Mr. Demetrios",male,18,1,0,2680,14.4542,,C +1008,3,"Thomas, Mr. John",male,,0,0,2681,6.4375,,C +1009,3,"Sandstrom, Miss. Beatrice Irene",female,1,1,1,PP 9549,16.7,G6,S +1010,1,"Beattie, Mr. Thomson",male,36,0,0,13050,75.2417,C6,C +1011,2,"Chapman, Mrs. John Henry (Sara Elizabeth Lawry)",female,29,1,0,SC/AH 29037,26,,S +1012,2,"Watt, Miss. Bertha J",female,12,0,0,C.A. 33595,15.75,,S +1013,3,"Kiernan, Mr. John",male,,1,0,367227,7.75,,Q +1014,1,"Schabert, Mrs. Paul (Emma Mock)",female,35,1,0,13236,57.75,C28,C +1015,3,"Carver, Mr. Alfred John",male,28,0,0,392095,7.25,,S +1016,3,"Kennedy, Mr. John",male,,0,0,368783,7.75,,Q +1017,3,"Cribb, Miss. Laura Alice",female,17,0,1,371362,16.1,,S +1018,3,"Brobeck, Mr. Karl Rudolf",male,22,0,0,350045,7.7958,,S +1019,3,"McCoy, Miss. Alicia",female,,2,0,367226,23.25,,Q +1020,2,"Bowenur, Mr. Solomon",male,42,0,0,211535,13,,S +1021,3,"Petersen, Mr. Marius",male,24,0,0,342441,8.05,,S +1022,3,"Spinner, Mr. Henry John",male,32,0,0,STON/OQ. 369943,8.05,,S +1023,1,"Gracie, Col. Archibald IV",male,53,0,0,113780,28.5,C51,C +1024,3,"Lefebre, Mrs. Frank (Frances)",female,,0,4,4133,25.4667,,S +1025,3,"Thomas, Mr. Charles P",male,,1,0,2621,6.4375,,C +1026,3,"Dintcheff, Mr. Valtcho",male,43,0,0,349226,7.8958,,S +1027,3,"Carlsson, Mr. Carl Robert",male,24,0,0,350409,7.8542,,S +1028,3,"Zakarian, Mr. Mapriededer",male,26.5,0,0,2656,7.225,,C +1029,2,"Schmidt, Mr. August",male,26,0,0,248659,13,,S +1030,3,"Drapkin, Miss. Jennie",female,23,0,0,SOTON/OQ 392083,8.05,,S +1031,3,"Goodwin, Mr. Charles Frederick",male,40,1,6,CA 2144,46.9,,S +1032,3,"Goodwin, Miss. Jessie Allis",female,10,5,2,CA 2144,46.9,,S +1033,1,"Daniels, Miss. Sarah",female,33,0,0,113781,151.55,,S +1034,1,"Ryerson, Mr. Arthur Larned",male,61,1,3,PC 17608,262.375,B57 B59 B63 B66,C +1035,2,"Beauchamp, Mr. Henry James",male,28,0,0,244358,26,,S +1036,1,"Lindeberg-Lind, Mr. Erik Gustaf (Mr Edward Lingrey"")""",male,42,0,0,17475,26.55,,S +1037,3,"Vander Planke, Mr. Julius",male,31,3,0,345763,18,,S +1038,1,"Hilliard, Mr. Herbert Henry",male,,0,0,17463,51.8625,E46,S +1039,3,"Davies, Mr. Evan",male,22,0,0,SC/A4 23568,8.05,,S +1040,1,"Crafton, Mr. John Bertram",male,,0,0,113791,26.55,,S +1041,2,"Lahtinen, Rev. William",male,30,1,1,250651,26,,S +1042,1,"Earnshaw, Mrs. Boulton (Olive Potter)",female,23,0,1,11767,83.1583,C54,C +1043,3,"Matinoff, Mr. Nicola",male,,0,0,349255,7.8958,,C +1044,3,"Storey, Mr. Thomas",male,60.5,0,0,3701,,,S +1045,3,"Klasen, Mrs. (Hulda Kristina Eugenia Lofqvist)",female,36,0,2,350405,12.1833,,S +1046,3,"Asplund, Master. Filip Oscar",male,13,4,2,347077,31.3875,,S +1047,3,"Duquemin, Mr. Joseph",male,24,0,0,S.O./P.P. 752,7.55,,S +1048,1,"Bird, Miss. Ellen",female,29,0,0,PC 17483,221.7792,C97,S +1049,3,"Lundin, Miss. Olga Elida",female,23,0,0,347469,7.8542,,S +1050,1,"Borebank, Mr. John James",male,42,0,0,110489,26.55,D22,S +1051,3,"Peacock, Mrs. Benjamin (Edith Nile)",female,26,0,2,SOTON/O.Q. 3101315,13.775,,S +1052,3,"Smyth, Miss. Julia",female,,0,0,335432,7.7333,,Q +1053,3,"Touma, Master. Georges Youssef",male,7,1,1,2650,15.2458,,C +1054,2,"Wright, Miss. Marion",female,26,0,0,220844,13.5,,S +1055,3,"Pearce, Mr. Ernest",male,,0,0,343271,7,,S +1056,2,"Peruschitz, Rev. Joseph Maria",male,41,0,0,237393,13,,S +1057,3,"Kink-Heilmann, Mrs. Anton (Luise Heilmann)",female,26,1,1,315153,22.025,,S +1058,1,"Brandeis, Mr. Emil",male,48,0,0,PC 17591,50.4958,B10,C +1059,3,"Ford, Mr. Edward Watson",male,18,2,2,W./C. 6608,34.375,,S +1060,1,"Cassebeer, Mrs. Henry Arthur Jr (Eleanor Genevieve Fosdick)",female,,0,0,17770,27.7208,,C +1061,3,"Hellstrom, Miss. Hilda Maria",female,22,0,0,7548,8.9625,,S +1062,3,"Lithman, Mr. Simon",male,,0,0,S.O./P.P. 251,7.55,,S +1063,3,"Zakarian, Mr. Ortin",male,27,0,0,2670,7.225,,C +1064,3,"Dyker, Mr. Adolf Fredrik",male,23,1,0,347072,13.9,,S +1065,3,"Torfa, Mr. Assad",male,,0,0,2673,7.2292,,C +1066,3,"Asplund, Mr. Carl Oscar Vilhelm Gustafsson",male,40,1,5,347077,31.3875,,S +1067,2,"Brown, Miss. Edith Eileen",female,15,0,2,29750,39,,S +1068,2,"Sincock, Miss. Maude",female,20,0,0,C.A. 33112,36.75,,S +1069,1,"Stengel, Mr. Charles Emil Henry",male,54,1,0,11778,55.4417,C116,C +1070,2,"Becker, Mrs. Allen Oliver (Nellie E Baumgardner)",female,36,0,3,230136,39,F4,S +1071,1,"Compton, Mrs. Alexander Taylor (Mary Eliza Ingersoll)",female,64,0,2,PC 17756,83.1583,E45,C +1072,2,"McCrie, Mr. James Matthew",male,30,0,0,233478,13,,S +1073,1,"Compton, Mr. Alexander Taylor Jr",male,37,1,1,PC 17756,83.1583,E52,C +1074,1,"Marvin, Mrs. Daniel Warner (Mary Graham Carmichael Farquarson)",female,18,1,0,113773,53.1,D30,S +1075,3,"Lane, Mr. Patrick",male,,0,0,7935,7.75,,Q +1076,1,"Douglas, Mrs. Frederick Charles (Mary Helene Baxter)",female,27,1,1,PC 17558,247.5208,B58 B60,C +1077,2,"Maybery, Mr. Frank Hubert",male,40,0,0,239059,16,,S +1078,2,"Phillips, Miss. Alice Frances Louisa",female,21,0,1,S.O./P.P. 2,21,,S +1079,3,"Davies, Mr. Joseph",male,17,2,0,A/4 48873,8.05,,S +1080,3,"Sage, Miss. Ada",female,,8,2,CA. 2343,69.55,,S +1081,2,"Veal, Mr. James",male,40,0,0,28221,13,,S +1082,2,"Angle, Mr. William A",male,34,1,0,226875,26,,S +1083,1,"Salomon, Mr. Abraham L",male,,0,0,111163,26,,S +1084,3,"van Billiard, Master. Walter John",male,11.5,1,1,A/5. 851,14.5,,S +1085,2,"Lingane, Mr. John",male,61,0,0,235509,12.35,,Q +1086,2,"Drew, Master. Marshall Brines",male,8,0,2,28220,32.5,,S +1087,3,"Karlsson, Mr. Julius Konrad Eugen",male,33,0,0,347465,7.8542,,S +1088,1,"Spedden, Master. Robert Douglas",male,6,0,2,16966,134.5,E34,C +1089,3,"Nilsson, Miss. Berta Olivia",female,18,0,0,347066,7.775,,S +1090,2,"Baimbrigge, Mr. Charles Robert",male,23,0,0,C.A. 31030,10.5,,S +1091,3,"Rasmussen, Mrs. (Lena Jacobsen Solvang)",female,,0,0,65305,8.1125,,S +1092,3,"Murphy, Miss. Nora",female,,0,0,36568,15.5,,Q +1093,3,"Danbom, Master. Gilbert Sigvard Emanuel",male,0.33,0,2,347080,14.4,,S +1094,1,"Astor, Col. John Jacob",male,47,1,0,PC 17757,227.525,C62 C64,C +1095,2,"Quick, Miss. Winifred Vera",female,8,1,1,26360,26,,S +1096,2,"Andrew, Mr. Frank Thomas",male,25,0,0,C.A. 34050,10.5,,S +1097,1,"Omont, Mr. Alfred Fernand",male,,0,0,F.C. 12998,25.7417,,C +1098,3,"McGowan, Miss. Katherine",female,35,0,0,9232,7.75,,Q +1099,2,"Collett, Mr. Sidney C Stuart",male,24,0,0,28034,10.5,,S +1100,1,"Rosenbaum, Miss. Edith Louise",female,33,0,0,PC 17613,27.7208,A11,C +1101,3,"Delalic, Mr. Redjo",male,25,0,0,349250,7.8958,,S +1102,3,"Andersen, Mr. Albert Karvin",male,32,0,0,C 4001,22.525,,S +1103,3,"Finoli, Mr. Luigi",male,,0,0,SOTON/O.Q. 3101308,7.05,,S +1104,2,"Deacon, Mr. Percy William",male,17,0,0,S.O.C. 14879,73.5,,S +1105,2,"Howard, Mrs. Benjamin (Ellen Truelove Arman)",female,60,1,0,24065,26,,S +1106,3,"Andersson, Miss. Ida Augusta Margareta",female,38,4,2,347091,7.775,,S +1107,1,"Head, Mr. Christopher",male,42,0,0,113038,42.5,B11,S +1108,3,"Mahon, Miss. Bridget Delia",female,,0,0,330924,7.8792,,Q +1109,1,"Wick, Mr. George Dennick",male,57,1,1,36928,164.8667,,S +1110,1,"Widener, Mrs. George Dunton (Eleanor Elkins)",female,50,1,1,113503,211.5,C80,C +1111,3,"Thomson, Mr. Alexander Morrison",male,,0,0,32302,8.05,,S +1112,2,"Duran y More, Miss. Florentina",female,30,1,0,SC/PARIS 2148,13.8583,,C +1113,3,"Reynolds, Mr. Harold J",male,21,0,0,342684,8.05,,S +1114,2,"Cook, Mrs. (Selena Rogers)",female,22,0,0,W./C. 14266,10.5,F33,S +1115,3,"Karlsson, Mr. Einar Gervasius",male,21,0,0,350053,7.7958,,S +1116,1,"Candee, Mrs. Edward (Helen Churchill Hungerford)",female,53,0,0,PC 17606,27.4458,,C +1117,3,"Moubarek, Mrs. George (Omine Amenia"" Alexander)""",female,,0,2,2661,15.2458,,C +1118,3,"Asplund, Mr. Johan Charles",male,23,0,0,350054,7.7958,,S +1119,3,"McNeill, Miss. Bridget",female,,0,0,370368,7.75,,Q +1120,3,"Everett, Mr. Thomas James",male,40.5,0,0,C.A. 6212,15.1,,S +1121,2,"Hocking, Mr. Samuel James Metcalfe",male,36,0,0,242963,13,,S +1122,2,"Sweet, Mr. George Frederick",male,14,0,0,220845,65,,S +1123,1,"Willard, Miss. Constance",female,21,0,0,113795,26.55,,S +1124,3,"Wiklund, Mr. Karl Johan",male,21,1,0,3101266,6.4958,,S +1125,3,"Linehan, Mr. Michael",male,,0,0,330971,7.8792,,Q +1126,1,"Cumings, Mr. John Bradley",male,39,1,0,PC 17599,71.2833,C85,C +1127,3,"Vendel, Mr. Olof Edvin",male,20,0,0,350416,7.8542,,S +1128,1,"Warren, Mr. Frank Manley",male,64,1,0,110813,75.25,D37,C +1129,3,"Baccos, Mr. Raffull",male,20,0,0,2679,7.225,,C +1130,2,"Hiltunen, Miss. Marta",female,18,1,1,250650,13,,S +1131,1,"Douglas, Mrs. Walter Donald (Mahala Dutton)",female,48,1,0,PC 17761,106.425,C86,C +1132,1,"Lindstrom, Mrs. Carl Johan (Sigrid Posse)",female,55,0,0,112377,27.7208,,C +1133,2,"Christy, Mrs. (Alice Frances)",female,45,0,2,237789,30,,S +1134,1,"Spedden, Mr. Frederic Oakley",male,45,1,1,16966,134.5,E34,C +1135,3,"Hyman, Mr. Abraham",male,,0,0,3470,7.8875,,S +1136,3,"Johnston, Master. William Arthur Willie""""",male,,1,2,W./C. 6607,23.45,,S +1137,1,"Kenyon, Mr. Frederick R",male,41,1,0,17464,51.8625,D21,S +1138,2,"Karnes, Mrs. J Frank (Claire Bennett)",female,22,0,0,F.C.C. 13534,21,,S +1139,2,"Drew, Mr. James Vivian",male,42,1,1,28220,32.5,,S +1140,2,"Hold, Mrs. Stephen (Annie Margaret Hill)",female,29,1,0,26707,26,,S +1141,3,"Khalil, Mrs. Betros (Zahie Maria"" Elias)""",female,,1,0,2660,14.4542,,C +1142,2,"West, Miss. Barbara J",female,0.92,1,2,C.A. 34651,27.75,,S +1143,3,"Abrahamsson, Mr. Abraham August Johannes",male,20,0,0,SOTON/O2 3101284,7.925,,S +1144,1,"Clark, Mr. Walter Miller",male,27,1,0,13508,136.7792,C89,C +1145,3,"Salander, Mr. Karl Johan",male,24,0,0,7266,9.325,,S +1146,3,"Wenzel, Mr. Linhart",male,32.5,0,0,345775,9.5,,S +1147,3,"MacKay, Mr. George William",male,,0,0,C.A. 42795,7.55,,S +1148,3,"Mahon, Mr. John",male,,0,0,AQ/4 3130,7.75,,Q +1149,3,"Niklasson, Mr. Samuel",male,28,0,0,363611,8.05,,S +1150,2,"Bentham, Miss. Lilian W",female,19,0,0,28404,13,,S +1151,3,"Midtsjo, Mr. Karl Albert",male,21,0,0,345501,7.775,,S +1152,3,"de Messemaeker, Mr. Guillaume Joseph",male,36.5,1,0,345572,17.4,,S +1153,3,"Nilsson, Mr. August Ferdinand",male,21,0,0,350410,7.8542,,S +1154,2,"Wells, Mrs. Arthur Henry (Addie"" Dart Trevaskis)""",female,29,0,2,29103,23,,S +1155,3,"Klasen, Miss. Gertrud Emilia",female,1,1,1,350405,12.1833,,S +1156,2,"Portaluppi, Mr. Emilio Ilario Giuseppe",male,30,0,0,C.A. 34644,12.7375,,C +1157,3,"Lyntakoff, Mr. Stanko",male,,0,0,349235,7.8958,,S +1158,1,"Chisholm, Mr. Roderick Robert Crispin",male,,0,0,112051,0,,S +1159,3,"Warren, Mr. Charles William",male,,0,0,C.A. 49867,7.55,,S +1160,3,"Howard, Miss. May Elizabeth",female,,0,0,A. 2. 39186,8.05,,S +1161,3,"Pokrnic, Mr. Mate",male,17,0,0,315095,8.6625,,S +1162,1,"McCaffry, Mr. Thomas Francis",male,46,0,0,13050,75.2417,C6,C +1163,3,"Fox, Mr. Patrick",male,,0,0,368573,7.75,,Q +1164,1,"Clark, Mrs. Walter Miller (Virginia McDowell)",female,26,1,0,13508,136.7792,C89,C +1165,3,"Lennon, Miss. Mary",female,,1,0,370371,15.5,,Q +1166,3,"Saade, Mr. Jean Nassr",male,,0,0,2676,7.225,,C +1167,2,"Bryhl, Miss. Dagmar Jenny Ingeborg ",female,20,1,0,236853,26,,S +1168,2,"Parker, Mr. Clifford Richard",male,28,0,0,SC 14888,10.5,,S +1169,2,"Faunthorpe, Mr. Harry",male,40,1,0,2926,26,,S +1170,2,"Ware, Mr. John James",male,30,1,0,CA 31352,21,,S +1171,2,"Oxenham, Mr. Percy Thomas",male,22,0,0,W./C. 14260,10.5,,S +1172,3,"Oreskovic, Miss. Jelka",female,23,0,0,315085,8.6625,,S +1173,3,"Peacock, Master. Alfred Edward",male,0.75,1,1,SOTON/O.Q. 3101315,13.775,,S +1174,3,"Fleming, Miss. Honora",female,,0,0,364859,7.75,,Q +1175,3,"Touma, Miss. Maria Youssef",female,9,1,1,2650,15.2458,,C +1176,3,"Rosblom, Miss. Salli Helena",female,2,1,1,370129,20.2125,,S +1177,3,"Dennis, Mr. William",male,36,0,0,A/5 21175,7.25,,S +1178,3,"Franklin, Mr. Charles (Charles Fardon)",male,,0,0,SOTON/O.Q. 3101314,7.25,,S +1179,1,"Snyder, Mr. John Pillsbury",male,24,1,0,21228,82.2667,B45,S +1180,3,"Mardirosian, Mr. Sarkis",male,,0,0,2655,7.2292,F E46,C +1181,3,"Ford, Mr. Arthur",male,,0,0,A/5 1478,8.05,,S +1182,1,"Rheims, Mr. George Alexander Lucien",male,,0,0,PC 17607,39.6,,S +1183,3,"Daly, Miss. Margaret Marcella Maggie""""",female,30,0,0,382650,6.95,,Q +1184,3,"Nasr, Mr. Mustafa",male,,0,0,2652,7.2292,,C +1185,1,"Dodge, Dr. Washington",male,53,1,1,33638,81.8583,A34,S +1186,3,"Wittevrongel, Mr. Camille",male,36,0,0,345771,9.5,,S +1187,3,"Angheloff, Mr. Minko",male,26,0,0,349202,7.8958,,S +1188,2,"Laroche, Miss. Louise",female,1,1,2,SC/Paris 2123,41.5792,,C +1189,3,"Samaan, Mr. Hanna",male,,2,0,2662,21.6792,,C +1190,1,"Loring, Mr. Joseph Holland",male,30,0,0,113801,45.5,,S +1191,3,"Johansson, Mr. Nils",male,29,0,0,347467,7.8542,,S +1192,3,"Olsson, Mr. Oscar Wilhelm",male,32,0,0,347079,7.775,,S +1193,2,"Malachard, Mr. Noel",male,,0,0,237735,15.0458,D,C +1194,2,"Phillips, Mr. Escott Robert",male,43,0,1,S.O./P.P. 2,21,,S +1195,3,"Pokrnic, Mr. Tome",male,24,0,0,315092,8.6625,,S +1196,3,"McCarthy, Miss. Catherine Katie""""",female,,0,0,383123,7.75,,Q +1197,1,"Crosby, Mrs. Edward Gifford (Catherine Elizabeth Halstead)",female,64,1,1,112901,26.55,B26,S +1198,1,"Allison, Mr. Hudson Joshua Creighton",male,30,1,2,113781,151.55,C22 C26,S +1199,3,"Aks, Master. Philip Frank",male,0.83,0,1,392091,9.35,,S +1200,1,"Hays, Mr. Charles Melville",male,55,1,1,12749,93.5,B69,S +1201,3,"Hansen, Mrs. Claus Peter (Jennie L Howard)",female,45,1,0,350026,14.1083,,S +1202,3,"Cacic, Mr. Jego Grga",male,18,0,0,315091,8.6625,,S +1203,3,"Vartanian, Mr. David",male,22,0,0,2658,7.225,,C +1204,3,"Sadowitz, Mr. Harry",male,,0,0,LP 1588,7.575,,S +1205,3,"Carr, Miss. Jeannie",female,37,0,0,368364,7.75,,Q +1206,1,"White, Mrs. John Stuart (Ella Holmes)",female,55,0,0,PC 17760,135.6333,C32,C +1207,3,"Hagardon, Miss. Kate",female,17,0,0,AQ/3. 30631,7.7333,,Q +1208,1,"Spencer, Mr. William Augustus",male,57,1,0,PC 17569,146.5208,B78,C +1209,2,"Rogers, Mr. Reginald Harry",male,19,0,0,28004,10.5,,S +1210,3,"Jonsson, Mr. Nils Hilding",male,27,0,0,350408,7.8542,,S +1211,2,"Jefferys, Mr. Ernest Wilfred",male,22,2,0,C.A. 31029,31.5,,S +1212,3,"Andersson, Mr. Johan Samuel",male,26,0,0,347075,7.775,,S +1213,3,"Krekorian, Mr. Neshan",male,25,0,0,2654,7.2292,F E57,C +1214,2,"Nesson, Mr. Israel",male,26,0,0,244368,13,F2,S +1215,1,"Rowe, Mr. Alfred G",male,33,0,0,113790,26.55,,S +1216,1,"Kreuchen, Miss. Emilie",female,39,0,0,24160,211.3375,,S +1217,3,"Assam, Mr. Ali",male,23,0,0,SOTON/O.Q. 3101309,7.05,,S +1218,2,"Becker, Miss. Ruth Elizabeth",female,12,2,1,230136,39,F4,S +1219,1,"Rosenshine, Mr. George (Mr George Thorne"")""",male,46,0,0,PC 17585,79.2,,C +1220,2,"Clarke, Mr. Charles Valentine",male,29,1,0,2003,26,,S +1221,2,"Enander, Mr. Ingvar",male,21,0,0,236854,13,,S +1222,2,"Davies, Mrs. John Morgan (Elizabeth Agnes Mary White) ",female,48,0,2,C.A. 33112,36.75,,S +1223,1,"Dulles, Mr. William Crothers",male,39,0,0,PC 17580,29.7,A18,C +1224,3,"Thomas, Mr. Tannous",male,,0,0,2684,7.225,,C +1225,3,"Nakid, Mrs. Said (Waika Mary"" Mowad)""",female,19,1,1,2653,15.7417,,C +1226,3,"Cor, Mr. Ivan",male,27,0,0,349229,7.8958,,S +1227,1,"Maguire, Mr. John Edward",male,30,0,0,110469,26,C106,S +1228,2,"de Brito, Mr. Jose Joaquim",male,32,0,0,244360,13,,S +1229,3,"Elias, Mr. Joseph",male,39,0,2,2675,7.2292,,C +1230,2,"Denbury, Mr. Herbert",male,25,0,0,C.A. 31029,31.5,,S +1231,3,"Betros, Master. Seman",male,,0,0,2622,7.2292,,C +1232,2,"Fillbrook, Mr. Joseph Charles",male,18,0,0,C.A. 15185,10.5,,S +1233,3,"Lundstrom, Mr. Thure Edvin",male,32,0,0,350403,7.5792,,S +1234,3,"Sage, Mr. John George",male,,1,9,CA. 2343,69.55,,S +1235,1,"Cardeza, Mrs. James Warburton Martinez (Charlotte Wardle Drake)",female,58,0,1,PC 17755,512.3292,B51 B53 B55,C +1236,3,"van Billiard, Master. James William",male,,1,1,A/5. 851,14.5,,S +1237,3,"Abelseth, Miss. Karen Marie",female,16,0,0,348125,7.65,,S +1238,2,"Botsford, Mr. William Hull",male,26,0,0,237670,13,,S +1239,3,"Whabee, Mrs. George Joseph (Shawneene Abi-Saab)",female,38,0,0,2688,7.2292,,C +1240,2,"Giles, Mr. Ralph",male,24,0,0,248726,13.5,,S +1241,2,"Walcroft, Miss. Nellie",female,31,0,0,F.C.C. 13528,21,,S +1242,1,"Greenfield, Mrs. Leo David (Blanche Strouse)",female,45,0,1,PC 17759,63.3583,D10 D12,C +1243,2,"Stokes, Mr. Philip Joseph",male,25,0,0,F.C.C. 13540,10.5,,S +1244,2,"Dibden, Mr. William",male,18,0,0,S.O.C. 14879,73.5,,S +1245,2,"Herman, Mr. Samuel",male,49,1,2,220845,65,,S +1246,3,"Dean, Miss. Elizabeth Gladys Millvina""""",female,0.17,1,2,C.A. 2315,20.575,,S +1247,1,"Julian, Mr. Henry Forbes",male,50,0,0,113044,26,E60,S +1248,1,"Brown, Mrs. John Murray (Caroline Lane Lamson)",female,59,2,0,11769,51.4792,C101,S +1249,3,"Lockyer, Mr. Edward",male,,0,0,1222,7.8792,,S +1250,3,"O'Keefe, Mr. Patrick",male,,0,0,368402,7.75,,Q +1251,3,"Lindell, Mrs. Edvard Bengtsson (Elin Gerda Persson)",female,30,1,0,349910,15.55,,S +1252,3,"Sage, Master. William Henry",male,14.5,8,2,CA. 2343,69.55,,S +1253,2,"Mallet, Mrs. Albert (Antoinette Magnin)",female,24,1,1,S.C./PARIS 2079,37.0042,,C +1254,2,"Ware, Mrs. John James (Florence Louise Long)",female,31,0,0,CA 31352,21,,S +1255,3,"Strilic, Mr. Ivan",male,27,0,0,315083,8.6625,,S +1256,1,"Harder, Mrs. George Achilles (Dorothy Annan)",female,25,1,0,11765,55.4417,E50,C +1257,3,"Sage, Mrs. John (Annie Bullen)",female,,1,9,CA. 2343,69.55,,S +1258,3,"Caram, Mr. Joseph",male,,1,0,2689,14.4583,,C +1259,3,"Riihivouri, Miss. Susanna Juhantytar Sanni""""",female,22,0,0,3101295,39.6875,,S +1260,1,"Gibson, Mrs. Leonard (Pauline C Boeson)",female,45,0,1,112378,59.4,,C +1261,2,"Pallas y Castello, Mr. Emilio",male,29,0,0,SC/PARIS 2147,13.8583,,C +1262,2,"Giles, Mr. Edgar",male,21,1,0,28133,11.5,,S +1263,1,"Wilson, Miss. Helen Alice",female,31,0,0,16966,134.5,E39 E41,C +1264,1,"Ismay, Mr. Joseph Bruce",male,49,0,0,112058,0,B52 B54 B56,S +1265,2,"Harbeck, Mr. William H",male,44,0,0,248746,13,,S +1266,1,"Dodge, Mrs. Washington (Ruth Vidaver)",female,54,1,1,33638,81.8583,A34,S +1267,1,"Bowen, Miss. Grace Scott",female,45,0,0,PC 17608,262.375,,C +1268,3,"Kink, Miss. Maria",female,22,2,0,315152,8.6625,,S +1269,2,"Cotterill, Mr. Henry Harry""""",male,21,0,0,29107,11.5,,S +1270,1,"Hipkins, Mr. William Edward",male,55,0,0,680,50,C39,S +1271,3,"Asplund, Master. Carl Edgar",male,5,4,2,347077,31.3875,,S +1272,3,"O'Connor, Mr. Patrick",male,,0,0,366713,7.75,,Q +1273,3,"Foley, Mr. Joseph",male,26,0,0,330910,7.8792,,Q +1274,3,"Risien, Mrs. Samuel (Emma)",female,,0,0,364498,14.5,,S +1275,3,"McNamee, Mrs. Neal (Eileen O'Leary)",female,19,1,0,376566,16.1,,S +1276,2,"Wheeler, Mr. Edwin Frederick""""",male,,0,0,SC/PARIS 2159,12.875,,S +1277,2,"Herman, Miss. Kate",female,24,1,2,220845,65,,S +1278,3,"Aronsson, Mr. Ernst Axel Algot",male,24,0,0,349911,7.775,,S +1279,2,"Ashby, Mr. John",male,57,0,0,244346,13,,S +1280,3,"Canavan, Mr. Patrick",male,21,0,0,364858,7.75,,Q +1281,3,"Palsson, Master. Paul Folke",male,6,3,1,349909,21.075,,S +1282,1,"Payne, Mr. Vivian Ponsonby",male,23,0,0,12749,93.5,B24,S +1283,1,"Lines, Mrs. Ernest H (Elizabeth Lindsey James)",female,51,0,1,PC 17592,39.4,D28,S +1284,3,"Abbott, Master. Eugene Joseph",male,13,0,2,C.A. 2673,20.25,,S +1285,2,"Gilbert, Mr. William",male,47,0,0,C.A. 30769,10.5,,S +1286,3,"Kink-Heilmann, Mr. Anton",male,29,3,1,315153,22.025,,S +1287,1,"Smith, Mrs. Lucien Philip (Mary Eloise Hughes)",female,18,1,0,13695,60,C31,S +1288,3,"Colbert, Mr. Patrick",male,24,0,0,371109,7.25,,Q +1289,1,"Frolicher-Stehli, Mrs. Maxmillian (Margaretha Emerentia Stehli)",female,48,1,1,13567,79.2,B41,C +1290,3,"Larsson-Rondberg, Mr. Edvard A",male,22,0,0,347065,7.775,,S +1291,3,"Conlon, Mr. Thomas Henry",male,31,0,0,21332,7.7333,,Q +1292,1,"Bonnell, Miss. Caroline",female,30,0,0,36928,164.8667,C7,S +1293,2,"Gale, Mr. Harry",male,38,1,0,28664,21,,S +1294,1,"Gibson, Miss. Dorothy Winifred",female,22,0,1,112378,59.4,,C +1295,1,"Carrau, Mr. Jose Pedro",male,17,0,0,113059,47.1,,S +1296,1,"Frauenthal, Mr. Isaac Gerald",male,43,1,0,17765,27.7208,D40,C +1297,2,"Nourney, Mr. Alfred (Baron von Drachstedt"")""",male,20,0,0,SC/PARIS 2166,13.8625,D38,C +1298,2,"Ware, Mr. William Jeffery",male,23,1,0,28666,10.5,,S +1299,1,"Widener, Mr. George Dunton",male,50,1,1,113503,211.5,C80,C +1300,3,"Riordan, Miss. Johanna Hannah""""",female,,0,0,334915,7.7208,,Q +1301,3,"Peacock, Miss. Treasteall",female,3,1,1,SOTON/O.Q. 3101315,13.775,,S +1302,3,"Naughton, Miss. Hannah",female,,0,0,365237,7.75,,Q +1303,1,"Minahan, Mrs. William Edward (Lillian E Thorpe)",female,37,1,0,19928,90,C78,Q +1304,3,"Henriksson, Miss. Jenny Lovisa",female,28,0,0,347086,7.775,,S +1305,3,"Spector, Mr. Woolf",male,,0,0,A.5. 3236,8.05,,S +1306,1,"Oliva y Ocana, Dona. Fermina",female,39,0,0,PC 17758,108.9,C105,C +1307,3,"Saether, Mr. Simon Sivertsen",male,38.5,0,0,SOTON/O.Q. 3101262,7.25,,S +1308,3,"Ware, Mr. Frederick",male,,0,0,359309,8.05,,S +1309,3,"Peter, Master. Michael J",male,,1,1,2668,22.3583,,C diff --git a/train.csv b/train.csv new file mode 100644 index 0000000..63b68ab --- /dev/null +++ b/train.csv @@ -0,0 +1,892 @@ +PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked +1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S +2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C +3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S +4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S +5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S +6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q +7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S +8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S +9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S +10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C +11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S +12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S +13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S +14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S +15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S +16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S +17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q +18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S +19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S +20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C +21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S +22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S +23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q +24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S +25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S +26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S +27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C +28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S +29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q +30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S +31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C +32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C +33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q +34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S +35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C +36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S +37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C +38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S +39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S +40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C +41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S +42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S +43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C +44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C +45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q +46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S +47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q +48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q +49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C +50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S +51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S +52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S +53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C +54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S +55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C +56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S +57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S +58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C +59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S +60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S +61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C +62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28, +63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S +64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S +65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C +66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C +67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S +68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S +69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S +70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S +71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S +72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S +73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S +74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C +75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S +76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S +77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S +78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S +79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S +80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S +81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S +82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S +83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q +84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S +85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S +86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S +87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S +88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S +89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S +90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S +91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S +92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S +93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S +94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S +95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S +96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S +97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C +98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C +99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S +100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S +101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S +102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S +103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S +104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S +105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S +106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S +107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S +108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S +109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S +110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q +111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S +112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C +113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S +114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S +115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C +116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S +117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q +118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S +119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C +120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S +121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S +122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S +123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C +124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S +125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S +126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C +127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q +128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S +129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C +130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S +131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C +132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S +133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S +134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S +135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S +136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C +137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S +138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S +139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S +140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C +141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C +142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S +143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S +144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q +145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S +146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S +147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S +148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S +149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S +150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S +151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S +152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S +153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S +154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S +155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S +156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C +157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q +158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S +159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S +160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S +161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S +162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S +163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S +164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S +165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S +166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S +167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S +168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S +169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S +170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S +171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S +172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q +173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S +174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S +175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C +176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S +177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S +178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C +179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S +180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S +181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S +182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C +183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S +184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S +185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S +186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S +187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q +188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S +189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q +190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S +191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S +192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S +193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S +194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S +195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C +196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C +197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q +198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S +199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q +200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S +201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S +202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S +203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S +204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C +205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S +206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S +207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S +208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C +209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q +210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C +211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S +212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S +213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S +214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S +215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q +216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C +217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S +218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S +219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C +220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S +221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S +222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S +223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S +224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S +225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S +226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S +227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S +228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S +229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S +230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S +231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S +232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S +233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S +234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S +235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S +236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S +237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S +238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S +239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S +240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S +241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C +242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q +243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S +244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S +245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C +246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q +247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S +248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S +249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S +250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S +251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S +252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S +253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S +254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S +255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S +256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C +257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C +258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S +259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C +260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S +261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q +262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S +263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S +264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S +265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q +266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S +267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S +268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S +269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S +270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S +271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S +272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S +273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S +274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C +275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q +276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S +277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S +278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S +279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q +280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S +281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q +282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S +283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S +284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S +285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S +286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C +287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S +288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S +289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S +290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q +291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S +292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C +293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C +294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S +295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S +296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C +297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C +298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S +299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S +300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C +301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q +302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q +303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S +304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q +305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S +306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S +307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C +308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C +309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C +310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C +311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C +312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C +313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S +314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S +315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S +316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S +317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S +318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S +319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S +320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C +321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S +322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S +323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q +324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S +325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S +326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C +327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S +328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S +329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S +330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C +331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q +332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S +333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S +334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S +335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S +336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S +337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S +338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C +339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S +340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S +341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S +342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S +343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S +344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S +345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S +346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S +347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S +348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S +349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S +350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S +351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S +352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S +353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C +354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S +355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C +356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S +357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S +358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S +359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q +360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q +361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S +362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C +363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C +364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S +365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q +366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S +367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C +368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C +369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q +370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C +371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C +372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S +373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S +374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C +375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S +376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C +377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S +378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C +379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C +380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S +381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C +382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C +383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S +384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S +385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S +386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S +387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S +388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S +389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q +390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C +391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S +392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S +393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S +394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C +395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S +396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S +397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S +398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S +399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S +400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S +401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S +402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S +403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S +404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S +405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S +406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S +407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S +408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S +409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S +410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S +411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S +412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q +413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q +414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S +415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S +416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S +417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S +418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S +419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S +420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S +421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C +422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q +423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S +424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S +425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S +426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S +427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S +428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S +429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q +430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S +431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S +432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S +433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S +434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S +435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S +436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S +437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S +438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S +439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S +440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S +441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S +442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S +443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S +444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S +445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S +446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S +447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S +448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S +449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C +450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S +451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S +452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S +453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C +454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C +455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S +456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C +457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S +458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S +459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S +460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q +461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S +462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S +463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S +464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S +465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S +466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S +467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S +468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S +469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q +470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C +471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S +472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S +473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S +474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C +475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S +476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S +477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S +478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S +479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S +480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S +481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S +482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S +483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S +484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S +485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C +486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S +487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S +488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C +489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S +490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S +491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S +492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S +493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S +494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C +495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S +496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C +497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C +498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S +499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S +500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S +501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S +502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q +503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q +504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S +505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S +506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C +507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S +508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S +509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S +510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S +511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q +512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S +513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S +514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C +515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S +516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S +517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S +518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q +519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S +520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S +521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S +522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S +523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C +524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C +525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C +526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q +527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S +528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S +529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S +530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S +531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S +532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C +533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C +534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C +535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S +536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S +537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S +538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C +539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S +540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C +541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S +542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S +543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S +544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S +545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C +546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S +547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S +548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C +549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S +550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S +551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C +552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S +553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q +554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C +555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S +556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S +557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C +558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C +559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S +560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S +561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q +562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S +563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S +564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S +565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S +566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S +567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S +568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S +569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C +570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S +571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S +572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S +573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S +574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q +575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S +576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S +577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S +578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S +579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C +580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S +581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S +582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C +583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S +584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C +585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C +586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S +587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S +588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C +589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S +590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S +591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S +592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C +593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S +594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q +595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S +596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S +597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S +598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S +599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C +600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C +601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S +602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S +603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S +604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S +605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C +606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S +607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S +608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S +609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C +610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S +611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S +612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S +613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q +614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q +615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S +616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S +617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S +618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S +619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S +620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S +621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C +622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S +623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C +624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S +625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S +626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S +627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q +628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S +629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S +630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q +631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S +632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S +633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C +634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S +635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S +636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S +637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S +638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S +639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S +640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S +641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S +642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C +643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S +644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S +645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C +646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C +647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S +648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C +649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S +650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S +651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S +652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S +653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S +654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q +655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q +656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S +657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S +658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q +659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S +660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C +661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S +662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C +663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S +664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S +665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S +666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S +667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S +668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S +669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S +670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S +671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S +672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S +673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S +674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S +675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S +676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S +677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S +678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S +679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S +680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C +681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q +682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C +683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S +684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S +685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S +686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C +687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S +688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S +689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S +690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S +691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S +692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C +693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S +694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C +695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S +696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S +697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S +698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q +699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C +700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S +701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C +702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S +703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C +704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q +705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S +706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S +707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S +708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S +709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S +710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C +711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C +712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S +713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S +714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S +715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S +716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S +717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C +718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S +719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q +720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S +721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S +722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S +723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S +724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S +725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S +726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S +727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S +728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q +729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S +730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S +731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S +732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C +733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S +734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S +735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S +736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S +737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S +738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C +739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S +740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S +741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S +742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S +743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C +744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S +745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S +746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S +747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S +748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S +749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S +750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q +751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S +752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S +753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S +754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S +755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S +756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S +757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S +758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S +759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S +760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S +761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S +762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S +763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C +764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S +765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S +766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S +767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C +768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q +769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q +770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S +771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S +772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S +773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S +774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C +775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S +776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S +777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q +778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S +779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q +780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S +781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C +782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S +783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S +784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S +785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S +786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S +787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S +788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q +789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S +790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C +791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q +792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S +793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S +794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C +795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S +796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S +797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S +798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S +799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C +800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S +801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S +802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S +803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S +804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C +805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S +806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S +807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S +808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S +809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S +810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S +811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S +812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S +813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S +814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S +815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S +816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S +817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S +818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C +819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S +820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S +821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S +822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S +823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S +824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S +825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S +826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q +827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S +828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C +829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q +830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28, +831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C +832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S +833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C +834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S +835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S +836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C +837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S +838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S +839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S +840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C +841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S +842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S +843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C +844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C +845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S +846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S +847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S +848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C +849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S +850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C +851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S +852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S +853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C +854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S +855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S +856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S +857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S +858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S +859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C +860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C +861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S +862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S +863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S +864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S +865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S +866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S +867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C +868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S +869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S +870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S +871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S +872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S +873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S +874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S +875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C +876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C +877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S +878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S +879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S +880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C +881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S +882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S +883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S +884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S +885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S +886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q +887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S +888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S +889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S +890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C +891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q From 377c910502292c726802706d7a3fea24a6a2f423 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Sun, 24 Jan 2016 16:33:53 -0500 Subject: [PATCH 02/12] initial data exploration, still WIP --- .../data_exploration-checkpoint.ipynb | 274 ++++++++++++++++++ data_exploration.ipynb | 274 ++++++++++++++++++ 2 files changed, 548 insertions(+) create mode 100644 .ipynb_checkpoints/data_exploration-checkpoint.ipynb create mode 100644 data_exploration.ipynb diff --git a/.ipynb_checkpoints/data_exploration-checkpoint.ipynb b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb new file mode 100644 index 0000000..4be51fb --- /dev/null +++ b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploration of Titanic dataset\n", + "\n", + "This is as part of the initial warmup assignment and data exploration for the first DataScience16 project. To begin, we import the dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n", + "2 Heikkinen, Miss. Laina female 26 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 \n", + "4 Allen, Mr. William Henry male 35 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S \n", + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 \n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "data = pd.read_csv('train.csv')\n", + "\n", + "print data.head()\n", + "print data.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output from `data.head()` shows us all columns in the dataset, along with the first few rows containing data. This is useful to show us the general idea when we want to go through the data, but `data.describe()` can be more useful by giving us a general overview of all the data, including functions such as mean, min, max, and totals. From this output, we can begin looking more into the data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exploring Age Information\n", + "\n", + "Starting to dive into the data, we look at the amount of people in each different age group aboard the ship." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "139 : less than 18 years old (children)\n", + "223 : between the ages of 19 and 28\n", + "175 : between the ages of 29 and 38\n", + "97 : between the ages of 39 and 48\n", + "52 : between the ages of 49 and 58\n", + "28 : between the ages of 59 and up\n" + ] + } + ], + "source": [ + "print len(data[data.Age <= 18].Age), \": less than 18 years old (children)\"\n", + "print len(data[(data.Age > 18) & (data.Age <= 28)].Age), \": between the ages of 19 and 28\"\n", + "print len(data[(data.Age > 28) & (data.Age <= 38)].Age), \": between the ages of 29 and 38\"\n", + "print len(data[(data.Age > 38) & (data.Age <= 48)].Age), \": between the ages of 39 and 48\"\n", + "print len(data[(data.Age > 48) & (data.Age <= 58)].Age), \": between the ages of 49 and 58\"\n", + "print len(data[(data.Age > 58)].Age), \": between the ages of 59 and up\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This gives us a bit of insight into the largest age group in the ship, but not much more than that. To dive more into this, we can start going through each age to figure out how many people are in each. To start, we can use `value_counts()` to show how many values are attributed to each key, per say. Sorting that gives us a nice count from min to max." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.42 1\n", + "0.67 1\n", + "0.75 2\n", + "0.83 2\n", + "0.92 1\n", + "1.00 7\n", + "2.00 10\n", + "3.00 6\n", + "4.00 10\n", + "5.00 4\n", + "6.00 3\n", + "7.00 3\n", + "8.00 4\n", + "9.00 8\n", + "10.00 2\n", + "11.00 4\n", + "12.00 1\n", + "13.00 2\n", + "14.00 6\n", + "14.50 1\n", + "15.00 5\n", + "16.00 17\n", + "17.00 13\n", + "18.00 26\n", + "19.00 25\n", + "20.00 15\n", + "20.50 1\n", + "21.00 24\n", + "22.00 27\n", + "23.00 15\n", + " ..\n", + "44.00 9\n", + "45.00 12\n", + "45.50 2\n", + "46.00 3\n", + "47.00 9\n", + "48.00 9\n", + "49.00 6\n", + "50.00 10\n", + "51.00 7\n", + "52.00 6\n", + "53.00 1\n", + "54.00 8\n", + "55.00 2\n", + "55.50 1\n", + "56.00 4\n", + "57.00 2\n", + "58.00 5\n", + "59.00 2\n", + "60.00 4\n", + "61.00 3\n", + "62.00 4\n", + "63.00 2\n", + "64.00 2\n", + "65.00 3\n", + "66.00 1\n", + "70.00 2\n", + "70.50 1\n", + "71.00 2\n", + "74.00 1\n", + "80.00 1\n", + "Name: Age, dtype: int64\n" + ] + } + ], + "source": [ + "print data.Age.value_counts().sort_index()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! Now, we can easily show what these values look like visually on a plot." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "plt.plot(data.Age.value_counts().sort_index())\n", + "plt.ylim([0,35])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/data_exploration.ipynb b/data_exploration.ipynb new file mode 100644 index 0000000..4be51fb --- /dev/null +++ b/data_exploration.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploration of Titanic dataset\n", + "\n", + "This is as part of the initial warmup assignment and data exploration for the first DataScience16 project. To begin, we import the dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " PassengerId Survived Pclass \\\n", + "0 1 0 3 \n", + "1 2 1 1 \n", + "2 3 1 3 \n", + "3 4 1 1 \n", + "4 5 0 3 \n", + "\n", + " Name Sex Age SibSp \\\n", + "0 Braund, Mr. Owen Harris male 22 1 \n", + "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 \n", + "2 Heikkinen, Miss. Laina female 26 0 \n", + "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 \n", + "4 Allen, Mr. William Henry male 35 0 \n", + "\n", + " Parch Ticket Fare Cabin Embarked \n", + "0 0 A/5 21171 7.2500 NaN S \n", + "1 0 PC 17599 71.2833 C85 C \n", + "2 0 STON/O2. 3101282 7.9250 NaN S \n", + "3 0 113803 53.1000 C123 S \n", + "4 0 373450 8.0500 NaN S \n", + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 \n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "data = pd.read_csv('train.csv')\n", + "\n", + "print data.head()\n", + "print data.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output from `data.head()` shows us all columns in the dataset, along with the first few rows containing data. This is useful to show us the general idea when we want to go through the data, but `data.describe()` can be more useful by giving us a general overview of all the data, including functions such as mean, min, max, and totals. From this output, we can begin looking more into the data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exploring Age Information\n", + "\n", + "Starting to dive into the data, we look at the amount of people in each different age group aboard the ship." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "139 : less than 18 years old (children)\n", + "223 : between the ages of 19 and 28\n", + "175 : between the ages of 29 and 38\n", + "97 : between the ages of 39 and 48\n", + "52 : between the ages of 49 and 58\n", + "28 : between the ages of 59 and up\n" + ] + } + ], + "source": [ + "print len(data[data.Age <= 18].Age), \": less than 18 years old (children)\"\n", + "print len(data[(data.Age > 18) & (data.Age <= 28)].Age), \": between the ages of 19 and 28\"\n", + "print len(data[(data.Age > 28) & (data.Age <= 38)].Age), \": between the ages of 29 and 38\"\n", + "print len(data[(data.Age > 38) & (data.Age <= 48)].Age), \": between the ages of 39 and 48\"\n", + "print len(data[(data.Age > 48) & (data.Age <= 58)].Age), \": between the ages of 49 and 58\"\n", + "print len(data[(data.Age > 58)].Age), \": between the ages of 59 and up\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This gives us a bit of insight into the largest age group in the ship, but not much more than that. To dive more into this, we can start going through each age to figure out how many people are in each. To start, we can use `value_counts()` to show how many values are attributed to each key, per say. Sorting that gives us a nice count from min to max." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.42 1\n", + "0.67 1\n", + "0.75 2\n", + "0.83 2\n", + "0.92 1\n", + "1.00 7\n", + "2.00 10\n", + "3.00 6\n", + "4.00 10\n", + "5.00 4\n", + "6.00 3\n", + "7.00 3\n", + "8.00 4\n", + "9.00 8\n", + "10.00 2\n", + "11.00 4\n", + "12.00 1\n", + "13.00 2\n", + "14.00 6\n", + "14.50 1\n", + "15.00 5\n", + "16.00 17\n", + "17.00 13\n", + "18.00 26\n", + "19.00 25\n", + "20.00 15\n", + "20.50 1\n", + "21.00 24\n", + "22.00 27\n", + "23.00 15\n", + " ..\n", + "44.00 9\n", + "45.00 12\n", + "45.50 2\n", + "46.00 3\n", + "47.00 9\n", + "48.00 9\n", + "49.00 6\n", + "50.00 10\n", + "51.00 7\n", + "52.00 6\n", + "53.00 1\n", + "54.00 8\n", + "55.00 2\n", + "55.50 1\n", + "56.00 4\n", + "57.00 2\n", + "58.00 5\n", + "59.00 2\n", + "60.00 4\n", + "61.00 3\n", + "62.00 4\n", + "63.00 2\n", + "64.00 2\n", + "65.00 3\n", + "66.00 1\n", + "70.00 2\n", + "70.50 1\n", + "71.00 2\n", + "74.00 1\n", + "80.00 1\n", + "Name: Age, dtype: int64\n" + ] + } + ], + "source": [ + "print data.Age.value_counts().sort_index()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great! Now, we can easily show what these values look like visually on a plot." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline\n", + "plt.plot(data.Age.value_counts().sort_index())\n", + "plt.ylim([0,35])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From ebd89fda97d89f1dd1515bf4fec95f05671f6412 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Sun, 24 Jan 2016 16:56:26 -0500 Subject: [PATCH 03/12] wild goose chase code cleanup --- .../data_exploration-checkpoint.ipynb | 67 ++++++++++++++++++- data_exploration.ipynb | 67 ++++++++++++++++++- 2 files changed, 128 insertions(+), 6 deletions(-) diff --git a/.ipynb_checkpoints/data_exploration-checkpoint.ipynb b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb index 4be51fb..9f30577 100644 --- a/.ipynb_checkpoints/data_exploration-checkpoint.ipynb +++ b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": { "collapsed": false, "scrolled": true @@ -214,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -223,7 +223,7 @@ "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -240,6 +240,67 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "While this is a nice representation of the age groups aboard the ship, we haven't actually done anything interesting with the data, so let's do that! First, we are going to show the survival rates for the individuals in each age group." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "float() argument must be a string or a number", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msurvivors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3152\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3153\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3154\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3155\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3156\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwashold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1810\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[1;32m 1811\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1812\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1813\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1814\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1424\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1425\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1426\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1706\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1707\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1708\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1709\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1710\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1729\u001b[0m \"\"\"\n\u001b[0;32m-> 1730\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1731\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 923\u001b[0m \"\"\"\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 619\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 621\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 622\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 623\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 472\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 473\u001b[0m \"\"\"\n\u001b[0;32m--> 474\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 475\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 476\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0masanyarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number" + ] + }, + { + "data": { + "image/png": "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\nSWrMyEtSY/8LkDqzw0fZnlYAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "survivors = {}\n", + "for age in range(len(data.Age.sort_index())):\n", + " if data.Survived[age]:\n", + " if data.Age[age] in survivors:\n", + " survivors[data.Age[age]] += 1\n", + " else:\n", + " survivors[data.Age[age]] = 1\n", + "\n", + "%matplotlib inline\n", + "\n", + "plt.plot(survivors)\n", + "plt.show()" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/data_exploration.ipynb b/data_exploration.ipynb index 4be51fb..9f30577 100644 --- a/data_exploration.ipynb +++ b/data_exploration.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": { "collapsed": false, "scrolled": true @@ -214,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -223,7 +223,7 @@ "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -240,6 +240,67 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "While this is a nice representation of the age groups aboard the ship, we haven't actually done anything interesting with the data, so let's do that! First, we are going to show the survival rates for the individuals in each age group." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "float() argument must be a string or a number", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msurvivors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3152\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3153\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3154\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3155\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3156\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwashold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1810\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[1;32m 1811\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1812\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1813\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1814\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1424\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1425\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1426\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1706\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1707\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1708\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1709\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1710\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1729\u001b[0m \"\"\"\n\u001b[0;32m-> 1730\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1731\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 923\u001b[0m \"\"\"\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 619\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 621\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 622\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 623\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python2.7/site-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 472\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 473\u001b[0m \"\"\"\n\u001b[0;32m--> 474\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 475\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 476\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0masanyarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number" + ] + }, + { + "data": { + "image/png": "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\nSWrMyEtSY/8LkDqzw0fZnlYAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "survivors = {}\n", + "for age in range(len(data.Age.sort_index())):\n", + " if data.Survived[age]:\n", + " if data.Age[age] in survivors:\n", + " survivors[data.Age[age]] += 1\n", + " else:\n", + " survivors[data.Age[age]] = 1\n", + "\n", + "%matplotlib inline\n", + "\n", + "plt.plot(survivors)\n", + "plt.show()" + ] + }, { "cell_type": "code", "execution_count": null, From 5f9247755cafe4ef54238e2e3cc848fe306314fe Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Sun, 24 Jan 2016 17:12:03 -0500 Subject: [PATCH 04/12] initial look at dataset --- .../data_exploration-checkpoint.ipynb | 121 +++++++++++------ data_exploration.ipynb | 123 ++++++++++++------ 2 files changed, 167 insertions(+), 77 deletions(-) diff --git a/.ipynb_checkpoints/data_exploration-checkpoint.ipynb b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb index 9f30577..ebbef9d 100644 --- a/.ipynb_checkpoints/data_exploration-checkpoint.ipynb +++ b/.ipynb_checkpoints/data_exploration-checkpoint.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "metadata": { "collapsed": false, "scrolled": true @@ -90,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 10, "metadata": { "collapsed": false, "scrolled": true @@ -223,7 +223,7 @@ "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -251,35 +251,16 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ - { - "ename": "TypeError", - "evalue": "float() argument must be a string or a number", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msurvivors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3152\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3153\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3154\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3155\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3156\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwashold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1810\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[1;32m 1811\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1812\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1813\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1814\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1424\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1425\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1426\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1706\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1707\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1708\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1709\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1710\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1729\u001b[0m \"\"\"\n\u001b[0;32m-> 1730\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1731\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 923\u001b[0m \"\"\"\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 619\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 621\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 622\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 623\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 472\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 473\u001b[0m \"\"\"\n\u001b[0;32m--> 474\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 475\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 476\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0masanyarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number" - ] - }, { "data": { - "image/png": "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\nSWrMyEtSY/8LkDqzw0fZnlYAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -287,28 +268,92 @@ } ], "source": [ - "survivors = {}\n", - "for age in range(len(data.Age.sort_index())):\n", - " if data.Survived[age]:\n", - " if data.Age[age] in survivors:\n", - " survivors[data.Age[age]] += 1\n", - " else:\n", - " survivors[data.Age[age]] = 1\n", + "%matplotlib inline\n", + "\n", + "plt.plot(data[(data.Survived == 1)].Age.value_counts().sort_index())\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now this result is not too surprising. The general trend still follows of the previous graph, showing that the largest age group also had the highest survivor count.\n", "\n", + "Next, let's look at male/female survival in each age group." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nBEEoEP5/DKRvbXJ64oAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ "%matplotlib inline\n", "\n", - "plt.plot(survivors)\n", + "plt.plot(data[(data.Survived == 1) & (data.Sex == 'male')].Age.value_counts().sort_index())\n", + "plt.plot(data[(data.Survived == 1) & (data.Sex == 'female')].Age.value_counts().sort_index())\n", + "plt.legend(['Male', 'Female'])\n", "plt.show()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This follows with the idea of women and children first. \n", + "\n", + "Finally, looking at the converse, let's show who had the lowest surivor rate." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": true + "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "image/png": "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\nDnV1d4/G8Dyproa/+ivTYx42L/c7Vxh3bufcc+F73zPvDp5+GqpcFqYbbVTSRRqllI5yjQc2P5CX\n2aIWWkNPy2w+ffYaz2M2PPsKrcWvRf4B+7Ftm/mB+3VxnHrkqRw1I/rWNK+9Zn4hg+KI3oFetnds\nZ+GUo3jjjcxlWV98EU48MfhazZ3NjC8Zn7X0bRjubniey85cSVFRpni91/YeT73/FK17oaTYew3y\noSEzDdtvluK2baZu4fZu49wl53q2hQ7pIRpbGj0XzXLjnb3v8IcdmUv+n1J1CksrloY+xzM7nuHt\nvW+HPj4Jurrg5eHpAFbNx8n778MXz8ufscoHnZ3m98Fa+jYXmpuNoal0f+Pui7XrWtw1+MOilEJr\nHenOnzpBFwRBEOIJeqoydEEQBCE+IuiCIAhjBBF0QRCEMYIIuiAIwhhBBF0QBGGMIIIuCIIwRhBB\nFwRBGCPkJOhKqY8ppd5SSjUppb6Ur0EJgiAI0Ykt6EqpIuDfgLXACuBypdTR+RpYoWloaBjtIYRC\nxpk/DoUxgowz3xwq44xDLg79VGCz1nqr1rof+E/govwMq/AcKj9kGWf+OBTGCDLOfHOojDMOuQj6\nkcB22+fvDz8mCIIgjAJSFBUEQRgjxF6cSym1Glintf7Y8OdfBrTW+p8dx8nKXIIgCDEo2GqLSqli\noBFYA+wEngEu11q/GeuEgiAIQk7E3uBCaz2olPoc8CAmurldxFwQBGH0SHw9dEEQBKEwJFYUTfOk\nI6XU7Uqp3UqpV2yPTVdKPaiUalRK/U4p5bGPTsHGOFcp9bBS6nWl1KtKqc+ndJzjlFJ/UEq9ODzW\nb6ZxnMNjKlJKvaCUui+tYwRQSm1RSr08/D19ZvixVI1VKTVVKfUrpdSbwz/3VSkcY/Xw9/CF4f/3\nKaU+n7ZxDo/1K8Pfx1eUUncppcrijDMRQT8EJh3dgRmbnS8DD2mtlwEPA18p+KgyGQD+Wmu9AjgN\n+Ozw9zBV49Ra9wJnaa1PBD4EnK2UOp2UjXOYLwBv2D5P4xgBhoAarfWJWutThx9L21hvBTZqrZcD\nxwNvkbIxaq2bhr+HK4GTgP3Af5GycSqlFgB/Dpyotf4QJgq/nDjj1Frn/R+wGnjA9vmXgS8lca0c\nxrgAeMX2+VvA7OGP5wBvjfYYHeP9b+CcNI8TmIApjh+TtnECc4FNQA1wX5p/5sB7QIXjsdSMFZgC\nvOPyeGrG6DK2c4HH0jhOYPrwmKYPi/l9cf/Wk4pcDsVJR0dorXcDaK13AUeM8ngOopRaCJwAPI35\nAadqnMNRxovALqBBa/0G6Rvn94GbAHvRKG1jtNDAJqXUs0qpPxt+LE1jXQS0KKXuGI4zfqiUmpCy\nMTr5JHD38MepGqfWug34LrAN2AHs01o/RIxxysQib1JRLVZKTQJ+DXxBa91F9rhGfZxa6yFtIpe5\nwBlKqRpSNE6l1AXAbq31S4BfX++ofy+HOV2bmOB8TNR2Bin6fmJc5Erg34fHuR/zLjxNYzyIUqoU\nuBD41fBDqRqnUmoxcCMmNagCJiqlrnQZV+A4kxL0HcB82+dzhx9LM7uVUrMBlFJzgD2jPB6UUiUY\nMb9Ta33v8MOpG6eF1roD2AicTLrGeTpwoVLqXeDnmJz/TmBXisZ4EK31zuH/P8BEbaeSru/n+8B2\nrfVzw5/fgxH4NI3RznnA81rrluHP0zbOk4EntNZ7tdaDmJz/w8QYZ1KC/ixwlFJqgVKqDLgMkwul\nCUWmW7sP+NTwx9cC9zpfMAr8GHhDa32r7bFUjVMpNdOqviulxgMfBV4kRePUWn9Vaz1fa70Y87v4\nsNb6aqCelIzRQik1YfhdGUqpiZjs91XS9f3cDWxXSlUPP7QGeJ0UjdHB5ZgbuUXaxtkIrFZKlSul\nFOb7+QZxxplg0P+x4YFuBr48mkUHl7HdDTQDvZjc6jpMQeKh4TE/CEwb5TGeDgwCL2EE8oXh7+mM\nlI3zuOGxvQi8DPzt8OOpGqdtvB9hpCiaujFi8mnrZ/6q9beTtrFiOlueHR7rb4CpaRvj8DgnAB8A\nk22PpXGcN2Fuiq8APwVK44xTJhYJgiCMEaQoKgiCMEYQQRcEQRgjiKALgiCMEUTQBUEQxggi6IIg\nCGMEEXRBEIQxggi6IAjCGEEEXRAEYYzw/wHf5XtwYOeU6gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "plt.plot(data[(data.Survived == 0) & (data.Sex == 'male')].Age.value_counts().sort_index())\n", + "plt.plot(data[(data.Survived == 0) & (data.Sex == 'female')].Age.value_counts().sort_index())\n", + "plt.legend(['Male', 'Female'])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This ultimately shows the amount of men and women who did not survive, as compared to the previous graph of men and women who survived." + ] } ], "metadata": { diff --git a/data_exploration.ipynb b/data_exploration.ipynb index 9f30577..e74ca6c 100644 --- a/data_exploration.ipynb +++ b/data_exploration.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true @@ -90,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -126,7 +126,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 17, "metadata": { "collapsed": false, "scrolled": true @@ -214,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -223,7 +223,7 @@ "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -251,35 +251,16 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ - { - "ename": "TypeError", - "evalue": "float() argument must be a string or a number", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msurvivors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/pyplot.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 3152\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3153\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3154\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3155\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3156\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhold\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwashold\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1810\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[1;32m 1811\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1812\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1813\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1814\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1424\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1425\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1426\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36madd_line\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1706\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_clip_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1707\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1708\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_update_line_limits\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1709\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1710\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_label\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'_line%d'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlines\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/axes/_base.pyc\u001b[0m in \u001b[0;36m_update_line_limits\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[0mFigures\u001b[0m \u001b[0mout\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0mof\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgiven\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mupdating\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataLim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1729\u001b[0m \"\"\"\n\u001b[0;32m-> 1730\u001b[0;31m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1731\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvertices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mget_path\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 923\u001b[0m \"\"\"\n\u001b[1;32m 924\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalidx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 925\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecache\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 926\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_path\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/matplotlib/lines.pyc\u001b[0m in \u001b[0;36mrecache\u001b[0;34m(self, always)\u001b[0m\n\u001b[1;32m 619\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 621\u001b[0;31m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myconv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 622\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 623\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python2.7/site-packages/numpy/core/numeric.pyc\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 472\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 473\u001b[0m \"\"\"\n\u001b[0;32m--> 474\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 475\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 476\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0masanyarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mTypeError\u001b[0m: float() argument must be a string or a number" - ] - }, { "data": { - "image/png": "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\nSWrMyEtSY/8LkDqzw0fZnlYAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEACAYAAACj0I2EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXuUXGWV9p/d3bknpEMCJCEGSEJaBkXuF+OlEBkQFD8d\nvxlBjTKOeMEPRufzAqh0xvEyM8txWOA4SwR0HOAbdQa1I8hFbNCwUEmAcAndgSSQmJCQ+7U73en3\n+2PXS506fU6de9WpU89vrVrddeqcU7urq57a59n7fV8xxoAQQkjz09boAAghhKQDBZ0QQgoCBZ0Q\nQgoCBZ0QQgoCBZ0QQgoCBZ0QQgpCoKCLyC0isllEVrq2/x8RWSUiT4nIN7MLkRBCSBg6QuxzG4Ab\nAfyH3SAiJQDvAvB6Y8ywiMzIJjxCCCFhCczQjTG/A7DDtfmTAL5pjBku77M1g9gIIYREIK6HvhDA\nW0TkURH5jYicnmZQhBBCohPGcvE7bpox5mwROQPAjwHMSy8sQgghUYkr6OsB/A8AGGP+KCIjIjLd\nGLPNvaOIcLIYQgiJgTFGouwf1nKR8s3yMwBvAwARWQhgjJeYO4LK/e36669veAyMkzEyTsZpb3EI\nzNBF5A4AJQDTReQlANcDuBXAbSLyFIBBAItjPTshhJDUCBR0Y8xlPg99KOVYCCGEJIAjRcuUSqVG\nhxAKxpkezRAjwDjTplnijIPE9WpCP4GIyfo5CCGkaIgITEZFUUIIITmHgk4IIQWBgk4IIQWBgk4I\nIQWBgk4IIQWBgk4IIQWBgk4IIQWBgt5C7NgBXHBBo6MghGQFBb2F2LYNWL680VEQQrKCgt5CDAwA\nBw40OgpCSFZQ0FuIwUEVdc7EQEgxoaC3EAMDwMgIMDTU6EgIIVlAQW8hBgaqfxJCigUFvYUYHNSf\n9NEJKSYU9BaCGTohxYaC3kJYIWeGTkgxoaC3ENZyYYZOSDEJFHQRuUVENovISo/H/k5ERkTk8GzC\nI2nCDJ2QYhMmQ78NwKgB4yIyB8D5AF5MOyiSDfTQCSk2gYJujPkdgB0eD30bwOdSj4hkBjN0QopN\nLA9dRC4BsN4Y81TK8ZAMoYdOSLHpiHqAiEwAcC3Ubnl1c2oRkcxghk5IsYks6ADmAzgWwJMiIgDm\nAFguImcaY7Z4HdDd3f3q76VSCaVSKcbTkqTQQyckv/T29qK3tzfROcSEmKlJRI4F0GOMeb3HY2sB\nnGqM8fLZISImzHOQ7PnkJ4HvfQ+44Qbg059udDSEkFqICIwxkdyPMG2LdwB4BMBCEXlJRC537WJA\ny6UpGBgAOjtpuRBSVAItF2PMZQGPz0svHJIlVtBpuRBSTDhStIUYHGSGTkiRoaC3EMzQCSk2FPQW\ngh46IcWGgt5CDA4C06YxQyekqFDQWwhm6IQUGwp6C0EPnZBiQ0FvIdjlQkixoaC3EMzQCSk2FPQW\ngh46IcWGgt5CsMuFkGJDQW8hmKETUmwo6C3CoUN6mzKFGTohRYWC3iIMDgLjxwMTJjBDJ6SoUNBb\nhIGBiqAzQyekmFDQW4SBAWDcOBX1AwcArjlCSPGgoLcI1nLp6ADa2oChoUZHRAhJGwp6i2AtF4C2\nCyFFhYLeIljLBajYLoSQYkFBbxGs5QIwQyekqIRZJPoWEdksIisd2/5JRFaJyBMi8t8icli2YZKk\nOC0XZuiEFJMwGfptAC5wbbsPwInGmJMBrAZwTdqBkXRxWi7M0AkpJoGCboz5HYAdrm0PGGNGyncf\nBTAng9hIijgtF2bohBSTNDz0vwZwTwrnIRnCLhdCik9HkoNF5DoAQ8aYO2rt193d/ervpVIJpVIp\nydOSGLDLhZB809vbi97e3kTniC3oIvIRABcBeFvQvk5BJ42BXS6E5Bt3srtkyZLI5wgr6FK+6R2R\nCwF8DsBbjDGDkZ+V1B12uRBSfMK0Ld4B4BEAC0XkJRG5HMCNACYDuF9EVojIv2UcJ0kIu1wIKT6B\nGbox5jKPzbdlEAvJEGbohBQfjhRtEeihE1J8KOgtArtcCCk+FPQWwd2HTkEnpHhQ0FsE90hRWi6E\nFA8KeovADJ2Q4kNBbxHYtkhI8aGgtwicnIuQ4kNBbxE4ORchxSfR5FwkXxw8CBhTsVacxG1bHBgA\n2tuBMWPSizMOL71U/SU0bhxwzDGNi4eQPEJBLxD/+q/A/v2A11xocQcWfeUrwNFHA1dfnVqYkdm2\nDZg/HzjuuMq2tWuB9euBmTMbFxcheYOCXiBeecU/84479H/zZkAkeL8s2bYNOPZYoL+/sm3BAmDP\nHgo6IU4o6AViz57agh6ny2XXrsbbLbt2AVOnVm8bP16vOgghFSjoBaKWoMftctm5s/EZ+s6dQGdn\n9TYOjiJkNBT0ArF3bzjLJWqGPjISvF+WeGXo48ZR0AlxQ0EvEGEtlygZ+q5d2j3TSHbt8s7QabkQ\nUg0FvUCEtVyiZOg7dwL79qUTX1x27vT20JmhE1INBb1A+Am6MZpluzN0Y2r748YAu3frPkH7Zgkt\nF0LCwZGiBWLPHr25GRzUThUryB0dQFsbMDxc+3z79qlwjh+vwt4oaLkQEg4KeoHYu1dvbpx2iyWM\nj267S6ZP117wRkHLhZBwhFkk+hYR2SwiKx3bponIfSLSJyL3isjUWucg2WOMivnIyOjM1dnhYgkz\nha61Ohot6LRcCAlHmAz9NgAXuLZ9EcADxpguAA8CuCbtwEg09u9XkZs6dbTt4iXoYTJcmxnPmAFs\n3ZpuvFHw60On5UJINYGCboz5HYAdrs3vBvDD8u8/BPC/Uo6LRGTPHmDyZL25BX1wcPSEXWEz9DxY\nLn4jRZmhE1JNXA/9SGPMZgAwxrwM4Mj0QiJx2LMHmDJFb2ll6HEtl1deCb9vGCjohIQjrbZFU+vB\nbsf0f6VSCaVSKaWnJZa9e1XMJ0wYXRiN66HHKYru26fT2r7yCjBpUvj4w8ThZNw43U5IUejt7UVv\nb2+ic8QV9M0icpQxZrOIzASwpdbO3V7zuZJUsRn6hAnhLZewGfqMGcCqVeHi6O/XL4rVq4GTTw4f\nvx+2F/6ww6q3M0MnRcOd7C5ZsiTyOcJaLlK+WX4B4CPl3z8M4OeRn5mkShzLJYsuFzvFrXOq2yTs\n26exumd8pKATMpowbYt3AHgEwEIReUlELgfwTQDni0gfgPPK90kDqVUU9bNcwnS5WMslbJdLf7+u\ncJSWoHv1oAN6xcEuF0KqCbRcjDGX+Tz09pRjIQmIarlklaH39QFvepP+TAOvgijADJ0QLzhStCDY\nouiUKeGLoll0ufT3A+96V3oZutewf4CCTogXFPSCkIWHbi2XGTPCCboxmpm/850q6KZm71M4aLkQ\nEh4KekEIEvQkXS6TJulEXkFfAFu26MRfCxfqRGBp9KPTciEkPBT0gmCLol6CHndyLiumIuFsl/5+\noKtL9+/qSsd2oeVCSHgo6AXBZuhZdLkA4QS9r0+zc0B/plEYrWW5UNAJqYaCXhCcRdEwlktQhj48\nrBN+TZ6s96Nk6EC6Gbqf5UIPnZBqKOgFwemhu7tcvCyXoKH/dnRmW/kdEqYw6s7Q0xB0r2H/AC0X\nQrzgEnQFoVYfepzJudyZcdgMPW3LxS9Dp+VCyGgo6Dnh0CHgkUf0p2XaNOANbwh3vC2KTpwY3kOv\nlaF7CXqt0aLDw8DatcCCBXr/+OOBNWv072lvr953y5bKl08QtFwICQ8FPScsWwa8+90VATcG+P3v\nw2ehcUaK1jq32+qYPh3YsMF//3XrgJkzKyI9YQJw1FHAiy8C8+ZV7/vBDwIf+pDegqDlQkh46KHn\nhA0bgAsuAHp79fbQQ97LyfnhLoo6B/WklaHXslycBVFLV9do22X3bv37wooxLRdCwkNBzwkbNwKz\nZlVv8+pY8cKuJzp5sgqdCHDwYOXxNDz0oKKosyBq8SqM3nsvMDSktzD49aF3dOjfPTwc7jyEtAIU\n9JywaRMwe3b1Nq+eci/seqIdZQPN/UUQZwk6L8slKEP3EnR3ht7Toz5/WEH360MXoY9OiBsKek5I\nkqHbgqjfcfXocvGzXJwZ+qFDwD33AO94R7jM+tCh6l54N7RdCKmGgp4TvDJ0r55yL2xB1OLO7OvR\n5RLGcnn0Uf0b588Pl6G7e+HdMEMnpBoKek7YuNFb0MNk6LYg6ndcnCXo3JZLZ6ee0yuz3rtXs/e5\nc6u3z52rE3Tt26f3e3p0at0xY8IJup/dYmGnCyHVUNBzQlLLxS3ozsw+zvS57gy9vV1FfceO0fuu\nXq395+5Mur1ds/Hnn9f7VtA7OsIJul+Hi/NvoKATUoGCngNsm6F7IeSwRdE4HnpQhu7VXeLno3v5\n5xbburhmjVo2Z5wRPkP363CxcE50QqrhwKIcYLNzkertSTL0IMvFZujGjH5ewNvuqCXobv/cYn30\nl18GLr5Ys/gxY8IVRWm5EBKNRBm6iFwjIs+IyEoRuV1ExqYVWCvhVRAFsi2KdnSouPoJq5fd4VcY\n9SqIWqygW7sFiJahU9AJCU9sQReRYwB8DMApxpiToNn++9MKrJXwKogC6RVFvQQdqO2jew259xtc\nFGS5PPaYTmNw/vm6LUpRlJYLIeFJkqHvBnAQwCQR6QAwEcDGVKJqMbwKokA6RVFjvC0XoLaP7peh\nuwXdriNaK0NftQpYtKji87MoSkg2xBZ0Y8wOAN8C8BKAPwHYaYx5IK3AWgk/yyWNoujwsFor7hkP\nAf8MfWBA55FxZ/Vegr5li2bc06d7xzZjBnD44bpwtIWWCyHZELsoKiLzAHwGwDEAdgH4qYhcZoy5\nw71vd3f3q7+XSiWUSqW4T1tINm4ETjll9PYoGfpxx3kf52e3AP6Di2x3ibtYOn26dqs4+cMfgqf4\n/bu/A973vsr9KEVRPysHoOVCikVvby96e3sTnSNJl8vpAJYZY7YDgIj8D4A3Aqgp6GQ0WRZFvVYr\nsvhluH6ZsVdRtKdHu1dqce211feZoRMyGneyu2TJksjnSOKh9wE4W0TGi4gAOA/AqgTna1myLIp6\nrSdqqZWhewmpuyg6MgIsXVrpXglLWn3oFHRCqknioT8J4D8ALAfwJAAB8L2U4mopsiyK1rJc/ATR\nr7vE7aGvWKHPdfzxwTE6CVsUDepDp+VCSDWJBhYZY/4ZwD+nFEtL4jdKFEinKFrLcomaobsFPU52\nDoT30Gm5EBINDv1vMH6jRIF0RorWslxqeeh+Gfr27ZXVkJyDhaJAy4WQbODQ/wbjVxAF4hdFk3a5\n+FkdY8fql8OePXpbt077y6OS1myL48bVnqOdkFaDGXqD8SuIApXMOsgndhdFrVVjBxWl1eUCaGF0\n61a1Wy68sLJKUhTCCPrgoHcvvBNm6IRUQ0FvMH4FUUuQ7eJcT9TiXFc0bpeLn9VhffSenurBQlEI\nUxT164V3QkEnpBoKeoOpZbkAwYXR/fvVCnFnyvaLIG6Xi1+GPn06sGED8PDDmqHHIUxRNMhuAbgE\nHSFuKOgNJmmG7vbP3cel2eUCqKD/+MfAaacB06b5x1WLMJZLUIcLwCXoCHFDQW8wQRl6UGE0SNCD\nLJcofeiACvpdd8XrbrGEEfSgmRYBWi6EuKGgN5haRVEgOEN3F0Qt1qoJslyiZugzZmhWHNc/B9LN\n0CnohFTIvaA/8QRw6FCjo8iOrC2XoLbFqF0u06frlLh+0+WGIUpRtBYcKUpINbnvQ3/Pe4Dbbwfe\n+MZGR5I+tUaJWsIIurPDxXnc3r3+c6ED/hl6LbujVAKOPNI/njCkVRRlhk5INbkW9IEB4MUXNYst\nIrVGiVqCulySZuhuQTcG2L3b/0vmda/TWxJouRCSDbm2XJ5/XgVm06ZGR5INQQVRIJ2iaJS2xX37\ndPuYMbXjSkJYQaflQkg0ci3o/f36s8gZehhBT1IUjdq2GMbqSErYLhdm6IREI9eC3tenXRVFzdCD\nCqJAOkXRKJNzhbE6khK2KEpBJyQauRb0/n7grW8tboYe1nJJUhSN6qGHsTqSEqYoSsuFkOjkXtBL\npeIKepgMffLkZB561Mm56mG52AWra7Wj0nIhJDq5FvS+PhX0olouaWXoSUaKemXoWQs6EOyjh4lj\n7Fg9x8hIurER0qzkVtC3bdMP65/9WUWYikY9iqJRu1zqYbkA4QQ9KA4RFfWDB9ONjZBmJbeCvnq1\njkZsawNmzgRefrnREaVPWkVRPw89r10uQO3CqDEq6LUGXFlouxBSIZGgi8hUEfmJiKwSkWdE5Ky0\nAuvrA7q69PfZs4vno4cZJQoks1xsUTRvXS5A7cLovn0ac5heeAo6IRWSjhS9AcDdxpj/LSIdACam\nEBMALYja+UKKKOhhRokCyYui48YFZ+jGVOLYuRN4zWvC/Q1JqGW5hJlp0cJOF0IqxM7QReQwAG82\nxtwGAMaYYWPM7rQCc2bos2YVrzAapiAKZDsfekeHCrkzU85DUTRKDMzQCamQJEM/DsBWEbkNwBsA\nPAbgamOMx3RP0Slahv7008Ajj1TuL18eTtCd64p6WSdBRdEDB/wtF0Cz9O9+tyL6zzwDfOADwXEl\nxSnoGzYAd99deWzt2vAZelxBHx4GHn0UeNOb/Pf5/e+Bk0+u/folZeVKYO7c+hSiSfFJIugdAE4F\ncKUx5jER+VcAXwRwvXvH7u7uV38vlUoolUo1TzwyovO4HH+83p81S5c8a2a++lVgxw7g2GMr2xYv\nDnes0z5x4rWeqMWuK7p7d+2Flj//ef2ysZxzDnDqqeHiSoKzKHrHHTqj5lmOCswVV4Q7T1zL5Ve/\nAj71KeCll/z3+fjHgRtu0MFtWfGlL+liIR/7WHbPQZqD3t5e9Pb2JjpHEkHfAGC9Meax8v2fAviC\n145OQQ/D+vXA4YdXhKoIGXp/P3DzzcDpp0c/1gr6jBnV2/3WE3Uet21bbUH/8pejx5MGzqLowABw\nySX6pReVuBn60qX62tRi61a1f7Jk587KnEWktXEnu0uWLIl8jtgeujFmM4D1ImKXOjgPwLNxz+fE\nabcAzS/oIyOj/6Yo+BVG/fxzy5QpmsVnaRnExWm51PL5g4gj6MaooO/fX/vYbduyF/Rdu7ReREga\nJO1yuQrA7SIyBsAaAJcnD0nf4E7xa/ai6MaN2p4Ypq/aC7/CaBhBB+KLZZY4BX1gQK/I4hDHcnn8\ncWDiRH1fbdsGHH306H2s2NdD0Jmhk7RIJOjGmCcBnJFSLK/S31/pcAF02bOgUY95Jkl2DvgLul9B\n1DJ5sg7M8rNkGolb0ONeRcTJ0Ht6dE3U++/3F3Rrx+zcGS+usOzcqX33Q0PZzkFPWoNcjhR1C2Bb\nm2ZTzTpa1H3FEZVaGbpXQdR5nC2O5g1nUbTelktPjxYip0/399Ht9iwz9JER/R/Ong2sW5fd85DW\nIZeC7uxBt8ya1bw+uvuKIypJLJe8XtG4i6JJBD2K5bJxI7BmjbYrzpihhU8v7PYsM/Q9e4BJk4AT\nTqDtQtIhd4I+MKB+ubO9D2juwmgaGXrcomieBT0Ny2XcuGgZ+i9/CVxwgT5/UIbe3p5thm4HUC1c\nyMIoSYfcCfoLL6iYu33fZi6MJs3Q/RaKLoqg19NysXYLECzoc+dmL+idnfreYIZO0iB3gu5ltwDN\nm6EfPKgjIY87Lv454hZFrYeeR9wZej0E/cABoLcXuPBCvR8k6PPmZWu52JktmaGTtMidoPt1hMye\n3ZwZ+gsv6GRXY8fGP0fcoujkyfnN0J1F0aSWS1gP/de/Bk45pdIiGSTo8+fXx3Jhhk7SIneC7peh\nN2tRNKndAhS/KFovy2Xp0ordAqig1yqKzptXH8tlzhydFqLWJGyEhCF3gl4rQ29GQU9aEAWSFUVp\nuSh2dKhT0GfMCM7Q62G5tLUBCxbooi6EJKGuQ042b1Y/+bTT/PfxE/RmLYr29wNnJBx65VcUDeOh\n5zlDz9JyefZZ4J57Kve3b9fRoe4Ba7UE/TWv0auIgwfDWWb79+sMjeeeGy525zTB1nZxT4y2fTuw\nahWwaFG4c5LWpq4Z+r33Al/5iv/j27frh/Ooo0Y/5hwt2kwkHSUK+FsuGzd6v1aWN70JuOqqZM+d\nFVl3udx8s2bkGzfqbWAAuPHG6n2CBH36dBXcsLbLr38NfOIT4WN3rpvqVxj9/veB664Lf07S2tQ1\nQ7eTVPlh/WavkY3O0aLuHvU8k5bl4iXoQf78UUcBF12U7Lmzwl0UTVvQt20DPvxh4CMf8T+2s1On\nFx4eHt0mawW9s1OtkSOOCI6lv18HLYUdxr9zZ6X7qatLEx43S5fqlS0hYahrhj4yoosX+K3SHiR+\nzVYYtfN0hFnIohZegr53r17R1GO5uCxwjxRN23LZunX0dMNu2ts1A9+xo3r70JC+vlOnRsvQ+/r0\nb1q7Ntz+TsvFK0Pftk0XQmmm9zxpLHUVdGOAQ4c0i/EiKONstsKotVuSzqXiVRRdvVoLaW25K2uH\nI2vLxWbYQXgVRrdv19bGtrZogt7fr/WOsC2Ibsulv18/I5Z77gHOP18/M+yAIWGoe4YO+L/hg/zm\nZiuMptGyCHgXRdPw5huJFXRj9Iot7dkWwwq6l4/uPNZaLmHo6wP+/M/DC7rtcgH0C2TcuGp7xY5q\nbdYxGKT+1D1DB/xHxfn1oFuaNUNPinNdUUvQa5V3rKAPDurvca9i/CyXtAQ9bIa+e7fezj03/KhP\n92LYTtvl4EHgvvuAiy9uvkSGNI66Z+gdHd4ZjHsdUS+aLVNJoyBqcfvozZ6h26JoErsF8M7Qh4f1\ntQqz8HJaGfrq1frefe1ro2Xozhit7QIAv/ud3p85s/kSGdI46p6hz5/vncGsXw9Mm1Z7KHuzFUXT\nslyA0YKe5pdFI7BF0aSLlngJ+vbtKpTt7cHHe40W3bo1eoZur5iizMviztC7uirHOicRa7b3PWkc\ndc/Q/TKYMOLXTJlK0nVE3TgLo8ak+2XRCKzlklTQvSyXsHYL4F0UjWO52P/1nDmaeQcVMYeG1FaZ\nNKmyzVkYdQp6s12ZksZR9wz96KNVmNwfkjAZZzN5iUnXEXXjLIxu2aKCGHcdzjzg9NCTTE/glaFH\nEXQ/y8W2PIa1XGyG3tam1kvQMP5du/S94awd2Az9uedU7E86Sbc3UyJDGktiQReRNhFZISK/CNp3\nZETf8E6v0BIm42ym0aJpe9xOy6XZC6JAehl6VoIeN0MHwtkubrsFUDty3Trgrrt0zVMr9s2UyJDG\nkkaGfjWAZ8PsaExtQQ8SwGZaWzRtj9sp6M1eEAUqRdE0BD2J5ZKGoFsLzP5PwkyH6+xBt4wfr9n4\nd79bPYkYM3QSlkSCLiJzAFwE4Pth9rcZurP4YwkrgM1SIErb43Zn6M0u6LYomtRysUvQOQfkhBkl\nagkqioaxXDZt0om/guZlceLsQXfS1aUjV50TfDXLe540nqQZ+rcBfA6ACdoR0A+dyOgM3a4jGmZV\nn2bJVrLI0G1RtNkLokB6lktbW/W8MED9M3T3FZPXFagbL8vFHnv++dWvydSpHC1KwhF7ci4RuRjA\nZmPMEyJSAuA7NKS7uxsA8MgjwLRpJVx6aakqg3n+ee91RL045hj1GfPM0BDw6KM6U15aOIuiRbBc\n0hJ0oGK72Clu7VzmYZg+XdscbbJhj7cZfhhBd3952wzdeU43XpYLAHz845U5biwilU6XWtMlk+am\nt7cXvb29ic6RZLbFRQAuEZGLAEwAMEVE/sMYs9i9oxX0f/on4JVX9A2/enXlDR8l4+zq0gmL8syy\nZbraTdJJuZxYy8VO/rRgQXrnbgTOgUVJF+GwtosVuygZ+rhxetuzR7tOjFHLw3YQWUGvJc7u9+/h\nh+uXzMsvq13ihZ/lcuKJ3vvbwmizf5ETf0qlEkql0qv3lyxZEvkcsS0XY8y1xpi5xph5AN4P4EEv\nMa8+pjLh0eTJFeskSsYZ5nK20Th7iNPCCvq6dfrhzuvCFWFJO0N3drpEEXSg2nbZtUv9cDv97dix\n+vv+/f7He9lrQYVRP8vFj2axGkljqfvAIpvlOAujUfzmZlghPUtBL0JBFEhvpCgwutMlSlEUqC6M\nOguils7O2raL1xVm0PvUz3Lxg4VREoZUBN0Y85Ax5pLg/SrTvToz7SiWi9/ApLzQ16dzoJ9ySrrn\ntUXRIhREgfQGFgEVy8WSJEP3OnbqVP9Ol6Eh4KWX1GJzEpSh+1kufnC0KAlDwzJ0ZwYTJesUCTcS\nr1EsXVo9KCQtbIZehIIokJ3lYowWOaMIunP4v7MgaqlVGF2zRpMM95dSmAydlgtJm7oP/bcZus1g\ntm3TYc611sZ049XHnheysFuASpdLUSyXtAYWAdWWy+7dej/Mos6WoAy9Vi+63xVTUK3HPdNiEBwt\nSsJQ9zVFnRl6f79m2n7riPqR18Lojh3AihXAeeelf26boa9fT8vFjdNy8cqwgwhjufhl6H5fsAsW\nAC++6L++KDN0kgUNy9DnzVNxeuqp6BlnXguj99wDlErAhAnpn3vKFG2Da+Z1RJ2kXRS1gu5V1Awi\nqChaS9D9LLBx41SE/dYXZVGUZEHDPPSxY1WYfvWr6BlnmLkyGoH1z7NgyhTNHpt5HVEnWQwsAqIX\nRIFklkutidJqvU+jFkU5WpSEoWEZOqCZzX33xcvQ3QvqNpqhIf1yylLQgWL450C1oKdtuUQVdHdR\nNI0MHfC/kjQmuuXiHC1KiB91z9Ddgr53b3SRcg9MygNZjA51Yge4FEXQ01qCDqi2XNLI0MN2udh1\nRI8+2vu8frWegQFdTSnqFxkLoySIumfo7gn9gXgilbfCaFbdLU6mTClGQRTIrm0xblE0aGCRl+XS\n368ttH4WmJ/lEtVusbAwSoJoeIY+e3btdUT9yFthtF6CXpQM3VkUTcNysR563KJoHMslaEyA33s0\nqt1i8SuM3nzz6Am9nCxbBjzzTPTnc/KjH2kXF8k3DSuKAsCiRcAPfhDvXHkqjPb3ZzM61M3NNwOn\nn57tc9QLZ9tioy2XyZMrVwt+RVEvQQ8aE+C3vmjUDheLl4f+4ovAFVfUHmh3003Af/5n9OezPPww\nsHgxcM3yrmMKAAAQ9klEQVQ18c9B6kNDi6Ljxuncz3HIU4be05PN6FA355/v3dPcjGRpuUQVdBE9\nZsMGfY9OnFj9uN/Q/6BpGOz6ou7EI03LpaenEosf/f3xk5+hIeDKK4HvfQ/4+c+Bxx6Ldx5SHxqa\noSchTxl6PeyWopHmSFGn5RJH0AH13fv69Kf7PRrXcgG836dJLBd3ht7To2sJ+H0W7PJ4cZOf73wH\nmDkT+Ju/Ab7xDeBTn9LPMcknDc3Qk2AHJh08mM754pLl6NAi09GhwnDgQHIPPWlRFNAvgb4+7y8D\nL8vFvY6oH17F+ySWizND37NHF4355Cf9BXvTJu2oeeEF7WOPwqZNwNe+Btx4o37JLV6s/7dbboke\nO6kPTZuhjx2rHuWaNemcLy5Zjg4tMiIqDnv3Nn6kKKDH9Pd7H2tnunQK4qZN+j+fNq32eb2swbiW\ni7soev/9wDnnaF3FL0Pv7wde/3rgiCM0AYrC5z8PfPSjwGtfq/fb2jRj/9KXRi/bR/JB02boQD5s\nl6VLabfEZcyY9AR9cFCz/UOHgEmTop+jlqC3tVUvAQjUHiHqJE3LxT1a1Fp9tT4HtnAbteb08MNA\nb6+Kt5NTTgH+8i+B666LHj/JnqbN0IHGF0bt6NCLL25cDM3MmDEqTmmNFLX+eZz3WC1BB0b3ooed\nxthrVHPUmRYtztGihw4Bv/ylCvrs2f5rBNg4o4zbGB4GPv1p4F/+xbul+KtfZYE0rzBDT0DWo0OL\nTkeHZtVpWS5xC6KA+u5/+pO//+4ujIZdaGTatMr6opa4GTpQKYz+8Y865fSxx6rQ+wm2vZKIMuX0\nd76j537f+7wf7+zUAumVV7JAmjeYoSeA3S3JsC2YaVkucQuiQOWLwO8LwS3oSZZNjFsUBSqFUdsq\n6/cclqgZ+ssvA//wD5VCqB+LF2ux9dZbo/8NJDtiC7qIzBGRB0XkGRF5SkSuCjqmaBk6BT0ZVtDT\nslziFkSBYEGPa7kAo8U0blEUqBRG3e89L8G2y+PNnx9e0N2FUD9sgfS661ggzRNJ5HUYwGeNMScC\nOAfAlSJS823gHvqflFreYdb09elK8FmPDi0yY8ao7dLenuw8aVguUTL0gwd1hOb8+eHO7U48klgu\ns2cDjz6qmfRZZ/k/B1C9PN6xxwKbN6vF5cfDDwO/+c3oQqgfLJDmj9jyaox52RjzRPn3vQBWAfCZ\nd05J23Kx64s2IkvPau3QVmLMmOR2C1BtuWSZoVtBX7tWW2bDXlmkbbn87GfARRdVfxF6WS7Oq4j2\nduC444Dnn/c+b1Ah1A8WSPNFKvmyiBwL4GQAv6+1X9qWC9A428XtYZLodHQkt1uA6i6XuB66Pa5W\nUdRaLmELohb3ezSp5TI8PNrqW7hQ53NxdtO4WytrFUaDCqF+sECaLxKvKSoikwH8FMDV5Uzdkyef\n1BFm55yT9BmrWbgQeO45/8cPHgS+/OXqmeImTgT+/u+Bww6L95wcHZoOaWboVtBPPjneOTo7K3O6\neDF1KvDKK/p71IW658+vrC/a3q6tmnHfe7Nn6+vmngPJuUaAnZ+9v7/69fDz0bdu1ULob38b74pz\n8WKd6+W97wWOPDL8ce3t+iVz2mkap13EhcQnkaCLSAdUzH9kjPm5337d3d146CH9vb+/BKCU5Gmr\nOOcc4Otf93/8N7/Rft2rHCXbpUuB7m69vIwDR4emQ9qWS5KiaHs78NBD/iM/OzsrdoVbKIMYN05F\ndu1anRdl0qT4dYOuLuCBB7y/EGwG7hT0v/qryuMLF6pP7uauu4C3vz24EOpHWxvw4x8Dd98d7bih\nIeDZZ4H/+i9g5Uq1sU49VW+nnaYefdBI3CLR29uL3t7eROdImqHfCuBZY8wNtXbq7u7GV7+qI89O\nOCHhM7o491zg/e/39097eoAPflCnGLW85z3AiScCl1+uw6Kjwu6WdBgzJn3LJa6gA8Cb3+z/mNNy\n6eurFsow2Ox4/Pj4dgug4vmWt9R+jre9rRKn80qiqwv4/vdHH9fTo5+hJMyZU/0Zi8rwsF5pr1ih\nt54e4Ikn1AJzivypp+o0BkWkVCqhVCq9en/JkiWRzxFb0EVkEYAPAHhKRB4HYABca4z5Ve3j4j6j\nN+PH6xv47ruBD32o+jFjNBtfurR6+xFHAEuWaBGotzdaTENDwL33xs/uSYUsLJckgl4LZ5dLlJZF\niy1aHnNMMkEP8xyA9/J4XpbLgQP6GfjhD7OJKSwdHcDrXqe3xYt128iI1gWsyP/jP+rPKVNGi/ys\nWWxQABIIujFmGYDQF452YqMsCifvepd+o7sF/emn9Z984omjj7niCs1W7rgD+MAHwj/XsmXqic6a\nlSxmoh/itLtc4hZFg7BdLkHriPrR1aV1pLPOit/hEuY57BW71/J4Rxyhn8OtWyuv04MPqiDm0dpo\na6uMcr30Ut1mjFpXVuRvuglYvlwtLLfIz53beiKfuCgaFjvNbRbT3V50EfDZz+q5x46tbLfWiNc/\ntb1dK/t/8Re6T9giFbtb0mPMmOqujLjYqXj37MlOLK3lErSOqB8LF6rPnKTDJcxz2Azc6ypCpNJx\nYwW92d7PIjrdxrx5lY4cY3RxEivyt96qXTeDg6NFft689Dvt8kTd/jQr5END6Z975kx9o/72t9Xb\ng7zus88G3vEOLZCGhf55eqRluQB6ns7O7D6s1nKJ2rJosUKaZFBREM41AvzidNoy1pJs9vezCPCa\n1wDvfrdaqT092u3z9NPAZz6jFs2dd2pX2rRp2tDw2c8Ct98OrFoVfZ74PFOIDB2o2C62lXDLFv1n\nvfWttY/7xjfCF0g5OjRdxoxJb0m98eOz88+BytD/OP45oBbNzp0quFldRYwdq8K2Zo2+Vy+6aPQ+\nziz+8ce1hTfOF1QzMGuW3pyvw9at+nevWKEDoq6/XkfdvuEN1Zn8CSc053KPdcvQ7RJhWWToQEXQ\n7SX83XdrK5bTgvHCFkivvDL48p+jQ9MlrS4XQM+TpaBPmKCdGE89FU/Q7fqijz2WXYYOVATbL0N3\nDnJqxavNGTO0h/8LX1AL7Pnn1a752td0JO3992sHU2cncOaZwCc+oYuzL19e0bA8U3fLJasM/aST\n9Mti1Sq9H+XNesUVwL59WiCtRbP5jXknraIooOfJqiAK6Jd4Z6dOWxs3o+3qAv7wh+wydPsczz1X\n8frdOC2XItgtadDZOdqG2bwZ+Pa39ep92TK9gp82Ta/OP/pR4N/+TefU2b+/0dFXU3fLJasMXUTF\ntqdHu1AeeAD4938Pd6wtkL73vXoOrwyKo0PTJ20PPcsMHdD3xQsvxMvQAT3uJz/JPkPv6fFfHu/4\n4/Vv2LBBfy5alF0szczkyfraOF+fAwf0Cm3FCs3Yb7lFxX/evGq7ppGjXgsj6IBmG1//un6Lvu51\n0QYgnH22em3d3frN7IajQ9OnGQX9yCPjZ9g2s89S0Lu6gL/9W+CMM7wfnzRJr2S++13gggua0ydu\nFBMmqA1z5pmVbQcPAs88UxH5O+9U0bejXq3I12vUa2GKokBl1OgPfhDvUtIWSP/6r0cXSFvRb8ya\nZvLQARXyiRPjH28z+ywtl4UL1eutdRWxcKEK+k03ZRdHqzB2rIq1tWKAyqjX5csrxdcnntAE0yny\nWYx6LVSGbkeN3nkncO210Y93FkgfeqhS/LSjQ7/1rXTjbXWaMUM//PD4x1uRzTJDnz1bs/BaPn9X\nl76/L7wwuzhaGeeo1w9/WLcdOqQFWCvy7lGvTpFPMuq1LoL+pS9pqxCQ3gfYj3e+U78NvUaHhsGO\nIHV66bt3c+3QLBg7Nr33w4QJ2RZFAc2s4/rngF5yH3FEthm6XV80KENftCjZlxOJhp1ZsqsLuOwy\n3WZHvVqRv/FG/b2jQ4U9DmLSGKpX6wlEzD33GOzapbO5HX98ssvWIIaG9EVK8sHbsGH0rHRnnOHd\nNUDis2GDinqUKVf9eO45Heqd5Xtr3TodUZxECB9/XHuesxyt+PTT+l71s7N27NBpEhYsyC4GEg87\n6nX5cuA97xEYYyLl6nUR9KyfgxBCioZIdEEv8KwGhBDSWlDQCSGkIFDQCSGkIFDQCSGkIFDQCSGk\nIFDQCSGkIFDQCSGkICQSdBG5UESeE5F+EflCWkERQgiJTmxBF5E2ADcBuADAiQAuFZHXphVYvem1\nq+vmHMaZHs0QI8A406ZZ4oxDkgz9TACrjTEvGmOGAPw/AO9OJ6z60yz/ZMaZHs0QI8A406ZZ4oxD\nEkE/GsB6x/0N5W2EEEIaAIuihBBSEGJPziUiZwPoNsZcWL7/RQDGGPOPrv04MxchhMSgbrMtikg7\ngD4A5wHYBOAPAC41xqyKdUJCCCGJiL3AhTHmkIh8GsB9UOvmFoo5IYQ0jsznQyeEEFIfMiuK5nnQ\nkYjcIiKbRWSlY9s0EblPRPpE5F4RyXDlx1AxzhGRB0XkGRF5SkSuymmc40Tk9yLyeDnWr+cxznJM\nbSKyQkR+kdcYAUBE1onIk+XX9A/lbbmKVUSmishPRGRV+f9+Vg5jXFh+DVeUf+4SkavyFmc51mvK\nr+NKEbldRMbGiTMTQW+CQUe3QWNz8kUADxhjugA8COCaukdVzTCAzxpjTgRwDoAry69hruI0xgwC\nONcYcwqAkwC8TUQWIWdxlrkawLOO+3mMEQBGAJSMMacYY84sb8tbrDcAuNsYcwKANwB4DjmL0RjT\nX34NTwVwGoB9AO5CzuIUkWMAfAzAKcaYk6BW+KWIE6cxJvUbgLMB3OO4/0UAX8jiuRLEeAyAlY77\nzwE4qvz7TADPNTpGV7w/A/D2PMcJYCK0OP5neYsTwBwA9wMoAfhFnv/nANYCmO7alptYARwG4AWP\n7bmJ0SO2Pwfw2zzGCWBaOaZpZTH/RdzPelaWSzMOOjrSGLMZAIwxLwNIYenidBCRYwGcDOBR6D84\nV3GWrYzHAbwMoNcY8yzyF+e3AXwOgLNolLcYLQbA/SLyRxH5m/K2PMV6HICtInJb2c74nohMzFmM\nbv4KwB3l33MVpzFmB4BvAXgJwJ8A7DLGPIAYcXJgkT+5qBaLyGQAPwVwtTFmL0bH1fA4jTEjRi2X\nOQDeLCIl5ChOEbkYwGZjzBMAavX1Nvy1LLPIqE1wEdRqezNy9HpCs8hTAXynHOc+6FV4nmJ8FREZ\nA+ASAD8pb8pVnCIyD8BnoK7BbACTROQDHnEFxpmVoP8JwFzH/TnlbXlms4gcBQAiMhPAlgbHAxHp\ngIr5j4wxPy9vzl2cFmPMbgB3Azgd+YpzEYBLRGQNgDuhPv+PALycoxhfxRizqfzzFajVdiby9Xpu\nALDeGPNY+f5/QwU+TzE6eQeA5caYreX7eYvzdADLjDHbjTGHoD7/GxEjzqwE/Y8AFojIMSIyFsD7\nob5QnhBUZ2u/APCR8u8fBvBz9wEN4FYAzxpjbnBsy1WcIjLDVt9FZAKA8wE8jhzFaYy51hgz1xgz\nD/pefNAY8yEAPchJjBYRmVi+KoOITIJ6v08hX6/nZgDrRWRhedN5AJ5BjmJ0cSn0i9yStzj7AJwt\nIuNFRKCv57OIE2eGRv+F5UBXA/hiI4sOHrHdAWAjgEGob3U5tCDxQDnm+wB0NjjGRQAOAXgCKpAr\nyq/p4TmL8/Xl2B4H8CSA/1venqs4HfG+FZWiaO5ihPrT9n/+lP3s5C1WaGfLH8ux/g+AqXmLsRzn\nRACvAJji2JbHOD8H/VJcCeCHAMbEiZMDiwghpCCwKEoIIQWBgk4IIQWBgk4IIQWBgk4IIQWBgk4I\nIQWBgk4IIQWBgk4IIQWBgk4IIQXh/wMVsl+q3R23KgAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -287,28 +268,92 @@ } ], "source": [ - "survivors = {}\n", - "for age in range(len(data.Age.sort_index())):\n", - " if data.Survived[age]:\n", - " if data.Age[age] in survivors:\n", - " survivors[data.Age[age]] += 1\n", - " else:\n", - " survivors[data.Age[age]] = 1\n", + "%matplotlib inline\n", + "\n", + "plt.plot(data[(data.Survived == 1)].Age.value_counts().sort_index())\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now this result is not too surprising. The general trend still follows of the previous graph, showing that the largest age group also had the highest survivor count.\n", "\n", + "Next, let's look at male/female survival in each age group." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nBEEoEP5/DKRvbXJ64oAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ "%matplotlib inline\n", "\n", - "plt.plot(survivors)\n", + "plt.plot(data[(data.Survived == 1) & (data.Sex == 'male')].Age.value_counts().sort_index())\n", + "plt.plot(data[(data.Survived == 1) & (data.Sex == 'female')].Age.value_counts().sort_index())\n", + "plt.legend(['Male', 'Female'])\n", "plt.show()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This follows with the idea of women and children first. \n", + "\n", + "Finally, looking at the converse, let's show who had the lowest surivor rate." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { - "collapsed": true + "collapsed": false }, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "image/png": "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\nDnV1d4/G8Dyproa/+ivTYx42L/c7Vxh3bufcc+F73zPvDp5+GqpcFqYbbVTSRRqllI5yjQc2P5CX\n2aIWWkNPy2w+ffYaz2M2PPsKrcWvRf4B+7Ftm/mB+3VxnHrkqRw1I/rWNK+9Zn4hg+KI3oFetnds\nZ+GUo3jjjcxlWV98EU48MfhazZ3NjC8Zn7X0bRjubniey85cSVFRpni91/YeT73/FK17oaTYew3y\noSEzDdtvluK2baZu4fZu49wl53q2hQ7pIRpbGj0XzXLjnb3v8IcdmUv+n1J1CksrloY+xzM7nuHt\nvW+HPj4Jurrg5eHpAFbNx8n778MXz8ufscoHnZ3m98Fa+jYXmpuNoal0f+Pui7XrWtw1+MOilEJr\nHenOnzpBFwRBEOIJeqoydEEQBCE+IuiCIAhjBBF0QRCEMYIIuiAIwhhBBF0QBGGMIIIuCIIwRhBB\nFwRBGCPkJOhKqY8ppd5SSjUppb6Ur0EJgiAI0Ykt6EqpIuDfgLXACuBypdTR+RpYoWloaBjtIYRC\nxpk/DoUxgowz3xwq44xDLg79VGCz1nqr1rof+E/govwMq/AcKj9kGWf+OBTGCDLOfHOojDMOuQj6\nkcB22+fvDz8mCIIgjAJSFBUEQRgjxF6cSym1Glintf7Y8OdfBrTW+p8dx8nKXIIgCDEo2GqLSqli\noBFYA+wEngEu11q/GeuEgiAIQk7E3uBCaz2olPoc8CAmurldxFwQBGH0SHw9dEEQBKEwJFYUTfOk\nI6XU7Uqp3UqpV2yPTVdKPaiUalRK/U4p5bGPTsHGOFcp9bBS6nWl1KtKqc+ndJzjlFJ/UEq9ODzW\nb6ZxnMNjKlJKvaCUui+tYwRQSm1RSr08/D19ZvixVI1VKTVVKfUrpdSbwz/3VSkcY/Xw9/CF4f/3\nKaU+n7ZxDo/1K8Pfx1eUUncppcrijDMRQT8EJh3dgRmbnS8DD2mtlwEPA18p+KgyGQD+Wmu9AjgN\n+Ozw9zBV49Ra9wJnaa1PBD4EnK2UOp2UjXOYLwBv2D5P4xgBhoAarfWJWutThx9L21hvBTZqrZcD\nxwNvkbIxaq2bhr+HK4GTgP3Af5GycSqlFgB/Dpyotf4QJgq/nDjj1Frn/R+wGnjA9vmXgS8lca0c\nxrgAeMX2+VvA7OGP5wBvjfYYHeP9b+CcNI8TmIApjh+TtnECc4FNQA1wX5p/5sB7QIXjsdSMFZgC\nvOPyeGrG6DK2c4HH0jhOYPrwmKYPi/l9cf/Wk4pcDsVJR0dorXcDaK13AUeM8ngOopRaCJwAPI35\nAadqnMNRxovALqBBa/0G6Rvn94GbAHvRKG1jtNDAJqXUs0qpPxt+LE1jXQS0KKXuGI4zfqiUmpCy\nMTr5JHD38MepGqfWug34LrAN2AHs01o/RIxxysQib1JRLVZKTQJ+DXxBa91F9rhGfZxa6yFtIpe5\nwBlKqRpSNE6l1AXAbq31S4BfX++ofy+HOV2bmOB8TNR2Bin6fmJc5Erg34fHuR/zLjxNYzyIUqoU\nuBD41fBDqRqnUmoxcCMmNagCJiqlrnQZV+A4kxL0HcB82+dzhx9LM7uVUrMBlFJzgD2jPB6UUiUY\nMb9Ta33v8MOpG6eF1roD2AicTLrGeTpwoVLqXeDnmJz/TmBXisZ4EK31zuH/P8BEbaeSru/n+8B2\nrfVzw5/fgxH4NI3RznnA81rrluHP0zbOk4EntNZ7tdaDmJz/w8QYZ1KC/ixwlFJqgVKqDLgMkwul\nCUWmW7sP+NTwx9cC9zpfMAr8GHhDa32r7bFUjVMpNdOqviulxgMfBV4kRePUWn9Vaz1fa70Y87v4\nsNb6aqCelIzRQik1YfhdGUqpiZjs91XS9f3cDWxXSlUPP7QGeJ0UjdHB5ZgbuUXaxtkIrFZKlSul\nFOb7+QZxxplg0P+x4YFuBr48mkUHl7HdDTQDvZjc6jpMQeKh4TE/CEwb5TGeDgwCL2EE8oXh7+mM\nlI3zuOGxvQi8DPzt8OOpGqdtvB9hpCiaujFi8mnrZ/6q9beTtrFiOlueHR7rb4CpaRvj8DgnAB8A\nk22PpXGcN2Fuiq8APwVK44xTJhYJgiCMEaQoKgiCMEYQQRcEQRgjiKALgiCMEUTQBUEQxggi6IIg\nCGMEEXRBEIQxggi6IAjCGEEEXRAEYYzw/wHf5XtwYOeU6gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "plt.plot(data[(data.Survived == 0) & (data.Sex == 'male')].Age.value_counts().sort_index())\n", + "plt.plot(data[(data.Survived == 0) & (data.Sex == 'female')].Age.value_counts().sort_index())\n", + "plt.legend(['Male', 'Female'])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This ultimately shows the amount of men and women who did not survive, as compared to the previous graph of men and women who survived." + ] } ], "metadata": { From d70dc2702e0ca2ae0b527dd6e7db22bd0c929dad Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Thu, 28 Jan 2016 21:57:48 -0500 Subject: [PATCH 05/12] started model iteration 1 --- .../model_iteration_1-checkpoint.ipynb | 34 +++++++++++++++ model_iteration_1.ipynb | 41 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .ipynb_checkpoints/model_iteration_1-checkpoint.ipynb create mode 100644 model_iteration_1.ipynb diff --git a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb new file mode 100644 index 0000000..7c301bc --- /dev/null +++ b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb @@ -0,0 +1,34 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb new file mode 100644 index 0000000..f165894 --- /dev/null +++ b/model_iteration_1.ipynb @@ -0,0 +1,41 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Iteration 1\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From 978b962dcb9e93f370d47033a9d0479c34d2e501 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Fri, 29 Jan 2016 00:23:42 -0500 Subject: [PATCH 06/12] working more on iteration --- model_iteration_1.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb index f165894..d3a8eed 100644 --- a/model_iteration_1.ipynb +++ b/model_iteration_1.ipynb @@ -33,7 +33,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.10" } }, "nbformat": 4, From 4812488dfa5c2154e2a172cb363ae18a5781eb9c Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Fri, 29 Jan 2016 01:28:55 -0500 Subject: [PATCH 07/12] attempted model iteration 1 however still needs more work --- .../model_iteration_1-checkpoint.ipynb | 337 ++++++++++++++++++ model_iteration_1.ipynb | 334 ++++++++++++++++- 2 files changed, 669 insertions(+), 2 deletions(-) diff --git a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb index 7c301bc..ca7a28a 100644 --- a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb +++ b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb @@ -1,5 +1,342 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Iteration 1\n", + "\n", + "To start looking at our dataset, we import pandas and scikit-learn to be able to properly manipulate the information. From there, we quickly use the pandas function `describe()` to show each column in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 \n" + ] + } + ], + "source": [ + "import pandas\n", + "\n", + "titanic = pandas.read_csv('train.csv')\n", + "\n", + "print(titanic.describe())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looks a bit like we already have run into a problem. All the columns consist of 891 data points, except for the age column coming in at a paltry 714 data points. To fix this, we fill in the unavailable values as the median (shown with `.fillna()` and `.median()`, so as to not skew the data or throw out otherwise perfectly usable data." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "titanic[\"Age\"] = titanic[\"Age\"].fillna(titanic[\"Age\"].median())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While we were missing some data in one of the columns before, we have also been excluding any data that was non-numerical, as it could not be easily interepreted as numbers can be. To fix this, we start by converting important data into a more readable format (in this case, binary where 1 = female and 0 = male)." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 0\n", + "1 1\n", + "2 1\n", + "3 1\n", + "4 0\n", + "5 0\n", + "6 0\n", + "7 0\n", + "8 1\n", + "9 1\n", + "10 1\n", + "11 1\n", + "12 0\n", + "13 0\n", + "14 1\n", + "15 1\n", + "16 0\n", + "17 0\n", + "18 1\n", + "19 1\n", + "20 0\n", + "21 0\n", + "22 1\n", + "23 0\n", + "24 1\n", + "25 1\n", + "26 0\n", + "27 0\n", + "28 1\n", + "29 0\n", + " ..\n", + "861 0\n", + "862 1\n", + "863 1\n", + "864 0\n", + "865 1\n", + "866 1\n", + "867 0\n", + "868 0\n", + "869 0\n", + "870 0\n", + "871 1\n", + "872 0\n", + "873 0\n", + "874 1\n", + "875 1\n", + "876 0\n", + "877 0\n", + "878 0\n", + "879 1\n", + "880 1\n", + "881 0\n", + "882 1\n", + "883 0\n", + "884 0\n", + "885 1\n", + "886 0\n", + "887 1\n", + "888 1\n", + "889 0\n", + "890 0\n", + "Name: Sex, dtype: object\n" + ] + } + ], + "source": [ + "titanic.loc[titanic[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic.loc[titanic[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "print(titanic[\"Sex\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the sex of the passengers, we now change the embarked column to include more information (where 0 is S, 1 is C, 2 is Q port name)." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic[\"Embarked\"] = titanic[\"Embarked\"].fillna(\"S\")\n", + "\n", + "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "# need to also add a missing value in fare\n", + "titanic[\"Fare\"] = titanic[\"Fare\"].fillna(titanic[\"Fare\"].median())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looking at all this data is quite daunting, even if it was all nicely fixed and in perfect form. However, we should also be making some guesses and links between different columns, which seems even more daunting. Well, as the saying goes, should've used machine learning! So let's do that! We'll start by creating linear regression models between three samples and predictions of our data." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Sourced from dataquest tutorial\n", + "\n", + "# Import the linear regression class\n", + "from sklearn.linear_model import LinearRegression\n", + "# Sklearn also has a helper that makes it easy to do cross validation\n", + "from sklearn.cross_validation import KFold\n", + "\n", + "# The columns we'll use to predict the target\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Fare\", \"Embarked\"]\n", + "\n", + "# Initialize our algorithm class\n", + "alg = LinearRegression()\n", + "# Generate cross validation folds for the titanic dataset. It return the row indices corresponding to train and test.\n", + "# We set random_state to ensure we get the same splits every time we run this.\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", + "\n", + "predictions = []\n", + "for train, test in kf:\n", + " # The predictors we're using the train the algorithm. Note how we only take the rows in the train folds.\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " # The target we're using to train the algorithm.\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " # Training the algorithm using the predictors and target.\n", + " alg.fit(train_predictors, train_target)\n", + " # We can now make predictions on the test fold\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With possible predictions comes checks. To start, we want to check our well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/philip/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:7: FutureWarning: in the future, boolean array-likes will be handled as a boolean array index\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "predictions = np.concatenate(predictions, axis=0)\n", + "\n", + "predictions[predictions > .5] = 1\n", + "predictions[predictions <= .5] = 0\n", + "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next step, to standardize our model a bit, is to attribute the values between 0 and 1. With this in place, we can more accurately judge predictions." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'LogisticRegression' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Initialize our algorithm\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0malg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLogisticRegression\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mscores\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcross_validation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'LogisticRegression' is not defined" + ] + } + ], + "source": [ + "# Sourced from dataquest\n", + "from sklearn import cross_validation\n", + "\n", + "# Initialize our algorithm\n", + "alg = LogisticRegression(random_state=1)\n", + "# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "# Take the mean of the scores (because we have one for each fold)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With predictions and such, we need to show off what we were able to accomplish (or what we need to work more on). To do this, we create a final train data output, and output this in a submission .csv file for processing on Kaggle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Sourced from dataquest\n", + "\n", + "# Initialize the algorithm class\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "# Train the algorithm using all the training data\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "# Make predictions using the test set.\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "# Create a new dataframe with only the columns Kaggle wants from the dataset.\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "General comment:\n", + "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb index d3a8eed..ca7a28a 100644 --- a/model_iteration_1.ipynb +++ b/model_iteration_1.ipynb @@ -4,7 +4,337 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Model Iteration 1\n" + "# Model Iteration 1\n", + "\n", + "To start looking at our dataset, we import pandas and scikit-learn to be able to properly manipulate the information. From there, we quickly use the pandas function `describe()` to show each column in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " PassengerId Survived Pclass Age SibSp \\\n", + "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", + "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", + "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", + "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", + "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", + "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", + "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", + "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", + "\n", + " Parch Fare \n", + "count 891.000000 891.000000 \n", + "mean 0.381594 32.204208 \n", + "std 0.806057 49.693429 \n", + "min 0.000000 0.000000 \n", + "25% 0.000000 7.910400 \n", + "50% 0.000000 14.454200 \n", + "75% 0.000000 31.000000 \n", + "max 6.000000 512.329200 \n" + ] + } + ], + "source": [ + "import pandas\n", + "\n", + "titanic = pandas.read_csv('train.csv')\n", + "\n", + "print(titanic.describe())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looks a bit like we already have run into a problem. All the columns consist of 891 data points, except for the age column coming in at a paltry 714 data points. To fix this, we fill in the unavailable values as the median (shown with `.fillna()` and `.median()`, so as to not skew the data or throw out otherwise perfectly usable data." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "titanic[\"Age\"] = titanic[\"Age\"].fillna(titanic[\"Age\"].median())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While we were missing some data in one of the columns before, we have also been excluding any data that was non-numerical, as it could not be easily interepreted as numbers can be. To fix this, we start by converting important data into a more readable format (in this case, binary where 1 = female and 0 = male)." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 0\n", + "1 1\n", + "2 1\n", + "3 1\n", + "4 0\n", + "5 0\n", + "6 0\n", + "7 0\n", + "8 1\n", + "9 1\n", + "10 1\n", + "11 1\n", + "12 0\n", + "13 0\n", + "14 1\n", + "15 1\n", + "16 0\n", + "17 0\n", + "18 1\n", + "19 1\n", + "20 0\n", + "21 0\n", + "22 1\n", + "23 0\n", + "24 1\n", + "25 1\n", + "26 0\n", + "27 0\n", + "28 1\n", + "29 0\n", + " ..\n", + "861 0\n", + "862 1\n", + "863 1\n", + "864 0\n", + "865 1\n", + "866 1\n", + "867 0\n", + "868 0\n", + "869 0\n", + "870 0\n", + "871 1\n", + "872 0\n", + "873 0\n", + "874 1\n", + "875 1\n", + "876 0\n", + "877 0\n", + "878 0\n", + "879 1\n", + "880 1\n", + "881 0\n", + "882 1\n", + "883 0\n", + "884 0\n", + "885 1\n", + "886 0\n", + "887 1\n", + "888 1\n", + "889 0\n", + "890 0\n", + "Name: Sex, dtype: object\n" + ] + } + ], + "source": [ + "titanic.loc[titanic[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic.loc[titanic[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "print(titanic[\"Sex\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the sex of the passengers, we now change the embarked column to include more information (where 0 is S, 1 is C, 2 is Q port name)." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic[\"Embarked\"] = titanic[\"Embarked\"].fillna(\"S\")\n", + "\n", + "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "# need to also add a missing value in fare\n", + "titanic[\"Fare\"] = titanic[\"Fare\"].fillna(titanic[\"Fare\"].median())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looking at all this data is quite daunting, even if it was all nicely fixed and in perfect form. However, we should also be making some guesses and links between different columns, which seems even more daunting. Well, as the saying goes, should've used machine learning! So let's do that! We'll start by creating linear regression models between three samples and predictions of our data." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Sourced from dataquest tutorial\n", + "\n", + "# Import the linear regression class\n", + "from sklearn.linear_model import LinearRegression\n", + "# Sklearn also has a helper that makes it easy to do cross validation\n", + "from sklearn.cross_validation import KFold\n", + "\n", + "# The columns we'll use to predict the target\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Fare\", \"Embarked\"]\n", + "\n", + "# Initialize our algorithm class\n", + "alg = LinearRegression()\n", + "# Generate cross validation folds for the titanic dataset. It return the row indices corresponding to train and test.\n", + "# We set random_state to ensure we get the same splits every time we run this.\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", + "\n", + "predictions = []\n", + "for train, test in kf:\n", + " # The predictors we're using the train the algorithm. Note how we only take the rows in the train folds.\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " # The target we're using to train the algorithm.\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " # Training the algorithm using the predictors and target.\n", + " alg.fit(train_predictors, train_target)\n", + " # We can now make predictions on the test fold\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With possible predictions comes checks. To start, we want to check our well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/philip/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:7: FutureWarning: in the future, boolean array-likes will be handled as a boolean array index\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "predictions = np.concatenate(predictions, axis=0)\n", + "\n", + "predictions[predictions > .5] = 1\n", + "predictions[predictions <= .5] = 0\n", + "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next step, to standardize our model a bit, is to attribute the values between 0 and 1. With this in place, we can more accurately judge predictions." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'LogisticRegression' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Initialize our algorithm\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0malg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLogisticRegression\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mscores\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcross_validation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'LogisticRegression' is not defined" + ] + } + ], + "source": [ + "# Sourced from dataquest\n", + "from sklearn import cross_validation\n", + "\n", + "# Initialize our algorithm\n", + "alg = LogisticRegression(random_state=1)\n", + "# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "# Take the mean of the scores (because we have one for each fold)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With predictions and such, we need to show off what we were able to accomplish (or what we need to work more on). To do this, we create a final train data output, and output this in a submission .csv file for processing on Kaggle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Sourced from dataquest\n", + "\n", + "# Initialize the algorithm class\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "# Train the algorithm using all the training data\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "# Make predictions using the test set.\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "# Create a new dataframe with only the columns Kaggle wants from the dataset.\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "General comment:\n", + "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." ] }, { @@ -33,7 +363,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, From ad8d44df67ab2ab5bdcc5eba67852a3494a50cb2 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Fri, 29 Jan 2016 01:44:03 -0500 Subject: [PATCH 08/12] got more things working, still needs work --- .../model_iteration_1-checkpoint.ipynb | 87 ++-- model_iteration_1.ipynb | 87 ++-- results.csv | 419 ++++++++++++++++++ 3 files changed, 515 insertions(+), 78 deletions(-) create mode 100644 results.csv diff --git a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb index ca7a28a..f9f2231 100644 --- a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb +++ b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -176,10 +176,7 @@ "\n", "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", - "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", - "\n", - "# need to also add a missing value in fare\n", - "titanic[\"Fare\"] = titanic[\"Fare\"].fillna(titanic[\"Fare\"].median())" + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2" ] }, { @@ -191,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -199,29 +196,19 @@ "source": [ "# Sourced from dataquest tutorial\n", "\n", - "# Import the linear regression class\n", "from sklearn.linear_model import LinearRegression\n", - "# Sklearn also has a helper that makes it easy to do cross validation\n", "from sklearn.cross_validation import KFold\n", "\n", - "# The columns we'll use to predict the target\n", "predictors = [\"Pclass\", \"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Fare\", \"Embarked\"]\n", "\n", - "# Initialize our algorithm class\n", "alg = LinearRegression()\n", - "# Generate cross validation folds for the titanic dataset. It return the row indices corresponding to train and test.\n", - "# We set random_state to ensure we get the same splits every time we run this.\n", "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", "\n", "predictions = []\n", "for train, test in kf:\n", - " # The predictors we're using the train the algorithm. Note how we only take the rows in the train folds.\n", " train_predictors = (titanic[predictors].iloc[train,:])\n", - " # The target we're using to train the algorithm.\n", " train_target = titanic[\"Survived\"].iloc[train]\n", - " # Training the algorithm using the predictors and target.\n", " alg.fit(train_predictors, train_target)\n", - " # We can now make predictions on the test fold\n", " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", " predictions.append(test_predictions)" ] @@ -235,11 +222,18 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.783389450056\n" + ] + }, { "name": "stderr", "output_type": "stream", @@ -255,7 +249,8 @@ "\n", "predictions[predictions > .5] = 1\n", "predictions[predictions <= .5] = 0\n", - "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)" + "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)\n", + "print(accuracy)" ] }, { @@ -267,32 +262,26 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { - "ename": "NameError", - "evalue": "name 'LogisticRegression' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Initialize our algorithm\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0malg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLogisticRegression\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mscores\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcross_validation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'LogisticRegression' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "0.787878787879\n" ] } ], "source": [ "# Sourced from dataquest\n", "from sklearn import cross_validation\n", + "from sklearn.linear_model import LogisticRegression\n", "\n", - "# Initialize our algorithm\n", "alg = LogisticRegression(random_state=1)\n", - "# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\n", "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", - "# Take the mean of the scores (because we have one for each fold)\n", "print(scores.mean())" ] }, @@ -305,7 +294,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": { "collapsed": false }, @@ -313,26 +322,26 @@ "source": [ "# Sourced from dataquest\n", "\n", - "# Initialize the algorithm class\n", "alg = LogisticRegression(random_state=1)\n", "\n", - "# Train the algorithm using all the training data\n", "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", "\n", - "# Make predictions using the test set.\n", "predictions = alg.predict(titanic_test[predictors])\n", "\n", - "# Create a new dataframe with only the columns Kaggle wants from the dataset.\n", "submission = pandas.DataFrame({\n", " \"PassengerId\": titanic_test[\"PassengerId\"],\n", " \"Survived\": predictions\n", - " })" + " })\n", + "submission.to_csv(\"results.csv\", index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "Resulting score: \t\n", + "0.75120\n", + "\n", "General comment:\n", "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." ] diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb index ca7a28a..f9f2231 100644 --- a/model_iteration_1.ipynb +++ b/model_iteration_1.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -176,10 +176,7 @@ "\n", "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", - "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", - "\n", - "# need to also add a missing value in fare\n", - "titanic[\"Fare\"] = titanic[\"Fare\"].fillna(titanic[\"Fare\"].median())" + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2" ] }, { @@ -191,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -199,29 +196,19 @@ "source": [ "# Sourced from dataquest tutorial\n", "\n", - "# Import the linear regression class\n", "from sklearn.linear_model import LinearRegression\n", - "# Sklearn also has a helper that makes it easy to do cross validation\n", "from sklearn.cross_validation import KFold\n", "\n", - "# The columns we'll use to predict the target\n", "predictors = [\"Pclass\", \"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Fare\", \"Embarked\"]\n", "\n", - "# Initialize our algorithm class\n", "alg = LinearRegression()\n", - "# Generate cross validation folds for the titanic dataset. It return the row indices corresponding to train and test.\n", - "# We set random_state to ensure we get the same splits every time we run this.\n", "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", "\n", "predictions = []\n", "for train, test in kf:\n", - " # The predictors we're using the train the algorithm. Note how we only take the rows in the train folds.\n", " train_predictors = (titanic[predictors].iloc[train,:])\n", - " # The target we're using to train the algorithm.\n", " train_target = titanic[\"Survived\"].iloc[train]\n", - " # Training the algorithm using the predictors and target.\n", " alg.fit(train_predictors, train_target)\n", - " # We can now make predictions on the test fold\n", " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", " predictions.append(test_predictions)" ] @@ -235,11 +222,18 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.783389450056\n" + ] + }, { "name": "stderr", "output_type": "stream", @@ -255,7 +249,8 @@ "\n", "predictions[predictions > .5] = 1\n", "predictions[predictions <= .5] = 0\n", - "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)" + "accuracy = sum(predictions[predictions == titanic[\"Survived\"]]) / len(predictions)\n", + "print(accuracy)" ] }, { @@ -267,32 +262,26 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { - "ename": "NameError", - "evalue": "name 'LogisticRegression' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Initialize our algorithm\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0malg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mLogisticRegression\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrandom_state\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;31m# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mscores\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcross_validation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'LogisticRegression' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "0.787878787879\n" ] } ], "source": [ "# Sourced from dataquest\n", "from sklearn import cross_validation\n", + "from sklearn.linear_model import LogisticRegression\n", "\n", - "# Initialize our algorithm\n", "alg = LogisticRegression(random_state=1)\n", - "# Compute the accuracy score for all the cross validation folds. (much simpler than what we did before!)\n", "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", - "# Take the mean of the scores (because we have one for each fold)\n", "print(scores.mean())" ] }, @@ -305,7 +294,27 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": { "collapsed": false }, @@ -313,26 +322,26 @@ "source": [ "# Sourced from dataquest\n", "\n", - "# Initialize the algorithm class\n", "alg = LogisticRegression(random_state=1)\n", "\n", - "# Train the algorithm using all the training data\n", "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", "\n", - "# Make predictions using the test set.\n", "predictions = alg.predict(titanic_test[predictors])\n", "\n", - "# Create a new dataframe with only the columns Kaggle wants from the dataset.\n", "submission = pandas.DataFrame({\n", " \"PassengerId\": titanic_test[\"PassengerId\"],\n", " \"Survived\": predictions\n", - " })" + " })\n", + "submission.to_csv(\"results.csv\", index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "Resulting score: \t\n", + "0.75120\n", + "\n", "General comment:\n", "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." ] diff --git a/results.csv b/results.csv new file mode 100644 index 0000000..485997c --- /dev/null +++ b/results.csv @@ -0,0 +1,419 @@ +PassengerId,Survived +892,0 +893,0 +894,0 +895,0 +896,1 +897,0 +898,1 +899,0 +900,1 +901,0 +902,0 +903,0 +904,1 +905,0 +906,1 +907,1 +908,0 +909,0 +910,1 +911,1 +912,0 +913,0 +914,1 +915,1 +916,1 +917,0 +918,1 +919,0 +920,0 +921,0 +922,0 +923,0 +924,0 +925,1 +926,0 +927,0 +928,1 +929,1 +930,0 +931,0 +932,0 +933,0 +934,0 +935,1 +936,1 +937,0 +938,0 +939,0 +940,1 +941,1 +942,0 +943,0 +944,1 +945,1 +946,0 +947,0 +948,0 +949,0 +950,0 +951,1 +952,0 +953,0 +954,0 +955,1 +956,1 +957,1 +958,1 +959,0 +960,1 +961,1 +962,1 +963,0 +964,1 +965,1 +966,1 +967,1 +968,0 +969,1 +970,0 +971,1 +972,0 +973,0 +974,0 +975,0 +976,0 +977,0 +978,1 +979,1 +980,1 +981,0 +982,1 +983,0 +984,1 +985,0 +986,1 +987,0 +988,1 +989,0 +990,1 +991,0 +992,1 +993,0 +994,0 +995,0 +996,1 +997,0 +998,0 +999,0 +1000,0 +1001,0 +1002,0 +1003,1 +1004,1 +1005,1 +1006,1 +1007,0 +1008,0 +1009,1 +1010,0 +1011,1 +1012,1 +1013,0 +1014,1 +1015,0 +1016,0 +1017,1 +1018,0 +1019,1 +1020,0 +1021,0 +1022,0 +1023,0 +1024,1 +1025,0 +1026,0 +1027,0 +1028,0 +1029,0 +1030,1 +1031,0 +1032,0 +1033,1 +1034,0 +1035,0 +1036,0 +1037,0 +1038,0 +1039,0 +1040,0 +1041,0 +1042,1 +1043,0 +1044,0 +1045,1 +1046,0 +1047,0 +1048,1 +1049,1 +1050,0 +1051,1 +1052,1 +1053,0 +1054,1 +1055,0 +1056,0 +1057,1 +1058,0 +1059,0 +1060,1 +1061,1 +1062,0 +1063,0 +1064,0 +1065,0 +1066,0 +1067,1 +1068,1 +1069,0 +1070,1 +1071,1 +1072,0 +1073,0 +1074,1 +1075,0 +1076,1 +1077,0 +1078,1 +1079,0 +1080,0 +1081,0 +1082,0 +1083,0 +1084,0 +1085,0 +1086,0 +1087,0 +1088,1 +1089,1 +1090,0 +1091,1 +1092,1 +1093,0 +1094,0 +1095,1 +1096,0 +1097,1 +1098,1 +1099,0 +1100,1 +1101,0 +1102,0 +1103,0 +1104,0 +1105,1 +1106,0 +1107,0 +1108,1 +1109,0 +1110,1 +1111,0 +1112,1 +1113,0 +1114,1 +1115,0 +1116,1 +1117,1 +1118,0 +1119,1 +1120,0 +1121,0 +1122,0 +1123,1 +1124,0 +1125,0 +1126,0 +1127,0 +1128,0 +1129,0 +1130,1 +1131,1 +1132,1 +1133,1 +1134,0 +1135,0 +1136,0 +1137,0 +1138,1 +1139,0 +1140,1 +1141,1 +1142,1 +1143,0 +1144,1 +1145,0 +1146,0 +1147,0 +1148,0 +1149,0 +1150,1 +1151,0 +1152,0 +1153,0 +1154,1 +1155,1 +1156,0 +1157,0 +1158,0 +1159,0 +1160,1 +1161,0 +1162,0 +1163,0 +1164,1 +1165,1 +1166,0 +1167,1 +1168,0 +1169,0 +1170,0 +1171,0 +1172,1 +1173,0 +1174,1 +1175,1 +1176,1 +1177,0 +1178,0 +1179,0 +1180,0 +1181,0 +1182,0 +1183,1 +1184,0 +1185,0 +1186,0 +1187,0 +1188,1 +1189,0 +1190,0 +1191,0 +1192,0 +1193,0 +1194,0 +1195,0 +1196,1 +1197,1 +1198,0 +1199,0 +1200,0 +1201,0 +1202,0 +1203,0 +1204,0 +1205,1 +1206,1 +1207,1 +1208,0 +1209,0 +1210,0 +1211,0 +1212,0 +1213,0 +1214,0 +1215,0 +1216,1 +1217,0 +1218,1 +1219,0 +1220,0 +1221,0 +1222,1 +1223,0 +1224,0 +1225,1 +1226,0 +1227,0 +1228,0 +1229,0 +1230,0 +1231,0 +1232,0 +1233,0 +1234,0 +1235,1 +1236,0 +1237,1 +1238,0 +1239,1 +1240,0 +1241,1 +1242,1 +1243,0 +1244,0 +1245,0 +1246,1 +1247,0 +1248,1 +1249,0 +1250,0 +1251,1 +1252,0 +1253,1 +1254,1 +1255,0 +1256,1 +1257,0 +1258,0 +1259,1 +1260,1 +1261,0 +1262,0 +1263,1 +1264,0 +1265,0 +1266,1 +1267,1 +1268,1 +1269,0 +1270,0 +1271,0 +1272,0 +1273,0 +1274,1 +1275,1 +1276,0 +1277,1 +1278,0 +1279,0 +1280,0 +1281,0 +1282,1 +1283,1 +1284,0 +1285,0 +1286,0 +1287,1 +1288,0 +1289,1 +1290,0 +1291,0 +1292,1 +1293,0 +1294,1 +1295,1 +1296,0 +1297,0 +1298,0 +1299,0 +1300,1 +1301,1 +1302,1 +1303,1 +1304,1 +1305,0 +1306,1 +1307,0 +1308,0 +1309,0 From 760176cd088ac73ea986cc94b69b280d647a8f09 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Tue, 2 Feb 2016 00:08:45 -0500 Subject: [PATCH 09/12] iterating --- .ipynb_checkpoints/model_iteration_1-checkpoint.ipynb | 2 +- model_iteration_1.ipynb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb index f9f2231..a4d3663 100644 --- a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb +++ b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb @@ -372,7 +372,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.10" } }, "nbformat": 4, diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb index f9f2231..a4d3663 100644 --- a/model_iteration_1.ipynb +++ b/model_iteration_1.ipynb @@ -372,7 +372,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.10" } }, "nbformat": 4, From 3f59fd2192eef1f4334b91326474fe4bf93ea849 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Tue, 2 Feb 2016 01:06:06 -0500 Subject: [PATCH 10/12] updated iteration 1 results --- .../model_iteration_1-checkpoint.ipynb | 218 ++++++++- model_iteration_1.ipynb | 218 ++++++++- results_family.csv | 419 ++++++++++++++++++ 3 files changed, 827 insertions(+), 28 deletions(-) create mode 100644 results_family.csv diff --git a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb index a4d3663..e072bc6 100644 --- a/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb +++ b/.ipynb_checkpoints/model_iteration_1-checkpoint.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 56, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 57, "metadata": { "collapsed": true }, @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 58, "metadata": { "collapsed": false }, @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 59, "metadata": { "collapsed": false }, @@ -188,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 60, "metadata": { "collapsed": false }, @@ -217,12 +217,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With possible predictions comes checks. To start, we want to check our well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." + "With possible predictions comes checks. To start, we want to check how well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 61, "metadata": { "collapsed": false }, @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 62, "metadata": { "collapsed": false }, @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 63, "metadata": { "collapsed": false }, @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 64, "metadata": { "collapsed": false }, @@ -340,10 +340,200 @@ "metadata": {}, "source": [ "Resulting score: \t\n", - "0.75120\n", + "0.75120" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Revision 1\n", + "Now to look at some more details about the data! The next logical step (considering the available columns in the data) is that of family relations, whether it be siblings, parents, or other family data. First, we start by combining the two columns (`sibsp` and `parch`) into a `family` column." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.791245791246\n" + ] + } + ], + "source": [ + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\"]\n", + "\n", + "alg = LinearRegression()\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", "\n", - "General comment:\n", - "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." + "predictions = []\n", + "for train, test in kf:\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " alg.fit(train_predictors, train_target)\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)\n", + " \n", + "alg = LogisticRegression(random_state=1)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not a huge jump in our score, however that's still ~0.01 better, which is a nice plus. Let's continue with the data/exporting our values for checks." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "titanic_test[\"Family\"] = titanic_test[\"Parch\"] + titanic_test[\"SibSp\"]\n", + "\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_family.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Score! We just moved 284 positions up the leaderboard, with a new score of 0.76555!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Revision 2\n", + "What else is interesting to look at about all this data. We have looked into embarked, family, sex, age, and fare. Considering fare, there may be less of an importance with it. If fare meant different cabins (better being near the top of the boat), there may be a big correlation, but let's see." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Input contains NaN, infinity or a value too large for dtype('float64').", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mtrain_predictors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtrain\u001b[0m\u001b[1;33m,\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[0;32m 11\u001b[0m \u001b[0mtrain_target\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtrain\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrain_predictors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_target\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 13\u001b[0m \u001b[0mtest_predictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtest\u001b[0m\u001b[1;33m,\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[0;32m 14\u001b[0m \u001b[0mpredictions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtest_predictions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/linear_model/base.pyc\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 425\u001b[0m \u001b[0mn_jobs_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 426\u001b[0m X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],\n\u001b[1;32m--> 427\u001b[1;33m y_numeric=True, multi_output=True)\n\u001b[0m\u001b[0;32m 428\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_weight\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0matleast_1d\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_X_y\u001b[1;34m(X, y, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 508\u001b[0m X = check_array(X, accept_sparse, dtype, order, copy, force_all_finite,\n\u001b[0;32m 509\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mallow_nd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mensure_min_samples\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 510\u001b[1;33m ensure_min_features, warn_on_dtype, estimator)\n\u001b[0m\u001b[0;32m 511\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmulti_output\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 512\u001b[0m y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 396\u001b[0m % (array.ndim, estimator_name))\n\u001b[0;32m 397\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mforce_all_finite\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 398\u001b[1;33m \u001b[0m_assert_all_finite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 399\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 400\u001b[0m \u001b[0mshape_repr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_shape_repr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36m_assert_all_finite\u001b[1;34m(X)\u001b[0m\n\u001b[0;32m 52\u001b[0m and not np.isfinite(X).all()):\n\u001b[0;32m 53\u001b[0m raise ValueError(\"Input contains NaN, infinity\"\n\u001b[1;32m---> 54\u001b[1;33m \" or a value too large for %r.\" % X.dtype)\n\u001b[0m\u001b[0;32m 55\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 56\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: Input contains NaN, infinity or a value too large for dtype('float64')." + ] + } + ], + "source": [ + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]\n", + "titanic[\"Fare\"] = np.log(titanic[\"Fare\"])\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\"]\n", + "\n", + "alg = LinearRegression()\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", + "\n", + "predictions = []\n", + "for train, test in kf:\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " alg.fit(train_predictors, train_target)\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)\n", + " \n", + "alg = LogisticRegression(random_state=1)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When I attempt to take the log of the fare data (to lessen it overall), the errors show that there are missing values (which there aren't) and is unable to proceed. I am unsure of why this is the case. From this point, assuming it worked, I would do the steps below to create a new Kaggle score." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "titanic_test[\"Family\"] = titanic_test[\"Parch\"] + titanic_test[\"SibSp\"]\n", + "\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_fare.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And assuming things worked, I would be putting my updated score here." ] }, { @@ -372,7 +562,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/model_iteration_1.ipynb b/model_iteration_1.ipynb index a4d3663..e072bc6 100644 --- a/model_iteration_1.ipynb +++ b/model_iteration_1.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 56, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 57, "metadata": { "collapsed": true }, @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 58, "metadata": { "collapsed": false }, @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 59, "metadata": { "collapsed": false }, @@ -188,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 60, "metadata": { "collapsed": false }, @@ -217,12 +217,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With possible predictions comes checks. To start, we want to check our well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." + "With possible predictions comes checks. To start, we want to check how well we did with our guesses. A really simple way of doing this is checking if values in our prediction exactly match values in the dataset." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 61, "metadata": { "collapsed": false }, @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 62, "metadata": { "collapsed": false }, @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 63, "metadata": { "collapsed": false }, @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 64, "metadata": { "collapsed": false }, @@ -340,10 +340,200 @@ "metadata": {}, "source": [ "Resulting score: \t\n", - "0.75120\n", + "0.75120" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Revision 1\n", + "Now to look at some more details about the data! The next logical step (considering the available columns in the data) is that of family relations, whether it be siblings, parents, or other family data. First, we start by combining the two columns (`sibsp` and `parch`) into a `family` column." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.791245791246\n" + ] + } + ], + "source": [ + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\"]\n", + "\n", + "alg = LinearRegression()\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", "\n", - "General comment:\n", - "Unable to figure out why the linear regression does not function. This causes the whole file to fail and not be able to process forward for submission. Will revise on the weekend." + "predictions = []\n", + "for train, test in kf:\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " alg.fit(train_predictors, train_target)\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)\n", + " \n", + "alg = LogisticRegression(random_state=1)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not a huge jump in our score, however that's still ~0.01 better, which is a nice plus. Let's continue with the data/exporting our values for checks." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "titanic_test[\"Family\"] = titanic_test[\"Parch\"] + titanic_test[\"SibSp\"]\n", + "\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_family.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Score! We just moved 284 positions up the leaderboard, with a new score of 0.76555!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Revision 2\n", + "What else is interesting to look at about all this data. We have looked into embarked, family, sex, age, and fare. Considering fare, there may be less of an importance with it. If fare meant different cabins (better being near the top of the boat), there may be a big correlation, but let's see." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "Input contains NaN, infinity or a value too large for dtype('float64').", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mtrain_predictors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtrain\u001b[0m\u001b[1;33m,\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[0;32m 11\u001b[0m \u001b[0mtrain_target\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtrain\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrain_predictors\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_target\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 13\u001b[0m \u001b[0mtest_predictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mtest\u001b[0m\u001b[1;33m,\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[0;32m 14\u001b[0m \u001b[0mpredictions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtest_predictions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/linear_model/base.pyc\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 425\u001b[0m \u001b[0mn_jobs_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 426\u001b[0m X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],\n\u001b[1;32m--> 427\u001b[1;33m y_numeric=True, multi_output=True)\n\u001b[0m\u001b[0;32m 428\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_weight\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0matleast_1d\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_X_y\u001b[1;34m(X, y, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 508\u001b[0m X = check_array(X, accept_sparse, dtype, order, copy, force_all_finite,\n\u001b[0;32m 509\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mallow_nd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mensure_min_samples\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 510\u001b[1;33m ensure_min_features, warn_on_dtype, estimator)\n\u001b[0m\u001b[0;32m 511\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmulti_output\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 512\u001b[0m y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 396\u001b[0m % (array.ndim, estimator_name))\n\u001b[0;32m 397\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mforce_all_finite\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 398\u001b[1;33m \u001b[0m_assert_all_finite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 399\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 400\u001b[0m \u001b[0mshape_repr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_shape_repr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36m_assert_all_finite\u001b[1;34m(X)\u001b[0m\n\u001b[0;32m 52\u001b[0m and not np.isfinite(X).all()):\n\u001b[0;32m 53\u001b[0m raise ValueError(\"Input contains NaN, infinity\"\n\u001b[1;32m---> 54\u001b[1;33m \" or a value too large for %r.\" % X.dtype)\n\u001b[0m\u001b[0;32m 55\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 56\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: Input contains NaN, infinity or a value too large for dtype('float64')." + ] + } + ], + "source": [ + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]\n", + "titanic[\"Fare\"] = np.log(titanic[\"Fare\"])\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\"]\n", + "\n", + "alg = LinearRegression()\n", + "kf = KFold(titanic.shape[0], n_folds=3, random_state=1)\n", + "\n", + "predictions = []\n", + "for train, test in kf:\n", + " train_predictors = (titanic[predictors].iloc[train,:])\n", + " train_target = titanic[\"Survived\"].iloc[train]\n", + " alg.fit(train_predictors, train_target)\n", + " test_predictions = alg.predict(titanic[predictors].iloc[test,:])\n", + " predictions.append(test_predictions)\n", + " \n", + "alg = LogisticRegression(random_state=1)\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], titanic[\"Survived\"], cv=3)\n", + "print(scores.mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When I attempt to take the log of the fare data (to lessen it overall), the errors show that there are missing values (which there aren't) and is unable to proceed. I am unsure of why this is the case. From this point, assuming it worked, I would do the steps below to create a new Kaggle score." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0 \n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", + "\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "\n", + "titanic_test[\"Family\"] = titanic_test[\"Parch\"] + titanic_test[\"SibSp\"]\n", + "\n", + "alg = LogisticRegression(random_state=1)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_fare.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And assuming things worked, I would be putting my updated score here." ] }, { @@ -372,7 +562,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/results_family.csv b/results_family.csv new file mode 100644 index 0000000..be91bd5 --- /dev/null +++ b/results_family.csv @@ -0,0 +1,419 @@ +PassengerId,Survived +892,0 +893,0 +894,0 +895,0 +896,1 +897,0 +898,1 +899,0 +900,1 +901,0 +902,0 +903,0 +904,1 +905,0 +906,1 +907,1 +908,0 +909,0 +910,1 +911,1 +912,0 +913,0 +914,1 +915,1 +916,1 +917,0 +918,1 +919,0 +920,0 +921,0 +922,0 +923,0 +924,0 +925,0 +926,0 +927,0 +928,1 +929,1 +930,0 +931,0 +932,0 +933,0 +934,0 +935,1 +936,1 +937,0 +938,0 +939,0 +940,1 +941,0 +942,0 +943,0 +944,1 +945,1 +946,0 +947,0 +948,0 +949,0 +950,0 +951,1 +952,0 +953,0 +954,0 +955,1 +956,1 +957,1 +958,1 +959,0 +960,1 +961,1 +962,1 +963,0 +964,1 +965,1 +966,1 +967,1 +968,0 +969,1 +970,0 +971,1 +972,0 +973,0 +974,0 +975,0 +976,0 +977,0 +978,1 +979,1 +980,1 +981,0 +982,1 +983,0 +984,1 +985,0 +986,1 +987,0 +988,1 +989,0 +990,1 +991,0 +992,1 +993,0 +994,0 +995,0 +996,1 +997,0 +998,0 +999,0 +1000,0 +1001,0 +1002,0 +1003,1 +1004,1 +1005,1 +1006,1 +1007,0 +1008,0 +1009,1 +1010,0 +1011,1 +1012,1 +1013,0 +1014,1 +1015,0 +1016,0 +1017,1 +1018,0 +1019,1 +1020,0 +1021,0 +1022,0 +1023,0 +1024,0 +1025,0 +1026,0 +1027,0 +1028,0 +1029,0 +1030,1 +1031,0 +1032,0 +1033,1 +1034,0 +1035,0 +1036,0 +1037,0 +1038,0 +1039,0 +1040,0 +1041,0 +1042,1 +1043,0 +1044,0 +1045,0 +1046,0 +1047,0 +1048,1 +1049,1 +1050,0 +1051,1 +1052,1 +1053,0 +1054,1 +1055,0 +1056,0 +1057,1 +1058,0 +1059,0 +1060,1 +1061,1 +1062,0 +1063,0 +1064,0 +1065,0 +1066,0 +1067,1 +1068,1 +1069,0 +1070,1 +1071,1 +1072,0 +1073,0 +1074,1 +1075,0 +1076,1 +1077,0 +1078,1 +1079,0 +1080,0 +1081,0 +1082,0 +1083,0 +1084,0 +1085,0 +1086,0 +1087,0 +1088,1 +1089,1 +1090,0 +1091,1 +1092,1 +1093,0 +1094,0 +1095,1 +1096,0 +1097,1 +1098,1 +1099,0 +1100,1 +1101,0 +1102,0 +1103,0 +1104,0 +1105,1 +1106,0 +1107,0 +1108,1 +1109,0 +1110,1 +1111,0 +1112,1 +1113,0 +1114,1 +1115,0 +1116,1 +1117,1 +1118,0 +1119,1 +1120,0 +1121,0 +1122,0 +1123,1 +1124,0 +1125,0 +1126,0 +1127,0 +1128,0 +1129,0 +1130,1 +1131,1 +1132,1 +1133,1 +1134,0 +1135,0 +1136,0 +1137,0 +1138,1 +1139,0 +1140,1 +1141,1 +1142,1 +1143,0 +1144,1 +1145,0 +1146,0 +1147,0 +1148,0 +1149,0 +1150,1 +1151,0 +1152,0 +1153,0 +1154,1 +1155,1 +1156,0 +1157,0 +1158,0 +1159,0 +1160,1 +1161,0 +1162,0 +1163,0 +1164,1 +1165,1 +1166,0 +1167,1 +1168,0 +1169,0 +1170,0 +1171,0 +1172,1 +1173,0 +1174,1 +1175,1 +1176,1 +1177,0 +1178,0 +1179,0 +1180,0 +1181,0 +1182,0 +1183,1 +1184,0 +1185,0 +1186,0 +1187,0 +1188,1 +1189,0 +1190,0 +1191,0 +1192,0 +1193,0 +1194,0 +1195,0 +1196,1 +1197,1 +1198,0 +1199,0 +1200,0 +1201,0 +1202,0 +1203,0 +1204,0 +1205,1 +1206,1 +1207,1 +1208,0 +1209,0 +1210,0 +1211,0 +1212,0 +1213,0 +1214,0 +1215,0 +1216,1 +1217,0 +1218,1 +1219,0 +1220,0 +1221,0 +1222,1 +1223,0 +1224,0 +1225,1 +1226,0 +1227,0 +1228,0 +1229,0 +1230,0 +1231,0 +1232,0 +1233,0 +1234,0 +1235,1 +1236,0 +1237,1 +1238,0 +1239,1 +1240,0 +1241,1 +1242,1 +1243,0 +1244,0 +1245,0 +1246,1 +1247,0 +1248,1 +1249,0 +1250,0 +1251,1 +1252,0 +1253,1 +1254,1 +1255,0 +1256,1 +1257,0 +1258,0 +1259,1 +1260,1 +1261,0 +1262,0 +1263,1 +1264,0 +1265,0 +1266,1 +1267,1 +1268,1 +1269,0 +1270,0 +1271,0 +1272,0 +1273,0 +1274,1 +1275,1 +1276,0 +1277,1 +1278,0 +1279,0 +1280,0 +1281,0 +1282,1 +1283,1 +1284,0 +1285,0 +1286,0 +1287,1 +1288,0 +1289,1 +1290,0 +1291,0 +1292,1 +1293,0 +1294,1 +1295,1 +1296,0 +1297,0 +1298,0 +1299,0 +1300,1 +1301,1 +1302,1 +1303,1 +1304,1 +1305,0 +1306,1 +1307,0 +1308,0 +1309,0 From c830961076255047cde159e1ac244c2ca65914cf Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Tue, 2 Feb 2016 02:42:34 -0500 Subject: [PATCH 11/12] working on second iteration: --- .../model_iteration_2-checkpoint.ipynb | 220 +++++++++ model_iteration_2.ipynb | 220 +++++++++ results_improved.csv | 419 ++++++++++++++++++ 3 files changed, 859 insertions(+) create mode 100644 .ipynb_checkpoints/model_iteration_2-checkpoint.ipynb create mode 100644 model_iteration_2.ipynb create mode 100644 results_improved.csv diff --git a/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb new file mode 100644 index 0000000..21b958c --- /dev/null +++ b/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb @@ -0,0 +1,220 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Iteration 2\n", + "Building off the work we have accomplished previously, we are now looking to improve our score and see how to better analyze the data in our dataset. I really like the inclusion of family from previous work, so I am going to continue with that idea. The main steps that we plan on taking are shown below:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I am initially going to start with Kaggle's own method to improving a submission (https://www.dataquest.io/mission/75/improving-your-submission), then will proceed from there." + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# importing modules and data\n", + "import pandas\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.cross_validation import KFold\n", + "import numpy as np\n", + "from sklearn import cross_validation\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "import re\n", + "import operator\n", + "from sklearn.feature_selection import SelectKBest, f_classif\n", + "\n", + "titanic = pandas.read_csv('train.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# fixing age column and standardizing sex and embarked column\n", + "titanic[\"Age\"] = titanic[\"Age\"].fillna(titanic[\"Age\"].median())\n", + "titanic.loc[titanic[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic.loc[titanic[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic[\"Embarked\"] = titanic[\"Embarked\"].fillna(\"S\")\n", + "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# interest in title length (and assumed wealth with such) (using dataquest tutorial)\n", + "titanic[\"NameLength\"] = titanic[\"Name\"].apply(lambda x: len(x))\n", + "\n", + "def get_title(name):\n", + " title_search = re.search(' ([A-Za-z]+)\\.', name)\n", + " if title_search:\n", + " return title_search.group(1)\n", + " return \"\"\n", + "\n", + "titles = titanic[\"Name\"].apply(get_title)\n", + "\n", + "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "for k,v in title_mapping.items():\n", + " titles[titles == k] = v\n", + "\n", + "titanic[\"Title\"] = titles" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.838383838384\n" + ] + } + ], + "source": [ + "# linear regression step\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \n", + " \"Embarked\", \"Family\", \"Title\"]\n", + "\n", + "alg = RandomForestClassifier(random_state=1, n_estimators=150, \n", + " min_samples_split=8, min_samples_leaf=4)\n", + "\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], \n", + " titanic[\"Survived\"], cv=3)\n", + "\n", + "print scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Holy machine learning, Batman! We just jumped from 0.78 to a solid 0.83 from previous work by switching algorithm, along with checking titles." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "could not convert string to float: Dona", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 29\u001b[1;33m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic_test\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\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 30\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m submission = pandas.DataFrame({\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 496\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 497\u001b[0m \"\"\"\n\u001b[1;32m--> 498\u001b[1;33m \u001b[0mproba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 499\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 500\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_outputs_\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict_proba\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 535\u001b[0m \"\"\"\n\u001b[0;32m 536\u001b[0m \u001b[1;31m# Check data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;31m# Assign chunk of trees to jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 317\u001b[0m \"call `fit` before exploiting the model.\")\n\u001b[0;32m 318\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 319\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 320\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 321\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X, check_input)\u001b[0m\n\u001b[0;32m 363\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 365\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mDTYPE\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maccept_sparse\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"csr\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 366\u001b[0m if issparse(X) and (X.indices.dtype != np.intc or\n\u001b[0;32m 367\u001b[0m X.indptr.dtype != np.intc):\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 371\u001b[0m force_all_finite)\n\u001b[0;32m 372\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 373\u001b[1;33m \u001b[0marray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 374\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 375\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: could not convert string to float: Dona" + ] + } + ], + "source": [ + "# code to compute information for submission\n", + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "titanic_test[\"Family\"] = titanic_test[\"SibSp\"] + titanic_test[\"Parch\"]\n", + "\n", + "# getting info for titles (sort of involved)\n", + "titles_test = titanic_test[\"Name\"].apply(get_title)\n", + "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "for k,v in title_mapping_test.items():\n", + " titles_test[titles_test == k] = v\n", + " \n", + "titanic_test[\"Title\"] = titles_test\n", + "\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \n", + " \"Embarked\", \"Family\", \"Title\"]\n", + "\n", + "alg = RandomForestClassifier(random_state=1, n_estimators=150, \n", + " min_samples_split=8, min_samples_leaf=4)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_improved.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, assuming the code above worked (submission stuff doesn't currently, however the prediction from train data is probably not too far off), I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With all this in mind, when I submitted the score to Kaggle I received a score of: SCOREHERE. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Now continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/model_iteration_2.ipynb b/model_iteration_2.ipynb new file mode 100644 index 0000000..21b958c --- /dev/null +++ b/model_iteration_2.ipynb @@ -0,0 +1,220 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Iteration 2\n", + "Building off the work we have accomplished previously, we are now looking to improve our score and see how to better analyze the data in our dataset. I really like the inclusion of family from previous work, so I am going to continue with that idea. The main steps that we plan on taking are shown below:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I am initially going to start with Kaggle's own method to improving a submission (https://www.dataquest.io/mission/75/improving-your-submission), then will proceed from there." + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# importing modules and data\n", + "import pandas\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.cross_validation import KFold\n", + "import numpy as np\n", + "from sklearn import cross_validation\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "import re\n", + "import operator\n", + "from sklearn.feature_selection import SelectKBest, f_classif\n", + "\n", + "titanic = pandas.read_csv('train.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# fixing age column and standardizing sex and embarked column\n", + "titanic[\"Age\"] = titanic[\"Age\"].fillna(titanic[\"Age\"].median())\n", + "titanic.loc[titanic[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic.loc[titanic[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic[\"Embarked\"] = titanic[\"Embarked\"].fillna(\"S\")\n", + "titanic.loc[titanic[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic.loc[titanic[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic.loc[titanic[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "titanic[\"Family\"] = titanic[\"SibSp\"] + titanic[\"Parch\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# interest in title length (and assumed wealth with such) (using dataquest tutorial)\n", + "titanic[\"NameLength\"] = titanic[\"Name\"].apply(lambda x: len(x))\n", + "\n", + "def get_title(name):\n", + " title_search = re.search(' ([A-Za-z]+)\\.', name)\n", + " if title_search:\n", + " return title_search.group(1)\n", + " return \"\"\n", + "\n", + "titles = titanic[\"Name\"].apply(get_title)\n", + "\n", + "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "for k,v in title_mapping.items():\n", + " titles[titles == k] = v\n", + "\n", + "titanic[\"Title\"] = titles" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.838383838384\n" + ] + } + ], + "source": [ + "# linear regression step\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \n", + " \"Embarked\", \"Family\", \"Title\"]\n", + "\n", + "alg = RandomForestClassifier(random_state=1, n_estimators=150, \n", + " min_samples_split=8, min_samples_leaf=4)\n", + "\n", + "scores = cross_validation.cross_val_score(alg, titanic[predictors], \n", + " titanic[\"Survived\"], cv=3)\n", + "\n", + "print scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Holy machine learning, Batman! We just jumped from 0.78 to a solid 0.83 from previous work by switching algorithm, along with checking titles." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "could not convert string to float: Dona", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 29\u001b[1;33m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic_test\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\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 30\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m submission = pandas.DataFrame({\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 496\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 497\u001b[0m \"\"\"\n\u001b[1;32m--> 498\u001b[1;33m \u001b[0mproba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 499\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 500\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_outputs_\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict_proba\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 535\u001b[0m \"\"\"\n\u001b[0;32m 536\u001b[0m \u001b[1;31m# Check data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;31m# Assign chunk of trees to jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 317\u001b[0m \"call `fit` before exploiting the model.\")\n\u001b[0;32m 318\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 319\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 320\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 321\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X, check_input)\u001b[0m\n\u001b[0;32m 363\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 365\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mDTYPE\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maccept_sparse\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"csr\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 366\u001b[0m if issparse(X) and (X.indices.dtype != np.intc or\n\u001b[0;32m 367\u001b[0m X.indptr.dtype != np.intc):\n", + "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 371\u001b[0m force_all_finite)\n\u001b[0;32m 372\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 373\u001b[1;33m \u001b[0marray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 374\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 375\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: could not convert string to float: Dona" + ] + } + ], + "source": [ + "# code to compute information for submission\n", + "titanic_test = pandas.read_csv(\"test.csv\")\n", + "\n", + "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0\n", + "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", + "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"S\", \"Embarked\"] = 0\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"C\", \"Embarked\"] = 1\n", + "titanic_test.loc[titanic_test[\"Embarked\"] == \"Q\", \"Embarked\"] = 2\n", + "titanic_test[\"Family\"] = titanic_test[\"SibSp\"] + titanic_test[\"Parch\"]\n", + "\n", + "# getting info for titles (sort of involved)\n", + "titles_test = titanic_test[\"Name\"].apply(get_title)\n", + "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "for k,v in title_mapping_test.items():\n", + " titles_test[titles_test == k] = v\n", + " \n", + "titanic_test[\"Title\"] = titles_test\n", + "\n", + "predictors = [\"Pclass\", \"Sex\", \"Age\", \"Fare\", \n", + " \"Embarked\", \"Family\", \"Title\"]\n", + "\n", + "alg = RandomForestClassifier(random_state=1, n_estimators=150, \n", + " min_samples_split=8, min_samples_leaf=4)\n", + "\n", + "alg.fit(titanic[predictors], titanic[\"Survived\"])\n", + "\n", + "predictions = alg.predict(titanic_test[predictors])\n", + "\n", + "submission = pandas.DataFrame({\n", + " \"PassengerId\": titanic_test[\"PassengerId\"],\n", + " \"Survived\": predictions\n", + " })\n", + "submission.to_csv(\"results_improved.csv\", index=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, assuming the code above worked (submission stuff doesn't currently, however the prediction from train data is probably not too far off), I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With all this in mind, when I submitted the score to Kaggle I received a score of: SCOREHERE. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Now continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/results_improved.csv b/results_improved.csv new file mode 100644 index 0000000..109586a --- /dev/null +++ b/results_improved.csv @@ -0,0 +1,419 @@ +PassengerId,Survived +892,0 +893,0 +894,0 +895,0 +896,0 +897,0 +898,1 +899,0 +900,1 +901,0 +902,0 +903,0 +904,1 +905,0 +906,1 +907,1 +908,0 +909,0 +910,1 +911,1 +912,0 +913,0 +914,1 +915,1 +916,1 +917,0 +918,1 +919,0 +920,0 +921,0 +922,1 +923,0 +924,0 +925,0 +926,0 +927,0 +928,1 +929,1 +930,0 +931,0 +932,0 +933,1 +934,0 +935,1 +936,1 +937,0 +938,0 +939,0 +940,1 +941,1 +942,1 +943,0 +944,1 +945,1 +946,0 +947,0 +948,0 +949,0 +950,0 +951,1 +952,0 +953,0 +954,0 +955,1 +956,1 +957,1 +958,1 +959,0 +960,1 +961,1 +962,1 +963,0 +964,1 +965,0 +966,1 +967,1 +968,0 +969,1 +970,0 +971,1 +972,0 +973,0 +974,0 +975,0 +976,0 +977,0 +978,1 +979,1 +980,1 +981,0 +982,0 +983,0 +984,1 +985,0 +986,0 +987,0 +988,1 +989,0 +990,1 +991,0 +992,1 +993,0 +994,0 +995,0 +996,1 +997,0 +998,0 +999,0 +1000,0 +1001,0 +1002,0 +1003,1 +1004,1 +1005,1 +1006,1 +1007,0 +1008,0 +1009,1 +1010,0 +1011,1 +1012,1 +1013,0 +1014,1 +1015,0 +1016,0 +1017,1 +1018,0 +1019,0 +1020,0 +1021,0 +1022,0 +1023,0 +1024,1 +1025,0 +1026,0 +1027,0 +1028,0 +1029,0 +1030,1 +1031,0 +1032,0 +1033,1 +1034,0 +1035,0 +1036,0 +1037,0 +1038,0 +1039,0 +1040,0 +1041,0 +1042,1 +1043,0 +1044,0 +1045,0 +1046,0 +1047,0 +1048,1 +1049,1 +1050,0 +1051,1 +1052,1 +1053,0 +1054,1 +1055,0 +1056,0 +1057,1 +1058,0 +1059,0 +1060,1 +1061,1 +1062,0 +1063,0 +1064,0 +1065,0 +1066,0 +1067,1 +1068,1 +1069,0 +1070,1 +1071,1 +1072,0 +1073,0 +1074,1 +1075,0 +1076,1 +1077,0 +1078,1 +1079,0 +1080,0 +1081,0 +1082,0 +1083,0 +1084,0 +1085,0 +1086,0 +1087,0 +1088,1 +1089,1 +1090,0 +1091,1 +1092,1 +1093,0 +1094,0 +1095,1 +1096,0 +1097,1 +1098,1 +1099,0 +1100,1 +1101,0 +1102,0 +1103,0 +1104,0 +1105,0 +1106,0 +1107,0 +1108,1 +1109,0 +1110,1 +1111,0 +1112,1 +1113,0 +1114,1 +1115,0 +1116,1 +1117,0 +1118,0 +1119,1 +1120,0 +1121,0 +1122,1 +1123,1 +1124,0 +1125,0 +1126,0 +1127,0 +1128,0 +1129,0 +1130,1 +1131,1 +1132,1 +1133,1 +1134,0 +1135,0 +1136,0 +1137,1 +1138,1 +1139,0 +1140,1 +1141,1 +1142,1 +1143,0 +1144,1 +1145,0 +1146,0 +1147,0 +1148,0 +1149,0 +1150,1 +1151,0 +1152,0 +1153,0 +1154,1 +1155,1 +1156,0 +1157,0 +1158,0 +1159,0 +1160,1 +1161,0 +1162,0 +1163,0 +1164,1 +1165,1 +1166,0 +1167,1 +1168,0 +1169,0 +1170,0 +1171,0 +1172,1 +1173,0 +1174,1 +1175,1 +1176,1 +1177,0 +1178,0 +1179,0 +1180,0 +1181,0 +1182,1 +1183,1 +1184,0 +1185,0 +1186,0 +1187,0 +1188,1 +1189,0 +1190,0 +1191,0 +1192,0 +1193,0 +1194,0 +1195,0 +1196,1 +1197,1 +1198,1 +1199,0 +1200,0 +1201,0 +1202,0 +1203,0 +1204,0 +1205,1 +1206,1 +1207,1 +1208,0 +1209,1 +1210,0 +1211,0 +1212,0 +1213,0 +1214,0 +1215,1 +1216,1 +1217,0 +1218,1 +1219,1 +1220,0 +1221,0 +1222,1 +1223,0 +1224,0 +1225,1 +1226,0 +1227,0 +1228,0 +1229,0 +1230,0 +1231,0 +1232,1 +1233,0 +1234,0 +1235,1 +1236,0 +1237,1 +1238,0 +1239,1 +1240,0 +1241,1 +1242,1 +1243,0 +1244,0 +1245,0 +1246,1 +1247,0 +1248,1 +1249,0 +1250,0 +1251,0 +1252,0 +1253,1 +1254,1 +1255,0 +1256,1 +1257,0 +1258,0 +1259,1 +1260,1 +1261,1 +1262,0 +1263,1 +1264,0 +1265,0 +1266,1 +1267,1 +1268,0 +1269,0 +1270,0 +1271,0 +1272,0 +1273,0 +1274,1 +1275,1 +1276,0 +1277,1 +1278,0 +1279,0 +1280,0 +1281,0 +1282,1 +1283,1 +1284,0 +1285,0 +1286,0 +1287,1 +1288,0 +1289,1 +1290,0 +1291,0 +1292,1 +1293,0 +1294,1 +1295,1 +1296,0 +1297,0 +1298,0 +1299,1 +1300,1 +1301,1 +1302,1 +1303,1 +1304,1 +1305,0 +1306,1 +1307,0 +1308,0 +1309,0 From d2daf49febaa5eec015f04533fa70f9b276668f0 Mon Sep 17 00:00:00 2001 From: Philip Seger Date: Tue, 2 Feb 2016 09:51:13 -0500 Subject: [PATCH 12/12] fixed errors in submission data --- .../model_iteration_2-checkpoint.ipynb | 42 +++---- model_iteration_2.ipynb | 42 +++---- results_improved.csv | 118 +++++++++--------- 3 files changed, 91 insertions(+), 111 deletions(-) diff --git a/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb b/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb index 21b958c..12fcee0 100644 --- a/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb +++ b/.ipynb_checkpoints/model_iteration_2-checkpoint.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 13, "metadata": { "collapsed": true }, @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -121,33 +121,17 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 17, "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "could not convert string to float: Dona", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 29\u001b[1;33m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic_test\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\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 30\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m submission = pandas.DataFrame({\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 496\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 497\u001b[0m \"\"\"\n\u001b[1;32m--> 498\u001b[1;33m \u001b[0mproba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 499\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 500\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_outputs_\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict_proba\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 535\u001b[0m \"\"\"\n\u001b[0;32m 536\u001b[0m \u001b[1;31m# Check data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;31m# Assign chunk of trees to jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 317\u001b[0m \"call `fit` before exploiting the model.\")\n\u001b[0;32m 318\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 319\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 320\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 321\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X, check_input)\u001b[0m\n\u001b[0;32m 363\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 365\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mDTYPE\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maccept_sparse\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"csr\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 366\u001b[0m if issparse(X) and (X.indices.dtype != np.intc or\n\u001b[0;32m 367\u001b[0m X.indptr.dtype != np.intc):\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 371\u001b[0m force_all_finite)\n\u001b[0;32m 372\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 373\u001b[1;33m \u001b[0marray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 374\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 375\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: could not convert string to float: Dona" - ] - } - ], + "outputs": [], "source": [ "# code to compute information for submission\n", "titanic_test = pandas.read_csv(\"test.csv\")\n", "\n", "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0\n", "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", @@ -158,7 +142,13 @@ "\n", "# getting info for titles (sort of involved)\n", "titles_test = titanic_test[\"Name\"].apply(get_title)\n", - "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \n", + " \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \n", + " \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \n", + " \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \n", + " \"Countess\": 10, \"Jonkheer\": 10, \n", + " \"Sir\": 9, \"Capt\": 7, \"Ms\": 2,\n", + " \"Dona\": 10}\n", "for k,v in title_mapping_test.items():\n", " titles_test[titles_test == k] = v\n", " \n", @@ -185,14 +175,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, assuming the code above worked (submission stuff doesn't currently, however the prediction from train data is probably not too far off), I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " + "Now I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "With all this in mind, when I submitted the score to Kaggle I received a score of: SCOREHERE. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Now continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." + "With all this in mind, when I submitted the score to Kaggle I received a score of: `0.79426`. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." ] } ], diff --git a/model_iteration_2.ipynb b/model_iteration_2.ipynb index 21b958c..12fcee0 100644 --- a/model_iteration_2.ipynb +++ b/model_iteration_2.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 13, "metadata": { "collapsed": true }, @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -121,33 +121,17 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 17, "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "could not convert string to float: Dona", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtitanic\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"Survived\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 29\u001b[1;33m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0malg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitanic_test\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mpredictors\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 30\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m submission = pandas.DataFrame({\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 496\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 497\u001b[0m \"\"\"\n\u001b[1;32m--> 498\u001b[1;33m \u001b[0mproba\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 499\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 500\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_outputs_\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36mpredict_proba\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 535\u001b[0m \"\"\"\n\u001b[0;32m 536\u001b[0m \u001b[1;31m# Check data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;31m# Assign chunk of trees to jobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/ensemble/forest.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X)\u001b[0m\n\u001b[0;32m 317\u001b[0m \"call `fit` before exploiting the model.\")\n\u001b[0;32m 318\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 319\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 320\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 321\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[1;34m(self, X, check_input)\u001b[0m\n\u001b[0;32m 363\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 365\u001b[1;33m \u001b[0mX\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mDTYPE\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maccept_sparse\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"csr\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 366\u001b[0m if issparse(X) and (X.indices.dtype != np.intc or\n\u001b[0;32m 367\u001b[0m X.indptr.dtype != np.intc):\n", - "\u001b[1;32m/home/philip/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc\u001b[0m in \u001b[0;36mcheck_array\u001b[1;34m(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[0;32m 371\u001b[0m force_all_finite)\n\u001b[0;32m 372\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 373\u001b[1;33m \u001b[0marray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0morder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0morder\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 374\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 375\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mensure_2d\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: could not convert string to float: Dona" - ] - } - ], + "outputs": [], "source": [ "# code to compute information for submission\n", "titanic_test = pandas.read_csv(\"test.csv\")\n", "\n", "titanic_test[\"Age\"] = titanic_test[\"Age\"].fillna(titanic_test[\"Age\"].median())\n", + "titanic_test[\"Fare\"] = titanic_test[\"Fare\"].fillna(titanic_test[\"Fare\"].median())\n", "titanic_test.loc[titanic_test[\"Sex\"] == \"male\", \"Sex\"] = 0\n", "titanic_test.loc[titanic_test[\"Sex\"] == \"female\", \"Sex\"] = 1\n", "titanic_test[\"Embarked\"] = titanic_test[\"Embarked\"].fillna(\"S\")\n", @@ -158,7 +142,13 @@ "\n", "# getting info for titles (sort of involved)\n", "titles_test = titanic_test[\"Name\"].apply(get_title)\n", - "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \"Countess\": 10, \"Jonkheer\": 10, \"Sir\": 9, \"Capt\": 7, \"Ms\": 2}\n", + "title_mapping_test = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \n", + " \"Master\": 4, \"Dr\": 5, \"Rev\": 6, \n", + " \"Major\": 7, \"Col\": 7, \"Mlle\": 8, \n", + " \"Mme\": 8, \"Don\": 9, \"Lady\": 10, \n", + " \"Countess\": 10, \"Jonkheer\": 10, \n", + " \"Sir\": 9, \"Capt\": 7, \"Ms\": 2,\n", + " \"Dona\": 10}\n", "for k,v in title_mapping_test.items():\n", " titles_test[titles_test == k] = v\n", " \n", @@ -185,14 +175,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, assuming the code above worked (submission stuff doesn't currently, however the prediction from train data is probably not too far off), I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " + "Now I chose to ignore a couple things from the optimization tutorial, and change some things around. For one, having family name and linking the number of siblings/spouses and such does not provide an increase in score. Along with that, you might have notices our `predictions` containing `[\"Pclass\", \"Sex\", \"Age\", \"Fare\", \"Embarked\", \"Family\", \"Title\"]`. This does not include `SibSp` and `Parch`, as those values only brought the score down as well. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "With all this in mind, when I submitted the score to Kaggle I received a score of: SCOREHERE. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Now continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." + "With all this in mind, when I submitted the score to Kaggle I received a score of: `0.79426`. This seems to follow closely with the prediction, however being more rigorous with the `RandomForestClassifier` (going to `n_estimators=1000` or even higher) may help with results. Along with that, I did not modify how data scaled much. For example, taking the log of age could probably result in a more even score throughout, without skewing other results. Continuing forward, it might be best to start exploring other algorithms that may favor balancing data, and possibly stepping away from the `RandomForestClassifier` for `RandomForestRegressor` or other similar ensemble methods of sorting and classifying our data. On top of that, more interest might be needed in the relation of age, class, and other attributes of the dataset, without pruning data or generalizing mean results." ] } ], diff --git a/results_improved.csv b/results_improved.csv index 109586a..687bc4c 100644 --- a/results_improved.csv +++ b/results_improved.csv @@ -3,7 +3,7 @@ PassengerId,Survived 893,0 894,0 895,0 -896,0 +896,1 897,0 898,1 899,0 @@ -17,28 +17,28 @@ PassengerId,Survived 907,1 908,0 909,0 -910,1 +910,0 911,1 912,0 -913,0 +913,1 914,1 -915,1 +915,0 916,1 917,0 918,1 919,0 -920,0 +920,1 921,0 -922,1 +922,0 923,0 -924,0 +924,1 925,0 926,0 927,0 -928,1 -929,1 +928,0 +929,0 930,0 -931,0 +931,1 932,0 933,1 934,0 @@ -49,7 +49,7 @@ PassengerId,Survived 939,0 940,1 941,1 -942,1 +942,0 943,0 944,1 945,1 @@ -67,29 +67,29 @@ PassengerId,Survived 957,1 958,1 959,0 -960,1 +960,0 961,1 962,1 963,0 -964,1 +964,0 965,0 966,1 -967,1 +967,0 968,0 969,1 970,0 971,1 -972,0 +972,1 973,0 974,0 975,0 976,0 977,0 978,1 -979,1 +979,0 980,1 -981,0 -982,0 +981,1 +982,1 983,0 984,1 985,0 @@ -126,41 +126,41 @@ PassengerId,Survived 1016,0 1017,1 1018,0 -1019,0 +1019,1 1020,0 1021,0 1022,0 1023,0 -1024,1 +1024,0 1025,0 1026,0 1027,0 1028,0 1029,0 -1030,1 +1030,0 1031,0 1032,0 1033,1 1034,0 1035,0 -1036,0 +1036,1 1037,0 1038,0 1039,0 -1040,0 +1040,1 1041,0 1042,1 1043,0 1044,0 -1045,0 +1045,1 1046,0 1047,0 1048,1 1049,1 -1050,0 +1050,1 1051,1 1052,1 -1053,0 +1053,1 1054,1 1055,0 1056,0 @@ -168,7 +168,7 @@ PassengerId,Survived 1058,0 1059,0 1060,1 -1061,1 +1061,0 1062,0 1063,0 1064,0 @@ -191,20 +191,20 @@ PassengerId,Survived 1081,0 1082,0 1083,0 -1084,0 +1084,1 1085,0 -1086,0 +1086,1 1087,0 1088,1 1089,1 1090,0 -1091,1 +1091,0 1092,1 -1093,0 -1094,0 +1093,1 +1094,1 1095,1 1096,0 -1097,1 +1097,0 1098,1 1099,0 1100,1 @@ -212,7 +212,7 @@ PassengerId,Survived 1102,0 1103,0 1104,0 -1105,0 +1105,1 1106,0 1107,0 1108,1 @@ -224,12 +224,12 @@ PassengerId,Survived 1114,1 1115,0 1116,1 -1117,0 +1117,1 1118,0 1119,1 1120,0 1121,0 -1122,1 +1122,0 1123,1 1124,0 1125,0 @@ -244,14 +244,14 @@ PassengerId,Survived 1134,0 1135,0 1136,0 -1137,1 +1137,0 1138,1 1139,0 1140,1 -1141,1 +1141,0 1142,1 1143,0 -1144,1 +1144,0 1145,0 1146,0 1147,0 @@ -267,7 +267,7 @@ PassengerId,Survived 1157,0 1158,0 1159,0 -1160,1 +1160,0 1161,0 1162,0 1163,0 @@ -279,8 +279,8 @@ PassengerId,Survived 1169,0 1170,0 1171,0 -1172,1 -1173,0 +1172,0 +1173,1 1174,1 1175,1 1176,1 @@ -289,10 +289,10 @@ PassengerId,Survived 1179,0 1180,0 1181,0 -1182,1 +1182,0 1183,1 1184,0 -1185,0 +1185,1 1186,0 1187,0 1188,1 @@ -305,8 +305,8 @@ PassengerId,Survived 1195,0 1196,1 1197,1 -1198,1 -1199,0 +1198,0 +1199,1 1200,0 1201,0 1202,0 @@ -316,7 +316,7 @@ PassengerId,Survived 1206,1 1207,1 1208,0 -1209,1 +1209,0 1210,0 1211,0 1212,0 @@ -326,7 +326,7 @@ PassengerId,Survived 1216,1 1217,0 1218,1 -1219,1 +1219,0 1220,0 1221,0 1222,1 @@ -339,11 +339,11 @@ PassengerId,Survived 1229,0 1230,0 1231,0 -1232,1 +1232,0 1233,0 1234,0 1235,1 -1236,0 +1236,1 1237,1 1238,0 1239,1 @@ -358,7 +358,7 @@ PassengerId,Survived 1248,1 1249,0 1250,0 -1251,0 +1251,1 1252,0 1253,1 1254,1 @@ -366,9 +366,9 @@ PassengerId,Survived 1256,1 1257,0 1258,0 -1259,1 +1259,0 1260,1 -1261,1 +1261,0 1262,0 1263,1 1264,0 @@ -389,9 +389,9 @@ PassengerId,Survived 1279,0 1280,0 1281,0 -1282,1 +1282,0 1283,1 -1284,0 +1284,1 1285,0 1286,0 1287,1 @@ -402,18 +402,18 @@ PassengerId,Survived 1292,1 1293,0 1294,1 -1295,1 +1295,0 1296,0 1297,0 1298,0 -1299,1 +1299,0 1300,1 1301,1 1302,1 1303,1 -1304,1 +1304,0 1305,0 1306,1 1307,0 1308,0 -1309,0 +1309,1