From 6f604ba1be8da9c939958bd29aa1bff6c15317fa Mon Sep 17 00:00:00 2001 From: codebasics Date: Wed, 20 Oct 2021 08:44:05 -0400 Subject: [PATCH] bagging --- .../bagging_heart_disease_prediction.ipynb | 1890 +++++++++++++++++ ML/19_Bagging/Exercise/heart.csv | 919 ++++++++ .../bagging_diabetes_prediction.ipynb | 778 +++++++ ML/19_Bagging/diabetes.csv | 769 +++++++ 4 files changed, 4356 insertions(+) create mode 100644 ML/19_Bagging/Exercise/bagging_heart_disease_prediction.ipynb create mode 100644 ML/19_Bagging/Exercise/heart.csv create mode 100644 ML/19_Bagging/bagging_diabetes_prediction.ipynb create mode 100644 ML/19_Bagging/diabetes.csv diff --git a/ML/19_Bagging/Exercise/bagging_heart_disease_prediction.ipynb b/ML/19_Bagging/Exercise/bagging_heart_disease_prediction.ipynb new file mode 100644 index 00000000..c597be72 --- /dev/null +++ b/ML/19_Bagging/Exercise/bagging_heart_disease_prediction.ipynb @@ -0,0 +1,1890 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Ensemble Learning: Bagging Tutorial Exercise Solution

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "dataset credits: https://www.kaggle.com/fedesoriano/heart-failure-prediction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Data Loading

" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
040MATA1402890Normal172N0.0Up0
149FNAP1601800Normal156N1.0Flat1
237MATA1302830ST98N0.0Up0
348FASY1382140Normal108Y1.5Flat1
454MNAP1501950Normal122N0.0Up0
\n", + "
" + ], + "text/plain": [ + " Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG MaxHR \\\n", + "0 40 M ATA 140 289 0 Normal 172 \n", + "1 49 F NAP 160 180 0 Normal 156 \n", + "2 37 M ATA 130 283 0 ST 98 \n", + "3 48 F ASY 138 214 0 Normal 108 \n", + "4 54 M NAP 150 195 0 Normal 122 \n", + "\n", + " ExerciseAngina Oldpeak ST_Slope HeartDisease \n", + "0 N 0.0 Up 0 \n", + "1 N 1.0 Flat 1 \n", + "2 N 0.0 Up 0 \n", + "3 Y 1.5 Flat 1 \n", + "4 N 0.0 Up 0 " + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv(\"heart.csv\")\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(918, 12)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "scrolled": false + }, + "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", + "
AgeRestingBPCholesterolFastingBSMaxHROldpeakHeartDisease
count918.000000918.000000918.000000918.000000918.000000918.000000918.000000
mean53.510893132.396514198.7995640.233115136.8093680.8873640.553377
std9.43261718.514154109.3841450.42304625.4603341.0665700.497414
min28.0000000.0000000.0000000.00000060.000000-2.6000000.000000
25%47.000000120.000000173.2500000.000000120.0000000.0000000.000000
50%54.000000130.000000223.0000000.000000138.0000000.6000001.000000
75%60.000000140.000000267.0000000.000000156.0000001.5000001.000000
max77.000000200.000000603.0000001.000000202.0000006.2000001.000000
\n", + "
" + ], + "text/plain": [ + " Age RestingBP Cholesterol FastingBS MaxHR \\\n", + "count 918.000000 918.000000 918.000000 918.000000 918.000000 \n", + "mean 53.510893 132.396514 198.799564 0.233115 136.809368 \n", + "std 9.432617 18.514154 109.384145 0.423046 25.460334 \n", + "min 28.000000 0.000000 0.000000 0.000000 60.000000 \n", + "25% 47.000000 120.000000 173.250000 0.000000 120.000000 \n", + "50% 54.000000 130.000000 223.000000 0.000000 138.000000 \n", + "75% 60.000000 140.000000 267.000000 0.000000 156.000000 \n", + "max 77.000000 200.000000 603.000000 1.000000 202.000000 \n", + "\n", + " Oldpeak HeartDisease \n", + "count 918.000000 918.000000 \n", + "mean 0.887364 0.553377 \n", + "std 1.066570 0.497414 \n", + "min -2.600000 0.000000 \n", + "25% 0.000000 0.000000 \n", + "50% 0.600000 1.000000 \n", + "75% 1.500000 1.000000 \n", + "max 6.200000 1.000000 " + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Treat Outliers

" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
7632MASY1185290Normal130N0.0Flat1
14954MASY1306031Normal125Y1.0Flat1
61667FNAP1155640LVH160N1.6Flat0
\n", + "
" + ], + "text/plain": [ + " Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG \\\n", + "76 32 M ASY 118 529 0 Normal \n", + "149 54 M ASY 130 603 1 Normal \n", + "616 67 F NAP 115 564 0 LVH \n", + "\n", + " MaxHR ExerciseAngina Oldpeak ST_Slope HeartDisease \n", + "76 130 N 0.0 Flat 1 \n", + "149 125 Y 1.0 Flat 1 \n", + "616 160 N 1.6 Flat 0 " + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.Cholesterol>(df.Cholesterol.mean()+3*df.Cholesterol.std())]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(918, 12)" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(915, 12)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1 = df[df.Cholesterol<=(df.Cholesterol.mean()+3*df.Cholesterol.std())]\n", + "df1.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Age, Sex, ChestPainType, RestingBP, Cholesterol, FastingBS, RestingECG, MaxHR, ExerciseAngina, Oldpeak, ST_Slope, HeartDisease]\n", + "Index: []" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.MaxHR>(df.MaxHR.mean()+3*df.MaxHR.std())]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Age, Sex, ChestPainType, RestingBP, Cholesterol, FastingBS, RestingECG, MaxHR, ExerciseAngina, Oldpeak, ST_Slope, HeartDisease]\n", + "Index: []" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.FastingBS>(df.FastingBS.mean()+3*df.FastingBS.std())]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
16650MASY1402310ST140Y5.0Flat1
70259MTA1782700LVH145N4.2Down0
77155MASY1402170Normal111Y5.6Down1
79151MASY1402980Normal122Y4.2Flat1
85062FASY1601640LVH145N6.2Down1
90058MASY1143180ST140N4.4Down1
\n", + "
" + ], + "text/plain": [ + " Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG \\\n", + "166 50 M ASY 140 231 0 ST \n", + "702 59 M TA 178 270 0 LVH \n", + "771 55 M ASY 140 217 0 Normal \n", + "791 51 M ASY 140 298 0 Normal \n", + "850 62 F ASY 160 164 0 LVH \n", + "900 58 M ASY 114 318 0 ST \n", + "\n", + " MaxHR ExerciseAngina Oldpeak ST_Slope HeartDisease \n", + "166 140 Y 5.0 Flat 1 \n", + "702 145 N 4.2 Down 0 \n", + "771 111 Y 5.6 Down 1 \n", + "791 122 Y 4.2 Flat 1 \n", + "850 145 N 6.2 Down 1 \n", + "900 140 N 4.4 Down 1 " + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.Oldpeak>(df.Oldpeak.mean()+3*df.Oldpeak.std())]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(909, 12)" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 = df1[df1.Oldpeak<=(df1.Oldpeak.mean()+3*df1.Oldpeak.std())]\n", + "df2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
10939MATA1902410Normal106N0.0Up0
24154MASY2001980Normal142Y2.0Flat1
36564FASY20000Normal140Y1.0Flat1
39961MNAP20001ST70N0.0Flat1
59261MASY1902871LVH150Y2.0Down1
73256FASY2002881LVH133Y4.0Down1
75954MATA1922830LVH195N0.0Up1
\n", + "
" + ], + "text/plain": [ + " Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG \\\n", + "109 39 M ATA 190 241 0 Normal \n", + "241 54 M ASY 200 198 0 Normal \n", + "365 64 F ASY 200 0 0 Normal \n", + "399 61 M NAP 200 0 1 ST \n", + "592 61 M ASY 190 287 1 LVH \n", + "732 56 F ASY 200 288 1 LVH \n", + "759 54 M ATA 192 283 0 LVH \n", + "\n", + " MaxHR ExerciseAngina Oldpeak ST_Slope HeartDisease \n", + "109 106 N 0.0 Up 0 \n", + "241 142 Y 2.0 Flat 1 \n", + "365 140 Y 1.0 Flat 1 \n", + "399 70 N 0.0 Flat 1 \n", + "592 150 Y 2.0 Down 1 \n", + "732 133 Y 4.0 Down 1 \n", + "759 195 N 0.0 Up 1 " + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df.RestingBP>(df.RestingBP.mean()+3*df.RestingBP.std())]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(902, 12)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df3 = df2[df2.RestingBP<=(df2.RestingBP.mean()+3*df2.RestingBP.std())]\n", + "df3.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['ATA', 'NAP', 'ASY', 'TA'], dtype=object)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.ChestPainType.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Normal', 'ST', 'LVH'], dtype=object)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.RestingECG.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['N', 'Y'], dtype=object)" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.ExerciseAngina.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Up', 'Flat', 'Down'], dtype=object)" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.ST_Slope.unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Handle text columns using label encoding and one hot encoding

" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "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", + "
AgeSexChestPainTypeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDisease
040MATA1402890117200.030
149FNAP1601800115601.021
237MATA130283029800.030
348FASY1382140110811.521
454MNAP1501950112200.030
\n", + "
" + ], + "text/plain": [ + " Age Sex ChestPainType RestingBP Cholesterol FastingBS RestingECG \\\n", + "0 40 M ATA 140 289 0 1 \n", + "1 49 F NAP 160 180 0 1 \n", + "2 37 M ATA 130 283 0 2 \n", + "3 48 F ASY 138 214 0 1 \n", + "4 54 M NAP 150 195 0 1 \n", + "\n", + " MaxHR ExerciseAngina Oldpeak ST_Slope HeartDisease \n", + "0 172 0 0.0 3 0 \n", + "1 156 0 1.0 2 1 \n", + "2 98 0 0.0 3 0 \n", + "3 108 1 1.5 2 1 \n", + "4 122 0 0.0 3 0 " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df4 = df3.copy()\n", + "df4.ExerciseAngina.replace(\n", + " {\n", + " 'N': 0,\n", + " 'Y': 1\n", + " },\n", + " inplace=True)\n", + "\n", + "df4.ST_Slope.replace(\n", + " {\n", + " 'Down': 1,\n", + " 'Flat': 2,\n", + " 'Up': 3\n", + " },\n", + " inplace=True\n", + ")\n", + "\n", + "df4.RestingECG.replace(\n", + " {\n", + " 'Normal': 1,\n", + " 'ST': 2,\n", + " 'LVH': 3\n", + " },\n", + " inplace=True)\n", + "\n", + "df4.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "scrolled": true + }, + "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", + "
AgeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeHeartDiseaseSex_MChestPainType_ATAChestPainType_NAPChestPainType_TA
0401402890117200.0301100
1491601800115601.0210010
237130283029800.0301100
3481382140110811.5210000
4541501950112200.0301010
\n", + "
" + ], + "text/plain": [ + " Age RestingBP Cholesterol FastingBS RestingECG MaxHR ExerciseAngina \\\n", + "0 40 140 289 0 1 172 0 \n", + "1 49 160 180 0 1 156 0 \n", + "2 37 130 283 0 2 98 0 \n", + "3 48 138 214 0 1 108 1 \n", + "4 54 150 195 0 1 122 0 \n", + "\n", + " Oldpeak ST_Slope HeartDisease Sex_M ChestPainType_ATA \\\n", + "0 0.0 3 0 1 1 \n", + "1 1.0 2 1 0 0 \n", + "2 0.0 3 0 1 1 \n", + "3 1.5 2 1 0 0 \n", + "4 0.0 3 0 1 0 \n", + "\n", + " ChestPainType_NAP ChestPainType_TA \n", + "0 0 0 \n", + "1 1 0 \n", + "2 0 0 \n", + "3 0 0 \n", + "4 1 0 " + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df5 = pd.get_dummies(df4, drop_first=True)\n", + "df5.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "scrolled": true + }, + "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", + "
AgeRestingBPCholesterolFastingBSRestingECGMaxHRExerciseAnginaOldpeakST_SlopeSex_MChestPainType_ATAChestPainType_NAPChestPainType_TA
0401402890117200.031100
1491601800115601.020010
237130283029800.031100
3481382140110811.520000
4541501950112200.031010
\n", + "
" + ], + "text/plain": [ + " Age RestingBP Cholesterol FastingBS RestingECG MaxHR ExerciseAngina \\\n", + "0 40 140 289 0 1 172 0 \n", + "1 49 160 180 0 1 156 0 \n", + "2 37 130 283 0 2 98 0 \n", + "3 48 138 214 0 1 108 1 \n", + "4 54 150 195 0 1 122 0 \n", + "\n", + " Oldpeak ST_Slope Sex_M ChestPainType_ATA ChestPainType_NAP \\\n", + "0 0.0 3 1 1 0 \n", + "1 1.0 2 0 0 1 \n", + "2 0.0 3 1 1 0 \n", + "3 1.5 2 0 0 0 \n", + "4 0.0 3 1 0 1 \n", + "\n", + " ChestPainType_TA \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 " + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = df5.drop(\"HeartDisease\",axis='columns')\n", + "y = df5.HeartDisease\n", + "\n", + "X.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-1.42896269, 0.46089071, 0.85238015, ..., 2.06757196,\n", + " -0.53547478, -0.22914788],\n", + " [-0.47545956, 1.5925728 , -0.16132855, ..., -0.4836591 ,\n", + " 1.86750159, -0.22914788],\n", + " [-1.74679706, -0.10495034, 0.79657967, ..., 2.06757196,\n", + " -0.53547478, -0.22914788],\n", + " ...,\n", + " [ 0.37209878, -0.10495034, -0.61703246, ..., -0.4836591 ,\n", + " -0.53547478, -0.22914788],\n", + " [ 0.37209878, -0.10495034, 0.35947592, ..., 2.06757196,\n", + " -0.53547478, -0.22914788],\n", + " [-1.64085227, 0.3477225 , -0.20782894, ..., -0.4836591 ,\n", + " 1.86750159, -0.22914788]])" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "scaler = StandardScaler()\n", + "X_scaled = scaler.fit_transform(X)\n", + "X_scaled" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=20)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(721, 13)" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(181, 13)" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train a model using standalone support vector machine and then using bagging

" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6906445672191528" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.svm import SVC\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "scores = cross_val_score(SVC(), X, y, cv=5)\n", + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Use bagging now with svm**" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6839656230816453" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "\n", + "bag_model = BaggingClassifier(base_estimator=SVC(), n_estimators=100, max_samples=0.8, random_state=0)\n", + "scores = cross_val_score(bag_model, X, y, cv=5)\n", + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see above, using bagging in case of SVM doesn't make much difference in terms of model accuracy. Bagging is effective when we have high variance and instable model such as decision tree. Let's explore how bagging changes the performance for a decision tree classifier." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train a model using decision tree and then using bagging

" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7193984039287907" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "scores = cross_val_score(DecisionTreeClassifier(random_state=0), X, y, cv=5)\n", + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Use bagging now with decision tree**" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8037016574585636" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bag_model = BaggingClassifier(\n", + " base_estimator=DecisionTreeClassifier(random_state=0), \n", + " n_estimators=100, \n", + " max_samples=0.9, \n", + " oob_score=True,\n", + " random_state=0\n", + ")\n", + "\n", + "scores = cross_val_score(bag_model, X, y, cv=5)\n", + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**You can see that with bagging the score improved from 71.93% to 80.37%**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train a model using Random Forest which itself uses bagging underneath

" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8170288520564764" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "\n", + "scores = cross_val_score(RandomForestClassifier(), X, y, cv=5)\n", + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Random forest gave even a better performance with 81.7% as score. Underneath it used bagging where it sampled not only data rows but also the columns (or features)**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML/19_Bagging/Exercise/heart.csv b/ML/19_Bagging/Exercise/heart.csv new file mode 100644 index 00000000..5d9bce69 --- /dev/null +++ b/ML/19_Bagging/Exercise/heart.csv @@ -0,0 +1,919 @@ +Age,Sex,ChestPainType,RestingBP,Cholesterol,FastingBS,RestingECG,MaxHR,ExerciseAngina,Oldpeak,ST_Slope,HeartDisease +40,M,ATA,140,289,0,Normal,172,N,0,Up,0 +49,F,NAP,160,180,0,Normal,156,N,1,Flat,1 +37,M,ATA,130,283,0,ST,98,N,0,Up,0 +48,F,ASY,138,214,0,Normal,108,Y,1.5,Flat,1 +54,M,NAP,150,195,0,Normal,122,N,0,Up,0 +39,M,NAP,120,339,0,Normal,170,N,0,Up,0 +45,F,ATA,130,237,0,Normal,170,N,0,Up,0 +54,M,ATA,110,208,0,Normal,142,N,0,Up,0 +37,M,ASY,140,207,0,Normal,130,Y,1.5,Flat,1 +48,F,ATA,120,284,0,Normal,120,N,0,Up,0 +37,F,NAP,130,211,0,Normal,142,N,0,Up,0 +58,M,ATA,136,164,0,ST,99,Y,2,Flat,1 +39,M,ATA,120,204,0,Normal,145,N,0,Up,0 +49,M,ASY,140,234,0,Normal,140,Y,1,Flat,1 +42,F,NAP,115,211,0,ST,137,N,0,Up,0 +54,F,ATA,120,273,0,Normal,150,N,1.5,Flat,0 +38,M,ASY,110,196,0,Normal,166,N,0,Flat,1 +43,F,ATA,120,201,0,Normal,165,N,0,Up,0 +60,M,ASY,100,248,0,Normal,125,N,1,Flat,1 +36,M,ATA,120,267,0,Normal,160,N,3,Flat,1 +43,F,TA,100,223,0,Normal,142,N,0,Up,0 +44,M,ATA,120,184,0,Normal,142,N,1,Flat,0 +49,F,ATA,124,201,0,Normal,164,N,0,Up,0 +44,M,ATA,150,288,0,Normal,150,Y,3,Flat,1 +40,M,NAP,130,215,0,Normal,138,N,0,Up,0 +36,M,NAP,130,209,0,Normal,178,N,0,Up,0 +53,M,ASY,124,260,0,ST,112,Y,3,Flat,0 +52,M,ATA,120,284,0,Normal,118,N,0,Up,0 +53,F,ATA,113,468,0,Normal,127,N,0,Up,0 +51,M,ATA,125,188,0,Normal,145,N,0,Up,0 +53,M,NAP,145,518,0,Normal,130,N,0,Flat,1 +56,M,NAP,130,167,0,Normal,114,N,0,Up,0 +54,M,ASY,125,224,0,Normal,122,N,2,Flat,1 +41,M,ASY,130,172,0,ST,130,N,2,Flat,1 +43,F,ATA,150,186,0,Normal,154,N,0,Up,0 +32,M,ATA,125,254,0,Normal,155,N,0,Up,0 +65,M,ASY,140,306,1,Normal,87,Y,1.5,Flat,1 +41,F,ATA,110,250,0,ST,142,N,0,Up,0 +48,F,ATA,120,177,1,ST,148,N,0,Up,0 +48,F,ASY,150,227,0,Normal,130,Y,1,Flat,0 +54,F,ATA,150,230,0,Normal,130,N,0,Up,0 +54,F,NAP,130,294,0,ST,100,Y,0,Flat,1 +35,M,ATA,150,264,0,Normal,168,N,0,Up,0 +52,M,NAP,140,259,0,ST,170,N,0,Up,0 +43,M,ASY,120,175,0,Normal,120,Y,1,Flat,1 +59,M,NAP,130,318,0,Normal,120,Y,1,Flat,0 +37,M,ASY,120,223,0,Normal,168,N,0,Up,0 +50,M,ATA,140,216,0,Normal,170,N,0,Up,0 +36,M,NAP,112,340,0,Normal,184,N,1,Flat,0 +41,M,ASY,110,289,0,Normal,170,N,0,Flat,1 +50,M,ASY,130,233,0,Normal,121,Y,2,Flat,1 +47,F,ASY,120,205,0,Normal,98,Y,2,Flat,1 +45,M,ATA,140,224,1,Normal,122,N,0,Up,0 +41,F,ATA,130,245,0,Normal,150,N,0,Up,0 +52,F,ASY,130,180,0,Normal,140,Y,1.5,Flat,0 +51,F,ATA,160,194,0,Normal,170,N,0,Up,0 +31,M,ASY,120,270,0,Normal,153,Y,1.5,Flat,1 +58,M,NAP,130,213,0,ST,140,N,0,Flat,1 +54,M,ASY,150,365,0,ST,134,N,1,Up,0 +52,M,ASY,112,342,0,ST,96,Y,1,Flat,1 +49,M,ATA,100,253,0,Normal,174,N,0,Up,0 +43,F,NAP,150,254,0,Normal,175,N,0,Up,0 +45,M,ASY,140,224,0,Normal,144,N,0,Up,0 +46,M,ASY,120,277,0,Normal,125,Y,1,Flat,1 +50,F,ATA,110,202,0,Normal,145,N,0,Up,0 +37,F,ATA,120,260,0,Normal,130,N,0,Up,0 +45,F,ASY,132,297,0,Normal,144,N,0,Up,0 +32,M,ATA,110,225,0,Normal,184,N,0,Up,0 +52,M,ASY,160,246,0,ST,82,Y,4,Flat,1 +44,M,ASY,150,412,0,Normal,170,N,0,Up,0 +57,M,ATA,140,265,0,ST,145,Y,1,Flat,1 +44,M,ATA,130,215,0,Normal,135,N,0,Up,0 +52,M,ASY,120,182,0,Normal,150,N,0,Flat,1 +44,F,ASY,120,218,0,ST,115,N,0,Up,0 +55,M,ASY,140,268,0,Normal,128,Y,1.5,Flat,1 +46,M,NAP,150,163,0,Normal,116,N,0,Up,0 +32,M,ASY,118,529,0,Normal,130,N,0,Flat,1 +35,F,ASY,140,167,0,Normal,150,N,0,Up,0 +52,M,ATA,140,100,0,Normal,138,Y,0,Up,0 +49,M,ASY,130,206,0,Normal,170,N,0,Flat,1 +55,M,NAP,110,277,0,Normal,160,N,0,Up,0 +54,M,ATA,120,238,0,Normal,154,N,0,Up,0 +63,M,ASY,150,223,0,Normal,115,N,0,Flat,1 +52,M,ATA,160,196,0,Normal,165,N,0,Up,0 +56,M,ASY,150,213,1,Normal,125,Y,1,Flat,1 +66,M,ASY,140,139,0,Normal,94,Y,1,Flat,1 +65,M,ASY,170,263,1,Normal,112,Y,2,Flat,1 +53,F,ATA,140,216,0,Normal,142,Y,2,Flat,0 +43,M,TA,120,291,0,ST,155,N,0,Flat,1 +55,M,ASY,140,229,0,Normal,110,Y,0.5,Flat,0 +49,F,ATA,110,208,0,Normal,160,N,0,Up,0 +39,M,ASY,130,307,0,Normal,140,N,0,Up,0 +52,F,ATA,120,210,0,Normal,148,N,0,Up,0 +48,M,ASY,160,329,0,Normal,92,Y,1.5,Flat,1 +39,F,NAP,110,182,0,ST,180,N,0,Up,0 +58,M,ASY,130,263,0,Normal,140,Y,2,Flat,1 +43,M,ATA,142,207,0,Normal,138,N,0,Up,0 +39,M,NAP,160,147,1,Normal,160,N,0,Up,0 +56,M,ASY,120,85,0,Normal,140,N,0,Up,0 +41,M,ATA,125,269,0,Normal,144,N,0,Up,0 +65,M,ASY,130,275,0,ST,115,Y,1,Flat,1 +51,M,ASY,130,179,0,Normal,100,N,0,Up,0 +40,F,ASY,150,392,0,Normal,130,N,2,Flat,1 +40,M,ASY,120,466,1,Normal,152,Y,1,Flat,1 +46,M,ASY,118,186,0,Normal,124,N,0,Flat,1 +57,M,ATA,140,260,1,Normal,140,N,0,Up,0 +48,F,ASY,120,254,0,ST,110,N,0,Up,0 +34,M,ATA,150,214,0,ST,168,N,0,Up,0 +50,M,ASY,140,129,0,Normal,135,N,0,Up,0 +39,M,ATA,190,241,0,Normal,106,N,0,Up,0 +59,F,ATA,130,188,0,Normal,124,N,1,Flat,0 +57,M,ASY,150,255,0,Normal,92,Y,3,Flat,1 +47,M,ASY,140,276,1,Normal,125,Y,0,Up,0 +38,M,ATA,140,297,0,Normal,150,N,0,Up,0 +49,F,NAP,130,207,0,ST,135,N,0,Up,0 +33,F,ASY,100,246,0,Normal,150,Y,1,Flat,1 +38,M,ASY,120,282,0,Normal,170,N,0,Flat,1 +59,F,ASY,130,338,1,ST,130,Y,1.5,Flat,1 +35,F,TA,120,160,0,ST,185,N,0,Up,0 +34,M,TA,140,156,0,Normal,180,N,0,Flat,1 +47,F,NAP,135,248,1,Normal,170,N,0,Flat,1 +52,F,NAP,125,272,0,Normal,139,N,0,Up,0 +46,M,ASY,110,240,0,ST,140,N,0,Up,0 +58,F,ATA,180,393,0,Normal,110,Y,1,Flat,1 +58,M,ATA,130,230,0,Normal,150,N,0,Up,0 +54,M,ATA,120,246,0,Normal,110,N,0,Up,0 +34,F,ATA,130,161,0,Normal,190,N,0,Up,0 +48,F,ASY,108,163,0,Normal,175,N,2,Up,0 +54,F,ATA,120,230,1,Normal,140,N,0,Up,0 +42,M,NAP,120,228,0,Normal,152,Y,1.5,Flat,0 +38,M,NAP,145,292,0,Normal,130,N,0,Up,0 +46,M,ASY,110,202,0,Normal,150,Y,0,Flat,1 +56,M,ASY,170,388,0,ST,122,Y,2,Flat,1 +56,M,ASY,150,230,0,ST,124,Y,1.5,Flat,1 +61,F,ASY,130,294,0,ST,120,Y,1,Flat,0 +49,M,NAP,115,265,0,Normal,175,N,0,Flat,1 +43,F,ATA,120,215,0,ST,175,N,0,Up,0 +39,M,ATA,120,241,0,ST,146,N,2,Up,0 +54,M,ASY,140,166,0,Normal,118,Y,0,Flat,1 +43,M,ASY,150,247,0,Normal,130,Y,2,Flat,1 +52,M,ASY,160,331,0,Normal,94,Y,2.5,Flat,1 +50,M,ASY,140,341,0,ST,125,Y,2.5,Flat,1 +47,M,ASY,160,291,0,ST,158,Y,3,Flat,1 +53,M,ASY,140,243,0,Normal,155,N,0,Up,0 +56,F,ATA,120,279,0,Normal,150,N,1,Flat,1 +39,M,ASY,110,273,0,Normal,132,N,0,Up,0 +42,M,ATA,120,198,0,Normal,155,N,0,Up,0 +43,F,ATA,120,249,0,ST,176,N,0,Up,0 +50,M,ATA,120,168,0,Normal,160,N,0,Up,0 +54,M,ASY,130,603,1,Normal,125,Y,1,Flat,1 +39,M,ATA,130,215,0,Normal,120,N,0,Up,0 +48,M,ATA,100,159,0,Normal,100,N,0,Up,0 +40,M,ATA,130,275,0,Normal,150,N,0,Up,0 +55,M,ASY,120,270,0,Normal,140,N,0,Up,0 +41,M,ATA,120,291,0,ST,160,N,0,Up,0 +56,M,ASY,155,342,1,Normal,150,Y,3,Flat,1 +38,M,ASY,110,190,0,Normal,150,Y,1,Flat,1 +49,M,ASY,140,185,0,Normal,130,N,0,Up,0 +44,M,ASY,130,290,0,Normal,100,Y,2,Flat,1 +54,M,ATA,160,195,0,ST,130,N,1,Up,0 +59,M,ASY,140,264,1,LVH,119,Y,0,Flat,1 +49,M,ASY,128,212,0,Normal,96,Y,0,Flat,1 +47,M,ATA,160,263,0,Normal,174,N,0,Up,0 +42,M,ATA,120,196,0,Normal,150,N,0,Up,0 +52,F,ATA,140,225,0,Normal,140,N,0,Up,0 +46,M,TA,140,272,1,Normal,175,N,2,Flat,1 +50,M,ASY,140,231,0,ST,140,Y,5,Flat,1 +48,M,ATA,140,238,0,Normal,118,N,0,Up,0 +58,M,ASY,135,222,0,Normal,100,N,0,Up,0 +58,M,NAP,140,179,0,Normal,160,N,0,Up,0 +29,M,ATA,120,243,0,Normal,160,N,0,Up,0 +40,M,NAP,140,235,0,Normal,188,N,0,Up,0 +53,M,ATA,140,320,0,Normal,162,N,0,Up,0 +49,M,NAP,140,187,0,Normal,172,N,0,Up,0 +52,M,ASY,140,266,0,Normal,134,Y,2,Flat,1 +43,M,ASY,140,288,0,Normal,135,Y,2,Flat,1 +54,M,ASY,140,216,0,Normal,105,N,1.5,Flat,1 +59,M,ATA,140,287,0,Normal,150,N,0,Up,0 +37,M,NAP,130,194,0,Normal,150,N,0,Up,0 +46,F,ASY,130,238,0,Normal,90,N,0,Up,0 +52,M,ASY,130,225,0,Normal,120,Y,2,Flat,1 +51,M,ATA,130,224,0,Normal,150,N,0,Up,0 +52,M,ASY,140,404,0,Normal,124,Y,2,Flat,1 +46,M,ASY,110,238,0,ST,140,Y,1,Flat,0 +54,F,ATA,160,312,0,Normal,130,N,0,Up,0 +58,M,NAP,160,211,1,ST,92,N,0,Flat,1 +58,M,ATA,130,251,0,Normal,110,N,0,Up,0 +41,M,ASY,120,237,1,Normal,138,Y,1,Flat,1 +50,F,ASY,120,328,0,Normal,110,Y,1,Flat,0 +53,M,ASY,180,285,0,ST,120,Y,1.5,Flat,1 +46,M,ASY,180,280,0,ST,120,N,0,Up,0 +50,M,ATA,170,209,0,ST,116,N,0,Up,0 +48,M,ATA,130,245,0,Normal,160,N,0,Up,0 +45,M,NAP,135,192,0,Normal,110,N,0,Up,0 +41,F,ATA,125,184,0,Normal,180,N,0,Up,0 +62,F,TA,160,193,0,Normal,116,N,0,Up,0 +49,M,ASY,120,297,0,Normal,132,N,1,Flat,0 +42,M,ATA,150,268,0,Normal,136,N,0,Up,0 +53,M,ASY,120,246,0,Normal,116,Y,0,Flat,1 +57,F,TA,130,308,0,Normal,98,N,1,Flat,0 +47,M,TA,110,249,0,Normal,150,N,0,Up,0 +46,M,NAP,120,230,0,Normal,150,N,0,Up,0 +42,M,NAP,160,147,0,Normal,146,N,0,Up,0 +31,F,ATA,100,219,0,ST,150,N,0,Up,0 +56,M,ATA,130,184,0,Normal,100,N,0,Up,0 +50,M,ASY,150,215,0,Normal,140,Y,0,Up,0 +35,M,ATA,120,308,0,LVH,180,N,0,Up,0 +35,M,ATA,110,257,0,Normal,140,N,0,Flat,1 +28,M,ATA,130,132,0,LVH,185,N,0,Up,0 +54,M,ASY,125,216,0,Normal,140,N,0,Flat,1 +48,M,ASY,106,263,1,Normal,110,N,0,Flat,1 +50,F,NAP,140,288,0,Normal,140,Y,0,Flat,1 +56,M,NAP,130,276,0,Normal,128,Y,1,Up,0 +56,F,NAP,130,219,0,ST,164,N,0,Up,0 +47,M,ASY,150,226,0,Normal,98,Y,1.5,Flat,1 +30,F,TA,170,237,0,ST,170,N,0,Up,0 +39,M,ASY,110,280,0,Normal,150,N,0,Flat,1 +54,M,NAP,120,217,0,Normal,137,N,0,Up,0 +55,M,ATA,140,196,0,Normal,150,N,0,Up,0 +29,M,ATA,140,263,0,Normal,170,N,0,Up,0 +46,M,ASY,130,222,0,Normal,112,N,0,Flat,1 +51,F,ASY,160,303,0,Normal,150,Y,1,Flat,1 +48,F,NAP,120,195,0,Normal,125,N,0,Up,0 +33,M,NAP,120,298,0,Normal,185,N,0,Up,0 +55,M,ATA,120,256,1,Normal,137,N,0,Up,0 +50,M,ASY,145,264,0,Normal,150,N,0,Flat,1 +53,M,NAP,120,195,0,Normal,140,N,0,Up,0 +38,M,ASY,92,117,0,Normal,134,Y,2.5,Flat,1 +41,M,ATA,120,295,0,Normal,170,N,0,Up,0 +37,F,ASY,130,173,0,ST,184,N,0,Up,0 +37,M,ASY,130,315,0,Normal,158,N,0,Up,0 +40,M,NAP,130,281,0,Normal,167,N,0,Up,0 +38,F,ATA,120,275,0,Normal,129,N,0,Up,0 +41,M,ASY,112,250,0,Normal,142,N,0,Up,0 +54,F,ATA,140,309,0,ST,140,N,0,Up,0 +39,M,ATA,120,200,0,Normal,160,Y,1,Flat,0 +41,M,ASY,120,336,0,Normal,118,Y,3,Flat,1 +55,M,TA,140,295,0,Normal,136,N,0,Flat,1 +48,M,ASY,160,355,0,Normal,99,Y,2,Flat,1 +48,M,ASY,160,193,0,Normal,102,Y,3,Flat,1 +55,M,ATA,145,326,0,Normal,155,N,0,Up,0 +54,M,ASY,200,198,0,Normal,142,Y,2,Flat,1 +55,M,ATA,160,292,1,Normal,143,Y,2,Flat,1 +43,F,ATA,120,266,0,Normal,118,N,0,Up,0 +48,M,ASY,160,268,0,Normal,103,Y,1,Flat,1 +54,M,TA,120,171,0,Normal,137,N,2,Up,0 +54,M,NAP,120,237,0,Normal,150,Y,1.5,Flat,1 +48,M,ASY,122,275,1,ST,150,Y,2,Down,1 +45,M,ASY,130,219,0,ST,130,Y,1,Flat,1 +49,M,ASY,130,341,0,Normal,120,Y,1,Flat,1 +44,M,ASY,135,491,0,Normal,135,N,0,Flat,1 +48,M,ASY,120,260,0,Normal,115,N,2,Flat,1 +61,M,ASY,125,292,0,ST,115,Y,0,Up,0 +62,M,ATA,140,271,0,Normal,152,N,1,Up,0 +55,M,ASY,145,248,0,Normal,96,Y,2,Flat,1 +53,F,NAP,120,274,0,Normal,130,N,0,Up,0 +55,F,ATA,130,394,0,LVH,150,N,0,Up,0 +36,M,NAP,150,160,0,Normal,172,N,0,Up,0 +51,F,NAP,150,200,0,Normal,120,N,0.5,Up,0 +55,F,ATA,122,320,0,Normal,155,N,0,Up,0 +46,M,ATA,140,275,0,Normal,165,Y,0,Up,0 +54,F,ATA,120,221,0,Normal,138,N,1,Up,0 +46,M,ASY,120,231,0,Normal,115,Y,0,Flat,1 +59,M,ASY,130,126,0,Normal,125,N,0,Flat,1 +47,M,NAP,140,193,0,Normal,145,Y,1,Flat,1 +54,M,ATA,160,305,0,Normal,175,N,0,Up,0 +52,M,ASY,130,298,0,Normal,110,Y,1,Flat,1 +34,M,ATA,98,220,0,Normal,150,N,0,Up,0 +54,M,ASY,130,242,0,Normal,91,Y,1,Flat,1 +47,F,NAP,130,235,0,Normal,145,N,2,Flat,0 +45,M,ASY,120,225,0,Normal,140,N,0,Up,0 +32,F,ATA,105,198,0,Normal,165,N,0,Up,0 +55,M,ASY,140,201,0,Normal,130,Y,3,Flat,1 +55,M,NAP,120,220,0,LVH,134,N,0,Up,0 +45,F,ATA,180,295,0,Normal,180,N,0,Up,0 +59,M,NAP,180,213,0,Normal,100,N,0,Up,0 +51,M,NAP,135,160,0,Normal,150,N,2,Flat,1 +52,M,ASY,170,223,0,Normal,126,Y,1.5,Flat,1 +57,F,ASY,180,347,0,ST,126,Y,0.8,Flat,0 +54,F,ATA,130,253,0,ST,155,N,0,Up,0 +60,M,NAP,120,246,0,LVH,135,N,0,Up,0 +49,M,ASY,150,222,0,Normal,122,N,2,Flat,1 +51,F,NAP,130,220,0,Normal,160,Y,2,Up,0 +55,F,ATA,110,344,0,ST,160,N,0,Up,0 +42,M,ASY,140,358,0,Normal,170,N,0,Up,0 +51,F,NAP,110,190,0,Normal,120,N,0,Up,0 +59,M,ASY,140,169,0,Normal,140,N,0,Up,0 +53,M,ATA,120,181,0,Normal,132,N,0,Up,0 +48,F,ATA,133,308,0,ST,156,N,2,Up,0 +36,M,ATA,120,166,0,Normal,180,N,0,Up,0 +48,M,NAP,110,211,0,Normal,138,N,0,Up,0 +47,F,ATA,140,257,0,Normal,135,N,1,Up,0 +53,M,ASY,130,182,0,Normal,148,N,0,Up,0 +65,M,ASY,115,0,0,Normal,93,Y,0,Flat,1 +32,M,TA,95,0,1,Normal,127,N,0.7,Up,1 +61,M,ASY,105,0,1,Normal,110,Y,1.5,Up,1 +50,M,ASY,145,0,1,Normal,139,Y,0.7,Flat,1 +57,M,ASY,110,0,1,ST,131,Y,1.4,Up,1 +51,M,ASY,110,0,1,Normal,92,N,0,Flat,1 +47,M,ASY,110,0,1,ST,149,N,2.1,Up,1 +60,M,ASY,160,0,1,Normal,149,N,0.4,Flat,1 +55,M,ATA,140,0,0,ST,150,N,0.2,Up,0 +53,M,ASY,125,0,1,Normal,120,N,1.5,Up,1 +62,F,ASY,120,0,1,ST,123,Y,1.7,Down,1 +51,M,ASY,95,0,1,Normal,126,N,2.2,Flat,1 +51,F,ASY,120,0,1,Normal,127,Y,1.5,Up,1 +55,M,ASY,115,0,1,Normal,155,N,0.1,Flat,1 +53,M,ATA,130,0,0,ST,120,N,0.7,Down,0 +58,M,ASY,115,0,1,Normal,138,N,0.5,Up,1 +57,M,ASY,95,0,1,Normal,182,N,0.7,Down,1 +65,M,ASY,155,0,0,Normal,154,N,1,Up,0 +60,M,ASY,125,0,1,Normal,110,N,0.1,Up,1 +41,M,ASY,125,0,1,Normal,176,N,1.6,Up,1 +34,M,ASY,115,0,1,Normal,154,N,0.2,Up,1 +53,M,ASY,80,0,0,Normal,141,Y,2,Down,0 +74,M,ATA,145,0,1,ST,123,N,1.3,Up,1 +57,M,NAP,105,0,1,Normal,148,N,0.3,Flat,1 +56,M,ASY,140,0,1,Normal,121,Y,1.8,Up,1 +61,M,ASY,130,0,1,Normal,77,N,2.5,Flat,1 +68,M,ASY,145,0,1,Normal,136,N,1.8,Up,1 +59,M,NAP,125,0,1,Normal,175,N,2.6,Flat,1 +63,M,ASY,100,0,1,Normal,109,N,-0.9,Flat,1 +38,F,ASY,105,0,1,Normal,166,N,2.8,Up,1 +62,M,ASY,115,0,1,Normal,128,Y,2.5,Down,1 +46,M,ASY,100,0,1,ST,133,N,-2.6,Flat,1 +42,M,ASY,105,0,1,Normal,128,Y,-1.5,Down,1 +45,M,NAP,110,0,0,Normal,138,N,-0.1,Up,0 +59,M,ASY,125,0,1,Normal,119,Y,0.9,Up,1 +52,M,ASY,95,0,1,Normal,82,Y,0.8,Flat,1 +60,M,ASY,130,0,1,ST,130,Y,1.1,Down,1 +60,M,NAP,115,0,1,Normal,143,N,2.4,Up,1 +56,M,ASY,115,0,1,ST,82,N,-1,Up,1 +38,M,NAP,100,0,0,Normal,179,N,-1.1,Up,0 +40,M,ASY,95,0,1,ST,144,N,0,Up,1 +51,M,ASY,130,0,1,Normal,170,N,-0.7,Up,1 +62,M,TA,120,0,1,LVH,134,N,-0.8,Flat,1 +72,M,NAP,160,0,0,LVH,114,N,1.6,Flat,0 +63,M,ASY,150,0,1,ST,154,N,3.7,Up,1 +63,M,ASY,140,0,1,LVH,149,N,2,Up,1 +64,F,ASY,95,0,1,Normal,145,N,1.1,Down,1 +43,M,ASY,100,0,1,Normal,122,N,1.5,Down,1 +64,M,ASY,110,0,1,Normal,114,Y,1.3,Down,1 +61,M,ASY,110,0,1,Normal,113,N,1.4,Flat,1 +52,M,ASY,130,0,1,Normal,120,N,0,Flat,1 +51,M,ASY,120,0,1,Normal,104,N,0,Flat,1 +69,M,ASY,135,0,0,Normal,130,N,0,Flat,1 +59,M,ASY,120,0,0,Normal,115,N,0,Flat,1 +48,M,ASY,115,0,1,Normal,128,N,0,Flat,1 +69,M,ASY,137,0,0,ST,104,Y,1.6,Flat,1 +36,M,ASY,110,0,1,Normal,125,Y,1,Flat,1 +53,M,ASY,120,0,1,Normal,120,N,0,Flat,1 +43,M,ASY,140,0,0,ST,140,Y,0.5,Up,1 +56,M,ASY,120,0,0,ST,100,Y,-1,Down,1 +58,M,ASY,130,0,0,ST,100,Y,1,Flat,1 +55,M,ASY,120,0,0,ST,92,N,0.3,Up,1 +67,M,TA,145,0,0,LVH,125,N,0,Flat,1 +46,M,ASY,115,0,0,Normal,113,Y,1.5,Flat,1 +53,M,ATA,120,0,0,Normal,95,N,0,Flat,1 +38,M,NAP,115,0,0,Normal,128,Y,0,Flat,1 +53,M,NAP,105,0,0,Normal,115,N,0,Flat,1 +62,M,NAP,160,0,0,Normal,72,Y,0,Flat,1 +47,M,ASY,160,0,0,Normal,124,Y,0,Flat,1 +56,M,NAP,155,0,0,ST,99,N,0,Flat,1 +56,M,ASY,120,0,0,ST,148,N,0,Flat,1 +56,M,NAP,120,0,0,Normal,97,N,0,Flat,0 +64,F,ASY,200,0,0,Normal,140,Y,1,Flat,1 +61,M,ASY,150,0,0,Normal,117,Y,2,Flat,1 +68,M,ASY,135,0,0,ST,120,Y,0,Up,1 +57,M,ASY,140,0,0,Normal,120,Y,2,Flat,1 +63,M,ASY,150,0,0,Normal,86,Y,2,Flat,1 +60,M,ASY,135,0,0,Normal,63,Y,0.5,Up,1 +66,M,ASY,150,0,0,Normal,108,Y,2,Flat,1 +63,M,ASY,185,0,0,Normal,98,Y,0,Up,1 +59,M,ASY,135,0,0,Normal,115,Y,1,Flat,1 +61,M,ASY,125,0,0,Normal,105,Y,0,Down,1 +73,F,NAP,160,0,0,ST,121,N,0,Up,1 +47,M,NAP,155,0,0,Normal,118,Y,1,Flat,1 +65,M,ASY,160,0,1,ST,122,N,1.2,Flat,1 +70,M,ASY,140,0,1,Normal,157,Y,2,Flat,1 +50,M,ASY,120,0,0,ST,156,Y,0,Up,1 +60,M,ASY,160,0,0,ST,99,Y,0.5,Flat,1 +50,M,ASY,115,0,0,Normal,120,Y,0.5,Flat,1 +43,M,ASY,115,0,0,Normal,145,Y,2,Flat,1 +38,F,ASY,110,0,0,Normal,156,N,0,Flat,1 +54,M,ASY,120,0,0,Normal,155,N,0,Flat,1 +61,M,ASY,150,0,0,Normal,105,Y,0,Flat,1 +42,M,ASY,145,0,0,Normal,99,Y,0,Flat,1 +53,M,ASY,130,0,0,LVH,135,Y,1,Flat,1 +55,M,ASY,140,0,0,Normal,83,N,0,Flat,1 +61,M,ASY,160,0,1,ST,145,N,1,Flat,1 +51,M,ASY,140,0,0,Normal,60,N,0,Flat,1 +70,M,ASY,115,0,0,ST,92,Y,0,Flat,1 +61,M,ASY,130,0,0,LVH,115,N,0,Flat,1 +38,M,ASY,150,0,1,Normal,120,Y,0.7,Flat,1 +57,M,ASY,160,0,1,Normal,98,Y,2,Flat,1 +38,M,ASY,135,0,1,Normal,150,N,0,Flat,1 +62,F,TA,140,0,1,Normal,143,N,0,Flat,1 +58,M,ASY,170,0,1,ST,105,Y,0,Flat,1 +52,M,ASY,165,0,1,Normal,122,Y,1,Up,1 +61,M,NAP,200,0,1,ST,70,N,0,Flat,1 +50,F,ASY,160,0,1,Normal,110,N,0,Flat,1 +51,M,ASY,130,0,1,ST,163,N,0,Flat,1 +65,M,ASY,145,0,1,ST,67,N,0.7,Flat,1 +52,M,ASY,135,0,1,Normal,128,Y,2,Flat,1 +47,M,NAP,110,0,1,Normal,120,Y,0,Flat,1 +35,M,ASY,120,0,1,Normal,130,Y,1.2,Flat,1 +57,M,ASY,140,0,1,Normal,100,Y,0,Flat,1 +62,M,ASY,115,0,1,Normal,72,Y,-0.5,Flat,1 +59,M,ASY,110,0,1,Normal,94,N,0,Flat,1 +53,M,NAP,160,0,1,LVH,122,Y,0,Flat,1 +62,M,ASY,150,0,1,ST,78,N,2,Flat,1 +54,M,ASY,180,0,1,Normal,150,N,1.5,Flat,1 +56,M,ASY,125,0,1,Normal,103,Y,1,Flat,1 +56,M,NAP,125,0,1,Normal,98,N,-2,Flat,1 +54,M,ASY,130,0,1,Normal,110,Y,3,Flat,1 +66,F,ASY,155,0,1,Normal,90,N,0,Flat,1 +63,M,ASY,140,260,0,ST,112,Y,3,Flat,1 +44,M,ASY,130,209,0,ST,127,N,0,Up,0 +60,M,ASY,132,218,0,ST,140,Y,1.5,Down,1 +55,M,ASY,142,228,0,ST,149,Y,2.5,Up,1 +66,M,NAP,110,213,1,LVH,99,Y,1.3,Flat,0 +66,M,NAP,120,0,0,ST,120,N,-0.5,Up,0 +65,M,ASY,150,236,1,ST,105,Y,0,Flat,1 +60,M,NAP,180,0,0,ST,140,Y,1.5,Flat,0 +60,M,NAP,120,0,1,Normal,141,Y,2,Up,1 +60,M,ATA,160,267,1,ST,157,N,0.5,Flat,1 +56,M,ATA,126,166,0,ST,140,N,0,Up,0 +59,M,ASY,140,0,0,ST,117,Y,1,Flat,1 +62,M,ASY,110,0,0,Normal,120,Y,0.5,Flat,1 +63,M,NAP,133,0,0,LVH,120,Y,1,Flat,1 +57,M,ASY,128,0,1,ST,148,Y,1,Flat,1 +62,M,ASY,120,220,0,ST,86,N,0,Up,0 +63,M,ASY,170,177,0,Normal,84,Y,2.5,Down,1 +46,M,ASY,110,236,0,Normal,125,Y,2,Flat,1 +63,M,ASY,126,0,0,ST,120,N,1.5,Down,0 +60,M,ASY,152,0,0,ST,118,Y,0,Up,0 +58,M,ASY,116,0,0,Normal,124,N,1,Up,1 +64,M,ASY,120,0,1,ST,106,N,2,Flat,1 +63,M,NAP,130,0,0,ST,111,Y,0,Flat,1 +74,M,NAP,138,0,0,Normal,116,N,0.2,Up,0 +52,M,NAP,128,0,0,ST,180,N,3,Up,1 +69,M,ASY,130,0,1,ST,129,N,1,Flat,1 +51,M,ASY,128,0,1,ST,125,Y,1.2,Flat,1 +60,M,ASY,130,186,1,ST,140,Y,0.5,Flat,1 +56,M,ASY,120,100,0,Normal,120,Y,1.5,Flat,1 +55,M,NAP,136,228,0,ST,124,Y,1.6,Flat,1 +54,M,ASY,130,0,0,ST,117,Y,1.4,Flat,1 +77,M,ASY,124,171,0,ST,110,Y,2,Up,1 +63,M,ASY,160,230,1,Normal,105,Y,1,Flat,1 +55,M,NAP,0,0,0,Normal,155,N,1.5,Flat,1 +52,M,NAP,122,0,0,Normal,110,Y,2,Down,1 +64,M,ASY,144,0,0,ST,122,Y,1,Flat,1 +60,M,ASY,140,281,0,ST,118,Y,1.5,Flat,1 +60,M,ASY,120,0,0,Normal,133,Y,2,Up,0 +58,M,ASY,136,203,1,Normal,123,Y,1.2,Flat,1 +59,M,ASY,154,0,0,ST,131,Y,1.5,Up,0 +61,M,NAP,120,0,0,Normal,80,Y,0,Flat,1 +40,M,ASY,125,0,1,Normal,165,N,0,Flat,1 +61,M,ASY,134,0,1,ST,86,N,1.5,Flat,1 +41,M,ASY,104,0,0,ST,111,N,0,Up,0 +57,M,ASY,139,277,1,ST,118,Y,1.9,Flat,1 +63,M,ASY,136,0,0,Normal,84,Y,0,Flat,1 +59,M,ASY,122,233,0,Normal,117,Y,1.3,Down,1 +51,M,ASY,128,0,0,Normal,107,N,0,Up,0 +59,M,NAP,131,0,0,Normal,128,Y,2,Down,1 +42,M,NAP,134,240,0,Normal,160,N,0,Up,0 +55,M,NAP,120,0,0,ST,125,Y,2.5,Flat,1 +63,F,ATA,132,0,0,Normal,130,N,0.1,Up,0 +62,M,ASY,152,153,0,ST,97,Y,1.6,Up,1 +56,M,ATA,124,224,1,Normal,161,N,2,Flat,0 +53,M,ASY,126,0,0,Normal,106,N,0,Flat,1 +68,M,ASY,138,0,0,Normal,130,Y,3,Flat,1 +53,M,ASY,154,0,1,ST,140,Y,1.5,Flat,1 +60,M,NAP,141,316,1,ST,122,Y,1.7,Flat,1 +62,M,ATA,131,0,0,Normal,130,N,0.1,Up,0 +59,M,ASY,178,0,1,LVH,120,Y,0,Flat,1 +51,M,ASY,132,218,1,LVH,139,N,0.1,Up,0 +61,M,ASY,110,0,1,Normal,108,Y,2,Down,1 +57,M,ASY,130,311,1,ST,148,Y,2,Flat,1 +56,M,NAP,170,0,0,LVH,123,Y,2.5,Flat,1 +58,M,ATA,126,0,1,Normal,110,Y,2,Flat,1 +69,M,NAP,140,0,1,ST,118,N,2.5,Down,1 +67,M,TA,142,270,1,Normal,125,N,2.5,Up,1 +58,M,ASY,120,0,0,LVH,106,Y,1.5,Down,1 +65,M,ASY,134,0,0,Normal,112,Y,1.1,Flat,1 +63,M,ATA,139,217,1,ST,128,Y,1.2,Flat,1 +55,M,ATA,110,214,1,ST,180,N,0.4,Up,0 +57,M,ASY,140,214,0,ST,144,Y,2,Flat,1 +65,M,TA,140,252,0,Normal,135,N,0.3,Up,0 +54,M,ASY,136,220,0,Normal,140,Y,3,Flat,1 +72,M,NAP,120,214,0,Normal,102,Y,1,Flat,1 +75,M,ASY,170,203,1,ST,108,N,0,Flat,1 +49,M,TA,130,0,0,ST,145,N,3,Flat,1 +51,M,NAP,137,339,0,Normal,127,Y,1.7,Flat,1 +60,M,ASY,142,216,0,Normal,110,Y,2.5,Flat,1 +64,F,ASY,142,276,0,Normal,140,Y,1,Flat,1 +58,M,ASY,132,458,1,Normal,69,N,1,Down,0 +61,M,ASY,146,241,0,Normal,148,Y,3,Down,1 +67,M,ASY,160,384,1,ST,130,Y,0,Flat,1 +62,M,ASY,135,297,0,Normal,130,Y,1,Flat,1 +65,M,ASY,136,248,0,Normal,140,Y,4,Down,1 +63,M,ASY,130,308,0,Normal,138,Y,2,Flat,1 +69,M,ASY,140,208,0,ST,140,Y,2,Flat,1 +51,M,ASY,132,227,1,ST,138,N,0.2,Up,0 +62,M,ASY,158,210,1,Normal,112,Y,3,Down,1 +55,M,NAP,136,245,1,ST,131,Y,1.2,Flat,1 +75,M,ASY,136,225,0,Normal,112,Y,3,Flat,1 +40,M,NAP,106,240,0,Normal,80,Y,0,Up,0 +67,M,ASY,120,0,1,Normal,150,N,1.5,Down,1 +58,M,ASY,110,198,0,Normal,110,N,0,Flat,1 +60,M,ASY,136,195,0,Normal,126,N,0.3,Up,0 +63,M,ASY,160,267,1,ST,88,Y,2,Flat,1 +35,M,NAP,123,161,0,ST,153,N,-0.1,Up,0 +62,M,TA,112,258,0,ST,150,Y,1.3,Flat,1 +43,M,ASY,122,0,0,Normal,120,N,0.5,Up,1 +63,M,NAP,130,0,1,ST,160,N,3,Flat,0 +68,M,NAP,150,195,1,Normal,132,N,0,Flat,1 +65,M,ASY,150,235,0,Normal,120,Y,1.5,Flat,1 +48,M,NAP,102,0,1,ST,110,Y,1,Down,1 +63,M,ASY,96,305,0,ST,121,Y,1,Up,1 +64,M,ASY,130,223,0,ST,128,N,0.5,Flat,0 +61,M,ASY,120,282,0,ST,135,Y,4,Down,1 +50,M,ASY,144,349,0,LVH,120,Y,1,Up,1 +59,M,ASY,124,160,0,Normal,117,Y,1,Flat,1 +55,M,ASY,150,160,0,ST,150,N,0,Up,0 +45,M,NAP,130,236,0,Normal,144,N,0.1,Up,0 +65,M,ASY,144,312,0,LVH,113,Y,1.7,Flat,1 +61,M,ATA,139,283,0,Normal,135,N,0.3,Up,0 +49,M,NAP,131,142,0,Normal,127,Y,1.5,Flat,1 +72,M,ASY,143,211,0,Normal,109,Y,1.4,Flat,1 +50,M,ASY,133,218,0,Normal,128,Y,1.1,Flat,1 +64,M,ASY,143,306,1,ST,115,Y,1.8,Flat,1 +55,M,ASY,116,186,1,ST,102,N,0,Flat,1 +63,M,ASY,110,252,0,ST,140,Y,2,Flat,1 +59,M,ASY,125,222,0,Normal,135,Y,2.5,Down,1 +56,M,ASY,130,0,0,LVH,122,Y,1,Flat,1 +62,M,NAP,133,0,1,ST,119,Y,1.2,Flat,1 +74,M,ASY,150,258,1,ST,130,Y,4,Down,1 +54,M,ASY,130,202,1,Normal,112,Y,2,Flat,1 +57,M,ASY,110,197,0,LVH,100,N,0,Up,0 +62,M,NAP,138,204,0,ST,122,Y,1.2,Flat,1 +76,M,NAP,104,113,0,LVH,120,N,3.5,Down,1 +54,F,ASY,138,274,0,Normal,105,Y,1.5,Flat,1 +70,M,ASY,170,192,0,ST,129,Y,3,Down,1 +61,F,ATA,140,298,1,Normal,120,Y,0,Up,0 +48,M,ASY,132,272,0,ST,139,N,0.2,Up,0 +48,M,NAP,132,220,1,ST,162,N,0,Flat,1 +61,M,TA,142,200,1,ST,100,N,1.5,Down,1 +66,M,ASY,112,261,0,Normal,140,N,1.5,Up,1 +68,M,TA,139,181,1,ST,135,N,0.2,Up,0 +55,M,ASY,172,260,0,Normal,73,N,2,Flat,1 +62,M,NAP,120,220,0,LVH,86,N,0,Up,0 +71,M,NAP,144,221,0,Normal,108,Y,1.8,Flat,1 +74,M,TA,145,216,1,Normal,116,Y,1.8,Flat,1 +53,M,NAP,155,175,1,ST,160,N,0.3,Up,0 +58,M,NAP,150,219,0,ST,118,Y,0,Flat,1 +75,M,ASY,160,310,1,Normal,112,Y,2,Down,0 +56,M,NAP,137,208,1,ST,122,Y,1.8,Flat,1 +58,M,NAP,137,232,0,ST,124,Y,1.4,Flat,1 +64,M,ASY,134,273,0,Normal,102,Y,4,Down,1 +54,M,NAP,133,203,0,ST,137,N,0.2,Up,0 +54,M,ATA,132,182,0,ST,141,N,0.1,Up,0 +59,M,ASY,140,274,0,Normal,154,Y,2,Flat,0 +55,M,ASY,135,204,1,ST,126,Y,1.1,Flat,1 +57,M,ASY,144,270,1,ST,160,Y,2,Flat,1 +61,M,ASY,141,292,0,ST,115,Y,1.7,Flat,1 +41,M,ASY,150,171,0,Normal,128,Y,1.5,Flat,0 +71,M,ASY,130,221,0,ST,115,Y,0,Flat,1 +38,M,ASY,110,289,0,Normal,105,Y,1.5,Down,1 +55,M,ASY,158,217,0,Normal,110,Y,2.5,Flat,1 +56,M,ASY,128,223,0,ST,119,Y,2,Down,1 +69,M,ASY,140,110,1,Normal,109,Y,1.5,Flat,1 +64,M,ASY,150,193,0,ST,135,Y,0.5,Flat,1 +72,M,ASY,160,123,1,LVH,130,N,1.5,Flat,1 +69,M,ASY,142,210,1,ST,112,Y,1.5,Flat,1 +56,M,ASY,137,282,1,Normal,126,Y,1.2,Flat,1 +62,M,ASY,139,170,0,ST,120,Y,3,Flat,1 +67,M,ASY,146,369,0,Normal,110,Y,1.9,Flat,1 +57,M,ASY,156,173,0,LVH,119,Y,3,Down,1 +69,M,ASY,145,289,1,ST,110,Y,1.8,Flat,1 +51,M,ASY,131,152,1,LVH,130,Y,1,Flat,1 +48,M,ASY,140,208,0,Normal,159,Y,1.5,Up,1 +69,M,ASY,122,216,1,LVH,84,Y,0,Flat,1 +69,M,NAP,142,271,0,LVH,126,N,0.3,Up,0 +64,M,ASY,141,244,1,ST,116,Y,1.5,Flat,1 +57,M,ATA,180,285,1,ST,120,N,0.8,Flat,1 +53,M,ASY,124,243,0,Normal,122,Y,2,Flat,1 +37,M,NAP,118,240,0,LVH,165,N,1,Flat,0 +67,M,ASY,140,219,0,ST,122,Y,2,Flat,1 +74,M,NAP,140,237,1,Normal,94,N,0,Flat,1 +63,M,ATA,136,165,0,ST,133,N,0.2,Up,0 +58,M,ASY,100,213,0,ST,110,N,0,Up,0 +61,M,ASY,190,287,1,LVH,150,Y,2,Down,1 +64,M,ASY,130,258,1,LVH,130,N,0,Flat,1 +58,M,ASY,160,256,1,LVH,113,Y,1,Up,1 +60,M,ASY,130,186,1,LVH,140,Y,0.5,Flat,1 +57,M,ASY,122,264,0,LVH,100,N,0,Flat,1 +55,M,NAP,133,185,0,ST,136,N,0.2,Up,0 +55,M,ASY,120,226,0,LVH,127,Y,1.7,Down,1 +56,M,ASY,130,203,1,Normal,98,N,1.5,Flat,1 +57,M,ASY,130,207,0,ST,96,Y,1,Flat,0 +61,M,NAP,140,284,0,Normal,123,Y,1.3,Flat,1 +61,M,NAP,120,337,0,Normal,98,Y,0,Flat,1 +74,M,ASY,155,310,0,Normal,112,Y,1.5,Down,1 +68,M,NAP,134,254,1,Normal,151,Y,0,Up,0 +51,F,ASY,114,258,1,LVH,96,N,1,Up,0 +62,M,ASY,160,254,1,ST,108,Y,3,Flat,1 +53,M,ASY,144,300,1,ST,128,Y,1.5,Flat,1 +62,M,ASY,158,170,0,ST,138,Y,0,Flat,1 +46,M,ASY,134,310,0,Normal,126,N,0,Flat,1 +54,F,ASY,127,333,1,ST,154,N,0,Flat,1 +62,M,TA,135,139,0,ST,137,N,0.2,Up,0 +55,M,ASY,122,223,1,ST,100,N,0,Flat,1 +58,M,ASY,140,385,1,LVH,135,N,0.3,Up,0 +62,M,ATA,120,254,0,LVH,93,Y,0,Flat,1 +70,M,ASY,130,322,0,LVH,109,N,2.4,Flat,1 +67,F,NAP,115,564,0,LVH,160,N,1.6,Flat,0 +57,M,ATA,124,261,0,Normal,141,N,0.3,Up,1 +64,M,ASY,128,263,0,Normal,105,Y,0.2,Flat,0 +74,F,ATA,120,269,0,LVH,121,Y,0.2,Up,0 +65,M,ASY,120,177,0,Normal,140,N,0.4,Up,0 +56,M,NAP,130,256,1,LVH,142,Y,0.6,Flat,1 +59,M,ASY,110,239,0,LVH,142,Y,1.2,Flat,1 +60,M,ASY,140,293,0,LVH,170,N,1.2,Flat,1 +63,F,ASY,150,407,0,LVH,154,N,4,Flat,1 +59,M,ASY,135,234,0,Normal,161,N,0.5,Flat,0 +53,M,ASY,142,226,0,LVH,111,Y,0,Up,0 +44,M,NAP,140,235,0,LVH,180,N,0,Up,0 +61,M,TA,134,234,0,Normal,145,N,2.6,Flat,1 +57,F,ASY,128,303,0,LVH,159,N,0,Up,0 +71,F,ASY,112,149,0,Normal,125,N,1.6,Flat,0 +46,M,ASY,140,311,0,Normal,120,Y,1.8,Flat,1 +53,M,ASY,140,203,1,LVH,155,Y,3.1,Down,1 +64,M,TA,110,211,0,LVH,144,Y,1.8,Flat,0 +40,M,TA,140,199,0,Normal,178,Y,1.4,Up,0 +67,M,ASY,120,229,0,LVH,129,Y,2.6,Flat,1 +48,M,ATA,130,245,0,LVH,180,N,0.2,Flat,0 +43,M,ASY,115,303,0,Normal,181,N,1.2,Flat,0 +47,M,ASY,112,204,0,Normal,143,N,0.1,Up,0 +54,F,ATA,132,288,1,LVH,159,Y,0,Up,0 +48,F,NAP,130,275,0,Normal,139,N,0.2,Up,0 +46,F,ASY,138,243,0,LVH,152,Y,0,Flat,0 +51,F,NAP,120,295,0,LVH,157,N,0.6,Up,0 +58,M,NAP,112,230,0,LVH,165,N,2.5,Flat,1 +71,F,NAP,110,265,1,LVH,130,N,0,Up,0 +57,M,NAP,128,229,0,LVH,150,N,0.4,Flat,1 +66,M,ASY,160,228,0,LVH,138,N,2.3,Up,0 +37,F,NAP,120,215,0,Normal,170,N,0,Up,0 +59,M,ASY,170,326,0,LVH,140,Y,3.4,Down,1 +50,M,ASY,144,200,0,LVH,126,Y,0.9,Flat,1 +48,M,ASY,130,256,1,LVH,150,Y,0,Up,1 +61,M,ASY,140,207,0,LVH,138,Y,1.9,Up,1 +59,M,TA,160,273,0,LVH,125,N,0,Up,1 +42,M,NAP,130,180,0,Normal,150,N,0,Up,0 +48,M,ASY,122,222,0,LVH,186,N,0,Up,0 +40,M,ASY,152,223,0,Normal,181,N,0,Up,1 +62,F,ASY,124,209,0,Normal,163,N,0,Up,0 +44,M,NAP,130,233,0,Normal,179,Y,0.4,Up,0 +46,M,ATA,101,197,1,Normal,156,N,0,Up,0 +59,M,NAP,126,218,1,Normal,134,N,2.2,Flat,1 +58,M,NAP,140,211,1,LVH,165,N,0,Up,0 +49,M,NAP,118,149,0,LVH,126,N,0.8,Up,1 +44,M,ASY,110,197,0,LVH,177,N,0,Up,1 +66,M,ATA,160,246,0,Normal,120,Y,0,Flat,1 +65,F,ASY,150,225,0,LVH,114,N,1,Flat,1 +42,M,ASY,136,315,0,Normal,125,Y,1.8,Flat,1 +52,M,ATA,128,205,1,Normal,184,N,0,Up,0 +65,F,NAP,140,417,1,LVH,157,N,0.8,Up,0 +63,F,ATA,140,195,0,Normal,179,N,0,Up,0 +45,F,ATA,130,234,0,LVH,175,N,0.6,Flat,0 +41,F,ATA,105,198,0,Normal,168,N,0,Up,0 +61,M,ASY,138,166,0,LVH,125,Y,3.6,Flat,1 +60,F,NAP,120,178,1,Normal,96,N,0,Up,0 +59,F,ASY,174,249,0,Normal,143,Y,0,Flat,1 +62,M,ATA,120,281,0,LVH,103,N,1.4,Flat,1 +57,M,NAP,150,126,1,Normal,173,N,0.2,Up,0 +51,F,ASY,130,305,0,Normal,142,Y,1.2,Flat,1 +44,M,NAP,120,226,0,Normal,169,N,0,Up,0 +60,F,TA,150,240,0,Normal,171,N,0.9,Up,0 +63,M,TA,145,233,1,LVH,150,N,2.3,Down,0 +57,M,ASY,150,276,0,LVH,112,Y,0.6,Flat,1 +51,M,ASY,140,261,0,LVH,186,Y,0,Up,0 +58,F,ATA,136,319,1,LVH,152,N,0,Up,1 +44,F,NAP,118,242,0,Normal,149,N,0.3,Flat,0 +47,M,NAP,108,243,0,Normal,152,N,0,Up,1 +61,M,ASY,120,260,0,Normal,140,Y,3.6,Flat,1 +57,F,ASY,120,354,0,Normal,163,Y,0.6,Up,0 +70,M,ATA,156,245,0,LVH,143,N,0,Up,0 +76,F,NAP,140,197,0,ST,116,N,1.1,Flat,0 +67,F,ASY,106,223,0,Normal,142,N,0.3,Up,0 +45,M,ASY,142,309,0,LVH,147,Y,0,Flat,1 +45,M,ASY,104,208,0,LVH,148,Y,3,Flat,0 +39,F,NAP,94,199,0,Normal,179,N,0,Up,0 +42,F,NAP,120,209,0,Normal,173,N,0,Flat,0 +56,M,ATA,120,236,0,Normal,178,N,0.8,Up,0 +58,M,ASY,146,218,0,Normal,105,N,2,Flat,1 +35,M,ASY,120,198,0,Normal,130,Y,1.6,Flat,1 +58,M,ASY,150,270,0,LVH,111,Y,0.8,Up,1 +41,M,NAP,130,214,0,LVH,168,N,2,Flat,0 +57,M,ASY,110,201,0,Normal,126,Y,1.5,Flat,0 +42,M,TA,148,244,0,LVH,178,N,0.8,Up,0 +62,M,ATA,128,208,1,LVH,140,N,0,Up,0 +59,M,TA,178,270,0,LVH,145,N,4.2,Down,0 +41,F,ATA,126,306,0,Normal,163,N,0,Up,0 +50,M,ASY,150,243,0,LVH,128,N,2.6,Flat,1 +59,M,ATA,140,221,0,Normal,164,Y,0,Up,0 +61,F,ASY,130,330,0,LVH,169,N,0,Up,1 +54,M,ASY,124,266,0,LVH,109,Y,2.2,Flat,1 +54,M,ASY,110,206,0,LVH,108,Y,0,Flat,1 +52,M,ASY,125,212,0,Normal,168,N,1,Up,1 +47,M,ASY,110,275,0,LVH,118,Y,1,Flat,1 +66,M,ASY,120,302,0,LVH,151,N,0.4,Flat,0 +58,M,ASY,100,234,0,Normal,156,N,0.1,Up,1 +64,F,NAP,140,313,0,Normal,133,N,0.2,Up,0 +50,F,ATA,120,244,0,Normal,162,N,1.1,Up,0 +44,F,NAP,108,141,0,Normal,175,N,0.6,Flat,0 +67,M,ASY,120,237,0,Normal,71,N,1,Flat,1 +49,F,ASY,130,269,0,Normal,163,N,0,Up,0 +57,M,ASY,165,289,1,LVH,124,N,1,Flat,1 +63,M,ASY,130,254,0,LVH,147,N,1.4,Flat,1 +48,M,ASY,124,274,0,LVH,166,N,0.5,Flat,1 +51,M,NAP,100,222,0,Normal,143,Y,1.2,Flat,0 +60,F,ASY,150,258,0,LVH,157,N,2.6,Flat,1 +59,M,ASY,140,177,0,Normal,162,Y,0,Up,1 +45,F,ATA,112,160,0,Normal,138,N,0,Flat,0 +55,F,ASY,180,327,0,ST,117,Y,3.4,Flat,1 +41,M,ATA,110,235,0,Normal,153,N,0,Up,0 +60,F,ASY,158,305,0,LVH,161,N,0,Up,1 +54,F,NAP,135,304,1,Normal,170,N,0,Up,0 +42,M,ATA,120,295,0,Normal,162,N,0,Up,0 +49,F,ATA,134,271,0,Normal,162,N,0,Flat,0 +46,M,ASY,120,249,0,LVH,144,N,0.8,Up,1 +56,F,ASY,200,288,1,LVH,133,Y,4,Down,1 +66,F,TA,150,226,0,Normal,114,N,2.6,Down,0 +56,M,ASY,130,283,1,LVH,103,Y,1.6,Down,1 +49,M,NAP,120,188,0,Normal,139,N,2,Flat,1 +54,M,ASY,122,286,0,LVH,116,Y,3.2,Flat,1 +57,M,ASY,152,274,0,Normal,88,Y,1.2,Flat,1 +65,F,NAP,160,360,0,LVH,151,N,0.8,Up,0 +54,M,NAP,125,273,0,LVH,152,N,0.5,Down,0 +54,F,NAP,160,201,0,Normal,163,N,0,Up,0 +62,M,ASY,120,267,0,Normal,99,Y,1.8,Flat,1 +52,F,NAP,136,196,0,LVH,169,N,0.1,Flat,0 +52,M,ATA,134,201,0,Normal,158,N,0.8,Up,0 +60,M,ASY,117,230,1,Normal,160,Y,1.4,Up,1 +63,F,ASY,108,269,0,Normal,169,Y,1.8,Flat,1 +66,M,ASY,112,212,0,LVH,132,Y,0.1,Up,1 +42,M,ASY,140,226,0,Normal,178,N,0,Up,0 +64,M,ASY,120,246,0,LVH,96,Y,2.2,Down,1 +54,M,NAP,150,232,0,LVH,165,N,1.6,Up,0 +46,F,NAP,142,177,0,LVH,160,Y,1.4,Down,0 +67,F,NAP,152,277,0,Normal,172,N,0,Up,0 +56,M,ASY,125,249,1,LVH,144,Y,1.2,Flat,1 +34,F,ATA,118,210,0,Normal,192,N,0.7,Up,0 +57,M,ASY,132,207,0,Normal,168,Y,0,Up,0 +64,M,ASY,145,212,0,LVH,132,N,2,Flat,1 +59,M,ASY,138,271,0,LVH,182,N,0,Up,0 +50,M,NAP,140,233,0,Normal,163,N,0.6,Flat,1 +51,M,TA,125,213,0,LVH,125,Y,1.4,Up,0 +54,M,ATA,192,283,0,LVH,195,N,0,Up,1 +53,M,ASY,123,282,0,Normal,95,Y,2,Flat,1 +52,M,ASY,112,230,0,Normal,160,N,0,Up,1 +40,M,ASY,110,167,0,LVH,114,Y,2,Flat,1 +58,M,NAP,132,224,0,LVH,173,N,3.2,Up,1 +41,F,NAP,112,268,0,LVH,172,Y,0,Up,0 +41,M,NAP,112,250,0,Normal,179,N,0,Up,0 +50,F,NAP,120,219,0,Normal,158,N,1.6,Flat,0 +54,F,NAP,108,267,0,LVH,167,N,0,Up,0 +64,F,ASY,130,303,0,Normal,122,N,2,Flat,0 +51,F,NAP,130,256,0,LVH,149,N,0.5,Up,0 +46,F,ATA,105,204,0,Normal,172,N,0,Up,0 +55,M,ASY,140,217,0,Normal,111,Y,5.6,Down,1 +45,M,ATA,128,308,0,LVH,170,N,0,Up,0 +56,M,TA,120,193,0,LVH,162,N,1.9,Flat,0 +66,F,ASY,178,228,1,Normal,165,Y,1,Flat,1 +38,M,TA,120,231,0,Normal,182,Y,3.8,Flat,1 +62,F,ASY,150,244,0,Normal,154,Y,1.4,Flat,1 +55,M,ATA,130,262,0,Normal,155,N,0,Up,0 +58,M,ASY,128,259,0,LVH,130,Y,3,Flat,1 +43,M,ASY,110,211,0,Normal,161,N,0,Up,0 +64,F,ASY,180,325,0,Normal,154,Y,0,Up,0 +50,F,ASY,110,254,0,LVH,159,N,0,Up,0 +53,M,NAP,130,197,1,LVH,152,N,1.2,Down,0 +45,F,ASY,138,236,0,LVH,152,Y,0.2,Flat,0 +65,M,TA,138,282,1,LVH,174,N,1.4,Flat,1 +69,M,TA,160,234,1,LVH,131,N,0.1,Flat,0 +69,M,NAP,140,254,0,LVH,146,N,2,Flat,1 +67,M,ASY,100,299,0,LVH,125,Y,0.9,Flat,1 +68,F,NAP,120,211,0,LVH,115,N,1.5,Flat,0 +34,M,TA,118,182,0,LVH,174,N,0,Up,0 +62,F,ASY,138,294,1,Normal,106,N,1.9,Flat,1 +51,M,ASY,140,298,0,Normal,122,Y,4.2,Flat,1 +46,M,NAP,150,231,0,Normal,147,N,3.6,Flat,1 +67,M,ASY,125,254,1,Normal,163,N,0.2,Flat,1 +50,M,NAP,129,196,0,Normal,163,N,0,Up,0 +42,M,NAP,120,240,1,Normal,194,N,0.8,Down,0 +56,F,ASY,134,409,0,LVH,150,Y,1.9,Flat,1 +41,M,ASY,110,172,0,LVH,158,N,0,Up,1 +42,F,ASY,102,265,0,LVH,122,N,0.6,Flat,0 +53,M,NAP,130,246,1,LVH,173,N,0,Up,0 +43,M,NAP,130,315,0,Normal,162,N,1.9,Up,0 +56,M,ASY,132,184,0,LVH,105,Y,2.1,Flat,1 +52,M,ASY,108,233,1,Normal,147,N,0.1,Up,0 +62,F,ASY,140,394,0,LVH,157,N,1.2,Flat,0 +70,M,NAP,160,269,0,Normal,112,Y,2.9,Flat,1 +54,M,ASY,140,239,0,Normal,160,N,1.2,Up,0 +70,M,ASY,145,174,0,Normal,125,Y,2.6,Down,1 +54,M,ATA,108,309,0,Normal,156,N,0,Up,0 +35,M,ASY,126,282,0,LVH,156,Y,0,Up,1 +48,M,NAP,124,255,1,Normal,175,N,0,Up,0 +55,F,ATA,135,250,0,LVH,161,N,1.4,Flat,0 +58,F,ASY,100,248,0,LVH,122,N,1,Flat,0 +54,F,NAP,110,214,0,Normal,158,N,1.6,Flat,0 +69,F,TA,140,239,0,Normal,151,N,1.8,Up,0 +77,M,ASY,125,304,0,LVH,162,Y,0,Up,1 +68,M,NAP,118,277,0,Normal,151,N,1,Up,0 +58,M,ASY,125,300,0,LVH,171,N,0,Up,1 +60,M,ASY,125,258,0,LVH,141,Y,2.8,Flat,1 +51,M,ASY,140,299,0,Normal,173,Y,1.6,Up,1 +55,M,ASY,160,289,0,LVH,145,Y,0.8,Flat,1 +52,M,TA,152,298,1,Normal,178,N,1.2,Flat,0 +60,F,NAP,102,318,0,Normal,160,N,0,Up,0 +58,M,NAP,105,240,0,LVH,154,Y,0.6,Flat,0 +64,M,NAP,125,309,0,Normal,131,Y,1.8,Flat,1 +37,M,NAP,130,250,0,Normal,187,N,3.5,Down,0 +59,M,TA,170,288,0,LVH,159,N,0.2,Flat,1 +51,M,NAP,125,245,1,LVH,166,N,2.4,Flat,0 +43,F,NAP,122,213,0,Normal,165,N,0.2,Flat,0 +58,M,ASY,128,216,0,LVH,131,Y,2.2,Flat,1 +29,M,ATA,130,204,0,LVH,202,N,0,Up,0 +41,F,ATA,130,204,0,LVH,172,N,1.4,Up,0 +63,F,NAP,135,252,0,LVH,172,N,0,Up,0 +51,M,NAP,94,227,0,Normal,154,Y,0,Up,0 +54,M,NAP,120,258,0,LVH,147,N,0.4,Flat,0 +44,M,ATA,120,220,0,Normal,170,N,0,Up,0 +54,M,ASY,110,239,0,Normal,126,Y,2.8,Flat,1 +65,M,ASY,135,254,0,LVH,127,N,2.8,Flat,1 +57,M,NAP,150,168,0,Normal,174,N,1.6,Up,0 +63,M,ASY,130,330,1,LVH,132,Y,1.8,Up,1 +35,F,ASY,138,183,0,Normal,182,N,1.4,Up,0 +41,M,ATA,135,203,0,Normal,132,N,0,Flat,0 +62,F,NAP,130,263,0,Normal,97,N,1.2,Flat,1 +43,F,ASY,132,341,1,LVH,136,Y,3,Flat,1 +58,F,TA,150,283,1,LVH,162,N,1,Up,0 +52,M,TA,118,186,0,LVH,190,N,0,Flat,0 +61,F,ASY,145,307,0,LVH,146,Y,1,Flat,1 +39,M,ASY,118,219,0,Normal,140,N,1.2,Flat,1 +45,M,ASY,115,260,0,LVH,185,N,0,Up,0 +52,M,ASY,128,255,0,Normal,161,Y,0,Up,1 +62,M,NAP,130,231,0,Normal,146,N,1.8,Flat,0 +62,F,ASY,160,164,0,LVH,145,N,6.2,Down,1 +53,F,ASY,138,234,0,LVH,160,N,0,Up,0 +43,M,ASY,120,177,0,LVH,120,Y,2.5,Flat,1 +47,M,NAP,138,257,0,LVH,156,N,0,Up,0 +52,M,ATA,120,325,0,Normal,172,N,0.2,Up,0 +68,M,NAP,180,274,1,LVH,150,Y,1.6,Flat,1 +39,M,NAP,140,321,0,LVH,182,N,0,Up,0 +53,F,ASY,130,264,0,LVH,143,N,0.4,Flat,0 +62,F,ASY,140,268,0,LVH,160,N,3.6,Down,1 +51,F,NAP,140,308,0,LVH,142,N,1.5,Up,0 +60,M,ASY,130,253,0,Normal,144,Y,1.4,Up,1 +65,M,ASY,110,248,0,LVH,158,N,0.6,Up,1 +65,F,NAP,155,269,0,Normal,148,N,0.8,Up,0 +60,M,NAP,140,185,0,LVH,155,N,3,Flat,1 +60,M,ASY,145,282,0,LVH,142,Y,2.8,Flat,1 +54,M,ASY,120,188,0,Normal,113,N,1.4,Flat,1 +44,M,ATA,130,219,0,LVH,188,N,0,Up,0 +44,M,ASY,112,290,0,LVH,153,N,0,Up,1 +51,M,NAP,110,175,0,Normal,123,N,0.6,Up,0 +59,M,NAP,150,212,1,Normal,157,N,1.6,Up,0 +71,F,ATA,160,302,0,Normal,162,N,0.4,Up,0 +61,M,NAP,150,243,1,Normal,137,Y,1,Flat,0 +55,M,ASY,132,353,0,Normal,132,Y,1.2,Flat,1 +64,M,NAP,140,335,0,Normal,158,N,0,Up,1 +43,M,ASY,150,247,0,Normal,171,N,1.5,Up,0 +58,F,NAP,120,340,0,Normal,172,N,0,Up,0 +60,M,ASY,130,206,0,LVH,132,Y,2.4,Flat,1 +58,M,ATA,120,284,0,LVH,160,N,1.8,Flat,1 +49,M,ATA,130,266,0,Normal,171,N,0.6,Up,0 +48,M,ATA,110,229,0,Normal,168,N,1,Down,1 +52,M,NAP,172,199,1,Normal,162,N,0.5,Up,0 +44,M,ATA,120,263,0,Normal,173,N,0,Up,0 +56,F,ATA,140,294,0,LVH,153,N,1.3,Flat,0 +57,M,ASY,140,192,0,Normal,148,N,0.4,Flat,0 +67,M,ASY,160,286,0,LVH,108,Y,1.5,Flat,1 +53,F,NAP,128,216,0,LVH,115,N,0,Up,0 +52,M,NAP,138,223,0,Normal,169,N,0,Up,0 +43,M,ASY,132,247,1,LVH,143,Y,0.1,Flat,1 +52,M,ASY,128,204,1,Normal,156,Y,1,Flat,1 +59,M,TA,134,204,0,Normal,162,N,0.8,Up,1 +64,M,TA,170,227,0,LVH,155,N,0.6,Flat,0 +66,F,NAP,146,278,0,LVH,152,N,0,Flat,0 +39,F,NAP,138,220,0,Normal,152,N,0,Flat,0 +57,M,ATA,154,232,0,LVH,164,N,0,Up,1 +58,F,ASY,130,197,0,Normal,131,N,0.6,Flat,0 +57,M,ASY,110,335,0,Normal,143,Y,3,Flat,1 +47,M,NAP,130,253,0,Normal,179,N,0,Up,0 +55,F,ASY,128,205,0,ST,130,Y,2,Flat,1 +35,M,ATA,122,192,0,Normal,174,N,0,Up,0 +61,M,ASY,148,203,0,Normal,161,N,0,Up,1 +58,M,ASY,114,318,0,ST,140,N,4.4,Down,1 +58,F,ASY,170,225,1,LVH,146,Y,2.8,Flat,1 +58,M,ATA,125,220,0,Normal,144,N,0.4,Flat,0 +56,M,ATA,130,221,0,LVH,163,N,0,Up,0 +56,M,ATA,120,240,0,Normal,169,N,0,Down,0 +67,M,NAP,152,212,0,LVH,150,N,0.8,Flat,1 +55,F,ATA,132,342,0,Normal,166,N,1.2,Up,0 +44,M,ASY,120,169,0,Normal,144,Y,2.8,Down,1 +63,M,ASY,140,187,0,LVH,144,Y,4,Up,1 +63,F,ASY,124,197,0,Normal,136,Y,0,Flat,1 +41,M,ATA,120,157,0,Normal,182,N,0,Up,0 +59,M,ASY,164,176,1,LVH,90,N,1,Flat,1 +57,F,ASY,140,241,0,Normal,123,Y,0.2,Flat,1 +45,M,TA,110,264,0,Normal,132,N,1.2,Flat,1 +68,M,ASY,144,193,1,Normal,141,N,3.4,Flat,1 +57,M,ASY,130,131,0,Normal,115,Y,1.2,Flat,1 +57,F,ATA,130,236,0,LVH,174,N,0,Flat,1 +38,M,NAP,138,175,0,Normal,173,N,0,Up,0 diff --git a/ML/19_Bagging/bagging_diabetes_prediction.ipynb b/ML/19_Bagging/bagging_diabetes_prediction.ipynb new file mode 100644 index 00000000..5312eddd --- /dev/null +++ b/ML/19_Bagging/bagging_diabetes_prediction.ipynb @@ -0,0 +1,778 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Ensemble Learning: Bagging Tutorial

" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**We will use pima indian diabetes dataset to predict if a person has a diabetes or not based on certain features such as blood pressure, skin thickness, age etc. We will train a standalone model first and then use bagging ensemble technique to check how it can improve the performance of the model**\n", + "\n", + "dataset credit: https://www.kaggle.com/gargmanas/pima-indians-diabetes" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "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", + "
PregnanciesGlucoseBloodPressureSkinThicknessInsulinBMIDiabetesPedigreeFunctionAgeOutcome
061487235033.60.627501
11856629026.60.351310
28183640023.30.672321
318966239428.10.167210
40137403516843.12.288331
\n", + "
" + ], + "text/plain": [ + " Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n", + "0 6 148 72 35 0 33.6 \n", + "1 1 85 66 29 0 26.6 \n", + "2 8 183 64 0 0 23.3 \n", + "3 1 89 66 23 94 28.1 \n", + "4 0 137 40 35 168 43.1 \n", + "\n", + " DiabetesPedigreeFunction Age Outcome \n", + "0 0.627 50 1 \n", + "1 0.351 31 0 \n", + "2 0.672 32 1 \n", + "3 0.167 21 0 \n", + "4 2.288 33 1 " + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv(\"diabetes.csv\")\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Pregnancies 0\n", + "Glucose 0\n", + "BloodPressure 0\n", + "SkinThickness 0\n", + "Insulin 0\n", + "BMI 0\n", + "DiabetesPedigreeFunction 0\n", + "Age 0\n", + "Outcome 0\n", + "dtype: int64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "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", + "
PregnanciesGlucoseBloodPressureSkinThicknessInsulinBMIDiabetesPedigreeFunctionAgeOutcome
count768.000000768.000000768.000000768.000000768.000000768.000000768.000000768.000000768.000000
mean3.845052120.89453169.10546920.53645879.79947931.9925780.47187633.2408850.348958
std3.36957831.97261819.35580715.952218115.2440027.8841600.33132911.7602320.476951
min0.0000000.0000000.0000000.0000000.0000000.0000000.07800021.0000000.000000
25%1.00000099.00000062.0000000.0000000.00000027.3000000.24375024.0000000.000000
50%3.000000117.00000072.00000023.00000030.50000032.0000000.37250029.0000000.000000
75%6.000000140.25000080.00000032.000000127.25000036.6000000.62625041.0000001.000000
max17.000000199.000000122.00000099.000000846.00000067.1000002.42000081.0000001.000000
\n", + "
" + ], + "text/plain": [ + " Pregnancies Glucose BloodPressure SkinThickness Insulin \\\n", + "count 768.000000 768.000000 768.000000 768.000000 768.000000 \n", + "mean 3.845052 120.894531 69.105469 20.536458 79.799479 \n", + "std 3.369578 31.972618 19.355807 15.952218 115.244002 \n", + "min 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "25% 1.000000 99.000000 62.000000 0.000000 0.000000 \n", + "50% 3.000000 117.000000 72.000000 23.000000 30.500000 \n", + "75% 6.000000 140.250000 80.000000 32.000000 127.250000 \n", + "max 17.000000 199.000000 122.000000 99.000000 846.000000 \n", + "\n", + " BMI DiabetesPedigreeFunction Age Outcome \n", + "count 768.000000 768.000000 768.000000 768.000000 \n", + "mean 31.992578 0.471876 33.240885 0.348958 \n", + "std 7.884160 0.331329 11.760232 0.476951 \n", + "min 0.000000 0.078000 21.000000 0.000000 \n", + "25% 27.300000 0.243750 24.000000 0.000000 \n", + "50% 32.000000 0.372500 29.000000 0.000000 \n", + "75% 36.600000 0.626250 41.000000 1.000000 \n", + "max 67.100000 2.420000 81.000000 1.000000 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 500\n", + "1 268\n", + "Name: Outcome, dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Outcome.value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is slight imbalance in our dataset but since it is not major we will not worry about it!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train test split

" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "X = df.drop(\"Outcome\",axis=\"columns\")\n", + "y = df.Outcome" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0.63994726, 0.84832379, 0.14964075, 0.90726993, -0.69289057,\n", + " 0.20401277, 0.46849198, 1.4259954 ],\n", + " [-0.84488505, -1.12339636, -0.16054575, 0.53090156, -0.69289057,\n", + " -0.68442195, -0.36506078, -0.19067191],\n", + " [ 1.23388019, 1.94372388, -0.26394125, -1.28821221, -0.69289057,\n", + " -1.10325546, 0.60439732, -0.10558415]])" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "scaler = StandardScaler()\n", + "X_scaled = scaler.fit_transform(X)\n", + "X_scaled[:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, stratify=y, random_state=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(576, 8)" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(192, 8)" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 375\n", + "1 201\n", + "Name: Outcome, dtype: int64" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_train.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.536" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "201/375" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 125\n", + "1 67\n", + "Name: Outcome, dtype: int64" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.536" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "67/125" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train using stand alone model

" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.68831169, 0.68181818, 0.69480519, 0.77777778, 0.71895425])" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "scores = cross_val_score(DecisionTreeClassifier(), X, y, cv=5)\n", + "scores" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7123334182157711" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train using Bagging

" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7534722222222222" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "\n", + "bag_model = BaggingClassifier(\n", + " base_estimator=DecisionTreeClassifier(), \n", + " n_estimators=100, \n", + " max_samples=0.8, \n", + " oob_score=True,\n", + " random_state=0\n", + ")\n", + "bag_model.fit(X_train, y_train)\n", + "bag_model.oob_score_" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7760416666666666" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bag_model.score(X_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.75324675, 0.72727273, 0.74675325, 0.82352941, 0.73856209])" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bag_model = BaggingClassifier(\n", + " base_estimator=DecisionTreeClassifier(), \n", + " n_estimators=100, \n", + " max_samples=0.8, \n", + " oob_score=True,\n", + " random_state=0\n", + ")\n", + "scores = cross_val_score(bag_model, X, y, cv=5)\n", + "scores" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7578728461081402" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see some improvement in test score with bagging classifier as compared to a standalone classifier" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "

Train using Random Forest

" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.7617689500042442" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "\n", + "scores = cross_val_score(RandomForestClassifier(n_estimators=50), X, y, cv=5)\n", + "scores.mean()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ML/19_Bagging/diabetes.csv b/ML/19_Bagging/diabetes.csv new file mode 100644 index 00000000..dcaf5fe8 --- /dev/null +++ b/ML/19_Bagging/diabetes.csv @@ -0,0 +1,769 @@ +Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome +6,148,72,35,0,33.6,0.627,50,1 +1,85,66,29,0,26.6,0.351,31,0 +8,183,64,0,0,23.3,0.672,32,1 +1,89,66,23,94,28.1,0.167,21,0 +0,137,40,35,168,43.1,2.288,33,1 +5,116,74,0,0,25.6,0.201,30,0 +3,78,50,32,88,31,0.248,26,1 +10,115,0,0,0,35.3,0.134,29,0 +2,197,70,45,543,30.5,0.158,53,1 +8,125,96,0,0,0,0.232,54,1 +4,110,92,0,0,37.6,0.191,30,0 +10,168,74,0,0,38,0.537,34,1 +10,139,80,0,0,27.1,1.441,57,0 +1,189,60,23,846,30.1,0.398,59,1 +5,166,72,19,175,25.8,0.587,51,1 +7,100,0,0,0,30,0.484,32,1 +0,118,84,47,230,45.8,0.551,31,1 +7,107,74,0,0,29.6,0.254,31,1 +1,103,30,38,83,43.3,0.183,33,0 +1,115,70,30,96,34.6,0.529,32,1 +3,126,88,41,235,39.3,0.704,27,0 +8,99,84,0,0,35.4,0.388,50,0 +7,196,90,0,0,39.8,0.451,41,1 +9,119,80,35,0,29,0.263,29,1 +11,143,94,33,146,36.6,0.254,51,1 +10,125,70,26,115,31.1,0.205,41,1 +7,147,76,0,0,39.4,0.257,43,1 +1,97,66,15,140,23.2,0.487,22,0 +13,145,82,19,110,22.2,0.245,57,0 +5,117,92,0,0,34.1,0.337,38,0 +5,109,75,26,0,36,0.546,60,0 +3,158,76,36,245,31.6,0.851,28,1 +3,88,58,11,54,24.8,0.267,22,0 +6,92,92,0,0,19.9,0.188,28,0 +10,122,78,31,0,27.6,0.512,45,0 +4,103,60,33,192,24,0.966,33,0 +11,138,76,0,0,33.2,0.42,35,0 +9,102,76,37,0,32.9,0.665,46,1 +2,90,68,42,0,38.2,0.503,27,1 +4,111,72,47,207,37.1,1.39,56,1 +3,180,64,25,70,34,0.271,26,0 +7,133,84,0,0,40.2,0.696,37,0 +7,106,92,18,0,22.7,0.235,48,0 +9,171,110,24,240,45.4,0.721,54,1 +7,159,64,0,0,27.4,0.294,40,0 +0,180,66,39,0,42,1.893,25,1 +1,146,56,0,0,29.7,0.564,29,0 +2,71,70,27,0,28,0.586,22,0 +7,103,66,32,0,39.1,0.344,31,1 +7,105,0,0,0,0,0.305,24,0 +1,103,80,11,82,19.4,0.491,22,0 +1,101,50,15,36,24.2,0.526,26,0 +5,88,66,21,23,24.4,0.342,30,0 +8,176,90,34,300,33.7,0.467,58,1 +7,150,66,42,342,34.7,0.718,42,0 +1,73,50,10,0,23,0.248,21,0 +7,187,68,39,304,37.7,0.254,41,1 +0,100,88,60,110,46.8,0.962,31,0 +0,146,82,0,0,40.5,1.781,44,0 +0,105,64,41,142,41.5,0.173,22,0 +2,84,0,0,0,0,0.304,21,0 +8,133,72,0,0,32.9,0.27,39,1 +5,44,62,0,0,25,0.587,36,0 +2,141,58,34,128,25.4,0.699,24,0 +7,114,66,0,0,32.8,0.258,42,1 +5,99,74,27,0,29,0.203,32,0 +0,109,88,30,0,32.5,0.855,38,1 +2,109,92,0,0,42.7,0.845,54,0 +1,95,66,13,38,19.6,0.334,25,0 +4,146,85,27,100,28.9,0.189,27,0 +2,100,66,20,90,32.9,0.867,28,1 +5,139,64,35,140,28.6,0.411,26,0 +13,126,90,0,0,43.4,0.583,42,1 +4,129,86,20,270,35.1,0.231,23,0 +1,79,75,30,0,32,0.396,22,0 +1,0,48,20,0,24.7,0.14,22,0 +7,62,78,0,0,32.6,0.391,41,0 +5,95,72,33,0,37.7,0.37,27,0 +0,131,0,0,0,43.2,0.27,26,1 +2,112,66,22,0,25,0.307,24,0 +3,113,44,13,0,22.4,0.14,22,0 +2,74,0,0,0,0,0.102,22,0 +7,83,78,26,71,29.3,0.767,36,0 +0,101,65,28,0,24.6,0.237,22,0 +5,137,108,0,0,48.8,0.227,37,1 +2,110,74,29,125,32.4,0.698,27,0 +13,106,72,54,0,36.6,0.178,45,0 +2,100,68,25,71,38.5,0.324,26,0 +15,136,70,32,110,37.1,0.153,43,1 +1,107,68,19,0,26.5,0.165,24,0 +1,80,55,0,0,19.1,0.258,21,0 +4,123,80,15,176,32,0.443,34,0 +7,81,78,40,48,46.7,0.261,42,0 +4,134,72,0,0,23.8,0.277,60,1 +2,142,82,18,64,24.7,0.761,21,0 +6,144,72,27,228,33.9,0.255,40,0 +2,92,62,28,0,31.6,0.13,24,0 +1,71,48,18,76,20.4,0.323,22,0 +6,93,50,30,64,28.7,0.356,23,0 +1,122,90,51,220,49.7,0.325,31,1 +1,163,72,0,0,39,1.222,33,1 +1,151,60,0,0,26.1,0.179,22,0 +0,125,96,0,0,22.5,0.262,21,0 +1,81,72,18,40,26.6,0.283,24,0 +2,85,65,0,0,39.6,0.93,27,0 +1,126,56,29,152,28.7,0.801,21,0 +1,96,122,0,0,22.4,0.207,27,0 +4,144,58,28,140,29.5,0.287,37,0 +3,83,58,31,18,34.3,0.336,25,0 +0,95,85,25,36,37.4,0.247,24,1 +3,171,72,33,135,33.3,0.199,24,1 +8,155,62,26,495,34,0.543,46,1 +1,89,76,34,37,31.2,0.192,23,0 +4,76,62,0,0,34,0.391,25,0 +7,160,54,32,175,30.5,0.588,39,1 +4,146,92,0,0,31.2,0.539,61,1 +5,124,74,0,0,34,0.22,38,1 +5,78,48,0,0,33.7,0.654,25,0 +4,97,60,23,0,28.2,0.443,22,0 +4,99,76,15,51,23.2,0.223,21,0 +0,162,76,56,100,53.2,0.759,25,1 +6,111,64,39,0,34.2,0.26,24,0 +2,107,74,30,100,33.6,0.404,23,0 +5,132,80,0,0,26.8,0.186,69,0 +0,113,76,0,0,33.3,0.278,23,1 +1,88,30,42,99,55,0.496,26,1 +3,120,70,30,135,42.9,0.452,30,0 +1,118,58,36,94,33.3,0.261,23,0 +1,117,88,24,145,34.5,0.403,40,1 +0,105,84,0,0,27.9,0.741,62,1 +4,173,70,14,168,29.7,0.361,33,1 +9,122,56,0,0,33.3,1.114,33,1 +3,170,64,37,225,34.5,0.356,30,1 +8,84,74,31,0,38.3,0.457,39,0 +2,96,68,13,49,21.1,0.647,26,0 +2,125,60,20,140,33.8,0.088,31,0 +0,100,70,26,50,30.8,0.597,21,0 +0,93,60,25,92,28.7,0.532,22,0 +0,129,80,0,0,31.2,0.703,29,0 +5,105,72,29,325,36.9,0.159,28,0 +3,128,78,0,0,21.1,0.268,55,0 +5,106,82,30,0,39.5,0.286,38,0 +2,108,52,26,63,32.5,0.318,22,0 +10,108,66,0,0,32.4,0.272,42,1 +4,154,62,31,284,32.8,0.237,23,0 +0,102,75,23,0,0,0.572,21,0 +9,57,80,37,0,32.8,0.096,41,0 +2,106,64,35,119,30.5,1.4,34,0 +5,147,78,0,0,33.7,0.218,65,0 +2,90,70,17,0,27.3,0.085,22,0 +1,136,74,50,204,37.4,0.399,24,0 +4,114,65,0,0,21.9,0.432,37,0 +9,156,86,28,155,34.3,1.189,42,1 +1,153,82,42,485,40.6,0.687,23,0 +8,188,78,0,0,47.9,0.137,43,1 +7,152,88,44,0,50,0.337,36,1 +2,99,52,15,94,24.6,0.637,21,0 +1,109,56,21,135,25.2,0.833,23,0 +2,88,74,19,53,29,0.229,22,0 +17,163,72,41,114,40.9,0.817,47,1 +4,151,90,38,0,29.7,0.294,36,0 +7,102,74,40,105,37.2,0.204,45,0 +0,114,80,34,285,44.2,0.167,27,0 +2,100,64,23,0,29.7,0.368,21,0 +0,131,88,0,0,31.6,0.743,32,1 +6,104,74,18,156,29.9,0.722,41,1 +3,148,66,25,0,32.5,0.256,22,0 +4,120,68,0,0,29.6,0.709,34,0 +4,110,66,0,0,31.9,0.471,29,0 +3,111,90,12,78,28.4,0.495,29,0 +6,102,82,0,0,30.8,0.18,36,1 +6,134,70,23,130,35.4,0.542,29,1 +2,87,0,23,0,28.9,0.773,25,0 +1,79,60,42,48,43.5,0.678,23,0 +2,75,64,24,55,29.7,0.37,33,0 +8,179,72,42,130,32.7,0.719,36,1 +6,85,78,0,0,31.2,0.382,42,0 +0,129,110,46,130,67.1,0.319,26,1 +5,143,78,0,0,45,0.19,47,0 +5,130,82,0,0,39.1,0.956,37,1 +6,87,80,0,0,23.2,0.084,32,0 +0,119,64,18,92,34.9,0.725,23,0 +1,0,74,20,23,27.7,0.299,21,0 +5,73,60,0,0,26.8,0.268,27,0 +4,141,74,0,0,27.6,0.244,40,0 +7,194,68,28,0,35.9,0.745,41,1 +8,181,68,36,495,30.1,0.615,60,1 +1,128,98,41,58,32,1.321,33,1 +8,109,76,39,114,27.9,0.64,31,1 +5,139,80,35,160,31.6,0.361,25,1 +3,111,62,0,0,22.6,0.142,21,0 +9,123,70,44,94,33.1,0.374,40,0 +7,159,66,0,0,30.4,0.383,36,1 +11,135,0,0,0,52.3,0.578,40,1 +8,85,55,20,0,24.4,0.136,42,0 +5,158,84,41,210,39.4,0.395,29,1 +1,105,58,0,0,24.3,0.187,21,0 +3,107,62,13,48,22.9,0.678,23,1 +4,109,64,44,99,34.8,0.905,26,1 +4,148,60,27,318,30.9,0.15,29,1 +0,113,80,16,0,31,0.874,21,0 +1,138,82,0,0,40.1,0.236,28,0 +0,108,68,20,0,27.3,0.787,32,0 +2,99,70,16,44,20.4,0.235,27,0 +6,103,72,32,190,37.7,0.324,55,0 +5,111,72,28,0,23.9,0.407,27,0 +8,196,76,29,280,37.5,0.605,57,1 +5,162,104,0,0,37.7,0.151,52,1 +1,96,64,27,87,33.2,0.289,21,0 +7,184,84,33,0,35.5,0.355,41,1 +2,81,60,22,0,27.7,0.29,25,0 +0,147,85,54,0,42.8,0.375,24,0 +7,179,95,31,0,34.2,0.164,60,0 +0,140,65,26,130,42.6,0.431,24,1 +9,112,82,32,175,34.2,0.26,36,1 +12,151,70,40,271,41.8,0.742,38,1 +5,109,62,41,129,35.8,0.514,25,1 +6,125,68,30,120,30,0.464,32,0 +5,85,74,22,0,29,1.224,32,1 +5,112,66,0,0,37.8,0.261,41,1 +0,177,60,29,478,34.6,1.072,21,1 +2,158,90,0,0,31.6,0.805,66,1 +7,119,0,0,0,25.2,0.209,37,0 +7,142,60,33,190,28.8,0.687,61,0 +1,100,66,15,56,23.6,0.666,26,0 +1,87,78,27,32,34.6,0.101,22,0 +0,101,76,0,0,35.7,0.198,26,0 +3,162,52,38,0,37.2,0.652,24,1 +4,197,70,39,744,36.7,2.329,31,0 +0,117,80,31,53,45.2,0.089,24,0 +4,142,86,0,0,44,0.645,22,1 +6,134,80,37,370,46.2,0.238,46,1 +1,79,80,25,37,25.4,0.583,22,0 +4,122,68,0,0,35,0.394,29,0 +3,74,68,28,45,29.7,0.293,23,0 +4,171,72,0,0,43.6,0.479,26,1 +7,181,84,21,192,35.9,0.586,51,1 +0,179,90,27,0,44.1,0.686,23,1 +9,164,84,21,0,30.8,0.831,32,1 +0,104,76,0,0,18.4,0.582,27,0 +1,91,64,24,0,29.2,0.192,21,0 +4,91,70,32,88,33.1,0.446,22,0 +3,139,54,0,0,25.6,0.402,22,1 +6,119,50,22,176,27.1,1.318,33,1 +2,146,76,35,194,38.2,0.329,29,0 +9,184,85,15,0,30,1.213,49,1 +10,122,68,0,0,31.2,0.258,41,0 +0,165,90,33,680,52.3,0.427,23,0 +9,124,70,33,402,35.4,0.282,34,0 +1,111,86,19,0,30.1,0.143,23,0 +9,106,52,0,0,31.2,0.38,42,0 +2,129,84,0,0,28,0.284,27,0 +2,90,80,14,55,24.4,0.249,24,0 +0,86,68,32,0,35.8,0.238,25,0 +12,92,62,7,258,27.6,0.926,44,1 +1,113,64,35,0,33.6,0.543,21,1 +3,111,56,39,0,30.1,0.557,30,0 +2,114,68,22,0,28.7,0.092,25,0 +1,193,50,16,375,25.9,0.655,24,0 +11,155,76,28,150,33.3,1.353,51,1 +3,191,68,15,130,30.9,0.299,34,0 +3,141,0,0,0,30,0.761,27,1 +4,95,70,32,0,32.1,0.612,24,0 +3,142,80,15,0,32.4,0.2,63,0 +4,123,62,0,0,32,0.226,35,1 +5,96,74,18,67,33.6,0.997,43,0 +0,138,0,0,0,36.3,0.933,25,1 +2,128,64,42,0,40,1.101,24,0 +0,102,52,0,0,25.1,0.078,21,0 +2,146,0,0,0,27.5,0.24,28,1 +10,101,86,37,0,45.6,1.136,38,1 +2,108,62,32,56,25.2,0.128,21,0 +3,122,78,0,0,23,0.254,40,0 +1,71,78,50,45,33.2,0.422,21,0 +13,106,70,0,0,34.2,0.251,52,0 +2,100,70,52,57,40.5,0.677,25,0 +7,106,60,24,0,26.5,0.296,29,1 +0,104,64,23,116,27.8,0.454,23,0 +5,114,74,0,0,24.9,0.744,57,0 +2,108,62,10,278,25.3,0.881,22,0 +0,146,70,0,0,37.9,0.334,28,1 +10,129,76,28,122,35.9,0.28,39,0 +7,133,88,15,155,32.4,0.262,37,0 +7,161,86,0,0,30.4,0.165,47,1 +2,108,80,0,0,27,0.259,52,1 +7,136,74,26,135,26,0.647,51,0 +5,155,84,44,545,38.7,0.619,34,0 +1,119,86,39,220,45.6,0.808,29,1 +4,96,56,17,49,20.8,0.34,26,0 +5,108,72,43,75,36.1,0.263,33,0 +0,78,88,29,40,36.9,0.434,21,0 +0,107,62,30,74,36.6,0.757,25,1 +2,128,78,37,182,43.3,1.224,31,1 +1,128,48,45,194,40.5,0.613,24,1 +0,161,50,0,0,21.9,0.254,65,0 +6,151,62,31,120,35.5,0.692,28,0 +2,146,70,38,360,28,0.337,29,1 +0,126,84,29,215,30.7,0.52,24,0 +14,100,78,25,184,36.6,0.412,46,1 +8,112,72,0,0,23.6,0.84,58,0 +0,167,0,0,0,32.3,0.839,30,1 +2,144,58,33,135,31.6,0.422,25,1 +5,77,82,41,42,35.8,0.156,35,0 +5,115,98,0,0,52.9,0.209,28,1 +3,150,76,0,0,21,0.207,37,0 +2,120,76,37,105,39.7,0.215,29,0 +10,161,68,23,132,25.5,0.326,47,1 +0,137,68,14,148,24.8,0.143,21,0 +0,128,68,19,180,30.5,1.391,25,1 +2,124,68,28,205,32.9,0.875,30,1 +6,80,66,30,0,26.2,0.313,41,0 +0,106,70,37,148,39.4,0.605,22,0 +2,155,74,17,96,26.6,0.433,27,1 +3,113,50,10,85,29.5,0.626,25,0 +7,109,80,31,0,35.9,1.127,43,1 +2,112,68,22,94,34.1,0.315,26,0 +3,99,80,11,64,19.3,0.284,30,0 +3,182,74,0,0,30.5,0.345,29,1 +3,115,66,39,140,38.1,0.15,28,0 +6,194,78,0,0,23.5,0.129,59,1 +4,129,60,12,231,27.5,0.527,31,0 +3,112,74,30,0,31.6,0.197,25,1 +0,124,70,20,0,27.4,0.254,36,1 +13,152,90,33,29,26.8,0.731,43,1 +2,112,75,32,0,35.7,0.148,21,0 +1,157,72,21,168,25.6,0.123,24,0 +1,122,64,32,156,35.1,0.692,30,1 +10,179,70,0,0,35.1,0.2,37,0 +2,102,86,36,120,45.5,0.127,23,1 +6,105,70,32,68,30.8,0.122,37,0 +8,118,72,19,0,23.1,1.476,46,0 +2,87,58,16,52,32.7,0.166,25,0 +1,180,0,0,0,43.3,0.282,41,1 +12,106,80,0,0,23.6,0.137,44,0 +1,95,60,18,58,23.9,0.26,22,0 +0,165,76,43,255,47.9,0.259,26,0 +0,117,0,0,0,33.8,0.932,44,0 +5,115,76,0,0,31.2,0.343,44,1 +9,152,78,34,171,34.2,0.893,33,1 +7,178,84,0,0,39.9,0.331,41,1 +1,130,70,13,105,25.9,0.472,22,0 +1,95,74,21,73,25.9,0.673,36,0 +1,0,68,35,0,32,0.389,22,0 +5,122,86,0,0,34.7,0.29,33,0 +8,95,72,0,0,36.8,0.485,57,0 +8,126,88,36,108,38.5,0.349,49,0 +1,139,46,19,83,28.7,0.654,22,0 +3,116,0,0,0,23.5,0.187,23,0 +3,99,62,19,74,21.8,0.279,26,0 +5,0,80,32,0,41,0.346,37,1 +4,92,80,0,0,42.2,0.237,29,0 +4,137,84,0,0,31.2,0.252,30,0 +3,61,82,28,0,34.4,0.243,46,0 +1,90,62,12,43,27.2,0.58,24,0 +3,90,78,0,0,42.7,0.559,21,0 +9,165,88,0,0,30.4,0.302,49,1 +1,125,50,40,167,33.3,0.962,28,1 +13,129,0,30,0,39.9,0.569,44,1 +12,88,74,40,54,35.3,0.378,48,0 +1,196,76,36,249,36.5,0.875,29,1 +5,189,64,33,325,31.2,0.583,29,1 +5,158,70,0,0,29.8,0.207,63,0 +5,103,108,37,0,39.2,0.305,65,0 +4,146,78,0,0,38.5,0.52,67,1 +4,147,74,25,293,34.9,0.385,30,0 +5,99,54,28,83,34,0.499,30,0 +6,124,72,0,0,27.6,0.368,29,1 +0,101,64,17,0,21,0.252,21,0 +3,81,86,16,66,27.5,0.306,22,0 +1,133,102,28,140,32.8,0.234,45,1 +3,173,82,48,465,38.4,2.137,25,1 +0,118,64,23,89,0,1.731,21,0 +0,84,64,22,66,35.8,0.545,21,0 +2,105,58,40,94,34.9,0.225,25,0 +2,122,52,43,158,36.2,0.816,28,0 +12,140,82,43,325,39.2,0.528,58,1 +0,98,82,15,84,25.2,0.299,22,0 +1,87,60,37,75,37.2,0.509,22,0 +4,156,75,0,0,48.3,0.238,32,1 +0,93,100,39,72,43.4,1.021,35,0 +1,107,72,30,82,30.8,0.821,24,0 +0,105,68,22,0,20,0.236,22,0 +1,109,60,8,182,25.4,0.947,21,0 +1,90,62,18,59,25.1,1.268,25,0 +1,125,70,24,110,24.3,0.221,25,0 +1,119,54,13,50,22.3,0.205,24,0 +5,116,74,29,0,32.3,0.66,35,1 +8,105,100,36,0,43.3,0.239,45,1 +5,144,82,26,285,32,0.452,58,1 +3,100,68,23,81,31.6,0.949,28,0 +1,100,66,29,196,32,0.444,42,0 +5,166,76,0,0,45.7,0.34,27,1 +1,131,64,14,415,23.7,0.389,21,0 +4,116,72,12,87,22.1,0.463,37,0 +4,158,78,0,0,32.9,0.803,31,1 +2,127,58,24,275,27.7,1.6,25,0 +3,96,56,34,115,24.7,0.944,39,0 +0,131,66,40,0,34.3,0.196,22,1 +3,82,70,0,0,21.1,0.389,25,0 +3,193,70,31,0,34.9,0.241,25,1 +4,95,64,0,0,32,0.161,31,1 +6,137,61,0,0,24.2,0.151,55,0 +5,136,84,41,88,35,0.286,35,1 +9,72,78,25,0,31.6,0.28,38,0 +5,168,64,0,0,32.9,0.135,41,1 +2,123,48,32,165,42.1,0.52,26,0 +4,115,72,0,0,28.9,0.376,46,1 +0,101,62,0,0,21.9,0.336,25,0 +8,197,74,0,0,25.9,1.191,39,1 +1,172,68,49,579,42.4,0.702,28,1 +6,102,90,39,0,35.7,0.674,28,0 +1,112,72,30,176,34.4,0.528,25,0 +1,143,84,23,310,42.4,1.076,22,0 +1,143,74,22,61,26.2,0.256,21,0 +0,138,60,35,167,34.6,0.534,21,1 +3,173,84,33,474,35.7,0.258,22,1 +1,97,68,21,0,27.2,1.095,22,0 +4,144,82,32,0,38.5,0.554,37,1 +1,83,68,0,0,18.2,0.624,27,0 +3,129,64,29,115,26.4,0.219,28,1 +1,119,88,41,170,45.3,0.507,26,0 +2,94,68,18,76,26,0.561,21,0 +0,102,64,46,78,40.6,0.496,21,0 +2,115,64,22,0,30.8,0.421,21,0 +8,151,78,32,210,42.9,0.516,36,1 +4,184,78,39,277,37,0.264,31,1 +0,94,0,0,0,0,0.256,25,0 +1,181,64,30,180,34.1,0.328,38,1 +0,135,94,46,145,40.6,0.284,26,0 +1,95,82,25,180,35,0.233,43,1 +2,99,0,0,0,22.2,0.108,23,0 +3,89,74,16,85,30.4,0.551,38,0 +1,80,74,11,60,30,0.527,22,0 +2,139,75,0,0,25.6,0.167,29,0 +1,90,68,8,0,24.5,1.138,36,0 +0,141,0,0,0,42.4,0.205,29,1 +12,140,85,33,0,37.4,0.244,41,0 +5,147,75,0,0,29.9,0.434,28,0 +1,97,70,15,0,18.2,0.147,21,0 +6,107,88,0,0,36.8,0.727,31,0 +0,189,104,25,0,34.3,0.435,41,1 +2,83,66,23,50,32.2,0.497,22,0 +4,117,64,27,120,33.2,0.23,24,0 +8,108,70,0,0,30.5,0.955,33,1 +4,117,62,12,0,29.7,0.38,30,1 +0,180,78,63,14,59.4,2.42,25,1 +1,100,72,12,70,25.3,0.658,28,0 +0,95,80,45,92,36.5,0.33,26,0 +0,104,64,37,64,33.6,0.51,22,1 +0,120,74,18,63,30.5,0.285,26,0 +1,82,64,13,95,21.2,0.415,23,0 +2,134,70,0,0,28.9,0.542,23,1 +0,91,68,32,210,39.9,0.381,25,0 +2,119,0,0,0,19.6,0.832,72,0 +2,100,54,28,105,37.8,0.498,24,0 +14,175,62,30,0,33.6,0.212,38,1 +1,135,54,0,0,26.7,0.687,62,0 +5,86,68,28,71,30.2,0.364,24,0 +10,148,84,48,237,37.6,1.001,51,1 +9,134,74,33,60,25.9,0.46,81,0 +9,120,72,22,56,20.8,0.733,48,0 +1,71,62,0,0,21.8,0.416,26,0 +8,74,70,40,49,35.3,0.705,39,0 +5,88,78,30,0,27.6,0.258,37,0 +10,115,98,0,0,24,1.022,34,0 +0,124,56,13,105,21.8,0.452,21,0 +0,74,52,10,36,27.8,0.269,22,0 +0,97,64,36,100,36.8,0.6,25,0 +8,120,0,0,0,30,0.183,38,1 +6,154,78,41,140,46.1,0.571,27,0 +1,144,82,40,0,41.3,0.607,28,0 +0,137,70,38,0,33.2,0.17,22,0 +0,119,66,27,0,38.8,0.259,22,0 +7,136,90,0,0,29.9,0.21,50,0 +4,114,64,0,0,28.9,0.126,24,0 +0,137,84,27,0,27.3,0.231,59,0 +2,105,80,45,191,33.7,0.711,29,1 +7,114,76,17,110,23.8,0.466,31,0 +8,126,74,38,75,25.9,0.162,39,0 +4,132,86,31,0,28,0.419,63,0 +3,158,70,30,328,35.5,0.344,35,1 +0,123,88,37,0,35.2,0.197,29,0 +4,85,58,22,49,27.8,0.306,28,0 +0,84,82,31,125,38.2,0.233,23,0 +0,145,0,0,0,44.2,0.63,31,1 +0,135,68,42,250,42.3,0.365,24,1 +1,139,62,41,480,40.7,0.536,21,0 +0,173,78,32,265,46.5,1.159,58,0 +4,99,72,17,0,25.6,0.294,28,0 +8,194,80,0,0,26.1,0.551,67,0 +2,83,65,28,66,36.8,0.629,24,0 +2,89,90,30,0,33.5,0.292,42,0 +4,99,68,38,0,32.8,0.145,33,0 +4,125,70,18,122,28.9,1.144,45,1 +3,80,0,0,0,0,0.174,22,0 +6,166,74,0,0,26.6,0.304,66,0 +5,110,68,0,0,26,0.292,30,0 +2,81,72,15,76,30.1,0.547,25,0 +7,195,70,33,145,25.1,0.163,55,1 +6,154,74,32,193,29.3,0.839,39,0 +2,117,90,19,71,25.2,0.313,21,0 +3,84,72,32,0,37.2,0.267,28,0 +6,0,68,41,0,39,0.727,41,1 +7,94,64,25,79,33.3,0.738,41,0 +3,96,78,39,0,37.3,0.238,40,0 +10,75,82,0,0,33.3,0.263,38,0 +0,180,90,26,90,36.5,0.314,35,1 +1,130,60,23,170,28.6,0.692,21,0 +2,84,50,23,76,30.4,0.968,21,0 +8,120,78,0,0,25,0.409,64,0 +12,84,72,31,0,29.7,0.297,46,1 +0,139,62,17,210,22.1,0.207,21,0 +9,91,68,0,0,24.2,0.2,58,0 +2,91,62,0,0,27.3,0.525,22,0 +3,99,54,19,86,25.6,0.154,24,0 +3,163,70,18,105,31.6,0.268,28,1 +9,145,88,34,165,30.3,0.771,53,1 +7,125,86,0,0,37.6,0.304,51,0 +13,76,60,0,0,32.8,0.18,41,0 +6,129,90,7,326,19.6,0.582,60,0 +2,68,70,32,66,25,0.187,25,0 +3,124,80,33,130,33.2,0.305,26,0 +6,114,0,0,0,0,0.189,26,0 +9,130,70,0,0,34.2,0.652,45,1 +3,125,58,0,0,31.6,0.151,24,0 +3,87,60,18,0,21.8,0.444,21,0 +1,97,64,19,82,18.2,0.299,21,0 +3,116,74,15,105,26.3,0.107,24,0 +0,117,66,31,188,30.8,0.493,22,0 +0,111,65,0,0,24.6,0.66,31,0 +2,122,60,18,106,29.8,0.717,22,0 +0,107,76,0,0,45.3,0.686,24,0 +1,86,66,52,65,41.3,0.917,29,0 +6,91,0,0,0,29.8,0.501,31,0 +1,77,56,30,56,33.3,1.251,24,0 +4,132,0,0,0,32.9,0.302,23,1 +0,105,90,0,0,29.6,0.197,46,0 +0,57,60,0,0,21.7,0.735,67,0 +0,127,80,37,210,36.3,0.804,23,0 +3,129,92,49,155,36.4,0.968,32,1 +8,100,74,40,215,39.4,0.661,43,1 +3,128,72,25,190,32.4,0.549,27,1 +10,90,85,32,0,34.9,0.825,56,1 +4,84,90,23,56,39.5,0.159,25,0 +1,88,78,29,76,32,0.365,29,0 +8,186,90,35,225,34.5,0.423,37,1 +5,187,76,27,207,43.6,1.034,53,1 +4,131,68,21,166,33.1,0.16,28,0 +1,164,82,43,67,32.8,0.341,50,0 +4,189,110,31,0,28.5,0.68,37,0 +1,116,70,28,0,27.4,0.204,21,0 +3,84,68,30,106,31.9,0.591,25,0 +6,114,88,0,0,27.8,0.247,66,0 +1,88,62,24,44,29.9,0.422,23,0 +1,84,64,23,115,36.9,0.471,28,0 +7,124,70,33,215,25.5,0.161,37,0 +1,97,70,40,0,38.1,0.218,30,0 +8,110,76,0,0,27.8,0.237,58,0 +11,103,68,40,0,46.2,0.126,42,0 +11,85,74,0,0,30.1,0.3,35,0 +6,125,76,0,0,33.8,0.121,54,1 +0,198,66,32,274,41.3,0.502,28,1 +1,87,68,34,77,37.6,0.401,24,0 +6,99,60,19,54,26.9,0.497,32,0 +0,91,80,0,0,32.4,0.601,27,0 +2,95,54,14,88,26.1,0.748,22,0 +1,99,72,30,18,38.6,0.412,21,0 +6,92,62,32,126,32,0.085,46,0 +4,154,72,29,126,31.3,0.338,37,0 +0,121,66,30,165,34.3,0.203,33,1 +3,78,70,0,0,32.5,0.27,39,0 +2,130,96,0,0,22.6,0.268,21,0 +3,111,58,31,44,29.5,0.43,22,0 +2,98,60,17,120,34.7,0.198,22,0 +1,143,86,30,330,30.1,0.892,23,0 +1,119,44,47,63,35.5,0.28,25,0 +6,108,44,20,130,24,0.813,35,0 +2,118,80,0,0,42.9,0.693,21,1 +10,133,68,0,0,27,0.245,36,0 +2,197,70,99,0,34.7,0.575,62,1 +0,151,90,46,0,42.1,0.371,21,1 +6,109,60,27,0,25,0.206,27,0 +12,121,78,17,0,26.5,0.259,62,0 +8,100,76,0,0,38.7,0.19,42,0 +8,124,76,24,600,28.7,0.687,52,1 +1,93,56,11,0,22.5,0.417,22,0 +8,143,66,0,0,34.9,0.129,41,1 +6,103,66,0,0,24.3,0.249,29,0 +3,176,86,27,156,33.3,1.154,52,1 +0,73,0,0,0,21.1,0.342,25,0 +11,111,84,40,0,46.8,0.925,45,1 +2,112,78,50,140,39.4,0.175,24,0 +3,132,80,0,0,34.4,0.402,44,1 +2,82,52,22,115,28.5,1.699,25,0 +6,123,72,45,230,33.6,0.733,34,0 +0,188,82,14,185,32,0.682,22,1 +0,67,76,0,0,45.3,0.194,46,0 +1,89,24,19,25,27.8,0.559,21,0 +1,173,74,0,0,36.8,0.088,38,1 +1,109,38,18,120,23.1,0.407,26,0 +1,108,88,19,0,27.1,0.4,24,0 +6,96,0,0,0,23.7,0.19,28,0 +1,124,74,36,0,27.8,0.1,30,0 +7,150,78,29,126,35.2,0.692,54,1 +4,183,0,0,0,28.4,0.212,36,1 +1,124,60,32,0,35.8,0.514,21,0 +1,181,78,42,293,40,1.258,22,1 +1,92,62,25,41,19.5,0.482,25,0 +0,152,82,39,272,41.5,0.27,27,0 +1,111,62,13,182,24,0.138,23,0 +3,106,54,21,158,30.9,0.292,24,0 +3,174,58,22,194,32.9,0.593,36,1 +7,168,88,42,321,38.2,0.787,40,1 +6,105,80,28,0,32.5,0.878,26,0 +11,138,74,26,144,36.1,0.557,50,1 +3,106,72,0,0,25.8,0.207,27,0 +6,117,96,0,0,28.7,0.157,30,0 +2,68,62,13,15,20.1,0.257,23,0 +9,112,82,24,0,28.2,1.282,50,1 +0,119,0,0,0,32.4,0.141,24,1 +2,112,86,42,160,38.4,0.246,28,0 +2,92,76,20,0,24.2,1.698,28,0 +6,183,94,0,0,40.8,1.461,45,0 +0,94,70,27,115,43.5,0.347,21,0 +2,108,64,0,0,30.8,0.158,21,0 +4,90,88,47,54,37.7,0.362,29,0 +0,125,68,0,0,24.7,0.206,21,0 +0,132,78,0,0,32.4,0.393,21,0 +5,128,80,0,0,34.6,0.144,45,0 +4,94,65,22,0,24.7,0.148,21,0 +7,114,64,0,0,27.4,0.732,34,1 +0,102,78,40,90,34.5,0.238,24,0 +2,111,60,0,0,26.2,0.343,23,0 +1,128,82,17,183,27.5,0.115,22,0 +10,92,62,0,0,25.9,0.167,31,0 +13,104,72,0,0,31.2,0.465,38,1 +5,104,74,0,0,28.8,0.153,48,0 +2,94,76,18,66,31.6,0.649,23,0 +7,97,76,32,91,40.9,0.871,32,1 +1,100,74,12,46,19.5,0.149,28,0 +0,102,86,17,105,29.3,0.695,27,0 +4,128,70,0,0,34.3,0.303,24,0 +6,147,80,0,0,29.5,0.178,50,1 +4,90,0,0,0,28,0.61,31,0 +3,103,72,30,152,27.6,0.73,27,0 +2,157,74,35,440,39.4,0.134,30,0 +1,167,74,17,144,23.4,0.447,33,1 +0,179,50,36,159,37.8,0.455,22,1 +11,136,84,35,130,28.3,0.26,42,1 +0,107,60,25,0,26.4,0.133,23,0 +1,91,54,25,100,25.2,0.234,23,0 +1,117,60,23,106,33.8,0.466,27,0 +5,123,74,40,77,34.1,0.269,28,0 +2,120,54,0,0,26.8,0.455,27,0 +1,106,70,28,135,34.2,0.142,22,0 +2,155,52,27,540,38.7,0.24,25,1 +2,101,58,35,90,21.8,0.155,22,0 +1,120,80,48,200,38.9,1.162,41,0 +11,127,106,0,0,39,0.19,51,0 +3,80,82,31,70,34.2,1.292,27,1 +10,162,84,0,0,27.7,0.182,54,0 +1,199,76,43,0,42.9,1.394,22,1 +8,167,106,46,231,37.6,0.165,43,1 +9,145,80,46,130,37.9,0.637,40,1 +6,115,60,39,0,33.7,0.245,40,1 +1,112,80,45,132,34.8,0.217,24,0 +4,145,82,18,0,32.5,0.235,70,1 +10,111,70,27,0,27.5,0.141,40,1 +6,98,58,33,190,34,0.43,43,0 +9,154,78,30,100,30.9,0.164,45,0 +6,165,68,26,168,33.6,0.631,49,0 +1,99,58,10,0,25.4,0.551,21,0 +10,68,106,23,49,35.5,0.285,47,0 +3,123,100,35,240,57.3,0.88,22,0 +8,91,82,0,0,35.6,0.587,68,0 +6,195,70,0,0,30.9,0.328,31,1 +9,156,86,0,0,24.8,0.23,53,1 +0,93,60,0,0,35.3,0.263,25,0 +3,121,52,0,0,36,0.127,25,1 +2,101,58,17,265,24.2,0.614,23,0 +2,56,56,28,45,24.2,0.332,22,0 +0,162,76,36,0,49.6,0.364,26,1 +0,95,64,39,105,44.6,0.366,22,0 +4,125,80,0,0,32.3,0.536,27,1 +5,136,82,0,0,0,0.64,69,0 +2,129,74,26,205,33.2,0.591,25,0 +3,130,64,0,0,23.1,0.314,22,0 +1,107,50,19,0,28.3,0.181,29,0 +1,140,74,26,180,24.1,0.828,23,0 +1,144,82,46,180,46.1,0.335,46,1 +8,107,80,0,0,24.6,0.856,34,0 +13,158,114,0,0,42.3,0.257,44,1 +2,121,70,32,95,39.1,0.886,23,0 +7,129,68,49,125,38.5,0.439,43,1 +2,90,60,0,0,23.5,0.191,25,0 +7,142,90,24,480,30.4,0.128,43,1 +3,169,74,19,125,29.9,0.268,31,1 +0,99,0,0,0,25,0.253,22,0 +4,127,88,11,155,34.5,0.598,28,0 +4,118,70,0,0,44.5,0.904,26,0 +2,122,76,27,200,35.9,0.483,26,0 +6,125,78,31,0,27.6,0.565,49,1 +1,168,88,29,0,35,0.905,52,1 +2,129,0,0,0,38.5,0.304,41,0 +4,110,76,20,100,28.4,0.118,27,0 +6,80,80,36,0,39.8,0.177,28,0 +10,115,0,0,0,0,0.261,30,1 +2,127,46,21,335,34.4,0.176,22,0 +9,164,78,0,0,32.8,0.148,45,1 +2,93,64,32,160,38,0.674,23,1 +3,158,64,13,387,31.2,0.295,24,0 +5,126,78,27,22,29.6,0.439,40,0 +10,129,62,36,0,41.2,0.441,38,1 +0,134,58,20,291,26.4,0.352,21,0 +3,102,74,0,0,29.5,0.121,32,0 +7,187,50,33,392,33.9,0.826,34,1 +3,173,78,39,185,33.8,0.97,31,1 +10,94,72,18,0,23.1,0.595,56,0 +1,108,60,46,178,35.5,0.415,24,0 +5,97,76,27,0,35.6,0.378,52,1 +4,83,86,19,0,29.3,0.317,34,0 +1,114,66,36,200,38.1,0.289,21,0 +1,149,68,29,127,29.3,0.349,42,1 +5,117,86,30,105,39.1,0.251,42,0 +1,111,94,0,0,32.8,0.265,45,0 +4,112,78,40,0,39.4,0.236,38,0 +1,116,78,29,180,36.1,0.496,25,0 +0,141,84,26,0,32.4,0.433,22,0 +2,175,88,0,0,22.9,0.326,22,0 +2,92,52,0,0,30.1,0.141,22,0 +3,130,78,23,79,28.4,0.323,34,1 +8,120,86,0,0,28.4,0.259,22,1 +2,174,88,37,120,44.5,0.646,24,1 +2,106,56,27,165,29,0.426,22,0 +2,105,75,0,0,23.3,0.56,53,0 +4,95,60,32,0,35.4,0.284,28,0 +0,126,86,27,120,27.4,0.515,21,0 +8,65,72,23,0,32,0.6,42,0 +2,99,60,17,160,36.6,0.453,21,0 +1,102,74,0,0,39.5,0.293,42,1 +11,120,80,37,150,42.3,0.785,48,1 +3,102,44,20,94,30.8,0.4,26,0 +1,109,58,18,116,28.5,0.219,22,0 +9,140,94,0,0,32.7,0.734,45,1 +13,153,88,37,140,40.6,1.174,39,0 +12,100,84,33,105,30,0.488,46,0 +1,147,94,41,0,49.3,0.358,27,1 +1,81,74,41,57,46.3,1.096,32,0 +3,187,70,22,200,36.4,0.408,36,1 +6,162,62,0,0,24.3,0.178,50,1 +4,136,70,0,0,31.2,1.182,22,1 +1,121,78,39,74,39,0.261,28,0 +3,108,62,24,0,26,0.223,25,0 +0,181,88,44,510,43.3,0.222,26,1 +8,154,78,32,0,32.4,0.443,45,1 +1,128,88,39,110,36.5,1.057,37,1 +7,137,90,41,0,32,0.391,39,0 +0,123,72,0,0,36.3,0.258,52,1 +1,106,76,0,0,37.5,0.197,26,0 +6,190,92,0,0,35.5,0.278,66,1 +2,88,58,26,16,28.4,0.766,22,0 +9,170,74,31,0,44,0.403,43,1 +9,89,62,0,0,22.5,0.142,33,0 +10,101,76,48,180,32.9,0.171,63,0 +2,122,70,27,0,36.8,0.34,27,0 +5,121,72,23,112,26.2,0.245,30,0 +1,126,60,0,0,30.1,0.349,47,1 +1,93,70,31,0,30.4,0.315,23,0