diff --git a/spark/jobs/metrics/model_quality_regression_calculator.py b/spark/jobs/metrics/model_quality_regression_calculator.py index 4c6d3318..a49f6ac1 100644 --- a/spark/jobs/metrics/model_quality_regression_calculator.py +++ b/spark/jobs/metrics/model_quality_regression_calculator.py @@ -1,10 +1,10 @@ from pyspark.sql import DataFrame -from pyspark.sql.functions import col -from pyspark.sql.functions import abs as pyspark_abs +import pyspark.sql.functions as F from models.regression_model_quality import RegressionMetricType, ModelQualityRegression from utils.models import ModelOut from pyspark.ml.evaluation import RegressionEvaluator +from utils.spark import is_not_null class ModelQualityRegressionCalculator: @@ -35,12 +35,12 @@ def __eval_model_quality_metric( # mape = 100 * (abs(actual - predicted) / actual) / n _dataframe = dataframe.withColumn( "mape", - pyspark_abs( + F.abs( ( - col(model.outputs.prediction.name) - - col(model.target.name) + F.col(model.outputs.prediction.name) + - F.col(model.target.name) ) - / col(model.target.name) + / F.col(model.target.name) ), ) return _dataframe.agg({"mape": "avg"}).collect()[0][0] * 100 @@ -79,6 +79,11 @@ def __calc_mq_metrics( def numerical_metrics( model: ModelOut, dataframe: DataFrame, dataframe_count: int ) -> ModelQualityRegression: + # # drop row where prediction or ground_truth is null + dataframe_clean = dataframe.filter( + is_not_null(model.outputs.prediction.name) & is_not_null(model.target.name) + ) + dataframe_clean_count = dataframe_clean.count() return ModelQualityRegressionCalculator.__calc_mq_metrics( - model, dataframe, dataframe_count + model, dataframe_clean, dataframe_clean_count ) diff --git a/spark/jobs/utils/current_binary.py b/spark/jobs/utils/current_binary.py index 82b1c7f5..56167e57 100644 --- a/spark/jobs/utils/current_binary.py +++ b/spark/jobs/utils/current_binary.py @@ -5,8 +5,7 @@ MulticlassClassificationEvaluator, ) from pyspark.sql import DataFrame, SparkSession -from pyspark.sql.functions import col -import pyspark.sql.functions as f +import pyspark.sql.functions as F from metrics.data_quality_calculator import DataQualityCalculator from metrics.drift_calculator import DriftCalculator @@ -20,6 +19,7 @@ from models.reference_dataset import ReferenceDataset from .misc import create_time_format from .models import Granularity +from .spark import is_not_null class CurrentMetricsService: @@ -133,7 +133,11 @@ def __calc_bc_metrics(self) -> dict[str, float]: def __calc_mc_metrics(self) -> dict[str, float]: return { label: self.__evaluate_multi_class_classification( - self.current.current, name + self.current.current.filter( + is_not_null(self.current.model.outputs.prediction.name) + & is_not_null(self.current.model.target.name) + ), + name, ) for (name, label) in self.model_quality_multiclass_classificator.items() } @@ -166,16 +170,21 @@ def __evaluate_multi_class_classification( return float("nan") def calculate_multiclass_model_quality_group_by_timestamp(self): + current_df_clean = self.current.current.filter( + is_not_null(self.current.model.outputs.prediction.name) + & is_not_null(self.current.model.target.name) + ) + if self.current.model.granularity == Granularity.WEEK: - dataset_with_group = self.current.current.select( + dataset_with_group = current_df_clean.select( [ self.current.model.outputs.prediction.name, self.current.model.target.name, - f.date_format( - f.to_timestamp( - f.date_sub( - f.next_day( - f.date_format( + F.date_format( + F.to_timestamp( + F.date_sub( + F.next_day( + F.date_format( self.current.model.timestamp.name, create_time_format( self.current.model.granularity @@ -191,13 +200,13 @@ def calculate_multiclass_model_quality_group_by_timestamp(self): ] ) else: - dataset_with_group = self.current.current.select( + dataset_with_group = current_df_clean.select( [ self.current.model.outputs.prediction.name, self.current.model.target.name, - f.date_format( - f.to_timestamp( - f.date_format( + F.date_format( + F.to_timestamp( + F.date_format( self.current.model.timestamp.name, create_time_format(self.current.model.granularity), ) @@ -210,12 +219,12 @@ def calculate_multiclass_model_quality_group_by_timestamp(self): list_of_time_group = ( dataset_with_group.select("time_group") .distinct() - .orderBy(f.col("time_group").asc()) + .orderBy(F.col("time_group").asc()) .rdd.flatMap(lambda x: x) .collect() ) array_of_groups = [ - dataset_with_group.where(f.col("time_group") == x) + dataset_with_group.where(F.col("time_group") == x) for x in list_of_time_group ] @@ -233,16 +242,21 @@ def calculate_multiclass_model_quality_group_by_timestamp(self): } def calculate_binary_class_model_quality_group_by_timestamp(self): + current_df_clean = self.current.current.filter( + is_not_null(self.current.model.outputs.prediction_proba.name) + & is_not_null(self.current.model.target.name) + ) + if self.current.model.granularity == Granularity.WEEK: - dataset_with_group = self.current.current.select( + dataset_with_group = current_df_clean.select( [ self.current.model.outputs.prediction_proba.name, self.current.model.target.name, - f.date_format( - f.to_timestamp( - f.date_sub( - f.next_day( - f.date_format( + F.date_format( + F.to_timestamp( + F.date_sub( + F.next_day( + F.date_format( self.current.model.timestamp.name, create_time_format( self.current.model.granularity @@ -258,13 +272,13 @@ def calculate_binary_class_model_quality_group_by_timestamp(self): ] ) else: - dataset_with_group = self.current.current.select( + dataset_with_group = current_df_clean.select( [ self.current.model.outputs.prediction_proba.name, self.current.model.target.name, - f.date_format( - f.to_timestamp( - f.date_format( + F.date_format( + F.to_timestamp( + F.date_format( self.current.model.timestamp.name, create_time_format(self.current.model.granularity), ) @@ -277,12 +291,12 @@ def calculate_binary_class_model_quality_group_by_timestamp(self): list_of_time_group = ( dataset_with_group.select("time_group") .distinct() - .orderBy(f.col("time_group").asc()) + .orderBy(F.col("time_group").asc()) .rdd.flatMap(lambda x: x) .collect() ) array_of_groups = [ - dataset_with_group.where(f.col("time_group") == x) + dataset_with_group.where(F.col("time_group") == x) for x in list_of_time_group ] @@ -299,33 +313,37 @@ def calculate_binary_class_model_quality_group_by_timestamp(self): def calculate_confusion_matrix(self) -> dict[str, float]: prediction_and_label = ( - self.current.current.select( + self.current.current.filter( + is_not_null(self.current.model.outputs.prediction.name) + & is_not_null(self.current.model.target.name) + ) + .select( [ self.current.model.outputs.prediction.name, self.current.model.target.name, ] ) .withColumn( - self.current.model.target.name, f.col(self.current.model.target.name) + self.current.model.target.name, F.col(self.current.model.target.name) ) .orderBy(self.current.model.target.name) ) tp = prediction_and_label.filter( - (col(self.current.model.outputs.prediction.name) == 1) - & (col(self.current.model.target.name) == 1) + (F.col(self.current.model.outputs.prediction.name) == 1) + & (F.col(self.current.model.target.name) == 1) ).count() tn = prediction_and_label.filter( - (col(self.current.model.outputs.prediction.name) == 0) - & (col(self.current.model.target.name) == 0) + (F.col(self.current.model.outputs.prediction.name) == 0) + & (F.col(self.current.model.target.name) == 0) ).count() fp = prediction_and_label.filter( - (col(self.current.model.outputs.prediction.name) == 1) - & (col(self.current.model.target.name) == 0) + (F.col(self.current.model.outputs.prediction.name) == 1) + & (F.col(self.current.model.target.name) == 0) ).count() fn = prediction_and_label.filter( - (col(self.current.model.outputs.prediction.name) == 0) - & (col(self.current.model.target.name) == 1) + (F.col(self.current.model.outputs.prediction.name) == 0) + & (F.col(self.current.model.target.name) == 1) ).count() return { diff --git a/spark/jobs/utils/reference_binary.py b/spark/jobs/utils/reference_binary.py index 6682085c..10d557b6 100644 --- a/spark/jobs/utils/reference_binary.py +++ b/spark/jobs/utils/reference_binary.py @@ -5,8 +5,7 @@ BinaryClassificationEvaluator, MulticlassClassificationEvaluator, ) -from pyspark.sql.functions import col -import pyspark.sql.functions as f +import pyspark.sql.functions as F from metrics.data_quality_calculator import DataQualityCalculator from models.data_quality import ( @@ -16,6 +15,7 @@ BinaryClassDataQuality, ) from models.reference_dataset import ReferenceDataset +from .spark import is_not_null class ReferenceMetricsService: @@ -73,7 +73,13 @@ def __evaluate_multi_class_classification( # FIXME use pydantic struct like data quality def __calc_bc_metrics(self) -> dict[str, float]: return { - label: self.__evaluate_binary_classification(self.reference.reference, name) + label: self.__evaluate_binary_classification( + self.reference.reference.filter( + is_not_null(self.reference.model.outputs.prediction.name) + & is_not_null(self.reference.model.target.name) + ), + name, + ) for (name, label) in self.model_quality_binary_classificator.items() } @@ -81,7 +87,11 @@ def __calc_bc_metrics(self) -> dict[str, float]: def __calc_mc_metrics(self) -> dict[str, float]: return { label: self.__evaluate_multi_class_classification( - self.reference.reference, name + self.reference.reference.filter( + is_not_null(self.reference.model.outputs.prediction.name) + & is_not_null(self.reference.model.target.name) + ), + name, ) for (name, label) in self.model_quality_multiclass_classificator.items() } @@ -98,7 +108,11 @@ def calculate_model_quality(self) -> dict[str, float]: # FIXME use pydantic struct like data quality def calculate_confusion_matrix(self) -> dict[str, float]: prediction_and_label = ( - self.reference.reference.select( + self.reference.reference.filter( + is_not_null(self.reference.model.outputs.prediction.name) + & is_not_null(self.reference.model.target.name) + ) + .select( [ self.reference.model.outputs.prediction.name, self.reference.model.target.name, @@ -106,26 +120,26 @@ def calculate_confusion_matrix(self) -> dict[str, float]: ) .withColumn( self.reference.model.target.name, - f.col(self.reference.model.target.name), + F.col(self.reference.model.target.name), ) .orderBy(self.reference.model.target.name) ) tp = prediction_and_label.filter( - (col(self.reference.model.outputs.prediction.name) == 1) - & (col(self.reference.model.target.name) == 1) + (F.col(self.reference.model.outputs.prediction.name) == 1) + & (F.col(self.reference.model.target.name) == 1) ).count() tn = prediction_and_label.filter( - (col(self.reference.model.outputs.prediction.name) == 0) - & (col(self.reference.model.target.name) == 0) + (F.col(self.reference.model.outputs.prediction.name) == 0) + & (F.col(self.reference.model.target.name) == 0) ).count() fp = prediction_and_label.filter( - (col(self.reference.model.outputs.prediction.name) == 1) - & (col(self.reference.model.target.name) == 0) + (F.col(self.reference.model.outputs.prediction.name) == 1) + & (F.col(self.reference.model.target.name) == 0) ).count() fn = prediction_and_label.filter( - (col(self.reference.model.outputs.prediction.name) == 0) - & (col(self.reference.model.target.name) == 1) + (F.col(self.reference.model.outputs.prediction.name) == 0) + & (F.col(self.reference.model.target.name) == 1) ).count() return { diff --git a/spark/jobs/utils/reference_multiclass.py b/spark/jobs/utils/reference_multiclass.py index 36065944..a7310213 100644 --- a/spark/jobs/utils/reference_multiclass.py +++ b/spark/jobs/utils/reference_multiclass.py @@ -3,6 +3,7 @@ from pyspark.ml.evaluation import MulticlassClassificationEvaluator from pyspark.mllib.evaluation import MulticlassMetrics from pyspark.sql import DataFrame +import pyspark.sql.functions as f from metrics.data_quality_calculator import DataQualityCalculator from models.reference_dataset import ReferenceDataset @@ -57,7 +58,22 @@ def __calc_multiclass_by_label_metrics(self) -> List[Dict]: "class_name": label, "metrics": { metric_label: self.__evaluate_multi_class_classification( - self.indexed_reference, metric_name, float(index) + self.indexed_reference.filter( + ~( + f.col( + self.reference.model.outputs.prediction.name + ).isNull() + | f.isnan( + f.col(self.reference.model.outputs.prediction.name) + ) + ) + & ~( + f.col(self.reference.model.target.name).isNull() + | f.isnan(f.col(self.reference.model.target.name)) + ) + ), + metric_name, + float(index), ) for ( metric_name, @@ -80,12 +96,25 @@ def __calc_multiclass_global_metrics(self) -> Dict: } def __calc_confusion_matrix(self): - prediction_and_labels = self.indexed_reference.select( - *[ - f"{self.reference.model.outputs.prediction.name}-idx", - f"{self.reference.model.target.name}-idx", - ] - ).rdd + prediction_and_labels = ( + self.indexed_reference.filter( + ~( + f.col(self.reference.model.outputs.prediction.name).isNull() + | f.isnan(f.col(self.reference.model.outputs.prediction.name)) + ) + & ~( + f.col(self.reference.model.target.name).isNull() + | f.isnan(f.col(self.reference.model.target.name)) + ) + ) + .select( + *[ + f"{self.reference.model.outputs.prediction.name}-idx", + f"{self.reference.model.target.name}-idx", + ] + ) + .rdd + ) multiclass_metrics_calculator = MulticlassMetrics(prediction_and_labels) return multiclass_metrics_calculator.confusionMatrix().toArray().tolist() diff --git a/spark/jobs/utils/spark.py b/spark/jobs/utils/spark.py index ebd41d94..15404c94 100644 --- a/spark/jobs/utils/spark.py +++ b/spark/jobs/utils/spark.py @@ -9,3 +9,7 @@ def apply_schema_to_dataframe(df, schema): def check_not_null(x): return F.when(F.col(x).isNotNull() & ~F.isnan(x), F.col(x)) + + +def is_not_null(x): + return F.col(x).isNotNull() & ~F.isnan(x) diff --git a/spark/tests/binary_current_test.py b/spark/tests/binary_current_test.py index cc395718..04e4634c 100644 --- a/spark/tests/binary_current_test.py +++ b/spark/tests/binary_current_test.py @@ -140,6 +140,18 @@ def dataset_for_month(spark_fixture, test_data_dir): ) +@pytest.fixture() +def dataset_with_nulls(spark_fixture, test_data_dir): + yield ( + spark_fixture.read.csv( + f"{test_data_dir}/current/dataset_nulls.csv", header=True + ), + spark_fixture.read.csv( + f"{test_data_dir}/reference/dataset_nulls.csv", header=True + ), + ) + + def test_calculation(spark_fixture, dataset): output = OutputType( prediction=ColumnDefinition(name="prediction", type=SupportedTypes.float), @@ -2677,3 +2689,121 @@ def test_calculation_for_month(spark_fixture, dataset_for_month): ignore_order=True, significant_digits=6, ) + + +def test_model_quality_nulls(spark_fixture, dataset_with_nulls): + output = OutputType( + prediction=ColumnDefinition(name="prediction", type=SupportedTypes.float), + prediction_proba=ColumnDefinition( + name="prediction_proba", type=SupportedTypes.float + ), + output=[ + ColumnDefinition(name="prediction", type=SupportedTypes.float), + ColumnDefinition(name="prediction_proba", type=SupportedTypes.float), + ], + ) + target = ColumnDefinition(name="target", type=SupportedTypes.float) + timestamp = ColumnDefinition(name="datetime", type=SupportedTypes.datetime) + granularity = Granularity.MONTH + features = [ + ColumnDefinition(name="cat1", type=SupportedTypes.string), + ColumnDefinition(name="cat2", type=SupportedTypes.string), + ColumnDefinition(name="num1", type=SupportedTypes.float), + ColumnDefinition(name="num2", type=SupportedTypes.float), + ] + model = ModelOut( + uuid=uuid.uuid4(), + name="model", + description="description", + model_type=ModelType.BINARY, + data_type=DataType.TABULAR, + timestamp=timestamp, + granularity=granularity, + outputs=output, + target=target, + features=features, + frameworks="framework", + algorithm="algorithm", + created_at=str(datetime.datetime.now()), + updated_at=str(datetime.datetime.now()), + ) + + raw_current_dataset, raw_reference_dataset = dataset_with_nulls + current_dataset = CurrentDataset(model=model, raw_dataframe=raw_current_dataset) + reference_dataset = ReferenceDataset( + model=model, raw_dataframe=raw_reference_dataset + ) + + metrics_service = CurrentMetricsService( + spark_session=spark_fixture, + current=current_dataset, + reference=reference_dataset, + ) + + model_quality = metrics_service.calculate_model_quality_with_group_by_timestamp() + + assert not deepdiff.DeepDiff( + model_quality, + { + "global_metrics": { + "f1": 0.7500000000000001, + "accuracy": 0.75, + "weighted_precision": 0.75, + "weighted_recall": 0.75, + "weighted_true_positive_rate": 0.75, + "weighted_false_positive_rate": 0.2833333333333333, + "weighted_f_measure": 0.75, + "true_positive_rate": 0.8, + "false_positive_rate": 0.3333333333333333, + "precision": 0.8, + "recall": 0.8, + "f_measure": 0.8000000000000002, + "true_positive_count": 4, + "false_positive_count": 1, + "true_negative_count": 2, + "false_negative_count": 1, + "area_under_roc": 0.4, + "area_under_pr": 0.2944444444444444, + }, + "grouped_metrics": { + "f1": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.7500000000000001} + ], + "accuracy": [{"timestamp": "2024-06-01 00:00:00", "value": 0.75}], + "weighted_precision": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.75} + ], + "weighted_recall": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.75} + ], + "weighted_true_positive_rate": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.75} + ], + "weighted_false_positive_rate": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.2833333333333333} + ], + "weighted_f_measure": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.7500000000000001} + ], + "true_positive_rate": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.8} + ], + "false_positive_rate": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.3333333333333333} + ], + "precision": [{"timestamp": "2024-06-01 00:00:00", "value": 0.8}], + "recall": [{"timestamp": "2024-06-01 00:00:00", "value": 0.8}], + "f_measure": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.8000000000000002} + ], + "area_under_roc": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.5333333333333334} + ], + "area_under_pr": [ + {"timestamp": "2024-06-01 00:00:00", "value": 0.6529761904761904} + ], + }, + }, + ignore_order=True, + significant_digits=6, + ) diff --git a/spark/tests/binary_reference_test.py b/spark/tests/binary_reference_test.py index 31d01635..828cb20c 100644 --- a/spark/tests/binary_reference_test.py +++ b/spark/tests/binary_reference_test.py @@ -74,6 +74,13 @@ def dataset_bool_missing(spark_fixture, test_data_dir): ) +@pytest.fixture() +def dataset_with_nulls(spark_fixture, test_data_dir): + yield spark_fixture.read.csv( + f"{test_data_dir}/reference/dataset_nulls.csv", header=True + ) + + def test_calculation(spark_fixture, dataset): output = OutputType( prediction=ColumnDefinition(name="prediction", type=SupportedTypes.float), @@ -2034,3 +2041,72 @@ def test_calculation_dataset_bool_missing(spark_fixture, dataset_bool_missing): ignore_order=True, significant_digits=6, ) + + +def test_model_quality_nulls(spark_fixture, dataset_with_nulls): + output = OutputType( + prediction=ColumnDefinition(name="prediction", type=SupportedTypes.float), + prediction_proba=ColumnDefinition( + name="prediction_proba", type=SupportedTypes.float + ), + output=[ + ColumnDefinition(name="prediction", type=SupportedTypes.float), + ColumnDefinition(name="prediction_proba", type=SupportedTypes.float), + ], + ) + target = ColumnDefinition(name="target", type=SupportedTypes.float) + timestamp = ColumnDefinition(name="datetime", type=SupportedTypes.datetime) + granularity = Granularity.HOUR + features = [ + ColumnDefinition(name="cat1", type=SupportedTypes.string), + ColumnDefinition(name="cat2", type=SupportedTypes.string), + ColumnDefinition(name="num1", type=SupportedTypes.float), + ColumnDefinition(name="num2", type=SupportedTypes.float), + ] + model = ModelOut( + uuid=uuid.uuid4(), + name="model", + description="description", + model_type=ModelType.BINARY, + data_type=DataType.TABULAR, + timestamp=timestamp, + granularity=granularity, + outputs=output, + target=target, + features=features, + frameworks="framework", + algorithm="algorithm", + created_at=str(datetime.datetime.now()), + updated_at=str(datetime.datetime.now()), + ) + + reference_dataset = ReferenceDataset(model=model, raw_dataframe=dataset_with_nulls) + metrics_service = ReferenceMetricsService(reference_dataset) + + model_quality = metrics_service.calculate_model_quality() + + assert not deepdiff.DeepDiff( + model_quality, + { + "f1": 1.0, + "accuracy": 1.0, + "weighted_precision": 1.0, + "weighted_recall": 1.0, + "weighted_true_positive_rate": 1.0, + "weighted_false_positive_rate": 0.0, + "weighted_f_measure": 1.0, + "true_positive_rate": 1.0, + "false_positive_rate": 0.0, + "precision": 1.0, + "recall": 1.0, + "f_measure": 1.0, + "true_positive_count": 5, + "false_positive_count": 0, + "true_negative_count": 3, + "false_negative_count": 0, + "area_under_roc": 0.4, + "area_under_pr": 0.38630952380952377, + }, + ignore_order=True, + significant_digits=6, + ) diff --git a/spark/tests/multiclass_current_test.py b/spark/tests/multiclass_current_test.py index 3b269618..ce5a99c1 100644 --- a/spark/tests/multiclass_current_test.py +++ b/spark/tests/multiclass_current_test.py @@ -48,6 +48,20 @@ def dataset_target_string(spark_fixture, test_data_dir): ) +@pytest.fixture() +def dataset_with_nulls(spark_fixture, test_data_dir): + yield ( + spark_fixture.read.csv( + f"{test_data_dir}/reference/multiclass/dataset_target_string_nulls.csv", + header=True, + ), + spark_fixture.read.csv( + f"{test_data_dir}/current/multiclass/dataset_target_string_nulls.csv", + header=True, + ), + ) + + @pytest.fixture() def dataset_perfect_classes(spark_fixture, test_data_dir): yield ( @@ -1314,3 +1328,191 @@ def test_calculation_dataset_for_hour(spark_fixture, dataset_for_hour): ignore_order=True, significant_digits=6, ) + + +def test_calculation_dataset_with_nulls(spark_fixture, dataset_with_nulls): + output = OutputType( + prediction=ColumnDefinition(name="prediction", type=SupportedTypes.string), + prediction_proba=None, + output=[ColumnDefinition(name="prediction", type=SupportedTypes.string)], + ) + target = ColumnDefinition(name="target", type=SupportedTypes.string) + timestamp = ColumnDefinition(name="datetime", type=SupportedTypes.datetime) + granularity = Granularity.HOUR + features = [ + ColumnDefinition(name="cat1", type=SupportedTypes.string), + ColumnDefinition(name="cat2", type=SupportedTypes.string), + ColumnDefinition(name="num1", type=SupportedTypes.float), + ColumnDefinition(name="num2", type=SupportedTypes.float), + ] + model = ModelOut( + uuid=uuid.uuid4(), + name="model", + description="description", + model_type=ModelType.MULTI_CLASS, + data_type=DataType.TABULAR, + timestamp=timestamp, + granularity=granularity, + outputs=output, + target=target, + features=features, + frameworks="framework", + algorithm="algorithm", + created_at=str(datetime.datetime.now()), + updated_at=str(datetime.datetime.now()), + ) + + current_dataframe, reference_dataframe = dataset_with_nulls + current_dataset = CurrentDataset(model=model, raw_dataframe=current_dataframe) + reference_dataset = ReferenceDataset(model=model, raw_dataframe=reference_dataframe) + + metrics_service = CurrentMetricsMulticlassService( + spark_session=spark_fixture, + current=current_dataset, + reference=reference_dataset, + ) + + model_quality = metrics_service.calculate_model_quality() + + assert not deepdiff.DeepDiff( + model_quality, + { + "classes": ["HEALTHY", "ORPHAN", "UNHEALTHY", "UNKNOWN"], + "class_metrics": [ + { + "class_name": "HEALTHY", + "metrics": { + "true_positive_rate": 1.0, + "false_positive_rate": 0.16666666666666666, + "precision": 0.6666666666666666, + "recall": 1.0, + "f_measure": 0.8, + }, + "grouped_metrics": { + "true_positive_rate": [ + {"timestamp": "2024-06-16 00:00:00", "value": 1.0} + ], + "false_positive_rate": [ + { + "timestamp": "2024-06-16 00:00:00", + "value": 0.16666666666666666, + } + ], + "precision": [ + { + "timestamp": "2024-06-16 00:00:00", + "value": 0.6666666666666666, + } + ], + "recall": [{"timestamp": "2024-06-16 00:00:00", "value": 1.0}], + "f_measure": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.8} + ], + }, + }, + { + "class_name": "ORPHAN", + "metrics": { + "true_positive_rate": 0.0, + "false_positive_rate": 0.2857142857142857, + "precision": 0.0, + "recall": 0.0, + "f_measure": 0.0, + }, + "grouped_metrics": { + "true_positive_rate": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.0} + ], + "false_positive_rate": [ + { + "timestamp": "2024-06-16 00:00:00", + "value": 0.2857142857142857, + } + ], + "precision": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.0} + ], + "recall": [{"timestamp": "2024-06-16 00:00:00", "value": 0.0}], + "f_measure": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.0} + ], + }, + }, + { + "class_name": "UNHEALTHY", + "metrics": { + "true_positive_rate": 1.0, + "false_positive_rate": 0.0, + "precision": 1.0, + "recall": 1.0, + "f_measure": 1.0, + }, + "grouped_metrics": { + "true_positive_rate": [ + {"timestamp": "2024-06-16 00:00:00", "value": 1.0} + ], + "false_positive_rate": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.0} + ], + "precision": [ + {"timestamp": "2024-06-16 00:00:00", "value": 1.0} + ], + "recall": [{"timestamp": "2024-06-16 00:00:00", "value": 1.0}], + "f_measure": [ + {"timestamp": "2024-06-16 00:00:00", "value": 1.0} + ], + }, + }, + { + "class_name": "UNKNOWN", + "metrics": { + "true_positive_rate": 0.3333333333333333, + "false_positive_rate": 0.0, + "precision": 1.0, + "recall": 0.3333333333333333, + "f_measure": 0.5, + }, + "grouped_metrics": { + "true_positive_rate": [ + { + "timestamp": "2024-06-16 00:00:00", + "value": 0.3333333333333333, + } + ], + "false_positive_rate": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.0} + ], + "precision": [ + {"timestamp": "2024-06-16 00:00:00", "value": 1.0} + ], + "recall": [ + { + "timestamp": "2024-06-16 00:00:00", + "value": 0.3333333333333333, + } + ], + "f_measure": [ + {"timestamp": "2024-06-16 00:00:00", "value": 0.5} + ], + }, + }, + ], + "global_metrics": { + "f1": 0.6375, + "accuracy": 0.625, + "weighted_precision": 0.7916666666666666, + "weighted_recall": 0.625, + "weighted_true_positive_rate": 0.625, + "weighted_false_positive_rate": 0.07738095238095238, + "weighted_f_measure": 0.6375, + "confusion_matrix": [ + [2.0, 0.0, 0.0, 0.0], + [1.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 2.0, 0.0], + [0.0, 2.0, 0.0, 1.0], + ], + }, + }, + ignore_order=True, + significant_digits=6, + ) diff --git a/spark/tests/multiclass_reference_test.py b/spark/tests/multiclass_reference_test.py index 52a13e43..33ac0783 100644 --- a/spark/tests/multiclass_reference_test.py +++ b/spark/tests/multiclass_reference_test.py @@ -35,6 +35,14 @@ def dataset_target_string(spark_fixture, test_data_dir): ) +@pytest.fixture() +def dataset_with_nulls(spark_fixture, test_data_dir): + yield spark_fixture.read.csv( + f"{test_data_dir}/reference/multiclass/dataset_target_string_nulls.csv", + header=True, + ) + + @pytest.fixture() def dataset_perfect_classes(spark_fixture, test_data_dir): yield spark_fixture.read.csv( @@ -696,3 +704,109 @@ def test_calculation_dataset_perfect_classes(spark_fixture, dataset_perfect_clas ignore_order=True, significant_digits=6, ) + + +def test_calculation_dataset_with_nulls(spark_fixture, dataset_with_nulls): + output = OutputType( + prediction=ColumnDefinition(name="prediction", type=SupportedTypes.string), + prediction_proba=None, + output=[ColumnDefinition(name="prediction", type=SupportedTypes.string)], + ) + target = ColumnDefinition(name="target", type=SupportedTypes.string) + timestamp = ColumnDefinition(name="datetime", type=SupportedTypes.datetime) + granularity = Granularity.HOUR + features = [ + ColumnDefinition(name="cat1", type=SupportedTypes.string), + ColumnDefinition(name="cat2", type=SupportedTypes.string), + ColumnDefinition(name="num1", type=SupportedTypes.float), + ColumnDefinition(name="num2", type=SupportedTypes.float), + ] + model = ModelOut( + uuid=uuid.uuid4(), + name="model", + description="description", + model_type=ModelType.MULTI_CLASS, + data_type=DataType.TABULAR, + timestamp=timestamp, + granularity=granularity, + outputs=output, + target=target, + features=features, + frameworks="framework", + algorithm="algorithm", + created_at=str(datetime.datetime.now()), + updated_at=str(datetime.datetime.now()), + ) + + reference_dataframe = dataset_with_nulls + reference_dataset = ReferenceDataset(model=model, raw_dataframe=reference_dataframe) + + multiclass_service = ReferenceMetricsMulticlassService(reference_dataset) + + model_quality = multiclass_service.calculate_model_quality() + + assert not deepdiff.DeepDiff( + model_quality, + { + "classes": ["HEALTHY", "ORPHAN", "UNHEALTHY", "UNKNOWN"], + "class_metrics": [ + { + "class_name": "HEALTHY", + "metrics": { + "true_positive_rate": 1.0, + "false_positive_rate": 0.16666666666666666, + "precision": 0.6666666666666666, + "recall": 1.0, + "f_measure": 0.8, + }, + }, + { + "class_name": "ORPHAN", + "metrics": { + "true_positive_rate": 0.0, + "false_positive_rate": 0.2857142857142857, + "precision": 0.0, + "recall": 0.0, + "f_measure": 0.0, + }, + }, + { + "class_name": "UNHEALTHY", + "metrics": { + "true_positive_rate": 1.0, + "false_positive_rate": 0.0, + "precision": 1.0, + "recall": 1.0, + "f_measure": 1.0, + }, + }, + { + "class_name": "UNKNOWN", + "metrics": { + "true_positive_rate": 0.3333333333333333, + "false_positive_rate": 0.0, + "precision": 1.0, + "recall": 0.3333333333333333, + "f_measure": 0.5, + }, + }, + ], + "global_metrics": { + "f1": 0.6375, + "accuracy": 0.625, + "weighted_precision": 0.7916666666666666, + "weighted_recall": 0.625, + "weighted_true_positive_rate": 0.625, + "weighted_false_positive_rate": 0.07738095238095238, + "weighted_f_measure": 0.6375, + "confusion_matrix": [ + [2.0, 0.0, 0.0, 0.0], + [1.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 2.0, 0.0], + [0.0, 2.0, 0.0, 1.0], + ], + }, + }, + ignore_order=True, + significant_digits=6, + ) diff --git a/spark/tests/regression_reference_test.py b/spark/tests/regression_reference_test.py index 34746417..086e23e2 100644 --- a/spark/tests/regression_reference_test.py +++ b/spark/tests/regression_reference_test.py @@ -26,6 +26,13 @@ def reference_bike(spark_fixture, test_data_dir): ) +@pytest.fixture() +def reference_bike_nulls(spark_fixture, test_data_dir): + yield spark_fixture.read.csv( + f"{test_data_dir}/reference/regression/reference_bike_nulls.csv", header=True + ) + + @pytest.fixture() def expected_data_quality_json(): yield { @@ -431,6 +438,52 @@ def reference_dataset(reference_bike): ) +@pytest.fixture() +def reference_dataset_nulls(spark_fixture, reference_bike_nulls): + output = OutputType( + prediction=ColumnDefinition(name="predictions", type=SupportedTypes.float), + prediction_proba=None, + output=[ColumnDefinition(name="predictions", type=SupportedTypes.float)], + ) + target = ColumnDefinition(name="ground_truth", type=SupportedTypes.int) + timestamp = ColumnDefinition(name="dteday", type=SupportedTypes.datetime) + granularity = Granularity.HOUR + features = [ + ColumnDefinition(name="season", type=SupportedTypes.int), + ColumnDefinition(name="yr", type=SupportedTypes.int), + ColumnDefinition(name="mnth", type=SupportedTypes.int), + ColumnDefinition(name="holiday", type=SupportedTypes.int), + ColumnDefinition(name="weekday", type=SupportedTypes.int), + ColumnDefinition(name="workingday", type=SupportedTypes.int), + ColumnDefinition(name="weathersit", type=SupportedTypes.float), + ColumnDefinition(name="temp", type=SupportedTypes.float), + ColumnDefinition(name="atemp", type=SupportedTypes.float), + ColumnDefinition(name="hum", type=SupportedTypes.float), + ColumnDefinition(name="windspeed", type=SupportedTypes.float), + ] + model = ModelOut( + uuid=uuid.uuid4(), + name="regression model", + description="description", + model_type=ModelType.REGRESSION, + data_type=DataType.TABULAR, + timestamp=timestamp, + granularity=granularity, + outputs=output, + target=target, + features=features, + frameworks="framework", + algorithm="algorithm", + created_at=str(datetime.datetime.now()), + updated_at=str(datetime.datetime.now()), + ) + + yield ReferenceDataset( + raw_dataframe=reference_bike_nulls, + model=model, + ) + + def test_model_quality_metrics(reference_dataset): assert reference_dataset.reference_count == 731 @@ -496,3 +549,24 @@ def test_data_quality_metrics(reference_dataset, expected_data_quality_json): ignore_order=True, ignore_type_subclasses=True, ) + + +def test_model_quality_metrics_nulls(reference_dataset_nulls): + regression_service = ReferenceMetricsRegressionService( + reference=reference_dataset_nulls + ) + model_quality_metrics = regression_service.calculate_model_quality() + + expected = my_approx( + { + "mae": 125.10728395061736, + "mape": 35.20983108087226, + "mse": 40967.56920781895, + "rmse": 202.40446933755922, + "r2": 0.9130200184348737, + "adj_r2": 0.9116855975182538, + "var": 393588.541292358, + } + ) + + assert model_quality_metrics.model_dump() == expected diff --git a/spark/tests/resources/current/dataset_nulls.csv b/spark/tests/resources/current/dataset_nulls.csv new file mode 100644 index 00000000..9ed26252 --- /dev/null +++ b/spark/tests/resources/current/dataset_nulls.csv @@ -0,0 +1,11 @@ +cat1,cat2,num1,num2,prediction,prediction_proba,target,datetime +A,X,1.0,1.4,1,1.0,1,2024-06-16 00:01:00 +B,X,1.5,100.0,,0.95,0,2024-06-16 00:02:00 +A,Y,3.0,123.0,1,NaN,0,2024-06-16 00:03:00 +B,X,0.5,,0,1.0,nan,2024-06-16 00:04:00 +B,X,0.5,,0,1.0,0,2024-06-16 00:05:00 +B,X,,200.0,0,0.8,1,2024-06-16 00:06:00 +C,X,1.0,300.0,0,1.0,0,2024-06-16 00:07:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:08:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:09:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:10:00 diff --git a/spark/tests/resources/current/multiclass/dataset_target_string_nulls.csv b/spark/tests/resources/current/multiclass/dataset_target_string_nulls.csv new file mode 100644 index 00000000..da6a4a44 --- /dev/null +++ b/spark/tests/resources/current/multiclass/dataset_target_string_nulls.csv @@ -0,0 +1,11 @@ +cat1,cat2,num1,num2,prediction,target,datetime +A,X,1.0,1.4,HEALTHY,HEALTHY,2024-06-16 00:01:00 +B,X,1.5,100.0,UNHEALTHY,UNHEALTHY,2024-06-16 00:02:00 +A,Y,3.0,123.0,HEALTHY,HEALTHY,2024-06-16 00:03:00 +B,X,0.5,,UNKNOWN,UNHEALTHY,2024-06-16 00:04:00 +B,X,0.5,,ORPHAN,UNKNOWN,2024-06-16 00:05:00 +B,X,,200.0,,ORPHAN,2024-06-16 00:06:00 +C,X,1.0,300.0,UNHEALTHY,,2024-06-16 00:07:00 +A,X,1.0,499.0,UNKNOWN,UNKNOWN,2024-06-16 00:08:00 +A,X,1.0,499.0,HEALTHY,HEALTHY,2024-06-16 00:09:00 +A,X,1.0,499.0,ORPHAN,UNKNOWN,2024-06-16 00:10:00 \ No newline at end of file diff --git a/spark/tests/resources/reference/dataset_nulls.csv b/spark/tests/resources/reference/dataset_nulls.csv new file mode 100644 index 00000000..4fc8b6ac --- /dev/null +++ b/spark/tests/resources/reference/dataset_nulls.csv @@ -0,0 +1,11 @@ +cat1,cat2,num1,num2,prediction,prediction_proba,target,datetime +A,X,1.0,1.4,1,0.9,1,2024-06-16 00:01:00 +B,X,1.5,100.0,0,0.95,0,2024-06-16 00:02:00 +A,Y,3.0,123.0,1,1.0,1,2024-06-16 00:03:00 +B,X,0.5,,0,NaN,0,2024-06-16 00:04:00 +B,X,0.5,,,1.0,0,2024-06-16 00:05:00 +B,X,,200.0,0,0.8,,2024-06-16 00:06:00 +C,X,1.0,300.0,0,1.0,0,2024-06-16 00:07:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:08:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:09:00 +A,X,1.0,499.0,1,1.0,1,2024-06-16 00:10:00 diff --git a/spark/tests/resources/reference/multiclass/dataset_target_string_nulls.csv b/spark/tests/resources/reference/multiclass/dataset_target_string_nulls.csv new file mode 100644 index 00000000..b78662f3 --- /dev/null +++ b/spark/tests/resources/reference/multiclass/dataset_target_string_nulls.csv @@ -0,0 +1,11 @@ +cat1,cat2,num1,num2,prediction,target,datetime +A,X,1.0,1.4,HEALTHY,,2024-06-16 00:01:00 +B,X,1.5,100.0,UNHEALTHY,UNHEALTHY,2024-06-16 00:02:00 +A,Y,3.0,123.0,HEALTHY,HEALTHY,2024-06-16 00:03:00 +B,X,0.5,,,UNHEALTHY,2024-06-16 00:04:00 +B,X,0.5,,ORPHAN,UNKNOWN,2024-06-16 00:05:00 +B,X,,200.0,HEALTHY,ORPHAN,2024-06-16 00:06:00 +C,X,1.0,300.0,UNHEALTHY,UNHEALTHY,2024-06-16 00:07:00 +A,X,1.0,499.0,UNKNOWN,UNKNOWN,2024-06-16 00:08:00 +A,X,1.0,499.0,HEALTHY,HEALTHY,2024-06-16 00:09:00 +A,X,1.0,499.0,ORPHAN,UNKNOWN,2024-06-16 00:10:00 \ No newline at end of file diff --git a/spark/tests/resources/reference/regression/reference_bike_nulls.csv b/spark/tests/resources/reference/regression/reference_bike_nulls.csv new file mode 100644 index 00000000..8b20787d --- /dev/null +++ b/spark/tests/resources/reference/regression/reference_bike_nulls.csv @@ -0,0 +1,732 @@ +instant,dteday,season,yr,mnth,holiday,weekday,workingday,weathersit,temp,atemp,hum,windspeed,predictions,ground_truth +1,2011-01-01,1,0,1,0,6,0,2,0.344167,0.363625,0.805833,0.160446,,331 +2,2011-01-02,1,0,1,0,0,0,2,0.363478,0.353739,0.696087,0.248539,635.42,131 +3,2011-01-03,1,0,1,0,1,1,1,0.196364,0.189405,0.437273,0.248309,113.83,NaN +4,2011-01-04,1,0,1,0,2,1,1,0.2,0.212122,0.590435,0.160296,95.03,108 +5,2011-01-05,1,0,1,0,3,1,1,0.226957,0.22927,0.436957,0.1869,104.1,82 +6,2011-01-06,1,0,1,0,4,1,1,0.204348,0.233209,0.518261,0.0895652,136.77,88 +7,2011-01-07,1,0,1,0,5,1,2,0.196522,0.208839,0.498696,0.168726,130.9,148 +8,2011-01-08,1,0,1,0,6,0,2,0.165,0.162254,0.535833,0.266804,100.39,68 +9,2011-01-09,1,0,1,0,0,0,1,0.138333,0.116175,0.434167,0.36195,161.6,54 +10,2011-01-10,1,0,1,0,1,1,1,0.150833,0.150888,0.482917,0.223267,52.61,41 +11,2011-01-11,1,0,1,0,2,1,2,0.169091,0.191464,0.686364,0.122132,54.54,43 +12,2011-01-12,1,0,1,0,3,1,1,0.172727,0.160473,0.599545,0.304627,34.11,25 +13,2011-01-13,1,0,1,0,4,1,1,0.165,0.150883,0.470417,0.301,46.14,38 +14,2011-01-14,1,0,1,0,5,1,1,0.16087,0.188413,0.537826,0.126548,68.29,54 +15,2011-01-15,1,0,1,0,6,0,2,0.233333,0.248112,0.49875,0.157963,257.48,222 +16,2011-01-16,1,0,1,0,0,0,1,0.231667,0.234217,0.48375,0.188433,253.11,251 +17,2011-01-17,1,0,1,1,1,0,2,0.175833,0.176771,0.5375,0.194017,132.76,117 +18,2011-01-18,1,0,1,0,2,1,2,0.216667,0.232333,0.861667,0.146775,152.52,9 +19,2011-01-19,1,0,1,0,3,1,2,0.292174,0.298422,0.741739,0.208317,158.84,78 +20,2011-01-20,1,0,1,0,4,1,2,0.261667,0.25505,0.538333,0.195904,116.11,83 +21,2011-01-21,1,0,1,0,5,1,1,0.1775,0.157833,0.457083,0.353242,76.25,75 +22,2011-01-22,1,0,1,0,6,0,1,0.0591304,0.0790696,0.4,0.17197,207.3,93 +23,2011-01-23,1,0,1,0,0,0,1,0.0965217,0.0988391,0.436522,0.2466,171.66,150 +24,2011-01-24,1,0,1,0,1,1,1,0.0973913,0.11793,0.491739,0.15833,75.92,86 +25,2011-01-25,1,0,1,0,2,1,2,0.223478,0.234526,0.616957,0.129796,167.34,186 +26,2011-01-26,1,0,1,0,3,1,3,0.2175,0.2036,0.8625,0.29385,43.15,34 +27,2011-01-27,1,0,1,0,4,1,1,0.195,0.2197,0.6875,0.113837,46.09,15 +28,2011-01-28,1,0,1,0,5,1,2,0.203478,0.223317,0.793043,0.1233,170.72,38 +29,2011-01-29,1,0,1,0,6,0,1,0.196522,0.212126,0.651739,0.145365,142.45,123 +30,2011-01-30,1,0,1,0,0,0,1,0.216522,0.250322,0.722174,0.0739826,196.17,140 +31,2011-01-31,1,0,1,0,1,1,2,0.180833,0.18625,0.60375,0.187192,49.55,42 +32,2011-02-01,1,0,2,0,2,1,2,0.192174,0.23453,0.829565,0.053213,182.08,47 +33,2011-02-02,1,0,2,0,3,1,2,0.26,0.254417,0.775417,0.264308,95.26,72 +34,2011-02-03,1,0,2,0,4,1,1,0.186957,0.177878,0.437826,0.277752,74.92,61 +35,2011-02-04,1,0,2,0,5,1,2,0.211304,0.228587,0.585217,0.127839,180.28,88 +36,2011-02-05,1,0,2,0,6,0,2,0.233333,0.243058,0.929167,0.161079,201.03,100 +37,2011-02-06,1,0,2,0,0,0,1,0.285833,0.291671,0.568333,0.1418,366.02,354 +38,2011-02-07,1,0,2,0,1,1,1,0.271667,0.303658,0.738333,0.0454083,186.74,120 +39,2011-02-08,1,0,2,0,2,1,1,0.220833,0.198246,0.537917,0.36195,84.22,64 +40,2011-02-09,1,0,2,0,3,1,2,0.134783,0.144283,0.494783,0.188839,59.29,53 +41,2011-02-10,1,0,2,0,4,1,1,0.144348,0.149548,0.437391,0.221935,70.96,47 +42,2011-02-11,1,0,2,0,5,1,1,0.189091,0.213509,0.506364,0.10855,135.62,149 +43,2011-02-12,1,0,2,0,6,0,1,0.2225,0.232954,0.544167,0.203367,254.52,288 +44,2011-02-13,1,0,2,0,0,0,1,0.316522,0.324113,0.457391,0.260883,561.73,397 +45,2011-02-14,1,0,2,0,1,1,1,0.415,0.39835,0.375833,0.417908,421.74,208 +46,2011-02-15,1,0,2,0,2,1,1,0.266087,0.254274,0.314348,0.291374,220.26,140 +47,2011-02-16,1,0,2,0,3,1,1,0.318261,0.3162,0.423478,0.251791,222.85,218 +48,2011-02-17,1,0,2,0,4,1,1,0.435833,0.428658,0.505,0.230104,335.41,259 +49,2011-02-18,1,0,2,0,5,1,1,0.521667,0.511983,0.516667,0.264925,984.07,579 +50,2011-02-19,1,0,2,0,6,0,1,0.399167,0.391404,0.187917,0.507463,1055.73,532 +51,2011-02-20,1,0,2,0,0,0,1,0.285217,0.27733,0.407826,0.223235,477.84,639 +52,2011-02-21,1,0,2,1,1,0,2,0.303333,0.284075,0.605,0.307846,283.46,195 +53,2011-02-22,1,0,2,0,2,1,1,0.182222,0.186033,0.577778,0.195683,65.41,74 +54,2011-02-23,1,0,2,0,3,1,1,0.221739,0.245717,0.423043,0.094113,148.39,139 +55,2011-02-24,1,0,2,0,4,1,2,0.295652,0.289191,0.697391,0.250496,132.79,100 +56,2011-02-25,1,0,2,0,5,1,2,0.364348,0.350461,0.712174,0.346539,254.06,120 +57,2011-02-26,1,0,2,0,6,0,1,0.2825,0.282192,0.537917,0.186571,432.56,424 +58,2011-02-27,1,0,2,0,0,0,1,0.343478,0.351109,0.68,0.125248,753.05,694 +59,2011-02-28,1,0,2,0,1,1,2,0.407273,0.400118,0.876364,0.289686,117.27,81 +60,2011-03-01,1,0,3,0,2,1,1,0.266667,0.263879,0.535,0.216425,161.42,137 +61,2011-03-02,1,0,3,0,3,1,1,0.335,0.320071,0.449583,0.307833,253.87,231 +62,2011-03-03,1,0,3,0,4,1,1,0.198333,0.200133,0.318333,0.225754,145.57,123 +63,2011-03-04,1,0,3,0,5,1,2,0.261667,0.255679,0.610417,0.203346,193.62,214 +64,2011-03-05,1,0,3,0,6,0,2,0.384167,0.378779,0.789167,0.251871,702.21,640 +65,2011-03-06,1,0,3,0,0,0,2,0.376522,0.366252,0.948261,0.343287,588.13,114 +66,2011-03-07,1,0,3,0,1,1,1,0.261739,0.238461,0.551304,0.341352,216.56,244 +67,2011-03-08,1,0,3,0,2,1,1,0.2925,0.3024,0.420833,0.12065,310.66,316 +68,2011-03-09,1,0,3,0,3,1,2,0.295833,0.286608,0.775417,0.22015,181.41,191 +69,2011-03-10,1,0,3,0,4,1,3,0.389091,0.385668,0.0,0.261877,449.07,46 +70,2011-03-11,1,0,3,0,5,1,2,0.316522,0.305,0.649565,0.23297,266.37,247 +71,2011-03-12,1,0,3,0,6,0,1,0.329167,0.32575,0.594583,0.220775,828.91,724 +72,2011-03-13,1,0,3,0,0,0,1,0.384348,0.380091,0.527391,0.270604,977.09,982 +73,2011-03-14,1,0,3,0,1,1,1,0.325217,0.332,0.496957,0.136926,343.25,359 +74,2011-03-15,1,0,3,0,2,1,2,0.317391,0.318178,0.655652,0.184309,254.91,289 +75,2011-03-16,1,0,3,0,3,1,2,0.365217,0.36693,0.776522,0.203117,289.19,321 +76,2011-03-17,1,0,3,0,4,1,1,0.415,0.410333,0.602917,0.209579,384.92,424 +77,2011-03-18,1,0,3,0,5,1,1,0.54,0.527009,0.525217,0.231017,1575.57,884 +78,2011-03-19,1,0,3,0,6,0,1,0.4725,0.466525,0.379167,0.368167,1630.82,1424 +79,2011-03-20,1,0,3,0,0,0,1,0.3325,0.32575,0.47375,0.207721,1128.02,1047 +80,2011-03-21,2,0,3,0,1,1,2,0.430435,0.409735,0.737391,0.288783,295.64,401 +81,2011-03-22,2,0,3,0,2,1,1,0.441667,0.440642,0.624583,0.22575,511.68,460 +82,2011-03-23,2,0,3,0,3,1,2,0.346957,0.337939,0.839565,0.234261,217.51,203 +83,2011-03-24,2,0,3,0,4,1,2,0.285,0.270833,0.805833,0.243787,169.93,166 +84,2011-03-25,2,0,3,0,5,1,1,0.264167,0.256312,0.495,0.230725,269.15,300 +85,2011-03-26,2,0,3,0,6,0,1,0.265833,0.257571,0.394167,0.209571,773.12,981 +86,2011-03-27,2,0,3,0,0,0,2,0.253043,0.250339,0.493913,0.1843,466.77,472 +87,2011-03-28,2,0,3,0,1,1,1,0.264348,0.257574,0.302174,0.212204,295.03,222 +88,2011-03-29,2,0,3,0,2,1,1,0.3025,0.292908,0.314167,0.226996,372.79,317 +89,2011-03-30,2,0,3,0,3,1,2,0.3,0.29735,0.646667,0.172888,218.23,168 +90,2011-03-31,2,0,3,0,4,1,3,0.268333,0.257575,0.918333,0.217646,172.12,179 +91,2011-04-01,2,0,4,0,5,1,2,0.3,0.283454,0.68625,0.258708,302.14,307 +92,2011-04-02,2,0,4,0,6,0,2,0.315,0.315637,0.65375,0.197146,755.73,898 +93,2011-04-03,2,0,4,0,0,0,1,0.378333,0.378767,0.48,0.182213,1508.42,1651 +94,2011-04-04,2,0,4,0,1,1,1,0.573333,0.542929,0.42625,0.385571,821.83,734 +95,2011-04-05,2,0,4,0,2,1,2,0.414167,0.39835,0.642083,0.388067,232.43,167 +96,2011-04-06,2,0,4,0,3,1,1,0.390833,0.387608,0.470833,0.263063,448.77,413 +97,2011-04-07,2,0,4,0,4,1,1,0.4375,0.433696,0.602917,0.162312,561.67,571 +98,2011-04-08,2,0,4,0,5,1,2,0.335833,0.324479,0.83625,0.226992,268.22,172 +99,2011-04-09,2,0,4,0,6,0,2,0.3425,0.341529,0.8775,0.133083,876.47,879 +100,2011-04-10,2,0,4,0,0,0,2,0.426667,0.426737,0.8575,0.146767,1234.71,1188 +101,2011-04-11,2,0,4,0,1,1,2,0.595652,0.565217,0.716956,0.324474,830.84,855 +102,2011-04-12,2,0,4,0,2,1,2,0.5025,0.493054,0.739167,0.274879,590.68,257 +103,2011-04-13,2,0,4,0,3,1,2,0.4125,0.417283,0.819167,0.250617,223.75,209 +104,2011-04-14,2,0,4,0,4,1,1,0.4675,0.462742,0.540417,0.1107,863.12,529 +105,2011-04-15,2,0,4,1,5,0,1,0.446667,0.441913,0.67125,0.226375,1191.99,642 +106,2011-04-16,2,0,4,0,6,0,3,0.430833,0.425492,0.888333,0.340808,483.23,121 +107,2011-04-17,2,0,4,0,0,0,1,0.456667,0.445696,0.479583,0.303496,1521.61,1558 +108,2011-04-18,2,0,4,0,1,1,1,0.5125,0.503146,0.5425,0.163567,712.41,669 +109,2011-04-19,2,0,4,0,2,1,2,0.505833,0.489258,0.665833,0.157971,493.43,409 +110,2011-04-20,2,0,4,0,3,1,1,0.595,0.564392,0.614167,0.241925,806.82,613 +111,2011-04-21,2,0,4,0,4,1,1,0.459167,0.453892,0.407083,0.325258,771.0,745 +112,2011-04-22,2,0,4,0,5,1,2,0.336667,0.321954,0.729583,0.219521,253.27,177 +113,2011-04-23,2,0,4,0,6,0,2,0.46,0.450121,0.887917,0.230725,1358.4,1462 +114,2011-04-24,2,0,4,0,0,0,2,0.581667,0.551763,0.810833,0.192175,2083.5,1710 +115,2011-04-25,2,0,4,0,1,1,1,0.606667,0.5745,0.776667,0.185333,762.59,773 +116,2011-04-26,2,0,4,0,2,1,1,0.631667,0.594083,0.729167,0.3265,723.88,678 +117,2011-04-27,2,0,4,0,3,1,2,0.62,0.575142,0.835417,0.3122,549.27,547 +118,2011-04-28,2,0,4,0,4,1,2,0.6175,0.578929,0.700833,0.320908,585.78,569 +119,2011-04-29,2,0,4,0,5,1,1,0.51,0.497463,0.457083,0.240063,1055.15,878 +120,2011-04-30,2,0,4,0,6,0,1,0.4725,0.464021,0.503333,0.235075,2072.64,1965 +121,2011-05-01,2,0,5,0,0,0,2,0.451667,0.448204,0.762083,0.106354,1418.8,1138 +122,2011-05-02,2,0,5,0,1,1,2,0.549167,0.532833,0.73,0.183454,809.69,847 +123,2011-05-03,2,0,5,0,2,1,2,0.616667,0.582079,0.697083,0.342667,712.07,603 +124,2011-05-04,2,0,5,0,3,1,2,0.414167,0.40465,0.737083,0.328996,236.3,255 +125,2011-05-05,2,0,5,0,4,1,1,0.459167,0.441917,0.444167,0.295392,678.22,614 +126,2011-05-06,2,0,5,0,5,1,1,0.479167,0.474117,0.59,0.228246,926.66,894 +127,2011-05-07,2,0,5,0,6,0,1,0.52,0.512621,0.54125,0.16045,1927.62,1612 +128,2011-05-08,2,0,5,0,0,0,1,0.528333,0.518933,0.631667,0.0746375,2325.81,1401 +129,2011-05-09,2,0,5,0,1,1,1,0.5325,0.525246,0.58875,0.176,701.43,664 +130,2011-05-10,2,0,5,0,2,1,1,0.5325,0.522721,0.489167,0.115671,758.88,694 +131,2011-05-11,2,0,5,0,3,1,1,0.5425,0.5284,0.632917,0.120642,643.15,550 +132,2011-05-12,2,0,5,0,4,1,1,0.535,0.523363,0.7475,0.189667,712.79,695 +133,2011-05-13,2,0,5,0,5,1,2,0.5125,0.4943,0.863333,0.179725,585.69,692 +134,2011-05-14,2,0,5,0,6,0,2,0.520833,0.500629,0.9225,0.13495,1113.61,902 +135,2011-05-15,2,0,5,0,0,0,2,0.5625,0.536,0.867083,0.152979,1553.64,1582 +136,2011-05-16,2,0,5,0,1,1,1,0.5775,0.550512,0.787917,0.126871,804.8,773 +137,2011-05-17,2,0,5,0,2,1,2,0.561667,0.538529,0.837917,0.277354,617.46,678 +138,2011-05-18,2,0,5,0,3,1,2,0.55,0.527158,0.87,0.201492,520.75,536 +139,2011-05-19,2,0,5,0,4,1,2,0.530833,0.510742,0.829583,0.108213,754.03,735 +140,2011-05-20,2,0,5,0,5,1,1,0.536667,0.529042,0.719583,0.125013,963.03,909 +141,2011-05-21,2,0,5,0,6,0,1,0.6025,0.571975,0.626667,0.12065,2243.29,2258 +142,2011-05-22,2,0,5,0,0,0,1,0.604167,0.5745,0.749583,0.148008,1785.61,1576 +143,2011-05-23,2,0,5,0,1,1,2,0.631667,0.590296,0.81,0.233842,681.7,836 +144,2011-05-24,2,0,5,0,2,1,2,0.66,0.604813,0.740833,0.207092,685.78,659 +145,2011-05-25,2,0,5,0,3,1,1,0.660833,0.615542,0.69625,0.154233,799.06,740 +146,2011-05-26,2,0,5,0,4,1,1,0.708333,0.654688,0.6775,0.199642,777.09,758 +147,2011-05-27,2,0,5,0,5,1,1,0.681667,0.637008,0.65375,0.240679,922.41,871 +148,2011-05-28,2,0,5,0,6,0,1,0.655833,0.612379,0.729583,0.230092,2112.77,2001 +149,2011-05-29,2,0,5,0,0,0,1,0.6675,0.61555,0.81875,0.213938,2160.18,2355 +150,2011-05-30,2,0,5,1,1,0,1,0.733333,0.671092,0.685,0.131225,1785.96,1549 +151,2011-05-31,2,0,5,0,2,1,1,0.775,0.725383,0.636667,0.111329,736.36,673 +152,2011-06-01,2,0,6,0,3,1,2,0.764167,0.720967,0.677083,0.207092,632.7,513 +153,2011-06-02,2,0,6,0,4,1,1,0.715,0.643942,0.305,0.292287,832.37,736 +154,2011-06-03,2,0,6,0,5,1,1,0.62,0.587133,0.354167,0.253121,992.73,898 +155,2011-06-04,2,0,6,0,6,0,1,0.635,0.594696,0.45625,0.123142,2066.57,1869 +156,2011-06-05,2,0,6,0,0,0,2,0.648333,0.616804,0.6525,0.138692,2226.46,1685 +157,2011-06-06,2,0,6,0,1,1,1,0.678333,0.621858,0.6,0.121896,892.64,673 +158,2011-06-07,2,0,6,0,2,1,1,0.7075,0.65595,0.597917,0.187808,875.34,763 +159,2011-06-08,2,0,6,0,3,1,1,0.775833,0.727279,0.622083,0.136817,712.06,676 +160,2011-06-09,2,0,6,0,4,1,2,0.808333,0.757579,0.568333,0.149883,647.42,563 +161,2011-06-10,2,0,6,0,5,1,1,0.755,0.703292,0.605,0.140554,896.59,815 +162,2011-06-11,2,0,6,0,6,0,1,0.725,0.678038,0.654583,0.15485,1882.27,1729 +163,2011-06-12,2,0,6,0,0,0,1,0.6925,0.643325,0.747917,0.163567,1945.87,1467 +164,2011-06-13,2,0,6,0,1,1,1,0.635,0.601654,0.494583,0.30535,897.85,863 +165,2011-06-14,2,0,6,0,2,1,1,0.604167,0.591546,0.507083,0.269283,800.38,727 +166,2011-06-15,2,0,6,0,3,1,1,0.626667,0.587754,0.471667,0.167912,1015.81,769 +167,2011-06-16,2,0,6,0,4,1,2,0.628333,0.595346,0.688333,0.206471,603.27,545 +168,2011-06-17,2,0,6,0,5,1,1,0.649167,0.600383,0.735833,0.143029,912.15,863 +169,2011-06-18,2,0,6,0,6,0,1,0.696667,0.643954,0.670417,0.119408,1893.15,1807 +170,2011-06-19,2,0,6,0,0,0,2,0.699167,0.645846,0.666667,0.102,1936.73,1639 +171,2011-06-20,2,0,6,0,1,1,2,0.635,0.595346,0.74625,0.155475,803.35,699 +172,2011-06-21,3,0,6,0,2,1,2,0.680833,0.637646,0.770417,0.171025,780.95,774 +173,2011-06-22,3,0,6,0,3,1,1,0.733333,0.693829,0.7075,0.172262,825.37,661 +174,2011-06-23,3,0,6,0,4,1,2,0.728333,0.693833,0.703333,0.238804,724.05,746 +175,2011-06-24,3,0,6,0,5,1,1,0.724167,0.656583,0.573333,0.222025,993.89,969 +176,2011-06-25,3,0,6,0,6,0,1,0.695,0.643313,0.483333,0.209571,2470.23,1782 +177,2011-06-26,3,0,6,0,0,0,1,0.68,0.637629,0.513333,0.0945333,2045.5,1920 +178,2011-06-27,3,0,6,0,1,1,2,0.6825,0.637004,0.658333,0.107588,894.11,854 +179,2011-06-28,3,0,6,0,2,1,1,0.744167,0.692558,0.634167,0.144283,786.38,732 +180,2011-06-29,3,0,6,0,3,1,1,0.728333,0.654688,0.497917,0.261821,892.91,848 +181,2011-06-30,3,0,6,0,4,1,1,0.696667,0.637008,0.434167,0.185312,1023.28,1027 +182,2011-07-01,3,0,7,0,5,1,1,0.7225,0.652162,0.39625,0.102608,1309.07,1246 +183,2011-07-02,3,0,7,0,6,0,1,0.738333,0.667308,0.444583,0.115062,2230.49,2204 +184,2011-07-03,3,0,7,0,0,0,2,0.716667,0.668575,0.6825,0.228858,2277.42,2282 +185,2011-07-04,3,0,7,1,1,0,2,0.726667,0.665417,0.637917,0.0814792,2665.03,3065 +186,2011-07-05,3,0,7,0,2,1,1,0.746667,0.696338,0.590417,0.126258,971.14,1031 +187,2011-07-06,3,0,7,0,3,1,1,0.72,0.685633,0.743333,0.149883,815.88,784 +188,2011-07-07,3,0,7,0,4,1,1,0.75,0.686871,0.65125,0.1592,975.68,754 +189,2011-07-08,3,0,7,0,5,1,2,0.709167,0.670483,0.757917,0.225129,835.05,692 +190,2011-07-09,3,0,7,0,6,0,1,0.733333,0.664158,0.609167,0.167912,2080.84,1988 +191,2011-07-10,3,0,7,0,0,0,1,0.7475,0.690025,0.578333,0.183471,1847.56,1743 +192,2011-07-11,3,0,7,0,1,1,1,0.7625,0.729804,0.635833,0.282337,766.85,723 +193,2011-07-12,3,0,7,0,2,1,1,0.794167,0.739275,0.559167,0.200254,696.78,662 +194,2011-07-13,3,0,7,0,3,1,1,0.746667,0.689404,0.631667,0.146133,876.53,748 +195,2011-07-14,3,0,7,0,4,1,1,0.680833,0.635104,0.47625,0.240667,910.7,888 +196,2011-07-15,3,0,7,0,5,1,1,0.663333,0.624371,0.59125,0.182833,1234.08,1318 +197,2011-07-16,3,0,7,0,6,0,1,0.686667,0.638263,0.585,0.208342,2294.18,2418 +198,2011-07-17,3,0,7,0,0,0,1,0.719167,0.669833,0.604167,0.245033,2103.6,2006 +199,2011-07-18,3,0,7,0,1,1,1,0.746667,0.703925,0.65125,0.215804,844.99,841 +200,2011-07-19,3,0,7,0,2,1,1,0.776667,0.747479,0.650417,0.1306,817.34,752 +201,2011-07-20,3,0,7,0,3,1,1,0.768333,0.74685,0.707083,0.113817,838.33,644 +202,2011-07-21,3,0,7,0,4,1,2,0.815,0.826371,0.69125,0.222021,669.41,632 +203,2011-07-22,3,0,7,0,5,1,1,0.848333,0.840896,0.580417,0.1331,932.3,562 +204,2011-07-23,3,0,7,0,6,0,1,0.849167,0.804287,0.5,0.131221,1251.39,987 +205,2011-07-24,3,0,7,0,0,0,1,0.83,0.794829,0.550833,0.169171,1349.38,1050 +206,2011-07-25,3,0,7,0,1,1,1,0.743333,0.720958,0.757083,0.0908083,708.93,568 +207,2011-07-26,3,0,7,0,2,1,1,0.771667,0.696979,0.540833,0.200258,763.0,750 +208,2011-07-27,3,0,7,0,3,1,1,0.775,0.690667,0.402917,0.183463,850.19,755 +209,2011-07-28,3,0,7,0,4,1,1,0.779167,0.7399,0.583333,0.178479,712.47,606 +210,2011-07-29,3,0,7,0,5,1,1,0.838333,0.785967,0.5425,0.174138,846.74,670 +211,2011-07-30,3,0,7,0,6,0,1,0.804167,0.728537,0.465833,0.168537,2004.15,1559 +212,2011-07-31,3,0,7,0,0,0,1,0.805833,0.729796,0.480833,0.164813,1931.26,1524 +213,2011-08-01,3,0,8,0,1,1,1,0.771667,0.703292,0.550833,0.156717,808.75,729 +214,2011-08-02,3,0,8,0,2,1,1,0.783333,0.707071,0.49125,0.20585,817.56,801 +215,2011-08-03,3,0,8,0,3,1,2,0.731667,0.679937,0.6575,0.135583,1013.68,467 +216,2011-08-04,3,0,8,0,4,1,2,0.71,0.664788,0.7575,0.19715,803.28,799 +217,2011-08-05,3,0,8,0,5,1,1,0.710833,0.656567,0.630833,0.184696,1064.28,1023 +218,2011-08-06,3,0,8,0,6,0,2,0.716667,0.676154,0.755,0.22825,1524.16,1521 +219,2011-08-07,3,0,8,0,0,0,1,0.7425,0.715292,0.752917,0.201487,1407.41,1298 +220,2011-08-08,3,0,8,0,1,1,1,0.765,0.703283,0.592083,0.192175,839.89,846 +221,2011-08-09,3,0,8,0,2,1,1,0.775,0.724121,0.570417,0.151121,869.8,907 +222,2011-08-10,3,0,8,0,3,1,1,0.766667,0.684983,0.424167,0.200258,878.82,884 +223,2011-08-11,3,0,8,0,4,1,1,0.7175,0.651521,0.42375,0.164796,1075.94,812 +224,2011-08-12,3,0,8,0,5,1,1,0.708333,0.654042,0.415,0.125621,1159.42,1051 +225,2011-08-13,3,0,8,0,6,0,2,0.685833,0.645858,0.729583,0.211454,1667.4,1504 +226,2011-08-14,3,0,8,0,0,0,2,0.676667,0.624388,0.8175,0.222633,1550.75,1338 +227,2011-08-15,3,0,8,0,1,1,1,0.665833,0.616167,0.712083,0.208954,797.26,775 +228,2011-08-16,3,0,8,0,2,1,1,0.700833,0.645837,0.578333,0.236329,790.11,721 +229,2011-08-17,3,0,8,0,3,1,1,0.723333,0.666671,0.575417,0.143667,811.63,668 +230,2011-08-18,3,0,8,0,4,1,1,0.711667,0.662258,0.654583,0.233208,751.17,639 +231,2011-08-19,3,0,8,0,5,1,2,0.685,0.633221,0.722917,0.139308,1006.23,797 +232,2011-08-20,3,0,8,0,6,0,1,0.6975,0.648996,0.674167,0.104467,1956.29,1914 +233,2011-08-21,3,0,8,0,0,0,1,0.710833,0.675525,0.77,0.248754,1412.14,1249 +234,2011-08-22,3,0,8,0,1,1,1,0.691667,0.638254,0.47,0.27675,914.63,833 +235,2011-08-23,3,0,8,0,2,1,1,0.640833,0.606067,0.455417,0.146763,1187.05,1281 +236,2011-08-24,3,0,8,0,3,1,1,0.673333,0.630692,0.605,0.253108,822.93,949 +237,2011-08-25,3,0,8,0,4,1,2,0.684167,0.645854,0.771667,0.210833,772.69,435 +238,2011-08-26,3,0,8,0,5,1,1,0.7,0.659733,0.76125,0.0839625,880.5,768 +239,2011-08-27,3,0,8,0,6,0,2,0.68,0.635556,0.85,0.375617,627.7,226 +240,2011-08-28,3,0,8,0,0,0,1,0.707059,0.647959,0.561765,0.304659,1557.85,1415 +241,2011-08-29,3,0,8,0,1,1,1,0.636667,0.607958,0.554583,0.159825,924.89,729 +242,2011-08-30,3,0,8,0,2,1,1,0.639167,0.594704,0.548333,0.125008,898.34,775 +243,2011-08-31,3,0,8,0,3,1,1,0.656667,0.611121,0.597917,0.0833333,1084.94,688 +244,2011-09-01,3,0,9,0,4,1,1,0.655,0.614921,0.639167,0.141796,840.57,783 +245,2011-09-02,3,0,9,0,5,1,2,0.643333,0.604808,0.727083,0.139929,937.58,875 +246,2011-09-03,3,0,9,0,6,0,1,0.669167,0.633213,0.716667,0.185325,1961.33,1935 +247,2011-09-04,3,0,9,0,0,0,1,0.709167,0.665429,0.742083,0.206467,2300.33,2521 +248,2011-09-05,3,0,9,1,1,0,2,0.673333,0.625646,0.790417,0.212696,1993.22,1236 +249,2011-09-06,3,0,9,0,2,1,3,0.54,0.5152,0.886957,0.343943,243.29,204 +250,2011-09-07,3,0,9,0,3,1,3,0.599167,0.544229,0.917083,0.0970208,356.8,118 +251,2011-09-08,3,0,9,0,4,1,3,0.633913,0.555361,0.939565,0.192748,345.26,153 +252,2011-09-09,3,0,9,0,5,1,2,0.65,0.578946,0.897917,0.124379,518.37,417 +253,2011-09-10,3,0,9,0,6,0,1,0.66,0.607962,0.75375,0.153608,1931.92,1750 +254,2011-09-11,3,0,9,0,0,0,1,0.653333,0.609229,0.71375,0.115054,1786.52,1633 +255,2011-09-12,3,0,9,0,1,1,1,0.644348,0.60213,0.692174,0.088913,796.91,690 +256,2011-09-13,3,0,9,0,2,1,1,0.650833,0.603554,0.7125,0.141804,815.39,701 +257,2011-09-14,3,0,9,0,3,1,1,0.673333,0.6269,0.697083,0.1673,727.56,647 +258,2011-09-15,3,0,9,0,4,1,2,0.5775,0.553671,0.709167,0.271146,529.98,428 +259,2011-09-16,3,0,9,0,5,1,2,0.469167,0.461475,0.590417,0.164183,872.18,742 +260,2011-09-17,3,0,9,0,6,0,2,0.491667,0.478512,0.718333,0.189675,1613.64,1434 +261,2011-09-18,3,0,9,0,0,0,1,0.5075,0.490537,0.695,0.178483,1538.28,1353 +262,2011-09-19,3,0,9,0,1,1,2,0.549167,0.529675,0.69,0.151742,873.57,691 +263,2011-09-20,3,0,9,0,2,1,2,0.561667,0.532217,0.88125,0.134954,458.23,438 +264,2011-09-21,3,0,9,0,3,1,2,0.595,0.550533,0.9,0.0964042,478.13,539 +265,2011-09-22,3,0,9,0,4,1,2,0.628333,0.554963,0.902083,0.128125,501.49,555 +266,2011-09-23,4,0,9,0,5,1,2,0.609167,0.522125,0.9725,0.0783667,363.0,258 +267,2011-09-24,4,0,9,0,6,0,2,0.606667,0.564412,0.8625,0.0783833,1630.17,1776 +268,2011-09-25,4,0,9,0,0,0,2,0.634167,0.572637,0.845,0.0503792,1729.5,1544 +269,2011-09-26,4,0,9,0,1,1,2,0.649167,0.589042,0.848333,0.1107,539.11,684 +270,2011-09-27,4,0,9,0,2,1,2,0.636667,0.574525,0.885417,0.118171,483.15,477 +271,2011-09-28,4,0,9,0,3,1,2,0.635,0.575158,0.84875,0.148629,511.23,480 +272,2011-09-29,4,0,9,0,4,1,1,0.616667,0.574512,0.699167,0.172883,722.68,653 +273,2011-09-30,4,0,9,0,5,1,1,0.564167,0.544829,0.6475,0.206475,982.32,830 +274,2011-10-01,4,0,10,0,6,0,2,0.41,0.412863,0.75375,0.292296,770.79,480 +275,2011-10-02,4,0,10,0,0,0,2,0.356667,0.345317,0.791667,0.222013,696.94,616 +276,2011-10-03,4,0,10,0,1,1,2,0.384167,0.392046,0.760833,0.0833458,323.48,330 +277,2011-10-04,4,0,10,0,2,1,1,0.484167,0.472858,0.71,0.205854,521.44,486 +278,2011-10-05,4,0,10,0,3,1,1,0.538333,0.527138,0.647917,0.17725,617.89,559 +279,2011-10-06,4,0,10,0,4,1,1,0.494167,0.480425,0.620833,0.134954,614.37,639 +280,2011-10-07,4,0,10,0,5,1,1,0.510833,0.504404,0.684167,0.0223917,1142.93,949 +281,2011-10-08,4,0,10,0,6,0,1,0.521667,0.513242,0.70125,0.0454042,2245.46,2235 +282,2011-10-09,4,0,10,0,0,0,1,0.540833,0.523983,0.7275,0.06345,2291.53,2397 +283,2011-10-10,4,0,10,1,1,0,1,0.570833,0.542925,0.73375,0.0423042,1914.49,1514 +284,2011-10-11,4,0,10,0,2,1,2,0.566667,0.546096,0.80875,0.143042,704.1,667 +285,2011-10-12,4,0,10,0,3,1,3,0.543333,0.517717,0.90625,0.24815,236.23,217 +286,2011-10-13,4,0,10,0,4,1,2,0.589167,0.551804,0.896667,0.141787,474.67,290 +287,2011-10-14,4,0,10,0,5,1,2,0.550833,0.529675,0.71625,0.223883,657.61,529 +288,2011-10-15,4,0,10,0,6,0,1,0.506667,0.498725,0.483333,0.258083,2038.95,1899 +289,2011-10-16,4,0,10,0,0,0,1,0.511667,0.503154,0.486667,0.281717,1888.11,1748 +290,2011-10-17,4,0,10,0,1,1,1,0.534167,0.510725,0.579583,0.175379,728.37,713 +291,2011-10-18,4,0,10,0,2,1,2,0.5325,0.522721,0.701667,0.110087,684.6,637 +292,2011-10-19,4,0,10,0,3,1,3,0.541739,0.513848,0.895217,0.243339,253.62,254 +293,2011-10-20,4,0,10,0,4,1,1,0.475833,0.466525,0.63625,0.422275,543.93,471 +294,2011-10-21,4,0,10,0,5,1,1,0.4275,0.423596,0.574167,0.221396,877.89,676 +295,2011-10-22,4,0,10,0,6,0,1,0.4225,0.425492,0.629167,0.0926667,2104.43,1499 +296,2011-10-23,4,0,10,0,0,0,1,0.421667,0.422333,0.74125,0.0995125,1728.19,1619 +297,2011-10-24,4,0,10,0,1,1,1,0.463333,0.457067,0.772083,0.118792,674.43,699 +298,2011-10-25,4,0,10,0,2,1,1,0.471667,0.463375,0.622917,0.166658,651.48,695 +299,2011-10-26,4,0,10,0,3,1,2,0.484167,0.472846,0.720417,0.148642,445.51,404 +300,2011-10-27,4,0,10,0,4,1,2,0.47,0.457046,0.812917,0.197763,569.54,240 +301,2011-10-28,4,0,10,0,5,1,2,0.330833,0.318812,0.585833,0.229479,371.83,456 +302,2011-10-29,4,0,10,0,6,0,3,0.254167,0.227913,0.8825,0.351371,248.99,57 +303,2011-10-30,4,0,10,0,0,0,1,0.319167,0.321329,0.62375,0.176617,766.59,885 +304,2011-10-31,4,0,10,0,1,1,1,0.34,0.356063,0.703333,0.10635,422.77,362 +305,2011-11-01,4,0,11,0,2,1,1,0.400833,0.397088,0.68375,0.135571,422.8,410 +306,2011-11-02,4,0,11,0,3,1,1,0.3775,0.390133,0.71875,0.0820917,403.37,370 +307,2011-11-03,4,0,11,0,4,1,1,0.408333,0.405921,0.702083,0.136817,404.91,318 +308,2011-11-04,4,0,11,0,5,1,2,0.403333,0.403392,0.6225,0.271779,551.32,470 +309,2011-11-05,4,0,11,0,6,0,1,0.326667,0.323854,0.519167,0.189062,1105.64,1156 +310,2011-11-06,4,0,11,0,0,0,1,0.348333,0.362358,0.734583,0.0920542,897.06,952 +311,2011-11-07,4,0,11,0,1,1,1,0.395,0.400871,0.75875,0.057225,357.14,373 +312,2011-11-08,4,0,11,0,2,1,1,0.408333,0.412246,0.721667,0.0690375,401.64,376 +313,2011-11-09,4,0,11,0,3,1,1,0.4,0.409079,0.758333,0.0621958,344.89,305 +314,2011-11-10,4,0,11,0,4,1,2,0.38,0.373721,0.813333,0.189067,332.78,190 +315,2011-11-11,4,0,11,1,5,0,1,0.324167,0.306817,0.44625,0.314675,536.43,440 +316,2011-11-12,4,0,11,0,6,0,1,0.356667,0.357942,0.552917,0.212062,1123.38,1275 +317,2011-11-13,4,0,11,0,0,0,1,0.440833,0.43055,0.458333,0.281721,1484.58,1004 +318,2011-11-14,4,0,11,0,1,1,1,0.53,0.524612,0.587083,0.306596,782.58,595 +319,2011-11-15,4,0,11,0,2,1,2,0.53,0.507579,0.68875,0.199633,675.74,449 +320,2011-11-16,4,0,11,0,3,1,3,0.456667,0.451988,0.93,0.136829,219.42,145 +321,2011-11-17,4,0,11,0,4,1,2,0.341667,0.323221,0.575833,0.305362,222.5,139 +322,2011-11-18,4,0,11,0,5,1,1,0.274167,0.272721,0.41,0.168533,290.69,245 +323,2011-11-19,4,0,11,0,6,0,1,0.329167,0.324483,0.502083,0.224496,1028.8,943 +324,2011-11-20,4,0,11,0,0,0,2,0.463333,0.457058,0.684583,0.18595,1108.9,787 +325,2011-11-21,4,0,11,0,1,1,3,0.4475,0.445062,0.91,0.138054,235.06,220 +326,2011-11-22,4,0,11,0,2,1,3,0.416667,0.421696,0.9625,0.118792,262.55,69 +327,2011-11-23,4,0,11,0,3,1,2,0.440833,0.430537,0.757917,0.335825,225.32,112 +328,2011-11-24,4,0,11,1,4,0,1,0.373333,0.372471,0.549167,0.167304,798.55,560 +329,2011-11-25,4,0,11,0,5,1,1,0.375,0.380671,0.64375,0.0988958,1091.6,1095 +330,2011-11-26,4,0,11,0,6,0,1,0.375833,0.385087,0.681667,0.0684208,1182.57,1249 +331,2011-11-27,4,0,11,0,0,0,1,0.459167,0.4558,0.698333,0.208954,1312.91,810 +332,2011-11-28,4,0,11,0,1,1,1,0.503478,0.490122,0.743043,0.142122,607.82,253 +333,2011-11-29,4,0,11,0,2,1,2,0.458333,0.451375,0.830833,0.258092,450.97,96 +334,2011-11-30,4,0,11,0,3,1,1,0.325,0.311221,0.613333,0.271158,310.0,188 +335,2011-12-01,4,0,12,0,4,1,1,0.3125,0.305554,0.524583,0.220158,282.73,182 +336,2011-12-02,4,0,12,0,5,1,1,0.314167,0.331433,0.625833,0.100754,297.19,268 +337,2011-12-03,4,0,12,0,6,0,1,0.299167,0.310604,0.612917,0.0957833,585.83,706 +338,2011-12-04,4,0,12,0,0,0,1,0.330833,0.3491,0.775833,0.0839583,795.78,634 +339,2011-12-05,4,0,12,0,1,1,2,0.385833,0.393925,0.827083,0.0622083,252.06,233 +340,2011-12-06,4,0,12,0,2,1,3,0.4625,0.4564,0.949583,0.232583,186.08,126 +341,2011-12-07,4,0,12,0,3,1,3,0.41,0.400246,0.970417,0.266175,121.49,50 +342,2011-12-08,4,0,12,0,4,1,1,0.265833,0.256938,0.58,0.240058,199.42,150 +343,2011-12-09,4,0,12,0,5,1,1,0.290833,0.317542,0.695833,0.0827167,275.28,261 +344,2011-12-10,4,0,12,0,6,0,1,0.275,0.266412,0.5075,0.233221,489.99,502 +345,2011-12-11,4,0,12,0,0,0,1,0.220833,0.253154,0.49,0.0665417,294.91,377 +346,2011-12-12,4,0,12,0,1,1,1,0.238333,0.270196,0.670833,0.06345,195.06,143 +347,2011-12-13,4,0,12,0,2,1,1,0.2825,0.301138,0.59,0.14055,335.6,155 +348,2011-12-14,4,0,12,0,3,1,2,0.3175,0.338362,0.66375,0.0609583,223.3,178 +349,2011-12-15,4,0,12,0,4,1,2,0.4225,0.412237,0.634167,0.268042,212.28,181 +350,2011-12-16,4,0,12,0,5,1,2,0.375,0.359825,0.500417,0.260575,298.36,178 +351,2011-12-17,4,0,12,0,6,0,2,0.258333,0.249371,0.560833,0.243167,295.99,275 +352,2011-12-18,4,0,12,0,0,0,1,0.238333,0.245579,0.58625,0.169779,258.84,220 +353,2011-12-19,4,0,12,0,1,1,1,0.276667,0.280933,0.6375,0.172896,320.89,260 +354,2011-12-20,4,0,12,0,2,1,2,0.385833,0.396454,0.595417,0.0615708,294.75,216 +355,2011-12-21,1,0,12,0,3,1,2,0.428333,0.428017,0.858333,0.2214,243.78,107 +356,2011-12-22,1,0,12,0,4,1,2,0.423333,0.426121,0.7575,0.047275,286.16,227 +357,2011-12-23,1,0,12,0,5,1,1,0.373333,0.377513,0.68625,0.274246,824.22,163 +358,2011-12-24,1,0,12,0,6,0,1,0.3025,0.299242,0.5425,0.190304,312.71,155 +359,2011-12-25,1,0,12,0,0,0,1,0.274783,0.279961,0.681304,0.155091,394.21,303 +360,2011-12-26,1,0,12,1,1,0,1,0.321739,0.315535,0.506957,0.239465,545.17,430 +361,2011-12-27,1,0,12,0,2,1,2,0.325,0.327633,0.7625,0.18845,252.22,103 +362,2011-12-28,1,0,12,0,3,1,1,0.29913,0.279974,0.503913,0.293961,249.79,255 +363,2011-12-29,1,0,12,0,4,1,1,0.248333,0.263892,0.574167,0.119412,255.23,254 +364,2011-12-30,1,0,12,0,5,1,1,0.311667,0.318812,0.636667,0.134337,421.98,491 +365,2011-12-31,1,0,12,0,6,0,1,0.41,0.414121,0.615833,0.220154,926.29,665 +366,2012-01-01,1,1,1,0,0,0,1,0.37,0.375621,0.6925,0.192167,724.14,686 +367,2012-01-02,1,1,1,1,1,0,1,0.273043,0.252304,0.381304,0.329665,445.98,244 +368,2012-01-03,1,1,1,0,2,1,1,0.15,0.126275,0.44125,0.365671,80.83,89 +369,2012-01-04,1,1,1,0,3,1,2,0.1075,0.119337,0.414583,0.1847,91.23,95 +370,2012-01-05,1,1,1,0,4,1,1,0.265833,0.278412,0.524167,0.129987,195.88,140 +371,2012-01-06,1,1,1,0,5,1,1,0.334167,0.340267,0.542083,0.167908,342.46,307 +372,2012-01-07,1,1,1,0,6,0,1,0.393333,0.390779,0.531667,0.174758,1104.2,1070 +373,2012-01-08,1,1,1,0,0,0,1,0.3375,0.340258,0.465,0.191542,851.25,599 +374,2012-01-09,1,1,1,0,1,1,2,0.224167,0.247479,0.701667,0.0989,121.37,106 +375,2012-01-10,1,1,1,0,2,1,1,0.308696,0.318826,0.646522,0.187552,234.39,173 +376,2012-01-11,1,1,1,0,3,1,2,0.274167,0.282821,0.8475,0.131221,136.46,92 +377,2012-01-12,1,1,1,0,4,1,2,0.3825,0.381938,0.802917,0.180967,265.13,269 +378,2012-01-13,1,1,1,0,5,1,1,0.274167,0.249362,0.5075,0.378108,174.91,174 +379,2012-01-14,1,1,1,0,6,0,1,0.18,0.183087,0.4575,0.187183,271.88,333 +380,2012-01-15,1,1,1,0,0,0,1,0.166667,0.161625,0.419167,0.251258,237.63,284 +381,2012-01-16,1,1,1,1,1,0,1,0.19,0.190663,0.5225,0.231358,205.03,217 +382,2012-01-17,1,1,1,0,2,1,2,0.373043,0.364278,0.716087,0.34913,169.08,127 +383,2012-01-18,1,1,1,0,3,1,1,0.303333,0.275254,0.443333,0.415429,227.21,109 +384,2012-01-19,1,1,1,0,4,1,1,0.19,0.190038,0.4975,0.220158,107.27,130 +385,2012-01-20,1,1,1,0,5,1,2,0.2175,0.220958,0.45,0.20275,114.77,115 +386,2012-01-21,1,1,1,0,6,0,2,0.173333,0.174875,0.83125,0.222642,97.49,67 +387,2012-01-22,1,1,1,0,0,0,2,0.1625,0.16225,0.79625,0.199638,104.3,196 +388,2012-01-23,1,1,1,0,1,1,2,0.218333,0.243058,0.91125,0.110708,148.6,145 +389,2012-01-24,1,1,1,0,2,1,1,0.3425,0.349108,0.835833,0.123767,373.21,439 +390,2012-01-25,1,1,1,0,3,1,1,0.294167,0.294821,0.64375,0.161071,255.99,467 +391,2012-01-26,1,1,1,0,4,1,2,0.341667,0.35605,0.769583,0.0733958,285.42,244 +392,2012-01-27,1,1,1,0,5,1,2,0.425,0.415383,0.74125,0.342667,406.4,269 +393,2012-01-28,1,1,1,0,6,0,1,0.315833,0.326379,0.543333,0.210829,754.38,775 +394,2012-01-29,1,1,1,0,0,0,1,0.2825,0.272721,0.31125,0.24005,579.18,558 +395,2012-01-30,1,1,1,0,1,1,1,0.269167,0.262625,0.400833,0.215792,141.88,126 +396,2012-01-31,1,1,1,0,2,1,1,0.39,0.381317,0.416667,0.261817,371.61,324 +397,2012-02-01,1,1,2,0,3,1,1,0.469167,0.466538,0.507917,0.189067,493.04,304 +398,2012-02-02,1,1,2,0,4,1,2,0.399167,0.398971,0.672917,0.187187,194.82,190 +399,2012-02-03,1,1,2,0,5,1,1,0.313333,0.309346,0.526667,0.178496,289.86,310 +400,2012-02-04,1,1,2,0,6,0,2,0.264167,0.272725,0.779583,0.121896,363.71,384 +401,2012-02-05,1,1,2,0,0,0,2,0.265833,0.264521,0.687917,0.175996,360.03,318 +402,2012-02-06,1,1,2,0,1,1,1,0.282609,0.296426,0.622174,0.1538,223.13,206 +403,2012-02-07,1,1,2,0,2,1,1,0.354167,0.361104,0.49625,0.147379,235.41,199 +404,2012-02-08,1,1,2,0,3,1,2,0.256667,0.266421,0.722917,0.133721,122.11,109 +405,2012-02-09,1,1,2,0,4,1,1,0.265,0.261988,0.562083,0.194037,173.52,163 +406,2012-02-10,1,1,2,0,5,1,2,0.280833,0.293558,0.54,0.116929,231.18,227 +407,2012-02-11,1,1,2,0,6,0,3,0.224167,0.210867,0.73125,0.289796,185.6,192 +408,2012-02-12,1,1,2,0,0,0,1,0.1275,0.101658,0.464583,0.409212,113.64,73 +409,2012-02-13,1,1,2,0,1,1,1,0.2225,0.227913,0.41125,0.167283,118.39,94 +410,2012-02-14,1,1,2,0,2,1,2,0.319167,0.333946,0.50875,0.141179,181.45,135 +411,2012-02-15,1,1,2,0,3,1,1,0.348333,0.351629,0.53125,0.1816,191.19,141 +412,2012-02-16,1,1,2,0,4,1,2,0.316667,0.330162,0.752917,0.091425,124.36,74 +413,2012-02-17,1,1,2,0,5,1,1,0.343333,0.351629,0.634583,0.205846,355.18,349 +414,2012-02-18,1,1,2,0,6,0,1,0.346667,0.355425,0.534583,0.190929,958.34,1435 +415,2012-02-19,1,1,2,0,0,0,2,0.28,0.265788,0.515833,0.253112,540.17,618 +416,2012-02-20,1,1,2,1,1,0,1,0.28,0.273391,0.507826,0.229083,449.93,502 +417,2012-02-21,1,1,2,0,2,1,1,0.287826,0.295113,0.594348,0.205717,187.22,163 +418,2012-02-22,1,1,2,0,3,1,1,0.395833,0.392667,0.567917,0.234471,339.83,394 +419,2012-02-23,1,1,2,0,4,1,1,0.454167,0.444446,0.554583,0.190913,518.6,516 +420,2012-02-24,1,1,2,0,5,1,2,0.4075,0.410971,0.7375,0.237567,373.84,246 +421,2012-02-25,1,1,2,0,6,0,1,0.290833,0.255675,0.395833,0.421642,400.42,317 +422,2012-02-26,1,1,2,0,0,0,1,0.279167,0.268308,0.41,0.205229,486.15,515 +423,2012-02-27,1,1,2,0,1,1,1,0.366667,0.357954,0.490833,0.268033,281.53,253 +424,2012-02-28,1,1,2,0,2,1,1,0.359167,0.353525,0.395833,0.193417,256.26,229 +425,2012-02-29,1,1,2,0,3,1,2,0.344348,0.34847,0.804783,0.179117,186.08,65 +426,2012-03-01,1,1,3,0,4,1,1,0.485833,0.475371,0.615417,0.226987,505.99,325 +427,2012-03-02,1,1,3,0,5,1,2,0.353333,0.359842,0.657083,0.144904,337.55,246 +428,2012-03-03,1,1,3,0,6,0,2,0.414167,0.413492,0.62125,0.161079,1068.01,956 +429,2012-03-04,1,1,3,0,0,0,1,0.325833,0.303021,0.403333,0.334571,713.69,710 +430,2012-03-05,1,1,3,0,1,1,1,0.243333,0.241171,0.50625,0.228858,190.89,203 +431,2012-03-06,1,1,3,0,2,1,1,0.258333,0.255042,0.456667,0.200875,194.73,221 +432,2012-03-07,1,1,3,0,3,1,1,0.404167,0.3851,0.513333,0.345779,400.3,432 +433,2012-03-08,1,1,3,0,4,1,1,0.5275,0.524604,0.5675,0.441563,781.13,486 +434,2012-03-09,1,1,3,0,5,1,2,0.410833,0.397083,0.407083,0.4148,540.93,447 +435,2012-03-10,1,1,3,0,6,0,1,0.2875,0.277767,0.350417,0.22575,839.5,968 +436,2012-03-11,1,1,3,0,0,0,1,0.361739,0.35967,0.476957,0.222587,1396.99,1658 +437,2012-03-12,1,1,3,0,1,1,1,0.466667,0.459592,0.489167,0.207713,796.4,838 +438,2012-03-13,1,1,3,0,2,1,1,0.565,0.542929,0.6175,0.23695,820.94,762 +439,2012-03-14,1,1,3,0,3,1,1,0.5725,0.548617,0.507083,0.115062,999.67,997 +440,2012-03-15,1,1,3,0,4,1,1,0.5575,0.532825,0.579583,0.149883,909.46,1005 +441,2012-03-16,1,1,3,0,5,1,2,0.435833,0.436229,0.842083,0.113192,631.48,548 +442,2012-03-17,1,1,3,0,6,0,2,0.514167,0.505046,0.755833,0.110704,2718.7,3155 +443,2012-03-18,1,1,3,0,0,0,2,0.4725,0.464,0.81,0.126883,2077.82,2207 +444,2012-03-19,1,1,3,0,1,1,1,0.545,0.532821,0.72875,0.162317,890.31,982 +445,2012-03-20,1,1,3,0,2,1,1,0.560833,0.538533,0.807917,0.121271,985.14,1051 +446,2012-03-21,2,1,3,0,3,1,2,0.531667,0.513258,0.82125,0.0895583,1072.89,1122 +447,2012-03-22,2,1,3,0,4,1,1,0.554167,0.531567,0.83125,0.117562,1145.7,1334 +448,2012-03-23,2,1,3,0,5,1,2,0.601667,0.570067,0.694167,0.1163,1969.9,2469 +449,2012-03-24,2,1,3,0,6,0,2,0.5025,0.486733,0.885417,0.192783,1218.79,1033 +450,2012-03-25,2,1,3,0,0,0,2,0.4375,0.437488,0.880833,0.220775,1322.13,1532 +451,2012-03-26,2,1,3,0,1,1,1,0.445833,0.43875,0.477917,0.386821,733.47,795 +452,2012-03-27,2,1,3,0,2,1,1,0.323333,0.315654,0.29,0.187192,409.84,531 +453,2012-03-28,2,1,3,0,3,1,1,0.484167,0.47095,0.48125,0.291671,761.27,674 +454,2012-03-29,2,1,3,0,4,1,1,0.494167,0.482304,0.439167,0.31965,822.91,834 +455,2012-03-30,2,1,3,0,5,1,2,0.37,0.375621,0.580833,0.138067,707.77,796 +456,2012-03-31,2,1,3,0,6,0,2,0.424167,0.421708,0.738333,0.250617,1910.25,2301 +457,2012-04-01,2,1,4,0,0,0,2,0.425833,0.417287,0.67625,0.172267,1300.92,2347 +458,2012-04-02,2,1,4,0,1,1,1,0.433913,0.427513,0.504348,0.312139,478.36,1208 +459,2012-04-03,2,1,4,0,2,1,1,0.466667,0.461483,0.396667,0.100133,1144.41,1348 +460,2012-04-04,2,1,4,0,3,1,1,0.541667,0.53345,0.469583,0.180975,983.52,1058 +461,2012-04-05,2,1,4,0,4,1,1,0.435,0.431163,0.374167,0.219529,1063.02,1192 +462,2012-04-06,2,1,4,0,5,1,1,0.403333,0.390767,0.377083,0.300388,1379.62,1807 +463,2012-04-07,2,1,4,0,6,0,1,0.4375,0.426129,0.254167,0.274871,1640.13,3252 +464,2012-04-08,2,1,4,0,0,0,1,0.5,0.492425,0.275833,0.232596,2239.0,2230 +465,2012-04-09,2,1,4,0,1,1,1,0.489167,0.476638,0.3175,0.358196,913.84,905 +466,2012-04-10,2,1,4,0,2,1,1,0.446667,0.436233,0.435,0.249375,771.46,819 +467,2012-04-11,2,1,4,0,3,1,1,0.348696,0.337274,0.469565,0.295274,439.08,482 +468,2012-04-12,2,1,4,0,4,1,1,0.3975,0.387604,0.46625,0.290429,606.62,663 +469,2012-04-13,2,1,4,0,5,1,1,0.4425,0.431808,0.408333,0.155471,1110.0,1252 +470,2012-04-14,2,1,4,0,6,0,1,0.495,0.487996,0.502917,0.190917,2548.23,2795 +471,2012-04-15,2,1,4,0,0,0,1,0.606667,0.573875,0.507917,0.225129,2475.67,2846 +472,2012-04-16,2,1,4,1,1,0,1,0.664167,0.614925,0.561667,0.284829,1526.37,1198 +473,2012-04-17,2,1,4,0,2,1,1,0.608333,0.598487,0.390417,0.273629,940.01,989 +474,2012-04-18,2,1,4,0,3,1,2,0.463333,0.457038,0.569167,0.167912,414.07,347 +475,2012-04-19,2,1,4,0,4,1,1,0.498333,0.493046,0.6125,0.0659292,823.86,846 +476,2012-04-20,2,1,4,0,5,1,1,0.526667,0.515775,0.694583,0.149871,971.22,1340 +477,2012-04-21,2,1,4,0,6,0,1,0.57,0.542921,0.682917,0.283587,2140.71,2541 +478,2012-04-22,2,1,4,0,0,0,3,0.396667,0.389504,0.835417,0.344546,393.0,120 +479,2012-04-23,2,1,4,0,1,1,2,0.321667,0.301125,0.766667,0.303496,201.15,195 +480,2012-04-24,2,1,4,0,2,1,1,0.413333,0.405283,0.454167,0.249383,517.51,518 +481,2012-04-25,2,1,4,0,3,1,1,0.476667,0.470317,0.427917,0.118792,741.6,655 +482,2012-04-26,2,1,4,0,4,1,2,0.498333,0.483583,0.756667,0.176625,505.87,475 +483,2012-04-27,2,1,4,0,5,1,1,0.4575,0.452637,0.400833,0.347633,1087.25,1014 +484,2012-04-28,2,1,4,0,6,0,2,0.376667,0.377504,0.489583,0.129975,1575.04,1120 +485,2012-04-29,2,1,4,0,0,0,1,0.458333,0.450121,0.587083,0.116908,2070.78,2229 +486,2012-04-30,2,1,4,0,1,1,2,0.464167,0.457696,0.57,0.171638,559.83,665 +487,2012-05-01,2,1,5,0,2,1,2,0.613333,0.577021,0.659583,0.156096,720.98,653 +488,2012-05-02,2,1,5,0,3,1,1,0.564167,0.537896,0.797083,0.138058,757.13,667 +489,2012-05-03,2,1,5,0,4,1,2,0.56,0.537242,0.768333,0.133696,772.48,764 +490,2012-05-04,2,1,5,0,5,1,1,0.6275,0.590917,0.735417,0.162938,1010.0,1069 +491,2012-05-05,2,1,5,0,6,0,2,0.621667,0.584608,0.756667,0.152992,2173.46,2496 +492,2012-05-06,2,1,5,0,0,0,2,0.5625,0.546737,0.74,0.149879,2036.06,2135 +493,2012-05-07,2,1,5,0,1,1,2,0.5375,0.527142,0.664167,0.230721,901.41,1008 +494,2012-05-08,2,1,5,0,2,1,2,0.581667,0.557471,0.685833,0.296029,761.42,738 +495,2012-05-09,2,1,5,0,3,1,2,0.575,0.553025,0.744167,0.216412,651.32,620 +496,2012-05-10,2,1,5,0,4,1,1,0.505833,0.491783,0.552083,0.314063,752.73,1026 +497,2012-05-11,2,1,5,0,5,1,1,0.533333,0.520833,0.360417,0.236937,1189.34,1319 +498,2012-05-12,2,1,5,0,6,0,1,0.564167,0.544817,0.480417,0.123133,2354.79,2622 +499,2012-05-13,2,1,5,0,0,0,1,0.6125,0.585238,0.57625,0.225117,2404.85,2172 +500,2012-05-14,2,1,5,0,1,1,2,0.573333,0.5499,0.789583,0.212692,711.01,342 +501,2012-05-15,2,1,5,0,2,1,2,0.611667,0.576404,0.794583,0.147392,662.51,625 +502,2012-05-16,2,1,5,0,3,1,1,0.636667,0.595975,0.697917,0.122512,924.59,991 +503,2012-05-17,2,1,5,0,4,1,1,0.593333,0.572613,0.52,0.229475,1087.1,1242 +504,2012-05-18,2,1,5,0,5,1,1,0.564167,0.551121,0.523333,0.136817,1159.66,1521 +505,2012-05-19,2,1,5,0,6,0,1,0.6,0.566908,0.45625,0.083975,2324.02,3410 +506,2012-05-20,2,1,5,0,0,0,1,0.620833,0.583967,0.530417,0.254367,2261.23,2704 +507,2012-05-21,2,1,5,0,1,1,2,0.598333,0.565667,0.81125,0.233204,681.3,630 +508,2012-05-22,2,1,5,0,2,1,2,0.615,0.580825,0.765833,0.118167,816.78,819 +509,2012-05-23,2,1,5,0,3,1,2,0.621667,0.584612,0.774583,0.102,782.89,766 +510,2012-05-24,2,1,5,0,4,1,1,0.655,0.6067,0.716667,0.172896,770.92,1059 +511,2012-05-25,2,1,5,0,5,1,1,0.68,0.627529,0.747083,0.14055,1142.53,1417 +512,2012-05-26,2,1,5,0,6,0,1,0.6925,0.642696,0.7325,0.198992,2228.59,2855 +513,2012-05-27,2,1,5,0,0,0,1,0.69,0.641425,0.697083,0.215171,2755.74,3283 +514,2012-05-28,2,1,5,1,1,0,1,0.7125,0.6793,0.67625,0.196521,2051.72,2557 +515,2012-05-29,2,1,5,0,2,1,1,0.7225,0.672992,0.684583,0.2954,867.01,880 +516,2012-05-30,2,1,5,0,3,1,2,0.656667,0.611129,0.67,0.134329,754.7,745 +517,2012-05-31,2,1,5,0,4,1,1,0.68,0.631329,0.492917,0.195279,1061.44,1100 +518,2012-06-01,2,1,6,0,5,1,2,0.654167,0.607962,0.755417,0.237563,633.64,533 +519,2012-06-02,2,1,6,0,6,0,1,0.583333,0.566288,0.549167,0.186562,2453.62,2795 +520,2012-06-03,2,1,6,0,0,0,1,0.6025,0.575133,0.493333,0.184087,2463.75,2494 +521,2012-06-04,2,1,6,0,1,1,1,0.5975,0.578283,0.487083,0.284833,872.42,1071 +522,2012-06-05,2,1,6,0,2,1,2,0.540833,0.525892,0.613333,0.209575,741.73,968 +523,2012-06-06,2,1,6,0,3,1,1,0.554167,0.542292,0.61125,0.077125,964.99,1027 +524,2012-06-07,2,1,6,0,4,1,1,0.6025,0.569442,0.567083,0.15735,843.84,1038 +525,2012-06-08,2,1,6,0,5,1,1,0.649167,0.597862,0.467917,0.175383,1283.74,1488 +526,2012-06-09,2,1,6,0,6,0,1,0.710833,0.648367,0.437083,0.144287,2512.2,2708 +527,2012-06-10,2,1,6,0,0,0,1,0.726667,0.663517,0.538333,0.133721,2268.6,2224 +528,2012-06-11,2,1,6,0,1,1,2,0.720833,0.659721,0.587917,0.207713,949.57,1017 +529,2012-06-12,2,1,6,0,2,1,2,0.653333,0.597875,0.833333,0.214546,524.35,477 +530,2012-06-13,2,1,6,0,3,1,1,0.655833,0.611117,0.582083,0.343279,811.09,1173 +531,2012-06-14,2,1,6,0,4,1,1,0.648333,0.624383,0.569583,0.253733,770.08,1180 +532,2012-06-15,2,1,6,0,5,1,1,0.639167,0.599754,0.589583,0.176617,1094.91,1563 +533,2012-06-16,2,1,6,0,6,0,1,0.631667,0.594708,0.504167,0.166667,2269.7,2963 +534,2012-06-17,2,1,6,0,0,0,1,0.5925,0.571975,0.59875,0.144904,2391.85,2634 +535,2012-06-18,2,1,6,0,1,1,2,0.568333,0.544842,0.777917,0.174746,684.91,653 +536,2012-06-19,2,1,6,0,2,1,1,0.688333,0.654692,0.69,0.148017,881.33,968 +537,2012-06-20,2,1,6,0,3,1,1,0.7825,0.720975,0.592083,0.113812,848.17,872 +538,2012-06-21,3,1,6,0,4,1,1,0.805833,0.752542,0.567917,0.118787,817.39,778 +539,2012-06-22,3,1,6,0,5,1,1,0.7775,0.724121,0.57375,0.182842,987.61,964 +540,2012-06-23,3,1,6,0,6,0,1,0.731667,0.652792,0.534583,0.179721,2496.19,2657 +541,2012-06-24,3,1,6,0,0,0,1,0.743333,0.674254,0.479167,0.145525,2301.43,2551 +542,2012-06-25,3,1,6,0,1,1,1,0.715833,0.654042,0.504167,0.300383,1037.13,1139 +543,2012-06-26,3,1,6,0,2,1,1,0.630833,0.594704,0.373333,0.347642,1038.46,1077 +544,2012-06-27,3,1,6,0,3,1,1,0.6975,0.640792,0.36,0.271775,999.82,1077 +545,2012-06-28,3,1,6,0,4,1,1,0.749167,0.675512,0.4225,0.17165,957.35,921 +546,2012-06-29,3,1,6,0,5,1,1,0.834167,0.786613,0.48875,0.165417,889.85,829 +547,2012-06-30,3,1,6,0,6,0,1,0.765,0.687508,0.60125,0.161071,1659.52,1455 +548,2012-07-01,3,1,7,0,0,0,1,0.815833,0.750629,0.51875,0.168529,1745.48,1421 +549,2012-07-02,3,1,7,0,1,1,1,0.781667,0.702038,0.447083,0.195267,948.28,904 +550,2012-07-03,3,1,7,0,2,1,1,0.780833,0.70265,0.492083,0.126237,990.45,1052 +551,2012-07-04,3,1,7,1,3,0,1,0.789167,0.732337,0.53875,0.13495,2323.42,2562 +552,2012-07-05,3,1,7,0,4,1,1,0.8275,0.761367,0.457917,0.194029,1220.9,1405 +553,2012-07-06,3,1,7,0,5,1,1,0.828333,0.752533,0.450833,0.146142,1209.02,1366 +554,2012-07-07,3,1,7,0,6,0,1,0.861667,0.804913,0.492083,0.163554,1301.93,1448 +555,2012-07-08,3,1,7,0,0,0,1,0.8225,0.790396,0.57375,0.125629,1266.67,1203 +556,2012-07-09,3,1,7,0,1,1,2,0.710833,0.654054,0.683333,0.180975,951.97,998 +557,2012-07-10,3,1,7,0,2,1,2,0.720833,0.664796,0.6675,0.151737,917.57,954 +558,2012-07-11,3,1,7,0,3,1,1,0.716667,0.650271,0.633333,0.151733,921.43,975 +559,2012-07-12,3,1,7,0,4,1,1,0.715833,0.654683,0.529583,0.146775,994.87,1032 +560,2012-07-13,3,1,7,0,5,1,2,0.731667,0.667933,0.485833,0.08085,1403.5,1511 +561,2012-07-14,3,1,7,0,6,0,2,0.703333,0.666042,0.699167,0.143679,2272.93,2355 +562,2012-07-15,3,1,7,0,0,0,1,0.745833,0.705196,0.717917,0.166667,1935.08,1920 +563,2012-07-16,3,1,7,0,1,1,1,0.763333,0.724125,0.645,0.164187,1018.11,1088 +564,2012-07-17,3,1,7,0,2,1,1,0.818333,0.755683,0.505833,0.114429,922.99,921 +565,2012-07-18,3,1,7,0,3,1,1,0.793333,0.745583,0.577083,0.137442,783.77,799 +566,2012-07-19,3,1,7,0,4,1,1,0.77,0.714642,0.600417,0.165429,895.09,888 +567,2012-07-20,3,1,7,0,5,1,2,0.665833,0.613025,0.844167,0.208967,593.85,747 +568,2012-07-21,3,1,7,0,6,0,3,0.595833,0.549912,0.865417,0.2133,1558.69,1264 +569,2012-07-22,3,1,7,0,0,0,2,0.6675,0.623125,0.7625,0.0939208,2283.39,2544 +570,2012-07-23,3,1,7,0,1,1,1,0.741667,0.690017,0.694167,0.138683,880.94,1135 +571,2012-07-24,3,1,7,0,2,1,1,0.750833,0.70645,0.655,0.211454,825.33,1140 +572,2012-07-25,3,1,7,0,3,1,1,0.724167,0.654054,0.45,0.1648,1055.54,1383 +573,2012-07-26,3,1,7,0,4,1,1,0.776667,0.739263,0.596667,0.284813,692.36,1036 +574,2012-07-27,3,1,7,0,5,1,1,0.781667,0.734217,0.594583,0.152992,1038.64,1259 +575,2012-07-28,3,1,7,0,6,0,1,0.755833,0.697604,0.613333,0.15735,2132.39,2234 +576,2012-07-29,3,1,7,0,0,0,1,0.721667,0.667933,0.62375,0.170396,2111.55,2153 +577,2012-07-30,3,1,7,0,1,1,1,0.730833,0.684987,0.66875,0.153617,949.54,1040 +578,2012-07-31,3,1,7,0,2,1,1,0.713333,0.662896,0.704167,0.165425,937.26,968 +579,2012-08-01,3,1,8,0,3,1,1,0.7175,0.667308,0.6775,0.141179,940.06,1074 +580,2012-08-02,3,1,8,0,4,1,1,0.7525,0.707088,0.659583,0.129354,1136.63,983 +581,2012-08-03,3,1,8,0,5,1,2,0.765833,0.722867,0.6425,0.215792,1044.04,1328 +582,2012-08-04,3,1,8,0,6,0,1,0.793333,0.751267,0.613333,0.257458,2067.04,2345 +583,2012-08-05,3,1,8,0,0,0,1,0.769167,0.731079,0.6525,0.290421,1539.45,1707 +584,2012-08-06,3,1,8,0,1,1,2,0.7525,0.710246,0.654167,0.129354,1186.24,1233 +585,2012-08-07,3,1,8,0,2,1,2,0.735833,0.697621,0.70375,0.116908,1186.1,1278 +586,2012-08-08,3,1,8,0,3,1,2,0.75,0.707717,0.672917,0.1107,1198.1,1263 +587,2012-08-09,3,1,8,0,4,1,1,0.755833,0.699508,0.620417,0.1561,1095.55,1196 +588,2012-08-10,3,1,8,0,5,1,2,0.715833,0.667942,0.715833,0.238813,961.39,1065 +589,2012-08-11,3,1,8,0,6,0,2,0.6925,0.638267,0.732917,0.206479,1686.4,2247 +590,2012-08-12,3,1,8,0,0,0,1,0.700833,0.644579,0.530417,0.122512,2110.01,2182 +591,2012-08-13,3,1,8,0,1,1,1,0.720833,0.662254,0.545417,0.136212,894.74,1207 +592,2012-08-14,3,1,8,0,2,1,1,0.726667,0.676779,0.686667,0.169158,1048.32,1128 +593,2012-08-15,3,1,8,0,3,1,1,0.706667,0.654037,0.619583,0.169771,1100.32,1198 +594,2012-08-16,3,1,8,0,4,1,1,0.719167,0.654688,0.519167,0.141796,961.67,1338 +595,2012-08-17,3,1,8,0,5,1,1,0.723333,0.2424,0.570833,0.231354,1194.64,1483 +596,2012-08-18,3,1,8,0,6,0,1,0.678333,0.618071,0.603333,0.177867,2094.2,2827 +597,2012-08-19,3,1,8,0,0,0,2,0.635833,0.603554,0.711667,0.08645,1961.22,1208 +598,2012-08-20,3,1,8,0,1,1,2,0.635833,0.595967,0.734167,0.129979,1039.11,1026 +599,2012-08-21,3,1,8,0,2,1,1,0.649167,0.601025,0.67375,0.0727708,1109.59,1081 +600,2012-08-22,3,1,8,0,3,1,1,0.6675,0.621854,0.677083,0.0702833,1104.03,1094 +601,2012-08-23,3,1,8,0,4,1,1,0.695833,0.637008,0.635833,0.0845958,1243.73,1363 +602,2012-08-24,3,1,8,0,5,1,2,0.7025,0.6471,0.615,0.0721458,1313.24,1325 +603,2012-08-25,3,1,8,0,6,0,2,0.661667,0.618696,0.712917,0.244408,1826.96,1829 +604,2012-08-26,3,1,8,0,0,0,2,0.653333,0.595996,0.845833,0.228858,1438.08,1483 +605,2012-08-27,3,1,8,0,1,1,1,0.703333,0.654688,0.730417,0.128733,1027.51,989 +606,2012-08-28,3,1,8,0,2,1,1,0.728333,0.66605,0.62,0.190925,944.89,935 +607,2012-08-29,3,1,8,0,3,1,1,0.685,0.635733,0.552083,0.112562,1091.46,1177 +608,2012-08-30,3,1,8,0,4,1,1,0.706667,0.652779,0.590417,0.0771167,1172.84,1172 +609,2012-08-31,3,1,8,0,5,1,1,0.764167,0.6894,0.5875,0.168533,1216.18,1433 +610,2012-09-01,3,1,9,0,6,0,2,0.753333,0.702654,0.638333,0.113187,2293.61,2352 +611,2012-09-02,3,1,9,0,0,0,2,0.696667,0.649,0.815,0.0640708,2368.83,2613 +612,2012-09-03,3,1,9,1,1,0,1,0.7075,0.661629,0.790833,0.151121,1975.17,1965 +613,2012-09-04,3,1,9,0,2,1,1,0.725833,0.686888,0.755,0.236321,812.92,867 +614,2012-09-05,3,1,9,0,3,1,1,0.736667,0.708983,0.74125,0.187808,807.37,832 +615,2012-09-06,3,1,9,0,4,1,2,0.696667,0.655329,0.810417,0.142421,671.12,611 +616,2012-09-07,3,1,9,0,5,1,1,0.703333,0.657204,0.73625,0.171646,1015.01,1045 +617,2012-09-08,3,1,9,0,6,0,2,0.659167,0.611121,0.799167,0.281104,1720.35,1557 +618,2012-09-09,3,1,9,0,0,0,1,0.61,0.578925,0.5475,0.224496,2481.06,2570 +619,2012-09-10,3,1,9,0,1,1,1,0.583333,0.565654,0.50375,0.258713,921.31,1118 +620,2012-09-11,3,1,9,0,2,1,1,0.5775,0.554292,0.52,0.0920542,1039.52,1070 +621,2012-09-12,3,1,9,0,3,1,1,0.599167,0.570075,0.577083,0.131846,984.38,1050 +622,2012-09-13,3,1,9,0,4,1,1,0.6125,0.579558,0.637083,0.0827208,1024.32,1054 +623,2012-09-14,3,1,9,0,5,1,1,0.633333,0.594083,0.6725,0.103863,1326.45,1379 +624,2012-09-15,3,1,9,0,6,0,1,0.608333,0.585867,0.501667,0.247521,2349.62,3160 +625,2012-09-16,3,1,9,0,0,0,1,0.58,0.563125,0.57,0.0901833,2195.75,2166 +626,2012-09-17,3,1,9,0,1,1,2,0.580833,0.55305,0.734583,0.151742,933.34,1022 +627,2012-09-18,3,1,9,0,2,1,2,0.623333,0.565067,0.8725,0.357587,510.41,371 +628,2012-09-19,3,1,9,0,3,1,1,0.5525,0.540404,0.536667,0.215175,800.06,788 +629,2012-09-20,3,1,9,0,4,1,1,0.546667,0.532192,0.618333,0.118167,953.95,939 +630,2012-09-21,3,1,9,0,5,1,1,0.599167,0.571971,0.66875,0.154229,1211.51,1250 +631,2012-09-22,3,1,9,0,6,0,1,0.65,0.610488,0.646667,0.283583,2256.35,2512 +632,2012-09-23,4,1,9,0,0,0,1,0.529167,0.518933,0.467083,0.223258,2338.91,2454 +633,2012-09-24,4,1,9,0,1,1,1,0.514167,0.502513,0.492917,0.142404,810.61,1001 +634,2012-09-25,4,1,9,0,2,1,1,0.55,0.544179,0.57,0.236321,833.54,845 +635,2012-09-26,4,1,9,0,3,1,1,0.635,0.596613,0.630833,0.2444,784.08,787 +636,2012-09-27,4,1,9,0,4,1,2,0.65,0.607975,0.690833,0.134342,751.06,751 +637,2012-09-28,4,1,9,0,5,1,2,0.619167,0.585863,0.69,0.164179,970.45,1045 +638,2012-09-29,4,1,9,0,6,0,1,0.5425,0.530296,0.542917,0.227604,2500.48,2589 +639,2012-09-30,4,1,9,0,0,0,1,0.526667,0.517663,0.583333,0.134958,2176.05,2015 +640,2012-10-01,4,1,10,0,1,1,2,0.520833,0.512,0.649167,0.0908042,779.68,763 +641,2012-10-02,4,1,10,0,2,1,3,0.590833,0.542333,0.871667,0.104475,371.85,315 +642,2012-10-03,4,1,10,0,3,1,2,0.6575,0.599133,0.79375,0.0665458,831.65,728 +643,2012-10-04,4,1,10,0,4,1,2,0.6575,0.607975,0.722917,0.117546,842.35,891 +644,2012-10-05,4,1,10,0,5,1,1,0.615,0.580187,0.6275,0.10635,1349.91,1516 +645,2012-10-06,4,1,10,0,6,0,1,0.554167,0.538521,0.664167,0.268025,2770.84,3031 +646,2012-10-07,4,1,10,0,0,0,2,0.415833,0.419813,0.708333,0.141162,1401.35,781 +647,2012-10-08,4,1,10,1,1,0,2,0.383333,0.387608,0.709583,0.189679,901.2,874 +648,2012-10-09,4,1,10,0,2,1,2,0.446667,0.438112,0.761667,0.1903,417.71,601 +649,2012-10-10,4,1,10,0,3,1,1,0.514167,0.503142,0.630833,0.187821,677.16,780 +650,2012-10-11,4,1,10,0,4,1,1,0.435,0.431167,0.463333,0.181596,791.95,834 +651,2012-10-12,4,1,10,0,5,1,1,0.4375,0.433071,0.539167,0.235092,920.6,1060 +652,2012-10-13,4,1,10,0,6,0,1,0.393333,0.391396,0.494583,0.146142,1949.49,2252 +653,2012-10-14,4,1,10,0,0,0,1,0.521667,0.508204,0.640417,0.278612,2240.74,2080 +654,2012-10-15,4,1,10,0,1,1,2,0.561667,0.53915,0.7075,0.296037,764.87,760 +655,2012-10-16,4,1,10,0,2,1,1,0.468333,0.460846,0.558333,0.182221,846.45,922 +656,2012-10-17,4,1,10,0,3,1,1,0.455833,0.450108,0.692917,0.101371,613.37,979 +657,2012-10-18,4,1,10,0,4,1,2,0.5225,0.512625,0.728333,0.236937,884.07,1008 +658,2012-10-19,4,1,10,0,5,1,2,0.563333,0.537896,0.815,0.134954,798.89,753 +659,2012-10-20,4,1,10,0,6,0,1,0.484167,0.472842,0.572917,0.117537,2529.15,2806 +660,2012-10-21,4,1,10,0,0,0,1,0.464167,0.456429,0.51,0.166054,2060.61,2132 +661,2012-10-22,4,1,10,0,1,1,1,0.4875,0.482942,0.568333,0.0814833,825.74,830 +662,2012-10-23,4,1,10,0,2,1,1,0.544167,0.530304,0.641667,0.0945458,847.66,841 +663,2012-10-24,4,1,10,0,3,1,1,0.5875,0.558721,0.63625,0.0727792,906.42,795 +664,2012-10-25,4,1,10,0,4,1,2,0.55,0.529688,0.800417,0.124375,821.03,875 +665,2012-10-26,4,1,10,0,5,1,2,0.545833,0.52275,0.807083,0.132467,989.92,1182 +666,2012-10-27,4,1,10,0,6,0,2,0.53,0.515133,0.72,0.235692,2463.8,2643 +667,2012-10-28,4,1,10,0,0,0,2,0.4775,0.467771,0.694583,0.398008,1243.27,998 +668,2012-10-29,4,1,10,0,1,1,3,0.44,0.4394,0.88,0.3582,99.67,2 +669,2012-10-30,4,1,10,0,2,1,2,0.318182,0.309909,0.825455,0.213009,161.82,87 +670,2012-10-31,4,1,10,0,3,1,2,0.3575,0.3611,0.666667,0.166667,328.86,419 +671,2012-11-01,4,1,11,0,4,1,2,0.365833,0.369942,0.581667,0.157346,447.09,466 +672,2012-11-02,4,1,11,0,5,1,1,0.355,0.356042,0.522083,0.266175,575.5,618 +673,2012-11-03,4,1,11,0,6,0,2,0.343333,0.323846,0.49125,0.270529,950.31,1029 +674,2012-11-04,4,1,11,0,0,0,1,0.325833,0.329538,0.532917,0.179108,1083.43,1201 +675,2012-11-05,4,1,11,0,1,1,1,0.319167,0.308075,0.494167,0.236325,284.94,378 +676,2012-11-06,4,1,11,0,2,1,1,0.280833,0.281567,0.567083,0.173513,409.17,466 +677,2012-11-07,4,1,11,0,3,1,2,0.295833,0.274621,0.5475,0.304108,281.76,326 +678,2012-11-08,4,1,11,0,4,1,1,0.352174,0.341891,0.333478,0.347835,447.4,340 +679,2012-11-09,4,1,11,0,5,1,1,0.361667,0.355413,0.540833,0.214558,676.45,709 +680,2012-11-10,4,1,11,0,6,0,1,0.389167,0.393937,0.645417,0.0578458,1423.7,2090 +681,2012-11-11,4,1,11,0,0,0,1,0.420833,0.421713,0.659167,0.1275,2038.5,2290 +682,2012-11-12,4,1,11,1,1,0,1,0.485,0.475383,0.741667,0.173517,1225.84,1097 +683,2012-11-13,4,1,11,0,2,1,2,0.343333,0.323225,0.662917,0.342046,296.97,327 +684,2012-11-14,4,1,11,0,3,1,1,0.289167,0.281563,0.552083,0.199625,344.65,373 +685,2012-11-15,4,1,11,0,4,1,2,0.321667,0.324492,0.620417,0.152987,330.47,320 +686,2012-11-16,4,1,11,0,5,1,1,0.345,0.347204,0.524583,0.171025,489.5,484 +687,2012-11-17,4,1,11,0,6,0,1,0.325,0.326383,0.545417,0.179729,1171.18,1313 +688,2012-11-18,4,1,11,0,0,0,1,0.3425,0.337746,0.692917,0.227612,879.02,922 +689,2012-11-19,4,1,11,0,1,1,2,0.380833,0.375621,0.623333,0.235067,392.82,449 +690,2012-11-20,4,1,11,0,2,1,2,0.374167,0.380667,0.685,0.082725,468.56,534 +691,2012-11-21,4,1,11,0,3,1,1,0.353333,0.364892,0.61375,0.103246,551.69,615 +692,2012-11-22,4,1,11,1,4,0,1,0.34,0.350371,0.580417,0.0528708,939.61,955 +693,2012-11-23,4,1,11,0,5,1,1,0.368333,0.378779,0.56875,0.148021,1289.7,1603 +694,2012-11-24,4,1,11,0,6,0,1,0.278333,0.248742,0.404583,0.376871,476.36,532 +695,2012-11-25,4,1,11,0,0,0,1,0.245833,0.257583,0.468333,0.1505,336.16,309 +696,2012-11-26,4,1,11,0,1,1,1,0.313333,0.339004,0.535417,0.04665,333.79,337 +697,2012-11-27,4,1,11,0,2,1,2,0.291667,0.281558,0.786667,0.237562,170.7,123 +698,2012-11-28,4,1,11,0,3,1,1,0.296667,0.289762,0.50625,0.210821,237.85,198 +699,2012-11-29,4,1,11,0,4,1,1,0.28087,0.298422,0.555652,0.115522,287.35,243 +700,2012-11-30,4,1,11,0,5,1,1,0.298333,0.323867,0.649583,0.0584708,413.32,362 +701,2012-12-01,4,1,12,0,6,0,2,0.298333,0.316904,0.806667,0.0597042,840.33,951 +702,2012-12-02,4,1,12,0,0,0,2,0.3475,0.359208,0.823333,0.124379,732.51,892 +703,2012-12-03,4,1,12,0,1,1,1,0.4525,0.455796,0.7675,0.0827208,651.13,555 +704,2012-12-04,4,1,12,0,2,1,1,0.475833,0.469054,0.73375,0.174129,571.01,551 +705,2012-12-05,4,1,12,0,3,1,1,0.438333,0.428012,0.485,0.324021,401.95,331 +706,2012-12-06,4,1,12,0,4,1,1,0.255833,0.258204,0.50875,0.174754,312.81,340 +707,2012-12-07,4,1,12,0,5,1,2,0.320833,0.321958,0.764167,0.1306,310.28,349 +708,2012-12-08,4,1,12,0,6,0,2,0.381667,0.389508,0.91125,0.101379,984.79,1153 +709,2012-12-09,4,1,12,0,0,0,2,0.384167,0.390146,0.905417,0.157975,846.72,441 +710,2012-12-10,4,1,12,0,1,1,2,0.435833,0.435575,0.925,0.190308,278.0,329 +711,2012-12-11,4,1,12,0,2,1,2,0.353333,0.338363,0.596667,0.296037,273.2,282 +712,2012-12-12,4,1,12,0,3,1,2,0.2975,0.297338,0.538333,0.162937,293.27,310 +713,2012-12-13,4,1,12,0,4,1,1,0.295833,0.294188,0.485833,0.174129,368.97,425 +714,2012-12-14,4,1,12,0,5,1,1,0.281667,0.294192,0.642917,0.131229,385.39,429 +715,2012-12-15,4,1,12,0,6,0,1,0.324167,0.338383,0.650417,0.10635,806.2,767 +716,2012-12-16,4,1,12,0,0,0,2,0.3625,0.369938,0.83875,0.100742,673.8,538 +717,2012-12-17,4,1,12,0,1,1,2,0.393333,0.4015,0.907083,0.0982583,215.4,212 +718,2012-12-18,4,1,12,0,2,1,1,0.410833,0.409708,0.66625,0.221404,402.46,433 +719,2012-12-19,4,1,12,0,3,1,1,0.3325,0.342162,0.625417,0.184092,338.89,333 +720,2012-12-20,4,1,12,0,4,1,2,0.33,0.335217,0.667917,0.132463,300.16,314 +721,2012-12-21,1,1,12,0,5,1,2,0.326667,0.301767,0.556667,0.374383,276.03,221 +722,2012-12-22,1,1,12,0,6,0,1,0.265833,0.236113,0.44125,0.407346,272.61,205 +723,2012-12-23,1,1,12,0,0,0,1,0.245833,0.259471,0.515417,0.133083,367.57,408 +724,2012-12-24,1,1,12,0,1,1,2,0.231304,0.2589,0.791304,0.0772304,179.15,174 +725,2012-12-25,1,1,12,1,2,0,2,0.291304,0.294465,0.734783,0.168726,354.36,440 +726,2012-12-26,1,1,12,0,3,1,3,0.243333,0.220333,0.823333,0.316546,77.37,9 +727,2012-12-27,1,1,12,0,4,1,2,0.254167,0.226642,0.652917,0.350133,220.43,247 +728,2012-12-28,1,1,12,0,5,1,2,0.253333,0.255046,0.59,0.155471,238.72,644 +729,2012-12-29,1,1,12,0,6,0,2,0.253333,0.2424,0.752917,0.124383,219.06,159 +730,2012-12-30,1,1,12,0,0,0,1,0.255833,0.2317,0.483333,0.350754,269.62,364 +731,2012-12-31,1,1,12,0,1,1,2,0.215833,0.223487,0.5775,0.154846,298.24,439