diff --git a/.gitignore b/.gitignore index ead2e7a..e9ad17e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,8 @@ -solutions.csv \ No newline at end of file +solutions.csv +.Python +bin/ +build/ +include/ +lib/ +plots/ +*cleaned*.csv diff --git a/cleanDataSets.sh b/cleanDataSets.sh new file mode 100644 index 0000000..5f048b1 --- /dev/null +++ b/cleanDataSets.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cat -e training_data.csv | tr '^M' '\n' | grep -v '^$' > training_data.cleaned.csv +cat -e test_data.csv | tr '^M' '\n' | grep -v '^$' > test_data.cleaned.csv diff --git a/grouper_model.ipynb b/grouper_model.ipynb new file mode 100644 index 0000000..73c7348 --- /dev/null +++ b/grouper_model.ipynb @@ -0,0 +1,731 @@ +{ + "metadata": { + "name": "grouper_model" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import pandas as pd\n", + "import numpy as np\n", + "import sys\n", + "import matplotlib\n", + "import itertools\n", + "from pylab import *\n", + "from ggplot import *\n", + "import operator\n", + "from sklearn import linear_model, cross_validation, preprocessing, svm\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.grid_search import GridSearchCV\n", + "from sklearn.metrics import roc_curve, auc" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#read in the datasets\n", + "data = pd.read_csv(\"training_data.cleaned.csv\", sep=',')\n", + "data_test = pd.read_csv(\"test_data.cleaned.csv\", sep=',')\n", + "#get rid of stars in column names just to make things simpler in the code\n", + "data.columns=map(lambda x: x.replace('*', ''), data.columns)\n", + "data_test.columns=map(lambda x: x.replace('*', ''), data_test.columns)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#make string and integer versions of the boolean target variable\n", + "data['became_friends_target_str']=map(lambda x: str(x), data['members_became_friends'])\n", + "data['became_friends_target_int']=map(lambda x: int(x), data['members_became_friends'])" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#construct some varialbes to hold the sign of the male/female difference in matching quantities\n", + "sign_variables = ['age', 'height', 'shoe_size', 'number_of_pets', 'weekly_workouts', 'number_of_siblings', 'facebook_friends_count', 'facebook_photos_count']#, 'log10_facebook_friends_count', 'log10_facebook_photos_count'] \n", + "for sign_variable in sign_variables:\n", + " data[sign_variable+'_diff_sign'] = pd.Categorical.from_array(map(lambda x: int(x), (data['m_'+sign_variable]-data['f_'+sign_variable])>0))\n", + " data_test[sign_variable+'_diff_sign'] = pd.Categorical.from_array(map(lambda x: int(x), (data_test['m_'+sign_variable]-data_test['f_'+sign_variable])>0))" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [ + "print data.head(1)\n", + "print data_test.head(1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " f_gender f_age f_height f_shoe_size f_number_of_pets f_platinum_albums \\\n", + "0 female 23 65 6 8 7.5 \n", + "\n", + " f_weekly_workouts f_number_of_siblings f_pokemon_collected \\\n", + "0 8 7.5 7.5 \n", + "\n", + " f_facebook_friends_count f_facebook_photos_count m_gender m_age \\\n", + "0 1392 454 male 23 \n", + "\n", + " m_height m_shoe_size m_number_of_pets m_platinum_albums \\\n", + "0 69 5 8 7.5 \n", + "\n", + " m_weekly_workouts m_number_of_siblings m_pokemon_collected \\\n", + "0 8 7 7 \n", + "\n", + " m_facebook_friends_count m_facebook_photos_count members_became_friends \\\n", + "0 970 498 False \n", + "\n", + " became_friends_target_str became_friends_target_int age_diff_sign \\\n", + "0 False 0 0 \n", + "\n", + " height_diff_sign shoe_size_diff_sign number_of_pets_diff_sign \\\n", + "0 1 0 0 \n", + "\n", + " weekly_workouts_diff_sign number_of_siblings_diff_sign \\\n", + "0 0 0 \n", + "\n", + " facebook_friends_count_diff_sign facebook_photos_count_diff_sign \n", + "0 0 1 \n", + " f_gender f_age f_height f_shoe_size f_number_of_pets f_platinum_albums \\\n", + "0 female 27 67 5 7.5 7.5 \n", + "\n", + " f_weekly_workouts f_number_of_siblings f_pokemon_collected \\\n", + "0 8 7 7.5 \n", + "\n", + " f_facebook_friends_count f_facebook_photos_count m_gender m_age \\\n", + "0 333 457 male 25 \n", + "\n", + " m_height m_shoe_size m_number_of_pets m_platinum_albums \\\n", + "0 72 5.5 8 7.5 \n", + "\n", + " m_weekly_workouts m_number_of_siblings m_pokemon_collected \\\n", + "0 8 7.5 7.5 \n", + "\n", + " m_facebook_friends_count m_facebook_photos_count members_became_friends \\\n", + "0 884 601 NaN \n", + "\n", + " age_diff_sign height_diff_sign shoe_size_diff_sign \\\n", + "0 0 1 1 \n", + "\n", + " number_of_pets_diff_sign weekly_workouts_diff_sign \\\n", + "0 1 0 \n", + "\n", + " number_of_siblings_diff_sign facebook_friends_count_diff_sign \\\n", + "0 1 1 \n", + "\n", + " facebook_photos_count_diff_sign \n", + "0 1 \n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [ + "#make a bunch of diagnostic plots just to look at things\n", + "colours=['#0080FF', '#FF0000']\n", + "plots={}\n", + "for diff_variable in diff_variables:\n", + " print diff_variable\n", + " plots[diff_variable]=ggplot(aes(x=diff_variable+'_diff', colour='became_friends_target_str'), data=data)+geom_bar(aes(colour='became_friends_target_str'), alpha=0.5)+scale_colour_manual(values=colours)\n", + " ggsave(\"./plots/\"+diff_variable+\".png\", plots[diff_variable])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "age\n", + "height" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "Saving 11.0 x 8.0 in image.\n", + "Saving 11.0 x 8.0 in image.\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "shoe_size" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "number_of_pets" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "Saving 11.0 x 8.0 in image.\n", + "Saving 11.0 x 8.0 in image.\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "weekly_workouts" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "number_of_siblings" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "Saving 11.0 x 8.0 in image.\n", + "Saving 11.0 x 8.0 in image.\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "facebook_friends_count" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "facebook_photos_count" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "Saving 11.0 x 8.0 in image.\n", + "Saving 11.0 x 8.0 in image.\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "log10_facebook_friends_count" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "log10_facebook_photos_count" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "Saving 11.0 x 8.0 in image.\n", + "Saving 11.0 x 8.0 in image.\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#filter out the target variables and some irrelevant varaibles from the ones that we're going to use to do the fit\n", + "varsToFilter = ['f_gender', 'm_gender', 'members_became_friends', 'became_friends_target_str', 'became_friends_target_int']\n", + "fitVars=filter(lambda x: x not in varsToFilter, data.columns)\n", + "\n", + "#construct the numpy matrices for the fits\n", + "X=np.array(data[fitVars])\n", + "X_test=np.array(data_test[fitVars])\n", + "Y=np.array(data['became_friends_target_int'])\n", + "\n", + "#scale the continuous variables but not the categorical\n", + "varsNotToScale=filter(lambda x: True if re.search(\"sign\", str(x))!=None else False, data.columns)\n", + "X_1=np.array(data[filter(lambda x: x not in varsNotToScale, fitVars)])\n", + "X_2=np.array(data[varsNotToScale])\n", + "#create a scaler so that we can scale the test set with the same parameters\n", + "scaler = preprocessing.StandardScaler().fit(X_1)\n", + "X_1_scaled=scaler.transform(X_1) \n", + "X_scaled=np.column_stack((X_1_scaled, X_2))\n", + "\n", + "#do the same for the test set\n", + "X_test_1=np.array(data_test[filter(lambda x: x not in varsNotToScale, fitVars)])\n", + "X_test_2=np.array(data_test[varsNotToScale])\n", + "X_test_1_scaled=scaler.transform(X_test_1) \n", + "X_test_scaled=np.column_stack((X_test_1_scaled, X_test_2))\n", + "\n", + "X_train, X_valid, Y_train, Y_valid = cross_validation.train_test_split(X_scaled, Y, test_size=0.1, random_state=0)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#make some different classifiers\n", + "logit=linear_model.LogisticRegression(C=1e-1, penalty='l2')\n", + "svc = svm.SVC() #linear, poly (degree and coef0), rbf (gamma), sigmoid (coef0)\n", + "rf=RandomForestClassifier(n_estimators=750, compute_importances=True, criterion=\"gini\", max_features=None) #entropy or gini, None or auto\n", + "\n", + "#and some parameter grids to search over\n", + "logit_param_grid = [{'C': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1, 1, 10, 100, 1000]}]\n", + "svm_param_grid = [\n", + "{'C': [1, 10, 100, 1000], 'kernel': ['linear']},\n", + "{'C': [1, 10, 100, 1000], 'degree': [2], 'coef0': [1], 'kernel': ['poly']},\n", + "{'C': [1, 10, 100, 1000], 'gamma': [0.0001, 0.001, 0.01, 0.1, 1, 10, 100], 'kernel': ['rbf']},\n", + "{'C': [1, 10, 100, 1000], 'coef0': [0.0001, 0.001, 0.01, 0.1, 1, 10, 100], 'kernel': ['sigmoid']}\n", + "]\n", + "rf_param_grid = [{'n_estimators': range(50, 600, 50)}]\n", + "\n", + "#clf = GridSearchCV(logit, logit_param_grid, n_jobs=5)\n", + "#clf = GridSearchCV(svc, svm_param_grid, n_jobs=5)\n", + "clf = GridSearchCV(rf, rf_param_grid, n_jobs=5, cv=10)\n", + "\n", + "#do the fit\n", + "clf.fit(X_train, Y_train)\n", + "\n", + "#random leftover exploratory code\n", + "#logit.fit(X_train, Y_train)\n", + "#logit.score(X_test, Y_test)\n", + "#print('Coefficients: \\n', logit.coef_)\n", + "#probs=logit.predict_proba(X_test)\n", + "#test=pd.DataFrame({'yhat': logit.predict(X_test), 'yhat_prob_one': logit.predict_proba(X_test)[:,1], 'y': Y_test})\n", + "#print test.head(25)\n", + "#print sum(abs(test['y']-test['yhat'])), len(test['y'])\n", + "#scores=cross_validation.cross_val_score(clf, X_scaled, Y, cv=10, n_jobs=5)\n", + "#print scores\n", + "#print scores.mean(), scores.std()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "pyout", + "prompt_number": 9, + "text": [ + "GridSearchCV(cv=10,\n", + " estimator=RandomForestClassifier(bootstrap=True, compute_importances=True,\n", + " criterion='gini', max_depth=None, max_features=None,\n", + " min_density=0.1, min_samples_leaf=1, min_samples_split=2,\n", + " n_estimators=750, n_jobs=1, oob_score=False, random_state=None,\n", + " verbose=0),\n", + " fit_params={}, iid=True, loss_func=None, n_jobs=5,\n", + " param_grid=[{'n_estimators': [50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550]}],\n", + " pre_dispatch='2*n_jobs', refit=True, score_func=None, verbose=0)" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print clf.best_estimator_, clf.best_score_\n", + "print clf.grid_scores_" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "RandomForestClassifier(bootstrap=True, compute_importances=True,\n", + " criterion=gini, max_depth=None, max_features=None,\n", + " min_density=0.1, min_samples_leaf=1, min_samples_split=2,\n", + " n_estimators=150, n_jobs=1, oob_score=False, random_state=None,\n", + " verbose=0) 0.572686280457\n", + "[({'n_estimators': 50}, 0.56089879688605804, array([ 0.55555556, 0.5015873 , 0.55873016, 0.57777778, 0.58412698,\n", + " 0.55414013, 0.58917197, 0.58280255, 0.56687898, 0.53821656])), ({'n_estimators': 100}, 0.56438883833788289, array([ 0.56507937, 0.54920635, 0.55873016, 0.56507937, 0.58095238,\n", + " 0.5477707 , 0.54458599, 0.59235669, 0.57324841, 0.56687898])), ({'n_estimators': 150}, 0.572686280456981, array([ 0.55873016, 0.51746032, 0.59047619, 0.55555556, 0.54285714,\n", + " 0.55095541, 0.61783439, 0.61146497, 0.56369427, 0.61783439])), ({'n_estimators': 200}, 0.56728035587908199, array([ 0.55238095, 0.48888889, 0.56190476, 0.57460317, 0.56190476,\n", + " 0.57961783, 0.57006369, 0.59235669, 0.59235669, 0.59872611])), ({'n_estimators': 250}, 0.56250328581538767, array([ 0.55873016, 0.49206349, 0.56825397, 0.54920635, 0.57142857,\n", + " 0.55732484, 0.56687898, 0.57961783, 0.57643312, 0.60509554])), ({'n_estimators': 300}, 0.56186937620058641, array([ 0.54285714, 0.49206349, 0.59047619, 0.55555556, 0.54920635,\n", + " 0.5477707 , 0.55732484, 0.60509554, 0.58598726, 0.59235669])), ({'n_estimators': 350}, 0.56282883429380248, array([ 0.54285714, 0.4952381 , 0.54603175, 0.55873016, 0.57460317,\n", + " 0.55732484, 0.57961783, 0.58598726, 0.57324841, 0.61464968])), ({'n_estimators': 400}, 0.5653675058133657, array([ 0.56190476, 0.4984127 , 0.56190476, 0.55555556, 0.56825397,\n", + " 0.57324841, 0.55414013, 0.58917197, 0.59235669, 0.59872611])), ({'n_estimators': 450}, 0.5675927610959457, array([ 0.55555556, 0.50793651, 0.56507937, 0.55238095, 0.57777778,\n", + " 0.57006369, 0.57643312, 0.58598726, 0.58917197, 0.5955414 ])), ({'n_estimators': 500}, 0.56599939338792826, array([ 0.56507937, 0.5047619 , 0.57142857, 0.54920635, 0.57142857,\n", + " 0.52866242, 0.58280255, 0.58280255, 0.60509554, 0.59872611])), ({'n_estimators': 550}, 0.5647255080376099, array([ 0.56825397, 0.48888889, 0.53968254, 0.56190476, 0.6031746 ,\n", + " 0.5477707 , 0.56050955, 0.57961783, 0.58280255, 0.61464968]))]\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#make a plot of the random forest cross-validation error as a function of the grid parameter\n", + "traj = pd.DataFrame({'n_estimator': map(lambda x: x.get('n_estimators'), zip(*clf.grid_scores_)[0]), 'score': zip(*clf.grid_scores_)[1], 'err': map(lambda x: std(x), zip(*clf.grid_scores_)[2])})\n", + "traj['min']=traj['score']-traj['err']\n", + "traj['max']=traj['score']+traj['err']\n", + "ggplot(aes(x=\"n_estimator\", y=\"score\"), data=traj)+geom_point()+geom_errorbar(aes(ymin=\"min\", ymax=\"max\"))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "png": "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\nAAAj/X+Rlb+IdQ5mdQAAAABJRU5ErkJggg==\n" + }, + { + "output_type": "pyout", + "prompt_number": 11, + "text": [ + "" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#see which variables are most important\n", + "imps=pd.DataFrame({'var': fitVars, 'imp': clf.best_estimator_.feature_importances_})\n", + "imps.sort(['imp'], ascending=False)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
impvar
8 0.123543 f_facebook_friends_count
18 0.110307 m_facebook_friends_count
9 0.091427 f_facebook_photos_count
0 0.088869 f_age
1 0.087186 f_height
19 0.080451 m_facebook_photos_count
2 0.054082 f_shoe_size
11 0.051834 m_height
10 0.051794 m_age
12 0.035258 m_shoe_size
6 0.027797 f_number_of_siblings
16 0.022221 m_number_of_siblings
3 0.022122 f_number_of_pets
4 0.021436 f_platinum_albums
14 0.017632 m_platinum_albums
13 0.017210 m_number_of_pets
5 0.016918 f_weekly_workouts
7 0.016787 f_pokemon_collected
15 0.013603 m_weekly_workouts
17 0.012686 m_pokemon_collected
20 0.006131 age_diff_sign
24 0.006105 weekly_workouts_diff_sign
25 0.006045 number_of_siblings_diff_sign
23 0.005486 number_of_pets_diff_sign
22 0.004775 shoe_size_diff_sign
27 0.003818 facebook_photos_count_diff_sign
26 0.002244 facebook_friends_count_diff_sign
21 0.002235 height_diff_sign
\n", + "
" + ], + "output_type": "pyout", + "prompt_number": 12, + "text": [ + " imp var\n", + "8 0.123543 f_facebook_friends_count\n", + "18 0.110307 m_facebook_friends_count\n", + "9 0.091427 f_facebook_photos_count\n", + "0 0.088869 f_age\n", + "1 0.087186 f_height\n", + "19 0.080451 m_facebook_photos_count\n", + "2 0.054082 f_shoe_size\n", + "11 0.051834 m_height\n", + "10 0.051794 m_age\n", + "12 0.035258 m_shoe_size\n", + "6 0.027797 f_number_of_siblings\n", + "16 0.022221 m_number_of_siblings\n", + "3 0.022122 f_number_of_pets\n", + "4 0.021436 f_platinum_albums\n", + "14 0.017632 m_platinum_albums\n", + "13 0.017210 m_number_of_pets\n", + "5 0.016918 f_weekly_workouts\n", + "7 0.016787 f_pokemon_collected\n", + "15 0.013603 m_weekly_workouts\n", + "17 0.012686 m_pokemon_collected\n", + "20 0.006131 age_diff_sign\n", + "24 0.006105 weekly_workouts_diff_sign\n", + "25 0.006045 number_of_siblings_diff_sign\n", + "23 0.005486 number_of_pets_diff_sign\n", + "22 0.004775 shoe_size_diff_sign\n", + "27 0.003818 facebook_photos_count_diff_sign\n", + "26 0.002244 facebook_friends_count_diff_sign\n", + "21 0.002235 height_diff_sign" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#some exploratory ROC curve stuff on the validation set\n", + "probas_=clf.best_estimator_.predict_proba(X_valid)\n", + "fpr, tpr, thresholds = roc_curve(Y_valid, probas_[:, 1])\n", + "roc_auc = auc(fpr, tpr)\n", + "print(\"Area under the ROC curve : %f\" % roc_auc)\n", + "ggplot(aes(x=\"threshold\", y=\"tpr\"), data=pd.DataFrame({\"tpr\":tpr, \"fpr\":fpr, \"threshold\":thresholds}))+geom_point()\n", + "#ggplot(aes(x=\"threshold\", y=\"fpr\"), data=pd.DataFrame({\"tpr\":tpr, \"fpr\":fpr, \"threshold\":thresholds}))+geom_point()\n", + "#ggplot(aes(x=\"fpr\", y=\"tpr\"), data=pd.DataFrame({\"tpr\":tpr, \"fpr\":fpr, \"threshold\":thresholds}))+geom_point()\n", + "#ggplot(aes(x=\"threshold\", y=\"diff\"), data=pd.DataFrame({\"tpr\":tpr, \"fpr\":fpr, \"threshold\":thresholds, \"diff\":(tpr-fpr)}))+geom_point()+geom_line()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Area under the ROC curve : 0.560808\n" + ] + }, + { + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAqgAAAHtCAYAAADVxYweAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VOXB/vF7ZpKQbSY7a9izgERksyqggEBfRUVQsG9d\nQCkuoIKCgEUUxYWiIFV8axWtLJf1tbJZFfAniGhBpSD7EghLSEKAZLJN9mXm9wevU45REQlzJsn3\nc11e5TlzZnrP05jenPOccywej8cjAAAAwE9YzQ4AAAAAnI2CCgAAAL9CQQUAAIBfoaACAADAr1BQ\nAQAA4FcoqAAAAPArAWYHkKQPP/xQBw8eVFhYmMaPH1/r9V27dmnTpk2SpKCgIN14441q1qyZr2MC\nAADAByz+cB/U9PR0BQUFaeXKlT9aUDMyMhQXF6fg4GClpaXpiy++0NixY01ICgAAgIvNL46gtm3b\nVgUFBT/5euvWrb1/btWqlYqKiiRJLpdLLpfLsK/dbpfdbr84QQEAAHDR+UVBPR/bt29XYmKiJGnb\ntm3auHGj4fV+/fqpf//+JiQDAABAXahXBfXo0aPavn27xowZI0nq2bOnkpKSDPvY7Xbl5+ebEc9v\nRUVFMSdnYT6MmA8j5sOI+aiNOTFiPoyYD6OoqKhf9b56U1BPnTqljz76SHfeeadCQkIk/fTpfH4w\nAAAA6q96cZupwsJCvf/++7rlllsUHR1tdhwAAABcRH5xBHXZsmVKT09XaWmpXn75ZQ0YMEA1NTWS\npF69emnjxo0qKyvTxx9/LEmy2Wy69957zYwMAACAi8QvCuqIESN+9vWhQ4dq6NChPkoDAAAAM9WL\nU/wAAABoPCioAAAA8CsUVAAAAPgVCioAAAD8CgUVAAAAfoWCCgAAAL9CQQUAAIBfoaACAADAr1BQ\nAQAA4FcoqAAAAPArFFQAAAD4FQoqAAAA/AoFFQAAAH6FggoAAAC/QkEFAACAX6GgAgAAwK9QUAEA\nAOBXKKgAAADwKxRUAAAA+BUKKgAAAPwKBRUAAAB+hYIKAAAAv0JBBQAAgF+hoAIAAMCvUFABAADg\nVyioAAAA8CsUVAAAAPgVCioAAAD8CgUVAAAAfoWCCgAAAL9CQQUAAIBfoaACAADAr1BQAQAA4Fco\nqAAAAPArFFQAAAD4FQoqAAAA/AoFFQAAAH6FggoAAAC/QkEFAACAX6GgAgAAwK9QUAEAAOBXKKgA\nAADwKxRUAAAA+BUKKgAAAPwKBRUAAAB+hYIKAAAAv0JBBQAAgF+hoAIAAMCvUFABAADgVyioAAAA\n8CsUVAAAAPgVCioAAAD8CgUVAAAAfoWCCgAAAL9CQQUAAIBfCTA7wIcffqiDBw8qLCxM48eP/9F9\n1qxZo0OHDikwMFDDhg1TixYtfJwSP3T8+HFlZmYqOTlZMTExdfa5brdbe/fuVXl5uS699FIFBwf/\nove5XC7t2bNHMTExSkpKqrM8AADA90wvqN26ddNvfvMbrVy58kdfP3TokPLy8jRhwgRlZmbqk08+\n0dixY32cEmd79913tWLFChUVFalZs2aaNGmSevToccGf63a7NXPmTG3btk3V1dXq0KGDXnzxRTkc\njp99X0ZGhmbOnKmMjAyFhIRowIABevTRRy84DwAAMIfpBbVt27YqKCj4yddTU1N12WWXSZLi4+NV\nXl6u4uJihYeHy+VyyeVyGfa32+0XNW9jV1lZqTVr1qioqEiSdOrUKS1evLhOCuqWLVu0detWVVdX\nS5IOHz6st99++5xl880331RGRoYkqaysTP/617908803a+3atXI6nerTp4+uvfbaWu+rrq7WkiVL\nlJWVpW7duummm25SWlqa3n//fQUEBOjuu+9Ws2bNLvh7AQCA82N6QT2XoqIiRUREeMcOh0NFRUUK\nDw/Xtm3btHHjRsP+/fr1U//+/X2c0v9FRUXVyecUFxfL4/EYtlksljr5/Orqam85PXvbuT7bYrEY\nxhUVFZo/f74OHDggSdq+fbtqamp02223efeJiorS5MmT9dVXX8ntduvf//63MjIy9PXXX+vkyZOS\npIMHD2rhwoV1uoTBX9XVz0dDwXwYMR+1MSdGzIcR83Hh/L6gSvrRQiRJPXv2rLXe0G63Kz8/32fZ\n6oOoqKg6nZPWrVvr9OnTkqSgoCB16dKlTj6/a9euio+PV2ZmpqQzuQcPHnzOz77qqqu0e/duFRcX\nS5JatGjh/QzpzPrUTz/9VIMHD/Z+7okTJ7Rv3z653W5JZ468rl+/3ntkWDqzznbJkiXav3+/CgoK\nFB0drWnTpumrr77SmjVr5PF4dM011+j3v//9BX93M9X1z0d9x3wYMR+1MSdGzIcR82H0a8u63xfU\n74+Yfq+oqMh7Gt9ut//oKX1+MC6uZ555RgsXLlROTo66dOmikSNH1snnOhwOzZ49W2+99Zaqq6t1\n4403qlu3bud83/XXX6+AgAD961//Unh4uG677TZNmTLFsI/VarxhRUBAQK1tNpvNMLZYLPriiy+U\nlZUlSTpy5Ij++Mc/KicnR4WFhZKk7OxstW7dWn379j1nzsrKSmVnZysyMtJwVgAAABj5fUFNTk7W\nli1blJKSoszMTAUHBys8PNzsWI1akyZN9NBDD12Uz27evLlmzJhx3u8bPHiw9wipJPXp00fr1q1T\neXm5mjVrprvvvtuwf2BgoAYNGqQPP/xQxcXFiomJ0dixY7V8+XKlpaXJYrEoJSVFubm5hvedOnXK\nsO65pKRE33777TkL6okTJzRz5kydPn1aYWFhGjFihG655Zbz/p4AADQGphfUZcuWKT09XaWlpXr5\n5Zc1YMAA1dTUSJJ69eqlxMREHTp0SK+++qr3NlPAuUycOFEDBw5UVlaWevbsqdjY2Fr73H333brq\nqqt07Ngxde3aVS1atFCfPn307bffKiAgQFdeeaUmTJhgeI/D4VB1dbXKysoknVni8Etua7VgwQId\nO3ZMklRaWqrly5dr4MCB+vTTT5WTk6PrrrtOHTt2vPAvDgBAA2Dx/HCBZwPAKX4j1sMYnc98HDp0\nSHPnzpXL5ZLD4dDUqVO1du1abd68WZJ02WWX6bHHHqt1odYPPfLII9q7d6937HA4FB8fr/3798vj\n8Sg2NlaPP/64944VvsTPhxHzYcR81MacGDEfRsyHUYNdgwqYKTExUX/9619VUVHhfWjA+PHjdf/9\n98vtdiswMPAXfU6nTp2UmprqvUtBRESEDh065L0AMDc3V//4xz+0a9cu7dixQ0FBQRo3bpzatGlz\ncb4YAAB+jIIKnIPFYqn1RCubzVbroqqfc99998lmsyk1NVVhYWG66aab9PTTTxv2yc7O1s6dO1VR\nUSHpzMVoCxYsUHBwsMrLyxUaGurdt7y8XAEBAQoI4F9hAEDDw/+7AT5gtVp17733esdut1tdunTR\njh075Ha7FRcXp9DQUG85lc5cWLV8+XKtX79eFRUVatq0qZ588km98sorOnz4sGw2mwYPHqxRo0aZ\n8ZUAALhoKKiACaxWq55//nl99NFHys3N1eDBg/Xuu+8qNTXVu09YWJjWrFmjnJwcSWeWAUyePFnZ\n2dnepQErV65U7969VVlZqcOHD+uyyy5jWQAAoN6joAImCQgI0PDhw73jhx56SCdOnFB2draCgoLU\n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\n+1q0aJFGjx5t95i2sZJHfHy8Dh06JOlyoa2urm72dbldFlSrrv5rvyO/wODGHT9+XHv37tWIESOc\nHsVx/fv318yZMzV58mR99913To/jqC1btmjEiBGB541bZevh9SQkJGj27Nl68cUXdd9992nNmjVO\nj+SohoYGVVRU6KmnntLUqVO1fft2VVVVOT2WKxQUFKhPnz4d9thTq/744w/17NlTc+bM0QsvvKBN\nmzYFtqjeioYNG6a6ujotXrxYu3fvVkJCQrNblNvlm6SubuZer9fU3K+1TE1NTYf91CkredxqrGZy\n6tQp/fjjj5o6daq6dOli54i2au06kpycrIaGBp07d65D7rq0kkdFRYW++eYbSZff7FBYWKjg4GCl\npaXZOqsdrORx5SliUlNTtXHjRtXW1nbIx43V15jw8HCFhIQoJCREycnJOnXqlG677Ta7x7VFa55D\n/vrrL9111112jeYIK3mUlpYqOztbkgK7v6uqqpSYmGjrrHaw+hwyfvz4wOUPP/ww8KbLa2mXW1AT\nExNVVVWl6upq1dfX6+DBg01eNNLS0gK7XMrKytS5c2dFRkY6MW6bs5LHrcZKJl6vV19//bUef/zx\nZs+t2xFYyePff/8NbCWsqKiQ1HGPq7OSxyuvvKJZs2Zp1qxZSk9P19ixYzvs48pKHn6/P7B+lJeX\nS1KHLKeStTz69++vkpISNTQ06OLFiyorK1NcXJxDE7c9q68zdXV1OnHiRId9rDSykkf37t117Ngx\nSZcfP1VVVc0WsvbMSh51dXWqr6+XJO3Zs0cpKSmm9z5crd2eB7WwsFBbtmyRYRgaNGiQsrOzlZeX\nJ0mBY8Y2bdqkoqKiW+I0Uy3l4ff7tWTJEp0/f14ej0dhYWF66aWXml052ruWMlm/fr0OHToUOFY5\nODhYzz33nJMjt6mW8ti5c6fy8/MVFBSk0NBQjRo1Sr169XJ46rZj5TmkUW5urtLS0jr0aaZaymP3\n7t3Ky8tTUFCQQkJCNGrUKCUlJTk8dduxsn7s2rVLe/fulcfjUWZmpgYPHuzkyG3OSib79u3T0aNH\nNWHCBCdHtUVLeZw7d065ubnyer0yDEPZ2dkdestyS3mUlpYqNzdXHo9HPXr00Lhx45o9DKTdFlQA\nAAB0TO1yFz8AAAA6LgoqAAAAXIWCCgAAAFehoAIAAMBVKKgAcIOKi4sVFBSkhoaGNr+voKCgwClr\nWqOlGefPn69p06bd7HgA8J+ioAJAK6SkpOi3335zeoz/DJ+wB8CNKKgA0Aoej+eGP/a08STVAIDm\nUVABwKJp06appKREjz76qKKiorRu3TpJ0qpVq5ScnKy4uDi9/fbbgeXnz5+vJ554QtOmTVPXrl21\nfPlyeb1ePfvss0pMTFRSUpLmzp0b2P1eVFSk4cOHq1u3boqLi9OkSZNM9//LL7+oX79+iomJ0cyZ\nMwPXG4ahhQsXKiUlRfHx8Zo+fbrpYwevdPz4cQ0fPlzR0dEaOXKkTp8+/V/HBAA3jYIKABatXLlS\nffr00YYNG+Tz+fTkk09Kknbu3KkjR47o119/1YIFC1RQUBD4mfXr12vixInyer2aMmWKZsyYodDQ\nUB09elR79+7Vzz//rC+++EKSNHfuXI0ePVrV1dUqLy/Xyy+/bLr/jRs3Ki8vT/v379fatWv1008/\nSZKWLl2q5cuXa+vWrTp27Jj8fr+pwF5pypQpuvfee1VVVaW5c+dq+fLl7OYH4DoUVAC4QY27+ufN\nm6ewsDANHDhQGRkZys/PDywzdOhQjRs3TpLk9Xq1efNmffDBB+rSpYvi4uI0a9YsrVmzRpIUGhqq\n4uJilZeXKzQ0VEOHDjXd32uvvabo6Gj17t1b//vf/wL3k5OTozlz5iglJUURERF65513tGbNmiZv\njCopKVFeXp7efPNNhYSEKDs7W48++ugNH7IAAG2FggoAN6lnz56Bf4eHh8vv9wcuX/l59SdOnNDF\nixeVkJCgmJgYxcTE6IUXXlBlZaUk6b333pNhGLrvvvs0YMAALV261NL9VFRUKDk5OfC9Pn366NKl\nSzp16pTp5//++2/FxMSoS5cugeuu/DkAcItOTg8AAO1Ja3eHX7l87969FRYWpqqqKgUFNd0+EB8f\nryVLlki6fNjAiBEjNHz4cPXt27fZ+0hMTFRxcXHgcklJiTp16qT4+HiVlJQErk9ISNCZM2d07tw5\nhYeHS7pcmoODg1v1OwFAW2MLKgC0Qnx8vI4ePXpDP5uQkKCRI0dq9uzZ8vl8amho0NGjR7V9+3ZJ\n0rp161RWViZJ6tatmzwezzWLrHT58ILGXfOTJ0/WBx98oOLiYvn9fr3xxhuaNGlSk59NTk5WVlaW\n5s2bp4sXL2rHjh3asGHDDf0uANCWKKgA0Aqvv/66Fi5cqNjYWH377bfNblH1eDxNvr9ixQpduHBB\n6enpio2N1cSJE3Xy5ElJUl5enoYMGaKoqCiNHz9eH3/8sVJSUgK3db3bfuaZZzRt2jQ98MAD6tu3\nr8LDw/XJJ5+Ylm20evVq/fnnn4qNjdWCBQs0ffr0m8oDANqCx+DoeAAAALgIW1ABAADgKhRUAAAA\nuAoFFQAAAK5CQQUAAICrUFABAADgKv8H/d84l9IP1gsAAAAASUVORK5CYII=\n" + }, + { + "output_type": "pyout", + "prompt_number": 113, + "text": [ + "" + ] + } + ], + "prompt_number": 113 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#train the best model using all of the data\n", + "rf=RandomForestClassifier(n_estimators=150, compute_importances=True, criterion=\"gini\", max_features=None)\n", + "rf.fit(X_scaled, Y)\n", + "\n", + "#predict on the test set\n", + "test_preds=rf.predict(X_test_scaled)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 23 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#write out the predictions\n", + "data_test_original = pd.read_csv(\"test_data.cleaned.csv\", sep=',')\n", + "data_test_original['members_became_friends']=map(lambda x: bool(x), test_preds)\n", + "data_test_original.to_csv(\"test_data_withpreds.csv\")" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 29 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/grouper_model.py b/grouper_model.py new file mode 100644 index 0000000..3571efa --- /dev/null +++ b/grouper_model.py @@ -0,0 +1,66 @@ +import pandas as pd +import numpy as np +import sys +import re +import itertools +import operator +from sklearn import linear_model, cross_validation, preprocessing, svm +from sklearn.ensemble import RandomForestClassifier +from sklearn.grid_search import GridSearchCV + +#read in the datasets +print "Reading in the data..." +data = pd.read_csv("training_data.cleaned.csv", sep=',') +data_test = pd.read_csv("test_data.cleaned.csv", sep=',') +#get rid of stars in column names just to make things simpler in the code +data.columns=map(lambda x: x.replace('*', ''), data.columns) +data_test.columns=map(lambda x: x.replace('*', ''), data_test.columns) + +print "Transforming the data..." +#make string and integer versions of the boolean target variable +data['became_friends_target_str']=map(lambda x: str(x), data['members_became_friends']) +data['became_friends_target_int']=map(lambda x: int(x), data['members_became_friends']) + +#construct some varialbes to hold the sign of the male/female difference in matching quantities +sign_variables = ['age', 'height', 'shoe_size', 'number_of_pets', 'weekly_workouts', 'number_of_siblings', 'facebook_friends_count', 'facebook_photos_count'] +for sign_variable in sign_variables: + data[sign_variable+'_diff_sign'] = pd.Categorical.from_array(map(lambda x: int(x), (data['m_'+sign_variable]-data['f_'+sign_variable])>0)) + data_test[sign_variable+'_diff_sign'] = pd.Categorical.from_array(map(lambda x: int(x), (data_test['m_'+sign_variable]-data_test['f_'+sign_variable])>0)) + +#filter out the target variables and some irrelevant varaibles from the ones that we're going to use to do the fit +varsToFilter = ['f_gender', 'm_gender', 'members_became_friends', 'became_friends_target_str', 'became_friends_target_int'] +fitVars=filter(lambda x: x not in varsToFilter, data.columns) + +#construct the numpy matrices for the fits +X=np.array(data[fitVars]) +X_test=np.array(data_test[fitVars]) +Y=np.array(data['became_friends_target_int']) + +#scale the continuous variables but not the categorical +varsNotToScale=filter(lambda x: True if re.search("sign", str(x))!=None else False, data.columns) +X_1=np.array(data[filter(lambda x: x not in varsNotToScale, fitVars)]) +X_2=np.array(data[varsNotToScale]) +#create a scaler so that we can scale the test set with the same parameters +scaler = preprocessing.StandardScaler().fit(X_1) +X_1_scaled=scaler.transform(X_1) +X_scaled=np.column_stack((X_1_scaled, X_2)) + +#do the same for the test set +X_test_1=np.array(data_test[filter(lambda x: x not in varsNotToScale, fitVars)]) +X_test_2=np.array(data_test[varsNotToScale]) +X_test_1_scaled=scaler.transform(X_test_1) +X_test_scaled=np.column_stack((X_test_1_scaled, X_test_2)) + +print "Fitting the model..." +#make our random forest classifier and train the best model using all of the data +rf=RandomForestClassifier(n_estimators=150, compute_importances=True, criterion="gini", max_features=None) +rf.fit(X_scaled, Y) + +print "Predicting..." +#predict on the test set +test_preds=rf.predict(X_test_scaled) + +print "Writing results..." +data_test_original = pd.read_csv("test_data.cleaned.csv", sep=',') +data_test_original['members_became_friends']=map(lambda x: bool(x), test_preds) +data_test_original.to_csv("test_data_withpreds.csv") diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..af910b5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,9 @@ +ggplot==0.4.2 +numpy==1.8.0 +pandas==0.12.0 +python-dateutil==2.2 +pytz==2013.8 +scikit-learn==0.14.1 +scipy==0.13.2 +six==1.4.1 +wsgiref==0.1.2 diff --git a/test_data_withpreds.csv b/test_data_withpreds.csv new file mode 100644 index 0000000..9f2803b --- /dev/null +++ b/test_data_withpreds.csv @@ -0,0 +1,500 @@ +,f_gender,f_age,f_height,f_shoe_size*,f_number_of_pets*,f_platinum_albums*,f_weekly_workouts*,f_number_of_siblings*,f_pokemon_collected*,f_facebook_friends_count,f_facebook_photos_count,m_gender,m_age,m_height,m_shoe_size*,m_number_of_pets*,m_platinum_albums*,m_weekly_workouts*,m_number_of_siblings*,m_pokemon_collected*,m_facebook_friends_count,m_facebook_photos_count,members_became_friends +0,female,27,67,5.0,7.5,7.5,8.0,7.0,7.5,333,457,male,25,72,5.5,8.0,7.5,8.0,7.5,7.5,884,601,False +1,female,23,68,6.5,8.0,7.5,8.0,7.5,7.0,1346,412,male,25,72,6.5,7.5,8.0,7.5,7.5,7.5,831,491,True +2,female,25,68,5.5,8.0,7.5,7.5,8.0,7.0,284,229,male,26,69,5.5,7.5,7.0,8.0,7.5,7.0,427,230,False +3,female,23,67,6.5,7.5,7.5,8.0,7.0,7.0,1418,230,male,26,74,6.0,7.5,6.5,7.0,7.5,7.5,2137,205,True +4,female,29,69,5.5,7.5,7.5,7.5,8.5,7.5,705,135,male,30,71,6.0,8.0,7.5,8.0,7.5,7.5,454,263,True +5,female,28,67,7.0,8.0,6.5,7.5,7.5,7.5,1881,230,male,34,75,6.0,7.5,7.5,7.5,8.0,7.5,71,15,False +6,female,28,66,5.5,7.5,7.5,8.0,7.5,7.5,785,407,male,30,74,7.5,8.5,7.5,8.5,8.5,7.5,1829,439,True +7,female,24,69,5.0,7.0,7.5,7.5,7.5,7.5,633,583,male,26,69,5.0,8.5,7.5,8.0,7.0,7.5,974,405,False +8,female,25,65,6.5,8.0,7.5,8.0,8.0,7.5,1372,594,male,25,73,4.0,7.5,6.5,8.0,8.0,7.5,809,556,False +9,female,23,67,5.5,7.5,7.0,7.5,7.5,7.5,1036,543,male,23,69,6.0,7.5,7.0,8.0,7.0,7.0,722,225,False +10,female,24,64,6.5,8.0,7.5,7.5,8.0,7.5,1401,548,male,24,69,8.0,7.5,8.0,8.0,8.0,7.5,1264,478,True +11,female,25,63,3.5,7.5,7.0,7.5,8.5,7.5,1234,168,male,30,68,6.0,7.5,7.5,7.5,7.5,7.5,250,170,True +12,female,24,67,6.0,7.5,7.5,7.5,8.0,7.5,763,533,male,25,75,6.0,7.5,7.5,7.5,7.0,7.5,689,495,False +13,female,25,61,7.5,8.0,7.5,8.0,8.0,7.5,800,441,male,24,73,6.0,8.0,7.5,7.5,7.5,7.5,989,362,True +14,female,26,63,6.0,8.0,7.5,8.0,8.5,8.0,766,153,male,30,67,6.0,8.0,7.5,7.5,7.5,7.5,939,410,True +15,female,24,71,5.0,7.5,7.5,8.0,7.5,7.5,794,635,male,23,72,5.5,8.0,7.5,8.0,7.5,7.5,560,400,False +16,female,26,66,6.5,8.0,7.5,8.0,7.0,7.5,1737,530,male,23,75,5.5,7.5,7.5,7.5,8.0,7.5,958,652,True +17,female,26,69,5.5,7.5,7.5,7.5,7.5,7.5,1348,599,male,27,69,5.5,7.5,7.5,8.0,7.5,7.5,1219,400,True +18,female,26,70,6.0,7.5,7.5,8.0,7.5,7.5,379,286,male,27,68,5.5,8.0,7.0,8.0,8.5,7.5,588,228,False +19,female,26,64,7.5,7.5,7.5,7.5,7.5,7.5,2325,230,male,24,71,5.0,7.5,7.5,7.5,7.5,7.5,795,230,True +20,female,24,68,6.0,7.5,7.5,8.0,7.0,7.5,1079,412,male,24,75,6.5,8.0,7.5,8.0,7.5,7.5,1556,483,True +21,female,26,63,6.0,7.5,7.5,7.5,7.0,7.5,835,230,male,27,74,7.0,7.5,7.5,7.5,7.0,7.5,541,230,True +22,female,24,63,7.5,8.0,7.5,8.0,7.5,7.5,962,228,male,26,72,7.0,8.0,7.5,8.5,8.0,7.5,1461,230,True +23,female,25,65,5.5,8.0,7.5,8.0,7.0,7.0,847,230,male,25,73,4.0,8.0,7.0,8.0,7.5,7.5,811,262,False +24,female,24,64,6.0,8.0,7.5,7.5,8.0,7.5,1001,422,male,23,74,5.5,7.5,7.5,8.0,8.0,7.5,727,417,True +25,female,23,64,6.0,8.0,7.5,8.0,8.5,7.5,868,449,male,26,74,6.5,7.5,7.5,7.5,7.5,7.5,858,488,False +26,female,23,64,5.5,7.5,7.0,7.5,7.0,7.0,1518,216,male,25,68,4.5,8.5,7.0,8.5,8.0,8.0,937,245,False +27,female,26,70,5.5,7.5,7.5,7.5,7.5,7.5,1299,424,male,26,70,5.5,8.0,7.5,8.0,7.5,7.5,831,472,False +28,female,27,69,5.0,7.5,7.5,7.5,7.0,6.5,521,338,male,26,69,6.0,8.0,7.5,7.5,7.5,7.5,942,338,False +29,female,25,65,7.5,7.5,7.5,8.0,7.5,7.5,883,230,male,30,73,7.0,8.0,7.0,8.0,7.0,7.0,304,116,False +30,female,25,64,6.0,7.5,7.5,7.5,8.5,7.5,1065,410,male,25,72,6.5,7.5,7.5,7.5,7.5,7.5,1245,691,True +31,female,23,62,5.5,7.5,7.0,8.0,7.0,7.5,1102,230,male,23,72,5.5,8.0,7.5,8.0,8.5,7.5,1273,432,False +32,female,23,67,5.5,8.0,8.0,7.5,8.5,7.5,1370,410,male,25,67,6.0,8.0,7.5,8.0,8.5,7.5,1020,455,True +33,female,24,66,4.5,7.5,7.0,7.5,7.0,7.0,550,430,male,27,74,4.0,8.0,6.5,7.5,7.0,7.0,827,556,False +34,female,23,64,8.0,7.5,7.5,7.5,7.5,7.5,1380,440,male,23,70,6.0,8.0,7.5,8.0,7.5,7.5,886,406,True +35,female,24,67,5.5,8.0,7.0,8.0,7.0,7.0,803,230,male,23,72,5.5,7.0,7.5,8.0,7.0,7.0,1163,374,True +36,female,25,65,5.0,7.5,7.5,7.5,7.5,7.5,1479,627,male,28,71,5.0,7.5,7.5,7.5,7.5,7.5,752,350,False +37,female,24,64,5.0,7.5,7.5,7.5,8.0,7.5,1166,385,male,27,74,5.5,8.0,7.5,8.0,8.0,7.5,337,214,False +38,female,24,69,6.0,8.0,7.5,8.0,7.5,7.5,1362,229,male,25,71,5.0,8.5,7.5,8.0,7.5,7.5,708,230,False +39,female,29,69,5.0,8.0,7.5,8.0,8.0,7.5,1191,230,male,34,70,5.5,8.0,7.5,8.0,8.5,7.5,511,161,False +40,female,23,65,6.0,7.5,6.5,7.5,7.0,7.0,1625,573,male,28,68,5.5,8.0,7.0,8.0,7.0,7.0,2031,405,True +41,female,26,64,5.5,7.5,7.0,7.0,7.0,7.5,608,217,male,27,71,5.5,7.5,7.0,7.5,7.5,7.5,374,131,False +42,female,23,70,5.5,8.0,7.5,7.5,8.0,7.5,951,474,male,24,74,6.0,8.0,7.0,8.0,7.5,7.5,1546,493,True +43,female,24,62,5.5,8.0,8.0,8.0,8.0,7.5,1445,510,male,26,74,7.0,8.0,7.0,8.0,7.5,7.5,1117,189,True +44,female,25,67,5.5,8.0,7.5,7.5,8.0,7.5,1258,520,male,25,74,6.5,7.5,7.5,7.5,7.5,7.5,882,454,True +45,female,23,64,6.0,8.0,7.0,8.0,7.5,7.0,845,216,male,24,70,5.5,7.5,7.0,7.5,7.5,7.0,873,229,False +46,female,28,63,6.5,8.0,8.0,8.0,7.5,7.5,1329,408,male,29,70,6.0,8.5,7.5,8.5,8.0,7.5,823,301,True +47,female,26,66,5.5,8.0,7.0,7.5,7.0,7.5,273,449,male,27,71,6.0,7.5,7.0,7.5,6.0,7.0,227,394,False +48,female,25,64,5.5,7.5,7.5,7.5,7.5,7.5,820,228,male,27,73,4.5,8.5,7.0,8.5,7.5,7.5,620,206,False +49,female,26,68,6.0,7.5,7.5,7.5,7.5,7.5,413,230,male,26,72,7.0,7.5,7.5,7.5,7.5,7.5,1019,216,False +50,female,23,67,6.0,8.0,7.5,8.0,7.5,7.5,653,229,male,22,71,6.0,7.5,7.0,7.5,8.0,7.5,372,114,False +51,female,27,60,6.0,8.0,7.5,8.0,7.0,7.0,427,363,male,27,76,5.5,8.5,7.5,8.5,7.5,7.5,592,511,False +52,female,25,62,6.0,7.5,7.5,8.0,7.5,7.0,742,401,male,25,70,6.0,8.5,7.5,8.5,8.0,7.5,2181,547,True +53,female,23,62,6.5,8.0,7.0,7.5,7.5,7.5,1306,230,male,23,74,6.5,7.5,7.0,7.5,7.0,7.0,1023,230,False +54,female,25,63,6.0,8.0,7.5,8.0,7.0,7.5,825,404,male,28,70,5.5,7.5,7.5,8.0,7.0,7.0,208,129,False +55,female,22,64,6.0,8.5,7.0,7.5,7.5,7.5,1675,230,male,23,70,6.0,7.5,7.5,7.5,8.0,7.5,1295,331,True +56,female,25,64,5.5,7.5,7.5,7.5,7.5,7.5,508,230,male,23,67,5.0,7.5,7.5,7.5,8.0,7.5,1233,228,False +57,female,23,67,5.5,7.5,7.5,7.5,7.5,7.5,1724,409,male,25,76,6.5,7.5,7.5,8.0,7.0,7.0,579,166,True +58,female,28,65,7.0,7.0,7.0,7.0,7.0,7.0,2115,474,male,35,72,6.0,7.5,7.5,7.5,8.0,7.5,705,20,False +59,female,26,67,6.0,8.0,7.5,8.5,8.0,7.5,1612,230,male,30,69,5.5,8.0,8.0,8.5,8.0,8.0,1457,230,True +60,female,28,64,6.5,7.5,7.5,7.5,7.5,7.5,995,425,male,31,69,6.5,8.0,7.5,8.0,7.5,7.5,401,427,True +61,female,27,61,6.0,7.5,7.5,7.5,7.5,7.5,984,230,male,26,72,6.0,7.5,7.5,8.0,7.5,7.5,553,75,True +62,female,24,65,6.5,7.5,7.0,8.0,6.5,7.0,295,230,male,26,73,6.0,8.0,7.5,7.5,8.0,7.5,1332,479,True +63,female,25,66,5.0,8.0,7.5,7.5,7.0,7.0,258,544,male,24,70,5.5,7.5,7.5,8.0,7.5,7.5,843,454,False +64,female,23,67,7.0,8.0,7.5,8.0,8.0,7.5,1430,396,male,25,71,6.0,7.5,7.5,7.5,7.5,7.5,1317,382,True +65,female,23,72,7.5,7.5,7.5,7.5,7.5,7.5,3349,230,male,24,74,6.5,7.5,7.5,7.5,7.5,7.5,978,230,True +66,female,26,65,5.5,7.5,7.0,7.5,7.5,7.5,900,558,male,26,71,6.5,7.5,7.0,8.0,7.5,7.5,725,451,False +67,female,24,61,7.0,7.5,7.0,8.0,7.5,7.0,543,522,male,28,71,7.0,7.5,7.0,7.5,7.5,7.5,923,472,True +68,female,23,65,5.5,8.0,7.5,8.0,7.5,7.5,990,229,male,23,71,5.5,8.0,7.5,8.5,8.0,7.5,889,229,False +69,female,22,69,6.0,8.0,7.5,7.5,7.5,7.0,1523,230,male,24,74,7.0,8.0,7.5,8.0,7.5,7.5,700,359,False +70,female,22,67,5.5,8.0,7.0,7.5,7.5,7.5,768,229,male,27,70,6.0,7.5,8.0,6.5,7.0,7.5,654,229,True +71,female,26,64,6.5,8.0,7.5,8.0,7.5,7.5,698,402,male,30,70,7.5,7.5,7.5,7.5,7.5,7.5,684,414,True +72,male,28,72,7.0,7.5,7.5,8.0,7.5,7.5,1079,229,male,25,68,7.0,7.5,8.0,8.0,7.0,7.5,1239,229,True +73,female,26,66,6.0,7.5,7.0,8.0,7.5,7.5,1221,408,male,26,74,5.5,7.5,7.5,8.0,7.5,7.5,281,24,True +74,female,22,67,5.0,8.0,7.5,7.5,8.0,7.5,596,475,male,25,70,5.0,7.5,6.5,8.0,7.5,7.5,222,423,False +75,female,25,63,6.0,8.0,7.5,8.0,7.0,7.5,734,229,male,25,69,5.5,8.5,7.5,8.5,7.5,7.5,822,230,False +76,female,28,67,7.0,8.0,6.5,7.5,7.5,7.5,1881,230,male,26,72,7.5,6.5,7.5,7.0,7.0,7.5,1406,230,True +77,female,25,67,7.0,7.5,7.5,7.5,6.5,7.0,407,230,male,28,73,6.0,8.0,7.5,8.0,9.0,7.5,652,386,False +78,female,24,65,5.0,8.0,7.5,8.0,8.5,7.0,1196,397,male,25,67,5.5,7.5,7.0,7.5,7.0,7.5,765,59,True +79,female,23,65,7.0,8.0,7.5,8.0,7.5,7.5,890,381,male,30,71,7.5,7.5,7.5,7.5,7.5,7.5,839,62,True +80,female,27,64,4.5,7.5,7.0,7.5,7.5,7.5,572,216,male,26,69,5.5,7.5,7.5,8.0,8.0,7.5,1367,430,True +81,female,24,66,6.0,7.5,7.5,8.0,7.0,7.0,591,230,male,26,73,6.0,8.0,7.5,8.0,7.0,7.5,734,226,False +82,female,23,67,7.0,8.0,7.0,8.0,8.0,7.5,930,230,male,28,73,6.5,7.5,8.0,8.0,8.5,8.0,2801,386,False +83,female,27,67,5.5,8.0,7.5,7.5,7.5,7.5,1162,478,male,30,72,5.0,7.5,7.5,7.5,8.0,7.5,422,65,False +84,female,25,71,6.0,7.5,7.5,7.5,8.0,7.5,740,322,male,30,72,5.5,7.5,7.5,7.5,7.5,7.5,1143,229,True +85,female,23,64,6.0,7.5,8.0,8.0,7.5,7.5,1629,230,male,23,72,6.5,7.5,7.5,8.0,8.0,7.5,473,131,True +86,female,23,69,7.5,7.5,8.0,7.5,7.5,7.5,1277,225,male,25,69,5.5,8.5,7.5,8.5,7.5,7.5,822,230,True +87,female,26,69,6.5,7.5,7.5,7.5,7.5,7.5,803,486,male,29,73,6.5,7.5,7.5,7.5,7.5,8.0,467,438,False +88,female,27,70,6.0,8.0,7.5,7.5,7.5,7.5,910,483,male,28,69,4.5,7.5,7.5,7.5,7.5,7.5,948,113,False +89,female,27,67,6.0,7.5,7.0,8.0,7.5,7.5,1185,230,male,25,70,5.5,7.5,8.0,8.0,8.0,7.5,1183,218,True +90,female,23,70,6.5,8.0,7.5,8.0,7.5,7.5,998,230,male,24,75,5.0,8.0,7.5,8.0,7.5,7.5,993,228,False +91,female,27,64,5.0,7.5,7.5,8.0,7.5,7.5,563,218,male,26,70,5.0,7.5,7.5,7.5,7.5,7.5,644,65,False +92,female,25,68,5.0,8.0,7.5,7.5,8.0,7.5,923,479,male,26,71,6.5,8.0,7.5,8.0,8.0,7.5,768,110,False +93,female,25,64,5.5,7.5,7.5,7.5,8.0,7.5,939,465,male,27,72,7.0,8.0,7.0,8.0,8.0,7.5,401,433,True +94,female,22,67,5.5,6.5,8.0,6.5,7.5,7.5,735,229,male,24,74,5.0,7.5,7.0,7.5,7.5,7.0,401,133,False +95,female,26,61,6.5,7.5,7.5,7.5,7.5,7.5,1248,670,male,25,68,5.0,7.5,7.5,7.5,7.5,7.5,701,26,True +96,female,27,73,5.5,7.5,7.5,7.5,7.5,7.5,969,451,male,25,74,6.5,7.5,7.5,8.0,7.5,7.5,1372,230,False +97,female,27,73,7.0,7.5,7.5,7.5,7.5,7.5,777,318,male,35,77,6.0,7.5,7.5,7.5,7.0,7.0,1092,423,True +98,female,23,65,5.0,7.5,7.5,7.5,7.0,7.0,508,429,male,26,72,6.0,8.0,7.5,7.5,7.0,7.5,708,229,False +99,female,24,72,5.5,7.5,7.5,7.5,7.5,7.5,1022,230,male,26,74,5.0,7.5,7.5,8.0,7.5,7.5,311,124,False +100,female,25,65,6.0,8.0,7.5,8.0,7.5,7.5,709,491,male,23,74,6.0,8.0,7.5,8.0,8.0,7.5,734,423,True +101,female,26,60,4.5,7.5,7.5,8.0,7.0,7.5,404,345,male,28,70,5.5,7.5,7.0,7.5,7.0,7.5,289,111,False +102,female,28,70,5.0,8.0,8.5,8.0,7.5,7.0,1006,394,male,31,70,5.0,7.5,6.5,7.5,7.5,7.5,1273,386,True +103,female,26,67,6.5,8.0,7.0,7.5,8.0,7.5,361,230,male,28,69,5.5,7.5,7.0,7.5,8.0,7.5,1158,227,False +104,female,24,68,5.5,8.0,7.5,7.5,7.0,7.0,411,221,male,23,74,6.0,8.0,7.5,8.0,8.0,7.5,1204,226,False +105,female,24,64,6.5,8.0,7.5,7.5,7.5,7.5,1324,221,male,27,72,5.5,8.0,7.5,8.0,7.5,7.5,1448,227,True +106,female,25,62,6.0,8.0,7.5,8.0,7.5,7.0,648,541,male,25,68,5.5,8.5,8.0,8.0,8.0,7.5,980,355,True +107,female,23,64,5.5,7.5,7.5,8.0,7.0,7.0,1136,491,male,23,66,6.0,7.5,7.5,7.5,7.0,7.5,1688,427,False +108,female,23,66,5.5,7.5,7.0,7.5,7.5,7.0,1316,230,male,23,66,4.5,7.5,7.5,8.0,7.0,7.0,1147,423,True +109,female,25,64,6.0,8.0,7.0,8.5,7.5,7.5,1132,460,male,28,70,7.0,8.0,7.5,8.0,8.5,7.5,487,146,False +110,female,24,61,5.5,7.5,7.5,7.5,7.5,7.5,2115,230,male,24,70,6.0,7.5,7.5,7.5,7.5,7.5,688,206,True +111,female,26,64,6.5,7.5,7.5,8.0,8.0,7.5,1482,230,male,29,73,5.0,8.0,7.0,7.5,8.5,8.0,383,45,False +112,female,23,62,5.0,7.5,7.5,7.5,7.5,7.5,469,229,male,23,72,5.5,7.5,7.5,7.5,7.5,7.5,535,255,False +113,female,25,65,6.5,7.5,7.5,7.5,7.5,7.0,422,88,male,27,74,5.5,7.5,7.5,7.5,7.5,7.5,1731,402,True +114,female,22,68,6.5,7.5,7.5,8.0,7.5,7.5,1719,230,male,25,71,7.0,7.0,7.0,7.0,7.0,7.0,465,179,False +115,female,21,67,6.0,8.0,7.0,8.0,7.0,7.0,742,230,male,24,68,5.5,8.0,7.0,8.5,7.5,7.0,679,229,False +116,female,25,65,6.0,8.0,7.5,7.5,7.0,7.0,224,230,male,24,71,6.0,8.0,7.0,8.0,7.0,7.0,1197,230,False +117,female,29,70,5.0,7.5,7.5,7.5,7.0,7.5,1336,317,male,34,70,4.5,7.5,7.5,7.5,8.0,7.5,854,460,False +118,female,25,66,6.5,8.0,7.0,7.5,7.5,7.0,634,404,male,24,70,6.0,8.5,7.0,8.0,7.0,7.5,1299,402,True +119,female,25,67,5.5,8.0,7.5,7.5,7.5,7.5,810,183,male,25,71,4.5,7.5,7.5,7.5,7.5,7.0,1441,285,True +120,female,26,66,7.0,7.5,7.5,7.5,8.0,7.5,2450,230,male,29,73,7.5,7.5,7.5,7.5,7.5,8.0,1269,213,True +121,female,27,66,5.0,7.5,7.0,7.5,6.5,7.0,752,190,male,24,72,6.0,8.0,7.0,8.0,7.5,7.5,865,413,True +122,female,25,63,6.5,7.5,7.5,7.5,7.5,7.5,582,338,male,25,73,6.5,7.5,7.5,7.5,7.5,7.5,489,187,False +123,female,27,66,6.5,7.5,7.5,7.5,7.5,7.5,2250,230,male,32,72,5.0,7.5,7.5,7.5,7.5,7.0,1914,226,True +124,female,23,68,5.0,8.0,7.5,7.5,7.0,7.5,367,426,male,29,77,5.0,8.0,7.0,7.5,7.5,7.5,412,202,False +125,female,28,65,6.0,7.5,7.5,8.0,7.0,7.0,837,434,male,25,71,6.0,7.5,7.5,7.5,7.0,7.0,687,180,True +126,female,26,67,7.0,8.0,7.5,8.0,7.5,7.5,1424,401,male,25,69,7.0,8.5,7.5,8.5,7.5,7.5,1034,230,True +127,female,22,66,6.5,8.0,7.5,7.5,7.5,7.5,1092,209,male,24,69,5.5,7.5,7.5,8.0,8.5,7.5,793,230,False +128,female,25,68,6.0,7.5,7.0,7.5,7.0,7.5,895,519,male,29,70,6.5,7.5,7.5,7.5,7.5,7.5,701,111,False +129,female,25,62,6.0,8.0,7.5,8.0,7.5,7.5,1071,491,male,26,71,5.5,8.0,8.0,8.0,7.5,7.5,1336,536,True +130,female,27,63,6.0,7.5,6.5,7.0,7.0,7.0,998,230,male,27,70,7.0,7.5,8.0,7.0,7.0,7.5,2235,229,True +131,female,24,66,4.5,8.0,7.5,7.5,7.5,7.5,901,511,male,25,69,4.0,8.0,7.0,7.5,8.0,7.5,572,354,False +132,female,25,64,6.5,7.5,7.0,7.5,8.0,7.0,759,407,male,24,74,6.0,8.0,7.5,8.0,8.0,7.5,670,389,True +133,female,24,62,6.5,7.5,7.5,7.5,7.5,7.5,1083,495,male,25,73,6.0,8.0,7.5,8.0,7.5,7.5,997,460,True +134,female,27,66,5.5,8.0,7.0,7.5,7.5,7.5,572,230,male,27,70,6.0,8.0,7.5,7.0,8.0,8.0,701,508,False +135,female,24,69,5.5,7.5,7.5,8.0,7.5,7.5,855,473,male,24,68,6.0,8.0,7.0,8.0,7.0,7.5,868,403,False +136,female,23,62,4.5,8.0,7.0,8.5,7.0,7.0,582,230,male,25,72,5.0,7.5,7.0,7.5,7.5,7.0,807,452,False +137,female,23,66,5.5,8.0,7.5,8.0,7.5,7.5,861,400,male,24,72,6.0,8.0,7.5,7.5,7.5,7.5,954,248,False +138,female,26,62,6.0,8.0,7.5,8.0,7.0,7.5,620,30,male,28,68,6.0,8.0,7.5,8.0,8.0,7.5,1373,230,True +139,female,29,67,6.5,7.5,7.5,7.5,7.0,7.5,510,415,male,32,74,6.5,8.0,7.5,8.0,8.0,8.0,2091,462,True +140,female,27,62,6.0,7.5,7.5,7.5,7.5,7.5,919,401,male,31,73,5.0,7.5,7.5,7.5,7.5,7.5,1066,198,True +141,female,25,63,7.0,7.5,7.5,7.5,8.5,7.5,1572,439,male,26,73,5.0,8.0,7.5,8.0,8.0,7.5,1163,402,True +142,female,26,67,5.0,7.5,7.5,7.5,7.0,7.0,947,429,male,29,73,4.5,7.5,7.5,8.0,7.0,7.5,489,202,False +143,female,24,66,5.0,8.0,7.5,8.0,8.0,7.5,765,229,male,29,67,5.5,7.5,7.5,7.5,8.5,7.5,1624,573,False +144,female,28,63,6.5,8.0,7.5,7.5,7.5,7.5,762,505,male,33,70,7.0,8.0,7.5,8.0,8.5,7.5,1689,440,True +145,female,25,64,5.5,7.5,7.0,7.5,8.5,7.5,620,227,male,27,72,5.5,7.5,7.5,7.5,8.5,7.5,682,228,False +146,female,24,64,7.5,8.0,7.5,8.0,8.0,7.5,1199,453,male,23,72,6.0,8.0,7.5,7.5,7.5,7.0,1064,391,True +147,female,24,68,6.5,7.5,7.5,8.0,8.0,8.0,1215,738,male,25,71,6.0,7.5,7.5,7.5,7.0,7.5,1024,732,False +148,female,23,65,6.0,8.0,7.5,7.5,7.5,7.0,986,474,male,24,72,6.0,8.0,7.0,8.0,8.0,7.5,751,256,True +149,female,23,64,6.5,7.5,7.5,7.0,8.0,7.5,846,230,male,23,72,6.5,7.5,7.5,7.5,7.5,7.0,269,33,False +150,female,28,65,6.0,7.5,7.5,8.0,7.0,7.0,1278,471,male,28,72,5.5,7.5,7.5,8.5,8.5,7.5,810,200,True +151,female,23,66,6.0,7.5,7.0,8.0,7.0,7.0,754,400,male,24,71,6.0,8.0,7.0,8.0,7.0,7.5,1032,156,True +152,female,26,64,8.0,8.0,7.0,8.0,7.0,7.0,824,61,male,26,72,6.5,8.0,7.5,8.0,7.5,7.5,946,430,True +153,female,25,65,6.5,8.0,7.0,8.0,7.5,7.5,843,462,male,26,68,6.0,8.0,7.5,8.0,7.5,7.5,516,426,False +154,female,25,71,4.5,8.0,7.5,7.5,8.5,7.5,1426,453,male,24,70,6.0,8.0,7.5,7.5,8.5,7.5,669,266,False +155,female,27,63,6.0,8.0,7.0,8.0,8.0,8.0,974,372,male,25,69,5.0,7.5,7.5,7.5,7.0,7.0,1172,230,True +156,female,24,62,6.5,8.0,7.5,8.0,7.0,7.0,660,471,male,25,72,7.0,8.0,7.5,8.0,7.5,7.0,1118,402,True +157,female,25,65,6.0,7.5,7.5,8.0,7.0,7.0,1010,400,male,26,72,6.0,8.5,7.5,8.5,7.5,7.5,441,222,True +158,female,26,65,6.0,7.5,7.0,7.5,7.5,7.5,853,456,male,26,65,3.5,8.0,7.0,8.0,7.0,7.0,809,138,True +159,female,26,62,7.5,7.5,7.5,8.0,7.5,6.5,1100,503,male,26,69,6.5,8.0,7.0,7.5,7.5,7.5,1452,210,False +160,female,25,66,4.5,8.0,7.0,7.5,7.5,7.5,575,430,male,25,77,4.0,7.5,7.0,7.5,7.5,7.5,1054,500,True +161,female,25,65,5.5,7.5,7.5,7.5,7.5,7.5,1367,541,male,23,72,5.0,8.0,7.5,8.0,8.5,7.5,1003,230,True +162,female,23,64,6.0,7.5,7.5,7.5,7.5,6.5,1016,510,male,25,72,5.5,8.0,7.5,8.0,7.0,7.5,919,390,True +163,female,24,65,6.0,8.0,7.5,8.0,7.5,7.5,1611,526,male,24,74,7.0,8.0,8.0,8.5,7.5,7.5,1021,424,True +164,female,23,64,6.0,8.0,7.5,8.0,7.5,7.0,2098,550,male,26,70,6.0,7.5,7.5,7.5,8.0,7.5,1204,224,True +165,female,27,65,6.0,7.5,7.5,8.0,8.0,8.0,1558,573,male,29,68,4.5,8.0,8.0,8.0,8.0,8.0,1638,353,True +166,female,25,63,4.5,7.5,7.5,7.5,7.5,7.5,941,298,male,29,64,4.5,7.5,7.5,7.5,7.5,7.5,1898,401,False +167,female,25,64,6.0,8.0,7.5,8.0,7.5,7.5,603,528,male,27,70,4.5,7.5,7.5,7.5,8.0,7.5,1544,102,False +168,female,25,67,5.5,8.0,7.5,8.0,7.5,7.0,897,400,male,23,75,7.0,8.0,7.5,8.0,7.5,7.5,1042,230,True +169,female,23,62,5.0,8.0,7.5,7.5,7.0,7.0,1973,417,male,24,72,6.5,7.5,7.5,8.0,8.0,7.0,1436,230,False +170,female,24,68,6.5,7.0,8.0,6.5,7.5,7.5,580,227,male,24,69,5.5,8.0,7.0,8.0,7.0,7.5,367,506,False +171,female,28,65,5.5,8.0,7.5,8.0,7.5,7.0,429,441,male,24,72,6.0,7.5,7.5,7.5,7.5,7.5,544,342,False +172,female,24,70,6.5,7.5,8.0,8.0,7.5,7.5,1296,230,male,28,66,6.0,7.5,7.5,7.5,7.5,7.0,1121,230,False +173,female,24,66,5.5,8.0,7.5,8.0,8.0,7.5,1181,430,male,25,72,5.0,7.5,7.5,7.5,7.5,8.0,454,200,False +174,female,26,68,5.5,7.5,7.0,8.0,8.0,7.5,1075,429,male,26,76,5.5,8.0,7.0,8.0,7.5,7.5,753,191,False +175,female,26,64,4.5,7.5,7.0,7.5,8.0,8.0,985,215,male,24,70,5.5,8.0,7.5,8.0,7.5,7.5,294,217,True +176,female,26,64,7.0,8.0,7.5,7.5,7.0,7.5,1096,406,male,26,73,5.5,7.5,7.5,7.5,7.5,7.5,533,18,True +177,female,22,64,4.5,7.5,7.5,8.0,6.5,6.5,1286,460,male,22,69,4.5,8.0,7.0,7.5,7.0,7.0,443,166,True +178,female,24,62,4.5,7.5,7.5,7.5,7.5,7.5,566,230,male,28,67,5.0,7.5,7.5,7.5,7.5,7.5,707,219,False +179,female,26,69,5.5,7.5,7.5,7.5,7.5,7.5,364,343,male,27,69,4.5,8.0,7.0,7.5,7.5,7.5,489,400,False +180,female,24,68,5.0,7.5,7.5,7.5,7.5,7.5,589,400,male,24,72,5.5,7.0,7.5,7.5,7.5,7.5,817,449,False +181,female,25,65,5.5,7.5,7.5,8.0,8.0,7.5,438,66,male,29,70,5.5,7.5,7.5,7.5,8.5,8.0,1551,201,False +182,female,25,64,4.0,8.0,7.0,8.0,7.5,7.0,679,630,male,32,64,4.5,7.5,7.0,8.0,7.0,7.5,497,74,False +183,female,23,68,5.5,7.5,7.5,7.5,8.5,7.5,823,460,male,24,74,7.0,7.5,8.0,8.0,7.5,7.5,743,618,True +184,female,25,67,5.5,8.0,7.5,8.0,7.5,7.5,955,605,male,25,74,5.0,8.0,7.0,8.0,7.5,7.5,393,400,False +185,female,27,61,6.0,7.5,7.0,7.5,8.0,7.5,752,237,male,31,73,5.5,7.5,7.5,7.5,8.0,7.5,568,181,False +186,female,29,65,6.5,8.0,7.0,8.0,7.0,7.5,395,136,male,25,71,6.0,8.0,7.5,8.0,8.5,7.5,838,373,False +187,female,22,64,4.5,7.5,7.5,7.5,7.5,7.5,1260,230,male,22,71,5.5,7.5,7.5,7.5,7.5,7.5,1281,230,False +188,female,25,63,5.5,8.0,7.0,8.0,8.0,7.5,756,402,male,29,68,5.0,8.0,7.0,8.0,7.5,7.5,488,404,True +189,female,23,66,6.0,7.5,8.0,7.5,8.5,7.5,1768,488,male,23,73,5.5,7.5,7.5,7.5,8.0,7.0,946,448,False +190,female,24,62,4.5,7.5,7.0,7.5,7.5,7.5,1545,537,male,28,68,4.5,7.5,7.0,7.5,7.0,7.0,512,163,False +191,female,24,68,6.0,7.5,7.5,7.5,8.5,7.5,1096,530,male,24,75,6.5,8.0,8.0,7.5,8.0,8.0,944,279,True +192,female,29,68,6.5,7.5,7.5,8.0,8.0,7.5,762,201,male,32,81,6.0,7.5,7.5,7.5,8.5,7.5,1855,203,True +193,female,28,66,4.5,7.5,7.5,8.0,7.5,7.5,1186,230,male,36,71,5.0,7.5,7.5,7.5,7.5,8.0,879,182,True +194,female,23,66,6.0,8.0,7.5,7.5,7.0,7.5,999,477,male,24,67,4.0,8.5,7.5,8.0,7.5,7.5,1313,402,False +195,female,24,65,5.0,7.5,7.5,8.0,8.5,7.5,878,226,male,26,66,6.0,7.5,7.5,8.0,8.0,7.5,2021,30,True +196,female,28,68,7.0,7.5,7.0,7.5,7.0,7.5,519,326,male,28,68,6.0,7.5,7.0,7.5,7.0,7.5,686,587,False +197,female,25,66,6.0,7.5,7.5,7.5,7.5,7.5,1066,229,male,25,72,6.0,7.5,7.5,7.5,8.0,7.5,452,212,True +198,female,25,62,5.5,7.5,7.5,7.5,7.5,6.5,530,494,male,23,67,6.0,8.0,7.5,8.0,8.0,7.5,1796,464,False +199,female,23,62,8.0,8.0,8.0,8.0,7.5,7.5,2150,501,male,26,70,6.0,8.0,7.0,7.5,8.5,7.5,1752,498,True +200,female,25,67,6.5,7.5,7.5,7.5,7.5,7.5,1427,533,male,25,77,6.5,8.0,7.5,7.5,7.5,7.5,1298,497,True +201,female,24,67,5.5,7.5,7.5,7.5,7.0,7.0,752,92,male,24,68,6.0,7.5,7.5,7.5,8.0,7.5,1024,405,True +202,female,24,61,6.0,8.0,7.5,8.0,7.5,7.5,1056,519,male,28,67,6.5,7.5,7.5,7.5,8.0,7.5,816,370,False +203,female,28,64,5.0,7.5,7.5,7.5,7.5,7.5,1029,230,male,26,66,6.0,7.5,7.5,7.5,7.5,7.5,453,221,True +204,female,22,61,4.5,7.5,7.5,7.5,8.0,7.5,992,409,male,27,70,6.0,7.0,7.5,7.0,8.0,7.5,658,337,False +205,female,23,63,6.5,8.0,7.0,8.0,7.0,7.0,391,229,male,26,70,5.5,8.0,7.0,8.0,7.0,7.5,1746,224,False +206,female,23,62,5.5,7.5,7.5,7.5,7.5,7.5,1098,225,male,23,70,5.5,7.5,7.5,7.5,7.5,7.5,1218,418,False +207,female,26,65,5.0,8.0,7.0,8.0,7.0,7.0,551,118,male,31,69,4.5,7.5,7.0,7.5,7.5,7.5,647,226,True +208,female,24,70,7.5,7.5,7.5,7.5,7.0,7.5,1506,541,male,25,74,6.0,8.5,7.5,8.0,7.5,7.5,1116,230,True +209,female,25,70,6.0,8.0,7.5,8.0,7.5,7.5,574,403,male,26,75,5.0,7.5,7.5,8.0,7.0,7.5,457,450,False +210,female,24,67,5.5,7.5,7.5,8.0,7.5,7.5,1184,427,male,25,72,5.5,8.0,7.5,8.5,8.0,8.0,2203,520,True +211,female,24,67,6.0,7.5,7.5,8.0,7.5,7.5,685,230,male,33,74,5.5,8.0,7.0,8.0,7.5,7.5,552,176,False +212,female,24,64,6.0,7.5,7.0,8.0,7.0,7.0,973,230,male,25,71,5.5,7.5,7.0,8.0,8.5,7.5,1255,234,False +213,female,24,67,6.0,7.5,7.0,7.5,7.0,7.0,866,230,male,27,70,6.5,8.0,7.0,8.0,7.0,7.0,2052,230,True +214,female,24,66,8.0,8.0,8.0,8.0,7.5,7.5,1096,492,male,24,73,6.5,8.0,7.5,8.0,7.5,7.5,1003,403,True +215,female,26,62,6.5,7.5,7.0,8.0,7.5,7.5,800,220,male,25,72,4.5,8.5,7.5,8.0,8.0,7.5,1995,230,True +216,female,23,67,6.5,7.5,7.5,8.0,7.5,7.0,1009,457,male,24,70,6.0,8.0,7.5,8.0,7.5,7.5,1747,522,True +217,female,29,64,6.0,7.5,7.5,7.5,8.0,7.5,776,228,male,28,71,7.0,7.5,7.5,7.5,7.5,7.5,160,229,False +218,female,26,74,7.0,7.5,7.5,7.5,7.5,7.5,895,470,male,27,69,6.0,7.5,7.5,7.5,7.5,7.5,633,457,False +219,female,23,64,7.5,8.0,7.5,8.0,8.0,7.5,1171,523,male,25,72,7.0,8.5,7.0,8.5,7.0,7.0,809,465,True +220,female,23,67,6.5,8.0,7.5,8.0,8.5,8.0,954,629,male,24,76,4.5,8.0,8.0,7.5,8.5,7.5,1308,342,True +221,female,24,65,5.0,8.0,7.5,8.0,7.5,7.5,626,403,male,26,73,4.5,8.5,7.5,8.0,8.0,7.5,618,378,False +222,female,29,66,6.0,7.5,7.5,7.5,7.5,7.5,623,230,male,29,70,6.0,7.5,7.5,7.5,8.0,8.0,802,229,False +223,female,23,60,6.0,7.5,8.0,7.5,7.5,7.5,1395,230,male,23,72,6.5,8.0,7.5,8.0,7.5,7.5,1183,223,False +224,female,23,66,5.0,7.5,7.5,7.5,7.5,7.5,360,65,male,23,68,4.5,7.5,7.5,7.5,8.0,7.5,2200,229,False +225,female,23,69,6.5,7.5,8.0,7.5,7.0,7.5,989,617,male,23,72,7.0,7.5,8.0,7.5,8.5,7.5,1230,224,False +226,female,25,65,6.5,8.0,7.0,8.0,7.5,7.5,843,462,male,25,73,6.5,7.5,7.5,7.5,7.5,7.5,489,187,False +227,female,28,68,5.0,8.0,7.0,7.5,7.0,6.5,325,90,male,27,71,6.5,8.0,7.0,8.0,7.5,7.5,983,429,False +228,female,23,63,6.0,8.0,7.5,8.0,7.5,7.5,1345,400,male,24,74,6.5,8.0,7.0,8.0,8.0,7.5,1253,443,True +229,female,26,67,7.0,8.5,7.0,8.0,7.0,7.0,671,478,male,26,68,7.0,8.0,7.0,8.0,7.0,7.5,1078,470,True +230,female,23,66,6.0,8.0,7.5,8.0,7.5,7.5,1035,445,male,24,70,5.5,8.0,7.5,8.0,8.0,7.5,1381,400,True +231,female,24,64,7.5,8.0,8.0,8.0,7.5,7.5,2014,447,male,26,78,7.0,7.0,7.0,7.0,7.0,10.0,1288,196,True +232,female,23,67,5.0,8.0,7.5,7.5,8.0,8.0,1203,447,male,23,68,5.0,8.0,7.5,7.5,8.0,7.5,1024,466,False +233,female,24,63,6.5,7.5,7.5,8.0,7.5,7.0,168,230,male,24,70,6.0,8.0,7.0,8.0,8.0,7.5,851,230,False +234,female,22,63,5.5,7.5,7.5,7.5,7.0,6.5,502,582,male,25,72,5.5,7.5,7.0,7.5,7.5,7.5,630,221,False +235,female,23,63,4.0,8.0,7.5,8.0,8.0,7.5,646,493,male,25,72,5.5,8.0,7.0,8.0,7.5,7.5,531,228,True +236,female,24,62,6.0,7.5,7.0,7.5,7.5,7.5,1194,524,male,24,70,4.5,8.5,7.0,7.5,7.5,7.5,577,412,True +237,female,25,68,4.5,8.0,7.0,7.5,7.0,7.5,801,400,male,26,73,5.5,8.5,7.0,8.5,7.0,7.5,347,215,False +238,female,23,66,6.5,7.5,7.0,8.0,7.0,7.0,1331,543,male,24,72,4.5,7.5,7.5,7.5,7.5,7.5,916,229,False +239,female,24,63,5.5,7.5,7.5,7.5,7.5,7.5,918,454,male,25,74,8.5,7.5,7.5,7.5,7.5,7.5,1019,207,True +240,female,27,63,5.5,7.5,7.5,7.5,7.5,7.5,699,502,male,28,74,7.0,8.0,7.5,7.5,7.5,7.5,983,430,True +241,female,25,65,4.5,7.5,6.5,8.0,7.5,7.5,1039,437,male,26,75,5.0,7.5,7.0,8.0,7.0,7.0,684,255,False +242,female,24,63,6.0,7.5,7.5,7.5,7.0,7.0,1175,487,male,22,69,7.0,7.5,7.5,7.5,7.0,8.0,843,209,True +243,female,26,65,5.5,8.0,7.0,8.0,7.5,7.5,964,228,male,32,69,5.0,8.0,7.5,8.0,7.5,7.5,1314,464,True +244,female,28,67,7.0,8.0,7.5,8.0,8.0,8.0,1520,542,male,31,73,5.5,7.5,7.5,7.5,7.5,7.5,384,129,False +245,female,25,68,5.0,8.0,7.0,8.0,7.0,7.0,1150,424,male,26,73,5.0,7.5,7.5,8.0,7.5,7.5,280,239,False +246,female,29,66,6.5,7.5,7.5,7.5,7.5,7.5,475,556,male,27,69,4.5,8.0,7.5,8.0,7.0,7.0,1341,417,True +247,female,23,67,6.5,7.5,8.0,7.5,7.0,7.0,873,488,male,25,72,6.0,8.0,7.5,7.5,8.0,7.5,600,473,False +248,female,27,67,6.0,7.5,8.0,8.0,7.5,7.5,508,405,male,28,73,6.5,7.5,8.0,8.0,8.5,8.0,2801,386,False +249,female,26,63,5.5,8.0,7.5,8.0,8.0,7.5,692,227,male,25,68,5.5,7.5,7.5,8.0,7.5,7.5,696,230,False +250,female,22,64,5.0,7.5,7.5,7.5,8.0,7.5,1706,230,male,22,72,6.0,7.5,7.5,7.5,7.5,7.5,538,230,False +251,female,27,67,6.5,7.5,7.5,7.5,7.5,7.5,1555,309,male,29,76,7.0,8.0,7.5,8.0,8.5,8.0,1660,231,True +252,female,25,67,6.0,7.5,7.5,7.5,8.0,7.5,1446,431,male,31,70,6.0,7.5,7.0,8.0,8.0,7.5,1065,441,True +253,female,25,68,6.0,8.0,7.5,8.0,7.0,7.0,582,213,male,25,76,6.5,7.5,7.5,8.0,7.0,7.5,754,224,False +254,female,28,67,6.0,7.5,7.5,7.5,7.5,7.5,909,230,male,26,70,5.5,8.0,7.5,8.0,7.5,7.5,831,472,True +255,female,25,64,5.5,8.0,7.5,8.0,7.0,7.5,782,458,male,24,70,6.0,7.5,7.5,7.5,8.0,7.5,1088,488,True +256,female,24,65,6.0,7.5,7.5,8.0,7.5,7.5,2632,230,male,25,69,5.5,7.5,7.5,7.5,8.0,7.5,393,230,True +257,female,24,60,5.5,8.0,7.5,8.0,7.0,7.5,698,227,male,26,74,5.0,7.5,7.0,7.5,7.0,7.0,580,229,False +258,female,26,62,6.0,8.0,7.5,8.0,7.0,6.5,993,703,male,23,69,4.5,8.0,7.5,7.5,8.5,7.5,608,275,True +259,female,26,66,6.0,8.0,7.5,8.0,8.0,7.5,1202,399,male,25,73,6.0,8.0,7.5,8.5,7.5,7.5,1036,519,True +260,female,26,65,5.0,7.5,7.5,8.0,7.5,7.5,498,230,male,30,71,6.0,8.0,7.5,9.0,7.5,7.5,448,217,False +261,female,28,63,5.5,8.0,7.5,8.0,8.5,7.5,1005,229,male,30,68,4.0,7.5,7.5,7.5,8.0,7.5,1044,652,True +262,female,24,67,6.0,7.0,6.5,7.0,7.0,6.5,737,400,male,27,70,6.5,8.0,7.0,8.0,7.0,7.0,2052,230,False +263,female,27,65,6.0,8.0,7.5,7.5,7.0,7.0,428,189,male,27,74,6.0,7.5,7.5,8.0,7.0,7.5,172,59,False +264,female,24,65,5.0,8.0,7.0,8.0,8.0,7.5,543,230,male,23,62,5.5,8.0,7.0,8.0,8.5,7.5,1185,220,False +265,female,25,65,6.0,7.5,7.5,8.0,7.5,7.5,790,400,male,27,70,5.5,7.5,7.5,8.0,8.0,7.5,496,189,False +266,female,24,64,7.5,8.0,7.5,8.0,8.5,7.5,1139,404,male,24,74,6.5,8.0,8.0,8.0,7.5,7.5,1055,410,True +267,female,28,67,5.5,7.5,7.5,7.5,8.0,7.5,1257,578,male,30,75,5.5,8.5,7.0,8.0,8.5,7.5,1070,213,True +268,female,23,65,5.5,7.5,7.5,7.5,8.0,7.5,1453,230,male,24,72,6.5,8.0,8.0,8.5,7.5,7.5,1105,230,True +269,female,24,67,5.5,8.0,7.0,8.0,7.0,7.0,707,411,male,23,71,5.0,7.5,7.0,7.5,7.0,7.5,717,422,False +270,female,26,68,7.0,7.5,7.0,7.5,7.5,7.0,510,90,male,28,72,7.0,7.5,7.5,7.5,7.0,7.5,886,229,True +271,female,30,67,5.5,7.5,7.5,7.5,7.5,7.5,691,652,male,30,68,4.5,7.5,7.5,7.5,7.5,7.5,533,89,False +272,female,28,69,5.5,7.5,7.5,7.0,7.0,7.5,458,95,male,27,69,5.5,7.5,7.5,7.5,7.5,7.5,327,130,False +273,female,25,67,5.5,7.5,7.5,8.0,8.5,7.5,1912,230,male,24,71,5.0,7.5,7.0,7.5,8.0,7.5,579,223,False +274,female,24,64,5.5,8.5,7.5,8.5,8.0,7.5,866,421,male,27,73,6.0,7.5,7.5,7.5,7.5,7.5,1184,230,True +275,female,28,63,8.0,7.5,7.0,7.5,7.5,7.5,673,418,male,31,70,7.0,8.0,8.0,8.0,8.5,8.0,1192,147,True +276,female,25,63,6.0,8.0,7.5,8.0,7.5,7.5,813,420,male,24,71,6.5,8.5,7.5,8.5,8.5,8.0,1513,510,True +277,female,26,64,6.5,7.5,7.5,7.5,7.5,7.5,870,456,male,32,72,7.0,8.0,8.0,8.0,8.5,7.5,869,203,True +278,female,28,65,7.0,7.5,7.5,7.5,7.5,7.5,1308,400,male,32,72,6.0,7.5,7.5,7.5,8.0,7.5,372,42,False +279,female,27,66,5.5,7.5,7.5,7.5,7.0,7.0,502,235,male,25,72,6.0,8.0,7.5,8.0,7.0,6.5,1521,422,True +280,female,26,70,6.0,8.0,7.5,8.0,8.0,7.5,1296,441,male,28,67,6.0,7.5,7.5,7.5,7.0,7.0,953,230,False +281,female,25,65,5.0,8.5,7.5,8.0,8.0,7.5,886,442,male,25,74,5.5,8.0,7.5,8.0,8.5,8.0,926,355,False +282,female,30,62,5.5,7.5,7.5,8.0,7.5,7.5,955,401,male,26,70,5.5,8.0,7.0,8.0,8.0,8.0,1164,229,True +283,female,26,67,5.0,8.5,7.0,8.0,7.0,7.0,831,633,male,27,73,6.5,8.0,7.0,8.0,7.5,7.5,574,254,True +284,female,25,69,5.0,7.5,7.5,7.5,7.0,7.5,699,500,male,27,74,5.5,7.5,7.5,7.5,7.0,7.5,852,300,False +285,female,29,64,6.0,7.5,7.5,7.5,8.0,7.5,776,228,male,25,72,5.5,7.5,7.5,7.5,8.0,7.5,658,165,False +286,female,26,64,7.0,7.0,7.0,7.0,7.0,7.0,1193,494,male,31,72,6.0,7.5,7.5,7.5,7.5,7.0,649,229,False +287,female,23,62,5.5,8.0,7.5,8.0,8.0,7.5,788,480,male,26,70,6.0,7.5,7.5,7.5,8.5,7.5,1226,274,False +288,female,29,64,5.5,7.5,7.5,8.0,7.5,7.0,466,177,male,27,70,4.5,7.5,7.0,7.5,8.5,8.0,614,124,False +289,female,24,66,6.0,8.0,7.5,8.0,7.0,7.5,630,479,male,24,70,5.5,8.0,7.0,8.0,7.5,7.0,724,217,True +290,female,24,64,6.5,7.5,7.5,7.5,7.5,7.5,288,27,male,28,73,7.0,7.5,7.5,7.5,8.0,7.5,1166,188,True +291,female,24,63,6.5,8.0,7.5,7.5,7.5,7.0,678,400,male,26,69,6.5,7.5,7.5,8.0,8.0,7.5,352,26,False +292,female,23,62,5.5,7.5,7.0,8.0,7.0,7.0,540,431,male,24,72,5.0,7.5,7.0,7.5,7.0,7.5,435,214,False +293,female,22,67,5.5,8.0,7.5,8.0,7.5,7.5,847,230,male,25,69,6.0,8.0,7.5,8.0,7.5,7.5,625,230,False +294,female,23,67,6.0,8.0,7.5,8.0,7.0,7.0,1159,431,male,23,69,5.0,8.0,7.0,8.0,7.5,7.5,722,486,False +295,female,22,64,5.5,7.5,7.0,8.0,7.5,7.0,950,558,male,23,76,5.5,7.5,7.5,8.0,7.5,7.5,696,188,False +296,female,28,61,4.0,7.5,7.5,7.5,7.5,7.0,359,525,male,30,66,4.5,7.5,7.5,7.5,7.5,7.5,616,53,False +297,female,26,64,5.5,8.0,7.0,8.0,7.5,7.5,545,484,male,24,73,4.5,8.0,7.0,7.5,8.5,7.5,1140,229,True +298,female,25,67,6.5,8.0,8.0,8.0,8.0,7.5,906,167,male,25,70,6.5,8.0,8.0,8.0,8.5,8.0,1669,373,True +299,female,26,65,5.5,8.0,7.5,8.0,7.5,7.5,618,489,male,25,68,4.0,7.5,7.5,7.5,7.5,7.5,646,315,False +300,female,24,62,6.5,8.0,7.5,8.0,7.0,7.5,339,487,male,26,69,6.5,7.5,7.5,7.5,7.5,7.5,576,209,False +301,female,23,69,5.5,7.5,7.5,7.5,7.5,7.5,730,502,male,23,68,4.5,7.5,7.5,7.5,7.0,7.5,505,129,False +302,female,24,64,6.5,7.5,7.5,7.5,7.5,7.0,1136,416,male,25,72,6.0,8.0,7.0,7.5,7.5,7.5,1290,502,True +303,female,27,67,6.5,7.5,8.0,7.5,7.5,7.5,1283,452,male,26,74,6.0,7.5,8.5,7.5,8.5,7.5,842,471,True +304,female,26,63,7.0,7.5,7.0,8.0,7.5,7.5,899,505,male,27,74,5.5,8.0,7.5,8.0,7.5,7.5,829,544,True +305,female,26,64,6.5,7.5,8.0,7.5,7.5,7.5,854,356,male,27,74,7.5,8.0,7.5,8.5,8.0,7.5,2148,420,True +306,female,27,66,5.5,8.0,7.5,8.0,8.5,7.5,714,350,male,28,71,5.5,7.5,7.5,8.0,8.0,7.5,771,101,False +307,female,26,67,6.0,7.5,7.5,7.5,7.5,7.5,1334,409,male,31,67,5.5,7.5,7.5,7.5,7.5,7.5,717,446,False +308,female,23,63,6.0,8.0,7.0,8.0,7.5,7.0,924,453,male,26,69,7.0,7.5,7.5,8.0,7.5,7.5,1559,459,True +309,female,26,70,5.5,7.5,7.5,7.5,7.0,7.0,715,230,male,27,71,6.5,7.5,7.5,7.5,8.0,7.5,622,118,False +310,female,29,67,5.5,8.0,8.0,8.0,8.0,7.5,522,322,male,32,73,5.5,8.0,8.0,8.5,7.5,7.5,779,397,True +311,female,23,66,6.5,7.5,7.5,7.5,8.5,7.0,1077,225,male,24,75,7.0,7.5,8.0,8.0,8.5,7.5,757,210,True +312,female,24,64,4.0,8.0,7.5,7.5,7.5,7.5,691,455,male,24,68,6.0,7.5,7.5,7.5,8.0,7.5,976,174,True +313,female,25,62,5.5,8.0,7.5,7.5,7.0,7.5,539,230,male,28,70,7.0,8.0,7.5,8.0,7.5,7.5,1282,230,False +314,female,22,69,6.0,7.5,7.5,7.5,7.5,7.5,1909,230,male,22,72,7.0,7.5,8.0,8.0,8.0,7.5,1482,230,False +315,female,22,66,5.5,7.5,7.5,7.5,7.0,7.0,1054,487,male,23,69,5.0,8.0,7.0,8.0,7.0,7.5,953,228,False +316,female,26,66,7.0,7.5,8.0,7.0,7.0,7.0,813,189,male,27,75,6.5,8.0,6.5,8.5,7.5,7.5,349,211,False +317,female,28,62,5.5,8.0,7.5,8.5,7.5,7.0,688,175,male,27,71,6.5,8.0,7.0,8.0,7.5,7.5,983,429,True +318,female,24,67,6.5,8.0,7.5,8.0,7.5,7.0,1047,230,male,26,72,6.0,8.0,7.5,8.0,8.5,7.5,1232,227,True +319,female,24,61,5.5,8.0,7.5,8.0,7.0,7.5,1012,466,male,24,72,5.5,8.0,7.0,8.0,8.5,7.5,654,436,True +320,female,26,67,6.5,8.0,7.5,8.5,7.5,7.5,1626,230,male,25,69,7.0,8.0,8.0,8.0,7.5,7.5,4472,229,True +321,female,23,67,6.0,8.0,8.0,8.0,7.5,6.5,973,455,male,22,68,5.5,8.0,7.0,8.0,7.0,7.0,1494,406,True +322,female,24,65,5.5,7.5,7.0,8.0,8.0,7.5,1014,430,male,31,70,4.0,7.5,7.0,7.5,7.5,7.5,298,171,False +323,female,29,65,6.0,8.5,7.5,8.0,7.5,7.5,416,221,male,32,69,6.0,8.0,7.0,7.5,8.0,7.5,717,190,False +324,female,25,67,5.0,7.5,7.5,7.5,7.5,7.5,825,405,male,25,68,5.5,7.5,7.5,7.5,7.5,7.5,373,212,False +325,female,24,65,6.5,8.0,7.5,8.0,7.0,7.5,641,596,male,26,69,5.5,8.0,7.5,8.0,7.5,7.5,1090,250,True +326,female,27,61,5.0,7.5,7.5,8.0,8.0,7.5,996,230,male,32,69,5.5,8.0,7.0,8.0,7.5,7.5,907,173,True +327,female,23,62,7.0,8.0,7.5,8.0,7.5,7.5,1277,434,male,25,75,6.0,7.5,7.5,7.5,8.0,7.5,1257,462,True +328,female,27,68,7.0,8.0,7.5,8.0,7.0,7.0,1613,871,male,26,68,4.5,8.0,7.5,8.0,8.0,7.5,872,411,False +329,female,25,63,5.5,8.0,8.0,8.0,7.5,7.5,1063,555,male,29,67,5.5,7.5,7.0,7.5,7.5,7.5,618,104,True +330,female,26,63,6.5,8.0,7.5,7.5,7.5,7.5,839,458,male,28,68,6.5,7.5,7.5,7.5,7.5,7.5,314,449,True +331,female,27,67,5.5,7.5,8.0,7.5,8.5,7.5,1939,285,male,27,74,7.0,7.5,7.0,7.5,6.5,7.0,388,214,True +332,female,24,64,5.5,7.5,7.0,7.0,7.5,7.5,1238,541,male,24,70,6.0,7.5,7.5,7.5,8.0,7.5,1088,488,True +333,female,28,63,6.0,7.5,7.0,6.5,7.0,7.0,275,187,male,31,73,6.5,7.5,6.0,7.5,7.0,7.0,228,93,False +334,female,24,65,6.0,8.0,8.0,8.0,7.5,7.5,838,442,male,26,74,6.5,8.0,7.5,8.0,8.0,7.5,882,420,False +335,female,23,67,5.5,8.0,7.5,8.0,7.5,7.0,371,230,male,26,74,5.0,8.0,7.0,8.0,7.0,7.0,472,230,False +336,female,22,66,6.5,7.5,7.5,7.5,7.0,7.0,871,230,male,24,70,5.5,8.0,7.5,7.5,7.5,7.5,1037,433,True +337,female,23,66,7.5,7.5,7.5,7.5,7.5,7.5,2232,230,male,36,69,7.0,7.5,6.0,7.0,7.0,7.0,450,120,True +338,female,24,69,7.0,8.0,7.5,8.0,8.5,7.0,964,650,male,23,72,5.5,8.0,7.5,7.5,8.0,8.0,698,81,False +339,female,25,67,6.5,7.5,7.5,7.0,7.5,7.5,702,230,male,24,73,6.5,7.5,7.5,7.5,7.5,7.5,1009,202,True +340,female,29,63,6.5,7.5,7.0,7.5,8.0,7.5,1496,634,male,29,74,5.5,7.5,8.0,7.5,7.5,7.5,798,549,True +341,female,23,68,6.0,7.5,7.0,7.5,7.0,7.0,710,230,male,23,73,7.0,7.5,7.5,7.5,7.0,7.5,757,213,False +342,female,27,64,6.0,8.0,7.5,8.0,7.5,7.5,1258,576,male,27,74,6.0,8.0,7.5,8.0,8.0,7.5,1445,241,True +343,female,23,66,7.0,7.5,8.0,8.0,8.0,7.5,1250,230,male,22,68,6.5,8.0,8.0,8.0,8.0,7.5,382,123,False +344,female,29,64,5.0,7.5,7.5,7.5,7.5,7.5,1233,442,male,32,69,7.5,8.0,8.0,8.0,7.5,7.5,564,306,True +345,female,26,72,7.5,8.0,7.5,8.0,7.0,7.5,1197,432,male,26,76,6.0,7.5,7.5,7.5,8.5,7.5,376,218,True +346,female,26,67,5.5,8.0,7.5,7.5,7.5,7.5,1068,503,male,27,71,6.0,8.0,7.5,8.0,7.5,7.0,668,437,False +347,female,25,72,6.5,7.5,7.0,8.0,7.5,7.0,730,230,male,27,70,6.5,8.0,7.0,7.5,7.5,7.5,1256,445,True +348,female,24,65,6.0,7.5,8.0,7.5,7.5,7.5,753,494,male,24,71,6.5,8.5,7.5,8.5,8.5,8.0,1513,510,True +349,female,28,65,6.5,7.5,7.5,8.0,8.5,7.5,1416,794,male,33,72,7.0,7.5,7.0,7.5,7.0,7.0,249,290,False +350,female,27,62,5.5,8.5,7.0,8.5,7.0,7.5,595,229,male,32,72,6.0,7.5,7.5,7.5,7.0,7.5,241,4,False +351,female,24,69,6.5,7.5,7.5,7.5,7.0,7.5,636,205,male,23,74,6.5,8.0,7.5,7.0,7.5,7.0,852,230,False +352,female,29,61,5.5,7.5,7.5,7.5,8.5,8.0,273,100,male,32,66,5.0,7.5,7.0,7.5,7.5,7.5,306,210,True +353,female,28,66,6.0,8.0,7.5,8.0,7.5,6.5,1067,683,male,26,71,5.5,8.0,7.5,8.0,8.0,7.5,1042,465,False +354,female,23,67,6.5,7.5,7.0,7.5,7.0,7.0,1508,230,male,32,70,5.5,7.5,7.0,7.5,7.5,7.5,333,72,False +355,female,22,65,5.5,7.5,7.5,7.5,7.5,7.0,525,230,male,22,70,5.5,7.5,7.5,7.5,7.5,7.5,1147,230,False +356,female,22,67,6.0,8.0,8.0,7.5,7.0,7.5,815,433,male,23,72,5.5,7.5,7.5,7.5,7.0,7.5,1038,403,True +357,female,28,67,6.5,7.5,7.5,8.0,7.5,7.5,1214,428,male,28,74,7.0,8.0,7.5,7.5,7.5,7.5,983,430,True +358,female,25,66,5.0,8.0,7.0,8.0,8.0,7.0,895,446,male,25,68,5.0,8.0,7.5,7.5,7.5,7.5,797,437,True +359,female,24,66,4.5,7.5,7.0,8.0,8.5,7.5,896,473,male,25,73,4.0,7.5,7.0,7.5,8.0,7.5,653,267,False +360,female,24,64,7.5,8.0,7.5,8.0,8.0,7.5,1199,453,male,25,75,6.5,8.0,7.5,8.0,8.5,8.0,1473,481,True +361,female,22,66,5.5,8.0,7.5,8.0,7.5,7.0,1364,230,male,23,72,6.0,8.5,7.5,8.0,8.0,7.5,1035,230,False +362,female,23,63,5.0,7.5,7.5,7.5,7.5,7.5,1205,230,male,25,69,6.0,7.5,7.5,8.0,7.5,7.5,793,400,False +363,female,22,65,6.0,7.5,7.5,7.5,8.0,7.5,799,230,male,23,78,4.5,8.0,7.0,8.0,8.0,7.0,457,121,False +364,female,27,64,6.0,8.0,7.5,7.5,8.5,7.5,1479,567,male,29,68,4.0,7.5,6.5,7.5,8.5,7.5,1219,12,False +365,female,26,70,5.0,8.0,7.5,8.0,8.0,8.0,1091,302,male,30,72,5.5,7.5,7.5,7.5,8.0,7.5,487,81,False +366,female,23,64,7.0,7.5,7.5,7.5,7.5,7.5,905,519,male,25,72,7.0,8.0,7.5,8.0,7.5,7.0,1118,402,True +367,female,28,63,5.5,7.5,7.0,7.5,8.0,7.5,536,223,male,28,71,6.0,7.5,7.0,8.0,7.0,7.0,726,207,False +368,female,22,65,7.0,8.0,7.5,8.0,8.0,7.0,1453,230,male,24,72,7.0,8.0,8.0,8.0,7.0,7.5,1509,324,True +369,female,24,68,6.0,8.0,7.5,8.0,8.0,7.5,1082,230,male,25,72,6.0,8.0,7.5,8.0,7.5,7.5,763,211,True +370,female,25,64,6.0,7.5,7.5,7.5,7.5,7.5,1638,449,male,26,72,6.5,8.0,7.5,8.0,8.0,7.5,1189,277,True +371,female,28,71,5.5,7.5,7.5,7.5,7.0,7.0,850,406,male,28,73,6.0,7.5,7.5,7.5,8.0,7.5,1155,230,True +372,female,27,64,7.0,8.0,7.5,7.5,8.5,8.0,1684,427,male,29,70,4.5,8.0,7.5,8.0,8.0,8.0,1398,409,True +373,female,26,65,5.5,7.5,7.0,8.0,7.0,7.0,812,423,male,29,71,5.0,8.0,6.5,8.0,7.0,7.0,868,492,False +374,female,27,69,5.0,7.5,7.5,7.5,8.0,7.5,903,230,male,27,74,5.5,7.5,7.5,7.5,7.5,7.5,1731,402,True +375,female,26,64,5.0,7.5,7.0,7.5,7.5,7.5,1539,446,male,27,68,6.0,8.0,7.0,8.0,7.0,7.5,443,75,False +376,female,26,61,7.0,7.5,7.0,7.5,7.5,7.5,1204,485,male,26,76,6.0,8.0,7.5,7.5,7.0,7.5,1146,315,True +377,female,28,70,6.0,8.0,7.5,8.0,8.0,7.5,1827,466,male,31,72,5.5,7.5,7.0,7.5,8.5,7.5,759,82,False +378,female,25,62,6.0,7.5,7.5,7.5,7.5,7.5,842,230,male,25,72,5.5,7.5,7.5,7.5,8.0,7.5,394,68,False +379,female,27,72,5.0,8.0,7.5,8.0,7.5,7.5,756,453,male,24,68,5.0,8.0,7.0,8.0,8.0,7.5,1574,543,False +380,female,26,67,4.5,7.5,7.5,7.5,7.5,7.5,1347,421,male,27,74,7.5,7.5,7.5,8.0,7.5,7.5,1455,120,True +381,female,25,70,5.5,7.5,8.0,7.5,8.0,7.5,921,584,male,26,71,5.5,8.0,8.0,8.0,7.5,7.5,477,222,False +382,female,23,66,6.0,8.0,7.5,8.0,8.0,7.5,815,463,male,23,72,5.0,7.5,7.5,8.0,8.0,7.5,1187,400,False +383,female,23,67,6.0,8.0,7.5,8.0,7.5,7.0,863,473,male,27,69,6.5,8.0,7.5,8.0,7.0,7.5,1516,490,True +384,female,29,63,6.0,8.5,7.5,8.5,8.0,7.5,301,160,male,28,74,6.5,7.5,7.5,8.0,7.0,7.5,641,440,True +385,female,26,66,6.0,8.0,7.5,8.0,7.5,7.5,1070,492,male,24,69,4.5,8.0,6.5,8.0,7.5,7.5,1168,535,True +386,female,27,65,5.5,7.5,7.0,8.0,7.0,7.0,463,465,male,26,78,7.0,7.5,7.0,8.0,7.0,7.5,1069,33,False +387,female,24,63,6.5,7.5,8.0,8.0,8.5,7.5,1268,206,male,25,66,6.0,7.5,7.5,8.0,7.0,7.5,911,228,True +388,female,27,64,6.5,8.0,6.5,7.5,7.0,7.0,949,547,male,27,72,5.5,8.5,7.0,8.0,7.5,7.0,639,510,True +389,female,27,72,4.0,8.0,7.0,8.0,7.0,7.0,576,440,male,29,72,5.5,7.5,7.0,7.5,7.0,7.0,607,202,False +390,female,25,62,6.0,7.5,7.0,7.5,7.0,7.0,615,229,male,25,73,6.0,8.0,7.5,8.0,7.5,7.5,514,229,False +391,female,25,64,7.5,7.5,7.5,8.0,8.0,7.5,1088,404,male,30,67,5.5,7.5,7.0,7.5,7.0,7.0,524,213,True +392,female,23,60,4.0,8.0,7.0,8.0,7.5,7.5,520,264,male,24,71,6.5,8.5,7.5,8.5,8.5,8.0,1513,510,False +393,female,26,68,5.5,7.5,7.5,7.5,7.5,7.0,845,475,male,27,67,5.5,7.5,7.5,7.5,7.5,7.5,757,323,False +394,female,24,65,4.5,8.0,7.5,8.0,7.5,7.5,1128,569,male,24,70,5.5,7.5,7.5,7.5,7.5,7.5,608,378,False +395,female,25,65,5.5,8.0,7.5,8.0,8.5,7.5,939,483,male,31,71,4.0,7.5,7.5,7.5,8.5,8.0,448,54,False +396,female,27,64,5.5,7.5,7.5,7.5,8.5,7.5,512,138,male,26,72,5.0,8.0,7.5,8.0,7.5,7.5,565,216,False +397,female,24,68,5.5,8.0,7.5,7.5,7.5,7.5,900,230,male,29,70,4.5,8.5,7.5,8.5,7.0,7.5,711,230,False +398,female,24,67,5.5,7.5,7.0,7.5,7.5,7.5,1056,568,male,24,72,6.5,8.0,7.0,8.0,7.5,7.5,922,308,True +399,female,25,64,4.5,7.5,7.5,7.5,7.0,6.5,511,417,male,25,67,5.5,8.0,7.5,8.0,7.0,7.5,713,397,False +400,female,23,64,4.5,7.5,7.0,8.0,7.0,7.0,703,496,male,24,74,5.0,7.5,7.5,7.5,7.5,7.5,696,229,True +401,female,24,67,5.0,7.5,7.5,7.5,7.5,7.5,810,447,male,24,69,5.0,7.5,7.5,7.5,8.0,7.5,733,201,False +402,female,22,64,6.0,8.0,7.5,8.0,8.0,7.5,952,215,male,22,73,6.5,7.5,8.0,8.0,8.0,7.5,1339,230,False +403,female,28,67,5.5,7.5,7.5,7.5,7.0,7.0,126,42,male,31,72,5.0,8.0,7.5,8.5,7.5,7.5,822,358,False +404,female,27,64,4.0,7.5,7.0,7.5,7.5,7.5,1056,406,male,28,77,5.5,8.0,7.5,8.0,7.0,7.0,693,182,True +405,female,22,66,6.5,7.5,8.0,8.0,8.5,7.5,1094,217,male,23,73,6.5,7.5,8.0,7.5,7.5,7.5,1142,477,False +406,female,29,64,6.0,8.0,7.5,8.0,7.5,7.5,773,411,male,35,77,6.0,7.5,7.5,7.5,7.0,7.0,1092,423,True +407,female,26,67,6.5,8.0,7.5,7.5,8.5,8.0,751,642,male,32,67,5.0,8.0,7.0,8.0,7.0,7.0,381,475,False +408,female,24,63,6.5,8.0,7.0,8.0,7.0,7.5,1753,501,male,25,73,6.5,8.0,7.5,8.0,7.5,7.5,1092,431,True +409,female,23,70,7.0,8.0,7.5,8.0,7.0,7.0,509,416,male,24,74,6.5,8.0,7.5,8.5,7.5,7.5,851,408,False +410,female,25,64,7.0,7.0,7.0,7.0,7.0,7.0,1464,631,male,26,70,7.0,7.0,7.0,7.0,7.0,7.0,986,191,True +411,female,27,62,6.0,7.5,6.5,7.5,6.5,7.0,548,230,male,28,68,6.0,8.0,7.0,8.0,7.0,6.5,1083,230,False +412,female,21,64,5.5,8.0,7.5,8.0,8.0,7.0,1120,401,male,24,67,5.5,7.5,7.0,7.5,7.0,7.5,580,226,False +413,female,29,66,6.0,8.0,7.5,8.0,7.0,7.0,1294,436,male,28,63,6.0,8.0,7.5,7.5,7.5,7.5,877,358,False +414,female,23,65,4.5,8.5,7.5,8.0,7.5,7.5,1712,672,male,24,76,6.0,8.5,7.5,8.5,8.0,7.5,1203,438,True +415,female,24,70,5.5,8.0,7.5,7.5,7.5,7.5,1076,442,male,27,69,5.5,7.5,7.5,7.5,7.5,7.5,1757,226,False +416,female,24,65,6.0,8.0,7.5,8.0,7.5,7.5,759,482,male,24,71,6.5,7.5,8.0,6.5,7.5,7.0,625,217,True +417,female,23,65,5.0,8.0,7.5,8.0,7.5,7.5,683,417,male,25,70,5.0,8.0,7.5,8.0,7.0,7.5,939,402,False +418,female,27,65,5.5,7.5,7.5,7.5,7.5,7.5,571,265,male,29,71,5.5,8.0,7.5,8.0,7.5,7.5,838,428,False +419,female,25,67,4.5,7.5,6.5,7.5,6.5,6.5,203,270,male,26,74,6.5,7.5,7.0,8.0,7.0,7.5,604,199,False +420,female,22,64,6.0,8.0,8.0,8.0,8.0,7.0,1416,227,male,23,70,6.5,8.0,7.5,8.0,8.5,7.5,866,230,False +421,female,25,66,5.0,7.5,7.5,7.5,8.0,7.0,1196,479,male,26,73,5.5,8.0,7.5,7.5,8.5,7.5,1229,475,True +422,female,24,64,6.5,8.0,7.5,7.5,7.5,7.5,1324,221,male,25,75,6.0,8.0,7.5,8.0,8.5,7.5,1009,230,True +423,female,23,64,5.5,8.0,7.5,7.5,8.0,7.5,771,457,male,23,68,5.5,8.0,7.5,7.5,8.5,8.0,845,499,True +424,female,27,67,6.0,7.5,7.5,8.0,7.5,7.5,1128,230,male,29,70,6.5,7.5,7.5,7.5,7.0,7.5,796,203,True +425,female,22,70,6.5,7.5,7.0,7.5,7.0,6.5,871,230,male,24,74,6.5,7.5,7.5,7.5,7.0,7.0,2911,230,False +426,female,24,65,6.0,8.0,8.0,7.5,7.5,7.0,506,123,male,27,68,5.5,7.5,7.5,7.5,8.0,7.5,214,62,False +427,female,21,65,6.5,7.5,7.5,7.5,8.0,7.5,658,428,male,23,70,6.0,8.0,7.5,8.0,7.5,7.5,1143,433,False +428,female,27,63,7.0,7.5,7.5,7.5,7.5,8.0,1004,230,male,27,70,6.5,7.5,7.5,7.5,7.5,7.5,1414,214,True +429,female,24,68,6.0,7.5,7.0,7.5,7.5,7.0,698,242,male,24,72,6.0,7.5,7.5,7.5,7.5,7.5,930,207,False +430,female,32,66,6.5,7.5,7.5,7.5,7.5,7.5,819,202,male,34,69,6.0,8.5,7.0,7.5,7.0,7.0,449,26,True +431,female,24,64,5.0,8.0,7.0,8.0,8.0,7.5,901,405,male,26,70,5.5,8.0,7.5,8.0,8.5,8.0,1357,426,True +432,female,25,66,5.5,7.5,7.0,8.0,7.0,7.5,611,142,male,24,73,6.5,8.0,7.5,8.5,8.0,7.5,1005,525,True +433,female,26,64,4.5,7.5,7.5,8.0,7.5,7.5,1348,559,male,36,72,6.0,7.5,7.5,7.5,8.0,7.5,2641,139,True +434,female,24,65,5.0,8.5,7.5,8.5,8.5,8.0,811,525,male,23,74,5.5,7.5,8.0,7.5,8.0,7.5,650,400,False +435,female,26,65,6.0,7.5,7.5,7.5,7.5,7.5,1495,507,male,27,68,5.5,7.5,7.5,7.5,8.0,7.5,1049,240,True +436,female,23,66,5.5,7.5,7.5,8.0,7.5,7.0,1614,464,male,23,72,6.0,7.5,7.5,8.0,8.5,7.0,1153,447,True +437,female,26,67,4.5,7.5,7.0,7.5,7.0,7.0,1325,563,male,25,68,5.5,8.0,7.0,8.0,7.0,7.0,879,226,True +438,female,24,67,5.0,8.0,7.5,8.0,8.0,7.0,984,487,male,25,68,6.0,8.0,7.5,8.0,7.5,7.5,1772,225,False +439,female,23,68,5.0,7.5,7.0,8.0,7.5,7.0,859,441,male,26,77,6.0,8.0,7.5,8.5,7.5,7.5,1572,414,True +440,female,23,64,7.0,8.0,7.5,8.0,7.0,7.0,984,523,male,24,76,5.0,7.5,7.5,7.5,7.5,7.5,899,406,True +441,female,23,66,4.5,8.0,7.0,8.0,8.0,7.5,547,228,male,24,69,5.5,7.5,7.5,7.5,8.5,7.5,707,203,False +442,female,24,63,7.0,7.5,7.5,7.5,8.0,7.5,2186,476,male,24,69,5.5,8.0,7.5,8.0,8.0,7.5,1345,423,True +443,female,24,69,6.0,7.5,8.0,8.0,8.0,7.5,472,498,male,25,72,6.5,8.0,7.5,8.0,7.5,7.5,605,132,False +444,female,27,68,4.5,8.0,6.5,8.0,7.5,7.5,598,458,male,28,72,5.0,8.0,7.0,8.0,7.5,7.0,877,408,False +445,female,23,69,5.5,8.0,7.5,7.5,7.5,7.5,202,218,male,26,76,5.5,7.5,7.0,8.0,7.5,7.5,646,102,False +446,female,24,65,4.5,7.5,7.0,8.0,7.5,7.0,804,265,male,24,71,5.0,8.0,7.0,8.0,7.5,7.0,550,230,True +447,female,25,67,6.0,7.5,7.5,7.5,8.0,7.5,1134,282,male,26,74,5.5,7.5,8.0,7.5,7.5,7.5,1107,425,True +448,female,25,63,5.0,8.0,7.0,7.5,7.0,7.0,872,405,male,23,75,4.5,8.0,7.5,8.0,8.0,7.5,806,402,True +449,female,27,64,6.5,7.5,7.5,7.5,7.5,7.5,2190,478,male,32,71,6.5,7.5,7.5,7.5,7.5,7.5,777,325,True +450,female,23,63,5.0,7.5,7.0,7.5,8.5,8.0,910,554,male,24,71,5.0,7.5,8.0,7.5,8.0,7.5,751,422,False +451,female,23,70,6.5,7.5,7.5,8.0,7.0,7.5,704,128,male,25,74,7.0,7.5,8.0,7.5,7.5,7.5,970,510,True +452,female,29,60,7.0,8.0,7.5,8.0,6.5,7.0,417,490,male,29,68,6.0,8.0,7.0,8.5,7.0,7.0,495,98,True +453,female,27,63,7.0,8.0,7.5,8.5,8.0,7.5,967,496,male,26,74,6.5,8.0,7.5,7.5,7.5,7.5,865,537,True +454,female,23,63,6.5,7.5,7.5,8.0,7.5,7.0,1612,498,male,22,72,7.0,7.5,7.0,7.5,8.0,7.5,936,230,False +455,female,24,66,6.5,7.5,7.5,8.0,7.5,7.5,640,403,male,28,69,6.0,7.5,7.5,7.5,8.5,7.5,716,145,False +456,female,23,63,7.0,7.5,7.5,7.5,7.5,7.5,762,432,male,23,70,7.0,7.5,7.0,7.5,7.5,7.5,1833,461,True +457,female,28,66,6.0,8.0,7.5,8.0,7.5,7.5,1762,476,male,26,74,6.5,8.0,7.5,7.5,7.5,7.5,865,537,True +458,female,24,66,8.0,8.0,8.0,8.0,8.0,7.0,1103,485,male,26,74,7.5,8.0,7.5,8.0,7.5,7.5,1119,477,True +459,female,28,65,5.5,8.0,7.5,8.0,7.5,7.5,356,231,male,30,69,4.5,8.0,7.5,8.0,8.0,7.5,797,465,False +460,female,28,67,5.5,7.5,7.5,7.5,7.0,7.5,472,224,male,30,77,5.5,7.5,7.5,7.5,7.5,7.5,1097,230,True +461,female,29,68,8.0,8.0,7.0,8.0,7.5,7.5,931,230,male,25,72,5.5,8.0,7.5,8.5,8.0,8.0,2203,520,True +462,female,25,66,5.5,7.5,7.0,8.0,8.0,7.5,1035,617,male,25,73,6.5,8.0,7.5,8.0,7.5,7.5,646,231,True +463,female,26,66,6.5,7.5,7.5,7.5,8.5,8.0,838,453,male,26,71,6.5,8.0,7.5,8.0,7.5,7.0,2050,468,True +464,female,27,63,6.0,7.5,7.5,7.5,8.0,7.5,1062,229,male,28,69,6.0,7.5,7.5,7.5,8.0,7.5,755,510,True +465,female,28,67,6.5,7.5,7.5,7.5,7.0,7.5,857,190,male,28,67,4.5,7.5,7.0,7.5,8.5,7.5,1553,420,True +466,female,24,68,5.5,7.5,7.5,7.5,7.0,7.0,911,619,male,25,70,5.0,8.0,7.5,8.0,7.5,7.5,849,75,True +467,female,25,62,6.0,7.5,7.5,7.5,8.0,7.5,1092,438,male,24,67,4.5,7.5,7.5,7.5,8.5,7.5,1154,170,True +468,female,24,66,6.0,7.5,7.5,7.5,7.5,7.5,994,481,male,25,72,5.0,8.0,7.5,7.5,7.0,7.5,393,130,False +469,female,29,63,5.0,7.5,7.0,8.0,7.5,7.5,656,718,male,32,70,5.0,7.5,7.5,7.5,8.5,8.0,1478,250,False +470,female,27,66,5.5,8.0,7.5,8.0,7.0,7.5,926,230,male,27,70,5.5,8.5,7.5,8.0,7.5,7.5,1369,230,False +471,female,27,63,7.0,7.5,7.5,7.5,8.0,7.5,1350,376,male,27,69,6.5,7.5,7.5,7.5,8.0,7.5,584,208,True +472,female,27,62,5.5,7.5,7.5,7.5,7.0,7.0,310,378,male,28,69,6.5,7.5,7.5,7.5,7.0,7.5,893,212,False +473,female,28,62,4.5,8.5,7.5,8.0,7.5,7.5,356,119,male,31,68,4.0,8.0,7.0,8.0,7.5,7.5,1515,135,False +474,female,26,65,6.0,8.0,7.5,7.5,7.0,7.5,649,444,male,26,72,4.5,8.0,8.0,8.0,8.0,7.5,1310,322,True +475,female,22,65,7.0,7.5,7.5,7.5,7.0,7.5,2968,230,male,22,71,6.0,7.5,8.0,7.5,7.5,7.5,968,230,True +476,female,25,65,5.5,8.0,7.5,7.5,8.0,7.5,1324,440,male,25,74,7.0,7.0,7.0,7.0,7.0,7.0,1191,295,True +477,female,24,68,7.5,7.5,7.5,7.5,8.0,7.5,1151,622,male,28,72,6.5,7.5,7.5,8.0,8.0,7.5,497,431,False +478,female,27,67,7.0,7.5,7.5,7.5,7.0,7.5,1416,637,male,29,70,7.0,8.0,7.5,7.5,7.5,7.5,1697,482,True +479,female,29,69,5.0,7.5,7.0,7.5,8.5,8.0,699,301,male,34,73,4.5,7.5,7.0,7.5,8.0,7.5,435,218,False +480,female,25,66,4.5,8.0,8.0,8.0,8.0,7.5,1627,418,male,23,71,5.0,8.0,7.0,8.0,7.5,7.5,674,43,True +481,female,23,62,6.0,8.0,7.5,8.0,8.5,7.5,819,640,male,26,70,5.5,7.5,7.0,7.5,7.0,7.5,132,108,False +482,female,21,65,5.0,8.0,7.0,8.0,8.0,7.0,928,229,male,23,71,5.5,7.5,7.5,8.0,8.5,8.0,1069,230,False +483,female,25,67,6.0,7.5,7.5,7.5,7.5,7.5,1623,230,male,25,72,6.0,7.5,7.5,7.5,7.5,7.5,653,223,False +484,female,25,64,5.5,7.5,7.5,7.5,8.0,7.5,483,230,male,29,73,5.5,7.5,7.5,7.5,7.5,7.5,995,214,True +485,female,28,68,6.5,8.5,7.5,8.0,8.5,8.0,868,119,male,27,68,6.0,8.0,7.5,7.5,7.5,7.5,1051,443,True +486,female,27,62,6.0,7.5,8.0,8.0,8.0,8.0,1521,230,male,29,72,5.5,8.0,8.0,7.5,7.5,7.5,422,225,True +487,female,28,66,4.0,7.5,7.5,7.5,8.0,7.5,409,137,male,29,70,4.0,7.5,7.5,7.5,8.5,7.5,1608,122,False +488,female,24,64,5.0,8.0,7.5,8.0,7.0,7.5,531,422,male,23,72,5.5,8.0,7.5,8.0,7.5,7.5,1445,228,False +489,female,24,65,5.5,7.5,7.5,8.0,7.0,6.5,904,643,male,26,72,5.0,8.0,7.0,8.0,7.0,7.5,453,49,True +490,female,26,65,6.0,8.0,7.5,7.5,7.5,7.0,1057,425,male,29,70,4.5,7.5,7.5,8.0,7.5,7.5,474,423,False +491,female,29,62,6.0,8.0,7.5,8.0,7.5,7.5,1134,590,male,30,70,5.5,8.0,7.5,8.0,8.5,7.5,851,453,True +492,female,25,69,5.0,7.5,7.5,7.5,7.5,7.0,1680,229,male,24,73,5.5,7.5,7.5,7.5,7.0,7.0,481,400,False +493,female,26,67,5.5,8.0,7.5,7.5,8.0,7.5,719,460,male,27,70,3.5,8.0,7.5,8.0,7.5,7.5,374,209,False +494,female,24,65,6.0,8.0,7.5,8.0,7.5,7.5,1611,526,male,24,71,6.0,7.5,8.0,7.5,8.0,7.5,284,57,False +495,female,25,61,5.5,7.5,7.0,7.5,7.5,7.5,1041,525,male,27,70,6.5,7.5,6.5,7.5,7.0,7.5,773,62,True +496,female,21,62,6.0,7.5,8.0,8.0,7.0,7.0,1250,229,male,23,74,6.0,8.0,7.5,8.5,7.0,7.0,1475,230,True +497,female,26,64,7.0,7.5,7.5,7.5,7.0,7.5,1018,554,male,25,69,6.5,7.5,7.5,7.5,7.5,7.5,1033,400,True +498,female,25,64,7.5,8.0,8.0,8.0,7.5,7.5,773,281,male,24,67,6.5,8.0,7.5,8.0,8.0,7.5,846,490,True