From 9b8fbfa70435c1a1b292122d965c073e4daa452b Mon Sep 17 00:00:00 2001 From: Jeanlebaptist Date: Wed, 30 Jul 2025 16:35:12 +0200 Subject: [PATCH] logistic regression with pathon --- ChurnData.csv | 201 +++ lab-logistic-regression-with-python.ipynb | 1391 ++++++++++++++++++++- 2 files changed, 1536 insertions(+), 56 deletions(-) create mode 100644 ChurnData.csv diff --git a/ChurnData.csv b/ChurnData.csv new file mode 100644 index 0000000..179441c --- /dev/null +++ b/ChurnData.csv @@ -0,0 +1,201 @@ +tenure,age,address,income,ed,employ,equip,callcard,wireless,longmon,tollmon,equipmon,cardmon,wiremon,longten,tollten,cardten,voice,pager,internet,callwait,confer,ebill,loglong,logtoll,lninc,custcat,churn +11.000,33.000,7.000,136.000,5.000,5.000,0.000,1.000,1.000,4.400,20.750,0.000,15.250,35.700,42.000,211.450,125.000,1.000,1.000,0.000,1.000,1.000,0.000,1.482,3.033,4.913,4.000,1.000 +33.000,33.000,12.000,33.000,2.000,0.000,0.000,0.000,0.000,9.450,0.000,0.000,0.000,0.000,288.800,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.246,3.240,3.497,1.000,1.000 +23.000,30.000,9.000,30.000,1.000,2.000,0.000,0.000,0.000,6.300,0.000,0.000,0.000,0.000,157.050,0.000,0.000,0.000,0.000,0.000,0.000,1.000,0.000,1.841,3.240,3.401,3.000,0.000 +38.000,35.000,5.000,76.000,2.000,10.000,1.000,1.000,1.000,6.050,45.000,50.100,23.250,64.900,239.550,1873.050,880.000,1.000,1.000,1.000,1.000,1.000,1.000,1.800,3.807,4.331,4.000,0.000 +7.000,35.000,14.000,80.000,2.000,15.000,0.000,1.000,0.000,7.100,22.000,0.000,23.750,0.000,47.450,166.100,145.000,1.000,0.000,0.000,1.000,1.000,0.000,1.960,3.091,4.382,3.000,0.000 +68.000,52.000,17.000,120.000,1.000,24.000,0.000,1.000,0.000,20.700,0.000,0.000,22.000,0.000,1391.050,0.000,1505.000,0.000,0.000,0.000,0.000,0.000,0.000,3.030,3.240,4.787,1.000,0.000 +42.000,40.000,7.000,37.000,2.000,8.000,1.000,1.000,1.000,8.250,23.500,36.900,28.000,37.400,399.150,950.650,1190.000,1.000,0.000,1.000,1.000,1.000,1.000,2.110,3.157,3.611,4.000,0.000 +9.000,21.000,1.000,17.000,2.000,2.000,0.000,0.000,0.000,2.900,0.000,0.000,0.000,0.000,25.250,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.065,3.240,2.833,1.000,0.000 +35.000,50.000,26.000,140.000,2.000,21.000,0.000,1.000,0.000,6.500,27.500,0.000,35.000,0.000,247.550,1068.250,1215.000,0.000,0.000,0.000,1.000,1.000,0.000,1.872,3.314,4.942,3.000,0.000 +49.000,51.000,27.000,63.000,4.000,19.000,0.000,1.000,0.000,12.850,25.750,0.000,14.250,0.000,585.600,1278.450,635.000,0.000,0.000,1.000,1.000,0.000,1.000,2.553,3.248,4.143,2.000,0.000 +56.000,52.000,28.000,49.000,2.000,12.000,0.000,1.000,0.000,24.750,0.000,0.000,22.250,0.000,1349.050,0.000,1215.000,0.000,0.000,0.000,0.000,0.000,0.000,3.209,3.240,3.892,2.000,0.000 +47.000,40.000,16.000,127.000,4.000,12.000,1.000,1.000,0.000,19.700,0.000,28.150,14.750,0.000,909.900,0.000,680.000,0.000,0.000,1.000,0.000,0.000,1.000,2.981,3.240,4.844,2.000,0.000 +56.000,50.000,1.000,80.000,2.000,24.000,0.000,1.000,1.000,28.800,55.500,0.000,21.250,61.100,1558.100,3119.450,1065.000,1.000,1.000,0.000,1.000,1.000,0.000,3.360,4.016,4.382,4.000,0.000 +69.000,51.000,11.000,438.000,4.000,23.000,1.000,1.000,0.000,29.000,0.000,47.050,24.750,0.000,1815.400,0.000,1655.000,0.000,1.000,1.000,0.000,1.000,0.000,3.367,3.240,6.082,4.000,0.000 +16.000,27.000,5.000,37.000,3.000,5.000,0.000,0.000,0.000,6.000,0.000,0.000,0.000,0.000,80.700,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.792,3.240,3.611,1.000,0.000 +4.000,35.000,16.000,161.000,5.000,6.000,1.000,0.000,1.000,3.400,23.750,49.800,0.000,35.750,10.350,103.100,0.000,1.000,1.000,1.000,1.000,1.000,1.000,1.224,3.168,5.081,4.000,1.000 +27.000,51.000,3.000,80.000,5.000,11.000,1.000,0.000,0.000,7.100,0.000,39.400,0.000,0.000,176.200,0.000,0.000,0.000,1.000,1.000,0.000,0.000,1.000,1.960,3.240,4.382,2.000,0.000 +52.000,61.000,3.000,53.000,5.000,1.000,1.000,1.000,1.000,12.250,0.000,38.400,8.750,35.950,631.700,0.000,465.000,1.000,0.000,1.000,0.000,1.000,1.000,2.506,3.240,3.970,2.000,0.000 +64.000,25.000,4.000,76.000,3.000,2.000,1.000,1.000,0.000,24.050,0.000,35.400,21.250,0.000,1536.550,0.000,1400.000,0.000,0.000,0.000,0.000,1.000,1.000,3.180,3.240,4.331,3.000,0.000 +12.000,24.000,2.000,19.000,1.000,0.000,0.000,1.000,0.000,4.000,24.750,0.000,27.250,0.000,46.000,299.000,295.000,0.000,0.000,0.000,1.000,1.000,0.000,1.386,3.209,2.944,3.000,1.000 +35.000,61.000,23.000,41.000,2.000,11.000,0.000,1.000,0.000,9.600,0.000,0.000,9.500,0.000,353.550,0.000,295.000,0.000,0.000,0.000,0.000,0.000,0.000,2.262,3.240,3.714,1.000,0.000 +13.000,54.000,2.000,31.000,4.000,2.000,0.000,0.000,0.000,5.850,0.000,0.000,0.000,0.000,97.000,0.000,0.000,1.000,0.000,1.000,0.000,0.000,1.000,1.766,3.240,3.434,1.000,0.000 +45.000,22.000,2.000,36.000,4.000,0.000,1.000,0.000,0.000,9.950,14.750,26.150,0.000,0.000,412.100,663.100,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.298,2.691,3.584,2.000,1.000 +3.000,37.000,13.000,24.000,1.000,3.000,0.000,0.000,0.000,2.000,0.000,0.000,0.000,0.000,3.050,0.000,0.000,1.000,0.000,0.000,0.000,1.000,1.000,0.693,3.240,3.178,1.000,0.000 +53.000,22.000,1.000,25.000,4.000,0.000,1.000,1.000,0.000,12.050,0.000,27.150,6.500,0.000,666.000,0.000,335.000,0.000,0.000,1.000,0.000,0.000,1.000,2.489,3.240,3.219,2.000,0.000 +17.000,42.000,6.000,131.000,5.000,6.000,1.000,0.000,1.000,5.800,0.000,35.350,0.000,21.650,103.100,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.758,3.240,4.875,2.000,1.000 +59.000,43.000,4.000,101.000,2.000,22.000,0.000,1.000,0.000,13.650,0.000,0.000,20.750,0.000,817.650,0.000,1195.000,0.000,0.000,0.000,0.000,1.000,0.000,2.614,3.240,4.615,2.000,0.000 +57.000,37.000,11.000,108.000,4.000,9.000,1.000,1.000,0.000,21.800,27.250,42.000,8.000,0.000,1292.000,1492.100,425.000,0.000,0.000,1.000,1.000,1.000,0.000,3.082,3.305,4.682,3.000,0.000 +3.000,24.000,2.000,20.000,2.000,3.000,0.000,1.000,0.000,3.350,22.500,0.000,9.250,0.000,7.550,49.550,15.000,1.000,0.000,1.000,1.000,1.000,0.000,1.209,3.114,2.996,3.000,0.000 +4.000,47.000,5.000,123.000,4.000,11.000,1.000,1.000,0.000,2.500,0.000,25.300,13.750,0.000,9.250,0.000,40.000,0.000,0.000,1.000,0.000,0.000,1.000,0.916,3.240,4.812,1.000,0.000 +29.000,26.000,7.000,34.000,1.000,7.000,0.000,1.000,0.000,6.500,0.000,0.000,16.000,0.000,198.700,0.000,490.000,0.000,0.000,0.000,1.000,0.000,0.000,1.872,3.240,3.526,3.000,0.000 +64.000,55.000,28.000,104.000,1.000,26.000,0.000,1.000,0.000,15.000,0.000,0.000,39.250,0.000,960.950,0.000,2360.000,0.000,0.000,0.000,0.000,1.000,0.000,2.708,3.240,4.644,3.000,0.000 +22.000,34.000,1.000,46.000,3.000,1.000,1.000,0.000,0.000,7.100,0.000,23.400,0.000,0.000,125.050,0.000,0.000,0.000,0.000,1.000,0.000,0.000,0.000,1.960,3.240,3.829,2.000,0.000 +33.000,54.000,18.000,57.000,4.000,4.000,1.000,0.000,0.000,7.500,30.250,33.900,0.000,0.000,226.250,1105.750,0.000,0.000,0.000,1.000,1.000,0.000,0.000,2.015,3.409,4.043,3.000,1.000 +18.000,69.000,11.000,58.000,3.000,8.000,1.000,1.000,1.000,6.350,27.250,53.950,11.750,63.000,118.050,454.050,175.000,1.000,1.000,1.000,1.000,1.000,1.000,1.848,3.305,4.060,4.000,0.000 +65.000,65.000,27.000,128.000,3.000,24.000,0.000,1.000,0.000,21.200,24.000,0.000,14.500,0.000,1325.050,1483.550,940.000,0.000,0.000,0.000,1.000,1.000,0.000,3.054,3.178,4.852,3.000,0.000 +39.000,24.000,2.000,26.000,2.000,4.000,0.000,1.000,0.000,10.400,0.000,0.000,12.500,0.000,403.500,0.000,480.000,0.000,0.000,0.000,0.000,0.000,1.000,2.342,3.240,3.258,1.000,1.000 +28.000,29.000,4.000,23.000,3.000,5.000,0.000,0.000,0.000,3.700,0.000,0.000,0.000,0.000,91.950,0.000,0.000,0.000,0.000,1.000,0.000,1.000,1.000,1.308,3.240,3.135,2.000,0.000 +46.000,42.000,9.000,52.000,4.000,7.000,0.000,1.000,0.000,14.250,0.000,0.000,21.000,0.000,611.650,0.000,985.000,0.000,0.000,0.000,0.000,0.000,0.000,2.657,3.240,3.951,2.000,0.000 +43.000,43.000,3.000,55.000,4.000,18.000,1.000,1.000,1.000,9.100,40.750,48.400,16.000,50.600,422.700,1802.500,675.000,1.000,1.000,1.000,1.000,1.000,0.000,2.208,3.707,4.007,4.000,0.000 +21.000,29.000,7.000,40.000,4.000,2.000,1.000,1.000,1.000,4.500,17.000,36.200,19.250,33.400,89.100,386.800,395.000,0.000,0.000,1.000,1.000,0.000,0.000,1.504,2.833,3.689,1.000,0.000 +53.000,57.000,25.000,37.000,1.000,7.000,0.000,1.000,0.000,7.700,0.000,0.000,9.250,0.000,363.950,0.000,465.000,0.000,0.000,0.000,0.000,0.000,0.000,2.041,3.240,3.611,2.000,0.000 +50.000,52.000,17.000,36.000,4.000,16.000,0.000,1.000,1.000,11.950,55.000,0.000,48.000,85.850,616.250,2662.100,2330.000,1.000,1.000,0.000,1.000,1.000,1.000,2.481,4.007,3.584,4.000,0.000 +43.000,21.000,1.000,25.000,1.000,4.000,0.000,0.000,0.000,7.600,0.000,0.000,0.000,0.000,334.450,0.000,0.000,0.000,0.000,1.000,0.000,1.000,0.000,2.028,3.240,3.219,2.000,1.000 +33.000,33.000,12.000,42.000,4.000,7.000,1.000,1.000,1.000,8.800,0.000,30.950,23.000,23.350,305.750,0.000,730.000,1.000,0.000,0.000,0.000,0.000,0.000,2.175,3.240,3.738,2.000,0.000 +45.000,66.000,43.000,144.000,2.000,13.000,0.000,1.000,0.000,7.750,0.000,0.000,13.000,0.000,338.800,0.000,565.000,0.000,0.000,1.000,0.000,0.000,0.000,2.048,3.240,4.970,2.000,0.000 +28.000,57.000,33.000,82.000,4.000,22.000,1.000,0.000,0.000,4.050,0.000,31.450,0.000,0.000,71.500,0.000,0.000,1.000,0.000,1.000,0.000,0.000,1.000,1.399,3.240,4.407,2.000,1.000 +37.000,33.000,1.000,102.000,2.000,12.000,1.000,1.000,1.000,16.300,0.000,33.350,10.250,37.900,646.700,0.000,360.000,0.000,1.000,1.000,1.000,0.000,1.000,2.791,3.240,4.625,4.000,0.000 +71.000,56.000,23.000,170.000,1.000,30.000,0.000,1.000,0.000,14.200,27.000,0.000,30.000,0.000,1001.200,1840.650,2140.000,1.000,1.000,0.000,1.000,1.000,0.000,2.653,3.296,5.136,4.000,0.000 +58.000,58.000,10.000,96.000,2.000,17.000,0.000,0.000,0.000,12.500,23.000,0.000,0.000,0.000,710.800,1345.950,0.000,0.000,0.000,0.000,1.000,1.000,0.000,2.526,3.135,4.564,3.000,0.000 +36.000,58.000,34.000,80.000,1.000,21.000,0.000,1.000,0.000,8.500,0.000,0.000,8.500,0.000,298.250,0.000,260.000,0.000,0.000,0.000,1.000,0.000,0.000,2.140,3.240,4.382,2.000,0.000 +26.000,39.000,15.000,58.000,4.000,9.000,0.000,1.000,1.000,8.650,21.250,0.000,6.500,19.650,210.600,567.550,145.000,0.000,0.000,1.000,0.000,1.000,0.000,2.158,3.056,4.060,3.000,0.000 +13.000,43.000,1.000,123.000,3.000,21.000,1.000,1.000,0.000,3.850,23.000,33.050,6.750,0.000,55.050,317.500,75.000,0.000,1.000,1.000,1.000,0.000,1.000,1.348,3.135,4.812,4.000,0.000 +28.000,40.000,7.000,64.000,1.000,19.000,0.000,0.000,0.000,6.000,27.500,0.000,0.000,0.000,167.650,722.500,0.000,0.000,0.000,0.000,0.000,1.000,0.000,1.792,3.314,4.159,3.000,0.000 +1.000,21.000,1.000,18.000,3.000,0.000,1.000,0.000,0.000,2.700,0.000,32.700,0.000,0.000,2.700,0.000,0.000,0.000,0.000,1.000,0.000,1.000,1.000,0.993,3.240,2.890,1.000,1.000 +15.000,35.000,5.000,34.000,3.000,8.000,1.000,0.000,0.000,5.150,0.000,25.550,0.000,0.000,110.550,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.639,3.240,3.526,2.000,1.000 +12.000,64.000,13.000,9.000,2.000,6.000,1.000,1.000,0.000,3.800,30.000,32.800,8.500,0.000,52.850,317.750,95.000,0.000,0.000,1.000,1.000,1.000,1.000,1.335,3.401,2.197,3.000,0.000 +5.000,30.000,3.000,46.000,4.000,7.000,1.000,0.000,0.000,4.300,0.000,32.100,0.000,0.000,17.550,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.459,3.240,3.829,2.000,1.000 +32.000,27.000,3.000,91.000,4.000,1.000,1.000,1.000,1.000,5.500,16.000,42.650,3.750,41.300,189.050,543.150,100.000,1.000,1.000,1.000,0.000,1.000,1.000,1.705,2.773,4.511,4.000,1.000 +14.000,36.000,13.000,67.000,5.000,4.000,1.000,0.000,0.000,14.050,0.000,25.100,0.000,0.000,187.400,0.000,0.000,0.000,0.000,1.000,1.000,0.000,0.000,2.643,3.240,4.205,1.000,0.000 +67.000,60.000,32.000,93.000,1.000,21.000,1.000,1.000,0.000,18.850,0.000,32.000,42.750,0.000,1200.700,0.000,2665.000,0.000,0.000,0.000,0.000,0.000,1.000,2.937,3.240,4.533,2.000,0.000 +60.000,45.000,23.000,117.000,4.000,11.000,1.000,1.000,1.000,12.400,28.000,51.700,19.500,52.900,755.700,1721.250,1135.000,1.000,1.000,1.000,1.000,1.000,1.000,2.518,3.332,4.762,4.000,0.000 +70.000,55.000,12.000,65.000,3.000,24.000,0.000,1.000,0.000,26.700,42.750,0.000,20.500,0.000,1874.250,2921.350,1465.000,1.000,0.000,0.000,1.000,1.000,0.000,3.285,3.755,4.174,3.000,0.000 +6.000,24.000,2.000,28.000,1.000,5.000,0.000,1.000,0.000,4.400,9.000,0.000,28.250,0.000,35.100,57.800,155.000,0.000,0.000,0.000,1.000,1.000,0.000,1.482,2.197,3.332,3.000,1.000 +38.000,33.000,3.000,38.000,4.000,0.000,1.000,1.000,0.000,10.950,0.000,27.200,12.250,0.000,412.800,0.000,465.000,0.000,0.000,1.000,0.000,0.000,1.000,2.393,3.240,3.638,2.000,0.000 +53.000,35.000,15.000,59.000,3.000,5.000,0.000,1.000,0.000,16.850,23.250,0.000,18.500,0.000,888.450,1250.700,995.000,0.000,1.000,0.000,1.000,0.000,0.000,2.824,3.146,4.078,3.000,0.000 +37.000,76.000,38.000,117.000,4.000,21.000,0.000,1.000,0.000,7.500,0.000,0.000,6.250,0.000,273.700,0.000,230.000,0.000,0.000,0.000,0.000,0.000,0.000,2.015,3.240,4.762,1.000,0.000 +61.000,45.000,21.000,80.000,2.000,13.000,0.000,1.000,0.000,18.100,0.000,0.000,35.250,0.000,1114.750,0.000,2200.000,0.000,0.000,0.000,0.000,0.000,0.000,2.896,3.240,4.382,2.000,0.000 +20.000,31.000,10.000,39.000,2.000,3.000,0.000,0.000,0.000,7.750,0.000,0.000,0.000,0.000,148.750,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.048,3.240,3.664,1.000,0.000 +72.000,60.000,33.000,12.000,1.000,20.000,0.000,1.000,1.000,53.750,68.500,0.000,10.250,43.950,3776.100,4938.600,780.000,1.000,1.000,0.000,1.000,1.000,0.000,3.984,4.227,2.485,4.000,0.000 +61.000,43.000,6.000,34.000,5.000,6.000,1.000,1.000,1.000,25.050,39.000,56.800,32.750,51.000,1541.900,2536.100,1980.000,1.000,1.000,1.000,1.000,1.000,1.000,3.221,3.664,3.526,4.000,1.000 +54.000,27.000,3.000,27.000,2.000,6.000,1.000,1.000,1.000,12.400,35.000,48.300,5.750,43.500,660.850,1919.750,315.000,1.000,1.000,1.000,1.000,1.000,1.000,2.518,3.555,3.296,4.000,0.000 +28.000,36.000,3.000,42.000,3.000,7.000,0.000,1.000,0.000,12.900,28.250,0.000,14.000,0.000,363.650,820.150,370.000,0.000,0.000,1.000,1.000,1.000,0.000,2.557,3.341,3.738,3.000,0.000 +52.000,42.000,17.000,27.000,3.000,8.000,0.000,1.000,0.000,19.650,31.000,0.000,19.750,0.000,1008.800,1661.300,1050.000,0.000,0.000,1.000,1.000,1.000,0.000,2.978,3.434,3.296,3.000,0.000 +43.000,27.000,3.000,21.000,2.000,1.000,0.000,1.000,0.000,12.650,0.000,0.000,16.500,0.000,558.850,0.000,760.000,0.000,0.000,0.000,0.000,0.000,0.000,2.538,3.240,3.045,2.000,0.000 +46.000,45.000,12.000,96.000,3.000,17.000,1.000,1.000,0.000,10.950,0.000,24.500,9.750,0.000,504.300,0.000,410.000,0.000,0.000,1.000,0.000,0.000,1.000,2.393,3.240,4.564,2.000,0.000 +39.000,59.000,20.000,1668.000,4.000,27.000,0.000,0.000,0.000,8.200,15.000,0.000,0.000,0.000,303.950,595.600,0.000,1.000,0.000,1.000,1.000,0.000,0.000,2.104,2.708,7.419,2.000,0.000 +10.000,34.000,1.000,52.000,5.000,3.000,1.000,0.000,1.000,4.300,0.000,32.550,0.000,25.400,47.450,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.459,3.240,3.951,2.000,1.000 +69.000,46.000,18.000,66.000,2.000,19.000,0.000,1.000,0.000,21.850,0.000,0.000,46.500,0.000,1589.100,0.000,3265.000,0.000,0.000,0.000,0.000,0.000,0.000,3.084,3.240,4.190,2.000,0.000 +45.000,30.000,0.000,63.000,5.000,4.000,1.000,1.000,1.000,7.100,40.750,39.750,16.500,50.850,314.800,1849.500,775.000,1.000,1.000,1.000,1.000,1.000,1.000,1.960,3.707,4.143,4.000,1.000 +52.000,62.000,23.000,36.000,4.000,17.000,0.000,1.000,0.000,13.350,18.500,0.000,18.500,0.000,709.250,978.850,915.000,0.000,0.000,0.000,0.000,1.000,0.000,2.592,2.918,3.584,1.000,0.000 +42.000,36.000,14.000,44.000,2.000,11.000,0.000,0.000,1.000,7.000,26.500,0.000,0.000,26.100,321.950,1161.300,0.000,0.000,1.000,0.000,1.000,1.000,0.000,1.946,3.277,3.784,3.000,0.000 +5.000,44.000,5.000,83.000,1.000,16.000,1.000,0.000,0.000,4.650,0.000,25.250,0.000,0.000,12.300,0.000,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.537,3.240,4.419,2.000,1.000 +10.000,33.000,2.000,66.000,3.000,9.000,0.000,1.000,0.000,7.100,21.250,0.000,25.250,0.000,59.300,241.800,220.000,0.000,0.000,1.000,0.000,0.000,0.000,1.960,3.056,4.190,1.000,1.000 +26.000,30.000,9.000,18.000,4.000,1.000,0.000,1.000,0.000,7.250,25.500,0.000,32.500,0.000,171.850,688.350,840.000,1.000,1.000,0.000,1.000,1.000,0.000,1.981,3.239,2.890,4.000,1.000 +25.000,30.000,0.000,20.000,1.000,4.000,0.000,1.000,0.000,8.550,21.750,0.000,15.500,0.000,215.950,522.150,370.000,0.000,0.000,0.000,1.000,1.000,0.000,2.146,3.080,2.996,3.000,0.000 +30.000,23.000,4.000,19.000,3.000,1.000,1.000,1.000,0.000,7.900,0.000,35.200,27.500,0.000,253.050,0.000,840.000,0.000,0.000,1.000,0.000,0.000,1.000,2.067,3.240,2.944,2.000,0.000 +65.000,59.000,27.000,197.000,4.000,26.000,1.000,1.000,0.000,45.400,0.000,25.750,46.750,0.000,2973.550,0.000,3065.000,0.000,1.000,0.000,0.000,0.000,1.000,3.816,3.240,5.283,2.000,0.000 +5.000,32.000,6.000,33.000,4.000,3.000,1.000,0.000,0.000,3.200,0.000,21.600,0.000,0.000,24.550,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.163,3.240,3.497,1.000,1.000 +7.000,23.000,3.000,27.000,2.000,1.000,0.000,1.000,0.000,3.650,9.500,0.000,7.000,0.000,21.000,76.050,55.000,0.000,0.000,0.000,1.000,0.000,0.000,1.295,2.251,3.296,1.000,0.000 +25.000,29.000,9.000,55.000,4.000,1.000,0.000,0.000,0.000,5.250,24.750,0.000,0.000,0.000,147.950,612.450,0.000,0.000,0.000,0.000,0.000,0.000,1.000,1.658,3.209,4.007,1.000,1.000 +8.000,22.000,3.000,25.000,4.000,0.000,0.000,1.000,1.000,8.000,32.250,0.000,18.250,19.450,61.550,264.000,155.000,1.000,0.000,0.000,1.000,1.000,0.000,2.079,3.474,3.219,3.000,0.000 +39.000,47.000,1.000,68.000,4.000,10.000,0.000,0.000,0.000,8.300,0.000,0.000,0.000,0.000,308.550,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,2.116,3.240,4.220,2.000,1.000 +28.000,36.000,3.000,69.000,3.000,2.000,1.000,1.000,1.000,6.050,25.250,41.550,31.750,36.600,153.050,697.050,835.000,1.000,1.000,0.000,1.000,1.000,1.000,1.800,3.229,4.234,4.000,0.000 +55.000,52.000,22.000,127.000,1.000,28.000,0.000,1.000,0.000,7.050,0.000,0.000,20.250,0.000,400.550,0.000,1150.000,1.000,0.000,0.000,0.000,0.000,1.000,1.953,3.240,4.844,2.000,0.000 +11.000,63.000,9.000,41.000,3.000,3.000,1.000,0.000,0.000,4.150,0.000,29.900,0.000,0.000,46.350,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.423,3.240,3.714,1.000,1.000 +51.000,48.000,27.000,58.000,1.000,18.000,0.000,1.000,0.000,19.200,25.750,0.000,9.250,0.000,964.850,1320.050,390.000,0.000,0.000,0.000,0.000,1.000,0.000,2.955,3.248,4.060,3.000,1.000 +25.000,62.000,27.000,28.000,4.000,33.000,1.000,1.000,1.000,8.300,14.750,52.000,18.000,47.000,160.400,359.250,430.000,1.000,1.000,0.000,1.000,1.000,1.000,2.116,2.691,3.332,4.000,1.000 +62.000,76.000,20.000,35.000,3.000,18.000,0.000,1.000,0.000,17.250,0.000,0.000,17.750,0.000,1045.700,0.000,1085.000,0.000,0.000,0.000,0.000,0.000,1.000,2.848,3.240,3.555,2.000,0.000 +53.000,33.000,1.000,60.000,1.000,6.000,0.000,1.000,1.000,17.650,28.500,0.000,41.000,28.550,950.700,1502.200,2170.000,1.000,1.000,0.000,1.000,1.000,0.000,2.871,3.350,4.094,4.000,0.000 +1.000,30.000,3.000,135.000,4.000,3.000,1.000,1.000,0.000,1.100,5.750,22.800,2.750,0.000,1.100,5.750,2.750,0.000,0.000,1.000,0.000,0.000,1.000,0.095,1.749,4.905,1.000,1.000 +20.000,32.000,10.000,19.000,3.000,5.000,1.000,0.000,0.000,6.850,0.000,36.050,0.000,0.000,106.500,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.924,3.240,2.944,2.000,0.000 +34.000,63.000,10.000,23.000,2.000,0.000,1.000,1.000,1.000,14.300,19.500,39.600,15.250,28.950,459.050,616.500,495.000,1.000,1.000,1.000,1.000,1.000,1.000,2.660,2.970,3.135,4.000,0.000 +44.000,45.000,19.000,88.000,1.000,21.000,0.000,1.000,0.000,11.900,25.250,0.000,8.250,0.000,524.250,1108.400,305.000,0.000,0.000,0.000,1.000,1.000,0.000,2.477,3.229,4.477,3.000,0.000 +12.000,23.000,2.000,24.000,4.000,0.000,0.000,1.000,1.000,3.200,41.000,0.000,15.750,35.400,35.500,502.000,210.000,1.000,1.000,1.000,1.000,1.000,0.000,1.163,3.714,3.178,4.000,0.000 +39.000,34.000,4.000,20.000,5.000,3.000,1.000,1.000,1.000,9.550,21.250,59.200,10.000,79.200,375.400,872.500,385.000,1.000,1.000,1.000,1.000,1.000,1.000,2.257,3.056,2.996,4.000,0.000 +19.000,26.000,2.000,48.000,3.000,0.000,0.000,1.000,0.000,7.550,0.000,0.000,6.500,0.000,156.150,0.000,105.000,1.000,0.000,0.000,1.000,0.000,0.000,2.022,3.240,3.871,3.000,0.000 +7.000,27.000,3.000,39.000,3.000,2.000,0.000,0.000,0.000,3.550,0.000,0.000,0.000,0.000,19.700,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.267,3.240,3.664,1.000,1.000 +32.000,34.000,0.000,38.000,1.000,10.000,0.000,1.000,0.000,7.350,0.000,0.000,19.250,0.000,217.450,0.000,600.000,0.000,0.000,0.000,0.000,0.000,1.000,1.995,3.240,3.638,2.000,0.000 +35.000,34.000,7.000,78.000,4.000,10.000,0.000,1.000,0.000,13.900,0.000,0.000,4.500,0.000,556.200,0.000,135.000,0.000,0.000,0.000,0.000,0.000,0.000,2.632,3.240,4.357,1.000,0.000 +56.000,42.000,10.000,24.000,2.000,5.000,0.000,0.000,0.000,33.650,0.000,0.000,0.000,0.000,1871.200,0.000,0.000,0.000,0.000,0.000,1.000,1.000,0.000,3.516,3.240,3.178,3.000,0.000 +5.000,47.000,7.000,46.000,1.000,6.000,0.000,1.000,0.000,2.950,0.000,0.000,7.250,0.000,21.550,0.000,35.000,0.000,0.000,0.000,0.000,0.000,0.000,1.082,3.240,3.829,1.000,1.000 +16.000,50.000,5.000,263.000,2.000,29.000,1.000,0.000,1.000,3.750,17.000,31.950,0.000,21.900,59.750,253.350,0.000,0.000,0.000,0.000,1.000,1.000,1.000,1.322,2.833,5.572,3.000,0.000 +17.000,42.000,6.000,31.000,2.000,2.000,0.000,0.000,1.000,8.250,24.500,0.000,0.000,26.400,140.850,404.800,0.000,1.000,0.000,0.000,1.000,1.000,1.000,2.110,3.199,3.434,4.000,1.000 +9.000,24.000,3.000,26.000,4.000,1.000,1.000,0.000,0.000,7.650,0.000,23.250,0.000,0.000,75.250,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.035,3.240,3.258,1.000,0.000 +9.000,41.000,12.000,39.000,4.000,3.000,1.000,0.000,1.000,4.700,0.000,39.650,0.000,20.800,26.300,0.000,0.000,1.000,1.000,1.000,0.000,0.000,1.000,1.548,3.240,3.664,1.000,1.000 +71.000,41.000,10.000,73.000,2.000,23.000,0.000,1.000,0.000,32.650,0.000,0.000,41.750,0.000,2412.600,0.000,3085.000,0.000,0.000,0.000,1.000,0.000,0.000,3.486,3.240,4.290,3.000,0.000 +11.000,26.000,2.000,53.000,3.000,3.000,1.000,1.000,1.000,4.150,21.500,43.700,11.750,38.800,34.700,188.350,110.000,1.000,1.000,1.000,1.000,0.000,1.000,1.423,3.068,3.970,4.000,1.000 +23.000,50.000,1.000,151.000,4.000,8.000,0.000,0.000,0.000,8.250,21.750,0.000,0.000,0.000,186.500,438.400,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.110,3.080,5.017,1.000,0.000 +24.000,58.000,30.000,24.000,1.000,5.000,0.000,0.000,0.000,7.650,16.000,0.000,0.000,0.000,177.400,420.650,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.035,2.773,3.178,1.000,0.000 +4.000,24.000,1.000,17.000,2.000,2.000,0.000,0.000,0.000,3.200,0.000,0.000,0.000,0.000,9.900,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.163,3.240,2.833,1.000,1.000 +10.000,28.000,9.000,75.000,4.000,1.000,1.000,1.000,1.000,6.200,27.500,42.400,40.000,36.300,45.950,225.850,340.000,1.000,1.000,1.000,1.000,1.000,1.000,1.825,3.314,4.317,4.000,1.000 +24.000,35.000,10.000,41.000,5.000,6.000,1.000,0.000,0.000,3.300,0.000,30.300,0.000,0.000,88.650,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.194,3.240,3.714,2.000,0.000 +12.000,31.000,8.000,18.000,4.000,4.000,1.000,0.000,0.000,3.700,0.000,24.300,0.000,0.000,48.550,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.308,3.240,2.890,1.000,1.000 +59.000,55.000,29.000,42.000,3.000,21.000,0.000,1.000,0.000,8.950,0.000,0.000,15.250,0.000,492.350,0.000,855.000,0.000,0.000,0.000,0.000,0.000,0.000,2.192,3.240,3.738,2.000,0.000 +72.000,75.000,48.000,14.000,2.000,6.000,0.000,1.000,0.000,37.300,0.000,0.000,109.250,0.000,2686.250,0.000,7515.000,0.000,0.000,0.000,0.000,0.000,0.000,3.619,3.240,2.639,2.000,0.000 +67.000,40.000,14.000,59.000,3.000,11.000,0.000,1.000,0.000,27.000,30.000,0.000,19.750,0.000,1722.500,1959.950,1245.000,0.000,0.000,0.000,1.000,1.000,0.000,3.296,3.401,4.078,3.000,0.000 +10.000,40.000,6.000,22.000,3.000,6.000,0.000,0.000,0.000,5.050,0.000,0.000,0.000,0.000,59.950,0.000,0.000,0.000,0.000,1.000,0.000,0.000,0.000,1.619,3.240,3.091,1.000,1.000 +30.000,28.000,1.000,20.000,1.000,8.000,0.000,0.000,0.000,12.400,0.000,0.000,0.000,0.000,369.450,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.518,3.240,2.996,1.000,1.000 +24.000,46.000,12.000,43.000,2.000,6.000,0.000,1.000,1.000,12.050,48.250,0.000,33.000,28.150,307.750,1079.050,820.000,1.000,1.000,0.000,1.000,1.000,1.000,2.489,3.876,3.761,4.000,0.000 +72.000,75.000,37.000,33.000,1.000,44.000,0.000,1.000,0.000,49.300,31.750,0.000,26.000,0.000,3417.400,2254.150,1835.000,0.000,0.000,0.000,0.000,1.000,0.000,3.898,3.458,3.497,2.000,0.000 +26.000,43.000,23.000,51.000,5.000,4.000,1.000,0.000,0.000,7.900,0.000,21.950,0.000,0.000,267.600,0.000,0.000,0.000,0.000,1.000,0.000,0.000,0.000,2.067,3.240,3.932,2.000,1.000 +36.000,45.000,22.000,117.000,3.000,15.000,0.000,0.000,0.000,10.500,0.000,0.000,0.000,0.000,429.100,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.000,2.351,3.240,4.762,2.000,0.000 +16.000,54.000,20.000,147.000,1.000,29.000,0.000,1.000,0.000,6.950,23.250,0.000,6.500,0.000,98.500,357.950,90.000,0.000,0.000,0.000,1.000,1.000,0.000,1.939,3.146,4.990,3.000,0.000 +54.000,42.000,0.000,55.000,4.000,2.000,1.000,1.000,1.000,14.300,55.500,62.150,19.250,83.700,695.200,3086.350,1050.000,1.000,1.000,1.000,1.000,1.000,1.000,2.660,4.016,4.007,4.000,1.000 +72.000,62.000,35.000,163.000,5.000,31.000,1.000,1.000,1.000,28.350,32.750,45.150,39.750,56.550,2017.600,2276.300,2845.000,1.000,1.000,1.000,1.000,1.000,0.000,3.345,3.489,5.094,4.000,0.000 +19.000,32.000,12.000,71.000,4.000,5.000,1.000,1.000,1.000,5.250,21.500,62.400,17.000,47.800,97.400,419.250,275.000,1.000,1.000,1.000,1.000,1.000,1.000,1.658,3.068,4.263,4.000,1.000 +18.000,25.000,4.000,26.000,2.000,7.000,0.000,1.000,0.000,3.300,27.500,0.000,31.000,0.000,50.350,531.100,540.000,0.000,0.000,0.000,0.000,1.000,0.000,1.194,3.314,3.258,1.000,0.000 +45.000,34.000,14.000,43.000,4.000,0.000,1.000,0.000,0.000,6.550,0.000,32.350,0.000,0.000,315.200,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.879,3.240,3.761,2.000,1.000 +17.000,41.000,9.000,28.000,4.000,3.000,0.000,1.000,0.000,1.800,0.000,0.000,10.000,0.000,27.100,0.000,140.000,0.000,0.000,0.000,1.000,0.000,0.000,0.588,3.240,3.332,1.000,0.000 +8.000,42.000,2.000,129.000,4.000,17.000,0.000,0.000,0.000,6.100,0.000,0.000,0.000,0.000,63.800,0.000,0.000,0.000,0.000,1.000,0.000,1.000,1.000,1.808,3.240,4.860,1.000,0.000 +66.000,62.000,31.000,47.000,2.000,4.000,0.000,1.000,0.000,34.250,21.000,0.000,20.000,0.000,2298.250,1425.350,1355.000,0.000,0.000,0.000,0.000,0.000,0.000,3.534,3.045,3.850,2.000,0.000 +60.000,57.000,18.000,72.000,5.000,30.000,1.000,1.000,1.000,20.350,29.000,50.250,20.500,55.900,1263.900,1806.850,1140.000,1.000,1.000,1.000,1.000,1.000,1.000,3.013,3.367,4.277,4.000,0.000 +63.000,37.000,1.000,45.000,4.000,9.000,1.000,1.000,0.000,14.950,0.000,39.250,13.500,0.000,974.150,0.000,820.000,1.000,0.000,1.000,0.000,0.000,1.000,2.705,3.240,3.807,2.000,0.000 +45.000,27.000,3.000,39.000,3.000,2.000,0.000,0.000,0.000,13.450,0.000,0.000,0.000,0.000,583.900,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,2.599,3.240,3.664,2.000,0.000 +68.000,42.000,16.000,89.000,4.000,12.000,1.000,1.000,0.000,25.600,0.000,33.000,16.000,0.000,1759.600,0.000,1020.000,0.000,0.000,1.000,0.000,0.000,1.000,3.243,3.240,4.489,2.000,0.000 +6.000,29.000,4.000,19.000,2.000,5.000,0.000,0.000,0.000,4.200,0.000,0.000,0.000,0.000,25.250,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.435,3.240,2.944,1.000,0.000 +70.000,35.000,4.000,48.000,2.000,9.000,0.000,1.000,0.000,43.600,0.000,0.000,30.000,0.000,3040.800,0.000,2020.000,0.000,0.000,0.000,0.000,1.000,0.000,3.775,3.240,3.871,2.000,0.000 +24.000,25.000,3.000,28.000,4.000,0.000,1.000,1.000,1.000,10.600,0.000,40.400,25.250,23.400,267.300,0.000,530.000,0.000,1.000,1.000,0.000,0.000,1.000,2.361,3.240,3.332,2.000,0.000 +19.000,35.000,7.000,58.000,3.000,5.000,1.000,1.000,1.000,3.650,37.000,40.300,21.250,43.050,65.150,690.850,385.000,1.000,1.000,1.000,1.000,1.000,0.000,1.295,3.611,4.060,4.000,1.000 +5.000,43.000,16.000,72.000,3.000,17.000,0.000,1.000,0.000,5.550,15.750,0.000,6.500,0.000,23.900,62.250,25.000,0.000,0.000,0.000,1.000,1.000,0.000,1.714,2.757,4.277,3.000,0.000 +14.000,40.000,13.000,398.000,5.000,11.000,1.000,1.000,1.000,6.400,18.000,43.100,23.750,47.700,71.000,259.000,295.000,1.000,1.000,1.000,1.000,1.000,1.000,1.856,2.890,5.986,4.000,1.000 +17.000,39.000,12.000,45.000,4.000,10.000,1.000,0.000,0.000,8.650,0.000,28.950,0.000,0.000,133.100,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.000,2.158,3.240,3.807,1.000,1.000 +59.000,32.000,9.000,73.000,4.000,5.000,0.000,1.000,0.000,29.200,21.500,0.000,12.750,0.000,1726.600,1231.900,655.000,0.000,0.000,0.000,1.000,0.000,1.000,3.374,3.068,4.290,2.000,1.000 +60.000,53.000,22.000,171.000,1.000,37.000,0.000,1.000,0.000,9.900,31.750,0.000,18.000,0.000,608.650,1972.100,1070.000,0.000,0.000,0.000,1.000,1.000,0.000,2.293,3.458,5.142,3.000,0.000 +53.000,37.000,7.000,25.000,1.000,2.000,0.000,1.000,0.000,5.400,52.000,0.000,34.000,0.000,291.500,2794.950,1660.000,0.000,0.000,0.000,1.000,1.000,0.000,1.686,3.951,3.219,3.000,0.000 +14.000,26.000,1.000,25.000,2.000,0.000,0.000,0.000,0.000,4.400,0.000,0.000,0.000,0.000,71.200,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.482,3.240,3.219,3.000,0.000 +17.000,19.000,0.000,18.000,2.000,0.000,1.000,0.000,0.000,7.100,0.000,24.950,0.000,0.000,120.350,0.000,0.000,0.000,0.000,1.000,0.000,0.000,1.000,1.960,3.240,2.890,2.000,1.000 +69.000,42.000,23.000,19.000,3.000,0.000,1.000,1.000,0.000,25.950,0.000,36.900,18.750,0.000,1812.150,0.000,1270.000,0.000,0.000,1.000,0.000,0.000,1.000,3.256,3.240,2.944,1.000,0.000 +10.000,20.000,1.000,20.000,2.000,0.000,0.000,0.000,0.000,5.900,0.000,0.000,0.000,0.000,48.950,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.775,3.240,2.996,1.000,1.000 +21.000,43.000,13.000,41.000,2.000,1.000,1.000,1.000,1.000,6.150,23.750,45.400,12.250,37.250,118.150,497.150,195.000,1.000,1.000,1.000,1.000,1.000,1.000,1.816,3.168,3.714,4.000,1.000 +64.000,37.000,10.000,44.000,4.000,9.000,1.000,1.000,0.000,16.150,0.000,35.050,22.000,0.000,965.300,0.000,1350.000,1.000,0.000,0.000,0.000,0.000,1.000,2.782,3.240,3.784,2.000,0.000 +60.000,56.000,19.000,51.000,4.000,11.000,1.000,1.000,1.000,15.250,0.000,57.450,28.500,67.000,873.700,0.000,1630.000,1.000,1.000,1.000,1.000,1.000,1.000,2.725,3.240,3.932,4.000,0.000 +58.000,37.000,5.000,64.000,4.000,8.000,1.000,1.000,1.000,10.800,58.750,63.250,37.750,109.700,634.750,3525.550,2305.000,1.000,1.000,1.000,1.000,1.000,1.000,2.380,4.073,4.159,4.000,1.000 +72.000,61.000,34.000,61.000,1.000,8.000,0.000,1.000,0.000,27.350,0.000,0.000,13.250,0.000,1980.150,0.000,895.000,0.000,0.000,0.000,0.000,0.000,0.000,3.309,3.240,4.111,2.000,0.000 +18.000,34.000,4.000,42.000,2.000,14.000,0.000,1.000,0.000,6.450,19.000,0.000,17.000,0.000,104.050,318.750,240.000,1.000,1.000,0.000,1.000,1.000,0.000,1.864,2.944,3.738,4.000,0.000 +70.000,36.000,8.000,50.000,1.000,15.000,0.000,1.000,0.000,20.550,0.000,0.000,20.750,0.000,1407.150,0.000,1370.000,0.000,0.000,0.000,0.000,0.000,0.000,3.023,3.240,3.912,2.000,0.000 +7.000,38.000,4.000,70.000,4.000,4.000,1.000,1.000,1.000,3.850,19.250,38.350,7.000,17.700,26.650,127.500,40.000,1.000,1.000,1.000,1.000,0.000,1.000,1.348,2.958,4.248,4.000,1.000 +71.000,53.000,29.000,48.000,4.000,0.000,0.000,1.000,0.000,34.950,28.750,0.000,36.000,0.000,2506.050,2074.750,2560.000,0.000,0.000,0.000,1.000,1.000,0.000,3.554,3.359,3.871,3.000,0.000 +31.000,46.000,23.000,144.000,4.000,13.000,0.000,1.000,0.000,7.600,15.250,0.000,9.750,0.000,271.550,501.150,290.000,0.000,0.000,1.000,1.000,0.000,1.000,2.028,2.725,4.970,3.000,0.000 +16.000,49.000,17.000,41.000,2.000,5.000,1.000,0.000,1.000,4.100,14.000,39.150,0.000,31.800,62.450,260.050,0.000,1.000,1.000,1.000,0.000,0.000,0.000,1.411,2.639,3.714,4.000,0.000 +59.000,26.000,3.000,41.000,4.000,1.000,1.000,1.000,1.000,12.650,0.000,35.100,46.750,29.150,804.000,0.000,2710.000,0.000,0.000,1.000,0.000,0.000,0.000,2.538,3.240,3.714,2.000,1.000 +9.000,40.000,13.000,38.000,4.000,7.000,1.000,1.000,1.000,3.350,21.000,42.400,17.500,59.550,37.700,179.800,125.000,1.000,1.000,1.000,1.000,1.000,1.000,1.209,3.045,3.638,4.000,1.000 +12.000,55.000,13.000,36.000,1.000,5.000,1.000,0.000,0.000,5.950,0.000,26.550,0.000,0.000,73.350,0.000,0.000,0.000,0.000,1.000,0.000,0.000,0.000,1.783,3.240,3.584,2.000,1.000 +3.000,32.000,4.000,58.000,2.000,11.000,1.000,1.000,1.000,2.750,15.750,29.500,9.250,28.550,5.700,49.650,15.000,1.000,1.000,0.000,0.000,0.000,1.000,1.012,2.757,4.060,4.000,1.000 +52.000,39.000,6.000,119.000,3.000,18.000,0.000,1.000,0.000,10.500,25.000,0.000,8.250,0.000,556.500,1280.900,450.000,0.000,1.000,0.000,0.000,0.000,1.000,2.351,3.219,4.779,1.000,0.000 +18.000,69.000,28.000,11.000,1.000,17.000,0.000,0.000,0.000,3.850,0.000,0.000,0.000,0.000,62.750,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.348,3.240,2.398,1.000,0.000 +43.000,29.000,4.000,33.000,1.000,13.000,0.000,1.000,1.000,22.050,18.750,0.000,7.500,24.950,1042.950,830.750,345.000,0.000,0.000,0.000,1.000,1.000,0.000,3.093,2.931,3.497,3.000,0.000 +37.000,33.000,4.000,41.000,3.000,8.000,1.000,0.000,0.000,9.200,0.000,30.450,0.000,0.000,347.100,0.000,0.000,0.000,0.000,0.000,0.000,0.000,1.000,2.219,3.240,3.714,2.000,1.000 +51.000,46.000,8.000,107.000,2.000,21.000,0.000,1.000,1.000,17.300,25.750,0.000,23.000,37.400,840.000,1396.750,1155.000,0.000,1.000,0.000,1.000,1.000,0.000,2.851,3.248,4.673,3.000,0.000 +56.000,53.000,23.000,100.000,5.000,14.000,1.000,1.000,0.000,14.150,0.000,34.200,9.500,0.000,752.900,0.000,560.000,1.000,0.000,1.000,0.000,0.000,1.000,2.650,3.240,4.605,2.000,0.000 +72.000,55.000,24.000,82.000,3.000,25.000,1.000,1.000,0.000,62.300,0.000,35.650,65.250,0.000,4333.000,0.000,4915.000,0.000,0.000,0.000,1.000,0.000,1.000,4.132,3.240,4.407,2.000,0.000 +32.000,44.000,10.000,201.000,2.000,24.000,0.000,1.000,0.000,7.650,28.000,0.000,18.500,0.000,237.850,895.050,595.000,0.000,1.000,0.000,1.000,1.000,0.000,2.035,3.332,5.303,3.000,0.000 +51.000,49.000,29.000,45.000,1.000,16.000,0.000,1.000,0.000,15.700,0.000,0.000,8.500,0.000,815.050,0.000,400.000,0.000,0.000,0.000,1.000,0.000,0.000,2.754,3.240,3.807,1.000,0.000 +26.000,55.000,13.000,61.000,1.000,26.000,0.000,1.000,0.000,4.250,29.000,0.000,12.000,0.000,102.450,729.150,300.000,0.000,0.000,0.000,1.000,1.000,0.000,1.447,3.367,4.111,3.000,0.000 +34.000,40.000,21.000,23.000,4.000,9.000,1.000,1.000,1.000,5.950,25.750,45.400,16.750,37.700,207.700,805.850,540.000,0.000,1.000,1.000,1.000,1.000,1.000,1.783,3.248,3.135,4.000,0.000 +20.000,25.000,4.000,33.000,4.000,0.000,0.000,1.000,1.000,4.550,16.000,0.000,19.250,27.050,115.650,288.750,365.000,0.000,0.000,1.000,0.000,0.000,1.000,1.515,2.773,3.497,1.000,0.000 +58.000,36.000,13.000,39.000,2.000,8.000,0.000,1.000,1.000,16.400,38.250,0.000,55.500,57.050,933.100,2355.400,3145.000,1.000,1.000,1.000,1.000,1.000,1.000,2.797,3.644,3.664,4.000,1.000 +25.000,38.000,19.000,56.000,1.000,19.000,1.000,1.000,1.000,10.550,0.000,31.950,32.750,23.650,290.250,0.000,770.000,1.000,0.000,0.000,0.000,1.000,0.000,2.356,3.240,4.025,3.000,0.000 +66.000,50.000,2.000,333.000,5.000,24.000,0.000,1.000,0.000,10.300,0.000,0.000,14.250,0.000,659.550,0.000,975.000,0.000,1.000,1.000,0.000,0.000,0.000,2.332,3.240,5.808,2.000,0.000 +71.000,48.000,25.000,288.000,3.000,19.000,0.000,1.000,0.000,30.900,0.000,0.000,19.750,0.000,2123.600,0.000,1305.000,0.000,0.000,0.000,0.000,0.000,0.000,3.431,3.240,5.663,1.000,0.000 +6.000,20.000,0.000,25.000,2.000,0.000,0.000,1.000,0.000,1.900,20.750,0.000,15.500,0.000,19.300,114.400,95.000,0.000,0.000,0.000,1.000,1.000,0.000,0.642,3.033,3.219,3.000,0.000 +26.000,30.000,4.000,76.000,3.000,7.000,1.000,0.000,0.000,9.450,0.000,29.200,0.000,0.000,214.700,0.000,0.000,0.000,1.000,0.000,0.000,0.000,1.000,2.246,3.240,4.331,1.000,0.000 +61.000,52.000,21.000,82.000,1.000,18.000,0.000,1.000,0.000,12.100,0.000,0.000,15.750,0.000,751.750,0.000,910.000,0.000,0.000,0.000,0.000,1.000,0.000,2.493,3.240,4.407,3.000,0.000 +57.000,60.000,20.000,14.000,2.000,27.000,0.000,1.000,0.000,16.100,14.000,0.000,11.750,0.000,938.650,822.350,630.000,0.000,0.000,0.000,1.000,1.000,0.000,2.779,2.639,2.639,3.000,0.000 +55.000,44.000,24.000,83.000,1.000,23.000,0.000,1.000,0.000,17.350,24.500,0.000,14.250,0.000,973.100,1343.500,720.000,0.000,0.000,0.000,0.000,1.000,0.000,2.854,3.199,4.419,3.000,0.000 +34.000,23.000,3.000,24.000,1.000,7.000,0.000,1.000,0.000,6.000,28.000,0.000,12.750,0.000,203.250,959.400,435.000,0.000,0.000,0.000,1.000,1.000,0.000,1.792,3.332,3.178,3.000,0.000 +6.000,32.000,10.000,47.000,1.000,10.000,0.000,1.000,0.000,3.850,23.750,0.000,12.500,0.000,29.900,128.450,80.000,0.000,0.000,0.000,1.000,1.000,0.000,1.348,3.168,3.850,3.000,0.000 +24.000,30.000,0.000,25.000,4.000,5.000,0.000,1.000,1.000,8.700,47.750,0.000,32.750,64.000,186.600,1152.900,780.000,1.000,1.000,1.000,1.000,1.000,1.000,2.163,3.866,3.219,4.000,1.000 +61.000,50.000,16.000,190.000,2.000,22.000,1.000,1.000,1.000,16.850,0.000,42.550,26.500,44.100,1063.150,0.000,1600.000,0.000,0.000,1.000,0.000,0.000,1.000,2.824,3.240,5.247,2.000,0.000 diff --git a/lab-logistic-regression-with-python.ipynb b/lab-logistic-regression-with-python.ipynb index 05ead5e..8557100 100644 --- a/lab-logistic-regression-with-python.ipynb +++ b/lab-logistic-regression-with-python.ipynb @@ -123,16 +123,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "import piplite\n", - "await piplite.install(['pandas'])\n", - "await piplite.install(['matplotlib'])\n", - "await piplite.install(['numpy'])\n", - "await piplite.install(['scikit-learn'])\n", - "await piplite.install(['scipy'])\n" + "# import piplite\n", + "# await piplite.install(['pandas'])\n", + "# await piplite.install(['matplotlib'])\n", + "# await piplite.install(['numpy'])\n", + "# await piplite.install(['scikit-learn'])\n", + "# await piplite.install(['scipy'])\n" ] }, { @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "button": false, "new_sheet": false, @@ -171,17 +171,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ - "from pyodide.http import pyfetch\n", + "# from pyodide.http import pyfetch\n", "\n", - "async def download(url, filename):\n", - " response = await pyfetch(url)\n", - " if response.status == 200:\n", - " with open(filename, \"wb\") as f:\n", - " f.write(await response.bytes())\n" + "# async def download(url, filename):\n", + "# response = await pyfetch(url)\n", + "# if response.status == 200:\n", + "# with open(filename, \"wb\") as f:\n", + "# f.write(await response.bytes())\n" ] }, { @@ -226,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "button": false, "new_sheet": false, @@ -262,18 +262,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "\n", - "await download(path, \"ChurnData.csv\")\n", - "path=\"ChurnData.csv\"\n" + "# await download(path, \"ChurnData.csv\")\n", + "# path=\"ChurnData.csv\"\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "button": false, "new_sheet": false, @@ -281,7 +281,207 @@ "read_only": false } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tenureageaddressincomeedemployequipcallcardwirelesslongmon...pagerinternetcallwaitconferebillloglonglogtolllninccustcatchurn
011.033.07.0136.05.05.00.01.01.04.40...1.00.01.01.00.01.4823.0334.9134.01.0
133.033.012.033.02.00.00.00.00.09.45...0.00.00.00.00.02.2463.2403.4971.01.0
223.030.09.030.01.02.00.00.00.06.30...0.00.00.01.00.01.8413.2403.4013.00.0
338.035.05.076.02.010.01.01.01.06.05...1.01.01.01.01.01.8003.8074.3314.00.0
47.035.014.080.02.015.00.01.00.07.10...0.00.01.01.00.01.9603.0914.3823.00.0
\n", + "

5 rows ร— 28 columns

\n", + "
" + ], + "text/plain": [ + " tenure age address income ed employ equip callcard wireless \\\n", + "0 11.0 33.0 7.0 136.0 5.0 5.0 0.0 1.0 1.0 \n", + "1 33.0 33.0 12.0 33.0 2.0 0.0 0.0 0.0 0.0 \n", + "2 23.0 30.0 9.0 30.0 1.0 2.0 0.0 0.0 0.0 \n", + "3 38.0 35.0 5.0 76.0 2.0 10.0 1.0 1.0 1.0 \n", + "4 7.0 35.0 14.0 80.0 2.0 15.0 0.0 1.0 0.0 \n", + "\n", + " longmon ... pager internet callwait confer ebill loglong logtoll \\\n", + "0 4.40 ... 1.0 0.0 1.0 1.0 0.0 1.482 3.033 \n", + "1 9.45 ... 0.0 0.0 0.0 0.0 0.0 2.246 3.240 \n", + "2 6.30 ... 0.0 0.0 0.0 1.0 0.0 1.841 3.240 \n", + "3 6.05 ... 1.0 1.0 1.0 1.0 1.0 1.800 3.807 \n", + "4 7.10 ... 0.0 0.0 1.0 1.0 0.0 1.960 3.091 \n", + "\n", + " lninc custcat churn \n", + "0 4.913 4.0 1.0 \n", + "1 3.497 1.0 1.0 \n", + "2 3.401 3.0 0.0 \n", + "3 4.331 4.0 0.0 \n", + "4 4.382 3.0 0.0 \n", + "\n", + "[5 rows x 28 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "churn_df = pd.read_csv(path)\n", "churn_df.head()" @@ -303,9 +503,133 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tenureageaddressincomeedemployequipcallcardwirelesschurn
011.033.07.0136.05.05.00.01.01.01
133.033.012.033.02.00.00.00.00.01
223.030.09.030.01.02.00.00.00.00
338.035.05.076.02.010.01.01.01.00
47.035.014.080.02.015.00.01.00.00
\n", + "
" + ], + "text/plain": [ + " tenure age address income ed employ equip callcard wireless \\\n", + "0 11.0 33.0 7.0 136.0 5.0 5.0 0.0 1.0 1.0 \n", + "1 33.0 33.0 12.0 33.0 2.0 0.0 0.0 0.0 0.0 \n", + "2 23.0 30.0 9.0 30.0 1.0 2.0 0.0 0.0 0.0 \n", + "3 38.0 35.0 5.0 76.0 2.0 10.0 1.0 1.0 1.0 \n", + "4 7.0 35.0 14.0 80.0 2.0 15.0 0.0 1.0 0.0 \n", + "\n", + " churn \n", + "0 1 \n", + "1 1 \n", + "2 0 \n", + "3 0 \n", + "4 0 " + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "churn_df = churn_df[['tenure', 'age', 'address', 'income', 'ed', 'employ', 'equip', 'callcard', 'wireless','churn']]\n", "churn_df['churn'] = churn_df['churn'].astype('int')\n", @@ -329,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "button": false, "new_sheet": false, @@ -337,9 +661,76 @@ "read_only": false } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "๐Ÿ“Š The dataset contains 200 rows and 28 columns.\n", + "\n", + "๐Ÿงพ Column names:\n", + "- tenure\n", + "- age\n", + "- address\n", + "- income\n", + "- ed\n", + "- employ\n", + "- equip\n", + "- callcard\n", + "- wireless\n", + "- longmon\n", + "- tollmon\n", + "- equipmon\n", + "- cardmon\n", + "- wiremon\n", + "- longten\n", + "- tollten\n", + "- cardten\n", + "- voice\n", + "- pager\n", + "- internet\n", + "- callwait\n", + "- confer\n", + "- ebill\n", + "- loglong\n", + "- logtoll\n", + "- lninc\n", + "- custcat\n", + "- churn\n" + ] + } + ], "source": [ - "# write your code here\n" + "# write your code here\n", + "df = pd.read_csv(r'C:\\Users\\User\\Desktop\\AI_Lab\\WK2-Labs\\lab-logistic-regression-with-python\\ChurnData.csv') \n", + "# Check shape of the DataFrame\n", + "num_rows, num_columns = df.shape\n", + "print(f\"๐Ÿ“Š The dataset contains {num_rows} rows and {num_columns} columns.\\n\")\n", + "\n", + "# Display column names\n", + "print(\"๐Ÿงพ Column names:\")\n", + "for col in df.columns:\n", + " print(f\"- {col}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(200, 28)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "churn_df.shape\n" ] }, { @@ -365,9 +756,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 11., 33., 7., 136., 5., 5., 0.],\n", + " [ 33., 33., 12., 33., 2., 0., 0.],\n", + " [ 23., 30., 9., 30., 1., 2., 0.],\n", + " [ 38., 35., 5., 76., 2., 10., 1.],\n", + " [ 7., 35., 14., 80., 2., 15., 0.]])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "X = np.asarray(churn_df[['tenure', 'age', 'address', 'income', 'ed', 'employ', 'equip']])\n", "X[0:5]" @@ -375,9 +781,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([1., 1., 0., 0., 0.])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "y = np.asarray(churn_df['churn'])\n", "y [0:5]" @@ -392,9 +809,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-1.13518441, -0.62595491, -0.4588971 , 0.4751423 , 1.6961288 ,\n", + " -0.58477841, -0.85972695],\n", + " [-0.11604313, -0.62595491, 0.03454064, -0.32886061, -0.6433592 ,\n", + " -1.14437497, -0.85972695],\n", + " [-0.57928917, -0.85594447, -0.261522 , -0.35227817, -1.42318853,\n", + " -0.92053635, -0.85972695],\n", + " [ 0.11557989, -0.47262854, -0.65627219, 0.00679109, -0.6433592 ,\n", + " -0.02518185, 1.16316 ],\n", + " [-1.32048283, -0.47262854, 0.23191574, 0.03801451, -0.6433592 ,\n", + " 0.53441472, -0.85972695]])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn import preprocessing\n", "X = preprocessing.StandardScaler().fit(X).transform(X)\n", @@ -417,9 +854,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set: (160, 7) (160,)\n", + "Test set: (40, 7) (40,)\n" + ] + } + ], "source": [ "from sklearn.model_selection import train_test_split\n", "X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=4)\n", @@ -447,9 +893,702 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
LogisticRegression(C=0.01, solver='liblinear')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LogisticRegression(C=0.01, solver='liblinear')" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.linear_model import LogisticRegression\n", "from sklearn.metrics import confusion_matrix\n", @@ -466,9 +1605,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 1., 0., 0., 0.,\n", + " 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.,\n", + " 0., 0., 1., 0., 0., 0.])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "yhat = LR.predict(X_test)\n", "yhat" @@ -483,9 +1635,59 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.54132919, 0.45867081],\n", + " [0.60593357, 0.39406643],\n", + " [0.56277713, 0.43722287],\n", + " [0.63432489, 0.36567511],\n", + " [0.56431839, 0.43568161],\n", + " [0.55386646, 0.44613354],\n", + " [0.52237207, 0.47762793],\n", + " [0.60514349, 0.39485651],\n", + " [0.41069572, 0.58930428],\n", + " [0.6333873 , 0.3666127 ],\n", + " [0.58068791, 0.41931209],\n", + " [0.62768628, 0.37231372],\n", + " [0.47559883, 0.52440117],\n", + " [0.4267593 , 0.5732407 ],\n", + " [0.66172417, 0.33827583],\n", + " [0.55092315, 0.44907685],\n", + " [0.51749946, 0.48250054],\n", + " [0.485743 , 0.514257 ],\n", + " [0.49011451, 0.50988549],\n", + " [0.52423349, 0.47576651],\n", + " [0.61619519, 0.38380481],\n", + " [0.52696302, 0.47303698],\n", + " [0.63957168, 0.36042832],\n", + " [0.52205164, 0.47794836],\n", + " [0.50572852, 0.49427148],\n", + " [0.70706202, 0.29293798],\n", + " [0.55266286, 0.44733714],\n", + " [0.52271594, 0.47728406],\n", + " [0.51638863, 0.48361137],\n", + " [0.71331391, 0.28668609],\n", + " [0.67862111, 0.32137889],\n", + " [0.50896403, 0.49103597],\n", + " [0.42348082, 0.57651918],\n", + " [0.71495838, 0.28504162],\n", + " [0.59711064, 0.40288936],\n", + " [0.63808839, 0.36191161],\n", + " [0.39957895, 0.60042105],\n", + " [0.52127638, 0.47872362],\n", + " [0.65975464, 0.34024536],\n", + " [0.5114172 , 0.4885828 ]])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "yhat_prob = LR.predict_proba(X_test)\n", "yhat_prob" @@ -509,9 +1711,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.7058823529411765" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.metrics import jaccard_score\n", "jaccard_score(y_test, yhat,pos_label=0)" @@ -528,9 +1741,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 6 9]\n", + " [ 1 24]]\n" + ] + } + ], "source": [ "from sklearn.metrics import classification_report, confusion_matrix\n", "import itertools\n", @@ -572,9 +1794,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Confusion matrix, without normalization\n", + "[[ 6 9]\n", + " [ 1 24]]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Compute confusion matrix\n", "cnf_matrix = confusion_matrix(y_test, yhat, labels=[1,0])\n", @@ -604,9 +1846,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0.0 0.73 0.96 0.83 25\n", + " 1.0 0.86 0.40 0.55 15\n", + "\n", + " accuracy 0.75 40\n", + " macro avg 0.79 0.68 0.69 40\n", + "weighted avg 0.78 0.75 0.72 40\n", + "\n" + ] + } + ], "source": [ "print (classification_report(y_test, yhat))\n" ] @@ -643,9 +1901,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.6017092478101186" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.metrics import log_loss\n", "log_loss(y_test, yhat_prob)" @@ -661,12 +1930,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LogLoss: : 0.61\n" + ] + } + ], "source": [ - "# write your code here\n", - "\n" + "#write your code here\n", + "LR2 = LogisticRegression(C=0.01, solver='sag').fit(X_train,y_train)\n", + "yhat_prob2 = LR2.predict_proba(X_test)\n", + "print (\"LogLoss: : %.2f\" % log_loss(y_test, yhat_prob2))\n" ] }, { @@ -695,7 +1974,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -709,7 +1988,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.13.5" }, "widgets": { "state": {},