[
  {
    "path": ".codeboarding/External_Integration_Layer.md",
    "content": "```mermaid\n\ngraph LR\n\n    API_Core[\"API Core\"]\n\n    Streaming_Module[\"Streaming Module\"]\n\n    DeepFace_Facade[\"DeepFace Facade\"]\n\n    Common_Utilities[\"Common Utilities\"]\n\n    Models[\"Models\"]\n\n    API_Core -- \"delegates requests to\" --> DeepFace_Facade\n\n    Streaming_Module -- \"delegates requests to\" --> DeepFace_Facade\n\n    API_Core -- \"uses\" --> Common_Utilities\n\n    Streaming_Module -- \"uses\" --> Common_Utilities\n\n    DeepFace_Facade -- \"interacts with to manage and utilize\" --> Models\n\n    DeepFace_Facade -- \"uses for logging and image processing\" --> Common_Utilities\n\n    Common_Utilities -- \"provides services to\" --> API_Core\n\n    Common_Utilities -- \"provides services to\" --> DeepFace_Facade\n\n    Common_Utilities -- \"provides services to\" --> Streaming_Module\n\n    Models -- \"are used by\" --> DeepFace_Facade\n\n```\n\n[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)\n\n\n\n## Component Details\n\n\n\nThe `External Integration Layer` is a crucial component that acts as the primary interface between the DeepFace library and external applications or systems. It is designed to expose DeepFace's powerful facial analysis capabilities through well-defined interaction patterns, specifically a RESTful API and a real-time streaming module. This layer is fundamental because it enables DeepFace to be integrated into a wide array of applications, such as web services, mobile applications, or live video surveillance systems, without requiring direct Python code interaction from the external system.\n\n\n\n### API Core\n\nThis component is responsible for handling all REST API interactions. It defines the various endpoints that external systems can call to access DeepFace functionalities (e.g., face verification, analysis, detection). It manages the parsing of incoming HTTP requests, validates the input data, orchestrates the calls to the underlying DeepFace functionalities, and formats the responses before sending them back to the client. It essentially translates HTTP requests into DeepFace operations and vice-versa.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/api.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.api` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/app.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.app` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/modules/core/routes.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.modules.core.routes` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/modules/core/service.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.modules.core.service` (1:1)</a>\n\n\n\n\n\n### Streaming Module\n\nThis component specializes in processing real-time video streams for continuous facial analysis. It handles the ingestion of video frames, applies DeepFace's face detection, recognition, and demography analysis algorithms to each frame, and can output the results in a continuous manner. This is essential for applications requiring live monitoring or interactive facial analysis.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/streaming.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.streaming` (1:1)</a>\n\n\n\n\n\n### DeepFace Facade\n\nThis component serves as the central entry point and a simplified interface to the core DeepFace functionalities. It orchestrates calls to various internal DeepFace modules (e.g., for facial representation, verification, analysis, detection, and model management). It abstracts away the complexity of the underlying deep learning models and their specific implementations, providing a clean and consistent API for higher-level components like the `API Core` and `Streaming Module`.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/DeepFace.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.DeepFace` (1:1)</a>\n\n\n\n\n\n### Common Utilities\n\nThis component provides a collection of shared utility functions and helper modules that are utilized across various parts of the DeepFace project, including the `External Integration Layer`. Key functionalities include robust logging for debugging and monitoring, and efficient image handling (loading, preprocessing, manipulation) which is critical for any image-based deep learning application.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/logger.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.logger` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/image_utils.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.image_utils` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/package_utils.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.package_utils` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/folder_utils.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.folder_utils` (1:1)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/weight_utils.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.weight_utils` (1:1)</a>\n\n\n\n\n\n### Models\n\nThis component is responsible for defining, loading, and managing the various deep learning models used by DeepFace for its core tasks, such as facial recognition, face detection, and demography analysis (age, gender, emotion, race). It handles the instantiation and potentially caching of these models to optimize performance.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- `deepface.models.demography` (1:1)\n\n- `deepface.models.face_detection` (1:1)\n\n- `deepface.models.facial_recognition` (1:1)\n\n- `deepface.models.spoofing` (1:1)\n\n\n\n\n\n\n\n\n\n### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)"
  },
  {
    "path": ".codeboarding/Facial_Analysis_Engine.md",
    "content": "```mermaid\n\ngraph LR\n\n    FaceDetection[\"FaceDetection\"]\n\n```\n\n[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)\n\n\n\n## Component Details\n\n\n\nInitial analysis of the deepface library, focusing on the detection module. Further analysis is needed to identify more components and their relationships across other modules like demography, modeling, and recognition. The current focus is on understanding the core functionalities within detection.py and how they contribute to the overall face analysis process. Future steps will involve analyzing other modules and establishing relationships between them to build a comprehensive understanding of the library's architecture and data flow. The 'referenced_source_code' for 'detect_faces' and 'extract_faces' is a placeholder as the exact line numbers are not yet known without the file content.\n\n\n\n### FaceDetection\n\nHandles face detection functionalities.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/detection.py#L191-L267\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.detection.detect_faces` (191:267)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/detection.py#L20-L188\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.detection.extract_faces` (20:188)</a>\n\n\n\n\n\n\n\n\n\n### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)"
  },
  {
    "path": ".codeboarding/Model_Management_System.md",
    "content": "```mermaid\n\ngraph LR\n\n    deepface_modules_modeling[\"deepface.modules.modeling\"]\n\n    deepface_commons_weight_utils[\"deepface.commons.weight_utils\"]\n\n    deepface_models_Demography[\"deepface.models.Demography\"]\n\n    deepface_models_Detector[\"deepface.models.Detector\"]\n\n    deepface_models_FacialRecognition[\"deepface.models.FacialRecognition\"]\n\n    deepface_models_spoofing_FasNet[\"deepface.models.spoofing.FasNet\"]\n\n    deepface_models_spoofing_FasNetBackbone[\"deepface.models.spoofing.FasNetBackbone\"]\n\n    deepface_modules_modeling -- \"loads\" --> deepface_models_Demography\n\n    deepface_modules_modeling -- \"loads\" --> deepface_models_Detector\n\n    deepface_modules_modeling -- \"loads\" --> deepface_models_FacialRecognition\n\n    deepface_modules_modeling -- \"loads\" --> deepface_models_spoofing_FasNet\n\n    deepface_models_spoofing_FasNet -- \"downloads weights via\" --> deepface_commons_weight_utils\n\n    deepface_models_spoofing_FasNet -- \"builds upon\" --> deepface_models_spoofing_FasNetBackbone\n\n```\n\n[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)\n\n\n\n## Component Details\n\n\n\nThe Model Management System in DeepFace is crucial for handling the diverse range of deep learning models used for facial recognition, detection, demography, and anti-spoofing. It provides a unified and efficient way to load, manage, and utilize these models, abstracting away the underlying complexities of different backends and ensuring pre-trained weights are readily available.\n\n\n\n### deepface.modules.modeling\n\nThis module acts as the central orchestrator for the Model Management System. Its primary function, `build_model`, is responsible for dynamically loading and caching various deep learning models (facial recognition, detection, demography, anti-spoofing) based on the requested task and model name. It ensures that models are loaded efficiently, often employing a singleton pattern to reuse already initialized models, thereby providing a unified interface for the rest of the DeepFace system to access pre-trained models.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/modeling.py#L32-L104\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.modeling:build_model` (32:104)</a>\n\n\n\n\n\n### deepface.commons.weight_utils\n\nThis utility module is vital for managing pre-trained model weights. Its core function, `download_weights_if_necessary`, handles the downloading, caching, and verification of model weights from external URLs. It supports various compression types and ensures that the necessary model files are available locally before models are loaded, directly addressing the system's need for efficient weight management and utilization.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/weight_utils.py#L27-L76\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.weight_utils:download_weights_if_necessary` (27:76)</a>\n\n\n\n\n\n### deepface.models.Demography\n\nThis is an abstract base class that defines the common interface and structure for all demography-related models (e.g., age, gender, emotion, race prediction) within DeepFace. It specifies methods like `predict` and internal preprocessing utilities, ensuring a consistent API for demography models.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/Demography.py#L20-L21\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.Demography:predict` (20:21)</a>\n\n\n\n\n\n### deepface.models.Detector\n\nThis abstract base class defines the common interface and structure for all face detection models (e.g., OpenCV, MTCNN, RetinaFace) within DeepFace. It specifies the `detect_faces` method, which is crucial for locating facial areas in images before further analysis.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/Detector.py#L11-L27\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.Detector:detect_faces` (11:27)</a>\n\n\n\n\n\n### deepface.models.FacialRecognition\n\nThis abstract base class defines the common interface and structure for all facial recognition models (e.g., VGG-Face, FaceNet, ArcFace) within DeepFace. It specifies the `forward` method for generating facial embeddings, which are central to identity verification and recognition tasks.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/FacialRecognition.py#L21-L47\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.FacialRecognition:forward` (21:47)</a>\n\n\n\n\n\n### deepface.models.spoofing.FasNet\n\nThis class represents a concrete implementation of an anti-spoofing model, specifically the Mini Face Anti Spoofing Net. It demonstrates how specific deep learning models are structured, initialized, and integrated into the DeepFace system, including the loading of its specific pre-trained weights and performing anti-spoofing analysis.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/spoofing/FasNet.py#L1-L1\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.spoofing.FasNet` (1:1)</a>\n\n\n\n\n\n### deepface.models.spoofing.FasNetBackbone\n\nThis module defines the core neural network architectures, such as `MiniFASNet`, that serve as the backbone for anti-spoofing models like `FasNet`. It encapsulates the complex convolutional layers, depth-wise separable convolutions, and residual blocks that form the deep learning model's structure.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/spoofing/FasNetBackbone.py#L356-L465\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.spoofing.FasNetBackbone:MiniFASNet` (356:465)</a>\n\n\n\n\n\n\n\n\n\n### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)"
  },
  {
    "path": ".codeboarding/Utility_Infrastructure_Layer.md",
    "content": "```mermaid\n\ngraph LR\n\n    Utility_Infrastructure_Layer[\"Utility & Infrastructure Layer\"]\n\n    API_Core -- \"uses\" --> Utility_Infrastructure_Layer\n\n    DeepFace_Facade -- \"uses\" --> Utility_Infrastructure_Layer\n\n    Streaming_Module -- \"uses\" --> Utility_Infrastructure_Layer\n\n    Models -- \"uses\" --> Utility_Infrastructure_Layer\n\n    click Utility_Infrastructure_Layer href \"https://github.com/serengil/deepface/blob/main/.codeboarding//Utility_Infrastructure_Layer.md\" \"Details\"\n\n```\n\n[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)\n\n\n\n## Component Details\n\n\n\nAnalysis of the Utility & Infrastructure Layer within the DeepFace library, detailing its components, purpose, and relationships with other key modules. This layer provides foundational services like image handling, logging, file system operations, and model weight management, which are crucial for the entire DeepFace library's functionality and efficiency. It serves as a bedrock for components such as API Core, DeepFace Facade, Streaming Module, and Models, ensuring reusability and consistency across the application by centralizing common, non-domain-specific functionalities.\n\n\n\n### Utility & Infrastructure Layer\n\nThis foundational component provides essential helper functions and cross-cutting concerns used throughout the entire DeepFace library. It includes utilities for image loading and manipulation, centralized logging, file system operations, package-related utilities, constants, and crucially, utilities for managing and loading model weights. It ensures consistency and efficiency for common, non-domain-specific tasks.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/constant.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`constant` (0:0)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/folder_utils.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`folder_utils` (0:0)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/image_utils.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`image_utils` (0:0)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/logger.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`logger` (0:0)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/package_utils.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`package_utils` (0:0)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/weight_utils.py#L0-L0\" target=\"_blank\" rel=\"noopener noreferrer\">`weight_utils` (0:0)</a>\n\n\n\n\n\n\n\n\n\n### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)"
  },
  {
    "path": ".codeboarding/on_boarding.md",
    "content": "```mermaid\n\ngraph LR\n\n    DeepFace_Public_API[\"DeepFace Public API\"]\n\n    Model_Management_System[\"Model Management System\"]\n\n    Facial_Analysis_Engine[\"Facial Analysis Engine\"]\n\n    Utility_Infrastructure_Layer[\"Utility & Infrastructure Layer\"]\n\n    External_Integration_Layer[\"External Integration Layer\"]\n\n    DeepFace_Public_API -- \"Delegates to\" --> Facial_Analysis_Engine\n\n    DeepFace_Public_API -- \"Delegates to\" --> Model_Management_System\n\n    Model_Management_System -- \"Provides models to\" --> Facial_Analysis_Engine\n\n    Model_Management_System -- \"Uses\" --> Utility_Infrastructure_Layer\n\n    Facial_Analysis_Engine -- \"Requests models from\" --> Model_Management_System\n\n    Facial_Analysis_Engine -- \"Uses\" --> Utility_Infrastructure_Layer\n\n    Utility_Infrastructure_Layer -- \"Supports\" --> DeepFace_Public_API\n\n    Utility_Infrastructure_Layer -- \"Supports\" --> Model_Management_System\n\n    Utility_Infrastructure_Layer -- \"Supports\" --> Facial_Analysis_Engine\n\n    Utility_Infrastructure_Layer -- \"Supports\" --> External_Integration_Layer\n\n    External_Integration_Layer -- \"Invokes\" --> DeepFace_Public_API\n\n    External_Integration_Layer -- \"Uses\" --> Utility_Infrastructure_Layer\n\n    click Model_Management_System href \"https://github.com/serengil/deepface/blob/main/.codeboarding//Model_Management_System.md\" \"Details\"\n\n    click Facial_Analysis_Engine href \"https://github.com/serengil/deepface/blob/main/.codeboarding//Facial_Analysis_Engine.md\" \"Details\"\n\n    click Utility_Infrastructure_Layer href \"https://github.com/serengil/deepface/blob/main/.codeboarding//Utility_Infrastructure_Layer.md\" \"Details\"\n\n    click External_Integration_Layer href \"https://github.com/serengil/deepface/blob/main/.codeboarding//External_Integration_Layer.md\" \"Details\"\n\n```\n\n[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)\n\n\n\n## Component Details\n\n\n\nFinal Architecture Analysis for `deepface`\n\n\n\nBased on the Control Flow Graph (CFG) and Source Code analysis, the `deepface` project's architecture can be effectively summarized into five fundamental components. These components are chosen for their distinct responsibilities, high cohesion, and critical roles in the overall system's operation.\n\n\n\nWhy these components are fundamental:\n\n\n\nThese five components represent a clear and logical separation of concerns within the `deepface` project, making the architecture modular, maintainable, and scalable.\n\n\n\n1.  **DeepFace Public API**: This is fundamental because it defines the user experience and the primary interaction model with the library. It abstracts internal complexities, providing a clean and stable interface for developers.\n\n2.  **Model Management System**: DeepFace is built upon deep learning models. This component is absolutely critical for handling the acquisition, loading, and efficient management of these models, which are the core intellectual property and functional backbone of the library. Without it, every analysis task would need to manage its own model lifecycle.\n\n3.  **Facial Analysis Engine**: This is the \"brain\" of DeepFace, where all the specialized algorithms for face detection, recognition, and attribute analysis reside. It's fundamental because it encapsulates the core domain logic and the complex computational tasks that define the library's purpose.\n\n4.  **Utility & Infrastructure Layer**: This component provides essential cross-cutting services that are required by almost every other part of the system (e.g., logging, image handling). It's fundamental for ensuring consistency, reducing code duplication, and providing a robust foundation for the entire application.\n\n5.  **External Integration Layer**: This component is crucial for the broader applicability and deployability of DeepFace. By providing a REST API and streaming capabilities, it allows the library to be consumed by various applications and systems beyond direct Python scripting, making it a versatile and production-ready solution.\n\n\n\nTogether, these components form a cohesive and well-structured architecture that effectively manages the complexities of deep learning-based facial analysis, from model management to user interaction and external integration.\n\n\n\n### DeepFace Public API\n\nThis component serves as the primary public interface and orchestration layer for the entire DeepFace library. It provides high-level, user-friendly functions (`verify`, `analyze`, `represent`, `find`, `stream`, `extract_faces`, `build_model`) that abstract the underlying complexities of facial analysis. It acts as a facade, delegating tasks to specialized internal modules and ensuring a clean, consistent API for consumers.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/DeepFace.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.DeepFace` (1:1000)</a>\n\n\n\n\n\n### Model Management System\n\nThis component is responsible for the lifecycle management of all deep learning models used by DeepFace. This includes dynamic loading, building, caching, and ensuring that pre-trained model weights are correctly downloaded and utilized. It abstracts the complexities of various model backends (e.g., TensorFlow, Keras) and provides a unified interface for accessing different types of models (facial recognition, detection, demography, anti-spoofing).\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/modeling.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.modeling` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/weight_utils.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.weight_utils` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/Demography.py#L15-L67\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.Demography` (15:67)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/Detector.py#L9-L27\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.Detector` (9:27)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/FacialRecognition.py#L15-L47\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.FacialRecognition` (15:47)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/models/spoofing/FasNet.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.models.spoofing.FasNet` (1:1000)</a>\n\n\n\n\n\n### Facial Analysis Engine\n\nThis is the algorithmic core of DeepFace, containing the specialized modules that perform the actual facial analysis tasks. Each module within this component handles a specific aspect: face detection, facial representation (embedding generation), identity verification, identity recognition, demographic attribute prediction (age, gender, emotion, race), and image preprocessing (alignment, normalization). It encapsulates the complex machine learning logic.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/detection.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.detection` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/representation.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.representation` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/verification.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.verification` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/recognition.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.recognition` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/demography.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.demography` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/preprocessing.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.preprocessing` (1:1000)</a>\n\n\n\n\n\n### Utility & Infrastructure Layer\n\nThis foundational component provides essential helper functions and cross-cutting concerns used throughout the entire DeepFace library. It includes utilities for image loading and manipulation, centralized logging, file system operations, package-related utilities, and constants. It ensures consistency and efficiency for common, non-domain-specific tasks.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/image_utils.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.image_utils` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/logger.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.logger` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/folder_utils.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.folder_utils` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/package_utils.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.package_utils` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/commons/constant.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.commons.constant` (1:1000)</a>\n\n\n\n\n\n### External Integration Layer\n\nThis component is responsible for exposing DeepFace functionalities to external systems and handling specific interaction patterns beyond direct Python function calls. It primarily includes the REST API, which defines endpoints, parses incoming HTTP requests, and formats responses, and the streaming module, which manages real-time facial analysis from video feeds. It acts as the bridge for integrating DeepFace into web applications or live video processing pipelines.\n\n\n\n\n\n**Related Classes/Methods**:\n\n\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/api.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.api` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/app.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.app` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/modules/core/routes.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.modules.core.routes` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/api/src/modules/core/service.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.api.src.modules.core.service` (1:1000)</a>\n\n- <a href=\"https://github.com/serengil/deepface/blob/master/deepface/modules/streaming.py#L1-L1000\" target=\"_blank\" rel=\"noopener noreferrer\">`deepface.modules.streaming` (1:1000)</a>\n\n\n\n\n\n\n\n\n\n### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)"
  },
  {
    "path": ".gitattributes",
    "content": "*.ipynb linguist-vendored"
  },
  {
    "path": ".github/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, religion, or sexual identity\nand orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the\n  overall community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or\n  advances of any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email\n  address, without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at serengil@gmail.com.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series\nof actions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or\npermanent ban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior,  harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within\nthe community.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.0, available at\nhttps://www.contributor-covenant.org/version/2/0/code_of_conduct.html.\n\nCommunity Impact Guidelines were inspired by [Mozilla's code of conduct\nenforcement ladder](https://github.com/mozilla/diversity).\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see the FAQ at\nhttps://www.contributor-covenant.org/faq. Translations are available at\nhttps://www.contributor-covenant.org/translations.\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "github: serengil\npatreon: serengil\nbuy_me_a_coffee: serengil\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/01-report-bug.yaml",
    "content": "name: '🐛 Report a bug'\ndescription: 'Use this template to report DeepFace related issues'\ntitle: '[BUG]: <short description of the issue>'\nlabels:\n  - bug\nbody:\n  - type: checkboxes\n    id: preliminary-checks\n    attributes:\n      label: Before You Report a Bug, Please Confirm You Have Done The Following...\n      description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!\n      options:\n        - label: I have updated to the latest version of the packages.\n          required: true\n        - label: I have searched for both [existing issues](https://github.com/serengil/deepface/issues) and [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed) and found none that matched my issue.\n          required: true\n  - type: input\n    id: deepface-version\n    attributes:\n      label: DeepFace's version\n      description: |\n        Please provide your deepface version with calling the command `python -c \"import deepface; print(deepface.__version__)\"` in your terminal\n      placeholder: e.g. v0.0.90\n    validations:\n      required: true\n  - type: input\n    id: python-version\n    attributes:\n      label: Python version\n      description: |\n        Please provide your python programming language's version with calling `python --version` in your terminal\n      placeholder: e.g. 3.8.5\n    validations:\n      required: true\n  - type: input\n    id: os\n    attributes:\n      label: Operating System\n      description: |\n        Please provide your operation system's details\n      placeholder: e.g. Windows 10 or Ubuntu 20.04\n    validations:\n      required: false\n  - type: textarea\n    id: dependencies\n    attributes:\n      label: Dependencies\n      description: |\n        Please provide python dependencies with calling `pip freeze` in your terminal, in particular tensorflow's and keras' versions\n    validations:\n      required: true\n  - type: textarea\n    id: repro-code\n    attributes:\n      label: Reproducible example\n      description: A ***minimal*** code sample which reproduces the issue\n      render: Python\n    validations:\n      required: true\n  - type: textarea\n    id: exception-message\n    attributes:\n      label: Relevant Log Output\n      description: Please share the exception message from your terminal if your program is failing\n    validations:\n      required: false\n  - type: textarea\n    id: expected\n    attributes:\n      label: Expected Result\n      description: What did you expect to happen? \n    validations:\n      required: false\n  - type: textarea\n    id: actual\n    attributes:\n      label: What happened instead?\n      description: What actually happened?\n    validations:\n      required: false\n  - type: textarea\n    id: additional\n    attributes:\n      label: Additional Info\n      description: |\n        Any additional info you'd like to provide.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/02-request-feature.yaml",
    "content": "name: '✨ Request a New Feature'\ndescription: 'Use this template to propose a new feature'\ntitle: '[FEATURE]: <a short description of my proposal>'\nlabels:\n  - 'enhancement'\nbody:\n  - type: textarea\n    id: description\n    attributes:\n      label: Description\n      description: Explain what your proposed feature would do and why this is useful.\n    validations:\n      required: true\n  - type: textarea\n    id: additional\n    attributes:\n      label: Additional Info\n      description: Any additional info you'd like to provide."
  },
  {
    "path": ".github/ISSUE_TEMPLATE/03-documentation.yaml",
    "content": "name: '📝 Documentation'\ndescription: 'Use this template to add or improve docs'\ntitle: '[DOC]: <a short description of my proposal>'\nlabels:\n  - documentation\nbody:\n  - type: textarea\n    attributes:\n      label: Suggested Changes\n      description: What would you like to see happen in the docs?\n    validations:\n      required: true\n  - type: textarea\n    id: additional\n    attributes:\n      label: Additional Info\n      description: |\n        Any additional info you'd like to provide."
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "blank_issues_enabled: false\ncontact_links:\n  - name: Ask a question on StackOverflow\n    about: If you just want to ask a question, consider asking it on StackOverflow!\n    url: https://stackoverflow.com/search?tab=newest&q=deepface\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "## Tickets\n\nResolves https://github.com/serengil/deepface/issues/XXX\n\n### What has been done\n\nWith this PR, ...\n\n## How to test\n\n```shell\nmake lint && make test\n```"
  },
  {
    "path": ".github/workflows/tests.yml",
    "content": "name: Tests\n\non: \n  push:\n    paths:\n      - '.github/workflows/tests.yml'\n      - 'deepface/**'  \n      - 'tests/**'\n      - 'api/**'\n      - 'requirements.txt'\n      - '.gitignore'\n      - 'setup.py'\n  pull_request:\n    paths:\n      - '.github/workflows/tests.yml'\n      - 'deepface/**'  \n      - 'tests/**'\n      - 'api/**'\n      - 'requirements.txt'\n      - '.gitignore'\n      - 'setup.py'\n\njobs:\n  linting:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        python-version: [3.8]\n    steps:\n    - uses: actions/checkout@v4\n    - name: Set up Python ${{ matrix.python-version }}\n      uses: actions/setup-python@v5\n      with:\n        python-version: ${{ matrix.python-version }}\n    - name: Install dependencies\n      run: |\n        python -m pip install --upgrade pip\n        pip install pylint==2.15.10\n        pip install black\n        pip install .\n    - name: Lint with pylint\n      run: |\n        pylint --fail-under=10 deepface/\n  type-check:\n    needs: linting\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        python-version: [3.8]\n    steps:\n    - uses: actions/checkout@v4\n    - name: Set up Python ${{ matrix.python-version }}\n      uses: actions/setup-python@v5\n      with:\n        python-version: ${{ matrix.python-version }}\n    - name: Install dependencies\n      run: |\n        python -m pip install --upgrade pip\n        pip install mypy==1.14.1\n        pip install .\n    - name: Type checking with MyPy\n      run: |\n        mypy deepface/\n  unit-tests:\n    needs: type-check\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        python-version: [3.8]\n    steps:\n    - uses: actions/checkout@v4\n    - name: Set up Python ${{ matrix.python-version }}\n      uses: actions/setup-python@v5\n      with:\n        python-version: ${{ matrix.python-version }}\n    - name: Install dependencies\n      run: |\n        python -m pip install --upgrade pip\n        pip install pytest\n        # sending files in form data throwing error in flask 3 while running tests\n        pip install Werkzeug==2.0.2 flask==2.0.2\n        pip install .\n    - name: Test with pytest\n      run: |\n        cd tests/unit\n        python -m pytest . -s --disable-warnings\n\n"
  },
  {
    "path": ".gitignore",
    "content": "**/__pycache__\n**/.DS_Store\nbuild/\ndist/\nPipfile\nPipfile.lock\n.mypy_cache/\n.idea/\ndeepface.egg-info/\ntests/unit/dataset/*.pkl\ntests/unit/*.ipynb\ntests/unit/*.csv\n*.pyc\n**/.coverage\n**/.coverage.*\nbenchmarks/results\nbenchmarks/outputs\nbenchmarks/dataset\nbenchmarks/lfwe\nvenv\n**/.env\ndocker/weaviate_data"
  },
  {
    "path": ".pylintrc",
    "content": "[MAIN]\n\n# Analyse import fallback blocks. This can be used to support both Python 2 and\n# 3 compatible code, which means that the block might have code that exists\n# only in one or another interpreter, leading to false positives when analysed.\nanalyse-fallback-blocks=no\n\n# Load and enable all available extensions. Use --list-extensions to see a list\n# all available extensions.\n#enable-all-extensions=\n\n# In error mode, messages with a category besides ERROR or FATAL are\n# suppressed, and no reports are done by default. Error mode is compatible with\n# disabling specific errors.\n#errors-only=\n\n# Always return a 0 (non-error) status code, even if lint errors are found.\n# This is primarily useful in continuous integration scripts.\n#exit-zero=\n\n# A comma-separated list of package or module names from where C extensions may\n# be loaded. Extensions are loading into the active Python interpreter and may\n# run arbitrary code.\nextension-pkg-allow-list=\n\n# A comma-separated list of package or module names from where C extensions may\n# be loaded. Extensions are loading into the active Python interpreter and may\n# run arbitrary code. (This is an alternative name to extension-pkg-allow-list\n# for backward compatibility.)\nextension-pkg-whitelist=\n\n# Return non-zero exit code if any of these messages/categories are detected,\n# even if score is above --fail-under value. Syntax same as enable. Messages\n# specified are enabled, while categories only check already-enabled messages.\nfail-on=\n\n# Specify a score threshold under which the program will exit with error.\nfail-under=10\n\n# Interpret the stdin as a python script, whose filename needs to be passed as\n# the module_or_package argument.\n#from-stdin=\n\n# Files or directories to be skipped. They should be base names, not paths.\nignore=CVS\n\n# Add files or directories matching the regular expressions patterns to the\n# ignore-list. The regex matches against paths and can be in Posix or Windows\n# format. Because '\\' represents the directory delimiter on Windows systems, it\n# can't be used as an escape character.\nignore-paths=\n\n# Files or directories matching the regular expression patterns are skipped.\n# The regex matches against base names, not paths. The default value ignores\n# Emacs file locks\nignore-patterns=^\\.#\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis). It\n# supports qualified module names, as well as Unix pattern matching.\nignored-modules=\n\n# Python code to execute, usually for sys.path manipulation such as\n# pygtk.require().\n#init-hook=\n\n# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the\n# number of processors available to use, and will cap the count on Windows to\n# avoid hangs.\njobs=1\n\n# Control the amount of potential inferred values when inferring a single\n# object. This can help the performance when dealing with large functions or\n# complex, nested conditions.\nlimit-inference-results=100\n\n# List of plugins (as comma separated values of python module names) to load,\n# usually to register additional checkers.\nload-plugins=\n\n# Pickle collected data for later comparisons.\npersistent=yes\n\n# Minimum Python version to use for version dependent checks. Will default to\n# the version used to run pylint.\npy-version=3.9\n\n# Discover python modules and packages in the file system subtree.\nrecursive=no\n\n# When enabled, pylint would attempt to guess common misconfiguration and emit\n# user-friendly hints instead of false-positive error messages.\nsuggestion-mode=yes\n\n# Allow loading of arbitrary C extensions. Extensions are imported into the\n# active Python interpreter and may run arbitrary code.\nunsafe-load-any-extension=no\n\n# In verbose mode, extra non-checker-related info will be displayed.\n#verbose=\n\n\n[BASIC]\n\n# Naming style matching correct argument names.\nargument-naming-style=snake_case\n\n# Regular expression matching correct argument names. Overrides argument-\n# naming-style. If left empty, argument names will be checked with the set\n# naming style.\n#argument-rgx=\n\n# Naming style matching correct attribute names.\nattr-naming-style=snake_case\n\n# Regular expression matching correct attribute names. Overrides attr-naming-\n# style. If left empty, attribute names will be checked with the set naming\n# style.\n#attr-rgx=\n\n# Bad variable names which should always be refused, separated by a comma.\nbad-names=foo,\n          bar,\n          baz,\n          toto,\n          tutu,\n          tata\n\n# Bad variable names regexes, separated by a comma. If names match any regex,\n# they will always be refused\nbad-names-rgxs=\n\n# Naming style matching correct class attribute names.\nclass-attribute-naming-style=any\n\n# Regular expression matching correct class attribute names. Overrides class-\n# attribute-naming-style. If left empty, class attribute names will be checked\n# with the set naming style.\n#class-attribute-rgx=\n\n# Naming style matching correct class constant names.\nclass-const-naming-style=UPPER_CASE\n\n# Regular expression matching correct class constant names. Overrides class-\n# const-naming-style. If left empty, class constant names will be checked with\n# the set naming style.\n#class-const-rgx=\n\n# Naming style matching correct class names.\nclass-naming-style=PascalCase\n\n# Regular expression matching correct class names. Overrides class-naming-\n# style. If left empty, class names will be checked with the set naming style.\n#class-rgx=\n\n# Naming style matching correct constant names.\nconst-naming-style=UPPER_CASE\n\n# Regular expression matching correct constant names. Overrides const-naming-\n# style. If left empty, constant names will be checked with the set naming\n# style.\n#const-rgx=\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=-1\n\n# Naming style matching correct function names.\nfunction-naming-style=snake_case\n\n# Regular expression matching correct function names. Overrides function-\n# naming-style. If left empty, function names will be checked with the set\n# naming style.\n#function-rgx=\n\n# Good variable names which should always be accepted, separated by a comma.\ngood-names=i,\n           j,\n           k,\n           ex,\n           Run,\n           _\n\n# Good variable names regexes, separated by a comma. If names match any regex,\n# they will always be accepted\ngood-names-rgxs=\n\n# Include a hint for the correct naming format with invalid-name.\ninclude-naming-hint=no\n\n# Naming style matching correct inline iteration names.\ninlinevar-naming-style=any\n\n# Regular expression matching correct inline iteration names. Overrides\n# inlinevar-naming-style. If left empty, inline iteration names will be checked\n# with the set naming style.\n#inlinevar-rgx=\n\n# Naming style matching correct method names.\nmethod-naming-style=snake_case\n\n# Regular expression matching correct method names. Overrides method-naming-\n# style. If left empty, method names will be checked with the set naming style.\n#method-rgx=\n\n# Naming style matching correct module names.\nmodule-naming-style=snake_case\n\n# Regular expression matching correct module names. Overrides module-naming-\n# style. If left empty, module names will be checked with the set naming style.\n#module-rgx=\n\n# Colon-delimited sets of names that determine each other's naming style when\n# the name regexes allow several styles.\nname-group=\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=^_\n\n# List of decorators that produce properties, such as abc.abstractproperty. Add\n# to this list to register other decorators that produce valid properties.\n# These decorators are taken in consideration only for invalid-name.\nproperty-classes=abc.abstractproperty\n\n# Regular expression matching correct type variable names. If left empty, type\n# variable names will be checked with the set naming style.\n#typevar-rgx=\n\n# Naming style matching correct variable names.\nvariable-naming-style=snake_case\n\n# Regular expression matching correct variable names. Overrides variable-\n# naming-style. If left empty, variable names will be checked with the set\n# naming style.\n#variable-rgx=\n\n\n[CLASSES]\n\n# Warn about protected attribute access inside special methods\ncheck-protected-access-in-special-methods=no\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,\n                      __new__,\n                      setUp,\n                      __post_init__\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,\n                  _fields,\n                  _replace,\n                  _source,\n                  _make\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=cls\n\n\n[DESIGN]\n\n# List of regular expressions of class ancestor names to ignore when counting\n# public methods (see R0903)\nexclude-too-few-public-methods=\n\n# List of qualified class names to ignore when counting class parents (see\n# R0901)\nignored-parents=\n\n# Maximum number of arguments for function / method.\nmax-args=5\n\n# Maximum number of attributes for a class (see R0902).\nmax-attributes=7\n\n# Maximum number of boolean expressions in an if statement (see R0916).\nmax-bool-expr=5\n\n# Maximum number of branch for function / method body.\nmax-branches=12\n\n# Maximum number of locals for function / method body.\nmax-locals=15\n\n# Maximum number of parents for a class (see R0901).\nmax-parents=7\n\n# Maximum number of public methods for a class (see R0904).\nmax-public-methods=20\n\n# Maximum number of return / yield for function / method body.\nmax-returns=6\n\n# Maximum number of statements in function / method body.\nmax-statements=50\n\n# Minimum number of public methods for a class (see R0903).\nmin-public-methods=2\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when caught.\novergeneral-exceptions=BaseException,\n                       Exception\n\n\n[FORMAT]\n\n# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.\nexpected-line-ending-format=\n\n# Regexp for a line that is allowed to be longer than the limit.\nignore-long-lines=^\\s*(# )?<?https?://\\S+>?$\n\n# Number of spaces of indent required inside a hanging or continued line.\nindent-after-paren=4\n\n# String used as indentation unit. This is usually \"    \" (4 spaces) or \"\\t\" (1\n# tab).\nindent-string='    '\n\n# Maximum number of characters on a single line.\nmax-line-length=100\n\n# Maximum number of lines in a module.\nmax-module-lines=1000\n\n# Allow the body of a class to be on the same line as the declaration if body\n# contains single statement.\nsingle-line-class-stmt=no\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=no\n\n\n[IMPORTS]\n\n# List of modules that can be imported at any level, not just the top level\n# one.\nallow-any-import-level=\n\n# Allow wildcard imports from modules that define __all__.\nallow-wildcard-with-all=no\n\n# Deprecated modules which should not be used, separated by a comma.\ndeprecated-modules=\n\n# Output a graph (.gv or any supported image format) of external dependencies\n# to the given file (report RP0402 must not be disabled).\next-import-graph=\n\n# Output a graph (.gv or any supported image format) of all (i.e. internal and\n# external) dependencies to the given file (report RP0402 must not be\n# disabled).\nimport-graph=\n\n# Output a graph (.gv or any supported image format) of internal dependencies\n# to the given file (report RP0402 must not be disabled).\nint-import-graph=\n\n# Force import order to recognize a module as part of the standard\n# compatibility libraries.\nknown-standard-library=\n\n# Force import order to recognize a module as part of a third party library.\nknown-third-party=enchant\n\n# Couples of modules and preferred modules, separated by a comma.\npreferred-modules=\n\n\n[LOGGING]\n\n# The type of string formatting that logging methods do. `old` means using %\n# formatting, `new` is for `{}` formatting.\nlogging-format-style=old\n\n# Logging modules to check that the string format arguments are in logging\n# function parameter format.\nlogging-modules=logging\n\n\n[MESSAGES CONTROL]\n\n# Only show warnings with the listed confidence levels. Leave empty to show\n# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,\n# UNDEFINED.\nconfidence=HIGH,\n           CONTROL_FLOW,\n           INFERENCE,\n           INFERENCE_FAILURE,\n           UNDEFINED\n\n# Disable the message, report, category or checker with the given id(s). You\n# can either give multiple identifiers separated by comma (,) or put this\n# option multiple times (only on the command line, not in the configuration\n# file where it should appear only once). You can also use \"--disable=all\" to\n# disable everything first and then re-enable specific checks. For example, if\n# you want to run only the similarities checker, you can use \"--disable=all\n# --enable=similarities\". If you want to run only the classes checker, but have\n# no Warning level messages displayed, use \"--disable=all --enable=classes\n# --disable=W\".\ndisable=raw-checker-failed,\n        bad-inline-option,\n        locally-disabled,\n        file-ignored,\n        suppressed-message,\n        useless-suppression,\n        deprecated-pragma,\n        use-symbolic-message-instead,\n        import-error,\n        invalid-name,\n        missing-module-docstring,\n        missing-function-docstring,\n        missing-class-docstring,\n        too-many-arguments, \n        too-many-locals, \n        too-many-branches, \n        too-many-statements,\n        global-variable-undefined,\n        import-outside-toplevel,\n        singleton-comparison,\n        too-many-lines,\n        duplicate-code,\n        bare-except,\n        cyclic-import,\n        global-statement,\n        no-member,\n        no-name-in-module,\n        unrecognized-option,\n        consider-using-dict-items,\n        consider-iterating-dictionary,\n        unexpected-keyword-arg,\n        unknown-option-value\n\n# Enable the message, report, category or checker with the given id(s). You can\n# either give multiple identifier separated by comma (,) or put this option\n# multiple time (only on the command line, not in the configuration file where\n# it should appear only once). See also the \"--disable\" option for examples.\nenable=c-extension-no-member\n\n\n[METHOD_ARGS]\n\n# List of qualified names (i.e., library.method) which require a timeout\n# parameter e.g. 'requests.api.get,requests.api.post'\ntimeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request\n\n\n[MISCELLANEOUS]\n\n# List of note tags to take in consideration, separated by a comma.\nnotes=FIXME,\n      XXX,\n      TODO\n\n# Regular expression of note tags to take in consideration.\nnotes-rgx=\n\n\n[REFACTORING]\n\n# Maximum number of nested blocks for function / method body\nmax-nested-blocks=5\n\n# Complete name of functions that never returns. When checking for\n# inconsistent-return-statements if a never returning function is called then\n# it will be considered as an explicit return statement and no message will be\n# printed.\nnever-returning-functions=sys.exit,argparse.parse_error\n\n\n[REPORTS]\n\n# Python expression which should return a score less than or equal to 10. You\n# have access to the variables 'fatal', 'error', 'warning', 'refactor',\n# 'convention', and 'info' which contain the number of messages in each\n# category, as well as 'statement' which is the total number of statements\n# analyzed. This score is used by the global evaluation report (RP0004).\nevaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))\n\n# Template used to display messages. This is a python new-style format string\n# used to format the message information. See doc for all details.\nmsg-template=\n\n# Set the output format. Available formats are text, parseable, colorized, json\n# and msvs (visual studio). You can also give a reporter class, e.g.\n# mypackage.mymodule.MyReporterClass.\n#output-format=\n\n# Tells whether to display a full report or only the messages.\nreports=no\n\n# Activate the evaluation score.\nscore=yes\n\n\n[SIMILARITIES]\n\n# Comments are removed from the similarity computation\nignore-comments=yes\n\n# Docstrings are removed from the similarity computation\nignore-docstrings=yes\n\n# Imports are removed from the similarity computation\nignore-imports=yes\n\n# Signatures are removed from the similarity computation\nignore-signatures=yes\n\n# Minimum lines number of a similarity.\nmin-similarity-lines=4\n\n\n[SPELLING]\n\n# Limits count of emitted suggestions for spelling mistakes.\nmax-spelling-suggestions=4\n\n# Spelling dictionary name. Available dictionaries: none. To make it work,\n# install the 'python-enchant' package.\nspelling-dict=\n\n# List of comma separated words that should be considered directives if they\n# appear at the beginning of a comment and should not be checked.\nspelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:\n\n# List of comma separated words that should not be checked.\nspelling-ignore-words=\n\n# A path to a file that contains the private dictionary; one word per line.\nspelling-private-dict-file=\n\n# Tells whether to store unknown words to the private dictionary (see the\n# --spelling-private-dict-file option) instead of raising a message.\nspelling-store-unknown-words=no\n\n\n[STRING]\n\n# This flag controls whether inconsistent-quotes generates a warning when the\n# character used as a quote delimiter is used inconsistently within a module.\ncheck-quote-consistency=no\n\n# This flag controls whether the implicit-str-concat should generate a warning\n# on implicit string concatenation in sequences defined over several lines.\ncheck-str-concat-over-line-jumps=no\n\n\n[TYPECHECK]\n\ndisable=unsubscriptable-object\n\n# List of decorators that produce context managers, such as\n# contextlib.contextmanager. Add to this list to register other decorators that\n# produce valid context managers.\ncontextmanager-decorators=contextlib.contextmanager\n\n# List of members which are set dynamically and missed by pylint inference\n# system, and so shouldn't trigger E1101 when accessed. Python regular\n# expressions are accepted.\ngenerated-members=\n\n# Tells whether to warn about missing members when the owner of the attribute\n# is inferred to be None.\nignore-none=yes\n\n# This flag controls whether pylint should warn about no-member and similar\n# checks whenever an opaque object is returned when inferring. The inference\n# can return multiple potential results while evaluating a Python object, but\n# some branches might not be evaluated, which results in partial inference. In\n# that case, it might be useful to still emit no-member and other checks for\n# the rest of the inferred objects.\nignore-on-opaque-inference=yes\n\n# List of symbolic message names to ignore for Mixin members.\nignored-checks-for-mixins=no-member,\n                          not-async-context-manager,\n                          not-context-manager,\n                          attribute-defined-outside-init\n\n# List of class names for which member attributes should not be checked (useful\n# for classes with dynamically set attributes). This supports the use of\n# qualified names.\nignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace\n\n# Show a hint with possible names when a member name was not found. The aspect\n# of finding the hint is based on edit distance.\nmissing-member-hint=yes\n\n# The minimum edit distance a name should have in order to be considered a\n# similar match for a missing member name.\nmissing-member-hint-distance=1\n\n# The total number of similar names that should be taken in consideration when\n# showing a hint for a missing member.\nmissing-member-max-choices=1\n\n# Regex pattern to define which classes are considered mixins.\nmixin-class-rgx=.*[Mm]ixin\n\n# List of decorators that change the signature of a decorated function.\nsignature-mutators=\n\n\n[VARIABLES]\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid defining new builtins when possible.\nadditional-builtins=\n\n# Tells whether unused global variables should be treated as a violation.\nallow-global-unused-variables=yes\n\n# List of names allowed to shadow builtins\nallowed-redefined-builtins=\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,\n          _cb\n\n# A regular expression matching the name of dummy variables (i.e. expected to\n# not be used).\ndummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_\n\n# Argument names that match this expression will be ignored.\nignored-argument-names=_.*|^ignored_|^unused_\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n\n# List of qualified module names which can have objects that can redefine\n# builtins.\nredefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"python.linting.pylintEnabled\": true,\n  \"python.linting.enabled\": true,\n  \"python.linting.pylintUseMinimalCheckers\": false,\n  \"editor.formatOnSave\": true,\n  \"editor.renderWhitespace\": \"all\",\n  \"files.autoSave\": \"afterDelay\",\n  \"python.analysis.typeCheckingMode\": \"basic\",\n  \"python.formatting.provider\": \"black\",\n  \"python.formatting.blackArgs\": [\"--line-length=100\"],\n  \"editor.fontWeight\": \"normal\",\n  \"python.analysis.extraPaths\": [\n    \"./deepface\"\n  ],\n  \"black-formatter.args\": [\n    \"--line-length=100\"\n  ]\n}\n"
  },
  {
    "path": "CITATION.cff",
    "content": "cff-version: 1.2.0\nmessage: \"Please cite the following publication if DeepFace helps your research.\"\ntitle: \"DeepFace: A Lightweight Face Recognition Framework for Python\"\nauthors:\n  - family-names: Serengil\n    given-names: Sefik\nversion: 1.0.0\ndate-released: 2020-02-09\ndoi: 10.35378/gujs.1794891\nurl: https://github.com/serengil/deepface\ntype: software\npreferred-citation:\n  type: article\n  title: \"Boosted LightFace: A Hybrid DNN and GBM Model for Boosted Facial Recognition\"\n  authors:\n    - family-names: Serengil\n      given-names: Sefik Ilkin\n    - family-names: Ozpinar\n      given-names: Alper\n  year: 2026\n  doi: 10.35378/gujs.1794891\n  url: https://dergipark.org.tr/en/pub/gujs/article/1794891\n  journal: \"Gazi University Journal of Science\"\n  volume: \"39\"\n  issue: \"1\"\n  start: \"452\"\n  end: \"466\"\n  publisher: \"Gazi University\"\n"
  },
  {
    "path": "Dockerfile",
    "content": "# base image\nFROM python:3.8.12\nLABEL org.opencontainers.image.source https://github.com/serengil/deepface\n\n# -----------------------------------\n# create required folder\nRUN mkdir -p /app && chown -R 1001:0 /app\nRUN mkdir /app/deepface\n\n\n\n# -----------------------------------\n# switch to application directory\nWORKDIR /app\n\n# -----------------------------------\n# update image os\n# Install system dependencies\nRUN apt-get update && apt-get install -y \\\n    ffmpeg \\\n    libsm6 \\\n    libxext6 \\\n    libhdf5-dev \\\n    && rm -rf /var/lib/apt/lists/*\n\n# -----------------------------------\n# Copy required files from repo into image\nCOPY ./deepface /app/deepface\n# even though we will use local requirements, this one is required to perform install deepface from source code\nCOPY ./requirements.txt /app/requirements.txt\nCOPY ./requirements_local /app/requirements_local.txt\nCOPY ./package_info.json /app/\nCOPY ./setup.py /app/\nCOPY ./README.md /app/\nCOPY ./entrypoint.sh /app/deepface/api/src/entrypoint.sh\n\n# -----------------------------------\n# if you plan to use a GPU, you should install the 'tensorflow-gpu' package\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org tensorflow-gpu\n\n# if you plan to use face anti-spoofing, then activate this line\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org torch==2.1.2\n# -----------------------------------\n# install deepface from pypi release (might be out-of-date)\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org deepface\n# -----------------------------------\n# install dependencies - deepface with these dependency versions is working\nRUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org -r /app/requirements_local.txt\n# install deepface from source code (always up-to-date)\nRUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org -e . --no-deps\n\n# -----------------------------------\n# some packages are optional in deepface. activate if your task depends on one.\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org cmake==3.24.1.1\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org dlib==19.20.0\n# RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org lightgbm==2.3.1\n\n# -----------------------------------\n# environment variables\nENV PYTHONUNBUFFERED=1\n\n# -----------------------------------\n# run the app (re-configure port if necessary)\nWORKDIR /app/deepface/api/src\nEXPOSE 5000\n# CMD [\"gunicorn\", \"--workers=1\", \"--timeout=3600\", \"--bind=0.0.0.0:5000\", \"app:create_app()\"]\nENTRYPOINT [ \"sh\", \"entrypoint.sh\" ]\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Sefik Ilkin Serengil\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "test:\n\tcd tests/unit && python -m pytest . -s --disable-warnings\n\nintegration-test:\n\tcd tests/integration && python -m pytest . -s --disable-warnings\n\nlint:\n\tpython -m pylint deepface/ --fail-under=10 && mypy deepface/\n\ncoverage:\n\tpip install pytest-cov && cd tests/unit && python -m pytest --cov=deepface"
  },
  {
    "path": "README.md",
    "content": "# deepface\n\n<div align=\"center\">\n\n[![Downloads](https://static.pepy.tech/personalized-badge/deepface?period=total&units=international_system&left_color=grey&right_color=blue&left_text=downloads)](https://pepy.tech/project/deepface)\n[![Stars](https://img.shields.io/github/stars/serengil/deepface?color=yellow&style=flat&label=%E2%AD%90%20stars)](https://github.com/serengil/deepface/stargazers)\n[![Pulls](https://img.shields.io/docker/pulls/serengil/deepface?logo=docker)](https://hub.docker.com/r/serengil/deepface)\n[![License](http://img.shields.io/:license-MIT-green.svg?style=flat)](https://github.com/serengil/deepface/blob/master/LICENSE)\n[![Tests](https://github.com/serengil/deepface/actions/workflows/tests.yml/badge.svg)](https://github.com/serengil/deepface/actions/workflows/tests.yml)\n[![DOI](http://img.shields.io/:DOI-10.35378/gujs.1794891-blue.svg?style=flat)](https://doi.org/10.35378/gujs.1794891)\n\n[![Blog](https://img.shields.io/:blog-sefiks.com-blue.svg?style=flat&logo=wordpress)](https://sefiks.com)\n[![YouTube](https://img.shields.io/:youtube-@sefiks-red.svg?style=flat&logo=youtube)](https://www.youtube.com/@sefiks?sub_confirmation=1)\n[![Twitter](https://img.shields.io/:follow-@serengil-blue.svg?style=flat&logo=x)](https://twitter.com/intent/user?screen_name=serengil)\n\n[![Patreon](https://img.shields.io/:become-patron-f96854.svg?style=flat&logo=patreon)](https://www.patreon.com/serengil?repo=deepface)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/serengil?logo=GitHub&color=lightgray)](https://github.com/sponsors/serengil)\n[![Buy Me a Coffee](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee)](https://buymeacoffee.com/serengil)\n\n<!--\n[![Hacker News](https://img.shields.io/badge/dynamic/json?color=orange&label=Hacker%20News&query=score&url=https%3A%2F%2Fhacker-news.firebaseio.com%2Fv0%2Fitem%2F46608519.json&logo=y-combinator)](https://news.ycombinator.com/item?id=46608519)\n-->\n\n<div align=\"center\">\n  <a href=\"https://trendshift.io/repositories/4227\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/4227\" alt=\"serengil%2Fdeepface | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n</div>\n\n</div>\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/deepface-icon-labeled.png\" width=\"200\" height=\"240\"></p>\n\nDeepFace is a lightweight [face recognition](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) and facial attribute analysis ([age](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [gender](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [emotion](https://sefiks.com/2018/01/01/facial-expression-recognition-with-keras/) and [race](https://sefiks.com/2019/11/11/race-and-ethnicity-prediction-in-keras/)) framework for python. It is a hybrid face recognition framework wrapping **state-of-the-art** models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/), [`FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace`, `GhostFaceNet`, `Buffalo_L`.\n\n[A modern face recognition pipeline](https://sefiks.com/2020/05/01/a-gentle-introduction-to-face-recognition-in-deep-learning/) consists of 5 common stages: [detect](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [align](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [normalize](https://sefiks.com/2020/11/20/facial-landmarks-for-face-recognition-with-dlib/), [represent](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) and [verify](https://sefiks.com/2020/05/22/fine-tuning-the-threshold-in-face-recognition/). While DeepFace handles all these common stages in the background, you don’t need to acquire in-depth knowledge about all the processes behind it. You can just call its verification, find or analysis function with a single line of code.\n\n[`Experiments`](https://github.com/serengil/deepface/tree/master/benchmarks) show that **human beings have 97.53% accuracy** on facial recognition tasks whereas those models already reached and passed that accuracy level.\n\n## Installation [![PyPI](https://img.shields.io/pypi/v/deepface.svg)](https://pypi.org/project/deepface/)\n\nThe easiest way to install deepface is to download it from [`PyPI`](https://pypi.org/project/deepface/). It's going to install the library itself and its prerequisites as well.\n\n```shell\n$ pip install deepface\n```\n\nAlternatively, you can also install deepface from its source code. Source code may have new features not published in pip release yet.\n\n```shell\n$ git clone https://github.com/serengil/deepface.git\n$ cd deepface\n$ pip install -e .\n```\n\nOnce you installed the library, then you will be able to import it and use its functionalities.\n\n```python\nfrom deepface import DeepFace\n```\n\n**Face Verification** - [`Demo`](https://youtu.be/KRCvkNCOphE)\n\nThis function determines whether two facial images belong to the same person or to different individuals. The function returns a dictionary, where the key of interest is `verified`: True indicates the images are of the same person, while False means they are of different people.\n\n```python\nresult: dict = DeepFace.verify(img1_path = \"img1.jpg\", img2_path = \"img2.jpg\")\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/verify-credit.jpg\" width=\"99%\"></p>\n\n**Face recognition** - [`Tutorial`](https://sefiks.com/2026/01/01/introducing-brand-new-face-recognition-in-deepface/), [`Demo`](https://youtu.be/Hrjp-EStM_s)\n\n[Face recognition](https://sefiks.com/2020/05/25/large-scale-face-recognition-for-deep-learning/) requires applying face verification many times. DeepFace provides an out-of-the-box `find` function that searches for the identity of an input image within a specified database path.\n\n```python\ndfs: List[pd.DataFrame] = DeepFace.find(img_path = \"img1.jpg\", db_path = \"C:/my_db\")\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/stock-6-v2.jpg\" width=\"95%\"></p>\n\nHere, the `find` function relies on a directory-based face datastore and stores embeddings on disk. Alternatively, DeepFace provides a database-backed [`search`](https://sefiks.com/2026/01/01/introducing-brand-new-face-recognition-in-deepface/) functionality where embeddings are explicitly registered and queried. Currently, [postgres](https://sefiks.com/2023/06/22/vector-similarity-search-in-postgresql/), [mongo](https://sefiks.com/2021/01/22/deep-face-recognition-with-mongodb/), [neo4j](https://sefiks.com/2021/04/03/deep-face-recognition-with-neo4j/), [pgvector](https://sefiks.com/2024/07/05/postgres-as-a-vector-database-billion-scale-vector-similarity-search-with-pgvector/), [pinecone](https://sefiks.com/2021/05/19/large-scale-face-recognition-with-pinecone-vector-database/) and weaviate are supported as backend databases.\n\n```python\n# register an image into the database\nDeepFace.register(img = \"img1.jpg\")\n\n# perform exact search\ndfs: List[pd.DataFrame] = DeepFace.search(img = \"target.jpg\")\n```\n\nIf you want to perform [`approximate nearest neighbor`](https://sefiks.com/2023/12/31/a-step-by-step-approximate-nearest-neighbor-example-in-python-from-scratch/) search instead of exact search to achieve faster results on [large-scale databases](https://www.youtube.com/playlist?list=PLsS_1RYmYQQGSJu_Z3OVhXhGmZ86_zuIm), you can build an index beforehand and explicitly enable ANN search. Here, [Faiss](https://sefiks.com/2020/09/17/large-scale-face-recognition-with-facebook-faiss/) is used to index embeddings in postgres and mongo; whereas vector databases such as pgvector, weaviate, pinecone and neo4j handle indexing internally.\n\n```python\n# build index on registered embeddings (for postgres and mongo only)\nDeepFace.build_index()\n\n# perform approximate nearest neighbor search\ndfs: List[pd.DataFrame] = DeepFace.search(img = \"target.jpg\", search_method = \"ann\")\n```\n\n**Facial Attribute Analysis** - [`Demo`](https://youtu.be/GT2UeN85BdA)\n\nDeepFace also comes with a strong facial attribute analysis module including [`age`](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [`gender`](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [`facial expression`](https://sefiks.com/2018/01/01/facial-expression-recognition-with-keras/) (including angry, fear, neutral, sad, disgust, happy and surprise) and [`race`](https://sefiks.com/2019/11/11/race-and-ethnicity-prediction-in-keras/) (including asian, white, middle eastern, indian, latino and black) predictions.\n\n```python\nobjs: List[dict] = DeepFace.analyze(\n  img_path = \"img4.jpg\", actions = ['age', 'gender', 'race', 'emotion']\n)\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/stock-2.jpg\" width=\"95%\"></p>\n\nAge model got ± 4.65 MAE; gender model got 97.44% accuracy, 96.29% precision and 95.05% recall as mentioned in its [tutorial](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/).\n\n**Real Time Analysis** - [`Demo`](https://youtu.be/-c9sSJcx6wI), [`React Demo part-i`](https://youtu.be/IXoah6rhxac), [`React Demo part-ii`](https://youtu.be/_waBA-cH2D4)\n\nYou can run deepface for real time videos as well. Stream function will access your webcam and apply both face recognition and facial attribute analysis. The function starts to analyze a frame if it can focus a face sequentially 5 frames. Then, it shows results 5 seconds.\n\n```python\nDeepFace.stream(db_path = \"C:/database\")\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/stock-3.jpg\" width=\"90%\"></p>\n\nEven though face recognition is based on one-shot learning, you can use multiple face pictures of a person as well. You should rearrange your directory structure as illustrated below.\n\n```bash\nuser\n├── database\n│   ├── Alice\n│   │   ├── Alice1.jpg\n│   │   ├── Alice2.jpg\n│   ├── Bob\n│   │   ├── Bob.jpg\n```\n\nIf you intend to perform face verification or analysis tasks directly from your browser, [`deepface-react-ui`](https://github.com/serengil/deepface-react-ui) is a separate repository built using ReactJS depending on deepface api.\n\nHere, you can also find some real time demos for various facial recognition models:\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/icon/deepface-realtime.jpg\" width=\"90%\"></p>\n\n| Task                 | Model    | Demo                                    |\n| ---                  | ---      | ---                                     |\n| Facial Recognition   | DeepFace | [`Video`](https://youtu.be/YjYIMs5ZOfc) |\n| Facial Recognition   | FaceNet  | [`Video`](https://youtu.be/vB1I5vWgTQg) |\n| Facial Recognition   | VGG-Face | [`Video`](https://youtu.be/tSU_lNi0gQQ) |\n| Facial Recognition   | OpenFace | [`Video`](https://youtu.be/-4z2sL6wzP8) |\n| Age & Gender         | Default  | [`Video`](https://youtu.be/tFI7vZn3P7E) |\n| Race & Ethnicity     | Default  | [`Video`](https://youtu.be/-ztiy5eJha8) |\n| Emotion              | Default  | [`Video`](https://youtu.be/Y7DfLvLKScs) |\n| Celebrity Look-Alike | Default  | [`Video`](https://youtu.be/RMgIKU1H8DY) |\n\n**Embeddings** - [`Tutorial`](https://sefiks.com/2025/06/28/what-are-vector-embeddings-and-why-they-matter-in-ai/), [`Demo`](https://youtu.be/OYialFo7Qo4)\n\nFace recognition models basically represent facial images as multi-dimensional vectors. Sometimes, you need those embedding vectors directly. DeepFace comes with a dedicated representation function.\n\n```python\nembedding_objs: List[dict] = DeepFace.represent(img_path = \"img.jpg\")\n```\n\nEmbeddings can be [plotted](https://sefiks.com/2020/05/01/a-gentle-introduction-to-face-recognition-in-deep-learning/) as below. Each slot is corresponding to a dimension value and dimension value is emphasized with colors. Similar to 2D barcodes, vertical dimension stores no information in the illustration.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/embedding.jpg\" width=\"95%\"></p>\n\nIn summary, the distance between vector embeddings of the same person should be smaller than that between embeddings of different people. When reduced to two-dimensional space, the clusters become clearly distinguishable.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/icon/facenet-pca.png\" width=\"95%\"></p>\n\n**Face recognition models** - [`Demo`](https://youtu.be/eKOZawGR3y0)\n\nDeepFace is a **hybrid** face recognition package. It currently wraps many **state-of-the-art** face recognition models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) , [`FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace`, `GhostFaceNet` and `Buffalo_L`. The default configuration uses VGG-Face model.\n\n```python\nmodels = [\n    \"VGG-Face\", \"Facenet\", \"Facenet512\", \"OpenFace\", \"DeepFace\",\n    \"DeepID\", \"ArcFace\", \"Dlib\", \"SFace\", \"GhostFaceNet\",\n    \"Buffalo_L\",\n]\n\nresult = DeepFace.verify(\n  img1_path = \"img1.jpg\", img2_path = \"img2.jpg\", model_name = models[0]\n)\n\ndfs = DeepFace.find(\n  img_path = \"img1.jpg\", db_path = \"C:/my_db\", model_name = models[1]\n)\n\nembeddings = DeepFace.represent(\n  img_path = \"img.jpg\", model_name = models[2]\n)\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/model-portfolio-20240316.jpg\" width=\"95%\"></p>\n\nFaceNet, VGG-Face, ArcFace and Dlib are overperforming ones based on experiments - see [`BENCHMARKS`](https://github.com/serengil/deepface/tree/master/benchmarks) for more details. You can find the measured scores of various models in DeepFace and the reported scores from their original studies in the following table.\n\n| Model          | Measured Score | Declared Score     |\n| -------------- | -------------- | ------------------ |\n| Facenet512     | 98.4%          | 99.6%              |\n| Human-beings   | 97.5%          | 97.5%              |\n| Facenet        | 97.4%          | 99.2%              |\n| Dlib           | 96.8%          | 99.3 %             |\n| VGG-Face       | 96.7%          | 98.9%              |\n| ArcFace        | 96.7%          | 99.5%              |\n| GhostFaceNet   | 93.3%          | 99.7%              |\n| SFace          | 93.0%          | 99.5%              |\n| OpenFace       | 78.7%          | 92.9%              |\n| DeepFace       | 69.0%          | 97.3%              |\n| DeepID         | 66.5%          | 97.4%              |\n\nConducting experiments with those models within DeepFace may reveal disparities compared to the original studies, owing to the adoption of distinct detection or normalization techniques. Furthermore, some models have been released solely with their backbones, lacking pre-trained weights. Thus, we are utilizing their re-implementations instead of the original pre-trained weights.\n\n**Face Detection and Alignment** - [`Demo`](https://youtu.be/GZ2p2hj2H5k)\n\nFace detection and alignment are important early stages of a modern face recognition pipeline. [Experiments](https://github.com/serengil/deepface/tree/master/benchmarks) show that detection increases the face recognition accuracy up to 42%, while alignment increases it up to 6%. [`OpenCV`](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [`Ssd`](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/),  [`MtCnn`](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/), `Faster MtCnn`, [`RetinaFace`](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/), [`MediaPipe`](https://sefiks.com/2022/01/14/deep-face-detection-with-mediapipe/), `Yolo`, `YuNet` and `CenterFace` detectors are wrapped in deepface.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/detector-portfolio-v6.jpg\" width=\"95%\"></p>\n\nAll deepface functions accept optional detector backend and align input arguments. You can switch among those detectors and alignment modes with these arguments. OpenCV is the default detector and alignment is on by default.\n\n```python\nbackends = [\n    'opencv', 'ssd', 'dlib', 'mtcnn', 'fastmtcnn',\n    'retinaface', 'mediapipe', 'yolov8n', 'yolov8m', \n    'yolov8l', 'yolov11n', 'yolov11s', 'yolov11m',\n    'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m',\n    'yolov12l', 'yunet', 'centerface',\n]\ndetector = backends[3]\nalign = True\n\nobj = DeepFace.verify(\n  img1_path = \"img1.jpg\", img2_path = \"img2.jpg\", detector_backend = detector, align = align\n)\n\ndfs = DeepFace.find(\n  img_path = \"img.jpg\", db_path = \"my_db\", detector_backend = detector, align = align\n)\n\nembedding_objs = DeepFace.represent(\n  img_path = \"img.jpg\", detector_backend = detector, align = align\n)\n\ndemographies = DeepFace.analyze(\n  img_path = \"img4.jpg\", detector_backend = detector, align = align\n)\n\nface_objs = DeepFace.extract_faces(\n  img_path = \"img.jpg\", detector_backend = detector, align = align\n)\n```\n\nFace recognition models are actually CNN models and they expect standard sized inputs. So, resizing is required before representation. To avoid deformation, deepface adds black padding pixels according to the target size argument after detection and alignment.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/detector-outputs-20240414.jpg\" width=\"90%\"></p>\n\n[RetinaFace](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/) and [MtCnn](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/) seem to overperform in detection and alignment stages but they are much slower. If the speed of your pipeline is more important, then you should use opencv or ssd. On the other hand, if you consider the accuracy, then you should use retinaface or mtcnn.\n\nThe performance of RetinaFace is very satisfactory even in the crowd as seen in the following illustration. Besides, it comes with an incredible facial landmark detection performance. Highlighted red points show some facial landmarks such as eyes, nose and mouth. That's why, alignment score of RetinaFace is high as well.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/retinaface-results.jpeg\" width=\"90%\">\n<br><em>The Yellow Angels - Fenerbahce Women's Volleyball Team</em>\n</p>\n\nYou can find out more about RetinaFace on this [repo](https://github.com/serengil/retinaface).\n\n**Face Anti Spoofing** - [`Demo`](https://youtu.be/UiK1aIjOBlQ)\n\nDeepFace also includes an anti-spoofing analysis module to understand given image is real or fake. To activate this feature, set the `anti_spoofing` argument to True in any DeepFace tasks.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/face-anti-spoofing.jpg\" width=\"40%\"></p>\n\n```python\n# anti spoofing test in face detection\nface_objs = DeepFace.extract_faces(img_path=\"dataset/img1.jpg\", anti_spoofing = True)\nassert all(face_obj[\"is_real\"] is True for face_obj in face_objs)\n\n# anti spoofing test in real time analysis\nDeepFace.stream(db_path = \"C:/database\", anti_spoofing = True)\n```\n\n**Similarity** - [`Demo`](https://youtu.be/1EPoS69fHOc)\n\nFace recognition models are regular [convolutional neural networks](https://sefiks.com/2018/03/23/convolutional-autoencoder-clustering-images-with-neural-networks/) and they are responsible to represent faces as vectors. We expect that a face pair of same person should be [more similar](https://sefiks.com/2020/05/22/fine-tuning-the-threshold-in-face-recognition/) than a face pair of different persons.\n\nSimilarity could be calculated by different metrics such as [Cosine Similarity](https://sefiks.com/2018/08/13/cosine-similarity-in-machine-learning/), Angular Distance, Euclidean Distance or L2 normalized Euclidean. The default configuration uses cosine similarity. According to [experiments](https://github.com/serengil/deepface/tree/master/benchmarks), no distance metric is overperforming than other.\n\n```python\nmetrics = [\"cosine\", \"euclidean\", \"euclidean_l2\", \"angular\"]\n\nresult = DeepFace.verify(\n  img1_path = \"img1.jpg\", img2_path = \"img2.jpg\", distance_metric = metrics[1]\n)\n\ndfs = DeepFace.find(\n  img_path = \"img1.jpg\", db_path = \"C:/my_db\", distance_metric = metrics[2]\n)\n```\n\n**API** - [`Demo`](https://youtu.be/HeKCQ6U9XmI), [`Docker Demo`](https://youtu.be/9Tk9lRQareA)\n\nDeepFace serves an API as well - see [`api folder`](https://github.com/serengil/deepface/tree/master/deepface/api/src) for more details. You can clone deepface source code and run the api with the following command. It will use gunicorn server to get a rest service up. In this way, you can call deepface from an external system such as mobile app or web.\n\n```shell\ncd scripts && ./service.sh\n```\n\nAlternatively, you can run the dockerized service.\n\n```shell\ncd scripts && ./dockerize.sh\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/deepface-api.jpg\" width=\"90%\"></p>\n\nFace verification, facial attribute analysis, vector representation and register & search functions are covered in the API. The API accepts images as file uploads (via form data), or as exact image paths, URLs, or base64-encoded strings (via either JSON or form data).\n\n```shell\n$ curl -X POST http://localhost:5005/represent \\\n   -d '{\"model_name\":\"Facenet\", \"img\":\"img1.jpg\"}'\n\n$ curl -X POST http://localhost:5005/verify \\\n   -d '{\"img1\":\"img1.jpg\", \"img2\":\"img3.jpg\"}'\n\n$ curl -X POST http://localhost:5005/analyze \\\n   -d '{\"img\": \"img2.jpg\", \"actions\": [\"age\", \"gender\"]}'\n\n$ curl -X POST http://localhost:5005/register \\\n   -d '{\"model_name\":\"Facenet\", \"img\":\"img18.jpg\"}'\n\n$ curl -X POST http://localhost:5005/search \\\n   -d '{\"img\":\"img1.jpg\", \"model_name\":\"Facenet\"}'\n```\n\n[`Here`](https://github.com/serengil/deepface/tree/master/deepface/api/postman), you can find a postman project to find out how these methods should be called.\n\n**Encrypt Embeddings** - [`Demo with PHE`](https://youtu.be/8VCu39jFZ7k), [`Tutorial for PHE`](https://sefiks.com/2025/03/04/vector-similarity-search-with-partially-homomorphic-encryption-in-python/), [`Demo with FHE`](https://youtu.be/njjw0PEhH00), [`Tutorial for FHE`](https://sefiks.com/2021/12/01/homomorphic-facial-recognition-with-tenseal/)\n\nVector embeddings, though not reversible, carry sensitive information like fingerprints, making their security crucial. Encrypting them prevents adversarial misuse. Traditional encryption (e.g., AES) is secure but unsuitable for cloud-based distance calculations.\n\n[Homomorphic encryption](https://youtu.be/3ejI0zNPMEQ) allows computations on encrypted data without revealing content—ideal for secure cloud processing. For example, the cloud can compute encrypted similarity without knowing the data, while only the key holder can decrypt the result. See the  [`LightPHE`](https://github.com/serengil/LightPHE) library for partially homomorphic encryption.\n\n```python\nfrom lightphe import LightPHE\n\n# build an additively homomorphic cryptosystem (e.g. Paillier) on-prem\ncs = LightPHE(algorithm_name = \"Paillier\", precision = 19)\n\n# define encrypted and plain vectors\nencrypted_alpha = DeepFace.represent(\"source.jpg\", cryptosystem=cs)[0][\"encrypted_embedding\"]\nbeta = DeepFace.represent(\"target.jpg\")[0][\"embedding\"]\n\n# dot product of encrypted & plain embedding in cloud - private key not required\nencrypted_cosine_similarity = encrypted_alpha @ beta\n\n# decrypt similarity on-prem - private key required\ncalculated_similarity = cs.decrypt(encrypted_cosine_similarity)[0]\n\n# verification\nprint(\"same person\" if calculated_similarity >= 1 - threshold else \"different persons\")\n```\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/icon/encrypt-embeddings.jpg\" width=\"60%\"></p>\n\nFor stronger privacy, fully homomorphic encryption enables dot product computations between encrypted embeddings, but it's far more computationally intensive. Explore [`CipherFace`](https://github.com/serengil/cipherface) for FHE-based approaches.\n\n### Extended Applications\n\nDeepFace can also be used for fun and insightful applications such as\n\n**Find Your Celebrity Look-Alike** - [`Demo`](https://youtu.be/jaxkEn-Kieo), [`Real-Time Demo`](https://youtu.be/RMgIKU1H8DY), [`Tutorial`](https://sefiks.com/2019/05/05/celebrity-look-alike-face-recognition-with-deep-learning-in-keras/)\n\nDeepFace can analyze your facial features and match them with celebrities, letting you discover which famous personality you resemble the most.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/celebrity-look-alike.jpg\" width=\"55%\"></p>\n\n**Find Which Parent a Child Look More** - [`Demo`](https://youtu.be/nza4tmi9vhE), [`Tutorial`](https://sefiks.com/2022/12/22/decide-whom-your-child-looks-like-with-facial-recognition-mommy-or-daddy/)\n\nDeepFace can also be used to compare a child's face to their parents' or relatives' faces to determine which one the child resembles more.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/parental-look-alike-scaled.jpg\" width=\"90%\"></p>\n\n## Contribution\n\nPull requests are more than welcome! If you are planning to contribute a large patch, please create an issue first to get any upfront questions or design decisions out of the way first.\n\nBefore creating a PR, you should run the unit tests and linting locally by running `make test && make lint` command. Once a PR sent, GitHub test workflow will be run automatically and unit test and linting jobs will be available in [GitHub actions](https://github.com/serengil/deepface/actions) before approval.\n\n## Support\n\nThere are many ways to support a project - starring⭐️ the GitHub repo is just one 🙏 It really helps the project get discovered by more people.\n\nIf you do like this work, then you can support it financially on [Patreon](https://www.patreon.com/serengil?repo=deepface), [GitHub Sponsors](https://github.com/sponsors/serengil) or [Buy Me a Coffee](https://buymeacoffee.com/serengil).\n\n<a href=\"https://www.patreon.com/serengil?repo=deepface\">\n<img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/patreon.png\" width=\"30%\">\n</a>\n\n## Citation\n\nPlease cite deepface in your publications if it helps your research.\n\n<details open>\n  <summary>S. I. Serengil and A. Ozpinar, <b>Boosted LightFace: A Hybrid DNN and GBM Model for Boosted Facial Recognition</b>, <i>Gazi University Journal of Science</i>, vol. 39, no. 1, pp. 452-466, 2026.</summary>\n\n  ```BibTeX\n  @article{serengil2026boosted,\n    title     =  {Boosted LightFace: A Hybrid DNN and GBM Model for Boosted Facial Recognition},\n    author    =  {Serengil, Sefik Ilkin and Ozpinar, Alper},\n    journal   =  {Gazi University Journal of Science},\n    volume    =  {39},\n    number    =  {1},\n    pages     =  {452-466},\n    year      =  {2026},\n    doi       =  {10.35378/gujs.1794891},\n    url       =  {https://dergipark.org.tr/en/pub/gujs/article/1794891},\n    publisher =  {Gazi University}\n  }\n  ```\n</details>\n\n<details>\n  <summary>S. Serengil and A. Ozpinar, <b>\"A Benchmark of Facial Recognition Pipelines and Co-Usability Performances of Modules\"</b>, <i>Journal of Information Technologies</i>, vol. 17, no. 2, pp. 95-107, 2024.</summary>\n  \n  ```BibTeX\n  @article{serengil2024lightface,\n    title     = {A Benchmark of Facial Recognition Pipelines and Co-Usability Performances of Modules},\n    author    = {Serengil, Sefik and Ozpinar, Alper},\n    journal   = {Journal of Information Technologies},\n    volume    = {17},\n    number    = {2},\n    pages     = {95-107},\n    year      = {2024},\n    doi       = {10.17671/gazibtd.1399077},\n    url       = {https://dergipark.org.tr/en/pub/gazibtd/issue/84331/1399077},\n    publisher = {Gazi University}\n  }\n  ```\n</details>\n\n<details>\n  <summary>S. I. Serengil and A. Ozpinar, <b>\"HyperExtended LightFace: A Facial Attribute Analysis Framework\"</b>, <i>2021 International Conference on Engineering and Emerging Technologies (ICEET)</i>, 2021, pp. 1-4.</summary>\n  \n  ```BibTeX\n  @inproceedings{serengil2021lightface,\n    title        = {HyperExtended LightFace: A Facial Attribute Analysis Framework},\n    author       = {Serengil, Sefik Ilkin and Ozpinar, Alper},\n    booktitle    = {2021 International Conference on Engineering and Emerging Technologies (ICEET)},\n    pages        = {1-4},\n    year         = {2021},\n    doi          = {10.1109/ICEET53442.2021.9659697},\n    url          = {https://ieeexplore.ieee.org/document/9659697},\n    organization = {IEEE}\n  }\n  ```\n</details>\n\n<details>\n  <summary>S. I. Serengil and A. Ozpinar, <b>\"LightFace: A Hybrid Deep Face Recognition Framework\"</b>, <i>2020 Innovations in Intelligent Systems and Applications Conference (ASYU)</i>, 2020, pp. 23-27.</summary>\n  \n  ```BibTeX\n  @inproceedings{serengil2020lightface,\n    title        = {LightFace: A Hybrid Deep Face Recognition Framework},\n    author       = {Serengil, Sefik Ilkin and Ozpinar, Alper},\n    booktitle    = {2020 Innovations in Intelligent Systems and Applications Conference (ASYU)},\n    pages        = {23-27},\n    year         = {2020},\n    doi          = {10.1109/ASYU50717.2020.9259802},\n    url          = {https://ieeexplore.ieee.org/document/9259802},\n    organization = {IEEE}\n  }\n  ```\n</details>\n\nAlso, if you use deepface in your GitHub projects, please add `deepface` in the `requirements.txt`.\n\n## Licence\n\nDeepFace is licensed under the MIT License - see [`LICENSE`](https://github.com/serengil/deepface/blob/master/LICENSE) for more details.\n\nDeepFace wraps some external face recognition models: [VGG-Face](http://www.robots.ox.ac.uk/~vgg/software/vgg_face/), [Facenet](https://github.com/davidsandberg/facenet/blob/master/LICENSE.md) (both 128d and 512d), [OpenFace](https://github.com/iwantooxxoox/Keras-OpenFace/blob/master/LICENSE), [DeepFace](https://github.com/swghosh/DeepFace), [DeepID](https://github.com/Ruoyiran/DeepID/blob/master/LICENSE.md), [ArcFace](https://github.com/leondgarse/Keras_insightface/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt), [SFace](https://github.com/opencv/opencv_zoo/blob/master/models/face_recognition_sface/LICENSE), [GhostFaceNet](https://github.com/HamadYA/GhostFaceNets/blob/main/LICENSE) and\n[Buffalo_L](https://github.com/deepinsight/insightface/blob/master/README.md). Besides, age, gender and race / ethnicity models were trained on the backbone of VGG-Face with transfer learning. Similarly, DeepFace wraps many face detectors: [OpenCv](https://github.com/opencv/opencv/blob/4.x/LICENSE), [Ssd](https://github.com/opencv/opencv/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/LICENSE.txt), [MtCnn](https://github.com/ipazc/mtcnn/blob/master/LICENSE), [Fast MtCnn](https://github.com/timesler/facenet-pytorch/blob/master/LICENSE.md), [RetinaFace](https://github.com/serengil/retinaface/blob/master/LICENSE), [MediaPipe](https://github.com/google/mediapipe/blob/master/LICENSE), [YuNet](https://github.com/ShiqiYu/libfacedetection/blob/master/LICENSE), [Yolo](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) and [CenterFace](https://github.com/Star-Clouds/CenterFace/blob/master/LICENSE). Finally, DeepFace is optionally using [face anti spoofing](https://github.com/minivision-ai/Silent-Face-Anti-Spoofing/blob/master/LICENSE) to determine the given images are real or fake. License types will be inherited when you intend to utilize those models. Please check the license types of those models for production purposes.\n\nDeepFace [logo](https://thenounproject.com/term/face-recognition/2965879/) is created by [Adrien Coquet](https://thenounproject.com/coquet_adrien/) and it is licensed under [Creative Commons: By Attribution 3.0 License](https://creativecommons.org/licenses/by/3.0/).\n"
  },
  {
    "path": "benchmarks/Evaluate-Results.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"59b076ef\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Evaluate DeepFace's Results In The Big Picture\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"79200f8c\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import pandas as pd\\n\",\n    \"from IPython.display import display, HTML\\n\",\n    \"from sklearn import metrics\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"bbc11592\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"alignment = [False, True]\\n\",\n    \"models = [\\\"Facenet512\\\", \\\"Facenet\\\", \\\"VGG-Face\\\", \\\"ArcFace\\\", \\\"Dlib\\\", \\\"GhostFaceNet\\\", \\\"SFace\\\", \\\"OpenFace\\\", \\\"DeepFace\\\", \\\"DeepID\\\"]\\n\",\n    \"detectors = [\\\"retinaface\\\", \\\"mtcnn\\\", \\\"fastmtcnn\\\", \\\"dlib\\\", \\\"yolov8\\\", \\\"yunet\\\", \\\"centerface\\\", \\\"mediapipe\\\", \\\"ssd\\\", \\\"opencv\\\", \\\"skip\\\"]\\n\",\n    \"distance_metrics = [\\\"euclidean\\\", \\\"euclidean_l2\\\", \\\"cosine\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"e0dabf1b\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Main results\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"03b09fa3\",\n   \"metadata\": {\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"euclidean for alignment False\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>92.8</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>84.1</td>\\n\",\n       \"      <td>88.3</td>\\n\",\n       \"      <td>83.2</td>\\n\",\n       \"      <td>78.6</td>\\n\",\n       \"      <td>70.8</td>\\n\",\n       \"      <td>67.4</td>\\n\",\n       \"      <td>64.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>92.5</td>\\n\",\n       \"      <td>95.5</td>\\n\",\n       \"      <td>81.8</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>83.2</td>\\n\",\n       \"      <td>76.3</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>65.9</td>\\n\",\n       \"      <td>63.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>93.0</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>82.2</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>82.7</td>\\n\",\n       \"      <td>76.8</td>\\n\",\n       \"      <td>71.2</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>64.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>89.0</td>\\n\",\n       \"      <td>94.1</td>\\n\",\n       \"      <td>82.6</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>65.6</td>\\n\",\n       \"      <td>73.1</td>\\n\",\n       \"      <td>75.9</td>\\n\",\n       \"      <td>61.8</td>\\n\",\n       \"      <td>61.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>94.8</td>\\n\",\n       \"      <td>90.8</td>\\n\",\n       \"      <td>95.2</td>\\n\",\n       \"      <td>83.2</td>\\n\",\n       \"      <td>88.4</td>\\n\",\n       \"      <td>77.6</td>\\n\",\n       \"      <td>71.6</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>68.2</td>\\n\",\n       \"      <td>66.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>97.9</td>\\n\",\n       \"      <td>96.5</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>84.1</td>\\n\",\n       \"      <td>91.4</td>\\n\",\n       \"      <td>82.7</td>\\n\",\n       \"      <td>78.2</td>\\n\",\n       \"      <td>71.7</td>\\n\",\n       \"      <td>65.5</td>\\n\",\n       \"      <td>65.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"      <td>95.4</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>83.2</td>\\n\",\n       \"      <td>90.3</td>\\n\",\n       \"      <td>82.0</td>\\n\",\n       \"      <td>76.5</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>65.7</td>\\n\",\n       \"      <td>62.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>94.9</td>\\n\",\n       \"      <td>87.1</td>\\n\",\n       \"      <td>93.1</td>\\n\",\n       \"      <td>71.1</td>\\n\",\n       \"      <td>91.9</td>\\n\",\n       \"      <td>61.9</td>\\n\",\n       \"      <td>73.2</td>\\n\",\n       \"      <td>77.6</td>\\n\",\n       \"      <td>61.7</td>\\n\",\n       \"      <td>62.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>97.2</td>\\n\",\n       \"      <td>94.9</td>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"      <td>83.9</td>\\n\",\n       \"      <td>88.6</td>\\n\",\n       \"      <td>84.9</td>\\n\",\n       \"      <td>82.0</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>66.7</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>94.1</td>\\n\",\n       \"      <td>90.2</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>89.8</td>\\n\",\n       \"      <td>91.2</td>\\n\",\n       \"      <td>91.0</td>\\n\",\n       \"      <td>86.9</td>\\n\",\n       \"      <td>71.1</td>\\n\",\n       \"      <td>68.4</td>\\n\",\n       \"      <td>61.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>92.0</td>\\n\",\n       \"      <td>64.1</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>56.6</td>\\n\",\n       \"      <td>69.0</td>\\n\",\n       \"      <td>75.1</td>\\n\",\n       \"      <td>81.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>60.8</td>\\n\",\n       \"      <td>60.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"euclidean_l2 for alignment False\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>98.0</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>88.4</td>\\n\",\n       \"      <td>89.5</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>70.8</td>\\n\",\n       \"      <td>67.7</td>\\n\",\n       \"      <td>64.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>97.8</td>\\n\",\n       \"      <td>96.2</td>\\n\",\n       \"      <td>95.5</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>89.2</td>\\n\",\n       \"      <td>88.0</td>\\n\",\n       \"      <td>91.1</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>67.0</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>89.6</td>\\n\",\n       \"      <td>87.8</td>\\n\",\n       \"      <td>89.7</td>\\n\",\n       \"      <td>71.2</td>\\n\",\n       \"      <td>67.8</td>\\n\",\n       \"      <td>64.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>96.5</td>\\n\",\n       \"      <td>89.9</td>\\n\",\n       \"      <td>94.1</td>\\n\",\n       \"      <td>93.8</td>\\n\",\n       \"      <td>95.6</td>\\n\",\n       \"      <td>63.0</td>\\n\",\n       \"      <td>75.0</td>\\n\",\n       \"      <td>75.9</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.8</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>95.2</td>\\n\",\n       \"      <td>95.0</td>\\n\",\n       \"      <td>88.1</td>\\n\",\n       \"      <td>88.7</td>\\n\",\n       \"      <td>89.8</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>65.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>98.3</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>91.7</td>\\n\",\n       \"      <td>88.0</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>71.7</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>63.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>90.2</td>\\n\",\n       \"      <td>86.8</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>68.4</td>\\n\",\n       \"      <td>63.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>93.1</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>91.8</td>\\n\",\n       \"      <td>65.6</td>\\n\",\n       \"      <td>74.6</td>\\n\",\n       \"      <td>77.6</td>\\n\",\n       \"      <td>64.9</td>\\n\",\n       \"      <td>61.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>97.9</td>\\n\",\n       \"      <td>97.0</td>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>89.4</td>\\n\",\n       \"      <td>91.5</td>\\n\",\n       \"      <td>93.0</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>68.7</td>\\n\",\n       \"      <td>64.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>96.2</td>\\n\",\n       \"      <td>92.9</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>93.2</td>\\n\",\n       \"      <td>91.5</td>\\n\",\n       \"      <td>93.3</td>\\n\",\n       \"      <td>91.7</td>\\n\",\n       \"      <td>71.1</td>\\n\",\n       \"      <td>68.3</td>\\n\",\n       \"      <td>61.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>91.4</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>57.2</td>\\n\",\n       \"      <td>69.3</td>\\n\",\n       \"      <td>78.4</td>\\n\",\n       \"      <td>83.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"cosine for alignment False\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>98.0</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>88.4</td>\\n\",\n       \"      <td>89.5</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>70.8</td>\\n\",\n       \"      <td>67.7</td>\\n\",\n       \"      <td>63.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>97.8</td>\\n\",\n       \"      <td>96.2</td>\\n\",\n       \"      <td>95.5</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>89.2</td>\\n\",\n       \"      <td>88.0</td>\\n\",\n       \"      <td>91.1</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>67.0</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>89.6</td>\\n\",\n       \"      <td>87.8</td>\\n\",\n       \"      <td>89.7</td>\\n\",\n       \"      <td>71.2</td>\\n\",\n       \"      <td>67.8</td>\\n\",\n       \"      <td>62.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>96.5</td>\\n\",\n       \"      <td>89.9</td>\\n\",\n       \"      <td>94.1</td>\\n\",\n       \"      <td>93.8</td>\\n\",\n       \"      <td>95.6</td>\\n\",\n       \"      <td>63.0</td>\\n\",\n       \"      <td>75.0</td>\\n\",\n       \"      <td>75.9</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>95.2</td>\\n\",\n       \"      <td>95.0</td>\\n\",\n       \"      <td>88.1</td>\\n\",\n       \"      <td>88.7</td>\\n\",\n       \"      <td>89.8</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>65.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>98.3</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>91.7</td>\\n\",\n       \"      <td>88.0</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>71.7</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>63.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>90.2</td>\\n\",\n       \"      <td>86.8</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>68.4</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>96.3</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>93.1</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>91.8</td>\\n\",\n       \"      <td>64.8</td>\\n\",\n       \"      <td>74.6</td>\\n\",\n       \"      <td>77.6</td>\\n\",\n       \"      <td>64.9</td>\\n\",\n       \"      <td>61.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>97.9</td>\\n\",\n       \"      <td>97.0</td>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>89.4</td>\\n\",\n       \"      <td>91.5</td>\\n\",\n       \"      <td>93.0</td>\\n\",\n       \"      <td>69.9</td>\\n\",\n       \"      <td>68.7</td>\\n\",\n       \"      <td>63.8</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>96.2</td>\\n\",\n       \"      <td>92.9</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>93.2</td>\\n\",\n       \"      <td>91.5</td>\\n\",\n       \"      <td>93.3</td>\\n\",\n       \"      <td>91.7</td>\\n\",\n       \"      <td>71.1</td>\\n\",\n       \"      <td>68.1</td>\\n\",\n       \"      <td>61.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>91.4</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>54.8</td>\\n\",\n       \"      <td>69.3</td>\\n\",\n       \"      <td>78.4</td>\\n\",\n       \"      <td>83.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"euclidean for alignment True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>93.5</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>85.2</td>\\n\",\n       \"      <td>88.9</td>\\n\",\n       \"      <td>85.9</td>\\n\",\n       \"      <td>80.2</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>67.0</td>\\n\",\n       \"      <td>65.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>95.2</td>\\n\",\n       \"      <td>93.8</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>83.7</td>\\n\",\n       \"      <td>89.4</td>\\n\",\n       \"      <td>83.0</td>\\n\",\n       \"      <td>77.4</td>\\n\",\n       \"      <td>70.2</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>63.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>93.4</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>83.5</td>\\n\",\n       \"      <td>91.1</td>\\n\",\n       \"      <td>82.8</td>\\n\",\n       \"      <td>77.7</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>66.7</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>90.8</td>\\n\",\n       \"      <td>94.5</td>\\n\",\n       \"      <td>88.6</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>65.7</td>\\n\",\n       \"      <td>66.3</td>\\n\",\n       \"      <td>75.8</td>\\n\",\n       \"      <td>63.4</td>\\n\",\n       \"      <td>60.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>94.4</td>\\n\",\n       \"      <td>91.9</td>\\n\",\n       \"      <td>95.0</td>\\n\",\n       \"      <td>84.1</td>\\n\",\n       \"      <td>89.2</td>\\n\",\n       \"      <td>77.6</td>\\n\",\n       \"      <td>73.4</td>\\n\",\n       \"      <td>68.7</td>\\n\",\n       \"      <td>69.0</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>97.3</td>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>84.9</td>\\n\",\n       \"      <td>92.2</td>\\n\",\n       \"      <td>84.0</td>\\n\",\n       \"      <td>79.4</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>65.8</td>\\n\",\n       \"      <td>65.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.6</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>83.6</td>\\n\",\n       \"      <td>90.4</td>\\n\",\n       \"      <td>82.8</td>\\n\",\n       \"      <td>77.4</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>65.5</td>\\n\",\n       \"      <td>62.8</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>95.1</td>\\n\",\n       \"      <td>88.6</td>\\n\",\n       \"      <td>92.9</td>\\n\",\n       \"      <td>73.2</td>\\n\",\n       \"      <td>93.1</td>\\n\",\n       \"      <td>63.2</td>\\n\",\n       \"      <td>72.5</td>\\n\",\n       \"      <td>78.7</td>\\n\",\n       \"      <td>61.8</td>\\n\",\n       \"      <td>62.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>88.9</td>\\n\",\n       \"      <td>85.6</td>\\n\",\n       \"      <td>87.0</td>\\n\",\n       \"      <td>75.8</td>\\n\",\n       \"      <td>83.1</td>\\n\",\n       \"      <td>79.1</td>\\n\",\n       \"      <td>76.9</td>\\n\",\n       \"      <td>66.8</td>\\n\",\n       \"      <td>63.4</td>\\n\",\n       \"      <td>62.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>88.2</td>\\n\",\n       \"      <td>84.2</td>\\n\",\n       \"      <td>87.3</td>\\n\",\n       \"      <td>73.0</td>\\n\",\n       \"      <td>84.4</td>\\n\",\n       \"      <td>83.8</td>\\n\",\n       \"      <td>81.1</td>\\n\",\n       \"      <td>66.4</td>\\n\",\n       \"      <td>65.5</td>\\n\",\n       \"      <td>59.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>92.0</td>\\n\",\n       \"      <td>64.1</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>56.6</td>\\n\",\n       \"      <td>69.0</td>\\n\",\n       \"      <td>75.1</td>\\n\",\n       \"      <td>81.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>60.8</td>\\n\",\n       \"      <td>60.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"euclidean_l2 for alignment True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>98.4</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>89.1</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>92.4</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>67.7</td>\\n\",\n       \"      <td>64.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>97.6</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>89.8</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>70.2</td>\\n\",\n       \"      <td>66.4</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>98.1</td>\\n\",\n       \"      <td>97.2</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>91.0</td>\\n\",\n       \"      <td>89.5</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>67.4</td>\\n\",\n       \"      <td>64.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>97.0</td>\\n\",\n       \"      <td>92.6</td>\\n\",\n       \"      <td>94.5</td>\\n\",\n       \"      <td>95.1</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>63.3</td>\\n\",\n       \"      <td>69.8</td>\\n\",\n       \"      <td>75.8</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>59.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>97.3</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>95.0</td>\\n\",\n       \"      <td>95.5</td>\\n\",\n       \"      <td>88.8</td>\\n\",\n       \"      <td>88.9</td>\\n\",\n       \"      <td>91.9</td>\\n\",\n       \"      <td>68.7</td>\\n\",\n       \"      <td>67.5</td>\\n\",\n       \"      <td>66.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>97.9</td>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"      <td>91.6</td>\\n\",\n       \"      <td>89.1</td>\\n\",\n       \"      <td>91.0</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>63.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>96.5</td>\\n\",\n       \"      <td>90.9</td>\\n\",\n       \"      <td>87.5</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>67.8</td>\\n\",\n       \"      <td>64.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>92.9</td>\\n\",\n       \"      <td>90.3</td>\\n\",\n       \"      <td>92.6</td>\\n\",\n       \"      <td>64.4</td>\\n\",\n       \"      <td>75.4</td>\\n\",\n       \"      <td>78.7</td>\\n\",\n       \"      <td>64.7</td>\\n\",\n       \"      <td>63.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>88.7</td>\\n\",\n       \"      <td>87.5</td>\\n\",\n       \"      <td>87.0</td>\\n\",\n       \"      <td>86.2</td>\\n\",\n       \"      <td>83.3</td>\\n\",\n       \"      <td>82.2</td>\\n\",\n       \"      <td>84.6</td>\\n\",\n       \"      <td>66.8</td>\\n\",\n       \"      <td>64.1</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>87.6</td>\\n\",\n       \"      <td>84.8</td>\\n\",\n       \"      <td>87.3</td>\\n\",\n       \"      <td>84.6</td>\\n\",\n       \"      <td>84.0</td>\\n\",\n       \"      <td>85.0</td>\\n\",\n       \"      <td>83.6</td>\\n\",\n       \"      <td>66.4</td>\\n\",\n       \"      <td>63.8</td>\\n\",\n       \"      <td>60.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>91.4</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>57.2</td>\\n\",\n       \"      <td>69.3</td>\\n\",\n       \"      <td>78.4</td>\\n\",\n       \"      <td>83.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"cosine for alignment True\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>detector</th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"      <th></th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>retinaface</th>\\n\",\n       \"      <td>98.4</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>96.6</td>\\n\",\n       \"      <td>89.1</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>92.4</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>67.7</td>\\n\",\n       \"      <td>64.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mtcnn</th>\\n\",\n       \"      <td>97.6</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>95.9</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>89.8</td>\\n\",\n       \"      <td>90.5</td>\\n\",\n       \"      <td>70.2</td>\\n\",\n       \"      <td>66.3</td>\\n\",\n       \"      <td>63.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>fastmtcnn</th>\\n\",\n       \"      <td>98.1</td>\\n\",\n       \"      <td>97.2</td>\\n\",\n       \"      <td>95.8</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>91.0</td>\\n\",\n       \"      <td>89.5</td>\\n\",\n       \"      <td>90.0</td>\\n\",\n       \"      <td>69.4</td>\\n\",\n       \"      <td>67.4</td>\\n\",\n       \"      <td>63.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>dlib</th>\\n\",\n       \"      <td>97.0</td>\\n\",\n       \"      <td>92.6</td>\\n\",\n       \"      <td>94.5</td>\\n\",\n       \"      <td>95.1</td>\\n\",\n       \"      <td>96.4</td>\\n\",\n       \"      <td>63.3</td>\\n\",\n       \"      <td>69.8</td>\\n\",\n       \"      <td>75.8</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>58.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yolov8</th>\\n\",\n       \"      <td>97.3</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>95.0</td>\\n\",\n       \"      <td>95.5</td>\\n\",\n       \"      <td>88.8</td>\\n\",\n       \"      <td>88.9</td>\\n\",\n       \"      <td>91.9</td>\\n\",\n       \"      <td>68.7</td>\\n\",\n       \"      <td>67.5</td>\\n\",\n       \"      <td>65.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>yunet</th>\\n\",\n       \"      <td>97.9</td>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"      <td>96.0</td>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"      <td>91.6</td>\\n\",\n       \"      <td>89.1</td>\\n\",\n       \"      <td>91.0</td>\\n\",\n       \"      <td>70.9</td>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"      <td>63.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>centerface</th>\\n\",\n       \"      <td>97.7</td>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"      <td>95.7</td>\\n\",\n       \"      <td>96.5</td>\\n\",\n       \"      <td>90.9</td>\\n\",\n       \"      <td>87.5</td>\\n\",\n       \"      <td>89.3</td>\\n\",\n       \"      <td>68.9</td>\\n\",\n       \"      <td>67.8</td>\\n\",\n       \"      <td>63.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>mediapipe</th>\\n\",\n       \"      <td>96.1</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>92.9</td>\\n\",\n       \"      <td>90.3</td>\\n\",\n       \"      <td>92.6</td>\\n\",\n       \"      <td>64.3</td>\\n\",\n       \"      <td>75.4</td>\\n\",\n       \"      <td>78.7</td>\\n\",\n       \"      <td>64.8</td>\\n\",\n       \"      <td>63.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ssd</th>\\n\",\n       \"      <td>88.7</td>\\n\",\n       \"      <td>87.5</td>\\n\",\n       \"      <td>87.0</td>\\n\",\n       \"      <td>86.2</td>\\n\",\n       \"      <td>83.3</td>\\n\",\n       \"      <td>82.2</td>\\n\",\n       \"      <td>84.5</td>\\n\",\n       \"      <td>66.8</td>\\n\",\n       \"      <td>63.8</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>opencv</th>\\n\",\n       \"      <td>87.6</td>\\n\",\n       \"      <td>84.9</td>\\n\",\n       \"      <td>87.2</td>\\n\",\n       \"      <td>84.6</td>\\n\",\n       \"      <td>84.0</td>\\n\",\n       \"      <td>85.0</td>\\n\",\n       \"      <td>83.6</td>\\n\",\n       \"      <td>66.2</td>\\n\",\n       \"      <td>63.7</td>\\n\",\n       \"      <td>60.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>skip</th>\\n\",\n       \"      <td>91.4</td>\\n\",\n       \"      <td>67.6</td>\\n\",\n       \"      <td>90.6</td>\\n\",\n       \"      <td>54.8</td>\\n\",\n       \"      <td>69.3</td>\\n\",\n       \"      <td>78.4</td>\\n\",\n       \"      <td>83.4</td>\\n\",\n       \"      <td>57.4</td>\\n\",\n       \"      <td>62.6</td>\\n\",\n       \"      <td>61.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<hr>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"for align in alignment:\\n\",\n    \"    for metric in distance_metrics:\\n\",\n    \"        df = pd.read_csv(f\\\"results/pivot_{metric}_with_alignment_{align}.csv\\\")\\n\",\n    \"        df = df.rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"        df = df.set_index('detector')\\n\",\n    \"\\n\",\n    \"        print(f\\\"{metric} for alignment {align}\\\")\\n\",\n    \"        display(HTML(df.to_html()))\\n\",\n    \"        display(HTML(\\\"<hr>\\\"))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"aef6dc64\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def create_github_table():\\n\",\n    \"    for metric in distance_metrics:\\n\",\n    \"        for align in [True, False]:\\n\",\n    \"            df = pd.read_csv(f\\\"results/pivot_{metric}_with_alignment_{align}.csv\\\")\\n\",\n    \"            df = df.rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"            df = df.set_index('detector')\\n\",\n    \"            \\n\",\n    \"            print(f\\\"Performance Matrix for {metric} while alignment is {align} \\\\n\\\")\\n\",\n    \"            header = \\\"| | \\\"\\n\",\n    \"            for col_name in df.columns.tolist():\\n\",\n    \"                header += f\\\"{col_name} |\\\"\\n\",\n    \"            print(header)\\n\",\n    \"            # -------------------------------\\n\",\n    \"            seperator = \\\"| --- | \\\"\\n\",\n    \"            for col_name in df.columns.tolist():\\n\",\n    \"                seperator += \\\" --- |\\\"\\n\",\n    \"            print(seperator)\\n\",\n    \"            # -------------------------------\\n\",\n    \"            for index, instance in df.iterrows():\\n\",\n    \"                line = f\\\"| {instance.name} |\\\"\\n\",\n    \"                for i in instance.values:\\n\",\n    \"                    if i < 97.5:\\n\",\n    \"                        line += f\\\"{i} |\\\"\\n\",\n    \"                    else:\\n\",\n    \"                        line += f\\\"**{i}** |\\\"\\n\",\n    \"                print(line)\\n\",\n    \"            \\n\",\n    \"            print(\\\"\\\\n---------------------------\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"5004caaa\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# create_github_table()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"965c655f\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Alignment impact\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"6ce20a58\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>max_alignment_impact</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <td>6.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <td>3.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <td>2.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <td>2.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <td>2.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"      <td>1.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <td>1.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <td>0.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"align_df = None\\n\",\n    \"\\n\",\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    df1 = (\\n\",\n    \"        pd.read_csv(f\\\"results/pivot_{distance_metric}_with_alignment_True.csv\\\")\\n\",\n    \"        .rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"        .set_index('detector')\\n\",\n    \"    )\\n\",\n    \"    df2 = (\\n\",\n    \"        pd.read_csv(f\\\"results/pivot_{distance_metric}_with_alignment_False.csv\\\")\\n\",\n    \"        .rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"        .set_index('detector')\\n\",\n    \"    )\\n\",\n    \"    df1 = df1[df1.index != \\\"skip\\\"]\\n\",\n    \"    df2 = df2[df2.index != \\\"skip\\\"]\\n\",\n    \"    pivot_df = df1.subtract(df2)\\n\",\n    \"    \\n\",\n    \"    pivot_df = pivot_df.max()\\n\",\n    \"    pivot_df = pd.DataFrame(pivot_df, columns=[f'alignment_impact_of_{distance_metric}'])\\n\",\n    \"    # display(HTML(pivot_df.to_html()))\\n\",\n    \"\\n\",\n    \"    if align_df is None:\\n\",\n    \"        align_df = pivot_df.copy()\\n\",\n    \"    else:\\n\",\n    \"        align_df = align_df.merge(pivot_df, left_index=True, right_index=True)\\n\",\n    \"\\n\",\n    \"# display(HTML(align_df.to_html()))\\n\",\n    \"align_df = pd.DataFrame(align_df.max(axis=1), columns = [\\\"max_alignment_impact\\\"])\\n\",\n    \"align_df = align_df.sort_values(by=[\\\"max_alignment_impact\\\"], ascending=False)\\n\",\n    \"display(HTML(align_df.to_html()))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f66e349f\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Detection impact\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"34eca61b\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>max_detection_impact</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <td>41.8</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <td>32.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <td>27.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <td>20.2</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <td>15.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <td>9.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <td>7.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <td>6.9</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <td>6.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"      <td>5.6</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"detect_df = None\\n\",\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    tmp_df = (\\n\",\n    \"        pd.read_csv(f\\\"results/pivot_{distance_metric}_with_alignment_False.csv\\\")\\n\",\n    \"        .rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"        .set_index('detector')\\n\",\n    \"    )\\n\",\n    \"    ref_df = tmp_df[tmp_df.index == \\\"skip\\\"]\\n\",\n    \"    \\n\",\n    \"    j = []\\n\",\n    \"    for i in range(0, len(detectors) - 1):\\n\",\n    \"        j.append(ref_df)\\n\",\n    \"    minus_df = pd.concat(j)\\n\",\n    \"    \\n\",\n    \"    tmp_df = tmp_df[tmp_df.index != \\\"skip\\\"]\\n\",\n    \"    minus_df.index = tmp_df.index\\n\",\n    \"    \\n\",\n    \"    # print(\\\"performance with no detection\\\")\\n\",\n    \"    # display(HTML(ref_df.to_html()))\\n\",\n    \"    \\n\",\n    \"    # print(\\\"pivot\\\")\\n\",\n    \"    tmp_df = tmp_df.subtract(minus_df)\\n\",\n    \"    # display(HTML(tmp_df.to_html()))\\n\",\n    \"    \\n\",\n    \"    # print(\\\"avg of detector impact for models\\\")\\n\",\n    \"    # avg_df = pd.DataFrame(tmp_df.mean()).T\\n\",\n    \"    avg_df = pd.DataFrame(tmp_df.max(), columns=[f\\\"detection_impact_of_{distance_metric}\\\"])\\n\",\n    \"    # display(HTML(avg_df.to_html()))\\n\",\n    \"\\n\",\n    \"    if detect_df is None:\\n\",\n    \"        detect_df = avg_df.copy()\\n\",\n    \"    else:\\n\",\n    \"        detect_df = detect_df.merge(avg_df, left_index=True, right_index=True)\\n\",\n    \"\\n\",\n    \"# display(HTML(detect_df.to_html()))\\n\",\n    \"detect_df = pd.DataFrame(detect_df.max(axis=1), columns = [\\\"max_detection_impact\\\"])\\n\",\n    \"detect_df = detect_df.sort_values(by=[\\\"max_detection_impact\\\"], ascending=False)\\n\",\n    \"display(HTML(detect_df.to_html()))\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1bdf64a3\",\n   \"metadata\": {},\n   \"source\": [\n    \"# facial recognition model's best scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"0cb1f232\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>best_accuracy_score</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <td>98.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Human-beings</th>\\n\",\n       \"      <td>97.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <td>97.4</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <td>96.8</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <td>96.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>GhostFaceNet</th>\\n\",\n       \"      <td>93.3</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>SFace</th>\\n\",\n       \"      <td>93.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>OpenFace</th>\\n\",\n       \"      <td>78.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepFace</th>\\n\",\n       \"      <td>69.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>DeepID</th>\\n\",\n       \"      <td>66.5</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"              best_accuracy_score\\n\",\n       \"Facenet512                   98.4\\n\",\n       \"Human-beings                 97.5\\n\",\n       \"Facenet                      97.4\\n\",\n       \"Dlib                         96.8\\n\",\n       \"VGG-Face                     96.7\\n\",\n       \"ArcFace                      96.7\\n\",\n       \"GhostFaceNet                 93.3\\n\",\n       \"SFace                        93.0\\n\",\n       \"OpenFace                     78.7\\n\",\n       \"DeepFace                     69.0\\n\",\n       \"DeepID                       66.5\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df = pd.DataFrame()\\n\",\n    \"for align in alignment:\\n\",\n    \"    for distance_metric in distance_metrics:\\n\",\n    \"        tmp_df = (\\n\",\n    \"            pd.read_csv(f\\\"results/pivot_{distance_metric}_with_alignment_{align}.csv\\\")\\n\",\n    \"            .rename(columns = {'Unnamed: 0': 'detector'})\\n\",\n    \"            .set_index('detector')\\n\",\n    \"        )\\n\",\n    \"        df = pd.concat([df, tmp_df])\\n\",\n    \"\\n\",\n    \"pivot_df = pd.DataFrame(df.max(), columns = [\\\"best_accuracy_score\\\"])\\n\",\n    \"\\n\",\n    \"# add human comparison\\n\",\n    \"pivot_df.loc[\\\"Human-beings\\\"] = 97.5\\n\",\n    \"\\n\",\n    \"pivot_df = pivot_df.sort_values(by = [\\\"best_accuracy_score\\\"], ascending = False)\\n\",\n    \"pivot_df\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b81ebe92\",\n   \"metadata\": {},\n   \"source\": [\n    \"# ROC Curves\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"bcb4db0a\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def plot_roc(model_name, detector_backend, distance_metric, align):\\n\",\n    \"    alignment_text = \\\"aligned\\\" if align == True else \\\"unaligned\\\"\\n\",\n    \"\\n\",\n    \"    df = pd.read_csv(f\\\"outputs/test/{model_name}_{detector_backend}_{distance_metric}_{alignment_text}.csv\\\")\\n\",\n    \"    \\n\",\n    \"    #normalize\\n\",\n    \"    df[\\\"distances_normalized\\\"] = df[\\\"distances\\\"] / df[\\\"distances\\\"].max()\\n\",\n    \"    df[\\\"actuals_normalized\\\"] = 0\\n\",\n    \"    idx = df[df[\\\"actuals\\\"] == False].index\\n\",\n    \"    df.loc[idx, \\\"actuals_normalized\\\"] = 1\\n\",\n    \"    \\n\",\n    \"    y_actual = df[\\\"actuals_normalized\\\"].values.tolist()\\n\",\n    \"    y_pred_proba = df[\\\"distances_normalized\\\"].values.tolist()\\n\",\n    \"    \\n\",\n    \"    fpr, tpr, _ = metrics.roc_curve(y_actual, y_pred_proba)\\n\",\n    \"    auc = metrics.roc_auc_score(y_actual, y_pred_proba)\\n\",\n    \"    auc = round(auc, 4)\\n\",\n    \"\\n\",\n    \"    # best accuracy score\\n\",\n    \"    result_path = f\\\"results/pivot_{distance_metric}_with_alignment_{align}.csv\\\"\\n\",\n    \"    result_df = pd.read_csv(result_path)\\n\",\n    \"    acc = result_df[result_df[\\\"Unnamed: 0\\\"] == detector_backend][model_name].values[0]\\n\",\n    \"\\n\",\n    \"    label = f\\\"{model_name}_{detector_backend}_{distance_metric}_{alignment_text} (acc: {acc}, auc: {auc})\\\"\\n\",\n    \"\\n\",\n    \"    return acc, auc, fpr, tpr, label\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"84b3d5b5\",\n   \"metadata\": {\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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gELKNK4hm3EMmTCuIX9sB76ffPJJHsuAEwZMGSuPP3UbvMfiPxKA5JqamuT3+1OuW5bFzw8AAADABmOMEon2lOvxeNjFagD7sh3XwDiG4pXVSAcUN4/fJ2+awBcAUvH7/WkDXwAAAACZGWO0YOEE25uyAU7JdSM1aXP3rt2wl3EMxY3AFyXJGKOOSCTleiyyycVqAAAAAACQEol222FvXd1oeb3BPFeEUpBzWGukExct19K21J3l2co0roFxDMWNwBclxxijWVMv08oPlhW6FAAAAABAGck0jiGTrcc1HHLwvLQbsnm9QQIzZD1GwQ1j6mrU16ri+7OEEfiiKKXr4I1FNtkOewcOG66qQMDJ0gAAAAAAJShTmLt5HMOpamt715Hr+XyhtIEvSp/bYxQyGVEb1NMjh0o55rR075Y+Al8UnWw6eC+85xFZgeqU61WBAD+kAAAAAKDCuT1bl3ENxa8UxyhkQlCLLXoU+H744YeaOXOmPvzwQ91xxx2qr6/Xn/70J+28887aa6+9nK6xohljZGKpfwCZaNzFatzREYnYCnsHDhuuYO86fpgBAAAAANLKZrZube1wjR41K6fnmoxryB8numrzEdbmijEKcFLWge/LL7+sY445RgcddJBeeeUVXX/99aqvr9dbb72l+++/X0888UQ+6qxIxhitnfG2oitaC11KwaTr4KV7FwAAAACQLWbrlq5inHfLGAUUo6wD3yuuuELXXXedJk2apF69enXe/vWvf1133nmno8VVOhNL2A57/YN7y2P1vO2/WFmBalnVqUc2AAAAAACQDWbrlq5wwrl5t5IzYS1BLYpR1oHvkiVL9Oijj3a7vb6+XuvWrXOkKHQ3YMpYefy+lOseix8wAAAAAACgMBwZtZBBOP7l+XOddysR1qJ8ZR34brfddlq1apV22WWXLrcvWrRIO+20k2OFoSuP3ydvmsAXAAAAAACgEAoxaiHk86rGR04CJJN14Hvqqafq8ssv1+OPPy6Px6NEIqHXX39dTU1NOvvss/NRIwCgB4wxisViKdej0aiL1QAAAAAoRk505objzo5ayGRMXY1C3vIbawk4JevA94YbbtBFF12khoYGxeNxDR8+XPF4XKeffrqmTJmSjxoBAFkyxqi5uVktLS2FLgUAAADIO2OMEon2lOvxeNjFakpHPjpznRi1kAmjGID0sg58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f2233XaqqanRfvvtp4cffrjLNXjcAKRXsYGviRklovFubyYaL3RpQN4dffTRWrVqVZe3XXbZxdFrZOre3baDd3httUb0CiZ9Gxqyv/nh+++/3+Xjqq+v71zbuHGj9t13X911111J7xsOh7Vw4UJdddVVWrhwoZ588km9//77OuGEE3r8ediywV9P1NXVOd7l0dbWpn/9618aP368Bg4cqF69ejl6/mITDAa7fA8Uox122KGkvg4///nP1djYKK+3eB5CrFy5UuPGjdPQoUM1b948Pf/883rnnXf0ne98p/OYtrY2HX300dp55501b948vfbaa+rVq5fGjx9v6//p9OnTS/4PhB9//LGOO+44HXHEEVq8eLF++MMf6txzz9ULL7yQ8j5/+tOfdMYZZ+iCCy7Q0qVL9ctf/lK333677rzzzs5j7r77bk2ePFlXX3213nnnHV1zzTW66KKL9Ic//KHzmCeffLLLz+alS5fK5/Pp5JNP7jzmmGOO0YYNG0r6yXMhffTRRxo5cqT+/Oc/64YbbtCiRYs0d+5cXXbZZXr22Wf10ksvFbpESdLMmTO7fC8888wzrl27urpa999/v/7xj3+4dk04o7a2Vn369Cl0GXlXCo9btvbEE0+od+/eOuiggwpdShfnnnuuXnzxRT388MNasmSJjjrqKI0bN06fffZZ5zFf+cpXdOedd2rJkiV67bXXNGTIEB111FFau3ZtyvMOGjRIN910kxYsWKA333xTX//613XiiSfqnXfecePDclQ8Htdxxx2naDSqv/3tb3rwwQf1wAMPaOrUqSnvY+fxliTddtttuvLKK3XFFVfonXfe0UsvvaTx48d3rjc1NXV7Ljp8+PAujwl22GEHXXnllZo7d67efvttNTY2qrGxsctjFh43ABmYCrN+/Xojybz7wz+ZlstfSfsWj3QkPUe0vd3cOuE4c+uE40y0vd3ljyB7kUjETJs2zUybNs1EIpFCl+OIRCJhOjo2pnyLRNaal2bval6avavp6Njo+PXb29vNu+++a9pL4Ou/rYkTJ5oTTzwx6drPfvYzM2LECBMKhcygQYPMhRdeaDZs2NDlmNdee80cdthhJhgMmu22284cddRR5vPPPzfGGBOPx80NN9xghgwZYqqrq81XRowwtzz4iFm8fqNZvH6juffZPxlJ5ldPP2uG7zfSVAeDZp8xY83zC98yiUSi8xpPPfWUGTlypAkEAmaXXXYxV199tYnFYsYYYwYPHmwkdb4NHjzYGGPMX//6VyPJ/Oc//7H1eZBkfv/732c87o033jCSzIoVKzIe+/HHHxtJZtasWebQQw81gUDAzJw50xhjzL333mv22GMPEwgEzLBhw8xdd93VpZat3w477DBjTPev1WGHHWa+//3vm0svvdRsv/32pl+/fmbatGldakj3NdzyOdr67a9//atZt26dOfXUU83AgQNNMBg0I0aMMI8++miX88bjcXPzzTeb3Xbbzfj9ftPQ0GCuu+66zvVPP/3UnHzyyaaurs5sv/325oQTTjAff/xxxs/ZFvfff78ZPny48fv9pn///uaiiy7qXFuxYoU54YQTTE1NjenVq5c5+eSTzerVqzvXFy9ebA4//HBTW1trevXqZUaNGmXmz59vjDFm5syZpq6urvPYadOmmX333dc89NBDZvDgwaZ3797mlFNOMa2trV0+1q2/j/fZZx/z+OOP2/o4Ojo6zHe/+90v/w985Stm+vTpXY5J9nW95JJLOt9fuXKlOfbYY011dbUZMmSI+fWvf20GDx5sbr/99s5jJJl7773XnHTSSSYYDJqhQ4eap59+ust1lixZYo4++mhTU1Nj6uvrzZlnnmnWrl3bud7W1mbOOussU1NTY/r3729uvfXWbrVs61//+pfxeDxm6dKlXW534mdHuu+vTH71q1+Z+vp6E4/HO297++23jSTzj3/8wxhjzPz5840k8+mnn6Y8JpVFixaZnXbayaxatcr2z46tLV++3Jxwwgmmvr7e1NTUmP3339+8+OKLXY5Jdt66urrOnyHGGNPS0mJOPfVUs/3225tQKGRGjx5t/v73v9uu47LLLjN77bVXl9tOOeUUM378+JT3Oe2008y3v/3tLrf9/Oc/N4MGDer8uX3AAQeYpqamLsdMmjTJHHTQQSnPe/vtt5tevXqZtra2Lrc3NjaaM88809bHg67Gjx9vBg0a1O1zusXWv2ft/AyZM2eO+epXv9r5c/nyyy/v/F1sjDGPP/64GTFihKmurjY77LCDOfLII01bW5uZNm1a0t81W66b7P+PG7+Htvz8/8Y3vmFOPvnkztsXLVpkJHU5Nt3Pz4kTJ3b7+Oz8vsv0+TzssMPMRRddZC666CLTu3dv06dPHzNlypQuX7dNmzaZH//4x2bgwIEmFAqZMWPGdH5ujfnyd97zzz9v9thjD1NTU2PGjx9vVq5c2aWWVL9zTzvtNDNhwoQux0ajUdOnTx/z4IMPZvwYM32N3n77bXPEEUd0fs+cd955XX5X/PWvfzVf/epXTSgUMnV1debAAw80n3zyiTHmy6/fFlt+l95yyy2mf//+ZocddjDf+973TDQatf35Smfb6xmz+efWlseddmt46KGHzOjRo01tba3p16+fOe2008yaNWu6fMxbP37d9nGLMcZce+21ZscddzS1tbXmnHPOMZdffnlePhczZ840DQ0NJhgMmpNOOsnceuut3WrZ1nHHHdft5/8bb7xhxo0bZ/r06WN69+5tDj30ULNgwYIux/znP/8x559/vqmvrzeBQMDstdde5g9/+EPnerrHDJmEw2Hj8/nMs88+2+X2UaNGmSuvvDLl/bbkBC+99JKt62yx/fbbm/vuu8/28XYeKyZ7PHbiiSeaiRMndr6/adMmc9lll5lBgwYZv99vdtttt6zqeO6554zX6+3ymPruu+82vXv3TpkZ2Hm89fnnn5tgMJjV53Hx4sVGknnllVfSHjdy5EgzZcqULre5/bihlHMAFI8tP2/Wr1+f1+sUT3tOkfEP7i2PxaenGBljtGDhBM15ee+Ub6++NrYgdYWjHQV5Mw5tbub1evXzn/9c77zzjh588EH95S9/0WWXXda5vnjxYh155JEaPny45s6dq9dee03HH3+84vHNnfE33nijHnroIc2YMUNvL12qM753sa48/xytWzBPI3oFtUsoIEm6/4Zr9Yvbb9Mb8+erd8Cvn1x8YWfn3Kuvvqqzzz5bl1xyid5991396le/0gMPPKDrr79ekjpfjrWlQ2jbl2ftt99+GjBggL7xjW/o9ddfz/lzsn79enk8nqw6ba+44gpdcsklWrZsmcaPH69f//rXmjp1qq6//notW7ZMN9xwg6666io9+OCDkqQ33nhDkvTSSy9p1apVevLJJ1Oe+8EHH1RNTY3mzZunn/70p/rJT36iF198sXM93dfwwAMP1Pvvvy9J+t3vfqdVq1bpwAMP1KZNmzR69Gj98Y9/1NKlS3X++efrrLPO6qxLkiZPnqybbrpJV111ld599109+uij6tevn6TNXczjx49Xr1699Oqrr+r1119XbW2tjj76aEWj0Yyfr7vvvlsXXXSRzj//fC1ZskTPPPOMhg4dKklKJBI68cQT9fnnn+vll1/Wiy++qI8++kinnHJK5/3POOMMDRo0SPPnz9eCBQt0xRVXyLKslNf78MMP9dRTT+nZZ5/Vs88+q5dfflk33XRT5/rW38fvvPOOfvSjH+nMM8/Uyy+/nPFjSSQSGjRokB5//HG9++67mjp1qv7v//5Pjz32WMb7brFljMicOXP0u9/9Tvfcc4/+9a9/dTvummuu0YQJE/T222/r2GOP1RlnnKHPP/9ckvTFF1/o61//ukaOHKk333xTzz//vNasWaMJEyZ03v/SSy/Vyy+/rKefflp//vOfNWfOHC1cmH6zy9dee02hUEh77rlnl9tz/dmR7vtL2vzy6W27R7YWiUTk9/u7dB0Hg8HOmiVp2LBh6tOnj+6//35Fo1G1t7fr/vvv15577qkhQ4akPHc4HNbpp5+uu+66S/3790/7+Umlra1Nxx57rGbPnq1Fixbp6KOP1vHHH69PP/00q3Mcdthh+uyzz/TMM8/orbfe0mWXXdb5MsYto2HmzJmT8hxz587VuHHjutw2fvx4zZ07N+V9IpGIqquru9wWDAb1z3/+UytWrEh7zBtvvJGye/r+++/Xqaee2uXlm5I0ZswYvfrqqynrKQRjjGKbNhXkze7v93//+9/685//rIsuuqjb53SLbTvU0/0M+eyzz3Tsscfqq1/9qt566y3dfffduv/++3XddddJklatWqXTTjtN3/3ud7Vs2TLNmTNH3/zmN2WMUVNTkyZMmNDl1UQHHnhg2vrd/D1000036Xe/+53efPPNpLVk+vl5xx136IADDtB5553X+fE1NDSk/fgyfT63ePDBB1VVVaU33nhDd9xxh2677Tbdd999nesXX3yx5s6dq1mzZuntt9/WySefrKOPPrpLx3I4HNatt96qhx9+WK+88oo+/fRTNTU1da6n+517xhln6A9/+EOXl2e/8MILCofD+n//7/+l/Ril9F+jjRs3avz48dp+++01f/58Pf7443rppZd08cUXS5I6Ojp00kkn6bDDDtPbb7+tuXPn6vzzz0/7yoq//vWv+vDDD/XXv/61sztx6zE1dj5fucpUQywW07XXXqu33npLTz31lD755JO0v8+29etf/1rXX3+9br75Zi1YsEA777yz7r777qzryPS5mDdvns455xxdfPHFWrx4sY444ohu35/JvPbaa9p///273LZhwwZNnDhRr732mv7+979r991317HHHqsNGzZI2vxY6ZhjjtHrr7+uRx55RO+++65uuukm+Xw+SZkfMzzwwANpvy86OjoUj8eT/l7a8phgW9FoVPfcc4/q6uq07777Zvy4pc0dsrNmzdLGjRt1wAEH2LqP5MxjRWnz48Xf/OY3+vnPf65ly5bpV7/6lWprazvXhwwZoquvvjrl/efOnau99967y+Ot8ePHq7W1NWXHsp3HWy+++KISiYQ+++wz7bnnnho0aJAmTJiglpaWlLXcd999+spXvqJDDjkk6boxRrNnz9b777+vQw89tMtaMT5uAIpGXuPkIrQlSX//jQUmHulI+bb1X9O3RYdvYXV0bOzs3s30Nv/Nk9N+LXsq2V/2NkZiZvDlzxbkbWMklqbariZOnGh8Pp+pqanpfNu2e2uLxx9/3PTp06fz/dNOOy1lx9amTZtMKBQyf/vb34wxxnQkEmbx+o3m/5010Zx62mnGmC+7GLb+i+8f//hHI6nzc3nkkUeaG264ocu5H374YTNgwIDO95WkQ+i9994zM2bMMG+++aZ5/fXXTWNjo6mqqurWUZDuHNtqb283o0aNMqeffnra47bY0uG77V/pd9ttt26dStdee6054IADutxv0aJFXY5J1gl68MEHdznmq1/9qrn88stT1rTt1/A///lPl26rVI477jjz4x//2BhjTGtrqwkEAubee+9NeuzDDz9shg0b1uX/WiQSMcFg0Lzwwgtpr2OMMQMHDkzZcfHnP//Z+Hy+Ll2Z77zzjpFk3njjDWOMMb169TIPPPBA0vsn6/ANhUJdOnovvfRSM3bsWGNM9+/jLc455xxz2n+/j7N10UUXmW9961ud76fr8F22bJmR1NmhbIwx//jHP4ykbh2+W3c4tLW1GUnmT3/6kzFm8/fXUUcd1aWOlpaWzb//3n/fbNiwwfj9fvPYY491rv/73/82wWAwbYfv7bffbnbdddeMH3M2PzsyfX8ZY8xZZ51lrrjiipTrS5cuNVVVVeanP/2piUQi5vPPPzff+ta3jKQuP0+WLFlidtttN+P1eo3X6zXDhg3r7B5L5fzzzzfnnHNO5/t2fnbYsddee5lf/OIXac+7dYfvr371K9OrVy/z73//O+n5/vnPf5phw4aZefPmpbzm7rvv3u3n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\",\n      \"text/plain\": [\n       \"<Figure size 1700x800 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# to show all models in same graph\\n\",\n    \"plt.figure(figsize=(17, 8))\\n\",\n    \"\\n\",\n    \"for model_name in models:\\n\",\n    \"    # to show graphs model by model\\n\",\n    \"    # plt.figure(figsize=(17, 8))\\n\",\n    \"    accs = []\\n\",\n    \"    aucs = []\\n\",\n    \"    fprs = []\\n\",\n    \"    tprs = []\\n\",\n    \"    labels = []\\n\",\n    \"    for distance_metric in distance_metrics:\\n\",\n    \"        # for detector_backend in robust_face_detectors:\\n\",\n    \"        for detector_backend in detectors:\\n\",\n    \"            for align in alignment:\\n\",\n    \"                if detector_backend == \\\"skip\\\" and align is True:\\n\",\n    \"                    continue\\n\",\n    \"                acc, auc, fpr, tpr, label = plot_roc(model_name, detector_backend, distance_metric, align)\\n\",\n    \"                accs.append(acc)\\n\",\n    \"                aucs.append(auc)\\n\",\n    \"                fprs.append(fpr)\\n\",\n    \"                tprs.append(tpr)\\n\",\n    \"                labels.append(label)\\n\",\n    \"    # ---------------------------------\\n\",\n    \"    #sort by auc\\n\",\n    \"    df = pd.DataFrame({\\\"acc\\\": accs, \\\"auc\\\": aucs, \\\"fpr\\\": fprs, \\\"tpr\\\": tprs, \\\"label\\\": labels})\\n\",\n    \"    # df = df.sort_values(by = [\\\"auc\\\"], ascending = False).reset_index()\\n\",\n    \"    df = df.sort_values(by = [\\\"acc\\\"], ascending = False).reset_index()\\n\",\n    \"    \\n\",\n    \"    for index, instance in df.iterrows():\\n\",\n    \"        fpr = instance[\\\"fpr\\\"]\\n\",\n    \"        tpr = instance[\\\"tpr\\\"]\\n\",\n    \"        auc = instance[\\\"auc\\\"]\\n\",\n    \"        acc = instance[\\\"acc\\\"]\\n\",\n    \"        label = instance[\\\"label\\\"]\\n\",\n    \"        \\n\",\n    \"        plt.plot(fpr, tpr, label=label)\\n\",\n    \"        plt.ylabel(\\\"True Positive Rate\\\")\\n\",\n    \"        plt.xlabel(\\\"False Positive Rate\\\")\\n\",\n    \"        plt.legend(loc=\\\"lower center\\\", ncol=2)\\n\",\n    \"        # normally this should be [0, 1] but that scale makes graphs not legible\\n\",\n    \"        # plt.xlim([0, 1])\\n\",\n    \"        plt.xlim([0, 0.3])\\n\",\n    \"\\n\",\n    \"        # to show the best auc value\\n\",\n    \"        break\\n\",\n    \"    \\n\",\n    \"    # to show graphs model by model\\n\",\n    \"    # plt.show()\\n\",\n    \"    # print(\\\"----------------\\\")\\n\",\n    \"\\n\",\n    \"# to show all models in same graph\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"661c5236\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "benchmarks/Perform-Experiments.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8133a99d\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Perform Experiments with DeepFace on LFW dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"5aab0cbe\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# built-in dependencies\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"# 3rd party dependencies\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"from sklearn.metrics import accuracy_score\\n\",\n    \"from sklearn.datasets import fetch_lfw_pairs\\n\",\n    \"from deepface import DeepFace\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"64c9ed9a\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"This experiment is done with pip package of deepface with 0.0.90 version\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"This experiment is done with pip package of deepface with {DeepFace.__version__} version\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"feaec973\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Configuration Sets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"453104b4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# all configuration alternatives for 4 dimensions of arguments\\n\",\n    \"alignment = [True, False]\\n\",\n    \"models = [\\\"Facenet512\\\", \\\"Facenet\\\", \\\"VGG-Face\\\", \\\"ArcFace\\\", \\\"Dlib\\\", \\\"GhostFaceNet\\\", \\\"SFace\\\", \\\"OpenFace\\\", \\\"DeepFace\\\", \\\"DeepID\\\"]\\n\",\n    \"detectors = [\\\"retinaface\\\", \\\"mtcnn\\\", \\\"fastmtcnn\\\", \\\"dlib\\\", \\\"yolov8\\\", \\\"yunet\\\", \\\"centerface\\\", \\\"mediapipe\\\", \\\"ssd\\\", \\\"opencv\\\", \\\"skip\\\"]\\n\",\n    \"metrics = [\\\"euclidean\\\", \\\"euclidean_l2\\\", \\\"cosine\\\"]\\n\",\n    \"expand_percentage = 0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c9aeb57a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Create Required Folders if necessary\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"671d8a00\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"target_paths = [\\\"lfwe\\\", \\\"dataset\\\", \\\"outputs\\\", \\\"outputs/test\\\", \\\"results\\\"]\\n\",\n    \"for target_path in target_paths:\\n\",\n    \"    if not os.path.exists(target_path):\\n\",\n    \"        os.mkdir(target_path)\\n\",\n    \"        print(f\\\"{target_path} is just created\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fc31f03a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load LFW Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"721a7d70\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pairs_touch = \\\"outputs/test_lfwe.txt\\\"\\n\",\n    \"instances = 1000 #pairs.shape[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"010184d8\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"target_path = \\\"dataset/test_lfw.npy\\\"\\n\",\n    \"labels_path = \\\"dataset/test_labels.npy\\\"\\n\",\n    \"\\n\",\n    \"if os.path.exists(target_path) != True:\\n\",\n    \"    fetch_lfw_pairs = fetch_lfw_pairs(subset = 'test', color = True\\n\",\n    \"                                  , resize = 2\\n\",\n    \"                                  , funneled = False\\n\",\n    \"                                  , slice_=None\\n\",\n    \"                                 )\\n\",\n    \"    pairs = fetch_lfw_pairs.pairs\\n\",\n    \"    labels = fetch_lfw_pairs.target\\n\",\n    \"    target_names = fetch_lfw_pairs.target_names\\n\",\n    \"    np.save(target_path, pairs)\\n\",\n    \"    np.save(labels_path, labels)\\n\",\n    \"else:\\n\",\n    \"    if not os.path.exists(pairs_touch):\\n\",\n    \"        # loading pairs takes some time. but if we extract these pairs as image, no need to load it anymore\\n\",\n    \"        pairs = np.load(target_path)\\n\",\n    \"    labels = np.load(labels_path)    \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"005f582e\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Save LFW image pairs into file system\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"5bc23313\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 1000/1000 [00:00<00:00, 190546.25it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for i in tqdm(range(0, instances)):\\n\",\n    \"    img1_target = f\\\"lfwe/test/{i}_1.jpg\\\"\\n\",\n    \"    img2_target = f\\\"lfwe/test/{i}_2.jpg\\\"\\n\",\n    \"    \\n\",\n    \"    if not os.path.exists(img1_target):\\n\",\n    \"        img1 = pairs[i][0]\\n\",\n    \"        # plt.imsave(img1_target, img1/255) #works for my mac\\n\",\n    \"        plt.imsave(img1_target, img1) #works for my debian\\n\",\n    \"    \\n\",\n    \"    if not os.path.exists(img2_target):\\n\",\n    \"        img2 = pairs[i][1]\\n\",\n    \"        # plt.imsave(img2_target, img2/255) #works for my mac\\n\",\n    \"        plt.imsave(img2_target, img2) #works for my debian\\n\",\n    \"    \\n\",\n    \"if not os.path.exists(pairs_touch):\\n\",\n    \"    open(pairs_touch,'a').close()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6f8fa8fa\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Perform Experiments\\n\",\n    \"\\n\",\n    \"This block will save the experiments results in outputs folder\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"e7fba936\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for model_name in models:\\n\",\n    \"    for detector_backend in detectors:\\n\",\n    \"        for distance_metric in metrics:\\n\",\n    \"            for align in alignment:\\n\",\n    \"                \\n\",\n    \"                if detector_backend == \\\"skip\\\" and align is True:\\n\",\n    \"                    # Alignment is not possible for a skipped detector configuration\\n\",\n    \"                    continue\\n\",\n    \"                \\n\",\n    \"                alignment_text = \\\"aligned\\\" if align is True else \\\"unaligned\\\"\\n\",\n    \"                task = f\\\"{model_name}_{detector_backend}_{distance_metric}_{alignment_text}\\\"\\n\",\n    \"                output_file = f\\\"outputs/test/{task}.csv\\\"\\n\",\n    \"                if os.path.exists(output_file):\\n\",\n    \"                     #print(f\\\"{output_file} is available already\\\")\\n\",\n    \"                     continue\\n\",\n    \"                \\n\",\n    \"                distances = []\\n\",\n    \"                for i in tqdm(range(0, instances), desc = task):\\n\",\n    \"                    img1_target = f\\\"lfwe/test/{i}_1.jpg\\\"\\n\",\n    \"                    img2_target = f\\\"lfwe/test/{i}_2.jpg\\\"\\n\",\n    \"                    result = DeepFace.verify(\\n\",\n    \"                        img1_path=img1_target,\\n\",\n    \"                        img2_path=img2_target,\\n\",\n    \"                        model_name=model_name,\\n\",\n    \"                        detector_backend=detector_backend,\\n\",\n    \"                        distance_metric=distance_metric,\\n\",\n    \"                        align=align,\\n\",\n    \"                        enforce_detection=False,\\n\",\n    \"                        expand_percentage=expand_percentage,\\n\",\n    \"                    )\\n\",\n    \"                    distance = result[\\\"distance\\\"]\\n\",\n    \"                    distances.append(distance)\\n\",\n    \"                # -----------------------------------\\n\",\n    \"                df = pd.DataFrame(list(labels), columns = [\\\"actuals\\\"])\\n\",\n    \"                df[\\\"distances\\\"] = distances\\n\",\n    \"                df.to_csv(output_file, index=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a0b8dafa\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Calculate Results\\n\",\n    \"\\n\",\n    \"Experiments were responsible for calculating distances. We will calculate the best accuracy scores in this block.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"67376e76\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"data = [[0 for _ in range(len(models))] for _ in range(len(detectors))]\\n\",\n    \"base_df = pd.DataFrame(data, columns=models, index=detectors)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"f2cc536b\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"results/pivot_euclidean_with_alignment_True.csv saved\\n\",\n      \"results/pivot_euclidean_l2_with_alignment_True.csv saved\\n\",\n      \"results/pivot_cosine_with_alignment_True.csv saved\\n\",\n      \"results/pivot_euclidean_with_alignment_False.csv saved\\n\",\n      \"results/pivot_euclidean_l2_with_alignment_False.csv saved\\n\",\n      \"results/pivot_cosine_with_alignment_False.csv saved\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for is_aligned in alignment:\\n\",\n    \"    for distance_metric in metrics:\\n\",\n    \"\\n\",\n    \"        current_df = base_df.copy()\\n\",\n    \"        \\n\",\n    \"        target_file = f\\\"results/pivot_{distance_metric}_with_alignment_{is_aligned}.csv\\\"\\n\",\n    \"        if os.path.exists(target_file):\\n\",\n    \"            continue\\n\",\n    \"        \\n\",\n    \"        for model_name in models:\\n\",\n    \"            for detector_backend in detectors:\\n\",\n    \"\\n\",\n    \"                align = \\\"aligned\\\" if is_aligned is True else \\\"unaligned\\\"\\n\",\n    \"\\n\",\n    \"                if detector_backend == \\\"skip\\\" and is_aligned is True:\\n\",\n    \"                    # Alignment is not possible for a skipped detector configuration\\n\",\n    \"                    align = \\\"unaligned\\\"\\n\",\n    \"\\n\",\n    \"                source_file = f\\\"outputs/test/{model_name}_{detector_backend}_{distance_metric}_{align}.csv\\\"\\n\",\n    \"                df = pd.read_csv(source_file)\\n\",\n    \"                  \\n\",\n    \"                positive_mean = df[(df[\\\"actuals\\\"] == True) | (df[\\\"actuals\\\"] == 1)][\\\"distances\\\"].mean()\\n\",\n    \"                negative_mean = df[(df[\\\"actuals\\\"] == False) | (df[\\\"actuals\\\"] == 0)][\\\"distances\\\"].mean()\\n\",\n    \"\\n\",\n    \"                distances = sorted(df[\\\"distances\\\"].values.tolist())\\n\",\n    \"\\n\",\n    \"                items = []\\n\",\n    \"                for i, distance in enumerate(distances):\\n\",\n    \"                    if distance >= positive_mean and distance <= negative_mean:\\n\",\n    \"                        sandbox_df = df.copy()\\n\",\n    \"                        sandbox_df[\\\"predictions\\\"] = False\\n\",\n    \"                        idx = sandbox_df[sandbox_df[\\\"distances\\\"] < distance].index\\n\",\n    \"                        sandbox_df.loc[idx, \\\"predictions\\\"] = True\\n\",\n    \"\\n\",\n    \"                        actuals = sandbox_df.actuals.values.tolist()\\n\",\n    \"                        predictions = sandbox_df.predictions.values.tolist()\\n\",\n    \"                        accuracy = 100*accuracy_score(actuals, predictions)\\n\",\n    \"                        items.append((distance, accuracy))\\n\",\n    \"\\n\",\n    \"                pivot_df = pd.DataFrame(items, columns = [\\\"distance\\\", \\\"accuracy\\\"])\\n\",\n    \"                pivot_df = pivot_df.sort_values(by = [\\\"accuracy\\\"], ascending = False)\\n\",\n    \"                threshold = pivot_df.iloc[0][\\\"distance\\\"]\\n\",\n    \"                # print(f\\\"threshold for {model_name}/{detector_backend} is {threshold}\\\")\\n\",\n    \"                accuracy = pivot_df.iloc[0][\\\"accuracy\\\"]\\n\",\n    \"\\n\",\n    \"                # print(source_file, round(accuracy, 1))\\n\",\n    \"                current_df.at[detector_backend, model_name] = round(accuracy, 1)\\n\",\n    \"        \\n\",\n    \"        current_df.to_csv(target_file)\\n\",\n    \"        print(f\\\"{target_file} saved\\\")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "benchmarks/README.md",
    "content": "# Benchmarks\n\n[`🎥 Video Tutorial`](https://youtu.be/eKOZawGR3y0)\n\nDeepFace offers various configurations that significantly impact accuracy, including the facial recognition model, face detector model, distance metric, and alignment mode. Our experiments conducted on the [LFW dataset](https://sefiks.com/2020/08/27/labeled-faces-in-the-wild-for-face-recognition/) using different combinations of these configurations yield the following results.\n\nYou can reproduce the results by executing the `Perform-Experiments.ipynb` and `Evaluate-Results.ipynb` notebooks, respectively.\n\n## ROC Curves\n\nROC curves provide a valuable means of evaluating the performance of different models on a broader scale. The following illusration shows ROC curves for different facial recognition models alongside their optimal configurations yielding the highest accuracy scores.\n\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/serengil/deepface/master/icon/benchmarks.jpg\" width=\"95%\" height=\"95%\"></p>\n\nIn summary, FaceNet-512d surpasses human-level accuracy, while FaceNet-128d reaches it, with Dlib, VGG-Face, and ArcFace closely trailing but slightly below, and GhostFaceNet and SFace making notable contributions despite not leading, while OpenFace, DeepFace, and DeepId exhibit lower performance.\n\n## Accuracy Scores\n\nPlease note that humans achieve a 97.5% accuracy score on the same dataset. Configurations that outperform this benchmark are highlighted in bold.\n\n## Performance Matrix for euclidean while alignment is True\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |95.9 |93.5 |95.8 |85.2 |88.9 |85.9 |80.2 |69.4 |67.0 |65.6 |\n| mtcnn |95.2 |93.8 |95.9 |83.7 |89.4 |83.0 |77.4 |70.2 |66.5 |63.3 |\n| fastmtcnn |96.0 |93.4 |95.8 |83.5 |91.1 |82.8 |77.7 |69.4 |66.7 |64.0 |\n| dlib |96.0 |90.8 |94.5 |88.6 |96.8 |65.7 |66.3 |75.8 |63.4 |60.4 |\n| yolov8 |94.4 |91.9 |95.0 |84.1 |89.2 |77.6 |73.4 |68.7 |69.0 |66.5 |\n| yunet |97.3 |96.1 |96.0 |84.9 |92.2 |84.0 |79.4 |70.9 |65.8 |65.2 |\n| centerface |**97.6** |95.8 |95.7 |83.6 |90.4 |82.8 |77.4 |68.9 |65.5 |62.8 |\n| mediapipe |95.1 |88.6 |92.9 |73.2 |93.1 |63.2 |72.5 |78.7 |61.8 |62.2 |\n| ssd |88.9 |85.6 |87.0 |75.8 |83.1 |79.1 |76.9 |66.8 |63.4 |62.5 |\n| opencv |88.2 |84.2 |87.3 |73.0 |84.4 |83.8 |81.1 |66.4 |65.5 |59.6 |\n| skip |92.0 |64.1 |90.6 |56.6 |69.0 |75.1 |81.4 |57.4 |60.8 |60.7 |\n\n## Performance Matrix for euclidean while alignment is False\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |96.1 |92.8 |95.7 |84.1 |88.3 |83.2 |78.6 |70.8 |67.4 |64.3 |\n| mtcnn |95.9 |92.5 |95.5 |81.8 |89.3 |83.2 |76.3 |70.9 |65.9 |63.2 |\n| fastmtcnn |96.3 |93.0 |96.0 |82.2 |90.0 |82.7 |76.8 |71.2 |66.5 |64.3 |\n| dlib |96.0 |89.0 |94.1 |82.6 |96.3 |65.6 |73.1 |75.9 |61.8 |61.9 |\n| yolov8 |94.8 |90.8 |95.2 |83.2 |88.4 |77.6 |71.6 |68.9 |68.2 |66.3 |\n| yunet |**97.9** |96.5 |96.3 |84.1 |91.4 |82.7 |78.2 |71.7 |65.5 |65.2 |\n| centerface |97.4 |95.4 |95.8 |83.2 |90.3 |82.0 |76.5 |69.9 |65.7 |62.9 |\n| mediapipe |94.9 |87.1 |93.1 |71.1 |91.9 |61.9 |73.2 |77.6 |61.7 |62.4 |\n| ssd |97.2 |94.9 |96.7 |83.9 |88.6 |84.9 |82.0 |69.9 |66.7 |64.0 |\n| opencv |94.1 |90.2 |95.8 |89.8 |91.2 |91.0 |86.9 |71.1 |68.4 |61.1 |\n| skip |92.0 |64.1 |90.6 |56.6 |69.0 |75.1 |81.4 |57.4 |60.8 |60.7 |\n\n## Performance Matrix for euclidean_l2 while alignment is True\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |**98.4** |96.4 |95.8 |96.6 |89.1 |90.5 |92.4 |69.4 |67.7 |64.4 |\n| mtcnn |**97.6** |96.8 |95.9 |96.0 |90.0 |89.8 |90.5 |70.2 |66.4 |64.0 |\n| fastmtcnn |**98.1** |97.2 |95.8 |96.4 |91.0 |89.5 |90.0 |69.4 |67.4 |64.1 |\n| dlib |97.0 |92.6 |94.5 |95.1 |96.4 |63.3 |69.8 |75.8 |66.5 |59.5 |\n| yolov8 |97.3 |95.7 |95.0 |95.5 |88.8 |88.9 |91.9 |68.7 |67.5 |66.0 |\n| yunet |**97.9** |97.4 |96.0 |96.7 |91.6 |89.1 |91.0 |70.9 |66.5 |63.6 |\n| centerface |**97.7** |96.8 |95.7 |96.5 |90.9 |87.5 |89.3 |68.9 |67.8 |64.0 |\n| mediapipe |96.1 |90.6 |92.9 |90.3 |92.6 |64.4 |75.4 |78.7 |64.7 |63.0 |\n| ssd |88.7 |87.5 |87.0 |86.2 |83.3 |82.2 |84.6 |66.8 |64.1 |62.6 |\n| opencv |87.6 |84.8 |87.3 |84.6 |84.0 |85.0 |83.6 |66.4 |63.8 |60.9 |\n| skip |91.4 |67.6 |90.6 |57.2 |69.3 |78.4 |83.4 |57.4 |62.6 |61.6 |\n\n## Performance Matrix for euclidean_l2 while alignment is False\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |**98.0** |95.9 |95.7 |95.7 |88.4 |89.5 |90.6 |70.8 |67.7 |64.6 |\n| mtcnn |**97.8** |96.2 |95.5 |95.9 |89.2 |88.0 |91.1 |70.9 |67.0 |64.0 |\n| fastmtcnn |**97.7** |96.6 |96.0 |95.9 |89.6 |87.8 |89.7 |71.2 |67.8 |64.2 |\n| dlib |96.5 |89.9 |94.1 |93.8 |95.6 |63.0 |75.0 |75.9 |62.6 |61.8 |\n| yolov8 |**97.7** |95.8 |95.2 |95.0 |88.1 |88.7 |89.8 |68.9 |68.9 |65.3 |\n| yunet |**98.3** |96.8 |96.3 |96.1 |91.7 |88.0 |90.5 |71.7 |67.6 |63.2 |\n| centerface |97.4 |96.3 |95.8 |95.8 |90.2 |86.8 |89.3 |69.9 |68.4 |63.1 |\n| mediapipe |96.3 |90.0 |93.1 |89.3 |91.8 |65.6 |74.6 |77.6 |64.9 |61.6 |\n| ssd |**97.9** |97.0 |96.7 |96.6 |89.4 |91.5 |93.0 |69.9 |68.7 |64.9 |\n| opencv |96.2 |92.9 |95.8 |93.2 |91.5 |93.3 |91.7 |71.1 |68.3 |61.6 |\n| skip |91.4 |67.6 |90.6 |57.2 |69.3 |78.4 |83.4 |57.4 |62.6 |61.6 |\n\n## Performance Matrix for cosine while alignment is True\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |**98.4** |96.4 |95.8 |96.6 |89.1 |90.5 |92.4 |69.4 |67.7 |64.4 |\n| mtcnn |**97.6** |96.8 |95.9 |96.0 |90.0 |89.8 |90.5 |70.2 |66.3 |63.0 |\n| fastmtcnn |**98.1** |97.2 |95.8 |96.4 |91.0 |89.5 |90.0 |69.4 |67.4 |63.6 |\n| dlib |97.0 |92.6 |94.5 |95.1 |96.4 |63.3 |69.8 |75.8 |66.5 |58.7 |\n| yolov8 |97.3 |95.7 |95.0 |95.5 |88.8 |88.9 |91.9 |68.7 |67.5 |65.9 |\n| yunet |**97.9** |97.4 |96.0 |96.7 |91.6 |89.1 |91.0 |70.9 |66.5 |63.5 |\n| centerface |**97.7** |96.8 |95.7 |96.5 |90.9 |87.5 |89.3 |68.9 |67.8 |63.6 |\n| mediapipe |96.1 |90.6 |92.9 |90.3 |92.6 |64.3 |75.4 |78.7 |64.8 |63.0 |\n| ssd |88.7 |87.5 |87.0 |86.2 |83.3 |82.2 |84.5 |66.8 |63.8 |62.6 |\n| opencv |87.6 |84.9 |87.2 |84.6 |84.0 |85.0 |83.6 |66.2 |63.7 |60.1 |\n| skip |91.4 |67.6 |90.6 |54.8 |69.3 |78.4 |83.4 |57.4 |62.6 |61.1 |\n\n## Performance Matrix for cosine while alignment is False\n\n| | Facenet512 |Facenet |VGG-Face |ArcFace |Dlib |GhostFaceNet |SFace |OpenFace |DeepFace |DeepID |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| retinaface |**98.0** |95.9 |95.7 |95.7 |88.4 |89.5 |90.6 |70.8 |67.7 |63.7 |\n| mtcnn |**97.8** |96.2 |95.5 |95.9 |89.2 |88.0 |91.1 |70.9 |67.0 |64.0 |\n| fastmtcnn |**97.7** |96.6 |96.0 |95.9 |89.6 |87.8 |89.7 |71.2 |67.8 |62.7 |\n| dlib |96.5 |89.9 |94.1 |93.8 |95.6 |63.0 |75.0 |75.9 |62.6 |61.7 |\n| yolov8 |**97.7** |95.8 |95.2 |95.0 |88.1 |88.7 |89.8 |68.9 |68.9 |65.3 |\n| yunet |**98.3** |96.8 |96.3 |96.1 |91.7 |88.0 |90.5 |71.7 |67.6 |63.2 |\n| centerface |97.4 |96.3 |95.8 |95.8 |90.2 |86.8 |89.3 |69.9 |68.4 |62.6 |\n| mediapipe |96.3 |90.0 |93.1 |89.3 |91.8 |64.8 |74.6 |77.6 |64.9 |61.6 |\n| ssd |**97.9** |97.0 |96.7 |96.6 |89.4 |91.5 |93.0 |69.9 |68.7 |63.8 |\n| opencv |96.2 |92.9 |95.8 |93.2 |91.5 |93.3 |91.7 |71.1 |68.1 |61.1 |\n| skip |91.4 |67.6 |90.6 |54.8 |69.3 |78.4 |83.4 |57.4 |62.6 |61.1 |\n\n# Citation\n\nPlease cite deepface in your publications if it helps your research - see [`CITATIONS`](https://github.com/serengil/deepface/blob/master/CITATION.md) for more details. Here is its BibTex entry:\n\n```BibTeX\n@article{serengil2024lightface,\n  title         = {A Benchmark of Facial Recognition Pipelines and Co-Usability Performances of Modules},\n  author        = {Serengil, Sefik Ilkin and Ozpinar, Alper},\n  journal       = {Bilisim Teknolojileri Dergisi},\n  volume        = {17},\n  number        = {2},\n  pages         = {95-107},\n  year          = {2024},\n  doi           = {10.17671/gazibtd.1399077},\n  url           = {https://dergipark.org.tr/en/pub/gazibtd/issue/84331/1399077},\n  publisher     = {Gazi University}\n}\n```\n"
  },
  {
    "path": "boosted/Perform-Boosting-Experiments-LightGBM.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8133a99d\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Perform Experiments with DeepFace on LFW dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"5aab0cbe\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-07-30 15:44:40.593132: I tensorflow/core/util/util.cc:169] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\\n\",\n      \"2024-07-30 15:44:40.670688: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\\n\",\n      \"2024-07-30 15:44:40.670710: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\\n\",\n      \"/home/sefik/.local/lib/python3.9/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (5.2.0)/charset_normalizer (2.0.12) doesn't match a supported version!\\n\",\n      \"  warnings.warn(\\\"urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported \\\"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# built-in dependencies\\n\",\n    \"import os\\n\",\n    \"\\n\",\n    \"# 3rd party dependencies\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import sklearn\\n\",\n    \"from sklearn.datasets import fetch_lfw_pairs\\n\",\n    \"from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, precision_score, recall_score, f1_score, accuracy_score\\n\",\n    \"from deepface import DeepFace\\n\",\n    \"from deepface.modules import preprocessing\\n\",\n    \"import lightgbm as lgb\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import cv2\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import shap\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"cda3ac24\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 17\\n\",\n    \"detector_backend = \\\"retinaface\\\"\\n\",\n    \"k = 10\\n\",\n    \"multiclass = False # multiclass with 2 classes or binary. both are same.\\n\",\n    \"enforce_training = False\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"64c9ed9a\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"This experiment is done with pip package of deepface with 0.0.90 version\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"This experiment is done with pip package of deepface with {DeepFace.__version__} version\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"feaec973\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Configuration Sets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"453104b4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# all configuration alternatives for 4 dimensions of arguments\\n\",\n    \"alignment = [True]\\n\",\n    \"models = [\\\"Facenet\\\", \\\"Facenet512\\\", \\\"VGG-Face\\\", \\\"ArcFace\\\", \\\"Dlib\\\"] # 99.1\\n\",\n    \"detectors = [\\\"retinaface\\\"]\\n\",\n    \"metrics = [\\\"euclidean_l2\\\"]\\n\",\n    \"expand_percentage = 0 # TODO: find increase impact\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c9aeb57a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Create Required Folders if necessary\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"671d8a00\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"target_paths = [\\n\",\n    \"    \\\"lfwe\\\",\\n\",\n    \"    \\\"lfwe/test\\\",\\n\",\n    \"    \\\"lfwe/train\\\",\\n\",\n    \"    \\\"lfwe/10_folds\\\",\\n\",\n    \"    \\\"dataset\\\",\\n\",\n    \"    \\\"outputs\\\",\\n\",\n    \"    \\\"outputs/test\\\",\\n\",\n    \"    \\\"outputs/train\\\",\\n\",\n    \"    \\\"outputs/10_folds\\\",\\n\",\n    \"    \\\"results\\\",\\n\",\n    \"    \\\"models\\\",\\n\",\n    \"]\\n\",\n    \"for target_path in target_paths:\\n\",\n    \"    if os.path.exists(target_path) is not True:\\n\",\n    \"        os.mkdir(target_path)\\n\",\n    \"        print(f\\\"{target_path} is just created\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fc31f03a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load LFW Datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"6675c8a1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def retrieve_lfe(task: str):\\n\",\n    \"    if task == \\\"test\\\":\\n\",\n    \"        instances = 1000\\n\",\n    \"    elif task == \\\"train\\\":\\n\",\n    \"        instances = 2200\\n\",\n    \"    elif task == \\\"10_folds\\\":\\n\",\n    \"        instances = 6000\\n\",\n    \"    else:\\n\",\n    \"        raise ValueError(f\\\"unimplemented task - {task}\\\")\\n\",\n    \"\\n\",\n    \"    pairs_touch = f\\\"outputs/{task}_lfwe.txt\\\"\\n\",\n    \"\\n\",\n    \"    target_path = f\\\"dataset/{task}_lfw.npy\\\"\\n\",\n    \"    labels_path = f\\\"dataset/{task}_labels.npy\\\"\\n\",\n    \"\\n\",\n    \"    if os.path.exists(target_path) != True:\\n\",\n    \"        fetched_lfw_pairs = fetch_lfw_pairs(\\n\",\n    \"            subset = task,\\n\",\n    \"            color = True,\\n\",\n    \"            # memory allocation problem occurs for validation set\\n\",\n    \"            resize = 2 if task != \\\"10_folds\\\" else 1,\\n\",\n    \"            funneled = False,\\n\",\n    \"            slice_=None,\\n\",\n    \"        )\\n\",\n    \"        print(\\\"fetched\\\")\\n\",\n    \"        pairs = fetched_lfw_pairs.pairs\\n\",\n    \"        labels = fetched_lfw_pairs.target\\n\",\n    \"        # target_names = fetched_lfw_pairs.target_names\\n\",\n    \"        np.save(target_path, pairs)\\n\",\n    \"        np.save(labels_path, labels)\\n\",\n    \"    else:\\n\",\n    \"        if os.path.exists(pairs_touch) != True:\\n\",\n    \"            # loading pairs takes some time. but if we extract these pairs as image, no need to load it anymore\\n\",\n    \"            pairs = np.load(target_path)\\n\",\n    \"        labels = np.load(labels_path)\\n\",\n    \"    \\n\",\n    \"    # store to file system\\n\",\n    \"    for i in tqdm(range(0, instances)):\\n\",\n    \"        img1_target = f\\\"lfwe/{task}/{i}_1.jpg\\\"\\n\",\n    \"        img2_target = f\\\"lfwe/{task}/{i}_2.jpg\\\"\\n\",\n    \"        \\n\",\n    \"        if os.path.exists(img1_target) != True:\\n\",\n    \"            img1 = pairs[i][0]\\n\",\n    \"            # plt.imsave(img1_target, img1/255) #works for my mac\\n\",\n    \"            plt.imsave(img1_target, img1) #works for my debian\\n\",\n    \"        \\n\",\n    \"        if os.path.exists(img2_target) != True:\\n\",\n    \"            img2 = pairs[i][1]\\n\",\n    \"            # plt.imsave(img2_target, img2/255) #works for my mac\\n\",\n    \"            plt.imsave(img2_target, img2) #works for my debian\\n\",\n    \"        \\n\",\n    \"    if os.path.exists(pairs_touch) != True:\\n\",\n    \"        open(pairs_touch,'a').close()\\n\",\n    \"    \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"5bc23313\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 1000/1000 [00:00<00:00, 124626.47it/s]\\n\",\n      \"100%|██████████| 2200/2200 [00:00<00:00, 174353.20it/s]\\n\",\n      \"100%|██████████| 6000/6000 [00:00<00:00, 138320.88it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"retrieve_lfe(task = \\\"test\\\")\\n\",\n    \"retrieve_lfe(task = \\\"train\\\")\\n\",\n    \"retrieve_lfe(task = \\\"10_folds\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9bf2e9dc\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Perform Experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"4ec5e037\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def perform_experiments():    \\n\",\n    \"    for model_name in models:\\n\",\n    \"        for detector_backend in detectors:\\n\",\n    \"            for distance_metric in metrics:\\n\",\n    \"                for align in alignment:\\n\",\n    \"                    \\n\",\n    \"                    if detector_backend == \\\"skip\\\" and align is True:\\n\",\n    \"                        # Alignment is not possible for a skipped detector configuration\\n\",\n    \"                        continue\\n\",\n    \"                    \\n\",\n    \"                    calculate_distances(\\n\",\n    \"                        model_name=model_name,\\n\",\n    \"                        detector_backend=detector_backend,\\n\",\n    \"                        distance_metric=distance_metric,\\n\",\n    \"                        align=align,\\n\",\n    \"                    )\\n\",\n    \"                    \\n\",\n    \"def calculate_distances(\\n\",\n    \"        model_name: str,\\n\",\n    \"        detector_backend: str,\\n\",\n    \"        distance_metric: str = \\\"euclidean_l2\\\",\\n\",\n    \"        align: bool = True\\n\",\n    \"):\\n\",\n    \"    for experiment in [\\\"test\\\", \\\"train\\\", \\\"10_folds\\\"]:\\n\",\n    \"        if experiment == \\\"test\\\":\\n\",\n    \"            instances = 1000\\n\",\n    \"        elif experiment == \\\"train\\\":\\n\",\n    \"            instances = 2200\\n\",\n    \"        elif experiment == \\\"10_folds\\\":\\n\",\n    \"            instances = 6000\\n\",\n    \"        else:\\n\",\n    \"            raise ValueError(f\\\"unimplemented experiment - {experiment}\\\")\\n\",\n    \"\\n\",\n    \"        labels = np.load(f\\\"dataset/{experiment}_labels.npy\\\")\\n\",\n    \"\\n\",\n    \"        alignment_text = \\\"aligned\\\" if align is True else \\\"unaligned\\\"\\n\",\n    \"        task = f\\\"{experiment}/{model_name}_{detector_backend}_{distance_metric}_{alignment_text}\\\"\\n\",\n    \"        output_file = f\\\"outputs/{task}.csv\\\"\\n\",\n    \"        print(output_file)\\n\",\n    \"\\n\",\n    \"        # check file is already available\\n\",\n    \"        if os.path.exists(output_file) is True:\\n\",\n    \"            continue\\n\",\n    \"        \\n\",\n    \"        distances = []\\n\",\n    \"        for i in tqdm(range(0, instances), desc = task):\\n\",\n    \"            img1_target = f\\\"lfwe/{experiment}/{i}_1.jpg\\\"\\n\",\n    \"            img2_target = f\\\"lfwe/{experiment}/{i}_2.jpg\\\"\\n\",\n    \"            result = DeepFace.verify(\\n\",\n    \"                img1_path=img1_target,\\n\",\n    \"                img2_path=img2_target,\\n\",\n    \"                model_name=model_name,\\n\",\n    \"                detector_backend=detector_backend,\\n\",\n    \"                distance_metric=distance_metric,\\n\",\n    \"                align=align,\\n\",\n    \"                enforce_detection=False,\\n\",\n    \"                expand_percentage=expand_percentage,\\n\",\n    \"            )\\n\",\n    \"            distance = result[\\\"distance\\\"]\\n\",\n    \"            distances.append(distance)\\n\",\n    \"        # -----------------------------------\\n\",\n    \"        df = pd.DataFrame(list(labels), columns = [\\\"actuals\\\"])\\n\",\n    \"        df[\\\"distances\\\"] = distances\\n\",\n    \"        df.to_csv(output_file, index=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"89caa2fa\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"outputs/test/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Dlib_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Dlib_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Dlib_retinaface_euclidean_l2_aligned.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"perform_experiments()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"63fd2aa4\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Data Frame\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"c06abec0\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# pre-tuned thresholds for RetinaFace detector\\n\",\n    \"thresholds = {\\n\",\n    \"    \\\"Facenet\\\": 1.0771751259493634,\\n\",\n    \"    \\\"Facenet512\\\": 1.080821730376328,\\n\",\n    \"    \\\"VGG-Face\\\": 1.1952250102966764,\\n\",\n    \"    \\\"ArcFace\\\": 1.1601818883318848,\\n\",\n    \"    \\\"Dlib\\\": 0.4022031592966787,\\n\",\n    \"    \\\"GhostFaceNet\\\": 1.2554638430323275,\\n\",\n    \"    \\\"SFace\\\": 1.226662066811263,\\n\",\n    \"}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"9e1851d5\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"outputs/train/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Dlib_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Dlib_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/VGG-Face_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/ArcFace_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Dlib_retinaface_euclidean_l2_aligned.csv\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"tasks = [\\\"train\\\", \\\"test\\\", \\\"10_folds\\\"]\\n\",\n    \"\\n\",\n    \"dfs = {}\\n\",\n    \"for task in tasks:\\n\",\n    \"    dfs[task] = None\\n\",\n    \"    for model in models:\\n\",\n    \"        df_path = f\\\"outputs/{task}/{model}_{detector_backend}_euclidean_l2_aligned.csv\\\"\\n\",\n    \"        print(df_path)\\n\",\n    \"        current_df = pd.read_csv(df_path).rename(columns = {\\\"distances\\\": model})\\n\",\n    \"\\n\",\n    \"        if dfs[task] is None:\\n\",\n    \"            dfs[task] = current_df.copy()\\n\",\n    \"        else:\\n\",\n    \"            current_df = current_df.drop(columns = [\\\"actuals\\\"])\\n\",\n    \"            dfs[task] = pd.concat([dfs[task], current_df], axis=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"b1dde8c2\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>actuals</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.665361</td>\\n\",\n       \"      <td>0.529663</td>\\n\",\n       \"      <td>0.725590</td>\\n\",\n       \"      <td>0.754328</td>\\n\",\n       \"      <td>0.241096</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.761471</td>\\n\",\n       \"      <td>0.851045</td>\\n\",\n       \"      <td>0.926009</td>\\n\",\n       \"      <td>0.872847</td>\\n\",\n       \"      <td>0.361268</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.929644</td>\\n\",\n       \"      <td>1.010149</td>\\n\",\n       \"      <td>0.957905</td>\\n\",\n       \"      <td>1.005725</td>\\n\",\n       \"      <td>0.320210</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.298545</td>\\n\",\n       \"      <td>0.489141</td>\\n\",\n       \"      <td>0.789548</td>\\n\",\n       \"      <td>0.649016</td>\\n\",\n       \"      <td>0.259671</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.613064</td>\\n\",\n       \"      <td>0.679703</td>\\n\",\n       \"      <td>0.991215</td>\\n\",\n       \"      <td>0.950595</td>\\n\",\n       \"      <td>0.356630</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   actuals   Facenet  Facenet512  VGG-Face   ArcFace      Dlib\\n\",\n       \"0        1  0.665361    0.529663  0.725590  0.754328  0.241096\\n\",\n       \"1        1  0.761471    0.851045  0.926009  0.872847  0.361268\\n\",\n       \"2        1  0.929644    1.010149  0.957905  1.005725  0.320210\\n\",\n       \"3        1  0.298545    0.489141  0.789548  0.649016  0.259671\\n\",\n       \"4        1  0.613064    0.679703  0.991215  0.950595  0.356630\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"id\": \"a2f6e1bd\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_classification_results(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    for model_name in models:\\n\",\n    \"        idx = df[df[model_name] < thresholds[model_name]].index\\n\",\n    \"        # df[f\\\"{model_name}_clf\\\"] = -1 # got 99.1 with this but multiplication is not meaningful!\\n\",\n    \"        df[f\\\"{model_name}_clf\\\"] = 0 # this also gives 99.1 score\\n\",\n    \"        df.loc[idx, f\\\"{model_name}_clf\\\"] = 1\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_classification_results(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_classification_results(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_classification_results(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"128a04b1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_classification_sum(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"clf_sum\\\"] = 0\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"clf_sum\\\"] += df[f\\\"{model_name}_clf\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_classification_sum(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_classification_sum(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_classification_sum(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"c4c0fe39\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_classification_multiplications(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"clf_multiplication\\\"] = 1\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"clf_multiplication\\\"] *= np.power(2, df[f\\\"{model_name}_clf\\\"])\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_classification_multiplications(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_classification_multiplications(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_classification_multiplications(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"id\": \"3bcdef6e\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_distance_additions(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"distance_sums\\\"] = 0\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"distance_sums\\\"] += df[f\\\"{model_name}\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_distance_additions(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_distance_additions(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_distance_additions(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"id\": \"8c834ded\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_distance_multiplications(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"distance_multiplications\\\"] = 1\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"distance_multiplications\\\"] *= df[f\\\"{model_name}\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_distance_multiplications(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_distance_multiplications(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_distance_multiplications(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"id\": \"4aaa93fb\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"14\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].shape[1] - 1\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"id\": \"f2bc2338\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>actuals</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>Facenet_clf</th>\\n\",\n       \"      <th>Facenet512_clf</th>\\n\",\n       \"      <th>VGG-Face_clf</th>\\n\",\n       \"      <th>ArcFace_clf</th>\\n\",\n       \"      <th>Dlib_clf</th>\\n\",\n       \"      <th>clf_sum</th>\\n\",\n       \"      <th>clf_multiplication</th>\\n\",\n       \"      <th>distance_sums</th>\\n\",\n       \"      <th>distance_multiplications</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1640</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.386192</td>\\n\",\n       \"      <td>1.204335</td>\\n\",\n       \"      <td>1.349961</td>\\n\",\n       \"      <td>1.358104</td>\\n\",\n       \"      <td>0.521829</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>5.820420</td>\\n\",\n       \"      <td>1.597177</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1460</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.382767</td>\\n\",\n       \"      <td>1.405690</td>\\n\",\n       \"      <td>1.372089</td>\\n\",\n       \"      <td>1.410504</td>\\n\",\n       \"      <td>0.513630</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>6.084680</td>\\n\",\n       \"      <td>1.932172</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>469</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.533456</td>\\n\",\n       \"      <td>0.464634</td>\\n\",\n       \"      <td>0.814241</td>\\n\",\n       \"      <td>0.755015</td>\\n\",\n       \"      <td>0.298058</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>32</td>\\n\",\n       \"      <td>2.865404</td>\\n\",\n       \"      <td>0.045417</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1600</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.491545</td>\\n\",\n       \"      <td>1.494115</td>\\n\",\n       \"      <td>1.376989</td>\\n\",\n       \"      <td>1.344520</td>\\n\",\n       \"      <td>0.523635</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>6.230803</td>\\n\",\n       \"      <td>2.160462</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2169</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.514211</td>\\n\",\n       \"      <td>1.360036</td>\\n\",\n       \"      <td>1.315516</td>\\n\",\n       \"      <td>1.426861</td>\\n\",\n       \"      <td>0.577663</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>6.194287</td>\\n\",\n       \"      <td>2.233002</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"      actuals   Facenet  Facenet512  VGG-Face   ArcFace      Dlib  \\\\\\n\",\n       \"1640        0  1.386192    1.204335  1.349961  1.358104  0.521829   \\n\",\n       \"1460        0  1.382767    1.405690  1.372089  1.410504  0.513630   \\n\",\n       \"469         1  0.533456    0.464634  0.814241  0.755015  0.298058   \\n\",\n       \"1600        0  1.491545    1.494115  1.376989  1.344520  0.523635   \\n\",\n       \"2169        0  1.514211    1.360036  1.315516  1.426861  0.577663   \\n\",\n       \"\\n\",\n       \"      Facenet_clf  Facenet512_clf  VGG-Face_clf  ArcFace_clf  Dlib_clf  \\\\\\n\",\n       \"1640            0               0             0            0         0   \\n\",\n       \"1460            0               0             0            0         0   \\n\",\n       \"469             1               1             1            1         1   \\n\",\n       \"1600            0               0             0            0         0   \\n\",\n       \"2169            0               0             0            0         0   \\n\",\n       \"\\n\",\n       \"      clf_sum  clf_multiplication  distance_sums  distance_multiplications  \\n\",\n       \"1640        0                   1       5.820420                  1.597177  \\n\",\n       \"1460        0                   1       6.084680                  1.932172  \\n\",\n       \"469         5                  32       2.865404                  0.045417  \\n\",\n       \"1600        0                   1       6.230803                  2.160462  \\n\",\n       \"2169        0                   1       6.194287                  2.233002  \"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].sample(5)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"id\": \"4db861d6\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(2200, 15)\"\n      ]\n     },\n     \"execution_count\": 20,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"id\": \"2443014b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"categorical_features = [column for column in dfs[\\\"train\\\"].columns if column.endswith(\\\"_clf\\\")]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9fe43167\",\n   \"metadata\": {},\n   \"source\": [\n    \"# LightGBM\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"id\": \"c1d5c915\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"feature_names = list(dfs[\\\"train\\\"].drop(columns=[\\\"actuals\\\"]).columns)\\n\",\n    \"\\n\",\n    \"y_train = dfs[\\\"train\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_train = dfs[\\\"train\\\"].drop(columns=[\\\"actuals\\\"]).values\\n\",\n    \"\\n\",\n    \"y_test = dfs[\\\"test\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_test = dfs[\\\"test\\\"].drop(columns=[\\\"actuals\\\"]).values\\n\",\n    \"\\n\",\n    \"y_val = dfs[\\\"10_folds\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_val = dfs[\\\"10_folds\\\"].drop(columns=[\\\"actuals\\\"]).values\\n\",\n    \"\\n\",\n    \"lgb_train = lgb.Dataset(\\n\",\n    \"    x_train, y_train, \\n\",\n    \"    feature_name = feature_names,\\n\",\n    \"    categorical_feature = categorical_features, free_raw_data=False\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"lgb_test = lgb.Dataset(\\n\",\n    \"    x_test, y_test,\\n\",\n    \"    feature_name = feature_names,\\n\",\n    \"    categorical_feature = categorical_features, free_raw_data=False\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"id\": \"70dfb6c6\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"if multiclass is True:\\n\",\n    \"    params = {\\n\",\n    \"        'boosting_type': 'gbdt',\\n\",\n    \"        'objective': 'multiclass',\\n\",\n    \"        'num_class': 2, #same person, different persons\\n\",\n    \"        'metric': 'multi_logloss',\\n\",\n    \"        'num_leaves': pow(2, 5) - 1,\\n\",\n    \"        'learning_rate': 0.01,\\n\",\n    \"        'verbose': -1,\\n\",\n    \"        'max_depth': 5,\\n\",\n    \"    }\\n\",\n    \"else: # binary\\n\",\n    \"    params = {\\n\",\n    \"        'boosting_type': 'gbdt',\\n\",\n    \"        'objective': 'binary',\\n\",\n    \"        'metric': 'binary_logloss',\\n\",\n    \"        'num_leaves': pow(2, 5) - 1,\\n\",\n    \"        'learning_rate': 0.01,\\n\",\n    \"        'verbose': -1,\\n\",\n    \"        'max_depth': 5,\\n\",\n    \"    }\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"id\": \"9d4e019d\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Using pre-trained model for 1-th fold.\\n\",\n      \"Using pre-trained model for 2-th fold.\\n\",\n      \"Using pre-trained model for 3-th fold.\\n\",\n      \"Using pre-trained model for 4-th fold.\\n\",\n      \"Using pre-trained model for 5-th fold.\\n\",\n      \"Using pre-trained model for 6-th fold.\\n\",\n      \"Using pre-trained model for 7-th fold.\\n\",\n      \"Using pre-trained model for 8-th fold.\\n\",\n      \"Using pre-trained model for 9-th fold.\\n\",\n      \"Using pre-trained model for 10-th fold.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"gbms = []\\n\",\n    \"learning_curves = []\\n\",\n    \"best_iterations = []\\n\",\n    \"feature_importances = []\\n\",\n    \"\\n\",\n    \"for k in range(0, k):\\n\",\n    \"    model_file = f\\\"models/boosted_lightface_{k}.txt\\\"\\n\",\n    \"    if enforce_training is False and os.path.exists(model_file) is True:\\n\",\n    \"        print(f\\\"Using pre-trained model for {k+1}-th fold.\\\")\\n\",\n    \"        gbm = lgb.Booster(model_file=model_file)\\n\",\n    \"        gbms.append(gbm)\\n\",\n    \"        continue\\n\",\n    \"    \\n\",\n    \"    print(f\\\"Training {k}-th model\\\")\\n\",\n    \"\\n\",\n    \"    valid_from = k * 600\\n\",\n    \"    valid_until = valid_from + 600\\n\",\n    \"\\n\",\n    \"    lgb_val = lgb.Dataset(\\n\",\n    \"        x_val[valid_from:valid_until],\\n\",\n    \"        y_val[valid_from:valid_until],\\n\",\n    \"        feature_name = feature_names,\\n\",\n    \"        categorical_feature = categorical_features, free_raw_data=False\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    # copy the rest of validation set into training\\n\",\n    \"    # train_indices = list(range(0, valid_from)) + list(range(valid_until, len(x_val)))\\n\",\n    \"    # x_train_extended = np.concatenate((x_train, x_val[train_indices]), axis=0)\\n\",\n    \"    # y_train_extended = np.concatenate((y_train, y_val[train_indices]), axis=0)\\n\",\n    \"    # lgb_train = lgb.Dataset(\\n\",\n    \"    #     x_train_extended,\\n\",\n    \"    #     y_train_extended,\\n\",\n    \"    #     feature_name=feature_names,\\n\",\n    \"    #     categorical_feature=categorical_features,\\n\",\n    \"    #     free_raw_data=False\\n\",\n    \"    # )\\n\",\n    \"\\n\",\n    \"    evals_result = {}\\n\",\n    \"    gbm = lgb.train(\\n\",\n    \"        params = params,\\n\",\n    \"        train_set = lgb_train,\\n\",\n    \"        valid_sets = [lgb_train, lgb_val],\\n\",\n    \"        num_boost_round=10000,\\n\",\n    \"        callbacks=[\\n\",\n    \"            lgb.early_stopping(stopping_rounds=500),\\n\",\n    \"            lgb.record_evaluation(evals_result),\\n\",\n    \"        ],\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    gbm.save_model(f'models/boosted_lightface_{k}.txt')\\n\",\n    \"\\n\",\n    \"    gbms.append(gbm)\\n\",\n    \"    learning_curves.append(evals_result)\\n\",\n    \"    best_iterations.append(gbm.best_iteration)\\n\",\n    \"    feature_importances.append(gbm.feature_importance)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"id\": \"ba115239\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def find_accuracy(x, y, label):\\n\",\n    \"    accuracies = []\\n\",\n    \"    aucs = []\\n\",\n    \"    fprs = []\\n\",\n    \"    tprs = []\\n\",\n    \"    for idx, gbm in enumerate(gbms):\\n\",\n    \"        if label == \\\"validation\\\":\\n\",\n    \"            x_org  = x.copy()\\n\",\n    \"            y_org = y.copy()\\n\",\n    \"\\n\",\n    \"            valid_from = k * 600\\n\",\n    \"            valid_until = valid_from + 600\\n\",\n    \"\\n\",\n    \"            x = x[valid_from:valid_until]\\n\",\n    \"            y = y[valid_from:valid_until]\\n\",\n    \"\\n\",\n    \"        if multiclass is True:\\n\",\n    \"            predictions = gbm.predict(x)\\n\",\n    \"            df = pd.DataFrame(predictions, columns = [\\\"different_persons\\\", \\\"same_person\\\"])\\n\",\n    \"            pred_probas = df[\\\"same_person\\\"].values.tolist()\\n\",\n    \"        else:\\n\",\n    \"            pred_probas = gbm.predict(x)\\n\",\n    \"\\n\",\n    \"        fpr, tpr, _ = sklearn.metrics.roc_curve(y, pred_probas)\\n\",\n    \"        auc = sklearn.metrics.roc_auc_score(y, pred_probas)\\n\",\n    \"        auc = round(auc, 4)\\n\",\n    \"\\n\",\n    \"        aucs.append(auc)\\n\",\n    \"        fprs.append(fpr)\\n\",\n    \"        tprs.append(tpr)\\n\",\n    \"\\n\",\n    \"        classified_ones = 0\\n\",\n    \"        if multiclass is True:\\n\",\n    \"            for i, prediction_proba in enumerate(predictions):\\n\",\n    \"                actual = y[i]\\n\",\n    \"                \\n\",\n    \"                prediction = np.argmax(prediction_proba)\\n\",\n    \"                \\n\",\n    \"                if actual == prediction:\\n\",\n    \"                    classified_ones += 1\\n\",\n    \"            accuracy = 100 * classified_ones / len(predictions)\\n\",\n    \"        else:\\n\",\n    \"            for i, prediction_proba in enumerate(pred_probas):\\n\",\n    \"                actual = y[i]\\n\",\n    \"                prediction = 1 if prediction_proba > 0.5 else 0\\n\",\n    \"                if actual == prediction:\\n\",\n    \"                    classified_ones += 1\\n\",\n    \"            accuracy = 100 * classified_ones / len(pred_probas)\\n\",\n    \"        \\n\",\n    \"        accuracies.append(round(accuracy, 2))\\n\",\n    \"\\n\",\n    \"        # restore\\n\",\n    \"        if label == \\\"validation\\\":\\n\",\n    \"            x = x_org.copy()\\n\",\n    \"            y = y_org.copy()\\n\",\n    \"\\n\",\n    \"    return (accuracies, aucs, fprs, tprs)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"id\": \"b6320755\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"overperforming model on validation set is 6-th one\\n\",\n      \"best score: 99.1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>fold</th>\\n\",\n       \"      <th>train</th>\\n\",\n       \"      <th>validation</th>\\n\",\n       \"      <th>test</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>99.64</td>\\n\",\n       \"      <td>98.00</td>\\n\",\n       \"      <td>99.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.33</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>2</td>\\n\",\n       \"      <td>99.41</td>\\n\",\n       \"      <td>98.17</td>\\n\",\n       \"      <td>99.0</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.33</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>4</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.33</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>99.91</td>\\n\",\n       \"      <td>98.00</td>\\n\",\n       \"      <td>98.7</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>6</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.50</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>7</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.33</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>8</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.33</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>9</td>\\n\",\n       \"      <td>99.45</td>\\n\",\n       \"      <td>98.50</td>\\n\",\n       \"      <td>99.1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   fold  train  validation  test\\n\",\n       \"0     0  99.64       98.00  99.0\\n\",\n       \"1     1  99.45       98.33  99.1\\n\",\n       \"2     2  99.41       98.17  99.0\\n\",\n       \"3     3  99.45       98.33  99.1\\n\",\n       \"4     4  99.45       98.33  99.1\\n\",\n       \"5     5  99.91       98.00  98.7\\n\",\n       \"6     6  99.45       98.50  99.1\\n\",\n       \"7     7  99.45       98.33  99.1\\n\",\n       \"8     8  99.45       98.33  99.1\\n\",\n       \"9     9  99.45       98.50  99.1\"\n      ]\n     },\n     \"execution_count\": 26,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"train_score, _, _, _ = find_accuracy(x_train, y_train, label = \\\"train\\\")\\n\",\n    \"val_score, _, _, _ = find_accuracy(x_val, y_val, label = \\\"validation\\\")\\n\",\n    \"test_score, test_aucs, test_fprs, test_tprs = find_accuracy(x_test, y_test, label = \\\"test\\\")\\n\",\n    \"\\n\",\n    \"# winner_id = np.argmax(test_score) # cheating!\\n\",\n    \"winner_id = np.argmax(val_score)\\n\",\n    \"\\n\",\n    \"print(f\\\"overperforming model on validation set is {winner_id}-th one\\\")\\n\",\n    \"\\n\",\n    \"# print(f\\\"best score: {max(test_score)}\\\") # cheating!\\n\",\n    \"print(f\\\"best score: {test_score[winner_id]}\\\")\\n\",\n    \"\\n\",\n    \"pd.DataFrame({\\\"train\\\": train_score, \\\"validation\\\": val_score, \\\"test\\\": test_score}).reset_index().rename(columns={\\\"index\\\": \\\"fold\\\"})\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"599b580b\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Loss functions\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"id\": \"4ca6cd5f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"if learning_curves:\\n\",\n    \"\\n\",\n    \"    for i in range(0, k+1):\\n\",\n    \"\\n\",\n    \"        if multiclass is True:\\n\",\n    \"            training_loss = learning_curves[i][\\\"training\\\"][\\\"multi_logloss\\\"]\\n\",\n    \"            validation_loss = learning_curves[i][\\\"valid_1\\\"][\\\"multi_logloss\\\"]\\n\",\n    \"        else:\\n\",\n    \"            training_loss = learning_curves[i][\\\"training\\\"][\\\"binary_logloss\\\"]\\n\",\n    \"            validation_loss = learning_curves[i][\\\"valid_1\\\"][\\\"binary_logloss\\\"]\\n\",\n    \"\\n\",\n    \"        # fold_idx = winner_id\\n\",\n    \"        # fold_idx = 9\\n\",\n    \"        fold_idx = i\\n\",\n    \"        best_iter = best_iterations[fold_idx]\\n\",\n    \"\\n\",\n    \"        plt.plot(training_loss[:best_iter], label='Training loss')\\n\",\n    \"        plt.plot(validation_loss[:best_iter], label='Validation loss')\\n\",\n    \"        plt.xlabel('Iterations')\\n\",\n    \"        plt.ylabel('Binary Logloss')\\n\",\n    \"        plt.title(f'Training and Validation Loss in fold {fold_idx+1}')\\n\",\n    \"        plt.legend()\\n\",\n    \"        plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"28c2ac94\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Feature Importance\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"id\": \"acaf05a0\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAskAAAGdCAYAAADgwu6RAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTGklEQVR4nO3deXRN9/7/8dfJdDInQkiQIBJTJTG3KEL4houWqrqqRblKVU1VmtuaaVTrGqqq97ZXqqZWW7RUi5hDzQlKY6iIVkr1kggVGc7vD8v59ZwESYQj8XystdfK3vuzP/t9PmLllZ3P3ttgMplMAgAAAGBmZ+sCAAAAgAcNIRkAAACwQkgGAAAArBCSAQAAACuEZAAAAMAKIRkAAACwQkgGAAAArBCSAQAAACsOti4AKIlyc3N19uxZeXh4yGAw2LocAABQACaTSZcvX1bFihVlZ3f7a8WEZKAIzp49q4CAAFuXAQAAiuDMmTOqXLnybdsQkoEi8PDwkHTjP5mnp6eNqwEAAAWRnp6ugIAA88/x2yEkA0Vwc4qFp6cnIRkAgBKmIFMluXEPAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKzwCDjgLtQd/73sjK62LgMAgFIleVpHW5fAlWQAAADAGiEZAAAAsEJIBgAAAKwQkh9QERERGj58uCSpatWqmjVrlk3rAQAAeJgQkkuAPXv26MUXXyxQWwI1AADA3ePpFiWAr6+vrUsAAAB4qHAl+QFw5coV9e7dW+7u7vL399eMGTMs9v/16rDJZNKECRMUGBgoo9GoihUraujQoZJuTNE4ffq0RowYIYPBIIPBIEn6448/1LNnT1WqVEmurq4KDQ3V0qVLLc4RERGhoUOHavTo0fLx8ZGfn58mTJhg0ebSpUsaOHCgKlSoIGdnZ9WtW1erV68279++fbtatGghFxcXBQQEaOjQobpy5UqBxmDevHkKCQmRs7OzKlSooKeffjrfz39TvXr1LOozGAz68MMP1alTJ7m6uqp27drauXOnTpw4oYiICLm5ualZs2Y6efKk+ZjExES1bt1aHh4e8vT0VMOGDbV3794C1QsAAEo3QvID4LXXXtOWLVu0atUqrVu3Tps3b9b+/fvzbfvll19q5syZ+vDDD3X8+HGtXLlSoaGhkqSvvvpKlStX1qRJk5SamqrU1FRJ0rVr19SwYUOtWbNGhw8f1osvvqjnn39eu3fvtuj7k08+kZubm3bt2qXp06dr0qRJWr9+vSQpNzdXHTp0UHx8vBYtWqQjR45o2rRpsre3lySdPHlS7du3V7du3XTw4EF99tln2r59u4YMGXLHz793714NHTpUkyZNUlJSkr777ju1bNmy0OM4efJk9e7dWwkJCapVq5aeffZZDRw4UNHR0dq7d69MJpNFPb169VLlypW1Z88e7du3T6+//rocHR3z7TszM1Pp6ekWCwAAKL2YbmFjGRkZ+vjjj7Vo0SJFRkZKuhFWK1eunG/7lJQU+fn5qW3btnJ0dFRgYKCaNGkiSfLx8ZG9vb08PDzk5+dnPqZSpUoaNWqUef2VV17R999/r88//9x8rCSFhYVp/PjxkqSQkBDNnTtXcXFxateunTZs2KDdu3fr6NGjqlGjhiQpKCjIfGxMTIx69eplvtkwJCREc+bMUatWrfTBBx/I2dn5lmOQkpIiNzc3derUSR4eHqpSpYrq169fmGGUJL3wwgt65plnJEljxoxR06ZNNXbsWEVFRUmShg0bphdeeMHivK+99ppq1aplrvlWYmJiNHHixELXBAAASiauJNvYyZMndf36dT366KPmbT4+PqpZs2a+7bt3764///xTQUFBGjBggFasWKHs7OzbniMnJ0eTJ09WaGiofHx85O7uru+//14pKSkW7cLCwizW/f39df78eUlSQkKCKleubA7I1hITExUbGyt3d3fzEhUVpdzcXJ06deq29bVr105VqlRRUFCQnn/+eS1evFhXr1697TH5+Wv9FSpUkCTzVfab265du2a+Cjxy5Ej94x//UNu2bTVt2jSLqRjWoqOjlZaWZl7OnDlT6PoAAEDJQUguYQICApSUlKR58+bJxcVFgwcPVsuWLZWVlXXLY9555x3Nnj1bY8aM0aZNm5SQkKCoqChdv37dop31VAODwaDc3FxJkouLy23rysjI0MCBA5WQkGBeEhMTdfz4cVWvXv22x3p4eGj//v1aunSp/P39NW7cOIWHh+vSpUuSJDs7O5lMJotj8vu8f63/5nzs/Lbd/EwTJkzQjz/+qI4dO2rjxo2qU6eOVqxYkW+NRqNRnp6eFgsAACi9CMk2Vr16dTk6OmrXrl3mbRcvXtSxY8dueYyLi4s6d+6sOXPmaPPmzdq5c6cOHTokSXJyclJOTo5F+/j4eD355JN67rnnFB4erqCgoNv2n5+wsDD98ssvtzyuQYMGOnLkiIKDg/MsTk5Od+zfwcFBbdu21fTp03Xw4EElJydr48aNkm483ePm/GpJSk9Pv+PV6YKqUaOGRowYoXXr1umpp57SggULiqVfAABQshGSbczd3V39+/fXa6+9po0bN+rw4cPq27ev7Ozy/6eJjY3Vxx9/rMOHD+vnn3/WokWL5OLioipVqki68SSIrVu36tdff9WFCxck3Zhru379eu3YsUNHjx7VwIEDde7cuULV2apVK7Vs2VLdunXT+vXrderUKa1du1bfffedpBtzgHfs2KEhQ4YoISFBx48f16pVqwp0497q1as1Z84cJSQk6PTp01q4cKFyc3PNU07atGmjTz/9VNu2bdOhQ4fUp08f8w2DRfXnn39qyJAh2rx5s06fPq34+Hjt2bNHtWvXvqt+AQBA6cCNew+Ad955RxkZGercubM8PDz06quvKi0tLd+23t7emjZtmkaOHKmcnByFhobqm2++UdmyZSVJkyZN0sCBA1W9enVlZmbKZDLpzTff1M8//6yoqCi5urrqxRdfVJcuXW55jlv58ssvNWrUKPXs2VNXrlxRcHCwpk2bJunGleYtW7bojTfeUIsWLWQymVS9enX16NHjjv16e3vrq6++0oQJE3Tt2jWFhIRo6dKleuSRRyTdmA986tQpderUSV5eXpo8efJdX0m2t7fXH3/8od69e+vcuXMqV66cnnrqKW7OAwAAkiSDyXqyJ4A7Sk9Pl5eXlwKGfy47o6utywEAoFRJntbxnvR78+d3WlraHe8vYroFAAAAYIWQjHtu27ZtFo+Gs14AAAAeNEy3wD33559/6tdff73l/uDg4PtYTfEozJ9rAADAg6EwP7+5cQ/3nIuLS4kMwgAA4OHFdAsAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADAioOtCwBKsrrjv5ed0dXWZQAPveRpHW1dAoBShivJAAAAgBVCMgAAAGCFkAwAAABYISTjnktOTpbBYFBCQoJ5W3x8vEJDQ+Xo6KguXbrYrDYA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3btX9evXNx8zcuRI1a9fX+PGjZMk/frrr/r666/1yy+/mJ+ScXPZsWNH0QYWAACUOjzdAiiCm3fH8nQL3C883QIA7l5hnm7BlWQAAADACiEZAAAAsMKNe8BdODwx6o5/rgEAACUPV5IBAAAAK4RkAAAAwAohGQAAALBCSAYAAACsEJIBAAAAK4RkAAAAwAohGQAAALBCSAYAAACsEJIBAAAAK4RkAAAAwAohGQAAALBCSAYAAACsEJIBAAAAK4RkAAAAwAohGQAAALBCSAYAAACsEJIBAAAAK4RkAAAAwIqDrQsASrK647+XndG12PtNntax2PsEAAAFx5VkAAAAwAohGQAAALBCSAYAAACsPHAhOSIiQsOHD5ckVa1aVbNmzbJpPSVV37591aVLl9u22bx5swwGgy5dulTgfidMmKB69eoV6jzFwWAwaOXKlff8PAAAANIDfuPenj175ObmVqC2VatW1fDhw80BG5YiIiJUr149i186mjVrptTUVHl5eRW539mzZ8tkMhVDhTdMmDBBK1euVEJCgsX21NRUlSlTptjOAwAAcDsPdEj29fW1dQmlmpOTk/z8/O6qj7sJ2IVxt3UCAAAUhk2nW1y5ckW9e/eWu7u7/P39NWPGDIv9f51uYTKZNGHCBAUGBspoNKpixYoaOnSopBtXSU+fPq0RI0bIYDDIYDBIkv744w/17NlTlSpVkqurq0JDQ7V06VKLc0RERGjo0KEaPXq0fHx85OfnpwkTJli0uXTpkgYOHKgKFSrI2dlZdevW1erVq837t2/frhYtWsjFxUUBAQEaOnSorly5UqAxqFq1qqZMmWIehypVqujrr7/W77//rieffFLu7u4KCwvT3r17zcdYT3mQpFmzZqlq1ar5nqNv377asmWLZs+ebR6f5OTkPNMtYmNj5e3trZUrVyokJETOzs6KiorSmTNnblm/9XSL3NxcTZ8+XcHBwTIajQoMDNTUqVPN+8eMGaMaNWrI1dVVQUFBGjt2rLKyssznnzhxohITE811xsbGSso73eLQoUNq06aNXFxcVLZsWb344ovKyMjIU9e7774rf39/lS1bVi+//LL5XJI0b9488+esUKGCnn766Vt+TgAA8HCxaUh+7bXXtGXLFq1atUrr1q3T5s2btX///nzbfvnll5o5c6Y+/PBDHT9+XCtXrlRoaKgk6auv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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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tWvXloODg3bu3Gnedv78eR09evSmxzg7OysyMlKzZs1SfHy8tm/froMHD0qSHB0dlZuba9E+ISFBTz75pJ599lmFhoaqVq1at+y/ICEhIfr1119velyTJk10+PBhBQYG5lscHR1v27+9vb06dOigqVOn6sCBA0pNTdXGjRslXZ/d48b4aknKzMy87d3pwqpTp45GjhypdevWqUePHpo7d26J9AsAAEo3QrKNubm5aeDAgXrjjTe0ceNGHTp0SAMGDJCdXcH/aWJjYzVnzhwdOnRIP//8s+bPny9nZ2fVqFFD0vWZIH744QedOnVK586dk3R9rO369eu1bds2HTlyRIMHD9bZs2eLVGfbtm3Vpk0b9ezZU+vXr9eJEye0du1afffdd5KujwHetm2bXn31VSUmJurYsWNatWpVoR7cW716tWbNmqXExESdPHlS8+bNU15ennnISfv27fXFF19oy5YtOnjwoPr3729+YLC4Ll26pFdffVXx8fE6efKkEhIStHv3btWvX/+O+gUAAGUDD+7dB95//31lZWUpMjJS7u7uev3115WRkVFgW09PT02ZMkWjRo1Sbm6ugoOD9c0336hixYqSpEmTJmnw4MGqXbu2cnJyZDKZ9NZbb+nnn39WRESEXFxc9NJLL6lbt243PcfNfPXVVxo9erT69OmjixcvKjAwUFOmTJF0/U7z5s2b9eabb+qxxx6TyWRS7dq11bt379v26+npqeXLl2vixIm6fPmygoKCtGjRIj300EOSro8HPnHihLp27SoPDw+9/fbbd3wnuVy5cvrjjz/Ur18/nT17VpUqVVKPHj14OA8AAEiSDCbrwZ4AbiszM1MeHh7yG7FEdkYXW5cDlFqpU7rYugQAD5Abv78zMjJu+3wRwy0AAAAAK4Rk3HVbtmyxmBrOegEAALjf3PFwi8uXL9/yRRHApUuXdOrUqZvuDwwMvIfVlIyi/LkGAADcH4ry+7tYD+7l5eVp8uTJmj17ts6ePaujR4+qVq1aGjdunAICAjRw4MBiFY6yydnZuVQGYQAA8OAq1nCLd955R7GxsZo6darFHLgNGzbUf/7znxIrDgAAALCFYoXkefPm6d///rf69u1rMV9taGiofvrppxIrDgAAALCFYoXkU6dOFfjn87y8vFu+HhkAAAAoDYoVkhs0aKAtW7bk275s2TI1btz4josC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W7bU66+/rtdff10nT55Ujx495Ofnp/T0dM2ZM0cGg0F2dtf/3TVy5EitWbNG4eHhmjBhgh577DFVqFBBR48e1dq1a/PdxS2soKAgpaWlafHixWrevLnWrFljnrXihgkTJig8PFy1a9fW3/72N127dk3ffvutxo4dqzp16qhv377q16+fpk2bpsaNG+v3339XXFycQkJC1KULY0sBAAB3klGAgQMH6vz584qIiLB4uE26/pDcwoULtX//fnXt2lVBQUHq1auX8vLytH37dvMgeCcnJ8XFxWns2LGaO3euHn30UdWvX18jRoxQ69attXLlymLV9sQTT2jkyJF69dVX1ahRI23btk3jxo2zaBMWFqalS5fq66+/VqNGjdS+fXvt2rXLvH/u3Lnq16+fXn/9ddWtW1fdunXT7t275e/vX6yaAABA2cPsFkAx3Hg6ltktIDG7BQCUFsxuAQAAANwBQjIAAABghQf3gDtwKDritn+uAQAApQ93kgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADACiEZAAAAsEJIBgAAAKwQkgEAAAArhGQAAADAir2tCwBKs4YTvped0cXWZZilTuli6xIAACgTuJMMAAAAWCEkAwAAAFYIyQAAAIAVQjLuutTUVBkMBiUmJpq3JSQkKDg4WA4ODurWrZvNagMAACgID+7BJkaNGqVGjRpp7dq1cnNzs3U5AAAAFriTDJtISUlR+/btVb16dXl6etq6HAAAAAuEZJSYvLw8TZ06VYGBgTIajfL399fkyZMt2twYevHHH3/ohRdekMFgUGxs7C37PX/+vPr27Stvb285OzsrKChIc+fOlSTFx8fLYDDowoUL5vaJiYkyGAxKTU2VJMXGxsrT01OrV69W3bp15eLioqeeekrZ2dn6/PPPFRAQoAoVKmjYsGHKzc0tyUsCAABKKYZboMRERUXps88+0/Tp0/Xoo48qPT1dP/30k0UbPz8/paenq27dupo0aZJ69+4tDw+PW/Y7btw4HT58WGvXrlWlSpV0/PhxXbp0qUi1ZWdna9asWVq8eLH+/PNP9ejRQ927d5enp6e+/fZb/fzzz+rZs6dat26t3r175zs+JydH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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"for importance_type in [\\\"gain\\\", \\\"split\\\"]:\\n\",\n    \"    # feature importance with percentages\\n\",\n    \"    fi_df = pd.DataFrame({\\n\",\n    \"        \\\"feature_name\\\": gbms[winner_id].feature_name(),\\n\",\n    \"        importance_type: gbms[winner_id].feature_importance(\\n\",\n    \"            importance_type=importance_type\\n\",\n    \"        )\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"    fi_df = fi_df.sort_values(by = [importance_type], ascending=False)\\n\",\n    \"    fi_df[importance_type] = 100 * fi_df[importance_type] / fi_df[importance_type].sum()\\n\",\n    \"    fi_df = fi_df[fi_df[importance_type] > 0]\\n\",\n    \"\\n\",\n    \"    ax = fi_df.plot.barh(x='feature_name', y=importance_type)\\n\",\n    \"    ax.invert_yaxis()\\n\",\n    \"    plt.legend(loc='lower right')\\n\",\n    \"    # _ = ax.bar_label(ax.containers[0])\\n\",\n    \"    plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"id\": \"db1adfbc\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# feature importance as table\\n\",\n    \"feature_importances = {}\\n\",\n    \"for importance_type in [\\\"gain\\\", \\\"split\\\"]:\\n\",\n    \"    # feature importance with percentages\\n\",\n    \"    fi_df = pd.DataFrame({\\n\",\n    \"        \\\"feature_name\\\": gbms[winner_id].feature_name(),\\n\",\n    \"        importance_type: gbms[winner_id].feature_importance(\\n\",\n    \"            importance_type=importance_type\\n\",\n    \"        )\\n\",\n    \"    })\\n\",\n    \"\\n\",\n    \"    fi_df = fi_df.sort_values(by = [importance_type], ascending=False)\\n\",\n    \"    fi_df[importance_type] = round(100 * fi_df[importance_type] / fi_df[importance_type].sum(), 2)\\n\",\n    \"    # fi_df = fi_df[fi_df[importance_type] > 0]\\n\",\n    \"\\n\",\n    \"    feature_importances[importance_type] = fi_df\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"id\": \"61126298\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>feature_name</th>\\n\",\n       \"      <th>gain</th>\\n\",\n       \"      <th>split</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>distance_sums</td>\\n\",\n       \"      <td>51.37</td>\\n\",\n       \"      <td>11.30</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>clf_sum</td>\\n\",\n       \"      <td>24.72</td>\\n\",\n       \"      <td>1.97</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>Facenet512</td>\\n\",\n       \"      <td>16.87</td>\\n\",\n       \"      <td>17.03</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>distance_multiplications</td>\\n\",\n       \"      <td>2.49</td>\\n\",\n       \"      <td>9.08</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>ArcFace</td>\\n\",\n       \"      <td>1.89</td>\\n\",\n       \"      <td>25.46</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>Facenet</td>\\n\",\n       \"      <td>1.43</td>\\n\",\n       \"      <td>18.32</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>Dlib</td>\\n\",\n       \"      <td>0.60</td>\\n\",\n       \"      <td>8.71</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>VGG-Face</td>\\n\",\n       \"      <td>0.59</td>\\n\",\n       \"      <td>7.04</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>Dlib_clf</td>\\n\",\n       \"      <td>0.03</td>\\n\",\n       \"      <td>0.24</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>Facenet_clf</td>\\n\",\n       \"      <td>0.01</td>\\n\",\n       \"      <td>0.86</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>10</th>\\n\",\n       \"      <td>Facenet512_clf</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>11</th>\\n\",\n       \"      <td>VGG-Face_clf</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>12</th>\\n\",\n       \"      <td>ArcFace_clf</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>13</th>\\n\",\n       \"      <td>clf_multiplication</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"      <td>0.00</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"                feature_name   gain  split\\n\",\n       \"0              distance_sums  51.37  11.30\\n\",\n       \"1                    clf_sum  24.72   1.97\\n\",\n       \"2                 Facenet512  16.87  17.03\\n\",\n       \"3   distance_multiplications   2.49   9.08\\n\",\n       \"4                    ArcFace   1.89  25.46\\n\",\n       \"5                    Facenet   1.43  18.32\\n\",\n       \"6                       Dlib   0.60   8.71\\n\",\n       \"7                   VGG-Face   0.59   7.04\\n\",\n       \"8                   Dlib_clf   0.03   0.24\\n\",\n       \"9                Facenet_clf   0.01   0.86\\n\",\n       \"10            Facenet512_clf   0.00   0.00\\n\",\n       \"11              VGG-Face_clf   0.00   0.00\\n\",\n       \"12               ArcFace_clf   0.00   0.00\\n\",\n       \"13        clf_multiplication   0.00   0.00\"\n      ]\n     },\n     \"execution_count\": 37,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"feature_importances[\\\"gain\\\"].merge(feature_importances[\\\"split\\\"], on = [\\\"feature_name\\\"], how = \\\"left\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"id\": \"f0034dfa\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"explainer = shap.Explainer(gbms[winner_id])\\n\",\n    \"shap_values = explainer(x_test)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"id\": \"13fa32e1\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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NC3WDcllxAIGp8Fl/XV004agCcEIw3tqvDs+ufkdCtFK5InLLbdTLQmXXHIJc+bM4e6772bZsmV0796dhQsXsmjRooRnCGzL008/zddff83xxx9PQUEBSinmz5/P2rVrE6Z/rG9leOihhzjjjDNwuVx0796dHj16MHToUN544w3++te/MmjQIMrKypg9e3a8//euysvL44YbbuDee+9l3LhxjBgxgvz8fIqLi5k3bx633XYbBx98ML1792bixIk8+eSTXHDBBQwbNoycnBxKS0tZtmwZX3zxBV9//fVvysuuGDRoEJ07d+aJJ56gqqqK9u3b89NPP/Hzzz+36N4A9O3bl1mzZvHYY4/RtWtXNE3jxBNP3G5rQHp6Op988gklJSUceeSR8SlQs7KymDRp0k6fR0vvw+DBg3nxxRf54x//yNlnn43T6eSbb75h1apVzZ5vnz59+Pbbb3n22Wdp164dmqZx2mmnNZuHlJQUrrvuOu69914uu+yy+PM03n77bTZs2MCtt97apJ9lS6xbt46JEycyZMgQunfvTkpKCmvXruW1116joKCAI444Yqf3KYTYsdDmWtxBhV/3kWxvHSjYJNNc8CAaOypfI8kNgW3NOaLB9HOTmH7uXs2WEGIP2qkgITU1laeeeoopU6bw7rvvArHpLp944gmuvPLKHW5/0kknUVpaykcffUR5eTlut5uOHTvy97//nTPPbGhf7devH9deey1vvPEGd911F5ZlMWHCBHr06MH1119PUlISH374IfPmzSMvL4+zzz6bXr16cdVVV+3k6ScaO3YsHTp0YMaMGbz88stEo1FycnIYOHAgeXl58fUmTpxIr169ePnll3nppZcIBoNkZmbSvXt3brzxxt+Uh11lGAZTpkzhvvvuY+bMmTidTo4++miefPJJfv/737doH1dddRVVVVW8+uqr1NTUoJTirbfe2m6Q4PV64w9Te+SRR1BKccwxx/DnP/95l56RAC27D/369ePf//43Tz31FI8//jhut5tBgwbx5JNPMmHChCb7vOWWW7j33nuZPn16vHVgW0ECxGbEys7O5rnnnmPatGkAHHTQQdx3331NHqbWUnl5eYwePZqFCxfy6aefxs/r7LPP5tJLL8Xjab5bgBDit9GcOg7LYosqwMfKuiZ0BZiAjc6O584XsOUqg+QHtmqpre+PYEsdrBAH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Qxk8eDDPPfccV111Fffcc09AvFu3bqVRo0YVau9IISEhDBw4kEcffZTk5OQTeg87d+5kwoQJjBw50lfWpEkT/u///o8PP/yQ66677oRiWbNmDVOnTqVz5848//zzfkOBbr/9dt/PDoeD+fPnByQh7dq146mnnmLx4sVceOGFxMXFccEFF5zQ72fr1q28++67nH322bz66qvY7XYALr30Uq688kqeeeYZunXr5jePYePGjX6/v8svv5z8/HxmzZrFnXfeqd4EkVpiR2hjeuzeTJSrZIWjfFso29yp1RyViIg/LYF6AubPn09kZCQ33XRTwD6L5dR/lG3btvVdYALY7XZat26NaZqMGDHC79gOHToAsGPHjlMe1/GEhYVx5ZVX+pVdeeWVhIWF8fXXX59wffPnzwdg7NixAXMFDMPwTZ42DMOXIHg8HnJzc8nKyqJLly5ASbJRUUuWLME0Ta699lpfggCQkJDAkCFD2L17N3/88YffOUf//gC6dOmCx+Nh165dFY6lsmVmZlJcXOzbzsvLIzc317ftdDrJyMjwO2f37t1lbqenp2OaptpQG2oDSMnaS74jjC2RjdgS2YjM4Fha7t1W496H2lAbp6INOX2oJ+EEbN++nebNm1fbJNbk5OSAskMToevVq+dXHhERAUB2dvapD+w4kpOT/S6koeQuf3JyMmlpaSdc3/bt2zEMg2bNmh332C+//JL33nuPP/74A7fb7bcvJ6fiDy86dFHftGngZMNDZWlpabRq1cpXXtrvLyoqCjg9fk+HHD1PJDw83G/b4XAQFxfnV5aUlFTmdt26ddWG2lAbB9XJyyXfevgYt8VGuPNwb3RNeR9qQ22cijZONa8mLpebkoQapKwlOI+178gM/1jLkx598VwTHNljcCyLFi3igQceoHXr1tx9990kJibicDjwer3cfvvtfp9NVSjr91fVsYhI9fGW8tXrtFT+6nAiIidDScIJaNiwIVu3bsXpdJ6S5T5PtUO9DtnZ2b472ECF7uafiLS0NFwul19vgtPpJC0trULzJRo2bMiKFSvYsGFDwPCdI82dO5egoCBee+01v3kJW7duDTj2RJ/vcKhX4M8//wx4KN7mzZv9jhEROdKeqFAic/3LssP0dSxSFfRU5fLTnIQTMGDAAHJycnjzzTcD9tWEO8EpKSkAfP/9937l7733XrnrCA0N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nHvuufz6668UFRWV6/MCmD9/PgBjx471SxAADMPAqKFPbszMzKS4uNi3nZeXR25urm/b6XSSkZHhd87RK1UdvZ2eno5pmmpDbagN4JN259L83kk8eeEVPNt7KO0nPMtz5x2+WVBT3ofaUBunoo1TzWUYZb7kMMM88rcrtdatt97Kpk2bePPNN/0ubl9//XW++uor5s2bR3R0NFAyJ6Ffv348/bT/o3/eeecdXnzxRV566SW6du1aZntDhgwhJCSEjz/++JjHTJ8+nRkzZrB58+aAXohbbrmF0aNHA3DllVeSm5vru2g/lh49evj98SrNnDlzqFu3bpnHHDJu3DhWrlzJN998E5AkHGnXrl1ccsklAXMOhgwZQlJS0gn1XohIzWd7pgiP9aiOfNOLeY+jegISqUUajttf5v5tL8RXUSSnPw03EtLS0li1ahWmaTJs2LBSj5k7dy4jRx5+QujRE4cr23vvvcekSZPo2rUrI0aMID4+Hrvdzr59+5g4cWJA0lBeqamp3HnnncfcHxMTc0L11eQeAxGpHg6Pm8KjkgSrV/frROT0oiRBmD17NqZp8vDDDxMeHh6w/5VXXmHWrFl+SUJpGjZsCMAff/xx3J6E45k7dy716tXjhRde8BsytGLFioBjU1JSWLJkCRkZGcTFHXud8QYNGnDgwAG6dOkSMCypIho2bMiKFSvYsGGDb36EiMjxDFv9Le93vsCvrPfG34DO1RKPSG0SuGyAHIvmJNRyXq+X2bNnk5qayqWXXkq/fv0CXv3792fTpk2sXbu2zLq6du1KdHQ077//Pvv3B3bnncjINqvVimEYfue43W7efvvtgGMvvvhiAF544YWAHoYjzx80aBAZGRm8//77pbZ59DjJ4+nfv2S5wpdffhmXK/DPjkbyiUhpnp/1Do8t+JjogjzCiwoY+808Pn7vueoOS0TEj3oSarlvv/2WPXv2MHTo0GMe06dPH15//XVmzpxJ69atj3lccHAwjzzyCPfddx/Dhw/3LYF64MABvv32W0aOHMkFF1xQrrj69u3LSy+9xLhx4+jduzf5+fksWLDAb7WjQ/r168eFF17I559/zo4dO+jZsycRERFs376dlStX+uY9XH311Xz33Xc8//zz/PDDD3Tp0oWwsDDS09P54YcfcDgcvPbaa+WKD6BNmzb89a9/5Z133uGaa67hoosu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\",\n      \"text/plain\": [\n       \"<Figure size 800x710 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"shap.summary_plot(shap_values, x_test, feature_names=feature_names)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"id\": \"1cf7697a\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 800x710 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"shap.summary_plot(shap_values, x_test, plot_type='bar', feature_names=feature_names)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"87f5de82\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Confusion Matrix\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"id\": \"aefeb29c\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"[[498   2]\\n\",\n      \" [  7 493]]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"pred_probas = gbms[winner_id].predict(x_test)\\n\",\n    \"pred_classes = []\\n\",\n    \"for pred_proba in pred_probas:\\n\",\n    \"    if multiclass is True:\\n\",\n    \"        pred_class = 1 if pred_proba[1] > pred_proba[0] else 0\\n\",\n    \"    else:\\n\",\n    \"        pred_class = 1 if pred_proba > 0.5 else 0\\n\",\n    \"    pred_classes.append(pred_class)\\n\",\n    \"\\n\",\n    \"cm = confusion_matrix(y_test, pred_classes)\\n\",\n    \"print(cm)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"id\": \"5233a976\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Boosted LightFace's accuracy=99.1, precision=99.6, recall=98.6, f1=99.1\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"accuracy= 100 * round(accuracy_score(y_test, pred_classes), 4)\\n\",\n    \"precision = 100 * round(precision_score(y_test, pred_classes), 4)\\n\",\n    \"recall = 100 * round(recall_score(y_test, pred_classes), 4)\\n\",\n    \"f1 = 100 * round(f1_score(y_test, pred_classes), 4)\\n\",\n    \"\\n\",\n    \"print(f\\\"Boosted LightFace's {accuracy=}, {precision=}, {recall=}, {f1=}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 43,\n   \"id\": \"3b5ef5fe\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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rl+/DmdnZwCAs7MzfvrpJ532qmcXVV9TU+weIiIikhFDjml5UlqtFmVlZfD394e5uTkOHDggncvOzkZubi4CAwMBAIGBgTh58iQKCgqka5KSkqBSqeDj41Or57LSQkRERI81c+ZM9O/fH23atMHdu3exdetWJCcn49tvv4VarcbYsWMxdepU2NvbQ6VSYdKkSQgMDERAQAAAoG/fvvDx8cFrr72GJUuWID8/H7Nnz0ZkZORju6Meh0kLERGRnNTzx4cKCgoQHh6OvLw8qNVq+Pr64ttvv8WLL74IAFixYgVMTEwwfPhwlJWVITQ0FB988IF0v6mpKRITEzFx4kQEBgbCxsYGERERmD9/fq3DrlHSsmvXrho3+NJLL9U6CCIiIqqZ+v720MaNG//0vKWlJdasWYM1a9Y89ho3Nzfs2bOnxs98nBolLUOHDq1RY4IgQKPR6BMPERER/RUjXRa2RkmLVqut6ziIiIiI/pReY1pKS0thaanfUsJERERUc/XdPdSY1HrKs0ajwYIFC9CqVSsolUr88ssvAIA5c+b8Zb8XERER6amev/LcmNQ6aVm0aBESEhKwZMkSnY8cderUCRs2bDBocERERETVap20bN68GevXr0dYWBhMTU2l4126dMHZs2cNGhwRERH9kWCgTX5qPabl6tWr0lK+D9JqtaioqDBIUERERPQY9bxOS2NS60qLj48PDh48+NDxL7/8El27djVIUERERER/VOtKy9y5cxEREYGrV69Cq9Vi+/btyM7OxubNm5GYmFgXMRIREVE1VlpqbsiQIdi9eze+++472NjYYO7cucjKysLu3bulJX2JiIiojlR/5VnfTYaeaJ2WXr16ISkpydCxEBERET3WEy8ud+zYMWRlZQGoGufi7+9vsKCIiIjo0USxatO3DTmqddLy66+/4tVXX8Xhw4dhZ2cHALh9+zZ69uyJbdu2oXXr1oaOkYiIiKpxTEvNjRs3DhUVFcjKykJhYSEKCwuRlZUFrVaLcePG1UWMREREVI1jWmouJSUFqamp6NChg3SsQ4cOWL16NXr16mXQ4IiIiIiq1TppcXV1feQichqNBi4uLgYJioiIiB5NEKs2fduQo1p3Dy1duhSTJk3CsWPHpGPHjh1DdHQ0li1bZtDgiIiI6A+M+IOJNaq0NGvWDILwe/9XSUkJevToATOzqtsrKyth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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"disp = ConfusionMatrixDisplay(\\n\",\n    \"    confusion_matrix=cm,\\n\",\n    \"    display_labels=[\\\"different\\\\npersons\\\", \\\"same\\\\nperson\\\"]\\n\",\n    \")\\n\",\n    \"disp.plot()\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"974514d7\",\n   \"metadata\": {},\n   \"source\": [\n    \"# ROC Curves\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 44,\n   \"id\": \"ef1f33c2\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def plot_roc(model_name, detector_backend, distance_metric, align):\\n\",\n    \"    alignment_text = \\\"aligned\\\" if align == True else \\\"unaligned\\\"\\n\",\n    \"\\n\",\n    \"    df = pd.read_csv(f\\\"outputs/test/{model_name}_{detector_backend}_{distance_metric}_{alignment_text}.csv\\\")\\n\",\n    \"\\n\",\n    \"    #normalize\\n\",\n    \"    df[\\\"distances_normalized\\\"] = df[\\\"distances\\\"] / df[\\\"distances\\\"].max()\\n\",\n    \"    df[\\\"actuals_normalized\\\"] = 0\\n\",\n    \"    idx = df[df[\\\"actuals\\\"] == False].index\\n\",\n    \"    df.loc[idx, \\\"actuals_normalized\\\"] = 1\\n\",\n    \"    \\n\",\n    \"    y_actual = df[\\\"actuals_normalized\\\"].values.tolist()\\n\",\n    \"    y_pred_proba = df[\\\"distances_normalized\\\"].values.tolist()\\n\",\n    \"    \\n\",\n    \"    fpr, tpr, _ = sklearn.metrics.roc_curve(y_actual, y_pred_proba)\\n\",\n    \"    auc = sklearn.metrics.roc_auc_score(y_actual, y_pred_proba)\\n\",\n    \"    auc = round(auc, 4)\\n\",\n    \"    \\n\",\n    \"    label = f\\\"{model_name}_{detector_backend}_{distance_metric}_{alignment_text} (auc: {auc})\\\"\\n\",\n    \"\\n\",\n    \"    return fpr, tpr, label\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 45,\n   \"id\": \"f457c00b\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"outputs/test/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet512_retinaface_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Facenet_yunet_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/Facenet_yunet_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/Facenet_yunet_euclidean_l2_aligned.csv\\n\",\n      \"outputs/test/Dlib_dlib_euclidean_aligned.csv\\n\",\n      \"outputs/train/Dlib_dlib_euclidean_aligned.csv\\n\",\n      \"outputs/10_folds/Dlib_dlib_euclidean_aligned.csv\\n\",\n      \"outputs/test/VGG-Face_ssd_euclidean_l2_unaligned.csv\\n\",\n      \"outputs/train/VGG-Face_ssd_euclidean_l2_unaligned.csv\\n\",\n      \"outputs/10_folds/VGG-Face_ssd_euclidean_l2_unaligned.csv\\n\",\n      \"outputs/test/ArcFace_yunet_euclidean_l2_aligned.csv\\n\",\n      \"outputs/train/ArcFace_yunet_euclidean_l2_aligned.csv\\n\",\n      \"outputs/10_folds/ArcFace_yunet_euclidean_l2_aligned.csv\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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AAAAAAAAAABe8jnwPS0sLEz16tXzZy0AAAAAAAAAgALwOfBt27atbDZbrvN/+umnAhUEAAAAAAAAADg3Pge+jRs3drufmZmpxMRErV+/Xj179vRXXQAAAAAAAAAAH/kc+L700ksepz/11FM6fvx4gQsCAAAAAAAAAJybIH9t6K677tL06dP9tblixRij1MzUXG9pWWmBLhEAAAAAAAAAzn3QtrMtWbJE4eHh/tpcsWGMUY/veijxYGKgSwEAAAAAAACAPPkc+N50001u940x2rt3r37//XeNGDHCb4UVF2lZaV6HvU0qNJEjxFG4BQEAAAAAAABALnwOfKOjo93uBwUFqU6dOnr66afVsWNHvxVWHC24bUGega4jxCGbzVaEFQEAAAAAAADAv3wKfLOzs9W7d281aNBApUuXLqyaii1HiEMRoRGBLgMAAAAAAAAAPPJp0Lbg4GB17NhRR44c8WsRkydPVnx8vMLDw9WiRQstX77cq/VmzZolm82mrl27+rUeAAAAAAAAADgf+RT4SlL9+vW1bds2vxUwe/ZsDRw4UKNGjdKqVavUqFEjderUSQcOHMhzvR07dmjQoEG64oor/FYLAAAAAAAAAJzPfA58n332WQ0aNEhff/219u7dq5SUFLebr1588UX16dNHvXv3Vr169TRlyhRFRERo+vTpua6TnZ2t7t27a/To0brooot83icAAAAAAAAAWJHXge/TTz+tEydO6Nprr9WaNWt0/fXXq0qVKipdurRKly6tUqVK+dyvb0ZGhlauXKn27dv/W1BQkNq3b68lS5bkWUuFChV07733+rQ/AAAAAAAAALAyrwdtGz16tB588EH9/PPPftv5oUOHlJ2drZiYGLfpMTEx2rhxo8d1Fi1apLfeekuJiYle7SM9PV3p6emu++fSChkAAAAAAAAAzgdeB77GGElSmzZtCq2Y/Bw7dkx33323pk2bpnLlynm1zrhx4zR69OhCrgwAAAAAAAAAAs/rwFeSbDabX3derlw5BQcHa//+/W7T9+/fr9jY2BzLb926VTt27FCXLl1c05xOpyQpJCREycnJqlGjhts6w4YN08CBA133U1JSFBcX58/DAAAAAAAAAIBiwafAt3bt2vmGvocPH/Z6e2FhYWrWrJnmz5+vrl27SjoV4M6fP1/9+vXLsXzdunW1bt06t2nDhw/XsWPH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v3THHXeoTJkyioyMVPPmzbVs2TKP+zv7J8snTpxQjx49FBUVpYoVK3r8WWR+x/j333/rjjvuUOXKlRUREaEGDRroww8/dNvGVVddpUceeUSPP/64ypQpo9jYWNdj4KvOnTvr7bffVseOHXXRRRfp+uuv16BBg/TZZ595tb439Z7t7JboGzduVOvWrV3XlB9//NHjT6s/++wztW3bVhEREWrUqJGWLFnitt38Hv8DBw6oS5cucjgcql69uj744IN8j2/lypXaunWrrrvuOrfp+T3XPXX38eijj+qqq65y3Xc6nXrhhRdUs2ZN2e12Va1aVWPGjMm3ptOSkpI0d+5cvfnmm2rRooVat26tV199VbNmzdKePXs8rrN48WLt2LFDM2bMUIMGDdSgQQO98847+v333/XTTz9Jkr7++muFhoZq8uTJqlOnji655BJNmTJFn376qbZs2SLp1GN2+PBhPf3006pTp44uvvhijRo1Svv379eff/7pts+yZcu6XWNDQ0Pd5nfp0kWzZs3y+rgvNKc/L1SuXFlNmzbVE088oS+//FLfffddri1oc+uOYPHixWrYsKHCw8N12WWXaf369V7XMWPGDFWtWlURERG68cYb9ffff+e5vKfXQFZWlvr166fo6GiVK1dOI0aMkDHGq/3nd+08u0sJSXr55ZdztAKdPn26Lr74YtntdlWsWFH9+vXzuD9P5/Dbb79V7dq15XA41LZtW49dCuR3HXrvvffUvHlzV0vNO++8UwcOHHDNP/3ro/nz56t58+aKiIjQ5ZdfruTkZK/O09atW3XDDTcoJiZGUVFRuuSSS/Tjjz/muc7Z742//fabGjdurPDwcDVv3lxffPGFxy5C8quxMD5Pfvvtt7Lb7brssstc07Kzs91+qVKnTh1NmjTJbT1PXYp07drVLVhNT0/XkCFDFBcXJ7vdrpo1a+qtt97Kt6bTfvjhB/3xxx96//331bhxY11zzTV65plnNHny5Fz/ce/N9Xb27Nlq2LChRo4cqZo1a6pNmzZ64YUXNHnyZLfPbtKpFrp169bVbbfdlmNf06dP1+HDh/XFF1+oVatWio+PV5s2bdSoUSO35bgmAyjuCHyBC5AxRqkZWQG5efuFxZPjx4/r/fffV82aNV0tJU+cOKFOnTqpdOnSWrFihT7++GP9+OOPbl9MJk2apIkTJ2rChAlau3atOnXqpOuvv16bN2+WJL3yyiuaM2eOPvroIyUnJ+uDDz5wffFZsWKFJOntt9/W3r17XfcXLlyoHj16aMCAAfrjjz/0v//9TzNmzHCFEE6nUzfddJPCwsK0bNkyTZkyRUOGDDnnY8/PBx98oDFjxuj555/XypUrVbVqVY8twX7++Wdt3bpVP//8s6tFxekvwp999pmqVKmip59+2tXCLD/Hjh1Tz549tWjRIi1dulS1atXStdde6/pg7XQ6dc0112jx4sV6//339ccff+i5555TcHCwpFNfuDp37qybb75Za9eu1ezZs7Vo0aJcv1h6MmHCBDVq1EirV6/WiBEj8t2mL8e5detWffHFF/r666/19ddf65dfftFzzz3nmn/ixAkNHDhQv//+u+bPn6+goCDdeOONrhaAe/fu1cUXX6z//ve/2rt3rwYNGiRJKlGihGbMmKE//vhDkyZN0rRp0/TSSy+5tvvNN9/oxhtv1LXXXqvVq1dr/vz5uvTSS13z+/XrpyVLlmjWrFlau3atbr31VnXu3Nn1nM6LP8758ePH1aZNG+3evVtz5szRmjVr9Pjjj+f50+kzDR48WL/88ou+/PJL/fDDD1qwYEGOfxTkd4wnT55Us2bN9M0332j9+vW6//77dffdd2v58uVu23nnnXcUGRmpZcuW6YUXXtDTTz/tt3++HD16VGXKlPFqWW/rzU12dra6du2qiIgILVu2TFOnTtWTTz7pcdknn3xSgwYNUmJiomrXrq077rjDFR548/j36tVLu3bt0s8//6xPPvlEr7/+ulvQ4snChQtVu3ZtlShRwm16fs91bwwbNkzPPfecRowYoT/++EMzZ85UTEyMa/5VV13lFkacbcmSJSpVqpSaN2/umta+fXsFBQXl+k+K9PR02Ww2t9Z84eHhCgoK0qJFi1zLhIWFKSjo34/TDodDklzL1KlTR2XLltVbb72ljIwMpaWl6a233lJCQkKOgO36669XhQoV1Lp1a82ZMydHTZdeeqn++uuvIu2P0xgjZ2pqQG4F+bxwWrt27dSoUSOv/zFz2uDBgzVx4kStWLFC5cuXV5cuXXL8U86TZcuW6d5771W/fv2UmJiotm3b6tlnn/W57nfeeUchISFavny5Jk2apBdffFFvvvmmV+sW5P3htDfeeEN9+/bV/fffr3Xr1mnOnDmqWbOmV+vu2rVLN910k7p06aLExETXP6DP5M11KDMzU88884zWrFmjL774Qjt27PD4On/yySc1ceJE/f777woJCdE999zjVZ3Hjx/Xtddeq/nz52v16tXq3LmzunTpop07d3q1fkpKirp06aIGDRpo1apVeuaZZ3L9nJdXjYX1eXLhwoVuvxI4va0qVaro448/1h9//KGRI0fqiSee0EcffeTVMZ/Wo0cPffjhh3rllVeUlJSk//3vf4qKinLNj4+Pz/Ofq0uWLFGDBg3cruOdOnVSSkqKNmzY4HEdb6636enpCg8Pd1vP4XDo5MmTWrlypWvaTz/9pI8//liTJ0/2uK85c+aoZcuW6tu3r2JiYlS/fn2NHTtW2dnZbstdeumlWr58udLT03M9VgAIKHOBOXr0qJFkjh49aowxZtemDWbCbdeZCbddZ3Zt2hDg6gD/S0tLM3/88YdJS0tzTTuRnmmqDfk6ILcT6Zle196zZ08THBxsIiMjTWRkpJFkKlasaFauXOlaZurUqaZ06dLm+PHjrmnffPONCQoKMvv27TPGGFOpUiUzZswYt21fcskl5uGHHzbGGNO/f3/Trl0743Q6PdYhyXz++edu066++mozduxYt2nvvfeeqVixojHGmO+//96EhISY3bt3u+Z/9913HreVm7yWffvtt010dLTrfosWLUzfvn3dlmnVqpVp1KiR637Pnj1NtWrVTFZWlmvarbfearp16+a6X61aNfPSSy+5befnn382klyPw+nboUOHctSVnZ1tSpQoYb766itjzKnzEBQUZJKTkz0ex7333mvuv/9+t2kLFy40QUFBbs/Z3FSrVs107drV5216Os6zz+moUaNMRESESUlJcU0bPHiwadGiRa71HDx40Egy69atc01r1KiRGTVqVJ7HMX78eNOsWTPX/ZYtW5ru3bt7XPbPP/80wcHBbs8tY049J4cNG5bnfozx7vx4eu5FR0ebt99+2xhjzP/+9z9TokQJ8/fff3vcx6hRo3I892644QZjjDHHjh0zYWFh5qOPPnLN//vvv43D4TADBgwo0DFed9115r///a/rfps2bUzr1q3dlrnkkkvMkCFDct3GmfJ6DW7evNmULFnSTJ061atteVvv6XNgjPvz9LvvvjMhISFm7969rvnz5s1zq3H79u1GknnzzTddy2zYsMFIMklJScaY/B//5ORk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RJHtz99++uknrVu3To899phP6y1dujTH9SkhISHf9RISEnL0C30u7/2etlGrVq0cIe7ZvLl2li9fXvv27XN7rZ454FqJEiUUHx+v+fPnq23btj7XnpCQkKMP6rPPQX7XoXXr1unvv//Wc889p7i4OEnS77//7nMteVm8eLF69erlGhD1+PHjPvWPXadOHb3//vtKT0939fV9rtfkwvg82aRJE73//vtu0xYvXqzLL79cDz/8sGva2S2/z37/z87O1vr1613PhQYNGsjpdOqXX35R+/btvTvIs7Rs2VJjxozRgQMHVKFCBUnSvHnzVLJkSa/eE3O73p5ms9lcLaI//PBDxcXFqWnTppJO/SPyzM9/X375pZ5//nn99ttvqly5sqRTvwKcOXOmnE6n631+06ZNqlixoivslU5dk6tUqeJ6jwCA4oYuHQAUa+np6dq3b5/27dunpKQk9e/fX8ePH1eXLl0kSd27d1d4eLh69uyp9evX6+eff1b//v119913uz4QDh48WM8//7xmz56t5ORkDR06VImJiRowYIAk6cUXX9SHH36ojRs3atOmTfr4448VGxvras16+ovPvn37XK0lRo4cqXfffVejR4/Whg0blJSUpFmzZmn48OGSTg0IVLt2bfXs2VNr1qzRwoULcx1gKS/bt29360YhMTHRbRTr0/r376+33npL77zzjjZv3qxnn31Wa9eu9flnrPHx8fr111+1e/dut+A2N7Vq1dJ7772npKQkLVu2TN27d3dr/dGmTRtdeeWVuvnmmzVv3jxXS+q5c+dKkoYMGaLffvvNNcDN5s2b9eWXXxbop4DebNPX4/SkdOnSKlu2rKZOnaotW7bop59+0sCBA/Ndr1atWtq5c6dmzZqlrVu36pVXXtHnn3/utsyoUaP04YcfatSoUUpKStK6dev0/PPPS5Jq166t7t27q0ePHvrss8+0fft2LV++XOPGjdM333yT7/69OT/t2rXTa6+9ptWrV+v333/Xgw8+6NZC6Y477lBsbKy6du2qxYsXa9u2bfr000+1ZMmSfPcfFRWle++9V4MHD9ZPP/2k9evXq1evXm7hqTfHWKtWLc2bN0+//fabkpKS9MADD7haCBWG3bt366qrrlLVqlU1YcIEHTx40HVt8kZB6+3QoYNq1Kihnj17au3atVq8eLHreuPL6zy/x79OnTrq3LmzHnjgAS1btkwrV67Ufffdl2+rrrZt2+r48eNuA+5481xv166dfv/9d7377rvavHmzRo0a5RYAh4eHa8iQIXr88cf17rvvauvWrVq6dKnbiPA9evTQsGHDcq0tISFBnTt3Vp8+fbR8+XItXrxY/fr10+233+4KBXbv3q26deu6tTp7++23tXTpUm3dulXvv/++br31Vj322GNu3Y+89tprWrVqlTZt2qTJkyerX79+GjdunOv9o0OHDvrnn3/Ut29fJSUlacOGDerdu7dCQkJcAco777zjeg/auHGjxo4dq+nTp6t///5ux7Fw4UJdccUVRdIC83x0+vPC7t27tWrVKo0dO1Y33HCD/vOf/7j9M9QbTz/9tObPn++6PpUrV05du3bNd71HHnlEc+fO1YQJE7R582a99tprrvc7X+zcuVMDBw5UcnKyPvzwQ7366quuzyx58ebaedVVV+ngwYN64YUXtHXrVk2ePFnfffed23aeeuopTZw4Ua+88oo2b96sVatW6dVXX/Wq9gcffFCbN2/W4MGDlZycrJkzZ7oGhz0tv+tQ1apVFRYWpldffVXbtm3TnDlz9Mwzz3i1f2/VqlVLn332mRITE7VmzRrdeeedPv364/Ty999/v5KSkvT999+7Wo36ck0urM+TnTp10oYNG9xa+daqVUu///67vv/+e23atEkjRozIEVK3a9dO33zzjb755htt3LhRDz30kNs//OLj49WzZ0/dc889+uKLL7R9+3YtWLDAbeC3q6++Wq+99lqutXXs2FH16tXT3XffrTVr1uj777/X8OHD1bdvX1d4vnz5ctWtW1e7d+92rZff9VY69WuadevWacOGDXrmmWf03HPP6ZVXXnH9syQhIUH169d33SpXrqygoCDVr19fpUuXliQ99NBDOnz4sAYMGKBNmzbpm2++0dixY9W3b1+341i4cKE6duyY72MBAAFTqD0EF0MM2oYLzfncCX7Pnj2NJNetRIkS5pJLLjGffPKJ23Jr1641bdu2NeHh4aZMmTKmT58+rkE9jDk1kNhTTz1lKleubEJDQ02jRo3Md99955o/depU07hxYxMZGWlKlixprr76arNq1SrX/Dlz5piaNWuakJAQt0FN5s6day6//HLjcDhMyZIlzaWXXuo2gFNycrJp3bq1CQsLM7Vr1zZz5871edA2T7eFCxd6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\",\n      \"text/plain\": [\n       \"<Figure size 1700x800 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.figure(figsize=(17, 8))\\n\",\n    \"\\n\",\n    \"# -------------------------------------------\\n\",\n    \"# Boosted LightFace's ROC Curve\\n\",\n    \"\\n\",\n    \"plt.plot(\\n\",\n    \"    test_fprs[winner_id],\\n\",\n    \"    test_tprs[winner_id],\\n\",\n    \"    label=f\\\"Boosted_LightFace_retinaface_euclidean_l2_aligned (auc: {test_aucs[winner_id]})\\\"\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"plt.ylabel(\\\"True Positive Rate\\\")\\n\",\n    \"plt.xlabel(\\\"False Positive Rate\\\")\\n\",\n    \"plt.legend(loc=\\\"lower center\\\", ncol=2)\\n\",\n    \"# normally this should be [0, 1] but that scale makes graphs not legible\\n\",\n    \"\\n\",\n    \"# -------------------------------------------\\n\",\n    \"# Single Model's ROC Curves\\n\",\n    \"\\n\",\n    \"# these are the best single model configurations\\n\",\n    \"# according to the https://github.com/serengil/deepface/tree/master/benchmarks (2024-05-09)\\n\",\n    \"single_models = [\\n\",\n    \"    \\\"Facenet512|retinaface|euclidean_l2|aligned\\\",\\n\",\n    \"    \\\"Facenet|yunet|euclidean_l2|aligned\\\",\\n\",\n    \"    \\\"Dlib|dlib|euclidean|aligned\\\",\\n\",\n    \"    \\\"VGG-Face|ssd|euclidean_l2|unaligned\\\",\\n\",\n    \"    \\\"ArcFace|yunet|euclidean_l2|aligned\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"for single_models in single_models:\\n\",\n    \"    model_name, detector_backend, distance_metric, alignment = single_models.split(\\\"|\\\")\\n\",\n    \"\\n\",\n    \"    # confirm that distance csv's ready\\n\",\n    \"    calculate_distances(model_name, detector_backend, distance_metric, align = (alignment == \\\"aligned\\\"))\\n\",\n    \"\\n\",\n    \"    fpr, tpr, label = plot_roc(model_name, detector_backend, distance_metric, alignment == \\\"aligned\\\")\\n\",\n    \"    plt.plot(fpr, tpr, label=label)\\n\",\n    \"    plt.ylabel(\\\"True Positive Rate\\\")\\n\",\n    \"    plt.xlabel(\\\"False Positive Rate\\\")\\n\",\n    \"    plt.legend(loc=\\\"lower center\\\", ncol=2)\\n\",\n    \"    \\n\",\n    \"plt.xlim([-0.001, 0.3])\\n\",\n    \"# plt.xlim([-0.001, 0.05])\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"66795d2f\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Misclassifications\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 46,\n   \"id\": \"2f57923f\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"1-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"3-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"4-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"5-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"6-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"7-th misclassification - false negative (predicted as different persons but actually same person)\\n\",\n      \"actual=1, pred_class=0\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"8-th misclassification - false positive (predicted as same person but actually different persons)\\n\",\n      \"actual=0, pred_class=1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"9-th misclassification - false positive (predicted as same person but actually different persons)\\n\",\n      \"actual=0, pred_class=1\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 500x500 with 2 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"misclf_idx = 0\\n\",\n    \"for i, pred_class in enumerate(pred_classes):\\n\",\n    \"    actual = y_test[i]\\n\",\n    \"    if actual != pred_class:\\n\",\n    \"        misclf_idx += 1\\n\",\n    \"        label = (\\n\",\n    \"            \\\"false negative (predicted as different persons but actually same person)\\\" \\n\",\n    \"            if (actual == 1 and pred_class == 0) \\n\",\n    \"            else \\\"false positive (predicted as same person but actually different persons)\\\"\\n\",\n    \"        )\\n\",\n    \"        print(f\\\"{misclf_idx}-th misclassification - {label}\\\")\\n\",\n    \"        print(f\\\"{actual=}, {pred_class=}\\\")\\n\",\n    \"\\n\",\n    \"        img1_target = f\\\"lfwe/test/{i}_1.jpg\\\"\\n\",\n    \"        img2_target = f\\\"lfwe/test/{i}_2.jpg\\\"\\n\",\n    \"\\n\",\n    \"        img1 = cv2.imread(img1_target)[:,:,::-1]\\n\",\n    \"        img2 = cv2.imread(img2_target)[:,:,::-1]\\n\",\n    \"\\n\",\n    \"        # img1 = DeepFace.extract_faces(img_path=img1_target, detector_backend=\\\"retinaface\\\")[0][\\\"face\\\"]\\n\",\n    \"        # img2 = DeepFace.extract_faces(img_path=img2_target, detector_backend=\\\"retinaface\\\")[0][\\\"face\\\"]\\n\",\n    \"        # img1 = preprocessing.resize_image(img=img1, target_size=(224, 224))[0]\\n\",\n    \"        # img2 = preprocessing.resize_image(img=img2, target_size=(224, 224))[0]\\n\",\n    \"\\n\",\n    \"        fig = plt.figure(figsize=(5, 5))\\n\",\n    \"\\n\",\n    \"        fig.add_subplot(1, 2, 1)\\n\",\n    \"        plt.imshow(img1)\\n\",\n    \"        plt.axis(\\\"off\\\")\\n\",\n    \"\\n\",\n    \"        fig.add_subplot(1, 2, 2)\\n\",\n    \"        plt.imshow(img2)\\n\",\n    \"        plt.axis(\\\"off\\\")\\n\",\n    \"\\n\",\n    \"        plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "boosted/Perform-Boosting-Experiments-XGBoost.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8133a99d\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Perform Experiments with DeepFace on LFW dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"5aab0cbe\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"2024-05-09 11:59:17.587328: I tensorflow/core/util/util.cc:169] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\\n\",\n      \"2024-05-09 11:59:17.590521: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\\n\",\n      \"2024-05-09 11:59:17.590530: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\\n\",\n      \"/home/sefik/.local/lib/python3.9/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (5.2.0)/charset_normalizer (2.0.12) doesn't match a supported version!\\n\",\n      \"  warnings.warn(\\\"urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported \\\"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# built-in dependencies\\n\",\n    \"import os\\n\",\n    \"# os.environ['CUDA_VISIBLE_DEVICES'] = '-1'\\n\",\n    \"import statistics\\n\",\n    \"\\n\",\n    \"# 3rd party dependencies\\n\",\n    \"import numpy as np\\n\",\n    \"import pandas as pd\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"from sklearn.metrics import accuracy_score\\n\",\n    \"from sklearn.datasets import fetch_lfw_pairs\\n\",\n    \"from deepface import DeepFace\\n\",\n    \"import lightgbm as lgb\\n\",\n    \"import xgboost\\n\",\n    \"from xgboost import plot_importance\\n\",\n    \"from sklearn.model_selection import KFold\\n\",\n    \"from tqdm import tqdm\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"cda3ac24\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"seed = 17\\n\",\n    \"detector_backend = \\\"retinaface\\\"\\n\",\n    \"more_train = False # append some of validation data into train\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"64c9ed9a\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"This experiment is done with pip package of deepface with 0.0.90 version\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"This experiment is done with pip package of deepface with {DeepFace.__version__} version\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"feaec973\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Configuration Sets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"453104b4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# all configuration alternatives for 4 dimensions of arguments\\n\",\n    \"alignment = [True]\\n\",\n    \"\\n\",\n    \"models = [\\\"Facenet\\\", \\\"Facenet512\\\", \\\"VGG-Face\\\", \\\"ArcFace\\\", \\\"Dlib\\\"]\\n\",\n    \"detectors = [\\\"retinaface\\\"]\\n\",\n    \"\\n\",\n    \"metrics = [\\\"euclidean_l2\\\"]\\n\",\n    \"expand_percentage = 0\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c9aeb57a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Create Required Folders if necessary\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"671d8a00\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"target_paths = [\\n\",\n    \"    \\\"lfwe\\\",\\n\",\n    \"    \\\"lfwe/test\\\",\\n\",\n    \"    \\\"lfwe/train\\\",\\n\",\n    \"    \\\"lfwe/10_folds\\\",\\n\",\n    \"    \\\"dataset\\\",\\n\",\n    \"    \\\"outputs\\\",\\n\",\n    \"    \\\"outputs/test\\\",\\n\",\n    \"    \\\"outputs/train\\\",\\n\",\n    \"    \\\"outputs/10_folds\\\",\\n\",\n    \"    \\\"results\\\"\\n\",\n    \"]\\n\",\n    \"for target_path in target_paths:\\n\",\n    \"    if os.path.exists(target_path) != True:\\n\",\n    \"        os.mkdir(target_path)\\n\",\n    \"        print(f\\\"{target_path} is just created\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"fc31f03a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Load LFW Datasets\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"6675c8a1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def retrieve_lfe(task: str):\\n\",\n    \"    if task == \\\"test\\\":\\n\",\n    \"        instances = 1000\\n\",\n    \"    elif task == \\\"train\\\":\\n\",\n    \"        instances = 2200\\n\",\n    \"    elif task == \\\"10_folds\\\":\\n\",\n    \"        instances = 6000\\n\",\n    \"    else:\\n\",\n    \"        raise ValueError(f\\\"unimplemented task - {task}\\\")\\n\",\n    \"\\n\",\n    \"    pairs_touch = f\\\"outputs/{task}_lfwe.txt\\\"\\n\",\n    \"\\n\",\n    \"    target_path = f\\\"dataset/{task}_lfw.npy\\\"\\n\",\n    \"    labels_path = f\\\"dataset/{task}_labels.npy\\\"\\n\",\n    \"\\n\",\n    \"    if os.path.exists(target_path) != True:\\n\",\n    \"        fetched_lfw_pairs = fetch_lfw_pairs(\\n\",\n    \"            subset = task,\\n\",\n    \"            color = True,\\n\",\n    \"            # memory allocation problem occurs for validation set\\n\",\n    \"            resize = 2 if task != \\\"10_folds\\\" else 1,\\n\",\n    \"            funneled = False,\\n\",\n    \"            slice_=None,\\n\",\n    \"        )\\n\",\n    \"        print(\\\"fetched\\\")\\n\",\n    \"        pairs = fetched_lfw_pairs.pairs\\n\",\n    \"        labels = fetched_lfw_pairs.target\\n\",\n    \"        # target_names = fetched_lfw_pairs.target_names\\n\",\n    \"        np.save(target_path, pairs)\\n\",\n    \"        np.save(labels_path, labels)\\n\",\n    \"    else:\\n\",\n    \"        if os.path.exists(pairs_touch) != True:\\n\",\n    \"            # loading pairs takes some time. but if we extract these pairs as image, no need to load it anymore\\n\",\n    \"            pairs = np.load(target_path)\\n\",\n    \"        labels = np.load(labels_path)\\n\",\n    \"    \\n\",\n    \"    # store to file system\\n\",\n    \"    for i in tqdm(range(0, instances)):\\n\",\n    \"        img1_target = f\\\"lfwe/{task}/{i}_1.jpg\\\"\\n\",\n    \"        img2_target = f\\\"lfwe/{task}/{i}_2.jpg\\\"\\n\",\n    \"        \\n\",\n    \"        if os.path.exists(img1_target) != True:\\n\",\n    \"            img1 = pairs[i][0]\\n\",\n    \"            # plt.imsave(img1_target, img1/255) #works for my mac\\n\",\n    \"            plt.imsave(img1_target, img1) #works for my debian\\n\",\n    \"        \\n\",\n    \"        if os.path.exists(img2_target) != True:\\n\",\n    \"            img2 = pairs[i][1]\\n\",\n    \"            # plt.imsave(img2_target, img2/255) #works for my mac\\n\",\n    \"            plt.imsave(img2_target, img2) #works for my debian\\n\",\n    \"        \\n\",\n    \"    if os.path.exists(pairs_touch) != True:\\n\",\n    \"        open(pairs_touch,'a').close()\\n\",\n    \"    \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"5bc23313\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 1000/1000 [00:00<00:00, 204430.67it/s]\\n\",\n      \"100%|██████████| 2200/2200 [00:00<00:00, 277927.44it/s]\\n\",\n      \"100%|██████████| 6000/6000 [00:00<00:00, 224941.89it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"retrieve_lfe(task = \\\"test\\\")\\n\",\n    \"retrieve_lfe(task = \\\"train\\\")\\n\",\n    \"retrieve_lfe(task = \\\"10_folds\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9bf2e9dc\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Perform Experiments\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"4ec5e037\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def perform_experiments():    \\n\",\n    \"    for model_name in models:\\n\",\n    \"        for detector_backend in detectors:\\n\",\n    \"            for distance_metric in metrics:\\n\",\n    \"                for align in alignment:\\n\",\n    \"                    \\n\",\n    \"                    if detector_backend == \\\"skip\\\" and align is True:\\n\",\n    \"                        # Alignment is not possible for a skipped detector configuration\\n\",\n    \"                        continue\\n\",\n    \"                    \\n\",\n    \"                    calculate_distances(\\n\",\n    \"                        model_name=model_name,\\n\",\n    \"                        detector_backend=detector_backend,\\n\",\n    \"                        distance_metric=distance_metric,\\n\",\n    \"                        align=align,\\n\",\n    \"                    )\\n\",\n    \"                    \\n\",\n    \"def calculate_distances(\\n\",\n    \"        model_name: str,\\n\",\n    \"        detector_backend: str,\\n\",\n    \"        distance_metric: str = \\\"euclidean_l2\\\",\\n\",\n    \"        align: bool = True\\n\",\n    \"):\\n\",\n    \"    for experiment in [\\\"test\\\", \\\"train\\\", \\\"10_folds\\\"]:\\n\",\n    \"        if experiment == \\\"test\\\":\\n\",\n    \"            instances = 1000\\n\",\n    \"        elif experiment == \\\"train\\\":\\n\",\n    \"            instances = 2200\\n\",\n    \"        elif experiment == \\\"10_folds\\\":\\n\",\n    \"            instances = 6000\\n\",\n    \"        else:\\n\",\n    \"            raise ValueError(f\\\"unimplemented experiment - {experiment}\\\")\\n\",\n    \"\\n\",\n    \"        labels = np.load(f\\\"dataset/{experiment}_labels.npy\\\")\\n\",\n    \"\\n\",\n    \"        alignment_text = \\\"aligned\\\" if align is True else \\\"unaligned\\\"\\n\",\n    \"        task = f\\\"{experiment}/{model_name}_{detector_backend}_{distance_metric}_{alignment_text}\\\"\\n\",\n    \"        output_file = f\\\"outputs/{task}.csv\\\"\\n\",\n    \"\\n\",\n    \"        # check file is already available\\n\",\n    \"        if os.path.exists(output_file) is True:\\n\",\n    \"            continue\\n\",\n    \"        \\n\",\n    \"        distances = []\\n\",\n    \"        for i in tqdm(range(0, instances), desc = task):\\n\",\n    \"            img1_target = f\\\"lfwe/{experiment}/{i}_1.jpg\\\"\\n\",\n    \"            img2_target = f\\\"lfwe/{experiment}/{i}_2.jpg\\\"\\n\",\n    \"            result = DeepFace.verify(\\n\",\n    \"                img1_path=img1_target,\\n\",\n    \"                img2_path=img2_target,\\n\",\n    \"                model_name=model_name,\\n\",\n    \"                detector_backend=detector_backend,\\n\",\n    \"                distance_metric=distance_metric,\\n\",\n    \"                align=align,\\n\",\n    \"                enforce_detection=False,\\n\",\n    \"                expand_percentage=expand_percentage,\\n\",\n    \"            )\\n\",\n    \"            distance = result[\\\"distance\\\"]\\n\",\n    \"            distances.append(distance)\\n\",\n    \"        # -----------------------------------\\n\",\n    \"        df = pd.DataFrame(list(labels), columns = [\\\"actuals\\\"])\\n\",\n    \"        df[\\\"distances\\\"] = distances\\n\",\n    \"        df.to_csv(output_file, index=False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"89caa2fa\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"perform_experiments()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"63fd2aa4\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Data Frame\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"c06abec0\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# pre-tuned threshold for single models\\n\",\n    \"if detector_backend == \\\"mtcnn\\\":\\n\",\n    \"    thresholds = {\\n\",\n    \"        \\\"Facenet\\\": 1.0927487190831375,\\n\",\n    \"        \\\"Facenet512\\\": 1.0676744382971612,\\n\",\n    \"        \\\"VGG-Face\\\": 1.199458073887602,\\n\",\n    \"        \\\"ArcFace\\\": 1.1853355178343647,\\n\",\n    \"        \\\"Dlib\\\": 0.4020917206804517,\\n\",\n    \"    }\\n\",\n    \"elif detector_backend == \\\"retinaface\\\":\\n\",\n    \"    thresholds = {\\n\",\n    \"        \\\"Facenet\\\": 1.0771751259493634,\\n\",\n    \"        \\\"Facenet512\\\": 1.080821730376328,\\n\",\n    \"        \\\"VGG-Face\\\": 1.1952250102966764,\\n\",\n    \"        \\\"ArcFace\\\": 1.1601818883318848,\\n\",\n    \"        \\\"Dlib\\\": 0.4022031592966787,\\n\",\n    \"    }\\n\",\n    \"elif detector_backend == \\\"yunet\\\":\\n\",\n    \"    thresholds = {\\n\",\n    \"        \\\"Facenet\\\": 1.066751738677861,\\n\",\n    \"        \\\"Facenet512\\\": 1.0691771483816928,\\n\",\n    \"        \\\"VGG-Face\\\": 1.1802823845238797,\\n\",\n    \"        \\\"ArcFace\\\": 1.1945138501899335,\\n\",\n    \"        \\\"Dlib\\\": 0.422060409585814,\\n\",\n    \"    }\\n\",\n    \"else:\\n\",\n    \"    raise ValueError(f\\\"unimplemented detector - {detector_backend}\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"9e1851d5\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"tasks = [\\\"train\\\", \\\"test\\\", \\\"10_folds\\\"]\\n\",\n    \"\\n\",\n    \"dfs = {}\\n\",\n    \"for task in tasks:\\n\",\n    \"    dfs[task] = None\\n\",\n    \"    for model in models:\\n\",\n    \"        current_df = pd.read_csv(\\n\",\n    \"            f\\\"outputs/{task}/{model}_{detector_backend}_euclidean_l2_aligned.csv\\\"\\n\",\n    \"        ).rename(columns = {\\\"distances\\\": model})\\n\",\n    \"\\n\",\n    \"        if dfs[task] is None:\\n\",\n    \"            dfs[task] = current_df.copy()\\n\",\n    \"        else:\\n\",\n    \"            current_df = current_df.drop(columns = [\\\"actuals\\\"])\\n\",\n    \"            dfs[task] = pd.concat([dfs[task], current_df], axis=1)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"b1dde8c2\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>actuals</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.665361</td>\\n\",\n       \"      <td>0.529663</td>\\n\",\n       \"      <td>0.725590</td>\\n\",\n       \"      <td>0.754328</td>\\n\",\n       \"      <td>0.241096</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.761471</td>\\n\",\n       \"      <td>0.851045</td>\\n\",\n       \"      <td>0.926009</td>\\n\",\n       \"      <td>0.872847</td>\\n\",\n       \"      <td>0.361268</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.929644</td>\\n\",\n       \"      <td>1.010149</td>\\n\",\n       \"      <td>0.957905</td>\\n\",\n       \"      <td>1.005725</td>\\n\",\n       \"      <td>0.320210</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.298545</td>\\n\",\n       \"      <td>0.489141</td>\\n\",\n       \"      <td>0.789548</td>\\n\",\n       \"      <td>0.649016</td>\\n\",\n       \"      <td>0.259671</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.613064</td>\\n\",\n       \"      <td>0.679703</td>\\n\",\n       \"      <td>0.991215</td>\\n\",\n       \"      <td>0.950595</td>\\n\",\n       \"      <td>0.356630</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"   actuals   Facenet  Facenet512  VGG-Face   ArcFace      Dlib\\n\",\n       \"0        1  0.665361    0.529663  0.725590  0.754328  0.241096\\n\",\n       \"1        1  0.761471    0.851045  0.926009  0.872847  0.361268\\n\",\n       \"2        1  0.929644    1.010149  0.957905  1.005725  0.320210\\n\",\n       \"3        1  0.298545    0.489141  0.789548  0.649016  0.259671\\n\",\n       \"4        1  0.613064    0.679703  0.991215  0.950595  0.356630\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"id\": \"2aa2a50f\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"more_train=False\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"{more_train=}\\\")\\n\",\n    \"if more_train:\\n\",\n    \"    tmp_df = dfs[\\\"train\\\"].append(dfs[\\\"10_folds\\\"], ignore_index = True)\\n\",\n    \"    dfs[\\\"train\\\"] = tmp_df.sample(frac = 0.7, random_state=seed)\\n\",\n    \"    dfs[\\\"10_folds\\\"] = tmp_df.drop(dfs[\\\"train\\\"].index)\\n\",\n    \"    k = 1\\n\",\n    \"else:\\n\",\n    \"    k = 10\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"a2f6e1bd\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_classification_results(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    for model_name in models:\\n\",\n    \"        idx = df[df[model_name] < thresholds[model_name]].index\\n\",\n    \"        df[f\\\"{model_name}_clf\\\"] = -1\\n\",\n    \"        df.loc[idx, f\\\"{model_name}_clf\\\"] = 1\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_classification_results(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_classification_results(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_classification_results(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"128a04b1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_classification_sum(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"clf_sum\\\"] = 0\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"clf_sum\\\"] += df[f\\\"{model_name}_clf\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_classification_sum(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_classification_sum(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_classification_sum(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"id\": \"3bcdef6e\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_distance_additions(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"distance_sums\\\"] = 0\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"distance_sums\\\"] += df[f\\\"{model_name}\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_distance_additions(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_distance_additions(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_distance_additions(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"id\": \"8c834ded\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def add_distance_multiplications(df: pd.DataFrame) -> pd.DataFrame:\\n\",\n    \"    df[\\\"distance_multiplications\\\"] = 1\\n\",\n    \"    for model_name in models:\\n\",\n    \"        df[\\\"distance_multiplications\\\"] *= df[f\\\"{model_name}\\\"]\\n\",\n    \"    return df\\n\",\n    \"\\n\",\n    \"dfs[\\\"train\\\"] = add_distance_multiplications(dfs[\\\"train\\\"])\\n\",\n    \"dfs[\\\"10_folds\\\"] = add_distance_multiplications(dfs[\\\"10_folds\\\"])\\n\",\n    \"dfs[\\\"test\\\"] = add_distance_multiplications(dfs[\\\"test\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"id\": \"f2bc2338\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>actuals</th>\\n\",\n       \"      <th>Facenet</th>\\n\",\n       \"      <th>Facenet512</th>\\n\",\n       \"      <th>VGG-Face</th>\\n\",\n       \"      <th>ArcFace</th>\\n\",\n       \"      <th>Dlib</th>\\n\",\n       \"      <th>Facenet_clf</th>\\n\",\n       \"      <th>Facenet512_clf</th>\\n\",\n       \"      <th>VGG-Face_clf</th>\\n\",\n       \"      <th>ArcFace_clf</th>\\n\",\n       \"      <th>Dlib_clf</th>\\n\",\n       \"      <th>clf_sum</th>\\n\",\n       \"      <th>distance_sums</th>\\n\",\n       \"      <th>distance_multiplications</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>744</th>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.555978</td>\\n\",\n       \"      <td>0.535129</td>\\n\",\n       \"      <td>0.720907</td>\\n\",\n       \"      <td>0.774279</td>\\n\",\n       \"      <td>0.282407</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>5</td>\\n\",\n       \"      <td>2.868700</td>\\n\",\n       \"      <td>0.046900</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1466</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>0.475164</td>\\n\",\n       \"      <td>0.811694</td>\\n\",\n       \"      <td>0.765939</td>\\n\",\n       \"      <td>0.168319</td>\\n\",\n       \"      <td>0.481163</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>3</td>\\n\",\n       \"      <td>2.702280</td>\\n\",\n       \"      <td>0.023925</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1638</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.282475</td>\\n\",\n       \"      <td>1.204147</td>\\n\",\n       \"      <td>1.282847</td>\\n\",\n       \"      <td>1.243330</td>\\n\",\n       \"      <td>0.447448</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-5</td>\\n\",\n       \"      <td>5.460246</td>\\n\",\n       \"      <td>1.102127</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1657</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.238476</td>\\n\",\n       \"      <td>1.338712</td>\\n\",\n       \"      <td>1.361004</td>\\n\",\n       \"      <td>1.282596</td>\\n\",\n       \"      <td>0.463052</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-5</td>\\n\",\n       \"      <td>5.683840</td>\\n\",\n       \"      <td>1.340151</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1101</th>\\n\",\n       \"      <td>0</td>\\n\",\n       \"      <td>1.334190</td>\\n\",\n       \"      <td>1.365896</td>\\n\",\n       \"      <td>1.315901</td>\\n\",\n       \"      <td>1.368480</td>\\n\",\n       \"      <td>0.487813</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-1</td>\\n\",\n       \"      <td>-5</td>\\n\",\n       \"      <td>5.872279</td>\\n\",\n       \"      <td>1.600847</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"      actuals   Facenet  Facenet512  VGG-Face   ArcFace      Dlib  \\\\\\n\",\n       \"744         1  0.555978    0.535129  0.720907  0.774279  0.282407   \\n\",\n       \"1466        0  0.475164    0.811694  0.765939  0.168319  0.481163   \\n\",\n       \"1638        0  1.282475    1.204147  1.282847  1.243330  0.447448   \\n\",\n       \"1657        0  1.238476    1.338712  1.361004  1.282596  0.463052   \\n\",\n       \"1101        0  1.334190    1.365896  1.315901  1.368480  0.487813   \\n\",\n       \"\\n\",\n       \"      Facenet_clf  Facenet512_clf  VGG-Face_clf  ArcFace_clf  Dlib_clf  \\\\\\n\",\n       \"744             1               1             1            1         1   \\n\",\n       \"1466            1               1             1            1        -1   \\n\",\n       \"1638           -1              -1            -1           -1        -1   \\n\",\n       \"1657           -1              -1            -1           -1        -1   \\n\",\n       \"1101           -1              -1            -1           -1        -1   \\n\",\n       \"\\n\",\n       \"      clf_sum  distance_sums  distance_multiplications  \\n\",\n       \"744         5       2.868700                  0.046900  \\n\",\n       \"1466        3       2.702280                  0.023925  \\n\",\n       \"1638       -5       5.460246                  1.102127  \\n\",\n       \"1657       -5       5.683840                  1.340151  \\n\",\n       \"1101       -5       5.872279                  1.600847  \"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dfs[\\\"train\\\"].sample(5)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"id\": \"2443014b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"categorical_features = [column for column in dfs[\\\"train\\\"].columns if column.endswith(\\\"_clf\\\")]\\n\",\n    \"feature_names = list(dfs[\\\"train\\\"].drop(columns=[\\\"actuals\\\"]).columns)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"42df4d7b\",\n   \"metadata\": {},\n   \"source\": [\n    \"# XGBoost\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"id\": \"36602d33\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# restore sets\\n\",\n    \"y_train = dfs[\\\"train\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_train = dfs[\\\"train\\\"].drop(columns=[\\\"actuals\\\"]).values\\n\",\n    \"\\n\",\n    \"y_test = dfs[\\\"test\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_test = dfs[\\\"test\\\"].drop(columns=[\\\"actuals\\\"]).values\\n\",\n    \"\\n\",\n    \"y_val = dfs[\\\"10_folds\\\"][\\\"actuals\\\"].values\\n\",\n    \"x_val = dfs[\\\"10_folds\\\"].drop(columns=[\\\"actuals\\\"]).values\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"id\": \"72f0096f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"params = {\\n\",\n    \"    'learning_rate': 0.01\\n\",\n    \"    , 'max_depth': 5\\n\",\n    \"    , 'max_leaves': pow(2, 5) - 1\\n\",\n    \"    , 'n_estimators': 10000\\n\",\n    \"    , 'seed': 17\\n\",\n    \"    , 'nthread':  2\\n\",\n    \"    , 'object':  'binary:logistic'\\n\",\n    \"}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"id\": \"dad49d75\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Training 0-th model\\n\",\n      \"Training 1-th model\\n\",\n      \"Training 2-th model\\n\",\n      \"Training 3-th model\\n\",\n      \"Training 4-th model\\n\",\n      \"Training 5-th model\\n\",\n      \"Training 6-th model\\n\",\n      \"Training 7-th model\\n\",\n      \"Training 8-th model\\n\",\n      \"Training 9-th model\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"models = []\\n\",\n    \"for k in range(0, 10):\\n\",\n    \"    print(f\\\"Training {k}-th model\\\")\\n\",\n    \"    \\n\",\n    \"    model = xgboost.XGBClassifier(**params)\\n\",\n    \"\\n\",\n    \"    valid_from = k * 600\\n\",\n    \"    valid_until = valid_from + 600\\n\",\n    \"\\n\",\n    \"    _ = model.fit(\\n\",\n    \"        x_train,\\n\",\n    \"        y_train,\\n\",\n    \"        eval_metric='logloss',\\n\",\n    \"        eval_set=[(x_val[valid_from:valid_until], y_val[valid_from:valid_until])],\\n\",\n    \"        early_stopping_rounds=500,\\n\",\n    \"        verbose=False,\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"    models.append(model)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"id\": \"79964c3a\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def analyze_results(x, y, label):\\n\",\n    \"    scores = []\\n\",\n    \"    for k in range(0, 10):\\n\",\n    \"        model = models[k]\\n\",\n    \"\\n\",\n    \"        if label == \\\"validation\\\":\\n\",\n    \"            x_org  = x.copy()\\n\",\n    \"            y_org = y.copy()\\n\",\n    \"\\n\",\n    \"            valid_from = k * 600\\n\",\n    \"            valid_until = valid_from + 600\\n\",\n    \"\\n\",\n    \"            x = x[valid_from:valid_until]\\n\",\n    \"            y = y[valid_from:valid_until]\\n\",\n    \"\\n\",\n    \"        predictions = model.predict(x)\\n\",\n    \"\\n\",\n    \"        classified = 0\\n\",\n    \"        for idx, prediction in enumerate(predictions):\\n\",\n    \"            actual = y[idx]\\n\",\n    \"            if actual == prediction:\\n\",\n    \"                classified += 1\\n\",\n    \"\\n\",\n    \"        score = 100 * (classified / len(predictions))\\n\",\n    \"        print(round(score, 2))\\n\",\n    \"        scores.append(score)\\n\",\n    \"\\n\",\n    \"        # restore\\n\",\n    \"        if label == \\\"validation\\\":\\n\",\n    \"            x = x_org.copy()\\n\",\n    \"            y = y_org.copy()\\n\",\n    \"\\n\",\n    \"    return scores\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"id\": \"c71ba25f\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"99.73\\n\",\n      \"99.68\\n\",\n      \"99.64\\n\",\n      \"99.68\\n\",\n      \"99.73\\n\",\n      \"99.73\\n\",\n      \"99.68\\n\",\n      \"99.68\\n\",\n      \"99.68\\n\",\n      \"99.86\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"train_results = analyze_results(x_train, y_train, \\\"train\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"id\": \"7600f5c1\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"99.71\"\n      ]\n     },\n     \"execution_count\": 26,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"round(sum(train_results)/10, 2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"id\": \"4b2d9dcb\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"97.33\\n\",\n      \"97.17\\n\",\n      \"96.33\\n\",\n      \"97.17\\n\",\n      \"98.83\\n\",\n      \"98.0\\n\",\n      \"97.83\\n\",\n      \"97.5\\n\",\n      \"98.0\\n\",\n      \"98.33\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"val_results = analyze_results(x_val, y_val, \\\"validation\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"id\": \"caa2d179\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"97.65\"\n      ]\n     },\n     \"execution_count\": 28,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"round(sum(val_results)/10, 2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 29,\n   \"id\": \"1fb56eee\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"98.9\\n\",\n      \"98.9\\n\",\n      \"99.0\\n\",\n      \"99.0\\n\",\n      \"98.9\\n\",\n      \"98.8\\n\",\n      \"99.0\\n\",\n      \"98.9\\n\",\n      \"98.9\\n\",\n      \"98.8\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"test_results = analyze_results(x_test, y_test, \\\"test\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"id\": \"cc0d8658\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"98.91\"\n      ]\n     },\n     \"execution_count\": 30,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"round(sum(test_results)/10, 2)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "boosted/models/boosted_lightface_7.txt",
    "content": "tree\nversion=v4\nnum_class=1\nnum_tree_per_iteration=1\nlabel_index=0\nmax_feature_idx=13\nobjective=binary sigmoid:1\nfeature_names=Facenet Facenet512 VGG-Face ArcFace Dlib Facenet_clf Facenet512_clf VGG-Face_clf ArcFace_clf Dlib_clf clf_sum clf_multiplication distance_sums distance_multiplications\nfeature_infos=[0.1114128796949834:1.6243800589293098] [0.30084998846460931:1.6544904908752631] [0.38527133186771251:1.408670836588948] [0.091631847708825306:1.5591140337251324] [0.14066080692387919:0.72448328455898536] -1:1:0 -1:1:0 -1:1:0 -1:0:1 -1:0:1 [0:5] [1:32] [1.5585367880592558:6.6295179669139355] [0.001076733775378194:3.3779772767673943]\ntree_sizes=1093 1287 1167 1387 1282 1391 1392 1392 1494 1284 1495 1289 1492 1288 1499 1389 1493 1291 1393 1498 1392 1497 1388 1395 1395 1500 1390 1503 1292 1286 1389 1287 1394 1283 1496 1396 1395 1287 1514 1288 1515 1388 1391 1516 1389 1391 1405 1412 1408 1518 1288 1509 1281 1411 1515 1289 1410 1508 1513 1285 1514 1409 1285 1514 1289 1514 1410 1406 1287 1510 1291 1511 1410 1292 1391 1409 1393 1409 1391 1282 1409 1393 1409 1388 1410 1293 1389 1407 1395 1388 1516 1391 1289 1408 1389 1385 1407 1397 1394 1391 1500 1390 1386 1618 1394 1396 1393 1496 1388 1391 1394 1395 1395 1391 1490 1393 1393 1394 1401 1398 1496 1391 1497 1397 1390 1498 1495 1388 1390 1493 1392 1609 1395 1605 1393 1605 1596 1604 1395 1810 1396 1611 1391 1915 1392 1605 1395 1926 1393 1922 1294 1615 1397 1821 1500 1713 1610 1714 1817 1391 1608 1394 1715 1613 1504 1711 1714 1503 1715 1505 1714 1708 1815 1504 1716 1917 2138 1933 2144 1813 1929 2142 1931 1925 2137 1820 1935 1922 2146 1930 1932 2032 1819 1927 1932 2035 1814 1925 1933 2033 1824 1930 1931 2037 1933 1821 1826 1819 2037 1823 1715 2144 1821 1718 1719 2140 1602 1720 2142 1603 1715 1601 1723 2146 1604 1602 1718 2139 1606 1721 2037 1606 1598 1716 1717 2031 1605 1606 1721 2040 1604 1720 2030 1610 1721 2028 1602 1721 2034 1603 1722 1826 1831 1832 1828 2132 1932 1827 1934 2138 1613 1828 1935 1933 1829 1920 2136 1610 1823 1931 1611 1717 2141 2043 2044 1825 2043 2048 2048 2045 2050 1723 2037 2047 2047 2047 2053 1730 2053 2043 2051 2052 2047 1832 2046 2057 2050 2050 2140 2049 2146 2142 2053 2141 2053 2146 2135 2054 2146 2046 2145 2143 2054 2149 2148 2058 1938 2053 2040 2047 2161 1935 2049 2162 2053 1932 2057 2162 1935 2050 2052 2158 2147 2045 2155 1927 2147 2028 2036 2155 1919 1739 1624 1623 1620 1625 1626 1621 1630 1624 1622 1623 1630 1626 1625 1624 1630 1624 1623 1629 1621 1628 1624 1626 1844 1850 1846 1851 1620 1845 1842 1850 1625 1846 1843 1846 1844 1849 1849 2053 1845 1845 1846 1851 1854 1845 1853 2052 1846 1849 1854 1846 2055 1849 1742 1740 1738 2054 1737 1737 1856 1841 1851 2043 1847 1848 2043 1739 1748 1740 1929 1738 1743 1633 1927 1625 1629 1527 1930 1636 1736 1737 1933 1627 1627 1629 1935 1636 1735 1741 1736 1937 1633 1521 1628 1925 1631 1628 1615 1742 1622 1518 1742 1639 1932 1637 1615 1839 1839 1934 1840 1627 1629 1927 1627 1632 1653 1619 1648 1624 1629 1646 1645 1953 1644 1643 1641 1936 1644 1625 1642 1931 1645 1754 1755 1938 1620 1644 1290 1650 1649 1646 1644 1629 1646 1536 1935 1536 1642 1536 1643 1295 1537 2036 1537 1648 1541 1648 1538 2043 1541 1644 1293 1533 1652 1539 2035 1526 1632 1524 1521 1631 1286 1962 1541 1542 1540 1649 1545 1538 1648 1544 1544 1654\n\nTree=0\nnum_leaves=10\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0\nsplit_gain=2000.81 46.3455 18.8623 7.35325 4.00549 1.87983 0.889265 0.784451 0.107079\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8\nright_child=2 -3 6 5 -6 -7 8 -9 -10\nleaf_value=0.0088000000000000005 -0.0046153846153846158 -0.010476190476190477 -0.016842105263157894 0.02 -0.014999999999999999 0.014999999999999999 -0.018888888888888889 0.016 -0.02\nleaf_weight=6.2499999999999991 9.7499999999999982 5.2499999999999991 9.4999999999999982 252.25 5.9999999999999991 7.9999999999999991 8.9999999999999982 4.9999999999999991 239\nleaf_count=25 39 21 38 1009 24 32 36 20 956\ninternal_value=0 0.0189521 -0.0191949 0.0195212 -0.00857143 0.0197738 -0.0198447 0.0199223 -0.0199597\ninternal_weight=0 276.75 273.25 271.5 15.75 265.25 257.5 257.25 248\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992\nis_linear=0\nshrinkage=0.01\n\n\nTree=1\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 12 0 1\nsplit_gain=1961.18 45.4285 18.4921 7.2091 3.92626 1.84317 0.871951 0.778549 0.104998 2.27374e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 4.6533632910829281 1.1305001193370379 1.3757701375557085\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0087121693286318653 -0.0045692550522918682 -0.010371713725596921 -0.016674871503819608 0.019802453930607679 -0.014850838285168482 0.014850838285168482 -0.018701672980023776 0.015817359331544868 -0.019801986678460028 -0.019801986678460028\nleaf_weight=6.2498789280652991 9.7499482780694944 5.2498560547828665 9.4993261694908124 252.22487881779671 5.9996623992919913 7.9995498657226554 8.9991974830627424 4.9995719194412223 134.23657277226448 104.73952326178551\nleaf_count=25 39 21 38 1009 24 32 36 20 537 419\ninternal_value=0 0.0187644 -0.0190047 0.0193278 -0.00848593 0.019578 -0.0196482 0.019725 -0.0197621 -0.019802\ninternal_weight=0 276.724 273.224 271.474 15.7496 265.224 257.475 257.224 247.975 238.976\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=2\nnum_leaves=10\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 12 0\nsplit_gain=1922.7 44.5398 18.1393 7.07196 3.84952 1.80865 0.855712 0.763881 0.103055\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 4.6533632910829281 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8\nright_child=2 -3 6 5 -6 -7 8 -9 -10\nleaf_value=0.0086255442410644294 -0.0045236340750364765 -0.010268834550588189 -0.016511603835845441 0.019610250797482971 -0.01470478962652888 0.01470478962652888 -0.018519568251086534 0.015662458614774725 -0.019609797470843723\nleaf_weight=6.2495209276676169 9.749794274568556 5.249429538846015 9.497332423925398 252.1503474265337 5.9986635446548453 7.998218059539794 8.9968215823173505 4.9985319375991812 238.90536707639694\nleaf_count=25 39 21 38 1009 24 32 36 20 956\ninternal_value=0 0.018582 -0.01882 0.01914 -0.00840169 0.0193879 -0.0194574 0.0195335 -0.0195702\ninternal_weight=0 276.646 273.148 271.397 15.7485 265.147 257.4 257.149 247.902\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992\nis_linear=0\nshrinkage=0.01\n\n\nTree=3\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 1 3 3 0 0\nsplit_gain=1885.31 43.6782 17.8027 6.94143 3.81749 3.69668 1.77616 0.840477 0.75892 0.10124 2.27374e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.364839830809575\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0085400959119074117 -0.017787328471455907 -0.0101675084709333 -0.016352150594584537 0.019424071472742811 -0.0015972618404373337 -0.005771447180996263 0.014561742063816739 -0.018342364514813147 0.015488345141560347 -0.019423185912296671 -0.019423185912296671\nleaf_weight=6.2489327043294898 5.2484058737754804 5.2487295269966117 9.4940584003925306 252.02818219363689 5.4990679025650016 4.9990913867950439 7.9960308074951163 8.9929200410842878 4.9965715408325186 133.88182401657104 104.90739941596985\nleaf_count=25 21 21 38 1009 22 20 32 36 20 536 420\ninternal_value=0 0.0184047 -0.0186403 0.0189575 -0.00831868 -0.0119256 0.0192032 -0.0192721 0.0193476 -0.019384 -0.0194232\ninternal_weight=0 276.518 273.023 271.27 15.7466 10.2475 265.021 257.276 257.025 247.782 238.789\ninternal_count=2200 1107 1093 1086 63 41 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=4\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 12 0 0\nsplit_gain=1848.98 42.8424 17.4821 6.81711 3.74803 1.74555 0.826183 0.745689 0.0995457 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 4.6533632910829281 1.1305001193370379 1.4890836106919547\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0084557984943274787 -0.0044105012249234564 -0.010067695635372192 -0.016196369674795329 0.019242784618277543 -0.014458465060102642 0.014421591539147407 -0.01816986432656445 0.015340602569756988 -0.01924192426848121 -0.01924192426848121\nleaf_weight=6.2481213361024848 9.748875826597212 5.2477635294198981 9.489542603492735 251.8593410551548 5.9953390359878531 7.9930143356323233 8.9875395298004133 4.9942514300346366 218.66008901596069 19.968957901000977\nleaf_count=25 39 21 38 1009 24 32 36 20 876 80\ninternal_value=0 0.0182323 -0.0184657 0.0187801 -0.00823673 0.0190237 -0.019092 0.0191669 -0.019203 -0.0192419\ninternal_weight=0 276.342 272.85 271.095 15.7442 264.847 257.106 256.854 247.617 238.629\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=5\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 1 3 3 0 0\nsplit_gain=1813.65 42.0314 17.1756 6.69864 3.73215 3.61135 1.71672 0.812771 0.741622 0.0979636 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.5033800733562284\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0083726239943373113 -0.017519889308453138 -0.0099693534618597954 -0.016044122361084719 0.019067052218420297 -0.0015100288910292381 -0.0056408259224277136 0.014284235796428839 -0.018001880314975158 0.015174193597082828 -0.019065791914708398 -0.019065791914708398\nleaf_weight=6.247093901038169 5.2448554337024671 5.2465403079986563 9.4838235378265363 251.64596565067768 5.4982345998287192 4.997927725315094 7.9891939163207999 8.9807251095771772 4.9908509254455558 224.45978969335556 13.966386914253233\nleaf_count=25 21 21 38 1009 22 20 32 36 20 900 56\ninternal_value=0 0.0180646 -0.0182957 0.0186076 -0.00815603 -0.0117235 0.0188492 -0.018917 0.0189913 -0.0190272 -0.0190658\ninternal_weight=0 276.12 272.632 270.873 15.741 10.2428 264.626 256.891 256.637 247.407 238.426\ninternal_count=2200 1107 1093 1086 63 41 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=6\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 1 3 3 0 0\nsplit_gain=1779.3 41.2441 16.8829 6.58569 3.66037 3.54414 1.68954 0.800185 0.72966 0.0964867 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.5239341756449745\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0082905476254636293 -0.01735507371768702 -0.0098724445811375142 -0.015895278595705636 0.018895807190905327 -0.0014949648571189204 -0.0055850342086189234 0.014149580974083642 -0.017838236972066525 0.015033099640654737 -0.018894583072240557 -0.018894583072240557\nleaf_weight=6.2458567321300498 5.2417328059673292 5.2450676858425131 9.4769380092620832 251.38852083683014 5.4981031417846671 4.9973786771297455 7.9845938682556143 8.9725213050842267 4.9873332381248465 230.20933395624161 7.9726176261901847\nleaf_count=25 21 21 38 1009 22 20 32 36 20 924 32\ninternal_value=0 0.0179015 -0.0181304 0.0184398 -0.00807644 -0.0116105 0.0186796 -0.0187469 0.0188207 -0.0188562 -0.0188946\ninternal_weight=0 275.851 272.369 270.606 15.7372 10.2391 264.36 256.631 256.376 247.154 238.182\ninternal_count=2200 1107 1093 1086 63 41 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=7\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 3 0 13 3 3 0 0\nsplit_gain=1745.89 40.4796 16.6026 6.47794 3.62688 1.67588 1.44903 0.788377 0.177359 0.0951087 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.4922867273937477\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0082095447454837139 -0.0042347722238588303 -0.0097769321377115023 -0.015749712294597241 0.016915392170689041 -0.014123911436508643 0.018764931327943987 0.012029935687104493 -0.017678763921624832 0.018735162558344169 -0.018728101129627996 -0.018728101129627996\nleaf_weight=6.2444165349006644 9.7455892860889417 5.2433531731367102 9.4689222574233991 5.4751349389553061 5.9869845807552329 5.7249276340007764 7.2273657023906708 8.9629710316658002 245.62385968863964 219.98067581653595 17.916978120803833\nleaf_count=25 39 21 38 22 24 23 29 36 987 884 72\ninternal_value=0 0.0177426 -0.0179694 0.0182765 -0.00799805 0.0185145 0.0150068 -0.0185814 0.0186955 -0.01869 -0.0187281\ninternal_weight=0 275.539 272.062 270.296 15.7326 264.051 12.9523 256.33 251.099 246.861 237.898\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=8\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 0\nsplit_gain=1713.36 39.7369 16.3353 6.3751 3.58092 3.46684 1.65035 1.42565 0.777299 0.174565 0.0938238 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.4922867273937477\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0081295908844538564 -0.017104852245209971 -0.0096827797145945232 -0.015607306412461693 0.016766563462794985 -0.0014110065994328807 -0.0054591577625002679 0.018602000520848622 0.011918068982462981 -0.017523302818643081 0.018573033184768536 -0.018566161656378741 -0.018566161656378741\nleaf_weight=6.2427792698144904 5.2349995225667936 5.2414042800664893 9.4598113894462568 5.4685306251049033 5.4970094859600058 4.995602935552597 5.7173576802015287 7.2222770601511002 8.9521166682243329 245.29193949699402 219.68189430236816 17.892642974853516\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 884 72\ninternal_value=0 0.017588 -0.0178126 0.0181175 -0.00792059 -0.0114183 0.0183539 0.0148714 -0.0184203 0.0185336 -0.0185283 -0.0185662\ninternal_weight=0 275.184 271.714 269.943 15.7276 10.2306 263.7 12.9396 255.986 250.76 246.527 237.575\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=9\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 0\nsplit_gain=1681.71 39.0151 16.0785 6.27691 3.53666 1.63672 0.76691 0.712376 0.0926265 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.534423313053304\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.008050664152638172 -0.0041288535614580528 -0.0095899519803080945 -0.015467946512569919 0.018411264055357632 -0.013898831317318935 0.013733498461240166 -0.017371699545130532 0.01458865959806579 -0.018408588220718791 -0.018408588220718791\nleaf_weight=6.2409512698650351 9.7426721751689893 5.239228516817092 9.4496410787105543 250.37129932641983 5.978966921567916 7.9646887481212607 8.9399995207786542 4.9719930440187445 231.25866788625717 5.955158829689025\nleaf_count=25 39 21 38 1009 24 32 36 20 932 24\ninternal_value=0 0.0174373 -0.0176599 0.0179627 -0.00784439 0.0181976 -0.0182636 0.0183368 -0.0183709 -0.0184086\ninternal_weight=0 274.788 271.325 269.549 15.7216 263.308 255.603 255.343 246.154 237.214\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=10\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 0\nsplit_gain=1650.88 38.3134 15.8338 6.18312 3.50457 3.39377 1.61733 1.39776 0.757169 0.172208 0.0915117 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.5128493085903074\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0079727412362567748 -0.016864574803151854 -0.0094984168171107341 -0.015331523886708075 0.016465901756037255 -0.0013293191796370691 -0.0053363680731589097 0.018294348380716589 0.011667681988734165 -0.017223810949953417 0.01826279053207442 -0.018255214237526511 -0.018255214237526511\nleaf_weight=6.238938868045806 5.2264317870140058 5.236833080649375 9.4384436011314374 5.4524271041154853 5.4957021176815024 4.9934184849262238 5.6997944116592389 7.2087490856647491 8.9266592860221845 244.51523205637932 224.9263396859169 11.890379190444945\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 908 48\ninternal_value=0 0.0172905 -0.017511 0.0178118 -0.00776898 -0.0112319 0.0180453 0.0145937 -0.018111 0.0182236 -0.0182177 -0.0182552\ninternal_weight=0 274.352 270.897 269.115 15.7156 10.2199 262.876 12.9085 255.182 249.968 245.743 236.817\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=11\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 0\nsplit_gain=1620.85 37.6309 15.598 6.09349 3.45057 1.60338 0.74804 0.700355 0.0904744 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.3930492496573113\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0078957997611106626 -0.0040255888142148311 -0.0094081421935828542 -0.015197936123337768 0.018109168961895884 -0.013681478325563625 0.013474038818618739 -0.017079500790043844 0.014314016157000925 -0.018105881265350038 -0.018105881265350038\nleaf_weight=6.2367480248212805 9.739097908139227 5.2342248558998099 9.4262523651123029 249.49930472671986 5.9692235291004172 7.9477061778306952 8.9121351242065412 4.9591471105813971 159.97980657219887 76.404575318098068\nleaf_count=25 39 21 38 1009 24 32 36 20 647 309\ninternal_value=0 0.0171475 -0.017366 0.0176649 -0.00769486 0.0178971 -0.0179624 0.0180352 -0.0180686 -0.0181059\ninternal_weight=0 273.877 270.431 268.643 15.7083 262.406 254.723 254.458 245.297 236.384\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=12\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 0\nsplit_gain=1591.6 36.9671 15.3737 6.0078 3.4311 3.32458 1.58812 1.37262 0.739487 0.170189 0.0895109 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.534423313053304\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0078198206341960948 -0.016633652087556287 -0.0093190950942196003 -0.015067085827740943 0.016179203737215809 -0.0012498311271383824 -0.0052165511868445822 0.018002565852120449 0.011425843930449724 -0.01693863408334036 0.017968651768601091 -0.017960437329839797 -0.017960437329839797\nleaf_weight=6.2343839555978766 5.2161273658275586 5.2314107269048682 9.4130996465682966 5.4334351271390906 5.494197189807891 4.990851491689682 5.6789240390062314 7.1929127275943756 8.8964661955833417 243.59374898672104 229.99532890319824 5.9226264953613272\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 932 24\ninternal_value=0 0.017008 -0.0172245 0.0175216 -0.00762141 -0.0110511 0.0177526 0.0143274 -0.0178176 0.0179296 -0.0179233 -0.0179604\ninternal_weight=0 273.365 269.929 268.133 15.7012 10.207 261.899 12.8718 254.228 249.027 244.814 235.918\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=13\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 0\nsplit_gain=1563.08 36.3211 15.1568 5.92584 3.36832 1.57386 0.731479 0.689839 0.0886167 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.4890836106919547\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0077447836360233363 -0.0039248859058846923 -0.0092312482134857786 -0.014938877567118971 0.017822586189390553 -0.013471413498745888 0.01322425041358552 -0.016801089615097579 0.014050312152094652 -0.017818740107517897 -0.017818740107517897\nleaf_weight=6.2318522483110419 9.7349076420068723 5.2283975780010215 9.3990160226821882 248.48395393788815 5.957850068807601 7.9278412312269202 8.8796889781951887 4.9442188888788214 215.71825343370438 19.700297117233276\nleaf_count=25 39 21 38 1009 24 32 36 20 876 80\ninternal_value=0 0.0168719 -0.0170865 0.0173819 -0.00754928 0.0176117 -0.0176764 0.017749 -0.0177818 -0.0178187\ninternal_weight=0 272.816 269.39 267.588 15.6928 261.356 253.697 253.428 244.298 235.419\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=14\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 0\nsplit_gain=1535.28 35.6922 14.9507 5.84742 3.36033 3.25899 1.56236 1.34995 0.723989 0.168478 0.0877883 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.4963909566261886\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0076706664899655963 -0.016411537840938947 -0.0091445710015668688 -0.01481321962318209 0.015905446343948911 -0.0011724752763405363 -0.0050995950457634843 0.017725511765560295 0.011191991241356367 -0.016666746941354473 0.017689446872212106 -0.017680654123346858 -0.017680654123346858\nleaf_weight=6.2291592359542838 5.2041807621717435 5.2251916676759711 9.3840332031249982 5.4117424488067618 5.4925102293491355 4.9879270792007446 5.6549563109874708 7.1749245822429657 8.8618399500846845 242.53671568632126 219.16258054971695 15.724669456481932\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 892 64\ninternal_value=0 0.0167392 -0.0169518 0.0172457 -0.0074777 -0.0108756 0.0174744 0.0140717 -0.0175389 0.0176505 -0.0176438 -0.0176807\ninternal_weight=0 272.233 268.818 267.007 15.6846 10.1921 260.778 12.8299 253.133 247.948 243.749 234.887\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=15\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 1 3 3 0 2\nsplit_gain=1508.18 35.0799 14.7508 5.77236 3.2991 3.2052 1.54777 0.716988 0.680687 0.0870221 1.13687e-13\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.2626160677949871\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0075974535262314782 -0.016272990828582492 -0.0090590355958430468 -0.014690028067693657 0.01755040217305804 -0.001160794996574114 -0.0050498122658702059 0.012983482322417472 -0.016535494387920509 0.013796778894327811 -0.017546049163933479 -0.017546049163933479\nleaf_weight=6.2263093888759604 5.1960441917180997 5.2217995673418036 9.3681800663471204 247.33446741104126 5.492300033569335 4.9867349863052368 7.9052834659814826 8.8429545164108259 4.927345633506774 23.28544482588768 211.03966310620308\nleaf_count=25 21 21 38 1009 22 20 32 36 20 95 861\ninternal_value=0 0.0166097 -0.0168204 0.0171128 -0.00740747 -0.0107767 0.0173405 -0.0174047 0.0174771 -0.0175093 -0.017546\ninternal_weight=0 271.615 268.211 266.393 15.6751 10.1828 260.167 252.536 252.262 243.168 234.325\ninternal_count=2200 1107 1093 1086 63 41 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=16\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 12 3 2 0 4 13 3 1 3 13\nsplit_gain=1481.74 34.4835 14.5927 5.70048 3.59092 1.53971 1.35183 1.32953 0.571127 1.08503 0.167049 0.00869275\nthreshold=4.8980530291692244 1.1058192561221138 5.1170890668050761 0.17408222448223767 1.2266574521666753 1.0188919694060079 0.36291089430411749 0.46553849925547169 1.2471304352583659 1.1954219695798878 0.52015392592939824 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 10 -4 -7 9 -8 -5 -10\nright_child=2 -3 6 5 -6 7 8 -9 11 -11 -12 -13\nleaf_value=0.0075251247593242131 -0.010593213454455212 -0.0089746158178601806 -0.012231842386853736 0.015643705307545625 0.00080123414973599331 0.017462148902929429 -0.01158383418577367 0.01096560751698737 -0.017833246123033171 -0.016990169755167706 0.017424118974852455 -0.017418352475016191\nleaf_weight=6.2233079224824897 6.2084634155035001 5.2182272225618354 5.40433046221733 5.3875271230936042 4.9877915382385254 5.6280910819768888 4.910199016332629 7.1549339145421982 5.1654959768056861 15.215898573398588 241.35294692218304 225.68042539060116\nleaf_count=25 25 21 22 22 20 23 20 29 21 62 987 923\ninternal_value=0 0.0164832 -0.0166922 0.0169831 -0.00551713 0.0172099 -0.0171802 0.0138259 -0.0172868 -0.0156712 0.0173852 -0.0174276\ninternal_weight=0 270.965 267.573 265.747 11.1963 259.523 256.376 12.783 250.972 20.1261 246.74 230.846\ninternal_count=2200 1107 1093 1086 45 1061 1048 52 1026 82 1009 944\nis_linear=0\nshrinkage=0.01\n\n\nTree=17\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 4\nsplit_gain=1455.94 33.9025 14.4036 5.63164 3.24236 1.52479 0.708753 0.672775 0.0869379 3.28231e-05\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0074536616590756355 -0.0037055878838271896 -0.0088912843616085254 -0.014442528518917799 0.017291608225979888 -0.013086966308815808 0.012751142422050436 -0.016275314900880009 0.013552716700878027 -0.017313451235904404 -0.017287239782257362\nleaf_weight=6.220160797238349 9.7230652868747693 5.2144808918237677 9.3327118307352048 246.05962955951691 5.9315293431282035 7.8802129924297324 8.8010890781879407 4.9086579531431189 4.8796004801988593 228.23778320848942\nleaf_count=25 39 21 38 1009 24 32 36 20 20 936\ninternal_value=0 0.0163598 -0.0165668 0.0168565 -0.00726019 0.0170825 -0.0171466 0.0172185 -0.017251 -0.0172878\ninternal_weight=0 270.283 266.906 265.069 15.6546 258.849 251.251 250.968 241.918 233.117\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=18\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 3 0 13 3 3 0 4\nsplit_gain=1430.76 33.3362 14.2284 5.56567 3.18684 1.51988 1.31113 0.702959 0.16588 0.0863051 3.11607e-05\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0073830477887817016 -0.0036691721386276095 -0.0088090173967155811 -0.014326405577367614 0.015393135845414527 -0.012974204393263074 0.017211536865331001 0.010746219691296372 -0.016152839327154243 0.017171707624714216 -0.017187919404453206 -0.017162345080963242\nleaf_weight=6.2168721109628668 9.7213773578405362 5.2105665206909171 9.3143661469221097 5.3609584271907798 5.9232920557260504 5.5985193103551847 7.1330813020467758 8.7792521715164167 240.05077700316906 4.866153195500373 227.60290017724037\nleaf_count=25 39 21 38 22 24 23 29 36 987 20 936\ninternal_value=0 0.0162392 -0.0164444 0.0167329 -0.00719219 0.0169581 0.0135892 -0.017022 0.0171329 -0.0171261 -0.0171629\ninternal_weight=0 269.571 266.207 264.36 15.6447 258.143 12.7316 250.563 245.412 241.248 232.469\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=19\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 4\nsplit_gain=1406.18 32.7841 14.0601 5.50245 3.17304 3.15975 1.50508 1.29595 0.697568 0.164246 0.0857246 2.95912e-05\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0073132670087915439 -0.015913668208957513 -0.0087277899565042644 -0.01421243257306689 0.015277593516445325 -0.00099920905468391281 -0.0047508353000161006 0.017088495332248377 0.010653605655392459 -0.016033043749722673 0.017049611335369239 -0.017065429793757109 -0.017040471866623903\nleaf_weight=6.213447079062461 5.1695313900709134 5.2064897418022147 9.2952651530504209 5.3475547432899466 5.4876801818609229 4.9770733714103699 5.5825216472148878 7.1231892853975296 8.7565142661333066 239.35560536384583 4.8521399199962607 226.94171015918255\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 20 936\ninternal_value=0 0.0161214 -0.0163248 0.0166122 -0.00712503 -0.0104381 0.0168366 0.0134809 -0.0169004 0.0170109 -0.0170043 -0.017041\ninternal_weight=0 268.829 265.48 263.622 15.6343 10.1466 257.409 12.7057 249.846 244.703 240.55 231.794\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=20\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 12 3 2 1 4 3 3 1 13\nsplit_gain=1382.19 32.2459 13.9246 5.44184 3.47942 1.49937 1.32467 0.665923 0.552698 1.07604 0.0100813\nthreshold=4.8980530291692244 1.1058192561221138 5.1170890668050761 0.17408222448223767 1.2266574521666753 1.0023056708553677 0.36291089430411749 1.1948510833126798 1.2471304352583659 1.1954219695798878 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 9 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 10 -11 -12\nleaf_value=0.0072443017171191452 -0.010289774746757914 -0.0086475788067262842 -0.011770518880392615 0.016926870486567391 0.00093707873387079892 0.012411443350131652 -0.011111721378871063 0.013194782515862398 -0.017373760928023715 -0.016519302487327123 -0.016924985006205744\nleaf_weight=6.2098905444145194 6.1886691302061063 5.2022561877965918 5.359262838959693 243.93226061761379 4.9834185391664505 7.8372985422611228 4.8685069978237179 4.8765955418348303 5.1204733550548545 15.07076872885227 223.13222362101078\nleaf_count=25 25 21 22 1009 20 32 20 20 21 62 923\ninternal_value=0 0.0160063 -0.0162079 0.0164943 -0.00528193 0.0167181 -0.0166894 0.0168537 -0.0167956 -0.015199 -0.0169351\ninternal_weight=0 268.058 264.723 262.856 11.1721 256.646 253.551 248.809 248.192 19.9393 228.253\ninternal_count=2200 1107 1093 1086 45 1061 1048 1029 1026 82 944\nis_linear=0\nshrinkage=0.01\n\n\nTree=21\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 4 0 13 0 3 3 0 4\nsplit_gain=1358.75 31.7209 13.7648 5.3837 3.10239 1.48921 1.28046 0.751917 0.691998 0.163477 0.0859004 0.000110759\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 0.42636365958866435 1.0188919694060079 0.46553849925547169 1.1305001193370379 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 7 9 -7 -2 -4 -5 -10 -12\nright_child=2 -3 8 5 -6 6 -8 -9 10 -11 11 -13\nleaf_value=0.0071761365598097442 -0.012634618474599225 -0.0085683606568543406 -0.013982881885485871 0.015042162702193341 -0.00045274258968229205 0.016855505869714765 0.010443641666396601 -0.0073193539121678012 -0.015794956063610838 0.016814972769716132 -0.016854211163786131 -0.016805793637089665\nleaf_weight=6.2062069773674002 5.4261358082294446 5.1978718042373648 9.2533555030822736 5.3178114891052237 4.9602164775133124 5.5492069572210294 7.098927304148674 5.22356216609478 8.7070987671613675 237.89051170647144 4.8257771730422965 225.54663477838039\nleaf_count=25 22 21 38 22 20 23 29 21 36 987 20 936\ninternal_value=0 0.0158938 -0.0160936 0.016379 -0.00698505 0.0166022 0.0132568 -0.0100275 -0.0166661 0.0167762 -0.01677 -0.0168068\ninternal_weight=0 267.261 263.943 262.063 15.6099 255.856 12.6481 10.6497 248.333 243.208 239.08 230.372\ninternal_count=2200 1107 1093 1086 63 1061 52 43 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=22\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 12 3 2 1 4 3 3 1 13\nsplit_gain=1335.86 31.2087 13.63 5.32794 3.42407 1.48283 1.31064 0.660552 0.546165 1.06434 0.0107656\nthreshold=4.8980530291692244 1.1058192561221138 5.1170890668050761 0.17408222448223767 1.2266574521666753 1.0023056708553677 0.36291089430411749 1.1948510833126798 1.2471304352583659 1.1954219695798878 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 9 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 10 -11 -12\nleaf_value=0.0071087568700500597 -0.010141196349297022 -0.0084901143791679522 -0.011557410806523874 0.016697708489290402 0.0010011038916378249 0.012198005659220759 -0.010902266455150317 0.012971930881938354 -0.017160404224393477 -0.016292863576766334 -0.016695490995145605\nleaf_weight=6.2024004757404319 6.1784661114215833 5.1933412849903098 5.3359698653221121 242.3798845410347 4.9818229973316193 7.8065873384475699 4.8472914546728161 4.8538280576467505 5.0952201485633841 14.988107040524481 221.70927146077156\nleaf_count=25 25 21 22 1009 20 32 20 20 21 62 923\ninternal_value=0 0.0157838 -0.0159817 0.0162664 -0.0051674 0.0164891 -0.0164607 0.0166246 -0.0165668 -0.0149755 -0.0167059\ninternal_weight=0 266.436 263.136 261.243 11.1603 255.04 251.976 247.234 246.64 19.8354 226.804\ninternal_count=2200 1107 1093 1086 45 1061 1048 1029 1026 82 944\nis_linear=0\nshrinkage=0.01\n\n\nTree=23\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 3 0 13 3 3 0 4\nsplit_gain=1313.49 30.7089 13.4977 5.27441 3.05717 1.47559 1.26656 0.687494 0.162918 0.0861673 0.000231623\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0070421476217069059 -0.003398665052775229 -0.0084128180450268077 -0.013761584291278644 0.014816113758440367 -0.012534837595062033 0.01663325830273259 0.010239666777364896 -0.015566942246070985 0.016591204031915018 -0.016652213695559789 -0.016581992252701069\nleaf_weight=6.1984762549400321 9.7032227963209134 5.1886702626943579 9.2084841132163984 5.2860990762710562 5.8833601772785178 5.5136238187551481 7.0731168240308762 8.6542383730411512 236.32626016438007 4.7978267669677725 224.05741658806801\nleaf_count=25 39 21 38 22 24 23 29 36 987 20 936\ninternal_value=0 0.0156762 -0.0158723 0.0161562 -0.00684723 0.0163785 0.0130404 -0.0164425 0.0165524 -0.0165464 -0.0165835\ninternal_weight=0 265.586 262.305 260.398 15.5866 254.199 12.5867 246.718 241.612 237.509 228.855\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=24\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 4 1 0 3 3 0 4\nsplit_gain=1291.63 30.2211 13.3585 5.22305 3.03698 1.46854 0.748698 0.68366 0.6561 0.0857566 0.000220361\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 0.42636365958866435 1.0023056708553677 1.1305001193370379 1.2103584781205146 1.1948510833126798 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 6 8 -2 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0069762937221570179 -0.012406775479003644 -0.0083364502987766913 -0.01365763742538215 0.016479067400945967 -0.00031801350401472125 0.011991267990841324 -0.0070957920975750644 -0.015459506364873418 0.012756520038594484 -0.016542359428488144 -0.016473749473888556\nleaf_weight=6.1944380402564994 5.4075405001640302 5.1838640570640555 9.1858959794044477 240.72968372702599 4.9534323364496222 7.7739269584417334 5.213369682431221 8.6273715049028379 4.8296548724174491 4.7814730256795874 223.27821610867977\nleaf_count=25 22 21 38 1009 20 32 21 36 20 20 936\ninternal_value=0 0.015571 -0.0157654 0.0160486 -0.00678413 0.0162704 -0.00979983 -0.0163343 0.0164059 -0.0164382 -0.0164752\ninternal_weight=0 264.712 261.447 259.528 15.5743 253.333 10.6209 245.873 245.559 236.687 228.06\ninternal_count=2200 1107 1093 1086 63 1061 43 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=25\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 4\nsplit_gain=1270.26 29.7448 13.2276 5.17372 3.01376 3.12892 1.46401 1.2541 0.680132 0.162555 0.0853878 0.000209715\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0069111814730683776 -0.015443598847914755 -0.008260993276483523 -0.013555457427727145 0.014598831769498789 -0.00075128731627198463 -0.0043014306538640083 0.016421067677862309 0.010041326905256314 -0.015354255311559919 0.016377609158082146 -0.016435025958862499 -0.016367975707556819\nleaf_weight=6.1902903020381919 5.1255787611007673 5.1789270490407935 9.1627035140991193 5.2525591701269141 5.4792560189962378 4.9584710299968719 5.4759331345558149 7.0458744764328003 8.5997842103242856 234.66988161206245 4.764657035470008 222.47787921130657\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 20 936\ninternal_value=0 0.0154681 -0.0156607 0.0159432 -0.00672109 -0.00996484 0.0161647 0.0128313 -0.0162285 0.0163387 -0.0163324 -0.0163694\ninternal_weight=0 263.813 260.568 258.635 15.5633 10.084 252.444 12.5218 245.005 239.922 235.842 227.243\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=26\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 12 3 2 1 4 3 3 1 13\nsplit_gain=1249.38 29.2798 13.1152 5.12637 3.33134 1.45629 1.29496 0.652493 0.534952 1.05961 0.01284\nthreshold=4.8980530291692244 1.1058192561221138 5.1170890668050761 0.17408222448223767 1.2266574521666753 1.0023056708553677 0.36291089430411749 1.1948510833126798 1.2471304352583659 1.1954219695798878 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 9 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 10 -11 -12\nleaf_value=0.0068467980129736407 -0.0098582819332123303 -0.0081864254223598318 -0.01113532192645194 0.01627027728083711 0.0011447490929762921 0.011790823822484324 -0.010472116046766787 0.012548072595597894 -0.016778123029031061 -0.015879624864869626 -0.016267657861578494\nleaf_weight=6.1860371381044379 6.1545516252517682 5.1738645583391181 5.2817882895469657 238.98870512843132 4.9767140001058578 7.7394594848155966 4.7975623160600689 4.8041793704032889 5.0411995500326148 14.810117691755293 218.60210698843002\nleaf_count=25 25 21 22 1009 20 32 20 20 21 62 923\ninternal_value=0 0.0153673 -0.0155583 0.0158402 -0.0049389 0.0160614 -0.0160339 0.0161969 -0.0161403 -0.0145565 -0.0162792\ninternal_weight=0 262.892 259.664 257.718 11.1313 251.532 248.533 243.793 243.251 19.6077 223.643\ninternal_count=2200 1107 1093 1086 45 1061 1048 1029 1026 82 944\nis_linear=0\nshrinkage=0.01\n\n\nTree=27\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 4 0 13 0 3 3 0 4\nsplit_gain=1228.95 28.8255 12.9936 5.08086 2.98092 1.45432 1.24296 0.73532 0.677666 0.162376 0.0858657 0.000349134\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 0.42636365958866435 1.0188919694060079 0.46553849925547169 1.1305001193370379 1.2103584781205146 0.52015392592939824 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 7 9 -7 -2 -4 -5 -10 -12\nright_child=2 -3 8 5 -6 6 -8 -9 10 -11 11 -13\nleaf_value=0.0067831289058954813 -0.012175027934985641 -0.0081127303533345945 -0.013348884461849174 0.014389745354983774 -0.00018094503960358052 0.016218307131226458 0.0098482944332294528 -0.0069038273842369317 -0.015144244934141739 0.016173548757371436 -0.016250700575242381 -0.016163904159509277\nleaf_weight=6.1816819012165061 5.3851976096630079 5.1686809659004203 9.1126460880041105 5.2173266261816016 4.9453216344118109 5.4362875223159772 7.0173102766275406 5.2035607248544693 8.5408397912979108 232.92809803783894 4.733694687485694 220.81995137035847\nleaf_count=25 22 21 38 22 20 23 29 21 36 987 20 936\ninternal_value=0 0.0152687 -0.015458 0.0157393 -0.00659094 0.0159603 0.012629 -0.00958464 -0.0160243 0.0161345 -0.0161285 -0.0161657\ninternal_weight=0 261.949 258.741 256.781 15.5341 250.599 12.4536 10.5888 243.207 238.145 234.094 225.554\ninternal_count=2200 1107 1093 1086 63 1061 52 43 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=28\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 4\nsplit_gain=1208.97 28.3817 12.8765 5.03717 2.95428 1.44592 0.674904 0.649669 0.0855867 0.000332577\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 0.36779881615355986\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0067201624134883668 -0.0031420402358791084 -0.008039888366192946 -0.013251803242648453 0.016070727722141118 -0.012147673424270783 0.011596298032597461 -0.015045252797668524 0.012346153306681618 -0.016149947669597202 -0.016065072623556172\nleaf_weight=6.1772294342517844 9.6824381798505765 5.1633812785148612 9.0877352803945524 237.16363669931889 5.8396723419427863 7.7033193111419669 8.5112129896879178 4.7774984985589972 4.7156843245029441 219.96094167232513\nleaf_count=25 39 21 38 1009 24 32 36 20 20 936\ninternal_value=0 0.0151722 -0.0153597 0.0156407 -0.00653011 0.0158614 -0.0159254 0.0159972 -0.0160296 -0.0160669\ninternal_weight=0 260.985 257.798 255.822 15.5221 249.644 242.276 241.941 233.188 224.677\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=29\nnum_leaves=11\nnum_cat=0\nsplit_feature=1 12 10 3 12 13 3 1 0 3\nsplit_gain=1189.59 25.6581 14.593 4.98372 2.30865 2.22234 0.902521 1.06941 0.137552 0.095234\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 4.6533632910829281 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.0253804391042192 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 8 -2 7 -7 -5 -8\nright_child=2 -3 -4 4 -6 6 9 -9 -10 -11\nleaf_value=0.0066578859481139906 -0.010234017013861148 -0.0065622386226324948 -0.00030984139718995724 0.015977419217297964 0.010756077471672188 -0.010273527855254696 -0.014943786317214085 -0.016483680072728164 0.014399381244907897 -0.015984527787676745\nleaf_weight=6.1726827174425116 7.3659508973360053 5.3660262972116461 6.3627084642648688 233.90985305607319 8.9099257588386518 6.2244560867547971 9.1537593752145749 5.0007205009460449 5.6573036164045325 222.7101958990097\nleaf_count=25 30 22 26 999 37 26 39 21 24 951\ninternal_value=0 0.0150778 -0.0152655 0.0155338 0.0157543 -0.0156454 -0.0158094 -0.0130401 0.0159402 -0.0159434\ninternal_weight=0 260.016 256.818 254.65 248.477 250.455 243.089 11.2252 239.567 231.864\ninternal_count=2200 1107 1093 1085 1060 1067 1037 47 1023 990\nis_linear=0\nshrinkage=0.01\n\n\nTree=30\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 12 10 3 13 13 4 3 1 3 1\nsplit_gain=1170.44 25.2761 14.4163 4.94311 2.30366 2.21743 1.90698 0.899824 1.058 0.0946487 0.00263552\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 0.46553849925547169 0.78123321994831596 0.40921209589540597 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.9791112189391441\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 -2 -6 8 -7 -9 -5\nright_child=2 -3 -4 4 6 7 -8 9 -10 -11 -12\nleaf_value=0.0065962870222862858 -0.010142085445647556 -0.0065023699642583199 -0.00030674909141308889 0.015877938886229077 0.006537208181894039 -0.010192048906686528 0.014536613098847928 -0.01485015901577804 -0.016378005595896836 -0.015889649663651077 0.016092387452787349\nleaf_weight=6.1680462211370459 7.3584290444850913 5.3613017350435248 6.3625849038362494 228.9503103941679 4.7994125634431821 6.2115392088890058 7.8615769296884537 9.1195288151502591 4.9827461838722229 221.80415213108063 5.8780019432306281\nleaf_count=25 30 22 26 982 20 26 33 39 21 951 25\ninternal_value=0 0.0149848 -0.0151709 0.0154389 0.0156593 -0.01555 0.0115043 -0.0157144 -0.0129455 -0.0158486 0.0158833\ninternal_weight=0 259.019 255.839 253.657 247.489 249.476 12.661 242.118 11.1943 230.924 234.828\ninternal_count=2200 1107 1093 1085 1060 1067 53 1037 47 990 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=31\nnum_leaves=11\nnum_cat=0\nsplit_feature=1 12 10 3 12 13 3 1 0 3\nsplit_gain=1151.7 24.9028 14.2442 4.90402 2.29652 2.21306 0.897402 1.04707 0.136697 0.0941102\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 4.6533632910829281 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.0253804391042192 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 8 -2 7 -7 -5 -8\nright_child=2 -3 -4 4 -6 6 9 -9 -10 -11\nleaf_value=0.0065353540681057191 -0.010051390609972406 -0.006443128021058446 -0.00030368735686661446 0.015790182520000105 0.010572850881120133 -0.010111553313654167 -0.014758304364311008 -0.016274714753239709 0.014211413533048951 -0.015796825488742991\nleaf_weight=6.1633225530385962 7.3506158441305152 5.3565148413181296 6.3624621033668509 231.98789843916893 8.8785536587238294 6.1984437853097898 9.0846998095512372 4.9643188118934631 5.6170860826969138 220.88105882704258\nleaf_count=25 30 22 26 999 37 26 39 21 24 951\ninternal_value=0 0.0148936 -0.0150783 0.015346 0.0155663 -0.0154566 -0.0156214 -0.0128524 0.0157529 -0.0157558\ninternal_weight=0 258.003 254.842 252.647 246.484 248.479 241.129 11.1628 237.605 229.966\ninternal_count=2200 1107 1093 1085 1060 1067 1037 47 1023 990\nis_linear=0\nshrinkage=0.01\n\n\nTree=32\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 12 10 3 13 13 4 3 1 3 1\nsplit_gain=1133.35 24.5381 14.0767 4.86647 2.29308 2.2092 1.88289 0.895243 1.03662 0.0936161 0.00247961\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 0.46553849925547169 0.78123321994831596 0.40921209589540597 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.9791112189391441\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 -2 -6 8 -7 -9 -5\nright_child=2 -3 -4 4 6 7 -8 9 -10 -11 -12\nleaf_value=0.0064750753297872854 -0.0099619011765331618 -0.0063845022664074224 -0.00030065617740544575 0.015694862597534182 0.0063781095811754097 -0.010032016604326675 0.014343346950358668 -0.014668169955524217 -0.016173731093009056 -0.015705992966348784 0.015903694693643534\nleaf_weight=6.1585161834955207 7.3425216525793067 5.3516683727502814 6.3623404651880255 227.02435439825058 4.782684847712515 6.1851776540279371 7.8205690532922745 9.0492968708276731 4.9454557746648788 219.94159695506096 5.8318297415971747\nleaf_count=25 30 22 26 982 20 26 33 39 21 951 25\ninternal_value=0 0.0148043 -0.0149875 0.0152549 0.0154752 -0.0153651 0.0113207 -0.0155304 -0.0127608 -0.015665 0.0157001\ninternal_weight=0 256.97 253.826 251.618 245.459 247.464 12.6033 240.122 11.1306 228.991 232.856\ninternal_count=2200 1107 1093 1085 1060 1067 53 1037 47 990 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=33\nnum_leaves=11\nnum_cat=0\nsplit_feature=1 12 10 3 12 13 3 1 0 3\nsplit_gain=1115.39 24.1815 13.9136 4.83032 2.2868 2.20583 0.893339 1.0266 0.136033 0.0931656\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 4.6533632910829281 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.0253804391042192 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 8 -2 7 -7 -5 -8\nright_child=2 -3 -4 4 -6 6 9 -9 -10 -11\nleaf_value=0.0064154400226412471 -0.0098735873514293818 -0.0063264828996802804 -0.00029765557317494975 0.015610890517322829 0.010394420561254822 -0.0099534152429504533 -0.014579702605608487 -0.016074984349491239 0.014030070286307525 -0.015617095603055924\nleaf_weight=6.153630092740058 7.3341563791036597 5.3467651903629294 6.3622196316719046 229.99747833609581 8.845783203840254 6.1717486530542356 9.0133442580699903 4.9261732697486877 5.5754916518926612 218.98643279075623\nleaf_count=25 30 22 26 999 37 26 39 21 24 951\ninternal_value=0 0.0147167 -0.0148986 0.0151657 0.015386 -0.0152755 -0.0154412 -0.0126707 0.0155735 -0.0155761\ninternal_weight=0 255.919 252.794 250.572 244.419 246.432 239.098 11.0979 235.573 228\ninternal_count=2200 1107 1093 1085 1060 1067 1037 47 1023 990\nis_linear=0\nshrinkage=0.01\n\n\nTree=34\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 0 13 3 3 0 3\nsplit_gain=1097.84 26.4455 12.279 4.8124 2.97928 3.0768 1.39319 1.18926 0.661635 0.164185 0.0879762 0.000453844\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0.46553849925547169 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.2433743438056273\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0063564376908034582 -0.014896709203867646 -0.0078107250782194137 -0.012705422114564033 0.013710103716618703 -0.00022720662431414357 -0.0037924081674566537 0.015592473305927454 0.0092944964039633048 -0.014470855755102657 0.015527981900798644 -0.015593672150112019 -0.01551609765037072\nleaf_weight=6.1486676335334769 5.0571343898773176 5.144815891981124 8.9285316169261915 5.0798093974590293 5.4544805437326422 4.9256474375724792 5.2892335653305036 6.9222977757453918 8.3139996379613859 226.26210869848728 7.8209017366170874 211.24948072433472\nleaf_count=25 21 21 38 22 22 20 23 29 36 987 34 922\ninternal_value=0 0.0146313 -0.0148112 0.0150937 -0.0061704 -0.00941769 0.0153143 0.0120224 -0.0153757 0.0154881 -0.0154805 -0.0155189\ninternal_weight=0 254.847 251.75 249.702 15.4373 9.98278 243.553 12.2115 236.313 231.342 227.384 219.07\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=35\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 12 10 3 13 13 4 3 1 3 1\nsplit_gain=1080.77 23.4819 13.6425 4.76338 2.26027 2.17284 1.86252 0.888735 1.02078 0.0934937 0.00224876\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 0.46553849925547169 0.78123321994831596 0.40921209589540597 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.9791112189391441\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 -2 -6 8 -7 -9 -5\nright_child=2 -3 -4 4 6 7 -8 9 -10 -11 -12\nleaf_value=0.0062980567603544745 -0.009735623310680501 -0.0062123136337797445 -0.00026086816355169246 0.015434658336723493 0.0061470120832667107 -0.0097827144396276794 0.01409627744476185 -0.014402069284981028 -0.015906242319845543 -0.01544570170546725 0.015634784276224199\nleaf_weight=6.1436321586370459 7.3152220100164405 5.3337956070899954 6.3536629229784003 224.01743078231812 4.7547466903924924 6.1403817832469922 7.7543435394763947 8.9374318122863752 4.8903152942657471 217.03767235577106 5.7591841816902152\nleaf_count=25 30 22 26 982 20 26 33 39 21 951 25\ninternal_value=0 0.0145481 -0.0147272 0.0149938 0.0152143 -0.0151035 0.0110747 -0.0152691 -0.0124975 -0.0154044 0.0154397\ninternal_weight=0 253.763 250.675 248.429 242.286 244.321 12.5091 237.006 11.0307 225.975 229.777\ninternal_count=2200 1107 1093 1085 1060 1067 53 1037 47 990 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=36\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 12 10 3 13 13 4 3 1 3 1\nsplit_gain=1063.91 23.1486 13.4909 4.73116 2.25586 2.17118 1.83813 0.887587 1.0117 0.0931367 0.00214769\nthreshold=1.0652111417665497 4.9554982271603158 2.5000000000000004 0.17408222448223767 0.46553849925547169 0.78123321994831596 0.40921209589540597 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.9791112189391441\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 -2 -6 8 -7 -9 -5\nright_child=2 -3 -4 4 6 7 -8 9 -10 -11 -12\nleaf_value=0.0062402881129497538 -0.009650250714726397 -0.0061560541936616789 -0.00025826379322888281 0.01535142185427537 0.0060933746793718083 -0.0097069758348619258 0.013998144132081921 -0.014318417693110047 -0.015813347979404053 -0.015362255931970641 0.015547432298029787\nleaf_weight=6.1385266482830039 7.3061831444501868 5.3287406414747229 6.3535550236701956 222.98492367565632 4.7486652135848981 6.1264789104461652 7.7307362705469131 8.8999378532171232 4.8699546009302139 216.03943119943142 5.7337537407875052\nleaf_count=25 30 22 26 982 20 26 33 39 21 951 25\ninternal_value=0 0.0144655 -0.0146433 0.0149098 0.0151304 -0.0150191 0.0109902 -0.0151853 -0.0124113 -0.015321 0.0153563\ninternal_weight=0 252.665 249.596 247.337 241.198 243.242 12.4794 235.936 10.9964 224.939 228.719\ninternal_count=2200 1107 1093 1085 1060 1067 53 1037 47 990 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=37\nnum_leaves=11\nnum_cat=0\nsplit_feature=10 1 1 3 12 13 3 1 0 3\nsplit_gain=1047.42 15.9856 15.5938 4.71314 2.32845 2.16992 0.886656 1.00299 0.13556 0.0928172\nthreshold=2.5000000000000004 1.0797383065324315 1.0652111417665497 0.17408222448223767 4.6533632910829281 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.0253804391042192 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=2 3 -1 -2 8 -4 7 -7 -5 -8\nright_child=1 -3 5 4 -6 6 9 -9 -10 -11\nleaf_value=-0.0002363489716209451 0.0061831216859327296 -0.001864088614129053 -0.0095659530108374562 0.015275370527379546 0.0095250479416746671 -0.0096320837059176052 -0.014236245700153952 -0.015722444113188312 0.013684677623644243 -0.01528052954203651\nleaf_weight=7.4379543811082831 6.1333540827035895 5.8674806505441657 7.2969080805778495 225.61741073429585 7.3625218719243994 6.1124436110258085 8.8619858622550947 4.8492341935634613 5.4877837300300589 215.02802237868309\nleaf_count=31 25 24 30 998 31 26 39 21 24 951\ninternal_value=0 0.0144473 -0.0144983 0.0148386 0.0150612 -0.0149364 -0.0151032 -0.0123263 0.0152376 -0.0152392\ninternal_weight=0 250.469 249.587 244.601 238.468 242.149 234.852 10.9617 231.105 223.89\ninternal_count=2200 1102 1098 1078 1053 1067 1037 47 1022 990\nis_linear=0\nshrinkage=0.01\n\n\nTree=38\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 1 13 3 2 0 0 5 3 3 0 3\nsplit_gain=1031.34 25.2303 11.8984 4.68995 2.95608 3.03048 1.35694 1.17156 0.65701 0.164946 0.0894737 0.000620274\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0061265469838921996 -0.014668971422214941 -0.0076435336043052318 -0.012367825273811126 0.013362700555130565 -3.8217742617635405e-05 -0.0036213396009749646 0.008084184821938397 0.014389980841105246 -0.014124463680729072 0.015200183593098273 -0.015272641140590567 -0.015186983987875019\nleaf_weight=6.1281181871891013 5.0227088481187803 5.1296839118003836 8.8138324469327909 4.9951976537704459 5.4422395378351203 4.9104685336351395 5.1122385710477829 6.9544137865304929 8.172488257288931 222.11408530175686 8.8152518421411497 206.22259375452995\nleaf_count=25 21 21 38 22 22 20 22 30 36 987 39 917\ninternal_value=0 0.0143058 -0.0144812 0.0147648 -0.00596201 -0.00920757 0.0149861 0.0117184 -0.0150457 0.0151598 -0.0151515 -0.0151905\ninternal_weight=0 250.434 247.4 245.304 15.3754 9.93318 239.176 12.0667 232.024 227.109 223.21 215.038\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=39\nnum_leaves=11\nnum_cat=0\nsplit_feature=10 1 1 3 12 13 3 1 0 3\nsplit_gain=1015.62 15.5537 15.231 4.65594 2.30009 2.14267 0.884053 0.998915 0.133428 0.0933491\nthreshold=2.5000000000000004 1.0797383065324315 1.0652111417665497 0.17408222448223767 4.6533632910829281 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.0253804391042192 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=2 3 -1 -2 8 -4 7 -7 -5 -8\nright_child=1 -3 5 4 -6 6 9 -9 -10 -11\nleaf_value=-0.0002326893331903008 0.0060705549335740598 -0.0018092385896275329 -0.0094338717789449172 0.015117352292925471 0.009389476835357121 -0.0094688361811075955 -0.014070794535024281 -0.015567460136760967 0.013533203685556066 -0.015122830155798133\nleaf_weight=7.4224927276372901 6.1228211969137183 5.8588287681341162 7.2764604687690726 223.45805138349533 7.3313418477773658 6.0797248780727369 8.7821001261472684 4.811044842004776 5.4464668333530417 212.97462657094002\nleaf_count=31 25 24 30 998 31 26 39 21 24 951\ninternal_value=0 0.0142907 -0.014341 0.0146799 0.0149031 -0.0147774 -0.0149446 -0.0121629 0.0150797 -0.0150812\ninternal_weight=0 248.218 247.346 242.359 236.236 239.924 232.647 10.8908 228.905 221.757\ninternal_count=2200 1102 1098 1078 1053 1067 1037 47 1022 990\nis_linear=0\nshrinkage=0.01\n\n\nTree=40\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 1 13 3 2 0 0 5 3 3 0 3\nsplit_gain=1000.11 24.5961 11.7104 4.63516 2.90537 2.99369 1.34383 1.1641 0.656032 0.164973 0.0899129 0.000655665\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0060151370816994947 -0.014535064565878011 -0.0075382209925100151 -0.012205552542156139 0.013200338414150184 4.8489835095299537e-06 -0.0035398025133881262 0.0079390791268492307 0.014243082838830358 -0.01396261287012604 0.015045921664736861 -0.015120885753288823 -0.015032409929530933\nleaf_weight=6.1174660921096793 5.0019654929637891 5.1199500858783713 8.7544050514698011 4.9523858278989783 5.4388040453195563 4.9040276855230331 5.0859008431434631 6.9078871458768827 8.1001110821962339 219.9623247385025 8.7341573238372785 204.21204897761345\nleaf_count=25 21 21 38 22 22 20 22 30 36 987 39 917\ninternal_value=0 0.0141525 -0.0143256 0.0146094 -0.00586758 -0.00909179 0.0148314 0.0115699 -0.0148904 0.0150053 -0.0149967 -0.015036\ninternal_weight=0 248.146 245.146 243.026 15.3448 9.90599 236.908 11.9938 229.801 224.915 221.046 212.946\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=41\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 0 3 13 4 13 3 0 1\nsplit_gain=985.071 15.141 14.9042 5.45997 4.60297 2.28126 2.24089 1.21505 0.622254 0.0724431 0.00365673\nthreshold=2.5000000000000004 1.0797383065324315 1.0880563133346253 1.1135288793191862 0.17408222448223767 0.46553849925547169 0.4118824176054639 0.78123321994831596 1.2103584781205146 1.1305001193370379 0.98578357518082749\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 10 -7 -4 -9 -10 -6\nright_child=1 -3 7 -5 5 6 -8 8 9 -11 -12\nleaf_value=0.0053669574370391205 0.0059602829415018356 -0.0017554801126575415 -0.010191728272840647 -0.009123900355666419 0.014961264178394756 0.005313684295874214 0.01449585056888127 -0.012242699401015784 -0.014027726012243958 -0.014967206790854766 0.015248941007833076\nleaf_weight=4.774906322360037 6.112055853009223 5.8500436693429938 5.8026264607906333 5.7089991122484207 218.75746859610081 4.9562410861253721 5.7313431650400162 8.9632249325513822 8.5394493788480741 211.26758454740047 4.5096678733825675\nleaf_count=20 25 24 24 24 987 21 25 39 38 953 20\ninternal_value=0 0.0141399 -0.0141894 -0.00252402 0.0145272 0.014751 0.0102377 -0.0147108 -0.0148254 -0.0149307 0.0149671\ninternal_weight=0 245.917 245.057 10.4839 240.067 233.955 10.6876 234.573 228.77 219.807 223.267\ninternal_count=2200 1102 1098 44 1078 1053 46 1054 1030 991 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=42\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 0 3 13 4 13 3 0 1\nsplit_gain=970.108 14.9662 14.7629 5.35739 4.57725 2.27925 2.21486 1.21774 0.622701 0.072699 0.00349716\nthreshold=2.5000000000000004 1.0797383065324315 1.0880563133346253 1.1135288793191862 0.17408222448223767 0.46553849925547169 0.4118824176054639 0.78123321994831596 1.2103584781205146 1.1305001193370379 0.98578357518082749\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 10 -7 -4 -9 -10 -6\nright_child=1 -3 7 -5 5 6 -8 8 9 -11 -12\nleaf_value=0.0053144391312628901 0.0059059858063509364 -0.0017381775470146263 -0.010107947092820231 -0.0090449129526898198 0.014887591539262312 0.0052654981822712289 0.01440431444544866 -0.012162999183878271 -0.013950171680306158 -0.014893433943248949 0.015169599774369802\nleaf_weight=4.7738769799470884 6.1065930873155585 5.8491991609334937 5.7922670245170584 5.7013048082590103 217.64717996120453 4.9516044557094556 5.7101930230855942 8.9318954497575742 8.5012457221746427 210.19630464911461 4.488030567765235\nleaf_count=20 25 24 24 24 987 21 25 39 38 953 20\ninternal_value=0 0.0140654 -0.0141147 -0.00250089 0.0144523 0.0146765 0.01016 -0.0146359 -0.0147511 -0.0148568 0.0148933\ninternal_weight=0 244.753 243.897 10.4752 238.904 232.797 10.6618 233.422 227.629 218.698 222.135\ninternal_count=2200 1102 1098 44 1078 1053 46 1054 1030 991 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=43\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 1 13 3 2 0 0 5 3 3 0 1\nsplit_gain=955.516 23.7152 11.4448 4.56058 2.83054 2.99299 1.32397 1.15889 0.657291 0.165668 0.0900349 0.000620912\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0058522352576830736 -0.014383780431101984 -0.0073934987791218973 -0.011966852768458396 0.012963699699720218 6.4188107934300904e-05 -0.0033675205056462811 0.0077223040426921694 0.014040857819146775 -0.013733891182685413 0.014825808490015231 -0.014924576380542485 -0.014812679336741708\nleaf_weight=6.1010804027318946 4.9759978204965574 5.1055364757776251 8.6625890880823118 4.8855577409267417 5.4335799217224112 4.8897504061460495 5.0443655848503113 6.8370060026645643 7.9909458458423606 216.65235105156898 5.0821407139301291 204.64324186742306\nleaf_count=25 21 21 38 22 22 20 22 30 36 987 23 933\ninternal_value=0 0.0139327 -0.0141025 0.0143872 -0.0057317 -0.0089238 0.0146103 0.0113582 -0.0146682 0.0147847 -0.0147757 -0.0148154\ninternal_weight=0 244.626 241.678 239.52 15.2993 9.86575 233.419 11.8814 226.379 221.538 217.716 209.725\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=44\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 13 4 13 3 0 3 1\nsplit_gain=941.324 14.5798 14.4687 4.53008 2.26136 2.18427 2.08343 0.882458 1.00544 0.0959709 0.00335549\nthreshold=2.5000000000000004 1.0797383065324315 1.0652111417665497 0.17408222448223767 0.46553849925547169 0.4118824176054639 0.78123321994831596 1.2190084357665867 1.2748487141050349 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 3 -1 -2 10 -6 -4 8 -8 -9 -5\nright_child=1 -3 6 4 5 -7 7 9 -10 -11 -12\nleaf_value=-0.0001858760080851368 0.0057990239289880379 -0.0016858819207618346 -0.0091178508893491588 0.014744997582540546 0.0051573341317805955 0.014257820631513081 -0.0090462737060864884 -0.013676072788115239 -0.015217753278690592 -0.014755792935285313 0.015022541455312401\nleaf_weight=7.3807658553123465 6.09552077949047 5.8403158634901038 7.220558136701583 215.40339580178261 4.9341124892234784 5.6660662591457367 5.9777121692895872 8.5720487087964994 4.7276327162981033 207.65823550522327 4.4459609538316718\nleaf_count=31 25 24 30 987 21 25 26 39 21 951 20\ninternal_value=0 0.0139227 -0.0139715 0.014308 0.0145331 0.0100218 -0.014406 -0.0145742 -0.0117717 -0.014713 0.0147506\ninternal_weight=0 242.385 241.537 236.545 230.45 10.6002 234.156 226.936 10.7053 216.23 219.849\ninternal_count=2200 1102 1098 1078 1053 46 1067 1037 47 990 1007\nis_linear=0\nshrinkage=0.01\n\n\nTree=45\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 1 3 3 0 1\nsplit_gain=927.22 23.1408 11.2814 4.51534 2.78067 2.95706 1.31493 0.658487 0.635199 0.0906864 0.000702847\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0057463441430227781 -0.014257226201427472 -0.0072929620148901707 -0.011813738730814868 0.01468336308558725 0.00010134458324610956 -0.0032911636477377603 0.010316552067102261 -0.013584962685493083 0.010895594757193514 -0.014792299681651286 -0.0146726744505963\nleaf_weight=6.089916080236434 4.9537262469530088 5.0953040570020667 8.600084260106085 219.1437573581934 5.4299528300762168 4.8827880322933197 7.3795312345027915 7.9150910675525656 4.5186297148466101 5.0335984379053107 202.49963170289993\nleaf_count=25 21 21 38 1009 22 20 32 36 20 23 933\ninternal_value=0 0.0137927 -0.0139604 0.0142458 -0.00564283 -0.00881374 0.0144698 -0.0145272 0.0146068 -0.0146355 -0.0146756\ninternal_weight=0 242.227 239.315 237.132 15.2665 9.83651 231.042 224.048 223.662 215.448 207.533\ninternal_count=2200 1107 1093 1086 63 41 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=46\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 13 3 0 1\nsplit_gain=913.601 14.2049 14.1824 5.15311 4.48625 2.24599 2.65507 1.20223 0.625639 0.073732 0.00342422\nthreshold=2.5000000000000004 1.0797383065324315 1.0880563133346253 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2103584781205146 1.1305001193370379 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=2 4 3 -1 -2 10 -7 -4 -9 -10 -6\nright_child=1 -3 7 -5 5 6 -8 8 9 -11 -12\nleaf_value=0.0052583936816318726 0.005694187683512493 -0.0016313770274506128 -0.0098390504732192349 -0.0088641180910842814 0.01460761181002777 0.014192786594863902 0.00403540760178955 -0.01185628041560698 -0.013654752196202885 -0.014613601476270595 0.014889277504590641\nleaf_weight=4.7520982325077039 6.0842689126729956 5.8317565023899069 5.7534455209970465 5.6623337417840958 213.11901924014091 6.069320395588873 4.4678062200546265 8.8042842745780927 8.3447851836681348 205.82767124474049 4.405340462923049\nleaf_count=20 25 24 24 24 987 27 19 39 38 953 20\ninternal_value=0 0.0137848 -0.0138327 -0.00242003 0.0141688 0.0143949 0.009886 -0.0143524 -0.0144688 -0.0145762 0.0146133\ninternal_weight=0 239.978 239.145 10.4144 234.146 228.061 10.5371 228.73 222.977 214.172 217.524\ninternal_count=2200 1102 1098 44 1078 1053 46 1054 1030 991 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=47\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=900.016 14.0624 14.0498 4.46494 2.24535 2.62499 2.06091 0.883983 1.01218 0.0973105 0.00327828\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=-0.00015756483126058344 0.0056425461679088223 -0.0089273705811329235 -0.0016152972598001396 0.014540796927048861 0.014108388142811425 0.0039979107003320878 -0.0088078110146168048 -0.013456501306116385 -0.015035811731427935 -0.014552038691889781 0.014817108542133946\nleaf_weight=7.3604466915130606 6.0785822570323935 7.1857379972934714 5.8309146165847769 211.96311961114407 6.0446950644254667 4.4646290987730026 5.9301008731126768 8.442809194326399 4.6602720022201538 204.35702927410603 4.3826431185007086\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0137643 0.0137167 0.0141005 0.0143271 0.0098132 -0.0141987 -0.0143682 -0.0115484 -0.0145086 0.0145464\ninternal_weight=0 237.936 238.765 232.934 226.855 10.5093 230.576 223.39 10.5904 212.8 216.346\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=48\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 1\nsplit_gain=886.775 22.3496 11.0518 4.45403 2.75779 1.30398 1.15552 0.66097 0.168757 0.0915804 0.00086741\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0055914121855857634 -0.0022359453287878438 -0.0071575281377184554 -0.011591927980330461 0.012584915127077424 -0.011042621733656097 0.0073596644823563581 0.013721037515346726 -0.013371651671739206 0.014487335974569568 -0.014606336822153152 -0.014472469156782072\nleaf_weight=6.0728576034307471 9.5527806282043439 5.0805349647998801 8.5047180801630002 4.7682161629199973 5.6641568839550009 4.9693270027637482 6.7127194255590421 7.7999269217252722 210.95972549915314 4.9608366638422003 199.22265942394733\nleaf_count=25 39 21 38 22 24 22 30 36 987 23 933\ninternal_value=0 0.0135919 -0.0137566 0.0140434 -0.00551403 0.0142691 0.011015 -0.0143254 0.0144453 -0.0144351 -0.0144757\ninternal_weight=0 238.563 235.705 233.483 15.2169 227.41 11.682 220.488 215.728 211.983 204.183\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=49\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=873.839 13.8211 13.7052 5.00561 4.42588 2.23306 2.58891 1.20622 0.490529 1.34665 0.0138573 0.00314594\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0052270881770817767 0.0055407804907221993 -0.0093488384053317004 -0.0015665317964023923 -0.0087176483679705687 0.014411351758612991 0.013971540938379585 0.0039038154928427611 -0.014544271242482419 -0.014960684601327174 -0.0092289387926573537 -0.01440839373444679 0.014683397770028117\nleaf_weight=4.7390899211168271 6.0670975595712653 5.1081321388483039 5.8221953660249701 5.6349295377731323 209.63582473993301 5.9941996783018094 4.4506874084472656 14.906069323420526 4.6522458195686331 7.0070419907569876 193.44694742560387 4.3387289196252814\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0136327 0.0135859 -0.00234737 0.0139686 0.0141965 0.00968157 -0.0141528 -0.0142643 -0.0128446 -0.0144214 0.0144169\ninternal_weight=0 235.494 236.309 10.374 230.487 224.419 10.4449 225.12 220.012 21.9131 198.099 213.975\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=50\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=861.03 21.7844 10.9339 4.41623 2.73279 1.3075 0.668872 0.627704 0.0914655 0.000929204\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0054906415400944883 -0.0021569465881005135 -0.007045617327823335 -0.011436096227628843 0.014357448011210236 -0.010936074848431071 0.0099681236368632173 -0.013240338931378499 0.010558855068467692 -0.014484935342668988 -0.014345677164413637\nleaf_weight=6.0613043606281272 9.5385706126689893 5.0677590966224662 8.4347209483385068 213.23802387714386 5.6435609161853781 7.2674541771411887 7.7253006845712653 4.4408001303672782 4.9109177142381659 197.01121167838573\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0134638 -0.0136259 0.0139137 -0.00542036 0.0141406 -0.0141971 0.01428 -0.0143082 -0.0143491\ninternal_weight=0 236.075 233.264 231.008 15.1821 224.946 218.082 217.679 209.647 201.922\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=51\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=848.604 13.5798 13.37 4.87369 4.38955 2.22298 2.55901 1.20611 0.492595 1.34405 0.0135188 0.003203\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0051771778263405253 0.0054409889944396373 -0.0092048403057527328 -0.0015156032114323581 -0.0086036784159270064 0.014286453658586841 0.013841453716589257 0.0038041897014049935 -0.014415299413128531 -0.014831508887219886 -0.0090838947657714501 -0.014283515284179328 0.014562301836947724\nleaf_weight=4.7279189974069578 6.0554802417755118 5.0716851353645316 5.8138609528541556 5.6129892021417618 207.2770622074604 5.9436776638030988 4.435622900724411 14.779631301760675 4.6103365570306769 6.95320139825344 191.26800799369812 4.2966226637363425\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0135054 0.0134594 -0.002303 0.0138412 0.0140704 0.009552 -0.0140256 -0.0141379 -0.0127096 -0.0142964 0.0142921\ninternal_weight=0 233.024 233.822 10.3409 228.008 221.953 10.3793 222.683 217.611 21.7328 195.878 211.574\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=52\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=836.225 21.24 10.823 4.3812 2.70822 1.305 0.67704 0.625652 0.0914554 0.000987884\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.005391817600513913 -0.0020795031819459257 -0.0069358189243296621 -0.011283960754445517 0.014235104108714368 -0.010831794907463055 0.0098359656742739426 -0.013112919979774887 0.010429249829324295 -0.014367882050377425 -0.01422354890052006\nleaf_weight=6.0496270656585684 9.5240058153867704 5.0547204762697211 8.363784193992613 210.82190325856209 5.6225657165050498 7.2234769314527503 7.6499517709016791 4.4098043590784064 4.8604718893766394 194.77618761360645\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0133399 -0.0134995 0.0137885 -0.00532845 0.0140168 -0.0140734 0.0141571 -0.0141859 -0.0142271\ninternal_weight=0 233.56 230.797 228.505 15.1466 222.455 215.65 215.232 207.287 199.637\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=53\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=824.283 13.3679 13.0486 4.35586 2.21439 2.53031 2.00239 0.897916 1.02095 0.0995783 0.00325275\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=-6.5093982801294755e-05 0.0053431186743230219 -0.0085978793239182682 -0.0014657718914599309 0.01416612625592214 0.013715388364207048 0.003706271972861535 -0.0083389932939628899 -0.013052859171198064 -0.014670353860566913 -0.014178756124267325 0.014445500003008909\nleaf_weight=7.2991260737180701 6.0437470674514762 7.1151257902383795 5.8054853975772849 204.89468233287334 5.8924704045057279 4.4204638004302979 5.8095275163650495 8.180617690086363 4.535038560628891 197.58861953020096 4.2540654838085166\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0133822 0.013337 0.0137181 0.0139488 0.00942515 -0.0138176 -0.0139895 -0.0111147 -0.014134 0.0141718\ninternal_weight=0 230.528 231.311 225.505 219.462 10.3129 223.229 216.114 10.3446 205.769 209.149\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=54\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=812.342 13.2669 12.9165 4.74226 4.3394 2.21601 2.50333 1.21352 0.497281 1.34849 0.0131553 0.00311831\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0051536592329175339 0.0052948865752710638 -0.0089793671381063374 -0.0014513213669060485 -0.008465187612659868 0.014107525535696202 0.01363896178118521 0.0036718400892071443 -0.014232533907840957 -0.014649084035878984 -0.008858526929552378 -0.014104731784731791 0.014381833335392231\nleaf_weight=4.7160325646400434 6.0378421097993842 5.0132888555526725 5.8046613186597815 5.5846021771430969 203.69434256851673 5.8663651645183545 4.4173125773668289 14.589529350399973 4.5469697415828696 6.8670365065336219 187.96051317453384 4.2302880138158789\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.013321 0.0132764 -0.00222995 0.0136576 0.013889 0.00935762 -0.0138427 -0.0139566 -0.0125126 -0.0141176 0.0141131\ninternal_weight=0 229.278 230.051 10.3006 224.246 218.208 10.2837 218.977 213.964 21.4566 192.507 207.925\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=55\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=800.744 20.5141 10.6494 4.3342 2.68636 1.29672 0.686651 0.619894 0.0922856 0.00115828\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0052471156409774214 -0.0019650360840498464 -0.0067963266438721293 -0.011069314563210387 0.014060157514015206 -0.010700276513609233 0.0096537517393115984 -0.012924430799492046 0.010252070779523814 -0.014205994065789873 -0.014048489829761611\nleaf_weight=6.0319136828184119 9.4998446702957136 5.0371021032333365 8.2587637901306135 207.16067308187485 5.5934966504573813 7.1574658453464499 7.5327953249216071 4.3647474795579901 4.7857952266931525 191.38397693634033\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0131619 -0.0133181 0.0136093 -0.00520226 0.0138399 -0.013896 0.0139816 -0.0140106 -0.0140523\ninternal_weight=0 229.752 227.055 224.715 15.0933 218.683 211.961 211.525 203.703 196.17\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=56\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=789.312 13.0525 12.6137 4.3093 2.20953 2.47653 1.99478 0.90745 1.02128 0.100504 0.00316116\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=-2.7250135097973242e-05 0.0051997994785428258 -0.0084176686499686914 -0.001402883865302212 0.013993634308981663 0.01351861862991372 0.0035761841119101262 -0.0081202993614914506 -0.012866471602655116 -0.014493488341851719 -0.014006868835251565 0.01427124501508473\nleaf_weight=7.2766958177089682 6.0259643942117682 7.0769636780023566 5.7962778359651557 201.28252986073494 5.8142479062080366 4.4020954966545105 5.7502565830945951 8.0484986603260023 4.4681390523910522 194.13062363862991 4.1871181130409232\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0132036 0.0131599 0.0135406 0.0137736 0.00923455 -0.0136405 -0.0138145 -0.0109071 -0.0139615 0.0139993\ninternal_weight=0 226.751 227.508 221.712 215.686 10.2163 219.474 212.398 10.2184 202.179 205.47\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=57\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 1 13 3 2 0 0 5 3 3 0 1\nsplit_gain=778.094 20.0561 10.5399 4.30544 2.64804 2.99896 1.29512 1.17133 0.689671 0.176996 0.0933899 0.00122662\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0051529304410455994 -0.013801347490824484 -0.0067064985977341156 -0.010938483191900841 0.011957207754374066 0.0004944681998847809 -0.002661914767136861 0.0066990529982680989 0.013208379817324626 -0.012799861307751348 0.01395288134904726 -0.014099655653082598 -0.013936684142946663\nleaf_weight=6.0199957340955725 4.851840063929556 5.0259408205747595 8.1921824216842634 4.5449562221765509 5.391127571463584 4.8155935108661652 4.8215632140636444 6.4794022738933545 7.4518135488033286 200.29705716669559 4.733985722064971 189.09608244895935\nleaf_count=25 21 21 38 22 22 20 22 30 36 987 23 933\ninternal_value=0 0.0130476 -0.0132018 0.0134945 -0.005121 -0.00825251 0.0137268 0.0104312 -0.0137827 0.0139086 -0.0138984 -0.0139407\ninternal_weight=0 227.189 224.533 222.163 15.0586 9.66743 216.143 11.301 209.474 204.842 201.282 193.83\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=58\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=767.123 12.8348 12.3249 4.5714 4.28158 2.20184 2.44518 1.22375 0.503078 1.3605 0.0130164 0.00303098\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0051118309285944968 0.0051065051493043682 -0.0086906848682820285 -0.001357538929370312 -0.0083004122355999979 0.01388400143356909 0.013400594963623532 0.0034923041225667583 -0.014007938761553793 -0.014427614794970973 -0.0085625348607591256 -0.013881086717526954 0.014157347205967476\nleaf_weight=4.6929720193147642 6.0140095651149741 4.9331193864345542 5.7870215624570838 5.5425183027982712 198.85986778140068 5.7605600804090482 4.3877648115158081 14.334630608558657 4.4637871086597434 6.7480678856372824 183.49177034199238 4.141033023595809\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0130903 0.0130472 -0.0021509 0.0134276 0.0136623 0.00911661 -0.0136136 -0.0137298 -0.012265 -0.0138941 0.0138896\ninternal_weight=0 224.207 224.95 10.2355 219.163 213.149 10.1483 213.971 209.038 21.0827 187.956 203.001\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=59\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=756.234 19.574 10.4478 4.27841 2.65189 1.30194 0.69889 0.620126 0.0936618 0.0012715\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0050605158280619426 -0.0018174302699717137 -0.0066029995721218352 -0.010797407505288608 0.013841358886931849 -0.010522443905892707 0.0093949844931739031 -0.012684797656530107 0.010003353178436971 -0.013996022349497041 -0.013829179102815937\nleaf_weight=6.0080073773860923 9.4668440520763379 5.0122207552194586 8.118923291563986 202.22427272796631 5.5519715994596472 7.0620736032724372 7.3746606558561316 4.2993761599063864 4.6821928918361655 186.8020444214344\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.012937 -0.0130889 0.013383 -0.00503539 0.0136171 -0.0136733 0.0137615 -0.0137907 -0.0138333\ninternal_weight=0 224.606 221.997 219.594 15.0188 213.586 206.978 206.524 198.859 191.484\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=60\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=745.672 12.6345 12.0452 4.45329 4.25568 2.19782 2.42038 1.22642 0.507144 1.36004 0.0126893 0.00306635\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0050640013057021184 0.0050149582989659977 -0.0085577187554633609 -0.0013110334971609444 -0.0081952072154584943 0.013777984275989141 0.013287206959572907 0.0033997407028693765 -0.013896209058597299 -0.014317392153072183 -0.0084285110289003366 -0.013775085346891917 0.014054389548497801\nleaf_weight=4.6815385073423368 6.0019906610250464 4.8957267850637427 5.7785719931125632 5.5195399820804596 196.4192268550396 5.7074932605028135 4.3724616914987564 14.2019679248333 4.4198921769857398 6.6933293193578711 181.23744669556618 4.0972719788551322\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0129801 0.0129378 -0.00211021 0.013318 0.0135546 0.00899824 -0.0135045 -0.0136218 -0.0121448 -0.013788 0.0137836\ninternal_weight=0 221.649 222.377 10.2011 216.598 210.596 10.08 211.448 206.553 20.8953 185.657 200.516\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=61\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=735.127 12.5421 11.9318 4.24293 2.20122 2.39581 1.98852 0.927145 1.03089 0.102685 0.00294307\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=2.6607707457544137e-05 0.0049698263100247924 -0.0081254616636983155 -0.0012981022525365633 0.013726289142406622 0.013217415053324305 0.0033681259368081484 -0.0077524077474050582 -0.012571774934919346 -0.014227128075838345 -0.013740886818332201 0.013997894435449288\nleaf_weight=7.2312308698892585 5.9959616512060157 7.0060653686523429 5.7777793705463401 195.19351567327976 5.6803901344537717 4.3693839311599731 5.6448602229356748 7.8248684257268897 4.3571709543466568 188.30597729980946 4.0727931410074225\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0129253 0.0128834 0.013264 0.0135015 0.0089352 -0.0133647 -0.0135428 -0.010573 -0.0136942 0.0137318\ninternal_weight=0 220.37 221.09 215.312 209.316 10.0498 213.139 206.133 10.002 196.131 199.266\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=62\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=724.904 18.9331 10.3052 4.24236 2.63089 1.29801 0.71006 0.617058 0.0948659 0.0014262\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0049251144764377898 -0.001710248384090971 -0.0064721077772042683 -0.010598214149998904 0.013687078306002593 -0.010400095786492173 0.0092246674525997396 -0.012513773283691779 0.0098376130584387975 -0.013852925850496401 -0.013674762619758744\nleaf_weight=5.9899214655160895 9.441106364130972 4.9938495904207221 8.0112701058387739 198.48552826046944 5.5216121077537528 6.994080811738967 7.2550812959671012 4.253369227051734 4.6059548407793036 183.33903096616268\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0127776 -0.0129263 0.0132232 -0.00491702 0.0134602 -0.0135161 0.0136063 -0.0136358 -0.0136791\ninternal_weight=0 220.717 218.174 215.723 14.9627 209.733 203.211 202.739 195.2 187.945\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=63\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=714.766 12.3764 11.6674 4.33595 4.21979 2.1989 2.37247 1.23755 0.514568 1.36728 0.0123327 0.00297334\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.0050406288670445274 0.0048808174249212457 -0.0083477007701886017 -0.0012528907430744637 -0.0080679880380339682 0.013625708904041172 0.01310880540519628 0.0032776153431965339 -0.013737731555577877 -0.014161629134309307 -0.0082185447816758 -0.01362294502883394 0.013900202454287851\nleaf_weight=4.6694198846816999 5.9838715940713874 4.8359143435955039 5.7693457454442969 5.4901056438684464 192.73825608193874 5.6267696768045408 4.3540738224983215 14.004314348101618 4.3540790081024161 6.6058411896228781 177.83962677419186 4.0286969840526572\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0128199 0.0127789 -0.00204314 0.0131595 0.0133991 0.00882002 -0.0133472 -0.0134664 -0.0119688 -0.0136358 0.0136313\ninternal_weight=0 217.799 218.501 10.1595 212.732 206.748 9.98084 207.64 202.804 20.6102 182.194 196.767\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=64\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=704.864 18.49 10.2286 4.21996 2.60792 1.30033 0.719885 0.617934 0.0953235 0.00146112\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0048369306042436982 -0.0016412808800993668 -0.0063728181127486782 -0.010463977231692236 0.013588439479962947 -0.010307057720946373 0.0091063918349085799 -0.012406222499505497 0.0097214644413224846 -0.013757656496661955 -0.013576289293027753\nleaf_weight=5.9778138995170584 9.4248739033937436 4.9797266870737067 7.9369653314352027 195.97959107160568 5.4990186691284171 6.9480878412723532 7.1773030906915656 4.2213810682296744 4.5536408573389044 181.02257899940014\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0126752 -0.0128215 0.0131203 -0.00483437 0.0133593 -0.0134155 0.0135069 -0.013537 -0.0135807\ninternal_weight=0 218.107 215.614 213.127 14.9239 207.149 200.69 200.201 192.754 185.576\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=65\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 0 3 13 9 4 12 2 3 1\nsplit_gain=695.095 12.1942 11.413 4.22496 4.19833 2.19761 2.34987 1.24152 0.519563 1.3679 0.0120246 0.00299871\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 1.1135288793191862 0.17408222448223767 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 3 4 -1 -2 11 -7 -3 9 -9 -10 -6\nright_child=2 7 -4 -5 5 6 -8 8 10 -11 -12 -13\nleaf_value=0.004993873453142293 0.0047934483044071623 -0.0082197984294708655 -0.0012086556757730591 -0.0079672365433064406 0.013528547825365261 0.013003156675732888 0.0031885601659468864 -0.013634179600115585 -0.014060468439676335 -0.0080895390721340485 -0.013525797463219842 0.013805741331852903\nleaf_weight=4.6578997820615751 5.9717494994401923 4.7983505576848975 5.7609062343835822 5.4667138010263443 190.276392608881 5.5728656500577909 4.3387392163276672 13.869516834616663 4.3095368742942801 6.5511142760515204 175.56579358875751 3.9844569861888877\nleaf_count=20 25 23 24 24 987 27 19 67 21 32 911 20\ninternal_value=0 -0.0127177 0.0126775 -0.00200439 0.0130582 0.0132999 0.00870688 -0.0132466 -0.013367 -0.0118554 -0.0135386 0.0135342\ninternal_weight=0 215.219 215.905 10.1246 210.144 204.172 9.9116 205.094 200.296 20.4206 179.875 194.261\ninternal_count=2200 1098 1102 44 1078 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=66\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 1\nsplit_gain=685.496 18.0615 10.1564 4.19916 2.58525 1.30363 1.19503 0.729923 0.186632 0.0958572 0.00149291\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0047503672286749099 -0.0015736127426783752 -0.0062752318475518135 -0.010332264110322061 0.011394586819132935 -0.010215766813157293 0.0060721831051706154 0.012761595362423037 -0.012301388355507049 0.013497952219070448 -0.01366554284960403 -0.013481145446474866\nleaf_weight=5.9656798839569083 9.4084342271089536 4.9654586911201468 7.8623628020286551 4.314608320593833 5.4761999547481528 4.6694353371858597 6.2384996712207776 7.0994083732366553 189.33671924471855 4.5012014508247367 178.70116546750069\nleaf_count=25 39 21 38 22 24 22 30 36 987 23 933\ninternal_value=0 0.0125758 -0.0127197 0.0130204 -0.00475314 0.0132616 0.00989801 -0.0133181 0.0134511 -0.0134415 -0.0134857\ninternal_weight=0 215.49 213.049 210.525 14.8846 204.559 10.9079 198.164 193.651 190.302 183.202\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=67\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=676.1 12.0116 11.1723 4.17854 2.1965 2.32347 1.95729 0.949542 1.04521 0.106229 0.00287417\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=0.00010748591821048219 0.0047076798116628907 -0.0078377134061780682 -0.0011685939202607564 0.013434859074859589 0.012898105729089815 0.0031085586374808398 -0.0073347571279462108 -0.012239973075761001 -0.013943760917131074 -0.013450481460576032 0.013707858807825284\nleaf_weight=7.1665953099727622 5.9596065431833258 6.9278530776500693 5.7519689351320258 187.81560660898685 5.517770051956175 4.3246396034955978 5.5181670933961851 7.5515518933534613 4.2251781672239304 181.24280855059624 3.9372932612895957\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0126187 0.012579 0.01296 0.013204 0.00859669 -0.0130626 -0.013245 -0.0102007 -0.0134021 0.0134405\ninternal_weight=0 212.632 213.307 207.555 201.595 9.84241 205.466 198.538 9.74335 188.794 191.753\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=68\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=666.769 17.6845 10.0749 4.18009 2.54846 1.31156 0.734525 0.621802 0.0973211 0.00154115\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0046653835990580796 -0.0015237527294791153 -0.0061940352932167674 -0.010215789183490932 0.013401501675925121 -0.010118272694267183 0.0088664052899582024 -0.012193127214282846 0.0094910903117216786 -0.013577295038634528 -0.013388827660813294\nleaf_weight=5.9535305947065345 9.395965099334715 4.9538336545228949 7.7945217639207831 190.9648765027523 5.452088087797164 6.8501128554344168 7.0167369693517676 4.154847487807273 4.4482603371143332 176.36883172392845\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0124789 -0.0126211 0.0129238 -0.00467959 0.0131672 -0.0132238 0.0133182 -0.0133486 -0.0133935\ninternal_weight=0 212.877 210.476 207.923 14.8481 201.97 195.628 195.12 187.834 180.817\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=69\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 3 0 13 9 4 12 2 3 1\nsplit_gain=657.709 11.8607 10.936 4.16009 4.07969 2.19706 2.30227 1.25998 0.527619 1.38722 0.0118616 0.00289464\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 0.17408222448223767 1.1135288793191862 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 4 3 -2 -1 11 -7 -3 9 -9 -10 -5\nright_child=2 7 -4 5 -6 6 -8 8 10 -11 -12 -13\nleaf_value=0.0049649362441456747 0.0046234728633265335 -0.0079474611882956597 -0.0011260928315193167 0.013344081017345971 -0.007813057888467671 0.012798016452283687 0.0030222745631944864 -0.013449842964486196 -0.013877646519034727 -0.0078139058166005679 -0.013341221806317196 0.013619615083940167\nleaf_weight=4.6337923556566221 5.9474535286426535 4.716016173362731 5.7435191720724097 185.3472603559494 5.4225996434688568 5.4634583890438062 4.3093056529760361 13.609848752617838 4.2239723354578009 6.4309422820806494 171.00970034301281 3.8928780108690253\nleaf_count=20 25 23 24 987 24 27 19 67 21 32 911 20\ninternal_value=0 -0.0125222 0.0124833 0.0128647 -0.0019252 0.013111 0.0084874 -0.013055 -0.0131784 -0.0116413 -0.0133542 0.0133497\ninternal_weight=0 210.047 210.704 204.96 10.0564 199.013 9.77276 199.99 195.274 20.0408 175.234 189.24\ninternal_count=2200 1098 1102 1078 44 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=70\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=648.659 17.2827 10.0108 4.16217 2.52662 1.31566 0.745077 0.623735 0.0979796 0.00156579\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0045819437886115413 -0.0014583663045552892 -0.006099432114216108 -0.010088530601863962 0.013312435114185252 -0.010030318202473945 0.0087538198008258201 -0.012093437859355158 0.0093804949696702795 -0.013491016407026895 -0.013299912317249815\nleaf_weight=5.9413764625787726 9.3792599290609342 4.939356103539466 7.7195939719676963 188.44873641431332 5.4289298802614203 6.8037197887897483 6.9388042986392966 4.1227344125509253 4.3956809490919104 174.04368959367275\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0123851 -0.0125249 0.0128298 -0.00460099 0.0130756 -0.0131325 0.0132283 -0.0132593 -0.0133046\ninternal_weight=0 210.256 207.906 205.317 14.8082 199.375 193.098 192.571 185.378 178.439\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=71\nnum_leaves=13\nnum_cat=1\nsplit_feature=10 1 1 3 0 13 9 4 12 2 3 1\nsplit_gain=639.923 11.697 10.7083 4.14298 3.97648 2.19848 2.28166 1.26523 0.533639 1.38881 0.0115612 0.00291106\nthreshold=2.5000000000000004 1.0880563133346253 1.0797383065324315 0.17408222448223767 1.1135288793191862 0.46553849925547169 0 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 0.98578357518082749\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 4 3 -2 -1 11 -7 -3 9 -9 -10 -5\nright_child=2 7 -4 5 -6 6 -8 8 10 -11 -12 -13\nleaf_value=0.0049194779855204181 0.0045407916710366791 -0.0078249825827186297 -0.0010845124822901771 0.01325628879866857 -0.0077172091625194528 0.012700486233966203 0.0029373435703680785 -0.013354804696919284 -0.013785890944601517 -0.0076902191830632164 -0.013253445573194758 0.013534199476819503\nleaf_weight=4.6221377700567228 5.9353005141019812 4.6785143017768851 5.7350797206163397 182.87881281971931 5.3988253623247147 5.409019470214842 4.2939769327640533 13.473680645227434 4.1790439784526816 6.376585364341735 168.72991545498371 3.8484366834163657\nleaf_count=20 25 23 24 987 24 27 19 67 21 32 911 20\ninternal_value=0 -0.0124284 0.0123903 0.0127721 -0.00188858 0.0130209 0.00837989 -0.0129633 -0.013088 -0.0115351 -0.0132663 0.013262\ninternal_weight=0 207.459 208.101 202.366 10.021 196.43 9.703 197.438 192.759 19.8503 172.909 186.727\ninternal_count=2200 1098 1102 1078 44 1053 46 1054 1031 99 932 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=72\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=631.161 11.622 10.618 4.13443 2.20394 2.25971 1.95459 0.973152 1.05655 0.109136 0.0027984\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=0.00017262873548861232 0.0045000113344007614 -0.007584391114035389 -0.0010738031918867503 0.013213410265868206 0.012638943421021225 0.0029099326921767686 -0.0069979137015048886 -0.011984318510850054 -0.013722439165098129 -0.013230144041319883 0.013486779361044997\nleaf_weight=7.119452863931655 5.9292271733283988 6.8572794198989859 5.7343588769435874 181.64374227821827 5.3811439871788007 4.2910953909158707 5.4116259664297086 7.3253480643033972 4.1118153184652328 175.34295885264874 3.8234734535217276\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0123815 0.0123437 0.0127264 0.0129764 0.00832266 -0.0128305 -0.0130177 -0.00990128 -0.0131802 0.013219\ninternal_weight=0 206.168 206.803 201.069 195.139 9.67224 199.049 192.192 9.52344 182.668 185.467\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=73\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 1\nsplit_gain=622.641 16.7505 9.90358 4.13849 2.50738 1.31711 0.758272 0.623984 0.0997091 0.00168954\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1948510833126798 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0044595994906619901 -0.0013611376357523983 -0.0059805498878504129 -0.0099086039255561354 0.013184551331344921 -0.0099208956538961984 0.008598495200758444 -0.011944160103462949 0.0092291025648266519 -0.013372120991370331 -0.013171843582545164\nleaf_weight=5.9231571853160849 9.3518886268138868 4.9201848953962317 7.6105031371116629 184.68121875822544 5.3970980793237677 6.7344192117452613 6.8183789104223242 4.0762717276811591 4.3188290596008292 170.55567453801632\nleaf_count=25 39 21 38 1009 24 32 36 20 23 933\ninternal_value=0 0.0122493 -0.0123861 0.0126946 -0.00449341 0.0129441 -0.013001 0.0130991 -0.0131305 -0.0131768\ninternal_weight=0 206.335 204.052 201.415 14.749 195.492 189.303 188.757 181.693 174.875\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=74\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=614.226 11.487 10.4209 4.20541 3.87401 1.82652 1.27995 0.54379 1.39886 0.0112287 0.00374058\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0253804391042192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.004895926570126303 0.0044195521762988828 -0.0076293957956637161 0.0013316876247144917 0.013132422165246632 -0.0076019936753713184 0.0069344285812957028 -0.013219913128960054 -0.013656151503531791 -0.0074944909727216536 -0.013127139707455106 0.013429314349167725\nleaf_weight=4.6097757965326291 5.9170916676521292 4.6184623986482611 8.3763216584920865 180.69522209465504 5.3687147051095963 4.8688255548477164 13.272519975900652 4.1121588051319113 6.2896032035350791 165.31482630968094 4.3457301259040824\nleaf_count=20 25 23 36 995 24 23 67 21 32 911 23\ninternal_value=0 -0.0122913 0.0122544 0.0127216 -0.00182831 0.0129803 -0.0128306 -0.0129577 -0.0113791 -0.01314 0.0131394\ninternal_weight=0 203.586 204.203 195.827 9.97849 189.91 193.608 188.989 19.5621 169.427 185.041\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=75\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 1\nsplit_gain=605.937 16.4093 9.85173 4.12364 2.48581 1.32756 1.22322 0.769344 0.197927 0.100518 0.00170537\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0043798642567301595 -0.0012974332234482766 -0.0059037463439081993 -0.0097864495663980665 0.010881098805354339 -0.0098348940711514826 0.0054721739841626024 0.012363943125599469 -0.011850201211488545 0.013108186730765416 -0.013292425078494159 -0.013089974018136441\nleaf_weight=5.9110321104526511 9.335280776023863 4.9071061164140692 7.5354966819286338 4.0818665325641623 5.3735475391149512 4.514968141913414 5.9949856996536237 6.7407463788986197 178.31527271866798 4.2663347870111457 168.23631244897842\nleaf_count=25 39 21 38 22 24 22 30 36 987 23 933\ninternal_value=0 0.0121612 -0.0122961 0.0126071 -0.00441641 0.0128592 0.00940331 -0.0129166 0.0130583 -0.0130482 -0.013095\ninternal_weight=0 203.725 201.488 198.818 14.7088 192.907 10.51 186.779 182.397 179.243 172.503\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=76\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=597.844 11.3254 10.2533 4.19176 3.77081 1.83079 1.28617 0.550564 1.40126 0.0109469 0.00379427\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0048435458796172969 0.0043405329499477544 -0.0075108022676305067 0.0013245155745605687 0.013051077238926912 -0.0075091377582894086 0.006826499268996508 -0.013131248138242704 -0.013571512678598595 -0.0073746400351876115 -0.013046281808097884 0.013334652823710125\nleaf_weight=4.5963890403509122 5.9049788862466803 4.5812003612518302 8.3599006682634336 177.66607908904552 5.3448648601770401 4.8387467712163916 13.13591141998768 4.0671614855527869 6.2358244955539694 163.04243344068527 4.8470817506313315\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.012204 0.0121672 0.0126362 -0.00179781 0.0128977 -0.0127455 -0.0128741 -0.0112782 -0.0130591 0.0130586\ninternal_weight=0 201.004 201.617 193.257 9.94125 187.352 191.063 186.481 19.3717 167.11 182.513\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=77\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=589.76 16.0781 9.80278 4.10979 2.46447 1.33347 1.22233 0.780601 0.199782 0.10139 0.00174582\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0043015542825530807 -0.0012348692444429791 -0.0058280551419881274 -0.0096661844251523434 0.01077779012501151 -0.0097503132139082418 0.0053601584796831702 0.012275582801191657 -0.011758319730974583 0.013028743040183415 -0.013110872289976124 -0.013004991267173372\nleaf_weight=5.8989338576793662 9.3185736238956434 4.8939421176910392 7.4605481326580039 4.0334003120660773 5.3498835265636435 4.4864695370197296 5.9398826956748945 6.6633247584104529 175.86893117427826 17.339972466230392 152.7960901260376\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0120755 -0.0122084 0.012522 -0.00434062 0.0127768 0.00929987 -0.0128347 0.0129783 -0.0129684 -0.0130158\ninternal_weight=0 201.122 198.928 196.228 14.6685 190.329 10.4264 184.26 179.902 176.799 170.136\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=78\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=581.979 11.1686 10.0916 4.17919 3.67073 1.8356 1.29287 0.557658 1.40401 0.010674 0.00389553\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0047918371918615294 0.0042629227595367639 -0.0073933521833808328 0.0013173063306457136 0.012972695484876369 -0.0074180444482712018 0.0067200354606368785 -0.013044930148449952 -0.013489546944005351 -0.0072560662237861027 -0.012967996329842118 0.013261673137895247\nleaf_weight=4.5829228758811933 5.8928973972797385 4.5439757853746405 8.3434724211692792 175.19920834898949 5.3210237473249435 4.8087276220321646 12.999199762940409 4.0221985876560202 6.1822737753391257 160.77594685554504 4.7924541980028144\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.012119 0.0120821 0.0125531 -0.00176808 0.0128175 -0.0126628 -0.0127929 -0.0111792 -0.0129807 0.0129804\ninternal_weight=0 198.428 199.037 190.693 9.90395 184.8 188.524 183.98 19.1815 164.798 179.992\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=79\nnum_leaves=11\nnum_cat=0\nsplit_feature=10 1 1 3 13 12 3 1 3 0\nsplit_gain=574.14 11.1098 10.0391 4.17297 1.95242 1.83833 1.00963 1.07785 0.11391 0.00375043\nthreshold=2.5000000000000004 1.0652111417665497 1.0383879925828392 0.17408222448223767 0.78123321994831596 4.6533632910829281 1.2190084357665867 1.2807709791646134 1.2471304352583659 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 -3 9 7 -6 -8 -5\nright_child=2 4 -4 5 6 -7 8 -9 -10 -11\nleaf_value=0.00025515601280281071 0.0042246356402903928 -0.0072535960230143961 0.00130410049610586 0.012934384228674678 -0.0065359763158590678 0.0066690023618499496 -0.011649526833702682 -0.013445928435851223 -0.012950785261766686 0.013218893805267487\nleaf_weight=7.0450165569782248 5.886870250105857 6.7555552423000327 8.3436806499958021 173.9671333283186 5.2594519555568677 4.797128587961196 7.0093258917331687 3.9548687338829041 167.12194304168224 4.7600465267896643\nleaf_count=31 25 30 36 992 26 23 39 21 951 26\ninternal_value=0 -0.0120762 0.0120393 0.0125122 -0.0125332 0.012778 -0.0127277 -0.00950179 -0.0128984 0.012942\ninternal_weight=0 197.146 197.755 189.411 190.101 183.524 183.346 9.21432 174.131 178.727\ninternal_count=2200 1098 1102 1066 1067 1041 1037 47 990 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=80\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=566.479 15.6581 9.71999 4.09166 2.44542 1.34019 1.22746 0.79486 0.20323 0.103422 0.00184582\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0041866893935487599 -0.0011408656271833021 -0.0057432024612662407 -0.0094960565085565468 0.010623329801864874 -0.0096442314927947265 0.0051866310705631479 0.012157027779723198 -0.011620048310816752 0.012914895160243394 -0.013000393527373609 -0.012890442733999122\nleaf_weight=5.8808542788028708 9.2915686219930631 4.8776801675558081 7.3519771993160239 3.9590788781642905 5.317440763115882 4.4402506947517395 5.8610975891351682 6.54377856850624 172.22261276841164 17.003901109099388 149.59470337629318\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0119508 -0.0120815 0.0123994 -0.00423595 0.0126584 0.00915254 -0.0127165 0.0128634 -0.0128532 -0.0129017\ninternal_weight=0 197.242 195.103 192.364 14.609 186.483 10.3013 180.494 176.182 173.142 166.599\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=81\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=559.009 10.9712 9.88529 4.16187 3.57155 1.84394 1.3096 0.569317 1.41564 0.0103712 0.00384353\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0047606248551575903 0.0041490806761978211 -0.007204690205354948 0.0012969884323402378 0.012859662123085116 -0.0073090466416122594 0.0065645534636259882 -0.012922413159603081 -0.013373631992681859 -0.0070673240738411483 -0.012855184357724128 0.013149351256872964\nleaf_weight=4.5687029063701612 5.8748491108417502 4.4843236804008475 8.3273056894540769 171.51237635314465 5.2909862101078033 4.7672428339719763 12.798169031739237 3.9554950743913642 6.0964562296867362 157.39084044098854 4.7056665867567053\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0119942 0.0119574 0.0124325 -0.0017163 0.0127014 -0.0125428 -0.0126756 -0.0110332 -0.0128679 0.0128674\ninternal_weight=0 194.585 195.187 186.86 9.85969 180.985 184.725 180.241 18.8946 161.346 176.218\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=82\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=551.534 15.3491 9.67762 4.08014 2.42448 1.34741 1.22686 0.806601 0.205304 0.10443 0.001898\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0041118050599171316 -0.0010810645395016372 -0.0056698876834574176 -0.0093800330955001524 0.010524167755624208 -0.009562880854865001 0.0050779047019069087 0.012073376048827871 -0.011533016695395023 0.012841533193585757 -0.012929303157876514 -0.012817065029884571\nleaf_weight=5.8688566088676444 9.2746598571538907 4.8643440604209891 7.2774289399385443 3.9110915511846533 5.2936055958271018 4.4121788889169693 5.806114509701727 6.467100888490676 169.79596975445747 16.781045377254486 147.47071944177151\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0118703 -0.0119991 0.0123199 -0.00416306 0.0125818 0.00905279 -0.0126405 0.0127894 -0.0127795 -0.0128285\ninternal_weight=0 194.659 192.565 189.794 14.5683 183.925 10.2183 177.996 173.707 170.719 164.252\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=83\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=544.349 10.8255 9.73666 4.15167 3.4773 1.85001 1.31711 0.577092 1.41903 0.0101151 0.00393013\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.004709987733339859 0.0040748591772000091 -0.0070905629589102228 0.0012898359750605007 0.012787257370562348 -0.0072213564245178288 0.0064614582220847228 -0.012841552645187975 -0.013297809575325255 -0.0069520304532570886 -0.01278286550434618 0.01308190360623351\nleaf_weight=4.5551416277885419 5.8628771454095832 4.4475253373384467 8.3109327852725965 169.06753087043762 5.2671007663011551 4.7374564111232749 12.661845505237581 3.9107495099306098 6.043738216161727 155.14473773539066 4.6514966785907736\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0119144 0.0118776 0.012355 -0.0016881 0.012627 -0.0124656 -0.0126001 -0.0109387 -0.0127955 0.0127951\ninternal_weight=0 192.031 192.63 184.319 9.82224 178.456 182.209 177.761 18.7056 159.055 173.719\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=84\nnum_leaves=12\nnum_cat=1\nsplit_feature=10 1 1 3 13 9 13 3 1 3 1\nsplit_gain=537.099 10.7645 9.69257 4.05979 2.21031 2.20714 1.95773 1.03712 1.09141 0.117607 0.00302441\nthreshold=2.5000000000000004 1.0652111417665497 1.0797383065324315 0.17408222448223767 0.46553849925547169 0 0.78123321994831596 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.98578357518082749\ndecision_type=2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 -1 3 -2 10 -6 -3 8 -8 -9 -5\nright_child=2 6 -4 4 5 -7 7 9 -10 -11 -12\nleaf_value=0.00030240977220465445 0.0040382414303193857 -0.0070241574126300348 -0.0010088816625592662 0.012750741046741133 0.012172648372911574 0.002368248806410365 -0.0062226315395119492 -0.011425507127847109 -0.013264079735328673 -0.012769351537025337 0.013045212526764492\nleaf_weight=6.9940035641193381 5.8569114655256262 6.6822562962770453 5.6985852867364875 166.97283515334129 5.08215084671974 4.1883756369352341 5.1538438349962217 6.7862959653139105 3.8422564715147018 161.3031157553196 3.5622331500053397\nleaf_count=31 25 30 24 987 27 19 26 39 21 951 20\ninternal_value=0 -0.0118741 0.0118372 0.0122315 0.0124984 0.00774307 -0.0123376 -0.0125381 -0.00923005 -0.0127151 0.0127569\ninternal_weight=0 190.762 191.361 185.663 179.806 9.27053 183.768 177.086 8.9961 168.089 170.535\ninternal_count=2200 1098 1102 1078 1053 46 1067 1037 47 990 1007\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=85\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 1 3 3 0 13\nsplit_gain=530.024 14.9302 9.60071 4.06515 2.40593 1.35421 0.821577 0.697505 0.106657 0.00198562\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0023056708553677 1.2103584781205146 1.1981154781470527 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.0040019453900989642 -0.00099222335064471962 -0.0055741924493299434 -0.0092158887896579573 0.012732160974251951 -0.0094627669613403399 0.0079754390551559137 -0.011401570055652423 0.0083349697500039698 -0.012827153863530996 -0.01271118937626799\nleaf_weight=5.8509606868028632 9.2468374818563444 4.8462884277105323 7.1697826683521262 169.96922752261162 5.2610265314579001 6.4586416482925406 6.3487079590558997 3.6856413781642905 16.448451280593872 144.3017700612545\nleaf_count=25 39 21 38 1010 24 32 36 19 96 860\ninternal_value=0 0.0117536 -0.0118799 0.0122051 -0.00406392 0.0124716 -0.0125306 0.0126388 -0.0126728 -0.0127231\ninternal_weight=0 190.811 188.777 185.964 14.5079 180.114 174.269 173.655 167.099 160.75\ninternal_count=2200 1107 1093 1086 63 1061 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=86\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=523.091 10.654 9.52555 4.13729 3.38999 1.86748 1.33501 0.589707 1.4316 0.0098313 0.00371764\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0046873551586125361 0.0039659697185235035 -0.0069063457547908474 0.001280032805739512 0.012682883251124051 -0.007117504211909367 0.0062960508000430952 -0.012726824095802737 -0.013190612484516076 -0.0067676738624655843 -0.012678558069900347 0.012972326614448304\nleaf_weight=4.5427903383970243 5.8450251817703238 4.3884544670581809 8.2912997603416425 165.42354379594326 5.2370111644268036 4.6930662840604773 12.461975529789926 3.8445094376802436 5.9590986371040335 151.79618082940578 4.5598355680704108\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0117967 0.0117605 0.0122419 -0.00163406 0.0125188 -0.0123536 -0.012491 -0.0107991 -0.0126912 0.0126906\ninternal_weight=0 188.23 188.813 180.521 9.7798 174.676 178.45 174.062 18.4211 155.641 169.983\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=87\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=516.194 14.6421 9.56384 4.05561 2.38537 1.36759 1.24342 0.833778 0.212462 0.107792 0.00203008\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0039303096145514253 -0.0009350544251206951 -0.005503259504856489 -0.0091035886372259952 0.010272576856766474 -0.0093844061875528375 0.0047731645446944708 0.011888420532782881 -0.011318846873396028 0.012668793341861112 -0.012761361378720781 -0.012643305941556365\nleaf_weight=5.8391060680150977 9.2297943681478483 4.8328377902507773 7.0959169864654532 3.7857487648725501 5.2371117323637 4.3304135352373123 5.6742877811193448 6.273036077618598 163.79410754144192 16.228307321667671 142.20297937095165\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0116779 -0.0118024 0.0121306 -0.00399377 0.0124002 0.00880867 -0.0124599 0.0126147 -0.0126045 -0.0126554\ninternal_weight=0 188.257 186.267 183.424 14.4669 177.585 10.0047 171.8 167.58 164.704 158.431\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=88\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=509.521 10.5179 9.38885 4.12905 3.30098 1.87455 1.34323 0.598114 1.43553 0.00959065 0.00379354\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0046376164038448393 0.0038949635361547777 -0.0067952015465995988 0.0012728233312002399 0.012615874259494101 -0.0070329884811847678 0.0061961803345168664 -0.012650877759953756 -0.013120342127795939 -0.0066553331002872154 -0.012611630607266231 0.012909998865205162\nleaf_weight=4.5291761159896833 5.8332037180662146 4.3521961718797675 8.2750100940465909 163.00901827216148 5.2131485939025879 4.6636394113302222 12.326552331447603 3.800150290131568 5.90736499428749 149.57806754112244 4.5063480436801902\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0117216 0.0116853 0.0121694 -0.00160736 0.0124497 -0.0122815 -0.0124207 -0.0107085 -0.0126242 0.0126238\ninternal_weight=0 185.707 186.287 178.012 9.74232 172.179 175.964 171.612 18.2339 153.378 167.515\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=89\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 1 3 0 13\nsplit_gain=502.855 13.6676 9.63964 5.08404 4.1024 1.19155 1.06601 1.10567 0.121615 0.107244 0.013658\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.17408222448223767 0.99689265265511573 1.2190084357665867 1.2807709791646134 1.2471304352583659 1.1019912764466293 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0038599273393983991 -0.011887103841913247 -0.002640446401404279 -0.0059174014789843098 0.0013290751705810541 0.012530184577998836 0.0084997779512512514 -0.01121211131529277 -0.013096128916599694 -0.013197819460962769 0.014340716164016068 -0.012586767847229745\nleaf_weight=5.8273188769817343 4.5023956000804892 6.5071109980344763 5.0493770241737348 8.2334412485361081 162.64761650562286 7.531319484114646 6.5660034120082846 3.7307250052690506 3.7482080906629553 3.3387756198644629 151.80660472810268\nleaf_count=25 20 30 26 36 996 38 39 21 21 18 930\ninternal_value=0 0.0115964 -0.011736 -0.00334313 0.0121129 0.0123901 -0.0123614 -0.00896769 -0.0125452 0.0125666 -0.0126015\ninternal_weight=0 185.852 183.637 12.7358 179.345 173.518 170.901 8.7801 162.121 165.986 155.555\ninternal_count=2200 1107 1093 56 1077 1052 1037 47 990 1014 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=90\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 1 13 3 2 0 0 5 3 3 0 13\nsplit_gain=496.382 14.1817 9.46038 4.04312 2.34609 3.19958 1.38529 1.24506 0.849406 0.215583 0.110312 0.00208526\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -8 -4 -5 -10 -12\nright_child=2 -3 8 6 -6 -7 7 -9 10 -11 11 -13\nleaf_value=0.0038251992709211033 -0.012903732416077953 -0.0053768941227900118 -0.0089447216146283388 0.010134705367041301 0.0014018974984000524 -0.0010765057142739867 0.0046049115718385034 0.011769189478930861 -0.011192713553390224 0.012571675034688579 -0.012666202811965784 -0.012545310049878966\nleaf_weight=5.8214519172906867 4.5642063319683057 4.8096742480993262 6.9895744025707236 3.7142092585563651 5.2653578221797934 4.5851248353719711 4.285759449005127 5.5893453508615476 6.1556420922279349 160.24196317791939 15.898972555994986 139.07788798213005\nleaf_count=25 21 21 38 22 22 20 22 30 36 987 96 860\ninternal_value=0 0.0115692 -0.0116909 0.0120229 -0.00391612 -0.0069766 0.0122974 0.00865992 -0.0123575 0.0125165 -0.0125056 -0.0125577\ninternal_weight=0 184.462 182.537 179.653 14.4147 9.14933 173.831 9.8751 168.122 163.956 161.133 154.977\ninternal_count=2200 1107 1093 1086 63 41 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=91\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=490.02 10.2814 9.15776 4.11797 3.22023 1.89242 1.35255 0.612365 1.44641 0.00932341 0.00374741\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.0045838398074077927 0.0037907740131520157 -0.0066379478350905895 0.0012835939876795119 0.012519527572586606 -0.0069704738187453298 0.0060351665032661993 -0.012540617508331636 -0.013021038681914612 -0.0064774204021379386 -0.012515051597385814 0.012814647569852636\nleaf_weight=4.5119632482528669 5.8156039565801612 4.298379883170127 8.2530247271060926 159.4276921749115 5.1829625815153122 4.6161853671073905 12.125537469983103 3.7346058934926978 5.8243740350008002 146.2778198570013 4.4219709038734427\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0116131 0.0115766 0.012064 -0.00159316 0.0123496 -0.012177 -0.0123188 -0.0105732 -0.0125276 0.0125275\ninternal_weight=0 181.956 182.534 174.281 9.69493 168.466 172.261 167.962 17.9499 150.012 163.85\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=92\nnum_leaves=11\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 13 3 0 0\nsplit_gain=483.597 10.2266 9.11822 4.11429 3.16077 1.89616 1.35528 0.812807 0.0940855 0.00361219\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.78123321994831596 1.2103584781205146 1.1305001193370379 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 -3 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 8 -10 -11\nleaf_value=0.0045395703196916687 0.0037566504897759596 -0.0071118994242285408 0.0012707251176554868 0.012488184684643791 -0.0069135238791451416 0.0059891047613858167 -0.0089961064148270237 -0.01126688029957146 -0.012498453769994625 0.012778981206298962\nleaf_weight=4.510411933064459 5.8097757399082175 5.1929704695940009 8.2532371878623945 158.23552685976028 5.1734481006860733 4.605226442217826 7.1265488117933264 6.4664705693721762 152.24473540484905 4.3901292085647574\nleaf_count=20 25 24 36 992 24 23 39 38 953 26\ninternal_value=0 -0.0115763 0.0115397 0.0120294 -0.00157906 0.0123168 -0.0121424 -0.0122999 -0.0124483 0.012496\ninternal_weight=0 180.715 181.294 173.041 9.68386 167.231 171.031 165.838 158.711 162.626\ninternal_count=2200 1098 1102 1066 44 1041 1054 1030 991 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=93\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=477.294 13.8324 9.39911 4.03182 2.35696 1.39654 1.2538 0.86623 0.219748 0.112455 0.0021018\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0037228250621553854 -0.00077607930633078815 -0.0052993213812286511 -0.0087869946845911765 0.0099937591588344175 -0.0092148476534356458 0.0044366742937168406 0.011669154851845958 -0.01107307129534235 0.012478385119972027 -0.012574244892851392 -0.012451588856399083\nleaf_weight=5.8039668947458258 9.1734958142042142 4.792896404862403 6.8843115866184226 3.642341434955596 5.1779054552316657 4.2406650483608246 5.5129793882369977 6.0426647067069998 156.71021376550198 15.57025372982025 135.98024992644787\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0114621 -0.011582 0.0119188 -0.00382074 0.0121985 0.00852464 -0.0122592 0.0124219 -0.0124109 -0.0124642\ninternal_weight=0 180.703 178.829 175.91 14.3514 170.106 9.75364 164.477 160.353 157.593 151.551\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=94\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 1 1 3 0 12 4 12 2 3 0\nsplit_gain=471.203 10.1024 8.9944 4.10795 3.07828 1.90423 1.37284 0.627763 1.46008 0.00919863 0.00367758\nthreshold=2.5000000000000004 1.0880563133346253 1.0383879925828392 0.17408222448223767 1.1135288793191862 4.6533632910829281 0.36291089430411749 5.4117715327450009 1.2626160677949871 1.2103584781205146 1.0188919694060079\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 10 -3 8 -8 -9 -5\nright_child=2 6 -4 5 -6 -7 7 9 -10 -11 -12\nleaf_value=0.004491600349743192 0.0036892944905122724 -0.006457720028480593 0.001263273644817711 0.012426980177125535 -0.0068323529146318666 0.0058928484698346139 -0.012434695395169882 -0.012929504812689757 -0.0062968547003508912 -0.01242266692679248 0.012722178716319858\nleaf_weight=4.4967403411865217 5.7981792837381354 4.2399619221687308 8.2371027469634992 155.86644458770752 5.1496811658143997 4.5762947201728812 11.926167070865633 3.6728048622608176 5.7414735257625571 143.0076225399971 4.3376475870609275\nleaf_count=20 25 23 36 992 24 23 67 21 32 911 26\ninternal_value=0 -0.0115064 0.0114693 0.0119622 -0.00155362 0.0122533 -0.0120759 -0.0122209 -0.0104401 -0.0124354 0.012435\ninternal_weight=0 178.234 178.816 170.579 9.64642 164.78 168.588 164.348 17.6676 146.68 160.204\ninternal_count=2200 1098 1102 1066 44 1041 1054 1031 99 932 1018\nis_linear=0\nshrinkage=0.01\n\n\nTree=95\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 1 3 0 13\nsplit_gain=465.066 13.165 9.46367 5.06023 3.26004 1.19462 1.10209 1.12596 0.127236 0.112526 0.0136376\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2807709791646134 1.2471304352583659 1.1019912764466293 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.005263358030343189 -0.011756429735597748 -0.0026600437004067634 -0.0055566266480208742 0.0014899715510666991 0.012340296453689111 0.0082601573012545323 -0.01096579362919285 -0.012913660672768478 -0.013022619989825263 0.014223074635333675 -0.012401179280394154\nleaf_weight=7.0765473842620841 4.4549606442451468 6.43399554491043 4.9243475645780546 8.1774091571569425 154.23688520491123 7.3712036758661261 6.3036869913339606 3.6018090695142746 3.6193981617689124 3.241055652499198 145.15276312828064\nleaf_count=33 20 30 26 36 988 38 39 21 21 18 930\ninternal_value=0 0.011384 -0.011521 -0.00318153 0.0119096 0.0121949 -0.0121649 -0.00866455 -0.0123573 0.012379 -0.0124163\ninternal_weight=0 178.36 176.234 12.6324 171.926 164.849 163.602 8.52616 155.076 157.478 148.772\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=96\nnum_leaves=12\nnum_cat=1\nsplit_feature=12 1 13 3 3 0 5 3 3 0 13\nsplit_gain=459.181 13.4056 9.30591 4.03399 2.3175 1.41611 1.2558 0.882651 0.221706 0.115189 0.00214523\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.0188919694060079 0 1.2103584781205146 0.52015392592939824 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 4 -1 -2 8 -7 -4 -5 -9 -11\nright_child=2 -3 7 5 -6 6 -8 9 -10 10 -12\nleaf_value=0.0036086186726572234 -0.00072808498379802584 -0.0051773211771902203 -0.0086335977039601469 0.009871434769221225 -0.0091157552911791256 0.0042726952150627245 0.011556460095744139 -0.010953298511278495 0.012389689034235903 -0.012487277221084074 -0.012362043853225747\nleaf_weight=5.7841315865516654 9.15299443900585 4.7695134729146949 6.77994181215763 3.5776897668838492 5.146188646554946 4.1969351470470428 5.42900203168392 5.9274936020374289 153.22864380478859 15.247439235448836 132.91761992871761\nleaf_count=25 39 21 38 22 24 22 30 36 987 96 860\ninternal_value=0 0.0113604 -0.0114777 0.0118184 -0.00374676 0.0121037 0.00838072 -0.0121649 0.0123322 -0.0123202 -0.0123749\ninternal_weight=0 176.986 175.172 172.216 14.2992 166.432 9.62594 160.872 156.806 154.093 148.165\ninternal_count=2200 1107 1093 1086 63 1061 52 1030 1009 992 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=97\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 13\nsplit_gain=453.356 9.95714 8.78687 4.11157 3.89818 2.19399 1.92444 0.886595 0.116119 0.00362293 0.00206919\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1331424306771034\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0025357977295348338 0.0035760829185181101 -0.0085869486709159414 0.0012710035471421061 0.012339066554862017 0.0030209704473280296 -0.012254761429408918 0.0057354572317267188 -0.010913762838314509 -0.012456485356524456 0.012634917892501589 -0.012333026050312501\nleaf_weight=4.5035694986581785 5.7784184813499442 6.748763144016265 8.2159240990877134 152.36439019441605 5.5852368474006644 4.7964768409729004 4.5296785980463019 5.8896664828062049 15.132853299379347 4.2547541409730902 131.90314075350761\nleaf_count=21 25 38 36 992 25 22 23 36 96 26 860\ninternal_value=0 -0.0114048 0.0113672 0.0118641 -0.00358253 -0.00754833 0.0121613 -0.012134 -0.0122906 0.0123471 -0.0123457\ninternal_weight=0 174.56 175.143 166.927 14.8853 9.30005 161.149 159.674 152.926 156.619 147.036\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=98\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 13\nsplit_gain=447.47 9.94312 8.75192 4.10856 3.82892 2.16413 1.92848 0.890591 0.117059 0.00349389 0.00199606\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1331424306771034\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0025118570321141639 0.003543828546231365 -0.0085405633770825017 0.0012582600446768611 0.012310385405129153 0.0029898623169631908 -0.012173829147666562 0.0056914779499498379 -0.010874543323456404 -0.012426148903942088 0.012601998950213942 -0.012304430125577373\nleaf_weight=4.5010414570569974 5.7727281004190436 6.7177188396453849 8.216139689087866 151.19802390038967 5.5869063287973395 4.7801623344421387 4.5190868377685538 5.8519877046346656 15.018672093749045 4.2233670949935904 130.89266076683998\nleaf_count=21 25 38 36 992 25 22 23 36 96 26 860\ninternal_value=0 -0.0113701 0.0113324 0.0118319 -0.00355087 -0.00748813 0.0121311 -0.0121036 -0.0122613 0.0123183 -0.012317\ninternal_weight=0 173.349 173.929 165.713 14.8681 9.2812 159.94 158.481 151.763 155.421 145.911\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=99\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 1 3 0 13\nsplit_gain=441.746 12.7653 9.31843 4.99218 3.26955 1.20072 1.11786 1.13201 0.132119 0.111368 0.0134349\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2807709791646134 1.2471304352583659 1.1019912764466293 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0051016874071849981 -0.011652093861156598 -0.0026212564476081851 -0.0053542682732567589 0.0015355398081075885 0.012223582385922003 0.0081027682103451404 -0.010801587583636776 -0.012802118722278244 -0.012910111784914878 0.014116472054025447 -0.012285719406258369\nleaf_weight=7.0206759572029105 4.4283120781183234 6.3895442187786093 4.8530980348587018 8.1597683578729612 149.61065053939819 7.2679267376661292 6.1259646713733664 3.5215911716222763 3.5325103402137747 3.1741469800472251 140.77939322590828\nleaf_count=33 20 30 26 36 988 38 39 21 21 18 930\ninternal_value=0 0.0112505 -0.0113855 -0.00310369 0.011781 0.012074 -0.012042 -0.00848612 -0.0122399 0.0122629 -0.012301\ninternal_weight=0 173.463 171.401 12.5881 167.073 160.053 158.813 8.37469 150.438 152.785 144.312\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=100\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 0 0 13\nsplit_gain=436.147 12.9997 9.17794 4.83667 7.71425 2.30041 3.21983 1.09518 0.898376 0.574871 0.119465 0.00193507\nthreshold=4.8980530291692244 1.1418730677972666 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2132009332284019 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1331424306771034\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.012598899897259073 -0.012717094870217461 -0.008984420420167661 -0.0084493140949224756 0.012278572017045622 -0.0053627297864437696 0.0016220008009543458 -0.00076403631847804694 0.0068067686427393205 -0.010793868185382477 0.0092501954126155556 -0.012369266850329987 -0.012248528699790182\nleaf_weight=5.4738719165325147 4.4899299442768079 3.1243891119956961 6.6552451252937308 148.79332627356052 4.2457901984453201 5.2246337383985511 4.5245710760354996 3.9316168129444113 5.7733995616435996 6.5440012514591208 14.798285514116285 128.88568297028542\nleaf_count=28 21 14 38 986 21 22 20 22 36 36 96 860\ninternal_value=0 0.0112274 -0.0113432 0.0116011 0.00475281 -0.00365763 -0.0067176 0.0120191 -0.0120442 0.012151 -0.0122043 -0.012261\ninternal_weight=0 172.113 170.352 168.989 9.71966 14.2391 9.0145 159.269 156.113 155.337 149.457 143.684\ninternal_count=2200 1107 1093 1093 49 63 41 1044 1030 1022 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=101\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 1\nsplit_gain=430.604 9.80425 8.56728 4.12758 3.75516 2.13331 1.94974 0.902526 0.120434 0.003291 0.00187195\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0024610949757169188 0.0034170707896730634 -0.0084036813821080705 0.0012591097189687472 0.012227811808809953 0.0029872632309882359 -0.0120799815286336 0.0055368181286559971 -0.010755578011119147 -0.012458425150717559 0.012513789043507291 -0.012227584013425725\nleaf_weight=4.4820600450038892 5.7499960809946051 6.6246236264705649 8.1965416967868787 147.76376350224018 5.5708411186933509 4.7484640330076218 4.4728911966085425 5.7362003177404395 3.6040295958518973 4.1367206871509543 138.96894171833992\nleaf_count=21 25 38 36 992 25 22 23 36 23 26 933\ninternal_value=0 -0.0112721 0.0112337 0.011738 -0.00349634 -0.00740934 0.012044 -0.012015 -0.0121763 0.0122356 -0.0122334\ninternal_weight=0 169.735 170.32 162.123 14.8014 9.23052 156.373 154.934 148.309 151.9 142.573\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=102\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 0 3 0 13\nsplit_gain=425.074 12.4845 9.23011 4.90727 3.2835 1.21283 1.13112 1.14085 0.135724 0.109784 0.013461\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2748487141050349 1.2471304352583659 1.1019912764466293 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0049778358478839956 -0.011540055145930929 -0.0025946679587464223 -0.005176469750789019 0.0015614441249464795 0.012140316598482003 0.0079746491782619715 -0.010682738674280649 -0.012699790400886857 -0.012834113847659603 0.014034383790532122 -0.012203420021694509\nleaf_weight=6.9820207804441443 4.4054487347602835 6.3585127145051947 4.7728642076253873 8.1437346786260587 146.19426515698433 7.1882317513227454 5.995763197541236 3.4891259223222733 3.4694281220436087 3.1256164759397498 137.54487712681293\nleaf_count=33 20 30 26 36 988 38 39 21 21 18 930\ninternal_value=0 0.0111528 -0.0112872 -0.0030379 0.0116875 0.0119868 -0.0119539 -0.00835365 -0.0121563 0.01218 -0.0122189\ninternal_weight=0 169.849 167.821 12.5492 163.49 156.508 155.272 8.26199 147.01 149.32 141.014\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=103\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 1 13 3 1 2 0 0 5 3 0 12 1\nsplit_gain=419.749 12.6708 9.0782 3.39188 5.28685 2.27837 3.1846 1.50723 1.28274 0.911349 0.122902 0.0297226 0.0018451\nthreshold=4.8980530291692244 1.1058192561221138 0.85162615880101311 0.52015392592939824 0.71240026013066937 1.2396581529761168 1.1305001193370379 1.0188919694060079 0 1.2103584781205146 1.1305001193370379 4.6109421182883317 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 11 -9 -4 -11 -5 -12\nright_child=2 -3 9 7 -6 -7 -8 8 -10 10 12 -13 -14\nleaf_value=0.012351933985225253 -0.012639327558651658 -0.0049978167891428478 -0.0083121599378832827 0.012174850035638243 -0.0029624418194018304 0.0016603817118251559 -0.00072742261257317819 0.0038479335885208332 0.011322631862985497 -0.010676631350365107 -0.012404771014696756 0.013072322724717768 -0.012173964350254593\nleaf_weight=5.1811714023351652 4.463801369071005 4.7337502092123023 6.5623845756053916 141.49028500914574 3.9903608560562134 5.2152542173862448 4.5139157176017761 4.0823434740304947 5.2465423792600614 5.6585026681423178 3.5535290241241446 3.7889730185270301 136.82027921080589\nleaf_count=27 21 21 38 965 20 22 20 22 30 36 23 22 933\ninternal_value=0 0.0111314 -0.0112462 0.0115976 0.00568894 -0.0035964 -0.00665013 0.0119481 0.00805169 -0.0119577 -0.0121216 0.0121983 -0.0121798\ninternal_weight=0 168.513 166.788 163.78 9.17153 14.193 8.97772 154.608 9.32889 152.595 146.032 145.279 140.374\ninternal_count=2200 1107 1093 1086 47 63 41 1039 52 1030 992 987 956\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=104\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 1\nsplit_gain=414.496 9.65399 8.36958 4.14889 3.67635 2.1038 1.97089 0.915637 0.1239 0.00324093 0.00178125\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0024147410769799582 0.0032907956136737793 -0.0082672507237290666 0.0012717490821648036 0.012148616113312298 0.0029719468011558414 -0.011993101068224678 0.0053850374445558111 -0.010639202247603822 -0.012375307604073259 0.012435231742874604 -0.012147662326368993\nleaf_weight=4.463432163000105 5.7268085181713095 6.5322043150663367 8.1755459457635862 144.36850233376026 5.5537386238574973 4.7158937305212021 4.426558941602706 5.6218095272779456 3.526504933834075 4.0560536086559287 135.75072695314884\nleaf_count=21 25 38 36 992 25 22 23 36 23 26 933\ninternal_value=0 -0.0111777 0.0111386 0.0116473 -0.00345012 -0.00733564 0.0119603 -0.0119296 -0.0120947 0.0121564 -0.0121534\ninternal_weight=0 166.164 166.753 158.578 14.7331 9.17933 152.851 151.431 144.899 148.425 139.277\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=105\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 1\nsplit_gain=409.172 9.64272 8.33944 4.14604 3.6112 2.07568 1.9751 0.919971 0.124909 0.00312715 0.00171972\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0023919117919074667 0.0032610135083013764 -0.0082225723502857631 0.0012589964479390373 0.012122675254932866 0.0029413767085274311 -0.01191559536524135 0.0053434474075359593 -0.010602038543275195 -0.012346272527333895 0.012405287935631644 -0.012121734225491339\nleaf_weight=4.4609848409891111 5.7213468253612509 6.5021716952323905 8.1757727563381177 143.23633940517902 5.5553369075059882 4.6991868317127228 4.4164533317089072 5.5852840095758429 3.4995852559804908 4.025339573621749 134.68601839244366\nleaf_count=21 25 38 36 992 25 22 23 36 23 26 933\ninternal_value=0 -0.0111452 0.0111061 0.0116176 -0.00341976 -0.00727758 0.0119328 -0.0119018 -0.0120682 0.0121304 -0.0121274\ninternal_weight=0 164.989 165.575 157.399 14.7155 9.16017 151.678 150.273 143.771 147.262 138.186\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=106\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 1 3 13 13\nsplit_gain=403.958 12.1393 9.11826 4.84883 3.30331 1.22026 1.14896 1.15094 0.140923 0.139686 0.0136315\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.50652862085158101 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0048154307667698237 -0.011434752386301792 -0.0025687003440661876 -0.0049928765177574231 0.0016203048695123462 0.012030551852132428 0.0078248548455239885 -0.010526585260092558 -0.012629827862652128 -0.01274147989509007 0.014254736264184489 -0.012099111513420758\nleaf_weight=6.9276361018419257 4.3792086988687506 6.3155386894941321 4.7263375520706159 8.1205314546823484 141.8858368396759 7.0866053700447074 5.823102429509162 3.3879836350679398 3.3874504566192618 2.8809784948825827 133.29929016530514\nleaf_count=33 20 30 26 36 990 38 39 21 21 16 930\ninternal_value=0 0.0110276 -0.0111606 -0.00295346 0.0115684 0.0118765 -0.0118417 -0.00818154 -0.0120501 0.0120748 -0.012115\ninternal_weight=0 165.097 163.124 12.4997 158.781 151.853 150.624 8.11432 142.51 144.767 136.687\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=107\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 0 0 1\nsplit_gain=398.923 12.3565 8.96124 4.86875 7.54765 2.27457 3.15416 1.1033 0.928424 0.596154 0.127467 0.00169541\nthreshold=4.8980530291692244 1.1418730677972666 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2132009332284019 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.012357867383226813 -0.0125584458675497 -0.0087865110697145192 -0.008134563143256399 0.012097676834543438 -0.005564477427618765 0.0017470621746473681 -0.00067321519566815107 0.0065135228399598021 -0.010525169669298643 0.0089643365414464066 -0.012295657044512232 -0.012071107178029537\nleaf_weight=5.3299797624349576 4.4338187426328641 3.0943052470684043 6.4416795372962943 141.00394567847252 4.202403724193573 5.1981033384799948 4.4982382953166962 3.8116702437400809 5.508841633796691 6.3454197347164145 3.4498974382877341 132.57625375688076\nleaf_count=28 21 14 38 986 21 22 20 22 36 36 23 933\ninternal_value=0 0.0110071 -0.0111209 0.0113882 0.0044567 -0.00351226 -0.00657297 0.0118253 -0.0118474 0.0119627 -0.0120164 -0.0120768\ninternal_weight=0 163.788 162.107 160.693 9.53238 14.1302 8.93206 151.161 147.977 147.349 141.535 136.026\ninternal_count=2200 1107 1093 1093 49 63 41 1044 1030 1022 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=108\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 1\nsplit_gain=393.923 9.51436 8.17079 4.16484 3.54213 2.04763 1.99828 0.932889 0.128505 0.00298058 0.00163726\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.0023437309679326121 0.0031415613777009111 -0.008090547360282278 0.0012598333755702137 0.012048004267348467 0.002937365591036255 -0.011829011290698617 0.0051920036797778058 -0.010488785486670555 -0.012267781471950734 0.012326799679190462 -0.01204626006371542\nleaf_weight=4.4421414285898191 5.6987228989601126 6.4121060669422141 8.1559071838855726 139.90764930844307 5.5389210581779471 4.6669462770223618 4.370644897222518 5.4728520363569251 3.4232925325632086 3.9427448809146872 131.526472017169\nleaf_count=21 25 38 36 992 25 22 23 36 23 26 933\ninternal_value=0 -0.011054 0.0110139 0.0115307 -0.00336883 -0.00720342 0.0118533 -0.0118206 -0.011991 0.0120556 -0.0120519\ninternal_weight=0 161.483 162.076 153.92 14.648 9.10909 148.221 146.835 140.423 143.85 134.95\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=109\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 2 12 3 0 0 1\nsplit_gain=388.891 9.50414 8.14277 4.16207 3.47944 2.02053 2.00256 0.937395 0.129554 0.00287671 0.00158119\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.17408222448223767 0.43216120423585541 1.2169811510592434 4.6533632910829281 1.2103584781205146 1.1305001193370379 1.0188919694060079 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 5 -1 9 -3 -9 -5 -10\nright_child=2 7 -4 6 -6 -7 -8 8 10 -11 -12\nleaf_value=-0.00232155241986918 0.003113067108966958 -0.0080467477253290433 0.001247200162724764 0.01202348219473909 0.0029071733036331029 -0.011753506598114558 0.0051517140279194037 -0.010452641018643025 -0.012240305029510005 0.012298435578807368 -0.012021761487888654\nleaf_weight=4.4397451132535917 5.6934010088443747 6.3826860338449469 8.1561323106288892 138.79662930965424 5.540472984313964 4.6500425189733505 4.3608272522687903 5.4370387494564048 3.3967999666929236 3.9124714732170096 130.48179976642132\nleaf_count=21 25 38 36 992 25 22 23 36 23 26 933\ninternal_value=0 -0.0110226 0.0109825 0.0115023 -0.00333926 -0.00714664 0.011827 -0.0117942 -0.0119659 0.012031 -0.0120273\ninternal_weight=0 160.329 160.919 152.763 14.6303 9.08979 147.07 145.698 139.316 142.709 133.879\ninternal_count=2200 1098 1102 1066 68 43 1041 1030 992 1018 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=110\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 0 3 13 13\nsplit_gain=384.031 11.809 9.00226 4.76724 3.32064 1.23006 1.16762 1.16149 0.146299 0.139299 0.0137905\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2748487141050349 1.2471304352583659 0.50652862085158101 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0046615205950206367 -0.011318897158755854 -0.0025425600876778118 -0.0047718068429398889 0.0016588281267335997 0.011930167500584078 0.0076757282585961997 -0.010374275634972769 -0.012509538836831825 -0.012654574698655567 0.014168693151975595 -0.012000571759863909\nleaf_weight=6.875360667705535 4.3512130677700034 6.2728656381368628 4.6311295181512824 8.0992472618818265 137.46532769501209 6.984712302684783 5.6535218209028235 3.3383296132087708 3.3067553490400305 2.8372462689876548 129.13317672908306\nleaf_count=33 20 30 26 36 990 38 39 21 21 16 930\ninternal_value=0 0.0109072 -0.0110391 -0.00287665 0.0114544 0.0117715 -0.0117349 -0.00801307 -0.0119497 0.0119754 -0.0120169\ninternal_weight=0 160.436 158.513 12.4505 154.163 147.287 146.063 7.96946 138.093 140.303 132.44\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=111\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 3 3 0 0 1\nsplit_gain=379.237 12.0277 8.84854 4.22405 2.26882 3.12395 0.993517 0.946938 0.199023 0.1322 0.00155928\nthreshold=4.8980530291692244 1.0383879925828392 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2036545671815675 1.2103584781205146 1.1239891699988165 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0030424971812455627 -0.012479905619140986 -0.0013844037308268231 -0.0079586379977406915 0.011996544398691781 0.0018278263226701558 -0.00062126822832948554 0.0057903580603234804 -0.010377633143266644 0.0092461332846040297 -0.01219251699840072 -0.011973912184054435\nleaf_weight=5.6801418960094443 4.4038830101490003 7.6054919213056555 6.3227408230304709 140.51579251885414 5.1811735928058615 4.4825735837221146 2.6717213541269293 5.3619268983602515 2.681126043200492 3.3479813486337653 128.41290432214737\nleaf_count=25 21 35 38 1016 22 20 15 36 16 23 933\ninternal_value=0 0.010887 -0.0110001 0.0115029 -0.00343161 -0.00649808 0.0118323 -0.0117424 0.011945 -0.0119168 -0.0119795\ninternal_weight=0 159.154 157.513 151.549 14.0676 8.88646 145.869 143.446 143.197 137.123 131.761\ninternal_count=2200 1107 1093 1072 63 41 1047 1030 1032 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=112\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 4 3 3 2 3 0 0 1\nsplit_gain=374.482 9.38284 7.95469 3.4145 3.35123 2.30736 1.99677 0.951558 0.164062 0.133278 0.00150624\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.43216120423585541 0.24292548700197389 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1019912764466293 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 6 -2 8 -1 -3 -6 -9 -11\nright_child=2 7 -4 -5 5 -7 -8 9 -10 10 -12\nleaf_value=-0.0022742930313611734 0.0045864377277602987 -0.0079154672680135426 0.0012723334437743984 0.0029005308772228357 0.011970643281808279 0.0023368028851801169 -0.011675796534023206 -0.010342193487915749 0.0096321200802284169 -0.012166120385923017 -0.011950421255529416\nleaf_weight=4.4228170961141569 6.8495872318744651 6.2937981635332099 8.1482012718915922 5.5277455747127524 136.85982552170753 2.5587038099765769 4.617729663848877 5.3266747146844855 3.0672666579484931 3.3218240439891806 127.3838324546814\nleaf_count=21 33 38 36 25 999 15 22 36 19 23 933\ninternal_value=0 -0.0109344 0.0108939 -0.00329078 0.0114189 0.0117473 -0.00707639 -0.0117168 0.0119194 -0.0118927 -0.0119559\ninternal_weight=0 156.894 157.484 14.5683 149.335 142.486 9.04055 142.326 139.927 136.032 130.706\ninternal_count=2200 1098 1102 68 1066 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=113\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 1 3 13 13\nsplit_gain=369.743 11.5283 8.94425 4.70482 3.33432 1.24388 1.18244 1.16995 0.150261 0.135868 0.0137881\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.50652862085158101 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0045481591427868643 -0.011214911759732413 -0.00248916762493072 -0.0046428993468770816 0.0016966737080577384 0.011858293701570646 0.0075545867732659299 -0.010263459009419313 -0.012473288001992083 -0.012590241805350988 0.014086047715761526 -0.011930189233497734\nleaf_weight=6.8382195681333533 4.3355762958526602 6.2500895410776129 4.6038386523723593 8.0849211513996107 134.2060534954071 6.9077079594135276 5.5297831147909156 3.2586655765771866 3.2463088184595099 2.794679343700408 126.06199045479298\nleaf_count=33 20 30 26 36 990 38 39 21 21 16 930\ninternal_value=0 0.010819 -0.0109495 -0.00281032 0.0113708 0.011695 -0.0116579 -0.00788825 -0.0118777 0.0119037 -0.0119468\ninternal_weight=0 156.997 155.121 12.4205 150.747 143.908 142.701 7.8625 134.838 137.001 129.308\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=114\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 0 0 1\nsplit_gain=365.207 11.8035 8.7602 4.90915 7.48325 2.24729 3.08764 1.61461 0.960584 0.620165 0.13599 0.00148559\nthreshold=4.8980530291692244 1.1418730677972666 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.0121605510878728 -0.012406376929544201 -0.0086217658477737453 -0.0078303047201647366 0.011941585544633749 -0.0058497754944504352 0.0018617566323419915 -0.00059203436758812223 0.004200265957220374 -0.010268466085853337 0.0086955788395910467 -0.012120327499410055 -0.011904538596612406\nleaf_weight=5.198599845170973 4.3776940703392011 3.0675791800022116 6.2354318350553504 134.32072851061821 4.1475776135921478 5.1703430712223044 4.4717477709054947 2.8528435677289954 5.2526157349348059 6.1555690318346015 3.27369500696659 125.34668929874897\nleaf_count=28 21 14 38 991 21 22 20 17 36 36 23 933\ninternal_value=0 0.0108 -0.0109128 0.0111902 0.00416806 -0.00337615 -0.00643642 0.0116481 -0.0116669 0.0117993 -0.0118456 -0.01191\ninternal_weight=0 155.743 154.128 152.675 9.34618 14.0198 8.84944 143.329 140.108 140.476 133.873 128.62\ninternal_count=2200 1107 1093 1093 49 63 41 1044 1030 1027 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=115\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=360.657 9.26298 7.79894 3.36982 3.34957 2.30912 1.96873 0.965315 0.169596 0.137097 0.00143538\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1019912764466293 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.002231004842368353 0.0044722105891586827 -0.0077877222600383801 0.0012734572006268606 0.011902406907098134 0.0028950651698088641 0.0022183180149268583 -0.011592742069928656 -0.010233678133497397 0.0095049131254496683 -0.012094956010599227 -0.01188200330829832\nleaf_weight=4.4036290198564512 6.8154112100601187 6.2069743424653998 8.1283377856016141 133.61140117049217 5.5111753046512595 2.5355734378099433 4.5853429436683655 5.2179407626390448 3.0171624273061743 3.2478859573602668 124.33365316689014\nleaf_count=21 33 38 36 999 25 15 22 36 19 23 933\ninternal_value=0 -0.0108489 0.0108069 0.0113378 -0.00324314 0.011674 -0.0070065 -0.0116423 0.0118495 -0.0118224 -0.0118874\ninternal_weight=0 153.507 154.108 145.98 14.5001 139.164 8.98897 139.006 136.629 132.799 127.582\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=116\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=356.084 9.25452 7.77423 3.37564 3.29039 2.30477 1.94303 0.97008 0.171605 0.138215 0.00138696\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1019912764466293 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.0022098611480265355 0.0044348129128384825 -0.0077453324675561845 0.0012606855528544286 0.011879963281147866 0.0028653355600419075 0.0021985282671336528 -0.011520075325691857 -0.010199088771527318 0.0094616485007873348 -0.012069938899418533 -0.011859775994874238\nleaf_weight=4.4013165533542615 6.8042112588882437 6.1786776483058921 8.128575995564459 132.5306067019701 5.5126655995845786 2.5328269600868216 4.5682099461555481 5.1834535598754874 3.0007317662239066 3.2222003340721121 123.32606513798237\nleaf_count=21 33 38 36 999 25 15 22 36 19 23 933\ninternal_value=0 -0.0108194 0.010777 0.0113109 -0.00321476 0.0116498 -0.00695158 -0.0116179 0.0118264 -0.0117996 -0.0118651\ninternal_weight=0 152.393 152.997 144.868 14.4822 138.064 8.96953 137.91 135.531 131.732 126.548\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=117\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 1 3 0 3 13 13\nsplit_gain=351.664 11.1892 8.83584 4.62421 3.35814 1.26379 1.20229 1.17857 0.155966 0.133748 0.0139255\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.99689265265511573 1.2190084357665867 1.2748487141050349 1.2471304352583659 0.50652862085158101 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 -4 -8 -6 -10\nright_child=2 -3 6 -5 5 -7 8 -9 10 -11 -12\nleaf_value=0.0043977029078519306 -0.011103751965624334 -0.0024352319637420349 -0.0044310458950983858 0.0017303272672872406 0.011767149428042398 0.0073928902583190884 -0.010116790384815345 -0.012357777546772215 -0.012512368623641197 0.013997373741891726 -0.011840821511584412\nleaf_weight=6.7930689156055442 4.3070008754730216 6.2159724980592719 4.5129703879356375 8.0633134096860868 129.95225435495377 6.7990722060203543 5.3659416288137427 3.2098006010055542 3.1680207401514044 2.7458223253488532 122.04319985210896\nleaf_count=33 20 30 26 36 990 38 39 21 21 16 930\ninternal_value=0 0.0107052 -0.0108353 -0.00273814 0.0112635 0.0115978 -0.0115595 -0.00772562 -0.0117863 0.0118133 -0.0118578\ninternal_weight=0 152.506 150.67 12.3703 146.29 139.497 138.3 7.72277 130.577 132.698 125.211\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 990 1006 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=118\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 12 3 0 13 1\nsplit_gain=347.354 11.4969 8.64907 3.44577 2.23875 3.05402 1.01819 0.980154 0.141017 0.0031922 0.00136848\nthreshold=4.8980530291692244 1.0383879925828392 0.85162615880101311 0.24292548700197389 1.2396581529761168 1.1305001193370379 4.6533632910829281 1.2103584781205146 1.1305001193370379 0.45127701946665238 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 9 -4 -9 -5 -10\nright_child=2 -3 7 6 -6 -7 -8 8 10 -11 -12\nleaf_value=0.0043608776133212089 -0.012329691823721151 -0.0013355720347102335 -0.0076598331583418704 0.011821193163472292 0.0019326012486365885 -0.00054889515242026888 0.0071836212817089256 -0.010126887046242443 -0.012026661362053088 0.012131761135320572 -0.011816353848231112\nleaf_weight=6.7819839864969245 4.3476657271385175 7.5573098063468924 6.1208724677562705 128.65339240431786 5.1521086990833274 4.4556896090507507 4.8927531987428656 5.1108309030532828 3.1750259548425666 3.3969989418983451 121.33243930339813\nleaf_count=33 21 35 38 988 22 20 27 36 23 24 933\ninternal_value=0 0.0106865 -0.0107995 0.0113186 -0.00330294 -0.00636701 0.0116632 -0.0115702 -0.0117549 0.0118292 -0.0118217\ninternal_weight=0 151.282 149.695 143.725 13.9555 8.80336 136.943 135.739 129.618 132.05 124.507\ninternal_count=2200 1107 1093 1072 63 41 1039 1030 992 1012 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=119\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=343.003 9.14036 7.60033 3.39367 3.22645 2.30998 1.91995 0.985015 0.177521 0.142164 0.00132259\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1019912764466293 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.0021646727155481592 0.0043243351983920418 -0.0076180060190465674 0.0012846060966270371 0.011815162536693551 0.0028552143270055884 0.0020735701477969919 -0.011444359954828454 -0.010092884814513195 0.0093340445472634009 -0.012002600889987711 -0.011795020050513826\nleaf_weight=4.3845860958099347 6.7709570676088324 6.0930745601654044 8.1205654740333539 129.34253388643265 5.4989442378282538 2.5087291002273551 4.5363298505544662 5.0769385099411002 2.9494865685701361 3.1497036069631568 120.34133958816528\nleaf_count=21 33 38 36 999 25 15 22 36 19 23 933\ninternal_value=0 -0.0107364 0.0106929 0.0112326 -0.00316965 0.0115796 -0.00688344 -0.0115467 0.0117598 -0.0117329 -0.0118003\ninternal_weight=0 149.081 149.692 141.572 14.4199 134.801 8.92092 134.661 132.292 128.568 123.491\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=120\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 0 0 1\nsplit_gain=338.703 11.4058 8.61848 4.95951 7.40906 2.21482 3.01786 1.62059 0.989906 0.639811 0.143322 0.0012783\nthreshold=4.8980530291692244 1.1418730677972666 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.011986102826879879 -0.012260015618395396 -0.0085127158823981846 -0.0075763603222991629 0.011813533357951975 -0.0060650212813650687 0.0019537523060449528 -0.00052872352232583573 0.003958357837271863 -0.010059062395059878 0.0084718764242837103 -0.011978872474060029 -0.011773975121103158\nleaf_weight=5.0898288488388044 4.3233644813299161 3.0490113198757163 6.0654402524232855 128.05564866960049 4.1098169386386871 5.1458082795143119 4.449821725487709 2.7860439270734778 5.0432380586862555 5.9980200678110114 3.1245095878839484 119.35581690073013\nleaf_count=28 21 14 38 991 21 22 20 17 36 36 23 933\ninternal_value=0 0.0106297 -0.0107432 0.0110293 0.00392201 -0.0032548 -0.00630982 0.0115071 -0.0115234 0.011664 -0.0117112 -0.0117792\ninternal_weight=0 149.088 147.508 146.039 9.19965 13.919 8.77319 136.84 133.589 134.054 127.524 122.48\ninternal_count=2200 1107 1093 1093 49 63 41 1044 1030 1027 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=121\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=334.519 9.08007 7.5238 3.40574 3.16812 2.31244 1.90181 0.994828 0.18035 0.144491 0.00123556\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1019912764466293 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.002119889910292252 0.0042519481716119245 -0.0075348934447213214 0.0012714634811976026 0.011773432488458498 0.0028407221349402551 0.0019948279667599709 -0.01137414518939448 -0.010025414506299979 0.0092597147515375514 -0.011955470281293335 -0.011753213555815101\nleaf_weight=4.3700948655605298 6.7486160248517981 6.0379702448844901 8.1060060411691648 127.24733920395374 5.4887609034776679 2.4933297038078299 4.5149343758821487 5.009731099009513 2.9196884036064139 3.0994450449943534 118.37589962780476\nleaf_count=21 33 38 36 999 25 15 22 36 19 23 933\ninternal_value=0 -0.0106816 0.0106372 0.0111818 -0.00313248 0.0115343 -0.00682245 -0.0115004 0.011717 -0.0116897 -0.0117584\ninternal_weight=0 146.897 147.515 139.409 14.3738 132.66 8.88503 132.523 130.167 126.485 121.475\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=122\nnum_leaves=13\nnum_cat=0\nsplit_feature=1 3 13 3 3 13 4 3 1 3 13 1\nsplit_gain=330.412 10.7888 8.72148 4.56347 3.38767 1.28441 1.90166 1.2276 1.19795 0.163584 0.0143372 0.00236703\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.46553849925547169 0.4118824176054639 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.91589481622423152 0.98578357518082749\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 11 -7 8 -4 -9 -11 -6\nright_child=2 -3 7 -5 5 6 -8 9 -10 10 -12 -13\nleaf_value=0.0042162407973546394 -0.010986729152202612 -0.0023805817856221347 -0.0042018005701513475 0.0018008187386292359 0.011733619618126408 0.0025605662397152947 0.01198496543037272 -0.0099359579181289674 -0.012297016657804248 -0.012427510570954115 -0.011735807188259666 0.012036506035439785\nleaf_weight=6.7377667278051367 4.2773672491312018 6.1643211692571631 4.4499050974845877 8.0296561419963819 122.82247377932072 3.8829228729009611 4.7727183848619461 5.1646318137645713 3.1025533974170685 3.0752403140068045 117.14441556483507 2.6355134844779959\nleaf_count=33 20 30 26 36 976 20 29 39 21 21 930 19\ninternal_value=0 0.0105686 -0.0106972 -0.00264356 0.0111353 0.0114829 0.00775718 -0.0114428 -0.00752732 -0.0116786 -0.0117535 0.01174\ninternal_weight=0 147.016 145.244 12.307 140.851 134.114 8.65564 132.937 7.55246 125.384 120.22 125.458\ninternal_count=2200 1107 1093 56 1077 1044 49 1037 47 990 951 995\nis_linear=0\nshrinkage=0.01\n\n\nTree=123\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 3 3 0 0 1\nsplit_gain=326.309 11.1629 8.53852 3.47818 2.19401 2.98084 1.05022 1.00447 0.230315 0.147412 0.00121965\nthreshold=4.8980530291692244 1.0383879925828392 0.85162615880101311 0.24292548700197389 1.2396581529761168 1.1305001193370379 1.2103584781205146 1.2103584781205146 1.1305001193370379 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.0041808072313060871 -0.012188456341462324 -0.0013135245412359661 -0.007452907657190211 0.011734492811967293 0.0019856131660499973 -0.00050454276400057046 0.0050832675582136964 -0.0099548617027502024 0.0086109296926956055 -0.011915111183337393 -0.011712651129233823\nleaf_weight=6.7269768714904776 4.2972104847431165 7.5233336538076392 5.9824671596288672 126.71518017351627 5.1337811648845664 4.4392842352390289 2.4621325284242621 4.9389507174491873 2.4054043442010871 3.0535118430852881 116.43823724985123\nleaf_count=33 21 35 38 1010 22 20 14 36 15 23 933\ninternal_value=0 0.0105491 -0.0106621 0.0111944 -0.00320271 -0.0062515 0.0115529 -0.0114554 0.0116763 -0.0116478 -0.0117178\ninternal_weight=0 145.833 144.283 138.31 13.8703 8.73649 131.583 130.413 129.121 124.431 119.492\ninternal_count=2200 1107 1093 1072 63 41 1039 1030 1025 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=124\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=322.275 8.98646 7.35463 3.42342 3.10219 2.3076 1.87792 1.00948 0.22639 0.148609 0.00117911\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1135288793191862 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.0020703786035541055 0.0041456449081332235 -0.0074119546663873872 0.001297708150714142 0.011713571699857881 0.0028310943730794286 0.0019050551721920377 -0.011290956442176663 -0.0099217274738321488 0.0086459429660141716 -0.011892587412053462 -0.011692710429540228\nleaf_weight=4.354482635855673 6.7162475883960715 5.9555020779371253 8.098051041364668 124.55257472395897 5.4763904213905326 2.4751406461000434 4.482684850692749 4.9060551673173896 2.453139215707778 3.0288257524371138 115.47526681423187\nleaf_count=21 33 38 36 1002 25 15 22 36 16 23 933\ninternal_value=0 -0.0106013 0.0105564 0.0111069 -0.00308274 0.011468 -0.00674755 -0.0114332 0.0116543 -0.0116272 -0.0116978\ninternal_weight=0 143.679 144.295 136.197 14.3136 129.481 8.83717 129.366 127.006 123.41 118.504\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=125\nnum_leaves=13\nnum_cat=0\nsplit_feature=1 3 13 3 3 13 4 3 1 3 13 1\nsplit_gain=318.288 10.5411 8.67223 4.50363 3.4047 1.30362 1.87797 1.24374 1.20197 0.167975 0.0143031 0.00228406\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 0.46553849925547169 0.4118824176054639 1.2190084357665867 1.2807709791646134 1.2471304352583659 0.91589481622423152 0.98578357518082749\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 11 -7 8 -4 -9 -11 -6\nright_child=2 -3 7 -5 5 6 -8 9 -10 10 -12 -13\nleaf_value=0.0041107512992947281 -0.010889173052127868 -0.0023286756486869831 -0.0040685715232602988 0.0018336403648211005 0.011674020342920595 0.0024723335122886414 0.011887251067803651 -0.0098311632479522199 -0.012237191582392556 -0.012373531885966944 -0.01167608051312901 0.011974841131988394\nleaf_weight=6.7055784165859214 4.2613581717014304 6.1422684192657462 4.4045537114143363 8.0157679766416532 119.80825310945511 3.8575612604618055 4.6999061703681946 5.0487656891345969 3.0478324815630913 3.0180373787879935 114.27096086740494 2.5783367082476607\nleaf_count=33 20 30 26 36 976 20 29 39 21 21 930 19\ninternal_value=0 0.0104887 -0.0106157 -0.00258241 0.0110606 0.0114165 0.00764317 -0.0113755 -0.00740933 -0.0116171 -0.011694 0.0116804\ninternal_weight=0 143.792 142.067 12.2771 137.65 130.944 8.55747 129.79 7.45239 122.338 117.289 122.387\ninternal_count=2200 1107 1093 56 1077 1044 49 1037 47 990 951 995\nis_linear=0\nshrinkage=0.01\n\n\nTree=126\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 0 0 1\nsplit_gain=314.401 10.9428 8.46082 4.99659 7.31822 2.17339 2.94441 1.62378 1.01929 0.65739 0.151597 0.0011641\nthreshold=4.8980530291692244 1.1418730677972666 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.011821223552405984 -0.01211828067167728 -0.0083549053960523048 -0.007330951064208756 0.011695488984810114 -0.0062488095872424536 0.0020164784530339835 -0.0004812572430114093 0.0037350293821458774 -0.0098520656107476609 0.0082626326367252687 -0.011853854472022708 -0.011653751880301742\nleaf_weight=4.9835917651653272 4.2711451649665815 3.0224751830101004 5.9009730070829383 121.99094026535749 4.0729278922080994 5.1216102093458167 4.428809255361557 2.7233560085296622 4.8364271074533454 5.8457410037517539 2.9836553186178199 113.57177289575338\nleaf_count=28 21 14 38 991 21 22 20 17 36 36 23 933\ninternal_value=0 0.01047 -0.0105827 0.0108775 0.00369471 -0.00315179 -0.00619432 0.0113757 -0.0113896 0.0115385 -0.0115869 -0.0116589\ninternal_weight=0 142.639 141.114 139.617 9.05652 13.8216 8.69995 130.56 127.293 127.837 121.392 116.555\ninternal_count=2200 1107 1093 1093 49 63 41 1044 1030 1027 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=127\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=310.52 8.89017 7.21421 3.441 3.03703 2.30801 1.85061 1.02438 0.232504 0.152824 0.00112562\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1135288793191862 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.0020251732595053065 0.0040416818488892134 -0.0072904918079360094 0.0013014895825141774 0.011655441859762342 0.0028221062933856461 0.0018017269812770202 -0.011204004655331523 -0.0098194034273483555 0.0085219970663455956 -0.011832167168075055 -0.011634593369984545\nleaf_weight=4.336623549461363 6.68372519314289 5.8745168149471274 8.0780717283487302 121.50005307048559 5.4600492268800727 2.4544609785079947 4.451055184006691 4.8041512817144385 2.4150902703404418 2.9593545943498603 112.62594214081764\nleaf_count=21 33 38 36 1002 25 15 22 36 16 23 933\ninternal_value=0 -0.0105231 0.0104772 0.0110343 -0.0030351 0.0114042 -0.00667435 -0.011368 0.0115944 -0.011567 -0.0116397\ninternal_weight=0 140.512 141.131 133.053 14.2477 126.37 8.78768 126.264 123.915 120.389 115.585\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=128\nnum_leaves=12\nnum_cat=0\nsplit_feature=1 3 13 3 3 0 3 0 12 3 13\nsplit_gain=306.665 10.3159 8.60664 4.42527 3.42128 1.56702 1.26013 1.2097 0.486619 0.172482 0.0142643\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 1.1546668796111181 1.2190084357665867 1.2748487141050349 4.7089134508189288 1.2471304352583659 0.91589481622423152\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 8 7 -4 -6 -8 -11\nright_child=2 -3 6 -5 5 -7 9 -9 -10 10 -12\nleaf_value=0.0040075830752285459 -0.010791258664161543 -0.0022911036294182932 -0.0039066211246769891 0.001848375807223711 0.011405071361118782 0.0032508269823621106 -0.0097274868394169722 -0.012150593014704779 0.015438992506513561 -0.012321855172963627 -0.011618701668609611\nleaf_weight=6.673240900039672 4.2370366901159269 6.1162286698818198 4.3333545476198188 7.9996990114450455 122.43075216561556 2.3437418267130843 4.93493328988552 3.0207127407193184 3.0653077363967887 2.9616961777210227 111.44880411028862\nleaf_count=33 20 30 26 36 1015 13 39 21 16 21 930\ninternal_value=0 0.0104104 -0.0105369 -0.00252817 0.0109879 0.0113523 -0.0113104 -0.00729287 0.0115036 -0.0115579 -0.0116369\ninternal_weight=0 140.629 138.936 12.2367 134.513 127.84 126.7 7.35407 125.496 119.345 114.411\ninternal_count=2200 1107 1093 56 1077 1044 1037 47 1031 990 951\nis_linear=0\nshrinkage=0.01\n\n\nTree=129\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 0 2 3 10 0 1\nsplit_gain=302.966 14.6068 8.38105 5.84617 7.8354 2.14747 2.91664 1.65585 1.03514 0.918378 0.15588 0.00111144\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 3.5000000000000004 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 9 -4 -5 -10 -12\nright_child=2 -3 8 7 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.011726185239273917 -0.012055880824554123 -0.014577869113709856 -0.00720850328744819 0.015235686245854991 -0.0067572845738351466 0.0020369194344768199 -0.00044959123925834312 0.0036043640020586121 -0.0097505445636484039 0.011334523246498862 -0.011794975704196265 -0.011597156178609458\nleaf_weight=4.9256881549954397 4.2455203086137754 2.3039512634277335 5.8202223926782599 6.3569243550300589 4.2918100357055664 5.1101958006620398 4.4187006503343582 2.6909954696893683 4.7356895208358756 118.93430352210999 2.9149543419480315 110.75694204866886\nleaf_count=28 21 11 38 38 22 22 20 17 36 991 23 933\ninternal_value=0 0.0103925 -0.0105052 0.0108118 0.00312 -0.00310438 -0.00613674 0.0113658 -0.0113258 0.0115325 -0.0115282 -0.0116022\ninternal_weight=0 139.504 138.002 137.2 9.2175 13.7744 8.66422 127.982 124.228 125.291 118.408 113.672\ninternal_count=2200 1107 1093 1096 50 63 41 1046 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=130\nnum_leaves=12\nnum_cat=0\nsplit_feature=10 13 1 3 4 3 2 3 0 0 1\nsplit_gain=299.24 8.77579 7.11692 3.45684 2.98471 2.31711 1.82495 1.0403 0.239181 0.157136 0.0010749\nthreshold=2.5000000000000004 0.85162615880101311 1.0383879925828392 0.24292548700197389 0.43216120423585541 1.1981154781470527 1.2169811510592434 1.2103584781205146 1.1135288793191862 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 6 8 -1 -3 -5 -9 -11\nright_child=2 7 -4 5 -6 -7 -8 9 -10 10 -12\nleaf_value=-0.0019916155397423346 0.0039419205656904413 -0.0071685290069638061 0.0012768758995419249 0.011599863686642363 0.0028190828391773475 0.0016767681654813876 -0.011134295518006545 -0.009718316568066241 0.0083947599949241291 -0.01177408562799823 -0.011578742585992516\nleaf_weight=4.3151919990777952 6.6520539820194236 5.7942816615104666 8.0542654693126661 118.53211715072393 5.4393127858638755 2.4312382340431204 4.4190405607223511 4.7040389925241461 2.3749697953462592 2.8910447731614104 109.82840002328157\nleaf_count=21 33 38 36 1002 25 15 22 36 16 23 933\ninternal_value=0 -0.0104477 0.0103986 0.0109638 -0.00299595 0.0113425 -0.00661731 -0.0113049 0.0115369 -0.011509 -0.0115838\ninternal_weight=0 137.391 138.045 129.99 14.1735 123.338 8.73423 123.218 120.907 117.423 112.719\ninternal_count=2200 1098 1102 1066 68 1033 43 1030 1018 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=131\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 3 3 0 3 0 12 12 13 0 12\nsplit_gain=295.5 10.1051 8.53281 4.32488 3.4351 1.58052 1.28032 1.3064 1.68805 0.479003 0.0142204 0.00155641 0.000917015\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7089134508189288 0.91589481622423152 1.1305001193370379 5.6282894992994832\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 8 -4 -6 -8 -12 -9\nright_child=2 -3 6 -5 5 -7 10 12 -10 -11 11 -13 -14\nleaf_value=0.0039085836465020838 -0.010683589159805941 -0.0022620736522554908 -0.010176891548756886 0.0018443887767478863 0.011344466944016031 0.0031171108938392233 -0.012272359026742272 -0.012022608483036497 -0.00022219177167894953 0.015370387813366325 -0.011780744691782769 -0.011556967203335424 -0.011758455659071137\nleaf_weight=6.6417538672685614 4.2075765579938871 6.0881500244140616 3.4517632424831373 7.9850484579801559 119.45535808056593 2.3226552531123152 2.9062225446104994 2.7406267076730728 3.3631818294525146 3.0303125828504553 3.2024479508399954 105.47593979537487 2.5250514522194862\nleaf_count=33 20 30 22 36 1015 13 21 20 24 16 25 905 20\ninternal_value=0 0.0103329 -0.0104603 -0.00247892 0.0109162 0.0112891 -0.0112472 -0.00815485 -0.00526424 0.0114441 -0.011582 -0.0115636 -0.0118959\ninternal_weight=0 137.538 135.858 12.1926 131.45 124.808 123.665 12.0806 6.81495 122.486 111.585 108.678 5.26568\ninternal_count=2200 1107 1093 56 1077 1044 1037 86 46 1031 951 930 40\nis_linear=0\nshrinkage=0.01\n\n\nTree=132\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 1\nsplit_gain=291.971 14.2808 8.31046 6.06469 2.12347 2.88995 1.61941 1.0517 0.811623 0.160236 0.00106767\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00088690170346719492 -0.011993415943627383 -0.014482999460275463 -0.0070862935684186737 0.011543422161876864 0.0020627498138517234 -0.00041539272222323358 0.0034747885393600344 -0.0096504648051946706 0.0078175319724344897 -0.011738996982354338 -0.011542843860514134\nleaf_weight=5.9707596600055686 4.2193326801061612 2.2831947505474082 5.7404010295867911 119.36696940660477 5.0979813933372489 4.4082672297954559 2.6590901091694823 4.6369383558630934 6.1475793346762648 2.8480805903673163 107.9980782866478\nleaf_count=27 21 11 38 1014 22 20 17 36 38 23 933\ninternal_value=0 0.0103163 -0.010429 0.0107384 -0.00305412 -0.00607763 0.0111973 -0.011264 0.0113609 -0.0114717 -0.0115479\ninternal_weight=0 136.428 134.949 134.144 13.7256 8.6276 128.174 121.223 125.515 115.483 110.846\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=133\nnum_leaves=14\nnum_cat=0\nsplit_feature=10 1 1 1 3 3 2 3 3 13 13 0 3\nsplit_gain=288.371 10.3403 7.02545 3.80021 3.4629 2.75092 2.5429 2.32249 0.429195 0.296182 0.985603 0.243342 0.0129218\nthreshold=2.5000000000000004 0.9791112189391441 1.0383879925828392 1.1899369278690821 0.24292548700197389 1.2616250467501662 1.2396581529761168 1.1981154781470527 1.3268335175992902 0.97735317110040087 0.87216409470284928 1.1135288793191862 1.2103584781205146\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 4 5 -2 6 -3 11 -7 10 -5 -6 -11\nright_child=2 3 -4 9 7 8 -8 -9 -10 12 -12 -13 -14\nleaf_value=0.012654191946664046 0.0038547153279630442 -0.0078324914426768522 0.0012513545279895894 -0.013112060000356978 0.011546057373417433 -0.0080683690203713805 0.0021846178075890514 0.0015651913770138662 -0.012273122966211256 -0.012159475336520783 -0.0051456345142572961 0.0082904396272080391 -0.011527100949113522\nleaf_weight=1.9221866279840458 6.6213071793317786 5.2974962294101733 8.0313206464052183 3.2475794851779929 115.59882950782776 4.2842779606580716 4.8583640232682228 2.4101715683937064 5.6015759110450745 3.3361407071351996 2.9762988090515137 2.3424099311232558 102.80969337373972\nleaf_count=10 33 29 36 19 1002 31 26 15 42 23 23 16 895\ninternal_value=0 -0.0103729 0.0103217 -0.0107072 0.0108955 -0.00669578 -0.0030405 0.0112828 -0.0104509 -0.0114227 -0.00930246 0.0114814 -0.011547\ninternal_weight=0 134.334 135.004 132.411 126.973 20.0417 10.1559 120.351 9.88585 112.37 6.22388 117.941 106.146\ninternal_count=2200 1098 1102 1088 1066 128 55 1033 73 960 42 1018 918\nis_linear=0\nshrinkage=0.01\n\n\nTree=134\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 1\nsplit_gain=284.788 14.0212 8.31704 6.05318 2.06775 2.85738 1.62462 1.06354 0.826685 0.163081 0.00107762\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 1.1368346020835252\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00084272408554092351 -0.011901293715376125 -0.014407201632487885 -0.0070036445656069743 0.011506552411967595 0.0020563524287389935 -0.00035662348982939133 0.0033941874400840373 -0.0095856584164284147 0.0077304497991119193 -0.011706482193833039 -0.0115080041819587\nleaf_weight=5.9621093720197669 4.1846022307872754 2.2644018232822409 5.6858814656734458 117.41851718723774 5.0940016806125632 4.3962278217077255 2.6414457932114592 4.573877476155757 6.0987881496548644 2.807861126959323 106.19746996462345\nleaf_count=27 21 11 38 1014 22 20 17 36 38 23 933\ninternal_value=0 0.010266 -0.0103773 0.0106888 -0.00299052 -0.0059866 0.0111542 -0.0112242 0.0113201 -0.0114355 -0.0115131\ninternal_weight=0 134.385 132.94 132.121 13.6748 8.58083 126.159 119.265 123.517 113.579 109.005\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=135\nnum_leaves=14\nnum_cat=0\nsplit_feature=10 1 1 1 3 3 2 3 3 13 13 0 3\nsplit_gain=281.315 10.1449 6.98281 3.82286 3.46313 2.72547 2.49443 2.32543 0.431103 0.304438 0.983993 0.246735 0.0125126\nthreshold=2.5000000000000004 0.9791112189391441 1.0383879925828392 1.1899369278690821 0.24292548700197389 1.2616250467501662 1.2396581529761168 1.1981154781470527 1.3268335175992902 0.97735317110040087 0.87216409470284928 1.1135288793191862 1.2103584781205146\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 4 5 -2 6 -3 11 -7 10 -5 -6 -11\nright_child=2 3 -4 9 7 8 -8 -9 -10 12 -12 -13 -14\nleaf_value=0.012571369745943826 0.0038016669647448391 -0.0077511869301297763 0.001223582422120706 -0.01305349776799393 0.011511328314076526 -0.0079916937703068177 0.0021906828672955646 0.0014927692262810832 -0.012231740686155708 -0.012118611769370241 -0.0050502254473951133 0.0082171651182258304 -0.011492409524268117\nleaf_weight=1.9074342399835575 6.6011162400245658 5.2609907686710375 8.0171303600072843 3.2103753462433806 113.66639922559261 4.2391752228140813 4.8504192978143692 2.3961007148027411 5.520942322909832 3.2949615418910971 2.9459132999181747 2.3201534152030936 101.08045619726181\nleaf_count=10 33 29 36 19 1002 31 26 15 42 23 23 16 895\ninternal_value=0 -0.0103239 0.0102706 -0.0106587 0.0108509 -0.00662063 -0.0029821 0.011244 -0.0103901 -0.0113847 -0.00922376 0.0114454 -0.0115122\ninternal_weight=0 132.311 133.001 130.403 124.984 19.8715 10.1114 118.383 9.76012 110.532 6.15629 115.987 104.375\ninternal_count=2200 1098 1102 1088 1066 128 55 1033 73 960 42 1018 918\nis_linear=0\nshrinkage=0.01\n\n\nTree=136\nnum_leaves=14\nnum_cat=0\nsplit_feature=10 1 1 1 3 3 2 3 3 13 13 0 3\nsplit_gain=277.821 10.0164 6.96469 3.83999 3.46863 2.7078 2.45297 2.32137 0.431738 0.309581 0.977534 0.24903 0.0120833\nthreshold=2.5000000000000004 0.9791112189391441 1.0383879925828392 1.1899369278690821 0.24292548700197389 1.2616250467501662 1.2396581529761168 1.1981154781470527 1.3268335175992902 0.97735317110040087 0.87216409470284928 1.1135288793191862 1.2103584781205146\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 4 5 -2 6 -3 11 -7 10 -5 -6 -11\nright_child=2 3 -4 9 7 8 -8 -9 -10 12 -12 -13 -14\nleaf_value=0.012496314851038737 0.0037693893585914813 -0.0076970004857561036 0.0012113114493423494 -0.013015041035273045 0.011494086237495552 -0.0079502424605359528 0.0021672558088492986 0.0014789678580115436 -0.012206550706813804 -0.012093169707126568 -0.0050173011726011062 0.008176197844347732 -0.011475359297044489\nleaf_weight=1.899740383028983 6.5911163240671149 5.2451274469494837 8.0173609554767591 3.1877760142087928 112.70335482060909 4.218767471611498 4.8538049831986427 2.39428487420082 5.4772314131259918 3.2690048515796652 2.9356441646814346 2.3085193485021582 100.22263486683369\nleaf_count=10 33 29 36 19 1002 31 26 15 42 23 23 16 895\ninternal_value=0 -0.0102989 0.0102443 -0.0106336 0.0108283 -0.00658 -0.00295599 0.0112246 -0.0103546 -0.0113656 -0.00918082 0.0114275 -0.0114949\ninternal_weight=0 131.31 132.015 129.41 123.997 19.7949 10.0989 117.406 9.696 109.615 6.12342 115.012 103.492\ninternal_count=2200 1098 1102 1088 1066 128 55 1033 73 960 42 1018 918\nis_linear=0\nshrinkage=0.01\n\n\nTree=137\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 3 3 0 3 0 12 12 13 0 12\nsplit_gain=274.38 9.70095 8.46713 4.26525 3.44359 1.59833 1.32957 1.32725 1.72289 0.469916 0.0134415 0.00141493 0.000935618\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7089134508189288 0.91589481622423152 1.1305001193370379 5.6282894992994832\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 8 -4 -6 -8 -12 -9\nright_child=2 -3 6 -5 5 -7 10 12 -10 -11 11 -13 -14\nleaf_value=0.0037373586158921095 -0.010554353798906733 -0.0022237627328571602 -0.010012738110382884 0.001965130668415283 0.011228294769906893 0.0028899802107209939 -0.012162276975948766 -0.011919099339282421 0.00018018697488668626 0.015259500292405657 -0.011671897462923663 -0.011453694703968969 -0.011646493904036792\nleaf_weight=6.5811791270971289 4.143666133284567 6.0130759924650183 3.3613537102937681 7.9274859577417374 113.62472873926163 2.28731745481491 2.8005775064229956 2.6381920203566551 3.2729855552315712 2.9671923890709868 3.0625320002436629 100.2612023204565 2.408324271440506\nleaf_count=33 20 30 22 36 1015 13 21 20 24 16 25 905 20\ninternal_value=0 0.010184 -0.0103089 -0.00233243 0.0107787 0.0111685 -0.0111262 -0.00792408 -0.00498416 0.0113309 -0.0114787 -0.0114602 -0.011789\ninternal_weight=0 131.473 129.876 12.0712 125.46 118.879 117.805 11.6809 6.63434 116.592 106.124 103.324 5.04652\ninternal_count=2200 1107 1093 56 1077 1044 1037 86 46 1031 951 930 40\nis_linear=0\nshrinkage=0.01\n\n\nTree=138\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=271.11 13.5846 8.29071 6.04781 1.99388 2.83595 1.64645 1.08834 0.850918 0.169464 0.00122582\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00073926084495350337 -0.011784982945752013 -0.014290170605705085 -0.0068373794821332658 0.011438234929518351 0.0020710311132535828 -0.00022955436275942743 0.0031927408876789541 -0.0094534600032961449 0.0075738778889682893 -0.011587517981525235 -0.011438366422756197\nleaf_weight=5.93801625072956 4.1339614167809469 2.2318895906209937 5.5762604773044577 113.63239198178053 5.0782315284013739 4.3679260760545731 2.5947186127305022 4.4456488937139502 5.9989618062973014 5.8330445885658255 99.575517609715462\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.0101688 -0.0102777 0.0105947 -0.00288688 -0.00584827 0.0110735 -0.0111472 0.0112445 -0.011366 -0.0114466\ninternal_weight=0 130.396 129.011 128.164 13.5801 8.50189 122.226 115.43 119.631 109.854 105.409\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=139\nnum_leaves=16\nnum_cat=0\nsplit_feature=10 1 3 1 3 1 3 2 1 10 3 13 13 12 3\nsplit_gain=267.786 9.77909 6.92769 8.89602 4.29931 3.86059 2.666 2.39848 1.77084 1.87193 0.436167 0.320944 0.980547 0.0235579 0.0116508\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.73272418878666612 1.2190084357665867 1.1899369278690821 1.2616250467501662 1.2396581529761168 1.0023056708553677 3.5000000000000004 1.3268335175992902 0.97735317110040087 0.87216409470284928 4.6360580590350748 1.2103584781205146\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 8 6 7 -3 13 -10 -8 12 -7 -4 -13\nright_child=2 5 4 -5 -6 11 10 -9 9 -11 -12 14 -14 -15 -16\nleaf_value=0.012407704223238669 0.011527349784384246 -0.0075988732903249871 0.011423901678825827 -0.0078938678854631548 -0.001729512372179104 -0.012939209176369074 -0.0078360388415588383 0.0021869890549142609 0.011151941494333477 0.0016178229182127984 -0.012153910973182554 -0.012037997797939416 -0.0048638727363251415 0.012427464344855983 -0.011425780049871572\nleaf_weight=1.880637615919112 4.7679350301623327 5.1952140927314776 106.33160500973463 4.6672899127006531 2.6687807738780966 3.1377114728093138 4.1493595167994481 4.8360431045293808 4.3550372868776304 3.9066825211048126 5.3633482679724693 3.2106043696403495 2.8873003199696541 2.3917102962732306 97.694619931280613\nleaf_count=10 28 29 975 24 14 19 31 26 20 24 42 23 23 17 895\ninternal_value=0 -0.0102279 0.01017 0.00192032 0.0108205 -0.0105645 -0.00647778 -0.00288113 0.0111068 0.00664359 -0.0102705 -0.0113114 -0.00906935 0.011446 -0.0114453\ninternal_weight=0 128.355 129.089 9.43522 119.654 126.474 19.544 10.0313 116.985 8.26172 9.51271 106.93 6.02501 108.723 100.905\ninternal_count=2200 1098 1102 52 1050 1088 128 55 1036 44 73 960 42 992 918\nis_linear=0\nshrinkage=0.01\n\n\nTree=140\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=264.497 13.3432 8.28104 6.02252 1.94038 2.79203 1.65272 1.10034 0.869792 0.172425 0.00126915\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00070646606680357829 -0.011691736736809139 -0.014222633447185773 -0.0067563729290629343 0.011403506283896506 0.0020555357161043488 -0.0001930892197140003 0.0031099503675749434 -0.0093899962659872056 0.0074792532090871312 -0.01155882319815062 -0.011405986599156552\nleaf_weight=5.9273224771022788 4.0982531532645208 2.2129506170749655 5.5236797034740439 111.77454929798841 5.0741793513298026 4.3563009649515152 2.5771624594926825 4.3850327655673018 5.9486789852380744 5.7525477707386008 97.886148639023304\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.0101202 -0.0102285 0.0105469 -0.00283298 -0.00576693 0.0110318 -0.0111097 0.0112052 -0.0113323 -0.0114145\ninternal_weight=0 128.441 127.076 126.228 13.5287 8.45455 120.3 113.547 117.723 108.024 103.639\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=141\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 3 3 0 3 0 12 12 13 0 12\nsplit_gain=261.308 9.43031 8.35568 4.15914 3.43718 1.61299 1.36354 1.34154 1.73928 0.463023 0.0132296 0.00134177 0.000909699\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 1.0686078178399756 0.24292548700197389 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7089134508189288 0.91589481622423152 1.1305001193370379 5.6282894992994832\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 3 -2 -1 9 7 8 -4 -6 -8 -12 -9\nright_child=2 -3 6 -5 5 -7 10 12 -10 -11 11 -13 -14\nleaf_value=0.0036402550882317797 -0.010451034917117552 -0.0021868167704123076 -0.009901420856867833 0.0019687308651797075 0.011154985554123942 0.0027350786491103542 -0.012100641152715757 -0.011851965877905804 0.00043134035816982708 0.015187978030464429 -0.011604617668541079 -0.011388948395229448 -0.011579284581199336\nleaf_weight=6.5423543453216544 4.094965457916258 5.9655361473560324 3.2987373322248441 7.8946086913347244 109.88078093528748 2.2643176838755599 2.7324904575943938 2.569959782063961 3.2184747233986855 2.9224501103162757 2.9732377156615248 96.886563040316105 2.3350966051220894\nleaf_count=33 20 30 22 36 1015 13 21 20 24 16 25 905 20\ninternal_value=0 0.0100887 -0.0102142 -0.00227316 0.0106909 0.0110917 -0.0110493 -0.00777181 -0.00479867 0.0112595 -0.0114142 -0.0113954 -0.0117222\ninternal_weight=0 127.575 126.004 11.9896 121.61 115.068 114.015 11.4223 6.51721 112.803 102.592 99.8598 4.90506\ninternal_count=2200 1107 1093 56 1077 1044 1037 86 46 1031 951 930 40\nis_linear=0\nshrinkage=0.01\n\n\nTree=142\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=258.143 13.0735 8.23174 5.99903 1.90635 2.76469 1.66339 1.11193 0.882733 0.175749 0.0012589\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00067489671980249996 -0.0116376948146536 -0.01413505855869562 -0.0066772399312844607 0.011370312797666766 0.0020406318477870604 -0.0001762560887850636 0.0030136309935233328 -0.0093240763396144639 0.0074000970511125244 -0.011527822052912596 -0.011374416679212494\nleaf_weight=5.9176130443811408 4.0759541317820531 2.1920208334922782 5.4733748883008948 109.9435712620616 5.0699293166398993 4.3514199256896973 2.5567364618182173 4.3219320550560942 5.9007307738065711 5.6643919423222533 96.21928659081459\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.010074 -0.0101811 0.0105009 -0.00280469 -0.00571966 0.010992 -0.0110726 0.0111681 -0.0112992 -0.0113829\ninternal_weight=0 126.511 125.176 124.319 13.4973 8.42737 118.401 111.679 115.844 106.206 101.884\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=143\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 1 3 1 13 1 0 4 3 2 3 13 13 3 1 3\nsplit_gain=255 9.4906 6.86876 8.9813 4.26606 3.88651 3.25072 3.34089 2.61663 2.33955 0.442185 0.335715 0.989394 0.0112758 0.00408809 0.00189436\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 1.1899369278690821 1.0691005037898054 0.39803928112194603 1.2616250467501662 1.2396581529761168 1.3268335175992902 0.97735317110040087 0.87216409470284928 1.2103584781205146 0.98578357518082749 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 14 8 7 -6 9 -3 -10 12 -7 -13 15 -4\nright_child=2 5 4 -5 6 11 -8 -9 10 -11 -12 13 -14 -15 -16 -17\nleaf_value=0.01231691904735528 0.0099626751683248721 -0.0074776741097994552 0.011358358147559628 -0.0099864789682795694 -0.0055577736284118037 -0.012849392237352139 0.011804248812866455 0.0081006753934726086 -0.0076880232793257062 0.0022335244981790871 -0.012089518678013191 -0.011971791853435124 -0.00464819190966804 -0.011362571005705884 0.011778950640989492 0.01163791878022429\nleaf_weight=1.8545984923839558 5.5323120951652509 5.1257341578602809 99.476824462413788 3.8116730451583862 3.8224306106567365 3.0738733410835257 4.3351256400346756 3.3694897964596748 4.0579290390014631 4.8075514361262321 5.2166947573423386 3.139083817601203 2.8210010007023811 94.401440724730492 2.4449591487646094 2.4844109416007987\nleaf_count=10 33 29 945 19 18 19 23 23 31 26 42 23 23 895 20 21\ninternal_value=0 -0.0101355 0.0100727 0.00182486 0.0107375 -0.010475 0.00496431 0.000841352 -0.00634403 -0.00277761 -0.0101637 -0.0112421 -0.0089247 -0.0113822 0.0113749 0.0113652\ninternal_weight=0 124.498 125.277 9.34399 115.933 122.643 11.527 7.19192 19.2079 9.93329 9.27462 103.435 5.89487 97.5405 104.406 101.961\ninternal_count=2200 1098 1102 52 1050 1088 64 41 128 55 73 960 42 918 986 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=144\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=251.88 12.8118 8.22263 5.97195 1.85821 2.72304 1.66234 1.12408 0.905856 0.17879 0.00129963\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00064578074604282364 -0.01154946555036763 -0.01405285571775566 -0.0065971315677913088 0.011338036063047422 0.0020290449566376652 -0.00014199700975076374 0.0029562593383863347 -0.0092613410387280114 0.0072966890820499774 -0.01150062298217493 -0.011343652181913419\nleaf_weight=5.9070688635110846 4.0409533157944661 2.1708736270666114 5.4220677167177191 108.12105709314346 5.0663849264383307 4.3398929834365845 2.5432391911745063 4.2629513144493094 5.8462419286370269 5.5860382914543143 94.575177237391472\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.0100279 -0.010133 0.010455 -0.00275203 -0.00564228 0.0109523 -0.0110365 0.0111307 -0.011267 -0.0113524\ninternal_weight=0 124.588 123.293 122.418 13.4472 8.38085 116.511 109.846 113.967 104.424 100.161\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=145\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 0 3 0 3 0 12 12 13 0 12\nsplit_gain=248.813 9.19925 8.28059 5.8857 4.06794 1.58024 1.3982 1.3558 1.75553 0.491056 0.0130139 0.00127342 0.000884461\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7089134508189288 0.91589481622423152 1.1305001193370379 5.6282894992994832\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 9 7 8 -4 -5 -8 -12 -9\nright_child=2 -3 6 5 -6 -7 10 12 -10 -11 11 -13 -14\nleaf_value=-0.0071123745757479444 -0.010345968475163695 -0.0021768043976613531 -0.0097925881635094886 0.010945000800032212 0.00199679090663303 0.0025692374718224772 -0.0120420737917704 -0.011788211196408367 0.00068024268223259524 0.015127053634258857 -0.011540692000737414 -0.011327430412987036 -0.011515443337012257\nleaf_weight=1.8455771431326855 4.0440983027219755 5.9130463302135459 3.2374898195266706 110.88736909627914 7.8601175844669342 2.2399020865559569 2.6659674271941176 2.5033347830176353 3.165691502392292 2.8806474953889838 2.8862536549568167 93.602346263825893 2.2637255415320396\nleaf_count=9 20 30 22 1039 36 13 21 20 24 16 25 905 20\ninternal_value=0 0.00999458 -0.01012 0.0106053 -0.00219629 0.0108871 -0.010975 -0.00762093 -0.00461489 0.0110509 -0.0113529 -0.0113338 -0.0116587\ninternal_weight=0 123.767 122.229 117.853 11.9042 116.008 110.325 11.1702 6.40318 113.768 99.1546 96.4886 4.76706\ninternal_count=2200 1107 1093 1077 56 1068 1037 86 46 1055 951 930 40\nis_linear=0\nshrinkage=0.01\n\n\nTree=146\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=245.84 12.5538 8.17397 5.96266 1.82565 2.69658 1.67297 1.13571 0.918778 0.182207 0.0012875\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00060082802870324765 -0.011497131891808041 -0.013970047245740134 -0.0065191690230188741 0.011306345382156515 0.0020142629439477704 -0.00012598616225541215 0.0028613500066084628 -0.0091959858030946969 0.0072190314653379755 -0.011471111261023926 -0.011313650190790857\nleaf_weight=5.8944358825683585 4.018762491643427 2.1497896015644065 5.3731704503297797 106.34662581980228 5.0619724541902533 4.3351032584905624 2.5233014971017829 4.2014543488621703 5.7995627000927916 5.500069633126258 92.95349133759737\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.00998249 -0.0100866 0.0104096 -0.00272471 -0.00559626 0.0109138 -0.0110008 0.011095 -0.0112354 -0.0113224\ninternal_weight=0 122.714 121.444 120.564 13.4158 8.35387 114.669 108.028 112.146 102.655 98.4536\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=147\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 1 3 1 13 1 0 4 3 2 3 13 13 3 1 3\nsplit_gain=242.867 9.21385 6.82876 8.80801 4.29176 3.91217 3.20186 3.2738 2.56727 2.28216 0.448414 0.350697 0.998909 0.0109176 0.00378308 0.00180847\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 1.1899369278690821 1.0691005037898054 0.39803928112194603 1.2616250467501662 1.2396581529761168 1.3268335175992902 0.97735317110040087 0.87216409470284928 1.2103584781205146 0.98578357518082749 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 14 8 7 -6 9 -3 -10 12 -7 -13 15 -4\nright_child=2 5 4 -5 6 11 -8 -9 10 -11 -12 13 -14 -15 -16 -17\nleaf_value=0.012230474210934799 0.0098569690794556263 -0.0073597020780260805 0.011299029981752263 -0.0099890450991378787 -0.0056044279055764016 -0.012764171124115483 0.011664426748646869 0.0080018302852751539 -0.0075410401621723213 0.0022774289800791361 -0.012028461185348591 -0.01190886643382817 -0.0044327286363003869 -0.011302502759174658 0.011710019817159564 0.011576258648179903\nleaf_weight=1.8287293910980214 5.4520005807280523 5.0572081282734889 96.129972152411938 3.7915126979351044 3.8018801510333997 3.0108700469136229 4.2896624654531479 3.306190699338913 3.9687995836138708 4.7796637192368507 5.0734414011240005 3.0692895203828803 2.756663866341114 91.197468422353268 2.3712145611643782 2.4121108278632155\nleaf_count=10 33 29 945 19 18 19 23 23 31 26 42 23 23 895 20 21\ninternal_value=0 -0.0100452 0.00997838 0.00171651 0.0106584 -0.0103878 0.00484172 0.000724277 -0.00621262 -0.00267709 -0.0100589 -0.0111758 -0.00878206 -0.0113222 0.0113153 0.0113058\ninternal_weight=0 120.742 121.555 9.24351 112.311 118.913 11.3977 7.10807 18.8791 9.83687 9.04224 100.034 5.76753 94.2668 100.913 98.5421\ninternal_count=2200 1098 1102 52 1050 1088 64 41 128 55 73 960 42 918 986 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=148\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=239.889 12.3033 8.16421 5.93526 1.77932 2.65611 1.67191 1.148 0.941986 0.18533 0.0013257\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00057323195537924804 -0.01141114741986283 -0.013892127338038905 -0.0064399112476257207 0.011275510889707864 0.0020024211507762204 -9.2789508156330947e-05 0.0028054209886441369 -0.0091338780567880428 0.0071168684480015509 -0.011445320072038929 -0.011284406476049702\nleaf_weight=5.8839559555053702 3.9838253110647184 2.1284891813993445 5.3231366649270049 104.57323582470417 5.058336839079856 4.3236031085252762 2.5102046802639952 4.1441061347722998 5.7460896521806708 5.4238468259572974 91.354487933218479\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.00993741 -0.0100394 0.0103647 -0.00267342 -0.00552051 0.0108753 -0.010966 0.0110589 -0.0112047 -0.0112934\ninternal_weight=0 120.842 119.611 118.713 13.3658 8.30743 112.83 106.246 110.319 100.922 96.7783\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=149\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 1 3 1 13 1 0 4 3 2 4 13 13 3 1 3\nsplit_gain=236.986 9.04435 6.79252 8.653 4.30717 3.93379 3.1478 3.21325 2.54196 2.23877 0.454252 0.359271 0.998724 0.0105826 0.00357105 0.00171281\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 1.1899369278690821 1.0691005037898054 0.39803928112194603 1.2616250467501662 1.2396581529761168 0.44197101458486437 0.97735317110040087 0.87216409470284928 1.2103584781205146 0.98578357518082749 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 14 8 7 -6 9 -3 -10 12 -7 -13 15 -4\nright_child=2 5 4 -5 6 11 -8 -9 10 -11 -12 13 -14 -15 -16 -17\nleaf_value=0.012156806142654318 0.0097941114895310037 -0.0072846688905094017 0.011270195616196806 -0.0099092903098733816 -0.0055746819872711777 -0.012715344391693671 0.011566728169033189 0.0079400312056092364 -0.0072338493130765279 0.0022802028960712882 -0.011840253175544702 -0.011874277023754005 -0.0043392537442813704 -0.011273492571244388 0.011672754863706827 0.011542195731642569\nleaf_weight=1.8141713440418232 5.409533739089964 5.0223881676793116 94.475937634706497 3.7907592803239822 3.7954807579517347 2.9750316888093939 4.2642494142055511 3.2792419940233231 3.5626224577426893 4.7723827958106995 5.36405099183321 3.0310972779989234 2.7295958548784256 89.624477967619896 2.3333342224359503 2.3732559680938712\nleaf_count=10 33 29 945 19 18 19 23 23 26 26 47 23 23 895 20 21\ninternal_value=0 -0.0100002 0.00993145 0.0016758 0.0106187 -0.0103435 0.00478016 0.000689594 -0.00614203 -0.0026243 -0.0100018 -0.0111432 -0.00870749 -0.0112931 0.0112862 0.0112769\ninternal_weight=0 118.896 119.722 9.20029 110.521 117.082 11.339 7.07472 18.7214 9.79477 8.92667 98.3602 5.70463 92.6556 99.1825 96.8492\ninternal_count=2200 1098 1102 52 1050 1088 64 41 128 55 73 960 42 918 986 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=150\nnum_leaves=11\nnum_cat=0\nsplit_feature=12 1 13 3 3 2 3 0 0 12\nsplit_gain=234.09 12.0585 8.15076 5.90781 1.75125 1.67086 1.16029 0.965194 0.188512 0.00135658\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2659661080065192 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 7 -4 -5 -8 -10\nright_child=2 -3 6 5 -6 -7 8 -9 9 -11\nleaf_value=0.00054622047856005209 1.1946133659232964e-05 -0.013816500712163012 -0.0063611191404974871 0.011245376322768303 -0.0076121088727067777 0.0027501866357259232 -0.0090718544736993444 0.0070154604608178529 -0.011419813115204347 -0.011255867616571762\nleaf_weight=5.8733990341424933 8.7114935815334302 2.1071528792381278 5.2737480700016013 102.82448071241379 4.6057099997997275 2.497273124754428 4.0873475298285475 5.6931832730770102 5.3477944731712332 89.776910997927189\nleaf_count=27 39 11 38 1014 24 17 36 38 50 906\ninternal_value=0 0.00989284 -0.0099927 0.0103202 -0.00262481 0.0108374 -0.0109318 0.0110235 -0.0111747 -0.0112651\ninternal_weight=0 118.995 117.803 116.888 13.3172 111.015 104.486 108.518 99.2121 95.1247\ninternal_count=2200 1107 1093 1096 63 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=151\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 0 3 0 3 0 12 12 13 0 12\nsplit_gain=231.262 8.86486 8.16188 5.84614 3.95279 1.60867 1.45078 1.37962 1.79579 0.491025 0.0114269 0.00091982 0.000871653\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7089134508189288 0.92841159450679933 1.1305001193370379 5.6282894992994832\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 9 7 8 -4 -5 -8 -12 -9\nright_child=2 -3 6 5 -6 -7 10 12 -10 -11 11 -13 -14\nleaf_value=-0.0072050359966482989 -0.010217613728680552 -0.0021698286440429751 -0.0096442378217676903 0.010837247030732529 0.0020419948556437248 0.0023103741368693835 -0.011851067481888538 -0.011702130176447192 0.0010913724841137955 0.015062777219237355 -0.011438323911616628 -0.011240496180513438 -0.011425483739058445\nleaf_weight=1.8383411467075337 3.9659020155668241 5.8256966769695273 3.1521928459405881 105.54906559735537 7.8074128031730652 2.2002624422311774 3.2293171882629386 2.4091422483325005 3.0811161920428276 2.8236197829246512 2.4144234061241141 88.535232998430729 2.1601134836673737\nleaf_count=9 20 30 22 1039 36 13 27 20 24 16 22 902 20\ninternal_value=0 0.00985808 -0.00998295 0.0104814 -0.00208772 0.0107755 -0.0108684 -0.00739734 -0.00433764 0.0109473 -0.0112665 -0.0112457 -0.0115713\ninternal_weight=0 118.237 116.755 112.411 11.7733 110.573 104.982 10.8026 6.23331 108.373 94.179 90.9497 4.56926\ninternal_count=2200 1107 1093 1077 56 1068 1037 86 46 1055 951 924 40\nis_linear=0\nshrinkage=0.01\n\n\nTree=152\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 0 2 3 0 0 12\nsplit_gain=228.491 11.8171 8.10606 5.89834 1.73162 2.61843 1.68159 1.17194 0.978213 0.192079 0.00134087\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2396581529761168 1.1305001193370379 1.2169811510592434 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 5 -2 8 -4 -5 -9 -11\nright_child=2 -3 7 6 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00050304257619488378 -0.011312496119539273 -0.013740050372010886 -0.0062848451528046759 0.011215692950672667 0.0020160314338523106 -3.0285768153429193e-05 0.0026564690322913105 -0.0090070911176750625 0.0069394183241997332 -0.011392325369438058 -0.011228047127029154\nleaf_weight=5.8609292805194846 3.940010763704775 2.0859372913837424 5.226992353796958 101.12411583214998 5.0453291535377494 4.3044443875551224 2.4778776317834845 4.028191313147544 5.6481462493538848 5.2650152146816245 88.222527176141739\nleaf_count=27 21 11 38 1014 22 20 17 36 38 50 906\ninternal_value=0 0.00984873 -0.0099473 0.0102762 -0.00259825 -0.00542203 0.0108005 -0.0108979 0.0109895 -0.0111452 -0.0112373\ninternal_weight=0 117.197 116.033 115.111 13.2898 8.24446 109.25 102.743 106.772 97.5157 93.4875\ninternal_count=2200 1107 1093 1096 63 41 1069 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=153\nnum_leaves=16\nnum_cat=0\nsplit_feature=10 1 3 1 13 12 0 4 2 3 4 3 1 3 4\nsplit_gain=225.735 8.7842 6.75143 8.48786 4.33705 3.98157 3.10964 3.15272 1.84653 3.08827 1.72914 0.00498862 0.00330931 0.00163547 0.000212323\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 5.4588099803130126 1.0691005037898054 0.39803928112194603 1.2525408166204799 1.2471304352583659 0.41848776227765522 1.2190084357665867 0.98578357518082749 1.1748853893285929 0.36936640095180312\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 12 8 7 -6 10 -10 -3 -7 13 -4 -13\nright_child=2 5 4 -5 6 11 -8 -9 9 -11 -12 14 -14 -15 -16\nleaf_value=0.012076346450697543 0.0096920396370800081 -0.0047587845736205584 0.011215206610621316 -0.0099119451972590217 -0.0056306499904000256 -0.011676321718071767 0.011438052840290617 0.0078400078993169225 0.0011210570427843359 -0.0098833785454660022 -0.012047860081012251 -0.011316122964167381 0.011608915084843335 0.011484996515668961 -0.011213096719269313\nleaf_weight=1.7885808199644078 5.3316094502806646 5.4834590181708363 91.269878402352333 3.7704142928123474 3.7757463753223401 2.4144742786884299 4.2194159924983978 3.2184009552001953 6.087458483874796 4.3888732492923737 8.0064245685935003 2.0484948530793181 2.262249529361724 2.3036550357937804 85.075128920376301\nleaf_count=10 33 34 945 19 18 20 23 23 37 37 58 20 20 21 882\ninternal_value=0 -0.00991246 0.00983946 0.0015713 0.0105425 -0.010259 0.00465813 0.000567958 -0.00663882 -0.00348906 -0.00908495 -0.0112279 0.011231 0.0112218 -0.0112155\ninternal_weight=0 115.293 116.151 9.10202 107.049 113.504 11.2136 6.99415 23.9662 10.4763 13.4899 89.5381 95.8358 93.5735 87.1236\ninternal_count=2200 1098 1102 52 1050 1088 64 41 166 74 92 922 986 966 902\nis_linear=0\nshrinkage=0.01\n\n\nTree=154\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 2 0 3 10 0 12\nsplit_gain=222.971 11.5918 8.09457 5.87482 7.3958 1.73091 1.69096 2.57731 1.18163 0.814828 0.195371 0.00136576\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2103584781205146 3.5000000000000004 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 9 7 -2 -4 -5 -10 -12\nright_child=2 -3 8 5 -6 -7 -8 -9 10 -11 11 -13\nleaf_value=0.011185202952806093 -0.011229413940602768 -0.013669719239193062 -0.0062145164247931362 0.01474639795800318 -0.007307800394905346 0.0026073761535536466 0.0020059665820875154 -6.4088061415006504e-06 -0.0089451056307569398 0.010869657934035628 -0.011367811270837023 -0.011200797175008914\nleaf_weight=4.5110477656126005 3.9074700772762281 2.0658986717462531 5.1837052404880515 5.7445364743471137 4.1539527922868729 2.4649900421500197 5.0429490953683844 4.2957052737474442 3.9724475219845763 96.461461387574673 5.1894005239009848 86.684947848320007\nleaf_count=28 21 11 38 38 22 17 22 20 36 991 50 906\ninternal_value=0 0.00980488 -0.00990116 0.0102328 0.00231976 0.0108878 -0.00255095 -0.00535233 -0.0108648 0.0110876 -0.0111164 -0.0112102\ninternal_weight=0 115.402 114.277 113.336 8.665 104.671 13.2461 8.20318 101.031 102.206 95.8468 91.8743\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=155\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 1 3 1 13 12 0 4 0 0 3 1 3 4\nsplit_gain=220.308 8.59907 6.69498 8.2131 4.37206 4.0154 3.04653 3.09689 1.8562 1.83672 0.00484849 0.00311792 0.00152691 0.000198906\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 5.4588099803130126 1.0691005037898054 0.39803928112194603 1.2509949463117855 1.048937272384614 1.2190084357665867 0.98578357518082749 1.1748853893285929 0.36936640095180312\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 11 8 7 -6 9 -3 -7 12 -4 -12\nright_child=2 5 4 -5 6 10 -8 -9 -10 -11 13 -13 -14 -15\nleaf_value=0.011993581023039527 0.0095999491250774206 -0.0010268224097937939 0.011188712929707793 -0.0097053644244342215 -0.0056123001010972926 -0.011645999453918211 0.011321913935286294 0.00777503476315098 0.00057461751716678664 -0.0090051976017365976 -0.011286844904924749 0.011573988273906266 0.011451627213515916 -0.011186258681010334\nleaf_weight=1.7709347307682026 5.2827076613903028 3.469610318541533 89.702231228351593 3.7809427082538605 3.7684881985187513 2.3822187408804885 4.1863317638635635 3.191280297935009 3.1549979150295249 17.138309262692928 2.0132935717701903 2.2254971936345092 2.2647216543555251 83.592013910412788\nleaf_count=10 33 18 945 19 18 20 23 23 25 123 20 20 21 882\ninternal_value=0 -0.00986944 0.00979372 0.00154665 0.0105033 -0.0102159 0.00458095 0.000526229 -0.00656837 -0.00766193 -0.011201 0.0112041 0.0111952 -0.0111886\ninternal_weight=0 113.521 114.402 9.06365 105.339 111.75 11.1461 6.95977 23.7629 20.6079 87.9875 94.1925 91.967 85.6053\ninternal_count=2200 1098 1102 52 1050 1088 64 41 166 141 922 986 966 902\nis_linear=0\nshrinkage=0.01\n\n\nTree=156\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 0 3 0 3 0 12 12 13 12 0\nsplit_gain=217.616 8.61852 8.07096 5.83137 3.84608 1.62787 1.49639 1.398 1.80172 0.575308 0.0113313 0.000870732 0.000857405\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7800646666530477 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 9 7 8 -4 -5 -8 -9 -12\nright_child=2 -3 6 5 -6 -7 10 11 -10 -11 12 -13 -14\nleaf_value=-0.0073185899155382575 -0.010091619028310043 -0.002176818080080641 -0.0095029193321231921 0.010763021208666498 0.0020719283574223797 0.0020977814700366328 -0.011790589109682835 -0.011635355905450369 0.0013647935187121991 0.016273381206114986 -0.011367772025958884 -0.011353827119444264 -0.011173090634298517\nleaf_weight=1.8297052234411229 3.9075530022382718 5.7554087191820136 3.0757533088326436 102.13355462998152 7.7659412175416946 2.1617276296019545 3.1310806423425666 2.334127739071846 3.0266393050551414 1.9305121898651112 2.3242850229144087 2.075442798435688 84.735885687172413\nleaf_count=9 20 30 22 1045 36 13 27 20 24 10 22 20 902\ninternal_value=0 0.00974684 -0.00987095 0.0103819 -0.00199966 0.0106868 -0.0107834 -0.00721278 -0.0041128 0.0108652 -0.0111995 -0.0115028 -0.0111783\ninternal_weight=0 113.811 112.377 108.055 11.6735 106.226 100.703 10.512 6.10239 104.064 90.1913 4.40957 87.0602\ninternal_count=2200 1107 1093 1077 56 1068 1037 86 46 1055 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=157\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 1 3 1 13 12 0 4 0 0 3 1 3 4\nsplit_gain=215.015 8.44924 6.66787 8.05304 4.40349 4.04582 3.0144 3.03817 1.84892 1.8171 0.0046249 0.00304363 0.00152029 0.000185732\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.78827279013960749 0.46553849925547169 5.4588099803130126 1.0691005037898054 0.39803928112194603 1.2509949463117855 1.048937272384614 1.2190084357665867 0.98578357518082749 1.1748853893285929 0.36936640095180312\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 11 8 7 -6 9 -3 -7 12 -4 -12\nright_child=2 5 4 -5 6 10 -8 -9 -10 -11 13 -13 -14 -15\nleaf_value=0.011919924463393988 0.0095242301514643843 -0.0009967367929250401 0.011162960958474992 -0.0096349716877674758 -0.0056003180465910652 -0.011612555373141334 0.011238360686062206 0.0076919719114037438 0.00064252514751102512 -0.0089455120854689523 -0.01125815742695073 0.011546663982794986 0.011427187576089516 -0.011160106995902008\nleaf_weight=1.7586922049522389 5.2365131303668004 3.4623731002211633 88.163564577698708 3.7756491303443909 3.7647188156843168 2.3461236208677283 4.161268912255764 3.1652857661247253 3.1401142925024024 16.979305550456047 1.9784459844231594 2.191308304667472 2.2327281683683387 82.131853617727757\nleaf_count=10 33 18 945 19 18 20 23 23 25 123 20 20 21 882\ninternal_value=0 -0.00982565 0.00974796 0.00149747 0.0104651 -0.0101732 0.00451071 0.000470947 -0.00650171 -0.00759916 -0.0111746 0.0111784 0.0111695 -0.0111624\ninternal_weight=0 111.797 112.691 9.01216 103.679 110.038 11.0913 6.93 23.5818 20.4417 86.4564 92.5876 90.3963 84.1103\ninternal_count=2200 1098 1102 52 1050 1088 64 41 166 141 922 986 966 902\nis_linear=0\nshrinkage=0.01\n\n\nTree=158\nnum_leaves=16\nnum_cat=0\nsplit_feature=10 1 3 1 13 12 0 4 3 2 3 3 1 3 4\nsplit_gain=212.373 8.34322 6.63807 7.93798 4.42088 4.07524 2.96955 2.9825 1.84794 2.14187 0.375763 0.00447267 0.0029488 0.00147125 0.000179636\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.73272418878666612 0.46553849925547169 5.4588099803130126 1.0691005037898054 0.39803928112194603 1.2616250467501662 1.2396581529761168 1.323927965737479 1.2190084357665867 0.98578357518082749 1.1748853893285929 0.36936640095180312\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 12 8 7 -6 9 -3 -10 -7 13 -4 -13\nright_child=2 5 4 -5 6 11 -8 -9 10 -11 -12 14 -14 -15 -16\nleaf_value=0.011852604309021783 0.011033258024796839 -0.0084173652404494811 0.011150052531974977 -0.0077597654961054094 -0.00554163120855365 -0.011594052438156461 0.011168669214383253 0.0076372235523243862 -0.0080751441147182065 -0.00068210285331962847 -0.012150444846716846 -0.011244084471055101 0.011529340251328426 0.011411103176532393 -0.011147233277807958\nleaf_weight=1.7510328590869892 4.4241439774632436 6.6198011562228221 87.386869214475155 4.5685222893953323 3.7665326595306379 2.3264676108956328 4.1454420909285545 3.1561428084969521 4.8057153075933439 7.7946211770176888 4.275387741625309 1.9611994102597226 2.1727479398250571 2.2136123552918425 81.408065550029278\nleaf_count=10 28 41 945 24 18 20 23 23 41 50 34 20 20 21 882\ninternal_value=0 -0.00980274 0.00972487 0.00148588 0.0104453 -0.01015 0.00447506 0.00046679 -0.00646049 -0.00423451 -0.0099938 -0.0111616 0.0111653 0.0111565 -0.0111495\ninternal_weight=0 110.942 111.834 8.99267 102.841 109.191 11.0681 6.92268 23.4955 14.4144 9.0811 85.6957 91.7732 89.6005 83.3693\ninternal_count=2200 1098 1102 52 1050 1088 64 41 166 91 75 922 986 966 902\nis_linear=0\nshrinkage=0.01\n\n\nTree=159\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 2 0 3 0 0 12\nsplit_gain=209.812 11.1719 8.0708 5.85445 1.69009 1.67285 2.53795 1.21523 1.06767 0.204529 0.00159316\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 8 6 -2 -4 -5 -9 -11\nright_child=2 -3 7 4 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00035225750790081355 -0.011119248290961182 -0.013550986482546178 -0.0060152049993110294 0.011122527534702586 0.0024229923774297286 0.0021058133984029359 7.8661523164937476e-05 -0.0087864303398263108 0.0065685956494388334 -0.011319173760016557 -0.01113592342286307\nleaf_weight=5.7989489287137976 3.853945426642893 2.029405638575553 5.0625004470348349 95.3650983273983 2.4217345267534247 5.0195106118917456 4.2625891715288162 3.8322707489132872 5.4421101287007323 5.0320632979273787 82.956140257418156\nleaf_count=27 21 11 38 1014 17 22 20 36 38 50 906\ninternal_value=0 0.00969642 -0.00978761 0.0101291 0.0106784 -0.00243205 -0.0052384 -0.0107849 0.0108767 -0.0110479 -0.0111464\ninternal_weight=0 111.057 110.019 109.028 103.229 13.136 8.11653 96.883 100.807 91.8205 87.9882\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=160\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 0 3 0 3 0 12 12 13 12 0\nsplit_gain=207.27 8.42331 8.0214 5.7966 3.77132 1.63528 1.53282 1.40814 1.80065 0.576279 0.0109429 0.000871604 0.000800871\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7800646666530477 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 9 7 8 -4 -5 -8 -9 -12\nright_child=2 -3 6 5 -6 -7 10 11 -10 -11 12 -13 -14\nleaf_value=-0.0073591282341371978 -0.0099877992007624157 -0.0021740961876695018 -0.0093918272402100517 0.010696117986170912 0.0021095161792593657 0.0019561132449007227 -0.011737063440333814 -0.011583354108879481 0.0015570387634912235 0.016244263114092411 -0.011313375737016539 -0.011297471912360666 -0.011122260156022605\nleaf_weight=1.8255310729145993 3.8643874228000623 5.704536944627761 3.0192590802907926 98.806789122521877 7.735483318567276 2.1344821229577056 3.0507655739784232 2.2745937928557396 2.9891789555549622 1.908293068408965 2.2530449479818335 2.0078621581196785 81.803943149745464\nleaf_count=9 20 30 22 1045 36 13 27 20 24 10 22 20 902\ninternal_value=0 0.00965927 -0.00978135 0.0103042 -0.00192059 0.0106177 -0.0107175 -0.00706773 -0.0039448 0.0108012 -0.0111487 -0.0114493 -0.0111274\ninternal_weight=0 110.38 108.999 104.675 11.5999 102.85 97.3986 10.2909 6.00844 100.715 87.1078 4.28246 84.057\ninternal_count=2200 1107 1093 1077 56 1068 1037 86 46 1055 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=161\nnum_leaves=12\nnum_cat=0\nsplit_feature=12 1 13 3 2 2 0 3 0 0 12\nsplit_gain=204.819 10.9505 8.02106 5.84391 1.70026 1.64287 2.51392 1.22679 1.08057 0.208309 0.0015685\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2103584781205146 1.0637796106207162 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 8 6 -2 -4 -5 -9 -11\nright_child=2 -3 7 4 -6 -7 -8 9 -10 10 -12\nleaf_value=0.00031206790717554537 -0.0110725087828805 -0.013481857335224929 -0.0059414184527573745 0.011095524089377964 0.0023332587533379822 0.0020878754315774386 9.1422901156980072e-05 -0.008722251127256898 0.0064951328085047968 -0.011294305317401682 -0.011111036723331301\nleaf_weight=5.7867431491613379 3.8324058353900892 2.0082311928272238 5.018837481737136 93.773344658315182 2.4036732017993918 5.0148127526044837 4.2582017481327057 3.7767090797424308 5.3997929245233527 4.9537551552057257 81.500996269285679\nleaf_count=27 21 11 38 1014 17 22 20 36 38 50 906\ninternal_value=0 0.00965401 -0.00974425 0.0100868 0.0106436 -0.00240929 -0.00519677 -0.0107535 0.010845 -0.0110211 -0.0111215\ninternal_weight=0 109.372 108.356 107.364 101.577 13.1054 8.09061 95.2503 99.1731 90.2315 86.4548\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 1052 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=162\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 1 3 1 13 12 0 4 0 0 3 1 3 4\nsplit_gain=202.331 8.10682 6.59817 7.81728 4.44545 4.12137 2.92876 2.92542 1.86867 1.80922 0.00431796 0.00273952 0.0014055 0.000157414\nthreshold=2.5000000000000004 0.9791112189391441 0.52015392592939824 0.73272418878666612 0.46553849925547169 5.4588099803130126 1.0691005037898054 0.39803928112194603 1.2509949463117855 1.048937272384614 1.2190084357665867 0.98578357518082749 1.1748853893285929 0.36936640095180312\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 -1 3 -2 11 8 7 -6 9 -3 -7 12 -4 -12\nright_child=2 5 4 -5 6 10 -8 -9 -10 -11 13 -13 -14 -15\nleaf_value=0.011780604751541173 0.010952660724924835 -0.00083075584625772988 0.011100853753488056 -0.0077956992850800469 -0.005588765382222396 -0.011542060033462084 0.011041700465070024 0.0075456897210367125 0.00091290308224304382 -0.0088156879702905224 -0.011189721586232342 0.011472341576678648 0.011359884989438586 -0.011097457218032495\nleaf_weight=1.7257957309484471 4.3586711883544904 3.4226520135998788 84.38626192510128 4.5409432575106621 3.7461427599191648 2.2680818513035765 4.1032484024763107 3.0982247963547707 3.0827109366655341 16.599809885025024 1.8937291279435147 2.1056771352887145 2.1480370536446562 78.573860101401806\nleaf_count=10 28 18 945 24 18 20 23 23 25 123 20 20 21 882\ninternal_value=0 -0.0097184 0.00963621 0.00138649 0.0103734 -0.010069 0.00436157 0.000356779 -0.00633485 -0.00745074 -0.0111118 0.011116 0.0111073 -0.0110996\ninternal_weight=0 107.567 108.487 8.89961 99.5876 105.841 10.9476 6.84437 23.1052 20.0225 82.7357 88.64 86.5343 80.4676\ninternal_count=2200 1098 1102 52 1050 1088 64 41 166 141 922 986 966 902\nis_linear=0\nshrinkage=0.01\n\n\nTree=163\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 3 13 0 3 0 3 0 12 12 13 12 0\nsplit_gain=199.851 8.277 7.9645 5.74435 3.70136 1.63609 1.56323 1.41934 1.79681 0.573708 0.0108102 0.000861376 0.000764541\nthreshold=1.0652111417665497 1.2351688403888856 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.1546668796111181 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.7800646666530477 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 9 7 8 -4 -5 -8 -9 -12\nright_child=2 -3 6 5 -6 -7 10 11 -10 -11 12 -13 -14\nleaf_value=-0.0073325189700523168 -0.0099079729046423724 -0.0021647757655826163 -0.0093003487412296557 0.010646459246866772 0.0021157076173391061 0.0018694374532674538 -0.011702642986728304 -0.011545245675426514 0.0017054133653578388 0.016208605947320671 -0.011274595771615851 -0.011257877508286619 -0.01108567925719919\nleaf_weight=1.8257063254714001 3.8316866457462293 5.6715767085552207 2.9728126227855665 96.375266350805759 7.7159353345632553 2.1176021322607985 2.9928997233510009 2.2306955605745316 2.9608594998717308 1.8907930105924595 2.2014067247509947 1.9591956138610838 79.658672966063023\nleaf_count=9 20 30 22 1045 36 13 27 20 24 10 22 20 902\ninternal_value=0 0.00959388 -0.00971577 0.0102464 -0.00187394 0.0105661 -0.0106692 -0.00695496 -0.00380855 0.0107535 -0.0111123 -0.0114109 -0.0110908\ninternal_weight=0 107.881 106.524 102.209 11.5476 100.384 94.9765 10.1236 5.93367 98.2661 84.853 4.18989 81.8601\ninternal_count=2200 1107 1093 1077 56 1068 1037 86 46 1055 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=164\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 4 3 0 10 0 12\nsplit_gain=197.512 10.6801 7.9811 5.84093 6.8818 1.7667 1.64622 1.24699 0.856221 0.782183 0.214052 0.00161895\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2169811510592434 0.42636365958866435 1.2103584781205146 1.1305001193370379 3.5000000000000004 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 9 8 -4 -2 -5 -9 -12\nright_child=2 -3 7 5 -6 -7 -8 10 -10 -11 11 -13\nleaf_value=0.010885538129304441 -0.0080444417649095882 -0.013402481865107908 -0.0058236050093718964 0.014596185676880527 -0.0071655618489069404 0.0022114235929770855 0.0026546909511174226 -0.0086268100556110752 -0.0017648253430262173 0.010711492190789748 -0.011263054651023643 -0.011074887110295946\nleaf_weight=4.3167747557163221 4.2997189089655858 1.9826694279909123 4.9495114907622328 5.5053661391139022 4.1351485028862953 2.3781201392412177 4.3644848912954322 3.6955920830368987 4.3863385021686554 88.563363067805767 4.8519479259848586 79.361728131771088\nleaf_count=28 22 11 38 38 22 17 20 36 21 991 50 906\ninternal_value=0 0.00959053 -0.00967827 0.0100251 0.00205394 0.0107236 -0.00235573 -0.0107074 -0.00487332 0.0109388 -0.0109824 -0.0110857\ninternal_weight=0 106.881 105.909 104.899 8.45192 96.4468 13.0505 92.8588 8.68606 94.0687 87.9093 84.2137\ninternal_count=2200 1107 1093 1096 50 1046 63 1030 43 1029 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=165\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=195.151 7.95676 6.5451 7.55255 4.48794 2.88617 2.80947 2.51677 1.86528 1.25239 0.215639 0.0026064 0.00156774 0.00135043\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.0010865939688822462 0.010839624229235921 -0.0057885320119521111 0.011065802981335898 -0.0076620565556267057 -0.0045251919266249318 0.010926449817443427 0.0035122780523572177 0.0079994133044722342 -0.010739353310836586 -0.0085974599463393957 -0.011249031020574016 0.011432524606534962 -0.011063049819180834 0.011322644652625004\nleaf_weight=3.9142122864723188 4.2918342128396016 4.929805099964141 82.215653359889984 4.5404990985989571 4.1909738481044752 4.0612018257379532 5.0292230099439612 2.5996082797646523 4.0975619480013847 3.6712482422590247 4.8096287399530402 2.056430295109748 78.655714593827724 2.0993806049227706\nleaf_count=21 28 38 945 24 20 23 25 21 22 36 50 20 906 21\ninternal_value=0 -0.0096565 0.00957045 0.00132834 0.0103192 0.00425782 -0.00234601 0.000269547 -0.00602343 -0.010692 -0.0109694 0.0110808 -0.0110738 0.0110722\ninternal_weight=0 105.107 106.056 8.83233 97.2232 10.8518 13.041 6.79058 8.01177 92.0664 87.1366 86.3715 83.4653 84.315\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=166\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=192.756 7.94963 6.51707 7.43238 4.50219 2.84281 2.75896 2.47273 1.84093 1.25779 0.217237 0.00252611 0.00151819 0.00130726\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.78827279013960749 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.001076066099449392 0.0092388813804310885 -0.0057535819115281253 0.011054075079421256 -0.0093262803944997794 -0.0044787917468930355 0.010859108964490752 0.0034758359241429206 0.007949711152051283 -0.010676040951290862 -0.0085681468494133769 -0.011235179262712868 0.011416662840483021 -0.011051354926442885 0.011307880990543062\nleaf_weight=3.9129891544580442 5.0541001185774785 4.9102520123124114 81.483520351350307 3.7611564099788666 4.1920429617166501 4.0456013679504395 5.0311219543218613 2.5897522494196892 4.0807277485728264 3.6470914781093589 4.7676134333014479 2.0387829244136801 77.955072186887264 2.0811914876103392\nleaf_count=21 33 38 945 19 20 23 25 21 22 36 50 20 906 21\ninternal_value=0 -0.00963391 0.00954805 0.00131779 0.0103004 0.00422485 -0.0023255 0.000267259 -0.00597678 -0.0106768 -0.0109566 0.0110689 -0.0110619 0.0110604\ninternal_weight=0 104.305 105.246 8.81526 96.4309 10.8274 13.0248 6.7818 7.99372 91.28 86.3698 85.6035 82.7227 83.5647\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=167\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 13 3 1 0 12\nsplit_gain=190.422 10.4812 7.92778 5.8052 1.72275 1.65972 2.4561 1.31152 1.26319 0.979433 0.218845 0.00147024\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 0.50652862085158101 1.2103584781205146 1.0383879925828392 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 9 6 -2 -6 -4 -5 -10 -12\nright_child=2 -3 8 4 7 -7 -8 -9 10 -11 11 -13\nleaf_value=0.00018800303967895317 -0.010979327839568915 -0.013346255543074004 -0.0057187545900591061 0.011079517733765695 0.00066395418144264749 0.0022203968330014945 0.00010510598179547644 0.010031846556785717 -0.0085388688323886682 0.0052847130803065478 -0.011221497126535125 -0.011039801867312305\nleaf_weight=5.7332194298505774 3.7866611629724485 1.9657482206821431 4.8908515796065322 87.750356607139111 2.9910414591431609 4.9837542921304694 4.2344634234905243 2.9869062677025795 3.6231209859251967 3.0170180946588507 4.7259012758731833 77.259769253432751\nleaf_count=27 21 11 38 1011 24 22 20 19 36 15 50 906\ninternal_value=0 0.00952631 -0.00961248 0.00996505 0.0105444 -0.00231175 -0.0051277 0.00534466 -0.0106616 0.0108869 -0.010944 -0.0110503\ninternal_weight=0 104.444 103.505 102.479 96.7453 13.0049 8.02112 5.97795 90.4996 90.7674 85.6088 81.9857\ninternal_count=2200 1107 1093 1096 1069 63 41 43 1030 1026 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=168\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=188.135 7.89861 6.47643 7.33082 4.50857 2.78684 2.71076 2.41836 1.82653 1.26858 0.220463 0.00244572 0.00142385 0.00123563\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.0010408012146741925 0.010749777905802718 -0.0056840496892352392 0.011031227081863795 -0.0075418934569083168 -0.004440240901232859 0.010766427553162414 0.0034554641488113687 0.0078933859693465693 -0.01062388648726513 -0.0085096239595384027 -0.011207982109730752 0.011390704938694641 -0.011028386638344016 0.011280073512361722\nleaf_weight=3.8990126997232419 4.2348817735910398 4.8716031387448302 80.044419825077057 4.5397755578160286 4.1835392862558347 4.0176365599036217 5.0187722593545914 2.564220555126667 4.0598926991224289 3.5993361175060263 4.6844914183020583 2.0075912699103347 76.569797828793526 2.0463982298970214\nleaf_count=21 28 38 945 24 20 23 25 21 22 36 50 20 906 21\ninternal_value=0 -0.00959186 0.00950559 0.00128615 0.0102659 0.00417263 -0.00229993 0.000246669 -0.0059292 -0.0106466 -0.0109315 0.0110459 -0.0110387 0.0110374\ninternal_weight=0 102.703 103.638 8.77466 94.8638 10.7654 12.9777 6.74776 7.95891 89.7252 84.8536 84.0984 81.2543 82.0908\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=169\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 13 3 1 0 12\nsplit_gain=185.839 10.3216 7.89405 5.77812 1.74579 1.64717 2.41628 1.29789 1.27397 0.981026 0.222092 0.00137896\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 0.50652862085158101 1.2103584781205146 1.0383879925828392 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 9 6 -2 -6 -4 -5 -10 -12\nright_child=2 -3 8 4 7 -7 -8 -9 10 -11 11 -13\nleaf_value=0.00016561440962269209 -0.010922638478559872 -0.013298229664939834 -0.0056494673169944143 0.011057073960424903 0.00059464137014743638 0.0022348840716859388 9.2766795130603611e-05 0.0099495390128527036 -0.0084804117590007271 0.0052491102677802845 -0.011194631778401945 -0.011017108539540925\nleaf_weight=5.7223380208015433 3.7628147602081281 1.9508081227540959 4.8525059148669234 86.222528651356697 2.9744972437620154 4.9777254015207291 4.2298544645309448 2.9578255861997604 3.5757358446717253 3.0097765028476706 4.6433832272887221 75.885131374001503\nleaf_count=27 21 11 38 1011 24 22 20 19 36 15 50 906\ninternal_value=0 0.00948456 -0.00956895 0.0099251 0.0105119 -0.0022808 -0.0050931 0.00525895 -0.0106316 0.0108612 -0.0109191 -0.0110273\ninternal_weight=0 102.838 101.927 100.887 95.1646 12.9704 7.99267 5.93232 88.9568 89.2323 84.1043 80.5285\ninternal_count=2200 1107 1093 1096 1069 63 41 43 1030 1026 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=170\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=183.625 7.84784 6.43761 7.21366 4.51462 2.73211 2.66346 2.3652 1.81232 1.27936 0.22373 0.00236829 0.00133552 0.00116816\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.0010059463374654473 0.010699416248536637 -0.0056150068040684642 0.011008927832686578 -0.0074877937093838524 -0.0044021378394837538 0.010674835536305018 0.0034351643791675009 0.0078374044292186668 -0.010572368238365795 -0.0084512300479724321 -0.011181443761410885 0.011365358983416196 -0.011005965797233338 0.011252941919013786\nleaf_weight=3.8851257115602476 4.1995451226830465 4.8335593268275252 78.627349562942982 4.5368276908993721 4.1749971210956556 3.9898670613765717 5.0064402222633362 2.5390002131462097 4.0391612201929092 3.5523194819688788 4.6025757715106002 1.9768213555216778 75.205744326114655 2.0120856910943976\nleaf_count=21 28 38 945 24 20 23 25 21 22 36 50 20 906 21\ninternal_value=0 -0.00955008 0.00946324 0.00125474 0.0102317 0.00412108 -0.00227472 0.000226431 -0.00588214 -0.0106168 -0.0109068 0.0110234 -0.0110161 0.011015\ninternal_weight=0 101.125 102.056 8.73637 93.3201 10.7039 12.9307 6.714 7.92429 88.1942 83.3606 82.6163 79.8083 80.6394\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=171\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=181.373 7.84032 6.40957 7.09357 4.52813 2.69114 2.61557 2.32372 1.78869 1.28474 0.225379 0.00229564 0.00129347 0.00113098\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.00099617938589000531 0.01065474165241582 -0.0055806680204985156 0.010997882156988359 -0.0074008072181515122 -0.0043571076385806387 0.010609332966083867 0.003399578859569432 0.0077882032758832152 -0.010510416333028072 -0.0084220774900237282 -0.011168415847497486 0.011350329687007632 -0.01099495663550518 0.011239037486978687\nleaf_weight=3.8839913010597211 4.1751046106219274 4.8147625252604476 77.922779709100723 4.5442129373550415 4.1759588867425901 3.9744332209229469 5.0082484781742096 2.5295372679829597 4.0224238336086273 3.5290861725807181 4.562068209052085 1.9597302004694928 74.531616017222404 1.9945172071456898\nleaf_count=21 28 38 945 24 20 23 25 21 22 36 50 20 906 21\ninternal_value=0 -0.0095278 0.00944121 0.0012448 0.0102134 0.00408912 -0.00225485 0.00022451 -0.00583659 -0.010602 -0.0108946 0.0110122 -0.011005 0.0110039\ninternal_weight=0 100.352 101.276 8.71932 92.557 10.6799 12.9147 6.7055 7.90642 87.4375 82.6228 81.877 79.0937 79.9173\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=172\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 3 3 3 4 3 0 12 12 13 3 3 0\nsplit_gain=179.195 8.12654 7.78968 3.85382 3.55324 3.50834 2.90744 1.64763 1.46816 1.88868 0.0128112 0.0112641 0.0025871 0.00111481 0.000759764\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.24292548700197389 1.0686078178399756 1.2351688403888856 0.39394749199373341 1.2471304352583659 1.2748487141050349 5.3611511359867654 4.6109421182883317 0.92841159450679933 1.2103584781205146 1.1748853893285929 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 6 -3 8 9 -4 13 -9 -10 -5 -13\nright_child=2 5 7 10 -6 -7 -8 11 12 -11 -12 14 -14 -15 -16\nleaf_value=0.0028484445923901 -0.0097366739979450299 0.00010342696297919498 -0.0091186205377030288 0.010990669921029513 0.0021599025502564489 -0.0051756780615749114 0.012710528960888853 -0.011630949522052085 -0.011560068103202887 0.0024074916052401478 0.01175495316745054 -0.011177274224667227 -0.011047413495528553 0.011231429826635513 -0.010982957906946575\nleaf_weight=6.2092848792672148 3.7363481819629651 3.9429611563682538 2.8538217917084676 78.254523321986198 7.6529874056577682 4.6080903261899948 3.412417083978653 2.8293561041355124 2.0642585828900342 2.8328436985611916 2.2911889255046836 2.0688041448593131 1.8817100822925565 1.9716998115181912 73.476856969296932\nleaf_count=33 20 32 22 956 36 23 22 27 18 24 20 22 22 21 902\ninternal_value=0 0.00940276 -0.00952472 0.0104459 -0.00174285 0.00166603 0.0059523 -0.0105318 -0.00662891 -0.00337682 0.0110176 -0.0110115 -0.0113156 0.0109966 -0.0109883\ninternal_weight=0 100.69 99.397 88.7267 11.3893 11.9635 7.35538 88.0077 9.63263 5.68667 82.5174 78.375 3.94597 80.2262 75.5457\ninternal_count=2200 1107 1093 1030 56 77 54 1037 86 46 997 951 40 977 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=173\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 3 13 1 0 12\nsplit_gain=177.083 10.0605 7.80232 5.7402 1.77778 1.65355 2.3675 1.29621 1.28143 0.968087 0.229538 0.00126605\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 1.2103584781205146 0.50652862085158101 1.0383879925828392 1.1305001193370379 5.428310804937337\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 9 6 -2 -4 -6 -5 -9 -12\nright_child=2 -3 7 4 8 -7 -8 10 -10 -11 11 -13\nleaf_value=0.00010452823850420967 -0.010860572574931306 -0.013226779095974273 -0.0055095943504314005 0.011014094509620008 0.00045945865662137201 0.0022987801878419137 7.5537905889158031e-05 -0.0083574705681272315 0.0098219359915137812 0.0052288427510085358 -0.011146448530141049 -0.010973450038951402\nleaf_weight=5.6933801621198645 3.7327445149421674 1.9265766292810429 4.7747430354356757 83.247195102274418 2.939598634839057 4.9567623734474182 4.2146402299404144 3.4776795953512183 2.9080928862094879 2.9965937435626975 4.4896896854042998 73.204759687185287\nleaf_count=27 21 11 38 1011 24 22 20 36 19 15 50 906\ninternal_value=0 0.00940301 -0.00948449 0.00984887 0.0104513 -0.00223392 -0.00506096 -0.0105731 0.00511548 0.0108131 -0.0108709 -0.0109834\ninternal_weight=0 99.7114 98.851 97.7849 92.0915 12.9041 7.94738 85.9469 5.84769 86.2438 81.1721 77.6944\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 43 1026 992 956\nis_linear=0\nshrinkage=0.01\n\n\nTree=174\nnum_leaves=15\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 1 12 3\nsplit_gain=174.941 7.74956 6.35459 6.96619 4.53609 2.64358 2.56407 2.25742 1.77073 1.30157 0.231214 0.00227546 0.00122631 0.00104187\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2132009332284019 1.2103584781205146 1.1305001193370379 0.98578357518082749 5.428310804937337 1.1748853893285929\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 11 7 8 -6 -1 -3 -11 13 -12 -4\nright_child=2 9 4 -5 5 -7 -8 -9 -10 10 12 -13 -14 -15\nleaf_value=-0.00050486531536607273 0.010591333448228078 -0.0054756236026531502 0.010965973419355495 -0.0073661711429699895 -0.0043277328204127871 0.010508835278361163 0.0033856655189686718 0.007710236715955463 -0.010053082462357078 -0.0083283987550154849 -0.011133846785034021 0.011320502502344627 -0.010962827171681941 0.011200391127022168\nleaf_weight=3.5128688216209394 4.1288091614842397 4.7564141079783431 75.862210124731064 4.5308425053954124 4.1671688705682737 3.9386078417301178 4.9836337119340897 2.487759955227375 4.3441298380494118 3.4550345838069907 4.4500223398208609 1.9178449288010586 72.546238265931606 1.9445833861827839\nleaf_count=19 28 38 945 24 20 23 25 21 24 36 50 20 906 21\ninternal_value=0 -0.00946726 0.00937872 0.00119573 0.0101633 0.00401537 -0.00222516 0.000172327 -0.00578407 -0.0105586 -0.0108591 0.0109802 -0.0109727 0.0109718\ninternal_weight=0 98.0483 98.9778 8.65965 90.3182 10.5935 12.8406 6.65493 7.857 85.2077 80.4513 79.7246 76.9963 77.8068\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 992 986 956 966\nis_linear=0\nshrinkage=0.01\n\n\nTree=175\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 2 0 3 0 0 0 12 12 2 0\nsplit_gain=172.827 9.90924 7.76787 5.7192 6.16141 1.78044 1.63979 2.32702 1.30859 1.3592 0.887516 0.814528 0.00171405 0.000742938 0.000538473 0.000183017\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 1.2148150016890609 1.0637796106207162 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 11 7 -2 9 10 -4 -5 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.010547321739533176 -0.010802382833871504 -0.013181651591838222 -0.007502194741049001 0.011028157462498758 -0.0067227569260365876 0.00185506666273329 0.0023098475428554839 6.084385821890273e-05 -0.011060566699646284 -0.011411781290657704 0.0010916940841134044 0.0068123419818658581 -0.011048086157521366 -0.011133690428372412 -0.011277081236646705 -0.01095024282849388\nleaf_weight=4.1046984642744047 3.7089318484067899 1.9118316769599903 2.46763828396797 80.852352470159531 4.1589163765311241 2.2902074158191672 4.9509483128786087 4.2103789001703262 2.8085264414548865 2.068363837897778 2.342427596449852 4.8583084717392913 1.9661471769213665 1.7938671261072157 1.9435436278581617 69.08381462097168\nleaf_count=28 21 11 22 992 22 17 22 20 33 20 20 37 23 20 20 872\ninternal_value=0 0.00936204 -0.00944164 0.00980976 0.00185563 0.0105567 -0.00220455 -0.00502684 -0.0105443 -0.00686457 -0.0033171 0.0107892 -0.0109652 -0.0112826 -0.0111491 -0.010953\ninternal_weight=0 98.1763 97.3446 96.2645 8.26361 88.0009 12.8703 7.91931 84.4743 8.6723 4.81007 85.7107 75.802 3.86223 4.75207 71.05\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=176\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 0 1 12 3 12 2 0\nsplit_gain=170.736 7.70836 6.29959 6.74953 4.54805 2.59923 2.51983 2.21195 1.7563 1.31532 1.35481 0.876116 0.00264183 0.00165991 0.000989029 0.00071905 0.000521115 0.00017712\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.78827279013960749 0.46553849925547169 1.0691005037898054 0.43216120423585541 0.40823767690221374 1.2169811510592434 1.2471304352583659 1.2748487141050349 1.2148150016890609 0.99689265265511573 5.428310804937337 1.1748853893285929 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 12 7 8 -6 -1 10 11 -3 14 16 -4 -12 -11 -15\nright_child=2 9 4 -5 5 -7 -8 -9 -10 13 15 -13 -14 17 -16 -17 -18 -19\nleaf_value=-0.00092418996032726981 0.0089482576762491238 -0.0074683482723546246 0.010945043843907161 -0.0088941499158311354 -0.0043055109460365436 0.010421609351994559 0.00336901879058238 0.007650580278050695 -0.01040049658965865 -0.011048965335086756 -0.011395980044952032 0.0010799353832399573 0.011364569325192643 -0.011036581113785972 0.011175375737829049 -0.011121195287151883 -0.011262904392879889 -0.010939894469168363\nleaf_weight=3.8528588116168958 4.8677738755941373 2.4541014134883863 74.815167561173439 3.7561188489198685 4.1587414741516096 3.9143595024943352 4.9728193581104279 2.4642921760678291 3.9720793515443802 2.7834860607981673 2.0506084188818936 2.3442440629005432 1.5746216401457775 1.9486027508974064 1.9118764474987973 1.7780032753944395 1.9266149178147314 68.460791796445847\nleaf_count=21 33 22 949 19 20 23 25 21 22 33 20 20 16 23 21 20 20 872\ninternal_value=0 -0.00942544 0.00933697 0.00117703 0.0101291 0.00396129 -0.00219717 0.0001431 -0.00573453 -0.01053 -0.00683192 -0.00329206 0.0109591 -0.0109547 0.0109508 -0.0112684 -0.0111365 -0.0109426\ninternal_weight=0 96.5442 97.463 8.62389 88.8391 10.5374 12.7978 6.62303 7.82494 83.7465 8.62696 4.79835 78.3017 75.1195 76.727 3.82861 4.7101 70.4094\ninternal_count=2200 1098 1102 52 1050 64 68 41 43 1030 82 42 986 948 970 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=177\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 3 0 13 1 0 12 12 2 0\nsplit_gain=168.675 9.75757 7.73372 5.69663 1.82274 1.62725 2.28957 1.32204 1.35043 1.27112 0.980487 0.864847 0.00160752 0.000695955 0.000504332 0.000171414\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 0.50652862085158101 1.0383879925828392 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 6 -2 8 11 -6 -5 -4 14 -10 -9 -14\nright_child=2 -3 7 4 9 -7 -8 12 13 -11 -12 -13 15 -15 -16 -17\nleaf_value=4.3561374862834525e-05 -0.010747876108586277 -0.013136300111951606 -0.007434563735494162 0.010973665123188795 0.00027803039073624454 0.0023226239242371454 4.8623805017925366e-05 -0.011037502878701706 -0.011380375725467295 0.0096781548443477788 0.0051317485695587277 0.0010683127554974256 -0.011025212895265542 -0.011108851216560595 -0.011248901591681055 -0.01092966849763603\nleaf_weight=5.6606616377830496 3.6854686737060529 1.8966995775699604 2.4406684190034849 80.369883626699448 2.8970372080802909 4.9447837322950363 4.205647736787796 2.7586374953389159 2.0329743251204495 2.8573574498295784 2.9794782474637023 2.3460416048765182 1.9311930164694775 1.7622580900788305 1.9098072946071623 67.842694528400898\nleaf_count=27 21 11 22 1011 24 22 20 33 20 19 15 20 23 20 20 872\ninternal_value=0 0.00932156 -0.00939905 0.00977105 0.010389 -0.00217527 -0.00499378 -0.0105159 -0.00679936 0.00494568 0.0107648 -0.00326717 -0.0109443 -0.0112543 -0.011124 -0.0109323\ninternal_weight=0 96.6611 95.8602 94.7644 89.1038 12.8359 7.89112 83.0243 8.58194 5.75439 83.3494 4.78671 74.4423 3.79523 4.66844 69.7739\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 82 43 1026 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=178\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 2 4 3 0 0 1 12 3 12 2 0\nsplit_gain=166.65 7.65857 6.25918 6.65223 4.55288 2.54849 2.47602 1.74303 1.50732 1.32876 1.34604 0.853706 0.00255749 0.00155681 0.000935779 0.000673623 0.000488105 0.000165896\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.43216120423585541 1.2169811510592434 0.4001334954389475 1.2471304352583659 1.2748487141050349 1.2148150016890609 0.99689265265511573 5.428310804937337 1.1748853893285929 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 12 8 7 -1 -6 10 11 -3 14 16 -4 -12 -11 -15\nright_child=2 9 4 -5 5 -7 -8 -9 -10 13 15 -13 -14 17 -16 -17 -18 -19\nleaf_value=-0.00089064115232115586 0.010461728292267292 -0.0074008404026872227 0.010924786735349874 -0.0071720361576215232 -0.0037854223985387659 0.010333632635879971 0.003349106393423723 -0.010351467058882962 0.0059740916664809129 -0.011026176574003106 -0.011364965045961066 0.0010568241336075244 0.011340630746237019 -0.011013981595608483 0.011150758173444171 -0.011096655946797946 -0.011235069803028906 -0.010919564113957262\nleaf_weight=3.8392652273178083 4.0503113418817502 2.4273389130830747 73.478681623935699 4.5342847853899002 3.9501772671937925 3.8873793333768845 4.9605477154254913 3.9518172442913055 2.6402673795819283 2.733980067074298 2.0154614448547368 2.3478205353021622 1.5511489063501347 1.9139172509312619 1.8794683963060368 1.7466311603784559 1.8931205198168752 67.229491047561169\nleaf_count=21 28 22 949 24 19 23 25 22 22 33 20 20 16 23 21 20 20 872\ninternal_value=0 -0.00938461 0.00929577 0.00114778 0.0100962 0.00391215 -0.0021733 -0.00568939 0.000124439 -0.0105018 -0.00676688 -0.00324243 0.0109387 -0.0109341 0.0109304 -0.0112404 -0.0111116 -0.0109222\ninternal_weight=0 95.0594 95.9717 8.5846 87.3871 10.4778 12.7516 7.79108 6.59044 82.3078 8.53725 4.77516 76.9093 73.7705 75.3582 3.76209 4.6271 69.1434\ninternal_count=2200 1098 1102 52 1050 64 68 43 41 1030 82 42 986 948 970 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=179\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 3 4 3 0 12 4 1 13 12 0\nsplit_gain=164.658 7.96256 7.65401 6.05441 3.43633 3.24995 2.95463 1.70448 1.4527 1.89314 0.633943 0.16764 0.0115123 0.000652029 0.000649147\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.0686078178399756 1.2351688403888856 0.39394749199373341 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.43963968064395148 0.95282455020400814 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 6 -3 8 9 -4 11 -5 -9 -10 -14\nright_child=2 5 7 10 -6 -7 -8 12 13 -11 -12 -13 14 -15 -16\nleaf_value=-0.0078855535464322241 -0.0096030667915773665 -0.0002374562806836301 -0.0090007550590657411 0.011035752696635896 0.0021908929463168056 -0.005066688108443065 0.012637810845741471 -0.011580437003520676 -0.01134974514943661 0.002659191973373214 0.006724962006523825 0.008880820745829526 -0.011095262286655973 -0.011084607317115993 -0.01091039541220825\nleaf_weight=1.7835836485028256 3.660504497587679 3.8406835347413999 2.7808621451258642 74.344332210719585 7.5988821238279343 4.5529098063707352 3.3256925642490387 2.7028988301753989 1.998069688677788 2.789077565073967 3.7554971799254409 3.794269047677516 1.9532373994588841 1.7311221361160276 68.960793390870094\nleaf_count=9 20 32 22 942 36 23 22 27 20 24 38 41 22 20 902\ninternal_value=0 0.00926007 -0.00937978 0.0103413 -0.0016434 0.00154014 0.00573756 -0.0104303 -0.00639625 -0.00316218 0.0107382 0.0109311 -0.0109399 -0.0112267 -0.0109155\ninternal_weight=0 95.397 94.1754 83.6777 11.2594 11.7193 7.16638 82.9161 9.29913 5.56994 81.8941 78.1386 73.6169 3.72919 70.914\ninternal_count=2200 1107 1093 1030 56 77 54 1037 86 46 1021 983 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=180\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 2 0 3 0 0 0 12 12 2 0\nsplit_gain=162.695 9.54017 7.66499 5.67778 5.88692 1.78358 1.6185 2.25393 1.34079 1.33502 0.849992 0.838226 0.00148221 0.000631147 0.000466671 0.000155293\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 1.0637796106207162 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 10 7 -2 9 11 -5 -4 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.01039826842728874 -0.010695727084257827 -0.013074112718204259 -0.0073491357865946919 0.010978005115430612 -0.0065834597479028792 0.0017127390889960783 0.002347452408448884 4.2116878334312652e-05 -0.011004397711053104 -0.01133471320865456 0.0066261689775660602 0.0010478918346347786 -0.010991883396648446 -0.011072703360880851 -0.011210417563575064 -0.010899705909241953\nleaf_weight=4.0099797844886762 3.6605333611369115 1.8742782697081555 2.4067510813474637 77.383378349244595 4.1582345739006996 2.2559676989912978 4.9318535476922989 4.1950974613428116 2.6853687241673461 1.9807988330721857 4.7645146548748007 2.3491567894816399 1.8797282204031933 1.7157304659485815 1.8617796972393987 66.01756014674902\nleaf_count=28 21 11 22 992 22 17 22 20 33 20 37 20 23 20 20 872\ninternal_value=0 0.00926204 -0.00933699 0.00971428 0.00175329 0.0104847 -0.00214257 -0.00496146 -0.0104742 -0.00670522 0.0107256 -0.00320147 -0.010914 -0.0112131 -0.0110888 -0.0109023\ninternal_weight=0 94.4464 93.6844 92.5721 8.16821 84.4039 12.7875 7.85563 80.8969 8.45244 82.1479 4.75591 72.4444 3.69653 4.54715 67.8973\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 1029 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=181\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 13 3 1 13 0 4 4 2 3 0 0 1 12 3 12 2 0\nsplit_gain=160.717 7.58356 6.20413 6.42329 4.56674 2.50837 3.37878 2.43063 1.72134 1.34749 1.33066 0.82738 0.00249136 0.00143559 0.000867165 0.000610949 0.000451703 0.000150309\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.0691005037898054 0.39481630453702732 0.43216120423585541 1.2169811510592434 1.2471304352583659 1.2748487141050349 1.2148150016890609 0.99689265265511573 5.428310804937337 1.1748853893285929 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 7 3 -2 12 6 -6 8 -1 10 11 -3 14 16 -4 -12 -11 -15\nright_child=2 9 4 -5 5 -7 -8 -9 -10 13 15 -13 -14 17 -16 -17 -18 -19\nleaf_value=-0.00085867078018925941 0.01035542156544288 -0.0073155603171124453 0.010895396036140629 -0.0070470887561593313 -0.0071354381111353995 0.010237869783697721 0.0072303613957893009 0.0033426648197036643 -0.010289053344147739 -0.010993465712189884 -0.011319866605440059 0.0010366384280522715 0.011310074604262558 -0.010981049411876768 0.011115698466185788 -0.011060942918488637 -0.011197058105640596 -0.01088995311853261\nleaf_weight=3.8215155601501447 3.9864239543676359 2.3936848118901235 71.519118748605251 4.5324382707476616 3.263582229614256 3.8556114658713341 3.2852676808834076 4.9392382055521011 3.9220428392291069 2.6612794250249854 1.9636487588286402 2.3509028032422066 1.5188638791441906 1.8628515452146519 1.8325280770659436 1.7004557549953458 1.8454428836703298 65.418914772570133\nleaf_count=21 28 22 949 24 16 23 25 25 22 33 20 20 16 23 21 20 20 872\ninternal_value=0 -0.00932409 0.00923363 0.00109646 0.0100465 0.00383872 7.12466e-05 -0.00213875 -0.00563507 -0.0104604 -0.00667298 -0.00317712 0.0109092 -0.010904 0.0109009 -0.0111997 -0.0110768 -0.0108925\ninternal_weight=0 92.88 93.7938 8.51886 85.275 10.4045 6.54885 12.6828 7.74356 80.1972 8.40869 4.74459 74.8705 71.7885 73.3516 3.6641 4.50672 67.2818\ninternal_count=2200 1098 1102 52 1050 64 41 68 43 1030 82 42 986 948 970 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=182\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 3 0 13 1 0 12 12 2 0\nsplit_gain=158.815 9.39285 7.62002 5.66102 1.86154 1.60748 2.22322 1.35418 1.3263 1.25606 0.983081 0.816658 0.00139047 0.00059142 0.000437229 0.000145489\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 0.50652862085158101 1.0383879925828392 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 6 -2 8 11 -6 -5 -4 14 -10 -9 -14\nright_child=2 -3 7 4 9 -7 -8 12 13 -11 -12 -13 15 -15 -16 -17\nleaf_value=-4.8972998550811473e-05 -0.010653736826990778 -0.013029295719546381 -0.0072820429606614027 0.010925645492811369 0.00010131008676408015 0.0023551743235872237 2.9864977515929662e-05 -0.010982663005649576 -0.011305202979154246 0.0095282993271289616 0.0050543124975671403 0.0010255145382626894 -0.010970344686916494 -0.011049322534654659 -0.011183860888382129 -0.010880315347894701\nleaf_weight=5.6161432415246955 3.6396574005484563 1.8590424358844746 2.380720414221285 76.900566816329956 2.8537103906273833 4.9256081730127335 4.1903254389762878 2.6373778954148284 1.9466191157698634 2.8003762513399124 2.96160814911127 2.3526307791471481 1.8461064994335163 1.6852975636720655 1.829225607216358 64.825072214007378\nleaf_count=27 21 11 22 1011 24 22 20 33 20 19 15 20 23 20 20 872\ninternal_value=0 0.0092227 -0.00929555 0.00967663 0.0103153 -0.00212065 -0.00493626 -0.0104467 -0.00664081 0.00477034 0.0107079 -0.00315291 -0.0108943 -0.0111865 -0.0110651 -0.0108828\ninternal_weight=0 92.9914 92.2586 91.1324 85.5163 12.7556 7.82998 79.5031 8.36527 5.65409 79.8622 4.73335 71.1378 3.63192 4.4666 66.6712\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 82 43 1026 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=183\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 2 0 3 0 0 0 12 12 2 0\nsplit_gain=156.883 9.27818 7.61013 5.64183 5.70597 1.7888 1.57936 2.19641 1.36086 1.32193 0.873855 0.806059 0.00134679 0.000572531 0.000423231 0.000140825\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.73272418878666612 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 1.0637796106207162 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 10 7 -2 9 11 -5 -4 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.010308335916788673 -0.010604825773827146 -0.012991261114643477 -0.0072485837325599331 0.010948169179644156 -0.0064638147756369167 0.0016220515352593748 0.002330672282595684 2.9565746854415459e-05 -0.010971987718915258 -0.011290718950600359 0.0065074602794279483 0.0010145182026253187 -0.010959766195410305 -0.011037840872204106 -0.011170823411173869 -0.010870790225124287\nleaf_weight=3.9534518644213659 3.6199785023927671 1.8459061980247486 2.3678574189543706 75.3531244546175 4.165663480758667 2.2376981526613227 4.927606001496315 4.1903587281703949 2.6136633530259124 1.929709851741791 4.7082170546054831 2.3543408587574959 1.8294927105307568 1.6702554598450658 1.8131275698542593 64.236006744205952\nleaf_count=28 21 11 22 992 22 17 22 20 33 20 37 20 23 20 20 872\ninternal_value=0 0.00920287 -0.00927401 0.00965596 0.00170307 0.0104405 -0.00210244 -0.00489932 -0.0104331 -0.00660873 0.010687 -0.00312886 -0.0108846 -0.0111734 -0.0110534 -0.0108733\ninternal_weight=0 92.2641 91.5524 90.4182 8.11912 82.299 12.7379 7.81034 78.8145 8.32216 80.0613 4.7222 70.4923 3.59997 4.42679 66.0655\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 1029 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=184\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 13 3 1 13 10 4 2 3 0 0 4 1 12 3 12 2 0\nsplit_gain=155 7.50083 6.1371 6.23084 4.57353 2.50396 2.39071 1.71542 1.36754 1.31756 0.795582 0.458528 0.00235182 0.00130453 0.000804759 0.000554258 0.000409695 0.00013632\nthreshold=2.5000000000000004 0.85162615880101311 0.52015392592939824 0.78827279013960749 0.46553849925547169 3.5000000000000004 0.43216120423585541 1.2169811510592434 1.2471304352583659 1.2748487141050349 1.2148150016890609 0.3887456056823268 0.99689265265511573 5.428310804937337 1.1748853893285929 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 12 11 7 -1 9 10 -3 -6 14 16 -4 -11 -10 -15\nright_child=2 8 4 -5 5 -7 -8 -9 13 15 -12 -13 -14 17 -16 -17 -18 -19\nleaf_value=-0.00080225140271033169 0.00870882966255857 -0.0072151807298118497 0.010866918480121359 -0.0085649905476677876 0.004294032285220759 -0.0033742478379607732 0.0033406274132209181 -0.010246154690802397 -0.010961437859048753 -0.011276412459473559 0.001003647909079202 0.0094493003884605319 0.011274485076898611 -0.010949313627783373 0.011081863837536819 -0.011026497183416403 -0.01115794349295284 -0.010861375161214338\nleaf_weight=3.7958402186632139 4.7159250527620298 2.3550954014062864 69.599261730909348 3.7476120069622993 3.0978759974241239 3.3267996311187744 4.9146599322557449 3.8991197794675827 2.5901349708437911 1.9129206389188769 2.3560331985354424 3.8939424231648445 1.4841747283935536 1.8130094632506359 1.7865579202771176 1.6553288847208021 1.7971483692526815 63.651698805391788\nleaf_count=21 33 22 949 19 14 24 25 22 33 20 20 26 16 23 21 20 20 872\ninternal_value=0 -0.0092645 0.00917278 0.00106007 0.00999816 0.00376717 -0.00210777 -0.00558758 -0.0104195 -0.00657672 -0.00310495 0.00716515 0.0108805 -0.010875 0.0108723 -0.0111605 -0.0110419 -0.0108638\ninternal_weight=0 90.741 91.6521 8.46354 83.1886 10.3186 12.6096 7.69496 78.1314 8.27938 4.71113 6.99182 72.87 69.852 71.3858 3.56825 4.38728 65.4647\ninternal_count=2200 1098 1102 52 1050 64 68 43 1030 82 42 40 986 948 970 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=185\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 4 1 13 12 0\nsplit_gain=153.166 7.82546 7.51908 6.04788 3.04257 2.97418 2.67579 1.74897 1.41831 1.86793 0.641296 0.172763 0.0116718 0.000536589 0.000534289\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.43963968064395148 0.95282455020400814 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 11 -5 -9 -10 -14\nright_child=2 4 7 10 -6 -7 -8 12 13 -11 -12 -13 14 -15 -16\nleaf_value=-0.008016924999654975 -0.0076283002240144608 -0.00049875431786430119 -0.0089088719353313389 0.01098119061802608 -0.0049716726075293271 0.012550691627697877 0.0023935731011085703 -0.011540844502445545 -0.011262281093045534 0.0027468831423326364 0.0065709867352932117 0.0087481293811586553 -0.011025081971131771 -0.011015287452031177 -0.0108528136289275\nleaf_weight=1.7712731137871731 4.4073093608021718 3.7647234499454481 2.7262494564056379 70.517959535121918 4.5080858841538429 3.2580560296773911 6.7357034832239151 2.5966864749789229 1.8962512165308001 2.7738742008805275 3.637626849114894 3.6435873731970778 1.8514396250247944 1.6405174806714056 65.28632277995348\nleaf_count=9 23 32 22 942 23 22 33 27 20 24 38 41 22 20 902\ninternal_value=0 0.00913871 -0.00925896 0.0102544 0.00143965 0.00555523 -0.0015703 -0.0103466 -0.00620735 -0.00303053 0.0106704 0.0108715 -0.010883 -0.0111477 -0.0108576\ninternal_weight=0 91.1013 89.9144 79.5704 11.5309 7.02278 11.143 78.7713 9.03689 5.50012 77.7992 74.1615 69.7344 3.53677 67.1378\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 983 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=186\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 0 2 0 3 0 13 1 0 12 12 2 0\nsplit_gain=151.361 9.07651 7.52597 5.63061 1.87452 1.56975 2.17032 1.37943 1.30658 1.24356 1.00375 0.780837 0.00124264 0.000519493 0.000391931 0.000127653\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 0.50652862085158101 1.0383879925828392 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 -1 10 6 -2 8 11 -6 -5 -4 14 -10 -9 -14\nright_child=2 -3 7 4 9 -7 -8 12 13 -11 -12 -13 15 -15 -16 -17\nleaf_value=-0.00011895213129950082 -0.010569598863066491 -0.012934300439694247 -0.007164066446128492 0.010888843904240211 4.4610061898846661e-07 0.0023424590333197171 2.2755150541332792e-05 -0.010941159270606437 -0.011248321722975987 0.0094345916670825168 0.0049391452734147221 0.00099418070480887218 -0.010928744892289869 -0.011004211733465193 -0.011135030819954124 -0.010842871941426666\nleaf_weight=5.5834320783615103 3.598842188715933 1.8242418467998494 2.3353994041681272 74.216028891503811 2.8262396305799475 4.9152773320674896 4.1823756396770477 2.5437491387128821 1.8797013834118845 2.7632988393306732 2.9481800124049178 2.3574469238519669 1.7803985252976406 1.6258206292986868 1.767158508300781 62.497102133929729\nleaf_count=27 21 11 22 1011 24 22 20 33 20 19 15 20 23 20 20 872\ninternal_value=0 0.00914472 -0.00921363 0.00960067 0.0102565 -0.00208162 -0.00487625 -0.0103929 -0.00651612 0.0046644 0.0106615 -0.00306578 -0.0108563 -0.0111351 -0.0110206 -0.0108453\ninternal_weight=0 90.1614 89.4833 88.3372 82.7537 12.6965 7.78122 76.7868 8.19837 5.58954 77.1642 4.69285 68.5884 3.50552 4.31091 64.2775\ninternal_count=2200 1107 1093 1096 1069 63 41 1030 82 43 1026 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=187\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 4 2 2 0 3 12 12 0 12 13 2 0\nsplit_gain=149.519 8.96582 7.51595 5.61739 5.60534 1.80233 1.54227 2.14419 1.38609 1.30229 3.08128 0.888225 0.00120375 0.000478276 0.000379431 0.000123577\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.33102573345802283 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 5.4588099803130126 5.3611511359867654 1.0637796106207162 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 11 7 -2 9 10 -4 -5 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.012417210826832129 -0.010521300739173638 -0.01289772607018674 -0.011483175066310199 0.010909940046992021 -0.0048376219942199228 0.0014793550935296917 0.0023181014426555016 2.2527491419252814e-05 -0.010930972944437473 -0.011232158489065372 0.004754771381129435 0.0064023819491118537 -0.010918658041194717 -0.010996970097853973 -0.011122584670602507 -0.010833782633218252\nleaf_weight=3.0073173120617849 3.5793071538209897 1.8111862167716015 2.2480075582861883 72.742653355002403 5.0344714000821114 2.2095138803124419 4.9172456562519073 4.1824008449912071 2.5207735300064078 1.855402857065201 2.433806486427784 4.6511158570647231 1.7643034532666195 1.6192921400070188 1.7515229433774946 61.926893681287766\nleaf_count=24 21 11 21 992 26 17 22 20 33 20 21 37 23 20 20 872\ninternal_value=0 0.00912504 -0.0091922 0.00958014 0.00161502 0.0103848 -0.00206374 -0.00483975 -0.0103796 -0.00648434 -0.003042 0.0106391 -0.010847 -0.0111226 -0.0110095 -0.0108361\ninternal_weight=0 89.4563 88.799 87.6451 8.04179 79.6033 12.679 7.76171 76.12 8.15651 4.68181 77.3938 67.9635 3.47469 4.2723 63.6912\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=188\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 10 13 4 13 13 13 4 1 3 1 0 12\nsplit_gain=147.727 7.39533 6.07149 6.08611 4.58077 3.54237 2.51504 2.24597 1.81422 1.47476 0.496062 1.20802 0.454216 0.0261108 0.00888295 0.00228211 0.00076556 0.000416135\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.73272418878666612 0.46553849925547169 1.3268335175992902 3.5000000000000004 0.85162615880101311 0.43216120423585541 1.0435162956499575 0.97735317110040087 0.87216409470284928 0.3887456056823268 1.1131779854950417 1.2103584781205146 0.99689265265511573 1.0188919694060079 5.4588099803130126\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 7 12 8 -1 -9 11 -3 -6 -7 -12 16 -4 -16\nright_child=2 10 4 -5 6 13 -8 9 -10 -11 14 -13 -14 -15 17 -17 -18 -19\nleaf_value=-0.0020459199038209241 0.010185982263708947 -0.012185089749032693 0.010830621912729725 -0.0069095858598976628 0.0042448351161909611 -0.012471468386526354 -0.0035122884841214202 -0.011219076062891664 0.0069542054126942345 0.00070780029351178093 -0.011443657562148532 -0.0019697628241716297 0.0093941809055128316 -0.010852733708299213 -0.010986788876511252 0.011237627311139357 0.011045324581936165 -0.010827772211793261\nleaf_weight=5.0825935900211352 3.8711264133453351 2.5125413388013831 67.147334448993206 4.5068819671869278 3.0898223966360074 1.9709444642066949 3.2944271489977837 2.775416485965251 4.0042499601840973 1.6549169495701788 2.4669287353754035 2.1467068418860435 3.8442760929465294 2.015482634305954 1.6908260956406582 1.4439686760306347 1.7028678059577931 61.6539341583848\nleaf_count=26 28 19 950 24 14 15 24 31 20 18 23 23 26 28 21 16 20 874\ninternal_value=0 -0.00918673 0.0090914 0.000989559 0.00993436 -0.00336916 0.00368173 -0.000926115 0.00192012 -0.00676388 -0.0106317 -0.00747847 0.00709964 -0.0116531 -0.0108549 0.0108442 0.0108359 -0.010832\ninternal_weight=0 87.9745 88.9007 8.37801 80.5227 17.5036 10.2285 13.5172 9.08684 4.43033 70.4709 4.65925 6.9341 3.98643 65.8117 70.2942 68.8502 63.3448\ninternal_count=2200 1098 1102 52 1050 138 64 95 46 49 960 42 40 43 918 986 970 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=189\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 4 2 2 0 3 0 0 0 12 12 2 0\nsplit_gain=145.967 8.81734 7.45949 5.58077 5.49117 1.80483 1.50939 2.11963 1.40556 1.30827 0.898444 0.774847 0.00115875 0.000492238 0.000354074 0.000115558\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.33102573345802283 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 1.2748487141050349 1.0637796106207162 1.2148150016890609 5.428310804937337 5.6282894992994832 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 10 7 -2 9 11 -5 -4 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.012371500920842399 -0.010477034843551598 -0.012858388479727357 -0.007070639826622145 0.010890178700282313 -0.0047674686499307346 0.0014265418858549683 0.0022860098873032217 2.9626298638705965e-05 -0.010913400497150701 -0.011212160889298977 0.0063388061950810986 0.0011033955535541973 -0.010898884741773763 -0.010971536594825856 -0.011100010015215545 -0.010816060942365343\nleaf_weight=2.9722709804773313 3.5552178099751455 1.7937055230140675 2.2996957972645742 71.464115492999554 5.0378783717751503 2.2000370100140563 4.9131511598825455 4.1749940887093544 2.481439232826232 1.8373988866806032 4.6173978522419921 2.3394173234701157 1.7325697168707836 1.5822433233261106 1.722635358572006 60.807996340095997\nleaf_count=24 21 11 22 992 26 17 22 20 33 20 37 20 23 20 20 872\ninternal_value=0 0.00908611 -0.0091521 0.00954226 0.00159217 0.0103558 -0.00204795 -0.00480251 -0.0103528 -0.00640792 0.010614 -0.00294863 -0.0108292 -0.0111008 -0.0109899 -0.0108184\ninternal_weight=0 88.0854 87.4468 86.2917 8.01015 78.2816 12.6434 7.73021 74.8034 8.05876 76.0815 4.63911 66.7446 3.41964 4.20407 62.5406\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 1029 42 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=190\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 0 1 3 2 0 3 12 12 4 12 13 2 0\nsplit_gain=144.191 8.71002 7.44926 5.57874 2.67552 3.55945 1.48297 2.09414 1.41219 1.30611 3.05728 0.73681 0.00112253 0.000455524 0.000342814 0.000111876\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.31415341067031349 0.95282455020400814 1.0021677959971271 1.2396581529761168 1.1305001193370379 1.2471304352583659 5.4588099803130126 5.3611511359867654 0.43963968064395148 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 11 -6 7 -2 9 10 -4 -5 14 -11 -10 -14\nright_child=2 -3 8 4 5 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=-0.0080778376120128077 -0.010429388380861045 -0.012822988910141792 -0.011445234761397929 0.010809822903338859 -0.0039082600417103619 0.0087803304380147003 0.0022622755984634943 2.9329758352971623e-05 -0.010903537418221454 -0.011199434131380952 0.0048299191915776559 0.0059144582028428736 -0.010889148718110376 -0.010967068606760881 -0.011087983293520773 -0.010807282814520289\nleaf_weight=1.7639153227210034 3.5358424410223943 1.7807357162237156 2.2038180604577047 69.447298921644688 3.0334156900644293 8.1528713777661306 4.9150394946336746 4.1750268042087555 2.4589596912264815 1.8121491000056269 2.4234516844153404 3.2169995680451384 1.7168563157320011 1.5785820484161375 1.7073354572057722 60.251604318618774\nleaf_count=9 21 11 21 963 24 65 22 20 33 20 21 35 23 20 20 872\ninternal_value=0 0.0090667 -0.00913075 0.00952199 0.00989223 0.00533953 -0.00203035 -0.00476655 -0.0103397 -0.00637635 -0.00292141 0.0105931 -0.0108202 -0.0110913 -0.0109791 -0.0108096\ninternal_weight=0 87.3952 86.7787 85.6145 83.8506 11.1863 12.6259 7.71087 74.1528 8.018 4.62727 72.6643 66.1348 3.39073 4.1663 61.9685\ninternal_count=2200 1107 1093 1096 1087 89 63 41 1030 82 42 998 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=191\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 10 0 0 13 13 4 1 3 1 0 12\nsplit_gain=142.457 7.36358 6.0116 7.8946 4.60803 3.48632 2.5233 2.16661 2.437 0.508305 1.21316 0.459359 0.0249621 0.0085545 0.00219963 0.000736198 0.000413777\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.0867160002493412 1.2459758622003483 0.97735317110040087 0.87216409470284928 0.3887456056823268 1.1131779854950417 1.2103584781205146 0.99689265265511573 1.0188919694060079 5.4588099803130126\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0052921446542891883 0.0089611700986208642 -0.012143235525255184 0.010804322035379833 -0.010896585552270053 0.0041610104754624512 -0.012425805672059222 -0.0036339058336344195 -0.0062751607821796484 0.0058328548292535497 -0.011411937600404865 -0.0018298734441774464 0.0093540884322734115 -0.010825398979660301 -0.010961818223405589 0.011207755738427397 0.011017251899180285 -0.010801427962621964\nleaf_weight=3.9960235133767155 4.9587608054280263 2.4713263884186736 65.335053786635399 3.3576133772730827 3.0795592218637449 1.937766753137111 3.269614540040493 7.246366433799265 2.1571465730667114 2.4191972464323035 2.1180852428078651 3.8115794435143471 1.9607108980417249 1.6527838557958592 1.4169772267341603 1.6651428043842305 59.980613753199577\nleaf_count=22 35 19 950 17 14 15 24 53 20 23 23 26 28 21 16 20 874\ninternal_value=0 -0.00912885 0.00902894 0.000943894 0.00988463 -0.00329784 0.00360076 -0.000876318 -0.00349761 -0.0105983 -0.00738346 0.00703337 -0.0116209 -0.0108286 0.0108179 0.0108096 -0.0108057\ninternal_weight=0 85.94 86.8943 8.31637 78.5779 17.298 10.1608 13.3995 9.40351 68.642 4.58941 6.89114 3.89848 64.0526 68.4172 67.0002 61.6334\ninternal_count=2200 1098 1102 52 1050 138 64 95 73 960 42 40 43 918 986 970 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=192\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 4 1 13 12 0\nsplit_gain=140.781 7.66574 7.36129 5.97692 2.81612 3.0136 2.58839 1.80911 1.40625 1.82937 0.653324 0.179525 0.011466 0.000491238 0.000429812\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.43963968064395148 0.95282455020400814 0.92841159450679933 5.6282894992994832 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 11 -5 -9 -10 -14\nright_child=2 4 7 10 -6 -7 -8 12 13 -11 -12 -13 14 -15 -16\nleaf_value=-0.0080281219197069695 -0.0075159827399654188 -0.0008246230003880092 -0.0087595671090320432 0.010922106931061382 -0.0048725751383119258 0.012462742488710894 0.0024199363247986629 -0.011487767833587381 -0.01118329736925204 0.00290149311965571 0.0063845912722731869 0.0085926342151162183 -0.010950410542864773 -0.010940008293548366 -0.010791025700288817\nleaf_weight=1.7650587633252133 4.3182080015540105 3.6778707429766637 2.6374166756868345 66.272381037473679 4.4485045820474625 3.1851074919104576 6.6743324398994446 2.4865079075098029 1.8004355132579806 2.7460469603538513 3.5104862675070754 3.4821632057428351 1.7400053143501271 1.5396788567304609 61.247031569480896\nleaf_count=9 23 32 22 942 23 22 33 27 20 24 38 41 22 20 902\ninternal_value=0 0.00899896 -0.00912029 0.0101559 0.00132491 0.00534204 -0.0014832 -0.0102518 -0.00597391 -0.00281139 0.010594 0.0108058 -0.0108217 -0.0110711 -0.0107954\ninternal_weight=0 86.3416 85.1897 75.0301 11.3115 6.86298 10.9925 74.1971 8.72358 5.38346 73.265 69.7545 65.4735 3.34011 62.987\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 983 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=193\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 2 0 3 12 12 0 12 13 2 0\nsplit_gain=139.118 8.49088 7.38642 5.56185 6.45401 1.82202 1.45474 2.07506 1.43263 1.30324 3.01391 0.918018 0.00107488 0.000441515 0.000312346 0.000100988\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.80211009798115074 1.2169811510592434 1.2396581529761168 1.1305001193370379 1.2471304352583659 5.4588099803130126 5.3611511359867654 1.0637796106207162 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 4 -1 11 7 -2 9 10 -4 -5 14 -11 -10 -14\nright_child=2 -3 8 5 -6 -7 -8 -9 12 13 -12 -13 15 -15 -16 -17\nleaf_value=0.0088096352827618362 -0.010382431020756564 -0.01276215614765442 -0.011410295964356941 0.010853865608002345 -0.0096396924866250129 0.0012754463704283334 0.0022573569602235078 5.9513067065995882e-05 -0.010878919532811806 -0.011170097328262841 0.0048310455574795113 0.0062181601748328742 -0.01086063092251471 -0.010938558834040601 -0.011057093800378051 -0.010781778965573729\nleaf_weight=4.7825496420264235 3.5073868632316572 1.7545041516423214 2.1624946519732466 69.00108702480793 3.1417336910963058 2.172867350280284 4.9039476215839386 4.1608052402734756 2.4021572321653357 1.7713897377252581 2.4225720688700676 4.5538147762417784 1.6705062836408604 1.5391682162880895 1.6664347797632215 58.621946655213833\nleaf_count=34 21 11 21 992 16 17 22 20 33 20 21 37 23 20 20 872\ninternal_value=0 0.00900952 -0.00907053 0.00946616 0.00149505 0.0103003 -0.00199629 -0.00471657 -0.0103014 -0.0062812 -0.002829 0.0105669 -0.0107946 -0.0110624 -0.0109519 -0.010784\ninternal_weight=0 85.4066 84.8288 83.6521 7.92428 75.7278 12.5721 7.66819 72.2567 7.89562 4.58507 73.5549 64.361 3.31056 4.06859 60.2925\ninternal_count=2200 1107 1093 1096 50 1046 63 41 1030 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=194\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 3 2 0 0 0 0 3 12 2 0\nsplit_gain=137.426 8.38777 7.37587 5.54096 6.33789 1.81966 1.43901 1.42925 2.05008 1.30084 0.92537 0.761399 0.00134063 0.00104135 0.000302448 9.77817e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.80211009798115074 1.2169811510592434 1.2471304352583659 1.2396581529761168 1.1305001193370379 1.2748487141050349 1.0637796106207162 1.2148150016890609 1.2036545671815675 5.428310804937337 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 7 4 -1 10 9 8 -2 11 -5 -4 -11 14 -8 -15\nright_child=2 -3 6 5 -6 -7 13 -9 -10 12 -12 -13 -14 15 -16 -17\nleaf_value=0.0087648617737364678 -0.010335425723469419 -0.012728221987861187 -0.0069431948954278453 0.010843432994186645 -0.0095252966158079506 0.0012635752976876604 -0.010869457286742244 0.0022339416747377962 5.8917065712608923e-05 -0.011274107681331762 0.0061795779182302162 0.0012206933093640289 -0.010867894360007803 -0.010851342023321759 -0.011045579498603107 -0.010773396131941036\nleaf_weight=4.7590286657214156 3.4882013797759992 1.7416543513536442 2.251150779426097 68.379914715886116 3.1476403698325157 2.1713554933667174 2.3803153112530699 4.9057866483926773 4.1608709022402763 1.4719765633344652 4.5365111380815497 2.3194679915904999 1.8133174180984495 1.6552931517362584 1.6515647321939466 58.083584323525429\nleaf_count=34 21 11 22 992 16 17 33 22 20 15 37 20 25 23 20 872\ninternal_value=0 0.00899041 -0.00904929 0.00944618 0.00148356 0.0102846 -0.0102886 -0.00197913 -0.00468121 -0.00625019 0.0105533 -0.00280024 -0.0110499 -0.0107861 -0.0109416 -0.0107756\ninternal_weight=0 84.7361 84.1815 82.9945 7.90667 75.0878 71.6267 12.5549 7.64907 7.85591 72.9164 4.57062 3.28529 63.7708 4.03188 59.7389\ninternal_count=2200 1107 1093 1096 50 1046 1030 63 41 82 1029 42 40 948 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=195\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 13 3 1 3 1 0 3\nsplit_gain=135.761 7.33432 5.92331 7.66617 4.62137 3.41936 2.53492 2.07924 2.45038 0.52282 1.22602 0.255701 0.0291843 0.008268 0.00208148 0.000775881 0.000436379\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.0867160002493412 1.2459758622003483 0.97735317110040087 0.87216409470284928 1.131123390631309 1.1058192561221138 1.2103584781205146 0.99689265265511573 1.0188919694060079 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0052534868329871436 0.0089605119838569933 -0.012097909440102748 0.010770456771051668 -0.010655645776740903 0.0092087419046136074 -0.012561025630741499 -0.0037740861731614833 -0.0062000081783945716 0.0060065934400754329 -0.011375733743712056 -0.0016289958633828789 0.0052985622177053084 -0.010794682418060345 -0.01091379496688254 0.01116906493925191 0.010991481974410022 -0.010767039816018911\nleaf_weight=3.9671103060245541 4.8415061607956869 2.4232924059033385 62.972804561257362 3.3853551745414734 2.9147613197565061 1.6867213696241372 3.2389434799551964 7.1557834446430189 2.1352596431970596 2.3602232709527007 2.0778363198041916 3.9236635565757751 2.0999942421913147 2.1004204973578444 1.3761513978242863 1.6293167248368252 57.321562126278877\nleaf_count=22 35 19 950 17 21 12 24 53 20 23 23 19 31 28 16 20 867\ninternal_value=0 -0.00905111 0.00894896 0.000888459 0.00982086 -0.00320066 0.00351352 -0.000806984 -0.0033947 -0.0105556 -0.00726519 0.00696521 -0.0115815 -0.0107953 0.0107842 0.010776 -0.0107722\ninternal_weight=0 83.3282 84.2825 8.22686 76.0556 17.0449 10.0774 13.2582 9.29104 66.2833 4.50113 6.83842 3.78672 61.7822 65.9783 64.6021 59.422\ninternal_count=2200 1098 1102 52 1050 138 64 95 73 960 42 40 43 918 986 970 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=196\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 3 12 13 3 0\nsplit_gain=134.181 7.54971 7.26506 5.9498 2.68206 3.02351 2.51995 1.84237 1.39785 1.79494 0.882031 0.0112255 0.011167 0.00129086 0.000381988\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.17408222448223767 4.6109421182883317 0.92841159450679933 1.2036545671815675 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 -5 -12 -9 -10 -14\nright_child=2 4 7 10 -6 -7 -8 12 13 -11 11 -13 14 -15 -16\nleaf_value=-0.008067149456957818 -0.0074380845451432346 -0.00098231218135582808 -0.008665084389230155 0.0055976000540064932 -0.0047876612453719158 0.012409083673458504 0.0024117979935739963 -0.011454362291155873 -0.011252762773629424 0.0029511069832039052 0.010780756715268075 0.011536379409939472 -0.010910863377821434 -0.010850996612480969 -0.010757926613054958\nleaf_weight=1.7589104548096646 4.2644946649670583 3.6358384713530523 2.5884077548980695 3.4197916239500037 4.4153575375676155 3.1438823789358139 6.6438829898834229 2.4236089438199988 1.450130417943001 2.736593671143055 65.33542412519455 2.027054361999034 1.6796096488833416 1.7829716578125951 59.042663209140301\nleaf_count=9 23 32 22 17 23 22 33 27 15 24 984 20 22 25 902\ninternal_value=0 0.00892093 -0.00904196 0.0101005 0.00127752 0.00522753 -0.00143889 -0.0101986 -0.00584449 -0.00269536 0.010552 0.0108035 -0.0107887 -0.0110312 -0.0107622\ninternal_weight=0 83.7363 82.6124 72.5412 11.1951 6.77972 10.9084 71.704 8.5581 5.325 70.7823 67.3625 63.1459 3.2331 60.7223\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 1004 951 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=197\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 1 2 3 2 0 12 12 0 12 13 2 0\nsplit_gain=132.592 8.1793 7.31588 5.49589 6.1704 1.83189 1.45959 1.40173 2.02792 1.30134 2.97569 0.934152 0.00099775 0.000425626 0.000275838 8.83016e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.80211009798115074 1.2169811510592434 1.2471304352583659 1.2396581529761168 1.1305001193370379 5.4588099803130126 5.3611511359867654 1.0637796106207162 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 7 4 -1 11 9 8 -2 10 -4 -5 14 -11 -8 -14\nright_child=2 -3 6 5 -6 -7 12 -9 -10 13 -12 -13 15 -15 -16 -17\nleaf_value=0.0086849603369964518 -0.010283945941432591 -0.012671060715571766 -0.011369523106437294 0.010817654007032187 -0.0094088264484668491 0.0011558505334956447 -0.010845936859780199 0.0022304819313645505 8.5688140588592604e-05 -0.011134439492000837 0.0048792144538557704 0.0061088737014872484 -0.010824148629269796 -0.010903509561970478 -0.011016154111403973 -0.010749053542215781\nleaf_weight=4.7073095738887778 3.458973675966261 1.7158504053950299 2.1131551936268798 66.579809099435806 3.1432890295982361 2.1525217294692984 2.3253214135766025 4.8945323079824448 4.1469671577215195 1.7195094451308253 2.4152485132217407 4.4976980537176123 1.6104602068662632 1.4894603565335272 1.611999526619911 56.507522866129875\nleaf_count=34 21 11 21 992 16 17 33 22 20 20 21 37 23 20 20 872\ninternal_value=0 0.00893477 -0.00898907 0.009392 0.00144042 0.0102444 -0.0102509 -0.00194388 -0.00463014 -0.00615547 -0.00270317 0.0105197 -0.0107616 -0.0110273 -0.0109156 -0.0107511\ninternal_weight=0 82.7965 82.2932 81.0806 7.8506 73.23 69.7927 12.5005 7.60594 7.73737 4.5284 71.0775 62.0553 3.20897 3.93732 58.118\ninternal_count=2200 1107 1093 1096 50 1046 1030 63 41 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=198\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 0 3 2 0 12 12 13 1 12 13 2 0\nsplit_gain=130.978 8.08005 7.30489 5.47476 1.93198 1.46588 1.37714 2.00349 1.29639 2.93725 1.25082 1.1172 0.000966714 0.000412401 0.000267126 8.55067e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.17408222448223767 1.048937272384614 1.2471304352583659 1.2396581529761168 1.1305001193370379 5.4588099803130126 5.3611511359867654 0.50652862085158101 1.0383879925828392 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 11 8 7 -2 9 -4 -6 -5 14 -10 -7 -14\nright_child=2 -3 5 4 10 12 -8 -9 13 -11 -12 -13 15 -15 -16 -17\nleaf_value=-0.00027157013213446326 -0.010237582512205426 -0.012638499278467464 -0.011354240265066482 0.010788519090254897 -0.00047389475783423876 -0.010836856145239283 0.002207364470898877 8.4829543773199954e-05 -0.011122087275087544 0.004813521471582892 0.0091699133756996242 0.0044480595816153001 -0.010815282153628685 -0.010893747103252072 -0.011005125252136932 -0.010741044885480824\nleaf_weight=5.4853750169277182 3.4399874433875066 1.703132115304469 2.0949308276176444 66.678402721881866 2.7143725976347914 2.3041035085916515 4.896325021982193 4.1470613107085228 1.7042812742292883 2.4236860424280167 2.6657450869679451 2.8998524174094191 1.5957364588975895 1.4759548380970953 1.5975512191653249 55.986768640577793\nleaf_count=27 21 11 21 1011 24 33 22 20 20 21 19 15 23 20 20 872\ninternal_value=0 0.00891578 -0.0089679 0.00937212 0.0100778 -0.0102383 -0.00192715 -0.00459538 -0.00612477 -0.00268221 0.00430443 0.0105243 -0.0107534 -0.0110161 -0.0109058 -0.0107431\ninternal_weight=0 82.1469 81.6664 80.4437 74.9584 69.183 12.4834 7.58705 7.69885 4.51862 5.38012 69.5783 61.4842 3.18024 3.90165 57.5825\ninternal_count=2200 1107 1093 1096 1069 1030 63 41 82 42 43 1026 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=199\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 13 4 1 3 1 0 3\nsplit_gain=129.406 7.2968 5.83564 7.43627 4.62798 3.35194 2.54746 1.98839 2.4602 0.536318 1.23628 0.428762 0.0275543 0.00810617 0.00200611 0.000853511 0.000464853\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.0867160002493412 1.2459758622003483 0.97735317110040087 0.87216409470284928 0.38545662354011129 1.1058192561221138 1.2103584781205146 0.99689265265511573 1.0188919694060079 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0052057085983983776 0.0088711140579105681 -0.012054906302062476 0.010738022852314245 -0.010525167537910265 0.0037474759627990632 -0.012500887575111648 -0.0039129837402213262 -0.0061246381466659103 0.0061707492497005125 -0.0113450182420393 -0.0014450334653866184 0.0089073909526844238 -0.01076104668340753 -0.010888350533820383 0.011135486744517243 0.010971929682171994 -0.010734737697809598\nleaf_weight=3.9351418092846897 4.7733258083462697 2.3769487477838984 60.683239415287971 3.3735621571540833 2.6326595693826658 1.6544555351138108 3.207224428653717 7.0617794021964055 2.114695779979229 2.3052843958139411 2.0414722338318825 4.147246927022934 2.0236862190067768 2.0428267382085314 1.3372900411486615 1.6011567637324322 55.23843640089035\nleaf_count=22 35 19 950 17 12 12 24 53 20 23 23 28 31 28 16 20 867\ninternal_value=0 -0.00897517 0.00886998 0.000839267 0.00975881 -0.00310758 0.00343013 -0.000741052 -0.0032912 -0.0105143 -0.00715276 0.00690378 -0.0115436 -0.0107636 0.0107523 0.010744 -0.0107402\ninternal_weight=0 80.7947 81.7557 8.14689 73.6088 16.7898 9.98713 13.1116 9.17648 64.005 4.41842 6.77991 3.67814 59.5865 63.6217 62.2844 57.2813\ninternal_count=2200 1098 1102 52 1050 138 64 95 73 960 42 40 43 918 986 970 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=200\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 3 13 12 3 0\nsplit_gain=127.869 7.43723 7.18098 5.90073 2.56015 3.02143 2.45757 1.87501 1.39298 1.74407 0.883063 0.0108722 0.0106199 0.00118326 0.000339655\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.17408222448223767 0.92841159450679933 4.6109421182883317 1.2036545671815675 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 -5 -9 -12 -10 -13\nright_child=2 4 7 10 -6 -7 -8 11 13 -11 12 14 -14 -15 -16\nleaf_value=-0.0080508417613542535 -0.0073578964605949797 -0.0011131661539372159 -0.0085546079629886702 0.0055455780630901987 -0.0047106590328760949 0.012350642485853817 0.0024122350700108474 -0.01142233465300704 -0.011210224195505422 0.0029663290877552238 0.010748812383469844 -0.010873116527421178 0.011492690973293423 -0.010819594010122146 -0.010726319603476298\nleaf_weight=1.7565656378865231 4.2150634750723821 3.6015464812517148 2.5312428772449476 3.4028471559286109 4.3829615265130997 3.1026674956083298 6.6150590553879738 2.3623963780701152 1.4087140336632731 2.7323709726333618 62.983365681022406 1.6210687905549992 1.9794980660080899 1.7249562814831731 56.910743746906519\nleaf_count=9 23 32 22 17 23 22 33 27 15 24 984 22 20 25 902\ninternal_value=0 0.00884305 -0.0089628 0.0100464 0.00123243 0.0051178 -0.00139028 -0.0101464 -0.00571661 -0.00257403 0.0105114 -0.0107572 0.0107715 -0.0109952 -0.0107304\ninternal_weight=0 81.2095 80.1216 70.1223 11.0872 6.70421 10.8301 69.2915 8.39728 5.26361 68.3657 60.8942 64.9629 3.13367 58.5318\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 951 1004 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=201\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 4 2 3 2 0 12 12 0 12 13 2 0\nsplit_gain=126.381 7.87842 7.23931 5.44635 6.69658 1.85707 1.48598 1.35216 1.9848 1.29256 2.89451 0.946151 0.000926529 0.000401933 0.000243697 7.72054e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.35806909455900915 1.2169811510592434 1.2471304352583659 1.2396581529761168 1.1305001193370379 5.4588099803130126 5.3611511359867654 1.0637796106207162 5.428310804937337 1.2823561955985172 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 7 4 -1 11 9 8 -2 10 -4 -5 14 -11 -8 -14\nright_child=2 -3 6 5 -6 -7 12 -9 -10 13 -12 -13 15 -15 -16 -17\nleaf_value=0.0088161680544383923 -0.010194043653938308 -0.012583230899578258 -0.011322219553221798 0.010784309437388921 -0.010193569255175838 0.00098213234180522641 -0.010814379392853355 0.0022028408845873888 0.00011051168116592576 -0.011095874668642017 0.0048098730222136147 0.0060155593417358698 -0.01078932223117496 -0.010867697650424023 -0.01097703480698353 -0.010717801499919051\nleaf_weight=4.7346877530217162 3.4126257225871068 1.6775132566690434 2.0557408183813086 64.243250720202923 3.0448184758424759 2.1243038251996031 2.2508531548082824 4.8850267231464386 4.1329874321818352 1.6657962314784529 2.4233450517058372 4.4486598148941985 1.5523490272462357 1.4387565180659292 1.559171989560127 54.462781190872192\nleaf_count=35 21 11 21 992 15 17 33 22 20 20 21 37 23 20 20 872\ninternal_value=0 0.00886052 -0.00890834 0.0093182 0.00137595 0.0101907 -0.0102014 -0.00189618 -0.00454989 -0.00603127 -0.00259418 0.0104755 -0.01073 -0.0109901 -0.0108809 -0.0107198\ninternal_weight=0 80.2732 79.8394 78.5957 7.77951 70.8162 67.4088 12.4306 7.54561 7.58364 4.47909 68.6919 59.8252 3.10455 3.81003 56.0151\ninternal_count=2200 1107 1093 1096 50 1046 1030 63 41 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=202\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 4 2 3 4 0 12 0 0 3 12 2 0\nsplit_gain=124.841 7.7829 7.22795 5.42457 6.57523 1.85408 1.49216 1.34267 1.28935 1.12492 0.95344 0.714801 0.00111724 0.000897763 0.000236026 7.47679e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.35806909455900915 1.2169811510592434 1.2471304352583659 0.42636365958866435 1.2748487141050349 5.3969699652511318 1.0637796106207162 1.1305001193370379 1.2036545671815675 5.428310804937337 1.2704041812989106 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 7 4 -1 10 8 11 9 -4 -5 -2 -10 14 -8 -15\nright_child=2 -3 6 5 -6 -7 13 -9 12 -11 -12 -13 -14 15 -16 -17\nleaf_value=0.0087715702376841218 -0.0072795265424236803 -0.012551974519674125 -0.0072625680300073903 0.010774492086133415 -0.010072800463555021 0.000972837801813105 -0.010805661611816309 0.0027203981092234438 -0.011186319692923002 0.0027993488818546103 0.0059776717349632738 -0.0013767936033176787 -0.010803600311995832 -0.010780857520578786 -0.010966466869995972 -0.010710149623292545\nleaf_weight=4.711290515959262 3.9723540470004064 1.664936676621436 2.3806946128606787 63.661686390638351 3.0504826381802559 2.1231594160199156 2.2302456349134441 4.1986898630857459 1.3865805268287661 2.0835641399025917 4.4321705847978583 4.2426805347204208 1.6953879036009309 1.5381035208702076 1.5451380647718904 53.959196366369724\nleaf_count=35 22 11 23 992 15 17 33 20 15 19 37 21 25 23 20 872\ninternal_value=0 0.00884165 -0.00888722 0.00929843 0.00136548 0.0101753 -0.0101891 -0.00187986 -0.00600093 -0.00256646 0.0104623 -0.00423104 -0.0109758 -0.0107223 -0.0108715 -0.0107121\ninternal_weight=0 79.6437 79.2326 77.9788 7.76177 70.217 66.8189 12.4137 7.54623 4.46426 68.0939 8.21503 3.08197 59.2727 3.77538 55.4973\ninternal_count=2200 1107 1093 1096 50 1046 1030 63 82 42 1029 43 40 948 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=203\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 10 0 0 13 2 4 1 3 1 0 0\nsplit_gain=123.344 7.25861 5.73038 7.07199 4.63838 3.29001 2.56349 1.90218 2.47211 0.551689 1.24767 0.510122 0.0262498 0.00751504 0.00188616 0.000887277 0.000266186\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.0867160002493412 1.2459758622003483 0.97735317110040087 1.2525408166204799 0.37673557459916307 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0051572282798624828 0.0086381095713795406 -0.011702428342953071 0.010707112522513731 -0.010388156600420455 0.0032513313858933079 -0.012449834200951335 -0.0040578348733118583 -0.0060502467513663255 0.0063399619792389294 -0.011227201179550773 -0.0008679555678156657 0.0089532593355334828 -0.010728929677199942 -0.010833298384040324 0.01109884866779064 0.010948209590069312 -0.010703083987768858\nleaf_weight=3.9062755703926113 4.7437885180115682 2.4665184356272212 58.472008783370256 3.321432888507843 2.4917039126157743 1.6250762194395059 3.1763316243886948 6.9749111011624318 2.0936848968267441 2.9254388213157645 1.8677195981144903 4.237184576690197 1.9498926661908624 1.6178781613707531 1.2970034703612316 1.5673395767807949 52.922120660543442\nleaf_count=22 35 23 950 17 11 12 24 53 20 32 19 29 31 23 16 20 863\ninternal_value=0 -0.00889883 0.00879173 0.000802681 0.00969617 -0.00301711 0.00334661 -0.000676731 -0.00318969 -0.0104739 -0.00703361 0.00684184 -0.0115112 -0.0107334 0.0107216 0.0107134 -0.0107069\ninternal_weight=0 78.3495 79.3068 8.06522 71.2416 16.5498 9.90522 12.9749 9.0686 61.7997 4.33424 6.72889 3.57497 57.4654 61.3364 60.0393 54.54\ninternal_count=2200 1098 1102 52 1050 138 64 95 73 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=204\nnum_leaves=17\nnum_cat=0\nsplit_feature=12 1 13 3 4 2 3 2 0 12 0 0 12 13 2 12\nsplit_gain=121.868 7.64791 7.19746 5.38255 6.40223 1.85954 1.50827 1.32202 1.96191 1.29155 1.45075 0.961422 0.000868833 0.000392468 0.000221771 7.59037e-05\nthreshold=4.8980530291692244 1.1732074739105893 0.85162615880101311 0.52015392592939824 0.35806909455900915 1.2169811510592434 1.2471304352583659 1.2396581529761168 1.1305001193370379 5.4588099803130126 1.2353254972663301 1.0637796106207162 5.428310804937337 1.2823561955985172 1.2704041812989106 5.5554043549548435\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 7 4 -1 11 9 8 -2 10 -4 -5 14 -11 -8 -14\nright_child=2 -3 6 5 -6 -7 12 -9 -10 13 -12 -13 15 -15 -16 -17\nleaf_value=0.00870495282713773 -0.010133598456073263 -0.012516970487638066 -0.0074456335142092248 0.010757216792502432 -0.0099154004548724726 0.00091541031191182131 -0.010790997364621314 0.0022001085959109032 0.00014431481611515328 -0.011070799591153733 0.0041110155334578014 0.0059231156167380491 -0.010736537835664712 -0.010842569940177921 -0.010948103035869284 -0.010693713270475151\nleaf_weight=4.6721545457839957 3.3807165920734388 1.6469996646046627 2.5361246317625037 62.531433645635843 3.0532194301486015 2.114948332309722 2.195807389914989 4.8784341812133789 4.1213691681623459 1.6281649433076384 1.900065094232559 4.4039241373538962 4.5125488340854636 1.4024827405810354 1.5208125375211237 49.974606353789568\nleaf_count=35 21 11 25 992 15 17 33 22 20 20 17 37 71 20 20 824\ninternal_value=0 0.00880443 -0.00884603 0.00926182 0.00134582 0.0101475 -0.0101645 -0.00185218 -0.00448729 -0.00593336 -0.0024958 0.0104392 -0.0107074 -0.0109652 -0.0108553 -0.0106973\ninternal_weight=0 78.4227 78.0511 76.7757 7.72537 69.0503 65.6706 12.3805 7.50209 7.46684 4.43619 66.9354 58.2038 3.03065 3.71662 54.4872\ninternal_count=2200 1107 1093 1096 50 1046 1030 63 41 82 42 1029 948 40 53 895\nis_linear=0\nshrinkage=0.01\n\n\nTree=205\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 3 13 13 3 0\nsplit_gain=120.418 7.3167 7.05455 5.85952 2.41574 3.04244 2.3876 1.91471 1.38566 1.70409 0.87795 0.0107294 0.0102937 0.00108006 0.000292474\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.17408222448223767 0.92841159450679933 0.50652862085158101 1.2036545671815675 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 -5 -9 -12 -10 -13\nright_child=2 4 7 10 -6 -7 -8 11 13 -11 12 14 -14 -15 -16\nleaf_value=-0.0080838000220321282 -0.0072857854136133826 -0.0013215695506871216 -0.0084400077839452553 0.0055003774006933785 -0.0046241778173659476 0.012292696750914156 0.0024061484420799173 -0.011391047370453228 -0.011162391820053661 0.0030324968123962232 0.01071436080396144 -0.0108280137322147 0.011570055542499626 -0.010781924457707091 -0.010688702964096233\nleaf_weight=1.7487390041351307 4.1429450511932355 3.5482042208313924 2.4708458408713323 3.3794855475425711 4.3456472232937813 3.0545951947569847 6.5768598839640617 2.2892805784940711 1.3590523824095728 2.7199810966849327 60.648651339113712 1.5500003695487965 1.4391891285777081 1.6544086076319215 54.339858617633581\nleaf_count=9 23 32 22 17 23 22 33 27 15 24 990 22 14 25 902\ninternal_value=0 0.00874668 -0.00886677 0.00998147 0.00116592 0.00497668 -0.00133955 -0.0100823 -0.00555973 -0.00242844 0.010464 -0.0107201 0.0107342 -0.0109535 -0.0106926\ninternal_weight=0 78.1645 77.1032 67.2161 10.9484 6.6028 10.7198 66.3834 8.20429 5.19083 65.4673 58.1791 62.0878 3.01346 55.8899\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 951 1004 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=206\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 12 3 1 3 0 0 2 0 13 13 3 3 0\nsplit_gain=118.987 7.49777 7.18176 5.35548 6.31885 2.80452 2.21609 5.52006 1.86137 0.966716 0.886051 0.0117008 0.00252109 9.81931e-05 4.94821e-05\nthreshold=4.8980530291692244 1.1732074739105893 5.4588099803130126 0.52015392592939824 0.80845556346269254 1.2616250467501662 1.1427926010382323 1.2509949463117855 1.2169811510592434 1.0637796106207162 0.81992547120608383 0.91589481622423152 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 -8 9 -5 -7 -12 -4 -14 -15\nright_child=2 -3 12 8 -6 10 7 -9 -10 -11 11 -13 13 14 -16\nleaf_value=0.0085604204972378976 0.0040895103352706855 -0.012469237366150949 -0.011071291376365989 0.010741118952028974 -0.010029169824384079 -0.004398117972478504 -0.0094833254943986287 0.0087946547187740774 0.00086403397173828104 0.0058786660649544067 -0.011828021288837616 -0.010823735590901103 -0.01076368958183984 -0.010739913770050638 -0.01067974057175731\nleaf_weight=4.6914720088243476 5.1460212469100979 1.627304472029208 1.7314747609198082 61.415509771555662 2.9963468015193939 3.1317966505885115 5.8224996589124185 2.3069552928209305 2.1047205775976172 4.3803452774882308 1.9173290953040121 2.9375059381127357 1.4896013289690007 1.4042317867279042 50.995689962059259\nleaf_count=35 29 11 21 992 15 18 42 19 17 37 20 43 23 22 856\ninternal_value=0 0.00876841 -0.00880604 0.00922563 0.00131508 -0.00386274 -0.00104577 -0.00429645 0.0101213 0.0104174 -0.00854516 -0.0112204 -0.0106957 -0.0106836 -0.0106814\ninternal_weight=0 77.2157 76.8831 75.5884 7.68782 21.2621 13.2755 8.12945 67.9006 65.7959 7.98663 4.85484 55.621 53.8895 52.3999\ninternal_count=2200 1107 1093 1096 50 171 90 61 1046 1029 81 63 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=207\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 0 13 0 3 4 13 3 0 12 3 13 13 3 0\nsplit_gain=117.542 7.24738 7.00676 5.81497 2.34855 3.02416 2.32673 1.9299 1.38395 1.68167 0.88613 0.0103029 0.00997294 0.00105883 0.000274097\nthreshold=1.0652111417665497 1.0188919694060079 0.78123321994831596 0.31415341067031349 1.2351688403888856 0.39394749199373341 0.582163634996683 1.2471304352583659 1.2748487141050349 5.3611511359867654 0.17408222448223767 0.92841159450679933 0.50652862085158101 1.2036545671815675 1.1305001193370379\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 6 -1 5 -3 -2 8 9 -4 -5 -9 -12 -10 -13\nright_child=2 4 7 10 -6 -7 -8 11 13 -11 12 14 -14 -15 -16\nleaf_value=-0.0080337891899866769 -0.0072182817443758006 -0.0013604441843826948 -0.0083829119577205034 0.0054483142596347886 -0.0045642924207472697 0.012250464526555156 0.0023672256712632183 -0.011367948585151718 -0.011147458691856153 0.0030436730963347282 0.01069981075490762 -0.010810318735041537 0.011547582724244323 -0.010768025257227268 -0.010674212914415915\nleaf_weight=1.7494828030467022 4.1179014518856984 3.536530174314974 2.448511101305483 3.3651513606309882 4.3301158472895622 3.0318961814045906 6.5765587538480759 2.2531567029654971 1.3416486009955408 2.7173940613865852 59.542096108198166 1.5218385383486737 1.4207112565636624 1.6277394220232961 53.339695490896702\nleaf_count=9 23 32 22 17 23 22 33 27 15 24 990 22 14 25 902\ninternal_value=0 0.00870845 -0.00882644 0.0099546 0.00115309 0.00492217 -0.00132367 -0.0100561 -0.00549929 -0.00237225 0.0104438 -0.0107052 0.0107196 -0.0109395 -0.010678\ninternal_weight=0 76.976 75.9444 66.0774 10.8985 6.56843 10.6945 65.25 8.13529 5.16591 64.328 57.1147 60.9628 2.96939 54.8615\ninternal_count=2200 1107 1093 1030 77 54 56 1037 86 46 1021 951 1004 40 924\nis_linear=0\nshrinkage=0.01\n\n\nTree=208\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 13 4 1 3 1 0 0\nsplit_gain=116.169 7.20858 5.60931 6.76276 4.65277 3.20392 2.572 1.7977 2.45422 0.567019 1.26847 0.495794 0.0242476 0.00727807 0.00181076 0.000971852 0.000239778\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.0867160002493412 1.2459758622003483 0.97735317110040087 0.87216409470284928 0.37673557459916307 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0050892048448614915 0.0086190393665246893 -0.011969049313280475 0.010670408419629573 -0.010044917701457481 0.0032225771782202189 -0.012373375424802862 -0.0042204779449936738 -0.0059494155097321467 0.0064577440603455502 -0.011190505054166437 -0.00099661168506768151 0.0088610878222996486 -0.010690698112549524 -0.0107930060707785 0.011061772970836022 0.010925549970863939 -0.010666699931752793\nleaf_weight=3.8699295818805721 4.6044053882360449 2.281261794269084 55.811906762421131 3.3567528650164604 2.4876129627227765 1.5864845886826509 3.1390928849577904 6.8669658452272397 2.0763639882206917 2.8377691581845275 1.9578033238649366 4.1795727759599686 1.8608823530375955 1.549090027809142 1.2512742392718781 1.53395565599203 50.519651006907225\nleaf_count=22 35 19 950 17 11 12 24 53 20 32 23 29 31 23 16 20 863\ninternal_value=0 -0.00880411 0.00869392 0.000749545 0.00961853 -0.00290734 0.00324319 -0.000604916 -0.00306886 -0.0104253 -0.00690145 0.00675729 -0.0114651 -0.0106973 0.0106854 0.0106772 -0.0106705\ninternal_weight=0 75.4062 76.3646 7.96116 68.4034 16.2606 9.80628 12.8133 8.94333 59.1456 4.23907 6.66719 3.44737 54.9065 58.5971 57.3459 52.0687\ninternal_count=2200 1098 1102 52 1050 138 64 95 73 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=209\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 12 3 1 3 0 0 2 0 13 13 3 3 0\nsplit_gain=114.804 7.31191 7.17848 5.30762 6.14902 2.73829 2.14612 5.42904 1.87141 0.972615 0.886973 0.010942 0.00240675 9.81459e-05 4.46516e-05\nthreshold=4.8980530291692244 1.1732074739105893 5.4588099803130126 0.52015392592939824 0.80845556346269254 1.2616250467501662 1.1427926010382323 1.2509949463117855 1.2169811510592434 1.0637796106207162 0.81992547120608383 0.91589481622423152 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 5 4 -1 6 -2 -8 9 -5 -7 -12 -4 -14 -15\nright_child=2 -3 12 8 -6 10 7 -9 -10 -11 11 -13 13 14 -16\nleaf_value=0.0084839171690650594 0.0040353543768752798 -0.01241903527804843 -0.011045706451957125 0.010718189587676633 -0.0099017617938088175 -0.0043220260881596554 -0.0094216265528308824 0.0087162550062453159 0.00076559496483297868 0.0058183980723597655 -0.011783830288087617 -0.010801823929680108 -0.010743375547945352 -0.010716437132641251 -0.010658474210997713\nleaf_weight=4.6400774717330924 5.1405562534928348 1.6024149805307377 1.6903796046972264 59.787879467010498 2.9920254796743393 3.114038608968257 5.7655622698366624 2.3120075464248657 2.0877470895647994 4.3456803560256949 1.8770304732024667 2.8689713701605797 1.4530863016843785 1.3656296357512463 49.595081832259893\nleaf_count=35 29 11 21 992 15 18 42 19 17 37 20 43 23 22 856\ninternal_value=0 0.00871424 -0.00874564 0.00917278 0.00127615 -0.00379505 -0.00101565 -0.0042301 0.0100829 0.0103862 -0.00846913 -0.0111902 -0.0106743 -0.0106623 -0.01066\ninternal_weight=0 75.4558 75.1823 73.8534 7.6321 21.0782 13.2181 8.07757 66.2213 64.1336 7.86004 4.746 54.1042 52.4138 50.9607\ninternal_count=2200 1107 1093 1096 50 171 90 61 1046 1029 81 63 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=210\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 0 12 0 0 12 3 4 0 3 13 3 3 0\nsplit_gain=113.4 7.1517 6.95516 5.77135 2.64647 6.22456 2.26658 3.01429 2.21906 0.889277 0.00972154 0.00233239 9.51056e-05 4.32507e-05\nthreshold=1.0652111417665497 1.0188919694060079 5.4588099803130126 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2351688403888856 0.39394749199373341 1.2509949463117855 0.17408222448223767 0.50652862085158101 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 -6 7 -3 -7 -5 -11 -4 -13 -14\nright_child=2 6 11 9 5 8 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0080109258468106549 -0.012975308555514056 -0.001436435583147431 -0.011034415286856626 0.0054012625268701113 0.011273147392626706 -0.0067191574289694189 -0.0044972650690681959 0.012209147014996992 0.0034325329893838677 0.010678709510780164 0.01152171716935233 -0.010735457508979232 -0.010708805661502615 -0.010651493548632792\nleaf_weight=1.7471495047211636 2.7468813359737423 3.512918680906294 1.6752639673650254 3.3478118777275077 2.7956918552517918 12.501773685216902 4.3078220039606094 3.0024031177163124 2.601270079612731 57.921786647289991 1.4010451622307289 1.4396835453808297 1.3530000708997239 49.13362080976367\nleaf_count=9 16 32 21 17 14 116 23 22 25 990 14 23 22 856\ninternal_value=0 0.00865215 -0.00876767 0.00991587 -0.00383606 -0.00243348 0.00113066 0.00485175 -0.00497068 0.0104156 0.0106986 -0.0106672 -0.0106553 -0.010653\ninternal_weight=0 75.2409 74.2472 64.4178 20.6456 17.8987 10.8231 6.51532 15.103 62.6706 59.3228 53.6016 51.9263 50.4866\ninternal_count=2200 1107 1093 1030 171 155 77 54 141 1021 1004 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=211\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 13 4 0 0 13 13 1 3 1 0 0\nsplit_gain=112.005 7.18967 5.528 6.57527 4.6797 3.15041 2.54905 1.75746 1.71966 1.57738 0.942059 0.577398 1.26567 0.0227087 0.00692332 0.00176814 0.000996389 0.000227128\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 0.85162615880101311 0.43216120423585541 1.2509949463117855 1.0637796106207162 0.97735317110040087 0.87216409470284928 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 7 10 8 -1 -9 -6 12 -3 -7 -13 16 -4 -16\nright_child=2 11 4 -5 6 13 -8 9 -10 -11 -12 14 -14 -15 17 -17 -18 -19\nleaf_value=-0.0019762308591490161 0.0085466144972023705 -0.011930488343402695 0.010649360431026815 -0.009915814530796787 0.0033277759767855498 -0.012315534409183256 -0.0042817433707620428 -0.010979960204303363 0.0069404135753476101 0.0021003644829275699 0.010920477281120467 -0.011162202114967903 -0.00090969642358615431 -0.010669760926293221 -0.010770269726027293 0.011040621259850161 0.010909716134035749 -0.010645752735237516\nleaf_weight=4.9396432861685771 4.552340541034936 2.2477766275405875 54.269740737974644 3.3474855646491051 3.7045412771403772 1.5609285421669477 3.1223712861537933 2.4746409542858596 3.8476965501904488 1.4693325124680994 2.9238989353179932 2.7779367081820956 1.9426863715052602 1.8112686127424238 1.5099485665559758 1.2240767441689957 1.5108457878231991 49.124684534966946\nleaf_count=26 35 19 950 17 22 12 24 33 20 16 18 32 23 31 23 16 20 863\ninternal_value=0 -0.00874435 0.00863353 0.000723314 0.00956962 -0.0028374 0.00316785 -0.000561026 0.00192808 -0.00610687 0.00667702 -0.0103957 -0.00682128 -0.0114316 -0.0106761 0.0106647 0.0106564 -0.0106495\ninternal_weight=0 73.7065 74.6553 7.89983 66.7555 16.1035 9.75081 12.7313 8.78734 3.94397 6.62844 57.603 4.19046 3.3722 53.4126 57.0047 55.7806 50.6346\ninternal_count=2200 1098 1102 52 1050 138 64 95 46 49 40 960 42 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=212\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 12 1 3 1 3 0 0 2 0 13 13 3 3 0\nsplit_gain=110.69 7.1846 7.12456 5.25654 5.98366 2.68771 2.10336 5.31575 1.87334 0.992425 0.893764 0.0104752 0.00222375 9.01812e-05 4.03875e-05\nthreshold=4.8980530291692244 5.4588099803130126 1.1732074739105893 0.52015392592939824 0.80845556346269254 1.2616250467501662 1.1427926010382323 1.2509949463117855 1.2169811510592434 1.0637796106207162 0.81992547120608383 0.91589481622423152 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 5 3 4 -1 6 -2 -8 9 -5 -7 -12 -3 -14 -15\nright_child=1 12 -4 8 -6 10 7 -9 -10 -11 11 -13 13 14 -16\nleaf_value=0.0084082684166735672 0.0040313720391220069 -0.01101501876654293 -0.012360235963540063 0.01069463945365519 -0.0097747647546295082 -0.0042295362128556167 -0.0093660709392969829 0.0085778771729160697 0.00068416003927585412 0.0057194030796057426 -0.0117521855520506 -0.010781975112958878 -0.010720366640479116 -0.010693773804184044 -0.010637872761621887\nleaf_weight=4.5894754044711581 5.128839626908305 1.6464220918714989 1.5782906934618939 58.199029449373484 2.9881739318370819 3.091971591114997 5.6988736614584905 2.3242517560720444 2.0707212463021269 4.3059509471058837 1.8435149900615213 2.8076727278530598 1.4138649031519879 1.3280193768441666 48.227770783007145\nleaf_count=35 29 21 11 992 15 18 42 19 17 37 20 43 23 22 856\ninternal_value=0 -0.0086832 0.00865754 0.00911728 0.00123796 -0.0037223 -0.000970399 -0.00416782 0.0100419 0.0103519 -0.00839647 -0.0111665 -0.0106533 -0.0106416 -0.0106394\ninternal_weight=0 73.5112 73.7316 72.1534 7.57765 20.8951 13.152 8.02313 64.5757 62.505 7.74316 4.65119 52.6161 50.9697 49.5558\ninternal_count=2200 1093 1107 1096 50 171 90 61 1046 1029 81 63 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=213\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 0 12 0 0 12 3 4 0 3 13 3 3 0\nsplit_gain=109.377 7.0798 6.93903 5.72794 2.61067 6.03138 2.18502 2.99422 2.16004 0.892191 0.00952004 0.00215523 8.73942e-05 3.91236e-05\nthreshold=1.0652111417665497 1.0188919694060079 5.4588099803130126 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2351688403888856 0.39394749199373341 1.2509949463117855 0.17408222448223767 0.50652862085158101 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 -6 7 -3 -7 -5 -11 -4 -13 -14\nright_child=2 6 11 9 5 8 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0079883438459368971 -0.012908094878093695 -0.001513826222795727 -0.011004092288759718 0.0053554747268141894 0.011149250787076088 -0.0066367983829344673 -0.0044409226618915025 0.012145595823743041 0.0033798376260491449 0.010658363471544322 0.011498201801402191 -0.010712710412468811 -0.010686399569220136 -0.010631123302618466\nleaf_weight=1.7446554154157627 2.7128966525197056 3.4899832978844625 1.6316503174602974 3.330454319715499 2.7806082591414478 12.343352597206829 4.2869105488061905 2.9709003493189812 2.6076883971691123 56.344264909625053 1.382858172059058 1.4007921293377865 1.3157081231474865 47.778056193143129\nleaf_count=9 16 32 21 17 14 116 23 22 25 990 14 23 22 856\ninternal_value=0 0.00859414 -0.00870983 0.00987763 -0.00377232 -0.00237457 0.00109439 0.00476717 -0.00488975 0.0103881 0.0106785 -0.0106464 -0.0106348 -0.0106326\ninternal_weight=0 73.55 72.5708 62.8022 20.4445 17.7316 10.7478 6.46088 14.951 61.0576 57.7271 52.1262 50.4946 49.0938\ninternal_count=2200 1107 1093 1030 171 155 77 54 141 1021 1004 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=214\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 0 12 0 0 12 3 4 0 3 13 3 3 0\nsplit_gain=108.022 7.05453 6.94694 5.67171 2.57605 5.92113 2.1449 2.95364 2.12752 0.901482 0.00922543 0.00208884 8.46931e-05 3.78992e-05\nthreshold=1.0652111417665497 1.0188919694060079 5.4588099803130126 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2351688403888856 0.39394749199373341 1.2509949463117855 0.17408222448223767 0.50652862085158101 1.226787362524943 1.2505460188215014 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 -6 7 -3 -7 -5 -11 -4 -13 -14\nright_child=2 6 11 9 5 8 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0078852519381546523 -0.012845431066379327 -0.0014972287556289452 -0.010993292695391428 0.0053137110244469545 0.011044620658315634 -0.0065966197576023461 -0.0044014516147155543 0.012084629512806961 0.0033381925678346086 0.010651418052209968 0.01148171849606457 -0.01070514032419927 -0.010679108382221006 -0.010624449792348925\nleaf_weight=1.7497645467519749 2.6989397928118732 3.4933675751090032 1.6169941537082184 3.323101043701171 2.778889141976836 12.294593442231415 4.2821249216794968 2.9561038464307785 2.6137871593236914 55.819824665784836 1.3710541687905777 1.3878298103809346 1.3035015501081932 47.332220517098904\nleaf_count=9 16 32 21 17 14 116 23 22 25 990 14 23 22 856\ninternal_value=0 0.00857327 -0.00868825 0.00986389 -0.00374541 -0.00235682 0.00108516 0.00472799 -0.00485482 0.0103771 0.0106713 -0.0106395 -0.0106281 -0.0106259\ninternal_weight=0 72.9953 72.0268 62.2637 20.3862 17.6873 10.7316 6.44947 14.9084 60.514 57.1909 51.6405 50.0236 48.6357\ninternal_count=2200 1107 1093 1030 171 155 77 54 141 1021 1004 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=215\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 13 4 0 0 13 2 1 3 1 0 0\nsplit_gain=106.732 7.14821 5.43159 6.38548 4.69803 3.08505 2.52739 1.69292 1.66824 1.55536 0.930732 0.589761 1.26862 0.0209193 0.0065468 0.00178408 0.00107236 0.000213736\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 0.85162615880101311 0.43216120423585541 1.2509949463117855 1.0637796106207162 0.97735317110040087 1.2525408166204799 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 7 10 8 -1 -9 -6 12 -3 -7 -13 16 -4 -16\nright_child=2 11 4 -5 6 13 -8 9 -10 -11 -12 14 -14 -15 17 -17 -18 -19\nleaf_value=-0.0019170063022448502 0.0084688272419972364 -0.011585240593141963 0.010622381179620163 -0.0098070330906762215 0.0032501849224007939 -0.012244606495101689 -0.0043687539299292807 -0.010949324297586716 0.006896068706551575 0.0021156375970627227 0.01083233953118813 -0.011128233367875306 -0.00040639562178806503 -0.01064357203920609 -0.010741761283445736 0.011021087468107574 0.010894641027455949 -0.010618923598229055\nleaf_weight=4.9075795933604223 4.4873720854520789 2.3333871476352206 52.27466120198369 3.3308354616165161 3.6760575398802739 1.5304956398904317 3.0969639644026756 2.4071690216660495 3.8194709941744804 1.4662185870110986 2.8931413665413857 2.7025650180876246 1.7969454005360601 1.7484086416661737 1.4602051004767407 1.1917963214218605 1.487862430512904 47.32132475823164\nleaf_count=26 35 23 950 17 22 12 24 33 20 16 18 32 19 31 23 16 20 863\ninternal_value=0 -0.00866786 0.00855511 0.000682658 0.00950757 -0.00275031 0.00307852 -0.000501841 0.00194011 -0.00600376 0.00658944 -0.0103575 -0.00672176 -0.0113909 -0.0106491 0.0106384 0.0106299 -0.0106226\ninternal_weight=0 71.4938 72.4387 7.81821 64.6205 15.8793 9.66616 12.6004 8.72705 3.87339 6.5692 55.6144 4.13033 3.2789 51.4841 54.9543 53.7625 48.7815\ninternal_count=2200 1098 1102 52 1050 138 64 95 46 49 40 960 42 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=216\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 3 0 4 3 3 4 3 2 3 12 12\nsplit_gain=105.444 13.2114 5.56401 5.37862 5.0713 4.82095 2.40704 1.15332 0.910539 0.869927 0.847468 0.8781 0.0219425\nthreshold=0.99689265265511573 1.1427926010382323 1.2616250467501662 0.31415341067031349 0.36041499722973019 1.031472441284053 1.2190084357665867 0.39394749199373341 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 2 5 -1 -3 -2 8 -7 -5 -4 -6 -12 -10\nright_child=1 4 9 6 10 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.007810273065621689 -0.0065101276248868472 0.0066808933329379899 -0.012301644061089244 0.0052773175566432611 -0.019679011046887376 0.0036289193549222105 0.00076460916762215419 0.010904296778753417 0.010641596554850976 -0.0041483549118962468 0.011182113352253404 -0.010403198753795752 0.011981794556975907\nleaf_weight=1.7516730353236187 3.395047381520274 1.7717596367001522 2.9406036213040343 3.3126381337642661 0.98668625950813194 4.0670940130949003 2.7255210578441611 4.693291712552309 55.432513535022736 2.3579838275909424 0.18907810747623344 57.975693538784981 1.2491829320788372\nleaf_count=9 27 19 27 17 6 23 18 31 998 28 2 984 11\ninternal_value=0 -0.00779206 -0.000121577 0.00947306 -0.0099896 0.00360612 0.00995576 0.00752663 0.0103733 -0.00867326 -0.0104889 -0.010333 0.0106711\ninternal_weight=0 78.3772 17.454 64.4715 60.9232 12.1554 62.7199 8.76039 59.9943 5.29859 59.1515 58.1648 56.6817\ninternal_count=2200 1147 136 1053 1011 81 1044 54 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=217\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 0 12 0 0 12 0 3 4 3 13 3 3 4\nsplit_gain=104.185 6.97884 6.94935 5.56266 2.55247 5.75203 2.12175 2.04889 2.91443 0.915082 0.0089024 0.00193384 7.91173e-05 4.19336e-05\nthreshold=1.0652111417665497 1.0188919694060079 5.4588099803130126 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 0.50652862085158101 1.226787362524943 1.2505460188215014 0.37337168479852062\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 3 4 -1 -2 -6 -7 8 -3 -5 -11 -4 -13 -14\nright_child=2 7 11 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0077103637451420024 -0.012772399607268378 -0.0015617163152431524 -0.010964910634434152 0.0052360837844519061 0.010953169166098136 -0.0065197939141157304 0.0034375293599015321 -0.0043241508749466643 0.011995206631683204 0.010631767348631872 0.011453700405919576 -0.010684372406036188 -0.010666053771119708 -0.010605282702641605\nleaf_weight=1.7566020414233197 2.6739266291260746 3.4722269251942617 1.5754739232361306 3.3053743094205847 2.764861702919009 12.143091678619383 2.5977833122014991 4.2586989551782608 2.9186747372150421 54.297679752111435 1.3505301885306824 1.3515809960663308 1.1640932969748963 46.148874551057816\nleaf_count=9 16 32 21 17 14 116 25 23 22 990 14 23 20 858\ninternal_value=0 0.00851578 -0.00862916 0.00982557 -0.00367246 -0.00228248 -0.00476502 0.00104907 0.00462962 0.0103481 0.0106517 -0.0106201 -0.0106089 -0.0106068\ninternal_weight=0 71.3598 70.4197 60.7102 20.1797 17.5057 14.7409 10.6496 6.3909 58.9536 55.6482 50.24 48.6645 47.313\ninternal_count=2200 1107 1093 1030 171 155 141 77 54 1021 1004 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=218\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 10 13 4 0 13 13 4 1 3 1 0 0\nsplit_gain=102.928 7.12151 5.364 6.28828 4.71574 3.03423 2.4861 1.62656 1.61815 1.55676 0.600253 1.2668 0.151883 0.0194281 0.00611618 0.00189249 0.00105755 0.000213192\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 3.5000000000000004 0.85162615880101311 0.43216120423585541 1.2509949463117855 0.97735317110040087 0.87216409470284928 0.38725830233834363 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 7 12 8 -1 -9 11 -3 -6 -7 -12 16 -4 -16\nright_child=2 10 4 -5 6 13 -8 9 -10 -11 14 -13 -14 -15 17 -17 -18 -19\nleaf_value=-0.0018742105452182831 0.0083040596996278113 -0.011849789081692118 0.010603003892694087 -0.0099400737908745766 0.0047753617039697797 -0.012185068321450955 -0.0043839512622724144 -0.010926317437769492 0.0068239068030883166 0.0022295210984580186 -0.011098086934383423 -0.00068473920152977005 0.0078522023586674525 -0.0106257355641008 -0.010723866370570871 0.011015834641644859 0.0108758985797229 -0.010599819166949288\nleaf_weight=4.8859072327613813 4.5021915286779395 2.1788115836679927 50.825854860246181 3.2551896497607231 2.846689969301222 1.5039894022047513 3.0863168463110924 2.3554854281246658 3.8039736077189445 1.4551148638129232 2.6399903558194628 1.9044790603220461 3.6762174777686596 1.7045991085469721 1.428473476320504 1.1785876005887974 1.4608947150409211 46.023873928934336\nleaf_count=26 35 19 950 17 13 12 24 33 20 16 32 23 27 31 23 16 20 863\ninternal_value=0 -0.00861012 0.00849529 0.000648369 0.00946037 -0.00268193 0.00301066 -0.000455329 0.00193337 -0.00590263 -0.0103291 -0.00664232 0.00650943 -0.0113567 -0.0106296 0.0106196 0.0106106 -0.0106036\ninternal_weight=0 69.8847 70.8319 7.75738 63.0746 15.7091 9.60922 12.5005 8.68988 3.8106 54.1756 4.08329 6.52291 3.20859 50.0923 53.4653 52.2867 47.4523\ninternal_count=2200 1098 1102 52 1050 138 64 95 46 49 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=219\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 3 0 3 4 3 13 3 2 3 12 12\nsplit_gain=101.71 13.0409 5.40887 5.27881 5.07903 5.07315 2.40683 1.73302 0.92715 0.877087 0.831597 0.851654 0.0206136\nthreshold=0.99689265265511573 1.1427926010382323 1.2616250467501662 0.31415341067031349 1.0021677959971271 0.36041499722973019 1.2190084357665867 0.582163634996683 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 2 4 -1 -2 -3 8 -6 -5 -4 -7 -12 -10\nright_child=1 5 9 6 7 10 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0076647783170297051 -0.0078948667384419399 0.0067538997931153423 -0.01227213912701044 0.0051883295260260918 0.0014989691475745283 -0.019609953584112563 0.00070580647770496425 0.010530620750373738 0.010622600199595636 -0.0040230901329909854 0.011145996057664235 -0.010374476622878047 0.011933075311585746\nleaf_weight=1.7567909657955159 2.9242112077772644 1.7640044428408135 2.894719596952199 3.2914871126413336 3.3424450270831567 0.97690549492835899 2.7110642641782752 5.8307728543877602 53.925062105059624 2.3235784396529198 0.18449105322360893 56.508307062089443 1.2276463136076916\nleaf_count=9 23 19 27 17 24 6 18 34 998 28 2 984 11\ninternal_value=0 -0.00772615 -8.9326e-05 0.00942585 0.00358139 -0.0099511 0.0099168 0.00723976 0.0103441 -0.00859904 -0.0104621 -0.0103044 0.0106518\ninternal_weight=0 76.7494 17.3157 62.9121 12.0974 59.4337 61.1553 9.17322 58.4442 5.2183 57.6697 56.6928 55.1527\ninternal_count=2200 1147 136 1053 81 1011 1044 58 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=220\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 13 3 3 4\nsplit_gain=100.476 6.95223 6.89861 5.46816 2.51986 5.5893 2.11577 1.95909 2.8726 0.931685 0.00858677 0.00179146 7.39981e-05 5.06039e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 0.50652862085158101 1.226787362524943 1.2505460188215014 0.37337168479852062\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0075674434542242902 -0.012685494886632082 -0.010937523375110827 -0.0016165805042696237 0.0051476952150878294 0.010861911440733377 -0.006445825004483343 0.0035320093266873243 -0.0042480424862384441 0.011903445161579299 0.010612982289545684 0.011426493443206606 -0.010664326883667852 -0.010653962678614497 -0.010586608479315507\nleaf_weight=1.761569395661353 2.6479313150048283 1.5349318534135807 3.4530064910650236 3.2843303978443137 2.7510946467518833 11.997521538287399 2.5826589576899996 4.2353712320327759 2.8841340281069279 52.817693963646889 1.330162864178418 1.3162310384213913 1.143891967833041 44.880536895245314\nleaf_count=9 16 21 32 17 14 116 25 23 22 990 14 23 20 858\ninternal_value=0 -0.0085697 0.00845803 0.00978699 -0.00359975 -0.0022116 -0.0046784 0.00101745 0.0045366 0.0103193 0.010633 -0.0106013 -0.0105904 -0.0105883\ninternal_weight=0 68.8548 69.7663 59.1938 19.9792 17.3313 14.5802 10.5725 6.33714 57.4322 54.1479 48.8756 47.3407 46.0244\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 901 878\nis_linear=0\nshrinkage=0.01\n\n\nTree=221\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 3 0 4 3 3 4 3 2 3 12 12\nsplit_gain=99.2606 12.9407 5.29289 5.17158 5.0477 4.58212 2.40266 1.1193 0.945409 0.879297 0.81863 0.832557 0.0193958\nthreshold=0.99689265265511573 1.1427926010382323 1.2616250467501662 0.31415341067031349 0.36041499722973019 1.031472441284053 1.2190084357665867 0.39394749199373341 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 2 5 -1 -3 -2 8 -7 -5 -4 -6 -12 -10\nright_child=1 4 9 6 10 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.007471765249866349 -0.0063737921378963216 0.0067344665384453653 -0.012237972451275531 0.00510734250343166 -0.019545441083987314 0.0035402063388378546 0.0006758763275775681 0.010726522819042831 0.010609934052666799 -0.0039374387163035006 0.011119883630505136 -0.010354108676303821 0.011891094090525991\nleaf_weight=1.7662617191672314 3.3512464836239841 1.7639389149844635 2.8603340573608866 3.27721282839775 0.97109639644622703 4.0504117608070356 2.7032704800367346 4.6620600670576096 52.934432782232761 2.3043714426457882 0.18113498389720817 55.550008647143841 1.2086646109819401\nleaf_count=9 27 19 27 17 6 23 18 31 998 28 2 984 11\ninternal_value=0 -0.00768019 -6.33356e-05 0.00939364 -0.00992468 0.00356332 0.0098891 0.00738562 0.0103228 -0.00853447 -0.0104429 -0.0102843 0.0106385\ninternal_weight=0 75.6946 17.2284 61.8898 58.4662 12.0637 60.1236 8.71247 57.4203 5.16471 56.7022 55.7311 54.1431\ninternal_count=2200 1147 136 1053 1011 81 1044 54 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=222\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 13 3 4 3\nsplit_gain=98.0728 6.96136 6.82733 5.36466 2.49009 5.45893 2.10306 1.88666 2.83584 0.949931 0.00820426 0.00168521 7.36852e-05 5.68884e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 0.50652862085158101 1.226787362524943 0.37337168479852062 1.2505460188215014\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0073777038770086525 -0.012608093014858492 -0.010918118214142472 -0.0016385582044991353 0.0050672684531478307 0.010775236322181895 -0.0063860472233134083 0.0035819183206023115 -0.0041701752961308394 0.011837838943584415 0.010600508420346962 0.011401709781980041 -0.010655763745307091 -0.010643606879682511 -0.010574526213833049\nleaf_weight=1.7708695307373989 2.6316501572728184 1.5079902373254288 3.4441104084253293 3.2701346874237052 2.7415058612823513 11.90499125048518 2.5742888972163191 4.2177379876375198 2.856570839881897 51.846811413764954 1.3103756308555592 1.2007505074143399 1.2252475582063187 44.055511992424726\nleaf_count=9 16 21 32 17 14 116 25 23 22 990 14 21 22 858\ninternal_value=0 -0.00852881 0.00842056 0.00976059 -0.00354841 -0.00216393 -0.00461383 0.00100619 0.0044713 0.0102984 0.0106203 -0.0105891 -0.0105784 -0.0105764\ninternal_weight=0 67.8419 68.7166 58.1982 19.8524 17.2208 14.4793 10.5184 6.30068 56.4273 53.1572 47.9895 46.4815 45.2808\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 901 880\nis_linear=0\nshrinkage=0.01\n\n\nTree=223\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 13 13 4 13 2 4 1 3 1 0 0\nsplit_gain=96.9136 7.07916 5.25771 6.15713 4.73199 2.96162 2.44369 1.52333 1.57716 1.55653 0.617079 1.27024 0.426339 0.0173247 0.00551685 0.00214191 0.00105875 0.000218488\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 0.85162615880101311 1.0435162956499575 0.43216120423585541 0.97735317110040087 1.2525408166204799 0.3887456056823268 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 7 12 9 -9 -1 11 -3 -6 -7 -12 16 -4 -16\nright_child=2 10 4 -5 6 13 -8 8 -10 -11 14 -13 -14 -15 17 -17 -18 -19\nleaf_value=-0.0018138448701860536 0.008363474478602027 -0.011503513683631407 0.010572172108279135 -0.0097575585698327898 0.0036550470629015553 -0.012095750892826093 -0.004449644223615724 -0.010977671430367861 0.0023762319333498418 0.0067519857027706146 -0.011052150905812659 -0.00016664533710149921 0.0088109112761224229 -0.01059812988043979 -0.010697260059647488 0.011014168311728238 0.010849058701591887 -0.010569476588581992\nleaf_weight=4.8463385254144651 4.3701408281922332 2.2462729401886454 48.495094001293182 3.284139946103096 3.0112088769674283 1.4636576958000653 3.0619238391518593 2.2505715116858478 1.4569768868386743 3.7728797122836113 2.5416137017309657 1.7648187577724455 3.4314268827438354 1.6356162093579767 1.3800904825329769 1.1630585268139828 1.4214717485010613 43.941800851374865\nleaf_count=26 35 23 950 17 14 12 24 31 18 20 32 19 26 31 23 16 20 863\ninternal_value=0 -0.00851445 0.00839776 0.000588478 0.00938439 -0.00256699 0.00290551 -0.000369926 -0.00572991 0.00193567 -0.0102831 -0.00651547 0.00640112 -0.0113054 -0.0105988 0.0105899 0.0105801 -0.0105734\ninternal_weight=0 67.3006 68.2385 7.65428 60.5842 15.426 9.50456 12.3268 3.70755 8.61922 51.8746 4.01109 6.44264 3.09927 47.8635 51.0796 49.9166 45.3219\ninternal_count=2200 1098 1102 52 1050 138 64 95 49 46 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=224\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 3 0 4 3 3 4 3 2 3 12 12\nsplit_gain=95.7525 12.7614 5.14438 5.06609 5.04573 4.47725 2.40188 1.09891 0.958181 0.885529 0.80351 0.806848 0.0182044\nthreshold=0.99689265265511573 1.1427926010382323 1.2616250467501662 0.31415341067031349 0.36041499722973019 1.031472441284053 1.2190084357665867 0.39394749199373341 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 2 5 -1 -3 -2 8 -7 -5 -4 -6 -12 -10\nright_child=1 4 9 6 10 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0073106836040656665 -0.0063328719775521672 0.0067957010429840412 -0.012210227109437222 0.0050333542898310371 -0.019478347952786784 0.003500640500514865 0.00061918550958971164 0.0106336980785146 0.010591768529448535 -0.0038186428407580002 0.011084865469120762 -0.010325811000206573 0.011844170815950407\nleaf_weight=1.772186130285262 3.3243879713118103 1.7572623938322056 2.8158371411263934 3.2600552588701239 0.96149718761443992 4.0393136106431466 2.6892113834619513 4.6416535377502441 51.487232647836208 2.2723025791347027 0.17658142745494743 54.141821768134832 1.1873846352100361\nleaf_count=9 27 19 27 17 6 23 18 31 998 28 2 984 11\ninternal_value=0 -0.00761495 -3.59154e-05 0.00934701 -0.00988632 0.00353552 0.00985057 0.00731464 0.0102944 -0.00846265 -0.0104166 -0.0102562 0.01062\ninternal_weight=0 74.1307 17.0935 60.3961 57.0372 12.0054 58.6239 8.68097 55.9347 5.08814 55.2799 54.3184 52.6746\ninternal_count=2200 1147 136 1053 1011 81 1044 54 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=225\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 3 0 4 3 3 4 3 2 3 12 12\nsplit_gain=94.5729 12.6801 5.06219 5.01492 5.0007 4.38795 2.39817 1.07408 0.967077 0.882088 0.790707 0.797868 0.0176498\nthreshold=0.99689265265511573 1.1427926010382323 1.2616250467501662 0.31415341067031349 0.36041499722973019 1.031472441284053 1.2190084357665867 0.39394749199373341 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 2 5 -1 -3 -2 8 -7 -5 -4 -6 -12 -10\nright_child=1 4 9 6 10 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0072193689103061502 -0.0062713519585509241 0.006701694731351052 -0.012186275317521681 0.0049937768920962754 -0.019426081287253302 0.0034676300914275766 0.00061311333364160695 0.010519471827164536 0.01058556667974715 -0.0037900652968857291 0.01107290617627636 -0.010313527868035284 0.011823883692733688\nleaf_weight=1.7766330018639553 3.3234340250492123 1.7640583962202061 2.7932710014283648 3.2530684620141974 0.95447847992181678 4.0370003767311555 2.6886898204684249 4.6451170295476913 51.004641968756914 2.266570720821619 0.17501229047775169 53.666622497141361 1.1775768548250187\nleaf_count=9 27 19 27 17 6 23 18 31 998 28 2 984 11\ninternal_value=0 -0.00759089 -3.57122e-05 0.00933052 -0.00987044 0.0035001 0.00983639 0.00724052 0.0102837 -0.00842517 -0.010404 -0.010244 0.0106135\ninternal_weight=0 73.6256 17.0654 59.9006 56.5602 12.0056 58.124 8.68212 55.4353 5.05984 54.7961 53.8416 52.1822\ninternal_count=2200 1147 136 1053 1011 81 1044 54 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=226\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 12 3 4 3\nsplit_gain=93.4665 6.96605 6.70971 5.21549 2.4738 5.27935 2.12388 1.76811 2.79753 0.971772 0.00783073 0.00151592 9.87522e-05 5.01193e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.226787362524943 0.37337168479852062 1.2505460188215014\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0071295618524675622 -0.012524385379138652 -0.010883299643430641 -0.0017344025285422969 0.0049544723699814315 0.010709055603049302 -0.006290828034136324 0.0037939676887847086 -0.0040590008811212056 0.011741344953944187 0.010573568287620912 0.011262367482739309 -0.010645723455858703 -0.01061729283928871 -0.010551244174415967\nleaf_weight=1.7810001149773587 2.6051496416330364 1.4563929401338089 3.412595830857752 3.2461216747760764 2.719758182764056 11.720143157988785 2.5410940758883944 4.1829382106661797 2.8082236982882023 49.539155256003141 1.7073902040719975 1.1804765164852131 1.1808424331247795 42.452799540013075\nleaf_count=9 16 21 32 17 14 116 25 23 22 984 20 21 22 858\ninternal_value=0 -0.00844979 0.00834608 0.00971005 -0.00345093 -0.00205892 -0.0044939 0.000968396 0.00434887 0.0102604 0.0105965 -0.0105658 -0.0105555 -0.010553\ninternal_weight=0 65.8567 66.6774 56.2737 19.5861 16.981 14.2612 10.4038 6.22082 54.4927 51.2465 46.2705 44.8141 43.6336\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 901 880\nis_linear=0\nshrinkage=0.01\n\n\nTree=227\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 0 4 13 13 4 13 2 1 3 1 0 0\nsplit_gain=92.3287 7.05119 5.17131 6.06032 4.74815 2.90273 2.42594 3.95406 1.43593 1.59945 1.50131 0.630208 1.26521 0.0157148 0.00501228 0.00235987 0.001009 0.000225152\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 1.0691005037898054 0.38545662354011129 0.85162615880101311 1.0435162956499575 0.43216120423585541 0.97735317110040087 1.2525408166204799 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 15 8 7 -6 10 -10 -1 12 -3 -7 -13 16 -4 -16\nright_child=2 11 4 -5 6 13 -8 -9 9 -11 -12 14 -14 -15 17 -17 -18 -19\nleaf_value=-0.0017635086600584072 0.0081778403013261381 -0.011464178894092633 0.010548763216059645 -0.0099363815761509388 -0.010887483887726215 -0.012023857540652456 0.0093938979117225326 0.0057409098912431546 -0.010950133572279435 0.0026414513696963004 0.0066731755653553042 -0.011014297597179583 -7.5814465269723861e-05 -0.010577226093196467 -0.010677957442946842 0.011014401241384659 0.010822807894767592 -0.010546495893200534\nleaf_weight=4.8163824379444105 4.3819262459874144 2.2002421803772445 46.704210828989744 3.1926271170377731 2.4284147173166257 1.4289678633213037 3.518050990998745 3.4782650098204613 2.1908109411597247 1.4316082857549188 3.7526526227593422 2.461841393262147 1.752565514296293 1.582534462213516 1.3441540002822865 1.153225366026162 1.3833231590688218 42.346539057791233\nleaf_count=26 35 23 950 17 12 12 23 29 31 18 20 32 19 31 23 16 20 863\ninternal_value=0 -0.00843711 0.00831874 0.000542808 0.00932273 -0.00247191 0.00281995 -0.00109553 -0.000300192 -0.00557863 0.00193118 -0.0102471 -0.00641489 -0.0112637 -0.0105753 0.0105674 0.0105566 -0.0105505\ninternal_weight=0 65.3083 66.24 7.57455 58.6655 15.203 9.42473 5.90668 12.1915 3.62242 8.56904 50.1053 3.95281 3.0115 46.1525 49.2408 48.0875 43.6907\ninternal_count=2200 1098 1102 52 1050 138 64 41 95 49 46 960 42 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=228\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 0 3 3 0 3 2 13 3 12\nsplit_gain=91.2117 12.5213 4.99171 4.9266 4.9247 4.28126 2.39426 1.06161 0.982689 0.887668 0.792639 0.492935 0.0164765\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.31415341067031349 1.031472441284053 1.2190084357665867 1.0691005037898054 0.17408222448223767 1.2594563194023032 0.6302392794400915 1.2351688403888856 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 -2 8 -7 -6 -5 -4 -12 -10\nright_child=1 2 10 9 6 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0070918376832089817 -0.0062085446711180126 0.0067548572875363372 -0.020340938826019936 -0.012157629493948998 0.0049096236610175663 0.0042189695680088478 0.00056368650554930054 0.011326806271991958 0.010568413269700427 -0.0036725585155581797 -0.0077270451545013398 -0.010604238935001316 0.011776862899930381\nleaf_weight=1.7805989310145367 3.298904966562989 1.7562474943697441 0.78694520890712638 2.7493087053298941 3.2327513992786399 5.0407755970954877 2.6752553433179846 3.6034449003636837 49.609917912632227 2.2354043275117874 6.8446857221424571 45.789131537079811 1.1545100808143605\nleaf_count=9 27 19 5 27 17 31 18 23 998 28 67 920 11\ninternal_value=0 -0.00752551 -0.00983366 -1.99243e-06 0.00928346 0.00348326 0.00979796 0.00718195 0.0102555 -0.00835248 -0.010379 -0.0102301 0.0105959\ninternal_weight=0 72.1048 55.177 16.9278 58.453 11.9431 56.6724 8.64422 53.9972 4.98471 53.4208 52.6338 50.7644\ninternal_count=2200 1147 1011 136 1053 81 1044 54 1026 55 992 987 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=229\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 12 3 4 3\nsplit_gain=90.0964 6.97087 6.63471 5.13028 2.43785 5.149 2.11853 1.68359 2.77069 0.987352 0.00749362 0.00142989 0.000110815 4.61281e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.226787362524943 0.37337168479852062 1.2505460188215014\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0070041681332996498 -0.012429934422815307 -0.010860844572116158 -0.0018178083459942894 0.0048708811348021977 0.010644230668017236 -0.0062212953199486673 0.0038849407086253319 -0.0039812519064120538 0.011657389190785246 0.01055654914086482 0.011236732379225735 -0.010634991636529314 -0.010598449192399819 -0.010534205036161455\nleaf_weight=1.7848360389471043 2.5797703266143825 1.4217609763145436 3.3878409489989263 3.2259139418601981 2.7066751718521145 11.590007435530422 2.5263574048876754 4.1607589051127434 2.7763118520379066 48.177646681666374 1.676069501787423 1.1604853346943844 1.1487390883266915 41.270493891090155\nleaf_count=9 16 21 32 17 14 116 25 23 22 984 20 21 22 858\ninternal_value=0 -0.00838851 0.00828779 0.00967174 -0.00337817 -0.00199011 -0.00441262 0.000933768 0.00425137 0.0102325 0.0105794 -0.0105488 -0.0105386 -0.0105359\ninternal_weight=0 64.4043 65.1894 54.8645 19.4028 16.823 14.1164 10.3249 6.16415 53.0796 49.8537 45.0015 43.5797 42.4192\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 901 880\nis_linear=0\nshrinkage=0.01\n\n\nTree=230\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 13 4 1 3 1 0 0\nsplit_gain=89.0363 7.01845 5.10384 5.95015 4.7527 2.85243 2.40348 2.19735 2.24273 0.63912 1.26311 0.412518 0.0146074 0.00475654 0.00246569 0.000991852 0.000225148\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.35806909455900915 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.048937272384614 1.1864741023471512 0.97735317110040087 0.87216409470284928 0.3887456056823268 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0081629714031252656 0.0082688931989395361 -0.011718788789471562 0.010531827163349463 -0.0096953570590271113 0.0035624256529028881 -0.011971337979818635 -0.0045758011136802978 -0.0061129982139388542 0.0038780712038002331 -0.010990470905847873 -0.00033553161968275701 0.0086720204578981715 -0.01056153882178742 -0.010662535757239987 0.011010365911656527 0.010806049392640795 -0.010529639940629972\nleaf_weight=2.4654578641057006 4.2700679078698149 2.0643067695200439 45.400467727333307 3.2449075877666473 2.993038132786749 1.4036645330488675 3.0232317559421062 6.0724220238625986 3.5662150681018829 2.4096772298216811 1.8469209112226961 3.3469028286635876 1.5426997914910314 1.3155477941036213 1.1406550854444493 1.3584560342133034 41.168071366846561\nleaf_count=15 35 19 950 17 14 12 24 42 38 32 23 26 31 23 16 20 863\ninternal_value=0 -0.00837943 0.0082604 0.000512071 0.00927726 -0.00240938 0.00276116 -0.000261499 -0.00241639 -0.0102205 -0.0063435 0.00625982 -0.0112332 -0.0105583 0.010551 0.0105398 -0.0105338\ninternal_weight=0 63.855 64.7777 7.51498 57.2628 15.0505 9.36317 12.1041 9.63864 48.8045 3.91123 6.33994 2.94636 44.8933 47.8996 46.7589 42.4836\ninternal_count=2200 1098 1102 52 1050 138 64 95 80 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=231\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 0 3 13 3 1 3 2 3 12 12\nsplit_gain=87.972 12.3545 4.98241 4.82565 4.79075 4.21437 2.39287 1.75698 0.994764 0.893055 0.770144 0.76637 0.0154823\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.31415341067031349 1.2616250467501662 0.582163634996683 1.2190084357665867 1.0797383065324315 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 7 8 -2 -5 -6 -4 -12 -10\nright_child=1 2 10 6 9 -7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0069427922056588855 0.0038591246859032368 0.0068030450619402964 -0.019335713559076345 0.0048390002432859161 -0.012127574040793366 0.0094049927437259151 0.00051000102934850621 -0.0071638042635966724 0.010551588436139698 -0.0035535382154930129 0.011032434639550481 -0.010257416235276689 0.011733380135717283\nleaf_weight=1.7856988757848729 2.504067890346052 1.7499900497496117 0.93694999068975349 3.2161544114351264 2.7059414498507968 5.9554853588342667 2.6621197983622542 3.4222397804260254 48.248134441673756 2.2044986337423325 0.16964288800954719 50.995083630084991 1.1346168071031559\nleaf_count=9 26 19 6 17 27 35 18 20 998 28 2 984 11\ninternal_value=0 -0.00745867 -0.00979389 0.00923682 3.02685e-05 0.003464 0.00975965 -0.00250624 0.0102278 -0.00827834 -0.0103514 -0.0101868 0.0105787\ninternal_weight=0 70.6439 53.8517 57.0467 16.7922 11.8818 55.261 5.92631 52.5989 4.91044 52.1017 51.1647 49.3828\ninternal_count=2200 1147 1011 1053 136 81 1044 46 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=232\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 0 3 3 3 0 3 2 3 12 12\nsplit_gain=86.8887 12.2701 4.93762 4.77771 4.71472 4.13849 2.3888 1.05091 1.00341 0.889538 0.758126 0.757845 0.0150111\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.31415341067031349 1.2616250467501662 1.031472441284053 1.2190084357665867 1.0691005037898054 0.17408222448223767 1.2594563194023032 1.0853483183990196 4.8980530291692244 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 -2 8 -7 -5 -6 -4 -12 -10\nright_child=1 2 10 6 9 7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0068575751511151476 -0.0061580911034394047 0.0067090523833107131 -0.019285872216451304 0.004800730365682424 -0.012104658862152127 0.0041053078324496213 0.00050498198070467073 0.01118812101088076 0.010545830782180242 -0.0035263353335423654 0.011021106924794312 -0.010245244191754002 0.011714404475723958\nleaf_weight=1.7897892892360676 3.2635753192007568 1.7567279040813435 0.93001245707273383 3.2094088196754447 2.6840630397200576 5.0120416581630689 2.6616958305239669 3.5991740003228188 47.794004525989294 2.1993156373500824 0.1681266725063314 50.547356579452753 1.12513768672943\nleaf_count=9 27 19 6 17 27 31 18 23 998 28 2 984 11\ninternal_value=0 -0.00743533 -0.009778 0.00922032 2.99187e-05 0.00343135 0.00974552 0.00706567 0.0102173 -0.00824126 -0.0103388 -0.0101747 0.0105727\ninternal_weight=0 70.1604 53.4022 56.58 16.7582 11.8748 54.7902 8.61122 52.1286 4.88338 51.6455 50.7155 48.9191\ninternal_count=2200 1147 1011 1053 136 81 1044 54 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=233\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 12 3 4 0\nsplit_gain=85.8789 6.97076 6.49406 4.99049 2.41391 4.99224 2.12612 1.57305 2.75766 1.00817 0.00711786 0.0012899 0.000139875 4.21015e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.226787362524943 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.006773718626186166 -0.012346029750113806 -0.01082888166511837 -0.0019339012780286427 0.0047627234034514944 0.010589259158015833 -0.006130160830196827 0.0040507842671023446 -0.0038553276539966797 0.01160070960588363 0.010534387934601467 0.011204886148277119 -0.010626565369734419 -0.010574762347522405 -0.010512653503223342\nleaf_weight=1.7938066720962513 2.5489252805709866 1.3730367831885804 3.3522765897214395 3.202703818678855 2.6854634881019619 11.423734761774538 2.5001387335360041 4.1247444823384285 2.7324315793812275 46.412585496902466 1.6391847282648075 1.1420122124254692 1.1222302392125119 39.750784277915955\nleaf_count=9 16 21 32 17 14 116 25 23 22 984 20 21 22 858\ninternal_value=0 -0.00830891 0.00821577 0.00962138 -0.00328495 -0.0018944 -0.00430209 0.000912187 0.00414402 0.0101952 0.0105573 -0.0105273 -0.0105174 -0.0105144\ninternal_weight=0 62.5463 63.2577 53.0483 19.1583 16.6093 13.9239 10.2095 6.08471 51.2545 48.0518 43.3881 42.015 40.873\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 901 880\nis_linear=0\nshrinkage=0.01\n\n\nTree=234\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 3 12 0 3 4 3 12 3 4 0\nsplit_gain=84.8041 6.97309 6.46952 4.945 2.39645 4.19484 2.11957 1.5439 2.71914 1.01672 0.00690073 0.00125071 0.000135554 4.07979e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 0.9833172866921428 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.226787362524943 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0066911881278926 -0.013413757657688905 -0.010820115856539496 -0.0019122043305867592 0.0047249774291690952 0.0086504556711759824 -0.0061484645258003279 0.0039989207099433433 -0.0038206421263261721 0.011542326664016021 0.010528814278994873 0.011191941164972755 -0.010619958663609562 -0.010568721407315714 -0.010507292613170478\nleaf_weight=1.7977526038885105 2.0726551413536098 1.3604706078767765 3.3563898093998414 3.1960394680500022 3.0264988988637951 11.500632751733063 2.5072024911642066 4.1205899566411972 2.7188583053648472 45.974977280944586 1.6247422359883774 1.1313488744199265 1.1116957440972317 39.375234108418226\nleaf_count=9 14 21 32 17 15 117 25 23 22 984 20 21 22 858\ninternal_value=0 -0.00828722 0.00819468 0.00960799 -0.00326093 -0.00202559 -0.00433223 0.000904344 0.00410911 0.0101849 0.0105514 -0.0105217 -0.010512 -0.010509\ninternal_weight=0 62.0857 62.7893 52.5935 19.107 17.0343 14.0078 10.1958 6.07525 50.7958 47.5997 42.9787 41.6183 40.4869\ninternal_count=2200 1093 1107 1030 171 157 142 77 54 1021 1004 922 901 880\nis_linear=0\nshrinkage=0.01\n\n\nTree=235\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 0 4 0 0 13 2 1 3 1 0 0\nsplit_gain=83.7787 6.9868 4.98696 5.93011 4.76707 2.7902 2.38499 3.81051 2.09584 2.25514 0.655494 1.26289 0.0131142 0.0043073 0.00254776 0.000987271 0.000229153\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.37041150200217393 0.46553849925547169 1.3268335175992902 1.0691005037898054 0.38545662354011129 1.048937272384614 1.1864741023471512 0.97735317110040087 1.2525408166204799 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 8 7 -6 -1 -10 11 -3 -7 -12 15 -4 -15\nright_child=2 10 4 -5 6 12 -8 -9 9 -11 13 -13 -14 16 -16 -17 -18\nleaf_value=0.0081093915247977197 0.0070673701687256011 -0.011394346681842993 0.010504874339750218 -0.01164729632625313 -0.010809714076862993 -0.011896075609652746 0.0092357003682731857 0.0056127159013916973 -0.0060171804386345527 0.0040671041797711634 -0.010950450883878488 0.00013260313077046259 -0.010537519006027259 -0.010639516908943885 0.010996480603602525 0.010782253582104759 -0.010503128275646071\nleaf_weight=2.4331487566232672 4.7986032590270034 2.1172752156853671 43.304590128362179 2.6163149550557137 2.4288553297519666 1.3661504872143262 3.4557349681854248 3.3777704611420631 6.0006354786455613 3.5175564140081406 2.3198222033679476 1.724700979888439 1.4805930033326147 1.2717498987913121 1.1176633872091759 1.3223658017814148 39.297181375324726\nleaf_count=15 38 23 950 14 12 12 23 29 42 38 32 19 31 23 16 20 863\ninternal_value=0 -0.00828061 0.00816248 0.000463998 0.00920023 -0.00229238 0.002658 -0.00125663 -0.000173142 -0.00229042 -0.0101769 -0.00621979 -0.0111895 -0.0105314 0.0105249 0.0105131 -0.0105074\ninternal_weight=0 61.5288 62.4219 7.41492 55.007 14.7981 9.26236 5.80663 11.9513 9.51819 46.7307 3.84198 2.84674 42.8888 45.7446 44.627 40.5689\ninternal_count=2200 1098 1102 52 1050 138 64 41 95 80 960 42 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=236\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 0 3 13 3 1 3 2 13 3 12\nsplit_gain=82.7921 12.0847 4.93652 4.644 4.56143 4.08209 2.38411 1.66781 1.02416 0.898465 0.762899 0.533862 0.0136218\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.31415341067031349 1.2616250467501662 0.582163634996683 1.2190084357665867 1.0797383065324315 0.17408222448223767 1.2594563194023032 0.6302392794400915 1.2351688403888856 4.6533632910829281\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 7 8 -2 -5 -6 -4 -12 -10\nright_child=1 2 10 6 9 -7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0066438129310454263 0.00375133086262321 0.0068099652812032146 -0.020146542290465193 0.0046918253373899928 -0.012066049615333712 0.0092822834155871278 0.00043501319776635678 -0.0070606178951982349 0.010524657791606896 -0.0033614276680510925 -0.0075027918563332994 -0.010561587924139049 0.011653071077549561\nleaf_weight=1.7988782003521908 2.4697466306388396 1.7436851263046254 0.7757466584444036 3.1849361211061469 2.6306137517094603 5.925492636859417 2.6422310769557944 3.3782928884029388 46.054230783134699 2.1589290052652359 6.5886623598635188 42.589812628924847 1.0952262505888928\nleaf_count=9 26 19 5 17 27 35 18 20 998 28 67 920 11\ninternal_value=0 -0.00734809 -0.00972967 0.00915754 8.54856e-05 0.00343262 0.00969409 -0.00249451 0.0101801 -0.00814236 -0.010307 -0.0101518 0.0105509\ninternal_weight=0 68.261 51.6979 54.7755 16.5631 11.7735 52.9766 5.84804 50.3344 4.78954 49.9542 49.1785 47.1495\ninternal_count=2200 1147 1011 1053 136 81 1044 46 1026 55 992 987 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=237\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 13 3 1 2 3 3 12 3\nsplit_gain=81.768 11.9993 4.89144 4.48878 4.08413 3.99585 2.55847 1.63786 0.894881 0.739532 0.589615 0.0131944 0.00227134\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.17408222448223767 0.582163634996683 1.2190084357665867 1.0797383065324315 1.2594563194023032 1.0853483183990196 1.2351688403888856 4.6533632910829281 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 7 11 -2 -5 -4 -11 12 -6\nright_child=1 2 9 8 6 -7 -8 -9 -10 10 -12 -13 -14\nleaf_value=0.00043979754680551912 0.0037237024658348526 0.0067159702660725797 -0.019214197635357116 -0.012043878687590033 0.010866534123013567 0.0091803041866666771 0.00043072138233249326 -0.0070031379850944335 -0.0033352773901906127 -0.0073029743986945716 -0.010555921039743996 0.011635042790847898 0.010505435666819061\nleaf_weight=4.9071410298347464 2.4632232710719126 1.7503745295107354 0.91222868859767814 2.6092090494930735 1.8139402121305455 5.9313727915287018 2.6418737843632689 3.3719925656914711 2.1541218832135201 6.4199662730097762 42.188560519367456 1.0860002860426892 43.879531383514404\nleaf_count=25 26 19 6 27 29 35 18 20 28 66 920 11 970\ninternal_value=0 -0.00732432 -0.009713 8.46947e-05 0.009141 0.00340027 0.010005 -0.00247501 -0.00810559 -0.0102937 -0.0101263 0.0105457 0.0105198\ninternal_weight=0 67.801 51.2711 16.5299 54.3285 11.7666 49.4213 5.83522 4.76333 49.5208 48.6085 46.7795 45.6935\ninternal_count=2200 1147 1011 136 1053 81 1028 46 55 992 986 1010 999\nis_linear=0\nshrinkage=0.01\n\n\nTree=238\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 12 3 4 0\nsplit_gain=80.7889 6.9698 6.33234 4.86121 2.37616 4.83267 2.0899 1.43839 2.70837 1.02723 0.00647888 0.00113265 0.000166456 4.28899e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.2306326518141948 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0065750448022171195 -0.012240962214293723 -0.010784552009526813 -0.002038878984395399 0.0046510538374390214 0.010562080520702547 -0.006010299010224731 0.0041211197394352313 -0.0036960305369050442 0.011475868758535917 0.010507779837907238 0.011158618296239082 -0.010612240032307204 -0.01055041393153759 -0.010486464094605486\nleaf_weight=1.8018287569284428 2.5047200694680241 1.3655530735850323 3.3196731619536859 3.1777548640966407 2.6567148789763477 11.229963447898625 2.4869226031005374 4.0838238522410393 2.6798849031329155 44.283488146960735 1.5842330716550339 1.1134451217949379 1.0786368660628785 37.861701730638742\nleaf_count=9 16 22 32 17 14 116 25 23 22 984 20 21 22 857\ninternal_value=0 -0.00820604 0.00812109 0.00955669 -0.00317011 -0.00178251 -0.00417344 0.000881813 0.00399789 0.0101493 0.0105303 -0.0105013 -0.0104917 -0.0104882\ninternal_weight=0 60.2977 60.9307 50.8473 18.8783 16.3736 13.7169 10.0834 5.99956 49.0455 45.8677 41.4193 40.0538 38.9403\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 900 879\nis_linear=0\nshrinkage=0.01\n\n\nTree=239\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 13 4 1 3 1 0 0\nsplit_gain=79.8334 6.94668 4.90219 5.79731 4.74058 2.72765 2.38062 2.00252 2.26277 0.665194 1.25929 0.393041 0.0119069 0.00403691 0.00255755 0.000938897 0.000236434\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.37041150200217393 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.048937272384614 1.1864741023471512 0.97735317110040087 0.87216409470284928 0.3887456056823268 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0080111727429482103 0.0070034249598929614 -0.011640648250488314 0.010484372010363997 -0.011582341212619134 0.0035044570475855873 -0.011832401001678428 -0.0047514894984062627 -0.0059478537627453022 0.004201119264086995 -0.010922136817526842 -0.00010221773406895757 0.0085414683846444413 -0.010519160978099547 -0.010623097281626574 0.010981797277998528 0.010758598719182845 -0.010482744665489182\nleaf_weight=2.4111615121364585 4.7420172505080691 1.9820982143282884 41.694551136344671 2.5976320058107376 2.9717018008232099 1.3330050334334367 2.9734163507819176 5.9499616436660272 3.482698030769825 2.2572249062359324 1.809275336563587 3.2361383698880672 1.4322284832596777 1.2395594343543042 1.0958744324743737 1.2870693951845158 37.842595484107733\nleaf_count=15 38 19 950 14 14 12 24 42 38 32 23 26 31 23 16 20 863\ninternal_value=0 -0.00820315 0.00808724 0.000425593 0.0091431 -0.00220963 0.00260612 -0.000121755 -0.00220068 -0.0101433 -0.00613441 0.00613024 -0.0111522 -0.0105109 0.0105047 0.0104926 -0.0104872\ninternal_weight=0 59.7398 60.5984 7.33965 53.2588 14.6091 9.18126 11.8438 9.43266 45.1308 3.79137 6.20784 2.76523 41.3394 44.0775 42.9816 39.0822\ninternal_count=2200 1098 1102 52 1050 138 64 95 80 960 42 40 43 918 986 970 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=240\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 3 3 0 2 3 3 12 3\nsplit_gain=78.8498 11.8348 4.88097 4.36653 4.05714 3.92598 2.56161 1.05273 0.900368 0.725812 0.601051 0.0124011 0.00216348\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.17408222448223767 1.031472441284053 1.2190084357665867 1.0691005037898054 1.2594563194023032 1.0853483183990196 1.2351688403888856 4.6533632910829281 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 -2 11 -7 -5 -4 -11 12 -6\nright_child=1 2 9 8 6 7 -8 -9 -10 10 -12 -13 -14\nleaf_value=0.00042131054968960226 -0.0060996325933439796 0.006759275550770558 -0.019151304681191219 -0.012016856833820777 0.010846908185344862 0.0039350320639354678 0.00037855458314184023 0.011057730208697389 -0.0032176672828480462 -0.0072338608963266162 -0.010540994645957329 0.011595522509650716 0.010490392257095946\nleaf_weight=4.8965765088796607 3.1786867938935783 1.7444348968565453 0.90245780348777671 2.5682294443249694 1.7728678286075581 4.9469349905848485 2.6292773708701125 3.5743541419506073 2.1251220665872097 6.344912387430667 41.050649825483561 1.0670668818056572 42.663874499499798\nleaf_count=25 27 19 6 27 29 31 18 23 28 66 920 11 970\ninternal_value=0 -0.00725819 -0.00967389 0.00011601 0.00909345 0.00338477 0.00997566 0.00692273 -0.00803264 -0.0102674 -0.0100983 0.0105302 0.0105046\ninternal_weight=0 66.4358 50.0425 16.3933 53.0297 11.7 48.1331 8.52129 4.69335 48.298 47.3956 45.5038 44.4367\ninternal_count=2200 1147 1011 136 1053 81 1028 54 55 992 986 1010 999\nis_linear=0\nshrinkage=0.01\n\n\nTree=241\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 3 4 3 12 3 4 0\nsplit_gain=77.9203 6.94959 6.23573 4.82235 2.35055 4.70461 2.07165 1.3715 2.68674 1.029 0.00620907 0.00107459 0.000179872 4.24486e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.2306326518141948 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0065403520768598181 -0.012178040611808967 -0.010765631663981175 -0.0020991214707304878 0.0046155093582347165 0.010488990937012319 -0.0059418467378789478 0.0041689636104733632 -0.0036133500670905263 0.011417853322572207 0.010492713101444482 0.011135328472930339 -0.010603241862711702 -0.01053588713360965 -0.0104714790538199\nleaf_weight=1.8019722551107396 2.4806591048836735 1.3333819583058346 3.3000829555094224 3.1662015765905371 2.6401102095842388 11.116933487355707 2.4782395847141734 4.0612175166606903 2.6524066776037216 43.057257249951363 1.5579773113131512 1.0956158936023701 1.0525200888514508 36.797787886112928\nleaf_count=9 16 22 32 17 14 116 25 23 22 984 20 21 22 857\ninternal_value=0 -0.00814691 0.00806494 0.00951859 -0.00311183 -0.00172657 -0.00409877 0.000867103 0.00392399 0.0101242 0.0105152 -0.0104865 -0.0104769 -0.0104733\ninternal_weight=0 58.9952 59.5971 49.5834 18.7159 16.2353 13.5952 10.0137 5.95249 47.7814 44.6152 40.2793 38.9459 37.8503\ninternal_count=2200 1093 1107 1030 171 155 141 77 54 1021 1004 922 900 879\nis_linear=0\nshrinkage=0.01\n\n\nTree=242\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 0 4 0 0 13 13 1 3 1 0 0\nsplit_gain=76.9449 6.91666 4.83345 5.69997 4.7533 2.6812 2.34892 3.65965 1.944 2.24669 0.675296 1.25144 0.0110803 0.00384386 0.00276964 0.00108098 0.000235707\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 1.0691005037898054 0.38545662354011129 1.048937272384614 1.1864741023471512 0.97735317110040087 0.87216409470284928 1.1058192561221138 1.2306326518141948 1.0023056708553677 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 8 7 -6 -1 -10 11 -3 -7 -12 15 -4 -15\nright_child=2 10 4 -5 6 12 -8 -9 9 -11 13 -13 -14 16 -16 -17 -18\nleaf_value=0.0079568189484447646 0.0079821057381703215 -0.011607275373797203 0.010469771716183816 -0.0099174970423459557 -0.010688619256349419 -0.01178604139433175 0.0091123000067781408 0.0054948444556359444 -0.0058869026460611649 0.0042531712004516987 -0.010901499566643125 -4.7469978530477691e-05 -0.010505430522211274 -0.010609624236961931 0.011053265006771758 0.010757870180905014 -0.010467979195383425\nleaf_weight=2.3945003151893607 4.1989960968494406 1.9516110084950917 40.668651964515448 3.0869050994515419 2.4272845387458784 1.3091047927737229 3.4110032729804516 3.2930238731205463 5.911042641848324 3.4664422161877155 2.2101104222238055 1.8004900403320787 1.3962880410253999 1.2135772630572308 0.85696856677532096 1.345462393015622 36.783330172300339\nleaf_count=15 35 19 953 17 12 12 23 29 42 38 32 23 31 23 12 21 863\ninternal_value=0 -0.0081431 0.00802642 0.000398366 0.00909517 -0.00214815 0.00254426 -0.00137225 -8.50965e-05 -0.00213856 -0.0101175 -0.00606017 -0.0111251 -0.0104961 0.0104905 0.010479 -0.0104725\ninternal_weight=0 58.4365 59.2883 7.2859 52.0024 14.4774 9.13131 5.72031 11.772 9.37748 43.9591 3.7521 2.70539 40.207 42.8711 42.0141 37.9969\ninternal_count=2200 1098 1102 52 1050 138 64 41 95 80 960 42 43 918 986 974 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=243\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 13 3 1 2 13 3 12 3\nsplit_gain=76.0213 11.691 4.86365 4.25206 4.03589 3.85767 2.56173 1.53936 0.90512 0.722724 0.570128 0.0115932 0.00209697\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.17408222448223767 0.582163634996683 1.2190084357665867 1.0797383065324315 1.2594563194023032 0.6302392794400915 1.2351688403888856 4.6533632910829281 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 7 11 -2 -5 -4 -11 12 -6\nright_child=1 2 9 8 6 -7 -8 -9 -10 10 -12 -13 -14\nleaf_value=0.00039319802327969679 0.0036051365161423026 0.0067946747787263374 -0.019850393599622797 -0.011988433973467256 0.010830776413997965 0.0090633642569188499 0.00033359096443758175 -0.0068760008690916851 -0.0031013996045921666 -0.0073101337597226883 -0.010526568392088917 0.011555378034352297 0.010475855855216314\nleaf_weight=4.8823714405298224 2.4241579025983828 1.7373906075954426 0.77011553943157096 2.527369510382413 1.7342778705060471 5.8905398398637772 2.6172403097152701 3.3209109604358673 2.0968032144010067 6.3929394856095305 39.942718151956797 1.0463236309587944 41.479800425469875\nleaf_count=25 26 19 5 27 29 35 18 20 28 67 920 11 970\ninternal_value=0 -0.00719145 -0.00963646 0.000153183 0.00904566 0.00337696 0.00994683 -0.00245344 -0.00795866 -0.0102425 -0.0100828 0.0105153 0.0104901\ninternal_weight=0 65.1029 48.8432 16.2598 51.76 11.6356 46.8776 5.74507 4.62417 47.1058 46.3357 44.2604 43.2141\ninternal_count=2200 1147 1011 136 1053 81 1028 46 55 992 987 1010 999\nis_linear=0\nshrinkage=0.01\n\n\nTree=244\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 3 12 0 3 4 3 12 3 4 0\nsplit_gain=75.0997 6.94762 6.14259 4.78693 2.32195 3.88834 2.07657 1.3048 2.66722 1.03323 0.00587756 0.00101931 0.000193129 4.19835e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 0.9833172866921428 4.8980530291692244 1.2509949463117855 1.2351688403888856 0.39394749199373341 0.17408222448223767 4.6109421182883317 1.2306326518141948 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0065206158019132125 -0.013247916738727966 -0.01074724214779578 -0.0021691638050770623 0.0045715508786007778 0.008531770436174398 -0.0059282819444697807 0.0042067343671910156 -0.0035318874431299768 0.011358838006313177 0.010478155261341689 0.01110968612096889 -0.010594573647318672 -0.010521825180366094 -0.010456978695958262\nleaf_weight=1.8001577630639065 1.9909465536475206 1.3018328137695778 3.2782515324652177 3.1529920101165763 2.9775349944829967 11.119667425751684 2.4708226658403865 4.0379507318139076 2.6240400075912476 41.860738970339298 1.5274696350097645 1.0781795643270005 1.0270752981305111 35.762242220342159\nleaf_count=9 14 22 32 17 15 117 25 23 22 984 20 21 22 857\ninternal_value=0 -0.00808415 0.00800771 0.00947985 -0.00304428 -0.00181813 -0.00408568 0.000848409 0.00384511 0.0100987 0.0105004 -0.0104721 -0.0104627 -0.0104588\ninternal_weight=0 57.7283 58.2816 48.3414 18.559 16.568 13.5905 9.94024 5.90229 46.5412 43.3882 39.1693 37.8675 36.7893\ninternal_count=2200 1093 1107 1030 171 157 142 77 54 1021 1004 922 900 879\nis_linear=0\nshrinkage=0.01\n\n\nTree=245\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 4 13 3 10 0 0 13 2 4 1 3 1 0 0\nsplit_gain=74.179 6.88132 4.7547 5.60411 4.75055 2.63577 2.34368 1.88058 2.22975 0.684229 1.24717 0.382025 0.010363 0.00365897 0.00264971 0.00106208 0.000234261\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.37041150200217393 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.048937272384614 1.1864741023471512 0.97735317110040087 1.2525408166204799 0.3887456056823268 1.1058192561221138 1.2306326518141948 1.0023056708553677 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 7 11 -1 -9 10 -3 -6 -7 -11 15 -4 -15\nright_child=2 9 4 -5 6 12 -8 8 -10 13 -12 -13 -14 16 -16 -17 -18\nleaf_value=0.0078881027367329534 0.0069155697810390857 -0.01131089712768347 0.010455399295035342 -0.011482263463582307 0.0034322698966228176 -0.011743951604961245 -0.0048308884880327897 -0.0058249641448299503 0.0043042239811024426 -0.010881372953363569 0.00032077821523014417 0.0084280958210409419 -0.010492142960728848 -0.010596424481288502 0.011031663821369863 0.010743519781392244 -0.01045369126664962\nleaf_weight=2.3774272203445426 4.6609271168708792 2.0152638442814346 39.524939946830273 2.5678166523575783 2.9574227109551412 1.2861414551734918 2.9493227042257786 5.8712057732045633 3.450413353741169 2.1637765839695922 1.698927756398916 3.1727530583739281 1.3612608313560484 1.1880868487060059 0.84136080741882224 1.3222082369029511 35.752273660153151\nleaf_count=15 38 23 953 14 14 12 24 42 38 32 19 26 31 23 12 21 863\ninternal_value=0 -0.0080838 0.00796816 0.000380235 0.00904859 -0.00208984 0.00249387 -5.08436e-05 -0.00207563 -0.0100921 -0.00599039 0.00601793 -0.0111003 -0.0104817 0.0104762 0.0104647 -0.0104583\ninternal_weight=0 57.1648 57.9968 7.22874 50.768 14.3464 9.0795 11.699 9.32162 42.8183 3.71419 6.13018 2.6474 39.1041 41.6885 40.8471 36.9404\ninternal_count=2200 1098 1102 52 1050 138 64 95 80 960 42 40 43 918 986 974 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=246\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 13 3 1 2 3 3 12 3\nsplit_gain=73.3004 11.5134 4.84821 4.13455 4.0078 3.79205 2.56458 1.48831 0.908989 0.706572 0.625854 0.0109006 0.00199768\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.17408222448223767 0.582163634996683 1.2190084357665867 1.0797383065324315 1.2594563194023032 1.0853483183990196 1.2351688403888856 4.6533632910829281 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 7 11 -2 -5 -4 -11 12 -6\nright_child=1 2 9 8 6 -7 -8 -9 -10 10 -12 -13 -14\nleaf_value=0.0003762649351222134 0.003532537226614796 0.006825264245280043 -0.019083681023093591 -0.011963320869277492 0.010812230537694239 0.0089969840925068333 0.00028298714119064132 -0.0068151554355886136 -0.002994413187456176 -0.0070910931193723685 -0.010512592075524111 0.011518188805199493 0.010461786064083451\nleaf_weight=4.8719651252031317 2.4026832468807715 1.7325612567365158 0.881170853972434 2.4873623587191096 1.6949927546083916 5.8704717606306076 2.6050406396388999 3.2977352291345596 2.0707314498722553 6.1988959535956374 38.862405199557543 1.0279869362711895 40.32783666998148\nleaf_count=25 26 19 6 27 29 35 18 20 28 66 920 11 970\ninternal_value=0 -0.00712527 -0.00959606 0.000178052 0.00899779 0.00335579 0.0099178 -0.00245368 -0.00788877 -0.0102153 -0.0100419 0.0105008 0.0104759\ninternal_weight=0 63.804 47.675 16.129 50.5278 11.5709 45.6559 5.70042 4.55809 45.9425 45.0613 43.0508 42.0228\ninternal_count=2200 1147 1011 136 1053 81 1028 46 55 992 986 1010 999\nis_linear=0\nshrinkage=0.01\n\n\nTree=247\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 2 1 3 12 3 4 0\nsplit_gain=72.4062 6.92937 6.05109 4.74805 2.31305 4.53674 2.03276 1.24375 3.23256 1.03464 0.00640412 0.00096837 0.00020634 4.14903e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 0.96155453354879217 0.17408222448223767 4.6533632910829281 1.2306326518141948 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.006485548395027462 -0.012071520420764812 -0.010729579900508339 0.0081680399528225329 0.004537596555928408 0.010472848214174635 -0.0058081710986396459 0.0042517904926809508 0.0061989693585568911 -0.0063754865263541552 0.010468466576911441 0.011345504366832054 -0.010586274156610826 -0.010508208434875715 -0.010442947628390384\nleaf_weight=1.8002519235014904 2.4309961795806911 1.2712242640554894 2.2953156493604165 3.1416602134704581 2.6045010313391677 10.899396181106566 2.4623837806284419 3.0038049593567848 4.5734305158257484 41.346616458147764 0.8496842123568048 1.0611779578030098 1.0022810027003277 34.754451960325241\nleaf_count=9 16 22 27 17 14 116 25 16 34 995 9 21 22 857\ninternal_value=0 -0.00802405 0.00795054 0.00944151 -0.00298443 -0.00160084 -0.00395426 0.000831688 -0.0015155 0.0100739 0.0104861 -0.0104582 -0.0104489 -0.0104448\ninternal_weight=0 56.4864 57.0108 47.1382 18.3973 15.9663 13.3618 9.87255 6.86875 45.338 42.1963 38.0891 36.8179 35.7567\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 1021 1004 922 900 879\nis_linear=0\nshrinkage=0.01\n\n\nTree=248\nnum_leaves=18\nnum_cat=0\nsplit_feature=10 1 3 1 13 3 0 4 0 0 13 13 1 3 1 0 0\nsplit_gain=71.5182 6.84152 4.68802 5.50659 4.73416 2.58688 2.33034 3.52617 1.81195 2.20687 0.692538 1.24463 0.00961561 0.00348764 0.00265472 0.00100387 0.000232787\nthreshold=2.5000000000000004 1.1899369278690821 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.3268335175992902 1.0691005037898054 0.38545662354011129 1.048937272384614 1.1864741023471512 0.97735317110040087 0.87216409470284928 1.1058192561221138 1.2306326518141948 1.0023056708553677 1.0188919694060079 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -2 14 8 7 -6 -1 -10 11 -3 -7 -12 15 -4 -15\nright_child=2 10 4 -5 6 12 -8 -9 9 -11 13 -13 -14 16 -16 -17 -18\nleaf_value=0.0077995376445324106 0.0078863439466953685 -0.011558518250197916 0.010441488430148122 -0.0098335890017044701 -0.01056986396415672 -0.011698257208636055 0.0090254445255553688 0.0053806576957378628 -0.0057571765740023441 0.0043442171613976835 -0.010862037851920451 8.4326883516847511e-05 -0.01047930131361401 -0.010583678847988625 0.011022618840183622 0.01072486832167396 -0.01043986790023003\nleaf_weight=2.360140696167945 4.1263243071734896 1.8967846743762486 38.411731421947479 3.0499676018953323 2.4285669624805433 1.2630015090107911 3.3823569789528847 3.2283929511904716 5.8371221721172315 3.4358492903411388 2.1188006103038779 1.7796108350157736 1.3271641805768011 1.1632538698613633 0.82858459651470084 1.2921359688043583 34.748858887702227\nleaf_count=15 35 19 953 17 12 12 23 29 42 38 32 23 31 23 12 21 863\ninternal_value=0 -0.00802472 0.00790943 0.000355265 0.00900301 -0.00203567 0.00245909 -0.001467 -2.3318e-05 -0.00201438 -0.0100671 -0.00592264 -0.0110737 -0.0104678 0.0104624 0.0104507 -0.0104445\ninternal_weight=0 55.9306 56.7481 7.17629 49.5718 14.2233 9.03932 5.65696 11.6331 9.27297 41.7073 3.6764 2.59017 38.0309 40.5325 39.7039 35.9121\ninternal_count=2200 1098 1102 52 1050 138 64 41 95 80 960 42 43 918 986 974 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=249\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 3 3 0 2 3 3 12 3\nsplit_gain=70.6275 11.3736 4.83039 4.03917 3.98402 3.71527 2.5816 1.05062 0.909209 0.699189 0.641323 0.0104361 0.00193809\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 1.2616250467501662 0.17408222448223767 1.031472441284053 1.2190084357665867 1.0691005037898054 1.2594563194023032 1.0853483183990196 1.2351688403888856 4.6533632910829281 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=4 3 -3 5 -1 -2 11 -7 -5 -4 -11 12 -6\nright_child=1 2 9 8 6 7 -8 -9 -10 10 -12 -13 -14\nleaf_value=0.00034967777861346646 -0.0060223536811437389 0.0068584904936806112 -0.019061156924371027 -0.011936948412479182 0.010797053142690631 0.0037879781177046087 0.0002021303701852624 0.010944196763385188 -0.0029020635912298492 -0.0070127447312844354 -0.010499310482198631 0.011489826258641523 0.01044801248627724\nleaf_weight=4.857955574989318 3.0895276032388201 1.7261970862746228 0.87093346565961738 2.4473494067788115 1.6581188887357701 4.8755577616393548 2.5916177704930297 3.5418884307146072 2.044160645455122 6.1311214305460444 37.813597302883863 1.0127021931111801 39.199022196233273\nleaf_count=25 27 19 6 27 29 31 18 23 28 66 920 11 970\ninternal_value=0 -0.00705617 -0.00955644 0.000217473 0.00894806 0.0033567 0.00988754 0.00679917 -0.00782502 -0.0101887 -0.0100129 0.010487 0.0104622\ninternal_weight=0 62.5403 46.5418 15.9985 49.3194 11.507 44.4615 8.41745 4.49151 44.8157 43.9447 41.8698 40.8571\ninternal_count=2200 1147 1011 136 1053 81 1028 54 55 992 986 1010 999\nis_linear=0\nshrinkage=0.01\n\n\nTree=250\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 2 1 3 12 3 4 0\nsplit_gain=69.7932 6.9153 5.96029 4.71281 2.27802 4.42818 2.0138 1.24012 3.13164 1.0386 0.00604387 0.000870482 0.000170961 4.15718e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 0.96155453354879217 0.17408222448223767 4.6533632910829281 1.2393449613922758 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -5 -11 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 10 -12 12 13 -15\nleaf_value=-0.0064654311388675683 -0.011986366303558591 -0.010672192282320246 0.0080858615699792406 0.0044952272078003291 0.010416545748644659 -0.0057423504857838439 0.0042927345704507017 0.0061779386630247714 -0.0063183424402789637 0.010454927342068668 0.011314792875991473 -0.01056484687416887 -0.010495016206060675 -0.010428876970940432\nleaf_weight=1.7984008416533459 2.4072501733899143 1.6101668179035176 2.2578747794032079 3.1286963522434226 2.5888551846146575 10.792455911636351 2.4545422829687586 2.9949130490422249 4.5529684200882912 40.203282658010721 0.83440211415290733 0.97779113054275413 0.97811376303434272 33.471652690321207\nleaf_count=9 16 30 27 17 14 116 25 16 34 995 9 20 22 850\ninternal_value=0 -0.00796254 0.00789292 0.00940286 -0.002923 -0.00154526 -0.00388295 0.000815035 -0.00154318 0.010049 0.0104724 -0.0104448 -0.0104345 -0.0104308\ninternal_weight=0 55.2808 55.7705 45.9648 18.2431 15.8359 13.247 9.80576 6.81084 44.1664 41.0377 37.0377 35.4276 34.4498\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 1021 1004 922 892 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=251\nnum_leaves=16\nnum_cat=0\nsplit_feature=10 12 3 4 13 10 0 0 4 4 1 0 3 4 0\nsplit_gain=68.9351 6.82079 4.62166 5.42753 4.72481 2.29509 2.16746 1.91844 1.03225 0.378956 0.002747 0.000954704 0.000844391 0.000165721 4.02932e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.52015392592939824 0.37041150200217393 0.46553849925547169 3.5000000000000004 1.2509949463117855 1.048937272384614 0.44326344064311579 0.3887456056823268 1.0023056708553677 1.0188919694060079 1.2393449613922758 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 -2 10 9 7 -1 -9 -6 11 -4 -3 -14 -15\nright_child=2 12 4 -5 5 -7 -8 8 -10 -11 -12 -13 13 14 -16\nleaf_value=0.0024309399864439049 0.0068303251235487692 -0.0106651924430311 0.01042803968033643 -0.0113912410719637 0.0033490799135131315 -0.0048551548461240185 0.005140212712377551 -0.0039371730658389328 -0.009961507657646463 0.0083527832000967576 0.011021930322269884 0.010707545607184279 -0.010558932496961937 -0.010489853409433017 -0.01042442873254101\nleaf_weight=3.2235247269272831 4.5824655331671229 1.5951864197850216 37.329235084354877 2.5411671549081802 2.9376456886529905 2.9279505833983421 2.8094098232686511 7.3851262331008893 4.6257673390209675 3.1223100870847702 0.82048117741942306 1.2634032852947701 0.96860147640108962 0.9688555933535089 33.152676165103912\nleaf_count=23 38 30 953 14 14 24 27 67 59 26 12 21 20 22 850\ninternal_value=0 -0.00796432 0.00785052 0.000330264 0.00895735 0.00241466 -0.00293059 -0.00441894 -0.00625733 0.00592717 0.0104494 0.0104372 -0.0104402 -0.0104299 -0.0104263\ninternal_weight=0 54.7291 55.5247 7.12363 48.401 8.98791 18.0438 15.2344 12.0109 6.05996 39.4131 38.5926 36.6853 35.0901 34.1215\ninternal_count=2200 1098 1102 52 1050 64 176 149 126 40 986 974 922 892 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=252\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 0 3 12 0 2 0 1 3 12 3 4 0\nsplit_gain=68.096 6.89089 5.91436 4.67646 2.26284 3.62642 1.97454 1.22386 2.56935 3.47983 1.04118 0.00590272 0.000819096 0.000160646 3.90555e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 0.9833172866921428 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 0.98578357518082749 0.17408222448223767 4.6533632910829281 1.2393449613922758 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 -5 -12 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 11 -13 13 14 -16\nleaf_value=-0.0064200230430698927 -0.013128133298925908 -0.010658269145662839 -0.0093545693489835817 0.0044654999896630108 0.0083849619532286486 -0.0057370358048752139 0.0041707411914163293 0.0061291102464617921 0.012575041187837673 -0.0056552064857272044 0.010446038868018226 0.011299279853516373 -0.010553083027409387 -0.01048474660255003 -0.010420027374232812\nleaf_weight=1.7992242351174343 1.9299781769514108 1.5803348012268532 2.6002541035413724 3.1180463135242453 2.9355644136667278 10.822918709367512 2.4706408865749827 2.9933724626898766 2.0580302104353905 2.1315098404884338 39.454388432204723 0.8278016708791246 0.95949260890483756 0.95968016237020393 32.836593773216009\nleaf_count=9 14 30 21 17 15 117 25 16 23 17 995 9 20 22 850\ninternal_value=0 -0.00792178 0.00785187 0.00937773 -0.00289163 -0.0016743 -0.00389565 0.000802208 -0.00154623 0.00330005 0.0100326 0.0104636 -0.0104356 -0.0104255 -0.0104219\ninternal_weight=0 54.4952 54.9826 45.1995 18.1591 16.2291 13.2936 9.78317 6.78979 4.18954 43.4002 40.2822 36.3361 34.7558 33.7963\ninternal_count=2200 1093 1107 1030 171 157 142 77 61 40 1021 1004 922 892 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=253\nnum_leaves=16\nnum_cat=0\nsplit_feature=10 12 3 1 13 0 4 0 0 4 1 0 3 4 0\nsplit_gain=67.2578 6.79748 4.56283 5.33349 4.72675 2.27978 3.42732 2.09721 1.87866 1.02723 0.00264203 0.000920837 0.000794562 0.000155728 3.78573e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.52015392592939824 0.80845556346269254 0.46553849925547169 1.0691005037898054 0.38545662354011129 1.2509949463117855 1.048937272384614 0.44326344064311579 1.0023056708553677 1.0188919694060079 1.2393449613922758 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 7 3 -2 10 6 -6 8 -1 -10 11 -4 -3 -14 -15\nright_child=2 12 4 -5 5 -7 -8 -9 9 -11 -12 -13 13 14 -16\nleaf_value=0.0024141210831736255 0.0078019025789349862 -0.010651421025668423 0.010419240009815001 -0.0097400629350141103 -0.010439719228308835 0.0089071811548595212 0.0053191395550448248 0.0050086163020620867 -0.0038870318115983263 -0.0099225650738842836 0.011005919931768242 0.010695718007204548 -0.010547297728886353 -0.010479696256945548 -0.010415673494565765\nleaf_weight=3.210637345910075 4.0653302147984496 1.5656110867857922 36.621149264276028 3.0213586241006851 2.4351143389940244 3.3563531711697578 3.1853722520172596 2.8262638784945002 7.3460266776382905 4.5768469087779522 0.80888311564922233 1.2456263341009606 0.95046394690871139 0.95058679953217406 32.523386474698782\nleaf_count=23 35 30 953 17 12 23 29 27 67 59 12 21 20 22 850\ninternal_value=0 -0.00792361 0.00780969 0.000323012 0.00892308 0.00238583 -0.00150849 -0.0028988 -0.00437555 -0.0062039 0.0104404 0.0104283 -0.0104311 -0.0104211 -0.0104175\ninternal_weight=0 53.9498 54.7392 7.08669 47.6525 8.97684 5.62049 17.9598 15.1335 11.9229 38.6757 37.8668 35.99 34.4244 33.474\ninternal_count=2200 1098 1102 52 1050 64 41 176 149 126 986 974 922 892 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=254\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 2 0 1 3 12 3 4 0\nsplit_gain=66.4135 6.87582 5.86706 4.6439 2.25576 4.29149 1.88774 1.21205 2.50482 3.59477 1.04628 0.00570327 0.00077076 0.000150959 3.66935e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 0.99689265265511573 0.17408222448223767 4.6533632910829281 1.2393449613922758 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 -5 -12 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 11 -13 13 14 -16\nleaf_value=-0.0063902052927285839 -0.011929238305955358 -0.010644647706932133 -0.0092424904515355753 0.004427041317766384 0.010343899804549484 -0.0056251734577384858 0.0040528612226838094 0.0060852027145744184 0.012495896652942888 -0.0061110085420762392 0.010437443329000103 0.011281117012797732 -0.010541576012772729 -0.010474700077364738 -0.010411368026997523\nleaf_weight=1.7980818524956692 2.3788616284728077 1.551014371216296 2.6065600439906103 3.1057336032390586 2.5676741003990164 10.640885721892117 2.4863651581108561 2.9929296672344208 2.0926203541457653 2.060827724635601 38.719356898218393 0.81819484382867713 0.94151486456394096 0.94157493487000365 32.213023066520691\nleaf_count=9 16 30 21 17 14 116 25 16 24 16 995 9 20 22 850\ninternal_value=0 -0.0078792 0.00781073 0.00935211 -0.00285486 -0.00147947 -0.00379211 0.000787138 -0.00155853 0.00326366 0.0100159 0.0104549 -0.0104266 -0.0104167 -0.0104132\ninternal_weight=0 53.7209 54.1943 44.4414 18.0738 15.6949 13.1273 9.75294 6.76001 4.15345 42.6433 39.5376 35.6471 34.0961 33.1546\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1021 1004 922 892 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=255\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 1 3 13 3 10 0 0 0 4 13 2 3 1 3 1 0\nsplit_gain=65.6416 6.7727 4.52804 6.54949 2.53604 2.52177 2.29052 1.69356 2.16387 1.646 1.47123 0.706533 1.25098 0.12527 0.00862884 0.0032739 0.00196189 0.000217823\nthreshold=2.5000000000000004 1.1899369278690821 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.3268335175992902 3.5000000000000004 1.048937272384614 1.1864741023471512 0.31415341067031349 0.43963968064395148 0.97735317110040087 1.2525408166204799 0.17408222448223767 1.1058192561221138 1.2306326518141948 0.99689265265511573 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 9 -4 16 7 -6 -1 -9 -2 13 12 -3 -11 -7 -13 -5 -17\nright_child=2 11 3 4 6 14 -8 8 -10 10 -12 15 -14 -15 -16 17 -18 -19\nleaf_value=0.0077102000737787318 -0.0013075611578850512 -0.011252842898436062 -0.01408246918082985 0.010450314940917329 0.0057730582637750905 -0.011630935785936554 -0.0051133889162416771 -0.0055928402652095288 0.0044782862638553019 0.012922709168693649 0.00081964397857051401 -0.01082785122111361 0.00055648484261940512 0.01042379056762174 -0.010451632204875749 -0.010552086855856188 0.010930917989726664 -0.010409165432786081\nleaf_weight=2.3211108669638625 1.3023010864853848 1.9405305199325078 1.8841253668069864 5.2992585115134707 5.9186017215251905 1.2290442474186414 2.8698001615703106 5.7480355277657491 3.3925878182053566 2.1406237334012976 1.6174238957464684 2.0252674520015708 1.6681080609560011 31.910777781158686 1.252955265343189 1.1025426127016533 1.0115046575665472 32.507060807198286\nleaf_count=15 7 23 11 133 38 12 23 42 38 13 26 32 19 835 31 23 16 863\ninternal_value=0 -0.00788332 0.00777162 0.00349735 0.00569102 -0.00189684 0.00221815 8.2131e-05 -0.00185489 0.00973508 0.0101383 -0.0100104 -0.00579393 0.0105809 -0.0110356 -0.0104374 0.0105273 -0.0104139\ninternal_weight=0 53.1872 53.9544 16.9833 15.0992 13.9437 8.7884 11.4617 9.14062 36.9711 35.6688 39.2435 3.60864 34.0514 2.482 35.6349 6.31076 33.6096\ninternal_count=2200 1098 1102 221 210 138 61 95 80 881 874 960 42 848 43 918 149 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=256\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 0 0 0 0 4 4 3 1 3 4 0\nsplit_gain=64.8041 6.77226 4.51791 6.43758 2.53261 2.27399 2.02644 1.81675 1.63956 1.47044 1.02417 0.121222 0.00190444 0.000742736 0.000128619 3.4333e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.0691005037898054 1.2509949463117855 1.048937272384614 0.31415341067031349 0.43963968064395148 0.44326344064311579 0.17408222448223767 0.99689265265511573 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 8 -4 12 -6 7 -1 -2 11 -9 -10 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 10 9 -11 -12 -13 -14 14 15 -17\nleaf_value=0.00238883579379499 -0.0012937499119093651 -0.010634000436669334 -0.013968794025911368 0.010445653608878072 -0.0017296900529528245 0.0087863256736513511 0.0049037854550565462 -0.0038029261810992427 0.012886700164337812 0.0008118485513022365 -0.0098645217728667526 0.010419412142110444 0.010921350755430685 -0.010517901074378562 -0.010464845524973326 -0.010402993302288038\nleaf_weight=3.1860138997435596 1.3030387088656414 1.5239529274404038 1.8804816901683832 5.2488593421876422 5.5088561289012414 3.2810133248567581 2.8377106674015513 7.2891230657696706 2.1252164244651786 1.6166288256645192 4.5132771283388138 31.606468867510557 1.0023128837347028 1.0368240401148785 0.92375306412577529 31.493500210344791\nleaf_count=23 7 30 11 133 39 22 27 67 13 26 59 835 16 23 22 847\ninternal_value=0 -0.00786149 0.00774908 0.0034752 0.00565611 0.00219565 -0.00284498 -0.00431203 0.00972227 0.0101284 -0.0061209 0.0105749 0.0105219 -0.0104181 -0.0104083 -0.0104048\ninternal_weight=0 52.8042 53.5729 16.9215 15.041 8.78987 17.8261 14.9884 36.6514 35.3483 11.8024 33.7317 6.25117 34.978 33.4541 32.4173\ninternal_count=2200 1098 1102 221 210 61 176 149 881 874 126 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=257\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 0 0 12 0 2 0 1 3 12 3 4 0\nsplit_gain=63.9824 6.84962 5.78966 4.53426 2.21894 4.18806 1.82699 1.20547 2.46811 3.5182 1.08201 0.00572625 0.000720531 0.000124696 3.32803e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.31415341067031349 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 0.99689265265511573 0.17408222448223767 4.7089134508189288 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 -5 -12 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 11 -13 13 14 -16\nleaf_value=-0.0062142530268794486 -0.011853170353413649 -0.010627421069364613 -0.0092006287544315248 0.0042734551498161202 0.010278798485451702 -0.0055517330323063665 0.0039610123543710333 0.0060495534105725326 0.012472886473872832 -0.0060389029627396472 0.01042538044872827 0.01130580466871981 -0.010512503163813939 -0.010460010904279686 -0.010398823080205231\nleaf_weight=1.8025043308734883 2.3526096791029003 1.5097187310457219 2.6048112660646421 3.0699007213115683 2.5526621490716925 10.533857092261313 2.4976483024656764 2.9878828451037407 2.0591670498251915 2.0474785044789314 37.712718315422535 0.75349024683236976 1.0270319171249855 0.91498216986656089 31.192574057728052\nleaf_count=9 16 30 21 17 14 116 25 16 24 16 996 8 23 22 847\ninternal_value=0 -0.00781675 0.00774982 0.00931285 -0.0028007 -0.00143413 -0.0037285 0.000765896 -0.00158634 0.00324334 0.00998667 0.0104426 -0.0104138 -0.010404 -0.0104006\ninternal_weight=0 52.5811 53.038 43.3386 17.9368 15.5842 13.0315 9.69934 6.71146 4.10665 41.5361 38.4662 34.6443 33.1346 32.1076\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1021 1004 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=258\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 10 3 0 0 0 4 3 1 3 4 0\nsplit_gain=63.247 6.74375 4.47965 6.30536 2.50762 2.23618 2.01226 1.94083 2.27424 1.61573 1.48184 0.116261 0.00200811 0.000698992 0.000120892 3.22597e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 3.5000000000000004 1.323927965737479 1.2509949463117855 1.1546668796111181 0.31415341067031349 0.43963968064395148 0.17408222448223767 1.0023056708553677 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 9 -4 12 -6 7 8 -1 -2 11 -11 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 -9 -10 10 -12 -13 -14 14 15 -17\nleaf_value=0.00021380002856955977 -0.0012146077208770127 -0.010620913170181394 -0.013857429704254748 0.010445331405202065 0.0057080479536104371 -0.0050547570724057923 -0.011172805897212928 0.0064347973683776443 -0.0085310840393071925 0.012839555470746234 0.00073099302641598148 0.010410836279428798 0.010987496483542849 -0.010507163981917018 -0.010455228814832764 -0.010394698243198131\nleaf_weight=7.9197997152805346 1.3072658628225315 1.4956080727279175 1.8715674355626131 5.3601062372326842 5.8917104527354223 2.87120296433568 2.4792726673185816 2.5865361504256716 4.7620822787284851 2.1047529131174079 1.6065655723214138 31.007700692862272 0.78295348212122906 1.0173268802463997 0.90629021078348415 30.894396282732487\nleaf_count=64 7 30 11 137 38 23 35 24 53 13 26 835 12 23 22 847\ninternal_value=0 -0.00782109 0.00771155 0.00344345 0.00561572 0.00218157 -0.00281665 -0.00145979 -0.00306993 0.00969922 0.0101102 0.0105652 0.0105144 -0.0104095 -0.0103999 -0.0103964\ninternal_weight=0 52.0613 52.8038 16.7775 14.906 8.76291 17.7477 15.2684 12.6819 36.0263 34.719 33.1125 6.14306 34.3136 32.818 31.8007\ninternal_count=2200 1098 1102 221 210 61 176 141 117 881 874 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=259\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 1 3 13 0 3 0 4 4 2 13 13 1 3 3 1 0\nsplit_gain=62.433 6.74637 4.46932 6.19768 2.50388 2.2249 2.07818 1.60957 1.48092 1.43392 4.99773 0.714241 1.25379 0.552909 0.112514 0.00315152 0.00194933 0.000206777\nthreshold=2.5000000000000004 1.1899369278690821 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.0691005037898054 1.2864828997949476 0.31415341067031349 0.43963968064395148 0.43216120423585541 1.2361410663171766 0.97735317110040087 0.87216409470284928 1.1514890847982897 0.17408222448223767 1.2306326518141948 1.0023056708553677 1.1486959937123338\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 7 -4 16 -6 9 -2 14 -1 -11 12 -3 -8 -9 -13 -5 -17\nright_child=2 11 3 4 5 -7 13 8 -10 10 -12 15 -14 -15 -16 17 -18 -19\nleaf_value=-0.0035927224041370004 -0.0012018311128558765 -0.011489693678937018 -0.013746346052247355 0.010440729157502578 -0.001722664499503278 0.0086986523120877353 -0.011345599625467178 0.012804775156515749 0.00072400176620005322 -0.0056659262934413554 0.013315080653368736 -0.010809050803102576 0.00036796878465135332 -0.0031266379470799711 0.01040659662311968 -0.010534071504809079 0.010977346800193419 -0.010392545007365851\nleaf_weight=4.6956506222486478 1.3079483583569516 1.8328806124627584 1.8678433224558855 5.3090998455882064 5.4994593113660795 3.2648538537323475 2.2813449092209335 2.0894419252872458 1.6058611907064904 2.7479756027460098 2.801278430968523 1.971328381448983 1.7365867048501966 1.2764776758849619 30.711612969636917 1.0675776377320279 0.77587608993053425 31.285404808819294\nleaf_count=30 7 19 11 137 39 22 33 13 26 27 21 32 23 27 835 23 12 863\ninternal_value=0 -0.0077979 0.00768895 0.00342152 0.00558101 0.00215945 -0.00181233 0.00968641 0.0101003 0.000474309 0.00391574 -0.00997814 -0.00572081 -0.0083968 0.0105594 -0.0104209 0.0105092 -0.0103972\ninternal_weight=0 51.6965 52.432 16.7171 14.8493 8.76431 13.8027 35.7149 34.4069 10.2449 5.54925 37.8938 3.56947 3.55782 32.8011 34.3243 6.08498 32.353\ninternal_count=2200 1098 1102 221 210 61 138 881 874 78 48 960 42 60 848 918 149 886\nis_linear=0\nshrinkage=0.01\n\n\nTree=260\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 0 3 13 3 1 3 2 3 3 12\nsplit_gain=61.6491 10.9255 4.92323 4.12731 3.83388 3.67441 2.42717 1.30761 1.12171 0.920002 0.689511 0.677469 0.00964813\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.31415341067031349 1.2616250467501662 0.582163634996683 1.2190084357665867 1.0797383065324315 0.17408222448223767 1.2594563194023032 1.0853483183990196 1.2351688403888856 4.6360580590350748\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 7 8 -2 -5 -6 -4 -12 -10\nright_child=1 2 10 6 9 -7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0060450562348653312 0.0033036976489230381 0.0073854852309309417 -0.019030991697977655 0.0041221956578050226 -0.011891691395673072 0.0090263068715497729 -0.00010489910714662488 -0.0065707022561482158 0.010410930748390626 -0.0025861236239199908 -0.006790500155903335 -0.010456642645784343 0.011275742188346991\nleaf_weight=1.8064299523830403 2.3197013102471811 1.6750652045011509 0.84756901860237022 3.034410059452056 2.3431179597973815 5.7547785826027393 2.5389323085546485 3.1788914725184441 36.460736408829689 1.9438208155333994 5.910934340208768 34.227304510772228 1.3373480141162861\nleaf_count=9 26 19 6 17 27 35 18 20 992 28 66 920 17\ninternal_value=0 -0.00680347 -0.00941846 0.00876518 0.000375143 0.00344079 0.00938203 -0.00240497 0.00997192 -0.00767228 -0.0101052 -0.00991675 0.0104415\ninternal_weight=0 58.2012 42.6609 45.1779 15.5403 11.2534 43.3714 5.49859 40.8325 4.28694 40.9858 40.1382 37.7981\ninternal_count=2200 1147 1011 1053 136 81 1044 46 1026 55 992 986 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=261\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 0 1 12 3 3 4 0\nsplit_gain=60.9039 6.8177 5.67463 4.44674 2.17196 4.0887 1.78898 1.19964 2.43708 3.41503 0.00553667 0.00151157 0.000679768 0.000128027 3.22033e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 0.99689265265511573 4.7089134508189288 0.61313736928646123 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 11 -5 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 -12 -13 13 14 -16\nleaf_value=0.00016920982195201101 -0.011757117572424656 -0.010608522123298927 -0.0091952583026563822 0.010691073909332823 0.010237542703276058 -0.0054782213735186137 0.0039482207417562629 0.0060188748115725934 0.01245953520119839 -0.0059276245182363022 0.011282017378330508 0.010395585303060322 -0.010499397958925552 -0.010443843178293584 -0.010382636458281391\nleaf_weight=4.7675901949405661 2.3157990276813534 1.4617695622146119 2.5917887613177282 1.8224159143865097 2.5354456901550284 10.401018187403677 2.4965535178780547 2.9719993621110916 2.0119878314435482 2.0284875929355621 0.74362394213676353 34.586154099553823 0.99921309947967785 0.88495305925607937 30.018364001065493\nleaf_count=25 16 30 21 37 14 116 25 16 24 16 8 960 23 22 847\ninternal_value=0 -0.00773388 0.0076726 0.0092611 -0.00272652 -0.00137144 -0.00365357 0.000739281 -0.00162657 0.00322841 0.0104278 0.0104104 -0.0103977 -0.010388 -0.0103844\ninternal_weight=0 51.1131 51.524 41.9198 17.7488 15.433 12.8976 9.60426 6.63226 4.04048 37.1522 36.4086 33.3643 31.9025 30.9033\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1005 997 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=262\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 10 3 0 0 0 4 3 1 3 4 0\nsplit_gain=60.2018 6.70931 4.41984 6.04818 2.46723 2.18836 1.96937 1.89496 2.19848 1.58553 1.4997 0.108213 0.00195712 0.000659487 0.000124126 3.12165e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 3.5000000000000004 1.323927965737479 1.2509949463117855 1.1546668796111181 0.31415341067031349 0.43963968064395148 0.17408222448223767 1.0023056708553677 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 9 -4 12 -6 7 8 -1 -2 11 -11 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 -9 -10 10 -12 -13 -14 14 15 -17\nleaf_value=0.00021507722744675938 -0.0011335416325474771 -0.01060222566925201 -0.013652368329958977 0.010428694071358546 0.0056444652109418391 -0.0050212583036389671 -0.011133024933848655 0.0063830497434643578 -0.0084390136081514064 0.012759112390757672 0.00058942319466727248 0.010394222944398766 0.010970736568151644 -0.010494203273079997 -0.010439236447962979 -0.010378686012150693\nleaf_weight=7.8697316497564334 1.311307132244109 1.4480798617005337 1.8529390692710901 5.1663535647094241 5.8511333428323251 2.8659546747803688 2.4133293889462939 2.589165747165679 4.6818581521511078 2.0690594166517284 1.5875702910125244 29.841868501156569 0.76471418887376774 0.98975799977779644 0.87653234228492038 29.730933103710413\nleaf_count=64 7 30 11 137 38 23 35 24 53 13 26 835 12 23 22 847\ninternal_value=0 -0.00773955 0.00763265 0.00336987 0.00552313 0.00213785 -0.00274344 -0.0014062 -0.00301298 0.00965336 0.0100756 0.0105476 0.0104986 -0.0103935 -0.010384 -0.0103804\ninternal_weight=0 50.5994 51.3109 16.5011 14.6482 8.71709 17.5541 15.1408 12.5516 34.8098 33.4985 31.9109 5.93107 33.0453 31.5972 30.6075\ninternal_count=2200 1098 1102 221 210 61 176 141 117 881 874 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=263\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 0 3 0 0 0 4 3 1 3 4 0\nsplit_gain=59.4243 6.70873 4.40918 5.94492 2.46315 2.17811 1.95429 1.85513 2.17038 1.5796 1.49852 0.104736 0.00189992 0.000639831 0.000120351 3.02622e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.0691005037898054 1.323927965737479 1.2509949463117855 1.1546668796111181 0.31415341067031349 0.43963968064395148 0.17408222448223767 1.0023056708553677 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 9 -4 12 -6 7 8 -1 -2 11 -11 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 -9 -10 10 -12 -13 -14 14 15 -17\nleaf_value=0.00021291309700081164 -0.0011216616017576209 -0.01059599754348046 -0.013543819581010532 0.010424271828496314 -0.0017331581331963069 0.0086063509305428776 -0.011121194312846432 0.0062945017367939298 -0.0084002104307270148 0.012725508950535223 0.00058373653122224573 0.01039015953036102 0.010960786082039313 -0.010489064946629361 -0.010434679047356468 -0.010374775451900249\nleaf_weight=7.870220649987461 1.3119411095976818 1.4345096983015526 1.8491309806704546 5.1171065755188456 5.4726059325039369 3.2458225712180138 2.3918453343212596 2.5992817021906367 4.6565773114562035 2.0538540631532696 1.5870101563632477 29.556433044373989 0.75778903439640988 0.98038737475872295 0.86818780004978435 29.446143165230751\nleaf_count=64 7 30 11 137 39 22 35 24 53 13 26 835 12 23 22 847\ninternal_value=0 -0.00771624 0.00760997 0.00334826 0.00548867 0.00211618 -0.00272176 -0.00139358 -0.00298884 0.00964053 0.0100658 0.0105419 0.0104935 -0.0103895 -0.01038 -0.0103765\ninternal_weight=0 50.2472 50.9517 16.4425 14.5933 8.71843 17.5179 15.1261 12.5268 34.5092 33.1973 31.6103 5.8749 32.7292 31.2947 30.3143\ninternal_count=2200 1098 1102 221 210 61 176 141 117 881 874 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=264\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 0 0 12 3 3 4 0\nsplit_gain=58.6795 6.77871 5.59517 4.45463 2.13187 3.99292 1.70399 1.19515 2.39222 1.01292 0.00547992 0.00149915 0.000620754 0.000116689 2.93365e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 1.1427926010382323 4.7089134508189288 0.61313736928646123 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 11 -5 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 -12 -13 13 14 -16\nleaf_value=0.0001046855378824938 -0.011682956478026234 -0.010589836119405427 -0.009144385703001948 0.010681863107476692 0.010157818028841761 -0.0054058482695617908 0.0037675632058955556 0.0059895040627672936 0.008019188036327226 -0.0020644944409081364 0.011269354186954543 0.01038412739100482 -0.010483982210608018 -0.010430171241508017 -0.010370908025611681\nleaf_weight=4.7380097061395636 2.2891613692045238 1.4210582934319962 2.5881739407777768 1.7806954532861698 2.5243960618972769 10.296401936560867 2.5206244550645343 2.9662418067455292 2.0837783813476567 1.9086124673485754 0.73866342008113761 33.631388138979673 0.97110057249665516 0.85991882532835262 29.163966428488493\nleaf_count=25 16 30 21 37 14 116 25 16 24 16 8 960 23 22 847\ninternal_value=0 -0.00767128 0.00761254 0.00922195 -0.00268091 -0.00133767 -0.00360179 0.000719502 -0.00165599 0.00319856 0.0104169 0.0103991 -0.0103855 -0.0103761 -0.0103726\ninternal_weight=0 50.0466 50.4356 40.8888 17.6306 15.3414 12.817 9.54681 6.58056 3.99239 36.1507 35.4121 32.416 30.995 30.0239\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1005 997 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=265\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 10 3 0 0 0 4 3 1 3 4 0\nsplit_gain=57.9927 6.67728 4.3747 5.82966 2.4415 2.14665 1.93437 1.79795 2.14392 1.57261 1.50419 0.10162 0.00190527 0.000602245 0.000113138 2.84383e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 3.5000000000000004 1.323927965737479 1.2509949463117855 1.048937272384614 0.31415341067031349 0.43963968064395148 0.17408222448223767 1.0023056708553677 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 9 -4 12 -6 7 8 -1 -2 11 -11 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 -9 -10 10 -12 -13 -14 14 15 -17\nleaf_value=0.00504651323042317 -0.0011170047397615472 -0.010583741140321668 -0.01344827694396088 0.010416899822729567 0.0055830102491569592 -0.0049919424311910977 -0.011105372971846441 0.0061612175686324433 -0.0051071012030813514 0.012692122970086279 0.00052793598720515789 0.010382298771339648 0.010957537869616096 -0.010478954977690478 -0.01042571205110499 -0.010367083008409737\nleaf_weight=2.6376675441861179 1.3118994683027256 1.4077246822416771 1.840390302240851 5.0266877077519885 5.8248821496963483 2.86310213804245 2.3643571436405173 2.6152967959642401 9.8277003765106183 2.03857193887234 1.5787809118628491 28.997606419026852 0.74896677955985058 0.96189690381288784 0.85172479227185505 28.884380981326103\nleaf_count=19 7 30 11 137 38 23 35 24 98 13 26 835 12 23 22 847\ninternal_value=0 -0.00767554 0.00757205 0.00331496 0.00544796 0.00209806 -0.00269554 -0.00137704 -0.0029586 0.00961786 0.0100497 0.010534 0.010487 -0.0103815 -0.0103722 -0.0103688\ninternal_weight=0 49.5507 50.2309 16.304 14.4636 8.68798 17.445 15.0807 12.4654 33.9269 32.615 31.0362 5.77565 32.1057 30.698 29.7361\ninternal_count=2200 1098 1102 221 210 61 176 141 117 881 874 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=266\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 1 3 13 0 3 0 4 4 2 13 2 1 3 12 1 3\nsplit_gain=57.2433 6.68002 4.36382 5.73014 2.43712 2.12698 1.95178 1.56674 1.50292 1.431 5.78877 0.727982 1.25614 0.64468 0.0983617 0.00304454 0.00184969 0.000241808\nthreshold=2.5000000000000004 1.1899369278690821 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.0691005037898054 1.2864828997949476 0.31415341067031349 0.43963968064395148 0.43216120423585541 1.2525408166204799 0.97735317110040087 1.2525408166204799 1.1597348923655619 0.17408222448223767 5.4588099803130126 1.0023056708553677 1.2351688403888856\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 7 -4 16 -6 9 -2 14 -1 -11 12 -3 -8 -9 -13 -5 -17\nright_child=2 11 3 4 5 -7 13 8 -10 10 -12 15 -14 -15 -16 17 -18 -19\nleaf_value=-0.0035517995141580256 -0.0011053068435957205 -0.011196258802407913 -0.013341909055339114 0.010412603841972661 -0.0017251406710995839 0.0085151357436163092 -0.011247339056465164 0.012659490908105427 0.00052282268796638171 -0.0053978870434776283 0.015234029618057754 -0.010803411226575034 0.00080879335571270618 -0.0019553412797859381 0.010378363522995749 -0.010515093728466259 0.010947746536139242 -0.010365681532436789\nleaf_weight=4.6538243666291219 1.31252310425043 1.8674183711409562 1.8365315049886728 4.9787142872810355 5.4631880745291692 3.2261090353131294 2.2963871061801906 2.0234641432762173 1.5782828517258156 2.9894513003528118 2.4947719126939774 1.7219972200691689 1.6344306096434591 1.1064128950238226 28.719907466322184 1.1247307620942617 0.74217428639531124 29.31550158560276\nleaf_count=30 7 23 11 137 39 22 36 13 26 31 17 29 19 24 835 25 12 864\ninternal_value=0 -0.00765256 0.0075493 0.00329357 0.00541371 0.00207681 -0.00167289 0.00960499 0.0100399 0.000526655 0.00398757 -0.00992291 -0.0055931 -0.00822607 0.0105285 -0.0103943 0.010482 -0.0103712\ninternal_weight=0 49.2049 49.8809 16.2467 14.4102 8.6893 13.5408 33.6342 32.3217 10.138 5.48422 35.6641 3.50185 3.4028 30.7434 32.1622 5.72089 30.4402\ninternal_count=2200 1098 1102 221 210 61 138 881 874 78 48 960 42 60 848 918 149 889\nis_linear=0\nshrinkage=0.01\n\n\nTree=267\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 0 3 13 3 0 3 2 12 3 12\nsplit_gain=56.5624 10.5872 4.95393 3.9469 3.66441 3.5823 2.42108 1.20079 1.17888 0.925818 0.541077 0.931627 0.00928741\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.31415341067031349 1.2616250467501662 0.582163634996683 1.2190084357665867 1.0253804391042192 0.17408222448223767 1.2594563194023032 5.0482521082396881 1.2351688403888856 4.6360580590350748\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 7 8 -2 -5 -6 -4 -12 -10\nright_child=1 2 10 6 9 -7 -8 -9 12 -11 11 -13 -14\nleaf_value=-0.0058072848466649346 -0.0065108721105140554 0.007647918555598281 -0.015721690427259849 0.0038570685673536293 -0.011856535791588145 0.00896403868535375 -0.00022820828557732571 0.0030167446715159379 0.010384540320690614 -0.002376771647948187 -0.0057905842279006425 -0.010431523326969862 0.011244162088298371\nleaf_weight=1.8086191043257702 3.0658553391695005 1.6484653018414963 1.6134959384798992 2.9696385264396659 2.2734519578516474 5.7123361229896545 2.5096359737217417 2.3267162442207336 34.159440476447344 1.8839297853410242 4.9989877119660369 32.102965138852596 1.3048492446541775\nleaf_count=9 29 19 10 17 27 35 18 17 992 28 62 920 17\ninternal_value=0 -0.00664721 -0.00932985 0.00864939 0.000447533 0.00344562 0.00928799 -0.00240002 0.00990937 -0.00756075 -0.0100528 -0.00980622 0.0104162\ninternal_weight=0 55.6262 40.3639 42.7522 15.2623 11.1049 40.9436 5.39257 38.4339 4.15738 38.7154 37.102 35.4643\ninternal_count=2200 1147 1011 1053 136 81 1044 46 1026 55 992 982 1009\nis_linear=0\nshrinkage=0.01\n\n\nTree=268\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 3 3 12 0 2 0 0 12 3 3 4 0\nsplit_gain=55.8667 6.73237 5.48 4.45315 2.09528 3.22171 1.68234 1.18537 2.36313 0.990548 0.0052698 0.00145033 0.000591877 0.000119712 2.84742e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 0.9833172866921428 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 1.1427926010382323 4.7089134508189288 0.61313736928646123 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 11 -5 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 -12 -13 13 14 -16\nleaf_value=3.887473880797867e-05 -0.012782813448355706 -0.010573265704852983 -0.0091279136262321404 0.010667134658559049 0.0081739706322600161 -0.005377748071577604 0.0037396138400935665 0.0059588959342284807 0.0080077825749945864 -0.0020303190391837323 0.01124412388588226 0.0103696071766472 -0.010471986207245572 -0.010415268721982885 -0.010355902830599482\nleaf_weight=4.705797240138053 1.8157169669866586 1.3772944025695348 2.576634965837 1.7256246916949738 2.8531247377395621 10.257650937885044 2.5212883912026873 2.9495145380496979 2.0479464605450635 1.8905162177979944 0.72862689197063346 32.401166141033173 0.94505704939365642 0.83188562095165508 28.063371598720551\nleaf_count=25 14 30 21 37 15 117 25 16 24 16 8 960 23 22 847\ninternal_value=0 -0.00758995 0.00753456 0.00916985 -0.00261483 -0.00143379 -0.00357889 0.000699205 -0.00168196 0.00318936 0.0104026 0.0103847 -0.0103706 -0.0103612 -0.0103576\ninternal_weight=0 48.6654 49.0258 39.5612 17.4478 15.6321 12.7789 9.46461 6.5151 3.93846 34.8554 34.1268 31.2176 29.8403 28.8953\ninternal_count=2200 1093 1107 1030 171 157 142 77 61 40 1005 997 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=269\nnum_leaves=17\nnum_cat=0\nsplit_feature=10 12 1 3 13 10 3 0 0 0 4 3 1 3 4 0\nsplit_gain=55.1819 6.64031 4.31959 5.57923 2.41217 2.11263 1.89807 1.75395 2.07919 1.54348 1.52032 0.0946901 0.00182975 0.000574273 0.000116077 2.76045e-05\nthreshold=2.5000000000000004 5.4588099803130126 0.85893167272483917 0.58644753314242826 0.46553849925547169 3.5000000000000004 1.323927965737479 1.2509949463117855 1.1546668796111181 0.31415341067031349 0.43963968064395148 0.17408222448223767 1.0023056708553677 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 9 -4 12 -6 7 8 -1 -2 11 -11 -5 -3 -15 -16\nright_child=2 13 3 4 5 -7 -8 -9 -10 10 -12 -13 -14 14 15 -17\nleaf_value=0.00023748135455888439 -0.0010394141119473158 -0.010567356074280495 -0.013249815527158836 0.010402002467599987 0.005513651693716066 -0.0049950387297277238 -0.011072360266016259 0.006109162665926148 -0.0082717692390789008 0.012617508145576405 0.00039605968659384936 0.010366977716876195 0.010937591467149524 -0.010467090381322137 -0.010410969976901613 -0.010352236727269631\nleaf_weight=7.7867414355278033 1.3157411217689503 1.3643488176167036 1.8192190229892755 4.84798315539956 5.7867918573319894 2.857808779925108 2.3042895607650271 2.6195869855582705 4.5490821525454521 2.0037762224674287 1.5614531934261311 27.90695820376277 0.7345072254538535 0.93608902394771831 0.82394656911492603 27.793926391750574\nleaf_count=64 7 30 11 137 38 23 35 24 53 13 26 835 12 23 22 847\ninternal_value=0 -0.00759295 0.00749134 0.00323998 0.00534853 0.0020396 -0.00262404 -0.00132235 -0.00290048 0.00957195 0.0100156 0.0105177 0.0104725 -0.0103668 -0.0103575 -0.0103539\ninternal_weight=0 48.178 48.8342 16.0463 14.2271 8.6446 17.2597 14.9554 12.3358 32.7879 31.4722 29.9107 5.58249 30.9183 29.554 28.6179\ninternal_count=2200 1098 1102 221 210 61 176 141 117 881 874 848 149 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=270\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 0 4 3 3 13 3 0 2 12 3 12 3\nsplit_gain=54.4989 10.4081 4.93139 3.90067 3.57383 3.51135 2.65405 1.17308 0.927777 0.516243 0.942432 0.00900687 0.0017084\nthreshold=0.99689265265511573 1.1427926010382323 0.36041499722973019 0.17408222448223767 1.2616250467501662 0.582163634996683 1.2190084357665867 1.0253804391042192 1.2594563194023032 5.0482521082396881 1.2351688403888856 4.6360580590350748 0.58644753314242826\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=3 4 -3 -1 5 7 11 -2 -6 -4 -11 12 -5\nright_child=1 2 9 6 8 -7 -8 -9 -10 10 -12 -13 -14\nleaf_value=7.947909705751013e-06 -0.0064747804557152523 0.0076636372048356086 -0.015581050115154605 0.010714169333730443 -0.011837838746954045 0.0088825137884501124 -0.00026207429512809389 0.0029691983071943487 -0.002289876520951261 -0.0057234282627072908 -0.010421231707529744 0.011227246676725998 0.01035938693909145\nleaf_weight=4.6910318285226813 3.0423212721943838 1.6447623148560513 1.601289927959441 1.4176576584577549 2.2428845278918734 5.7008704505860806 2.5006411895155898 2.3169679045677185 1.8630710095167158 4.9468251913785926 31.225887179374695 1.2864884510636319 31.862256065011024\nleaf_count=25 29 19 10 29 27 35 18 17 28 62 920 17 964\ninternal_value=0 -0.00657815 -0.00928669 0.00859925 0.000461696 0.00341941 0.00968652 -0.00239189 -0.00750547 -0.0100247 -0.00977878 0.0104062 0.0103745\ninternal_weight=0 54.5849 39.4188 41.7581 15.1661 11.0602 37.067 5.35929 4.10596 37.774 36.1727 34.5664 33.2799\ninternal_count=2200 1147 1011 1053 136 81 1028 46 55 992 982 1010 993\nis_linear=0\nshrinkage=0.01\n\n\nTree=271\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 1 12 3 3 4 0\nsplit_gain=53.8612 6.6862 5.38423 4.44358 2.06671 3.81128 1.61878 1.17524 2.60263 0.00511031 0.00138563 0.000557632 0.00012313 2.8228e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 0.96155453354879217 4.7089134508189288 0.61313736928646123 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 10 -5 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 -11 -12 12 13 -15\nleaf_value=7.8683940137500783e-06 -0.011543341925712611 -0.01055876570736632 0.00760675883801338 0.010653481669169232 0.010075725576078077 -0.0052707303632802483 0.0036805751024658381 0.0059384373398062061 -0.0060118875382809221 0.011225491132919064 0.010359015675237684 -0.010463861398557888 -0.010404829045886648 -0.010344996215346035\nleaf_weight=4.6910172849893561 2.2365134768188026 1.3448699973523641 2.0565883293747884 1.6833862513303746 2.4850510433316222 10.070602636784313 2.5273033156990996 2.9399786852300167 4.417457103729248 0.72004746645688911 31.502602405846119 0.92705287411809223 0.81198429875076072 27.26062835380435\nleaf_count=25 16 30 27 37 14 116 25 16 34 8 960 23 22 847\ninternal_value=0 -0.00753013 0.00747609 0.00912996 -0.00257258 -0.00124238 -0.00347498 0.000695303 -0.0016857 0.010392 0.010374 -0.0103597 -0.0103505 -0.0103467\ninternal_weight=0 47.664 48.0111 38.5971 17.3195 15.083 12.5979 9.41402 6.47405 33.906 33.186 30.3445 28.9997 28.0726\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 1005 997 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=272\nnum_leaves=19\nnum_cat=0\nsplit_feature=10 1 1 3 13 0 3 0 4 4 2 13 13 1 3 12 1 3\nsplit_gain=53.176 6.60545 4.27927 5.45015 2.38467 2.08752 1.85554 1.53505 1.53361 1.42742 5.62332 0.736791 1.2587 0.659921 0.0921462 0.00298067 0.00188777 0.000214491\nthreshold=2.5000000000000004 1.1899369278690821 0.85893167272483917 0.58644753314242826 0.46553849925547169 1.0691005037898054 1.2864828997949476 0.31415341067031349 0.43963968064395148 0.43216120423585541 1.2525408166204799 0.97735317110040087 0.87216409470284928 1.1597348923655619 0.17408222448223767 5.4588099803130126 1.0023056708553677 1.2351688403888856\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 7 -4 16 -6 9 -2 14 -1 -11 12 -3 -8 -9 -13 -5 -17\nright_child=2 11 3 4 5 -7 13 8 -10 10 -12 15 -14 -15 -16 17 -18 -19\nleaf_value=-0.0035189084179895946 -0.0010405360462465423 -0.011427296565693868 -0.013173341327719992 0.010391290870736541 -0.0017775818829892038 0.0084117772726366221 -0.011206391041391388 0.012585908342685746 0.00028464072301840146 -0.005308418452320102 0.015132007401519841 -0.010783590198803641 0.00065855775972006468 -0.0016382571076814603 0.01035584461586493 -0.010488239725900518 0.01093827157702932 -0.01034403445852434\nleaf_weight=4.6103966943919641 1.3150952681899095 1.7558127567172044 1.8049029931426037 4.7180335335433474 5.4094530455768091 3.2001061029732227 2.2132592648267742 1.9887692630291045 1.5451678074896324 2.9397148005664349 2.4824464693665504 1.6731482557952428 1.6922368630766866 1.0690018236637113 27.113104429095984 1.0713701024651552 0.72837333008646954 27.681026743724942\nleaf_count=30 7 19 11 137 39 22 36 13 26 31 17 29 23 24 835 25 12 864\ninternal_value=0 -0.00753111 0.00743159 0.00318519 0.00528576 0.00200972 -0.00156355 0.00953882 0.00999279 0.000571698 0.00404989 -0.0098768 -0.00549579 -0.00809014 0.0105082 -0.0103733 0.0104644 -0.0103494\ninternal_weight=0 47.1884 47.823 15.8609 14.056 8.60956 13.3148 31.9621 30.647 10.0326 5.42216 33.8736 3.44805 3.28226 29.1019 30.4255 5.44641 28.7524\ninternal_count=2200 1098 1102 221 210 61 138 881 874 78 48 960 42 60 848 918 149 889\nis_linear=0\nshrinkage=0.01\n\n\nTree=273\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 0 3 0 12 4 13 12 0 0 4 0 0\nsplit_gain=52.516 10.5756 4.15584 2.42406 2.11184 2.74481 2.07716 1.54187 1.37587 1.0048 0.504021 0.00146642 0.00129931 0.000304453 0.000120157 0.000105502 2.75033e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2471304352583659 1.2748487141050349 5.3969699652511318 0.43963968064395148 0.48592442535881092 5.4588099803130126 1.3317575338410668 1.2148150016890609 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 7 8 -2 10 -4 13 -9 15 -13 -8 -16\nright_child=6 3 9 4 -6 -7 11 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0056713180064603373 -0.005580818067788317 -0.0074172522142682933 0.010489370597208635 0.0070836594986748939 -0.0034608167805462988 -0.0038257639760089163 -0.010573238646834474 -0.010941447066970268 0.0071474165231817438 0.0031844303840283029 0.0027208834636701703 -0.010455699366589346 -0.010418779250159152 -0.010712223651258408 -0.010396820228736961 -0.010431111117785184 -0.010337199749175194\nleaf_weight=1.8095408305525769 1.797572843730449 3.493608262389901 32.474275294691324 8.4854776822030562 5.3703748658299437 3.1670338287949553 1.0422422327101264 1.123765582218766 1.6098125986754892 2.1167577542364588 0.8572181798517694 0.91105170547962444 0.82463866844773281 1.028085723519325 0.79711295105517166 1.0468839630484579 26.384284039959311\nleaf_count=9 23 34 956 75 35 18 21 18 19 35 8 23 22 18 22 27 837\ninternal_value=0 0.00593583 0.00911072 0.000170256 0.00172744 0.00411859 -0.00937823 -0.00362473 0.000432612 0.0098653 0.0102896 -0.0103656 -0.0107202 -0.0105713 -0.0103427 -0.010502 -0.0103389\ninternal_weight=0 57.7743 37.2578 20.5165 17.0229 11.6525 36.5655 5.35579 3.40739 35.4483 33.3315 31.2097 1.9484 3.11721 28.0924 2.08913 27.1814\ninternal_count=2200 1170 1008 162 128 93 1030 82 42 999 964 948 40 66 882 48 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=274\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 13 12 0 0 4 0 0\nsplit_gain=51.8695 10.504 4.11948 2.37813 2.08108 2.07294 2.69584 1.52955 1.34662 1.0075 0.505753 0.00142172 0.00126002 0.000295114 0.000116514 0.000102244 2.66653e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 0.48592442535881092 5.4588099803130126 1.3317575338410668 1.2148150016890609 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0056057919450702509 -0.0055498790481600113 -0.0073491974147782699 0.010484769078660246 0.0070271843448115601 -0.010567231845719491 -0.0034304039523256709 -0.003788763571667558 -0.010931575756296724 0.0070378542083459781 0.0031591965722478966 0.0026971384559137052 -0.010450980758275092 -0.010414449792299267 -0.010704718359080101 -0.01039272019042416 -0.010426649105889982 -0.010333732254346724\nleaf_weight=1.8123714327812184 1.789558190852403 3.4907146617770222 32.165191445499659 8.4682229310274142 1.0324553661048446 5.3638402745127669 3.1659882813692084 1.113583570346236 1.6184807308018205 2.1123506240546694 0.85612283274531265 0.90239178016782062 0.81677109375596035 1.0185661576688287 0.78949133493006485 1.0369086340069769 26.130478080362082\nleaf_count=9 23 34 956 75 21 35 18 18 19 35 8 23 22 18 22 27 837\ninternal_value=0 0.0059115 0.00909616 0.000168799 -0.00936605 0.00171269 0.00408387 -0.00360045 0.000428047 0.00985457 0.0102829 -0.0103618 -0.0107128 -0.0105654 -0.0103392 -0.0104968 -0.0103355\ninternal_weight=0 57.4348 36.946 20.4888 36.2487 16.9981 11.6342 5.33839 3.40804 35.1337 33.0213 30.9103 1.93035 3.08793 27.8224 2.06936 26.92\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 48 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=275\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 0 0 12 3 3 4 0\nsplit_gain=51.239 6.63708 5.28208 4.4501 2.04462 3.69936 1.61941 1.17444 2.3345 0.951968 0.00487802 0.0013523 0.000561306 0.000111339 2.50651e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 1.1427926010382323 4.7089134508189288 0.61313736928646123 1.2393449613922758 0.37470171316558165 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 11 -5 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 -12 -13 13 14 -16\nleaf_value=-7.0553312193775402e-05 -0.011489316777669139 -0.010548681611199791 -0.0091471025210936047 0.01064101552835205 0.010012273814597669 -0.0052039113315108607 0.0037853883777083049 0.0059207376568179843 0.0079881166635479978 -0.0019474481401217118 0.011199675258225654 0.010345595012017251 -0.010446313087557432 -0.010388664011588219 -0.010331209355118096\nleaf_weight=4.6559560149908057 2.207280624657872 1.3051238339394355 2.5526756942272169 1.6328607797622705 2.4662012830376616 9.9474543556570989 2.5096193775534621 2.9230060949921608 1.9919936023652556 1.8693271875381468 0.70832668617367645 30.352353096008301 0.89381003566086548 0.78193943016231315 26.235266458243132\nleaf_count=25 16 30 21 37 14 116 25 16 24 16 8 960 23 22 847\ninternal_value=0 -0.00744828 0.00739446 0.00907624 -0.00250626 -0.00117759 -0.00339291 0.00066709 -0.00172712 0.00317815 0.0103789 0.0103607 -0.010346 -0.0103365 -0.0103329\ninternal_weight=0 46.3467 46.6865 37.3495 17.1306 14.9233 12.4571 9.337 6.414 3.86132 32.6935 31.9852 29.2161 27.911 27.0172\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1005 997 922 892 869\nis_linear=0\nshrinkage=0.01\n\n\nTree=276\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 13 12 0 0 4 0 0\nsplit_gain=50.649 10.3535 4.07937 2.33166 2.09129 2.03019 2.6445 1.52092 1.31926 1.01658 0.507336 0.00141472 0.00124875 0.000332351 0.00010956 0.00010206 2.50655e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 0.48592442535881092 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0055461835201624822 -0.0054962030113861549 -0.0072888591547108309 0.010478234459908149 0.006980268959959457 -0.01055912893114933 -0.003396279325197051 -0.0037432578696086349 -0.010924800291375441 0.0069789032369599029 0.0030866313571760169 0.0026635169879535058 -0.010441695487611714 -0.010405883824971516 -0.010711426706129646 -0.01038465115954209 -0.010418852276975031 -0.010326907537634947\nleaf_weight=1.8145780414342869 1.7750502265989774 3.4783478416502502 31.578897960484028 8.4230579845607298 1.0187349580228362 5.3479066565632811 3.1633495837450019 1.1010809633880851 1.622587952762842 2.0958406440913668 0.85319348052143951 0.8853058554232146 0.80117992684245098 0.97651729732751835 0.77445665746927517 1.0565954484045503 25.629880974069238\nleaf_count=9 23 34 956 75 21 35 18 18 19 35 8 23 22 17 22 28 837\ninternal_value=0 0.00586742 0.00906841 0.000168415 -0.00934272 0.00170016 0.00405251 -0.0035469 0.000461452 0.00983646 0.0102727 -0.0103551 -0.0107062 -0.0105593 -0.0103323 -0.0104877 -0.0103286\ninternal_weight=0 56.7552 36.3425 20.4127 35.6414 16.9343 11.5864 5.2999 3.39764 34.5279 32.4321 30.3415 1.90226 3.05185 27.2896 2.07533 26.4043\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=277\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 13 12 0 0 4 0 0\nsplit_gain=50.0243 10.2829 4.04391 2.28743 2.09501 1.99275 2.59725 1.50866 1.29128 1.01915 0.509034 0.0013716 0.00121102 0.000322137 0.000106242 9.89122e-05 2.43022e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 0.48592442535881092 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0054824215678606712 -0.0054654290968927047 -0.0072218215634099973 0.010473744296216702 0.0069244409824310571 -0.010553277519424944 -0.0033663723579597355 -0.0037070428252785172 -0.010915117182233314 0.0068729378124196506 0.0030619777976500966 0.0026402008001017046 -0.010437127558530502 -0.010401692088072614 -0.010703924587857206 -0.010380680935022375 -0.010414522114519251 -0.010323549158484191\nleaf_weight=1.8173114284872998 1.7672338671982282 3.4755439348518875 31.278019724413753 8.4061440024524945 1.0091548152267966 5.3414956033229819 3.1623159535229197 1.0910872630774973 1.6310854665935037 2.091609649360179 0.85212633013725181 0.87687860429287212 0.79352611117064942 0.9674750082194804 0.76704246364534157 1.0465149097144602 25.383071171119809\nleaf_count=9 23 34 956 75 21 35 18 18 19 35 8 23 22 17 22 28 837\ninternal_value=0 0.00584307 0.00905376 0.000166971 -0.00933047 0.00168561 0.00401825 -0.00352299 0.000456596 0.00982569 0.010266 -0.0103515 -0.0106989 -0.0105535 -0.0103289 -0.0104826 -0.0103252\ninternal_weight=0 56.4246 36.0391 20.3855 35.3331 16.91 11.5685 5.28293 3.39832 34.2218 32.1301 30.0501 1.88461 3.02314 27.027 2.05567 26.1501\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=278\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 12 12 0 0 4 0 0\nsplit_gain=49.407 10.2126 4.00889 2.24401 2.09866 1.95599 2.55082 1.49649 1.26399 1.0217 0.656722 0.00132982 0.00117445 0.000312241 0.000103024 9.58631e-05 2.35623e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0054195460999426417 -0.0054347188791810221 -0.007155288958058603 0.010469581907301205 0.0068689715330860776 -0.010547490209224814 -0.0033367000147551192 -0.0036711755557065702 -0.010905540446906474 0.0067691833826325097 0.0030374753304540539 0.00044568819648144897 -0.010432608486073349 -0.010397545287215848 -0.010696506005635287 -0.010376753353320185 -0.010410238321856126 -0.010320226610281256\nleaf_weight=1.8199975267052639 1.7594867721199983 3.4727962277829674 31.163363320752982 8.3893711380660552 0.99965900927782403 5.3351382091641417 3.1612847298383704 1.0811745934188364 1.6394824534654615 2.0874184630811206 0.66759622097015281 0.86852767877280967 0.78594216518104065 0.95850946381688107 0.75969626195729034 1.0365261286497114 25.13855586014688\nleaf_count=9 23 34 960 75 21 35 18 18 19 35 4 23 22 17 22 28 837\ninternal_value=0 0.00581871 0.00903907 0.000165537 -0.0093182 0.00167117 0.00398425 -0.00349919 0.000451796 0.0098149 0.0102593 -0.0103478 -0.0106917 -0.0105477 -0.0103255 -0.0104776 -0.0103219\ninternal_weight=0 56.097 35.7384 20.3586 35.0276 16.8858 11.5507 5.26609 3.39897 33.9184 31.831 29.7615 1.86712 2.99469 26.7668 2.03619 25.8983\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=279\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 12 12 0 0 4 0 0\nsplit_gain=48.7972 10.143 3.97444 2.20139 2.10224 1.91988 2.50518 1.48441 1.23735 1.02429 0.656485 0.00128931 0.00113899 0.000302652 9.99056e-05 9.29093e-05 2.28453e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0053575406163510406 -0.0054040738730916473 -0.0070892595253902457 0.010465168868831847 0.0068138587561228769 -0.010541766446163737 -0.0033072605142042588 -0.0036356528322806516 -0.010896069193389087 0.0066675742469830017 0.0030131237180266702 0.00044130097929745942 -0.010428138084841687 -0.010393442702345712 -0.010689169714296849 -0.01037286769158186 -0.010406000541759665 -0.010316939034225496\nleaf_weight=1.8226372823119152 1.7518084160983556 3.4701039940118816 30.866228220984343 8.3727386519312876 0.99024692550301896 5.3288342505693427 3.1602561250329009 1.0713425204157827 1.6477802880108354 2.0832664649933568 0.6674913577735414 0.86025246232748287 0.77842750400304783 0.94962017238140095 0.75241748616099613 1.0266283527016637 24.896314814686775\nleaf_count=9 23 34 960 75 21 35 18 18 19 35 4 23 22 17 22 28 837\ninternal_value=0 0.00579442 0.00902456 0.000164114 -0.00930591 0.00165683 0.0039505 -0.0034755 0.000447053 0.00980433 0.010253 -0.0103443 -0.0106846 -0.010542 -0.0103221 -0.0104727 -0.0103186\ninternal_weight=0 55.7716 35.4396 20.3319 34.7248 16.8618 11.533 5.24936 3.39959 33.617 31.5337 29.4755 1.84977 2.9665 26.509 2.01688 25.6487\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=280\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 12 12 0 0 4 0 0\nsplit_gain=48.1945 10.0737 3.94041 2.15954 2.10576 1.88443 2.46034 1.47241 1.21135 1.02684 0.656248 0.00125006 0.00110461 0.000293362 9.68821e-05 9.0048e-05 2.21506e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0052963890403670815 -0.0053734937556312833 -0.0070237331455996477 0.01046079630649847 0.006759101799713685 -0.010536105547847095 -0.0032780528223813679 -0.0036004708362419296 -0.010886701985149436 0.0065680476534198699 0.002988923226328895 0.00043695527109014208 -0.010423715480947409 -0.010389383809596196 -0.010681915100312149 -0.010369023800906896 -0.010401808071143548 -0.010313686141958779\nleaf_weight=1.8252314925193776 1.7441982589662068 3.4674663171172169 30.571814009919766 8.356245609000327 0.98091791942715945 5.3225833140313616 3.159230262041091 1.0615905579179523 1.6559802554547784 2.0791534986346951 0.66738748922943969 0.85205235518515365 0.77098160050809372 0.94080661237239827 0.74520559608936565 1.0168208330869672 24.656326266005635\nleaf_count=9 23 34 960 75 21 35 18 18 19 35 4 23 22 17 22 28 837\ninternal_value=0 0.00577012 0.00901002 0.000162701 -0.00929359 0.00164261 0.00391699 -0.00345194 0.000442365 0.00979375 0.0102466 -0.0103407 -0.0106775 -0.0105363 -0.0103188 -0.0104678 -0.0103153\ninternal_weight=0 55.4491 35.1436 20.3055 34.4249 16.8381 11.5155 5.23275 3.40018 33.3184 31.2392 29.1921 1.83257 2.93855 26.2536 1.99774 25.4015\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=281\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 1 12 3 3 4 0\nsplit_gain=47.6022 6.53059 5.09938 4.4617 2.04512 3.53531 1.65515 1.20863 2.45356 0.00452112 0.00129246 0.000582249 0.000135351 2.05957e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 0.96155453354879217 4.7089134508189288 0.61313736928646123 1.2351688403888856 0.37337168479852062 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 10 -5 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 -11 -12 12 13 -15\nleaf_value=-0.00019001090995870811 -0.011464035040564199 -0.010551205910342133 0.0074434312999450605 0.010622140940231894 0.0099211837039703127 -0.0051215763480667717 0.0040416267634594662 0.0060074074028728134 -0.0059791962660646503 0.011161338486673635 0.01032670134248726 -0.010444341847322161 -0.010365220624893532 -0.010311619317068412\nleaf_weight=4.6046947687864295 2.1802148558199432 1.10754372738302 1.9799220487475375 1.5612715110182822 2.4346232861280432 9.77200850099325 2.4693974368274203 2.8966436758637428 4.3622783310711384 0.68869199231266875 28.709078811109066 0.811376783996823 0.73806001991033809 24.941465439274907\nleaf_count=25 16 26 27 37 14 116 25 16 34 8 960 21 22 853\ninternal_value=0 -0.00733117 0.00727462 0.00899416 -0.00242684 -0.00108431 -0.00327313 0.000655473 -0.00178889 0.0103602 0.0103419 -0.0103266 -0.0103172 -0.0103132\ninternal_weight=0 44.4547 44.8026 35.5637 16.8562 14.676 12.2414 9.23884 6.3422 30.959 30.2704 27.5984 26.4909 25.6795\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 1005 997 922 896 875\nis_linear=0\nshrinkage=0.01\n\n\nTree=282\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 12 12 0 0 4 0 0\nsplit_gain=47.0567 9.91286 3.90124 2.12187 2.11518 1.84716 2.41368 1.46379 1.18674 1.03565 0.663557 0.00124125 0.00109562 0.000297 9.10945e-05 8.51898e-05 2.0824e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 0.99806827298187695 1.2471304352583659 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 6 -5 8 -2 10 -4 13 -9 15 -13 -6 -16\nright_child=4 3 9 5 11 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0052397110829983063 -0.005320299851195625 -0.006968512438906024 0.01045456021145285 0.0067181215515739615 -0.010527759556898369 -0.0032428589570860054 -0.0035515782611009968 -0.010880593047803162 0.0065155496023106864 0.002915474701611514 0.00035926232353374423 -0.010415004174350425 -0.010381351816798603 -0.010677330757507864 -0.010361457984152188 -0.010396220827726801 -0.010307283433987039\nleaf_weight=1.8272493556141842 1.7303690128028386 3.4551728069782284 30.008801918476824 8.3186893407255429 0.96715890616178812 5.304627612233161 3.1571317575871936 1.0498197786509988 1.659682512283325 2.0627680867910376 0.66552846133708854 0.83586657419801014 0.75623081624507893 0.9336225502192973 0.73098021745682018 1.0029195398092268 24.183009637519717\nleaf_count=9 23 34 960 75 21 35 18 18 19 35 4 23 22 17 22 28 837\ninternal_value=0 0.0057263 0.00898057 0.000167704 -0.00926992 0.00163708 0.00389281 -0.0033998 0.000474229 0.00977429 0.0102355 -0.0103344 -0.0106716 -0.0105304 -0.0103123 -0.0104608 -0.0103089\ninternal_weight=0 54.8 34.5643 20.2356 33.8497 16.7804 11.4758 5.1961 3.39005 32.7371 30.6743 28.6536 1.80605 2.9037 25.7499 1.97008 24.914\ninternal_count=2200 1170 1008 162 1030 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=283\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 12 4 12 12 0 0 4 0 0\nsplit_gain=46.4744 9.84469 3.86805 2.1185 2.08149 1.81301 2.37042 1.45186 1.16186 1.03808 0.663241 0.0012035 0.00106257 0.000287891 8.834e-05 8.25679e-05 2.01909e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 5.3969699652511318 0.43963968064395148 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 8 -2 10 -4 13 -9 15 -13 -5 -16\nright_child=3 4 9 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0051801773208606985 -0.0052898947079802342 -0.0069039551671972801 0.010450294341018669 -0.010522251725191048 0.0066639782208894015 -0.0032141584052596257 -0.0035171944021736134 -0.010871399648158376 0.0064191401898105026 0.0028918731230339763 0.00035571598423417375 -0.010410722171325628 -0.010377422272038979 -0.01067020868609039 -0.010357735090071771 -0.010392133621859596 -0.010304132452447774\nleaf_weight=1.8297540470957745 1.7229489162564271 3.4526195265352753 29.72227588668466 0.95803421735763838 8.3024956844747084 5.2985059134662142 3.1561209671199313 1.0402484480291603 1.6677225120365617 2.0588270388543597 0.66544351354241271 0.82788824103772896 0.74898829124867905 0.9249467160552739 0.72396565414965408 0.99332889541983604 23.949669172987342\nleaf_count=9 23 34 960 21 75 35 18 18 19 35 4 23 22 17 22 28 837\ninternal_value=0 0.00570199 0.00896592 -0.00925752 0.000166256 0.00162299 0.00385971 -0.00337658 0.000469266 0.00976366 0.0102292 -0.010331 -0.0106646 -0.0105249 -0.0103091 -0.010456 -0.0103057\ninternal_weight=0 54.486 34.2763 33.5577 20.2097 16.7571 11.4586 5.17991 3.39067 32.4465 30.3877 28.3778 1.78924 2.87631 25.5015 1.95136 24.6736\ninternal_count=2200 1170 1008 1030 162 128 93 82 42 999 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=284\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=45.8989 9.7768 3.83526 2.12175 2.04186 1.77948 2.32791 1.44002 1.04047 0.967552 0.662925 0.0011669 0.00103053 0.000279067 8.5669e-05 8.00279e-05 1.95776e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.43963968064395148 1.223894463963197 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0051214508014211513 -0.0049392036970412742 -0.0068398952360861224 0.01044606762585825 -0.010516803886139257 0.0066101867018517656 -0.003185684451719465 -0.0034831399255741378 -0.010862306794627359 0.0028684212652849757 0.0057443452942788137 0.00035220279492212051 -0.010406485765262805 -0.010373534586617531 -0.010663165879397888 -0.010354052256190516 -0.010388089858350538 -0.010301014862586097\nleaf_weight=1.8322157338261593 1.6760181114077561 3.4501186236739185 29.438381319865588 0.94899049215019038 8.2864390853792447 5.2924361750483504 3.1551133990287772 1.030755618587136 2.0549229998141518 1.7152450270950792 0.66535938531160255 0.81998261250555771 0.74181224778294552 0.91634514927864064 0.71701574884355324 0.98382601886987686 23.718506203964353\nleaf_count=9 24 34 960 21 75 35 18 18 35 18 4 23 22 17 22 28 837\ninternal_value=0 0.00567766 0.00895124 -0.00924509 0.000164819 0.00160901 0.00382686 -0.00335349 0.00975302 0.000464359 0.010223 -0.0103276 -0.0106578 -0.0105194 -0.0103059 -0.0104513 -0.0103026\ninternal_weight=0 54.175 33.9909 33.2685 20.1841 16.734 11.4416 5.16383 32.1587 3.39126 30.1037 28.1047 1.77257 2.84916 25.2555 1.93282 24.4355\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=285\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=45.3305 9.70922 3.80288 2.12464 2.00295 1.74655 2.28614 1.42822 1.04283 0.947678 0.66261 0.00113143 0.000999458 0.000270515 8.30797e-05 7.7567e-05 1.89833e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.43963968064395148 1.223894463963197 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0050635157122587357 -0.0049101345547128807 -0.0067763310508835899 0.010441880626957471 -0.010511415602147552 0.0065567457559138178 -0.003157436214188996 -0.0034494120550264164 -0.01085331318082767 0.0028451183142163402 0.0056634664943561817 0.00034872502100373812 -0.010402294785980067 -0.010369688169623017 -0.010656200727305701 -0.01035040894379022 -0.010384089310334542 -0.010297930099710988\nleaf_weight=1.8346351906657208 1.6691157892346375 3.4476692900061634 29.157093331217773 0.94002709351480296 8.2705184388905781 5.2864181622862807 3.1541091464459887 1.0213408172130582 2.0510557312518349 1.7223068699240682 0.66527607664465804 0.81214909069240349 0.73470214754343022 0.90781738236546505 0.71012995578348892 0.9744101595133543 23.489502081647515\nleaf_count=9 24 34 960 21 75 35 18 18 35 18 4 23 22 17 22 28 837\ninternal_value=0 0.00565333 0.00893652 -0.00923274 0.000163393 0.00159513 0.00379425 -0.00333075 0.00974236 0.000459584 0.0102167 -0.0103242 -0.010651 -0.010514 -0.0103028 -0.0104466 -0.0102995\ninternal_weight=0 53.8668 33.7081 32.9815 20.1587 16.711 11.4246 5.14747 31.8734 3.39142 29.8224 27.834 1.75604 2.82225 25.0118 1.91444 24.1996\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=286\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=44.7687 9.64192 3.7709 2.12747 1.96475 1.71421 2.24508 1.41651 1.04516 0.928255 0.662294 0.00109704 0.000969332 0.000262229 8.05674e-05 7.51827e-05 1.84058e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.43963968064395148 1.223894463963197 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0050063590473336458 -0.0048811351499003222 -0.0067132618955710989 0.010437731405420715 -0.010506086136802264 0.0065036538262294129 -0.0031294118393879163 -0.0034160074622812098 -0.01084441783022738 0.0028219643903334289 0.0055840897933923687 0.00034528063586192084 -0.010398148239850465 -0.010365882477322523 -0.010649312764604407 -0.01034680333512168 -0.010380131594982951 -0.010294878797853914\nleaf_weight=1.8370131477713574 1.6622763648629182 3.4452707096934345 28.878392396494753 0.93114341422915747 8.2547330893576163 5.2804513722658148 3.1531082652509204 1.0120035931468008 2.0472248867154113 1.7292858660221098 0.66519355028867622 0.80438710935414093 0.72765744850039471 0.89936286769807328 0.70330779626965778 0.96508060395717621 23.262636626139283\nleaf_count=9 24 34 960 21 75 35 18 18 35 18 4 23 22 17 22 28 837\ninternal_value=0 0.00562898 0.00892176 -0.00922037 0.000161977 0.00158136 0.00376188 -0.00330812 0.00973168 0.000454862 0.0102105 -0.0103209 -0.0106443 -0.0105087 -0.0102997 -0.010442 -0.0102964\ninternal_weight=0 53.5614 33.4278 32.6971 20.1336 16.6883 11.4078 5.13122 31.5908 3.39156 29.5436 27.5659 1.73966 2.79559 24.7703 1.89622 23.9659\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 964 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=287\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 1 12 3 3 4 0\nsplit_gain=44.222 6.41625 4.91515 4.47081 2.04553 3.38334 1.68268 1.23957 2.35997 0.00420681 0.00124664 0.00060933 9.98729e-05 1.76371e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 0.96155453354879217 4.7089134508189288 0.61313736928646123 1.2351688403888856 0.37470171316558165 1.180079175726781\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 10 -5 -3 -13 -14\nright_child=1 11 7 9 5 6 -8 -9 -10 -11 -12 12 13 -15\nleaf_value=-0.00030795185431837515 -0.011443524471638933 -0.010542866544569589 0.0073428304274412801 0.01060587878755846 0.0098349506587436623 -0.0050423281496188768 0.0042675436655574663 0.0060899020992216911 -0.0059406596527463917 0.011126140695361473 0.010309117865251058 -0.010405073504862413 -0.010336695660479001 -0.010292934216447319\nleaf_weight=4.5531287193298331 2.1542231403291252 1.0630596671253467 1.9339534416794757 1.4934072662144959 2.4034305661916724 9.6039636526256782 2.4332760460674754 2.8712246939539909 4.3363810293376446 0.67008388787507911 27.155527206137776 0.84817234240472572 0.95904575102031486 23.195319700986147\nleaf_count=25 16 26 27 37 14 116 25 16 34 8 960 24 31 841\ninternal_value=0 -0.00721395 0.00715509 0.00891121 -0.00235353 -0.000997502 -0.00316038 0.000648161 -0.00184365 0.0103429 0.0103246 -0.0103084 -0.0102984 -0.0102947\ninternal_weight=0 42.6605 43.0137 33.8721 16.5949 14.4407 12.0372 9.14156 6.27033 29.319 28.6489 26.0656 25.0025 24.1544\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 1005 997 922 896 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=288\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=43.709 9.48605 3.73314 2.13582 1.93077 1.68061 2.20274 1.40786 1.17891 1.16204 0.521859 0.00108977 0.000962111 0.000265546 7.57661e-05 7.11193e-05 1.73076e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0049522900007909817 -0.0051848055466951828 -0.0066607395925440431 0.010192494704069483 -0.010498258086268548 0.0064644495511006553 -0.0030958980376188366 -0.0033694996386690315 -0.010838898643915984 -0.0044031629721071538 0.0065462535211036421 0.0018790326168175212 -0.010389983331692103 -0.010358346777651392 -0.010645102570522267 -0.010339710549981658 -0.010374898847131966 -0.010288870347333905\nleaf_weight=1.8388582915067662 1.747014977037906 3.4332265891134766 29.685407610610135 0.91809375397861293 8.2182690296322125 5.2630031742155543 3.1511058770120135 1.0009173136204479 0.58064537867903609 1.6343158856034277 0.77478019893169303 0.78906730748713272 0.71369459107518185 0.89262623898684967 0.6898562796413924 0.9519269336014986 22.815221613273025\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 17 22 28 837\ninternal_value=0 0.00558517 0.00889184 -0.00919647 0.000166822 0.00157616 0.0037389 -0.00325766 0.00971197 0.000485227 0.00998103 -0.010315 -0.0106389 -0.0105032 -0.0102936 -0.0104355 -0.0102904\ninternal_weight=0 52.9453 32.8797 32.1527 20.0656 16.6324 11.3694 5.09594 31.0408 3.38133 30.4602 27.0568 1.71461 2.76265 24.2941 1.87002 23.5051\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=289\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=43.1658 9.41887 3.70161 2.13835 1.89392 1.64946 2.16314 1.3962 1.17117 1.13773 0.52258 0.00105668 0.00093313 0.000257419 7.34779e-05 6.89353e-05 1.67825e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.2177396959094298 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.00489662347336557 -0.0051553405433140157 -0.0065986144627258724 0.010185042240023879 -0.010493071768656966 0.0064119557923094234 -0.0030683621326141343 -0.0033368524183240269 -0.010830164157977091 -0.0043468836406227599 0.0064507137438377963 0.0018616972809175839 -0.010385968030317792 -0.010354661722671663 -0.01063833830244176 -0.01033621906682233 -0.010371039041680885 -0.010285913514978838\nleaf_weight=1.8411538004875172 1.7394679076969652 3.430906247347596 29.411429630592473 0.90940558910370162 8.2027735151350516 5.2571611367166033 3.1501214243471614 0.99175321310758568 0.58227312937378783 1.6418977081775663 0.77417762577533622 0.78151646070182579 0.70684340596199036 0.88430356793105591 0.68322165496647613 0.94280409254133701 22.594667186960578\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 17 22 28 837\ninternal_value=0 0.0055606 0.00887642 -0.00918404 0.000165373 0.00156251 0.00370693 -0.00323548 0.0097006 0.000480239 0.00997157 -0.0103118 -0.0106323 -0.010498 -0.0102906 -0.010431 -0.0102874\ninternal_weight=0 52.65 32.609 31.8759 20.041 16.6101 11.3529 5.07996 30.7679 3.38137 30.1856 26.7959 1.6986 2.73651 24.0594 1.85221 23.2779\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 49 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=290\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=42.6289 9.35198 3.67045 2.14081 1.85775 1.61887 2.12423 1.38463 1.16353 1.114 0.523285 0.00102461 0.000905026 0.000302244 7.12604e-05 7.06841e-05 1.62736e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0048416943119871424 -0.005125936642376012 -0.0065369788152381449 0.010177595527674855 -0.010487941476542384 0.0063598075361835085 -0.0030410459255892862 -0.0033045178620179183 -0.010821524537455288 -0.0042914886660433043 0.0063570569404243415 0.0018445105373938581 -0.01038199559636587 -0.010351015877635107 -0.010654230641499967 -0.010332764354281772 -0.010365742521667611 -0.010282987280840029\nleaf_weight=1.8434100225567807 1.7319892160594492 3.4286344833672073 29.139980318024762 0.90079505182802966 8.1874105799943226 5.2513692639768115 3.1491407118737689 0.98266508989036061 0.5838831439614286 1.6493884474039076 0.77358027547597785 0.77403482049703853 0.7000554520636797 0.81226122006773938 0.67664849385619419 0.99755663238465786 22.376179542392492\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00553603 0.00886096 -0.00917159 0.000163934 0.00154898 0.00367519 -0.00321341 0.00968921 0.000475306 0.0099621 -0.0103086 -0.0106258 -0.0104928 -0.0102876 -0.0104237 -0.0102844\ninternal_weight=0 52.3574 32.3409 31.6016 20.0166 16.5879 11.3366 5.0641 30.4974 3.38138 29.9136 26.5375 1.68272 2.71061 23.8269 1.89835 23.0528\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=291\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=42.0984 9.28539 3.63966 2.14321 1.82224 1.58884 2.08599 1.37315 1.15599 1.09082 0.523974 0.000993465 0.000877776 0.000292958 6.91079e-05 6.85154e-05 1.57794e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0047874881126965495 -0.0050965943535317623 -0.0064758305261952099 0.010170153674125364 -0.010482867329476097 0.0063080034102186633 -0.0030139475383183434 -0.0032724929083536355 -0.010812979141628589 -0.004236959159317673 0.0062652316579181336 0.0018274712259920454 -0.010378065396146306 -0.010347408678435633 -0.010647352730497533 -0.010329346551899751 -0.010361980241170209 -0.010280093447040976\nleaf_weight=1.8456278592348088 1.7245783694088488 3.426410578191283 28.871037591248758 0.89226152934134295 8.1721794996410626 5.2456272877752772 3.1481638550758353 0.97365241870284058 0.58547568693756957 1.6567892655730245 0.77298813685774703 0.76662179641425865 0.693330192938447 0.80469596758484829 0.67013629339635628 0.9879875872284174 22.159738520160317\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00551146 0.00884545 -0.0091591 0.000162507 0.00153554 0.00364369 -0.00319145 0.00967779 0.000470429 0.00995261 -0.0103054 -0.0106193 -0.0104877 -0.0102847 -0.0104193 -0.0102815\ninternal_weight=0 52.0675 32.0751 31.3298 19.9924 16.566 11.3203 5.04835 30.2295 3.38137 29.644 26.2814 1.66698 2.68495 23.5965 1.88025 22.8299\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=292\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=41.5741 9.21908 3.60923 2.14555 1.78739 1.55935 2.04841 1.36176 1.14854 1.06819 0.524646 0.000963291 0.000851352 0.000283962 6.70229e-05 6.64142e-05 1.53014e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0047339930102497938 -0.0050673144479264198 -0.0064151688974108546 0.010162716312217457 -0.010477847959914481 0.0062565422522693915 -0.0029870659631872714 -0.0032407745851036275 -0.010804526537964723 -0.0041832773236596382 0.0061751878077713138 0.0018105785609583216 -0.010374176956449186 -0.010343839836434379 -0.01064055104828265 -0.010325965040901089 -0.010358257507112206 -0.010277228543535797\nleaf_weight=1.8478078916668916 1.7172348350286513 3.4242335744202164 28.604579893872149 0.88380443677306464 8.157079307362439 5.2399348132312289 3.1471909619867793 0.96471477858722188 0.5870509073138227 1.6641014292836187 0.7724011167883863 0.75927684828639286 0.68666708283126354 0.79719581454992283 0.66368450038135307 0.97850672341883183 21.94532979093492\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00548688 0.0088299 -0.00914658 0.00016109 0.00152221 0.00361242 -0.0031696 0.00966635 0.000465606 0.00994312 -0.0103023 -0.010613 -0.0104826 -0.0102818 -0.010415 -0.0102787\ninternal_weight=0 51.7803 31.8118 31.0605 19.9684 16.5442 11.3043 5.03272 29.964 3.38134 29.377 26.0278 1.65138 2.65951 23.3683 1.86231 22.609\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=293\nnum_leaves=16\nnum_cat=0\nsplit_feature=1 12 0 3 0 12 0 2 0 1 10 1 3 4 3\nsplit_gain=41.0728 6.29659 4.73619 4.48984 2.04627 3.24162 1.69638 1.26942 2.34352 2.99736 0.00405623 0.00131946 0.000644032 8.25244e-05 1.66225e-05\nthreshold=1.0652111417665497 5.4588099803130126 1.0188919694060079 0.17408222448223767 1.0015624206341376 4.8980530291692244 1.2509949463117855 1.2396581529761168 1.0691005037898054 0.99689265265511573 2.5000000000000004 0.97125412324232763 1.2351688403888856 0.37470171316558165 1.2537081564319763\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=2 4 3 -1 -2 -6 -7 8 -4 -10 -5 -12 -3 -14 -15\nright_child=1 12 7 10 5 6 -8 -9 9 -11 11 -13 13 14 -16\nleaf_value=-0.0004401876754582787 -0.011427138690659229 -0.010537405933877112 -0.0094197311040546423 0.011181389460813302 0.0097531210610746627 -0.0049626064330197481 0.0044488713587085612 0.0061682140252172415 0.012454900079043438 -0.0055128865534665077 0.010292961441483171 0.010600881551417632 -0.010380613714071698 -0.010326650853006381 -0.010275839873807337\nleaf_weight=4.5004882514476767 2.1292604394257095 1.0205659754574323 2.483473062515257 0.54436007887125271 2.3727068603038779 9.4387851487845165 2.4026900082826605 2.8467434905469418 1.788037780672312 1.9311928562819956 25.764949319884185 1.4710691552609194 0.80058962665498512 0.66313586570322769 22.131367379799485\nleaf_count=25 16 26 21 6 14 116 25 16 24 16 965 34 24 23 849\ninternal_value=0 -0.00709666 0.00703326 0.0088256 -0.00228482 -0.000915313 -0.00305297 0.000639714 -0.0018976 0.00312521 0.0103267 0.0103096 -0.0102915 -0.0102808 -0.0102773\ninternal_weight=0 40.9591 41.3303 32.2809 16.3434 14.2142 11.8415 9.04945 6.2027 3.71923 27.7804 27.236 24.6157 23.5951 22.7945\ninternal_count=2200 1093 1107 1030 171 155 141 77 61 40 1005 999 922 896 872\nis_linear=0\nshrinkage=0.01\n\n\nTree=294\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=40.5877 9.06802 3.57239 2.15299 1.75514 1.52588 2.01224 1.35308 1.14728 1.0412 0.531569 0.000957266 0.00084546 0.000286711 6.30336e-05 6.2883e-05 1.43977e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0046820824135107532 -0.005007885602426875 -0.0063628920649888765 0.010151441647705236 -0.010470522764063492 0.0062180784187592297 -0.0029521447410679781 -0.0032049145253341144 -0.010799517664204498 -0.0042157078082134146 0.0061074418481097282 0.0017293539149929405 -0.010366519437737854 -0.010336763291896818 -0.010636589642169823 -0.010319323517497021 -0.010353343062555509 -0.010271589170910889\nleaf_weight=1.8495010361075426 1.702429175376895 3.412537373602393 28.092496907338507 0.87145165540278247 8.1187381129711884 5.2216137349605551 3.1437497958540908 0.95425694435834862 0.58524247258901496 1.6688309609889982 0.76995119079947372 0.74478177726269024 0.67344323545694351 0.79175369814038266 0.65098876692354934 0.96517493017017841 21.522491196170449\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00544329 0.008799 -0.00912235 0.000164798 0.00151616 0.0035878 -0.00312065 0.0096457 0.00049439 0.00992677 -0.0102968 -0.0106081 -0.0104775 -0.010276 -0.0104089 -0.010273\ninternal_weight=0 51.1938 31.2972 30.5456 19.8966 16.4841 11.2625 4.99896 29.4477 3.37126 28.8624 25.5466 1.6277 2.62838 22.9183 1.83663 22.1735\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=295\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=40.0812 9.00275 3.54266 2.15514 1.72154 1.49753 1.97595 1.34177 1.13987 1.01964 0.532149 0.000928211 0.000820023 0.000277914 6.11326e-05 6.09556e-05 1.39615e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0046299676278423133 -0.0049787987127349323 -0.0063031735635072587 0.010144002074889026 -0.010465636967442467 0.006167199102869894 -0.0029257587561561504 -0.0031738401074858725 -0.010791214089364745 -0.0041623912850982363 0.0060204602370608692 0.0017133063381828185 -0.010362753553600003 -0.010333306992387747 -0.010629907828680894 -0.01031604778526553 -0.010349712529669586 -0.010268813949233971\nleaf_weight=1.8516047969460512 1.6952872201800375 3.4104308523237732 27.833266975358136 0.86318132095039179 8.1039349455386418 5.2160458192229262 3.1427893079817286 0.94548524171113946 0.58680357038974662 1.675975941121578 0.76939408108591933 0.73763768561184662 0.66696425154805183 0.78436588495969761 0.64471494965255516 0.95590480230748653 21.314069040119648\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00541872 0.00878332 -0.00910972 0.000163358 0.00150297 0.00355694 -0.00309914 0.00963418 0.000489328 0.00991722 -0.0102937 -0.0106018 -0.0104726 -0.0102732 -0.0104047 -0.0102702\ninternal_weight=0 50.9143 31.0411 30.2836 19.8732 16.4628 11.2467 4.98371 29.1895 3.37126 28.6027 25.2999 1.61245 2.60345 22.6964 1.81909 21.9588\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=296\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=39.5806 8.93777 3.51327 2.15722 1.68856 1.46969 1.94029 1.33054 1.13255 0.998571 0.532713 0.000900047 0.000795356 0.000269391 5.9289e-05 5.90884e-05 1.35386e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0045785286462064765 -0.0049497768669244302 -0.0062439351893854725 0.01013656491084388 -0.01046080431374208 0.006116659310475607 -0.0028995849849519839 -0.0031430630969387901 -0.010783000509788887 -0.0041098981743551049 0.005935128688176361 0.0016973975481627333 -0.010359027214580221 -0.010329887279750727 -0.010623299861720552 -0.010312806674833625 -0.010346120340418815 -0.010266067767835469\nleaf_weight=1.8536729365587259 1.6882104091346293 3.4083693027496365 27.576438315212734 0.85498536936939051 8.0892599765211362 5.2105263099074355 3.1418330743908873 0.93678696081042268 0.58834775164723296 1.6830356977879999 0.76884185895323653 0.73055944778025406 0.6605453547090292 0.7770419381558894 0.63849952444434421 0.94672032445669174 21.10760610550642\nleaf_count=9 25 34 984 21 75 35 18 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00539414 0.00876758 -0.00909706 0.000161928 0.00148987 0.00352631 -0.00307773 0.00962262 0.000484322 0.00990766 -0.0102907 -0.0105956 -0.0104677 -0.0102704 -0.0104005 -0.0102674\ninternal_weight=0 50.6373 30.7873 30.024 19.85 16.4416 11.2311 4.96858 28.9336 3.37125 28.3453 25.0554 1.59733 2.57875 22.4767 1.80171 21.7461\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=297\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 1 0 4 0 12 12 0 0 4 0 0\nsplit_gain=39.086 8.87308 3.48422 2.15925 1.6562 1.44235 1.94654 1.3194 1.12532 0.977988 0.533262 0.000872745 0.000771436 0.000261131 5.75018e-05 5.72785e-05 1.3129e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.0556864082208974 1.2748487141050349 0.47071763047048615 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0045277521020138586 -0.0049208214966271107 -0.0061851754753664539 0.010129129506754091 -0.010456023634349648 0.0088536340053284469 -0.0028736219179852909 0.00025653373070570079 -0.010774875997176721 -0.0040582094542243024 0.005851402074772586 0.0016816267013334966 -0.010355340570885153 -0.010326503871950263 -0.010616764468301319 -0.010309600116194419 -0.01034256643066412 -0.010263350198624397\nleaf_weight=1.8557060286402727 1.6811981722712546 3.406351841986182 27.321990109980113 0.84686319530010512 4.2260153479874152 5.2050548344850531 6.9895780682563782 0.92816160805523373 0.58987520262598891 1.6900113672018049 0.76829452067613502 0.7235464751720454 0.65418602153658867 0.7697814255952834 0.63234198093414562 0.93762076273560524 20.903088010847569\nleaf_count=9 25 34 984 21 56 35 37 18 10 17 5 23 22 15 22 30 837\ninternal_value=0 0.00536956 0.00875181 -0.00908437 0.000160509 0.00147688 0.00349591 -0.00305643 0.00961104 0.000479371 0.00989808 -0.0102877 -0.0105895 -0.0104628 -0.0102677 -0.0103964 -0.0102647\ninternal_weight=0 50.3629 30.5359 29.7668 19.827 16.4206 11.2156 4.95356 28.6802 3.37121 28.0903 24.8132 1.58235 2.55427 22.259 1.78448 21.5354\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 989 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=298\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 3 2 2 1 13 1 2 4 3 12 2 13 12 4\nsplit_gain=38.6177 8.3959 3.45549 2.14671 1.88964 1.86706 4.56953 1.62342 1.68471 1.45379 1.51888 1.12082 1.04796 0.687653 0.617709 0.00192441 9.1351e-05 2.07915e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2351688403888856 1.2626160677949871 1.2750941039804975 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 4.6533632910829281 1.3237289957806808 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 9 -2 -7 -6 -9 10 -3 13 -11 -4 -8 -5 -17 -18\nright_child=3 4 11 15 7 6 14 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0044776274812206715 -0.0097113884986580815 0.0022455202724383817 0.010396189014753488 -0.010647670136267376 -0.011543251481334501 0.016586776051425497 -0.010871794599042707 0.0055831568662681732 -0.0069131590421894233 -0.0030829567885768219 0.013802188279321654 0.002289772404322802 0.0043966922042552739 4.8386522366735242e-05 -0.00054563356189331249 -0.010376209551438722 -0.010320733601872837 -0.010261404612642338\nleaf_weight=1.8577046766877199 3.027827043086293 2.8439338933676499 25.816906968131669 1.411192119121554 2.041272845119237 1.2341242879629137 1.5377677846699955 2.1389268189668655 2.1768068429082632 4.770985521376133 1.8950761295855043 1.9535442274063815 3.084079883992672 0.65858688950538535 0.92943795397877682 0.73835859633982437 0.60788335651159542 20.871747896075249\nleaf_count=9 30 47 960 29 14 10 30 12 47 30 20 35 19 4 19 22 21 842\ninternal_value=0 0.00546954 0.00873598 -0.00887052 0.00024926 -0.00388751 0.000876635 -0.0041953 -0.000719842 0.00249271 0.0068669 0.00959943 -0.000146274 0.0101388 -0.00698176 -0.0102896 -0.0102668 -0.0102631\ninternal_weight=0 49.2378 30.2867 30.3583 18.9511 6.72916 3.70133 6.35701 4.31573 12.5941 4.73901 28.429 7.85507 26.4755 2.46721 23.6292 22.218 21.4796\ninternal_count=2200 1197 1008 1003 189 89 59 73 59 116 67 999 49 964 49 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=299\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=38.1397 8.73013 3.42741 2.16038 1.61204 1.39148 1.92075 1.30483 1.12233 0.949381 0.687046 0.000824388 0.000745305 0.000246402 5.40943e-05 5.37898e-05 1.24219e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.43963968064395148 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0044281435730825457 -0.0048735456909897905 -0.00610983963005999 0.010392474256340621 -0.010446859606675114 0.006039613974371129 -0.002814968366945727 -0.0031889031864730682 -0.010764653958132855 0.0022703323131762977 0.0057457868136894762 4.7903626093232928e-05 -0.010348105894885534 -0.010320662647105468 -0.010604524811527998 -0.010303433279038082 -0.010335895573931502 -0.010258017933437866\nleaf_weight=1.8596696183085466 1.6696336828172236 3.393935393542054 25.569114958867438 0.83126938343048384 8.038970263674857 5.191330272704362 3.1347636431455603 0.91668269783258416 1.9505837019532908 1.6980944648385046 0.65857524797320266 0.70979431644082325 0.64348224177956581 0.75622969865798939 0.6204872746020581 0.92070753686130047 20.500801268965006\nleaf_count=9 25 34 960 21 75 35 18 18 35 17 4 23 22 15 22 30 837\ninternal_value=0 0.00532477 0.00872069 -0.00905946 0.000162255 0.00146302 0.00345058 -0.00302139 0.00958846 0.000480993 0.0101327 -0.010282 -0.0105815 -0.0104537 -0.0102622 -0.0103885 -0.0102594\ninternal_weight=0 49.7969 30.0379 29.2672 19.759 16.3651 11.1737 4.92789 28.1783 3.36773 26.2277 24.3393 1.56016 2.50821 21.8311 1.75198 21.1213\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 964 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=300\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 2 2 3 1 13 1 2 4 3 12 2 13 12 4\nsplit_gain=37.6949 8.25491 3.39964 2.14562 1.84775 4.438 1.82893 1.60243 1.65172 1.43781 1.50656 1.1238 1.02379 0.686442 0.616108 0.00184645 8.58634e-05 1.95521e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2626160677949871 1.2750941039804975 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 4.6533632910829281 1.3237289957806808 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 13 -11 -4 -7 -5 -17 -18\nright_child=3 6 11 15 5 14 7 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0043792903441028904 -0.0096752645300169412 0.0022329769491396217 0.010388793557113824 -0.010637588169632199 0.016277573235785433 -0.010860694930500061 -0.011448951626349187 0.0055507379392785985 -0.0068547500473538948 -0.0030661982934737388 0.013783712964076518 0.0022510305381802497 0.0043276940596737304 4.7425569452683413e-05 -0.0005073412737269399 -0.010368479965160495 -0.010314190269257593 -0.010256096139834662\nleaf_weight=1.8616014122962976 3.0043873563408878 2.8384505901485699 25.323621802032001 1.3880213014781499 1.2424808628857138 1.5166126582771542 2.0313153341412535 2.1407476291060448 2.1523483023047447 4.7630748003721237 1.8751637022942302 1.9476514067500819 3.0859882272779942 0.65856371819972892 0.92553126998245705 0.72424030862748878 0.59620908647775905 20.468986911699176\nleaf_count=9 30 47 960 29 10 30 14 12 47 30 20 35 19 4 19 22 21 842\ninternal_value=0 0.00542648 0.00870535 -0.00884405 -0.00385478 0.000891148 0.00025457 -0.00413122 -0.000668767 0.0024625 0.00682808 0.00957748 -0.000159168 0.0101267 -0.00693695 -0.0102839 -0.0102614 -0.0102577\ninternal_weight=0 48.6785 29.7914 29.8665 6.68901 3.68462 18.8871 6.32441 4.2931 12.5627 4.71361 27.9298 7.84906 25.9822 2.44214 23.1775 21.7894 21.0652\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 999 49 964 49 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=301\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 2 2 3 1 13 1 2 4 3 2 12 13 12 4\nsplit_gain=37.2204 8.19485 3.37219 2.14904 1.82426 4.33556 1.79603 1.57708 1.62314 1.41709 1.4957 1.12525 1.00271 0.720035 0.685841 0.00179127 8.32714e-05 1.89637e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2626160677949871 1.2750941039804975 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 14 -11 -7 -4 -5 -17 -18\nright_child=3 6 11 15 5 13 7 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0043310563004896278 -0.0096373395180670215 0.0022140126341816634 0.010385146493798158 -0.010631002127936584 0.016010573789465896 -0.010863392345581504 -0.011373681594493644 0.0054858448527333693 -0.006823269071702589 -0.0030351548980017918 0.013753729180928024 0.0022318649542586622 0.0042795500753185093 0.00059003528927915969 4.6952297702786529e-05 -0.010364692056325899 -0.010310973777260552 -0.010253482583244742\nleaf_weight=1.8635006472468401 2.9861397780478027 2.8341576885432023 25.080408511683352 1.3750573378056312 1.250528119504452 1.5894727092236283 2.024345912039279 2.1443919017910957 2.14071443118155 4.7636704817414284 1.8605325166136024 1.9447470493614663 3.0894801318645477 0.8384117055684327 0.65855228155851264 0.7172947339713599 0.59045990556478756 20.270455973222852\nleaf_count=9 30 47 960 29 10 31 14 12 47 30 20 35 19 18 4 22 21 842\ninternal_value=0 0.00540289 0.00868996 -0.00882958 -0.00383059 0.000883343 0.000252427 -0.00409974 -0.00066343 0.00244084 0.00678727 0.00956646 -0.000157503 -0.00690823 0.0101206 -0.0102811 -0.0102588 -0.0102551\ninternal_weight=0 48.4045 29.5472 29.6178 6.66455 3.67841 18.8573 6.30945 4.28511 12.5478 4.69469 27.6837 7.85315 2.42788 25.739 22.9533 21.5782 20.8609\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 999 49 49 964 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=302\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 3 0 0 4 0 12 12 0 0 4 0 0\nsplit_gain=36.7715 8.51614 3.34504 2.16005 1.55684 1.31825 1.9002 1.2874 1.12666 0.91438 0.685242 0.000759008 0.000718288 0.000226431 4.93686e-05 4.89363e-05 1.14721e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2351688403888856 1.1427926010382323 1.2748487141050349 0.43963968064395148 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 7 -3 6 -6 9 10 -2 -4 13 -9 15 -13 -5 -16\nright_child=3 4 8 11 5 -7 -8 12 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0042834320960956473 -0.0048091301860399621 -0.0060183001675010641 0.010381532627351435 -0.010433620456415394 0.0059736613695774796 -0.0027249013277230467 -0.0032197812666875155 -0.01075287935745972 0.0022128361799421438 0.0056248365216836705 4.6483186143836885e-05 -0.010337551420622117 -0.010312677806650225 -0.010587008111673681 -0.010294497353584399 -0.010326333081887181 -0.010250233398960515\nleaf_weight=1.8653679564595247 1.6538597270846396 3.3714195601642158 24.839454352855689 0.8086343966424494 7.9908088967204112 5.1695478297770014 3.1284385733306408 0.90273252874612786 1.9418703727424134 1.7065687775611875 0.65854097902774711 0.68968021497130649 0.62892367504537106 0.73674390837550152 0.60325938835740345 0.89645633660256863 19.911986785009503\nleaf_count=9 25 34 960 21 75 35 18 18 35 17 4 23 22 15 22 30 837\ninternal_value=0 0.00525868 0.00867453 -0.00902222 0.000167077 0.00144731 0.00338705 -0.00297364 0.00955541 0.000489683 0.0101146 -0.0102736 -0.0105721 -0.0104405 -0.0102543 -0.0103772 -0.0102515\ninternal_weight=0 48.9654 29.3052 28.5388 19.6602 16.2888 11.1192 4.89208 27.4399 3.36043 25.498 23.6468 1.53166 2.44183 21.2049 1.70509 20.5152\ninternal_count=2200 1170 1008 1030 162 128 93 82 999 42 964 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=303\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 2 2 3 1 13 1 2 4 3 2 12 13 12 4\nsplit_gain=36.3295 8.0565 3.31819 2.14753 1.80526 4.21189 1.73827 1.55671 1.59098 1.40157 1.4836 1.12804 0.979675 0.718601 0.684646 0.00171933 7.8274e-05 1.78343e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2626160677949871 1.2750941039804975 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 14 -11 -7 -4 -5 -17 -18\nright_child=3 6 11 15 5 13 7 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0042364070892141675 -0.0096013348497819614 0.0022019151597830644 0.010377951581619456 -0.010621259462088459 0.015718187489195887 -0.010853012675052379 -0.01128069040312899 0.005453622206906413 -0.006764701281738973 -0.0030187419185677029 0.013735842828713691 0.002193942821795445 0.0042125684913463766 0.00063108416387042175 4.6019368234731933e-05 -0.010357207317659205 -0.010304635293103246 -0.010248338566025155\nleaf_weight=1.8672039136290575 2.9631698131561306 2.8288215938955563 24.600740354508169 1.352491751313212 1.2584894075989725 1.5684219989925625 2.0145661346614352 2.1462011411786079 2.1168685350567102 4.7558293789625168 1.8410313148051498 1.9390211924910534 3.0911999717354774 0.83492526784539212 0.65852978825569053 0.70356375910341995 0.57910950668156402 19.87898775562644\nleaf_count=9 30 47 960 29 10 31 14 12 47 30 20 35 19 18 4 22 21 842\ninternal_value=0 0.00535981 0.00865905 -0.00880295 -0.0037984 0.000897358 0.000257581 -0.00403673 -0.000613505 0.00241132 0.00674902 0.00954434 -0.000170094 -0.00686343 0.0101086 -0.0102756 -0.0102535 -0.0102499\ninternal_weight=0 47.86 29.0655 29.1392 6.62501 3.66184 18.7945 6.27764 4.26307 12.5169 4.66985 27.1983 7.84703 2.40335 25.2593 22.5142 21.1617 20.4581\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 999 49 49 964 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=304\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 0 3 0 4 0 12 12 0 0 4 0 0\nsplit_gain=35.8785 8.37975 3.29164 2.16042 1.51522 1.27359 1.27106 1.87296 1.12939 0.888597 0.684052 0.000717374 0.00069498 0.000213765 4.64493e-05 4.59586e-05 1.08587e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2748487141050349 1.2351688403888856 1.1427926010382323 0.43963968064395148 1.2291974961588419 4.6533632910829281 5.4588099803130126 1.3317575338410668 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -3 9 7 -6 10 -2 -4 13 -7 15 -13 -5 -16\nright_child=3 4 8 11 6 12 -8 -9 -10 -11 -12 14 -14 -15 16 -17 -18\nleaf_value=-0.0041899717759500557 -0.0047632548466026107 -0.0059445537123903784 0.010374403847367535 -0.010424954946251992 0.0059167915419742201 -0.010743412675003547 -0.0026684500528755717 -0.0032193869027609379 0.0021751851408909869 0.0055295268514758697 4.5559656753299261e-05 -0.010330692651887258 -0.010307269908142212 -0.010575454256130134 -0.010288647560004178 -0.010320022814606809 -0.010245173256104707\nleaf_weight=1.8690090477466608 1.6428445614874392 3.3594270050525692 24.364246267825372 0.79374536499381354 7.9599512461572903 0.89182475395500638 5.156253293156623 3.1247296072542667 1.9361991975456465 1.7137048617005346 0.6585187055170526 0.6765530407428767 0.61890005879104137 0.72377938590943802 0.59194427542388695 0.88032339327037334 19.528323976323009\nleaf_count=9 25 34 960 21 75 18 35 18 35 17 4 23 22 15 22 30 837\ninternal_value=0 0.00521354 0.00864352 -0.00899704 0.000168781 -0.00293999 0.00143332 0.00334134 0.00953323 0.000491782 0.0101026 -0.0102681 -0.0105647 -0.0104319 -0.0102492 -0.0103698 -0.0102465\ninternal_weight=0 48.4283 28.828 28.0619 19.6004 4.86727 16.2409 11.0847 26.959 3.35655 25.0228 23.1947 1.51072 2.39785 20.7968 1.67407 20.1203\ninternal_count=2200 1170 1008 1030 162 82 128 93 999 42 964 948 40 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=305\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 2 2 3 1 13 1 2 4 3 2 12 13 12 4\nsplit_gain=35.4592 7.91998 3.26537 2.14576 1.78639 4.41984 1.68235 1.5366 1.55921 1.38622 1.47163 1.1307 0.957224 0.723524 0.683461 0.00165073 7.35787e-05 1.67725e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2626160677949871 1.2727767592850008 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 14 -11 -7 -4 -5 -17 -18\nright_child=3 6 11 15 5 13 7 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0041441164704705442 -0.0095654313485296696 0.0021900583878043337 0.010370888419970315 -0.010611728052741194 0.016450165080901139 -0.010833440895130782 -0.011188442454736538 0.0054211545769958036 -0.0067060453133193886 -0.0030023879101023416 0.013718235416904987 0.0021565620464069177 0.0041467608233993133 0.00067166377049078269 4.5105182801664379e-05 -0.010349881070331817 -0.01029842934704975 -0.010243301414342995\nleaf_weight=1.8707840368151689 2.9404790736734894 2.82357349060476 24.129954101517804 1.3303105887025619 1.2185579650104048 1.5953409168869259 2.0048973262310019 2.1480238884687424 2.0934350360184908 4.7480549886822701 1.8217808026820419 1.9334041289985169 3.0928098820149899 0.83149256743490685 0.65850774198770423 0.69008587673306721 0.56797045096755283 19.494882019236684\nleaf_count=9 30 47 960 29 9 32 14 12 47 30 20 35 19 18 4 22 21 842\ninternal_value=0 0.00531672 0.00862793 -0.00877622 -0.00376655 0.000910995 0.000262616 -0.00397441 -0.000564405 0.00238223 0.00671109 0.0095221 -0.000182424 -0.00689151 0.0100966 -0.0102702 -0.0102484 -0.0102449\ninternal_weight=0 47.3252 28.5927 28.6691 6.58587 3.64539 18.7326 6.24636 4.24146 12.4862 4.64535 26.7219 7.84086 2.42683 24.7885 22.0832 20.7529 20.0629\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 999 49 50 964 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=306\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 0 3 2 2 3 1 13 1 2 4 3 2 12 13 12 4\nsplit_gain=35.0117 7.86168 3.23939 2.14834 1.76345 4.31901 1.652 1.51221 1.53209 1.36609 1.46102 1.13199 0.937564 0.719535 0.682873 0.00160147 7.13601e-05 1.62685e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.31415341067031349 1.2471304352583659 1.2626160677949871 1.2727767592850008 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 0.43963968064395148 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 14 -11 -7 -4 -5 -17 -18\nright_child=3 6 11 15 5 13 7 8 -10 12 -12 -13 -14 -15 -16 16 17 -19\nleaf_value=-0.0040988320676330972 -0.0095276240111994322 0.0021713908725138425 0.010367405299541825 -0.010605423743175531 0.016187393278768513 -0.010824951565818895 -0.01111444330565136 0.0053580649551645291 -0.0066745408282575611 -0.0029719931529927123 0.013688791950651485 0.0021380733552530742 0.0041009063339861223 0.00066459421129924136 4.465436361240975e-05 -0.010346290380016601 -0.01029537915107046 -0.010240821568089338\nleaf_weight=1.8725292757153535 2.9227152094244984 2.8193904589861649 23.897843459621079 1.3178527988493467 1.225918170064688 1.5806994717568161 1.998097602277993 2.1515650823712349 2.0823388732969761 4.7486448511481285 1.8075138628482816 1.9306358154863108 3.0961016081273556 0.83193231001496304 0.65849688649177451 0.6834553331136729 0.56248482316732662 19.30555509403348\nleaf_count=9 30 47 960 29 9 32 14 12 47 30 20 35 19 18 4 22 21 842\ninternal_value=0 0.00529312 0.0086123 -0.00876181 -0.00374321 0.000903195 0.000260398 -0.00394387 -0.000559869 0.00236124 0.0066707 0.00951093 -0.000180518 -0.00686309 0.0100906 -0.0102675 -0.0102458 -0.0102424\ninternal_weight=0 47.0632 28.3595 28.4306 6.56127 3.63855 18.7037 6.232 4.2339 12.4717 4.6269 26.487 7.84475 2.41263 24.5563 21.8693 20.5515 19.868\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 999 49 50 964 914 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=307\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 0 3 0 4 0 12 0 12 0 4 0 0\nsplit_gain=34.5883 8.17208 3.2137 2.15917 1.46321 1.25446 1.20369 1.85313 1.13324 0.856023 0.682286 0.000667407 0.000661221 0.000196625 4.23997e-05 4.18147e-05 1.00355e-05\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2748487141050349 1.2351688403888856 1.1427926010382323 0.43963968064395148 1.2291974961588419 4.6533632910829281 1.3317575338410668 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -3 9 7 -6 10 -2 -4 -7 13 15 -14 -5 -16\nright_child=3 4 8 12 6 11 -8 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=-0.0040541099642332221 -0.0047028569656088863 -0.0058548387989878015 0.010363953894566267 -0.01041245014324628 0.0058525598040939601 -0.010731674169237693 -0.0025815495733350451 -0.0032496825028129053 0.0021197183210992167 0.0054111250046831715 4.4209067265869656e-05 -0.010299896483280748 -0.010320687723257624 -0.010558951587605503 -0.010280174923076946 -0.010310994446056612 -0.010237787798797375\nleaf_weight=1.8742453902959848 1.6281849108636408 3.3376107104122665 23.667895570397384 0.77215283177793315 7.9126149788498896 0.87633572891354539 5.1350333653390399 3.1181278713047504 1.9278939217329014 1.7217790931463239 0.65848612785339256 0.60523131117224693 0.6573571097105767 0.70516395941376675 0.57550761476159351 0.85722526907920837 18.966828914359212\nleaf_count=9 25 34 960 21 75 18 35 18 35 17 4 22 23 15 22 30 837\ninternal_value=0 0.00514758 0.00859662 -0.00895946 0.000173232 -0.00289323 0.0014178 0.00327957 0.00949974 0.000495421 0.0100846 -0.0105553 -0.0102601 -0.0104194 -0.0102417 -0.0103591 -0.010239\ninternal_weight=0 47.6319 28.1285 27.3658 19.5034 4.83153 16.1658 11.0307 26.2543 3.34996 24.3264 1.48157 22.5342 2.33454 20.1997 1.62938 19.5423\ninternal_count=2200 1170 1008 1030 162 82 128 93 999 42 964 40 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=308\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 3 1 13 1 2 3 2 12 13 4 12 4\nsplit_gain=34.1721 7.7277 3.18899 2.14576 1.7448 4.19452 1.5988 1.49267 1.50115 1.35119 1.44925 0.916166 0.718056 0.51239 0.00153812 0.000746477 6.70826e-05 1.53005e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2727767592850008 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 -11 -7 15 -5 -4 -16 -18\nright_child=3 6 13 14 5 12 7 8 -10 11 -12 -13 -14 -15 16 -17 17 -19\nleaf_value=0.00044054354206276002 -0.009491822166550647 0.0021599620388349818 0.010252677643092819 -0.010596211636085222 0.015890451866184933 -0.010815100284323517 -0.011023447289464496 0.0053258074568748124 -0.0066157369082154496 -0.0029559785630701263 0.013671719136237475 0.0040370081362398735 0.00070480718362690503 0.0022094751721527762 -0.010339195280531626 0.010611665571050713 -0.01028936707285783 -0.010235940648632511\nleaf_weight=4.1044760197401073 2.9004804491996792 2.8142821248620766 22.382227983325727 1.2962533812969947 1.2335418574512007 1.5595135837793352 1.9886079244315613 2.1533752381801605 2.0594916101545095 4.7409384250640869 1.7886659912765024 3.0975342616438866 0.82854448072612275 0.81834911927580734 0.67034868337214248 0.59462612681090732 0.5516558419913079 18.932248320430517\nleaf_count=24 30 47 964 29 9 32 14 12 47 30 20 19 18 6 22 14 21 842\ninternal_value=0 0.00525003 0.00858089 -0.0087351 -0.00371226 0.000916503 0.000265282 -0.00388261 -0.000511906 0.00233282 0.00663333 -0.000192556 -0.00681823 0.00998503 -0.0102623 0.010262 -0.0102408 -0.0102375\ninternal_weight=0 46.5426 27.8997 27.9726 6.52208 3.6216 18.6429 6.20147 4.21287 12.4414 4.60295 7.83847 2.38806 23.7952 21.4505 22.9769 20.1543 19.4839\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 49 50 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=309\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 3 0 3 0 4 0 12 0 12 0 4 0 0\nsplit_gain=33.7453 8.03851 3.18537 2.15896 1.424 1.23965 1.16034 1.82662 1.14095 0.831605 0.683724 0.000644308 0.00062531 0.00018572 3.98963e-05 3.92726e-05 9.50215e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.99806827298187695 1.2748487141050349 1.2351688403888856 1.1427926010382323 0.43963968064395148 1.2291974961588419 4.6533632910829281 1.3317575338410668 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -3 9 7 -6 10 -2 -4 -7 13 15 -14 -5 -16\nright_child=3 4 8 12 6 11 -8 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=-0.0040199528353472829 -0.0046588902558569187 -0.0057826684537107941 0.010359105101945241 -0.010404253767621085 0.0057969472411527933 -0.010722216236192366 -0.0025272384784005026 -0.0032488566366190609 0.0020515486766383741 0.0053163663568695394 2.1699541554882248e-05 -0.010294801740227993 -0.010314184519657687 -0.010548041009931911 -0.010274625430220589 -0.010305023641511004 -0.010232987137166286\nleaf_weight=1.8751368820667291 1.6177700385451346 3.3260343708097961 23.227587923407562 0.75793884135783007 7.8823614567518252 0.8646939694881437 5.1221674419939509 3.1142888106405735 1.9147179275751103 1.7288605831563471 0.65794308483600517 0.59564253874123096 0.64482865668833511 0.69276398234069336 0.56470897048712032 0.84183697961270809 18.600971724838018\nleaf_count=9 25 34 960 21 75 18 35 18 35 17 4 22 23 15 22 30 837\ninternal_value=0 0.00510224 0.00856434 -0.008934 0.000174723 -0.00286027 0.001404 0.00323514 0.00947896 0.000494301 0.0100744 -0.0105479 -0.0102549 -0.0104113 -0.0102368 -0.010352 -0.0102342\ninternal_weight=0 47.1202 27.6754 26.91 19.4449 4.80697 16.1188 10.9967 25.8002 3.34663 23.8855 1.46034 22.103 2.29254 19.8105 1.59978 19.1657\ninternal_count=2200 1170 1008 1030 162 82 128 93 999 42 964 40 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=310\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 3 1 13 1 2 3 2 12 13 4 12 4\nsplit_gain=33.3511 7.59436 3.18556 2.14295 1.72628 4.07418 1.54729 1.47338 1.47059 1.33646 1.4376 0.895312 0.716546 0.513732 0.00147769 0.00072806 6.30647e-05 1.43904e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2727767592850008 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 -11 -7 15 -5 -4 -16 -18\nright_child=3 6 13 14 5 12 7 8 -10 11 -12 -13 -14 -15 16 -17 17 -19\nleaf_value=0.00041104985328429709 -0.0094561094528278263 0.002148758539388191 0.010247675654943625 -0.010587197899916283 0.015602153405564995 -0.010805439144814971 -0.01093316356082475 0.0052933308231151912 -0.0065568513438236465 -0.0029400214870790226 0.013654890412576679 0.0039742248036392985 0.00074456575158290126 0.0021861082115482754 -0.010332250508089794 0.010604243062828292 -0.010283479996336676 -0.010231160447998216\nleaf_weight=4.0933537036180523 2.8785157464444664 2.8092563506215829 21.952161002904184 1.2750231027603174 1.2409554496407511 1.5386289935559037 1.9792291708290566 2.1551973894238472 2.0370396133512259 4.7332979217171669 1.7700623646378515 3.0988637879490852 0.82520816847681988 0.8172677680850019 0.65748453326523559 0.58798126317560573 0.54102916829288261 18.565981635823846\nleaf_count=24 30 47 964 29 9 32 14 12 47 30 20 19 18 6 22 14 21 842\ninternal_value=0 0.00520665 0.0085485 -0.00870828 -0.00368163 0.00092944 0.000270053 -0.00382205 -0.000464762 0.0023048 0.00659627 -0.000204339 -0.00677337 0.00997458 -0.0102572 0.010257 -0.010236 -0.0102326\ninternal_weight=0 46.0337 27.4508 27.5228 6.48331 3.60479 18.5829 6.17147 4.19224 12.4115 4.57932 7.83216 2.36384 23.3574 21.0395 22.5401 19.7645 19.107\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 49 50 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=311\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 3 13 1 2 3 2 12 12 13 4 12 4\nsplit_gain=32.928 7.53662 3.17958 2.14514 1.70399 4.40055 1.5193 1.46024 1.3169 1.42722 0.876962 0.721569 0.515245 0.00276944 0.00143363 0.000706606 6.11644e-05 1.39581e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.2351688403888856 0.81992547120608383 1.0383879925828392 1.1647891567840487 1.1748853893285929 1.3291597159154738 4.6533632910829281 5.2570557121369346 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 8 -8 9 -3 -10 -7 15 -9 -5 -4 -16 -18\nright_child=3 6 12 14 5 11 7 13 10 -11 -12 -13 -14 -15 16 -17 17 -19\nleaf_value=0.00040700658614664556 -0.0094184051355571067 0.002130379407752102 0.010245160131647403 -0.010581159560043777 0.01667350831957148 -0.010792950380353583 -0.0003837019426432579 -0.011145302009609101 -0.002910260496502743 0.013625942620468788 0.003930525417928211 0.00073668694154376923 0.0021663935716844523 -0.01040393625838496 -0.010328845788315544 0.010598095105941533 -0.010280586196135201 -0.010228807462182131\nleaf_weight=4.0926815792918232 2.8612255752086666 2.805178280919792 21.739043705165393 1.2630531769245887 1.1879570819437506 1.58437323756516 4.1327514722943297 0.94338285177946124 4.7338821738958359 1.7561543043702839 3.101967915892601 0.8256907183676957 0.8164619542658319 1.0815638191998003 0.65115594863891857 0.58246676623821159 0.53579585626721637 18.385454628616571\nleaf_count=24 30 47 964 29 8 33 24 15 30 20 19 18 6 34 22 14 21 842\ninternal_value=0 0.00518277 0.00853184 -0.00869371 -0.00365872 0.000921514 0.000267764 -0.00379242 0.00228446 0.00655628 -0.000202207 -0.00684288 0.00996897 -0.0107493 -0.0102546 0.0102544 -0.0102336 -0.0102303\ninternal_weight=0 45.7855 27.2307 27.2947 6.45925 3.59802 18.5549 6.1577 12.3972 4.56133 7.83585 2.41006 23.138 2.02495 20.8355 22.3215 19.5724 18.9213\ninternal_count=2200 1197 1008 1003 89 59 189 73 116 67 49 51 984 49 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=312\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 3 12 12 3 0 2 12 4 12 0 4 0 0\nsplit_gain=32.5174 7.83931 3.17355 2.1571 1.37383 1.22595 3.89083 1.10256 1.80766 0.702256 0.516743 0.00068578 0.000573355 0.000170299 3.63959e-05 3.5717e-05 8.72993e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.99806827298187695 5.3611511359867654 5.4117715327450009 1.2351688403888856 1.1427926010382323 1.3223943938464113 4.6533632910829281 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -3 -2 -7 8 -6 -8 11 -4 13 15 -14 -5 -16\nright_child=3 4 10 12 7 6 9 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00040300258680889294 -0.01083357041644765 -0.0056947567854360968 0.010242670595595917 -0.010392050352433378 0.0057347901963892799 0.016287389286700892 -0.010839567133051462 -0.0024540249968050872 -0.003278596231226501 0.00059355047357304166 0.0021468407782582952 0.010592009974106489 -0.010304651101162745 -0.010531822201112723 -0.010266447547549832 -0.010296076083112527 -0.010225960590483307\nleaf_weight=4.0920159965753582 1.3618993014097238 3.3049031533300903 21.527941102162011 0.73672545142472079 7.8358938731253165 1.0606195479631426 1.5164290610700848 5.1008717194199553 3.1074263751506805 0.83199470676481713 0.81566315889358421 0.57700074464082618 0.6264111995697047 0.67419619485735882 0.54875261522829788 0.81863450258970261 18.064532298594713\nleaf_count=24 21 34 964 21 75 11 32 35 18 18 6 14 23 15 22 30 837\ninternal_value=0 0.00503489 0.00851511 -0.00889568 0.000176283 -0.00281351 0.000390467 0.00138564 0.00317538 -0.00678907 0.00996336 0.0102518 -0.0102473 -0.0103991 -0.0102297 -0.0103415 -0.0102272\ninternal_weight=0 46.3617 27.0126 26.2402 19.3491 4.77094 3.40904 16.0442 10.9433 2.34842 22.9206 22.1049 21.4693 2.22956 19.2397 1.55536 18.6133\ninternal_count=2200 1170 1008 1030 162 82 61 128 93 50 984 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=313\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 3 1 13 1 2 3 2 12 13 4 12 4\nsplit_gain=32.1394 7.40176 3.16747 2.14108 1.68256 4.28379 1.46902 1.46149 1.42522 1.30324 1.41577 0.854371 0.71791 0.518226 0.00137775 0.000665572 5.75035e-05 1.31289e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.2351688403888856 1.0383879925828392 0.78123321994831596 1.0383879925828392 1.1647891567840487 1.1748853893285929 1.3291597159154738 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 10 -3 -11 -7 15 -5 -4 -16 -18\nright_child=3 6 13 14 5 12 7 8 -10 11 -12 -13 -14 -15 16 -17 17 -19\nleaf_value=0.00039903691753881822 -0.0093812463273573541 0.0021195860613503177 0.010240206308841433 -0.010572442084908986 0.016395444653730575 -0.010783907423533896 -0.010836534612571516 0.0052648648573583937 -0.0064577604607987098 -0.0028927704266625614 0.01360960024103966 0.0038601561315125188 0.0007441791256755549 0.0021274477650123644 -0.010322119258026006 0.010585988995880589 -0.010274883320310799 -0.010224174884108454\nleaf_weight=4.0913568809628513 2.8384392410516766 2.8002848513424414 21.318837841972716 1.2423784229904438 1.1937065422534945 1.5641836393624546 1.9663253463804711 2.1567942425608635 1.9978076256811617 4.7253929674625397 1.7379436753690241 3.1043681688606739 0.82518305629491795 0.81487134099006553 0.63864774443209427 0.57158278673887153 0.52546592056751507 18.029513515532017\nleaf_count=24 30 47 964 29 8 33 14 12 47 30 20 19 18 6 22 14 21 842\ninternal_value=0 0.00514014 0.00849831 -0.00866699 -0.00363009 0.000925859 0.000273015 -0.00373379 -0.000372149 0.00225599 0.00651976 -0.000215349 -0.00680261 0.00995775 -0.0102497 0.0102492 -0.0102288 -0.0102256\ninternal_weight=0 45.2856 26.7966 26.8575 6.42151 3.58307 18.4889 6.12093 4.1546 12.368 4.53823 7.82976 2.38937 22.7053 20.436 21.8904 19.1936 18.555\ninternal_count=2200 1197 1008 1003 89 59 189 73 59 116 67 49 51 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=314\nnum_leaves=19\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 3 13 1 2 3 2 12 12 13 4 12 4\nsplit_gain=31.7314 7.34501 3.16135 2.1425 1.66066 4.18825 1.4424 1.44601 1.28409 1.40554 0.836883 0.743728 0.519694 0.00261486 0.00133671 0.000645957 5.57721e-05 1.27346e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.2351688403888856 0.81992547120608383 1.0383879925828392 1.1647891567840487 1.1748853893285929 1.333833474242947 4.6533632910829281 5.2570557121369346 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 8 -8 9 -3 -10 -7 15 -9 -5 -4 -16 -18\nright_child=3 6 12 14 5 11 7 13 10 -11 -12 -13 -14 -15 16 -17 17 -19\nleaf_value=0.00039511021001680609 -0.0093436156879483298 0.0021014128485151344 0.01023776837041708 -0.010566562669804738 0.016145650314175246 -0.010767930857948138 -0.0003361477804045522 -0.011121359279566218 -0.0028634905620559853 0.013580972337286635 0.0038178630609849093 0.0010656225884278767 0.002108214463885589 -0.010392757309853555 -0.010318821506098723 0.010580030751584238 -0.010272079207543645 -0.010221894538627079\nleaf_weight=4.090704113245013 2.8214574418962028 2.7962771337479371 21.111713025718934 1.2306975312531019 1.200020916759968 1.5737857501953842 4.1287917122244826 0.92452138103544701 4.7259712517261505 1.7242597211152313 3.1073547787964344 0.80164142698049534 0.8140864223241796 1.0542628578841684 0.63249415531754749 0.56621253117918868 0.52037875726819294 17.854078182950616\nleaf_count=24 30 47 964 29 8 34 24 15 30 20 19 17 6 34 22 14 21 842\ninternal_value=0 0.00511625 0.00848145 -0.00865261 -0.00360794 0.000918192 0.000270695 -0.00370466 0.00223606 0.00648004 -0.000213105 -0.00677443 0.00995214 -0.0107332 -0.0102472 0.0102467 -0.0102265 -0.0102233\ninternal_weight=0 45.0442 26.5827 26.6346 6.39691 3.57545 18.4614 6.10758 12.3539 4.52054 7.83333 2.37543 22.492 1.97878 20.2376 21.6779 19.007 18.3745\ninternal_count=2200 1197 1008 1003 89 59 189 73 116 67 49 51 984 49 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=315\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 3 12 12 0 4 2 12 4 12 0 4 0 0\nsplit_gain=31.3321 7.64242 3.15518 2.15417 1.32539 1.21236 3.77329 1.08287 3.13515 0.738676 0.521148 0.000626921 0.000525878 0.000156197 3.32053e-05 3.24852e-05 8.02203e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.99806827298187695 5.3611511359867654 5.4117715327450009 1.1427926010382323 0.36143795571949838 1.3291597159154738 4.6533632910829281 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -3 -2 -7 8 -6 -8 11 -4 13 15 -14 -5 -16\nright_child=3 4 10 12 7 6 9 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00039122118319159609 -0.010820030149698423 -0.0056079361849874837 0.010235354997811698 -0.010380243092895607 -0.0060993476370295252 0.015940008391340996 -0.010830481783697546 -0.0030643165064769568 0.0058327428018233119 0.0010409980829638014 0.0020891392179582776 0.010574134083661868 -0.01029541680648355 -0.010516131750446453 -0.010258523299708505 -0.010287415249294661 -0.010219151764241078\nleaf_weight=4.0900577604770687 1.3404482267797018 3.2842073440551784 20.906551500782378 0.71609972231090357 2.9204938616603604 1.0710873119533064 1.523980610072613 4.0985422357916823 8.9512908384203893 0.79889741912484158 0.81330838426947494 0.56088965013623138 0.60850580036640423 0.65611812844872464 0.53324100561440246 0.79608846083283424 17.543232042342424\nleaf_count=24 21 34 964 21 29 11 33 26 73 17 6 14 23 15 22 30 837\ninternal_value=0 0.00496734 0.00846452 -0.00885735 0.000177652 -0.00276789 0.000412305 0.00136743 0.00289741 -0.00674757 0.00994652 0.0102442 -0.0102399 -0.0103873 -0.0102228 -0.0103314 -0.0102203\ninternal_weight=0 45.6253 26.3708 25.5877 19.2545 4.73441 3.39397 15.9703 11.8718 2.32288 22.2807 21.4674 20.8533 2.16831 18.685 1.51219 18.0765\ninternal_count=2200 1170 1008 1030 162 82 61 128 102 50 984 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=316\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 2 3 3 2 2 12 13 4 12 4\nsplit_gain=30.9604 7.21913 3.14897 2.13909 1.6383 4.07824 1.42724 1.40147 2.6269 0.804234 0.739409 0.522586 0.00127672 0.000608449 5.24364e-05 1.19782e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.1555240255680828 1.0853483183990196 1.2351688403888856 1.1113771532620189 1.333833474242947 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 9 -8 -9 -3 -7 13 -5 -4 -14 -16\nright_child=3 6 11 12 5 10 7 8 -10 -11 -12 -13 14 -15 15 -17\nleaf_value=0.00038736989511029034 -0.0093034076988355759 0.00079116933493700629 0.010232966202407967 -0.01055713228028411 0.0158824971514329 -0.010759357804389717 -0.010519692554370238 0.0045776591217483757 -0.0052620042736539431 0.0081240880768945999 0.0010662611829921288 0.0020702205407593997 -0.010312306386947381 0.010568299166626749 -0.010266553230508589 -0.010217405246816936\nleaf_weight=4.0894175916910198 2.7980882320553091 3.1434202957898405 20.703334815800197 1.2098839227110172 1.2053224109113219 1.5534668825566771 1.5612373761832703 5.3777949009090644 5.4759036414325237 2.8532099239528179 0.80154509097337712 0.81253717094659705 0.62033278122544544 0.55561376921832462 0.51033783145249145 17.508185846731067\nleaf_count=24 30 38 964 29 8 34 13 39 68 31 17 6 22 14 21 842\ninternal_value=0 0.00507132 0.00844752 -0.00862533 -0.0035776 0.000922352 0.000274091 -0.00166092 -0.000386644 0.00428019 -0.00673442 0.00994091 -0.0102423 0.0102417 -0.0102219 -0.0102188\ninternal_weight=0 44.5725 26.1609 26.2072 6.35842 3.56033 18.4116 12.4149 10.8537 5.99663 2.35501 22.0715 19.8487 21.2589 18.6389 18.0185\ninternal_count=2200 1197 1008 1003 89 59 189 120 107 69 51 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=317\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 0 4 12 12 4 12 0 4 0 0\nsplit_gain=30.5738 7.51155 3.14271 2.15012 1.55133 1.36026 1.2871 1.06083 3.07273 0.52401 0.00178504 0.000590517 0.000500939 0.000148492 3.12586e-05 3.04781e-05 7.61528e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 8 -8 11 -7 -4 13 15 -14 -5 -16\nright_child=3 6 9 12 5 10 7 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00038355594998566836 0.0082639064269463165 -0.0055309341234783095 0.010230602836331478 -0.01037304198014501 0.0016730653391415177 -0.010949593613623415 -0.0060415651914696288 -0.0030353757120289838 0.005780431046699658 0.0020514580660519017 -0.010380361753351202 0.010562524606964075 -0.010289456981373995 -0.010506957382396124 -0.010253463855571174 -0.010282331556864609 -0.010214740642967599\nleaf_weight=4.0887837335467365 1.0069277975708271 3.2721811272203949 20.502045180648572 0.70328636653721621 1.4855590723454954 1.2059335783123972 2.9164557978510848 4.091748282313346 8.93200935423374 0.81177271157503028 1.0142067838460205 0.55038455128669639 0.59691366180777805 0.64512556977570046 0.52330640517175453 0.78254877217113972 17.204571740701795\nleaf_count=24 15 34 964 21 17 17 29 26 73 6 33 14 23 15 22 30 837\ninternal_value=0 0.00492165 0.00843045 -0.00883225 -0.00274278 -0.00573357 0.000181794 0.00135449 0.00287049 0.00993528 -0.0106896 0.0102393 -0.0102352 -0.0103803 -0.0102183 -0.0103253 -0.0102159\ninternal_weight=0 45.1654 25.953 25.1684 4.71263 3.7057 19.2124 15.9402 11.8485 21.8642 2.22014 21.0524 20.4558 2.13096 18.3248 1.48584 17.7279\ninternal_count=2200 1170 1008 1030 82 67 162 128 102 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=318\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 3 13 2 2 2 3 3 2 12 12 3 4 3 0 0\nsplit_gain=30.1923 7.1038 3.1364 2.13907 2.63129 3.72732 1.40568 1.36378 2.57106 0.787579 0.52542 0.211553 0.00284336 0.000573116 2.76137e-05 1.6544e-05 9.70221e-06\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.0614732751417961 1.2626160677949871 1.2719010105634743 1.1555240255680828 1.0853483183990196 1.2351688403888856 1.1113771532620189 4.6533632910829281 4.9554982271603158 1.2351688403888856 0.45701416357615993 1.2640297647729313 1.3090382536679732 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 11 -6 9 -8 -9 -3 13 -2 -5 -4 15 -14 -16\nright_child=3 6 10 12 5 -7 7 8 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00037977929634144743 -0.012454880062824209 0.00080372876340937128 0.010228263840367537 -0.010715830825177849 0.017572839706134002 -0.0055750343790742195 -0.010384038107212817 0.0045195312392751884 -0.0052255615881840458 0.0080664110289085066 0.002032851052188824 -0.007422405370517457 -0.010308446211428277 0.010556810472402523 -0.010255838677008187 -0.010224217415393928 -0.010213297619209853\nleaf_weight=4.0881559401750591 1.4203200936317473 3.144035596400502 20.302664682269103 1.2221545372158313 1.1354681029915812 1.7957726418972013 1.5617504380643357 5.3758227303624135 5.4540179390460253 2.8435927648097277 0.81101496890187164 2.0281045679003 0.51479047536850231 0.54520160332322021 0.55390631034970539 0.42630725167691708 16.686432065442204\nleaf_count=24 13 38 964 29 10 33 13 39 68 31 6 37 20 14 23 20 818\ninternal_value=0 0.00502334 0.00841331 -0.00859734 -0.00357408 0.00339171 0.000274394 -0.001648 -0.000388197 0.00425286 0.00992966 -0.00949516 -0.0102489 0.0102369 -0.0102175 -0.0102703 -0.0102147\ninternal_weight=0 44.1263 25.747 25.7833 6.37967 2.93124 18.3792 12.3916 10.8298 5.98763 21.6589 3.44842 19.4036 20.8479 18.1814 0.941098 17.2403\ninternal_count=2200 1197 1008 1003 93 43 189 120 107 69 984 50 910 978 881 40 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=319\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 4 1 4 3 0 4 12 12 12 0 4 0 0\nsplit_gain=29.832 7.38161 3.1307 2.15223 1.51833 1.33699 1.32871 1.24893 1.03877 3.01224 0.4997 0.00169866 0.000485167 0.000142493 2.99826e-05 2.92124e-05 7.22334e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.47212922992160583 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 10 -3 9 -9 -4 -7 13 15 -14 -5 -16\nright_child=3 7 6 12 5 11 -8 8 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=-0.0040603448145684297 0.0081377359354764082 -0.0054533598019164175 0.010008520675721309 -0.010367357147518349 0.0016077072055137357 -0.010932656030266209 -0.0067064719038305957 -0.0059848276677662337 -0.0030059099587854579 0.0057287173344534436 0.0020143971985672844 -0.010372566138643518 -0.010284249508895192 -0.01049949560438267 -0.010248500375892066 -0.010277885777319742 -0.01021042950152494\nleaf_weight=1.8699704781174684 1.0125645939260746 3.25939863175154 22.360247926786549 0.69307913258672049 1.4907687380909922 1.1884881779551508 0.50255836732685466 2.9129838272929183 4.0852448642253867 8.9119631387293321 0.81026391685008903 0.99468276649713505 0.58649145253002899 0.63626649975776661 0.51353888586163776 0.77072539739310741 16.872882176190615\nleaf_count=9 15 34 984 21 17 17 9 29 26 73 6 33 23 15 22 30 837\ninternal_value=0 0.0048762 0.00839611 -0.00880613 -0.00270437 -0.00569253 0.00938006 0.000186016 0.00134131 0.00284318 0.00972897 -0.0106775 -0.0102307 -0.0103746 -0.0102139 -0.0103202 -0.0102116\ninternal_weight=0 44.7126 25.543 24.7595 4.6865 3.67394 23.6731 19.1696 15.9102 11.8249 23.1705 2.18317 20.073 2.10007 17.9729 1.4638 17.3864\ninternal_count=2200 1170 1008 1030 82 67 999 162 128 102 990 50 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=320\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 12 13 4 12 12 4 12 0 4 0 0\nsplit_gain=29.4495 7.32755 3.13319 2.15346 1.48922 1.32742 1.22457 1.02065 1.264 0.890982 0.528232 0.00164659 0.000550282 0.00047053 0.000138155 2.90829e-05 2.83242e-05 7.00612e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 4.8980530291692244 0.72919686804582806 0.39394749199373341 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 9 -9 -8 12 -7 -4 14 16 -15 -5 -17\nright_child=3 6 10 13 5 11 7 8 -10 -11 -12 -13 -14 15 -16 17 -18 -19\nleaf_value=0.00034871338838987365 0.0080076908713825976 -0.005401110991142293 0.010223769440410384 -0.01036357778371761 0.0015897928875753808 -0.010922807436477095 0.0015242031021025426 -0.0044889190285205098 0.0026894683879728379 0.0094116725634329473 0.0019960964865931153 -0.010368773104911079 0.010547484006740533 -0.010281349544519945 -0.010494311615239867 -0.010245968556781813 -0.010275049714736993 -0.010208291165426493\nleaf_weight=4.076997525990012 1.0186875201761747 3.2580267228186157 19.914530361071236 0.68643185310066035 1.4924835450947287 1.1777181476354601 3.7177865933626881 4.5937568508088571 5.2637058719992638 2.3295585084706545 0.8095194548368444 0.98514395207166661 0.53934511728584666 0.58081871643662708 0.63024514727294434 0.50855410471558826 0.76326611451804638 16.708475487306714\nleaf_count=24 15 34 964 21 17 17 41 25 34 28 6 33 14 23 15 22 30 837\ninternal_value=0 0.00485039 0.00837903 -0.00879227 -0.00268476 -0.00566458 0.000184227 0.00132836 -0.000655791 0.00456261 0.00991874 -0.0106705 0.0102323 -0.0102284 -0.0103707 -0.0102118 -0.010317 -0.0102094\ninternal_weight=0 44.5032 25.3404 24.5518 4.67403 3.65535 19.1628 15.9048 9.85746 6.04735 21.2634 2.16286 20.4539 19.8778 2.07994 17.7978 1.4497 17.217\ninternal_count=2200 1170 1008 1030 82 67 162 128 59 69 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=321\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 2 3 3 2 2 12 13 4 12 4\nsplit_gain=29.0763 6.92896 3.12661 2.14506 1.6084 3.87679 1.37954 1.32767 2.51261 0.772773 0.76612 0.529598 0.00118564 0.000534055 4.66327e-05 1.04059e-05\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.1555240255680828 1.0853483183990196 1.2351688403888856 1.3345228717909889 1.1113771532620189 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 10 -8 -9 -7 -3 13 -5 -4 -14 -16\nright_child=3 6 11 12 5 9 7 8 -10 -11 -12 -13 14 -15 15 -17\nleaf_value=0.00034527480093400468 -0.0092083451235687834 0.00082307184425322439 0.010221500560663271 -0.010540000589616612 0.015488908551547807 -0.010730037176750884 -0.01025507563946282 0.0044628644890331425 -0.0051882476893655681 0.0015759333782450814 0.0079957037214348527 0.0019779475761060082 -0.010298088141212127 0.010541922048193599 -0.01025350761608808 -0.010206589850689755\nleaf_weight=4.0764285698533085 2.7442265823483494 3.1427568104118135 19.720730911940343 1.1669003460556293 1.2110882177948954 1.5295797549188139 1.5600005239248265 5.3698937557637674 5.4205739293247461 0.76576575636863697 2.8302150461822748 0.80878160148858924 0.59340492822230118 0.53425886109471221 0.48651490919292228 16.672381801530719\nleaf_count=24 30 38 964 29 8 35 13 39 68 16 31 6 22 14 21 842\ninternal_value=0 0.00495299 0.0083617 -0.00855323 -0.00347435 0.00101322 0.000276159 -0.00163201 -0.000385356 -0.00662456 0.00422173 0.0099131 -0.0102312 0.01023 -0.0102109 -0.0102079\ninternal_weight=0 43.4636 25.1402 25.1699 6.25066 3.50643 18.3234 12.3505 10.7905 2.29535 5.97297 21.0638 18.9192 20.255 17.7523 17.1589\ninternal_count=2200 1197 1008 1003 89 59 189 120 107 51 69 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=322\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 0 4 12 12 4 12 0 4 0 0\nsplit_gain=28.7367 7.19784 3.11999 2.14955 1.45966 1.30699 1.18937 1.0145 2.94196 0.530949 0.00159296 0.000518299 0.000448307 0.000131364 2.738e-05 2.65729e-05 6.65256e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 8 -8 11 -7 -4 13 15 -14 -5 -16\nright_child=3 6 9 12 5 10 7 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00034186931200235778 0.0078836387208500794 -0.0053265182152463873 0.0102192567937759 -0.010356716475603121 0.0015246476157363715 -0.010913495113498902 -0.0059289561981330334 -0.0029825207817586854 0.0056618169220427365 0.0019599493773751198 -0.010364672768178399 0.01053641745341736 -0.010275682807719479 -0.010485566237808564 -0.010241166228061822 -0.010270210025807051 -0.010204104387876835\nleaf_weight=4.0758650228381184 1.0240681320428873 3.2463499382138279 19.528773052617915 0.67414285615086844 1.4978270381689074 1.1611886993050577 2.9064379725605241 4.0778648890554896 8.8817019630223495 0.8080502487719049 0.97118046693503846 0.52921784110367198 0.56974071450531738 0.61968053132295597 0.49907390400767582 0.75029905140399933 16.38561007194221\nleaf_count=24 15 34 964 21 17 17 29 26 73 6 33 14 23 15 22 30 837\ninternal_value=0 0.00480596 0.0083443 -0.00876639 -0.00266026 -0.00563466 0.000188379 0.00131678 0.00280404 0.00990745 -0.0106635 0.0102276 -0.0102239 -0.010364 -0.0102075 -0.0103112 -0.0102052\ninternal_weight=0 44.0543 24.9419 24.1528 4.65426 3.6302 19.1124 15.866 11.7881 20.866 2.13237 20.058 19.4985 2.04412 17.4544 1.42444 16.8847\ninternal_count=2200 1170 1008 1030 82 67 162 128 102 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=323\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 12 13 4 12 12 4 12 0 4 0 0\nsplit_gain=28.3673 7.14422 3.11332 2.15061 1.43187 1.29769 1.16615 0.99562 1.24257 0.876743 0.532285 0.00154426 0.000503015 0.000434781 0.000127369 2.65571e-05 2.57657e-05 6.45182e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 4.8980530291692244 0.72919686804582806 0.39394749199373341 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 9 -9 -8 12 -7 -4 14 16 -15 -5 -17\nright_child=3 6 10 13 5 11 7 8 -10 -11 -12 -13 -14 15 -16 17 -18 -19\nleaf_value=0.00033849730401077862 0.0077593772276601004 -0.0052753568392800475 0.010217034608732498 -0.010353050081802363 0.0015077530510468912 -0.010903879093208439 0.001498499140567538 -0.004460870590787043 0.0026619278399377701 0.0093489656242759529 0.0019421003980190476 -0.010360963363530002 0.010530970446231878 -0.01027287207248738 -0.010480533129521607 -0.010238710659231534 -0.010267454078401633 -0.010202033670133068\nleaf_weight=4.0753070116043117 1.0300330054014946 3.2450617849826839 19.338641675189145 0.66767020896077445 1.4994557499885561 1.1506434567272665 3.7104195561259976 4.5835970789194089 5.2594747096300125 2.3071816377341747 0.80732537060975929 0.96185957826673973 0.52422168478369613 0.56422524526715534 0.61380775831639756 0.49422594346106308 0.74303184077143669 16.225847804918885\nleaf_count=24 15 34 964 21 17 17 41 25 34 28 6 33 14 23 15 22 30 837\ninternal_value=0 0.00478016 0.00832683 -0.00875239 -0.0026409 -0.00560678 0.000186566 0.00130406 -0.000654927 0.00450841 0.0099018 -0.0106567 0.0102253 -0.0102216 -0.0103603 -0.0102054 -0.010308 -0.0102031\ninternal_weight=0 43.8512 24.7455 23.9508 4.64199 3.61196 19.1057 15.8607 9.84307 6.0176 20.6702 2.1125 19.8629 19.3088 2.02451 17.2843 1.4107 16.7201\ninternal_count=2200 1170 1008 1030 82 67 162 128 59 69 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=324\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 0 4 12 12 4 12 0 4 0 0\nsplit_gain=28.0044 7.08874 3.10661 2.1516 1.4047 1.28847 1.14353 0.99148 2.87365 0.533607 0.00149707 0.000488179 0.000421676 0.000123498 2.57609e-05 2.49831e-05 6.25786e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 8 -8 11 -7 -4 13 15 -14 -5 -16\nright_child=3 6 9 12 5 10 7 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00033515816939434903 0.0076378615143940076 -0.0052246371787369218 0.010214835896861648 -0.010349422508219889 0.0014910647444142707 -0.010894369873462333 -0.0058665932117013854 -0.002959547429205608 0.0055922370573174016 0.0019244007721454718 -0.010357292560824974 0.010525579686297058 -0.010270091129405854 -0.010475554395041402 -0.01023628056888092 -0.01026472700714804 -0.010199982289674281\nleaf_weight=4.0747544765472439 1.0359264314174677 3.2438048459589508 19.150320313870914 0.66125730983913233 1.5010674782097342 1.1401837021112444 2.9057903550565234 4.0744445137679568 8.8663089685142022 0.80660691112279792 0.95262473262846459 0.51927007548510928 0.55876162275672214 0.60798764787614334 0.48942389152944343 0.73583301156759262 16.067611457780004\nleaf_count=24 15 34 964 21 17 17 29 26 73 6 33 14 23 15 22 30 837\ninternal_value=0 0.00475536 0.00830929 -0.00873833 -0.00262166 -0.00557894 0.000184868 0.0012922 0.00276377 0.00989614 -0.0106499 0.010223 -0.0102194 -0.0103566 -0.0102033 -0.0103048 -0.0102011\ninternal_weight=0 43.6413 24.551 23.7507 4.6298 3.59388 19.0903 15.8465 11.7721 20.4762 2.09281 19.6696 19.1209 2.00508 17.1158 1.39709 16.557\ninternal_count=2200 1170 1008 1030 82 67 162 128 102 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=325\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 2 3 3 2 2 12 13 4 12 4\nsplit_gain=27.6577 6.69738 3.09986 2.14357 1.59638 3.75593 1.35864 1.28623 2.44958 0.764085 0.740847 0.534915 0.00111613 0.000473783 4.12116e-05 9.2064e-06\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.1555240255680828 1.0853483183990196 1.2351688403888856 1.3345228717909889 1.1113771532620189 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 10 -8 -9 -7 -3 13 -5 -4 -14 -16\nright_child=3 6 11 12 5 9 7 8 -10 -11 -12 -13 14 -15 15 -17\nleaf_value=0.00033185144609296024 -0.0091552293732549903 0.00086144229224105679 0.010212659267034206 -0.01052679964527423 0.015269588880278464 -0.010714610500302158 -0.010114158500303689 0.0043965775356256346 -0.0051543611533615957 0.0015924868495469802 0.0079236945294550807 0.001906848980091827 -0.010286036446671023 0.010520245019068586 -0.0102433289611832 -0.010198327483755499\nleaf_weight=4.07420735806227 2.710041573271158 3.1428377013653543 18.963791124522693 1.1315659284591699 1.2138948030769827 1.4908070284873249 1.5565048847347487 5.3611757699400169 5.3802431952208281 0.76247266680002201 2.8166036643087864 0.80589484423398872 0.570730315521362 0.5143626481294622 0.46787483617663639 16.031533196568489\nleaf_count=24 30 38 964 29 8 35 13 39 68 16 31 6 22 14 21 842\ninternal_value=0 0.00485954 0.00829167 -0.00849522 -0.00340519 0.00108921 0.000280525 -0.00161845 -0.000387369 -0.00655009 0.00419927 0.00989047 -0.0102227 0.0102208 -0.0102025 -0.0101996\ninternal_weight=0 42.6156 24.3583 24.3789 6.17722 3.46717 18.2574 12.2979 10.7414 2.25328 5.95944 20.284 18.2017 19.4782 17.0701 16.4994\ninternal_count=2200 1197 1008 1003 89 59 189 120 107 51 69 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=326\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 0 4 12 12 4 12 0 4 0 0\nsplit_gain=27.3235 6.96349 3.09305 2.14711 1.37714 1.26871 1.11045 0.971499 2.81686 0.536208 0.00144982 0.000459809 0.000401832 0.000117443 2.42534e-05 2.34381e-05 5.94304e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 8 -8 11 -7 -4 13 15 -14 -5 -16\nright_child=3 6 9 12 5 10 7 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00032857689803090216 0.007521761637289355 -0.0051519737065121567 0.010210505795763089 -0.010342845793903184 0.0014279260438191924 -0.01088569727100014 -0.0058111639991875299 -0.0029316040904031359 0.0055428080818744688 0.0018894433322579102 -0.010353398867100154 0.010514965524147633 -0.010264657195943723 -0.01046717062923899 -0.010231674877233501 -0.010260084496332448 -0.010195966452615217\nleaf_weight=4.0736655071377781 1.041050855070355 3.2323557026684311 18.779039273038514 0.64940913394093758 1.5062557645142081 1.1241836063563826 2.9017628002911797 4.0677847452461711 8.8473037201911193 0.80518909171223541 0.93915538862347592 0.50949905812740226 0.54809325933456676 0.5977852065116166 0.48029408976435917 0.72333508171141148 15.756887091323732\nleaf_count=24 15 34 964 21 17 17 29 26 73 6 33 14 23 15 22 30 837\ninternal_value=0 0.0047102 0.00827399 -0.00871214 -0.00259825 -0.00554969 0.000188887 0.00128035 0.00273862 0.00988479 -0.0106434 0.0102185 -0.0102151 -0.0103502 -0.0101992 -0.0102992 -0.010197\ninternal_weight=0 43.2166 24.1674 23.3664 4.61065 3.56959 19.0492 15.8169 11.7491 20.0937 2.06334 19.2885 18.7558 1.97053 16.7853 1.37274 16.2372\ninternal_count=2200 1170 1008 1030 82 67 162 128 102 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=327\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 12 13 4 12 12 4 12 0 4 0 0\nsplit_gain=26.9712 6.91075 3.08621 2.14794 1.35117 1.25974 1.08875 0.971571 1.21692 0.854461 0.537487 0.00140564 0.000446248 0.000389721 0.000113876 2.35257e-05 2.27266e-05 5.76395e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 4.8980530291692244 0.72919686804582806 0.39394749199373341 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 9 -9 -8 12 -7 -4 14 16 -15 -5 -17\nright_child=3 6 10 13 5 11 7 8 -10 -11 -12 -13 -14 15 -16 17 -18 -19\nleaf_value=0.00032533381074073108 0.0074054958179211152 -0.0051023227618134182 0.010208374220971768 -0.010339326151045655 0.0014122064307542847 -0.010876408344311583 0.0014800500085559779 -0.0044386904966002587 0.0026158971153140082 0.0092615807270832323 0.0018721835058436668 -0.010349808151866131 0.010509740936633854 -0.01026196174661226 -0.010462335737071614 -0.010229317670278848 -0.010257434481610893 -0.010193979144412595\nleaf_weight=4.0731290280818966 1.046792179346087 3.231177598237994 18.596046755090363 0.64316516742110497 1.5077842548489573 1.1139436028897765 3.703453702852129 4.5724622979760152 5.2559360638260841 2.2797659672796726 0.804489616304635 0.93013160675764073 0.50467896461486716 0.54278145916760223 0.59210926666855801 0.47562410682440059 0.71632186882197857 15.603129977360366\nleaf_count=24 15 34 964 21 17 17 41 25 34 28 6 33 14 23 15 22 30 837\ninternal_value=0 0.00468451 0.00825623 -0.00869794 -0.00257925 -0.00552192 0.000187066 0.00126798 -0.000666106 0.00444502 0.0098791 -0.0106368 0.0102163 -0.0102129 -0.0103466 -0.0101972 -0.0102962 -0.010195\ninternal_weight=0 43.0211 23.9783 23.1718 4.59865 3.55186 19.0428 15.8116 9.8284 5.98322 19.9052 2.04408 19.1007 18.5731 1.9516 16.6215 1.35949 16.0788\ninternal_count=2200 1170 1008 1030 82 67 162 128 59 69 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=328\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 1 3 3 2 2 2 3 3 2 2 12 13 4 12 4\nsplit_gain=26.6318 6.52819 3.07931 2.14385 1.58145 3.65321 1.33353 1.25262 2.39489 0.75677 0.720812 0.538752 0.00106729 0.000433087 3.75706e-05 8.39925e-06\nthreshold=1.1660877220710828 0.95282455020400814 0.17408222448223767 1.2471304352583659 1.2626160677949871 1.2719010105634743 1.1555240255680828 1.0853483183990196 1.2351688403888856 1.3345228717909889 1.1113771532620189 4.6533632910829281 0.97735317110040087 0.45701416357615993 5.4588099803130126 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 10 -8 -9 -7 -3 13 -5 -4 -14 -16\nright_child=3 6 11 12 5 9 7 8 -10 -11 -12 -13 14 -15 15 -17\nleaf_value=0.00032212279606249277 -0.0091049271819810939 0.0008792302112467865 0.010206264568801788 -0.010517276951612253 0.015059391228810861 -0.010702623951741614 -0.0099901884603979963 0.0043426231463754858 -0.005117810004398286 0.0015974562025777503 0.0078545731919697093 0.0018550680426098018 -0.010277331979079459 0.010504570097969144 -0.010235971301331392 -0.010192352931641368\nleaf_weight=4.0725976750254658 2.6829011384397772 3.1414923239499357 18.414798807352788 1.1056646537035728 1.2176909111440184 1.461068192496896 1.554755201563238 5.3552608303725702 5.3481829669326544 0.76060083881020535 2.8035675175487995 0.80379636585712333 0.55428385920822876 0.49990204721689124 0.45435566641390579 15.566786024719475\nleaf_count=24 30 38 964 29 8 35 13 39 68 16 31 6 22 14 21 842\ninternal_value=0 0.0047896 0.0082384 -0.0084505 -0.00335042 0.00113842 0.000282121 -0.0016028 -0.000384465 -0.00649162 0.00416866 0.0098734 -0.0102165 0.0102141 -0.0101964 -0.0101936\ninternal_weight=0 41.9944 23.7911 23.8034 6.12226 3.43936 18.2033 12.2582 10.7034 2.22167 5.94506 19.7185 17.6811 18.9147 16.5754 16.0211\ninternal_count=2200 1197 1008 1003 89 59 189 120 107 51 69 984 914 978 885 863\nis_linear=0\nshrinkage=0.01\n\n\nTree=329\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 3 3 4 1 3 0 4 12 12 4 12 0 4 0 0\nsplit_gain=26.3166 6.78541 3.07238 2.14302 1.32485 1.24051 1.05736 0.948897 2.75142 0.540002 0.0013626 0.000420312 0.00037145 0.000108308 2.21506e-05 2.13205e-05 5.47512e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.17408222448223767 1.2471304352583659 0.41045367798222937 1.1954219695798878 0.99806827298187695 1.1427926010382323 0.36143795571949838 4.6533632910829281 5.4588099803130126 0.45701416357615993 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 4 -2 -6 -3 8 -8 11 -7 -4 13 15 -14 -5 -16\nright_child=3 6 9 12 5 10 7 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=0.00031894282350620985 0.0072941976358560758 -0.005031028694162029 0.010204177219464244 -0.010332954585341933 0.0013506696936768745 -0.010868231257865141 -0.0057569175515361105 -0.0029085481805293939 0.00547855602470587 0.0018380966059033147 -0.010346069330782599 0.010499452940454368 -0.010256696360123937 -0.010454211092097999 -0.010224853841357628 -0.010252934500597289 -0.010190085793438962\nleaf_weight=4.0720716044306782 1.0517474263906503 3.2199118323624161 18.235280424356468 0.63163718022406345 1.5128442719578745 1.0983261726796629 2.8952458444982758 4.060451950877904 8.8176265861839038 0.8031093180179586 0.91701254621148098 0.49516793712973495 0.5324108880013253 0.58216983638703812 0.46674853377044101 0.70416255667805672 15.301223017275332\nleaf_count=24 15 34 964 21 17 17 29 26 73 6 33 14 23 15 22 30 837\ninternal_value=0 0.00464051 0.0082205 -0.00867152 -0.00255666 -0.00549319 0.000191157 0.0012572 0.00270132 0.0098677 -0.0106306 0.010212 -0.0102087 -0.0103404 -0.0101933 -0.0102908 -0.0101911\ninternal_weight=0 42.5989 23.6056 22.7983 4.57993 3.52818 18.9932 15.7733 11.7129 19.5336 2.01534 18.7304 18.2184 1.91797 16.3004 1.3358 15.768\ninternal_count=2200 1170 1008 1030 82 67 162 128 102 984 50 978 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=330\nnum_leaves=18\nnum_cat=0\nsplit_feature=13 1 0 3 4 4 1 1 1 3 12 12 12 0 4 0 0\nsplit_gain=25.9766 6.73339 3.06617 2.14368 1.38401 1.30002 1.23179 1.04642 1.01131 1.17493 0.511107 0.00132118 0.000360265 0.000105022 2.14866e-05 2.0674e-05 5.31044e-06\nthreshold=0.85162615880101311 0.95282455020400814 0.31415341067031349 1.2471304352583659 0.47212922992160583 0.41045367798222937 1.1954219695798878 1.1732074739105893 1.1368346020835252 1.2505460188215014 4.6533632910829281 5.4588099803130126 5.4588099803130126 1.223894463963197 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 10 -2 -7 8 9 -3 -4 -8 13 15 -14 -5 -16\nright_child=3 7 4 12 -6 6 11 -9 -10 -11 -12 -13 14 -15 16 -17 -18\nleaf_value=-0.0040997042938213961 0.0071828652988224079 0.0017295238697125578 0.0099585787977330507 -0.010329539928946394 -0.0075331486125360496 0.0013358783002468345 -0.010859152390509308 -0.0052015656796256431 0.0073514271971122811 -0.0053684619524523806 0.0018212671740356675 -0.010342556186555441 -0.010254083832144703 -0.010449516285953742 -0.010222567790895509 -0.010250359024406224 -0.010188158779310608\nleaf_weight=1.8646622151136423 1.0573404412716652 10.679982874542477 20.275368364527829 0.62555798329413181 0.47947040759026904 1.5142918862402441 1.0883021913468836 3.0267043933272353 2.2966949269175521 2.9835722334682933 0.80242839083075423 0.90819496288895596 0.52724693715572613 0.5766348186880349 0.462207131087779 0.69733030907809734 15.151823772117494\nleaf_count=9 15 102 984 21 9 17 17 27 13 20 6 33 23 15 22 30 837\ninternal_value=0 0.00461491 0.00820252 -0.00865716 0.00926664 -0.0025379 -0.00546549 0.000189313 0.00121164 0.000179609 0.00964879 -0.0106242 -0.0102066 -0.0103369 -0.0101913 -0.0102878 -0.0101892\ninternal_weight=0 42.4089 23.4219 22.6089 21.5573 4.56813 3.51079 18.987 15.9603 13.6636 21.0778 1.9965 18.0408 1.89952 16.1413 1.32289 15.614\ninternal_count=2200 1170 1008 1030 999 82 67 162 135 122 990 50 948 66 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=331\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 0 1 3 4 2 0 1 2 3 12 12 0 3 4 0 0\nsplit_gain=25.6425 6.69541 4.78765 3.78644 2.14429 1.27572 1.26956 1.24499 1.22314 0.324681 0.0267084 0.00128104 0.000349421 0.000101836 2.91257e-05 2.08426e-05 2.00471e-05 5.15085e-06\nthreshold=0.85162615880101311 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.41045367798222937 1.1555240255680828 0.31415341067031349 1.1954219695798878 1.1348528270257934 0.17408222448223767 5.4588099803130126 5.4588099803130126 1.223894463963197 0.61313736928646123 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 7 -3 9 5 -2 -5 -1 -7 -4 -9 -10 13 16 -12 -14 -6 -17\nright_child=4 2 3 6 12 8 -8 10 11 -11 14 -13 15 -15 -16 17 -18 -19\nleaf_value=0.0004203754468035795 0.0070738744584292234 -0.014130138869367568 0.011050319279752221 0.0039241259662101055 -0.010326161149925881 0.001321263525234464 -0.0017076069311903997 0.011649231555148134 -0.010850174177341305 0.0060431779257352257 0.010257056422138196 -0.010339079402946198 -0.010251498103888271 -0.010444871457711811 0.010189972790440189 -0.010220305297199327 -0.010247810415006827 -0.010186251155719979\nleaf_weight=1.3836011663079286 1.0628669504076267 1.8496935218572641 4.0742617323994663 6.1323504038155106 0.61953520216048008 1.5157244540750983 11.526937102898954 1.3848540112376202 1.07836053147912 1.8984559103846548 0.68036223948001762 0.89945912733674038 0.52213173732161422 0.57114981114864338 13.281058225780724 0.45770888589322467 0.69056260026991367 15.003855401650069\nleaf_count=7 15 11 181 65 21 17 83 12 17 47 31 33 23 15 733 22 30 837\ninternal_value=0 0.00459033 0.00136328 0.00257597 -0.00864275 -0.00251925 0.000248064 0.00950553 -0.00543783 0.00945878 0.0103246 -0.0106177 -0.0102045 -0.0103334 0.0101932 -0.0101894 -0.0102849 -0.0101873\ninternal_weight=0 42.2116 25.4817 23.632 22.4214 4.55641 17.6593 16.7299 3.49354 5.97272 15.3463 1.97782 17.8649 1.88125 13.9614 15.9837 1.3101 15.4616\ninternal_count=2200 1170 387 376 1030 82 148 783 67 228 776 50 948 66 764 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=332\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 0 1 3 12 12 2 0 2 2 3 12 0 3 4 0 0\nsplit_gain=25.315 6.65322 4.69676 3.74976 2.14482 1.25228 3.45577 1.24542 1.24403 0.789837 0.326073 0.0258757 0.000338901 9.87474e-05 2.82639e-05 2.02178e-05 1.94396e-05 4.99586e-06\nthreshold=0.85162615880101311 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 5.3611511359867654 5.4117715327450009 1.1555240255680828 0.31415341067031349 1.3345228717909889 1.1348528270257934 0.17408222448223767 5.4588099803130126 1.223894463963197 0.61313736928646123 0.37470171316558165 1.1344652928718959 1.1612342597359919\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 8 -3 10 5 -2 -7 -5 -1 -8 -4 -10 13 16 -13 -14 -6 -17\nright_child=4 2 3 7 12 6 9 -9 11 -11 -12 14 15 -15 -16 17 -18 -19\nleaf_value=0.00041623433417963999 -0.01080454638770258 -0.013995080472264125 0.011045055773334384 0.0038892188624948844 -0.01032281801793797 0.015387917585388726 -0.010799471445223979 -0.001691038478622968 0.011630521647346244 0.0019803807762291785 0.0060114255664569386 0.010254454213092488 -0.010248939805981452 -0.010440276450988304 0.010188047502595667 -0.01021806638006598 -0.010245287997173563 -0.010184364021080075\nleaf_weight=1.3833937123417879 1.2975893765687967 1.8488724678754831 4.0356348231434849 6.12555078044534 0.61356838047504669 1.0842681340873244 1.4329808782786133 11.523494219407437 1.373269036412238 0.72993666492402542 1.8894439898431299 0.6737626064568748 0.51706483028828998 0.56571440398693074 13.151381872594355 0.45325339771807094 0.68385886587202549 14.857303922995923\nleaf_count=7 21 11 181 65 21 11 35 83 12 15 47 31 23 15 733 22 30 837\ninternal_value=0 0.00456704 0.00135286 0.00255657 -0.00862828 -0.0025007 0.000817553 0.000245732 0.00949496 -0.00648655 0.00943989 0.0103213 -0.0102025 -0.01033 0.0101913 -0.0101874 -0.010282 -0.0101854\ninternal_weight=0 42.0048 25.423 23.5741 22.2355 4.54478 3.24719 17.649 16.5818 2.16292 5.92508 15.1984 17.6908 1.86314 13.8251 15.8276 1.29743 15.3106\ninternal_count=2200 1170 387 376 1030 82 61 148 783 50 228 776 948 66 764 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=333\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 0 0 13 2 2 2 0 1 12 3 3 3 3 0 0\nsplit_gain=25.0014 6.34437 4.24504 3.88193 2.14982 2.52885 3.31588 1.55493 1.24306 1.21983 0.217189 0.0250695 0.00215262 2.74265e-05 2.04863e-05 9.16223e-06 6.12325e-06\nthreshold=1.1660877220710828 0.80845556346269254 0.62911932954187277 1.0188919694060079 1.0614732751417961 1.2626160677949871 1.2719010105634743 1.1027606935153629 0.31415341067031349 1.1058192561221138 4.9554982271603158 0.17408222448223767 1.2351688403888856 0.61313736928646123 1.2640297647729313 1.3090382536679732 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 8 -3 9 5 10 -7 -5 -1 -4 -2 -10 -6 -13 15 -14 -16\nright_child=4 2 3 7 12 6 -8 -9 11 -11 -12 13 14 -15 16 -17 -18\nleaf_value=0.00041213427232707233 -0.012348721370773275 -0.014282172243807619 0.0096714690189779115 0.0088091576808301646 -0.010645200199281859 0.016771719695799939 -0.0052727522866880564 -0.0014411662769139349 0.011612050952389952 -0.0044124473669763459 -0.0071065917417273217 0.010251879013777372 -0.010266103232473312 0.010186143636097027 -0.010219404107513506 -0.010199136357904386 -0.010183038204166833\nleaf_weight=1.3831882178783441 1.3609547242522269 1.6020511984825159 6.8956084325909641 1.6591410376131523 1.096374219283464 1.143943674862385 1.6909606494009493 13.699566261842845 1.361756607890128 0.67518334835767735 1.8850983548909424 0.66722528077661891 0.44643072038888831 13.022945713251827 0.47839082032441993 0.37670054100453854 14.404298642650245\nleaf_count=7 13 8 249 22 29 10 33 131 12 4 37 31 20 733 23 20 818\ninternal_value=0 0.00467648 0.00145539 0.00255495 -0.00837286 -0.0032779 0.00362266 -0.000333864 0.00948437 0.00841543 -0.00930443 0.0103181 -0.0102168 0.0101893 -0.0101869 -0.0102355 -0.0101842\ninternal_weight=0 40.9667 24.5316 22.9295 22.8832 6.08096 2.8349 15.3587 16.4351 7.57079 3.24605 15.0519 16.8022 13.6902 15.7058 0.823131 14.8827\ninternal_count=2200 1197 414 406 1003 93 43 153 783 253 50 776 910 764 881 40 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=334\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 0 1 3 12 12 0 2 2 2 3 12 0 3 4 0 1\nsplit_gain=24.701 6.5578 4.52261 3.6819 2.14728 1.24501 3.34338 1.24208 1.21746 0.790392 0.327575 0.0242889 0.000331534 9.55189e-05 2.66142e-05 1.94332e-05 1.86207e-05 4.94686e-06\nthreshold=0.85162615880101311 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 5.3611511359867654 5.4117715327450009 0.31415341067031349 1.1555240255680828 1.3345228717909889 1.1348528270257934 0.17408222448223767 5.4588099803130126 1.223894463963197 0.61313736928646123 0.37470171316558165 1.1344652928718959 1.1899369278690821\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 7 -3 10 5 -2 -7 -1 -5 -8 -4 -9 13 16 -13 -14 -6 -17\nright_child=4 2 3 8 12 6 9 11 -10 -11 -12 14 15 -15 -16 17 -18 -19\nleaf_value=0.00040807318492571646 -0.010794440460684741 -0.013725968600322663 0.011035614056422624 0.0038543766207584872 -0.010318387411527933 0.01505542730693318 -0.010792392789846155 0.011593815731981909 -0.0016720126576935928 0.0020444156859024398 0.0059608566072331037 0.010249329531357656 -0.010244553640043797 -0.010434821610630226 0.010184258361156886 -0.010211532480570695 -0.010241993430516277 -0.010180570823839892\nleaf_weight=1.3829847201705003 1.2827186398208166 1.8473937660455728 3.9647813551127937 6.1002278793603208 0.60527672432363278 1.0953584611415865 1.4113601334393027 1.3503168001770962 11.503461636602877 0.72658645920455445 1.8728133030235765 0.66074975021183391 0.50813635252416034 0.55878659151494492 12.895740000531076 0.53510641306638618 0.6747495923191309 14.480790903791783\nleaf_count=7 21 11 181 65 21 11 35 12 83 15 47 31 23 15 733 27 30 832\ninternal_value=0 0.00452552 0.0013381 0.00252529 -0.00860105 -0.00245828 0.000848847 0.00947375 0.000243054 -0.00642977 0.00940753 0.0103148 -0.0101988 -0.0103257 0.0101874 -0.0101837 -0.0102781 -0.0101817\ninternal_weight=0 41.5785 25.2887 23.4413 21.8789 4.51602 3.23331 16.2898 17.6037 2.13795 5.83759 14.9068 17.3628 1.83881 13.5565 15.524 1.28003 15.0159\ninternal_count=2200 1170 387 376 1030 82 61 783 148 50 228 776 948 66 764 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=335\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 12 2 0 3 12 3 2 2 0 2 13 12 4\nsplit_gain=24.388 6.27614 6.42801 5.66263 4.2642 3.05363 2.14922 1.72909 1.68274 1.55653 3.47342 0.772608 0.753509 0.000988417 2.95409e-05 6.92694e-06\nthreshold=1.1660877220710828 0.37470171316558165 1.2169811510592434 2.8519184598181413 1.1027606935153629 1.0867160002493412 1.2471304352583659 4.9554982271603158 0.65509567554656234 1.2626160677949871 1.2719010105634743 0.31415341067031349 1.3345228717909889 0.97735317110040087 5.4713193138510237 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 7 -3 8 -6 9 11 -5 -2 -11 -1 -12 -8 -15 -16\nright_child=6 3 -4 4 5 -7 13 -9 -10 10 12 -13 -14 14 15 -17\nleaf_value=0.0020415764946822897 -0.0090052245048415722 -0.023228960875208579 -0.012431805590612372 -0.0047050511213159694 0.0032196179722219103 -0.0065070102231695025 -0.010499592366585321 0.025721529081486314 0.011823698800638357 0.014734065572327466 -0.010688520186026331 0.0097764993805108096 0.0017167433312583 -0.010250764996371026 -0.010219927581596682 -0.010178952472342644\nleaf_weight=1.3904600664973354 2.6156954169273403 0.95955172926187771 1.3952362723648537 0.71760200709104793 6.8875702768564206 6.0742125045508146 1.0527994539588714 0.65678635239601035 4.3476105928421021 1.2226682342588904 1.4048095028847458 18.118802215903997 0.75160859338939179 0.61653299070894618 0.42471046186983485 14.436989370733498\nleaf_count=7 30 5 12 5 86 79 29 3 179 8 35 821 16 27 21 837\ninternal_value=0 0.0046344 0.00832629 0.000441864 0.00170183 -0.00133852 -0.008343 0.00976248 0.00948203 -0.00321364 0.00126953 0.00922522 -0.00636473 -0.0102031 -0.0101829 -0.0101801\ninternal_weight=0 40.5478 21.5613 18.9865 18.027 12.9618 22.5258 20.166 5.06521 5.99478 3.37909 19.5093 2.15642 16.531 15.4782 14.8617\ninternal_count=2200 1197 843 354 349 165 1003 831 184 89 59 828 51 914 885 858\nis_linear=0\nshrinkage=0.01\n\n\nTree=336\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 0 1 3 0 12 12 2 2 2 3 12 0 3 4 0 1\nsplit_gain=24.0825 6.48077 4.3817 3.62408 2.14817 1.23431 1.23249 3.26043 1.18448 0.784024 0.329562 0.0229168 0.000315738 9.03043e-05 2.57088e-05 1.82472e-05 1.7599e-05 4.84931e-06\nthreshold=0.85162615880101311 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 5.3611511359867654 5.4117715327450009 1.1555240255680828 1.3345228717909889 1.1348528270257934 0.17408222448223767 5.4588099803130126 1.223894463963197 0.61313736928646123 0.37470171316558165 1.1344652928718959 1.1899369278690821\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 10 6 -1 -2 -8 -5 -9 -4 -7 13 16 -13 -14 -6 -17\nright_child=4 2 3 8 12 11 7 9 -10 -11 -12 14 15 -15 -16 17 -18 -19\nleaf_value=0.00042616351725922787 -0.010782765370133909 -0.013524281435368657 0.011030234625355071 0.0038042235896812082 -0.010312653254686863 0.011560786362663894 0.01480202361933982 -0.010790839219913676 -0.0016579004365115729 0.0020170315959324829 0.0059133356051418607 0.010245161971974132 -0.010239569014213738 -0.010426863208076009 0.010180622366054855 -0.010207852760314749 -0.010237735359170601 -0.010176932827073286\nleaf_weight=1.3832886293530489 1.2651385217905069 1.8437914028763795 3.8946139123290804 6.069548478350046 0.59477104805410153 1.3294073790311802 1.1037062965333464 1.3918479811400177 11.477896295487879 0.72789004258811463 1.85976305603981 0.64886540733277698 0.49825352430343528 0.5490698106586932 12.648857966065405 0.52601798437535663 0.66317565180361271 14.1990904007107\nleaf_count=7 21 11 181 65 21 12 11 35 83 15 47 31 23 15 733 27 30 832\ninternal_value=0 0.00448197 0.00131556 0.00248979 -0.00857283 0.00945506 -0.0024185 0.00086431 0.000231413 -0.00639279 0.0093765 0.0103089 -0.0101949 -0.0103199 0.0101838 -0.0101801 -0.0102732 -0.010178\ninternal_weight=0 41.156 25.1456 23.3018 21.519 16.0104 4.48858 3.22344 17.5474 2.11974 5.75438 14.6271 17.0304 1.80702 13.2977 15.2234 1.25795 14.7251\ninternal_count=2200 1170 387 376 1030 783 82 61 148 50 228 776 948 66 764 882 51 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=337\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 4 2 12 2 0 13 2 2 12 3 0 12 3 3 0 0\nsplit_gain=23.792 6.17804 6.32964 5.48385 4.1856 2.98961 2.15153 2.4778 3.1485 1.67532 1.66306 0.766224 0.219237 0.00205829 1.972e-05 7.746e-06 5.4214e-06\nthreshold=1.1660877220710828 0.37470171316558165 1.2169811510592434 2.8519184598181413 1.1027606935153629 1.0867160002493412 1.0614732751417961 1.2626160677949871 1.2719010105634743 4.9554982271603158 0.65509567554656234 0.31415341067031349 4.9554982271603158 1.2351688403888856 1.2640297647729313 1.3090382536679732 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 9 -3 10 -6 7 12 -9 11 -5 -1 -2 -8 15 -15 -16\nright_child=6 3 -4 4 5 -7 13 8 -10 -11 -12 -13 -14 14 16 -17 -18\nleaf_value=0.0020433919016006816 -0.012321154141291757 -0.02281881122180502 -0.012318205862997802 -0.0046527807002184358 0.0031850947616939946 -0.0064583353909367083 -0.010632978675417638 0.016350224886078776 -0.0051666768026604826 0.02542102221261093 0.011819473568223294 0.0097550656908086154 -0.0070048099776650321 -0.010256738543299233 -0.010210627427518992 -0.01019415984070134 -0.010175733070699463\nleaf_weight=1.388846524059782 1.3376862294971972 0.96292313374579208 1.3927040174603451 0.71552449092269199 6.8707829825580102 6.0415997859090567 1.0721875857561851 1.1514849625527861 1.6610556207597253 0.65832582116126914 4.2741086557507515 17.818707143887877 1.8463275022804735 0.43043155781924625 0.46003714203834434 0.36598052456974983 13.84931964240968\nleaf_count=7 13 5 12 5 86 79 29 10 33 3 179 821 37 20 23 20 818\ninternal_value=0 0.00459385 0.00829031 0.000428371 0.0016788 -0.00132699 -0.00831318 -0.00319685 0.00364258 0.00973508 0.00945732 0.00919746 -0.00923834 -0.0102096 -0.0101796 -0.010228 -0.0101769\ninternal_weight=0 40.1235 21.2586 18.8649 17.902 12.9124 22.1745 5.99655 2.81254 19.8659 4.98963 19.2076 3.18401 16.178 15.1058 0.796412 14.3094\ninternal_count=2200 1197 843 354 349 165 1003 93 43 831 184 828 50 910 881 40 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=338\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 0 0 13 2 2 2 2 1 1 12 13 3 3 0 0\nsplit_gain=23.4878 6.14636 3.9024 3.70814 2.151 2.44359 3.07411 1.43965 1.23169 1.22184 0.572914 0.21867 0.0982047 0.00199911 1.91335e-05 7.51598e-06 5.25814e-06\nthreshold=1.1660877220710828 0.80845556346269254 0.62911932954187277 1.0188919694060079 1.0614732751417961 1.2626160677949871 1.2719010105634743 1.1027606935153629 0.56803303682406159 1.1058192561221138 0.46249402795761568 4.9554982271603158 0.0064018138657804258 1.2351688403888856 1.2640297647729313 1.3090382536679732 1.1546668796111181\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 8 -3 9 5 11 -7 -5 -1 -4 -10 -2 -12 -6 15 -15 -16\nright_child=4 2 3 7 13 6 -8 -9 10 -11 12 -13 -14 14 16 -17 -18\nleaf_value=-0.0054123783458024663 -0.012298159342166715 -0.013660174589112459 0.0096076689754663654 0.0085656843267623278 -0.010626708955111912 0.016115338412478995 -0.0051364920645058255 -0.0014003279516569284 0.0027505775753547197 -0.0045255106755343281 0.014336126702418966 -0.006970432487005635 0.010306088587525164 -0.010254137231333607 -0.010208488315370769 -0.01019219248655549 -0.010173954699350117\nleaf_weight=0.53948166221380134 1.3268398828804522 1.605017445981505 6.6734851133078363 1.6223894152790297 1.0621423032134796 1.1565598100423815 1.65414347872138 13.60101557523012 1.0268164705485094 0.67342060804367054 0.63293561339378257 1.8369263261556623 13.537056650966404 0.42625626176595588 0.45555465295910735 0.36240854673087597 13.713901437819002\nleaf_count=18 13 8 249 22 29 10 33 131 32 4 3 37 730 20 23 20 818\ninternal_value=0 0.00457229 0.0014062 0.00247759 -0.00829775 -0.00317685 0.0036083 -0.00033823 0.0094363 0.00831222 0.00996343 -0.00920481 0.0104861 -0.0102075 -0.0101777 -0.0102257 -0.0101751\ninternal_weight=0 39.9116 24.1753 22.5703 21.9947 5.97447 2.8107 15.2234 15.7363 7.34691 15.1968 3.16377 14.17 16.0203 14.9581 0.788665 14.1695\ninternal_count=2200 1197 414 406 1003 93 43 153 783 253 765 50 733 910 881 40 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=339\nnum_leaves=19\nnum_cat=0\nsplit_feature=13 1 0 1 3 0 12 12 2 2 2 3 12 0 3 4 0 1\nsplit_gain=23.2035 6.3486 4.16704 3.53686 2.15644 1.23855 1.22877 3.13741 1.15023 0.791339 0.33162 0.0210486 0.000308639 9.32259e-05 2.47633e-05 1.7333e-05 1.68777e-05 4.96231e-06\nthreshold=0.85162615880101311 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 5.3611511359867654 5.4117715327450009 1.1555240255680828 1.3345228717909889 1.1348528270257934 0.17408222448223767 5.4588099803130126 1.2353254972663301 0.61313736928646123 0.37470171316558165 1.1344652928718959 1.1899369278690821\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 10 6 -1 -2 -8 -5 -9 -4 -7 13 16 -13 -14 -6 -17\nright_child=4 2 3 8 12 11 7 9 -10 -11 -12 14 15 -15 -16 17 -18 -19\nleaf_value=0.0003752406763881846 -0.010769511137374201 -0.013201576138345588 0.011020748080705467 0.0037572937182970283 -0.010307239359834042 0.01151366620287466 0.014490001907496157 -0.010785297617500999 -0.0016430301020538315 0.0021768490013892175 0.0058470748864918477 0.010239389038383791 -0.010233508145046285 -0.010427478506286159 0.010175315822775125 -0.010203256661643378 -0.010233814502971464 -0.01017162723621671\nleaf_weight=1.3792085126042355 1.2452092766761804 1.8381332531571413 3.7948322445154217 6.0202293619513538 0.58433877862990147 1.2993813753128041 1.1135271452367308 1.3625536095350983 11.436564641073344 0.71979490295052517 1.8394577037543056 0.63432740792632003 0.48571895249187846 0.51625720970332611 12.288687787950037 0.51453342847525974 0.67433776892721653 13.787549417465923\nleaf_count=7 21 11 181 65 21 12 11 35 83 15 47 31 23 14 733 27 31 832\ninternal_value=0 0.00442021 0.00128926 0.00244278 -0.00853052 0.00942304 -0.00234266 0.000940697 0.00021935 -0.00630474 0.00933167 0.0103004 -0.0101897 -0.0103143 0.0101785 -0.0101748 -0.0102679 -0.0101728\ninternal_weight=0 40.5308 24.9292 23.0911 21.0038 15.6016 4.44108 3.19588 17.4568 2.08235 5.63429 14.2224 16.5627 1.77493 12.923 14.7878 1.25868 14.3021\ninternal_count=2200 1170 387 376 1030 783 82 61 148 50 228 776 948 66 764 882 52 859\nis_linear=0\nshrinkage=0.01\n\n\nTree=340\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 2 0 3 12 2 2 2 2 3 13 12 4\nsplit_gain=22.9094 6.05793 6.22214 5.28705 5.3762 2.90718 2.15052 1.62899 1.50486 3.26049 1.2236 0.758934 0.641415 0.000934595 2.75399e-05 6.11502e-06\nthreshold=1.1660877220710828 0.37470171316558165 1.2169811510592434 0.61398027225796947 1.1027606935153629 1.0867160002493412 1.2471304352583659 4.9554982271603158 1.2626160677949871 1.2719010105634743 0.56803303682406159 1.3345228717909889 1.2537081564319763 0.97735317110040087 5.4713193138510237 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 7 -3 12 -6 8 10 -2 -10 -1 -11 -5 -8 -15 -16\nright_child=6 3 -4 4 5 -7 13 -9 9 11 -12 -13 -14 14 15 -17\nleaf_value=-0.005957274770746205 -0.0088880474861472922 -0.017907542835124399 -0.012205424275476471 0.010140196914428176 0.00313547692531648 -0.006399687017272641 -0.010487081465825642 0.025146677256723492 0.014240529171685621 -0.010677417942912777 0.0095895290668590281 0.0018893362938366914 0.022280267190746005 -0.010240799250924231 -0.010209489503969367 -0.010170076813061495\nleaf_weight=0.520679788663993 2.5550987590104368 1.4550899453461195 1.3892502225935448 3.9012704435735968 6.838285416364668 6.0058183576911688 1.0194191653281439 0.65964370965957542 1.2307271845638754 1.363395690917969 18.254140982404351 0.74217396043241013 0.4898536019027232 0.59242734871804614 0.40527160838246246 13.744838763028381\nleaf_count=17 30 16 12 170 86 79 29 3 8 35 811 16 3 27 21 837\ninternal_value=0 0.00453006 0.00823956 0.000397134 0.00194251 -0.0013231 -0.00826756 0.00970105 -0.00311284 0.0013101 0.00915837 -0.00624787 0.0114945 -0.0101943 -0.010174 -0.0101712\ninternal_weight=0 39.514 20.8237 18.6903 17.2352 12.8441 21.6534 19.4345 5.8914 3.3363 18.7748 2.10557 4.39112 15.762 14.7425 14.1501\ninternal_count=2200 1197 843 354 338 165 1003 831 89 59 828 51 173 914 885 858\nis_linear=0\nshrinkage=0.01\n\n\nTree=341\nnum_leaves=15\nnum_cat=0\nsplit_feature=1 1 3 3 13 3 0 13 12 13 12 4 3 4\nsplit_gain=22.6354 7.0312 2.94089 2.27495 1.83582 1.63896 1.12613 0.858635 0.612683 0.00400713 0.00258267 0.000333545 0.000197459 5.97666e-06\nthreshold=1.2071296172255412 0.95282455020400814 0.17408222448223767 1.2351688403888856 0.81992547120608383 0.92418840188043572 1.1427926010382323 0.97735317110040087 4.6533632910829281 0.89467626681772028 5.4588099803130126 0.45701416357615993 1.2471304352583659 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 5 -5 -3 -7 -2 11 -6 -9 -4 -12 -14\nright_child=7 3 8 4 9 6 -8 10 -10 -11 12 -13 13 -15\nleaf_value=0.00023828139413708749 -0.0041230721686430953 -0.0073917561178468739 0.010182274027284116 -0.00031094926339121686 -0.011126468385319306 0.0056668075052939597 -0.000685016394298526 -0.010706381068164498 0.0011254014128180905 -0.010327290413065295 -0.010318216710676998 0.010457154330322458 -0.010207365138970205 -0.010168192687868673\nleaf_weight=3.9547602385282543 2.7202106826007393 1.5647945888340498 16.279716560617096 4.0877816900610915 0.88210810348391566 8.077395420521496 4.264990020543336 0.99217149056494136 0.78048209473490615 2.172844048589468 0.95337570086121459 0.45373883098363776 0.40132217481732269 13.211633346974848\nleaf_count=24 37 16 964 24 15 84 31 23 6 91 37 14 21 813\ninternal_value=0 0.00400035 0.00802704 -0.00010644 -0.00469364 0.00224955 0.00347189 -0.00930646 0.00978579 -0.0105581 -0.0102127 0.0101897 -0.0101791 -0.0101693\ninternal_weight=0 42.5186 21.4687 21.0499 7.14273 13.9072 12.3424 18.2787 17.5139 3.05495 15.5585 16.7335 14.5663 13.613\ninternal_count=2200 1269 1008 261 130 131 115 931 984 106 894 978 871 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=342\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 0 13 3 3 12 3 3 4\nsplit_gain=22.3576 6.9682 3.45183 3.9055 2.72104 1.23913 0.862504 0.336982 0.0198888 0.00250714 0.000191602 2.31433e-05 5.79813e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.31415341067031349 0.97735317110040087 1.2190084357665867 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00034388422663574135 -0.0040946596805417172 -0.013284282975450111 0.010530910431932702 0.0024423044100789436 -0.0053359554699646964 0.011482316632648591 -0.010699241250304279 0.0043869499572128838 0.010232978878161405 -0.010314991231907867 -0.010205262955122205 0.010170272068744952 -0.010166490578592076\nleaf_weight=1.375895682722329 2.7117378059774664 1.6053111925721193 4.3952246904373196 13.123560868203642 6.8424187283962956 1.2789682075381268 0.9829514417797317 1.1202374789863823 0.61906898207962413 0.94418313167989154 0.39741039276122947 11.945267317816613 13.082354227080939\nleaf_count=7 37 8 218 122 128 12 23 10 31 37 21 733 813\ninternal_value=0 0.00398043 0.000938305 0.00183432 -0.000223335 0.00939473 -0.00929524 0.00928302 0.0102943 -0.0102106 -0.0101773 0.0101734 -0.0101676\ninternal_weight=0 42.306 27.0868 25.4814 19.966 15.2192 18.1186 5.51546 13.8433 15.4069 14.4239 12.5643 13.4798\ninternal_count=2200 1269 486 478 250 783 931 228 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=343\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=22.082 6.91603 3.3933 3.55583 2.13343 1.238 0.866339 0.599269 0.0192722 0.00243382 0.000185919 2.24588e-05 5.62483e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 1.2351688403888856 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00034048725962899359 -0.0040663676352674146 -0.016436062265742023 0.010602606562252939 0.0021216131656981597 -0.0046308502696825295 0.011465715907213472 -0.010692175509737467 0.0010670625006207551 0.010230624683501211 -0.010311799028403637 -0.010203182018996518 0.01016854943579109 -0.010164805925713227\nleaf_weight=1.3757264576852311 2.7033411841839579 1.0800273120403314 4.3142281882464912 13.754432987421753 7.0913633201271287 1.2680664137005795 0.97381080687045951 0.77790715545415867 0.6130494736134996 0.93507628701627155 0.39353593625128169 11.828402545303105 12.954317960888146\nleaf_count=7 37 5 215 130 130 12 23 6 31 37 21 733 813\ninternal_value=0 0.00395981 0.000931354 0.00165451 -0.000175453 0.00938382 -0.00928396 0.0091459 0.0102913 -0.0102085 -0.0101755 0.0101716 -0.0101659\ninternal_weight=0 42.1032 27.018 25.9379 20.8458 15.0852 17.9601 5.09214 13.7095 15.2567 14.2829 12.4415 13.3479\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=344\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 0 13 3 3 12 3 3 4\nsplit_gain=21.8085 6.86506 3.3352 3.82991 2.63193 1.23686 0.87014 0.338385 0.018675 0.00236263 0.000180402 2.17936e-05 5.45643e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.31415341067031349 0.97735317110040087 1.2190084357665867 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00033712334370132098 -0.004038196194858441 -0.013049036393044913 0.010524127620111725 0.0023978694909557829 -0.0052673990918520033 0.011449321764086645 -0.010685182187909764 0.0043474733780275512 0.0102282943253335 -0.010308639803020801 -0.01020112267285799 0.010166845718032875 -0.010163139724191332\nleaf_weight=1.3755588605999935 2.6950201895087984 1.6063594073057199 4.3137851553037789 13.117032250389459 6.8023831956088534 1.2572375759482373 0.96474905125796695 1.1165324524044988 0.60708712413906951 0.92605442181229491 0.38969844486564298 11.712661290541289 12.827512503601609\nleaf_count=7 37 8 218 122 128 12 23 10 31 37 21 733 813\ninternal_value=0 0.00393862 0.000924227 0.00180968 -0.000219782 0.00937289 -0.00927264 0.00925414 0.0102884 -0.0102064 -0.0101737 0.0101699 -0.0101643\ninternal_weight=0 41.9086 26.9561 25.3497 19.9194 14.9525 17.803 5.43032 13.577 15.108 14.1433 12.3197 13.2172\ninternal_count=2200 1269 486 478 250 783 931 228 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=345\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 2 13 12 1 13 12 3 4\nsplit_gain=21.5393 6.8134 3.27035 3.48273 2.07412 1.24298 0.873907 0.602687 0.588939 0.0925983 0.00229352 0.00017505 5.2933e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.56803303682406159 0.97735317110040087 4.6533632910829281 0.46249402795761568 0.0064018138657804258 5.4588099803130126 1.2471304352583659 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -10 -8 -12 -13\nright_child=6 2 3 4 -6 8 10 -9 9 -11 11 12 -14\nleaf_value=-0.005691952475628809 -0.0040101457548388491 -0.016118355248851725 0.010598945362391112 -0.014378426204524898 0.00053008182206752403 0.0024914035506034275 -0.010678261330883768 0.0010094807223508893 0.014226697002250195 0.010288270802392523 -0.010305513218213965 -0.010199084975985446 -0.010161490311345715\nleaf_weight=0.52891701273620029 2.6867743190377977 1.0815444141626382 4.2355637196451452 0.9792961366474654 19.81657437607646 0.99331502709537645 0.95576560311019321 0.7753726691007613 0.6264900416135778 12.672366743907331 0.91711679100990195 0.38589757960289617 12.70192781742662\nleaf_count=18 37 5 215 8 252 32 23 6 3 730 37 21 813\ninternal_value=0 0.00391806 0.000917356 0.00163131 -0.000171973 0.00936192 -0.00926126 0.00911511 0.00991902 0.0104738 -0.0102043 -0.010172 -0.0101626\ninternal_weight=0 41.7094 26.8884 25.8068 20.7959 14.8211 17.6475 5.01094 14.2922 13.2989 14.9607 14.0049 13.0878\ninternal_count=2200 1269 486 481 260 783 931 221 765 733 894 871 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=346\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 0 13 3 3 12 3 3 4\nsplit_gain=21.2694 6.7622 3.20878 3.75709 2.59026 1.24706 0.877638 0.340521 0.0176147 0.00222644 0.000169859 2.11209e-05 5.13525e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.31415341067031349 0.97735317110040087 1.2190084357665867 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00026733054517149169 -0.0039822168744520527 -0.012797235553913929 0.010517584805873089 0.002377632249338226 -0.0052346907130787369 0.011419244627440038 -0.010671411727129014 0.0042995026346411688 0.010224465523360846 -0.010302418729330741 -0.010197068153555224 0.010163536208407282 -0.010159857043459522\nleaf_weight=1.3711203075945366 2.6786028649657991 1.6057000234723116 4.2342200111597803 13.107171585783364 6.7834125421941271 1.2374305501580227 0.94685989990830322 1.1119968350976703 0.59857694339007039 0.90826268400996824 0.38213302567601104 11.48770802747458 12.577552548609672\nleaf_count=7 37 8 218 122 128 12 23 10 31 37 21 733 813\ninternal_value=0 0.00389515 0.000909798 0.00178191 -0.000218447 0.00934838 -0.00924984 0.00922424 0.0102829 -0.0102023 -0.0101702 0.0101666 -0.010161\ninternal_weight=0 41.5373 26.8425 25.2368 19.8906 14.6948 17.4934 5.34622 13.3237 14.8148 13.8679 12.0863 12.9597\ninternal_count=2200 1269 486 478 250 783 931 228 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=347\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=21.0066 6.71103 3.15247 3.41133 2.03919 1.24576 0.881335 0.605997 0.0170697 0.00216131 0.00016482 2.04956e-05 4.9816e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00026468264827900521 -0.0039544092412120554 -0.015811960922052382 0.0105953706937051 -0.014305712111568796 0.00052631286600744482 0.011403427026408026 -0.010664632563439106 0.00095272822463464489 0.010222198077302583 -0.010299356311488341 -0.010195071785347674 0.010161883255573569 -0.010158241448590677\nleaf_weight=1.370988257229327 2.670505283400419 1.0827123969793344 4.1583585534244802 0.97250547260046261 19.78910418599844 1.2268087565898884 0.93803140707313915 0.77288083732128132 0.59275179449468751 0.89949136041104694 0.37840444780886073 11.375243805348871 12.454374613240359\nleaf_count=7 37 5 215 8 252 12 23 6 31 37 21 733 813\ninternal_value=0 0.00387468 0.000903016 0.0016074 -0.000168442 0.00933734 -0.00923836 0.00908406 0.01028 -0.0102002 -0.0101685 0.0101649 -0.0101593\ninternal_weight=0 41.3414 26.7756 25.6928 20.7616 14.5658 17.3408 4.93124 13.1948 14.6703 13.7323 11.968 12.8328\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=348\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 2 13 12 1 13 12 3 4\nsplit_gain=20.7437 6.66308 3.08931 3.37531 2.02979 1.24508 0.884997 0.60545 0.596324 0.089455 0.00209808 0.000159931 4.83267e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 1.2351688403888856 0.56803303682406159 0.97735317110040087 4.6533632910829281 0.46249402795761568 0.0064018138657804258 5.4588099803130126 1.2471304352583659 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -10 -8 -12 -13\nright_child=6 2 3 4 -6 8 10 -9 9 -11 11 12 -14\nleaf_value=-0.005789716709582492 -0.0039267235949466449 -0.015646505717905598 0.010591112907812297 0.0020721707361218557 -0.0045345505600025314 0.0023804221504259882 -0.010657923247543983 0.00094364390480432855 0.014164773095590829 0.010279940182751348 -0.010296325464161952 -0.010193096290074451 -0.010156642328136458\nleaf_weight=0.52509249746799369 2.6624810062348869 1.0832173675298715 4.1186289871111539 13.721805082634093 7.0341153908520928 0.98109270725399156 0.92927953042089839 0.77252009510993946 0.62272082269191642 12.30905544105917 0.89080210216343303 0.37471150141209264 12.332383340224622\nleaf_count=18 37 5 215 130 130 32 23 6 3 730 37 21 813\ninternal_value=0 0.00385226 0.000895563 0.00159423 -0.000166826 0.00932627 -0.00922683 0.00906737 0.00989677 0.010467 -0.0101982 -0.0101668 -0.0101577\ninternal_weight=0 41.1682 26.7303 25.6471 20.7559 14.438 17.1897 4.89115 13.9129 12.9318 14.5272 13.5979 12.7071\ninternal_count=2200 1269 486 481 260 783 931 221 765 733 894 871 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=349\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 0 13 2 3 12 3 3 4\nsplit_gain=20.4855 6.61041 3.04484 3.65287 2.50986 1.25556 0.888624 0.344828 0.016101 0.0020367 0.000155188 1.98807e-05 4.68826e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.31415341067031349 0.97735317110040087 1.1348528270257934 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00019642686360403305 -0.0038991601118947734 -0.012467407038319769 0.011004644637395424 0.0023373329129662756 -0.005170643334877891 0.01137437706745281 -0.010651282943426899 0.0055610755624036761 0.010218506752026719 -0.01029332571120356 -0.010191141212663847 0.01015867721229579 -0.010155059501888927\nleaf_weight=1.3665890842676152 2.6545293666422394 1.6042272374033952 3.4759078416973379 13.094429014250638 6.7465079464018336 1.2073639631271351 0.92060374282300372 1.7493378771468995 0.58448791410773893 0.88219419773667951 0.37105387635528941 11.156791608780621 12.211567373946307\nleaf_count=7 37 8 181 122 128 12 23 47 31 37 21 733 813\ninternal_value=0 0.00383093 0.000888664 0.00174345 -0.000215602 0.00931262 -0.00921525 0.00918222 0.0102747 -0.0101962 -0.0101651 0.0101617 -0.0101561\ninternal_weight=0 40.9856 26.6704 25.0662 19.8409 14.3152 17.0399 5.22525 12.9486 14.3854 13.4648 11.7413 12.5826\ninternal_count=2200 1269 486 478 250 783 931 228 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=350\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 0 13 3 3 12 3 3 4\nsplit_gain=20.2317 6.56017 2.98512 3.6124 2.46554 1.2541 0.892216 0.346046 0.0156035 0.00197711 0.000150584 1.92916e-05 4.54802e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.31415341067031349 0.97735317110040087 1.2190084357665867 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00019447659630077337 -0.0038717186792721799 -0.012339785798275913 0.010504878668051464 0.0023145524740942626 -0.0051346808519584777 0.011359112249689855 -0.010644711324081808 0.0041918103288484275 0.010216300080021652 -0.010290356901036319 -0.010189206143698898 0.010157074401103399 -0.010153493386365158\nleaf_weight=1.3664917349815358 2.6466498784720924 1.6046084016561533 4.0817757947370437 13.091091310605409 6.7259254874661556 1.1969488039612759 0.91200346127152343 1.1028662137687204 0.57879652921110292 0.87366694305091996 0.36743125040084024 11.047514006495474 12.091916071251033\nleaf_count=7 37 8 218 122 128 12 23 10 31 37 21 733 813\ninternal_value=0 0.00381045 0.000881957 0.00173053 -0.000213729 0.00930147 -0.00920362 0.00916198 0.0102719 -0.0101943 -0.0101634 0.01016 -0.0101545\ninternal_weight=0 40.796 26.6063 25.0017 19.817 14.1898 16.8917 5.18464 12.8233 14.245 13.333 11.6263 12.4593\ninternal_count=2200 1269 486 478 250 783 931 228 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=351\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 2 3 0 0 13 3 12 3 3 4\nsplit_gain=19.9812 6.50998 2.92671 3.58338 1.798 1.74134 1.25264 0.895772 0.0151217 0.00191927 0.000146119 1.87202e-05 4.41215e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 1.1348528270257934 1.2351688403888856 1.1546668796111181 0.31415341067031349 0.97735317110040087 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 5 -5 -4 -1 -2 -8 -9 -11 -10 -12\nright_child=7 2 3 4 -6 -7 8 9 11 10 12 -13 -14\nleaf_value=0.00019254554864564188 -0.0038444003403154208 -0.012214062805068312 0.0099555517940998779 0.0017598717332177763 -0.0048438584523305475 -0.0020521835689354053 0.011344035253561568 -0.010638206734334923 0.010214115906465777 -0.010287418835266229 -0.010187290898262855 0.010155487605688344 -0.0101519426357212\nleaf_weight=1.3663953244686116 2.6388418730348375 1.6049122735857988 5.9485950777307179 10.805488500744106 6.6667834855616084 1.5153577271848915 1.1866060495376576 0.90347819961607356 0.57315931841730972 0.86521961074322362 0.36384329479187627 10.939289586618541 11.973418760113416\nleaf_count=7 37 8 220 116 128 14 12 23 31 37 21 733 813\ninternal_value=0 0.00379014 0.000875342 0.00171778 -0.000759872 0.0075177 0.00929029 -0.00919193 0.0102692 -0.0101923 -0.0101618 0.0101584 -0.010153\ninternal_weight=0 40.6066 26.5411 24.9362 17.4723 7.46395 14.0655 16.7448 12.6991 14.106 13.2025 11.5124 12.3373\ninternal_count=2200 1269 486 478 244 234 783 931 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=352\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 0 1 3 2 13 1 2 13 12 3 4\nsplit_gain=19.7331 6.46046 2.86949 3.55708 2.38234 1.25283 0.899292 0.606704 0.347164 0.0864883 0.00186311 0.000141786 4.28044e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2351688403888856 0.56803303682406159 0.97735317110040087 0.46249402795761568 1.1348528270257934 0.0064018138657804258 5.4588099803130126 1.2471304352583659 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 8 -5 -1 -2 -7 -4 -9 -8 -12 -13\nright_child=6 2 3 4 -6 7 10 9 -10 -11 11 12 -14\nleaf_value=-0.0059718151597275291 -0.003817204627790009 -0.012090189020902265 0.011000337719485491 0.0022641948265585523 -0.0050742012112079196 0.0022256411802801246 -0.010631769020310045 0.014103801443825073 0.0054945943571414824 0.010269160012809466 -0.010284510761869918 -0.010185395545114448 -0.010150407576115888\nleaf_weight=0.51861053425818582 2.6311048492789295 1.6051411330699945 3.3842149693518904 13.072622070088984 6.6866633659228674 0.96410305798053642 0.89502733945846458 0.61892102658748527 1.7310703089460728 11.840685035102068 0.85685152933001418 0.36028969008475442 11.8560648355633\nleaf_count=18 37 8 181 122 128 32 23 3 47 730 37 21 813\ninternal_value=0 0.00376957 0.000868667 0.00170489 -0.000219163 0.00927907 -0.00918019 0.00986827 0.00913713 0.0104596 -0.0101904 -0.0101602 -0.0101514\ninternal_weight=0 40.422 26.4797 24.8746 19.7593 13.9423 16.5993 13.4237 5.11529 12.4596 13.9682 13.0732 12.2164\ninternal_count=2200 1269 486 478 250 783 931 765 228 733 894 871 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=353\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=19.4876 6.40823 2.83903 3.21872 1.98835 1.26197 0.902776 0.619791 0.0142639 0.00180859 0.000137581 1.81778e-05 4.15236e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00012612124991918559 -0.0037901319914381741 -0.01498350652238379 0.010590021670977438 -0.01416693458460022 0.00052433582939589258 0.011316306337381503 -0.010625398041380378 0.00076036229353325206 0.01021059807522208 -0.010281632853313485 -0.010183519345219159 0.010152413628695437 -0.010148889209014991\nleaf_weight=1.3620468005537976 2.6234381701797274 1.0843029618263269 3.949708295986059 0.96655473113060253 19.650618029758334 1.1676514297723759 0.8866503406316032 0.76583464443683613 0.56522841844707628 0.84856198355555434 0.35677013453096051 10.729236708953975 11.739842921495436\nleaf_count=7 37 5 215 8 252 12 23 6 31 37 21 733 813\ninternal_value=0 0.00374884 0.000862079 0.00154031 -0.000164406 0.00926524 -0.00916839 0.00899362 0.0102641 -0.0101885 -0.0101585 0.0101553 -0.0101499\ninternal_weight=0 40.2412 26.417 25.3327 20.6172 13.8242 16.4553 4.71554 12.4621 13.8318 12.9452 11.2945 12.0966\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=354\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=19.243 6.36144 2.78319 3.18436 1.96204 1.26035 0.906224 0.619014 0.013824 0.00175567 0.000133502 1.76388e-05 4.02841e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00012486569446832951 -0.0037631829142126265 -0.014833296206294545 0.010585783833392528 -0.014122642320305636 0.00051906815698447763 0.011301752039390069 -0.010619091948217103 0.00075304377939745706 0.010208471984642616 -0.010278784462917022 -0.010181662686717947 0.010150875162585313 -0.010147385468182295\nleaf_weight=1.3619840964674939 2.615841310471299 1.0843302309513116 3.9119656523689654 0.95992347598076122 19.651537024416029 1.1575143784284581 0.87834669277071853 0.76554603502154339 0.55972025357186694 0.84035029541700978 0.35328429844230314 10.624081114307044 11.624743139371274\nleaf_count=7 37 5 215 8 252 12 23 6 31 37 21 733 813\ninternal_value=0 0.00372679 0.000854931 0.0015276 -0.00016283 0.00925395 -0.00915654 0.00897651 0.0102614 -0.0101866 -0.0101569 0.0101538 -0.0101484\ninternal_weight=0 40.0766 26.3733 25.289 20.6115 13.7033 16.3126 4.67751 12.3413 13.6967 12.8184 11.1838 11.978\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=355\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=19.0014 6.31483 2.72863 3.1503 1.93613 1.25872 0.909636 0.618227 0.0133979 0.00170429 0.000129543 1.71159e-05 3.90802e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=0.00012362238460792162 -0.003736357534869957 -0.014685715968639639 0.010581566377114486 -0.014078822466336825 0.00051385349770423632 0.011287375111872411 -0.010612850592060226 0.00074579313837973477 0.010206367843644766 -0.010275965310532266 -0.010179825248426359 0.010149352560303162 -0.01014589788327782\nleaf_weight=1.3619220219552506 2.608313690871003 1.0842748135328317 3.8745769374072578 0.953315250575545 19.652447320520878 1.1474492698907841 0.8701158557087173 0.76526018977165211 0.5542646162211885 0.83221577480435271 0.34983188007026811 10.519939998164771 11.510754141956566\nleaf_count=7 37 5 215 8 252 12 23 6 31 37 21 733 813\ninternal_value=0 0.00370479 0.000847835 0.00151499 -0.000161269 0.00924261 -0.00914463 0.00895933 0.0102588 -0.0101847 -0.0101554 0.0101522 -0.0101469\ninternal_weight=0 39.9135 26.3299 25.2456 20.6058 13.5836 16.1712 4.63984 12.2217 13.5629 12.6928 11.0742 11.8606\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=356\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 2 13 12 1 13 12 3 4\nsplit_gain=18.7627 6.26838 2.6753 3.11655 1.91061 1.26003 0.913011 0.617428 0.616892 0.0836577 0.00165442 0.000125702 3.79136e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.56803303682406159 0.97735317110040087 4.6533632910829281 0.46249402795761568 0.0064018138657804258 5.4588099803130126 1.2471304352583659 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -10 -8 -12 -13\nright_child=6 2 3 4 -6 8 10 -9 9 -11 11 12 -14\nleaf_value=-0.0061497150113867353 -0.0037096555068531936 -0.014540682276529706 0.010577368212605947 -0.014035469602164934 0.00050869156431116119 0.002072491787679041 -0.010606673416331487 0.00073860943748037689 0.014044812663602283 0.010258806002336592 -0.010273175141225777 -0.010178006603342938 -0.010144424934464649\nleaf_weight=0.51234935130923887 2.6008547265082624 1.084139466285708 3.8375391224399236 0.94673028960824268 19.653349082916975 0.94773706514388223 0.8619572389870872 0.7649770751595496 0.61515958607196708 11.389735642820595 0.82415774837136169 0.34641256742179294 11.397866741754113\nleaf_count=18 37 5 215 8 252 32 23 6 3 730 37 21 813\ninternal_value=0 0.00368286 0.000840791 0.00150246 -0.000159723 0.00923122 -0.00913267 0.00894208 0.00983963 0.0104528 -0.0101829 -0.0101538 -0.0101454\ninternal_weight=0 39.7517 26.2867 25.2026 20.6001 13.465 16.0312 4.60252 12.9526 12.0049 13.4304 12.5684 11.7443\ninternal_count=2200 1269 486 481 260 783 931 221 765 733 894 871 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=357\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=18.5263 6.21944 2.62317 3.0831 1.88547 1.26758 0.916349 0.616619 0.0126382 0.001606 0.000121976 1.66371e-05 3.67826e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 0.58644753314242826 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=5.899373778438853e-05 -0.0036830783780547965 -0.01439811207144237 0.010573190046657506 -0.013992578787250113 0.00050358155141071431 0.011260899740953836 -0.010600559464756971 0.00073149285890393673 0.010203015748694883 -0.010270413608266155 -0.010176206794196414 0.010146405758510618 -0.010142966924389556\nleaf_weight=1.3576234653592099 2.5934638455510131 1.0839268565177942 3.8008488155901459 0.94016885012388485 19.654242222197354 1.1289846003055561 0.85387034714221854 0.76469670981168736 0.54665371403098006 0.81617553997784753 0.34302607085555692 10.317970143631099 11.286069612950085\nleaf_count=7 37 5 215 8 252 12 23 6 31 37 21 733 813\ninternal_value=0 0.00366064 0.000833798 0.00149001 -0.000158192 0.00921722 -0.00912065 0.00892478 0.0102539 -0.010181 -0.0101522 0.0101493 -0.0101439\ninternal_weight=0 39.5951 26.2439 25.16 20.5944 13.3512 15.8926 4.56555 11.9936 13.2991 12.4453 10.8646 11.6291\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=358\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 12 1 3 0 13 12 3 12 3 3 4\nsplit_gain=18.2933 6.17336 2.57221 3.04995 1.87853 1.2658 0.919651 0.6158 0.0122492 0.00155899 0.00011836 1.61444e-05 3.56843e-06\nthreshold=1.2071296172255412 0.80845556346269254 2.8519184598181413 0.95282455020400814 1.2351688403888856 0.31415341067031349 0.97735317110040087 4.6533632910829281 0.17408222448223767 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -2 -4 -7 -8 -11 -10 -12\nright_child=6 2 3 4 -6 8 9 -9 11 10 12 -13 -14\nleaf_value=5.8404827722941388e-05 -0.0036566248457898611 -0.014257929088872967 0.010569032070037551 0.0019983574593956653 -0.0043905050566741292 0.011247018049942771 -0.010594508134722647 0.0007244430638102241 0.010200967286064136 -0.010267680604451769 -0.010174425235891096 0.010144927844788773 -0.010141524130771637\nleaf_weight=1.3575940616428841 2.5861405283212653 1.0836395174264932 3.7645027590915587 13.643946109339597 6.9448122158646575 1.1191236823797215 0.845854626968502 0.76441899314522732 0.54132255725562473 0.80826846696436305 0.33967206533998151 10.216785121709107 11.175352870486675\nleaf_count=7 37 5 215 130 130 12 23 6 31 37 21 733 813\ninternal_value=0 0.00363883 0.000826856 0.00147765 -0.000156675 0.00920576 -0.00910857 0.0089074 0.0102513 -0.0101792 -0.0101507 0.0101477 -0.0101425\ninternal_weight=0 39.4361 26.2013 25.1177 20.5888 13.2348 15.7553 4.52892 11.8772 13.1691 12.3233 10.7581 11.515\ninternal_count=2200 1269 486 481 260 783 931 221 776 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=359\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 2 3 0 0 13 3 13 12 3 3 4\nsplit_gain=18.0649 6.1257 2.56163 2.56609 1.79736 1.26402 0.922916 0.0118723 0.00810347 0.00151336 0.000114851 1.56658e-05 3.46189e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.77035900000382884 1.3414526916016356 1.0188919694060079 0.31415341067031349 0.97735317110040087 0.17408222448223767 0.81992547120608383 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 4 -4 -1 -2 -7 -5 -8 -11 -9 -12\nright_child=6 2 3 8 -6 7 9 11 -10 10 12 -13 -14\nleaf_value=5.7822299852977039e-05 -0.0036302958556444281 -0.019739630976026205 0.0061601407059601763 -0.011938054297063516 0.00025919251393350556 0.011233303955947864 -0.010588519080686263 0.010198939760809553 -0.010469945324660914 -0.010264975455735662 -0.010172662082892699 0.010143465923118147 -0.010140096203119422\nleaf_weight=1.3575649745762337 2.5788842141628256 0.59226571768522518 7.5220046415925088 0.61575147509574779 16.449473844841123 1.1093341261148442 0.83790953271090884 0.53604232612997194 0.96548620332032442 0.80043588764965434 0.33635026961564918 10.116576896980403 11.065706625580786\nleaf_count=7 37 3 259 5 179 12 23 31 40 37 21 733 813\ninternal_value=0 0.00361838 0.000820411 0.00129696 0.00211085 0.00919426 -0.00909643 0.0102488 -0.0110416 -0.0101774 -0.0101492 0.0101463 -0.0101411\ninternal_weight=0 39.2645 26.145 25.5527 23.9715 13.1195 15.6193 11.762 1.58124 13.0404 12.2025 10.6526 11.4021\ninternal_count=2200 1269 486 483 438 783 931 776 45 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=360\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 1 13 2 3 1 2 13 3 12 3\nsplit_gain=17.8492 6.38913 2.78279 3.37666 1.83344 1.26665 1.20276 0.626876 0.355979 0.0809542 0.00513622 0.000109392 9.58782e-06\nthreshold=5.4117715327450009 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.95879509718582689 0.56803303682406159 1.2471304352583659 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2306326518141948 5.5009394152753464 1.2537081564319763\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 8 -2 -1 -5 -7 -4 -9 -6 -12 -13\nright_child=4 2 3 6 10 7 -8 9 -10 -11 11 12 -14\nleaf_value=-0.0063233841120445486 0.01040370659335889 -0.011327144537874687 0.011001226640409527 0.0011436442463856548 -0.010852699347052061 0.0019210696910235742 -0.0044390457216408339 0.013987703543582466 0.0052960764887112644 0.010248861868848507 -0.01026911218422601 -0.010191072933484336 -0.010141405453371884\nleaf_weight=0.5062994621694078 0.44538836926221748 1.8073722720146204 3.1681030215695527 15.429636728018524 1.1331855952739704 0.93197209108620782 5.1462976401671758 0.61143632233142753 1.6702883709222076 10.955593630671499 0.73018537182360788 0.4020732780918469 11.654999568127094\nleaf_count=18 8 11 181 150 29 32 79 3 47 730 35 24 853\ninternal_value=0 0.0034169 0.000662266 0.00151491 -0.00956843 0.0091827 -0.000252656 0.00981081 0.00903172 0.0104465 -0.0102074 -0.0101503 -0.0101431\ninternal_weight=0 40.227 27.2217 25.4143 14.3658 13.0053 20.5759 12.499 4.83839 11.567 13.9204 12.7873 12.0571\ninternal_count=2200 1251 468 457 949 783 229 765 228 733 941 912 877\nis_linear=0\nshrinkage=0.01\n\n\nTree=361\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 2 3 0 0 13 3 13 12 3 3 4\nsplit_gain=17.6389 6.02258 2.48994 2.51773 1.76104 1.2724 0.923657 0.0111995 0.00773933 0.00143929 0.000107953 1.52442e-05 3.25929e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.77035900000382884 1.3414526916016356 1.0188919694060079 0.31415341067031349 0.97735317110040087 0.17408222448223767 0.81992547120608383 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 4 -4 -1 -2 -7 -5 -8 -11 -9 -12\nright_child=6 2 3 8 -6 7 9 11 -10 10 12 -13 -14\nleaf_value=-5.0447882619928167e-06 -0.0036054864832975805 -0.019466618499404148 0.0061156175426588869 -0.011907824834750129 0.00025739757883995739 0.011208019455107934 -0.010577904391514832 0.010195746973539048 -0.010463757694106344 -0.01025955921733218 -0.010169194316319956 0.010140640230602283 -0.010137283904909256\nleaf_weight=1.3533155731856812 2.5711361747235051 0.59172862023115413 7.4622952658683124 0.60889325290918239 16.428329980932176 1.0913579016923893 0.82550393976271053 0.52873886469751497 0.95044790953397751 0.78475193306803603 0.32980985101312299 9.9223866192623955 10.849530318751929\nleaf_count=7 37 3 259 5 179 12 23 31 40 37 21 733 813\ninternal_value=0 0.00357973 0.000812173 0.00128367 0.00208723 0.00916852 -0.00907458 0.0102441 -0.0110276 -0.010174 -0.0101462 0.0101434 -0.0101382\ninternal_weight=0 38.9375 26.0417 25.45 23.8906 12.8958 15.3607 11.5425 1.55934 12.7896 11.9641 10.4511 11.1793\ninternal_count=2200 1269 486 483 438 783 931 776 45 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=362\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 1 13 0 3 2 3 3 12 3 3\nsplit_gain=17.4269 6.28358 2.72001 3.32048 1.81999 1.27047 1.1688 0.357897 0.0108553 0.00493335 0.000106261 1.47921e-05 9.00233e-06\nthreshold=5.4117715327450009 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.95879509718582689 0.31415341067031349 1.2471304352583659 1.1348528270257934 0.17408222448223767 1.2306326518141948 5.5009394152753464 0.61313736928646123 1.2537081564319763\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -2 -1 -5 -4 -7 -6 -11 -10 -12\nright_child=4 2 3 6 9 8 -8 -9 11 10 12 -13 -14\nleaf_value=-4.9947896594976876e-06 0.010293921834434797 -0.011206990150778331 0.010996453935550675 0.0011258600430011779 -0.010841497685968276 0.011194774517816662 -0.0043882079805547319 0.0052487335890068201 0.010193772507246993 -0.010265436223387069 -0.010187224839620278 0.010139222040501852 -0.010138622519620078\nleaf_weight=1.3533180989325035 0.44734510406851669 1.8051316440105463 3.1235579093918231 15.414019744843246 1.1151008186861862 1.0817706733942021 5.1213231775909653 1.6585987433791158 0.52357872016727824 0.7192100565880527 0.39424678031355043 9.8250243179500085 11.430186903104184\nleaf_count=7 8 11 181 150 29 12 79 47 31 35 24 733 853\ninternal_value=0 0.00337698 0.000652743 0.00149834 -0.00955403 0.00915688 -0.000249297 0.00900297 0.0102416 -0.0102041 -0.0101474 0.010142 -0.0101402\ninternal_weight=0 39.9063 27.1226 25.3175 14.1061 12.7837 20.5353 4.78216 11.4304 13.6587 12.5436 10.3486 11.8244\ninternal_count=2200 1251 468 457 949 783 229 228 776 941 912 764 877\nis_linear=0\nshrinkage=0.01\n\n\nTree=363\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 2 3 0 0 13 3 13 12 3 3 4\nsplit_gain=17.2232 5.92325 2.42091 2.47046 1.72536 1.26854 0.924309 0.0105219 0.00739258 0.00136904 0.000101472 1.43535e-05 3.06865e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.77035900000382884 1.3414526916016356 1.0188919694060079 0.31415341067031349 0.97735317110040087 0.17408222448223767 0.81992547120608383 5.4588099803130126 1.2471304352583659 0.61313736928646123 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 4 -4 -1 -2 -7 -5 -8 -11 -9 -12\nright_child=6 2 3 8 -6 7 9 11 -10 10 12 -13 -14\nleaf_value=-4.944846420204095e-06 -0.0035809506606270971 -0.019203723969927197 0.0060711327543851246 -0.011878200291390702 0.00025561933016948215 0.011181687943145027 -0.010567514475707166 0.010191818045825408 -0.010457680888653403 -0.0102542561441612 -0.010165796864785128 0.01013781824040463 -0.010134528083797008\nleaf_weight=1.3533205911517132 2.5634885299950829 0.59098066389560955 7.4035867629572811 0.60210487991571315 16.407386186532676 1.0722540244460095 0.81328346766531368 0.51846792735159297 0.93566867988556623 0.76936909276991983 0.32339422963559528 9.7286037961021048 10.637518796138464\nleaf_count=7 37 3 259 5 179 12 23 31 40 37 21 733 813\ninternal_value=0 0.00354162 0.00080403 0.00127049 0.00206385 0.0091452 -0.00905254 0.0102392 -0.0110139 -0.0101708 -0.0101432 0.0101406 -0.0101355\ninternal_weight=0 38.6124 25.9397 25.3487 23.811 12.6726 15.1071 11.3193 1.53777 12.5436 11.7303 10.2471 10.9609\ninternal_count=2200 1269 486 483 438 783 931 776 45 894 871 764 834\nis_linear=0\nshrinkage=0.01\n\n\nTree=364\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 2 1 2 13 3 12 3 2 3 4\nsplit_gain=17.0289 6.52607 2.57347 3.42549 1.40579 1.2727 0.636646 0.359784 0.0783694 0.000896393 1.26448e-05 3.27217e-06 2.48431e-06 2.34632e-06 2.29784e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.56803303682406159 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 0.37925891762420993\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -7 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 4 -6 6 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0064927976081224316 -0.010496114795309057 -0.011089515630781475 0.010991685302608762 0.0010626130430607564 -0.0047837902980325036 0.0017714673280673269 0.013932371520452867 0.005201539796792728 0.010239311477983553 -0.010149432576912022 -0.010164793682463067 -0.010161660100988949 -0.010159170691535421 -0.010194268264945532 -0.010133607819902477\nleaf_weight=0.500451710075139 0.74680117052048345 1.8027017787098909 3.0797570412978557 16.23238257505 5.508595658466219 0.91678623110055824 0.60775101184844871 1.6470910124480722 10.537664022296665 0.39630504418164381 0.36749645695090194 0.30078093986958165 0.31933681853115559 0.4720070967450738 10.002797969616948\nleaf_count=18 30 11 181 160 96 32 3 47 730 28 25 20 22 27 770\ninternal_value=0 0.00313631 0.000471332 0.00125873 -0.000418713 0.00913347 0.00978179 0.00897408 0.0104407 -0.0101601 -0.0101389 -0.0101355 -0.0101699 -0.0101801 -0.0101344\ninternal_weight=0 40.8332 28.2705 26.4678 21.741 12.5627 12.0622 4.72685 11.1454 12.6055 11.8587 10.6711 1.18765 0.791344 10.3036\ninternal_count=2200 1278 495 484 256 783 765 228 733 922 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=365\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 0 3 3 3 3 12 3 2 3 4\nsplit_gain=16.8333 6.46843 2.52598 3.38541 1.38144 1.27646 0.362241 0.00992583 0.000871537 1.39823e-05 1.22685e-05 3.17549e-06 2.41031e-06 2.27593e-06 2.22937e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 0.37925891762420993\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-6.6084639681949215e-05 -0.010491416489222518 -0.010993792749832785 0.010466198255462904 0.0010519381607043085 -0.0047499187544144247 0.011157534987784668 0.0038503355852461188 0.010188777954432595 -0.010147924913232053 0.010135109156306679 -0.010163133512241801 -0.010160027900803878 -0.010157566316987889 -0.010192303734011927 -0.010132260417643228\nleaf_weight=1.3491193912923325 0.73969981539994378 1.8002263456583047 3.6178357638418701 16.233132056891922 5.4924795730039468 1.0547636449336995 1.0730839669704435 0.51145984884351392 0.39241974148899206 9.5418991390615684 0.3638989394530644 0.29783572163432737 0.31620904803276062 0.46740017272531986 9.9045784603804332\nleaf_count=7 30 11 218 160 96 12 10 31 28 733 25 20 22 27 770\ninternal_value=0 0.00311726 0.000467553 0.00124862 -0.000414837 0.00911909 0.00895277 0.0102347 -0.0101585 0.0101378 -0.0101375 -0.0101341 -0.0101682 -0.0101783 -0.0101331\ninternal_weight=0 40.674 28.2168 26.4165 21.7256 12.4572 4.69092 11.1081 12.482 10.0534 11.7423 10.5663 1.17603 0.783609 10.2024\ninternal_count=2200 1278 495 484 256 783 228 776 922 764 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=366\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 0 3 3 3 3 12 3 2 3 4\nsplit_gain=16.6404 6.41361 2.47941 3.34694 1.35749 1.27438 0.36375 0.00962132 0.000847355 1.35679e-05 1.1903e-05 3.08156e-06 2.33848e-06 2.20761e-06 2.16281e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 0.37925891762420993\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-6.5421819419692712e-05 -0.010486761066397851 -0.010899046153716188 0.010462627536581108 0.0010413707562614662 -0.0047161998893415951 0.011144893399787557 0.0038201190050197466 0.010186874511235513 -0.010146432861395931 0.0101337469658995 -0.010161490453152741 -0.010158412194872932 -0.010155978528143143 -0.010190359178772345 -0.0101309274512115\nleaf_weight=1.3491524942219246 0.73266316391527553 1.7977297380566621 3.5830539660528329 16.233875595033172 5.4765115268528453 1.0454471707344044 1.0707679279148576 0.50646488182246585 0.38857194781303295 9.4482189221307618 0.36033604945987363 0.29491886403411527 0.31311141885817051 0.46283731982111931 9.8073104042559844\nleaf_count=7 30 11 218 160 96 12 10 31 28 733 25 20 22 27 770\ninternal_value=0 0.00309866 0.000463826 0.00123864 -0.000410994 0.00910727 0.0089343 0.0102323 -0.0101569 0.0101364 -0.0101361 -0.0101328 -0.0101665 -0.0101765 -0.0101317\ninternal_weight=0 40.5112 28.1619 26.3642 21.7104 12.3493 4.65382 11.0001 12.3597 9.95468 11.6271 10.4626 1.16452 0.775949 10.1022\ninternal_count=2200 1278 495 484 256 783 228 776 922 764 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=367\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 2 1 2 13 3 12 3 2 3 4\nsplit_gain=16.4499 6.35914 2.43372 3.30886 1.33394 1.27255 0.643185 0.365477 0.0758295 0.000823833 1.15486e-05 2.99048e-06 2.26884e-06 2.1414e-06 2.09832e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.56803303682406159 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 0.37925891762420993\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -7 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 4 -6 6 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0065730889336590628 -0.010482147967162599 -0.010805258267132453 0.010984649528525337 0.0010309099246928884 -0.0046826340108348562 0.0016677601305316583 0.013878473989787594 0.0050896662715786247 0.010232421977485228 -0.010144955857722229 -0.010159864046664007 -0.010156813159348452 -0.010154406802268215 -0.010188434805735806 -0.010129607682368171\nleaf_weight=0.49729099590331216 0.72569067217409511 1.7952130511403108 2.9966722335666445 16.234612969681624 5.4606901211664072 0.90664360020309587 0.60408590734004874 1.6203986862674353 10.234328453429042 0.38476132042705902 0.35680746845900913 0.29203011374920507 0.31004365161061287 0.45831813290715218 9.7109844572842103\nleaf_count=18 30 11 181 160 96 32 3 47 730 28 25 20 22 27 770\ninternal_value=0 0.0030801 0.000460123 0.00122873 -0.000407184 0.0090954 0.00975881 0.00891576 0.0104356 -0.0101554 -0.0101348 -0.0101314 -0.0101648 -0.0101747 -0.0101304\ninternal_weight=0 40.3499 28.1076 26.3124 21.6953 12.2423 11.7451 4.61707 10.8384 12.2386 11.5129 10.3598 1.15312 0.768362 10.003\ninternal_count=2200 1278 495 484 256 783 765 228 733 922 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=368\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 2 3 2 0 13 3 13 3 3 3 0\nsplit_gain=16.2682 5.65993 2.28859 2.3773 1.66502 1.28192 0.926694 0.00907652 0.00676075 0.00145693 0.000633578 1.32292e-05 6.88536e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.77035900000382884 1.3414526916016356 1.1348528270257934 0.31415341067031349 0.97735317110040087 0.17408222448223767 0.81992547120608383 1.141867091393326 1.2351688403888856 0.61313736928646123 1.180079175726781\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 4 -4 -1 -2 -7 -5 -8 -11 -9 -12\nright_child=6 2 3 8 -6 7 9 11 -10 10 12 -13 -14\nleaf_value=-0.00012516342353824153 -0.0035171173632236531 -0.018667074408460372 0.0057809825640370424 -0.011823407846630149 0.000145727128893831 0.011121546396542777 -0.011236154809741978 0.010183946313996628 -0.010446355542920723 -0.010394367156976088 -0.01016739725240434 0.010131122016143135 -0.010129624763913129\nleaf_weight=1.3449888564646233 2.5422357264906159 0.59039387851953762 7.8695588354021373 0.58937107771634945 15.710219972766934 1.0283146277070034 0.1256395410746326 0.49965989030897517 0.90244270488619804 1.0006770351901639 0.50621990393847127 9.2669312208890897 10.337140144780276\nleaf_count=7 37 3 238 5 200 12 2 31 40 35 33 733 824\ninternal_value=0 0.00345506 0.000793651 0.00125192 0.00202645 0.00908089 -0.00900038 0.0102279 -0.0109904 -0.010165 -0.0101536 0.0101338 -0.0101314\ninternal_weight=0 37.8019 25.662 25.0716 23.5798 12.1399 14.5119 10.7949 1.49181 11.9697 11.844 9.76659 10.8434\ninternal_count=2200 1269 486 483 438 783 931 776 45 894 892 764 857\nis_linear=0\nshrinkage=0.01\n\n\nTree=369\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 0 3 3 3 3 12 3 2 3 1\nsplit_gain=16.0835 6.24663 2.37978 3.25255 1.30155 1.2797 0.369984 0.00879838 0.000799401 1.28366e-05 1.12541e-05 2.81288e-06 2.1706e-06 2.06143e-06 2.05626e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00012390579578172234 -0.010477358493387424 -0.010693161211651259 0.010454580790308633 0.0010182101171025838 -0.0046371260747220628 0.011109331836973976 0.0037227364660819568 0.010182091960964972 -0.010142462738756077 0.010129801324116684 -0.010156665464652388 -0.010152595553693957 -0.010151724734604151 -0.010185401529308495 -0.010126963534437625\nleaf_weight=1.3450516127049912 0.71312751155346532 1.7924332246184373 3.5025943238288191 16.214632639661435 5.433102346956729 1.0191964730620373 1.0645629595965145 0.49477783124893804 0.37791913375258335 9.1759138852357847 0.34986165817826886 0.32365726865827937 0.30463659204542637 0.45064373593777418 9.484937201254068\nleaf_count=7 30 11 218 160 96 12 10 31 28 733 25 22 22 27 768\ninternal_value=0 0.00304364 0.000454538 0.00121676 -0.000401154 0.00906893 0.00888545 0.0102256 -0.0101526 0.0101325 -0.0101321 -0.0101288 -0.010162 -0.0101718 -0.0101278\ninternal_weight=0 40.0423 28.0073 26.2149 21.6477 12.0349 4.56716 10.6899 12.0048 9.67069 11.2917 10.1585 1.1332 0.75528 9.80859\ninternal_count=2200 1278 495 484 256 783 228 776 922 764 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=370\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 3 0 3 3 3 3 12 3 2 3 1\nsplit_gain=15.8994 6.19321 2.336 3.21543 1.27891 1.27748 0.371397 0.00852888 0.000777202 1.2456e-05 1.09193e-05 2.72983e-06 2.10594e-06 1.99961e-06 1.99478e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 1.2471304352583659 0.31415341067031349 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00012266083321687591 -0.010472835298893913 -0.010601576134958317 0.010451074449121456 0.0010079828170931984 -0.0046039160852497808 0.011097262263663506 0.0036933190278242113 0.010180256537886437 -0.01014102645019168 0.010128493367430904 -0.010155088269638091 -0.010151054406725337 -0.01015019636356744 -0.010183527894267488 -0.010125683849801512\nleaf_weight=1.3451137393712986 0.70633518882095714 1.7898515537381197 3.4689005371183184 16.215354131534699 5.4176486060023299 1.0101472884416569 1.0623231437057254 0.48994258791208167 0.37421150133013614 9.085779349319635 0.34643400460481544 0.32048522960394521 0.30165059398859739 0.44624143280088902 9.3917409330606443\nleaf_count=7 30 11 218 160 96 12 10 31 28 733 25 22 22 27 768\ninternal_value=0 0.00302525 0.000450896 0.00120698 -0.00039743 0.00905691 0.00886675 0.0102233 -0.0101511 0.0101311 -0.0101308 -0.0101275 -0.0101604 -0.0101701 -0.0101265\ninternal_weight=0 39.8851 27.9541 26.1642 21.633 11.931 4.53122 10.5859 11.8871 9.57572 11.1808 10.0587 1.1221 0.747892 9.71223\ninternal_count=2200 1278 495 484 256 783 228 776 922 764 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=371\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 3 1 3 13 3 12 3 2 3 1\nsplit_gain=15.7175 6.14011 2.29305 3.17868 1.27762 1.25665 0.652539 0.372785 0.0734662 0.000755601 1.05938e-05 2.64898e-06 2.04321e-06 1.93966e-06 1.93499e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.2471304352583659 0.46249402795761568 1.2190084357665867 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.3048378189115397 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0067353475691434173 -0.010468352928351261 -0.010510898157018807 0.010447588939553333 0.0009978587171192905 0.0015216744429679032 -0.0045708601969076147 0.013826441025418069 0.0036640854295518304 0.010223522285718645 -0.010139604867435193 -0.010153527100875961 -0.010149529371200684 -0.010148683675118451 -0.010181673583032035 -0.010124418557018487\nleaf_weight=0.49174125958233972 0.69960496481507917 1.787252858281138 3.4355244487524059 16.216069705784324 0.89239566493779321 5.4023372344672671 0.60047569870948692 1.0601020418107507 9.8434014199301583 0.37053971830755361 0.34303939994424482 0.31734378729015489 0.29869341105222702 0.44188131578266621 9.2994480440393072\nleaf_count=18 30 11 218 160 32 96 3 10 730 28 25 22 22 27 768\ninternal_value=0 0.0030069 0.000447278 0.00119726 0.00904485 -0.000393738 0.00972935 0.00884799 0.0104307 -0.0101496 -0.0101295 -0.0101262 -0.0101588 -0.0101684 -0.0101252\ninternal_weight=0 39.7293 27.9013 26.114 11.828 21.6184 11.3363 4.49563 10.4439 11.7706 11.0709 9.95983 1.11111 0.740575 9.61679\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 49 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=372\nnum_leaves=14\nnum_cat=0\nsplit_feature=1 1 2 3 0 0 13 3 13 3 3 3 0\nsplit_gain=15.538 5.45905 2.18688 2.30317 1.62695 1.28457 0.928814 0.00804619 0.00627665 0.00143763 0.000619657 1.21585e-05 6.46203e-06\nthreshold=1.2071296172255412 0.80845556346269254 0.77035900000382884 1.3414526916016356 1.0188919694060079 0.31415341067031349 0.97735317110040087 0.17408222448223767 0.81992547120608383 1.141867091393326 1.2351688403888856 0.61313736928646123 1.180079175726781\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 4 -4 -1 -2 -7 -5 -8 -11 -9 -12\nright_child=6 2 3 8 -6 7 9 11 -10 10 12 -13 -14\nleaf_value=-0.00018073884583080408 -0.0034643930722713608 -0.018260772778529805 0.0059731483998743109 -0.011779006741531966 0.00024744413423858171 0.011074951463865388 -0.011230254764033266 0.010177469636944766 -0.010437192085659215 -0.010389499971094753 -0.010161741117742002 0.010125976319065078 -0.010124496106535588\nleaf_weight=1.3409964106976975 2.5252585485577574 0.58895930647850292 7.1419530343264404 0.57888023555278667 16.263927693478763 0.9934936985373487 0.12426569499075313 0.48341329395770927 0.87639319803565741 0.97796899639069934 0.48874600324779649 8.9114892156794649 9.9377235779538733\nleaf_count=7 37 3 259 5 179 12 2 31 40 35 33 733 824\ninternal_value=0 0.00338578 0.000784428 0.00123561 0.00199456 0.00903013 -0.0089573 0.0102191 -0.0109709 -0.0101605 -0.0101488 0.0101286 -0.0101262\ninternal_weight=0 37.1795 25.4501 24.8612 23.4059 11.7294 14.054 10.3884 1.45527 11.5287 11.4044 9.3949 10.4265\ninternal_count=2200 1269 486 483 438 783 931 776 45 894 892 764 857\nis_linear=0\nshrinkage=0.01\n\n\nTree=373\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 3 3 3 3 3 12 3 2 1 3\nsplit_gain=15.3684 6.03016 2.24328 3.12371 1.2822 1.22363 0.374669 0.00779999 0.000733501 1.17976e-05 1.03286e-05 2.49144e-06 1.95522e-06 1.91766e-06 1.20356e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.2471304352583659 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -13 -14\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 13 14 -15 -16\nleaf_value=-0.00017891962604370555 -0.010463791709574802 -0.010405126798253159 0.01044286843145101 0.00098521527881672774 0.011063287075003835 -0.0045211109427111245 0.0036211984208770315 0.010175681391256663 -0.010137217639133649 0.010124708152881171 -0.010150456695778078 -0.010147126364068105 -0.010153610016914559 -0.010121924919685544 -0.0101793881369648\nleaf_weight=1.3410871140658844 0.6875042924657454 1.7842353284359003 3.3868252411484745 16.197693945840005 0.98464014381170173 5.3749655913561574 1.0562208611518142 0.47868694737553497 0.36395941395312437 8.8239181609824282 0.33635707851499219 0.31228233501315017 0.38927157316356897 9.1175249973312003 0.33871747553348541\nleaf_count=7 30 11 218 160 12 96 10 31 28 733 25 22 28 768 21\ninternal_value=0 0.0029712 0.000441913 0.00118584 0.00901797 -0.000386721 0.00882119 0.0102169 -0.010147 0.0101273 -0.010127 -0.0101237 -0.0101561 -0.0101228 -0.0101656\ninternal_weight=0 39.4283 27.7999 26.0157 11.6283 21.5727 4.44305 10.2872 11.5456 9.30261 10.8581 9.76616 1.09195 9.42981 0.727989\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=374\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 0 3 3 3 3 12 3 2 1 3\nsplit_gain=15.1927 5.97811 2.20209 3.0879 1.27984 1.2043 0.376 0.00756143 0.00071311 1.14476e-05 1.00216e-05 2.41791e-06 1.89705e-06 1.86038e-06 1.16751e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.1427926010382323 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -13 -14\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 13 14 -15 -16\nleaf_value=-0.00017711865879863964 -0.010459395666528107 -0.010316510455110199 0.010439429747311305 0.001407712649984178 0.011051760075809356 -0.0035024578606190591 0.0035924107944851694 0.010173910979935393 -0.010135834755006583 0.010123452222410101 -0.010148942820262144 -0.010145641341856802 -0.010152062358292271 -0.010120696558132573 -0.010177576662319689\nleaf_weight=1.3411769196391095 0.68094815406948228 1.7815793007612253 3.3542247908189919 13.695643534883859 0.97585448622703452 7.862777503207325 1.0540489479899404 0.47400597855448623 0.36038686800747999 8.7371971169486624 0.33305969554930825 0.3092200979590406 0.38545671291649342 9.0278940815478546 0.33540656883269548\nleaf_count=7 30 11 218 147 12 109 10 31 28 733 25 22 28 768 21\ninternal_value=0 0.00295301 0.000438354 0.00117625 0.00900575 -0.000383123 0.00880226 0.0102147 -0.0101456 0.010126 -0.0101257 -0.0101225 -0.0101546 -0.0101215 -0.0101639\ninternal_weight=0 39.2765 27.7483 25.9667 11.5282 21.5584 4.40827 10.1871 11.4324 9.2112 10.7514 9.67017 1.08125 9.33711 0.720863\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=375\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 3 1 2 13 3 12 3 2 1 3\nsplit_gain=15.019 5.92637 2.16167 3.05244 1.28212 1.20422 0.661653 0.378031 0.0712001 0.000693273 9.72346e-06 2.34637e-06 1.84057e-06 1.80471e-06 1.13253e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.2471304352583659 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -13 -14\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 13 14 -15 -16\nleaf_value=-0.0068933458754755969 -0.010455039521771537 -0.010228751948003181 0.010973957068953768 0.00098062401009033399 0.0013776451042067284 -0.0044889780121548381 0.013775925536484931 0.0048379269244844285 0.010214976929034447 -0.010134466378716726 -0.010147443909962747 -0.010144171483044345 -0.010150530716049625 -0.010119481363395995 -0.010175783763021197\nleaf_weight=0.48637129925191303 0.67445209808647533 1.7789092510938669 2.8122763754799989 16.186540415510539 0.87867100443690915 5.3575846487656227 0.59690201282501121 1.5615509701892731 9.4671452660113555 0.35684889834374078 0.329794155433773 0.30618744436651368 0.38167865108698606 8.9391327966004592 0.33212743233889341\nleaf_count=18 30 11 181 160 32 96 3 47 730 28 25 22 28 768 21\ninternal_value=0 0.0029349 0.000434825 0.00116673 0.00899348 -0.000379554 0.0096996 0.00878326 0.0104262 -0.0101441 -0.0101244 -0.0101212 -0.010153 -0.0101203 -0.0101623\ninternal_weight=0 39.126 27.6969 25.918 11.4291 21.5441 10.9427 4.37383 10.064 11.3202 10.6458 9.57511 1.07065 9.24532 0.713806\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=376\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 0 3 3 3 3 12 3 2 1 3\nsplit_gain=14.847 5.87274 2.12199 3.0162 1.28648 1.18405 0.381043 0.00713371 0.000673979 1.11866e-05 9.43411e-06 2.27699e-06 1.78582e-06 1.75073e-06 1.09862e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.1427926010382323 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -13 -14\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 13 14 -15 -16\nleaf_value=-0.00023356713604236475 -0.010450723163661009 -0.010141839414079987 0.010433031259940346 0.0013994807505958897 0.011030435909215945 -0.0034734648964662345 0.0035112020346707356 0.010171259639556271 -0.010133111596030411 0.010121038660228688 -0.010145960566462796 -0.010142716825410309 -0.010149014523341365 -0.010118278573154759 -0.010174009223310989\nleaf_weight=1.3371045365929592 0.66801560390740533 1.7762259617447878 3.2926342925056842 13.685373436659576 0.9596746563911428 7.8446596246212712 1.0485743544995783 0.46774146053939958 0.35334518738090881 8.5696393670514208 0.32656014058738847 0.30318408645689388 0.37793705333024263 8.8512339284643513 0.3288797764107585\nleaf_count=7 30 11 218 147 12 109 10 31 28 733 25 22 28 768 21\ninternal_value=0 0.00291646 0.000431287 0.0011572 0.00897857 -0.00037602 0.00876113 0.0102107 -0.0101427 0.0101236 -0.0101232 -0.01012 -0.0101515 -0.0101191 -0.0101606\ninternal_weight=0 38.9816 27.6475 25.8712 11.3342 21.53 4.34121 9.99706 11.2092 9.03738 10.5411 9.48098 1.06016 9.15442 0.706817\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=377\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 3 3 3 3 3 12 3 2 1 3\nsplit_gain=14.6774 5.82167 2.08307 2.98147 1.28398 1.18511 0.382287 0.00691575 0.000655212 1.08547e-05 9.15381e-06 2.2098e-06 1.73265e-06 1.69846e-06 1.06572e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.2471304352583659 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -13 -14\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 13 14 -15 -16\nleaf_value=-0.00023121096154585206 -0.010446445800967683 -0.01005575892401521 0.010429649291851138 0.00097600402372580847 0.011019293199769398 -0.0044570303515749036 0.0034831164137464664 0.010169534458920444 -0.010131770991776944 0.010119820099857842 -0.010144492548255739 -0.010141277009205878 -0.010147513825675747 -0.010117087402601699 -0.010172252861446369\nleaf_weight=1.3372218795120705 0.66163818165659805 1.7735302895307565 3.2609238009899881 16.175483169034127 0.95108169317245383 5.3404069431126109 1.0464697610586879 0.46316552348434825 0.34987540449947008 8.4853868531063181 0.32335737161338229 0.3002097625285377 0.37423157878220081 8.7641888791695219 0.32566330675035715\nleaf_count=7 30 11 218 160 12 96 10 31 28 733 25 22 28 768 21\ninternal_value=0 0.00289846 0.000427805 0.00114781 0.00896619 -0.000372516 0.00874201 0.0102086 -0.0101413 0.0101224 -0.0101219 -0.0101188 -0.0101499 -0.0101179 -0.010159\ninternal_weight=0 38.8337 27.5968 25.8233 11.2369 21.5159 4.30739 9.89963 11.0992 8.94855 10.4375 9.38776 1.04977 9.0644 0.699895\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=378\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 3 3 3 3 3 12 3 2 1 3\nsplit_gain=14.5098 5.77093 2.04488 2.9471 1.28149 1.16438 0.383507 0.00670452 0.000636956 1.05325e-05 8.88125e-06 2.1444e-06 1.68111e-06 1.64757e-06 1.03381e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.2471304352583659 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2750941039804975 1.2071296172255412 1.3210941733026873\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -13 -14\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 13 14 -15 -16\nleaf_value=-0.00022887888714478069 -0.010442207413800921 -0.0099704977169261383 0.010426288023708789 0.00096620224368224885 0.011008280771364207 -0.0044246508994294021 0.0034552098594756182 0.010167826906555391 -0.010130443755239258 0.010118614467514022 -0.010143039218942874 -0.010139851622976341 -0.010146028430683697 -0.010115909411034166 -0.010170514466973733\nleaf_weight=1.3373380303382862 0.65531932376325031 1.7708230242133165 3.2295126644894507 16.176176257431511 0.9425555095076551 5.3257667077705255 1.0443830229341982 0.45863357465714116 0.34643923956900724 8.4019516641274077 0.32018555328249831 0.29726419411599536 0.37056188378483057 8.6779897324740869 0.32247773744165897\nleaf_count=7 30 11 218 160 12 96 10 31 28 733 25 22 28 768 21\ninternal_value=0 0.0028805 0.000424342 0.00113848 0.00895377 -0.000369046 0.00872281 0.0102065 -0.0101399 0.0101212 -0.0101207 -0.0101176 -0.0101484 -0.0101167 -0.0101574\ninternal_weight=0 38.6871 27.5467 25.7758 11.1405 21.5019 4.2739 9.80314 10.9902 8.86059 10.3349 9.29544 1.03948 8.97525 0.69304\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 790 49\nis_linear=0\nshrinkage=0.01\n\n\nTree=379\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 3 3 0 2 4 13 0 1 13 13 12 13 3 3 0\nsplit_gain=14.3444 5.11989 2.04537 2.39497 2.87606 1.28604 0.940813 1.40873 3.08125 0.670516 0.0690251 0.00577857 0.00431367 0.000400697 5.78664e-05 4.85975e-05 9.77167e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.3414526916016356 0.58644753314242826 1.0188919694060079 0.56803303682406159 0.40520528501409475 0.93885093126527053 1.2764869461636768 0.46249402795761568 0.0064018138657804258 0.81992547120608383 5.4588099803130126 1.1575207857259333 1.2471304352583659 1.3210941733026873 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 7 -2 -9 -7 -11 -4 -8 -13 -14 -10 -16\nright_child=6 2 11 4 -6 9 12 8 15 10 -12 13 14 -15 16 -17 -18\nleaf_value=-0.007047089162515268 -0.011122293672011041 -0.007787140838454179 -0.011733038693251882 0.0089543007256921402 0.00043524538318006982 0.001235754237584094 -0.010720983631657761 0.020036275601339783 -0.010292741931683792 0.013726848691797959 0.010206771515633531 -0.010592424382997739 -0.010218752024571011 -0.010138553175611482 -0.010133632272141065 -0.01012954952941016 -0.010113826041224469\nleaf_weight=0.48117317166179319 1.2612559236586087 2.5017918385565343 0.56733030080795177 5.2788150422275093 15.897455822676418 0.86545023415237565 1.3742196029052127 0.61818871181458213 0.32532628811895847 0.5933641791343679 9.1050338363274914 0.53014360088855028 0.56591272260993619 0.30724484566599131 0.25663407146930595 0.41558675747364759 8.4794018650427443\nleaf_count=18 21 18 5 247 176 32 32 11 19 3 730 17 32 23 20 34 762\ninternal_value=0 0.00326826 0.000770192 0.00146573 0.00255887 0.00894128 -0.0088802 -0.003511 0.00355234 0.00966954 0.0104221 -0.0109538 -0.010198 -0.0104259 -0.0101208 -0.0102012 -0.0101144\ninternal_weight=0 36.1278 25.0828 23.6781 21.1763 11.045 13.2965 2.62036 1.3591 10.5638 9.6984 1.40472 10.6762 0.837388 9.30195 0.740913 8.73604\ninternal_count=2200 1269 486 441 423 783 931 85 64 765 733 45 846 40 814 53 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=380\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 0 2 3 3 3 12 3 1 0 1\nsplit_gain=14.1923 5.66385 1.97849 2.89519 1.28768 1.15947 0.387996 0.0063255 0.000618061 1.03039e-05 8.58664e-06 2.01031e-06 1.6415e-06 1.82469e-06 1.63322e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.1427926010382323 1.1348528270257934 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00028373175089374151 -0.010437908263262184 -0.009819644690603058 0.010974065657472212 0.0013944661343744458 0.010987895691183363 -0.0034372501354174405 0.0046592331739308832 0.010165304996070828 -0.010163414526395112 0.010116299729870326 -0.010140171425466433 -0.010137648698923451 -0.010151413184692828 -0.010118213095685114 -0.010113619868956029\nleaf_weight=1.3333091847598542 0.64382724650204082 1.7654984965920473 2.697583804838362 13.637035831809046 0.92684359848499198 7.8114455025643101 1.5219115782529113 0.45262328907847305 0.3506003813818086 8.2408711463212949 0.31392925605177779 0.2925911657512178 0.37394001521170139 0.29704409930855036 8.5098878722637874\nleaf_count=7 30 11 181 147 12 109 47 31 23 733 25 22 28 26 768\ninternal_value=0 0.00284726 0.000420083 0.00112439 0.00892615 -0.000365224 0.0086964 0.0102026 -0.0101375 0.0101189 -0.0101184 -0.0101153 -0.0101459 -0.0101367 -0.0101144\ninternal_weight=0 38.3871 27.4335 25.668 10.9536 21.4485 4.2195 9.62034 10.7818 8.69349 10.138 9.11641 1.02158 0.670984 8.80248\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=381\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 0 3 3 3 3 12 3 1 0 1\nsplit_gain=14.0303 5.61426 1.94222 2.86055 1.28505 1.13799 0.389845 0.00613249 0.000600833 9.99811e-06 8.33107e-06 1.95086e-06 1.59214e-06 1.77063e-06 1.58436e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.1427926010382323 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.0002808642642610947 -0.010433751708940368 -0.0097365915989324724 0.0104235280266422 0.0013805290408725496 0.010977248523299539 -0.0034089470622801665 0.0033540633763372019 0.010163640406989995 -0.010161764424364174 0.01011512968747216 -0.010138762148268081 -0.010136260610318372 -0.010149889762608159 -0.010117023409361837 -0.010112476951556875\nleaf_weight=1.3334518335759629 0.63767372164875169 1.7627664208412195 3.1517329569906023 13.636960411444308 0.91850690543651481 7.7976076425984493 1.0365983620285986 0.44819263834506173 0.3471679389476765 8.1598124513402563 0.3108485946431746 0.28971930779516597 0.37027453444898129 0.29412286914885044 8.4261606242507678\nleaf_count=7 30 11 218 147 12 109 10 31 23 733 25 22 28 26 768\ninternal_value=0 0.00282938 0.00041665 0.00111516 0.00891356 -0.000361818 0.00867386 0.0102005 -0.0101361 0.0101177 -0.0101172 -0.0101141 -0.0101444 -0.0101353 -0.0101133\ninternal_weight=0 38.2456 27.3857 25.6229 10.86 21.4346 4.18833 9.52651 10.676 8.60801 10.0383 9.02673 1.01157 0.664397 8.71588\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=382\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 3 1 2 13 3 12 3 1 0 1\nsplit_gain=13.8702 5.56486 1.90665 2.82738 1.28413 1.13466 0.676266 0.390968 0.0668542 0.000584077 8.08314e-06 1.89316e-06 1.54422e-06 1.71818e-06 1.537e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.2471304352583659 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0071140727211441166 -0.010429632689040236 -0.0096543113514806263 0.010968326567995013 0.00096012939229689744 0.0011388061193669734 -0.0043756784197855631 0.013678116435033595 0.0045888333535638237 0.010200844077522545 -0.01016013075404933 -0.010137366850984967 -0.010134886723432036 -0.010148381786930408 -0.010115845734390744 -0.010111345411885112\nleaf_weight=0.47842950280755658 0.63157684169709583 1.7600256651639963 2.6485374812036779 16.12734331376851 0.85669750813394685 5.2934479862451544 0.58978557586669822 1.5074199102818964 8.8422622950747591 0.34376854449510463 0.3077977430075397 0.28687524143606324 0.36664444021880627 0.29123002663254738 8.3432478280737978\nleaf_count=18 30 11 181 160 32 96 3 47 730 23 25 22 28 26 768\ninternal_value=0 0.00281165 0.000413267 0.00110605 0.00890092 -0.000358441 0.00964562 0.0086544 0.0104183 -0.0101348 -0.010116 -0.010113 -0.010143 -0.010134 -0.0101121\ninternal_weight=0 38.1039 27.3368 25.5767 10.7672 21.4208 10.2887 4.15596 9.43205 10.5711 9.93956 8.93792 1.00164 0.657874 8.63012\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=383\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 13 0 2 3 3 3 12 3 1 0 1\nsplit_gain=13.7117 5.5137 1.88026 3.0358 1.63714 1.29088 0.467813 0.00578596 0.00056778 9.78983e-06 7.84277e-06 1.83723e-06 1.49776e-06 1.66728e-06 1.49104e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.31415341067031349 1.2027776734226416 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00033442473393320522 -0.010425551211831297 -0.0077091126539514934 0.010289753433126355 -0.0093080919523691984 0.00060224462450764302 0.010957533756409966 -0.0026137928172352757 0.010161214016269564 -0.010158513972638108 0.010112887738097594 -0.010135986064698028 -0.010133526644244748 -0.010146889349955944 -0.01011468024265174 -0.010110225226368006\nleaf_weight=1.3294575512409199 0.62553611025214095 2.5824909862130907 3.6446853810921342 1.8278442742303038 18.930430702865124 0.90313796699046989 0.30443501099944104 0.44235639926046033 0.34040188509970803 8.0034157717600447 0.30477641057222982 0.2840587105602016 0.36304939351975918 0.28836529888212681 8.261141596361993\nleaf_count=7 30 20 233 17 216 12 9 31 23 733 25 22 28 26 768\ninternal_value=0 0.00279364 0.000409876 0.0012585 -0.000270398 0.00888564 0.00929503 0.0101968 -0.0101334 0.0101154 -0.0101148 -0.0101119 -0.0101415 -0.0101326 -0.010111\ninternal_weight=0 37.9683 27.2899 24.7074 20.7583 10.6784 3.94912 9.34891 10.4673 8.44577 9.84179 8.84998 0.991817 0.651415 8.5452\ninternal_count=2200 1278 495 475 233 783 242 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=384\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 13 0 2 3 3 3 12 3 1 0 1\nsplit_gain=13.554 5.46634 1.845 3.00547 1.59907 1.28813 0.465312 0.00560959 0.000551932 9.49935e-06 7.60968e-06 1.78297e-06 1.45271e-06 1.61789e-06 1.44654e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.31415341067031349 1.2027776734226416 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00033103853800470396 -0.010421507178917015 -0.0076409158390059627 0.010286964001182541 -0.0091826168781376123 0.00059613647046274042 0.01094723860881202 -0.0025882557896230829 0.010159590738515056 -0.010156913816644231 0.010111751938360508 -0.010134619114467081 -0.010132180748399992 -0.010145411982871924 -0.010113526510462233 -0.010109116157774654\nleaf_weight=1.3296257182955731 0.61955105047672887 2.5794999022036817 3.6093936469405921 1.8342600138857985 18.933137939311564 0.89498826861381431 0.30436469055712212 0.43802449945360233 0.33706765808164973 7.9246656773611903 0.30178432911634345 0.28126945067196985 0.35948907025158405 0.28552842233330011 8.1798347337171418\nleaf_count=7 30 20 233 17 216 12 9 31 23 733 25 22 28 26 768\ninternal_value=0 0.00277467 0.000406286 0.00124732 -0.000267562 0.00887288 0.00928569 0.0101948 -0.0101321 0.0101143 -0.0101137 -0.0101107 -0.0101401 -0.0101313 -0.0101099\ninternal_weight=0 37.848 27.2607 24.6812 20.7674 10.5873 3.91376 9.25768 10.3645 8.36269 9.74497 8.76289 0.982085 0.645017 8.4611\ninternal_count=2200 1278 495 475 233 783 242 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=385\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 0 3 3 3 3 12 3 1 0 1\nsplit_gain=13.3981 5.41925 1.81816 2.7678 1.28537 1.12298 0.392327 0.00543866 0.000536515 9.2175e-06 7.38325e-06 1.73022e-06 1.40905e-06 1.56997e-06 1.40331e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.1427926010382323 1.2190084357665867 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00032768640089351022 -0.010417499788490377 -0.0094452037102491296 0.010424498135994423 0.0013727024155654759 0.010937062209670802 -0.0033898620882275889 0.0032945060766366423 0.010157984081266039 -0.0101553302188345 0.010110627775209102 -0.010133266037277567 -0.010130848708330127 -0.010143949655484303 -0.010112384515126764 -0.010108019020415068\nleaf_weight=1.3297921568155278 0.61362118367105623 1.7539914771914507 3.0531805548816946 13.609911828301849 0.886903315782546 7.781774263828992 1.0327928960323332 0.43373433314263632 0.33376556262373824 7.846681984141469 0.29882122110575338 0.27850720286369224 0.35596314445137978 0.28271913062781096 8.0993186673149449\nleaf_count=7 30 11 218 147 12 109 10 31 23 733 25 22 28 26 768\ninternal_value=0 0.00275577 0.000402724 0.0010807 0.00886007 -0.000359803 0.00862228 0.0101928 -0.0101308 0.0101131 -0.0101125 -0.0101096 -0.0101387 -0.01013 -0.0101088\ninternal_weight=0 37.7288 27.2317 25.4777 10.4971 21.3917 4.08597 9.16732 10.2627 8.28042 9.64909 8.67665 0.972448 0.638682 8.37783\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=386\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 13 2 1 2 13 3 12 3 1 0 1\nsplit_gain=13.2455 5.37106 1.7896 2.95301 1.57184 1.28708 0.684655 0.465079 0.0648528 0.00052152 7.16322e-06 1.67899e-06 1.36668e-06 1.52346e-06 1.36127e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.56803303682406159 0.46249402795761568 1.2027776734226416 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -7 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 4 -6 6 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0072608145619545853 -0.010413528931358954 -0.0075372672128048313 0.010284053263619808 -0.0090910589626150371 0.00059426854709608611 0.0010009438487048889 0.013631754393442202 -0.0026142993030218741 0.01019320050197349 -0.010153762557975126 -0.010131926985083443 -0.010129530024959843 -0.010142502080948799 -0.010111254086059467 -0.010106933629160429\nleaf_weight=0.47348060365766187 0.60774604510515828 2.5722041986882713 3.5500852251425417 1.838462271727624 18.919651004485786 0.84429043717682262 0.58631931245326896 0.30344377458095539 8.5036913212388736 0.33049529884010453 0.2958868071436872 0.27577172964811225 0.3524712985381484 0.27993716392666101 8.0195861980319005\nleaf_count=18 30 20 233 17 216 32 3 9 730 23 25 22 28 26 768\ninternal_value=0 0.00273832 0.000399442 0.00122892 -0.000263522 0.00884719 0.00961492 0.00926838 0.010415 -0.0101295 -0.0101114 -0.0101085 -0.0101373 -0.0101287 -0.0101077\ninternal_weight=0 37.5916 27.1838 24.6116 20.7581 10.4078 9.9343 3.85353 9.09001 10.1619 9.55415 8.59124 0.962904 0.632408 8.29536\ninternal_count=2200 1278 495 475 233 783 765 242 733 922 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=387\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 3 3 0 0 4 13 0 13 3 12 12 3 3 3 0\nsplit_gain=13.1009 4.74887 1.98166 2.14805 2.72251 1.29077 0.954047 1.46623 3.05379 0.00553632 0.00513151 0.0040938 0.00046413 4.89152e-05 4.5263e-05 9.03545e-06 7.66432e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.3414526916016356 0.58644753314242826 1.0188919694060079 0.31415341067031349 0.40520528501409475 0.93885093126527053 1.2652873755735712 0.81992547120608383 0.17408222448223767 5.4588099803130126 5.4588099803130126 1.3210941733026873 1.2471304352583659 0.61313736928646123 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 7 -2 -9 -4 -7 -8 -11 -10 -13 -12 -16\nright_child=6 2 9 4 -6 10 11 8 13 12 15 14 -14 -15 16 -17 -18\nleaf_value=-0.00037971361944531232 -0.011116024220650809 -0.0073603110374265606 -0.011715389670895806 0.0088695852248473969 0.00044292217870942475 0.01091820983645867 -0.010704205076395865 0.020414735213183592 -0.010287581062009521 -0.010620580581762741 0.010155677849522409 -0.010201531289696527 -0.010131142934985838 -0.0101191615058929 -0.010123228353292553 0.010108478072632938 -0.010104980400738515\nleaf_weight=1.3258388899266709 1.2438760753720992 2.4789161533117356 0.56228255480527767 5.0608233083039549 15.816756731830536 0.87199056148528953 1.3473803093656886 0.60939730331301667 0.30635140277445316 0.47637019492685795 0.42813522461801579 0.52278499025851388 0.32657926715910435 0.39453673921525478 0.23713529389351418 7.696337440982461 7.8341744188219309\nleaf_count=7 21 18 5 247 176 12 32 10 19 14 31 32 26 35 20 733 762\ninternal_value=0 0.00313478 0.0007561 0.0014406 0.00248558 0.00883169 -0.00879114 -0.00333975 0.00404239 -0.0109544 0.0101892 -0.0101917 -0.0104215 -0.0101928 -0.0101114 0.010111 -0.0101055\ninternal_weight=0 35.044 24.7217 23.3565 20.8776 10.3223 12.4956 2.55416 1.31029 1.36523 8.99646 9.94148 0.802949 0.700888 8.59409 8.12447 8.07131\ninternal_count=2200 1269 486 441 423 783 931 85 64 45 776 846 40 54 814 764 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=388\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 0 3 2 3 3 3 12 3 1 0 1\nsplit_gain=12.9548 5.27115 1.73362 2.70653 1.28789 1.10135 0.395485 0.00497529 0.000506174 8.76724e-06 6.93191e-06 1.57423e-06 1.39283e-06 1.41328e-06 1.35011e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.31415341067031349 1.2471304352583659 1.1348528270257934 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.000375862108606505 -0.010409568256850441 -0.0092405359034718366 0.010992394880923566 0.00094297272701123077 0.010908367774091418 -0.0043251392033777447 0.0044903180436890846 0.010154110867525481 -0.010151677261043138 0.010107387386101676 -0.010129284513900808 -0.010127504716408919 -0.010139607057100469 -0.010109224363228057 -0.010104821050497599\nleaf_weight=1.3260297924280156 0.59708586614578862 1.7468429952859903 2.5322457803413299 16.061130706220869 0.86408914253115554 5.270673817023634 1.4834928875789044 0.42394029069691708 0.32590370159596105 7.6205757008865476 0.29009930230677028 0.27144485060125401 0.34555130731314421 0.2748960517346859 7.8638584977015853\nleaf_count=7 30 11 181 160 12 96 47 31 23 733 25 22 28 26 768\ninternal_value=0 0.0027046 0.000395058 0.0010591 0.00881871 -0.000358675 0.0085904 0.0101873 -0.0101273 0.0101098 -0.0101093 -0.0101064 -0.0101349 -0.0101261 -0.0101056\ninternal_weight=0 37.329 27.0944 25.3475 10.2346 21.3318 4.01574 8.90861 9.96884 8.04452 9.37175 8.4254 0.946351 0.620447 8.1353\ninternal_count=2200 1278 495 484 783 256 228 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=389\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 13 0 10 3 3 3 12 3 1 0 1\nsplit_gain=12.8072 5.22406 1.70592 2.87562 1.54911 1.28502 0.477482 0.00482387 0.000492024 8.50712e-06 6.72583e-06 1.52769e-06 1.35101e-06 1.37144e-06 1.30982e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.31415341067031349 3.5000000000000004 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00037205042785275758 -0.010405673401796543 -0.0073720596284993691 -0.0029043332211498348 -0.0090162527840196832 0.0005958107414977406 0.010898638546945186 0.010278850750839541 0.0101525598971469 -0.010150147296093946 0.010106307518722369 -0.010127985509713134 -0.010126220445855217 -0.010138203713706068 -0.010108125990247954 -0.010103767225716936\nleaf_weight=1.3262187428772438 0.59136492572724719 2.5620425101369646 0.29833835549652876 1.8401234932243848 18.875728053040802 0.85625117644667437 3.4728072294965386 0.41978581435978402 0.32270930055528779 7.5455516995862126 0.28724941704422136 0.26877784542739203 0.34216013457626104 0.27219021413475275 7.786419490352273\nleaf_count=7 30 20 8 17 216 12 234 31 23 733 25 22 28 26 768\ninternal_value=0 0.00268721 0.0003918 0.00120412 -0.000257998 0.00880566 0.00923592 0.0101854 -0.010126 0.0101087 -0.0101082 -0.0101053 -0.0101336 -0.0101249 -0.0101045\ninternal_weight=0 37.1968 27.049 24.487 20.7159 10.1478 3.77115 8.82159 9.87087 7.96534 9.27951 8.34245 0.93706 0.61435 8.0552\ninternal_count=2200 1278 495 475 233 783 242 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=390\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 0 1 2 13 3 12 3 1 0 1\nsplit_gain=12.6602 5.17842 1.67739 2.66163 1.28946 1.10203 0.692772 0.396003 0.0629268 0.000478261 6.52568e-06 1.48252e-06 1.31044e-06 1.33082e-06 1.27067e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.1427926010382323 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0074033661003374968 -0.010401813918793575 -0.0091018364618514411 0.010994455697116257 0.0013623105170211473 0.00086541968169008793 -0.0033642177580658645 0.013586625673597082 0.0044586946912050776 0.010185862578018644 -0.010148632791451697 -0.010126699968398011 -0.0101249489627939 -0.010136814472795701 -0.010107038745196275 -0.010102724428384802\nleaf_weight=0.46868415828794141 0.58569689188152452 1.7423596382141138 2.4914099713787468 13.555889395065607 0.83233811613172193 7.7550423210486761 0.58288657665252586 1.4764446616172788 8.1779025513678771 0.31954573094844718 0.28442716132849266 0.26613670960068692 0.33880177512764931 0.26951071992516518 7.7097354345023632\nleaf_count=18 30 11 181 147 32 109 3 47 730 23 25 22 28 26 768\ninternal_value=0 0.00266868 0.000388352 0.00104247 0.00879255 -0.000357672 0.00958382 0.00856249 0.0104121 -0.0101248 -0.0101071 -0.0101043 -0.0101322 -0.0101236 -0.0101035\ninternal_weight=0 37.083 27.0211 25.2788 10.0618 21.3109 9.59313 3.96785 8.76079 9.77385 9.18816 8.2603 0.927858 0.608312 7.97587\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=391\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 0 0 10 3 3 3 12 3 1 0 1\nsplit_gain=12.516 5.12987 1.6553 2.8263 1.55383 1.28998 0.476587 0.00455161 0.000464877 8.34832e-06 6.33177e-06 1.43872e-06 1.27105e-06 1.29141e-06 1.23272e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 1.2509949463117855 0.31415341067031349 3.5000000000000004 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00042257687551761172 -0.010397989641188723 -0.0072738755591850446 -0.002916817088680333 -0.001226481891718294 0.0074653819353372912 0.010880607835028014 0.010276075193741947 0.010150368512871929 -0.010147133523031378 0.010104246008100675 -0.010125427232878596 -0.010123690222695774 -0.010135439540825152 -0.010105962760618264 -0.01010169168006528\nleaf_weight=1.3223049975931633 0.58008131384849448 2.554595164954665 0.2976746829226643 18.391572583466772 2.3157044518738976 0.84178717061877062 3.4165986003354192 0.414414339698851 0.31641270220279594 7.4010282754898071 0.28163227904587795 0.26352119725197543 0.33547591976821423 0.26685730833560228 7.6337984530255198\nleaf_count=7 30 20 8 206 27 12 234 31 23 733 25 22 28 26 768\ninternal_value=0 0.00265124 0.000385149 0.00118631 -0.000254467 0.00877683 0.00921875 0.0101819 -0.0101235 0.0101067 -0.010106 -0.0101032 -0.0101309 -0.0101224 -0.0101024\ninternal_weight=0 36.9557 26.9761 24.4216 20.7073 9.97953 3.71427 8.65723 9.67778 7.81544 9.0977 8.17895 0.918746 0.602333 7.89732\ninternal_count=2200 1278 495 475 233 783 242 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=392\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 3 3 0 0 4 13 0 13 3 12 12 3 3 3 0\nsplit_gain=12.383 4.52903 1.93376 2.0009 2.62689 1.28698 0.959139 1.48572 2.93272 0.00525578 0.00441321 0.00396619 0.000443842 4.96709e-05 3.88369e-05 8.10055e-06 6.58565e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.3414526916016356 0.58644753314242826 1.0188919694060079 0.31415341067031349 0.40520528501409475 0.93885093126527053 1.2652873755735712 0.81992547120608383 0.17408222448223767 5.4588099803130126 5.4588099803130126 1.3210941733026873 1.2471304352583659 0.61313736928646123 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 7 -2 -9 -4 -7 -8 -11 -10 -13 -12 -16\nright_child=6 2 9 4 -6 10 11 8 13 12 15 14 -14 -15 16 -17 -18\nleaf_value=-0.00041828376414005861 -0.011107137601847073 -0.0070945005384273419 -0.011690062298829977 0.0088094937566545704 0.00044562576699169049 0.010871196741813374 -0.010694791024967239 0.020034771926782848 -0.010286575179925251 -0.010611701173553572 0.010148855502830335 -0.010191486531200462 -0.010124665844959316 -0.010113294194116851 -0.010117146670150391 0.010103198197008294 -0.010099808249215475\nleaf_weight=1.3225173652172078 1.2291069868952029 2.4648316539824071 0.55585604161023983 4.9283370273187783 15.77463369630277 0.83412909880280306 1.3294026581570495 0.61536949966102816 0.29566966742277145 0.47009556367993355 0.41035170946270216 0.49751575384288838 0.3108400721102953 0.37553023174405098 0.22569986060261715 7.3281429652124643 7.455833981744945\nleaf_count=7 21 18 5 247 176 12 32 10 19 14 31 32 26 35 20 733 762\ninternal_value=0 0.00305358 0.000747832 0.00142262 0.00243664 0.0087636 -0.00873547 -0.00324459 0.00426678 -0.0109468 0.0101801 -0.0101882 -0.0104178 -0.0101896 -0.0101059 0.0101056 -0.0101003\ninternal_weight=0 34.3997 24.5046 23.1678 20.703 9.89514 12.0241 2.51568 1.28657 1.33679 8.57262 9.50845 0.780936 0.6712 8.17905 7.73849 7.68153\ninternal_count=2200 1269 486 441 423 783 931 85 64 45 776 846 40 54 814 764 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=393\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 0 1 3 13 3 12 3 1 1 0\nsplit_gain=12.2421 5.0352 1.59915 2.59763 1.28632 1.08233 0.697889 0.401835 0.0609847 0.000451286 6.12958e-06 1.34862e-06 1.29328e-06 1.22241e-06 1.19696e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.1427926010382323 0.46249402795761568 1.2190084357665867 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -13 -14\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 13 14 -15 -16\nleaf_value=-0.0074611510126339573 -0.010394226399861246 -0.0089047181447015501 0.010433952670050258 0.0013519362950364603 0.00077389517505939952 -0.0033384686997638214 0.01354120045236501 0.0031336330639184051 0.010180556531739668 -0.010145151481764347 -0.01012291628448341 -0.010121767534961846 -0.010132689405906444 -0.010099686021248418 -0.010104041460183084\nleaf_weight=0.46619123965501685 0.56990868598222633 1.7349801361560846 2.8794134203344615 13.515190886333587 0.8244782155379643 7.7355743292719117 0.57937194406986048 1.0214618425816295 7.9415150694549084 0.31202253606170316 0.27612025942653229 0.25939101632684458 0.32888474967330694 7.4855084093287587 0.26205495465546846\nleaf_count=18 30 11 218 147 32 109 3 10 730 23 25 22 28 768 26\ninternal_value=0 0.00261855 0.000380923 0.00102145 0.00875031 -0.000355436 0.00955902 0.00852233 0.0104091 -0.0101214 -0.010104 -0.0101012 -0.0101287 -0.0101004 -0.01012\ninternal_weight=0 36.6982 26.8866 25.1516 9.81156 21.2508 9.34537 3.90088 8.52089 9.49389 8.92398 8.02102 0.902962 7.7449 0.59094\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=394\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 3 3 12 3 1 1 0\nsplit_gain=12.1029 4.98757 1.59386 1.81123 2.36674 1.2916 0.00416426 0.00043865 7.95663e-06 5.94704e-06 1.3087e-06 1.25446e-06 1.18583e-06 1.16152e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.58644753314242826 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 11 -11 -9 -12 -13\nright_child=7 2 -4 4 -6 6 8 9 -10 10 12 13 -14 -15\nleaf_value=-0.00046759508870838028 -0.010390474695410721 -0.0071135690466589642 -0.011096592157328613 0.0091850010030650343 0.00039534732130701511 0.010853753660821277 0.010146748819195344 -0.010143687886034114 0.010101200627707661 -0.010121682089931172 -0.010120541374673071 -0.010131356222647268 -0.010098685051226923 -0.010102995717097878\nleaf_weight=1.3186353221535672 0.5644407132640471 2.5440546888858142 1.1583314621821035 3.6342204967513707 19.504327361471951 0.81999311596154978 0.40513556078076352 0.30896220542490294 7.1878281366080046 0.27340598683804263 0.25684098713099945 0.32565492391586304 7.4117572503164411 0.25947418436408043\nleaf_count=7 30 20 24 242 209 12 31 23 733 25 22 28 768 26\ninternal_value=0 0.00260142 0.000377798 0.000895314 0.00177588 0.00873443 0.0101767 -0.0101202 0.0101036 -0.0101029 -0.0101002 -0.0101274 -0.0100994 -0.0101188\ninternal_weight=0 36.5725 26.8409 25.6826 23.1385 9.73159 8.41296 9.40054 7.59296 8.8361 7.942 0.894091 7.6686 0.585129\ninternal_count=2200 1278 495 471 451 783 776 922 764 892 815 77 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=395\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 3 3 12 3 1 1 0\nsplit_gain=11.9651 4.94254 1.57511 1.7773 2.34283 1.28848 0.00403774 0.000426362 7.72054e-06 5.77014e-06 1.26997e-06 1.21682e-06 1.15042e-06 1.12713e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.58644753314242826 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 11 -11 -9 -12 -13\nright_child=7 2 -4 4 -6 6 8 9 -10 10 12 13 -14 -15\nleaf_value=-0.00046283576881314025 -0.010386757148974222 -0.007050629036835997 -0.011085467156993026 0.0091656743116311241 0.00039137135865589633 0.010844648642398818 0.010145272518300687 -0.01014223961981691 0.010100183476963474 -0.010120460308373149 -0.010119328117665692 -0.010130036682955422 -0.010097693984424796 -0.010101960783233301\nleaf_weight=1.31887026131153 0.55902344081550737 2.5411123018711868 1.1479509873315681 3.6056082900613573 19.505444252863526 0.81251223757862856 0.40116247255355109 0.30593144427984764 7.1170211564749479 0.27071806415915478 0.2543157162144779 0.32245639339089394 7.3387259161099792 0.25691855791956186\nleaf_count=7 30 20 24 242 209 12 31 23 733 25 22 28 768 26\ninternal_value=0 0.00258421 0.000374614 0.00088746 0.00176027 0.00872103 0.010175 -0.010119 0.0101026 -0.0101019 -0.0100992 -0.0101261 -0.0100984 -0.0101176\ninternal_weight=0 36.4497 26.8001 25.6522 23.1111 9.64957 8.3307 9.30809 7.51818 8.74907 7.86376 0.885306 7.59304 0.579375\ninternal_count=2200 1278 495 471 451 783 776 922 764 892 815 77 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=396\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 3 3 12 3 1 1 0\nsplit_gain=11.829 4.89781 1.5566 1.74633 2.62491 1.28538 0.00391511 0.000414417 7.49124e-06 5.59895e-06 1.23252e-06 1.18032e-06 1.1162e-06 1.09375e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.82801835204893248 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 11 -11 -9 -12 -13\nright_child=7 2 -4 4 -6 6 8 9 -10 10 12 13 -14 -15\nleaf_value=-0.00045812633529889645 -0.010383073822925202 -0.0062366346234398184 -0.011074457947329449 0.010247613344733677 0.0004553464007176415 0.010835647448365474 0.010143811051742958 -0.01014080584779979 0.010099177135734676 -0.010119250737698468 -0.010118127102854389 -0.01012873024358729 -0.01009671157870742 -0.010100936136658337\nleaf_weight=1.3191027268767346 0.55365642160177131 3.0393454292789164 1.1376528562977899 3.1873253146186498 19.395374597981572 0.805092502385376 0.39722777064889658 0.30292998347431233 7.0469040255993605 0.26805625203996886 0.25181497074663628 0.31928886752575636 7.2664072727784514 0.25438784807920456\nleaf_count=7 30 31 24 232 208 12 31 23 733 25 22 28 768 26\ninternal_value=0 0.00256707 0.000371451 0.000879665 0.00183743 0.00870755 0.0101732 -0.0101178 0.0101016 -0.0101009 -0.0100982 -0.0101248 -0.0100974 -0.0101164\ninternal_weight=0 36.328 26.7597 25.622 22.5827 9.56833 8.24922 9.21654 7.44413 8.66289 7.78628 0.876607 7.51822 0.573677\ninternal_count=2200 1278 495 471 440 783 776 922 764 892 815 77 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=397\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 3 3 0 2 4 2 0 1 13 13 12 12 13 3 0\nsplit_gain=11.7002 4.31699 1.84257 1.84688 2.53378 1.28775 0.966399 1.51154 2.10404 0.705496 0.0592044 0.00465743 0.00384734 0.000389077 3.91861e-05 3.33256e-05 5.65909e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.3414526916016356 0.58644753314242826 1.0188919694060079 0.56803303682406159 0.40520528501409475 1.2704041812989106 1.2652873755735712 0.46249402795761568 0.0064018138657804258 0.81992547120608383 5.4588099803130126 5.4588099803130126 1.2044405141516361 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 7 -2 -9 -7 -11 -4 -8 -13 -10 -14 -17\nright_child=6 2 11 4 -6 9 12 8 14 10 -12 13 15 -15 -16 16 -18\nleaf_value=-0.0075969146164427282 -0.011092207508592071 -0.0068126534074477753 -0.011620350388184516 0.0087308185533336389 0.0004299672284198236 0.00064271026530141626 -0.010685989789691892 0.015874663855476468 -0.010268195299510282 0.013498426898693601 0.010173722794196776 -0.010585081537412395 -0.010181949708005377 -0.010118512221436161 -0.01009747736639703 -0.010111368356772994 -0.01009489345778819\nleaf_weight=0.46161306463181873 1.215754430741071 2.4518949892371955 0.53835279494523891 4.7987264664843705 15.73486236669123 0.81325861625373264 1.3121753009036163 0.71195804513990857 0.31095245853066444 0.57600693404674341 7.6369897378608584 0.45149630308151245 0.47345024812966574 0.29584972653537989 0.2368791438639164 0.21480979025363911 7.0955882435664535\nleaf_count=18 29 18 5 247 176 32 32 11 20 3 730 14 32 26 25 20 762\ninternal_value=0 0.00297454 0.00073873 0.00139037 0.00236989 0.00869401 -0.00867747 -0.00313794 0.00453829 0.00952715 0.0104069 -0.0109112 -0.0101851 -0.0104004 -0.0101944 -0.0101006 -0.0100954\ninternal_weight=0 33.7591 24.2712 22.9855 20.5336 9.48787 11.5716 2.47554 1.25979 9.02626 8.213 1.2857 9.09602 0.747346 0.547832 7.78385 7.3104\ninternal_count=2200 1269 486 441 423 783 931 85 56 765 733 45 846 40 45 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=398\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 3 3 12 3 1 0 1\nsplit_gain=11.5723 4.8034 1.5232 1.68774 2.58877 1.28957 0.0036944 0.000402295 7.3662e-06 5.58651e-06 1.15555e-06 1.14214e-06 1.11379e-06 1.107e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.82801835204893248 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 11 -11 -9 -13 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 13 12 -14 -15\nleaf_value=-0.00050599934082344047 -0.010379500428146275 -0.0061350901618027961 -0.011053027788106316 0.01024382084511192 0.00044761600685791448 0.010818960375363527 0.010141810763784856 -0.010138919551889995 0.010097261567427334 -0.010116864974804667 -0.01011630030499667 -0.010127261105506734 -0.010098957970613489 -0.010094802844183307\nleaf_weight=1.3152573443949211 0.54397194460034271 3.0326665416359964 1.1187823209911574 3.1339772632345584 19.373923866078258 0.79139129072427561 0.39222385454922903 0.29872958455234577 6.9120272500440478 0.26280691102147091 0.24787097331136454 0.31410714238882065 0.24945924617350101 7.1249906262382865\nleaf_count=7 30 31 24 232 208 12 31 23 733 25 22 28 26 768\ninternal_value=0 0.00253592 0.000367765 0.000868042 0.00181163 0.00867791 0.01017 -0.0101159 0.0100997 -0.010099 -0.0100963 -0.0101231 -0.0101147 -0.0100955\ninternal_weight=0 36.0702 26.6593 25.5406 22.5079 9.4109 8.09564 9.04194 7.30425 8.49796 7.63567 0.862296 0.563566 7.37286\ninternal_count=2200 1278 495 471 440 783 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=399\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 3 0 2 0 3 3 3 12 3 1 0 1\nsplit_gain=11.4409 4.75943 1.50537 1.67872 1.55691 1.28635 0.00358228 0.000391016 7.14732e-06 5.42049e-06 1.12142e-06 1.10788e-06 1.08081e-06 1.074e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.48229043925486209 1.1348528270257934 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 11 -11 -9 -13 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 13 12 -14 -15\nleaf_value=-0.0005008419225148331 -0.010375886231117742 -0.014505876519106092 -0.011042351478653433 0.0052069007598368224 -0.00031239977573122274 0.010810250383310937 0.010140384437849946 -0.010137519769931802 0.010096285182779647 -0.010115692106640917 -0.010115130207644339 -0.010125983118621043 -0.010097963881861013 -0.010093850702792347\nleaf_weight=1.31551133096218 0.53874599002301593 0.6916649490594925 1.108715834096073 7.1994698159396675 17.617335556074977 0.78414493799209406 0.3883755076676606 0.29579780902713348 6.843909970484674 0.26022195536643256 0.24543286487460125 0.31102077383548021 0.24700127821415663 7.0547578483819962\nleaf_count=7 30 4 24 241 226 12 31 23 733 25 22 28 26 768\ninternal_value=0 0.00251916 0.000364698 0.000860501 0.00128877 0.00866425 0.0101683 -0.0101147 0.0100987 -0.010098 -0.0100953 -0.0101219 -0.0101136 -0.0100946\ninternal_weight=0 35.9491 26.6172 25.5085 24.8168 9.33194 8.01643 8.95298 7.23229 8.41423 7.56041 0.85382 0.558022 7.30019\ninternal_count=2200 1278 495 471 467 783 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=400\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 1 2 0 1 2 13 3 12 3 1 0 1\nsplit_gain=11.3104 4.71643 1.45712 2.48179 1.28388 1.04575 0.71019 0.407264 0.0573981 0.000380047 5.25932e-06 1.08818e-06 1.07466e-06 1.04883e-06 1.04191e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 0.96155453354879217 0.56803303682406159 1.1427926010382323 0.46249402795761568 1.1348528270257934 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 7 -1 -5 -6 -4 -8 -2 12 -12 -11 -14 -13\nright_child=9 2 3 5 6 -7 8 -9 -10 10 11 14 13 -15 -16\nleaf_value=-0.0076492954173015982 -0.010372304932628352 -0.0085444218335407798 0.01103286507620866 0.0013280110148765206 0.00055480783511139534 -0.0032976168317473201 0.013454998062835928 0.0042592047366813339 0.010168780006820763 -0.010136134588601731 -0.010114530617425564 -0.010113971810700532 -0.010124718441514391 -0.010096980024749872 -0.010092908778137524\nleaf_weight=0.45925243943929572 0.53356862161308427 1.7183832600712801 2.3326875241473348 13.411847474984826 0.80591251980513146 7.6897201500833026 0.57253459095954884 1.4328457117080686 7.4160434482619166 0.29289439506828596 0.25766213797032822 0.24301846046000708 0.30796434078365564 0.24456728156656027 6.9852105481550097\nleaf_count=18 30 11 181 147 32 109 3 47 730 23 25 22 28 26 768\ninternal_value=0 0.00250171 0.000361466 0.000976887 0.00865053 -0.000357635 0.00950171 0.00845538 0.0104043 -0.0101136 -0.010097 -0.0100943 -0.0101206 -0.0101124 -0.0100936\ninternal_weight=0 35.8392 26.5855 24.8671 9.25374 21.1016 8.79449 3.76553 7.98858 8.86489 8.33132 7.48589 0.845426 0.552532 7.22823\ninternal_count=2200 1278 495 484 783 256 765 228 733 922 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=401\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 0 2 0 3 4 3 3 3 12 3 1 0 1\nsplit_gain=11.182 4.67117 1.43049 2.4539 1.2902 1.25447 0.799673 0.00338046 0.000369382 7.03469e-06 5.10305e-06 1.05605e-06 1.04241e-06 1.01778e-06 1.01086e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.62911932954187277 1.0956011871597129 0.31415341067031349 1.2471304352583659 0.40225799183036598 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 4 -3 6 -1 -5 -4 -6 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 5 7 -7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.0005475484398172072 -0.010368756356256373 -0.0084729088699882337 0.0047995977554525582 0.00104037065663199 0.010794104483527262 -0.0046214971991829648 0.014331234417889695 0.01013846244424697 -0.010134762912268867 0.010094427747664499 -0.010113381343739966 -0.010112825299481711 -0.01012346612523978 -0.010096005892664014 -0.010091975629349373\nleaf_weight=1.3116956986486892 0.52843940816819568 1.7155720368027711 2.2962315334007175 15.9144255630672 0.77076107263565052 5.1893262211233369 1.4273080863058565 0.38351611699908961 0.29001909587532093 6.7129643876105547 0.25512720178812731 0.24062752537429322 0.30493756942451 0.24215704202651978 6.9163429448381066\nleaf_count=7 30 11 142 206 12 97 39 31 23 733 25 22 28 26 768\ninternal_value=0 0.00248498 0.000358463 0.000968713 0.00863425 -0.000351859 0.00845327 0.0101651 -0.0101125 0.0100968 -0.010096 -0.0100934 -0.0101194 -0.0101113 -0.0100927\ninternal_weight=0 35.7218 26.5429 24.8273 9.17894 21.1038 3.72354 7.86724 8.77765 7.09648 8.24921 7.4121 0.837114 0.547095 7.15697\ninternal_count=2200 1278 495 484 783 303 181 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=402\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 3 13 13 0 2 3 3 3 12 3 1 0 1\nsplit_gain=11.0547 4.62862 1.40737 2.57311 1.56825 1.28687 0.511501 0.00327795 0.000359012 6.82566e-06 4.9516e-06 1.02486e-06 1.01114e-06 9.87661e-07 9.80706e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.31415341067031349 1.2132009332284019 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2640297647729313 1.2034118844789969 1.2353254972663301 1.2071296172255412\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 12 -12 -10 -14 -13\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 14 13 -15 -16\nleaf_value=-0.00054195897783887415 -0.010365240481314241 -0.0067586383656901726 0.010260691332505538 -0.0090692030021690493 0.00062490224981778168 0.010785675496552564 -0.0036729495830163405 0.01013707008578566 -0.010133405618284477 0.010093480069022276 -0.010112243545053435 -0.010111690020384666 -0.01012222693531234 -0.01009504193025988 -0.010091051881775963\nleaf_weight=1.3119703121483306 0.52335792314261098 2.5168791748583343 3.1583870453760059 1.8321469724178339 18.715267398394644 0.76368523761630047 0.28743885830044735 0.37975196074694384 0.28717162366956284 6.6467904085293412 0.2526169205084442 0.23825985472649325 0.30194017011672258 0.23977032024413347 6.8481478951871395\nleaf_count=7 30 20 234 17 216 12 8 31 23 733 25 22 28 26 768\ninternal_value=0 0.00246781 0.000355333 0.00110158 -0.00023949 0.00862041 0.0090984 0.0101635 -0.0101113 0.0100958 -0.0100951 -0.0100925 -0.0101182 -0.0101102 -0.0100917\ninternal_weight=0 35.6123 26.5101 23.9932 20.5474 9.1022 3.44583 7.79023 8.69126 7.02654 8.16791 7.33902 0.828882 0.54171 7.08641\ninternal_count=2200 1278 495 475 233 783 242 776 922 764 892 815 77 54 790\nis_linear=0\nshrinkage=0.01\n\n\nTree=403\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 2 4 2 2 0 4 4 13 0 12 3 3 3 3 0\nsplit_gain=10.9348 4.07177 1.57733 2.03649 4.09263 3.32863 1.28355 1.25222 0.97476 1.55423 2.74973 0.00373159 0.00317858 4.90182e-05 2.77337e-05 6.62289e-06 4.71813e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.2813361202598783 0.35806909455900915 1.2169811510592434 1.2525408166204799 0.31415341067031349 0.458708170231996 0.40520528501409475 0.93885093126527053 1.2652873755735712 5.4588099803130126 0.17408222448223767 1.3210941733026873 1.2471304352583659 0.61313736928646123 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 4 -3 -5 -1 -4 9 -2 -11 -10 -8 -12 -13 -14 -16\nright_child=8 2 7 5 -6 -7 12 -9 11 10 13 14 15 -15 16 -17 -18\nleaf_value=-0.00053642787175352366 -0.011096944796304423 0.01208845077896825 -0.012292098695518316 -0.0019854119745376449 -0.015363013579242005 0.0093006280152732757 0.010777341916943097 0.0027931942290606963 -0.010676925703727136 0.019735788248038358 -0.010281709994513088 -0.010171134667380613 0.010135691865072792 -0.010101370390420757 -0.010104812695028546 0.010092541834044795 -0.010089316328956691\nleaf_weight=1.3122420646250228 1.2023077011108392 3.5277587845921579 1.5543093215674155 14.254327167756857 0.64190951921045769 3.1998999770730725 0.75666816905140866 0.85183819010853756 1.2953034015372376 0.61930411495268323 0.27282078936696053 0.44607224501669396 0.37602423131465901 0.33677448239177465 0.20242492295801628 6.5812623230740428 6.685985142365098\nleaf_count=7 21 135 37 251 5 30 12 28 32 10 19 32 31 35 20 733 762\ninternal_value=0 0.00287998 0.000728982 0.00158361 0.00786237 8.36684e-05 0.00860649 -0.00695152 -0.00860645 -0.0030135 0.00489504 -0.0101821 0.0101618 -0.0101821 -0.0100947 0.0100949 -0.0100898\ninternal_weight=0 33.0562 24.03 21.6239 4.16967 17.4542 9.0262 2.40615 11.061 2.43121 1.2289 8.62979 7.71395 0.609595 7.33448 6.95729 6.88841\ninternal_count=2200 1269 486 421 140 281 783 65 931 85 64 846 776 54 814 764 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=404\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 2 2 0 2 2 1 13 3 12 1 3 1 0\nsplit_gain=10.8171 4.54041 1.6337 1.72178 1.81041 1.47486 1.28437 0.717271 0.0557478 0.000350719 4.81442e-06 1.04315e-06 9.57773e-07 1.0393e-06 9.14071e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.58890159214991267 1.2396581529761168 0.56803303682406159 0.46249402795761568 0.0064018138657804258 1.2393449613922758 5.5729390810083803 1.2034118844789969 1.2640297647729313 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -9 -2 11 -11 -12 -14 -13\nright_child=9 2 3 5 -6 -7 7 8 -10 10 12 14 13 -15 -16\nleaf_value=-0.0077784430223371828 -0.010362657220257629 -0.016391497333625698 -0.0085150027522832381 -0.0033185405679693816 0.0067087536626019885 0.0023778840302062306 0.00042812394494859608 0.01341436801648555 0.010162417369511212 -0.010131792513327621 -0.010109999133418842 -0.010119746012136208 -0.010110616325146595 -0.010089261922470939 -0.01009334657805043\nleaf_weight=0.45487521402537723 0.51435910165309806 0.57016326487064617 0.89005242288112896 10.672859892249109 6.3840559544041753 7.9163965638726941 0.79537858720868637 0.56923449039459217 7.1314392667263746 0.28383540548384001 0.24766670074313868 0.29599887039512396 0.23591853026300658 6.7150362860411406 0.23551162891089916\nleaf_count=18 30 3 6 149 237 100 32 3 730 23 25 28 22 768 26\ninternal_value=0 0.0024367 0.000352219 0.000721337 0.00484599 -0.000892669 0.0085925 0.009469 0.0104028 -0.0101095 -0.0100933 -0.0101163 -0.0100907 -0.01009 -0.010108\ninternal_weight=0 35.3845 26.4335 25.8634 7.27411 18.5893 8.95093 8.49605 7.70067 8.52833 8.01397 0.815346 7.19862 6.95095 0.53151\ninternal_count=2200 1278 495 492 243 249 783 765 733 922 892 77 815 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=405\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 2 2 0 2 0 3 3 3 12 1 3 1 0\nsplit_gain=10.6934 4.49753 1.60767 1.6928 1.77989 1.44561 1.28699 0.00299962 0.00034087 6.52521e-06 4.67148e-06 1.01189e-06 9.29502e-07 1.00833e-06 8.87005e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.58890159214991267 1.2396581529761168 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 5.5729390810083803 1.2034118844789969 1.2640297647729313 1.2071296172255412 1.2353254972663301\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 11 -10 -12 -14 -13\nright_child=8 2 3 5 -6 -7 7 9 10 -11 12 14 13 -15 -16\nleaf_value=-0.00058175519023392983 -0.01035920003953235 -0.016296307980195397 -0.0084493067662274862 -0.003286618609904971 0.0066638668597043364 0.0023521574486976208 0.010761891882786144 0.010133868329692094 -0.010130465434951705 0.010090761722588819 -0.010108895680131151 -0.010118544061154115 -0.010109503721804851 -0.01008836561022006 -0.010092409415519418\nleaf_weight=1.3084601871669272 0.50941023882478287 0.56777074933052318 0.88801338523626583 10.668777763843538 6.3628941243514419 7.9229193432256571 0.74370411783456791 0.37136267498135556 0.28104782383888949 6.4553954191505909 0.24522901419550169 0.2930882666260004 0.23359667975455511 6.6488084923475981 0.23318979237228632\nleaf_count=7 30 3 6 149 237 100 12 31 23 733 25 28 22 768 26\ninternal_value=0 0.00241895 0.000349013 0.000714716 0.00481297 -0.000883634 0.008576 0.0101588 -0.0101084 0.0100931 -0.0100923 -0.0101151 -0.0100898 -0.0100891 -0.010107\ninternal_weight=0 35.2893 26.4104 25.8426 7.25091 18.5917 8.87892 7.57046 8.44437 6.82676 7.93496 0.807326 7.12763 6.88241 0.526278\ninternal_count=2200 1278 495 492 243 249 783 776 922 764 892 77 815 790 54\nis_linear=0\nshrinkage=0.01\n\n\nTree=406\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 1 2 4 2 2 0 4 4 13 0 12 3 3 3 3 0\nsplit_gain=10.5726 3.95452 1.55292 2.00301 4.02949 3.23168 1.28356 1.24921 0.976084 1.54691 2.64493 0.003671 0.00290875 4.90563e-05 2.53093e-05 6.33121e-06 4.30788e-07\nthreshold=1.2071296172255412 0.80845556346269254 1.2813361202598783 0.35806909455900915 1.2169811510592434 1.2525408166204799 0.31415341067031349 0.458708170231996 0.40520528501409475 0.93885093126527053 1.2652873755735712 5.4588099803130126 0.17408222448223767 1.3210941733026873 1.2471304352583659 0.61313736928646123 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 4 -3 -5 -1 -4 9 -2 -11 -10 -8 -12 -13 -14 -16\nright_child=8 2 7 5 -6 -7 12 -9 11 10 13 14 15 -15 16 -17 -18\nleaf_value=-0.00057580926272593534 -0.011083386736655947 0.012072226836108256 -0.012280896263546781 -0.0019550988117440753 -0.015225172731556045 0.009168578035591889 0.01075382558511778 0.0028283983482039581 -0.010672478932293179 0.019262198576906871 -0.010281025395425348 -0.010165985351189729 0.010132522319791379 -0.010098349113149026 -0.010101682792642286 0.010089851267824747 -0.010086653917007866\nleaf_weight=1.3087515830993632 1.1885104980319732 3.4857659153640332 1.5429213009774678 14.217332436703147 0.64006000198423851 3.1995069216936818 0.7368536703288554 0.84791806899011124 1.2857344998046736 0.62731368001550414 0.26711420621722937 0.43300048168748606 0.36771614756435145 0.32692548539489508 0.19650073535740364 6.3917370941489935 6.4900647271424532\nleaf_count=7 21 135 37 251 5 30 12 28 32 10 19 32 31 35 20 733 762\ninternal_value=0 0.0028319 0.000723854 0.00157244 0.00783744 8.8342e-05 0.00856189 -0.00692234 -0.00857211 -0.00296154 0.00494192 -0.0101807 0.0101572 -0.0101805 -0.0100919 0.0100922 -0.0100871\ninternal_weight=0 32.7386 23.9335 21.5427 4.12583 17.4168 8.80506 2.39084 10.8152 2.40986 1.22135 8.4053 7.49631 0.59404 7.11957 6.75945 6.68657\ninternal_count=2200 1269 486 421 140 281 783 65 931 85 64 846 776 54 814 764 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=407\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 2 0 2 0 3 3 3 1 4 3 12\nsplit_gain=10.4639 4.41132 1.57927 1.65474 1.75095 1.4075 1.28013 0.00282066 0.000333111 6.14348e-06 4.6565e-06 3.27027e-06 1.81184e-06 5.38026e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.58890159214991267 1.2396581529761168 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 13 -12 -13 -10\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14 -15\nleaf_value=-0.00056992496110818682 -0.010356726433603474 -0.016191821647020748 -0.0084089912232545444 -0.0032443152591683996 0.0066172354795797153 0.0023237384851479696 0.010745849785609215 0.010131190444281993 -0.010129997287242731 0.010088948816206131 -0.010123927828560848 -0.010113219165871084 -0.010086352350589361 -0.01010894251893147\nleaf_weight=1.3090398758649806 0.50066381972282936 0.56504994630813854 0.88385871797800319 10.649043489247562 6.3245541742071509 7.9134798478335133 0.7300606109201907 0.36410493217408646 0.26810277346521605 6.3287010928615928 0.25316794123500574 0.26065609324723471 6.7817777767777443 0.22175300214439631\nleaf_count=7 30 3 6 149 237 100 12 31 22 733 23 26 800 21\ninternal_value=0 0.00238815 0.000345896 0.0007085 0.0047748 -0.000870571 0.00854771 0.0101556 -0.0101067 0.0100912 -0.0100906 -0.0100886 -0.0100873 -0.0101205\ninternal_weight=0 35.0679 26.336 25.7709 7.20841 18.5625 8.73191 7.42287 8.28612 6.69281 7.78546 7.2956 7.04243 0.489856\ninternal_count=2200 1278 495 492 243 249 783 776 922 764 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=408\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 2 4 2 2 1 13 3 1 4 3 12\nsplit_gain=10.3445 4.37099 1.55434 1.62682 1.74605 1.37958 1.28431 0.724052 0.0541532 0.000323753 4.51757e-06 3.17313e-06 1.75816e-06 5.21996e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.56803303682406159 0.46249402795761568 0.0064018138657804258 1.2393449613922758 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -9 -2 13 -12 -13 -11\nright_child=9 2 3 5 -6 -7 7 8 -10 10 11 12 -14 -15\nleaf_value=-0.0079036018583674896 -0.010353326760961771 -0.016100439839579012 0.0062060745836544232 -0.0032130654061203814 -0.011854706932991824 0.0022986495364298513 0.00030403362506171587 0.013374697540721894 0.01015631124329121 -0.010128688509562327 -0.010122682834982447 -0.010112083243696666 -0.010085486260353545 -0.010107847031391249\nleaf_weight=0.45062327943742175 0.49584407918155005 0.56258679181337612 6.6032894086092737 10.645109012722971 0.58250218629837025 7.9198217308148733 0.78522881958633473 0.56596317887306202 6.8576444676145911 0.26546923257410515 0.25067955255508412 0.25809136498719443 6.7148719634860754 0.21957019809633493\nleaf_count=18 30 3 238 149 5 100 32 3 730 22 23 26 800 21\ninternal_value=0 0.00237081 0.000342742 0.000701983 0.00474201 -0.000861761 0.00853346 0.00943577 0.0104017 -0.0101056 -0.0100897 -0.0100877 -0.0100865 -0.0101193\ninternal_weight=0 34.9728 26.3133 25.7507 7.18579 18.5649 8.65946 8.20884 7.42361 8.20453 7.70868 7.22364 6.97296 0.485039\ninternal_count=2200 1278 495 492 243 249 783 765 733 922 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=409\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 1 3 0 3 3 3 3 1 4 3 12\nsplit_gain=10.2264 4.32934 1.52991 1.61275 1.36316 1.28318 0.0377523 0.00266196 0.000314657 6.059e-06 4.38316e-06 3.07913e-06 1.70625e-06 5.06431e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 0.85893167272483917 0.58644753314242826 0.31415341067031349 0.17408222448223767 0.17408222448223767 1.2393449613922758 0.61313736928646123 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 13 -12 -13 -10\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 12 -14 -15\nleaf_value=-0.00061390699895675705 -0.010349958090711609 -0.0160107866120573 0.013782555503601831 -0.0092560023119052752 0.00069599925223033416 0.010731064058831239 0.010131800206944539 0.010129460816525467 -0.010127392863157985 0.010087242615788748 -0.010121450514664074 -0.010110958805517075 -0.010084627505882651 -0.010106762763912045\nleaf_weight=1.3052900657057742 0.49106933176517298 0.56009217351675289 0.39618945121765381 1.4644471108913446 22.877338929101825 0.71750743314623822 0.99369673244655132 0.35963320266455401 0.26286122296005476 6.2077179653570056 0.24821531679481257 0.25555158872157324 6.6486211298033595 0.21740864310413599\nleaf_count=7 30 3 2 13 382 12 95 31 22 733 23 26 800 21\ninternal_value=0 0.00235333 0.000339597 0.00069549 9.72683e-05 0.00851673 0.0111725 0.0101527 -0.0101046 0.0100896 -0.0100888 -0.0100868 -0.0100856 -0.0101181\ninternal_weight=0 34.8819 26.2918 25.7317 24.3418 8.59015 1.38989 7.28486 8.12373 6.56735 7.63266 7.15239 6.90417 0.48027\ninternal_count=2200 1278 495 492 395 783 97 776 922 764 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=410\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 3 4 2 0 12 3 3 0\nsplit_gain=10.112 3.83685 6.86879 2.81296 3.69493 2.10207 1.9024 1.43946 1.06051 0.977283 1.56186 1.91798 0.00357803 3.73442e-05 2.23979e-05 3.81956e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 1.0738835291228945 0.40520528501409475 1.2704041812989106 1.2652873755735712 5.4588099803130126 1.3323715879710427 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 -6 10 -2 -12 -11 -13 -14 -16\nright_child=9 3 -4 4 8 -7 -8 -9 -10 12 11 13 14 -15 15 -17\nleaf_value=-0.0083743897290081224 -0.011080010387139081 -0.012151519480855058 -0.015369541487547876 0.0076174371855092324 0.0071998225515918033 -0.011684694081190074 0.030915344842848587 0.010185450437708646 -0.0034879153573052564 -0.010665316055069443 0.015515528125977287 -0.010269146313865805 -0.01015935423517951 -0.010093982002249901 -0.010097661898751893 -0.01008322768997756\nleaf_weight=0.43816876504569968 1.1788680562749498 1.6753911403939152 1.1696042725816358 7.9989765658974665 1.0237428899854411 0.60702061839401711 0.42655280232429582 9.0243814541026932 9.9711088109761459 1.2746432209387402 0.71713793464004971 0.25534609146416187 0.41613805666565884 0.23256407026201487 0.18887857813388098 6.2376728905364871\nleaf_count=17 29 26 10 323 16 6 2 710 159 32 11 19 32 26 20 762\ninternal_value=0 0.00276887 0.00754688 0.000285421 0.00134847 0.00625597 0.0102573 0.00932603 -0.00249277 -0.00852566 -0.0028964 0.00510941 -0.0101789 -0.0101857 -0.0100883 -0.0100837\ninternal_weight=0 32.3349 11.0587 21.2762 19.6008 8.606 9.8891 9.46255 10.9949 10.5012 2.38392 1.20505 8.11733 0.48791 6.84269 6.42655\ninternal_count=2200 1269 739 530 504 329 729 727 175 931 85 56 846 45 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=411\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 2 4 2 0 3 3 3 1 4 3 12\nsplit_gain=10.0058 4.25456 1.48971 1.59045 1.71053 1.36861 1.28185 0.00256097 0.000302452 5.94997e-06 4.32303e-06 3.16297e-06 1.60855e-06 4.80592e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 13 -12 -13 -10\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14 -15\nleaf_value=-0.00063557342509740189 -0.010345538665412728 -0.015848106298913586 0.006160698309562054 -0.0032060271270879688 -0.011789763023712414 0.0022893193149258612 0.010721715179929996 0.010127757317984678 -0.010125555500607213 0.0100856349409927 -0.010120488595248956 -0.010108766259128333 -0.010082948952948638 -0.010105321594174146\nleaf_weight=1.3023150116205195 0.48220958281308313 0.55689979344606655 6.5366717763245132 10.61398759391159 0.57778400182723988 7.9089723462238899 0.70756774768233288 0.3548721857368945 0.25922656524926413 6.0935594411566854 0.24487777426838864 0.25060879811644543 6.5186667665839195 0.21453422959893942\nleaf_count=7 30 3 238 149 5 100 12 31 22 733 23 26 800 21\ninternal_value=0 0.00232364 0.000332521 0.000683999 0.00470289 -0.000859613 0.00848988 0.0101506 -0.0101028 0.010088 -0.0100872 -0.0100852 -0.0100839 -0.0101164\ninternal_weight=0 34.6526 26.1943 25.6374 7.11446 18.523 8.45831 7.156 7.97012 6.44843 7.48791 7.01415 6.76928 0.473761\ninternal_count=2200 1278 495 492 243 249 783 776 922 764 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=412\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 1 3 0 3 3 3 3 1 4 3 12\nsplit_gain=9.89182 4.21526 1.46659 1.57779 1.34375 1.27826 0.0350473 0.00248352 0.000293945 5.77306e-06 4.19416e-06 3.06911e-06 1.56095e-06 4.66288e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 0.85893167272483917 0.58644753314242826 0.31415341067031349 0.17408222448223767 0.17408222448223767 1.2393449613922758 0.61313736928646123 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -9 13 -12 -13 -10\nright_child=8 2 3 4 -6 7 -8 9 10 -11 11 12 -14 -15\nleaf_value=-0.00062906373008642894 -0.010342242780368606 -0.015763216177161695 0.01367452275053639 -0.0092249383253425483 0.00068413434315956259 0.010714102052084116 0.010129274107701643 0.010126473375333858 -0.010124292020618753 0.010084776544233658 -0.010119278676400405 -0.010107675540591766 -0.010082116980681947 -0.010104262737848304\nleaf_weight=1.3026318848133067 0.47756290156394143 0.55431286245584743 0.39100019633770233 1.455917071551087 22.799774796701968 0.70102260261774052 0.97211224399507046 0.35138547047972668 0.25667908880859602 6.0334388157352805 0.24247003998607386 0.24814183730632056 6.4543349579907954 0.2124217227101326\nleaf_count=7 30 3 2 13 382 12 95 31 22 733 23 26 800 21\ninternal_value=0 0.00230657 0.000329466 0.000677662 8.93549e-05 0.00847538 0.0111462 0.0101491 -0.0101018 0.0100871 -0.0100863 -0.0100843 -0.0100831 -0.0101152\ninternal_weight=0 34.5616 26.1731 25.6188 24.2557 8.38848 1.36311 7.08585 7.89161 6.38482 7.41405 6.94495 6.70248 0.469101\ninternal_count=2200 1278 495 492 395 783 97 776 922 764 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=413\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 3 2 1 0 3 3 3 1 4 3 12\nsplit_gain=9.77904 4.17635 1.44695 1.53478 1.41495 1.27468 0.00240844 0.000285673 5.60188e-06 4.06916e-06 2.97805e-06 1.51478e-06 4.52378e-07\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.77035900000382884 0.85893167272483917 0.31415341067031349 0.17408222448223767 1.2393449613922758 0.61313736928646123 1.2034118844789969 0.37820364433929859 1.2581335208377802 5.5629213280817131\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 12 -11 -12 -9\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13 -14\nleaf_value=-0.00062262248505238994 -0.010338976900797497 -0.015679896274530567 -0.011003737589167903 0.011133526941863189 0.00060574143834086504 0.010706574164977452 0.010125202710322686 -0.01012304108058777 0.010083925357730584 -0.010118081049465434 -0.010106595976400758 -0.010081293348100349 -0.010103215022734464\nleaf_weight=1.3029453866183738 0.47295967116951843 0.55169890075922623 1.0805864948779333 1.3510769018903399 23.171533380635083 0.69453285634517659 0.3479325734078883 0.25415633432567108 5.9739066539332271 0.24008569587022055 0.24569889623671759 6.3906328049488366 0.21032979339361191\nleaf_count=7 30 3 24 97 371 12 31 22 733 23 26 800 21\ninternal_value=0 0.0022894 0.000326407 0.000814684 0.00118577 0.00846081 0.0101476 -0.0101008 0.0100862 -0.0100854 -0.0100835 -0.0100822 -0.0101141\ninternal_weight=0 34.4742 26.1549 25.0743 24.5226 8.31932 7.01637 7.81386 6.32184 7.3409 6.87642 6.63633 0.464486\ninternal_count=2200 1278 495 471 468 783 776 922 764 892 849 826 43\nis_linear=0\nshrinkage=0.01\n\n\nTree=414\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 3 4 13 0 12 3 3 0\nsplit_gain=9.67085 3.71577 6.77138 2.73203 3.5999 2.04987 1.82709 1.44021 1.03955 0.978931 1.57058 2.4729 0.00347548 4.9635e-05 1.98229e-05 3.3869e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 1.0738835291228945 0.40520528501409475 0.93885093126527053 1.2652873755735712 5.4588099803130126 1.3210941733026873 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 -6 10 -2 -12 -11 -13 -14 -16\nright_child=9 3 -4 4 8 -7 -8 -9 -10 12 11 13 14 -15 15 -17\nleaf_value=-0.0084847620657084004 -0.011067751524915743 -0.012043584142563126 -0.015293891302294969 0.0075533966907093131 0.0071675309965387448 -0.011650757414161909 0.030377280241778583 0.010168564054701805 -0.0034550867102198179 -0.0106575359609979 0.01871069137739317 -0.010280615070349669 -0.010152991972334746 -0.01009070173523329 -0.010093801196749509 -0.010079937388895295\nleaf_weight=0.43440337758511383 1.1682175677269682 1.6607541376724864 1.1650569261983026 7.90113388374448 1.0153800295665849 0.59788020700216282 0.43001955747604448 8.7765800333581847 9.9390203738585097 1.2627896135672925 0.63603780698031165 0.25286485999822617 0.39992517512291659 0.30195241328328848 0.18154894188046444 5.9950174065306783\nleaf_count=17 21 26 10 323 16 6 2 710 159 32 10 19 32 35 20 762\ninternal_value=0 0.00270846 0.00747765 0.000267631 0.00131865 0.00620244 0.0102295 0.00928885 -0.00247046 -0.00847744 -0.00282965 0.00525185 -0.010177 -0.0101773 -0.0100848 -0.0100803\ninternal_weight=0 31.9202 10.8061 21.1142 19.4534 8.49901 9.641 9.21098 10.9544 10.1984 2.35907 1.19086 7.83928 0.554817 6.57649 6.17657\ninternal_count=2200 1269 739 530 504 329 729 727 175 931 85 64 846 54 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=415\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 2 2 4 2 0 3 1 3 3 1 4\nsplit_gain=9.56815 4.10351 1.40644 1.5455 1.67425 1.35819 1.27316 0.00231855 0.00037121 2.30098e-05 5.50689e-06 3.09056e-06 3.2506e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.31415341067031349 0.17408222448223767 1.1597348923655619 1.2471304352583659 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -10 -9 -11 -13\nright_child=8 2 3 5 -6 -7 7 10 9 11 -12 12 -14\nleaf_value=-0.00064380488495952796 -0.01050729075120352 -0.015527977612137152 0.0061035478305859949 -0.0032016867359526387 -0.011728757176341437 0.0022795106116511089 0.010697745385387789 0.010123590267516398 -0.010153170793998119 -0.010112332955007457 0.010082387097576197 -0.010118724839569175 -0.010079673674385647\nleaf_weight=1.2999438419938067 0.21639221999794145 0.54823936522007244 6.4586600214242962 10.576250291429462 0.57324031367897976 7.8956856830045572 0.68491726368665684 0.34336637565866102 0.4927988783456384 0.32990477792918671 5.8642374644987285 0.2204916332848369 6.4060631208121777\nleaf_count=7 13 3 238 149 5 100 12 31 39 31 733 21 818\ninternal_value=0 0.00226058 0.000319389 0.00066005 0.00464986 -0.000858791 0.00843358 0.0101456 -0.010099 -0.0100871 0.0100847 -0.0100825 -0.010081\ninternal_weight=0 34.2445 26.0521 25.5038 7.0319 18.4719 8.19246 6.89252 7.66565 7.44926 6.2076 6.95646 6.62655\ninternal_count=2200 1278 495 492 243 249 783 776 922 909 764 870 839\nis_linear=0\nshrinkage=0.01\n\n\nTree=416\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 2 1 3 0 3 3 1 3 3 1 4\nsplit_gain=9.45936 4.06516 1.38497 1.52815 1.32596 1.26952 0.0316102 0.00224852 0.000360699 2.23285e-05 5.34353e-06 2.99853e-06 3.1541e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 0.85893167272483917 0.58644753314242826 0.31415341067031349 0.17408222448223767 0.17408222448223767 1.1597348923655619 1.2471304352583659 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -10 -9 -11 -13\nright_child=8 2 3 4 -6 7 -8 10 9 11 -12 12 -14\nleaf_value=-0.00063720915899427263 -0.010502407843747173 -0.015449000337016894 0.013530888176690466 -0.0091983762606847441 0.00067202779982178471 0.010690403143834421 0.010125442799546316 0.010122348630989217 -0.010151633106443972 -0.010111203589328164 0.010081560211493956 -0.010117532394238302 -0.010078874666034177\nleaf_weight=1.3002635464072207 0.21433818992227216 0.54554512351751583 0.38374684751034027 1.4477627575397516 22.713385280221701 0.67856560647487629 0.94083315599709749 0.33999131200835098 0.48796897428110231 0.32665847055613983 5.806360867805779 0.21832330152392376 6.3428217736072838\nleaf_count=7 13 3 2 13 382 12 95 31 39 31 733 21 818\ninternal_value=0 0.00224385 0.000316451 0.000653925 8.05823e-05 0.0084188 0.011112 0.0101441 -0.010098 -0.0100863 0.0100838 -0.0100816 -0.0100802\ninternal_weight=0 34.1565 26.0313 25.4857 24.1611 8.12518 1.32458 6.82492 7.59011 7.37577 6.14635 6.8878 6.56115\ninternal_count=2200 1278 495 492 395 783 97 776 922 909 764 870 839\nis_linear=0\nshrinkage=0.01\n\n\nTree=417\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 3 3 13 2 1 13 1 3 1 4\nsplit_gain=9.35173 4.02718 1.41605 1.46409 2.37561 1.26819 0.73931 0.050179 0.000350481 2.16678e-05 2.90936e-06 3.06057e-06\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.82801835204893248 0.46553849925547169 0.56803303682406159 0.46249402795761568 0.0064018138657804258 1.1597348923655619 1.2471304352583659 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -8 -2 -10 -11 -12\nright_child=8 2 -4 4 -6 6 7 -9 9 10 11 -13\nleaf_value=-0.0080145315639098044 -0.010497569613514649 -0.0058807263778032359 -0.010982491650264164 0.010224400771839177 0.00041411023452940401 1.3146937170315764e-06 0.013275135384778192 0.010145117318899112 -0.010150111046352188 -0.010110085811352426 -0.010116352164340347 -0.010078083217123149\nleaf_weight=0.44450658466666748 0.21230279840528865 2.9026793017983499 1.0643524564802636 2.8322294466197517 19.21398148406297 0.75950579624623049 0.55753558874130238 6.2969996281899512 0.48318568803369988 0.32344374246895302 0.21617603953927744 6.2802001242525876\nleaf_count=18 13 31 24 232 208 32 3 730 39 31 21 818\ninternal_value=0 0.00222704 0.000313511 0.000795414 0.00167442 0.00840395 0.00936246 0.0103997 -0.010097 -0.0100854 -0.0100808 -0.0100794\ninternal_weight=0 34.0718 26.0132 24.9489 22.0462 8.05855 7.61404 6.85454 7.51531 7.30301 6.81982 6.49638\ninternal_count=2200 1278 495 471 440 783 765 733 922 909 870 839\nis_linear=0\nshrinkage=0.01\n\n\nTree=418\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 3 4 2 0 12 4 3 0\nsplit_gain=9.24871 3.59727 6.67596 2.65654 3.50512 1.9992 1.75622 1.4226 1.02188 0.979746 1.58352 1.79906 0.00335884 5.39537e-05 1.75792e-05 3.003e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 1.0738835291228945 0.40520528501409475 1.2704041812989106 1.2652873755735712 5.4588099803130126 0.37041150200217393 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 -6 10 -2 -12 -11 -13 -14 -16\nright_child=9 3 -4 4 8 -7 -8 -9 -10 12 11 13 14 -15 15 -17\nleaf_value=-0.0084033574487118005 -0.011071602515007049 -0.011948135655326361 -0.015220768537403341 0.0074914699175283629 0.0071582349456058673 -0.011617553868353999 0.029866662686482449 0.010151985844440454 -0.003420957018147141 -0.010648744613575963 0.015211134599941769 -0.010309659737111352 -0.010146944468579493 -0.010088898283350252 -0.010090094244587563 -0.010076778730873173\nleaf_weight=0.43421903625130731 1.157092366367577 1.6449450356885815 1.160314206033944 7.8011133200489002 1.0057393638417114 0.58881725557148445 0.43328675627708513 8.5299133341759426 9.9070978201925737 1.2499228939414022 0.72232350800186373 0.19068996282294393 0.38446981785818923 0.26393997622653842 0.17450083978474129 5.7617365983314812\nleaf_count=17 29 26 10 323 16 6 2 710 159 32 11 13 32 32 20 762\ninternal_value=0 0.00264974 0.00740941 0.00025085 0.00129042 0.00615037 0.0102036 0.00925317 -0.00244597 -0.00842876 -0.00276444 0.00540255 -0.0101751 -0.0101815 -0.0100814 -0.0100772\ninternal_weight=0 31.5054 10.5577 20.9477 19.3028 8.38993 9.39742 8.96413 10.9128 9.90468 2.33405 1.17695 7.57063 0.45463 6.32071 5.93624\ninternal_count=2200 1269 739 530 504 329 729 727 175 931 85 56 846 45 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=419\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 1 3 3 12 0 4\nsplit_gain=9.15193 3.95397 1.38977 1.43527 2.33729 1.27363 0.00210779 0.000338098 2.03464e-05 5.36067e-06 2.90473e-06 7.17722e-07 6.86781e-07\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.82801835204893248 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.1597348923655619 1.2471304352583659 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -9 -8 11 -10 -12\nright_child=7 2 -4 4 -6 6 9 8 10 -11 12 -13 -14\nleaf_value=-0.00070570712591096023 -0.010491223835943512 -0.0058389366566238242 -0.010963745432931368 0.010220562621664833 0.00041259945601263996 0.010675606526539464 0.010120522336673458 -0.010147117278911546 -0.010088861993004121 0.010079340096889914 -0.010095837043447835 -0.010113246638710301 -0.010076847825090508\nleaf_weight=1.2932181693613518 0.20963237807154556 2.8919272935018006 1.0496874433010805 2.7823134725913432 19.172395197674632 0.66376240551471699 0.33482356322929252 0.47381763579323877 0.21270260820165265 5.6468330025672913 0.1967028728686272 0.27907245187088847 6.0013165129348636\nleaf_count=7 13 31 24 232 208 12 31 39 25 733 22 28 795\ninternal_value=0 0.00219984 0.000307111 0.000783267 0.00165556 0.00837403 0.010141 -0.0100954 -0.0100838 0.0100816 -0.0100793 -0.0101027 -0.0100775\ninternal_weight=0 33.835 25.8963 24.8466 21.9547 7.93864 6.64542 7.37324 7.16361 5.98166 6.68979 0.491775 6.19802\ninternal_count=2200 1278 495 471 440 783 776 922 909 764 870 53 817\nis_linear=0\nshrinkage=0.01\n\n\nTree=420\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 1 3 0 3 3 1 3 3 12 0 4\nsplit_gain=9.04897 3.91573 1.33335 1.49555 1.27255 1.26983 0.0305491 0.00204419 0.00032851 1.97443e-05 5.20145e-06 2.81859e-06 6.96446e-07 6.66406e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.77035900000382884 0.85893167272483917 0.58644753314242826 0.31415341067031349 0.17408222448223767 0.17408222448223767 1.1597348923655619 1.2471304352583659 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 6 -5 -1 -4 -7 -2 -10 -9 12 -11 -13\nright_child=8 2 3 4 -6 7 -8 10 9 11 -12 13 -14 -15\nleaf_value=-0.0006984609429067101 -0.010486489832991139 -0.015247154842353838 0.013492801705915254 -0.0090636330997882174 0.00065230406657694614 0.010668513255410312 0.010122445475902176 0.010119311798968076 -0.010145641089467637 -0.01008797025367259 0.010078544800066834 -0.010094875364900745 -0.010112109971657431 -0.010076077070334444\nleaf_weight=1.2935669347643841 0.2076397305354466 0.53979280591011303 0.38179612159729248 1.433583397418263 22.592840759083629 0.65759259089827526 0.90977665642276406 0.33153147483244527 0.46917098807170976 0.21060470119118679 5.5910850749351084 0.19476410280913103 0.27632653480395675 5.9420545995235443\nleaf_count=7 13 3 2 13 382 12 95 31 39 25 733 22 28 795\ninternal_value=0 0.00218464 0.000304523 0.000636093 7.25838e-05 0.008359 0.0111187 0.0101396 -0.0100944 -0.010083 0.0100808 -0.0100785 -0.0101017 -0.0100767\ninternal_weight=0 33.7316 25.8578 25.318 24.0264 7.87378 1.29157 6.58021 7.30056 7.09292 5.92262 6.62375 0.486931 6.13682\ninternal_count=2200 1278 495 492 395 783 97 776 922 909 764 870 53 817\nis_linear=0\nshrinkage=0.01\n\n\nTree=421\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 0 2 4 2 0 3 1 3 3 12 0 4\nsplit_gain=8.94622 3.87873 1.29642 1.57301 1.67321 1.34693 1.26604 0.00198253 0.00031919 1.91598e-05 5.04704e-06 2.73505e-06 6.75799e-07 6.46646e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.31415341067031349 0.17408222448223767 1.1597348923655619 1.2471304352583659 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -10 -9 12 -11 -13\nright_child=8 2 3 5 -6 -7 7 10 9 11 -12 13 -14 -15\nleaf_value=-0.00069129048711883355 -0.010481799283767412 -0.013698496775993331 0.0062683489284951288 -0.0032004870526471515 -0.011671926164850023 0.0022674279093082396 0.010661498538059082 0.01011811349687442 -0.01014417952188483 -0.010087087805399297 0.010077757233908212 -0.010093923573709187 -0.010110985030226094 -0.010075314133301433\nleaf_weight=1.2939120046794403 0.20566520933061738 0.64491298794746654 6.2293017487973001 10.518558705225589 0.56720241159200657 7.8800728358328334 0.65147564560174931 0.32827135594561685 0.46456924406811584 0.20852729910984624 5.5358831505291164 0.19284426141530264 0.27360732620581985 5.8833731911145151\nleaf_count=7 13 4 237 149 5 100 12 31 39 25 733 22 28 795\ninternal_value=0 0.00216816 0.000301692 0.000660051 0.00477114 -0.000858597 0.0083439 0.0101382 -0.0100935 -0.0100821 0.01008 -0.0100777 -0.0101006 -0.0100759\ninternal_weight=0 33.6496 25.84 25.1951 6.7965 18.3986 7.80954 6.51563 7.22859 7.02292 5.86415 6.55835 0.482135 6.07622\ninternal_count=2200 1278 495 491 242 249 783 776 922 909 764 870 53 817\nis_linear=0\nshrinkage=0.01\n\n\nTree=422\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 1 4 13 0 12 3 3 0\nsplit_gain=8.84538 3.48253 6.58259 2.58258 3.41129 1.94906 1.68894 1.42342 1.00685 0.980687 1.59369 2.31583 0.00324651 4.97493e-05 1.55896e-05 2.66184e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 0.99689265265511573 0.40520528501409475 0.93885093126527053 1.2652873755735712 5.4588099803130126 1.3210941733026873 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 -6 10 -2 -12 -11 -13 -14 -16\nright_child=9 3 -4 4 8 -7 -8 -9 -10 12 11 13 14 -15 15 -17\nleaf_value=-0.0085092763259821767 -0.011054304590195598 -0.011868245643390268 -0.015148450929968003 0.007426103892951578 0.0054285282528263069 -0.01158513249034554 0.029378465603744526 0.010139629187031703 -0.0036017575147860147 -0.010640198597958053 0.018224271082811154 -0.010280142232140251 -0.010141138144576916 -0.010083648793471912 -0.010086533229193577 -0.01007374596998146\nleaf_weight=0.43053265567869026 1.1483730468898996 1.6251743393950189 1.1555510545149434 7.7051521907560545 1.4202204598113883 0.57984903268516053 0.43638230860233385 8.2930411654524487 9.4518815483897907 1.2372334003448484 0.643730469048023 0.23953167116269469 0.36960319848731149 0.27885909099131823 0.16772022238001216 5.5374501449987292\nleaf_count=17 21 26 10 323 19 6 2 710 156 32 10 19 32 35 20 762\ninternal_value=0 0.00259248 0.00734237 0.000234815 0.00126157 0.00609555 0.0101796 0.00921925 -0.00242213 -0.00837874 -0.00269955 0.00555638 -0.0101733 -0.0101744 -0.0100782 -0.0100741\ninternal_weight=0 31.0978 10.3155 20.7823 19.1571 8.285 9.15996 8.72357 10.8721 9.6225 2.31049 1.16212 7.31201 0.518391 6.07477 5.70517\ninternal_count=2200 1269 739 530 504 329 729 727 175 931 85 64 846 54 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=423\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 1 4\nsplit_gain=8.75414 3.80988 1.26404 1.26308 1.53546 1.63784 1.33828 0.00191101 0.000307756 1.80015e-05 4.97357e-06 2.60271e-06 2.80572e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 12 -14\nleaf_value=-0.00071118385898767417 -0.010475565290211507 -0.013610544432067018 0.010653620606469898 0.0062158450718248215 -0.0031899974085392419 -0.011602986040047242 0.0022661653852371721 0.010116674920534741 -0.010145021123796947 -0.010104837937399325 0.010076346395773953 -0.01011138375281799 -0.01007382256241846\nleaf_weight=1.290866270661353 0.20304028037935395 0.63703994452953594 0.64247473701834668 6.1806323458440628 10.487282249145212 0.56280921027064312 7.8682393403723827 0.32403769670054305 0.4074032031930982 0.30848775058984745 5.4346263590268791 0.20572480047121633 5.9667358067817986\nleaf_count=7 13 4 12 237 149 5 100 31 34 31 733 21 823\ninternal_value=0 0.0021407 0.00831591 0.000295052 0.000647991 0.00472868 -0.00085117 0.0101363 -0.0100919 -0.0100805 0.0100786 -0.0100765 -0.0100751\ninternal_weight=0 33.428 7.69201 25.736 25.099 6.74344 18.3555 6.40114 7.09139 6.88835 5.75866 6.48095 6.17246\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=424\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 1 4\nsplit_gain=8.65511 3.77335 1.2602 1.24578 1.50942 1.61086 1.31173 0.00185341 0.000299014 1.74685e-05 4.82576e-06 2.52523e-06 2.7225e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 12 -14\nleaf_value=-0.00070388007328885604 -0.010470976170172936 -0.013564538419188423 0.010646773717615269 0.0061722160037822119 -0.0031592130619972538 -0.011535332545856149 0.0022417497781412736 0.010115503171040095 -0.010143566050727646 -0.010103784790711522 0.010075581570627021 -0.010110266310233632 -0.010073082882745631\nleaf_weight=1.291216243058442 0.20110765285789867 0.63282965123653667 0.63648900389671315 6.1621707030572024 10.483597457408907 0.56046075001358975 7.8743647588416925 0.32085044449195255 0.40340704470872868 0.30544992256909598 5.3809573883190751 0.20370020484551776 5.9077974525280297\nleaf_count=7 13 4 12 237 149 5 100 31 34 31 733 21 823\ninternal_value=0 0.0021248 0.0083006 0.000292359 0.000641994 0.00469595 -0.000842553 0.010135 -0.0100909 -0.0100797 0.0100778 -0.0100757 -0.0100743\ninternal_weight=0 33.3429 7.62951 25.7134 25.0806 6.72263 18.358 6.3383 7.02146 6.82035 5.70181 6.41695 6.1115\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=425\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 1 4\nsplit_gain=8.55725 3.73706 1.25638 1.22876 1.4838 1.58429 1.2857 0.00179757 0.000290518 1.69512e-05 4.68249e-06 2.45006e-06 2.64173e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 12 -14\nleaf_value=-0.00069665375069200453 -0.010466429776588695 -0.013519243797363524 0.010640002486067843 0.0061287394762775463 -0.0031287102461609755 -0.011467922590526996 0.0022176160236125025 0.010114343520498314 -0.010142125509930447 -0.01010274221903199 0.010074824069753878 -0.010109159820082356 -0.010072350520422395\nleaf_weight=1.2915624491870392 0.19919264875352283 0.62862148135900753 0.63055485486984242 6.1439175903797176 10.479965676553549 0.55812938138842572 7.8804280692711464 0.31769416807219375 0.39944951934739936 0.30244169756770123 5.3278144905343652 0.20169531647115935 5.8494371990673244\nleaf_count=7 13 4 12 237 149 5 100 31 34 31 733 21 823\ninternal_value=0 0.00210898 0.00828521 0.000289688 0.000636046 0.00466333 -0.000834024 0.0101336 -0.01009 -0.0100789 0.010077 -0.010075 -0.0100736\ninternal_weight=0 33.2587 7.56763 25.6911 25.0624 6.70205 18.3604 6.27606 6.95222 6.75302 5.64551 6.35357 6.05113\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=426\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 3 4 2 0 12 4 3 0\nsplit_gain=8.46075 3.37118 6.48208 2.53112 3.32853 1.90658 1.64432 1.42274 0.999122 0.980102 1.5944 1.67816 0.0031099 5.35877e-05 1.38259e-05 2.36024e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 1.0738835291228945 0.40520528501409475 1.2704041812989106 1.2652873755735712 5.4588099803130126 0.37041150200217393 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 -6 10 -2 -12 -11 -13 -14 -16\nright_child=9 3 -4 4 8 -7 -8 -9 -10 12 11 13 14 -15 15 -17\nleaf_value=-0.0086118910004333235 -0.011060092407755255 -0.011838181960737134 -0.015054332558245674 0.0073690693439764175 0.0071756837048322173 -0.011556726872457998 0.029035758604613746 0.010119915022092123 -0.003364911406942317 -0.010629353790034195 0.014840033658734765 -0.010309401307562732 -0.01013556360594825 -0.010081997282794738 -0.010083115321640319 -0.010070833289314985\nleaf_weight=0.42693831864744503 1.1337106563150867 1.6055529033765221 1.1516505861654867 7.6187595846131462 0.98972549010068078 0.57226979359984387 0.43853461742401201 8.0665105362422747 9.8389910012483579 1.2247692374512551 0.72910965885966994 0.18024197313934565 0.35530941607430566 0.243783806450665 0.16120378952473391 5.3218415975570679\nleaf_count=17 29 26 10 323 16 6 2 710 159 32 11 13 32 32 20 762\ninternal_value=0 0.00253571 0.00727431 0.000219022 0.00123683 0.00604681 0.0101533 0.00917833 -0.00240152 -0.00832896 -0.00263898 0.00564027 -0.0101712 -0.0101787 -0.0100751 -0.0100712\ninternal_weight=0 30.7089 10.0836 20.6253 19.0197 8.19103 8.93198 8.49345 10.8287 9.34997 2.28685 1.15314 7.06312 0.424026 5.83835 5.48305\ninternal_count=2200 1269 739 530 504 329 729 727 175 931 85 56 846 45 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=427\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 3 1 3 3 12 0 4\nsplit_gain=8.37458 3.67024 1.34648 1.36515 2.24166 1.25416 0.00173401 0.000280242 1.59182e-05 4.61913e-06 2.41117e-06 6.22477e-07 5.88981e-07\nthreshold=5.4588099803130126 0.80845556346269254 1.3427866072211079 0.82801835204893248 0.46553849925547169 0.31415341067031349 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -9 -8 11 -10 -12\nright_child=7 2 -4 4 -6 6 9 8 10 -11 12 -13 -14\nleaf_value=-0.00071595770439887129 -0.010460486356038738 -0.0057846222226768289 -0.010930071801115049 0.010210977581222018 0.0004047541318999718 0.01063259041169509 0.010112983928095287 -0.010139292742129739 -0.01008227625995454 0.010073473348089402 -0.010089477689629749 -0.010105844252668771 -0.010071244743006648\nleaf_weight=1.2884936742484558 0.19668859615921874 2.8268435858190122 1.0278193894773711 2.6555301933549371 19.082387262023985 0.62186366692185391 0.31363455904647697 0.39170663710683573 0.19697977323085059 5.2305396972224116 0.18296532332897175 0.25997215788811445 5.5925106634385884\nleaf_count=7 13 31 24 232 208 12 31 34 25 733 22 28 800\ninternal_value=0 0.00208199 0.000283397 0.000752583 0.00160269 0.00825686 0.0101319 -0.0100885 -0.0100775 0.0100757 -0.0100736 -0.0100957 -0.0100718\ninternal_weight=0 33.0471 25.5926 24.5648 21.7379 7.45453 6.16604 6.82082 6.62413 5.54417 6.23243 0.456952 5.77548\ninternal_count=2200 1278 495 471 440 783 776 922 909 764 875 53 822\nis_linear=0\nshrinkage=0.01\n\n\nTree=428\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 12 0 4\nsplit_gain=8.28071 3.63399 1.2503 1.19019 1.44165 1.54894 1.27716 0.00168181 0.000272271 1.54468e-05 4.48199e-06 2.33963e-06 6.0403e-07 5.71475e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 12 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 13 -14 -15\nleaf_value=-0.00070860364892681401 -0.010456038132463565 -0.013417320468740302 0.010625978746566907 0.0060748225425623923 -0.0031183450134468988 -0.011402450751842532 0.0022174191919597549 0.01011184969801863 -0.010137895551922443 -0.010081451469055945 0.01007273713123618 -0.010088580427633836 -0.010104782933274395 -0.010070531259019428\nleaf_weight=1.2888443917036045 0.19481394067406554 0.61891872435808437 0.61605717614293087 6.0767235732637372 10.441674815490844 0.55326299369335163 7.8648096174001685 0.31054849829524744 0.38786226976662863 0.19503566808998574 5.1788714365102351 0.18116081692278374 0.25741229113191366 5.5372546161524951\nleaf_count=7 13 4 12 237 149 5 100 31 34 25 733 22 28 800\ninternal_value=0 0.00206738 0.00824126 0.000281 0.00062099 0.00461637 -0.000826 0.0101305 -0.0100876 -0.0100767 0.0100749 -0.0100728 -0.0100947 -0.0100711\ninternal_weight=0 32.9497 7.39432 25.5554 24.9365 6.62999 18.3065 6.10548 6.75354 6.55873 5.48942 6.17086 0.452448 5.71842\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 53 822\nis_linear=0\nshrinkage=0.01\n\n\nTree=429\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 12 0 4\nsplit_gain=8.18725 3.59867 1.24644 1.17409 1.41707 1.52332 1.25181 0.00163119 0.000264524 1.49896e-05 4.34892e-06 2.27029e-06 5.86121e-07 5.54514e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 12 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 13 -14 -15\nleaf_value=-0.00070132800435645734 -0.010451631266084931 -0.013374281026818837 0.010619439621911532 0.0060316020809850247 -0.0030882087141849467 -0.011335587798007149 0.0021935673958927509 0.010110727186638437 -0.010136512577433188 -0.010080635016224682 0.010072008599392912 -0.010087692133002979 -0.010103732146947335 -0.010069824488590258\nleaf_weight=1.2891913875937451 0.19295643083751102 0.61472238227725284 0.61030099913477887 6.0591533468104926 10.438152000308039 0.55097265169024456 7.8707945542410007 0.30749245965853322 0.38405510783195485 0.19311059499159444 5.1277098911814392 0.17937395116314281 0.25487736845389009 5.4825408174656332\nleaf_count=7 13 4 12 237 149 5 100 31 34 25 733 22 28 800\ninternal_value=0 0.00205186 0.00822559 0.000278425 0.000615221 0.004584 -0.000817637 0.0101292 -0.0100868 -0.0100759 0.0100742 -0.0100721 -0.0100938 -0.0100704\ninternal_weight=0 32.8685 7.33469 25.5338 24.9191 6.61013 18.3089 6.0455 6.68691 6.49396 5.4352 6.1099 0.447988 5.66191\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 53 822\nis_linear=0\nshrinkage=0.01\n\n\nTree=430\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 0 3 2 4 4 13 1 3 12 0 4\nsplit_gain=8.09489 3.5636 1.24794 1.15825 1.40969 1.17036 0.781638 1.93577 0.0661681 0.000256994 1.45458e-05 2.20298e-06 5.68758e-07 5.38083e-07\nthreshold=5.4588099803130126 0.80845556346269254 0.56803303682406159 0.48229043925486209 1.3427866072211079 1.1348528270257934 0.3887456056823268 0.39014361261361452 0.0064018138657804258 1.1597348923655619 1.2433743438056273 5.5554043549548435 1.223894463963197 0.38198980941644772\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 8 -8 -4 -2 -11 12 -12 -13\nright_child=9 3 6 4 -6 -7 7 -9 -10 10 11 13 -14 -15\nleaf_value=-0.0082164414077768692 -0.010447265533724983 -0.013331894628813942 0.01322454429528978 0.004712241258288217 -0.010917516599843588 -0.00025615311071741826 -0.022474231237134809 0.010082224709686536 0.010134572976541426 -0.01013514325576559 -0.010079826475773495 -0.010086813190927501 -0.010102691957127668 -0.010069124798384135\nleaf_weight=0.43486024439334769 0.19111591391265292 0.61053105071187275 0.80041167140007008 6.5222709430381718 1.0175828719511617 17.362026515416801 0.25957783637568344 0.61612900253385305 5.1646670098416507 0.38028480624780048 0.19120436906814564 0.17760455049574364 0.25236714724451303 5.4283640207722783\nleaf_count=18 13 4 5 241 24 226 4 80 676 34 25 22 28 800\ninternal_value=0 0.00203641 0.00820984 0.000275872 0.0006095 0.0011006 0.00925404 0.00043181 0.0105492 -0.0100859 -0.0100752 -0.0100714 -0.0100928 -0.0100697\ninternal_weight=0 32.7881 7.27565 25.5124 24.9019 23.8843 6.84079 0.875707 5.96508 6.62094 6.42982 6.04954 0.443572 5.60597\ninternal_count=2200 1278 783 495 491 467 765 84 681 922 909 875 53 822\nis_linear=0\nshrinkage=0.01\n\n\nTree=431\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 1 2 4 13 0 3 12 13 3 0\nsplit_gain=8.00544 3.23002 6.37871 2.46284 3.23739 1.84116 1.59454 1.40809 0.982077 1.61234 2.1506 0.975666 0.00300347 7.19586e-05 1.18994e-05 2.03037e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 1.1418730677972666 0.56803303682406159 0.40520528501409475 0.93885093126527053 1.2652873755735712 1.0738835291228945 5.4588099803130126 1.0851924213084303 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 7 -1 9 -2 -11 -6 -10 -12 -14 -16\nright_child=8 3 -4 4 11 -7 -8 -9 12 10 13 -13 14 -15 15 -17\nleaf_value=-0.0085964349555501442 -0.011036810928945175 -0.011780871082036896 -0.014974998194942604 0.0073009689190294104 0.0071367593894460634 -0.011510276382782788 0.028647809270228614 0.01009492353679581 -0.010620751245880505 0.017697279422629997 -0.010330328476322139 -0.0033294536005881174 -0.010128906231476994 -0.010078017310538747 -0.010079031967530532 -0.010067354579473577\nleaf_weight=0.42503287270665158 1.1245498787611707 1.5821025059558476 1.1468834113329638 7.5118156699463743 0.97976168803870578 0.55902440287172783 0.44094614684581834 7.7898228149861097 1.2125517725944517 0.65211635455489136 0.18150227982550859 9.7961479760706407 0.33820688165724266 0.29964271653443575 0.15340650361031283 5.063998734112829\nleaf_count=17 21 26 10 323 16 6 2 710 32 10 13 159 32 41 20 762\ninternal_value=0 0.00246724 0.00718594 0.000202995 0.00120899 0.00599801 0.0101222 0.00912784 -0.00826467 -0.0025536 0.0058644 -0.00237785 -0.0101698 -0.0101732 -0.0100714 -0.0100677\ninternal_weight=0 30.2315 9.80269 20.4289 18.8467 8.07084 8.6558 8.21486 9.02598 2.25781 1.13326 10.7759 6.76816 0.481145 5.55561 5.21741\ninternal_count=2200 1269 739 530 504 329 729 727 931 85 64 175 846 54 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=432\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 3 13 10 3 1 1 3 3 1 4\nsplit_gain=7.92216 3.49975 1.24422 1.14092 2.45644 1.53358 0.00152809 0.000728072 0.000247939 1.36653e-05 4.37646e-06 2.16826e-06 2.39135e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.82801835204893248 0.46553849925547169 3.5000000000000004 0.17408222448223767 1.0256168289528838 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 -6 -4 -5 -2 -10 -8 -11 -13\nright_child=8 3 6 4 5 -7 10 -9 9 11 -12 12 -14\nleaf_value=-0.00074546429821103599 -0.010441569826232547 -0.0057591288886087678 0.010606252960164313 0.010151038693870469 0.00087061851047912694 -0.0075397515181565688 0.010109217921156502 0.010732122017293396 -0.010132438348501699 -0.010096905383322193 0.010070053031432854 -0.010103536602059883 -0.010067454488723962\nleaf_weight=1.2819502241909493 0.18871443346142669 2.7938966341316727 0.59639876708388317 2.3395010894164474 17.565413611009721 2.4733655657619229 0.30263481847941864 0.23751514777541149 0.37288907868787635 0.28570418618619431 4.9862631047144532 0.19007587200030673 5.4580124807544053\nleaf_count=7 13 31 12 227 208 24 31 5 34 31 733 21 823\ninternal_value=0 0.00201039 0.00818184 0.00026963 0.00101441 -0.000167465 0.0101264 0.0102046 -0.0100844 -0.0100737 0.0100723 -0.01007 -0.0100687\ninternal_weight=0 32.5769 7.16725 25.4097 22.6158 20.0388 5.8853 2.57702 6.4954 6.30668 5.2889 5.93379 5.64809\ninternal_count=2200 1278 783 495 464 232 776 232 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=433\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 0 0 3 2 3 1 3 3 1 4\nsplit_gain=7.83276 3.46554 1.24026 1.12207 1.38089 1.1384 0.00148214 0.000240874 1.32607e-05 4.24642e-06 2.10375e-06 2.32043e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.3427866072211079 1.1348528270257934 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -4 -2 -9 -8 -10 -12\nright_child=7 3 6 4 -6 -7 9 8 10 -11 11 -13\nleaf_value=-0.00073780045366836236 -0.010437297956616161 -0.013235986021261921 0.010599933157050618 0.004660910171159308 -0.010900095746298345 -0.00025695043893180696 0.010108121630565186 -0.010131110367376931 -0.010095932626525439 0.010069351674697018 -0.010102498353146335 -0.010066779009501179\nleaf_weight=1.2823118418455113 0.18691277783363958 0.60082791373133915 0.59081478044390667 6.4624015609733823 1.0028771925717581 17.328104543499649 0.29965588403865684 0.36922691809013475 0.28288850095123041 4.9369911579415202 0.1882038265466689 5.4040650292299688\nleaf_count=7 13 4 12 241 24 226 31 34 31 733 21 823\ninternal_value=0 0.00199489 0.00816591 0.000267155 0.000594382 0.00107893 0.0101251 -0.0100836 -0.010073 0.0100716 -0.0100693 -0.010068\ninternal_weight=0 32.504 7.10977 25.3942 24.7934 23.7905 5.82746 6.4313 6.24438 5.23665 5.87516 5.59227\ninternal_count=2200 1278 783 495 491 467 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=434\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 3 13 10 3 1 1 3 3 1 4\nsplit_gain=7.74478 3.4312 1.23631 1.11842 2.42491 1.50173 0.00143759 0.000696779 0.000234009 1.28683e-05 4.12039e-06 2.04126e-06 2.25169e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.82801835204893248 0.46553849925547169 3.5000000000000004 0.17408222448223767 1.0256168289528838 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 -6 -4 -5 -2 -10 -8 -11 -13\nright_child=8 3 6 4 5 -7 10 -9 9 11 -12 12 -14\nleaf_value=-0.00073021794124854408 -0.010433066224029024 -0.005713611390974426 0.010593682444921964 0.010149013346709949 0.00086393547000178177 -0.0074478813017699111 0.010107036734222273 0.010721161459317593 -0.010129795798660243 -0.010094969764865774 0.010068656991560078 -0.010101470665071294 -0.01006610973484178\nleaf_weight=1.2826695516705502 0.18512764759361644 2.7856317590922144 0.58527948707342137 2.3081519100815089 17.558543968945745 2.4808210972696534 0.2967059421353041 0.23447474464774121 0.36560025019571174 0.28010029718279827 4.8882028651423752 0.1863500284962355 5.3506475766189396\nleaf_count=7 13 31 12 227 208 24 31 5 34 31 733 21 823\ninternal_value=0 0.00198011 0.0081499 0.000264742 0.00100221 -0.000165046 0.0101239 0.0102018 -0.0100827 -0.0100722 0.0100709 -0.0100686 -0.0100673\ninternal_weight=0 32.4205 7.05286 25.3676 22.582 20.0394 5.77019 2.54263 6.36783 6.1827 5.18491 5.8171 5.537\ninternal_count=2200 1278 783 495 464 232 776 232 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=435\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 12 0 2 1 4 2 2 1 12 3 0\nsplit_gain=7.65783 3.12229 6.29005 2.40887 3.16819 1.88798 1.81103 1.56647 1.36926 0.982632 1.61778 1.37159 1.80022 0.00292362 1.05531e-05 1.80032e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.1427926010382323 5.1170890668050761 1.2027621639768638 0.56803303682406159 1.1418730677972666 0.40520528501409475 1.2704041812989106 1.2750941039804975 1.2807709791646134 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 7 -3 5 -5 -6 -1 -9 10 -2 -12 -13 -11 -15 -16\nright_child=9 3 -4 4 6 -7 -8 8 -10 13 11 12 -14 14 15 -17\nleaf_value=-0.0086939159355658956 -0.011050176212183434 -0.011730753028665797 -0.014912454208080406 0.0051032359356884653 -0.0096599570518852325 -0.010639016011828057 0.0011817296462624883 0.010082840988888507 0.028151459773783589 -0.01061454350278284 0.025985679345406233 0.019816630522978856 -0.010597755690444381 -0.010123818080195364 -0.010075912692985786 -0.010064696470556429\nleaf_weight=0.42155055515468376 1.1103857201524063 1.5643281573429728 1.1417977968230832 11.714563064742833 3.3410520423203698 0.81482898816466409 2.859359962400049 7.576582055538891 0.44398561120033253 1.2017014734447 0.26238196296617367 0.29679227853193879 0.56526458309963346 0.32511164713650931 0.14744143793359388 4.8667039647698402\nleaf_count=17 29 26 10 359 47 23 75 710 2 32 4 10 42 32 20 762\ninternal_value=0 0.00241205 0.00711613 0.000190549 0.00118623 0.00407946 -0.00466024 0.0100955 0.011083 -0.00821297 -0.00248829 0.00596659 -0.000126573 -0.0101689 -0.0100686 -0.010065\ninternal_weight=0 29.878 9.58392 20.2941 18.7298 12.5294 6.20041 8.44212 8.02057 8.77578 2.23482 1.12444 0.862057 6.54096 5.33926 5.01415\ninternal_count=2200 1269 739 530 504 382 122 729 712 931 85 56 52 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=436\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 3 13 10 3 1 1 3 3 1 4\nsplit_gain=7.58379 3.37073 1.23367 1.09444 2.38672 1.48694 0.00138936 0.000664526 0.000228967 1.23312e-05 4.07505e-06 2.04841e-06 2.24148e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.82801835204893248 0.46553849925547169 3.5000000000000004 0.17408222448223767 1.0256168289528838 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 -6 -4 -5 -2 -10 -8 -11 -13\nright_child=8 3 6 4 5 -7 10 -9 9 11 -12 12 -14\nleaf_value=-0.00074809700247233199 -0.010429610628695378 -0.005668237261499902 0.010587287865386404 0.0101468447889243 0.00086400379095943197 -0.0074051680188841548 0.01010588312007186 0.010709980413842031 -0.010127771664059029 -0.010093889966584954 0.010067470650913277 -0.01010033562810685 -0.010064809506085872\nleaf_weight=1.2795121259987343 0.18336531240492959 2.7735918378457454 0.57734026759862889 2.270388596225533 17.520753491669897 2.4826831836253396 0.29303203942254175 0.23085639066994179 0.35920600872486819 0.27701504994183768 4.8017153874970973 0.18382063228636969 5.2466962914913893\nleaf_count=7 13 31 12 227 208 24 31 5 34 31 733 21 823\ninternal_value=0 0.00195469 0.00812155 0.000258787 0.000989263 -0.000162307 0.0101224 0.0101988 -0.0100815 -0.0100709 0.0100697 -0.0100674 -0.010066\ninternal_weight=0 32.2299 6.9516 25.2783 22.5047 20.0034 5.67209 2.50124 6.2501 6.06674 5.09475 5.70753 5.43052\ninternal_count=2200 1278 783 495 464 232 776 232 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=437\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 0 2 4 2 3 1 3 3 1 4\nsplit_gain=7.49838 3.33742 1.22968 1.08077 1.31085 1.47035 1.24175 0.00134762 0.000222435 1.19661e-05 3.95413e-06 1.98741e-06 2.17497e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.1348528270257934 0.47850430425008522 1.2396581529761168 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -6 -4 -2 -10 -9 -11 -13\nright_child=8 3 7 4 6 -7 -8 10 9 11 -12 12 -14\nleaf_value=-0.00074040647707412401 -0.010425450663434919 -0.013126443439162437 0.010581178406218732 0.0058985531301890834 -0.0030633523819472899 -0.011259230291188485 0.0022099771970629442 0.010104820909363018 -0.010126491117691087 -0.010092947550664788 0.010066794926832457 -0.01009932976845815 -0.010064161009241981\nleaf_weight=1.2798731662333001 0.18161287251859803 0.58936299011111515 0.57192400842905033 5.9094132445752647 10.385079386644067 0.54556830227375019 7.8339339885860673 0.29014666844159354 0.35567659838125099 0.2742841807194053 4.7542549725621939 0.18200962105765928 5.1948238485492766\nleaf_count=7 13 4 12 237 149 5 100 31 34 31 733 21 823\ninternal_value=0 0.00193951 0.00810533 0.000256408 0.000576071 0.0044484 -0.000795891 0.0101211 -0.0100807 -0.0100702 0.010069 -0.0100667 -0.0100654\ninternal_weight=0 32.1596 6.8962 25.2634 24.674 6.45498 18.219 5.61633 6.18841 6.00679 5.0444 5.65112 5.37683\ninternal_count=2200 1278 783 495 491 242 249 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=438\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 2 1 0 2 2 12 3 1 3 1 4\nsplit_gain=7.41411 3.31667 3.38792 2.73411 2.7313 3.69741 2.74808 1.61432 0.518803 0.000216086 1.16117e-05 1.92826e-06 2.11047e-06\nthreshold=5.4588099803130126 0.37470171316558165 1.2169811510592434 1.1732074739105893 0.61398027225796947 1.0956011871597129 1.2396581529761168 5.1961133448999481 1.2537081564319763 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 7 -3 8 -7 -1 -6 -2 -11 -12 -13\nright_child=9 4 -4 -5 5 6 -8 -9 -10 10 11 12 -14\nleaf_value=0.0082995770722535441 -0.010421329623158919 -0.014519932982793247 -0.006747086513844122 -0.013086672205907901 0.0094059781088710551 -0.005131037426160277 0.0034114579487820452 0.02773474986822266 0.021016460442614897 -0.010125223280296927 -0.010092014834133516 -0.010098334341188802 -0.010063518964031643\nleaf_weight=9.985250330995763 0.17987654078751703 1.3315557925961936 1.8283041445538391 0.58491930365562517 2.0195944416336746 8.867315484210847 6.5456594955176106 0.44649013876915056 0.4754654113203286 0.35218142811208952 0.27157998224720348 0.18021626910194743 5.1434611096046865\nleaf_count=829 13 19 19 6 163 148 89 2 3 34 31 21 823\ninternal_value=0 0.00192469 0.00585959 0.00795178 -0.000702381 0.000325026 -0.00150317 0.00913142 0.0116185 -0.0100799 -0.0100695 -0.010066 -0.0100647\ninternal_weight=0 32.0846 12.845 11.0167 19.2396 17.908 15.413 10.4317 2.49506 6.12732 5.94744 5.59526 5.32368\ninternal_count=2200 1278 856 837 422 403 237 831 166 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=439\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 3 13 13 4 3 2 13 1 3 1 4\nsplit_gain=7.33124 3.27553 1.23387 1.06515 2.02207 1.52136 0.792405 1.94452 0.531213 0.0599564 0.000209917 1.1268e-05 1.87089e-06 2.04791e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.56803303682406159 0.58644753314242826 0.46553849925547169 0.50652862085158101 0.3887456056823268 0.75533711063468834 1.2266574521666753 0.0064018138657804258 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 8 -6 9 -8 -5 -4 -2 -12 -13 -14\nright_child=10 3 6 4 5 -7 7 -9 -10 -11 11 12 13 -15\nleaf_value=-0.0083301723362143015 -0.010417247297497127 -0.0062427298749305228 0.013113361518776573 0.010215473700600579 -0.0089713997290066932 0.00065274578813928716 -0.023269383365796554 0.010075958101684162 -0.0048858329062096426 0.010125627868641277 -0.010123968289576759 -0.010091091418192302 -0.010097348818516743 -0.010062883118151357\nleaf_weight=0.42965014651417988 0.17815617611631651 2.2970128487795618 0.78226121142506588 2.5573208858259053 1.8045918047428156 18.286909061484039 0.24964659195393313 0.58393423026427627 0.2562812166288494 4.7507176124490798 0.34872017009183753 0.26890219654887904 0.17844041390344489 5.0926030571572483\nleaf_count=18 13 20 5 236 17 216 2 82 6 676 34 31 21 823\ninternal_value=0 0.00191063 0.00807179 0.000249164 0.000900196 -0.000211682 0.00917869 8.94629e-05 0.00883995 0.010548 -0.0100791 -0.0100688 -0.0100654 -0.010064\ninternal_weight=0 31.9983 6.79621 25.2021 22.9051 20.0915 6.36656 0.833581 2.8136 5.53298 6.06682 5.88867 5.53995 5.27104\ninternal_count=2200 1278 783 495 475 233 765 84 242 681 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=440\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 2 1 0 2 2 12 3 1 3 1 4\nsplit_gain=7.24904 3.24463 3.32844 2.69622 2.65799 3.63253 2.68855 1.55551 0.498556 0.000203923 1.09347e-05 1.81531e-06 1.98728e-06\nthreshold=5.4588099803130126 0.37470171316558165 1.2169811510592434 1.1732074739105893 0.61398027225796947 1.0956011871597129 1.2396581529761168 5.1961133448999481 1.2537081564319763 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 7 -3 8 -7 -1 -6 -2 -11 -12 -13\nright_child=9 4 -4 -5 5 6 -8 -9 -10 10 11 12 -14\nleaf_value=0.0082604323602766833 -0.010413203273394336 -0.01436599310084642 -0.0066830114310567025 -0.013056665226365491 0.0093809957458222022 -0.0050810674424063276 0.0033665817728611388 0.027290140951245028 0.020771578416193485 -0.01012272604450867 -0.010090177435929519 -0.010096373436039264 -0.010062253176695258\nleaf_weight=9.8615629575215262 0.17645164951681991 1.3246670635417128 1.8252768693491805 0.58071340620517808 1.9918135670013755 8.8598241345025581 6.5546431243419638 0.44910614192485887 0.47610727697610844 0.34529250394552935 0.2662505730986594 0.17668188642710436 5.0422446937300265\nleaf_count=829 13 19 19 6 163 148 89 2 3 34 31 21 823\ninternal_value=0 0.00189609 0.00581414 0.00790852 -0.000697977 0.000314503 -0.0014889 0.00908932 0.0115784 -0.0100783 -0.0100681 -0.0100647 -0.0100634\ninternal_weight=0 31.9237 12.7167 10.8914 19.2071 17.8824 15.4145 10.3107 2.46792 6.00692 5.83047 5.48518 5.21893\ninternal_count=2200 1278 856 837 422 403 237 831 166 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=441\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 1 0 0 3 0 3 1 3 3 1 4\nsplit_gain=7.1681 3.21544 1.23488 1.04166 1.34787 1.07967 0.00120897 0.000198097 1.06112e-05 3.69611e-06 1.76139e-06 1.92842e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.48229043925486209 1.3427866072211079 1.1427926010382323 0.17408222448223767 1.1597348923655619 1.2433743438056273 0.61313736928646123 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 5 -5 -4 -2 -9 -8 -10 -12\nright_child=7 3 6 4 -6 -7 9 8 10 -11 11 -13\nleaf_value=-0.00083724418157695585 -0.010409197082853424 -0.013021741830299201 0.0105600743781161 0.002512941455642871 -0.010886562407746086 -0.0020626633566018784 0.01010188271480005 -0.010121496179834837 -0.010089272612645965 0.010064571639255315 -0.010095407494625348 -0.01006162944736325\nleaf_weight=1.269925426691773 0.17476282315328617 0.57846883311867969 0.55309190228581417 15.955360915511852 0.98828944377601047 7.6197483344003549 0.28179632266983379 0.34189811721444119 0.26362485485151399 4.5920018819160759 0.17494052276015271 4.9923813696950674\nleaf_count=7 13 4 12 363 24 104 31 34 31 733 21 823\ninternal_value=0 0.0018822 0.00803974 0.000242073 0.000554436 0.00103405 0.010117 -0.0100775 -0.0100675 0.0100667 -0.0100641 -0.0100628\ninternal_weight=0 31.8387 6.69682 25.1419 24.5634 23.5751 5.42689 5.94761 5.77284 4.8738 5.43095 5.16732\ninternal_count=2200 1278 783 495 491 467 776 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=442\nnum_leaves=15\nnum_cat=0\nsplit_feature=12 1 2 3 13 10 4 3 13 1 1 3 1 4\nsplit_gain=7.08795 3.18287 1.2329 1.03834 2.30154 1.41872 0.78756 1.87639 0.0568861 0.000578588 0.000192436 1.0297e-05 1.70895e-06 1.87123e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.56803303682406159 0.82801835204893248 0.46553849925547169 3.5000000000000004 0.3887456056823268 0.75533711063468834 0.0064018138657804258 1.0256168289528838 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 9 -6 8 -8 -4 -5 -2 -12 -13 -14\nright_child=10 3 6 4 5 -7 7 -9 -10 -11 11 12 13 -15\nleaf_value=-0.0083902613470259579 -0.010405229173529767 -0.0055789410269400617 0.013052755742606295 0.010141318090694622 0.00084466973964675968 -0.0072143355761302968 -0.022725314859862764 0.010074134891640336 0.010122323234850317 0.01067744550520233 -0.010120278871309818 -0.010088377005878436 -0.010094451684954443 -0.010061013022354615\nleaf_weight=0.42815198004246013 0.17308955965563555 2.7329704007133868 0.77327372506260861 2.1840545902960034 17.479715580120686 2.4963708817958823 0.25141812348738302 0.56949613848701119 4.6214969619177282 0.22173130512237538 0.33853668719530094 0.26102479780092824 0.17321615433320392 4.9430077509023249\nleaf_count=18 13 31 5 227 208 24 2 82 676 5 34 31 21 823\ninternal_value=0 0.00186814 0.00802322 0.000239881 0.000950396 -0.000162448 0.00915382 2.87788e-05 0.0105424 0.0101907 -0.0100767 -0.0100668 -0.0100634 -0.0100621\ninternal_weight=0 31.7587 6.64384 25.1148 22.3819 19.9761 6.21568 0.820914 5.39477 2.40579 5.88887 5.71579 5.37725 5.11622\ninternal_count=2200 1278 783 495 464 232 765 84 681 232 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=443\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 3 3 13 0 1 1 0 12 3 1 4\nsplit_gain=7.00845 3.15269 1.48787 1.19496 1.38769 1.34667 0.000336312 0.000186935 3.24756e-05 3.29468e-05 9.99246e-06 1.65825e-06 1.81587e-06\nthreshold=5.4588099803130126 0.85893167272483917 0.17408222448223767 0.58644753314242826 0.39953842781531468 1.2509949463117855 0.99689265265511573 1.1597348923655619 0.42176455150056097 4.5200868812453381 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 6 -6 -5 -2 -4 -10 -9 -12 -13\nright_child=7 3 8 4 5 -7 -8 10 9 -11 11 12 -14\nleaf_value=0.00089040488637831745 -0.01040129813637025 -0.0088983447492955257 0.010220363591142456 0.010110640877585998 -0.00098464247907471261 0.0071753720897356219 0.010450826149327916 -0.010119073798647118 0.01006817834408329 0.010224513805637426 -0.010087490577458929 -0.010093505380094011 -0.010060401550061724\nleaf_weight=2.5689534135162848 0.17143173050135274 1.4207015577703739 0.15190018387511361 0.98417755169794208 18.40921190567315 2.2720675207674494 0.41237957775592804 0.33520790468901385 5.3328336128033698 0.13829845655709494 0.25845015514641989 0.17150862235575903 4.8941198568791151\nleaf_count=22 13 14 15 110 233 27 12 34 838 7 31 21 823\ninternal_value=0 0.00185357 0.00719555 -8.72741e-06 0.000563317 -8.81745e-05 0.0102111 -0.010076 0.0100761 0.0100721 -0.0100661 -0.0100628 -0.0100615\ninternal_weight=0 31.6905 8.19199 23.4985 22.0778 20.6813 1.39656 5.83072 5.62303 5.47113 5.65929 5.32408 5.06563\ninternal_count=2200 1278 882 396 382 260 122 922 860 845 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=444\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 4 2 0 0 3 2 1 4 13 0 3 12 13 3 0\nsplit_gain=6.933 2.85156 6.08953 2.25584 3.04684 1.76861 1.56425 1.20174 0.990362 1.64664 1.9679 0.951658 0.00279779 7.19857e-05 8.05473e-06 1.3737e-07\nthreshold=1.2071296172255412 0.35806909455900915 1.2169811510592434 0.61398027225796947 1.0637796106207162 1.2864828997949476 0.56803303682406159 1.1418730677972666 0.40520528501409475 0.93885093126527053 1.2652873755735712 1.0738835291228945 5.4588099803130126 1.0851924213084303 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 6 -3 5 -5 -1 -8 9 -2 -11 -6 -10 -12 -14 -16\nright_child=8 3 -4 4 11 -7 7 -9 12 10 13 -13 14 -15 15 -17\nleaf_value=-0.0088671075256611734 -0.011005782106498659 -0.011504594526777918 -0.014770373823687373 0.0071919888197832516 0.0071929683384676273 -0.011467932237706067 0.010035740175641241 0.02686328568511025 -0.010603898730612966 0.017252838122467095 -0.010332605288283192 -0.0032656711801340161 -0.010113095792882288 -0.01006865190570165 -0.010069340155661109 -0.010059095356355369\nleaf_weight=0.41649799887091088 1.0911452639847978 1.5264488202519739 1.1331264730542896 7.2691216622479287 0.95556041365489264 0.54609994404017914 7.123450065497309 0.45127861201763142 1.1873698430135844 0.65878179389983393 0.16956462757661939 9.7192301652394217 0.29745013266801823 0.26447680592536926 0.13484953809529532 4.4502709405496716\nleaf_count=17 21 26 10 323 16 6 710 2 32 10 13 159 32 41 20 762\ninternal_value=0 0.00229133 0.00692456 0.000179309 0.00114388 0.0058881 0.0100008 0.0110383 -0.00809077 -0.00231598 0.00636049 -0.00232946 -0.0101685 -0.0101718 -0.0100627 -0.0100594\ninternal_weight=0 29.1408 9.12435 20.0165 18.49 7.81522 7.99123 7.57473 8.25391 2.18397 1.09282 10.6748 6.06994 0.434041 4.88257 4.58512\ninternal_count=2200 1269 739 530 504 329 729 712 931 85 64 175 846 54 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=445\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 3 13 10 3 1 1 3 3 1 4\nsplit_gain=6.85965 3.09575 1.23036 1.00831 2.24549 1.40014 0.00113284 0.000546407 0.000180332 9.38644e-06 3.66911e-06 1.63274e-06 1.7554e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.82801835204893248 0.46553849925547169 3.5000000000000004 0.17408222448223767 1.0256168289528838 1.1597348923655619 1.2433743438056273 0.58644753314242826 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 -6 -4 -5 -2 -10 -8 -11 -13\nright_child=8 3 6 4 5 -7 10 -9 9 11 -12 12 -14\nleaf_value=-0.00088693511557063275 -0.010396188818298999 -0.0055228479658697826 0.010548037458901156 0.010138106150709076 0.00084631041088466751 -0.0071556259971951473 0.010103391678958096 0.0106647590283528 -0.010116692155252491 -0.010086276442106258 0.010062405611058187 -0.010092037442539302 -0.010059214957070562\nleaf_weight=1.2615182884037519 0.16927651036530633 2.7149770031683174 0.54003296792507161 2.1285570142790706 17.445840132422749 2.5000020153820506 0.22964763548225153 0.21709267981350411 0.32867876812815655 0.25496697705239046 4.4665661244653165 0.16866913763806213 4.7985524130053818\nleaf_count=7 13 31 12 227 208 24 25 5 34 31 739 21 823\ninternal_value=0 0.00182889 0.00797844 0.000230976 0.000931759 -0.000156648 0.0101143 0.0101868 -0.0100747 -0.0100649 0.0100644 -0.0100616 -0.0100603\ninternal_weight=0 31.5042 6.49777 25.0065 22.2915 19.9458 5.23625 2.34565 5.72014 5.55087 4.69621 5.22219 4.96722\ninternal_count=2200 1278 783 495 464 232 776 232 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=446\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 2 1 0 2 2 12 3 1 3 1 4\nsplit_gain=6.78276 3.06704 3.22124 2.63369 2.53928 3.52692 2.62663 1.44546 0.478984 0.000175171 9.10849e-06 1.58414e-06 1.70333e-06\nthreshold=5.4588099803130126 0.37470171316558165 1.2169811510592434 1.1732074739105893 0.61398027225796947 1.0956011871597129 1.2396581529761168 5.1961133448999481 1.2537081564319763 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 7 -3 8 -7 -1 -6 -2 -11 -12 -13\nright_child=9 4 -4 -5 5 6 -8 -9 -10 10 11 12 -14\nleaf_value=0.0081794991241124736 -0.0103923429541064 -0.014164413892915669 -0.0066141873888897152 -0.013014316605587507 0.009340106620856584 -0.0050323469266851297 0.0033269415894963202 0.026451722846665793 0.020541084388606877 -0.010115523359398108 -0.010085411214463654 -0.01009111558052961 -0.010058622960291459\nleaf_weight=9.5201494316570443 0.1676538921892633 1.3048266004771019 1.8141533201560367 0.5741835683584221 1.9237119462341099 8.8240350717678648 6.5484183598309746 0.45356062054634172 0.47630315646529187 0.32544577261432994 0.2524515613913535 0.16700603254139412 4.7510844152420759\nleaf_count=829 13 19 19 6 163 148 89 2 3 34 31 21 823\ninternal_value=0 0.00181447 0.00569451 0.0078115 -0.000699787 0.000288764 -0.00147142 0.00901044 0.011563 -0.0100739 -0.0100642 -0.010061 -0.0100597\ninternal_weight=0 31.4393 12.362 10.5479 19.0773 17.7725 15.3725 9.97371 2.40002 5.66364 5.49599 5.17054 4.91809\ninternal_count=2200 1278 856 837 422 403 237 831 166 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=447\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 12 4 3 13 0 3 0 1 1 3 3 1 4\nsplit_gain=6.70726 3.0418 1.47996 3.58672 1.15919 1.34277 1.29689 0.0323272 0.0297824 0.000309435 0.000170157 6.91443e-05 8.83904e-06 1.53708e-06 1.65289e-06\nthreshold=5.4588099803130126 0.85893167272483917 2.8519184598181413 0.3447436949325795 0.58644753314242826 0.39953842781531468 1.2509949463117855 0.1444701471912849 0.31415341067031349 0.99689265265511573 1.1597348923655619 0.44465464507834146 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 8 -3 9 -7 -4 -1 -6 -2 -9 -12 -14 -15\nright_child=10 4 7 -5 5 6 -8 11 -10 -11 12 -13 13 14 -16\nleaf_value=0.012949259944613593 -0.010388533256300393 -0.0088183605314940648 0.013165116916828506 -0.011242299300638945 0.010106831101989924 -0.0009700071859048198 0.0070366120932815572 0.010295831441259413 0.010156543235139872 0.01043834055929947 -0.010114366197938571 0.010066533374511457 -0.010084554509904156 -0.010090202893825569 -0.010058035907071753\nleaf_weight=0.76485082134604743 0.16604627063497801 1.4067395161837364 0.36356849968433369 1.2589503191411493 0.95050609624013549 18.350041451863948 2.2737181503325692 0.13530189264565695 0.76259621884673834 0.40007662214338779 0.32224421110004176 4.6912055937573314 0.24996075080707658 0.16535917483270157 4.7040833388455212\nleaf_count=5 13 14 2 13 110 233 27 7 87 12 34 768 31 21 823\ninternal_value=0 0.00180106 0.00713345 0.0012547 -1.80828e-05 0.000545288 -8.72973e-05 0.0102896 0.011555 0.010205 -0.0100732 0.010073 -0.0100636 -0.0100604 -0.0100591\ninternal_weight=0 31.3576 7.97647 2.7864 23.3811 21.9743 20.6238 5.19008 1.52745 1.35058 5.60769 4.82651 5.44165 5.1194 4.86944\ninternal_count=2200 1278 882 105 396 382 260 777 92 122 922 775 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=448\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 12 4 3 13 0 3 0 1 1 3 3 1 4\nsplit_gain=6.63246 3.00991 1.4727 3.52964 1.13996 1.32973 1.26726 0.0312625 0.0287839 0.000300188 0.000165285 6.70961e-05 8.57739e-06 1.49136e-06 1.60386e-06\nthreshold=5.4588099803130126 0.85893167272483917 2.8519184598181413 0.3447436949325795 0.58644753314242826 0.39953842781531468 1.2509949463117855 0.1444701471912849 0.31415341067031349 0.99689265265511573 1.1597348923655619 0.44465464507834146 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 8 -3 9 -7 -4 -1 -6 -2 -9 -12 -14 -15\nright_child=10 4 7 -5 5 6 -8 11 -10 -11 12 -13 13 14 -16\nleaf_value=0.012912200282376248 -0.010384759776059346 -0.0087610154279338555 0.013123837798699554 -0.01111044447683367 0.010105762650113764 -0.00096041191505505342 0.0069421116306305902 0.010292845186617794 0.010154999879416352 0.01043386374577588 -0.010113220813423732 0.010065868504637044 -0.010083706621340671 -0.010089299217196195 -0.010057455468091612\nleaf_weight=0.75940291211009314 0.16445351811125775 1.4018126092851186 0.3610774129629134 1.2611411102116106 0.94114740192890411 18.348049666732553 2.2815828528255215 0.13399428594857443 0.75512242875993252 0.3962648892775178 0.31907378183677781 4.6448325389064848 0.24749430548399676 0.1637284131720661 4.6575445858761668\nleaf_count=5 13 14 2 13 110 233 27 7 87 12 34 768 31 21 823\ninternal_value=0 0.00178734 0.00711688 0.00124727 -1.79041e-05 0.000540032 -8.64137e-05 0.0102866 0.0115375 0.010203 -0.0100725 0.0100722 -0.0100629 -0.0100598 -0.0100585\ninternal_weight=0 31.2844 7.91557 2.77567 23.3689 21.967 20.6296 5.1399 1.51453 1.33741 5.55229 4.77883 5.38784 5.06877 4.82127\ninternal_count=2200 1278 882 105 396 382 260 777 92 122 922 775 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=449\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 2 2 1 3 12 3 0\nsplit_gain=6.56359 2.71619 2.84121 3.39966 1.52029 1.91733 1.33942 1.14196 0.990004 1.66043 1.26277 1.76586 0.306736 0.00271981 6.9323e-06 1.18207e-07\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 1.2704041812989106 1.2750941039804975 1.2807709791646134 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.012037132736378471 -0.011027399621633275 -0.0085670064564580695 0.010476633831121086 -0.0073391277775751874 0.0084099898334030407 -0.0031474053522687574 0.0043465415742543227 -0.0045331735826338246 -0.010598024239714872 0.025496155493072239 0.020051163487262026 -0.010623173158733616 -0.0038233507509896187 -0.010107547899840249 -0.010065938898813178 -0.010056196703953912\nleaf_weight=1.3452511737123156 1.0769039457663887 2.017171821556988 7.4899609847925586 2.770169323310256 2.6364939622580996 8.4252090249210578 3.3268016437068573 0.56577836722135533 1.1755565367639063 0.26470449706539489 0.29238513950258493 0.52404542174190283 0.15306615456938732 0.28310096310451616 0.12832071073353279 4.2344309450127184\nleaf_count=39 29 35 971 28 24 85 82 3 32 4 10 42 2 32 20 762\ninternal_value=0 0.00222821 0.00577577 -0.0010054 -0.000436782 0.000703021 -0.00102599 0.00917546 -0.00802372 -0.00223854 0.00651591 0.000362109 0.0101902 -0.0101683 -0.0100596 -0.0100565\ninternal_weight=0 28.7299 12.3242 4.11542 16.4057 14.3885 11.752 8.20881 7.97945 2.15804 1.08114 0.816431 7.64303 5.82141 4.64585 4.36275\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 56 52 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=450\nnum_leaves=16\nnum_cat=0\nsplit_feature=12 1 12 4 3 13 0 3 0 1 1 3 3 1 4\nsplit_gain=6.49862 2.94781 1.46583 3.43271 1.11275 1.30684 1.22931 0.0307885 0.026933 0.000290268 0.000163255 6.62301e-05 8.22139e-06 1.54775e-06 1.60054e-06\nthreshold=5.4588099803130126 0.85893167272483917 2.8519184598181413 0.3447436949325795 0.58644753314242826 0.39953842781531468 1.2509949463117855 0.1444701471912849 0.31415341067031349 0.99689265265511573 1.1597348923655619 0.44465464507834146 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 8 -3 9 -7 -4 -1 -6 -2 -9 -12 -14 -15\nright_child=10 4 7 -5 5 6 -8 11 -10 -11 12 -13 13 14 -16\nleaf_value=0.012841922199170104 -0.010382737584364747 -0.008690612475824264 0.01310587089792443 -0.010900459499386539 0.010104137361596013 -0.00094671753191818606 0.006827205301846934 0.010291234234377482 0.010152234837772795 0.010429344064221014 -0.010111492199371628 0.010064711761619166 -0.010083156457299647 -0.010088357730183796 -0.010056328727189484\nleaf_weight=0.74896181747317603 0.16342226509004731 1.3905998058617139 0.35998110473155964 1.2643676474690435 0.92428398365155107 18.304577021393929 2.2884572334587565 0.1328366370871662 0.7402458069846034 0.39038182981312275 0.31351935397833575 4.5545279877260327 0.24587649852037419 0.16153807658702124 4.5670814379118383\nleaf_count=5 13 14 2 13 110 233 27 7 87 12 34 768 31 21 823\ninternal_value=0 0.00176518 0.00708583 0.00121699 -1.63163e-05 0.000534288 -8.28191e-05 0.0102876 0.0115049 0.0102007 -0.0100714 0.0100711 -0.0100618 -0.0100587 -0.0100574\ninternal_weight=0 31.0992 7.80092 2.75358 23.2983 21.9077 20.593 5.04735 1.48921 1.31467 5.45144 4.68736 5.28802 4.9745 4.72862\ninternal_count=2200 1278 882 105 396 382 260 777 92 122 922 775 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=451\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 3 2 3 0 1 3 3 1 4\nsplit_gain=6.42624 2.9235 1.86968 2.96128 0.926699 0.920097 0.0280977 0.0272984 0.000158577 2.513e-05 7.97789e-06 1.50164e-06 1.55306e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.17408222448223767 1.2396581529761168 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.01258355427919672 -0.010379018627378594 -0.01287603455444535 -0.00027127914487613407 -0.0024040480419366735 0.0087702156166023938 0.0019942781144733001 0.010161169939125501 0.013928546356505209 -0.010110375717272571 0.010064722961056252 -0.010082322425374482 -0.010087473011057431 -0.010055765866342324\nleaf_weight=0.82454010378569664 0.16185386897995968 0.97427688539028423 1.4315383546054388 12.372972975485029 5.4466339191421866 7.7261045603081575 0.3201817665249117 0.20249781012535084 0.31043389067053784 1.7291159466840325 0.24345001764595497 0.15994470100849856 4.5218901461921632\nleaf_count=8 13 5 14 158 662 97 36 1 34 297 31 21 823\ninternal_value=0 0.00175166 0.000733333 0.00122483 0.00688843 -0.000713327 0.0110042 0.0104259 -0.0100707 0.0100798 -0.0100612 -0.0100581 -0.0100568\ninternal_weight=0 31.0279 27.9515 26.9772 6.87817 20.0991 3.07634 2.2518 5.39757 2.0493 5.23572 4.92528 4.68183\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=452\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 3 2 3 0 1 3 3 1 4\nsplit_gain=6.35465 2.89685 1.83398 2.92244 1.15355 0.950676 0.0271987 0.0263733 0.000154032 2.44015e-05 7.742e-06 1.45711e-06 1.5071e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.95282455020400814 0.92418840188043572 0.77035900000382884 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 5 -5 -4 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 3 4 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.01255296584159608 -0.010375334393007554 -0.012756210048985181 -0.0026248298239331881 -0.0095452295944108041 3.9955169827996012e-05 0.0088230652949277625 0.010159585840461168 0.013874207230814537 -0.010109270597316946 0.010064077565773108 -0.010081497265526082 -0.010086597048204884 -0.010055207345331966\nleaf_weight=0.81831499002874197 0.16030000895261665 0.97359783947468059 0.83989015081897633 1.3422808516770626 19.432381673716009 5.3217877359129488 0.31704508047550994 0.20126418769359578 0.30737845040857781 1.7120202151127157 0.24104728270322073 0.15836690785363305 4.4771438715979457\nleaf_count=8 13 5 46 18 246 621 36 1 34 297 31 21 823\ninternal_value=0 0.00173813 0.000727144 0.00121449 -0.000579357 0.00726262 0.0109936 0.0104215 -0.01007 0.010079 -0.0100606 -0.0100575 -0.0100563\ninternal_weight=0 30.9586 27.9099 26.9363 20.7747 6.16168 3.04864 2.23033 5.34424 2.02907 5.18394 4.87656 4.63551\ninternal_count=2200 1278 936 931 264 667 342 334 922 333 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=453\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 2 2 1 3 12 3 0\nsplit_gain=6.28411 2.632 2.77114 3.2571 1.51115 1.8881 1.30651 1.1236 0.985867 1.6533 1.20351 1.72321 0.307115 0.00262879 6.14799e-06 1.04816e-07\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 1.2704041812989106 1.2750941039804975 1.2807709791646134 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.011974697187038037 -0.011017670214295649 -0.0085515449358519388 0.010481141974411993 -0.007176545934368948 0.0083760017968941766 -0.0031075478205838968 0.0042981244943485477 -0.0044447731014350643 -0.01059102556646775 0.024895453895272559 0.019760040162953921 -0.010625865543248346 -0.0038692068686117459 -0.010103307299661078 -0.010063339141141756 -0.010053981366186401\nleaf_weight=1.3112886897288278 1.0657987426966422 2.0104479566216495 7.2622317536734045 2.7513674516230822 2.6227007713168851 8.4080000407993776 3.3240202860906711 0.56485527008771885 1.1629691533744333 0.26853976631537058 0.29369657300412655 0.51198628591373563 0.15226055309176434 0.27211579680442799 0.12332413159310807 4.0692801168188453\nleaf_count=39 29 35 971 28 24 85 82 3 32 4 10 42 2 32 20 762\ninternal_value=0 0.0021793 0.00572776 -0.000995169 -0.000431764 0.00070545 -0.00100931 0.00915071 -0.00797067 -0.00219346 0.00656156 0.000450746 0.0101864 -0.0101676 -0.0100572 -0.0100543\ninternal_weight=0 28.4072 12.042 4.06266 16.3652 14.3547 11.732 7.97935 7.76771 2.14002 1.07422 0.805683 7.41449 5.62769 4.46472 4.1926\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 56 52 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=454\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 4 2 3 0 1 3 3 1 4\nsplit_gain=6.2269 2.84849 1.79163 2.8648 0.910078 0.900003 0.0252629 0.0260063 0.000152098 2.28921e-05 7.42802e-06 1.50801e-06 1.41513e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.2396581529761168 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.012494319373162081 -0.010373343227789386 -0.012629114416811176 0.010388874446312925 -0.0023730210159559162 0.0030439719117535307 0.0019806683363008414 0.010156336579906212 0.013853641196215401 -0.010107633505837176 0.010062864164965497 -0.010080959888564835 -0.010083757557277055 -0.010054122358556003\nleaf_weight=0.80621051508933606 0.15928954491391678 0.97063271701336162 3.4848742089234319 12.330525060184302 3.2698383019305766 7.721622457727789 0.31048069195821915 0.2007906138896941 0.30203517107292999 1.678333942312747 0.23946400079876173 0.16728685796260823 4.3791629788465798\nleaf_count=8 13 5 464 158 212 97 36 1 34 297 31 23 821\ninternal_value=0 0.00171672 0.000717572 0.00120083 0.00683334 -0.000696515 0.010981 0.0104237 -0.0100691 0.0100775 -0.0100595 -0.0100565 -0.0100552\ninternal_weight=0 30.7733 27.7775 26.8069 6.75471 20.0521 2.99582 2.18961 5.24724 1.98881 5.08795 4.78591 4.54645\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=455\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 4 2 3 0 1 3 3 1 4\nsplit_gain=6.15755 2.82258 1.75753 2.82564 0.910428 0.882077 0.0244561 0.025127 0.000147736 2.22283e-05 7.20809e-06 1.46313e-06 1.37315e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.2396581529761168 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.012464935579989841 -0.010369712723684761 -0.012512631698026347 0.010385901921020844 -0.0023499364301439972 0.0030188981187001412 0.0019594637386309835 0.010154799479780352 0.013800621098903532 -0.010106556084536601 0.010062236952923187 -0.010080148263075246 -0.010082919019371687 -0.010053581609562075\nleaf_weight=0.80006075836718382 0.15775951882824202 0.96987561881542461 3.4511816869489875 12.327154603786768 3.2640555524267256 7.7271034810692063 0.30743765411898527 0.19955259561538685 0.29906158661469806 1.6617373200133441 0.23710028640925873 0.16563602769747365 4.3358217254281044\nleaf_count=8 13 5 464 158 212 97 36 1 34 297 31 23 821\ninternal_value=0 0.00170327 0.000711434 0.00119055 0.00680504 -0.000689482 0.0109706 0.0104193 -0.0100684 0.0100767 -0.0100589 -0.0100559 -0.0100547\ninternal_weight=0 30.7082 27.7394 26.7695 6.71524 20.0543 2.96879 2.16873 5.19538 1.96917 5.03762 4.73856 4.50146\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=456\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 3 2 3 5 1 3 3 1 4\nsplit_gain=6.08901 2.79691 1.72412 2.78761 1.12422 0.948319 0.0236757 0.0242789 0.000143498 2.15835e-05 6.99497e-06 1.41974e-06 1.33254e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.95282455020400814 0.92418840188043572 0.77035900000382884 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 -3 5 -5 -4 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 3 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.012435946363075906 -0.010366116595040702 -0.012397590616731661 -0.0027399403235959957 -0.0094601021629716169 5.1020253691925319e-05 0.0087692310027185083 0.013748531293470832 0.010153277369868435 -0.010105489305392321 0.010061616154336137 -0.010079344922560929 -0.010082089047190282 -0.010053044932261137\nleaf_weight=0.79393718484789433 0.15624369913712044 0.96909058094024914 0.83080633822828787 1.3278403002768779 19.396463893353939 5.1773883136920631 0.19831179082393613 0.30442399904131945 0.29611697327345599 1.6453037341125307 0.23475971817970265 0.16400135355070222 4.2929075253196061\nleaf_count=8 13 5 46 18 246 621 1 36 34 297 31 23 821\ninternal_value=0 0.00168989 0.000705341 0.00118034 -0.000558373 0.00717776 0.0109604 0.010415 -0.0100677 0.0100759 -0.0100584 -0.0100554 -0.0100541\ninternal_weight=0 30.6436 27.7016 26.7325 20.7243 6.00819 2.94198 2.14804 5.14403 1.94973 4.98779 4.69167 4.45691\ninternal_count=2200 1278 936 931 264 667 342 334 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=457\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 2 1 0 2 2 12 3 1 3 1 4\nsplit_gain=6.02151 2.77361 3.14192 2.54607 2.33649 3.38843 2.53298 1.38925 0.455443 0.00013938 6.78789e-06 1.37749e-06 1.29305e-06\nthreshold=5.4588099803130126 0.37470171316558165 1.2169811510592434 1.1732074739105893 0.61398027225796947 1.0956011871597129 1.2396581529761168 5.1961133448999481 1.2537081564319763 1.1597348923655619 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 7 -3 8 -7 -1 -6 -2 -11 -12 -13\nright_child=9 4 -4 -5 5 6 -8 -9 -10 10 11 12 -14\nleaf_value=0.008064194123176301 -0.010362554900860745 -0.013812272419136601 -0.0066426181881673587 -0.012939159509170453 0.009315250393982363 -0.0049940338004503468 0.0032366191926903628 0.025973370139273561 0.020347323463215265 -0.010104433511713343 -0.010078549653401716 -0.010081267624177531 -0.010052514936679384\nleaf_weight=8.9260541945695859 0.15474195126444001 1.2680238126777137 1.8067200342193235 0.56421154364943582 1.8200484947301476 8.7050311770290119 6.5543759842403224 0.45523257553577501 0.4710688367485999 0.29320104047656048 0.23244206700474013 0.16238267719745625 4.2504154900088906\nleaf_count=829 13 19 19 6 163 148 89 2 3 34 31 23 821\ninternal_value=0 0.00167707 0.00548863 0.00769242 -0.000703258 0.000243867 -0.00145872 0.00893325 0.0115835 -0.010067 -0.0100578 -0.0100548 -0.0100536\ninternal_weight=0 30.5708 11.7522 9.9455 18.8185 17.5505 15.2594 9.38129 2.29112 5.09318 4.93844 4.64524 4.4128\ninternal_count=2200 1278 856 837 422 403 237 831 166 922 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=458\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 4 0 3 5 1 3 3 1 4\nsplit_gain=5.95487 2.75526 1.68922 2.74301 0.905109 0.858348 0.0224182 0.0229905 0.00013538 2.04747e-05 6.58731e-06 1.33664e-06 1.25483e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.1427926010382323 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.012388967388680323 -0.010359027368012015 -0.012290883925574739 0.010378278614513346 0.00092314795308453981 0.0029716814831665136 -0.0033530386363096001 0.013667651419505043 0.010150583023129075 -0.010103388352231776 0.010060513149167791 -0.010077762220132432 -0.010080454256688824 -0.010051988822038374\nleaf_weight=0.78389359079301657 0.15325415320694347 0.9672182053327586 3.3700214703567353 12.518777824006976 3.2325324383564293 7.5100776469334951 0.19633613526821103 0.29908924829214867 0.29031352000311006 1.6161048603244124 0.2301471191458403 0.16077984962612379 4.2083420567214489\nleaf_count=8 13 5 464 146 212 109 1 36 34 297 31 23 821\ninternal_value=0 0.00166452 0.000690912 0.00116239 0.0067521 -0.000680263 0.0109448 0.0104087 -0.0100664 0.0100746 -0.0100572 -0.0100543 -0.010053\ninternal_weight=0 30.4941 27.5986 26.6314 6.60255 20.0289 2.89542 2.11153 5.04284 1.91519 4.88958 4.59927 4.36912\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=459\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 3 2 3 0 1 3 3 1 4\nsplit_gain=5.88909 2.72986 1.65731 2.70517 0.905609 0.857369 0.0217042 0.0222177 0.000131493 1.98806e-05 6.39232e-06 1.29692e-06 1.21766e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.17408222448223767 1.2396581529761168 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.0123609932725058 -0.01035553258238874 -0.01217864501773039 -0.00039931895414476858 -0.0023154338547628148 0.0086604968684567945 0.001935407813586213 0.010149101970704488 0.013617864621384581 -0.010102353580200897 0.010059909332301269 -0.010076983089887991 -0.010079649334913626 -0.010051469212763696\nleaf_weight=0.77784129232168497 0.15178019413724442 0.96637505292892711 1.4033191874623323 12.286786808632316 5.1610683873295784 7.729833483695983 0.29615625832229886 0.1950896531343459 0.28745414549484838 1.6001198687590656 0.22787464736029495 0.15919271204620589 4.166682681068778\nleaf_count=8 13 5 14 158 662 97 36 1 34 297 31 23 821\ninternal_value=0 0.00165217 0.00068533 0.00115301 0.00672371 -0.000673883 0.0109349 0.0104044 -0.0100657 0.0100738 -0.0100566 -0.0100537 -0.0100525\ninternal_weight=0 30.4166 27.5474 26.581 6.56439 20.0166 2.86921 2.09137 4.99298 1.89628 4.8412 4.55375 4.32588\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=460\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 1 0 3 13 13 3 1 1 3 3 1 4\nsplit_gain=5.82374 2.70657 1.20564 0.904158 2.05641 1.37465 0.000991897 0.000479162 0.000127716 6.20331e-06 2.45679e-06 1.25843e-06 1.18163e-06\nthreshold=5.4588099803130126 0.80845556346269254 0.31415341067031349 0.82801835204893248 0.46553849925547169 0.50652862085158101 0.17408222448223767 1.0256168289528838 1.1597348923655619 1.2433743438056273 0.58644753314242826 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 -1 -3 7 -6 -4 -5 -2 -10 -8 -11 -13\nright_child=8 3 6 4 5 -7 10 -9 9 11 -12 12 -14\nleaf_value=-0.0010910775361621947 -0.01035207110989512 -0.005407913822461901 0.010524439364525932 0.01013173456225254 -0.00873063721300525 0.00064959449119049678 0.010090409107403504 0.010639002200238581 -0.01010132930780068 -0.010076211681572019 0.010054514362857122 -0.010078852274620558 -0.01005095408280258\nleaf_weight=1.2148936316370988 0.15031995484605332 2.5859895381145206 0.50875310041010369 1.923693767748776 1.7098423196002865 18.106070886366069 0.20049411803483952 0.20616906881332386 0.2846226431429385 0.22562444349750865 3.8957088361494243 0.15762111963704217 4.1254338123835623\nleaf_count=7 13 31 12 227 16 216 25 5 34 31 739 23 821\ninternal_value=0 0.00163925 0.00777019 0.000184763 0.000843779 -0.000159791 0.010108 0.0101808 -0.0100651 -0.0100561 0.0100563 -0.0100532 -0.010052\ninternal_weight=0 30.3516 5.81985 24.5318 21.9458 19.8159 4.60496 2.12986 4.94362 4.7933 4.0962 4.50868 4.28305\ninternal_count=2200 1278 783 495 464 232 776 232 922 909 764 875 844\nis_linear=0\nshrinkage=0.01\n\n\nTree=461\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 4 0 3 5 1 3 3 1 4\nsplit_gain=5.75905 2.7008 1.61839 2.64971 0.908261 0.849054 0.0209778 0.0219255 0.000124047 1.95961e-05 6.01963e-06 1.22096e-06 1.14658e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.1427926010382323 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.012340796702032876 -0.010348642729734197 -0.012054928069094679 0.010378289116421332 0.00092588899834944362 0.0028931187413877651 -0.0033290642570458786 0.013600225443859778 0.010148036568771245 -0.0101003153741518 0.010058717842242135 -0.010075447844777843 -0.010078063240228044 -0.01005044527936918\nleaf_weight=0.771563446149233 0.14887330168858071 0.96462000906467693 3.2867032056674388 12.516018944792451 3.1988467373885214 7.4998887702822676 0.19464242458343473 0.29123677359893974 0.28181874752044667 1.5686028734780846 0.22339629009366024 0.15606491919606913 4.0845909244380891\nleaf_count=8 13 5 464 146 212 109 1 36 34 297 31 23 821\ninternal_value=0 0.00162616 0.000668367 0.00113148 0.0066864 -0.000668427 0.0109349 0.0104069 -0.0100644 0.0100727 -0.0100555 -0.0100527 -0.0100515\ninternal_weight=0 30.2921 27.4661 26.5015 6.48555 20.0159 2.82605 2.05448 4.89474 1.85984 4.74587 4.46405 4.24066\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=462\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 4 2 3 5 1 3 3 1 4\nsplit_gain=5.69552 2.67583 1.58788 2.61297 0.908269 0.841306 0.0203101 0.0211901 0.000120482 1.90274e-05 5.84155e-06 1.18472e-06 1.11266e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.2396581529761168 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.012313451948522293 -0.010345246418093056 -0.011945494259502282 0.010375375332372301 -0.0022895880635686711 0.0028689998899923698 0.0019221185774842275 0.013551593308192611 0.010146580546923694 -0.010099311483721172 0.010058131828610957 -0.010074692025984374 -0.010077282392773173 -0.01004994072475578\nleaf_weight=0.7655741237103969 0.14744013035669823 0.96372692286968487 3.2549092392437187 12.274176127277316 3.1935079754330218 7.729606630280613 0.19339378178119626 0.28838008735328968 0.2790421969257294 1.5530850221402941 0.22118996968492854 0.15452396171167482 4.0441504726186395\nleaf_count=8 13 5 464 158 212 97 1 36 34 297 31 23 821\ninternal_value=0 0.00161403 0.000662947 0.00112231 0.00665793 -0.000662154 0.010925 0.0104027 -0.0100638 0.010072 -0.0100549 -0.0100521 -0.0100509\ninternal_weight=0 30.2164 27.4159 26.4522 6.44842 20.0038 2.80043 2.03486 4.84635 1.84147 4.69891 4.41986 4.19867\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=463\nnum_leaves=17\nnum_cat=1\nsplit_feature=1 4 0 1 2 4 13 2 2 3 5 12 3 3 3 0\nsplit_gain=5.63574 2.41881 1.66924 2.34061 1.20952 0.988558 1.68164 1.36586 1.57736 0.019664 0.0204804 0.00248754 0.000832038 1.84749e-05 4.55393e-06 7.7639e-08\nthreshold=1.2071296172255412 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2813361202598783 0.40520528501409475 0.93885093126527053 1.2704041812989106 1.2771323865657005 0.24292548700197389 0 5.4588099803130126 0.17408222448223767 0.65509567554656234 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 9 -3 12 -5 6 -2 -8 -9 -1 -11 -7 -4 -12 -13 -16\nright_child=5 2 3 4 -6 11 7 8 -10 10 13 14 -14 -15 15 -17\nleaf_value=0.01228646969700853 -0.010966250399228925 -0.011837355244720373 0.010548163463779609 0.0012616733961802009 -0.0065805604288985643 -0.010579564254814216 -0.011174889328434908 0.038884936968317088 0.0056262940540964925 0.013503788691028471 0.010145138751436173 -0.010093426041843219 0.010055456923823225 0.010057552517052266 -0.010057282270328149 -0.010048818404652023\nleaf_weight=0.75961272977292837 1.0492891017347568 0.96281023323536175 0.39888299256563486 18.905750385951254 2.1950139668770126 1.1462101107463238 0.29705736320465781 0.19195533730089664 0.55462452443316579 0.19214390218257871 0.28555103344842847 0.24646393302828062 2.4351661032997072 1.5377197149209676 0.11166339460760388 3.6838975786231458\nleaf_count=8 21 5 9 386 65 32 14 2 48 1 36 32 462 297 20 762\ninternal_value=0 0.00205964 0.00107261 0.00159193 0.000445882 -0.00782809 -0.00202668 0.0069613 0.0141775 0.0109153 0.0103985 -0.0101684 0.0101248 0.0100713 -0.0100518 -0.0100491\ninternal_weight=0 27.6727 24.8976 23.9348 21.1008 7.28116 2.09293 1.04364 0.74658 2.77503 2.01541 5.18824 2.83405 1.82327 4.04202 3.79556\ninternal_count=2200 1269 927 922 451 931 85 64 50 342 334 846 471 333 814 782\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=464\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 0 3 5 3 1 3 3 1 4\nsplit_gain=5.57894 2.6256 1.52917 2.55363 0.966803 0.019039 0.0197956 0.000807092 0.000114903 1.79384e-05 5.5266e-06 1.15963e-06 1.10425e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 0 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 9 -4 -2 -7 -10 -12 -13\nright_child=8 2 3 4 -6 6 -8 -9 10 -11 11 12 -14\nleaf_value=0.012259844416271962 -0.010339616158086224 -0.011730486552078121 0.01054248456424366 -0.00064834473648828195 0.0060644661362143238 0.010143710814121567 0.013456791347364411 0.010054902210779577 -0.010097478709836278 0.010056978600549736 -0.010073656668124412 -0.01007635024109356 -0.010048978889132493\nleaf_weight=0.75367954652756752 0.14522413862869044 0.96187067031860607 0.39512569457292857 21.169945974834267 2.3874657005071631 0.28274935111403476 0.19089306890964475 2.4110681302845478 0.27418473688885558 1.5225056125782428 0.21810510475188483 0.15308107528835524 3.9666854096576571\nleaf_count=8 13 5 9 431 29 36 1 462 34 297 31 23 821\ninternal_value=0 0.00159159 0.000654288 0.00110614 3.19764e-05 0.0109057 0.0103944 0.0101236 -0.0100627 0.0100706 -0.0100539 -0.0100512 -0.01005\ninternal_weight=0 30.0753 27.3255 26.3636 23.5574 2.74983 1.99615 2.80619 4.75728 1.80525 4.61206 4.33787 4.11977\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=465\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 4 0 3 5 1 3 3 1 4\nsplit_gain=5.5168 2.60191 1.50022 2.53146 0.910087 0.837173 0.0184342 0.0191347 0.000111598 1.74177e-05 5.36312e-06 1.12518e-06 1.07157e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.96155453354879217 0.37556916262744572 1.1427926010382323 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 -3 4 -4 -5 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 3 5 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.012233569552967821 -0.010336306061673087 -0.01162486216090112 0.01037332921729283 0.00093068470931900672 0.0028044112873219507 -0.0032984617804029453 0.013410586574025172 0.010142296989769041 -0.01009650352099919 0.010056409728718638 -0.010072918688811699 -0.010075586562257243 -0.010048489182054046\nleaf_weight=0.7477748841047317 0.14382494799792667 0.96090902388096111 3.1815228932537165 12.508458076044919 3.1729012653231621 7.4795556236058465 0.18964155018329587 0.2799747744575144 0.27148264041170467 1.5074412468820808 0.21595066506415594 0.15156932361423958 3.9274066821672022\nleaf_count=8 13 5 464 146 212 109 1 36 34 297 31 23 821\ninternal_value=0 0.00157823 0.000648311 0.00109601 0.006594 -0.000651871 0.0108962 0.0103903 -0.010062 0.0100699 -0.0100534 -0.0100507 -0.0100495\ninternal_weight=0 30.0282 27.3033 26.3424 6.35442 19.988 2.72483 1.97706 4.71023 1.78742 4.56641 4.29493 4.07898\ninternal_count=2200 1278 936 931 676 255 342 334 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=466\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 0 3 5 3 1 3 3 1 4\nsplit_gain=5.45606 2.57786 1.47206 2.51248 0.956017 0.017849 0.0184967 0.000759554 0.000108388 1.69116e-05 5.20452e-06 1.09181e-06 1.03986e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 0 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2034118844789969 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -7 -4 -2 -8 -10 -12 -13\nright_child=8 2 3 4 -6 6 9 -9 10 -11 11 12 -14\nleaf_value=0.012207640956411333 -0.010333027739213 -0.011520458520497642 0.010531395524991811 -0.00064809368874925097 0.0060242305936801209 0.013365153756968251 0.010140896712776508 0.010053950774687195 -0.010095537931711241 0.010055847545489074 -0.010072188348063463 -0.010074830238337707 -0.01004800397193816\nleaf_weight=0.74189896415919365 0.14243881683796544 0.95992596447468059 0.38776763901114764 21.148655871860687 2.3900763168930999 0.18838962912559476 0.2772270585410298 2.368070375174284 0.26880692085251201 1.4925250275991855 0.21381734637543548 0.15007239114493121 3.8885151757858694\nleaf_count=8 13 5 9 431 29 1 36 462 34 297 31 23 821\ninternal_value=0 0.00156638 0.00064303 0.00108708 2.94009e-05 0.0108867 0.0103863 0.0101211 -0.0100614 0.0100692 -0.0100529 -0.0100502 -0.010049\ninternal_weight=0 29.9545 27.2545 26.2946 23.5387 2.70004 1.95814 2.75584 4.66365 1.76975 4.52121 4.2524 4.03859\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 844\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=467\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 13 2 12 3 12 3 0\nsplit_gain=5.39559 2.33283 2.6829 2.99894 1.58 1.83569 1.30593 1.09441 0.984822 1.67258 1.34643 1.59786 0.310469 0.00242299 4.03879e-06 6.88505e-08\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 0.93885093126527053 1.2704041812989106 5.4441990008005208 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.011841385420008416 -0.010956593740784934 -0.008791387640792318 0.010508541605980849 -0.0071391518750017523 0.0083360126827416326 -0.0030465745042052433 0.0044058892129711039 -0.0043341433712843934 -0.010574941725076363 -0.011161574454164916 0.039147021698486779 0.005563321904957709 -0.0039611474397319227 -0.010089744702536619 -0.010055025238889284 -0.010046894775310889\nleaf_weight=1.2103791637346168 1.0383130777627223 1.9771238598041261 6.6243792162276804 2.6658975966274738 2.6052173376083365 8.3609588816761953 3.2713888385333112 0.56226253509521473 1.1350691542029379 0.29326130729168631 0.19019396603107452 0.55530198477208614 0.15168114006519307 0.23688687710091505 0.10731142107397351 3.5401173559948802\nleaf_count=39 21 35 971 28 24 85 82 3 32 14 1 49 2 32 20 762\ninternal_value=0 0.00201069 0.00551737 -0.00121242 -0.000414651 0.000748598 -0.000950703 0.00907221 -0.00777211 -0.00198105 0.00699065 0.0141313 0.0101846 -0.0101685 -0.0100497 -0.0100471\ninternal_weight=0 27.4293 11.2146 3.87628 16.2147 14.2376 11.6323 7.33832 7.09646 2.07707 1.03876 0.745496 6.77606 5.01938 3.88432 3.64743\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 64 50 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=468\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 0 3 5 3 1 3 3 1 4\nsplit_gain=5.34909 2.53472 1.43849 2.47102 0.931043 0.0165605 0.0182667 0.000751562 0.000107054 1.58651e-05 4.92009e-06 1.1264e-06 1.09618e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 0 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 9 -4 -2 -7 -10 -12 -13\nright_child=8 2 3 4 -6 6 -8 -9 10 -11 11 12 -14\nleaf_value=0.012157500120336647 -0.010331294423328764 -0.011410920505462701 0.010529415177099981 -0.00063924907255873164 0.0059395142813549878 0.010138027108728558 0.013349796664645305 0.010052906793124625 -0.010093790322050569 0.010054792304076668 -0.010070797626116155 -0.010075642985863999 -0.010047030831657075\nleaf_weight=0.73039694689214529 0.1415550229139616 0.95648391544819134 0.38604226522147955 21.092307759914551 2.3955201264470807 0.27149168262258183 0.18796162307262387 2.3213247410021722 0.26419874420389522 1.4631044552661476 0.23012483026832331 0.13878282438963685 3.8062134003266692\nleaf_count=8 13 5 9 431 29 36 1 462 34 297 34 21 820\ninternal_value=0 0.00154621 0.000634638 0.00107447 3.1718e-05 0.0108757 0.0103887 0.0101209 -0.0100606 0.0100678 -0.0100519 -0.0100493 -0.010048\ninternal_weight=0 29.8046 27.1517 26.1952 23.4878 2.65295 1.92256 2.70737 4.58087 1.7346 4.43932 4.17512 3.945\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=469\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 0 1 0 3 0 3 1 3 3 1 4\nsplit_gain=5.28965 2.51181 1.41136 2.44885 0.910132 0.0160357 0.0176588 0.000729042 0.000103973 1.5404e-05 4.77465e-06 1.09301e-06 1.06376e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 1.0867160002493412 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 9 -4 -2 -7 -10 -12 -13\nright_child=8 2 3 4 -6 6 -8 -9 10 -11 11 12 -14\nleaf_value=0.012132566512470673 -0.010328063791921381 -0.01130913824442027 0.010523938490480469 -0.00063287421425325615 0.0058632706249484934 0.010136668360841409 0.013305375596624482 0.01005237758261265 -0.010092852154559429 0.010054245980330152 -0.01007008858890145 -0.01007488620030266 -0.010046560103268407\nleaf_weight=0.72460803296417298 0.14019014872610469 0.95544658601284282 0.38239897973835768 21.091724270954732 2.4023691751062861 0.26882614288479079 0.18670953810214985 2.2983474838547409 0.26159411575645197 1.4486246667802332 0.2278510141186415 0.13741218298673663 3.7685165302827954\nleaf_count=8 13 5 9 431 29 36 1 462 34 297 34 21 820\ninternal_value=0 0.00153317 0.000628827 0.00106459 3.13837e-05 0.0108665 0.0103847 0.0101196 -0.01006 0.0100671 -0.0100514 -0.0100488 -0.0100476\ninternal_weight=0 29.7591 27.1303 26.1748 23.4941 2.62877 1.90416 2.68075 4.53556 1.71745 4.39537 4.13378 3.90593\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=470\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 0 3 5 3 1 3 3 1 4\nsplit_gain=5.2309 2.48911 1.38476 2.42687 0.889725 0.0155279 0.0170721 0.000707198 0.00010098 1.49563e-05 4.63331e-06 1.06053e-06 1.03223e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 0 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 9 -4 -2 -7 -10 -12 -13\nright_child=8 2 3 4 -6 6 -8 -9 10 -11 11 12 -14\nleaf_value=0.012107957612993339 -0.010324863781413916 -0.011208499442980711 0.010518521078470389 -0.00062656272215466701 0.0057882369474549127 0.010135322943636728 0.013261687508416411 0.0100518544021747 -0.010091923233915286 0.010053705055789213 -0.010069386697639446 -0.010074136931453271 -0.010046095010124332\nleaf_weight=0.7188488207757503 0.13883803598582645 0.9543904066085841 0.37878806889057459 21.091148025356237 2.4091419801115981 0.26618642872199427 0.18545764684677091 2.2755964295938611 0.25901492778211821 1.4342873860150573 0.22559950500726689 0.13605497637763653 3.731190986931324\nleaf_count=8 13 5 9 431 29 36 1 462 34 297 34 21 820\ninternal_value=0 0.00152023 0.000623066 0.0010548 3.10531e-05 0.0108574 0.0103807 0.0101184 -0.0100594 0.0100665 -0.0100509 -0.0100483 -0.0100471\ninternal_weight=0 29.7138 27.1091 26.1547 23.5003 2.60478 1.88593 2.65438 4.4907 1.70047 4.35186 4.09285 3.86725\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=471\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 2 3 2 3 12 3 0\nsplit_gain=5.17704 2.26295 2.64212 2.90069 1.56054 1.8134 1.25785 1.0825 0.97734 1.65803 1.18944 1.48374 0.307816 0.00237765 3.58188e-06 6.10548e-08\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 1.2704041812989106 1.1981154781470527 1.2727767592850008 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.011801917536195456 -0.010982913708524033 -0.0087266412378631548 0.010513324590056052 -0.0070526114849745695 0.0083069833456141592 -0.003001698237117819 0.0043092777153622879 -0.0042729296918952078 -0.010571994382395875 -0.011085269400119762 0.036803646630247905 0.0050821301476850931 -0.0039074619987615892 -0.010086209082508417 -0.010052857632819712 -0.010045047534455677\nleaf_weight=1.1794649679213782 1.0246330359950655 1.9808646985329712 6.4541341601870954 2.6475765695795417 2.5941755585372439 8.3447105516679567 3.2776251016184679 0.56211689859628666 1.1262628696858881 0.27068017795681931 0.19891936145722866 0.5698908562771976 0.15149183571338642 0.22767859976738725 0.10312806768342886 3.4019235465675592\nleaf_count=39 29 35 971 28 24 85 82 3 32 5 2 49 2 32 20 762\ninternal_value=0 0.00196555 0.00546697 -0.00124179 -0.000411217 0.000747417 -0.000939923 0.00904895 -0.00772041 -0.0019557 0.00694249 0.0132896 0.0101826 -0.0101693 -0.0100478 -0.0100453\ninternal_weight=0 27.1922 10.9948 3.82704 16.1974 14.2165 11.6223 7.16774 6.92312 2.06412 1.03949 0.76881 6.60563 4.85899 3.73273 3.50505\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 56 51 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=472\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 0 1 0 3 5 3 1 3 3 1 4\nsplit_gain=5.12917 2.44734 1.35344 2.38672 0.868247 0.0143997 0.0168598 0.000699616 9.96803e-05 1.40291e-05 4.39727e-06 1.0918e-06 1.05726e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.31415341067031349 0.80845556346269254 1.2509949463117855 0.24292548700197389 0 0.17408222448223767 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2 2\nleft_child=1 5 -3 7 -5 -1 -7 -4 -2 -8 -10 -12 -13\nright_child=8 2 3 4 -6 6 9 -9 10 -11 11 12 -14\nleaf_value=0.012060250276715589 -0.010323140756241966 -0.011103683945174546 0.010516573066073103 -0.00061832689381929363 0.005714454380126981 0.013246929511009678 0.010132566301992224 0.01005085235503874 -0.010090351945388057 0.010052694401982821 -0.010068936795805306 -0.010073698672012689 -0.010045209775397865\nleaf_weight=0.70755307003856005 0.13796636648476024 0.95084373652935283 0.37708574160933794 21.035860809497539 2.4133625645190468 0.18503008782863584 0.26068106712773453 2.2306666383519769 0.25451745465397824 1.4060088773258028 0.22414000378921617 0.13507365062832866 3.6597394361160696\nleaf_count=8 13 5 9 431 29 1 36 462 34 297 34 21 820\ninternal_value=0 0.00150072 0.000615077 0.00104271 3.34344e-05 0.0108468 0.0103831 0.0101182 -0.0100586 0.0100652 -0.01005 -0.0100475 -0.0100462\ninternal_weight=0 29.5671 27.0078 26.057 23.4492 2.55927 1.85172 2.60775 4.41144 1.66669 4.27347 4.01895 3.79481\ninternal_count=2200 1278 936 931 460 342 334 471 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=473\nnum_leaves=15\nnum_cat=1\nsplit_feature=12 4 3 13 13 2 0 3 5 1 3 3 1 4\nsplit_gain=5.0723 2.42519 1.34012 3.41086 2.08472 0.234239 0.100601 0.0139444 0.0163006 9.68095e-05 1.36213e-05 4.26729e-06 1.05945e-06 1.02599e-06\nthreshold=5.4588099803130126 0.30582682030356095 0.61313736928646123 0.46553849925547169 0.50652862085158101 1.2310049738220437 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 7 6 5 -5 -4 -3 -1 -9 -2 -10 -11 -13 -14\nright_child=9 2 3 4 -6 -7 -8 8 10 11 -12 12 13 -15\nleaf_value=0.012036579016553122 -0.010319987877377021 -0.0073821831233609218 0.010124996007788066 -0.011203840495576038 0.00065377791826182381 -0.0015750301064482027 -0.003820729562456326 0.013204200730581536 0.010131261164673664 -0.010089448405848817 0.010052169006613453 -0.010068246614784265 -0.01007296145831487 -0.010044757426586623\nleaf_weight=0.70188352279365362 0.13663510186597605 1.484788390342149 4.0027744197286692 1.6157746268436337 18.002349368296564 0.17875591525807966 1.7026551994495092 0.18377882242202725 0.25812033144757163 0.25200741738080967 1.3920912472531197 0.22192491311579976 0.13373938435688648 3.6234867610037327\nleaf_count=8 13 17 655 17 216 7 24 1 36 34 297 34 21 820\ninternal_value=0 0.00148801 0.000609433 0.00142494 -0.000322831 0.00962483 -0.00547974 0.0108379 0.0103792 -0.010058 0.0100645 -0.0100495 -0.010047 -0.0100458\ninternal_weight=0 29.523 26.9871 23.7997 19.6181 4.18153 3.18744 2.53587 1.83399 4.36779 1.65021 4.23116 3.97915 3.75723\ninternal_count=2200 1278 936 895 233 662 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=474\nnum_leaves=15\nnum_cat=1\nsplit_feature=12 4 3 13 13 2 0 3 5 1 3 3 1 4\nsplit_gain=5.01635 2.40302 1.31411 3.37877 2.03529 0.233465 0.0985494 0.0135039 0.0157607 9.40196e-05 1.32253e-05 4.14091e-06 1.02792e-06 9.95532e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.61313736928646123 0.46553849925547169 0.50652862085158101 1.2310049738220437 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37470171316558165\ndecision_type=2 2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 7 6 5 -5 -4 -3 -1 -9 -2 -10 -11 -13 -14\nright_child=9 2 3 4 -6 -7 -8 8 10 11 -12 12 13 -15\nleaf_value=0.012013213055272325 -0.010316864724770548 -0.007308529467291134 0.010123801499525195 -0.011047710698571923 0.00064714512634274899 -0.0015592556622176256 -0.0037833767079848437 0.013162169622067951 0.010129968567534304 -0.010088553906629594 0.010051648397889147 -0.01006756332152227 -0.01007223151021581 -0.010044310938828033\nleaf_weight=0.69624448381364645 0.13531630719080467 1.4847544273361593 3.9634113395586636 1.6221906165592397 18.004981976002455 0.17875866312533606 1.7022725534625349 0.18252830207347837 0.25558443786576401 0.24952191440388549 1.3783107278868554 0.21973156044259701 0.1324182013049725 3.5875913552008569\nleaf_count=8 13 17 655 17 216 7 24 1 36 34 297 34 21 820\ninternal_value=0 0.00147594 0.000604113 0.00141259 -0.000319438 0.00961961 -0.00542566 0.0108291 0.0103752 -0.0100574 0.0100639 -0.010049 -0.0100465 -0.0100453\ninternal_weight=0 29.469 26.9564 23.7693 19.6272 4.14217 3.18703 2.51267 1.81642 4.32458 1.6339 4.18926 3.93974 3.72001\ninternal_count=2200 1278 936 895 233 662 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=475\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 13 2 12 3 12 3 0\nsplit_gain=4.96138 2.19209 2.5744 2.78213 1.50666 1.78734 1.23295 1.07329 0.97146 1.65229 1.3142 1.41997 0.304103 0.00229764 3.17663e-06 5.41385e-08\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 0.93885093126527053 1.2704041812989106 5.4441990008005208 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.011759525391724795 -0.010939350344699734 -0.0085678208169079981 0.010523174321493941 -0.0068728814417934464 0.0082663781841707754 -0.0029800861857049409 0.0042577549011316379 -0.0042325003807917776 -0.010565555074404851 -0.011144638013491137 0.037048135831091122 0.0057301999035914691 -0.0037702486190753998 -0.010082813533626039 -0.010050775883398347 -0.010043273719005565\nleaf_weight=1.1507493457756957 1.0204984955489629 1.9841977898031498 6.2609750609844923 2.6395951672457159 2.5787907857447854 8.3364603347145003 3.2794323177076867 0.56169158965349186 1.1153874732553957 0.28737232275307156 0.19706279039382935 0.54562854254618287 0.15247480198740948 0.21882509440183673 0.099106863606721496 3.2691007717512548\nleaf_count=39 21 35 971 28 24 85 82 3 32 14 1 49 2 32 20 762\ninternal_value=0 0.00192101 0.00541766 -0.00121608 -0.000405673 0.000735269 -0.000936678 0.00902248 -0.00766454 -0.00192088 0.00701385 0.01404 0.0101834 -0.0101692 -0.0100459 -0.0100435\ninternal_weight=0 26.9444 10.7655 3.79034 16.1789 14.1947 11.6159 6.97514 6.75298 2.05056 1.03006 0.742691 6.41345 4.70242 3.58703 3.36821\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 64 50 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=476\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 2 1 0 2 2 3 3 1 3 1 4\nsplit_gain=4.9189 2.36348 2.96259 2.43055 2.14109 3.21954 2.47133 1.34001 0.429193 9.28011e-05 3.91563e-06 1.0578e-06 9.37866e-07\nthreshold=5.4588099803130126 0.37470171316558165 1.2169811510592434 1.1732074739105893 0.61398027225796947 1.0956011871597129 1.2396581529761168 1.3210941733026873 1.2537081564319763 1.1597348923655619 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 7 -3 8 -7 -1 -6 -2 -11 -12 -13\nright_child=9 4 -4 -5 5 6 -8 -9 -10 10 11 12 -14\nleaf_value=0.0081875213772722739 -0.010315167472946704 -0.01350170666656589 -0.0065835963063283313 -0.012845851557859691 0.0092859014694922394 -0.004969429014751346 0.0031943187845003603 0.033884762040453403 0.020136562563949339 -0.010086945048232366 -0.010067123739335113 -0.010069789036370815 -0.010043447760170299\nleaf_weight=8.2787396437488479 0.13446160592138667 1.2230552141554678 1.7907415283843864 0.55157362669706422 1.6891617686487763 8.5782659263350052 6.5314198210835448 0.20802332460880357 0.46485572494566429 0.24525813944637764 0.21830167155712876 0.14058040641248259 3.5094058699905872\nleaf_count=830 13 19 19 6 163 148 89 1 3 34 34 23 818\ninternal_value=0 0.00145734 0.00516722 0.00749538 -0.000715809 0.000190014 -0.00144051 0.0088174 0.0116276 -0.0100566 -0.0100482 -0.0100457 -0.0100445\ninternal_weight=0 29.3158 10.8291 9.03834 18.4868 17.2637 15.1097 8.48676 2.15402 4.24801 4.11355 3.86829 3.64999\ninternal_count=2200 1278 856 837 422 403 237 831 166 922 909 875 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=477\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 0 3 5 1 3 3 1 4\nsplit_gain=4.865 2.3478 1.29687 1.45869 2.92332 0.0976263 0.0122315 0.0152369 9.0126e-05 1.2113e-05 3.79981e-06 1.02638e-06 9.10093e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011952406361505179 -0.01031209047117336 -0.0072189820377966561 -0.010847521638109352 0.0096097296509129789 0.00022815890318686593 -0.0037015014669677126 0.013122008712148931 0.01012630557138999 -0.010086075712752836 0.010050266253485303 -0.010066451451896902 -0.010069091104223491 -0.010043013594027443\nleaf_weight=0.68136847298592629 0.13316321559250255 1.4772338531911438 0.95610875077545543 4.0422744806855944 18.625540049280971 1.6937399064190684 0.18131488561630216 0.24830939853563916 0.24283860577270378 1.3402139688841996 0.21614389447495375 0.13919120654463801 3.474636145401746\nleaf_count=8 13 17 24 662 209 24 1 36 34 297 34 23 818\ninternal_value=0 0.00144624 0.000589285 0.00101248 0.00190114 -0.00534016 0.0108139 0.0103756 -0.0100561 0.0100622 -0.0100477 -0.0100453 -0.010044\ninternal_weight=0 29.2461 26.7949 25.8388 22.6678 3.17097 2.45121 1.76984 4.20597 1.58852 4.07281 3.82997 3.61383\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=478\nnum_leaves=11\nnum_cat=0\nsplit_feature=0 4 1 2 2 2 13 3 10 1\nsplit_gain=4.8136 4.84707 3.09 2.0761 2.36428 2.88781 2.66487 2.61646 1.57835 0.726116\nthreshold=1.1427926010382323 0.36041499722973019 0.99689265265511573 1.2824739019042977 1.2525408166204799 1.1348528270257934 0.67232328979645251 0.17408222448223767 3.5000000000000004 1.0383879925828392\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=3 -2 -3 4 5 7 -7 -1 9 -4\nright_child=1 2 8 -5 -6 6 -8 -9 -10 -11\nleaf_value=-0.0019364393537480925 0.015058326995314545 0.012337014985812404 0.00043347277395146033 -0.010807574522510022 0.012856318756025567 0.0016147674078034857 -0.010901468296831154 0.0093434846061166595 -0.036449514548209348 -0.0088804028108547747\nleaf_weight=2.9376544672995895 1.0853513875044871 0.76006139535456796 0.92326269298791608 1.060060258489101 2.4055630560033014 5.7366797938011569 2.4181459094397724 6.8546884004026651 0.19908301532268602 8.9627270209602994\nleaf_count=27 20 9 8 25 24 112 36 955 1 983\ninternal_value=0 -0.00509019 -0.0071066 0.00283616 0.00354679 0.00229898 -0.00209666 0.00595956 -0.00857197 -0.00801057\ninternal_weight=0 11.9305 10.8451 21.4128 20.3527 17.9472 8.15483 9.79234 10.0851 9.88599\ninternal_count=2200 1021 1001 1179 1154 1130 148 982 992 991\nis_linear=0\nshrinkage=0.01\n\n\nTree=479\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 0 3 5 1 3 3 1 4\nsplit_gain=4.76936 2.31443 1.27354 1.42431 2.87017 0.0949434 0.0118302 0.014383 8.53029e-05 1.14384e-05 3.63965e-06 9.71256e-07 9.66874e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011928866283247254 -0.010306456673946432 -0.007131752820438742 -0.010832294462202073 0.0095939101797233167 0.00023019361171166031 -0.0036619543109897143 0.013052652799136101 0.010123923965354616 -0.010084774104740592 0.010049327625005723 -0.010065280886318499 -0.010069166660346612 -0.010042209967008567\nleaf_weight=0.67557008191943468 0.13076698267832298 1.4771422734484141 0.94330370333045621 3.973861190024766 18.573730984702706 1.6917922366410492 0.17917601764202085 0.24363752268254768 0.23868981283158097 1.3150922064669428 0.21230927528813515 0.13845902169123325 3.4101673611439764\nleaf_count=8 13 17 24 662 209 24 1 36 34 297 34 23 818\ninternal_value=0 0.00142854 0.000579614 0.000998212 0.00188049 -0.00527934 0.0108059 0.0103694 -0.0100551 0.010061 -0.0100469 -0.0100445 -0.0100433\ninternal_weight=0 29.0733 26.6598 25.7165 22.5476 3.16893 2.41348 1.73791 4.13039 1.55873 3.99963 3.76094 3.54863\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=480\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 0 3 5 1 3 3 1 4\nsplit_gain=4.71717 2.29299 1.25857 1.39698 2.84435 0.0930132 0.0114575 0.013909 8.28419e-05 1.11051e-05 3.5319e-06 9.42374e-07 9.38212e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011906883734942942 -0.010303462958869736 -0.0070606671468338494 -0.010823830457910888 0.0095838245689586505 0.00022788438362438299 -0.0036261180361636383 0.013013067003598656 0.0101227027914656 -0.010083926547895469 0.010048836728548295 -0.010064627350448099 -0.010068475126565781 -0.010041788788849792\nleaf_weight=0.67007670365274252 0.12950325990095635 1.4770940081216459 0.93464430700987478 3.9384402497671571 18.574331749230623 1.6914285193197427 0.17793010175228086 0.24124223925173294 0.23633457161486182 1.3020701692439614 0.21021034196019206 0.13709070160985026 3.3763764100149274\nleaf_count=8 13 17 24 662 209 24 1 36 34 297 34 23 818\ninternal_value=0 0.00141755 0.00057481 0.000989652 0.00186464 -0.00522723 0.0107975 0.0103656 -0.0100546 0.0100604 -0.0100464 -0.0100441 -0.0100428\ninternal_weight=0 29.0073 26.6159 25.6813 22.5128 3.16852 2.39132 1.72124 4.08952 1.54331 3.96001 3.72368 3.51347\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=481\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 0 3 5 1 3 3 1 4\nsplit_gain=4.66557 2.27175 1.24379 1.37016 2.81867 0.091123 0.0110967 0.0134511 8.04515e-05 1.07819e-05 3.4274e-06 9.14403e-07 9.10423e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011885180442806835 -0.010300497905739881 -0.0069902872039384898 -0.010815454875252659 0.00957361509178036 0.00022559813969856842 -0.0035906183965254447 0.012974112001044381 0.010121493557528578 -0.010083087577776578 0.010048349448253249 -0.010063980630719034 -0.010067790492923492 -0.01004137144765271\nleaf_weight=0.66461469512433113 0.12825140403583546 1.4770463872700994 0.92605744395404954 3.9033896178007152 18.57492674421519 1.6910717268474398 0.17668594419956174 0.23887023143470298 0.23400237504392896 1.2891765562817452 0.20813202206045422 0.13573580933734808 3.3429192071780562\nleaf_count=8 13 17 24 662 209 24 1 36 34 297 34 23 818\ninternal_value=0 0.00140663 0.000570037 0.000981152 0.00184889 -0.00517562 0.0107891 0.0103618 -0.010054 0.0100598 -0.010046 -0.0100436 -0.0100424\ninternal_weight=0 28.9418 26.5725 25.6464 22.4783 3.16812 2.36935 1.70473 4.04904 1.52805 3.92079 3.68679 3.47866\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=482\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 0 3 5 1 3 3 1 4\nsplit_gain=4.61455 2.25071 1.2292 1.34384 2.79313 0.089272 0.0107475 0.013009 7.81299e-05 1.0468e-05 3.32617e-06 8.8734e-07 8.8353e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.011863753072355805 -0.010297560982191208 -0.0069206048986914697 -0.010807166178717109 0.00956327983525849 0.00022333513323049455 -0.0035554516206839199 0.010120296189935958 0.012935775008773649 -0.010082256937596901 0.010047867564154642 -0.010063340192000126 -0.010067112613125768 -0.010040957100623731\nleaf_weight=0.65918413456529679 0.12701131030917068 1.4769995366223221 0.91754268202930589 3.8687058300711241 18.575515641830862 1.6907217139378188 0.23652127152308833 0.17544370889663663 0.23169300425797734 1.2764099505729971 0.20607412420213256 0.13439421774819527 3.3097923388704658\nleaf_count=8 13 17 24 662 209 24 36 1 34 297 34 23 818\ninternal_value=0 0.00139577 0.000565297 0.000972713 0.00183326 -0.00512451 0.0107809 0.0103581 -0.0100535 0.0100592 -0.0100455 -0.0100432 -0.010042\ninternal_weight=0 28.877 26.5295 25.6119 22.4442 3.16772 2.34756 1.68837 4.00896 1.51293 3.88195 3.65026 3.44419\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=483\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 3 3 13 0 3 0 1 3 3 1 4\nsplit_gain=4.56412 2.22986 1.21479 1.31803 2.76772 0.0874593 0.0104095 0.0125818 7.58737e-05 1.01631e-05 3.22759e-06 8.60924e-07 8.57294e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.51972850428336415 0.24292548700197389 1.0867160002493412 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.011842597770905707 -0.010294652224325039 -0.006851613601193538 -0.010798963765143112 0.009552817900906228 0.00022109484621044367 -0.003520615739443339 0.010119110633798136 0.012898042240068583 -0.010081434474471605 0.010047390382834913 -0.010062706321431443 -0.010066441573026568 -0.010040549020276094\nleaf_weight=0.65378512907773556 0.12578288000076954 1.4769535013474588 0.90909951645880838 3.834385305177423 18.576098815537989 1.690378409810364 0.23419514438137401 0.17420360445976246 0.22940623853355679 1.2637691730633376 0.20403643837198648 0.13306580018252168 3.2769920288119465\nleaf_count=8 13 17 24 662 209 24 36 1 34 297 34 23 818\ninternal_value=0 0.00138497 0.000560588 0.000964335 0.00181773 -0.00507389 0.0107727 0.0103544 -0.010053 0.0100586 -0.0100451 -0.0100428 -0.0100416\ninternal_weight=0 28.8129 26.4869 25.5778 22.4105 3.16733 2.32595 1.67217 3.96928 1.49796 3.8435 3.61409 3.41006\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=484\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 3 1 4\nsplit_gain=4.51426 2.20921 1.20057 1.2927 2.74246 0.901127 0.0100823 0.0121693 7.36831e-05 9.86705e-06 3.13225e-06 8.35416e-07 8.31952e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011821709666336697 -0.010291771480576488 0.00062327348048908594 -0.010790846503546074 0.0095422275418224709 0.00021887703208292984 -0.010062530295216541 0.012860903836799796 0.010117936740880849 -0.010080620719255305 0.010046918422168373 -0.010062078727789189 -0.010065777353298581 -0.010040143340191265\nleaf_weight=0.64841781370342078 0.12456600461155121 1.493340363260365 0.90072747878730197 3.8004247862845686 18.576676218304783 1.6736095957458017 0.1729657948017117 0.23189163370989274 0.22714185435324941 1.2512529161758719 0.20201877783983979 0.13175042183138463 3.244515866972506\nleaf_count=8 13 24 24 662 209 17 1 36 34 297 34 23 818\ninternal_value=0 0.00137424 0.00055591 0.000956017 0.00180231 -0.00502376 0.0107646 0.0103508 -0.0100524 0.010058 -0.0100446 -0.0100423 -0.0100411\ninternal_weight=0 28.7493 26.4448 25.5441 22.3771 3.16695 2.30453 1.65611 3.92999 1.48314 3.80543 3.57829 3.37627\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=485\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 3 1 4\nsplit_gain=4.46506 2.18867 1.18656 1.27102 2.00663 0.00976557 0.0117707 7.15546e-05 9.57975e-06 3.03949e-06 8.10582e-07 8.0728e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011801084590700544 -0.010288918409907751 -0.01047120900901851 -0.010782813756492756 0.010126486323248059 0.000450008039762672 0.012824345790674312 0.010116774183863425 -0.010079814781552855 0.010046450336758278 -0.010061457547966184 -0.010065119758672709 -0.010039742945070958\nleaf_weight=0.64308229181915821 0.12336057843640391 0.93884564936161652 0.89242610149085422 2.3720963769592371 22.194043126888573 0.17173047363758054 0.22961052227765333 0.22489964403212104 1.2388601666316388 0.2000209437683228 0.13044796325266395 3.2123599196784198\nleaf_count=8 13 5 24 471 436 1 36 34 297 34 23 818\ninternal_value=0 0.00136382 0.000551372 0.000947958 0.00138436 0.0107566 0.0103471 -0.0100519 0.0100574 -0.0100442 -0.0100419 -0.0100407\ninternal_weight=0 28.6807 26.3974 25.505 24.5661 2.28328 1.6402 3.89109 1.46847 3.76773 3.54283 3.34281\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=486\nnum_leaves=17\nnum_cat=0\nsplit_feature=1 0 3 4 13 12 0 1 4 2 13 12 3 12 3 0\nsplit_gain=4.41884 1.99258 2.39661 2.52201 1.62513 1.72298 1.22524 1.08794 0.969869 1.67778 1.31527 1.25177 0.271152 0.00220028 2.29137e-06 4.00234e-08\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.33102573345802283 0.50652862085158101 4.8980530291692244 1.1864741023471512 1.1058192561221138 0.40520528501409475 1.2704041812989106 0.93885093126527053 5.4441990008005208 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 3 -1 -3 -6 -7 12 9 -2 -11 -12 -4 -10 -15 -16\nright_child=8 4 7 -5 5 6 -8 -9 13 10 11 -13 -14 14 15 -17\nleaf_value=0.011673260984738568 -0.010967111956583906 -0.008981900800893618 0.010542713483235589 -0.0064635736479351467 0.0082197610864595434 -0.0029031730137945412 0.0043587925754831674 -0.0043141890028488708 -0.010559610703428536 -0.011001071336116715 0.035597485965480756 0.0063032147652944048 -0.0032881303174985554 -0.010074240228749832 -0.010045598420732691 -0.010038793240919615\nleaf_weight=1.0844099672976901 0.99522279482334797 1.9349462143145491 5.7706359042786062 2.6168552124872804 2.5557060260325661 8.2523396378383023 3.2337820031680158 0.56558065861463536 1.0976811423897741 0.28194051515310981 0.20200338959693909 0.52490705670788884 0.14531701058149327 0.19643159001134369 0.089047682937234973 2.9332483487669379\nleaf_count=39 29 35 971 28 24 85 82 3 32 6 1 49 2 32 20 762\ninternal_value=0 0.0018131 0.00527013 -0.00114978 -0.000390241 0.000793679 -0.000858652 0.00893621 -0.00750382 -0.0017549 0.00733286 0.0144439 0.010203 -0.010173 -0.0100411 -0.010039\ninternal_weight=0 26.1596 10.1828 3.70127 15.9768 14.0418 11.4861 6.48153 6.32048 2.00407 1.00885 0.72691 5.91595 4.31641 3.21873 3.0223\ninternal_count=2200 1269 1043 67 226 191 167 976 931 85 56 50 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=487\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 3 1 4\nsplit_gain=4.37911 2.15166 1.16936 1.24338 1.97553 0.00904385 0.011641 7.06406e-05 8.98383e-06 2.87482e-06 8.32951e-07 8.02387e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011760793804762405 -0.010287398602474502 -0.01037912752500114 -0.010773495963044008 0.010126466999495874 0.00044803164431032308 0.012813513246295101 0.0101143930929269 -0.010078374945332057 0.010045581819206078 -0.010061065166323331 -0.010064395432891006 -0.01003897971955732\nleaf_weight=0.63255481515080036 0.12259320495650117 0.93516765534878388 0.88224581722170015 2.3310080412775305 22.142280917149037 0.17136122286319699 0.22486460115760576 0.22107789316214654 1.2144045960158107 0.19873948674649033 0.12931477790698442 3.1507217609323561\nleaf_count=8 13 5 24 471 436 1 36 34 297 34 23 818\ninternal_value=0 0.00134658 0.000544459 0.000937448 0.00136987 0.0107476 0.0103497 -0.0100512 0.0100563 -0.0100434 -0.0100412 -0.01004\ninternal_weight=0 28.5339 26.2907 25.4085 24.4733 2.24319 1.61063 3.82245 1.43927 3.69985 3.47878 3.28004\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=488\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 3 1 4\nsplit_gain=4.33118 2.13187 1.15566 1.23257 2.67328 0.879872 0.00876018 0.0112603 6.85994e-05 8.7221e-06 2.78975e-06 8.08207e-07 7.78621e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011740934743536324 -0.01028458726062052 0.0006667941539291386 -0.010765642236859267 0.0095223587844001107 0.00020959217082794587 -0.0099279232193543645 0.012777692477544116 0.010113265371482858 -0.010077591472552511 0.010045127464318465 -0.010060453860292107 -0.010063751634372294 -0.010038590451922163\nleaf_weight=0.62731476873159708 0.12140639172866885 1.4838096201419895 0.87410135194659133 3.6969349628780064 18.542478532530367 1.6617065425962207 0.170129373669624 0.22265186463482689 0.21889506070874665 1.202375181019306 0.19677389133721623 0.12803622335195575 3.1194919035769999\nleaf_count=8 13 24 24 662 209 17 1 36 34 297 34 23 818\ninternal_value=0 0.00133563 0.00053969 0.000928976 0.00175769 -0.00493016 0.0107398 0.0103461 -0.0100507 0.0100558 -0.010043 -0.0100408 -0.0100396\ninternal_weight=0 28.4815 26.259 25.3849 22.2394 3.14552 2.22247 1.59516 3.7846 1.42503 3.6632 3.4443 3.24753\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=489\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 3 1 4\nsplit_gain=4.28405 2.11204 1.14222 1.21211 1.94719 0.00848557 0.0108925 6.66168e-05 8.46793e-06 2.70725e-06 7.84267e-07 7.55584e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011721324378230294 -0.010281802916247283 -0.010265484906551237 -0.010757869832143172 0.010125485355446325 0.0004398818312745642 0.012742425613914867 0.010112148318065662 -0.010076815954581786 0.010044677373603823 -0.010059849287901441 -0.010063114401827137 -0.010038204763850271\nleaf_weight=0.622106758877638 0.12023076508194153 0.93295496702194824 0.86602601502090593 2.2905566880945143 22.123417126946151 0.16890040040016141 0.22046066727489244 0.21673361351713571 1.1904643774032591 0.19482760922983322 0.12677022884599898 3.0885704464744776\nleaf_count=8 13 5 24 471 436 1 36 34 297 34 23 818\ninternal_value=0 0.00132544 0.000535264 0.000921116 0.0013486 0.0107321 0.0103425 -0.0100502 0.0100552 -0.0100425 -0.0100404 -0.0100392\ninternal_weight=0 28.4149 26.213 25.3469 24.414 2.20193 1.57983 3.74713 1.41093 3.6269 3.41017 3.21534\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=490\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 3 1 4\nsplit_gain=4.23721 2.09261 1.12887 1.20229 2.63776 0.864641 0.00821971 0.0105371 6.4691e-05 8.22107e-06 2.62716e-06 7.6097e-07 7.33195e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 9 -2 -8 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 -9 10 -11 11 12 -14\nleaf_value=0.01170195829687363 -0.010279045559064141 0.0006709126229693023 -0.01075017810736424 0.0095080929504432719 0.00020304050021521032 -0.0098501477966854711 0.010111042272726864 0.012707702266557047 -0.010076048330062617 0.010044232128501949 -0.010059250294100892 -0.010062483424613902 -0.010037823366138067\nleaf_weight=0.616930877789858 0.11906622117385213 1.4792574318125908 0.85801930632442136 3.6453348770737675 18.544104141648859 1.6550801927223799 0.21829080441966664 0.16767443716525998 0.21459334273822639 1.1786710736341772 0.19290046859532628 0.12551667401567135 3.0579543320927769\nleaf_count=8 13 24 24 662 209 17 36 1 34 297 34 23 818\ninternal_value=0 0.00131463 0.000530567 0.000912781 0.0017317 -0.00488471 0.0107244 0.010339 -0.0100497 0.0100547 -0.0100421 -0.01004 -0.0100388\ninternal_weight=0 28.3634 26.1818 25.3238 22.1894 3.13434 2.18157 1.56464 3.71003 1.39696 3.59096 3.37637 3.18347\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=491\nnum_leaves=11\nnum_cat=0\nsplit_feature=0 4 1 2 2 2 13 3 10 1\nsplit_gain=4.19159 4.72627 3.00713 1.97033 2.40694 2.67213 2.55891 2.37543 1.53563 0.720865\nthreshold=1.1427926010382323 0.36041499722973019 0.99689265265511573 1.2824739019042977 1.2525408166204799 1.1348528270257934 0.67232328979645251 0.17408222448223767 3.5000000000000004 1.0383879925828392\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=3 -2 -3 4 5 7 -7 -1 9 -4\nright_child=1 2 8 -5 -6 6 -8 -9 -10 -11\nleaf_value=-0.0017579995552381039 0.015053126836140745 0.012397538379393995 0.00058251119155871493 -0.010768703023841921 0.012806274254416654 0.0015275446298339652 -0.010860086936725537 0.0092322349272896693 -0.035793066410557545 -0.0087905823782830125\nleaf_weight=2.8634173739701634 1.0775517113506783 0.74457103200256725 0.90887752175330838 1.0331319496035565 2.3888248619623473 5.6717318489681912 2.362000566907227 6.2796656233258545 0.20132845640182573 8.4399836866650713\nleaf_count=27 20 9 8 25 24 112 36 955 1 983\ninternal_value=0 -0.00487304 -0.00695871 0.00269046 0.00340115 0.00209316 -0.00211455 0.00579033 -0.0084678 -0.00787935\ninternal_weight=0 11.3723 10.2948 20.5988 19.5656 17.1768 8.03373 9.14308 9.55019 9.34886\ninternal_count=2200 1021 1001 1179 1154 1130 148 982 992 991\nis_linear=0\nshrinkage=0.01\n\n\nTree=492\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 3 1 4\nsplit_gain=4.15486 2.06256 1.10895 1.17723 1.90732 0.00795214 0.0099499 6.12279e-05 7.76403e-06 2.51803e-06 7.20342e-07 7.76436e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.2433743438056273 1.2071296172255412 0.37820364433929859\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011681662649355591 -0.010274013618625361 -0.010138299901368702 -0.01073675217208 0.010125067703451713 0.00043045987545357655 0.012648942476153257 0.01010895621206696 -0.010074916483023767 0.010043412898512774 -0.010058216517053518 -0.010062569257137381 -0.010037120669518056\nleaf_weight=0.61147904116661012 0.11692389613017384 0.93049898743630066 0.84643159713596006 2.2352016509976265 22.038430329412222 0.16556331515312162 0.21419817651622008 0.21094573289155993 1.156688801711425 0.18949460890144143 0.12487681396305594 3.0014424654655159\nleaf_count=8 13 5 24 471 436 1 36 34 297 34 23 818\ninternal_value=0 0.00129852 0.000521932 0.000900033 0.00132317 0.0107172 0.0103333 -0.0100489 0.0100537 -0.0100414 -0.0100393 -0.0100381\ninternal_weight=0 28.1985 26.0506 25.2041 24.2736 2.14793 1.53645 3.64368 1.37089 3.52676 3.31581 3.12632\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 875 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=493\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 0 3 13 12 4 0 1 4 4 2 3 2 3 12 3 0\nsplit_gain=4.11309 1.86747 2.31567 1.66561 1.67424 1.66482 1.21884 1.08925 1.07247 0.96162 1.67745 1.20636 1.11089 0.250179 0.00211926 1.86409e-06 3.34208e-08\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.50652862085158101 4.8980530291692244 0.37556916262744572 1.1864741023471512 1.1058192561221138 0.33102573345802283 0.40520528501409475 1.2704041812989106 1.1981154781470527 1.2727767592850008 1.2794526953686727 5.4588099803130126 1.2471304352583659 1.169196776130192\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 5 -3 -5 8 -6 13 -1 10 -2 -12 -13 -4 -11 -16 -17\nright_child=9 3 7 4 6 -7 -8 -9 -10 14 11 12 -14 -15 15 16 -18\nleaf_value=0.011634842963191077 -0.010960994197092849 -0.0091159446105169781 0.010550688396062262 0.0081777191086725449 -0.0028519950287788707 -0.0096251706977630493 0.0044206997797122741 -0.0043265328197317297 -0.0023107692315969047 -0.010554396047252152 -0.011047752701769484 0.033378195660726279 0.0062136649137783965 -0.002966433746200195 -0.010069290306369194 -0.010042637298704178 -0.010036206156686864\nleaf_weight=1.0415358452592105 0.98172346712089964 1.9163553034886707 5.496043172897771 2.5350859053432933 8.1956630228087288 1.4187967395409939 3.2057746429927638 0.56702378392219532 1.1719668158330021 1.0826789475977419 0.26035276101902127 0.2109830966219306 0.52554040844552219 0.14042316004633892 0.18347447388805482 0.08326172339729998 2.7390355933457613\nleaf_count=39 29 35 971 24 85 12 82 3 16 32 5 2 49 2 32 20 762\ninternal_value=0 0.00174905 0.00517203 -0.00037472 0.000827251 -0.00116901 -0.000807111 0.00888488 0.00425116 -0.00740547 -0.00168261 0.00745474 0.0139952 0.0102139 -0.010175 -0.0100384 -0.0100364\ninternal_weight=0 25.6887 9.83579 15.8529 13.9365 3.6323 11.4014 6.20349 2.2135 6.06705 1.9786 0.996876 0.736524 5.63647 4.08845 3.00577 2.8223\ninternal_count=2200 1269 1043 226 191 67 167 976 55 931 85 56 51 973 846 814 782\nis_linear=0\nshrinkage=0.01\n\n\nTree=494\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=4.07584 2.02754 1.09438 1.15273 1.87594 0.00735938 0.00984671 6.04389e-05 7.27981e-06 2.42064e-06 6.53788e-07 7.00054e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011644201625158637 -0.010272588465173999 -0.01005349236712531 -0.01072867499401713 0.010124513587813586 0.00043005638158055053 0.0126396008352488 0.010106733483659083 -0.010073296972858919 0.010042605366168907 -0.010057619844185513 -0.010058325490114388 -0.010036437931503021\nleaf_weight=0.60130396857858359 0.11620373884215895 0.92688141018152848 0.83763238042592902 2.1953622903674868 21.985566059593111 0.16522337496280637 0.2097702689934523 0.21418308396823738 1.1338521547149865 0.17101242858916554 0.153814195422456 2.9247226633597165\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00128224 0.000515579 0.000890703 0.00131021 0.0107087 0.0103359 -0.0100483 0.0100526 -0.0100407 -0.0100386 -0.0100375\ninternal_weight=0 28.0556 25.9454 25.1078 24.1809 2.11015 1.50885 3.57994 1.34362 3.46373 3.24955 3.07854\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=495\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=4.03137 2.00885 1.08164 1.14231 2.54631 0.835065 0.00712929 0.00952655 5.86903e-05 7.06758e-06 2.3491e-06 6.3438e-07 6.793e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011625795663397262 -0.010269919578878626 0.00068607999324664761 -0.010721279218409754 0.0094808245127455931 0.00019895837360052481 -0.0096947030262161896 0.012606446950492442 0.010105680600407984 -0.010072565061797663 0.010042180416725593 -0.010057043345054655 -0.01005774228877469 -0.010036074152173573\nleaf_weight=0.59625865984708726 0.11507724272087161 1.4688127543777292 0.82986700441688199 3.5190826030448106 18.457297888584435 1.6403552899137137 0.16400741040706601 0.20770455198362481 0.21206725738011334 1.1226174056064335 0.16932048276066813 0.15229250350967083 2.8957256835419685\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00127172 0.000511038 0.00088262 0.00168527 -0.00479068 0.0107013 0.0103324 -0.0100478 0.0100521 -0.0100403 -0.0100382 -0.0100372\ninternal_weight=0 28.006 25.9154 25.0855 21.9764 3.10917 2.09059 1.49433 3.54448 1.33032 3.42941 3.21734 3.04802\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=496\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.98763 1.99014 1.06913 1.12389 1.84893 0.00690652 0.00921714 5.69919e-05 6.86147e-06 2.27968e-06 6.15584e-07 6.59182e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011607617556975709 -0.010267276183538598 -0.0099447195886582813 -0.010713959774364538 0.010123571541751334 0.00042219850994193681 0.012573795255300389 0.010104637996313368 -0.010071840430772756 0.010041759920531692 -0.010056472964304303 -0.01005716502066941 -0.010035713768489909\nleaf_weight=0.59124563168734967 0.11396139068528954 0.92459426820278778 0.82216816581785579 2.1574421771802035 21.967390118166804 0.16279505193233457 0.20565896900370728 0.20997218252159688 1.1114934575743971 0.16764517826959524 0.15078577864915166 2.8670150346588343\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00126192 0.000506815 0.000875101 0.00128978 0.010694 0.010329 -0.0100473 0.0100516 -0.0100399 -0.0100378 -0.0100368\ninternal_weight=0 27.9428 25.8716 25.0494 24.1248 2.07119 1.47995 3.50938 1.31715 3.39542 3.18545 3.0178\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=497\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.94417 1.97179 1.05671 1.11431 2.51206 0.820615 0.00669082 0.0089181 5.53424e-05 6.66113e-06 2.21233e-06 5.97327e-07 6.39665e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011589663656344673 -0.010264658312076909 0.00068963822282639461 -0.010706716549148163 0.0094658743838403475 0.00019269298134689142 -0.0096189340581087895 0.01254163499750361 0.010103605413540858 -0.010071123059321363 0.01004134441185757 -0.010055907989437741 -0.01005659359525295 -0.010035356947724828\nleaf_weight=0.5862648999318546 0.11285608867183272 1.4643369545228844 0.81453537754714389 3.4705187741201398 18.458837351761758 1.6338250292465089 0.16158643364906278 0.20363333332352351 0.20789765822701189 1.1004792596213517 0.16598635818809304 0.14929387508891556 2.8385881907306612\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00125154 0.000502344 0.000867149 0.00166026 -0.00474662 0.0106868 0.0103256 -0.0100468 0.0100511 -0.0100395 -0.0100374 -0.0100364\ninternal_weight=0 27.894 25.8421 25.0275 21.9294 3.09816 2.05196 1.4657 3.47462 1.30411 3.36177 3.15387 2.98788\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=498\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.90141 1.95342 1.04452 1.09582 1.82226 0.00648198 0.00862909 5.37399e-05 6.46689e-06 2.14696e-06 5.79622e-07 6.20708e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 8 -2 -7 -9 -11 -12\nright_child=7 2 -4 4 -6 6 -8 9 -10 10 11 -13\nleaf_value=0.011571930644000484 -0.010262064976527159 -0.009837484241822788 -0.01069954812687089 0.010122641319841143 0.00041447211359855042 0.010102583088540736 0.012509958160488555 -0.010070412975539811 0.010040931879633386 -0.010055349008487098 -0.01005602776926349 -0.010035003891538023\nleaf_weight=0.58131647389382779 0.11176124215125982 0.92228739708662644 0.8069682028144588 2.1202277010306743 21.949411127716303 0.20162744564004254 0.16038167476654019 0.20584348333068225 1.0895738252438603 0.16434385627508197 0.14781665103510055 2.8104421296156943\nleaf_count=8 13 5 24 471 436 36 1 37 297 31 29 812\ninternal_value=0 0.00124186 0.000498182 0.000859747 0.00126964 0.0106796 0.0103223 -0.0100464 0.0100506 -0.0100391 -0.0100371 -0.0100361\ninternal_weight=0 27.8318 25.7989 24.9919 24.0696 2.0329 1.45158 3.44021 1.2912 3.32845 3.1226 2.95826\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=2\nis_linear=0\nshrinkage=0.01\n\n\nTree=499\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 0 3 13 12 4 0 1 4 4 2 3 2 3 3 12 12\nsplit_gain=3.86066 1.77555 2.24726 1.68135 1.63543 1.55129 1.21202 1.08886 1.04288 0.958038 1.68566 1.21378 1.02235 0.233684 0.00205418 4.55933e-05 2.38204e-06\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.50652862085158101 4.8980530291692244 0.37556916262744572 1.1864741023471512 1.1058192561221138 0.33102573345802283 0.40520528501409475 1.2704041812989106 1.1981154781470527 1.2727767592850008 1.2794526953686727 1.2306326518141948 5.428310804937337 5.5259436077887791\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 5 -3 -5 8 -6 13 -1 10 -2 -12 -13 -4 -11 -16 -17\nright_child=9 3 7 4 6 -7 -8 -9 -10 14 11 12 -14 -15 15 16 -18\nleaf_value=0.011601046669911739 -0.010955508314604621 -0.0091773559092665682 0.010560050572015478 0.0081328852770368703 -0.0028160805066973315 -0.0093678491333011125 0.0044499692902332409 -0.004323301749030479 -0.0023298729571549761 -0.010576211898872938 -0.011040768228594438 0.032586648177255324 0.0065678485852641568 -0.0026899689966295597 -0.010225286554857292 -0.010077437263615673 -0.010034648651065877\nleaf_weight=1.0021625952795208 0.97067373525351175 1.9046054282225657 5.2755853459239006 2.518501413986086 8.1681735604070109 1.4047592123970387 3.1931225317530325 0.5684276446700095 1.1586518650874493 0.97006561979651484 0.2576377815566957 0.21389636537060142 0.51370533951558173 0.13655069097876538 0.13441035244613919 0.13678967976011369 2.6622418488841504\nleaf_count=39 29 35 971 24 85 12 82 3 16 36 5 2 49 2 7 24 779\ninternal_value=0 0.00169216 0.00509658 -0.000366786 0.000842213 -0.00118717 -0.000773938 0.00884292 0.00413114 -0.00731502 -0.00160265 0.00761194 0.0142167 0.0102257 -0.0101773 -0.0100454 -0.0100367\ninternal_weight=0 25.3305 9.54614 15.7844 13.8798 3.56557 11.3613 5.98056 2.16081 5.85942 1.95591 0.985239 0.727602 5.41214 3.90351 2.93344 2.79903\ninternal_count=2200 1269 1043 226 191 67 167 976 55 931 85 56 51 973 846 810 803\nis_linear=0\nshrinkage=0.01\n\n\nTree=500\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.82757 1.92024 1.03098 1.07329 1.79226 0.00599411 0.00854305 5.30467e-05 6.06274e-06 2.10764e-06 5.94957e-07 5.83528e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011537045764918248 -0.010260709415431486 -0.0097570775518112784 -0.010691953149235935 0.010122131861512371 0.0004141046057142782 0.012501607075844322 0.010100489309228251 -0.010069666596883461 0.010040173326471943 -0.010054998537706215 -0.010054937029433388 -0.010034352969279523\nleaf_weight=0.57149685546756401 0.1110764429904515 0.91860880702734604 0.79862226359546085 2.0825504793319878 21.897377607878298 0.16006170213222493 0.19745907397009421 0.2034034603275362 1.0680565901566295 0.16329422919079695 0.14496093289926681 2.7574130743741989\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00122618 0.000492112 0.000850842 0.0012572 0.0106718 0.0103249 -0.0100458 0.0100496 -0.0100385 -0.0100364 -0.0100354\ninternal_weight=0 27.6942 25.6972 24.8985 23.9799 1.99707 1.42558 3.38015 1.26552 3.26907 3.06567 2.90237\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=501\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.78592 1.90252 1.01905 1.0633 2.44763 0.792615 0.00580725 0.00826655 5.15102e-05 5.88572e-06 2.0453e-06 5.77291e-07 5.66228e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.01151995741873147 -0.010258154582835044 0.00069859330473497159 -0.010684935165572673 0.0094443431498446827 0.00018478953512410595 -0.0094704305868975776 0.012470527762274752 0.010099497170959535 -0.010068970891266195 0.010039773005957766 -0.010054448464190053 -0.010054388014180002 -0.010034010279264203\nleaf_weight=0.56664544437081232 0.10999846318736617 1.4540539630688791 0.79119255673140187 3.3781602070666876 18.424174526706338 1.62094484642148 0.15886202454566944 0.19551342702470709 0.20139340613968704 1.0574712215457109 0.16167822526767883 0.1435263468883935 2.7300692019052804\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00121605 0.000487757 0.000843091 0.00161951 -0.00466187 0.0106648 0.0103216 -0.0100453 0.0100491 -0.0100381 -0.0100361 -0.010035\ninternal_weight=0 27.647 25.6685 24.8773 21.8023 3.075 1.97849 1.41185 3.34667 1.25298 3.23667 3.03527 2.8736\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=502\nnum_leaves=11\nnum_cat=0\nsplit_feature=0 4 1 2 2 2 13 3 10 1\nsplit_gain=3.74638 4.58952 2.92711 1.87794 2.40281 2.50121 2.47455 2.21597 1.51036 0.712102\nthreshold=1.1427926010382323 0.36041499722973019 0.99689265265511573 1.2824739019042977 1.2525408166204799 1.1348528270257934 0.67232328979645251 0.17408222448223767 3.5000000000000004 1.0383879925828392\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=3 -2 -3 4 5 7 -7 -1 9 -4\nright_child=1 2 8 -5 -6 6 -8 -9 -10 -11\nleaf_value=-0.0016897415052603308 0.014937309700030295 0.012387007102038279 0.0006827501212180937 -0.010702669213165679 0.012688439150875239 0.0014666418168571094 -0.010828273727627629 0.0091467043311034817 -0.035363493113440399 -0.008709507756236648\nleaf_weight=2.7830828130245333 1.0733041688799847 0.73326124530285497 0.89734749495982846 1.0106736733578134 2.3775666877627364 5.6103839038405559 2.3114053623285145 5.8614363861270249 0.20281438529491502 8.0388638209551555\nleaf_count=27 20 9 8 25 24 112 36 955 1 983\ninternal_value=0 -0.00470134 -0.00683643 0.0025789 0.00328748 0.00193827 -0.00212075 0.00565794 -0.0083788 -0.00776637\ninternal_weight=0 10.9456 9.87229 19.9545 18.9439 16.5663 7.92179 8.64452 9.13903 8.93621\ninternal_count=2200 1021 1001 1179 1154 1130 148 982 992 991\nis_linear=0\nshrinkage=0.01\n\n\nTree=503\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.71306 1.87504 1.00137 1.04264 1.75559 0.00562095 0.00780763 4.87542e-05 5.55901e-06 2.04993e-06 5.4459e-07 5.34532e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.01150207104484529 -0.0102535086397812 -0.0096381996578345404 -0.010672804665316522 0.010121794952063133 0.00040523891596819044 0.012417695753869407 0.010097633731635384 -0.010068534092480956 0.010039041096948659 -0.010053431172693025 -0.010053378082695167 -0.010033394362828634\nleaf_weight=0.56152183935046807 0.10802211379632298 0.91603071987629547 0.78047929052263398 2.0327832980547127 21.814736840780824 0.15679042041301716 0.19185794750228513 0.19928192300722036 1.0378289988730101 0.15869254153221879 0.140886660665274 2.6802412653341889\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00120102 0.000479831 0.000831331 0.00123349 0.010658 0.0103161 -0.0100446 0.0100482 -0.0100375 -0.0100354 -0.0100344\ninternal_weight=0 27.492 25.544 24.7636 23.8475 1.948 1.38648 3.28712 1.22969 3.1791 2.97982 2.82113\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=504\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.67271 1.85771 0.989807 1.03296 2.39162 0.778941 0.00544593 0.00755564 4.73411e-05 5.39677e-06 1.98928e-06 5.28414e-07 5.18658e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011485411390930081 -0.010251023223942149 0.00070692873613809189 -0.010665981361881715 0.0094217562530075349 0.00018284013661079069 -0.0093939927009281943 0.012387857995980888 0.010096670025983787 -0.010067849779634775 0.010038651857427625 -0.010052896898805716 -0.010052844385521523 -0.0100330614759502\nleaf_weight=0.55673694238067284 0.10697307437658254 1.4496610430069332 0.77320524817332525 3.3060187434311983 18.374285258352757 1.6128472676500676 0.15560233592987049 0.18996696965768922 0.19731237785890732 1.0275420681573448 0.15712183294817839 0.13949218112975392 2.6536600624676794\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00119107 0.000475576 0.000823746 0.00159168 -0.00461265 0.0106511 0.0103129 -0.0100441 0.0100477 -0.0100371 -0.0100351 -0.010034\ninternal_weight=0 27.4459 25.516 24.7428 21.6803 3.06251 1.92985 1.37311 3.25456 1.21751 3.14759 2.95027 2.79315\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=505\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.63301 1.84037 0.978453 1.01673 1.7302 0.00527645 0.00731203 4.5969e-05 5.2391e-06 1.9305e-06 5.12744e-07 5.03296e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011468955017710915 -0.010248561860540347 -0.0095353840685513235 -0.010659228373778293 0.010120899295277697 0.00039779081134547499 0.012358460205447015 0.010095715411583552 -0.010067172397918394 0.010038266911097217 -0.010052367913373677 -0.010052316256041813 -0.010032731331952852\nleaf_weight=0.55198425520212069 0.10593398381024544 0.91366884112358704 0.76599425775930186 1.9978899746201957 21.797415044158697 0.15441869199275959 0.18809446063823987 0.19536216510459814 1.0173566732555626 0.15556658897548947 0.13811143022030625 2.6273417216725647\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00118176 0.000471607 0.00081667 0.00121416 0.0106444 0.0103097 -0.0100437 0.0100472 -0.0100367 -0.0100347 -0.0100337\ninternal_weight=0 27.3868 25.475 24.709 23.7953 1.91185 1.35987 3.22232 1.20545 3.11638 2.92102 2.76545\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=506\nnum_leaves=18\nnum_cat=0\nsplit_feature=1 0 3 13 12 4 0 1 4 4 2 3 2 3 3 12 12\nsplit_gain=3.597 1.66555 2.16865 1.718 1.59064 1.44396 1.20433 1.0897 1.01375 0.948425 1.68272 1.2 0.931262 0.215414 0.00198324 4.42719e-05 2.21009e-06\nthreshold=1.2071296172255412 1.0188919694060079 0.61313736928646123 0.50652862085158101 4.8980530291692244 0.37556916262744572 1.1864741023471512 1.1058192561221138 0.33102573345802283 0.40520528501409475 1.2704041812989106 1.1981154781470527 1.2727767592850008 1.2794526953686727 1.2306326518141948 5.428310804937337 5.5259436077887791\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 2 5 -3 -5 8 -6 13 -1 10 -2 -12 -13 -4 -11 -16 -17\nright_child=9 3 7 4 6 -7 -8 -9 -10 14 11 12 -14 -15 15 16 -18\nleaf_value=0.011577364850239105 -0.010949245761296694 -0.0093005113156821115 0.010568351616694106 0.0080923529413843322 -0.0027671976722951556 -0.009116047851754917 0.0045039278979999969 -0.0043339465003648173 -0.0023425285604192171 -0.010572827295085721 -0.011023400723612997 0.031571564992009936 0.0068188469972529702 -0.0023699909347170839 -0.010221816396982181 -0.010074650959456029 -0.010032341861516476\nleaf_weight=0.96281703934074059 0.95778743783011921 1.8872401737608004 5.0305043605621904 2.4985330514609805 8.1142663392238301 1.3897186759859321 3.1670323847793034 0.56987693160772313 1.145823731087148 0.95321839139796827 0.25300087872892618 0.21767404861748219 0.50373071641661227 0.13205978274345387 0.13248528633266721 0.1299165817908946 2.4861278375610709\nleaf_count=39 29 35 971 24 85 12 82 3 16 36 5 2 49 2 7 24 779\ninternal_value=0 0.00163277 0.00500231 -0.000352522 0.000872966 -0.00120227 -0.000725953 0.00878881 0.00401337 -0.00721552 -0.0015365 0.00771572 0.0142876 0.0102374 -0.0101798 -0.0100435 -0.0100344\ninternal_weight=0 24.8979 9.2308 15.6671 13.7798 3.49836 11.2813 5.73244 2.10864 5.63394 1.93219 0.974406 0.721405 5.16256 3.70175 2.74853 2.61604\ninternal_count=2200 1269 1043 226 191 67 167 976 55 931 85 56 51 973 846 810 803\nis_linear=0\nshrinkage=0.01\n\n\nTree=507\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 4 3 0 1 0 3 1 3 13 1 3\nsplit_gain=3.56467 1.80908 0.965978 0.996099 1.70172 0.00493399 0.00718495 4.53782e-05 4.91072e-06 1.89843e-06 5.25619e-07 4.73174e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 1.0867160002493412 0.24292548700197389 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 6 -1 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 -7 8 9 -10 10 11 -13\nleaf_value=0.011436464181675061 -0.010247288907679302 -0.0094592894172297343 -0.010652184892587362 0.010120437143252186 0.0003974878337286088 0.012351259833445283 0.010093760344461737 -0.010066498629397388 0.010037561323667486 -0.010052040496508907 -0.010051301042925788 -0.010032125459213299\nleaf_weight=0.54252454871312394 0.10529070207849089 0.90994115173817292 0.75811862759292026 1.9625300744082803 21.746365124359727 0.15412676334381092 0.18420419585891046 0.19309092266485128 0.99726417055353522 0.15458196587860618 0.13544508907943997 2.5778317130170763\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00116676 0.000465878 0.00080825 0.00120232 0.010637 0.0104838 -0.0100432 0.0100463 -0.0100361 -0.0100341 -0.0100331\ninternal_weight=0 27.2551 25.377 24.6188 23.7089 1.87812 1.72399 3.16624 1.18147 3.06095 2.86786 2.71328\ninternal_count=2200 1278 936 912 907 342 341 922 333 909 872 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=508\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 3 3 13 4 0 3 1 3 13 1 3\nsplit_gain=3.526 1.79233 0.954864 0.985726 2.32998 0.752413 0.00477077 0.00696337 4.40625e-05 4.76732e-06 1.8424e-06 5.10055e-07 4.5918e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 1.0867160002493412 0.24292548700197389 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 7 -1 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 -8 9 10 -11 11 12 -14\nleaf_value=0.011420600478805103 -0.010244863174895941 0.00071506891662418001 -0.010645573004815976 0.0093992722191119215 0.00017520907225146675 -0.0092493080944563849 0.012322397610339535 0.010092834572306498 -0.010065834835359775 0.010037186913482822 -0.010051519931490399 -0.010050788202479436 -0.010031804094435279\nleaf_weight=0.53786867391318693 0.10426760045811478 1.4395604254677956 0.75103905843570729 3.2191331922076669 18.339937948156148 1.6001310050487516 0.15294879674911488 0.18238797946833052 0.1911821810062978 0.98737784591503441 0.15305173443630371 0.1341041948180649 2.5522630643099546\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00115705 0.000461734 0.000800858 0.00155252 -0.0045303 0.0106304 0.0104789 -0.0100427 0.0100459 -0.0100358 -0.0100338 -0.0100328\ninternal_weight=0 27.2104 25.3498 24.5988 21.5591 3.03969 1.86058 1.70763 3.13487 1.16977 3.0306 2.83942 2.68637\ninternal_count=2200 1278 936 912 871 41 342 341 922 333 909 872 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=509\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 4 3 0 1 0 3 1 3 13 1 3\nsplit_gain=3.48795 1.7756 0.943944 0.971427 1.67707 0.00461313 0.00674872 4.27844e-05 4.62804e-06 1.78792e-06 4.94929e-07 4.45573e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 1.0867160002493412 0.24292548700197389 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 -3 -5 6 -1 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 -7 8 9 -10 10 11 -13\nleaf_value=0.011404928664108725 -0.010242460827170284 -0.0093590735619347963 -0.01063902937550216 0.010119561578043336 0.00039016667181857099 0.012293955484281917 0.010091917696086122 -0.010065177597166592 0.010036816402607529 -0.01005100504680514 -0.010050280853612963 -0.010031486859154884\nleaf_weight=0.53324487060309067 0.1032542092725629 0.90755023062229767 0.74402113957330485 1.9289297051727796 21.729380574543029 0.15177549421787251 0.18058951362036146 0.18929218314588103 0.97758918791078031 0.15153657039627466 0.13277650531381402 2.5269471909850836\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00114795 0.000457865 0.000793954 0.00118343 0.0106239 0.010474 -0.0100423 0.0100454 -0.0100354 -0.0100334 -0.0100324\ninternal_weight=0 27.1531 25.3099 24.5659 23.6583 1.8432 1.69142 3.10381 1.15818 3.00055 2.81126 2.65972\ninternal_count=2200 1278 936 912 907 342 341 922 333 909 872 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=510\nnum_leaves=13\nnum_cat=0\nsplit_feature=12 4 4 4 2 0 3 1 3 13 1 3\nsplit_gain=3.45016 1.75916 0.941923 1.68272 1.36822 0.00446089 0.00654077 4.15435e-05 4.49285e-06 1.73508e-06 4.8025e-07 4.32378e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.50304281293631281 0.47212922992160583 1.2824739019042977 1.0867160002493412 0.24292548700197389 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 5 3 4 -3 6 -1 -2 -8 -9 -11 -12\nright_child=7 2 -4 -5 -6 -7 8 9 -10 10 11 -13\nleaf_value=0.011389445468232475 -0.010240082175724431 0.0015273822447583343 0.011508361460722261 -0.010864789440276726 -0.0067563750987414918 0.012265925547899011 0.010091009918005617 -0.010064527037447491 0.010036449449277712 -0.010050495101246818 -0.010049778565948242 -0.01003117259314432\nleaf_weight=0.5286531038582386 0.10225044051185195 21.011993087595339 0.74797903606668015 1.3202618514187623 2.20293273217976 0.15060696005821217 0.17880862066522218 0.18742074747569892 0.96789723075926304 0.15003632847219739 0.13146189553663168 2.5018816094379872\nleaf_count=8 13 855 16 25 40 1 36 37 297 31 29 812\ninternal_value=0 0.00113837 0.000453786 0.000116777 0.000741312 0.0106174 0.0104692 -0.0100419 0.010045 -0.0100351 -0.0100331 -0.0100321\ninternal_weight=0 27.1091 25.2832 24.5352 23.2149 1.82597 1.67536 3.07305 1.14671 2.9708 2.78338 2.63334\ninternal_count=2200 1278 936 920 895 342 341 922 333 909 872 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=511\nnum_leaves=14\nnum_cat=0\nsplit_feature=12 4 3 3 13 4 0 3 1 3 13 1 3\nsplit_gain=3.41266 1.74297 0.932072 0.962176 2.29557 0.736994 0.00431385 0.00633931 4.0338e-05 4.36145e-06 1.68374e-06 4.65978e-07 4.19531e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 1.0867160002493412 0.24292548700197389 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 7 -1 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 -8 9 10 -11 11 12 -14\nleaf_value=0.011374148695342602 -0.010237726454785597 0.00070274524990474963 -0.010632675278971391 0.0093809597644670863 0.00016644338657215035 -0.0091789978236597892 0.012238302086515709 0.01009011070670392 -0.010063883063296504 0.010036086708861454 -0.010049990351729899 -0.010049281066755551 -0.010030862183049443\nleaf_weight=0.52409329125658288 0.1012562103569502 1.4346168241463666 0.73678638180717726 3.1714253402315107 18.328943704254925 1.592582677491009 0.14944326877593983 0.17704514134675242 0.18556769425049457 0.95830096839927137 0.14855086710304055 0.13016023719683323 2.4770638265181333\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00112848 0.00044955 0.00078245 0.00152564 -0.00449595 0.010611 0.0104644 -0.0100415 0.0100445 -0.0100347 -0.0100328 -0.0100318\ninternal_weight=0 27.0732 25.2644 24.5276 21.5004 3.0272 1.80888 1.65944 3.0426 1.13535 2.94134 2.75577 2.60722\ninternal_count=2200 1278 936 912 871 41 342 341 922 333 909 872 841\nis_linear=0\nshrinkage=0.01\n\n\nTree=512\nnum_leaves=11\nnum_cat=0\nsplit_feature=0 4 1 2 2 2 13 3 10 1\nsplit_gain=3.3763 4.47765 2.85671 1.7871 2.40017 2.36324 2.402 2.09209 1.47053 0.708416\nthreshold=1.1427926010382323 0.36041499722973019 0.99689265265511573 1.2824739019042977 1.2525408166204799 1.1348528270257934 0.67232328979645251 0.17408222448223767 3.5000000000000004 1.0383879925828392\ndecision_type=2 2 2 2 2 2 2 2 2 2\nleft_child=3 -2 -3 4 5 7 -7 -1 9 -4\nright_child=1 2 8 -5 -6 6 -8 -9 -10 -11\nleaf_value=-0.001654681546599048 0.014857875708721038 0.012388188492468382 0.0007994320668833889 -0.010609590310844828 0.012581356236909711 0.0013992177142873434 -0.010800199740436275 0.009062342862416993 -0.034771217054387862 -0.0086375359183029164\nleaf_weight=2.7165048774331932 1.0693390839733172 0.72268576640635629 0.88707771152257553 0.99074948346242209 2.3657826595008364 5.5683158549945793 2.272714001359418 5.5286585052963346 0.20488376915454942 7.702771169366315\nleaf_count=27 20 9 8 25 24 112 36 955 1 983\ninternal_value=0 -0.00454407 -0.006724 0.00247427 0.00317678 0.00179366 -0.00213677 0.00553144 -0.00829449 -0.00766298\ninternal_weight=0 10.5868 9.51742 19.4427 18.452 16.0862 7.84103 8.24516 8.79473 8.58985\ninternal_count=2200 1021 1001 1179 1154 1130 148 982 992 991\nis_linear=0\nshrinkage=0.01\n\n\nTree=513\nnum_leaves=17\nnum_cat=1\nsplit_feature=1 4 2 2 4 4 4 2 3 2 3 5 3 12 3 12\nsplit_gain=3.34799 1.56653 1.10543 1.53829 1.30157 1.25752 0.938687 1.68378 1.18253 0.845926 0.00416144 0.00600425 0.00190215 4.25824e-05 4.11982e-06 2.06071e-06\nthreshold=1.2071296172255412 0.30582682030356095 1.2813361202598783 1.2719010105634743 0.45363998121264898 0.37470171316558165 0.40520528501409475 1.2704041812989106 1.1981154781470527 1.2727767592850008 0.24292548700197389 0 1.2306326518141948 5.428310804937337 0.65509567554656234 5.5259436077887791\ndecision_type=2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2\nleft_child=1 10 3 5 -4 -3 7 -2 -9 -10 -1 -12 -8 -14 -13 -15\nright_child=6 2 4 -5 -6 -7 12 8 9 -11 11 14 13 15 -16 -17\nleaf_value=0.011358190151164306 -0.010943831848931407 0.0046653263160969542 -0.012215033236782807 0.014954884881707336 0.0043580581974791508 -0.00072673709694825821 -0.010568384806712414 -0.011000580664086542 0.030602322477332806 0.0070796559982672994 0.012191129572189499 0.010088428522674624 -0.010217863854128354 -0.010072117040629625 0.010035426643335281 -0.010030191826457948\nleaf_weight=0.51927618216723814 0.94635942229069658 6.3686780077405372 1.2954218587838107 0.82307813921943207 0.74719766876660276 13.479838944273068 0.93449468328617546 0.24760325765237212 0.22131584212183952 0.49443192663602531 0.14742803573608387 0.17374495719559468 0.13026431389153037 0.12347187683917615 0.94057304202578962 2.3217896197456867\nleaf_count=8 29 499 33 11 32 352 36 5 2 49 1 36 7 24 297 779\ninternal_value=0 0.00157356 0.000865423 0.00155889 -0.00615254 0.00100338 -0.00711219 -0.00147006 0.00783661 0.0143531 0.0106047 0.0102946 -0.0101819 -0.0100417 0.0100437 -0.0100323\ninternal_weight=0 24.4952 22.7142 20.6716 2.04262 19.8485 5.41973 1.90971 0.963351 0.715748 1.78102 1.26175 3.51002 2.57553 1.11432 2.44526\ninternal_count=2200 1269 927 862 65 851 931 85 56 51 342 334 846 810 333 803\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=514\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 4 4 2 3 5 1 3 13 1 3\nsplit_gain=3.31943 1.70078 0.928038 1.64777 1.30044 0.00403243 0.00581195 3.88422e-05 3.99949e-06 1.7072e-06 4.58841e-07 3.83689e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.50304281293631281 0.47212922992160583 1.2824739019042977 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 4 -3 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 -5 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011343269778073505 -0.010234926833309876 0.0014894534365675477 0.011433073733631781 -0.010825100053557806 -0.0066427549213534777 0.01216457890119501 0.010087554996888497 -0.01006349214079484 0.010035073175799292 -0.010049169208704063 -0.010047912188289088 -0.01003004932693616\nleaf_weight=0.51478213304654374 0.099501878023147028 20.88167049875484 0.74528313707560201 1.3054178934544314 2.1708227563649407 0.14627808332443226 0.17203099117614307 0.18310612416826222 0.93124680896289647 0.14603641000576351 0.12656228872947428 2.4101659506559372\nleaf_count=8 13 855 16 25 40 1 36 37 297 31 29 812\ninternal_value=0 0.00110806 0.000441045 0.00010472 0.000723654 0.0105984 0.0102916 -0.0100407 0.0100433 -0.0100339 -0.0100319 -0.0100309\ninternal_weight=0 26.8675 25.1032 24.3579 23.0525 1.76434 1.24956 2.96537 1.10328 2.86587 2.68276 2.53673\ninternal_count=2200 1278 936 920 895 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=515\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.28343 1.6851 0.913028 0.952352 1.63437 0.00390747 0.00562598 3.77149e-05 3.88251e-06 1.65677e-06 4.45248e-07 3.7234e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011328528355737468 -0.010232620745605206 -0.0092974377501222928 -0.010620613884004426 0.010118379218683424 0.00037718719468528495 0.012138407547068226 0.010086689847587973 -0.010062858278715432 0.010034724018231423 -0.010048677537797845 -0.010047433500818529 -0.01002974901104761\nleaf_weight=0.51031985739246621 0.098533908836543005 0.90541518479586258 0.7251500035636117 1.8717442704364682 21.582572517450899 0.14513327181339253 0.17033378919586517 0.18129554856568608 0.92201268672943115 0.1445903601124886 0.1253089117817584 2.3862554845400155\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00109841 0.000436921 0.000766086 0.00115457 0.0105922 0.0102886 -0.0100403 0.0100428 -0.0100336 -0.0100316 -0.0100306\ninternal_weight=0 26.8327 25.0849 24.3597 23.4543 1.7478 1.23748 2.93598 1.09235 2.83745 2.65615 2.51156\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=516\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 4 4 2 3 5 1 3 13 1 3\nsplit_gain=3.24795 1.66947 0.907933 1.62522 1.28392 0.00378644 0.00544611 3.662e-05 3.76891e-06 1.60781e-06 4.32072e-07 3.61317e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.50304281293631281 0.47071763047048615 1.2824739019042977 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 4 -3 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 -5 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011313962159770366 -0.010230337079321909 0.0014968770551319042 0.011296084564011398 -0.010441887194312348 -0.0066016474874529968 0.012112607421124053 0.010085833170770228 -0.010062230924393992 0.010034378565401743 -0.01004819143686231 -0.010046959719988835 -0.01002945205468294\nleaf_weight=0.50588928721845761 0.097575148101895492 20.771495272405456 0.74647540552541514 1.3795817429199804 2.1613043393008402 0.14399369060993183 0.16865318990312494 0.17950276331976089 0.9128697959240526 0.1431585545651618 0.12406788999214802 2.3625814055558294\nleaf_count=8 13 852 16 28 40 1 36 37 297 31 29 812\ninternal_value=0 0.0010892 0.000433021 9.94871e-05 0.000733631 0.0105861 0.0102856 -0.0100399 0.0100424 -0.0100333 -0.0100313 -0.0100303\ninternal_weight=0 26.7903 25.0589 24.3124 22.9328 1.73141 1.22552 2.90689 1.08152 2.80931 2.62981 2.48665\ninternal_count=2200 1278 936 920 892 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=517\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.21276 1.65407 0.901669 0.942167 2.22963 0.711582 0.00366922 0.00527216 3.55566e-05 3.65873e-06 1.5603e-06 4.19273e-07 3.50625e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011299570495541405 -0.010228074812094338 0.00063577437288160426 -0.010614496172831875 0.009351232685560755 0.00016302629890902647 -0.0091035620540660389 0.012087172463342198 0.010084985084161453 -0.010061609762577592 0.010034035984303628 -0.010047709803098525 -0.010046490672766034 -0.010029157930981632\nleaf_weight=0.5014903168194057 0.096625516423955005 1.4272163351997798 0.71812359103932877 3.0885902626905617 18.225230165757239 1.5814099153503773 0.14285941421985615 0.16698903520591535 0.17772759753279421 0.90381728927604854 0.14174086321145329 0.12283909902907941 2.3391415767837316\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.0010797 0.000428973 0.000755033 0.00149449 -0.00448347 0.01058 0.0102827 -0.0100395 0.010042 -0.0100329 -0.010031 -0.01003\ninternal_weight=0 26.7557 25.0406 24.3224 21.3138 3.00863 1.71516 1.21367 2.87807 1.07081 2.78145 2.60372 2.46198\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=518\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.17823 1.63859 0.891421 0.930668 1.60936 0.00355567 0.00510391 3.45238e-05 3.55175e-06 1.51416e-06 4.06812e-07 3.40219e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011285349822896529 -0.010225835067990019 -0.0092117775701245769 -0.01060827033346237 0.010117377482611911 0.00036723245141617874 0.012062096607923933 0.010084145209356245 -0.010060995148723868 0.010033696831317508 -0.010047232831734148 -0.010046026285906512 -0.010028867505428359\nleaf_weight=0.49712291918695584 0.095684927189722102 0.90322551876307144 0.71139331441372533 1.8372206781059528 21.550536719150841 0.14173050224781025 0.16534116631373741 0.17596987565048072 0.89485423779115081 0.14033714565448496 0.12162242317572269 2.3159335334785283\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00107113 0.000425357 0.000748492 0.00113315 0.010574 0.0102798 -0.0100391 0.0100416 -0.0100326 -0.0100307 -0.0100297\ninternal_weight=0 26.7014 25.0024 24.291 23.3878 1.69905 1.20193 2.84955 1.0602 2.75386 2.57789 2.43756\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=519\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 4 4 2 3 5 1 3 13 1 3\nsplit_gain=3.14394 1.62338 0.888789 1.59903 1.2502 0.00344569 0.00494117 3.3521e-05 3.44792e-06 1.46946e-06 3.94779e-07 3.30164e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.50304281293631281 0.47212922992160583 1.2824739019042977 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 4 -3 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 -5 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011271297873321148 -0.010223616701333179 0.0014493902607084538 0.011161544432312129 -0.010756929656017263 -0.0065597831171353826 0.012037372278739871 0.010083313541142329 -0.01006038638645447 0.010033360666565667 -0.010046760770740178 -0.010045566499329299 -0.010028578820844561\nleaf_weight=0.49278697138652816 0.094753297278657 20.791940432507555 0.74747339962050219 1.2868368471972633 2.1505415937863281 0.14060702919960011 0.16370942746289052 0.17422943399287794 0.88597980863414705 0.13894726359285448 0.12041774298995767 2.2929551401175559\nleaf_count=8 13 855 16 25 40 1 36 37 297 31 29 812\ninternal_value=0 0.00106212 0.000421555 9.02269e-05 0.000698641 0.0105681 0.010277 -0.0100387 0.0100412 -0.0100323 -0.0100304 -0.0100294\ninternal_weight=0 26.6599 24.9768 24.2293 22.9425 1.68308 1.1903 2.8213 1.04969 2.72655 2.55232 2.41337\ninternal_count=2200 1278 936 920 895 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=520\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.10993 1.60839 0.88035 0.919607 2.19636 0.69711 0.00333916 0.00478375 3.2547e-05 3.34697e-06 1.42597e-06 3.83051e-07 3.20363e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011257412923834231 -0.010221420133905753 0.0006250101407738166 -0.010602275424635918 0.0093321660733332694 0.00015481271740467581 -0.0090340859543717022 0.012012994192577151 0.010082489877830806 -0.010059783705124789 0.010033028853793103 -0.010046293415154124 -0.010045111323029789 -0.010028294185701279\nleaf_weight=0.48848240589723602 0.093830545432865065 1.4224487938918238 0.70447740564122696 3.0434979344718185 18.214602124411613 1.5739547172561286 0.1394890397787093 0.16209366568364181 0.17250610445626113 0.8771930686198175 0.13757108221761916 0.11922494159080121 2.2702041009906679\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00105283 0.000417606 0.000737681 0.00146872 -0.00444873 0.0105622 0.0102741 -0.0100383 0.0100407 -0.010032 -0.0100301 -0.0100291\ninternal_weight=0 26.6262 24.959 24.2545 21.2581 2.9964 1.66726 1.17878 2.79334 1.03929 2.69951 2.527 2.38943\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=521\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 3 0 1 3 5 1 3 13 1 3\nsplit_gain=3.07655 1.59333 0.870367 0.909456 1.58475 0.00323597 0.00463149 3.16011e-05 3.24913e-06 1.38384e-06 3.71712e-07 3.10887e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.31415341067031349 0.80845556346269254 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 -3 -5 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 4 -6 6 8 9 -10 10 11 -13\nleaf_value=0.01124369254231425 -0.010219244141600229 -0.0091267859560215346 -0.010596175991550374 0.010116394336348129 0.00035749138894437539 0.011988957707141716 0.010081674776673726 -0.01005918703713094 0.010032699605651785 -0.010045830957551316 -0.010044660862050884 -0.010028011618015167\nleaf_weight=0.48420913191512838 0.09291659621521775 0.90102358907461777 0.69786720164120097 1.8034804624039704 21.519038959406316 0.1383765935897826 0.16049371589906491 0.17079971986822817 0.86849319678731263 0.13620846578851376 0.11804390046745572 2.2476781252771616\nleaf_count=8 13 5 24 471 436 1 36 37 297 31 29 812\ninternal_value=0 0.00104445 0.000414078 0.000731278 0.00111213 0.0105564 0.0102713 -0.0100379 0.0100403 -0.0100316 -0.0100298 -0.0100288\ninternal_weight=0 26.573 24.9214 24.2235 23.3225 1.65157 1.16736 2.76565 1.02899 2.67273 2.50193 2.36572\ninternal_count=2200 1278 936 912 907 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=522\nnum_leaves=13\nnum_cat=1\nsplit_feature=12 4 4 4 2 3 5 1 3 13 1 3\nsplit_gain=3.04342 1.57852 0.87006 1.57287 1.2246 0.00313601 0.00448418 3.06828e-05 3.15408e-06 1.34295e-06 3.60699e-07 3.01687e-07\nthreshold=5.4588099803130126 0.30582682030356095 0.50304281293631281 0.47212922992160583 1.2824739019042977 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 5 3 4 -3 -1 -7 -2 -8 -9 -11 -12\nright_child=7 2 -4 -5 -6 6 8 9 -10 10 11 -13\nleaf_value=0.011230134115751413 -0.010217090073433261 0.0014276604021801914 0.011028707580367361 -0.010720962481160293 -0.0065180142395252078 0.011965253433069636 0.010080867461904381 -0.010058596374738231 0.010032373834237593 -0.010045372969386891 -0.010044214859967386 -0.010027731977066624\nleaf_weight=0.47996703581885114 0.092011359520255964 20.731194175081338 0.74847836187109251 1.2766707502305497 2.1399158337153485 0.13726976513862599 0.15890944004058816 0.16911011375486884 0.85987931210547686 0.13485928624868426 0.11687450762838159 2.2253750851377845\nleaf_count=8 13 855 16 25 40 1 36 37 297 31 29 812\ninternal_value=0 0.00103564 0.000410371 8.12482e-05 0.00068423 0.0105507 0.0102685 -0.0100376 0.0100399 -0.0100313 -0.0100295 -0.0100286\ninternal_weight=0 26.5323 24.8963 24.1478 22.8711 1.63603 1.15606 2.73823 1.01879 2.64622 2.47711 2.34225\ninternal_count=2200 1278 936 920 895 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nTree=523\nnum_leaves=14\nnum_cat=1\nsplit_feature=12 4 3 3 13 4 3 5 1 3 13 1 3\nsplit_gain=3.01055 1.56392 0.859601 0.897597 2.16341 0.682958 0.00303917 0.00434169 2.97908e-05 3.06174e-06 1.30325e-06 3.50002e-07 2.92745e-07\nthreshold=5.4588099803130126 0.30582682030356095 1.3427866072211079 0.61313736928646123 0.46553849925547169 0.37556916262744572 0.24292548700197389 0 1.1597348923655619 0.65509567554656234 1.1133916042113017 1.2071296172255412 1.2471304352583659\ndecision_type=2 2 2 2 2 2 2 1 2 2 2 2 2\nleft_child=1 6 3 5 -5 -3 -1 -8 -2 -9 -10 -12 -13\nright_child=8 2 -4 4 -6 -7 7 9 10 -11 11 12 -14\nleaf_value=0.011216736039219567 -0.010214956487361322 0.00061453254615855099 -0.010590309978666244 0.0093127918412095733 0.00014686137806351152 -0.0089650686202838396 0.011941879942688347 0.010080067839577808 -0.010058011702232323 0.010032051553036957 -0.010044919630419914 -0.010043773267717394 -0.01002745544711028\nleaf_weight=0.4757560407742919 0.091114761540665667 1.4177361470647221 0.69107789872214098 2.9993143596220788 18.20404326915741 1.5665475800633428 0.13616858422756184 0.15734067955054321 0.16743712453171644 0.85135059733875096 0.13352340832352672 0.11571664875373278 2.2032926969695836\nleaf_count=8 13 24 24 662 209 17 1 36 37 297 31 29 812\ninternal_value=0 0.00102656 0.000406523 0.000720719 0.00144343 -0.00441411 0.010545 0.0102658 -0.0100372 0.0100395 -0.010031 -0.0100292 -0.0100283\ninternal_weight=0 26.4993 24.8787 24.1876 21.2034 2.98428 1.62062 1.14486 2.71108 1.00869 2.61997 2.45253 2.31901\ninternal_count=2200 1278 936 912 871 41 342 334 922 333 909 872 841\ncat_boundaries=0 1\ncat_threshold=1\nis_linear=0\nshrinkage=0.01\n\n\nend of trees\n\nfeature_importances:\nArcFace=1832\nFacenet=1320\nFacenet512=1225\ndistance_sums=813\ndistance_multiplications=653\nDlib=625\nVGG-Face=506\nclf_sum=142\nFacenet_clf=61\nDlib_clf=17\n\nparameters:\n[boosting: gbdt]\n[objective: binary]\n[metric: binary_logloss]\n[tree_learner: serial]\n[device_type: cpu]\n[data_sample_strategy: bagging]\n[data: ]\n[valid: ]\n[num_iterations: 10000]\n[learning_rate: 0.01]\n[num_leaves: 31]\n[num_threads: 0]\n[seed: 0]\n[deterministic: 0]\n[force_col_wise: 0]\n[force_row_wise: 0]\n[histogram_pool_size: -1]\n[max_depth: 5]\n[min_data_in_leaf: 20]\n[min_sum_hessian_in_leaf: 0.001]\n[bagging_fraction: 1]\n[pos_bagging_fraction: 1]\n[neg_bagging_fraction: 1]\n[bagging_freq: 0]\n[bagging_seed: 3]\n[feature_fraction: 1]\n[feature_fraction_bynode: 1]\n[feature_fraction_seed: 2]\n[extra_trees: 0]\n[extra_seed: 6]\n[early_stopping_round: 0]\n[first_metric_only: 0]\n[max_delta_step: 0]\n[lambda_l1: 0]\n[lambda_l2: 0]\n[linear_lambda: 0]\n[min_gain_to_split: 0]\n[drop_rate: 0.1]\n[max_drop: 50]\n[skip_drop: 0.5]\n[xgboost_dart_mode: 0]\n[uniform_drop: 0]\n[drop_seed: 4]\n[top_rate: 0.2]\n[other_rate: 0.1]\n[min_data_per_group: 100]\n[max_cat_threshold: 32]\n[cat_l2: 10]\n[cat_smooth: 10]\n[max_cat_to_onehot: 4]\n[top_k: 20]\n[monotone_constraints: ]\n[monotone_constraints_method: basic]\n[monotone_penalty: 0]\n[feature_contri: ]\n[forcedsplits_filename: ]\n[refit_decay_rate: 0.9]\n[cegb_tradeoff: 1]\n[cegb_penalty_split: 0]\n[cegb_penalty_feature_lazy: ]\n[cegb_penalty_feature_coupled: ]\n[path_smooth: 0]\n[interaction_constraints: ]\n[verbosity: -1]\n[saved_feature_importance_type: 0]\n[use_quantized_grad: 0]\n[num_grad_quant_bins: 4]\n[quant_train_renew_leaf: 0]\n[stochastic_rounding: 1]\n[linear_tree: 0]\n[max_bin: 255]\n[max_bin_by_feature: ]\n[min_data_in_bin: 3]\n[bin_construct_sample_cnt: 200000]\n[data_random_seed: 1]\n[is_enable_sparse: 1]\n[enable_bundle: 1]\n[use_missing: 1]\n[zero_as_missing: 0]\n[feature_pre_filter: 1]\n[pre_partition: 0]\n[two_round: 0]\n[header: 0]\n[label_column: ]\n[weight_column: ]\n[group_column: ]\n[ignore_column: ]\n[categorical_feature: 5,6,7,8,9]\n[forcedbins_filename: ]\n[precise_float_parser: 0]\n[parser_config_file: ]\n[objective_seed: 5]\n[num_class: 1]\n[is_unbalance: 0]\n[scale_pos_weight: 1]\n[sigmoid: 1]\n[boost_from_average: 1]\n[reg_sqrt: 0]\n[alpha: 0.9]\n[fair_c: 1]\n[poisson_max_delta_step: 0.7]\n[tweedie_variance_power: 1.5]\n[lambdarank_truncation_level: 30]\n[lambdarank_norm: 1]\n[label_gain: ]\n[lambdarank_position_bias_regularization: 0]\n[eval_at: ]\n[multi_error_top_k: 1]\n[auc_mu_weights: ]\n[num_machines: 1]\n[local_listen_port: 12400]\n[time_out: 120]\n[machine_list_filename: ]\n[machines: ]\n[gpu_platform_id: -1]\n[gpu_device_id: -1]\n[gpu_use_dp: 0]\n[num_gpu: 1]\n\nend of parameters\n\npandas_categorical:null\n"
  },
  {
    "path": "deepface/DeepFace.py",
    "content": "# common dependencies\nimport os\nimport warnings\nimport logging\nfrom typing import Any, Dict, IO, List, Union, Optional, Sequence, Tuple, cast\n\n# this has to be set before importing tensorflow\nos.environ[\"TF_USE_LEGACY_KERAS\"] = \"1\"\n\n# pylint: disable=wrong-import-position, too-many-positional-arguments\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\nimport pandas as pd\nimport tensorflow as tf\nfrom lightphe import LightPHE\nfrom lightdsa import LightDSA\n\n# package dependencies\nfrom deepface.commons import package_utils, folder_utils\nfrom deepface.commons.logger import Logger\nfrom deepface.modules import (\n    modeling,\n    representation,\n    verification,\n    recognition,\n    demography,\n    detection,\n    streaming,\n    preprocessing,\n    datastore,\n)\nfrom deepface import __version__\n\nlogger = Logger()\n\n# -----------------------------------\n# configurations for dependencies\n\n# users should install tf_keras package if they are using tf 2.16 or later versions\npackage_utils.validate_for_keras3()\n\nwarnings.filterwarnings(\"ignore\")\nos.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"3\"\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 2:\n    tf.get_logger().setLevel(logging.ERROR)\n# -----------------------------------\n\n# create required folders if necessary to store model weights\nfolder_utils.initialize_folder()\n\n\ndef build_model(model_name: str, task: str = \"facial_recognition\") -> Any:\n    \"\"\"\n    This function builds a pre-trained model\n    Args:\n        model_name (str): model identifier\n            - VGG-Face, Facenet, Facenet512, OpenFace, DeepFace, DeepID, Dlib,\n                ArcFace, SFace GhostFaceNet and Buffalo_L for face recognition\n            - Age, Gender, Emotion, Race for facial attributes\n            - opencv, mtcnn, ssd, dlib, retinaface, mediapipe,\n                yolov8n, yolov8m, yolov8l, yolov11n, yolov11s, yolov11m,\n                yolov11l, yolov12n, yolov12s, yolov12m, yolov12l,\n                yunet, fastmtcnn or centerface for face detectors\n            - Fasnet for spoofing\n        task (str): facial_recognition, facial_attribute, face_detector, spoofing\n            default is facial_recognition\n    Returns:\n        built_model\n    \"\"\"\n    return modeling.build_model(task=task, model_name=model_name)\n\n\ndef verify(\n    img1_path: Union[str, NDArray[Any], IO[bytes], List[float]],\n    img2_path: Union[str, NDArray[Any], IO[bytes], List[float]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    silent: bool = False,\n    threshold: Optional[float] = None,\n    anti_spoofing: bool = False,\n) -> Dict[str, Any]:\n    \"\"\"\n    Verify if an image pair represents the same person or different persons.\n    Args:\n        img1_path (str or np.ndarray or IO[bytes] or List[float]): Path to the first image.\n            Accepts exact image path as a string, numpy array (BGR), a file object that supports\n            at least `.read` and is opened in binary mode, base64 encoded images\n            or pre-calculated embeddings.\n\n        img2_path (str or np.ndarray or IO[bytes] or List[float]): Path to the second image.\n            Accepts exact image path as a string, numpy array (BGR), a file object that supports\n            at least `.read` and is opened in binary mode, base64 encoded images\n            or pre-calculated embeddings.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        align (bool): Flag to enable face alignment (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base)\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process\n            (default is False).\n\n        threshold (float): Specify a threshold to determine whether a pair represents the same\n            person or different individuals. This threshold is used for comparing distances.\n            If left unset, default pre-tuned threshold values will be applied based on the specified\n            model name and distance metric (default is None).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        result (dict): A dictionary containing verification results with following keys.\n\n        - 'verified' (bool): Indicates whether the images represent the same person (True)\n            or different persons (False).\n\n        - 'distance' (float): The distance measure between the face vectors.\n            A lower distance indicates higher similarity.\n\n        - 'threshold' (float): The maximum threshold used for verification.\n            If the distance is below this threshold, the images are considered a match.\n\n        - 'confidence' (float): Confidence score indicating the likelihood that the images\n            represent the same person. The score is between 0 and 100, where higher values\n            indicate greater confidence in the verification result.\n\n        - 'model' (str): The chosen face recognition model.\n\n        - 'distance_metric' (str): The chosen similarity metric for measuring distances.\n\n        - 'facial_areas' (dict): Rectangular regions of interest for faces in both images.\n            - 'img1': {'x': int, 'y': int, 'w': int, 'h': int}\n                    Region of interest for the first image.\n            - 'img2': {'x': int, 'y': int, 'w': int, 'h': int}\n                    Region of interest for the second image.\n\n        - 'time' (float): Time taken for the verification process in seconds.\n    \"\"\"\n\n    return verification.verify(\n        img1_path=img1_path,\n        img2_path=img2_path,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        distance_metric=distance_metric,\n        enforce_detection=enforce_detection,\n        align=align,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        silent=silent,\n        threshold=threshold,\n        anti_spoofing=anti_spoofing,\n    )\n\n\ndef analyze(\n    img_path: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    actions: Union[Tuple[str, ...], List[str]] = (\"emotion\", \"age\", \"gender\", \"race\"),\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    expand_percentage: int = 0,\n    silent: bool = False,\n    anti_spoofing: bool = False,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Analyze facial attributes such as age, gender, emotion, and race in the provided image.\n    Args:\n        img_path (str, np.ndarray, IO[bytes], list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If the source image contains multiple faces,\n            the result will include information for each detected face.\n\n        actions (tuple): Attributes to analyze. The default is ('age', 'gender', 'emotion', 'race').\n            You can exclude some of these attributes from the analysis if needed.\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n',  'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        align (boolean): Perform alignment based on the eye positions (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process\n            (default is False).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        (List[List[Dict[str, Any]]]): A list of analysis results if received batched image,\n                                      explained below.\n\n        (List[Dict[str, Any]]): A list of dictionaries, where each dictionary represents\n           the analysis results for a detected face. Each dictionary in the list contains the\n           following keys:\n\n        - 'region' (dict): Represents the rectangular region of the detected face in the image.\n            - 'x': x-coordinate of the top-left corner of the face.\n            - 'y': y-coordinate of the top-left corner of the face.\n            - 'w': Width of the detected face region.\n            - 'h': Height of the detected face region.\n\n        - 'age' (float): Estimated age of the detected face.\n\n        - 'face_confidence' (float): Confidence score for the detected face.\n            Indicates the reliability of the face detection.\n\n        - 'dominant_gender' (str): The dominant gender in the detected face.\n            Either \"Man\" or \"Woman\".\n\n        - 'gender' (dict): Confidence scores for each gender category.\n            - 'Man': Confidence score for the male gender.\n            - 'Woman': Confidence score for the female gender.\n\n        - 'dominant_emotion' (str): The dominant emotion in the detected face.\n            Possible values include \"sad,\" \"angry,\" \"surprise,\" \"fear,\" \"happy,\"\n            \"disgust,\" and \"neutral\"\n\n        - 'emotion' (dict): Confidence scores for each emotion category.\n            - 'sad': Confidence score for sadness.\n            - 'angry': Confidence score for anger.\n            - 'surprise': Confidence score for surprise.\n            - 'fear': Confidence score for fear.\n            - 'happy': Confidence score for happiness.\n            - 'disgust': Confidence score for disgust.\n            - 'neutral': Confidence score for neutrality.\n\n        - 'dominant_race' (str): The dominant race in the detected face.\n            Possible values include \"indian,\" \"asian,\" \"latino hispanic,\"\n            \"black,\" \"middle eastern,\" and \"white.\"\n\n        - 'race' (dict): Confidence scores for each race category.\n            - 'indian': Confidence score for Indian ethnicity.\n            - 'asian': Confidence score for Asian ethnicity.\n            - 'latino hispanic': Confidence score for Latino/Hispanic ethnicity.\n            - 'black': Confidence score for Black ethnicity.\n            - 'middle eastern': Confidence score for Middle Eastern ethnicity.\n            - 'white': Confidence score for White ethnicity.\n    \"\"\"\n    return demography.analyze(\n        img_path=img_path,\n        actions=actions,\n        enforce_detection=enforce_detection,\n        detector_backend=detector_backend,\n        align=align,\n        expand_percentage=expand_percentage,\n        silent=silent,\n        anti_spoofing=anti_spoofing,\n    )\n\n\ndef find(\n    img_path: Union[str, NDArray[Any], IO[bytes]],\n    db_path: str,\n    model_name: str = \"VGG-Face\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    similarity_search: bool = False,\n    k: Optional[int] = None,\n    expand_percentage: int = 0,\n    threshold: Optional[float] = None,\n    normalization: str = \"base\",\n    silent: bool = False,\n    refresh_database: bool = True,\n    anti_spoofing: bool = False,\n    batched: bool = False,\n    credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None,\n) -> Union[List[pd.DataFrame], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Identify individuals in a database. This is a stateful facial recognition function.\n        Use search function to do it in a stateless way.\n    Args:\n        img_path (str or np.ndarray or IO[bytes]): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If the source image contains multiple\n            faces, the result will include information for each detected face.\n\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        align (boolean): Perform alignment based on the eye positions (default is True).\n\n        similarity_search (boolean): If False, performs identity verification and returns images of\n            the same person. If True, performs similarity search and returns visually similar faces\n            (e.g., celebrity or parental look-alikes). Default is False.\n\n        k (int): Number of top similar faces to retrieve from the database for each detected face.\n            If not specified, all faces within the threshold will be returned (default is None).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        threshold (float): Specify a threshold to determine whether a pair represents the same\n            person or different individuals. This threshold is used for comparing distances.\n            If left unset, default pre-tuned threshold values will be applied based on the specified\n            model name and distance metric (default is None).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process\n            (default is False).\n\n        refresh_database (boolean): Synchronizes the images representation (pkl) file with the\n            directory/db files, if set to false, it will ignore any file changes inside the db_path\n            (default is True).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        credentials (LightDSA or dict): public - private key pair. This will be used to sign\n            and verify the integrity of the datastore pickle file. Since pickle files are not safe\n            to load from untrusted sources, signing helps detect tampering and prevents loading a\n            modified datastore that could execute arbitrary code.\n\n            ```\n            from lightdsa import LightDSA\n            cs = LightDSA(algorithm_name = \"eddsa\")\n            DeepFace.find(..., credentials=cs)\n            # DeepFace.find(..., credentials={**cs.dsa.keys, \"algorithm_name\": cs.algorithm_name})\n            ```\n\n            See LightDSA repo for more details: https://github.com/serengil/LightDSA\n\n    Returns:\n        results (List[pd.DataFrame] or List[List[Dict[str, Any]]]):\n            A list of pandas dataframes (if `batched=False`) or\n            a list of dicts (if `batched=True`).\n            Each dataframe or dict corresponds to the identity information for\n            an individual detected in the source image.\n\n            Note: If you have a large database and/or a source photo with many faces,\n            use `batched=True`, as it is optimized for large batch processing.\n            Please pay attention that when using `batched=True`, the function returns\n            a list of dicts (not a list of DataFrames),\n            but with the same keys as the columns in the DataFrame.\n\n            The DataFrame columns or dict keys include:\n\n            - 'identity': Identity label of the detected individual.\n\n            - 'target_x', 'target_y', 'target_w', 'target_h': Bounding box coordinates of the\n                    target face in the database.\n\n            - 'source_x', 'source_y', 'source_w', 'source_h': Bounding box coordinates of the\n                    detected face in the source image.\n\n            - 'threshold': threshold to determine a pair whether same person or different persons\n\n            - 'distance': Similarity score between the faces based on the\n                    specified model and distance metric\n\n            - 'confidence': Confidence score indicating the likelihood that the images\n                    represent the same person. The score is between 0 and 100, where higher values\n                    indicate greater confidence in the verification result.\n    \"\"\"\n    return recognition.find(\n        img_path=img_path,\n        db_path=db_path,\n        model_name=model_name,\n        distance_metric=distance_metric,\n        enforce_detection=enforce_detection,\n        detector_backend=detector_backend,\n        align=align,\n        similarity_search=similarity_search,\n        k=k,\n        expand_percentage=expand_percentage,\n        threshold=threshold,\n        normalization=normalization,\n        silent=silent,\n        refresh_database=refresh_database,\n        anti_spoofing=anti_spoofing,\n        batched=batched,\n        credentials=credentials,\n    )\n\n\ndef represent(\n    img_path: Union[str, NDArray[Any], IO[bytes], Sequence[Union[str, NDArray[Any], IO[bytes]]]],\n    model_name: str = \"VGG-Face\",\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    max_faces: Optional[int] = None,\n    l2_normalize: bool = False,\n    minmax_normalize: bool = False,\n    return_face: bool = False,\n    cryptosystem: Optional[LightPHE] = None,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Represent facial images as multi-dimensional vector embeddings.\n\n    Args:\n        img_path (str, np.ndarray, IO[bytes], or Sequence[Union[str, np.ndarray, IO[bytes]]]):\n            The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If the source image contains multiple faces,\n            the result will include information for each detected face. If a sequence is provided,\n            each element should be a string or numpy array representing an image, and the function\n            will process images in batch.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet\n            (default is VGG-Face.).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Default is True. Set to False to avoid the exception for low-resolution images\n            (default is True).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        align (boolean): Perform alignment based on the eye positions (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Default is base. Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace\n            (default is base).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        max_faces (int): Set a limit on the number of faces to be processed (default is None).\n\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n            of the output embeddings\n\n        minmax_normalize (bool): Flag to enable min-max normalization of the output embeddings\n            to the range [0, 1].\n\n        return_face (bool): If True, the detected face images will also be returned along\n            with embeddings. Default is False.\n\n        cryptosystem (LightPHE): An instance of a partially homomorphic encryption system\n            to encrypt the output embeddings. If provided, the embeddings will be encrypted\n            using the specified cryptosystem. Then, you will be able to perform homomorphic\n            operations on the encrypted embeddings without decrypting them first.\n            Check out the repo to find out more: https://github.com/serengil/lightphe\n\n    Returns:\n        results (List[Dict[str, Any]] or List[Dict[str, Any]]): A list of dictionaries.\n            Result type becomes List of List of Dict if batch input passed.\n            Each containing the following fields:\n\n        - embedding (List[float]): Multidimensional vector representing facial features.\n            The number of dimensions varies based on the reference model\n            (e.g., FaceNet returns 128 dimensions, VGG-Face returns 4096 dimensions).\n\n        - facial_area (dict): Detected facial area by face detection in dictionary format.\n            Contains 'x' and 'y' as the left-corner point, and 'w' and 'h'\n            as the width and height. If `detector_backend` is set to 'skip', it represents\n            the full image area and is nonsensical.\n\n        - face_confidence (float): Confidence score of face detection. If `detector_backend` is set\n            to 'skip', the confidence will be 0 and is nonsensical.\n\n        - encrypted_embedding (List[Any]): Encrypted multidimensional vector representing\n            facial features. This field is included only if a `cryptosystem` is provided.\n    \"\"\"\n    return representation.represent(\n        img_path=img_path,\n        model_name=model_name,\n        enforce_detection=enforce_detection,\n        detector_backend=detector_backend,\n        align=align,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        anti_spoofing=anti_spoofing,\n        max_faces=max_faces,\n        l2_normalize=l2_normalize,\n        minmax_normalize=minmax_normalize,\n        return_face=return_face,\n        cryptosystem=cryptosystem,\n    )\n\n\ndef stream(\n    db_path: str = \"\",\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enable_face_analysis: bool = True,\n    source: Any = 0,\n    time_threshold: int = 5,\n    frame_threshold: int = 5,\n    anti_spoofing: bool = False,\n    output_path: Optional[str] = None,\n    debug: bool = False,\n) -> None:\n    \"\"\"\n    Run real time face recognition and facial attribute analysis\n\n    Args:\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        enable_face_analysis (bool): Flag to enable face analysis (default is True).\n\n        source (Any): The source for the video stream (default is 0, which represents the\n            default camera).\n\n        time_threshold (int): The time threshold (in seconds) for face recognition (default is 5).\n\n        frame_threshold (int): The frame threshold for face recognition (default is 5).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        output_path (str): Path to save the output video. (default is None\n            If None, no video is saved).\n\n        debug (bool): set this to True to save frame outcomes\n\n    Returns:\n        None\n    \"\"\"\n\n    time_threshold = max(time_threshold, 1)\n    frame_threshold = max(frame_threshold, 1)\n\n    streaming.analysis(\n        db_path=db_path,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        distance_metric=distance_metric,\n        enable_face_analysis=enable_face_analysis,\n        source=source,\n        time_threshold=time_threshold,\n        frame_threshold=frame_threshold,\n        anti_spoofing=anti_spoofing,\n        output_path=output_path,\n        debug=debug,\n    )\n\n\ndef extract_faces(\n    img_path: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    grayscale: bool = False,\n    color_face: str = \"rgb\",\n    normalize_face: bool = True,\n    anti_spoofing: bool = False,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Extract faces from a given image\n\n    Args:\n        img_path (str or list of str ornp.ndarray or IO[bytes]): Path to the first image.\n            Accepts exact image path as a string, list of string, numpy array (BGR), a file object\n            that supports at least `.read` and is opened in binary mode, or base64 encoded images.\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        align (bool): Flag to enable face alignment (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        grayscale (boolean): (Deprecated) Flag to convert the output face image to grayscale\n            (default is False).\n\n        color_face (string): Color to return face image output. Options: 'rgb', 'bgr' or 'gray'\n            (default is 'rgb').\n\n        normalize_face (boolean): Flag to enable normalization (divide by 255) of the output\n            face image output face image normalization (default is True).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        results (List[Dict[str, Any]]): A list of dictionaries, where each dictionary contains:\n\n        - \"face\" (np.ndarray): The detected face as a NumPy array.\n\n        - \"facial_area\" (Dict[str, Any]): The detected face's regions as a dictionary containing:\n            - keys 'x', 'y', 'w', 'h' with int values\n            - keys 'left_eye', 'right_eye' with a tuple of 2 ints as values. left and right eyes\n                are eyes on the left and right respectively with respect to the person itself\n                instead of observer.\n\n        - \"confidence\" (float): The confidence score associated with the detected face.\n\n        - \"is_real\" (boolean): antispoofing analyze result. this key is just available in the\n            result only if anti_spoofing is set to True in input arguments.\n\n        - \"antispoof_score\" (float): score of antispoofing analyze result. this key is\n            just available in the result only if anti_spoofing is set to True in input arguments.\n    \"\"\"\n\n    return detection.extract_faces(\n        img_path=img_path,\n        detector_backend=detector_backend,\n        enforce_detection=enforce_detection,\n        align=align,\n        expand_percentage=expand_percentage,\n        grayscale=grayscale,\n        color_face=color_face,\n        normalize_face=normalize_face,\n        anti_spoofing=anti_spoofing,\n    )\n\n\ndef cli() -> None:\n    \"\"\"\n    command line interface function will be offered in this block\n    \"\"\"\n    import fire\n\n    fire.Fire()\n\n\n# deprecated function(s)\n\n\ndef detectFace(\n    img_path: Union[str, NDArray[Any], IO[bytes]],\n    target_size: Tuple[int, int] = (224, 224),\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n) -> Union[NDArray[Any], None]:\n    \"\"\"\n    Deprecated face detection function. Use extract_faces for same functionality.\n\n    Args:\n        img_path (str or np.ndarray): Path to the first image. Accepts exact image path\n            as a string, numpy array (BGR), or base64 encoded images.\n\n        target_size (tuple): final shape of facial image. black pixels will be\n            added to resize the image (default is (224, 224)).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        align (bool): Flag to enable face alignment (default is True).\n\n    Returns:\n        img (np.ndarray): detected (and aligned) facial area image as numpy array\n    \"\"\"\n    logger.warn(\"Function detectFace is deprecated. Use extract_faces instead.\")\n    face_objs: List[Dict[str, Any]] = cast(\n        List[Dict[str, Any]],\n        extract_faces(\n            img_path=img_path,\n            detector_backend=detector_backend,\n            grayscale=False,\n            enforce_detection=enforce_detection,\n            align=align,\n        ),\n    )\n    extracted_face = None\n    if len(face_objs) > 0:\n        extracted_face = face_objs[0][\"face\"]\n        extracted_face = preprocessing.resize_image(img=extracted_face, target_size=target_size)\n    return extracted_face\n\n\ndef register(\n    img: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    img_name: Optional[str] = None,\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    l2_normalize: bool = False,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n) -> Dict[str, Any]:\n    \"\"\"\n    Register identities to database for face recognition\n    Args:\n        img (str or np.ndarray or IO[bytes] or list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If a list is provided, each element should be a string\n            or numpy array representing an image, and the function will process images in batch.\n        img_name (optional str): image name to store in db, if not provided then we will try to\n            extract it from given img.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n        database_type (str): Type of database to register identities. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection_details (dict or str): Connection details for the database.\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    Returns:\n        result (dict): A dictionary containing registration results with following keys.\n            - inserted (int): Number of embeddings successfully registered to the database.\n    \"\"\"\n    return datastore.register(\n        img=img,\n        img_name=img_name,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        enforce_detection=enforce_detection,\n        align=align,\n        l2_normalize=l2_normalize,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        anti_spoofing=anti_spoofing,\n        database_type=database_type,\n        connection_details=connection_details,\n        connection=connection,\n    )\n\n\ndef search(\n    img: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    l2_normalize: bool = False,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    similarity_search: bool = False,\n    k: Optional[int] = None,\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n    search_method: str = \"exact\",\n) -> List[pd.DataFrame]:\n    \"\"\"\n    Search for identities in database for face recognition. This is a stateless facial\n        recognition function. Use find function to do it in a stateful way.\n    Args:\n        img (str or np.ndarray or IO[bytes] or list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If a list is provided, each element should be a string\n            or numpy array representing an image, and the function will process images in batch.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'angular' (default is cosine).\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n        similarity_search (boolean): If False, performs identity verification and returns images of\n            the same person. If True, performs similarity search and returns visually similar faces\n            (e.g., celebrity or parental look-alikes). Default is False.\n        k (int): Number of top similar faces to retrieve from the database for each detected face.\n            If not specified, all faces within the threshold will be returned (default is None).\n        search_method (str): Method to use for searching identities. Options: 'exact', 'ann'.\n            To use ann search, you must run build_index function first to create the index.\n        database_type (str): Type of database to search identities. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection_details (dict or str): Connection details for the database.\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    Returns:\n        results (List[pd.DataFrame]):\n            A list of pandas dataframes or a list of dicts. Each dataframe or dict corresponds\n                to the identity information for an individual detected in the source image.\n\n            The DataFrame columns or dict keys include:\n            - id: ID of the detected individual.\n            - img_name: Name of the image file in the database.\n            - model_name: Name of the model used for recognition.\n            - aligned: Whether face alignment was performed.\n            - l2_normalized: Whether L2 normalization was applied.\n            - search_method: Method used for searching identities: exact or ann.\n            - confidence: Confidence score indicating the likelihood that the images\n                represent the same person. The score is between 0 and 100, where higher values\n                indicate greater confidence in the verification result.\n            - target_x, target_y, target_w, target_h: Bounding box coordinates of the\n                target face in the database. Notice that source image's face coordinates\n                are not included in the result here.\n            - threshold: threshold to determine a pair whether same person or different persons\n            - distance_metric: Distance metric used for similarity measurement.\n                Distance metric will be ignored for ann search, and set to cosine if l2_normalize\n                is True, euclidean if l2_normalize is False.\n            - distance: Similarity score between the faces based on the specified model\n                and distance metric\n    \"\"\"\n    return datastore.search(\n        img=img,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        distance_metric=distance_metric,\n        enforce_detection=enforce_detection,\n        align=align,\n        l2_normalize=l2_normalize,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        anti_spoofing=anti_spoofing,\n        similarity_search=similarity_search,\n        k=k,\n        database_type=database_type,\n        connection_details=connection_details,\n        connection=connection,\n        search_method=search_method,\n    )\n\n\ndef build_index(\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    l2_normalize: bool = False,\n    database_type: str = \"postgres\",\n    connection: Any = None,\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    max_neighbors_per_node: int = 32,\n) -> None:\n    \"\"\"\n    Build index for faster search in the database. You should set search_method to 'ann'\n        in the search function to use the built index.\n\n    - Use this function after registering all identities to the database.\n    - This function is resumable, run again whenever new identities are added to the db.\n    - Vector databases handle indexing internally, so you don't need to use this function\n        when using a vector database ('weaviate', 'neo4j', 'pgvector', 'pinecone')\n        as database_type.\n\n    Args:\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        max_neighbors_per_node (int): Maximum number of neighbors per node in the index\n            (default is 32).\n        database_type (str): Type of database to build index. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n        connection_details (dict or str): Connection details for the database.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    \"\"\"\n    return datastore.build_index(\n        model_name=model_name,\n        detector_backend=detector_backend,\n        l2_normalize=l2_normalize,\n        align=align,\n        database_type=database_type,\n        connection=connection,\n        connection_details=connection_details,\n        max_neighbors_per_node=max_neighbors_per_node,\n    )\n"
  },
  {
    "path": "deepface/__init__.py",
    "content": "__version__ = \"0.0.99\"\n"
  },
  {
    "path": "deepface/api/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/postman/deepface-api.postman_collection.json",
    "content": "{\n\t\"info\": {\n\t\t\"_postman_id\": \"26c5ee53-1f4b-41db-9342-3617c90059d3\",\n\t\t\"name\": \"deepface-api\",\n\t\t\"schema\": \"https://schema.getpostman.com/json/collection/v2.1.0/collection.json\"\n\t},\n\t\"item\": [\n\t\t{\n\t\t\t\"name\": \"Represent - form data\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"formdata\",\n\t\t\t\t\t\"formdata\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"img\",\n\t\t\t\t\t\t\t\"type\": \"file\",\n\t\t\t\t\t\t\t\"src\": \"/Users/sefik/Desktop/deepface/tests/dataset/img1.jpg\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"model_name\",\n\t\t\t\t\t\t\t\"value\": \"Facenet\",\n\t\t\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/represent\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"represent\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Represent - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n  \\\"model_name\\\": \\\"Facenet\\\",\\n  \\\"detector_backend\\\": \\\"mtcnn\\\",\\n  \\\"img\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img1.jpg\\\"\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/represent\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"represent\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Face verification - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"  {\\n  \\t\\\"img1\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img1.jpg\\\",\\n    \\\"img2\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img3.jpg\\\",\\n    \\\"model_name\\\": \\\"Facenet\\\",\\n    \\\"detector_backend\\\": \\\"opencv\\\",\\n    \\\"distance_metric\\\": \\\"euclidean\\\"\\n  }\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/verify\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"verify\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Face verification - form data\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"formdata\",\n\t\t\t\t\t\"formdata\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"img1\",\n\t\t\t\t\t\t\t\"type\": \"file\",\n\t\t\t\t\t\t\t\"src\": \"/Users/sefik/Desktop/deepface/tests/dataset/img1.jpg\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"img2\",\n\t\t\t\t\t\t\t\"type\": \"file\",\n\t\t\t\t\t\t\t\"src\": \"/Users/sefik/Desktop/deepface/tests/dataset/img2.jpg\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"model_name\",\n\t\t\t\t\t\t\t\"value\": \"Facenet\",\n\t\t\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/verify\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"verify\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Face analysis - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n    \\\"__img\\\": \\\"/Users/sefik/Desktop/deepface/tests/dataset/img2.jpg\\\",\\n    \\\"img\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img2.jpg\\\",\\n    \\\"__actions\\\": [\\\"age\\\", \\\"gender\\\", \\\"emotion\\\", \\\"race\\\"],\\n    \\\"actions\\\": [\\\"age\\\"]\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/analyze\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"analyze\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Face analysis - form data\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"formdata\",\n\t\t\t\t\t\"formdata\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"img\",\n\t\t\t\t\t\t\t\"type\": \"file\",\n\t\t\t\t\t\t\t\"src\": \"/Users/sefik/Desktop/deepface/tests/dataset/img1.jpg\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"key\": \"actions\",\n\t\t\t\t\t\t\t\"value\": \"\\\"[age, gender]\\\"\",\n\t\t\t\t\t\t\t\"type\": \"text\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://localhost:5005/analyze\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"localhost\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"analyze\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Register - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n  \\\"model_name\\\": \\\"Facenet\\\",\\n  \\\"detector_backend\\\": \\\"mtcnn\\\",\\n  \\\"align\\\": true,\\n  \\\"l2_normalize\\\": true,\\n  \\\"img\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img18.jpg\\\"\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/register\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"register\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Search by exact - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n  \\\"img\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img1.jpg\\\",\\n  \\\"model_name\\\": \\\"Facenet\\\",\\n  \\\"detector_backend\\\": \\\"mtcnn\\\",\\n  \\\"align\\\": true,\\n  \\\"l2_normalize\\\": true,\\n  \\\"distance_metric\\\": \\\"cosine\\\",\\n  \\\"search_method\\\": \\\"exact\\\"\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/search\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"search\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Search by ann - default\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n  \\\"img\\\": \\\"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img1.jpg\\\",\\n  \\\"model_name\\\": \\\"Facenet\\\",\\n  \\\"detector_backend\\\": \\\"mtcnn\\\",\\n  \\\"align\\\": true,\\n  \\\"l2_normalize\\\": true,\\n  \\\"search_method\\\": \\\"ann\\\"\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/search\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"search\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t},\n\t\t{\n\t\t\t\"name\": \"Build index\",\n\t\t\t\"request\": {\n\t\t\t\t\"method\": \"POST\",\n\t\t\t\t\"header\": [],\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"mode\": \"raw\",\n\t\t\t\t\t\"raw\": \"{\\n  \\\"model_name\\\": \\\"Facenet\\\",\\n  \\\"detector_backend\\\": \\\"mtcnn\\\",\\n  \\\"align\\\": true,\\n  \\\"l2_normalize\\\": true\\n}\",\n\t\t\t\t\t\"options\": {\n\t\t\t\t\t\t\"raw\": {\n\t\t\t\t\t\t\t\"language\": \"json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"raw\": \"http://127.0.0.1:5005/build/index\",\n\t\t\t\t\t\"protocol\": \"http\",\n\t\t\t\t\t\"host\": [\n\t\t\t\t\t\t\"127\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\"1\"\n\t\t\t\t\t],\n\t\t\t\t\t\"port\": \"5005\",\n\t\t\t\t\t\"path\": [\n\t\t\t\t\t\t\"build\",\n\t\t\t\t\t\t\"index\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"response\": []\n\t\t}\n\t]\n}"
  },
  {
    "path": "deepface/api/src/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/src/app.py",
    "content": "# 3rd parth dependencies\nfrom flask import Flask\nfrom flask_cors import CORS\nfrom dotenv import load_dotenv\n\n# load environment variables from .env first things first\nload_dotenv()\n\n\n# pylint: disable=wrong-import-position\n# project dependencies\nfrom deepface import __version__\nfrom deepface.api.src.modules.core.routes import blueprint\nfrom deepface.api.src.dependencies.variables import Variables\nfrom deepface.api.src.dependencies.container import Container\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef create_app() -> Flask:\n    app = Flask(__name__)\n    CORS(app)\n\n    variables = Variables()\n    container = Container(variables=variables)\n\n    # inject variables\n    blueprint.variables = variables  # type: ignore[attr-defined]\n    blueprint.container = container  # type: ignore[attr-defined]\n\n    load_models_on_startup(variables)\n\n    app.register_blueprint(blueprint)\n\n    logger.info(f\"Welcome to DeepFace API v{__version__}!\")\n    return app\n\n\ndef load_models_on_startup(variables: Variables) -> None:\n    \"\"\"Load models on startup to reduce latency on first request.\"\"\"\n    face_recognition_models = variables.face_recognition_models\n    if face_recognition_models is not None:\n        for model in face_recognition_models.split(\",\"):\n            DeepFace.build_model(task=\"facial_recognition\", model_name=model.strip())\n            logger.info(f\"Facial Recognition Model {model} loaded on startup.\")\n    face_detection_models = variables.face_detection_models\n    if face_detection_models is not None:\n        for model in face_detection_models.split(\",\"):\n            DeepFace.build_model(task=\"face_detector\", model_name=model.strip())\n            logger.info(f\"Face Detector Model {model} loaded on startup.\")\n"
  },
  {
    "path": "deepface/api/src/dependencies/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/src/dependencies/container.py",
    "content": "# project dependencies\nfrom deepface.api.src.modules.auth.service import AuthService\nfrom deepface.api.src.dependencies.variables import Variables\n\n\n# pylint: disable=too-few-public-methods\nclass Container:\n    def __init__(self, variables: Variables) -> None:\n        # once you have variables, you can connect dbs and other services here\n        self.auth_service = AuthService(auth_token=variables.auth_token)\n"
  },
  {
    "path": "deepface/api/src/dependencies/variables.py",
    "content": "# built-in dependencies\nimport os\n\n# project dependencies\nfrom deepface.modules.database.inventory import database_inventory\n\n\n# pylint: disable=too-few-public-methods\nclass Variables:\n    def __init__(self) -> None:\n        self.database_type = os.getenv(\"DEEPFACE_DATABASE_TYPE\", \"postgres\").lower()\n\n        if database_inventory.get(self.database_type) is None:\n            raise ValueError(f\"Unsupported database type: {self.database_type}\")\n\n        connection_string = database_inventory[self.database_type][\"connection_string\"]\n        conection_details = os.getenv(connection_string)\n        self.conection_details = os.getenv(\"DEEPFACE_CONNECTION_DETAILS\") or conection_details\n\n        self.face_recognition_models = os.getenv(\"DEEPFACE_FACE_RECOGNITION_MODELS\")\n        self.face_detection_models = os.getenv(\"DEEPFACE_FACE_DETECTION_MODELS\")\n\n        self.auth_token = os.getenv(\"DEEPFACE_AUTH_TOKEN\")\n"
  },
  {
    "path": "deepface/api/src/modules/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/src/modules/auth/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/src/modules/auth/service.py",
    "content": "# built-in dependencies\nfrom typing import Optional, Dict, Any\n\n# project dependencies\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=too-few-public-methods\nclass AuthService:\n    def __init__(self, auth_token: Optional[str] = None) -> None:\n        self.auth_token = auth_token\n        self.is_auth_enabled = auth_token is not None and len(auth_token) > 0\n\n    def extract_token(self, auth_header: Optional[str]) -> Optional[str]:\n        if not auth_header:\n            return None\n        parts = auth_header.split()\n        if len(parts) == 2 and parts[0].lower() == \"bearer\":\n            return parts[1]\n        return None\n\n    def validate(self, headers: Dict[str, Any]) -> bool:\n        if not self.is_auth_enabled:\n            logger.debug(\"Authentication is disabled. Skipping token validation.\")\n            return True\n\n        token = self.extract_token(headers.get(\"Authorization\"))\n        if not token:\n            logger.debug(\"No authentication token provided. Validation failed.\")\n            return False\n\n        if token != self.auth_token:\n            logger.debug(\"Invalid authentication token provided. Validation failed.\")\n            return False\n\n        logger.debug(\"Authentication token validated successfully.\")\n        return True\n"
  },
  {
    "path": "deepface/api/src/modules/core/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/api/src/modules/core/routes.py",
    "content": "# built-in dependencies\nfrom typing import Union, cast, Any, Tuple, Dict\n\n# 3rd party dependencies\nfrom flask import Blueprint, request\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface import __version__\nfrom deepface.api.src.modules.core import service\nfrom deepface.api.src.dependencies.variables import Variables\nfrom deepface.api.src.dependencies.container import Container\nfrom deepface.commons import image_utils\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nblueprint = Blueprint(\"routes\", __name__)\n\n\n# pylint: disable=no-else-return, broad-except\n\n\n@blueprint.route(\"/\")\ndef home() -> str:\n    return f\"<h1>Welcome to DeepFace API v{__version__}!</h1>\"\n\n\ndef extract_image_from_request(img_key: str) -> Union[str, NDArray[Any]]:\n    \"\"\"\n    Extracts an image from the request either from json or a multipart/form-data file.\n\n    Args:\n        img_key (str): The key used to retrieve the image data\n            from the request (e.g., 'img1').\n\n    Returns:\n        img (str or np.ndarray): Given image detail (base64 encoded string, image path or url)\n            or the decoded image as a numpy array.\n    \"\"\"\n\n    # Check if the request is multipart/form-data (file input)\n    if request.files:\n        # request.files is instance of werkzeug.datastructures.ImmutableMultiDict\n        # file is instance of werkzeug.datastructures.FileStorage\n        file = request.files.get(img_key)\n\n        if file is None:\n            raise ValueError(f\"Request form data doesn't have {img_key}\")\n\n        if file.filename == \"\":\n            raise ValueError(f\"No file uploaded for '{img_key}'\")\n\n        np_img: NDArray[Any] = image_utils.load_image_from_file_storage(file)\n\n        return np_img\n    # Check if the request is coming as base64, file path or url from json or form data\n    elif request.is_json or request.form:\n        input_args = request.get_json() or request.form.to_dict()\n\n        if input_args is None:\n            raise ValueError(\"empty input set passed\")\n\n        # this can be base64 encoded image, and image path or url\n        str_img: str = cast(str, input_args.get(img_key))\n\n        if not str_img:\n            raise ValueError(f\"'{img_key}' not found in either json or form data request\")\n\n        return str_img\n\n    # If neither JSON nor file input is present\n    raise ValueError(f\"'{img_key}' not found in request in either json or form data\")\n\n\n@blueprint.route(\"/represent\", methods=[\"POST\"])\ndef represent() -> Tuple[Dict[str, Any], int]:\n    # load injected container\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    try:\n        img = extract_image_from_request(\"img\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    max_faces = input_args.get(\"max_faces\")\n\n    obj, status_code = service.represent(\n        img_path=img,\n        model_name=input_args.get(\"model_name\", \"VGG-Face\"),\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        enforce_detection=bool(input_args.get(\"enforce_detection\", True)),\n        align=bool(input_args.get(\"align\", True)),\n        anti_spoofing=bool(input_args.get(\"anti_spoofing\", False)),\n        max_faces=int(max_faces) if max_faces is not None else None,\n    )\n\n    logger.debug(obj)\n\n    return obj, status_code\n\n\n@blueprint.route(\"/verify\", methods=[\"POST\"])\ndef verify() -> Tuple[Dict[str, Any], int]:\n    # load injected container\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    try:\n        img1 = extract_image_from_request(\"img1\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    try:\n        img2 = extract_image_from_request(\"img2\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    verification, status_code = service.verify(\n        img1_path=img1,\n        img2_path=img2,\n        model_name=input_args.get(\"model_name\", \"VGG-Face\"),\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        distance_metric=input_args.get(\"distance_metric\", \"cosine\"),\n        align=bool(input_args.get(\"align\", True)),\n        enforce_detection=bool(input_args.get(\"enforce_detection\", True)),\n        anti_spoofing=bool(input_args.get(\"anti_spoofing\", False)),\n    )\n\n    logger.debug(verification)\n\n    return verification, status_code\n\n\n@blueprint.route(\"/analyze\", methods=[\"POST\"])\ndef analyze() -> Tuple[Dict[str, Any], int]:\n    # load injected container\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    try:\n        img = extract_image_from_request(\"img\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    actions = input_args.get(\"actions\", [\"age\", \"gender\", \"emotion\", \"race\"])\n    # actions is the only argument instance of list or tuple\n    # if request is form data, input args can either be text or file\n    if isinstance(actions, str):\n        actions = (\n            actions.replace(\"[\", \"\")\n            .replace(\"]\", \"\")\n            .replace(\"(\", \"\")\n            .replace(\")\", \"\")\n            .replace('\"', \"\")\n            .replace(\"'\", \"\")\n            .replace(\" \", \"\")\n            .split(\",\")\n        )\n\n    demographies, status_code = service.analyze(\n        img_path=img,\n        actions=actions,\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        enforce_detection=bool(input_args.get(\"enforce_detection\", True)),\n        align=bool(input_args.get(\"align\", True)),\n        anti_spoofing=bool(input_args.get(\"anti_spoofing\", False)),\n    )\n\n    logger.debug(demographies)\n\n    return demographies, status_code\n\n\n@blueprint.route(\"/register\", methods=[\"POST\"])\ndef register() -> Tuple[Dict[str, Any], int]:\n    # load injected variables and container\n    variables: Variables = blueprint.variables  # type: ignore[attr-defined]\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    if variables.conection_details is None:\n        return {\n            \"error\": \"Database connection details must be provided in `DEEPFACE_CONNECTION_DETAILS`\"\n            \" environment variables\"\n        }, 500\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    try:\n        img = extract_image_from_request(\"img\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    result, status_code = service.register(\n        img=img,\n        img_name=input_args.get(\"img_name\"),\n        model_name=input_args.get(\"model_name\", \"VGG-Face\"),\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        enforce_detection=bool(input_args.get(\"enforce_detection\", True)),\n        align=bool(input_args.get(\"align\", True)),\n        l2_normalize=bool(input_args.get(\"l2_normalize\", False)),\n        expand_percentage=int(input_args.get(\"expand_percentage\", 0)),\n        normalization=input_args.get(\"normalization\", \"base\"),\n        anti_spoofing=bool(input_args.get(\"anti_spoofing\", False)),\n        database_type=variables.database_type,\n        connection_details=variables.conection_details,\n    )\n\n    if status_code == 200:\n        logger.info(\"An image has been registered to the database.\")\n    else:\n        logger.error(\"An error occurred while registering an image to the database.\")\n\n    return result, status_code\n\n\n@blueprint.route(\"/search\", methods=[\"POST\"])\ndef search() -> Tuple[Dict[str, Any], int]:\n    # load injected variables and container\n    variables: Variables = blueprint.variables  # type: ignore[attr-defined]\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    if variables.conection_details is None:\n        return {\n            \"error\": \"Database connection details must be provided in `DEEPFACE_CONNECTION_DETAILS`\"\n            \" environment variables\"\n        }, 500\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    try:\n        img = extract_image_from_request(\"img\")\n    except Exception as err:\n        return {\"exception\": str(err)}, 400\n\n    return service.search(\n        img=img,\n        model_name=input_args.get(\"model_name\", \"VGG-Face\"),\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        enforce_detection=bool(input_args.get(\"enforce_detection\", True)),\n        align=bool(input_args.get(\"align\", True)),\n        distance_metric=input_args.get(\"distance_metric\", \"cosine\"),\n        l2_normalize=bool(input_args.get(\"l2_normalize\", False)),\n        database_type=variables.database_type,\n        connection_details=variables.conection_details,\n        search_method=input_args.get(\"search_method\", \"exact\"),\n        expand_percentage=int(input_args.get(\"expand_percentage\", 0)),\n        normalization=input_args.get(\"normalization\", \"base\"),\n        anti_spoofing=bool(input_args.get(\"anti_spoofing\", False)),\n        similarity_search=bool(input_args.get(\"similarity_search\", False)),\n        k=int(input_args.get(\"k\", 5)) if input_args.get(\"k\") is not None else None,\n    )\n\n\n@blueprint.route(\"/build/index\", methods=[\"POST\"])\ndef build_index() -> Tuple[Dict[str, Any], int]:\n    # load injected variables and container\n    variables: Variables = blueprint.variables  # type: ignore[attr-defined]\n    container: Container = blueprint.container  # type: ignore[attr-defined]\n    if not container.auth_service.validate(request.headers):\n        return {\"message\": \"Invalid or missing authentication token\"}, 401\n\n    if variables.conection_details is None:\n        return {\n            \"error\": \"Database connection details must be provided in `DEEPFACE_CONNECTION_DETAILS`\"\n            \" environment variables\"\n        }, 500\n\n    input_args = (request.is_json and request.get_json()) or (\n        request.form and request.form.to_dict()\n    )\n\n    return service.build_index(\n        model_name=input_args.get(\"model_name\", \"VGG-Face\"),\n        detector_backend=input_args.get(\"detector_backend\", \"opencv\"),\n        align=bool(input_args.get(\"align\", True)),\n        l2_normalize=bool(input_args.get(\"l2_normalize\", False)),\n        database_type=variables.database_type,\n        connection_details=variables.conection_details,\n    )\n"
  },
  {
    "path": "deepface/api/src/modules/core/service.py",
    "content": "# built-in dependencies\nimport traceback\nfrom typing import Optional, Union, Dict, Any, Tuple, List\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=broad-except, too-many-positional-arguments\n\n\ndef represent(\n    img_path: Union[str, NDArray[Any]],\n    model_name: str,\n    detector_backend: str,\n    enforce_detection: bool,\n    align: bool,\n    anti_spoofing: bool,\n    max_faces: Optional[int] = None,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        result = {}\n        embedding_objs = DeepFace.represent(\n            img_path=img_path,\n            model_name=model_name,\n            detector_backend=detector_backend,\n            enforce_detection=enforce_detection,\n            align=align,\n            anti_spoofing=anti_spoofing,\n            max_faces=max_faces,\n        )\n        result[\"results\"] = embedding_objs\n        return result, 200\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while representing: {str(err)} - {tb_str}\"}, 400\n\n\ndef verify(\n    img1_path: Union[str, NDArray[Any]],\n    img2_path: Union[str, NDArray[Any]],\n    model_name: str,\n    detector_backend: str,\n    distance_metric: str,\n    enforce_detection: bool,\n    align: bool,\n    anti_spoofing: bool,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        obj = DeepFace.verify(\n            img1_path=img1_path,\n            img2_path=img2_path,\n            model_name=model_name,\n            detector_backend=detector_backend,\n            distance_metric=distance_metric,\n            align=align,\n            enforce_detection=enforce_detection,\n            anti_spoofing=anti_spoofing,\n        )\n        return obj, 200\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while verifying: {str(err)} - {tb_str}\"}, 400\n\n\ndef analyze(\n    img_path: Union[str, NDArray[Any]],\n    actions: List[str],\n    detector_backend: str,\n    enforce_detection: bool,\n    align: bool,\n    anti_spoofing: bool,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        result = {}\n        demographies = DeepFace.analyze(\n            img_path=img_path,\n            actions=actions,\n            detector_backend=detector_backend,\n            enforce_detection=enforce_detection,\n            align=align,\n            silent=True,\n            anti_spoofing=anti_spoofing,\n        )\n        result[\"results\"] = demographies\n        return result, 200\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while analyzing: {str(err)} - {tb_str}\"}, 400\n\n\ndef register(\n    img: Union[str, NDArray[Any]],\n    model_name: str,\n    detector_backend: str,\n    enforce_detection: bool,\n    align: bool,\n    l2_normalize: bool,\n    expand_percentage: int,\n    normalization: str,\n    anti_spoofing: bool,\n    img_name: Optional[str],\n    database_type: str,\n    connection_details: str,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        return (\n            DeepFace.register(\n                img=img,\n                img_name=img_name,\n                model_name=model_name,\n                detector_backend=detector_backend,\n                enforce_detection=enforce_detection,\n                align=align,\n                l2_normalize=l2_normalize,\n                expand_percentage=expand_percentage,\n                normalization=normalization,\n                anti_spoofing=anti_spoofing,\n                database_type=database_type,\n                connection_details=connection_details,\n            ),\n            200,\n        )\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while registering: {str(err)} - {tb_str}\"}, 400\n\n\ndef search(\n    img: Union[str, NDArray[Any]],\n    model_name: str,\n    detector_backend: str,\n    distance_metric: str,\n    enforce_detection: bool,\n    align: bool,\n    l2_normalize: bool,\n    expand_percentage: int,\n    normalization: str,\n    anti_spoofing: bool,\n    similarity_search: bool,\n    k: Optional[int],\n    database_type: str,\n    connection_details: str,\n    search_method: str,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        result = {}\n        dfs = DeepFace.search(\n            img=img,\n            model_name=model_name,\n            detector_backend=detector_backend,\n            distance_metric=distance_metric,\n            enforce_detection=enforce_detection,\n            align=align,\n            l2_normalize=l2_normalize,\n            expand_percentage=expand_percentage,\n            normalization=normalization,\n            anti_spoofing=anti_spoofing,\n            similarity_search=similarity_search,\n            k=k,\n            database_type=database_type,\n            connection_details=connection_details,\n            search_method=search_method,\n        )\n\n        result[\"results\"] = [df.to_dict(orient=\"records\") for df in dfs]\n        return result, 200\n\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while searching: {str(err)} - {tb_str}\"}, 400\n\n\ndef build_index(\n    model_name: str,\n    detector_backend: str,\n    align: bool,\n    l2_normalize: bool,\n    database_type: str,\n    connection_details: str,\n) -> Tuple[Dict[str, Any], int]:\n    try:\n        DeepFace.build_index(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            align=align,\n            l2_normalize=l2_normalize,\n            database_type=database_type,\n            connection_details=connection_details,\n        )\n        return {\"message\": \"Index built successfully\"}, 200\n    except Exception as err:\n        tb_str = traceback.format_exc()\n        logger.error(str(err))\n        logger.error(tb_str)\n        return {\"error\": f\"Exception while building index: {str(err)} - {tb_str}\"}, 400\n"
  },
  {
    "path": "deepface/commons/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/commons/constant.py",
    "content": "import os\n\nSRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\nROOT_DIR = os.path.dirname(SRC_DIR)\n"
  },
  {
    "path": "deepface/commons/embed_utils.py",
    "content": "from typing import List, Union\n\n\ndef is_flat_embedding(x: Union[List[float], List[List[float]]]) -> bool:\n    \"\"\"\n    Check if the embeddings represent a single flat list of floats\n        rather than a list of list of float.\n    Args:\n        x (List[float] or List[List[float]]): Embeddings to check.\n    Returns:\n        bool: True if x is a flat list of floats, False otherwise.\n    \"\"\"\n    return isinstance(x, list) and all(isinstance(i, (int, float)) for i in x)\n"
  },
  {
    "path": "deepface/commons/folder_utils.py",
    "content": "import os\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef initialize_folder() -> None:\n    \"\"\"\n    Initialize the folder for storing model weights.\n\n    Raises:\n        OSError: if the folder cannot be created.\n    \"\"\"\n    home = get_deepface_home()\n    deepface_home_path = os.path.join(home, \".deepface\")\n    weights_path = os.path.join(deepface_home_path, \"weights\")\n\n    if not os.path.exists(deepface_home_path):\n        os.makedirs(deepface_home_path, exist_ok=True)\n        logger.info(f\"Directory {deepface_home_path} has been created\")\n\n    if not os.path.exists(weights_path):\n        os.makedirs(weights_path, exist_ok=True)\n        logger.info(f\"Directory {weights_path} has been created\")\n\n\ndef get_deepface_home() -> str:\n    \"\"\"\n    Get the home directory for storing model weights\n\n    Returns:\n        str: the home directory.\n    \"\"\"\n    return str(os.getenv(\"DEEPFACE_HOME\", default=os.path.expanduser(\"~\")))\n"
  },
  {
    "path": "deepface/commons/image_utils.py",
    "content": "# built-in dependencies\nimport os\nimport io\nfrom typing import Generator, IO, List, Union, Tuple, cast, Any\nimport hashlib\nimport base64\nfrom pathlib import Path\n\n# 3rd party dependencies\nimport requests  # type: ignore[import-untyped]\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2\nfrom PIL import Image\nfrom werkzeug.datastructures import FileStorage\n\n# project dependencies\nfrom deepface.modules.exceptions import ImgNotFound, DataTypeError\n\n\nIMAGE_EXTS = {\".jpg\", \".jpeg\", \".png\"}\nPIL_EXTS = {\"jpeg\", \"png\"}\n\n\ndef list_images(path: str) -> List[str]:\n    \"\"\"\n    List images in a given path\n    Args:\n        path (str): path's location\n    Returns:\n        images (list): list of exact image paths\n    \"\"\"\n    images = []\n    for r, _, f in os.walk(path):\n        for file in f:\n            if os.path.splitext(file)[1].lower() in IMAGE_EXTS:\n                exact_path = os.path.join(r, file)\n                with Image.open(exact_path) as img:  # lazy\n                    if img.format.lower() in PIL_EXTS:\n                        images.append(exact_path)\n    return images\n\n\ndef yield_images(path: str) -> Generator[str, None, None]:\n    \"\"\"\n    Yield images in a given path\n    Args:\n        path (str): path's location\n    Yields:\n        image (str): image path\n    \"\"\"\n    for r, _, f in os.walk(path):\n        for file in f:\n            if os.path.splitext(file)[1].lower() in IMAGE_EXTS:\n                exact_path = os.path.join(r, file)\n                with Image.open(exact_path) as img:  # lazy\n                    if img.format.lower() in PIL_EXTS:\n                        yield exact_path\n\n\ndef find_image_hash(file_path: str) -> str:\n    \"\"\"\n    Find the hash of given image file with its properties\n        finding the hash of image content is costly operation\n    Args:\n        file_path (str): exact image path\n    Returns:\n        hash (str): digest with sha1 algorithm\n    \"\"\"\n    file_stats = os.stat(file_path)\n\n    # some properties\n    file_size = file_stats.st_size\n    creation_time = file_stats.st_ctime\n    modification_time = file_stats.st_mtime\n\n    properties = f\"{file_size}-{creation_time}-{modification_time}\"\n\n    hasher = hashlib.sha1()\n    hasher.update(properties.encode(\"utf-8\"))\n    return hasher.hexdigest()\n\n\ndef load_image(\n    img: Union[str, NDArray[Any], IO[bytes]],\n) -> Tuple[NDArray[Any], str]:\n    \"\"\"\n    Load image from path, url, file object, base64 or numpy array.\n    Args:\n        img: a path, url, file object, base64 or numpy array.\n    Returns:\n        image (numpy array): the loaded image in BGR format\n        image name (str): image name itself\n    \"\"\"\n\n    # The image is already a numpy array\n    if isinstance(img, np.ndarray):\n        return img, \"numpy array\"\n\n    # The image is an object that supports `.read`\n    if hasattr(img, \"read\") and callable(img.read):\n        if isinstance(img, io.StringIO):\n            raise DataTypeError(\"img requires bytes and cannot be an io.StringIO object.\")\n        return load_image_from_io_object(cast(IO[bytes], img)), \"io object\"\n\n    if isinstance(img, Path):\n        img = str(img)\n\n    if not isinstance(img, str):\n        raise DataTypeError(f\"img must be numpy array or str but it is {type(img)}\")\n\n    # The image is a base64 string\n    if img.startswith(\"data:image/\"):\n        return load_image_from_base64(img), \"base64 encoded string\"\n\n    # The image is a url\n    if img.lower().startswith((\"http://\", \"https://\")):\n        return load_image_from_web(url=img), img\n\n    # The image is a path\n    if not os.path.isfile(img):\n        raise ImgNotFound(f\"Confirm that {img} exists\")\n\n    # image must be a file on the system then\n\n    # image name must have english characters\n    if not img.isascii():\n        raise ValueError(f\"Input image must not have non-english characters - {img}\")\n\n    img_obj_bgr = cv2.imread(img)\n    # img_obj_rgb = cv2.cvtColor(img_obj_bgr, cv2.COLOR_BGR2RGB)\n    return cast(NDArray[Any], img_obj_bgr), img\n\n\ndef load_image_from_io_object(obj: IO[bytes]) -> NDArray[Any]:\n    \"\"\"\n    Load image from an object that supports being read\n    Args:\n        obj: a file like object.\n    Returns:\n        img (np.ndarray): The decoded image as a numpy array (OpenCV format).\n    \"\"\"\n    try:\n        _ = obj.seek(0)\n    except (AttributeError, TypeError, io.UnsupportedOperation):\n        seekable = False\n        obj = io.BytesIO(obj.read())\n    else:\n        seekable = True\n    try:\n        nparr = np.frombuffer(obj.read(), np.uint8)\n        img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)\n        if img is None:\n            raise ValueError(\"Failed to decode image\")\n        return img\n    finally:\n        if not seekable:\n            obj.close()\n\n\ndef load_image_from_base64(uri: str) -> NDArray[Any]:\n    \"\"\"\n    Load image from base64 string.\n    Args:\n        uri: a base64 string.\n    Returns:\n        numpy array: the loaded image.\n    \"\"\"\n\n    encoded_data_parts = uri.split(\",\")\n\n    if len(encoded_data_parts) < 2:\n        raise ValueError(\"format error in base64 encoded string\")\n\n    encoded_data = encoded_data_parts[1]\n    decoded_bytes = base64.b64decode(encoded_data)\n\n    # similar to find functionality, we are just considering these extensions\n    # content type is safer option than file extension\n    with Image.open(io.BytesIO(decoded_bytes)) as img:\n        file_type = img.format.lower()\n        if file_type not in {\"jpeg\", \"png\"}:\n            raise DataTypeError(f\"Input image can be jpg or png, but it is {file_type}\")\n\n    nparr = np.frombuffer(decoded_bytes, np.uint8)\n    img_bgr = cv2.imdecode(nparr, cv2.IMREAD_COLOR)\n    # img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)\n    return cast(NDArray[Any], img_bgr)\n\n\ndef load_image_from_file_storage(file: FileStorage) -> NDArray[Any]:\n    \"\"\"\n    Loads an image from a FileStorage object and decodes it into an OpenCV image.\n    Args:\n        file (FileStorage): The FileStorage object containing the image file.\n    Returns:\n        img (np.ndarray): The decoded image as a numpy array (OpenCV format).\n    \"\"\"\n    file_bytes = np.frombuffer(file.read(), np.uint8)\n    image = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)\n    if image is None:\n        raise ValueError(\"Failed to decode image\")\n    return image\n\n\ndef load_image_from_web(url: str) -> NDArray[Any]:\n    \"\"\"\n    Loading an image from web\n    Args:\n        url: link for the image\n    Returns:\n        img (np.ndarray): equivalent to pre-loaded image from opencv (BGR format)\n    \"\"\"\n    response = requests.get(url, stream=True, timeout=60)\n    response.raise_for_status()\n    image_array = np.asarray(bytearray(response.raw.read()), dtype=np.uint8)\n    img = cv2.imdecode(image_array, cv2.IMREAD_COLOR)\n    return cast(NDArray[Any], img)\n"
  },
  {
    "path": "deepface/commons/logger.py",
    "content": "import os\nfrom typing import Any\nimport logging\nfrom datetime import datetime\n\n\n# pylint: disable=broad-except\nclass Logger:\n    \"\"\"\n    A Logger class for logging messages with a specific log level.\n\n    The class follows the singleton design pattern, ensuring that only one\n    instance of the Logger is created. The parameters of the first instance\n    are preserved across all instances.\n    \"\"\"\n\n    __instance = None\n\n    def __new__(cls) -> \"Logger\":\n        if cls.__instance is None:\n            cls.__instance = super(Logger, cls).__new__(cls)\n        return cls.__instance\n\n    def __init__(self) -> None:\n        if not hasattr(self, \"_singleton_initialized\"):\n            self._singleton_initialized = True  # to prevent multiple initializations\n            log_level = os.environ.get(\"DEEPFACE_LOG_LEVEL\", str(logging.INFO))\n            try:\n                self.log_level = int(log_level)\n            except Exception as err:\n                self.dump_log(\n                    f\"Exception while parsing $DEEPFACE_LOG_LEVEL.\"\n                    f\"Expected int but it is {log_level} ({str(err)}).\"\n                    \"Setting app log level to info.\"\n                )\n                self.log_level = logging.INFO\n\n    def info(self, message: Any) -> None:\n        \"\"\"\n        Logs an info message if the log level is set to INFO or lower.\n        Args:\n            message: The message to log.\n        \"\"\"\n        if self.log_level <= logging.INFO:\n            self.dump_log(f\"{message}\")\n\n    def debug(self, message: Any) -> None:\n        \"\"\"\n        Logs a debug message if the log level is set to DEBUG or lower.\n        Args:\n            message: The message to log.\n        \"\"\"\n        if self.log_level <= logging.DEBUG:\n            self.dump_log(f\"🕷️ {message}\")\n\n    def warn(self, message: Any) -> None:\n        \"\"\"\n        Logs a warning message if the log level is set to WARNING or lower.\n        Args:\n            message: The message to log.\n        \"\"\"\n        if self.log_level <= logging.WARNING:\n            self.dump_log(f\"⚠️ {message}\")\n\n    def error(self, message: Any) -> None:\n        \"\"\"\n        Logs an error message if the log level is set to ERROR or lower.\n        Args:\n            message: The message to log.\n        \"\"\"\n        if self.log_level <= logging.ERROR:\n            self.dump_log(f\"🔴 {message}\")\n\n    def critical(self, message: Any) -> None:\n        \"\"\"\n        Logs a critical message if the log level is set to CRITICAL or lower.\n        Args:\n            message: The message to log.\n        \"\"\"\n        if self.log_level <= logging.CRITICAL:\n            self.dump_log(f\"💥 {message}\")\n\n    def dump_log(self, message: Any) -> None:\n        \"\"\"\n        Dumps the log message to the console.\n        Args:\n            message: The message to log.\n        \"\"\"\n        print(f\"{str(datetime.now())[2:-7]} - {message}\")\n"
  },
  {
    "path": "deepface/commons/package_utils.py",
    "content": "# built-in dependencies\nimport hashlib\n\n# 3rd party dependencies\nimport tensorflow as tf\n\n# package dependencies\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef get_tf_major_version() -> int:\n    \"\"\"\n    Find tensorflow's major version\n    Returns\n        major_version (int)\n    \"\"\"\n    return int(tf.__version__.split(\".\", maxsplit=1)[0])\n\n\ndef get_tf_minor_version() -> int:\n    \"\"\"\n    Find tensorflow's minor version\n    Returns\n        minor_version (int)\n    \"\"\"\n    return int(tf.__version__.split(\".\", maxsplit=-1)[1])\n\n\ndef validate_for_keras3() -> None:\n    tf_major = get_tf_major_version()\n    tf_minor = get_tf_minor_version()\n\n    # tf_keras is a must dependency after tf 2.16\n    if tf_major == 1 or (tf_major == 2 and tf_minor < 16):\n        return\n\n    try:\n        import tf_keras\n\n        logger.debug(f\"tf_keras is already available - {tf_keras.__version__}\")\n    except ImportError as err:\n        # you may consider to install that package here\n        raise ValueError(\n            f\"You have tensorflow {tf.__version__} and this requires \"\n            \"tf-keras package. Please run `pip install tf-keras` \"\n            \"or downgrade your tensorflow.\"\n        ) from err\n\n\ndef find_file_hash(file_path: str, hash_algorithm: str = \"sha256\") -> str:\n    \"\"\"\n    Find the hash of a given file with its content\n    Args:\n        file_path (str): exact path of a given file\n        hash_algorithm (str): hash algorithm\n    Returns:\n        hash (str)\n    \"\"\"\n    hash_func = hashlib.new(hash_algorithm)\n    with open(file_path, \"rb\") as f:\n        while chunk := f.read(8192):\n            hash_func.update(chunk)\n    return hash_func.hexdigest()\n"
  },
  {
    "path": "deepface/commons/weight_utils.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import Optional\nimport zipfile\nimport bz2\n\n# 3rd party dependencies\nimport gdown\n\n# project dependencies\nfrom deepface.commons import folder_utils, package_utils\nfrom deepface.commons.logger import Logger\nfrom deepface.modules.exceptions import UnimplementedError\n\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 1:\n    from keras.models import Sequential\nelse:\n    from tensorflow.keras.models import Sequential\n\nlogger = Logger()\n\n# pylint: disable=line-too-long, use-maxsplit-arg\n\nALLOWED_COMPRESS_TYPES = [\"zip\", \"bz2\"]\n\n\ndef download_weights_if_necessary(\n    file_name: str, source_url: str, compress_type: Optional[str] = None\n) -> str:\n    \"\"\"\n    Download the weights of a pre-trained model from external source if not downloaded yet.\n    Args:\n        file_name (str): target file name with extension\n        source_url (url): source url to be downloaded\n        compress_type (optional str): compress type e.g. zip or bz2\n    Returns\n        target_file (str): exact path for the target file\n    \"\"\"\n    home = folder_utils.get_deepface_home()\n\n    target_file = os.path.normpath(os.path.join(home, \".deepface/weights\", file_name))\n\n    if os.path.isfile(target_file):\n        logger.debug(f\"{file_name} is already available at {target_file}\")\n        return target_file\n\n    if compress_type is not None and compress_type not in ALLOWED_COMPRESS_TYPES:\n        raise UnimplementedError(f\"unimplemented compress type - {compress_type}\")\n\n    try:\n        logger.info(f\"🔗 {file_name} will be downloaded from {source_url} to {target_file}...\")\n\n        if compress_type is None:\n            gdown.download(source_url, target_file, quiet=False)\n        elif compress_type is not None and compress_type in ALLOWED_COMPRESS_TYPES:\n            gdown.download(source_url, f\"{target_file}.{compress_type}\", quiet=False)\n\n    except Exception as err:\n        raise ValueError(\n            f\"⛓️‍💥 An exception occurred while downloading {file_name} from {source_url}. \"\n            f\"Consider downloading it manually to {target_file}.\"\n        ) from err\n\n    # uncompress downloaded file\n    if compress_type == \"zip\":\n        with zipfile.ZipFile(f\"{target_file}.zip\", \"r\") as zip_ref:\n            zip_ref.extractall(os.path.join(home, \".deepface/weights\"))\n            logger.info(f\"{target_file}.zip unzipped\")\n    elif compress_type == \"bz2\":\n        bz2file = bz2.BZ2File(f\"{target_file}.bz2\")\n        data = bz2file.read()\n        with open(target_file, \"wb\") as f:\n            f.write(data)\n        logger.info(f\"{target_file}.bz2 unzipped\")\n\n    return target_file\n\n\ndef load_model_weights(model: Sequential, weight_file: str) -> Sequential:\n    \"\"\"\n    Load pre-trained weights for a given model\n    Args:\n        model (keras.models.Sequential): pre-built model\n        weight_file (str): exact path of pre-trained weights\n    Returns:\n        model (keras.models.Sequential): pre-built model with\n            updated weights\n    \"\"\"\n    try:\n        model.load_weights(weight_file)\n    except Exception as err:\n        raise ValueError(\n            f\"An exception occurred while loading the pre-trained weights from {weight_file}.\"\n            \"This might have happened due to an interruption during the download.\"\n            \"You may want to delete it and allow DeepFace to download it again during the next run.\"\n            \"If the issue persists, consider downloading the file directly from the source \"\n            \"and copying it to the target folder.\"\n        ) from err\n    return model\n\n\ndef download_all_models_in_one_shot() -> None:\n    \"\"\"\n    Download all model weights in one shot\n    \"\"\"\n\n    # import model weights from module here to avoid circular import issue\n    from deepface.models.facial_recognition.VGGFace import WEIGHTS_URL as VGGFACE_WEIGHTS\n    from deepface.models.facial_recognition.Facenet import FACENET128_WEIGHTS, FACENET512_WEIGHTS\n    from deepface.models.facial_recognition.OpenFace import WEIGHTS_URL as OPENFACE_WEIGHTS\n    from deepface.models.facial_recognition.FbDeepFace import WEIGHTS_URL as FBDEEPFACE_WEIGHTS\n    from deepface.models.facial_recognition.ArcFace import WEIGHTS_URL as ARCFACE_WEIGHTS\n    from deepface.models.facial_recognition.DeepID import WEIGHTS_URL as DEEPID_WEIGHTS\n    from deepface.models.facial_recognition.SFace import WEIGHTS_URL as SFACE_WEIGHTS\n    from deepface.models.facial_recognition.GhostFaceNet import WEIGHTS_URL as GHOSTFACENET_WEIGHTS\n    from deepface.models.facial_recognition.Dlib import WEIGHT_URL as DLIB_FR_WEIGHTS\n    from deepface.models.demography.Age import WEIGHTS_URL as AGE_WEIGHTS\n    from deepface.models.demography.Gender import WEIGHTS_URL as GENDER_WEIGHTS\n    from deepface.models.demography.Race import WEIGHTS_URL as RACE_WEIGHTS\n    from deepface.models.demography.Emotion import WEIGHTS_URL as EMOTION_WEIGHTS\n    from deepface.models.spoofing.FasNet import (\n        FIRST_WEIGHTS_URL as FASNET_1ST_WEIGHTS,\n        SECOND_WEIGHTS_URL as FASNET_2ND_WEIGHTS,\n    )\n    from deepface.models.face_detection.Ssd import (\n        MODEL_URL as SSD_MODEL,\n        WEIGHTS_URL as SSD_WEIGHTS,\n    )\n    from deepface.models.face_detection.Yolo import YoloModel\n    from deepface.models.face_detection.YuNet import WEIGHTS_URL as YUNET_WEIGHTS\n    from deepface.models.face_detection.Dlib import WEIGHTS_URL as DLIB_FD_WEIGHTS\n    from deepface.models.face_detection.CenterFace import WEIGHTS_URL as CENTERFACE_WEIGHTS\n\n    WEIGHTS = [\n        # facial recognition\n        VGGFACE_WEIGHTS,\n        FACENET128_WEIGHTS,\n        FACENET512_WEIGHTS,\n        OPENFACE_WEIGHTS,\n        FBDEEPFACE_WEIGHTS,\n        ARCFACE_WEIGHTS,\n        DEEPID_WEIGHTS,\n        SFACE_WEIGHTS,\n        {\n            \"filename\": \"ghostfacenet_v1.h5\",\n            \"url\": GHOSTFACENET_WEIGHTS,\n        },\n        DLIB_FR_WEIGHTS,\n        # demography\n        AGE_WEIGHTS,\n        GENDER_WEIGHTS,\n        RACE_WEIGHTS,\n        EMOTION_WEIGHTS,\n        # spoofing\n        FASNET_1ST_WEIGHTS,\n        FASNET_2ND_WEIGHTS,\n        # face detection\n        SSD_MODEL,\n        SSD_WEIGHTS,\n        {\n            \"filename\": YoloModel.V8N.value[0],\n            \"url\": YoloModel.V8N.value[1],\n        },\n        {\n            \"filename\": YoloModel.V8M.value[0],\n            \"url\": YoloModel.V8M.value[1],\n        },\n        {\n            \"filename\": YoloModel.V8L.value[0],\n            \"url\": YoloModel.V8L.value[1],\n        },\n        {\n            \"filename\": YoloModel.V11N.value[0],\n            \"url\": YoloModel.V11N.value[1],\n        },\n        {\n            \"filename\": YoloModel.V11S.value[0],\n            \"url\": YoloModel.V11S.value[1],\n        },\n        {\n            \"filename\": YoloModel.V11M.value[0],\n            \"url\": YoloModel.V11M.value[1],\n        },\n        {\n            \"filename\": YoloModel.V11L.value[0],\n            \"url\": YoloModel.V11L.value[1],\n        },\n        {\n            \"filename\": YoloModel.V12N.value[0],\n            \"url\": YoloModel.V12N.value[1],\n        },\n        {\n            \"filename\": YoloModel.V12S.value[0],\n            \"url\": YoloModel.V12S.value[1],\n        },\n        {\n            \"filename\": YoloModel.V12M.value[0],\n            \"url\": YoloModel.V12M.value[1],\n        },\n        {\n            \"filename\": YoloModel.V12L.value[0],\n            \"url\": YoloModel.V12L.value[1],\n        },\n        YUNET_WEIGHTS,\n        DLIB_FD_WEIGHTS,\n        CENTERFACE_WEIGHTS,\n    ]\n\n    for i in WEIGHTS:\n        if isinstance(i, str):\n            url = i\n            filename = i.split(\"/\")[-1]\n            compress_type = None\n            # if compressed file will be downloaded, get rid of its extension\n            if filename.endswith(tuple(ALLOWED_COMPRESS_TYPES)):\n                for ext in ALLOWED_COMPRESS_TYPES:\n                    compress_type = ext\n                    if filename.endswith(f\".{ext}\"):\n                        filename = filename[: -(len(ext) + 1)]\n                        break\n        elif isinstance(i, dict):\n            filename = i[\"filename\"]\n            url = i[\"url\"]\n        else:\n            raise UnimplementedError(\"unimplemented scenario\")\n        logger.info(\n            f\"Downloading {url} to ~/.deepface/weights/{filename} with {compress_type} compression\"\n        )\n        download_weights_if_necessary(\n            file_name=filename, source_url=url, compress_type=compress_type\n        )\n"
  },
  {
    "path": "deepface/config/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/config/confidence.py",
    "content": "confidences = {\n    \"VGG-Face\": {\n        \"cosine\": {\n            \"w\": -6.61254026479904,\n            \"b\": 3.145549102667549,\n            \"normalizer\": 0.979183,\n            \"denorm_max_true\": 88.28484099529868,\n            \"denorm_min_true\": 20.787978733113846,\n            \"denorm_max_false\": 20.556681914175016,\n            \"denorm_min_false\": 3.457832575746455,\n        },\n        \"euclidean\": {\n            \"w\": -6.505124425537925,\n            \"b\": 3.8912125488666436,\n            \"normalizer\": 1.399416,\n            \"denorm_max_true\": 76.47012030708339,\n            \"denorm_min_true\": 17.794898757517597,\n            \"denorm_max_false\": 16.443735520230746,\n            \"denorm_min_false\": 6.82484246933999,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.505124425537925,\n            \"b\": 3.8912125488666436,\n            \"normalizer\": 1.399416,\n            \"denorm_max_true\": 76.47012030708339,\n            \"denorm_min_true\": 17.794898757517597,\n            \"denorm_max_false\": 16.443735520230746,\n            \"denorm_min_false\": 6.82484246933999,\n        },\n        \"angular\": {\n            \"w\": -5.035753663256314,\n            \"b\": 0.2961597285248822,\n            \"normalizer\": 0.493373,\n            \"denorm_max_true\": 34.230717614698825,\n            \"denorm_min_true\": 16.624506551373642,\n            \"denorm_max_false\": 15.49607745347531,\n            \"denorm_min_false\": 10.080199045102233,\n        },\n    },\n    \"Facenet\": {\n        \"cosine\": {\n            \"w\": -6.502269165856082,\n            \"b\": 1.679048923097668,\n            \"normalizer\": 1.206694,\n            \"denorm_max_true\": 77.17253153662926,\n            \"denorm_min_true\": 41.790002608273234,\n            \"denorm_max_false\": 20.618350202170916,\n            \"denorm_min_false\": 0.7976712344840693,\n        },\n        \"euclidean\": {\n            \"w\": -6.716177467853723,\n            \"b\": 2.790978346203265,\n            \"normalizer\": 18.735288,\n            \"denorm_max_true\": 74.76412617567517,\n            \"denorm_min_true\": 40.4423755909089,\n            \"denorm_max_false\": 25.840858374979504,\n            \"denorm_min_false\": 1.9356150486888306,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.708710331202137,\n            \"b\": 2.9094193067398195,\n            \"normalizer\": 1.553508,\n            \"denorm_max_true\": 75.45756719896039,\n            \"denorm_min_true\": 40.4509428022908,\n            \"denorm_max_false\": 30.555931000001184,\n            \"denorm_min_false\": 2.189644991619842,\n        },\n        \"angular\": {\n            \"w\": -6.371147050396505,\n            \"b\": 0.6766460615182355,\n            \"normalizer\": 0.56627,\n            \"denorm_max_true\": 45.802357900723386,\n            \"denorm_min_true\": 24.327312950719133,\n            \"denorm_max_false\": 16.95267765757785,\n            \"denorm_min_false\": 5.063533287198758,\n        },\n    },\n    \"Facenet512\": {\n        \"cosine\": {\n            \"w\": -5.868251768046832,\n            \"b\": 0.8674084834913275,\n            \"normalizer\": 1.384316,\n            \"denorm_max_true\": 62.19495119465813,\n            \"denorm_min_true\": 40.700922463435305,\n            \"denorm_max_false\": 39.96947059787277,\n            \"denorm_min_false\": 0.6687247052303562,\n        },\n        \"euclidean\": {\n            \"w\": -6.742961485008033,\n            \"b\": 2.61949356815704,\n            \"normalizer\": 40.771751,\n            \"denorm_max_true\": 75.20184708761875,\n            \"denorm_min_true\": 23.391566956420913,\n            \"denorm_max_false\": 20.317410180868695,\n            \"denorm_min_false\": 1.5930391784587872,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.76040230078399,\n            \"b\": 3.0057651791652638,\n            \"normalizer\": 1.663921,\n            \"denorm_max_true\": 78.73795056941638,\n            \"denorm_min_true\": 23.492800781101295,\n            \"denorm_max_false\": 21.754795621979017,\n            \"denorm_min_false\": 2.287349921316484,\n        },\n        \"angular\": {\n            \"w\": -6.487840122876141,\n            \"b\": 0.9536496647058516,\n            \"normalizer\": 0.625563,\n            \"denorm_max_true\": 52.1215977454314,\n            \"denorm_min_true\": 21.72372703119752,\n            \"denorm_max_false\": 20.734638325222512,\n            \"denorm_min_false\": 4.290546073131373,\n        },\n    },\n    \"ArcFace\": {\n        \"cosine\": {\n            \"w\": -6.586150423868342,\n            \"b\": 2.2617127737265186,\n            \"normalizer\": 1.22267,\n            \"denorm_max_true\": 82.32544721731948,\n            \"denorm_min_true\": 28.687745855666044,\n            \"denorm_max_false\": 17.210359124614925,\n            \"denorm_min_false\": 1.306796127659645,\n        },\n        \"euclidean\": {\n            \"w\": -5.370594347027345,\n            \"b\": 0.6896763568574544,\n            \"normalizer\": 10.401334,\n            \"denorm_max_true\": 43.042326442916284,\n            \"denorm_min_true\": 19.048164749978937,\n            \"denorm_max_false\": 18.682892152590245,\n            \"denorm_min_false\": 0.9185346995033978,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.541948874098929,\n            \"b\": 3.2628963901283585,\n            \"normalizer\": 1.563758,\n            \"denorm_max_true\": 74.93505228104696,\n            \"denorm_min_true\": 21.800168694491585,\n            \"denorm_max_false\": 15.091078907730523,\n            \"denorm_min_false\": 3.6296845343803894,\n        },\n        \"angular\": {\n            \"w\": -5.63344888288512,\n            \"b\": 0.5682159222314143,\n            \"normalizer\": 0.571477,\n            \"denorm_max_true\": 40.81365081792457,\n            \"denorm_min_true\": 18.409621072962818,\n            \"denorm_max_false\": 15.13985487535995,\n            \"denorm_min_false\": 6.59169002231532,\n        },\n    },\n    \"GhostFaceNet\": {\n        \"cosine\": {\n            \"w\": -6.595823624282929,\n            \"b\": 2.4180964556128584,\n            \"normalizer\": 1.155661,\n            \"denorm_max_true\": 84.65757505749636,\n            \"denorm_min_true\": 22.700531204915876,\n            \"denorm_max_false\": 15.08427020899693,\n            \"denorm_min_false\": 1.5101757980158446,\n        },\n        \"euclidean\": {\n            \"w\": -6.506709483088198,\n            \"b\": 2.935230928728856,\n            \"normalizer\": 52.150135,\n            \"denorm_max_true\": 73.09358661728027,\n            \"denorm_min_true\": 24.63718600288871,\n            \"denorm_max_false\": 16.513245368123492,\n            \"denorm_min_false\": 2.7345457334612155,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.572852118241916,\n            \"b\": 3.3068829731570824,\n            \"normalizer\": 1.520303,\n            \"denorm_max_true\": 75.95533899593255,\n            \"denorm_min_true\": 20.08886780040665,\n            \"denorm_max_false\": 17.84278657570624,\n            \"denorm_min_false\": 3.675727926946401,\n        },\n        \"angular\": {\n            \"w\": -5.588606771251277,\n            \"b\": 0.48845693581021543,\n            \"normalizer\": 0.549751,\n            \"denorm_max_true\": 39.92978715270581,\n            \"denorm_min_true\": 16.49081504576138,\n            \"denorm_max_false\": 16.143233933992967,\n            \"denorm_min_false\": 7.018276839135204,\n        },\n    },\n    \"Dlib\": {\n        \"cosine\": {\n            \"w\": -3.7618087798972293,\n            \"b\": -0.6908814404797111,\n            \"normalizer\": 0.200732,\n            \"denorm_max_true\": 32.289077089161594,\n            \"denorm_min_true\": 27.84268789569509,\n            \"denorm_max_false\": 27.803329512485526,\n            \"denorm_min_false\": 19.061842082779275,\n        },\n        \"euclidean\": {\n            \"w\": -7.494007964438609,\n            \"b\": 3.9696154227506937,\n            \"normalizer\": 0.909856,\n            \"denorm_max_true\": 89.6022157357575,\n            \"denorm_min_true\": 37.63548146988899,\n            \"denorm_max_false\": 36.791885490113046,\n            \"denorm_min_false\": 5.474065355413035,\n        },\n        \"euclidean_l2\": {\n            \"w\": -7.104640497107913,\n            \"b\": 2.3288632189212457,\n            \"normalizer\": 0.633612,\n            \"denorm_max_true\": 76.39948218795206,\n            \"denorm_min_true\": 37.84998375132765,\n            \"denorm_max_false\": 36.56103592414769,\n            \"denorm_min_false\": 10.222692344960938,\n        },\n        \"angular\": {\n            \"w\": -3.2116944601651727,\n            \"b\": -0.5970349913114966,\n            \"normalizer\": 0.205221,\n            \"denorm_max_true\": 31.79313619700238,\n            \"denorm_min_true\": 27.2527288169969,\n            \"denorm_max_false\": 27.18852931051015,\n            \"denorm_min_false\": 22.163871613552466,\n        },\n    },\n    \"SFace\": {\n        \"cosine\": {\n            \"w\": -6.531673506288863,\n            \"b\": 2.2217245506456895,\n            \"normalizer\": 1.147363,\n            \"denorm_max_true\": 81.04135659361265,\n            \"denorm_min_true\": 26.26225160110723,\n            \"denorm_max_false\": 23.62218403514688,\n            \"denorm_min_false\": 1.3256149092319998,\n        },\n        \"euclidean\": {\n            \"w\": -5.922412546512467,\n            \"b\": 2.2306552793788903,\n            \"normalizer\": 18.826448,\n            \"denorm_max_true\": 53.59440633088357,\n            \"denorm_min_true\": 24.24534043569188,\n            \"denorm_max_false\": 24.000007447174763,\n            \"denorm_min_false\": 2.4321858952665205,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.561644724339029,\n            \"b\": 3.215600266169891,\n            \"normalizer\": 1.514835,\n            \"denorm_max_true\": 72.39437183443313,\n            \"denorm_min_true\": 22.25500614635702,\n            \"denorm_max_false\": 19.531386697831906,\n            \"denorm_min_false\": 3.4024932531839815,\n        },\n        \"angular\": {\n            \"w\": -5.575609473928204,\n            \"b\": 0.421773496308517,\n            \"normalizer\": 0.547079,\n            \"denorm_max_true\": 37.48563531943993,\n            \"denorm_min_true\": 17.074673595288292,\n            \"denorm_max_false\": 16.40044990637247,\n            \"denorm_min_false\": 6.732498767352633,\n        },\n    },\n    \"OpenFace\": {\n        \"cosine\": {\n            \"w\": -2.932562678842587,\n            \"b\": -2.0582304636838518,\n            \"normalizer\": 0.884469,\n            \"denorm_max_true\": 10.546657497687274,\n            \"denorm_min_true\": 8.832401641007316,\n            \"denorm_max_false\": 8.535900401000742,\n            \"denorm_min_false\": 0.9452381276992784,\n        },\n        \"euclidean\": {\n            \"w\": -5.829345103053105,\n            \"b\": 1.4390680732209533,\n            \"normalizer\": 1.330015,\n            \"denorm_max_true\": 60.28549643159932,\n            \"denorm_min_true\": 27.506182086242408,\n            \"denorm_max_false\": 27.058382251505012,\n            \"denorm_min_false\": 1.2245483461697035,\n        },\n        \"euclidean_l2\": {\n            \"w\": -5.82934526003372,\n            \"b\": 1.4390681633867946,\n            \"normalizer\": 1.330015,\n            \"denorm_max_true\": 60.28549793162577,\n            \"denorm_min_true\": 27.506182591043363,\n            \"denorm_max_false\": 27.058382739158215,\n            \"denorm_min_false\": 1.224548265353685,\n        },\n        \"angular\": {\n            \"w\": -0.5288927551138177,\n            \"b\": -4.450627600247528,\n            \"normalizer\": 0.463143,\n            \"denorm_max_true\": 1.109656206367124,\n            \"denorm_min_true\": 1.0914425266009675,\n            \"denorm_max_false\": 1.0887229955132125,\n            \"denorm_min_false\": 0.9052858972210456,\n        },\n    },\n    \"DeepID\": {\n        \"cosine\": {\n            \"w\": -1.1109389867203003,\n            \"b\": -1.644356005882629,\n            \"normalizer\": 0.142463,\n            \"denorm_max_true\": 16.114369377586183,\n            \"denorm_min_true\": 15.966222060549578,\n            \"denorm_max_false\": 15.96057368926546,\n            \"denorm_min_false\": 14.153198282635255,\n        },\n        \"euclidean\": {\n            \"w\": -4.267900227772648,\n            \"b\": -0.11777629548659044,\n            \"normalizer\": 124.194689,\n            \"denorm_max_true\": 27.2342405984107,\n            \"denorm_min_true\": 16.08201206739819,\n            \"denorm_max_false\": 15.90739039527823,\n            \"denorm_min_false\": 1.230125408063358,\n        },\n        \"euclidean_l2\": {\n            \"w\": -3.6681410379067394,\n            \"b\": -0.9230555193862335,\n            \"normalizer\": 0.533784,\n            \"denorm_max_true\": 21.681829939622233,\n            \"denorm_min_true\": 17.57160935306287,\n            \"denorm_max_false\": 17.548244679217202,\n            \"denorm_min_false\": 5.309829288484883,\n        },\n        \"angular\": {\n            \"w\": -0.2707576106983799,\n            \"b\": -3.87004749575164,\n            \"normalizer\": 0.171993,\n            \"denorm_max_true\": 2.02619851743467,\n            \"denorm_min_true\": 2.0220784432439474,\n            \"denorm_max_false\": 2.021498115793411,\n            \"denorm_min_false\": 1.951974654804089,\n        },\n    },\n    \"DeepFace\": {\n        \"cosine\": {\n            \"w\": -5.415666808301125,\n            \"b\": 1.4142777745857174,\n            \"normalizer\": 0.379428,\n            \"denorm_max_true\": 74.38935817923884,\n            \"denorm_min_true\": 54.25111593547536,\n            \"denorm_max_false\": 54.16884369236297,\n            \"denorm_min_false\": 34.51159270342188,\n        },\n        \"euclidean\": {\n            \"w\": -7.001068623335827,\n            \"b\": 5.229677082777916,\n            \"normalizer\": 85.997482,\n            \"denorm_max_true\": 90.45531547409938,\n            \"denorm_min_true\": 50.79114821321717,\n            \"denorm_max_false\": 50.4218117539695,\n            \"denorm_min_false\": 14.53693626301508,\n        },\n        \"euclidean_l2\": {\n            \"w\": -6.520866920809606,\n            \"b\": 3.750706572243227,\n            \"normalizer\": 0.871123,\n            \"denorm_max_true\": 80.42595166943502,\n            \"denorm_min_true\": 39.6419822387709,\n            \"denorm_max_false\": 39.578029519563,\n            \"denorm_min_false\": 12.677597535252195,\n        },\n        \"angular\": {\n            \"w\": -0.20178503977417342,\n            \"b\": -4.960267621006636,\n            \"normalizer\": 0.2869,\n            \"denorm_max_true\": 0.6803996880922583,\n            \"denorm_min_true\": 0.6801854995078236,\n            \"denorm_max_false\": 0.6759509854967268,\n            \"denorm_min_false\": 0.6573199053945571,\n        },\n    },\n}\n"
  },
  {
    "path": "deepface/config/minmax.py",
    "content": "from typing import Tuple\n\n# these values are determined empirically for each model from unit test items\nminmax_values = {\n    \"VGG-Face\": (0.0, 0.27054874177488775),\n    \"Facenet\": (-3.541942596435547, 3.247769594192505),\n    \"Facenet512\": (-4.388302803039551, 3.643190622329712),\n    \"OpenFace\": (-0.34191709756851196, 0.26318004727363586),\n    \"DeepFace\": (0.0, 17.294939041137695),\n    \"DeepID\": (0.0, 127.86836242675781),\n    \"Dlib\": (-0.41398656368255615, 0.5201137661933899),\n    \"ArcFace\": (-2.945136308670044, 2.087090015411377),\n}\n\n\ndef get_minmax_values(model_name: str) -> Tuple[float, float]:\n    if model_name not in minmax_values:\n        return (0, 0)\n    return minmax_values[model_name]\n"
  },
  {
    "path": "deepface/config/threshold.py",
    "content": "thresholds = {\n    \"VGG-Face\": {\"cosine\": 0.68, \"euclidean\": 1.17, \"euclidean_l2\": 1.17, \"angular\": 0.39},\n    \"Facenet\": {\"cosine\": 0.40, \"euclidean\": 10, \"euclidean_l2\": 0.80, \"angular\": 0.33},\n    \"Facenet512\": {\"cosine\": 0.30, \"euclidean\": 23.56, \"euclidean_l2\": 1.04, \"angular\": 0.35},\n    \"ArcFace\": {\"cosine\": 0.68, \"euclidean\": 4.15, \"euclidean_l2\": 1.13, \"angular\": 0.39},\n    \"Dlib\": {\"cosine\": 0.07, \"euclidean\": 0.6, \"euclidean_l2\": 0.4, \"angular\": 0.12},\n    \"SFace\": {\"cosine\": 0.593, \"euclidean\": 10.734, \"euclidean_l2\": 1.055, \"angular\": 0.36},\n    \"OpenFace\": {\"cosine\": 0.10, \"euclidean\": 0.55, \"euclidean_l2\": 0.55, \"angular\": 0.11},\n    \"DeepFace\": {\"cosine\": 0.23, \"euclidean\": 64, \"euclidean_l2\": 0.64, \"angular\": 0.12},\n    \"DeepID\": {\"cosine\": 0.015, \"euclidean\": 45, \"euclidean_l2\": 0.17, \"angular\": 0.04},\n    \"GhostFaceNet\": {\"cosine\": 0.65, \"euclidean\": 35.71, \"euclidean_l2\": 1.10, \"angular\": 0.38},\n    \"Buffalo_L\": {\"cosine\": 0.55, \"euclidean\": 0.6, \"euclidean_l2\": 1.1, \"angular\": 0.45},\n}\n"
  },
  {
    "path": "deepface/models/Demography.py",
    "content": "# built-in dependencies\nfrom typing import Union, List, Any, cast\nfrom abc import ABC, abstractmethod\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import package_utils\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 1:\n    from keras.models import Model\nelse:\n    from tensorflow.keras.models import Model\n\n# Notice that all facial attribute analysis models must be inherited from this class\n\n\n# pylint: disable=too-few-public-methods\nclass Demography(ABC):\n    model: Model\n    model_name: str\n\n    @abstractmethod\n    def predict(\n        self, img: Union[NDArray[Any], List[NDArray[Any]]]\n    ) -> Union[NDArray[Any], np.float64]:\n        pass\n\n    def _predict_internal(self, img_batch: NDArray[Any]) -> NDArray[Any]:\n        \"\"\"\n        Predict for single image or batched images.\n        This method uses legacy method while receiving single image as input.\n        And switch to batch prediction if receives batched images.\n\n        Args:\n            img_batch:\n                Batch of images as np.ndarray (n, x, y, c)\n                    with n >= 1, x = image width, y = image height, c = channel\n                Or Single image as np.ndarray (1, x, y, c)\n                    with x = image width, y = image height and c = channel\n                The channel dimension will be 1 if input is grayscale. (For emotion model)\n        \"\"\"\n        if not self.model_name:  # Check if called from derived class\n            raise NotImplementedError(\"no model selected\")\n        assert img_batch.ndim == 4, \"expected 4-dimensional tensor input\"\n\n        if img_batch.shape[0] == 1:  # Single image\n            # Predict with legacy method.\n            return cast(NDArray[Any], self.model(img_batch, training=False).numpy()[0, :])\n\n        # Batch of images\n        # Predict with batch prediction\n        return cast(NDArray[Any], self.model.predict_on_batch(img_batch))\n\n    def _preprocess_batch_or_single_input(\n        self, img: Union[NDArray[Any], List[NDArray[Any]]]\n    ) -> NDArray[Any]:\n        \"\"\"\n        Preprocess single or batch of images, return as 4-D numpy array.\n        Args:\n            img: Single image as np.ndarray (224, 224, 3) or\n                 List of images as List[np.ndarray] or\n                 Batch of images as np.ndarray (n, 224, 224, 3)\n        Returns:\n            Four-dimensional numpy array (n, 224, 224, 3)\n        \"\"\"\n        image_batch = np.array(img)\n\n        # Check input dimension\n        if len(image_batch.shape) == 3:\n            # Single image - add batch dimension\n            image_batch = np.expand_dims(image_batch, axis=0)\n        return image_batch\n"
  },
  {
    "path": "deepface/models/Detector.py",
    "content": "# built-in imports\nfrom typing import List, Tuple, Optional, Any\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass\n\n# Third party imports\nfrom numpy.typing import NDArray\n\n# Notice that all facial detector models must be inherited from this class\n\n\n# pylint: disable=unnecessary-pass, too-few-public-methods, too-many-instance-attributes\nclass Detector(ABC):\n    @abstractmethod\n    def detect_faces(self, img: NDArray[Any]) -> List[\"FacialAreaRegion\"]:\n        \"\"\"\n        Interface for detect and align face\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n                where each object contains:\n\n            - facial_area (FacialAreaRegion): The facial area region represented\n                as x, y, w, h, left_eye and right_eye. left eye and right eye are\n                eyes on the left and right respectively with respect to the person\n                instead of observer.\n        \"\"\"\n        pass\n\n\n@dataclass\nclass FacialAreaRegion:\n    \"\"\"\n    Initialize a Face object.\n\n    Args:\n        x (int): The x-coordinate of the top-left corner of the bounding box.\n        y (int): The y-coordinate of the top-left corner of the bounding box.\n        w (int): The width of the bounding box.\n        h (int): The height of the bounding box.\n        left_eye (tuple): The coordinates (x, y) of the left eye with respect to\n            the person instead of observer. Default is None.\n        right_eye (tuple): The coordinates (x, y) of the right eye with respect to\n            the person instead of observer. Default is None.\n        confidence (float, optional): Confidence score associated with the face detection.\n            Default is None.\n    \"\"\"\n\n    x: int\n    y: int\n    w: int\n    h: int\n    left_eye: Optional[Tuple[int, int]] = None\n    right_eye: Optional[Tuple[int, int]] = None\n    confidence: Optional[float] = None\n    nose: Optional[Tuple[int, int]] = None\n    mouth_right: Optional[Tuple[int, int]] = None\n    mouth_left: Optional[Tuple[int, int]] = None\n\n\n@dataclass\nclass DetectedFace:\n    \"\"\"\n    Initialize detected face object.\n\n    Args:\n        img (np.ndarray): detected face image as numpy array\n        facial_area (FacialAreaRegion): detected face's metadata (e.g. bounding box)\n        confidence (float): confidence score for face detection\n    \"\"\"\n\n    img: NDArray[Any]\n    facial_area: FacialAreaRegion\n    confidence: float\n"
  },
  {
    "path": "deepface/models/FacialRecognition.py",
    "content": "# standard library imports\nfrom abc import ABC\nfrom typing import Any, Union, List, Tuple, cast\n\n# third party imports\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project imports\nfrom deepface.commons import package_utils\nfrom deepface.modules.exceptions import InvalidEmbeddingsShapeError\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 2:\n    from tensorflow.keras.models import Model\nelse:\n    from keras.models import Model\n\n# Notice that all facial recognition models must be inherited from this class\n\n\n# pylint: disable=too-few-public-methods\nclass FacialRecognition(ABC):\n    model: Union[Model, Any]\n    model_name: str\n    input_shape: Tuple[int, int]\n    output_shape: int\n\n    def forward(self, img: NDArray[Any]) -> Union[List[float], List[List[float]]]:\n        if not isinstance(self.model, Model):\n            raise ValueError(\n                \"You must overwrite forward method if it is not a keras model,\"\n                f\"but {self.model_name} not overwritten!\"\n            )\n\n        # predict expexts e.g. (1, 224, 224, 3) shaped inputs\n        if img.ndim == 3:\n            img = np.expand_dims(img, axis=0)\n\n        if img.ndim == 4 and img.shape[0] == 1:\n            # model.predict causes memory issue when it is called in a for loop\n            # embedding = model.predict(img, verbose=0)[0].tolist()\n            embeddings = self.model(img, training=False).numpy()\n        elif img.ndim == 4 and img.shape[0] > 1:\n            embeddings = self.model.predict_on_batch(img)\n        else:\n            raise InvalidEmbeddingsShapeError(\n                f\"Input image must be (1, X, X, 3) shaped but it is {img.shape}\"\n            )\n\n        assert isinstance(\n            embeddings, np.ndarray\n        ), f\"Embeddings must be numpy array but it is {type(embeddings)}\"\n\n        if embeddings.shape[0] == 1:\n            return cast(List[float], embeddings[0].tolist())\n        return cast(List[List[float]], embeddings.tolist())\n"
  },
  {
    "path": "deepface/models/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/models/demography/Age.py",
    "content": "# stdlib dependencies\nfrom typing import List, Union, Any, cast\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.facial_recognition import VGGFace\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.Demography import Demography\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# dependency configurations\n\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Model, Sequential\n    from keras.layers import Convolution2D, Flatten, Activation\nelse:\n    from tensorflow.keras.models import Model, Sequential\n    from tensorflow.keras.layers import Convolution2D, Flatten, Activation\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/age_model_weights.h5\"\n)\n\n\n# pylint: disable=too-few-public-methods\nclass ApparentAgeClient(Demography):\n    \"\"\"\n    Age model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"Age\"\n\n    def predict(\n        self, img: Union[NDArray[Any], List[NDArray[Any]]]\n    ) -> Union[np.float64, NDArray[Any]]:\n        \"\"\"\n        Predict apparent age(s) for single or multiple faces\n        Args:\n            img: Single image as np.ndarray (224, 224, 3) or\n                List of images as List[np.ndarray] or\n                Batch of images as np.ndarray (n, 224, 224, 3)\n        Returns:\n            np.ndarray (age_classes,) if single image,\n            np.ndarray (n, age_classes) if batched images.\n        \"\"\"\n        # Preprocessing input image or image list.\n        imgs = self._preprocess_batch_or_single_input(img)\n\n        # Prediction from 3 channels image\n        age_predictions = self._predict_internal(imgs)\n\n        # Calculate apparent ages\n        if len(age_predictions.shape) == 1:  # Single prediction list\n            return find_apparent_age(age_predictions)\n\n        return np.array([find_apparent_age(age_prediction) for age_prediction in age_predictions])\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct age model, download its weights and load\n    Returns:\n        model (Model)\n    \"\"\"\n\n    model = VGGFace.base_model()\n\n    # --------------------------\n\n    classes = 101\n    base_model_output = Sequential()\n    base_model_output = Convolution2D(classes, (1, 1), name=\"predictions\")(model.layers[-4].output)\n    base_model_output = Flatten()(base_model_output)\n    base_model_output = Activation(\"softmax\")(base_model_output)\n\n    # --------------------------\n\n    age_model = Model(inputs=model.inputs, outputs=base_model_output)\n\n    # --------------------------\n\n    # load weights\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"age_model_weights.h5\", source_url=url\n    )\n\n    age_model = weight_utils.load_model_weights(model=age_model, weight_file=weight_file)\n\n    return age_model\n\n\ndef find_apparent_age(age_predictions: NDArray[Any]) -> np.float64:\n    \"\"\"\n    Find apparent age prediction from a given probas of ages\n    Args:\n        age_predictions (age_classes,)\n    Returns:\n        apparent_age (float)\n    \"\"\"\n    assert (\n        len(age_predictions.shape) == 1\n    ), f\"Input should be a list of predictions, not batched. Got shape: {age_predictions.shape}\"\n    output_indexes = np.arange(0, 101)\n    apparent_age = cast(np.float64, np.sum(age_predictions * output_indexes))\n    return apparent_age\n"
  },
  {
    "path": "deepface/models/demography/Emotion.py",
    "content": "# stdlib dependencies\nfrom typing import List, Union, Any\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.Demography import Demography\nfrom deepface.commons.logger import Logger\n\n# dependency configuration\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Sequential\n    from keras.layers import Conv2D, MaxPooling2D, AveragePooling2D, Flatten, Dense, Dropout\nelse:\n    from tensorflow.keras.models import Sequential\n    from tensorflow.keras.layers import (\n        Conv2D,\n        MaxPooling2D,\n        AveragePooling2D,\n        Flatten,\n        Dense,\n        Dropout,\n    )\n\n# Labels for the emotions that can be detected by the model.\nlabels = [\"angry\", \"disgust\", \"fear\", \"happy\", \"sad\", \"surprise\", \"neutral\"]\n\nlogger = Logger()\n\n# pylint: disable=line-too-long, disable=too-few-public-methods\n\nWEIGHTS_URL = \"https://github.com/serengil/deepface_models/releases/download/v1.0/facial_expression_model_weights.h5\"\n\n\nclass EmotionClient(Demography):\n    \"\"\"\n    Emotion model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"Emotion\"\n\n    def _preprocess_image(self, img: NDArray[Any]) -> NDArray[Any]:\n        \"\"\"\n        Preprocess single image for emotion detection\n        Args:\n            img: Input image (224, 224, 3)\n        Returns:\n            Preprocessed grayscale image (48, 48)\n        \"\"\"\n        img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n        img_gray = cv2.resize(img_gray, (48, 48))\n        return img_gray\n\n    def predict(self, img: Union[NDArray[Any], List[NDArray[Any]]]) -> NDArray[Any]:\n        \"\"\"\n        Predict emotion probabilities for single or multiple faces\n        Args:\n            img: Single image as np.ndarray (224, 224, 3) or\n                List of images as List[np.ndarray] or\n                Batch of images as np.ndarray (n, 224, 224, 3)\n        Returns:\n            np.ndarray (n, n_emotions)\n            where n_emotions is the number of emotion categories\n        \"\"\"\n        # Preprocessing input image or image list.\n        imgs = self._preprocess_batch_or_single_input(img)\n\n        processed_imgs = np.expand_dims(\n            np.array([self._preprocess_image(img) for img in imgs]), axis=-1\n        )\n\n        # Prediction\n        predictions = self._predict_internal(processed_imgs)\n\n        return predictions\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Sequential:\n    \"\"\"\n    Consruct emotion model, download and load weights\n    \"\"\"\n\n    num_classes = 7\n\n    model = Sequential()\n\n    # 1st convolution layer\n    model.add(Conv2D(64, (5, 5), activation=\"relu\", input_shape=(48, 48, 1)))\n    model.add(MaxPooling2D(pool_size=(5, 5), strides=(2, 2)))\n\n    # 2nd convolution layer\n    model.add(Conv2D(64, (3, 3), activation=\"relu\"))\n    model.add(Conv2D(64, (3, 3), activation=\"relu\"))\n    model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2)))\n\n    # 3rd convolution layer\n    model.add(Conv2D(128, (3, 3), activation=\"relu\"))\n    model.add(Conv2D(128, (3, 3), activation=\"relu\"))\n    model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2)))\n\n    model.add(Flatten())\n\n    # fully connected neural networks\n    model.add(Dense(1024, activation=\"relu\"))\n    model.add(Dropout(0.2))\n    model.add(Dense(1024, activation=\"relu\"))\n    model.add(Dropout(0.2))\n\n    model.add(Dense(num_classes, activation=\"softmax\"))\n\n    # ----------------------------\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"facial_expression_model_weights.h5\", source_url=url\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    return model\n"
  },
  {
    "path": "deepface/models/demography/Gender.py",
    "content": "# stdlib dependencies\n\nfrom typing import List, Union, Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.facial_recognition import VGGFace\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.Demography import Demography\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# -------------------------------------\n# pylint: disable=line-too-long\n# -------------------------------------\n# dependency configurations\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 1:\n    from keras.models import Model, Sequential\n    from keras.layers import Convolution2D, Flatten, Activation\nelse:\n    from tensorflow.keras.models import Model, Sequential\n    from tensorflow.keras.layers import Convolution2D, Flatten, Activation\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/gender_model_weights.h5\"\n)\n\n# Labels for the genders that can be detected by the model.\nlabels = [\"Woman\", \"Man\"]\n\n\n# pylint: disable=too-few-public-methods\nclass GenderClient(Demography):\n    \"\"\"\n    Gender model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"Gender\"\n\n    def predict(self, img: Union[NDArray[Any], List[NDArray[Any]]]) -> NDArray[Any]:\n        \"\"\"\n        Predict gender probabilities for single or multiple faces\n        Args:\n            img: Single image as np.ndarray (224, 224, 3) or\n                List of images as List[np.ndarray] or\n                Batch of images as np.ndarray (n, 224, 224, 3)\n        Returns:\n            np.ndarray (n, 2)\n        \"\"\"\n        # Preprocessing input image or image list.\n        imgs = self._preprocess_batch_or_single_input(img)\n\n        # Prediction\n        predictions = self._predict_internal(imgs)\n\n        return predictions\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct gender model, download its weights and load\n    Returns:\n        model (Model)\n    \"\"\"\n\n    model = VGGFace.base_model()\n\n    # --------------------------\n\n    classes = 2\n    base_model_output = Sequential()\n    base_model_output = Convolution2D(classes, (1, 1), name=\"predictions\")(model.layers[-4].output)\n    base_model_output = Flatten()(base_model_output)\n    base_model_output = Activation(\"softmax\")(base_model_output)\n\n    # --------------------------\n\n    gender_model = Model(inputs=model.inputs, outputs=base_model_output)\n\n    # --------------------------\n\n    # load weights\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"gender_model_weights.h5\", source_url=url\n    )\n\n    gender_model = weight_utils.load_model_weights(model=gender_model, weight_file=weight_file)\n\n    return gender_model\n"
  },
  {
    "path": "deepface/models/demography/Race.py",
    "content": "# stdlib dependencies\nfrom typing import List, Union, Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.facial_recognition import VGGFace\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.Demography import Demography\nfrom deepface.commons.logger import Logger\n\n# pylint: disable=line-too-long\n\n# dependency configurations\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Model, Sequential\n    from keras.layers import Convolution2D, Flatten, Activation\nelse:\n    from tensorflow.keras.models import Model, Sequential\n    from tensorflow.keras.layers import Convolution2D, Flatten, Activation\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/race_model_single_batch.h5\"\n)\n# Labels for the ethnic phenotypes that can be detected by the model.\nlabels = [\"asian\", \"indian\", \"black\", \"white\", \"middle eastern\", \"latino hispanic\"]\n\nlogger = Logger()\n\n\n# pylint: disable=too-few-public-methods\nclass RaceClient(Demography):\n    \"\"\"\n    Race model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"Race\"\n\n    def predict(self, img: Union[NDArray[Any], List[NDArray[Any]]]) -> NDArray[Any]:\n        \"\"\"\n        Predict race probabilities for single or multiple faces\n        Args:\n            img: Single image as np.ndarray (224, 224, 3) or\n                List of images as List[np.ndarray] or\n                Batch of images as np.ndarray (n, 224, 224, 3)\n        Returns:\n            np.ndarray (n, n_races)\n            where n_races is the number of race categories\n        \"\"\"\n        # Preprocessing input image or image list.\n        imgs = self._preprocess_batch_or_single_input(img)\n\n        # Prediction\n        predictions = self._predict_internal(imgs)\n\n        return predictions\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct race model, download its weights and load\n    \"\"\"\n\n    model = VGGFace.base_model()\n\n    # --------------------------\n\n    classes = 6\n    base_model_output = Sequential()\n    base_model_output = Convolution2D(classes, (1, 1), name=\"predictions\")(model.layers[-4].output)\n    base_model_output = Flatten()(base_model_output)\n    base_model_output = Activation(\"softmax\")(base_model_output)\n\n    # --------------------------\n\n    race_model = Model(inputs=model.inputs, outputs=base_model_output)\n\n    # --------------------------\n\n    # load weights\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"race_model_single_batch.h5\", source_url=url\n    )\n\n    race_model = weight_utils.load_model_weights(model=race_model, weight_file=weight_file)\n\n    return race_model\n"
  },
  {
    "path": "deepface/models/demography/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/models/face_detection/CenterFace.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import List, Any, Tuple\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=c-extension-no-member\n\nWEIGHTS_URL = \"https://github.com/Star-Clouds/CenterFace/raw/master/models/onnx/centerface.onnx\"\n\n\nclass CenterFaceClient(Detector):\n    def __init__(self) -> None:\n        # BUG: model must be flushed for each call\n        # self.model = self.build_model()\n        pass\n\n    def build_model(self) -> \"CenterFace\":\n        \"\"\"\n        Download pre-trained weights of CenterFace model if necessary and load built model\n        \"\"\"\n        weights_path = weight_utils.download_weights_if_necessary(\n            file_name=\"centerface.onnx\", source_url=WEIGHTS_URL\n        )\n\n        return CenterFace(weight_path=weights_path)\n\n    def detect_faces(self, img: NDArray[Any]) -> List[\"FacialAreaRegion\"]:\n        \"\"\"\n        Detect and align face with CenterFace\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp = []\n\n        threshold = float(os.getenv(\"CENTERFACE_THRESHOLD\", \"0.35\"))\n\n        # BUG: model causes problematic results from 2nd call if it is not flushed\n        # detections, landmarks = self.model.forward(\n        #     img, img.shape[0], img.shape[1], threshold=threshold\n        # )\n        detections, landmarks = self.build_model().forward(\n            img, img.shape[0], img.shape[1], threshold=threshold\n        )\n\n        for i, detection in enumerate(detections):\n            boxes, confidence = detection[:4], detection[4]\n\n            x = boxes[0]\n            y = boxes[1]\n            w = boxes[2] - x\n            h = boxes[3] - y\n\n            landmark = landmarks[i]\n\n            right_eye = (int(landmark[0]), int(landmark[1]))\n            left_eye = (int(landmark[2]), int(landmark[3]))\n            # nose = (int(landmark[4]), int(landmark [5]))\n            # mouth_right = (int(landmark[6]), int(landmark [7]))\n            # mouth_left = (int(landmark[8]), int(landmark [9]))\n\n            facial_area = FacialAreaRegion(\n                x=int(x),\n                y=int(y),\n                w=int(w),\n                h=int(h),\n                left_eye=left_eye,\n                right_eye=right_eye,\n                confidence=min(max(0, float(confidence)), 1.0),\n            )\n            resp.append(facial_area)\n\n        return resp\n\n\nclass CenterFace:\n    \"\"\"\n    This class is heavily inspired from\n        github.com/Star-Clouds/CenterFace/blob/master/prj-python/centerface.py\n    \"\"\"\n\n    def __init__(self, weight_path: str) -> None:\n        self.net = cv2.dnn.readNetFromONNX(weight_path)\n        self.img_h_new: int = 0\n        self.img_w_new: int = 0\n        self.scale_h: float = 0\n        self.scale_w: float = 0\n\n    def forward(self, img: NDArray[Any], height: int, width: int, threshold: float = 0.5) -> Any:\n        self.img_h_new, self.img_w_new, self.scale_h, self.scale_w = self.transform(height, width)\n        return self.inference_opencv(img, threshold)\n\n    def inference_opencv(self, img: NDArray[Any], threshold: float) -> Any:\n        blob = cv2.dnn.blobFromImage(\n            img,\n            scalefactor=1.0,\n            size=(self.img_w_new, self.img_h_new),\n            mean=(0, 0, 0),\n            swapRB=True,\n            crop=False,\n        )\n        self.net.setInput(blob)\n        heatmap, scale, offset, lms = self.net.forward([\"537\", \"538\", \"539\", \"540\"])\n        return self.postprocess(heatmap, lms, offset, scale, threshold)\n\n    def transform(self, h: int, w: int) -> Tuple[int, int, float, float]:\n        img_h_new, img_w_new = int(np.ceil(h / 32) * 32), int(np.ceil(w / 32) * 32)\n        scale_h, scale_w = img_h_new / h, img_w_new / w\n        return img_h_new, img_w_new, scale_h, scale_w\n\n    def postprocess(\n        self,\n        heatmap: NDArray[Any],\n        lms: NDArray[Any],\n        offset: NDArray[Any],\n        scale: NDArray[Any],\n        threshold: float,\n    ) -> Any:\n        dets, lms = self.decode(\n            heatmap, scale, offset, lms, (self.img_h_new, self.img_w_new), threshold=threshold\n        )\n        if len(dets) > 0:\n            dets[:, 0:4:2], dets[:, 1:4:2] = (\n                dets[:, 0:4:2] / self.scale_w,\n                dets[:, 1:4:2] / self.scale_h,\n            )\n            lms[:, 0:10:2], lms[:, 1:10:2] = (\n                lms[:, 0:10:2] / self.scale_w,\n                lms[:, 1:10:2] / self.scale_h,\n            )\n        else:\n            dets = np.empty(shape=[0, 5], dtype=np.float32)\n            lms = np.empty(shape=[0, 10], dtype=np.float32)\n        return dets, lms\n\n    def decode(\n        self,\n        heatmap: NDArray[Any],\n        scale: NDArray[Any],\n        offset: NDArray[Any],\n        landmark: NDArray[Any],\n        size: Tuple[int, int],\n        threshold: float = 0.1,\n    ) -> Tuple[NDArray[Any], NDArray[Any]]:\n        heatmap = np.squeeze(heatmap)\n        scale0, scale1 = scale[0, 0, :, :], scale[0, 1, :, :]\n        offset0, offset1 = offset[0, 0, :, :], offset[0, 1, :, :]\n        c0, c1 = np.where(heatmap > threshold)\n        boxes, lms = [], []\n        if len(c0) > 0:\n            # pylint:disable=consider-using-enumerate\n            for i in range(len(c0)):\n                s0, s1 = np.exp(scale0[c0[i], c1[i]]) * 4, np.exp(scale1[c0[i], c1[i]]) * 4\n                o0, o1 = offset0[c0[i], c1[i]], offset1[c0[i], c1[i]]\n                s = heatmap[c0[i], c1[i]]\n                x1, y1 = max(0, (c1[i] + o1 + 0.5) * 4 - s1 / 2), max(\n                    0, (c0[i] + o0 + 0.5) * 4 - s0 / 2\n                )\n                x1, y1 = min(x1, size[1]), min(y1, size[0])\n                boxes.append([x1, y1, min(x1 + s1, size[1]), min(y1 + s0, size[0]), s])\n                lm = []\n                for j in range(5):\n                    lm.append(landmark[0, j * 2 + 1, c0[i], c1[i]] * s1 + x1)\n                    lm.append(landmark[0, j * 2, c0[i], c1[i]] * s0 + y1)\n                lms.append(lm)\n            boxes_np = np.asarray(boxes, dtype=np.float32)\n            keep = self.nms(boxes_np[:, :4], boxes_np[:, 4], 0.3)\n            boxes_np = boxes_np[keep, :]\n            lms_np = np.asarray(lms, dtype=np.float32)\n            lms_np = lms_np[keep, :]\n        return boxes_np, lms_np\n\n    def nms(self, boxes: NDArray[Any], scores: NDArray[Any], nms_thresh: float) -> List[int]:\n        x1 = boxes[:, 0]\n        y1 = boxes[:, 1]\n        x2 = boxes[:, 2]\n        y2 = boxes[:, 3]\n        areas = (x2 - x1 + 1) * (y2 - y1 + 1)\n        order = np.argsort(scores)[::-1]\n        num_detections = boxes.shape[0]\n        suppressed = np.zeros((num_detections,), dtype=bool)\n\n        keep = []\n        for _i in range(num_detections):\n            i = order[_i]\n            if suppressed[i]:\n                continue\n            keep.append(i)\n\n            ix1 = x1[i]\n            iy1 = y1[i]\n            ix2 = x2[i]\n            iy2 = y2[i]\n            iarea = areas[i]\n\n            for _j in range(_i + 1, num_detections):\n                j = order[_j]\n                if suppressed[j]:\n                    continue\n\n                xx1 = max(ix1, x1[j])\n                yy1 = max(iy1, y1[j])\n                xx2 = min(ix2, x2[j])\n                yy2 = min(iy2, y2[j])\n                w = max(0, xx2 - xx1 + 1)\n                h = max(0, yy2 - yy1 + 1)\n\n                inter = w * h\n                ovr = inter / (iarea + areas[j] - inter)\n                if ovr >= nms_thresh:\n                    suppressed[j] = True\n\n        return keep\n"
  },
  {
    "path": "deepface/models/face_detection/Dlib.py",
    "content": "# built-in dependencies\nfrom typing import List, Dict, Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nWEIGHTS_URL = \"http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2\"\n\n\nclass DlibClient(Detector):\n    def __init__(self) -> None:\n        self.model = self.build_model()\n\n    def build_model(self) -> Dict[str, Any]:\n        \"\"\"\n        Build a dlib hog face detector model\n        Returns:\n            model (Any)\n        \"\"\"\n        # this is not a must dependency. do not import it in the global level.\n        try:\n            import dlib\n        except ModuleNotFoundError as e:\n            raise ImportError(\n                \"Dlib is an optional detector, ensure the library is installed. \"\n                \"Please install using 'pip install dlib'\"\n            ) from e\n\n        # check required file exists in the home/.deepface/weights folder\n        weight_file = weight_utils.download_weights_if_necessary(\n            file_name=\"shape_predictor_5_face_landmarks.dat\",\n            source_url=WEIGHTS_URL,\n            compress_type=\"bz2\",\n        )\n\n        face_detector = dlib.get_frontal_face_detector()\n        sp = dlib.shape_predictor(weight_file)\n\n        detector = {}\n        detector[\"face_detector\"] = face_detector\n        detector[\"sp\"] = sp\n        return detector\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with dlib\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp = []\n\n        face_detector = self.model[\"face_detector\"]\n\n        # note that, by design, dlib's fhog face detector scores are >0 but not capped at 1\n        detections, scores, _ = face_detector.run(img, 1)\n\n        if len(detections) > 0:\n\n            for idx, detection in enumerate(detections):\n                left = detection.left()\n                right = detection.right()\n                top = detection.top()\n                bottom = detection.bottom()\n\n                y = int(max(0, top))\n                h = int(min(bottom, img.shape[0]) - y)\n                x = int(max(0, left))\n                w = int(min(right, img.shape[1]) - x)\n\n                shape = self.model[\"sp\"](img, detection)\n\n                right_eye = (\n                    int((shape.part(2).x + shape.part(3).x) // 2),\n                    int((shape.part(2).y + shape.part(3).y) // 2),\n                )\n                left_eye = (\n                    int((shape.part(0).x + shape.part(1).x) // 2),\n                    int((shape.part(0).y + shape.part(1).y) // 2),\n                )\n\n                # never saw confidence higher than +3.5 github.com/davisking/dlib/issues/761\n                confidence = scores[idx]\n\n                facial_area = FacialAreaRegion(\n                    x=x,\n                    y=y,\n                    w=w,\n                    h=h,\n                    left_eye=left_eye,\n                    right_eye=right_eye,\n                    confidence=min(max(0, confidence), 1.0),\n                )\n                resp.append(facial_area)\n\n        return resp\n"
  },
  {
    "path": "deepface/models/face_detection/FastMtCnn.py",
    "content": "# built-in dependencies\nfrom typing import Any, Union, List, Tuple\n\n# 3rd party dependencies\nimport cv2\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.Detector import Detector, FacialAreaRegion\n\n\nclass FastMtCnnClient(Detector):\n    \"\"\"\n    Fast MtCnn Detector from github.com/timesler/facenet-pytorch\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"Initialize FastMtCnnClient and build the model.\"\"\"\n        self.model = self.build_model()\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with mtcnn\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp = []\n\n        img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # mtcnn expects RGB but OpenCV read BGR\n        img_rgb = img_rgb.astype(\"uint8\")  # Fix facenet-pytorch dtype\n        detections = self.model.detect(\n            img_rgb, landmarks=True\n        )  # returns boundingbox, prob, landmark\n        if (\n            detections is not None\n            and len(detections) > 0\n            and not any(detection is None for detection in detections)  # issue 1043\n        ):\n            for regions, confidence, eyes in zip(*detections):\n                x, y, w, h = xyxy_to_xywh(regions)\n                right_eye = eyes[0]\n                left_eye = eyes[1]\n\n                left_eye = tuple(int(i) for i in left_eye)\n                right_eye = tuple(int(i) for i in right_eye)\n\n                facial_area = FacialAreaRegion(\n                    x=x,\n                    y=y,\n                    w=w,\n                    h=h,\n                    left_eye=left_eye,\n                    right_eye=right_eye,\n                    confidence=confidence,\n                )\n                resp.append(facial_area)\n\n        return resp\n\n    def build_model(self) -> Any:\n        \"\"\"\n        Build a fast mtcnn face detector model\n        Returns:\n            model (Any)\n        \"\"\"\n        # this is not a must dependency. do not import it in the global level.\n        try:\n            from facenet_pytorch import MTCNN as fast_mtcnn\n            import torch\n        except ModuleNotFoundError as e:\n            raise ImportError(\n                \"FastMtcnn is an optional detector, ensure the library is installed. \"\n                \"Please install using 'pip install facenet-pytorch'\"\n            ) from e\n\n        device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n        face_detector = fast_mtcnn(device=device)\n\n        return face_detector\n\n\ndef xyxy_to_xywh(\n    regions: Union[\n        List[Union[int, float]],\n        Tuple[Union[int, float], Union[int, float], Union[int, float], Union[int, float]],\n    ],\n) -> Tuple[int, int, int, int]:\n    \"\"\"\n    Convert (x1, y1, x2, y2) format to (x, y, w, h) format.\n    Args:\n        regions (list or tuple): facial area coordinates as x, y, x+w, y+h\n    Returns:\n        regions (tuple): facial area coordinates as x, y, w, h\n    \"\"\"\n    x, y, x_plus_w, y_plus_h = regions[0], regions[1], regions[2], regions[3]\n    w = x_plus_w - x\n    h = y_plus_h - y\n    return (int(x), int(y), int(w), int(h))\n"
  },
  {
    "path": "deepface/models/face_detection/MediaPipe.py",
    "content": "# built-in dependencies\r\nimport os\r\nfrom typing import Any, List\r\n\r\n# 3rd party dependencies\r\nfrom numpy.typing import NDArray\r\n\r\n# project dependencies\r\nfrom deepface.models.Detector import Detector, FacialAreaRegion\r\n\r\n\r\nclass MediaPipeClient(Detector):\r\n    \"\"\"\r\n    MediaPipe from google.github.io/mediapipe/solutions/face_detection\r\n    \"\"\"\r\n\r\n    def __init__(self) -> None:\r\n        self.model = self.build_model()\r\n\r\n    def build_model(self) -> Any:\r\n        \"\"\"\r\n        Build a mediapipe face detector model\r\n        Returns:\r\n            model (Any)\r\n        \"\"\"\r\n        # this is not a must dependency. do not import it in the global level.\r\n        try:\r\n            import mediapipe as mp\r\n        except ModuleNotFoundError as e:\r\n            raise ImportError(\r\n                \"MediaPipe is an optional detector, ensure the library is installed. \"\r\n                \"Please install using 'pip install mediapipe'\"\r\n            ) from e\r\n\r\n        mp_face_detection = mp.solutions.face_detection\r\n\r\n        min_detection_confidence = float(os.environ.get(\"MEDIAPIPE_MIN_DETECTION_CONFIDENCE\", 0.7))\r\n        model_selection = int(os.environ.get(\"MEDIAPIPE_MODEL_SELECTION\", 0))\r\n\r\n        face_detection = mp_face_detection.FaceDetection(\r\n            min_detection_confidence=min_detection_confidence, model_selection=model_selection\r\n        )\r\n        return face_detection\r\n\r\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\r\n        \"\"\"\r\n        Detect and align face with mediapipe\r\n\r\n        Args:\r\n            img (np.ndarray): pre-loaded image as numpy array\r\n\r\n        Returns:\r\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\r\n        \"\"\"\r\n        resp: List[FacialAreaRegion] = []\r\n\r\n        img_width = img.shape[1]\r\n        img_height = img.shape[0]\r\n\r\n        results = self.model.process(img)\r\n\r\n        # If no face has been detected, return an empty list\r\n        if results.detections is None:\r\n            return resp\r\n\r\n        # Extract the bounding box, the landmarks and the confidence score\r\n        for current_detection in results.detections:\r\n            (confidence,) = current_detection.score\r\n\r\n            bounding_box = current_detection.location_data.relative_bounding_box\r\n            landmarks = current_detection.location_data.relative_keypoints\r\n\r\n            x = int(bounding_box.xmin * img_width)\r\n            w = int(bounding_box.width * img_width)\r\n            y = int(bounding_box.ymin * img_height)\r\n            h = int(bounding_box.height * img_height)\r\n\r\n            right_eye = (int(landmarks[0].x * img_width), int(landmarks[0].y * img_height))\r\n            left_eye = (int(landmarks[1].x * img_width), int(landmarks[1].y * img_height))\r\n            # nose = (int(landmarks[2].x * img_width), int(landmarks[2].y * img_height))\r\n            # mouth = (int(landmarks[3].x * img_width), int(landmarks[3].y * img_height))\r\n            # right_ear = (int(landmarks[4].x * img_width), int(landmarks[4].y * img_height))\r\n            # left_ear = (int(landmarks[5].x * img_width), int(landmarks[5].y * img_height))\r\n\r\n            facial_area = FacialAreaRegion(\r\n                x=x,\r\n                y=y,\r\n                w=w,\r\n                h=h,\r\n                left_eye=left_eye,\r\n                right_eye=right_eye,\r\n                confidence=float(confidence),\r\n            )\r\n            resp.append(facial_area)\r\n\r\n        return resp\r\n"
  },
  {
    "path": "deepface/models/face_detection/MtCnn.py",
    "content": "# built-in dependencies\nfrom typing import List, Any\nimport warnings\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\nfrom mtcnn import MTCNN\n\n# project dependencies\nfrom deepface.models.Detector import Detector, FacialAreaRegion\n\n\n# pylint: disable=too-few-public-methods\nclass MtCnnClient(Detector):\n    \"\"\"\n    Class to cover common face detection functionalitiy for MtCnn backend\n    \"\"\"\n\n    def __init__(self) -> None:\n        with warnings.catch_warnings():\n            warnings.simplefilter(\"ignore\", ResourceWarning)\n            self.model = MTCNN()\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with mtcnn\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n\n        resp = []\n\n        # mtcnn expects RGB but OpenCV read BGR\n        # img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n        img_rgb = img[:, :, ::-1]\n        detections = self.model.detect_faces(img_rgb)\n\n        if detections is not None and len(detections) > 0:\n\n            for current_detection in detections:\n                x, y, w, h = current_detection[\"box\"]\n                confidence = current_detection[\"confidence\"]\n                # mtcnn detector assigns left eye with respect to the observer\n                # but we are setting it with respect to the person itself\n                left_eye = current_detection[\"keypoints\"][\"right_eye\"]\n                right_eye = current_detection[\"keypoints\"][\"left_eye\"]\n\n                facial_area = FacialAreaRegion(\n                    x=x,\n                    y=y,\n                    w=w,\n                    h=h,\n                    left_eye=left_eye,\n                    right_eye=right_eye,\n                    confidence=confidence,\n                )\n\n                resp.append(facial_area)\n\n        return resp\n"
  },
  {
    "path": "deepface/models/face_detection/OpenCv.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import Any, List, Dict, Tuple, Optional\n\n# 3rd party dependencies\nimport cv2\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.modules.exceptions import UnimplementedError\n\n\nclass OpenCvClient(Detector):\n    \"\"\"\n    Class to cover common face detection functionalitiy for OpenCv backend\n    \"\"\"\n\n    def __init__(self) -> None:\n        \"\"\"OpenCV face detector model initialization\"\"\"\n        self.model = self.build_model()\n\n    def build_model(self) -> Dict[str, Any]:\n        \"\"\"\n        Build opencv's face and eye detector models\n        Returns:\n            model (dict): including face_detector and eye_detector keys\n        \"\"\"\n        detector = {}\n        detector[\"face_detector\"] = self.__build_cascade(\"haarcascade\")\n        detector[\"eye_detector\"] = self.__build_cascade(\"haarcascade_eye\")\n        return detector\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with opencv\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp = []\n\n        detected_face = None\n\n        faces = []\n        try:\n            # faces = detector[\"face_detector\"].detectMultiScale(img, 1.3, 5)\n\n            # note that, by design, opencv's haarcascade scores are >0 but not capped at 1\n            faces, _, scores = self.model[\"face_detector\"].detectMultiScale3(\n                img, 1.1, 10, outputRejectLevels=True\n            )\n        except:\n            pass\n\n        if len(faces) > 0:\n            for (x, y, w, h), confidence in zip(faces, scores):\n                detected_face = img[int(y) : int(y + h), int(x) : int(x + w)]\n                left_eye, right_eye = self.find_eyes(img=detected_face)\n\n                # eyes found in the detected face instead image itself\n                # detected face's coordinates should be added\n                if left_eye is not None:\n                    left_eye = (int(x + left_eye[0]), int(y + left_eye[1]))\n                if right_eye is not None:\n                    right_eye = (int(x + right_eye[0]), int(y + right_eye[1]))\n\n                facial_area = FacialAreaRegion(\n                    x=x,\n                    y=y,\n                    w=w,\n                    h=h,\n                    left_eye=left_eye,\n                    right_eye=right_eye,\n                    confidence=(100 - confidence) / 100,\n                )\n                resp.append(facial_area)\n\n        return resp\n\n    def find_eyes(\n        self, img: NDArray[Any]\n    ) -> Tuple[Optional[Tuple[int, int]], Optional[Tuple[int, int]]]:\n        \"\"\"\n        Find the left and right eye coordinates of given image\n        Args:\n            img (np.ndarray): given image\n        Returns:\n            left and right eye (tuple)\n        \"\"\"\n        left_eye = None\n        right_eye = None\n\n        # if image has unexpectedly 0 dimension then skip alignment\n        if img.shape[0] == 0 or img.shape[1] == 0:\n            return left_eye, right_eye\n\n        detected_face_gray = cv2.cvtColor(\n            img, cv2.COLOR_BGR2GRAY\n        )  # eye detector expects gray scale image\n\n        eyes = self.model[\"eye_detector\"].detectMultiScale(detected_face_gray, 1.1, 10)\n\n        # ----------------------------------------------------------------\n\n        # opencv eye detection module is not strong. it might find more than 2 eyes!\n        # besides, it returns eyes with different order in each call (issue 435)\n        # this is an important issue because opencv is the default detector,\n        # and ssd, some yolo models don't return eye coordinates, uses this function\n        # this is finding the largest 2 eye. Thanks to @thelostpeace\n\n        eyes = sorted(eyes, key=lambda v: abs(v[2] * v[3]), reverse=True)\n\n        # ----------------------------------------------------------------\n        if len(eyes) >= 2:\n            # decide left and right eye\n\n            eye_1 = eyes[0]\n            eye_2 = eyes[1]\n\n            if eye_1[0] < eye_2[0]:\n                right_eye = eye_1\n                left_eye = eye_2\n            else:\n                right_eye = eye_2\n                left_eye = eye_1\n\n            # -----------------------\n            # find center of eyes\n            left_eye = (\n                int(left_eye[0] + (left_eye[2] / 2)),\n                int(left_eye[1] + (left_eye[3] / 2)),\n            )\n            right_eye = (\n                int(right_eye[0] + (right_eye[2] / 2)),\n                int(right_eye[1] + (right_eye[3] / 2)),\n            )\n        return left_eye, right_eye\n\n    def __build_cascade(self, model_name: str = \"haarcascade\") -> Any:\n        \"\"\"\n        Build a opencv face&eye detector models\n        Returns:\n            model (Any)\n        \"\"\"\n        opencv_path = self.__get_opencv_path()\n        if model_name == \"haarcascade\":\n            face_detector_path = os.path.join(opencv_path, \"haarcascade_frontalface_default.xml\")\n            if not os.path.isfile(face_detector_path):\n                raise ValueError(\n                    \"Confirm that opencv is installed on your environment! Expected path \",\n                    face_detector_path,\n                    \" violated.\",\n                )\n            detector = cv2.CascadeClassifier(face_detector_path)\n\n        elif model_name == \"haarcascade_eye\":\n            eye_detector_path = os.path.join(opencv_path, \"haarcascade_eye.xml\")\n            if not os.path.isfile(eye_detector_path):\n                raise ValueError(\n                    \"Confirm that opencv is installed on your environment! Expected path \",\n                    eye_detector_path,\n                    \" violated.\",\n                )\n            detector = cv2.CascadeClassifier(eye_detector_path)\n\n        else:\n            raise UnimplementedError(f\"unimplemented model_name for build_cascade - {model_name}\")\n\n        return detector\n\n    def __get_opencv_path(self) -> str:\n        \"\"\"\n        Returns where opencv installed\n        Returns:\n            installation_path (str)\n        \"\"\"\n        return os.path.join(os.path.dirname(cv2.__file__), \"data\")\n"
  },
  {
    "path": "deepface/models/face_detection/RetinaFace.py",
    "content": "# built-in dependencies\nfrom typing import List, Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\nfrom retinaface import RetinaFace as rf\n\n# project dependencies\nfrom deepface.models.Detector import Detector, FacialAreaRegion\n\n\n# pylint: disable=too-few-public-methods\nclass RetinaFaceClient(Detector):\n    def __init__(self) -> None:\n        \"\"\"RetinaFace face detector model initialization\"\"\"\n        self.model = rf.build_model()\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with retinaface\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp: List[FacialAreaRegion] = []\n\n        obj = rf.detect_faces(img, model=self.model, threshold=0.9)\n\n        if not isinstance(obj, dict):\n            return resp\n\n        for face_idx in obj.keys():\n            identity = obj[face_idx]\n            detection = identity[\"facial_area\"]\n\n            y = detection[1]\n            h = detection[3] - y\n            x = detection[0]\n            w = detection[2] - x\n\n            # retinaface sets left and right eyes with respect to the person\n            left_eye = identity[\"landmarks\"][\"left_eye\"]\n            right_eye = identity[\"landmarks\"][\"right_eye\"]\n            nose = identity[\"landmarks\"].get(\"nose\")\n            mouth_right = identity[\"landmarks\"].get(\"mouth_right\")\n            mouth_left = identity[\"landmarks\"].get(\"mouth_left\")\n\n            # eyes are list of float, need to cast them tuple of int\n            left_eye = tuple(int(i) for i in left_eye)\n            right_eye = tuple(int(i) for i in right_eye)\n            if nose is not None:\n                nose = tuple(int(i) for i in nose)\n            if mouth_right is not None:\n                mouth_right = tuple(int(i) for i in mouth_right)\n            if mouth_left is not None:\n                mouth_left = tuple(int(i) for i in mouth_left)\n\n            confidence = identity[\"score\"]\n\n            facial_area = FacialAreaRegion(\n                x=x,\n                y=y,\n                w=w,\n                h=h,\n                left_eye=left_eye,\n                right_eye=right_eye,\n                confidence=confidence,\n                nose=nose,\n                mouth_left=mouth_left,\n                mouth_right=mouth_right,\n            )\n\n            resp.append(facial_area)\n\n        return resp\n"
  },
  {
    "path": "deepface/models/face_detection/Ssd.py",
    "content": "# built-in dependencies\nfrom typing import List, Any\nfrom enum import IntEnum\n\n# 3rd party dependencies\nimport cv2\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=line-too-long, c-extension-no-member\n\nMODEL_URL = \"https://github.com/opencv/opencv/raw/3.4.0/samples/dnn/face_detector/deploy.prototxt\"\nWEIGHTS_URL = \"https://github.com/opencv/opencv_3rdparty/raw/dnn_samples_face_detector_20170830/res10_300x300_ssd_iter_140000.caffemodel\"\n\n\nclass SsdClient(Detector):\n    def __init__(self) -> None:\n        self.model = self.build_model()\n\n    def build_model(self) -> Any:\n        \"\"\"\n        Build a ssd detector model\n        Returns:\n            model (Any): ssd model\n        \"\"\"\n\n        # model structure\n        output_model = weight_utils.download_weights_if_necessary(\n            file_name=\"deploy.prototxt\",\n            source_url=MODEL_URL,\n        )\n\n        # pre-trained weights\n        output_weights = weight_utils.download_weights_if_necessary(\n            file_name=\"res10_300x300_ssd_iter_140000.caffemodel\",\n            source_url=WEIGHTS_URL,\n        )\n\n        try:\n            face_detector = cv2.dnn.readNetFromCaffe(output_model, output_weights)\n        except Exception as err:\n            raise ValueError(\n                \"Exception while calling opencv.dnn module.\"\n                + \"This is an optional dependency.\"\n                + \"You can install it as pip install opencv-contrib-python.\"\n            ) from err\n\n        return face_detector\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with ssd\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n\n        # Because cv2.dnn.blobFromImage expects CV_8U (8-bit unsigned integer) values\n        if img.dtype != np.uint8:\n            img = img.astype(np.uint8)\n\n        target_size = (300, 300)\n\n        original_size = img.shape\n\n        current_img = cv2.resize(img, target_size)\n\n        aspect_ratio_x = original_size[1] / target_size[1]\n        aspect_ratio_y = original_size[0] / target_size[0]\n\n        imageBlob = cv2.dnn.blobFromImage(image=current_img)\n\n        face_detector = self.model\n        face_detector.setInput(imageBlob)\n        detections = face_detector.forward()\n\n        class ssd_labels(IntEnum):\n            img_id = 0\n            is_face = 1\n            confidence = 2\n            left = 3\n            top = 4\n            right = 5\n            bottom = 6\n\n        faces = detections[0][0]\n        faces = faces[\n            (faces[:, ssd_labels.is_face] == 1) & (faces[:, ssd_labels.confidence] >= 0.90)\n        ]\n        margins = [ssd_labels.left, ssd_labels.top, ssd_labels.right, ssd_labels.bottom]\n        faces[:, margins] = np.int32(faces[:, margins] * 300)\n        faces[:, margins] = np.int32(\n            faces[:, margins] * [aspect_ratio_x, aspect_ratio_y, aspect_ratio_x, aspect_ratio_y]\n        )\n        faces[:, [ssd_labels.right, ssd_labels.bottom]] -= faces[\n            :, [ssd_labels.left, ssd_labels.top]\n        ]\n\n        resp = []\n        for face in faces:\n            confidence = float(face[ssd_labels.confidence])\n            x, y, w, h = map(int, face[margins])\n\n            facial_area = FacialAreaRegion(\n                x=x,\n                y=y,\n                w=w,\n                h=h,\n                left_eye=None,\n                right_eye=None,\n                confidence=confidence,\n            )\n            resp.append(facial_area)\n        return resp\n"
  },
  {
    "path": "deepface/models/face_detection/Yolo.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import List, Any\nfrom enum import Enum\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.commons.logger import Logger\nfrom deepface.commons import weight_utils\n\nlogger = Logger()\n\n\nclass YoloModel(Enum):\n    # ref repo for v8n is https://github.com/derronqi/yolov8-face\n    V8N = (\"yolov8n-face.pt\", \"https://drive.google.com/uc?id=1qcr9DbgsX3ryrz2uU8w4Xm3cOrRywXqb\")\n    V8M = (\n        \"yolov8m-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov8m-face.pt\",\n    )\n    V8L = (\n        \"yolov8l-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov8l-face.pt\",\n    )\n    V11N = (\n        \"yolov11n-face.pt\",\n        \"https://github.com/akanametov/yolo-face/releases/download/1.0.0/yolov11n-face.pt\",\n    )\n    V11S = (\n        \"yolov11s-face.pt\",\n        \"https://github.com/akanametov/yolo-face/releases/download/1.0.0/yolov11s-face.pt\",\n    )\n    V11M = (\n        \"yolov11m-face.pt\",\n        \"https://github.com/akanametov/yolo-face/releases/download/1.0.0/yolov11m-face.pt\",\n    )\n    V11L = (\n        \"yolov11l-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov11l-face.pt\",\n    )\n    V12N = (\n        \"yolov12n-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov12n-face.pt\",\n    )\n    V12S = (\n        \"yolov12s-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov12s-face.pt\",\n    )\n    V12M = (\n        \"yolov12m-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov12m-face.pt\",\n    )\n    V12L = (\n        \"yolov12l-face.pt\",\n        \"https://github.com/YapaLab/yolo-face/releases/download/1.0.0/yolov12l-face.pt\",\n    )\n\n    def __init__(self, file_name: str, url: str):\n        self.file_name = file_name\n        self.url = url\n\n\nclass YoloDetectorClient(Detector):\n    def __init__(self, model: YoloModel):\n        super().__init__()\n        self.model = self.build_model(model)\n\n    def build_model(self, model: YoloModel) -> Any:\n        \"\"\"\n        Build a yolo detector model\n        Returns:\n            model (Any)\n        \"\"\"\n\n        # Import the optional Ultralytics YOLO model\n        try:\n            import ultralytics\n            from ultralytics import YOLO\n        except ModuleNotFoundError as e:\n            raise ImportError(\n                \"Yolo is an optional detector, ensure the library is installed. \"\n                \"Please install using 'pip install ultralytics'\"\n            ) from e\n\n        current_version = tuple(map(int, ultralytics.__version__.split(\".\")[:3]))\n\n        if model.name == \"V8N\" and current_version < (8, 1, 6):\n            raise ValueError(\"Yolov8n-face model requires ultralytics version 8.1.6 or higher.\")\n        if model.name in [\"V11N\", \"V11S\", \"V11M\"] and current_version < (8, 3, 203):\n            raise ValueError(\"Yolov11 models require ultralytics version 8.3.203 or higher.\")\n\n        file_name, weight_url = model.value\n        weight_file = weight_utils.download_weights_if_necessary(\n            file_name=file_name, source_url=weight_url\n        )\n\n        # Return face_detector\n        return YOLO(weight_file)\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with yolo\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        resp = []\n\n        # Detect faces\n        results = self.model.predict(\n            img,\n            verbose=False,\n            show=False,\n            conf=float(os.getenv(\"YOLO_MIN_DETECTION_CONFIDENCE\", \"0.25\")),\n        )[0]\n\n        # For each face, extract the bounding box, the landmarks and confidence\n        for result in results:\n\n            if result.boxes is None:\n                continue\n\n            # Extract the bounding box and the confidence\n            x, y, w, h = result.boxes.xywh.tolist()[0]\n            confidence = result.boxes.conf.tolist()[0]\n\n            right_eye = None\n            left_eye = None\n\n            # yolo-facev8 is detecting eyes through keypoints,\n            # while for v11 keypoints are always None\n            if result.keypoints is not None:\n                # right_eye_conf = result.keypoints.conf[0][0]\n                # left_eye_conf = result.keypoints.conf[0][1]\n                right_eye = result.keypoints.xy[0][0].tolist()\n                left_eye = result.keypoints.xy[0][1].tolist()\n\n                # eyes are list of float, need to cast them tuple of int\n                left_eye = tuple(int(i) for i in left_eye)\n                right_eye = tuple(int(i) for i in right_eye)\n\n            x, y, w, h = int(x - w / 2), int(y - h / 2), int(w), int(h)\n            facial_area = FacialAreaRegion(\n                x=x,\n                y=y,\n                w=w,\n                h=h,\n                left_eye=left_eye,\n                right_eye=right_eye,\n                confidence=confidence,\n            )\n            resp.append(facial_area)\n\n        return resp\n\n\nclass YoloDetectorClientV8n(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V8N)\n\n\nclass YoloDetectorClientV8m(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V8M)\n\n\nclass YoloDetectorClientV8l(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V8L)\n\n\nclass YoloDetectorClientV11n(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V11N)\n\n\nclass YoloDetectorClientV11s(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V11S)\n\n\nclass YoloDetectorClientV11m(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V11M)\n\n\nclass YoloDetectorClientV11l(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V11L)\n\n\nclass YoloDetectorClientV12n(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V12N)\n\n\nclass YoloDetectorClientV12s(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V12S)\n\n\nclass YoloDetectorClientV12m(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V12M)\n\n\nclass YoloDetectorClientV12l(YoloDetectorClient):\n    def __init__(self) -> None:\n        super().__init__(YoloModel.V12L)\n"
  },
  {
    "path": "deepface/models/face_detection/YuNet.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import Any, List\n\n# 3rd party dependencies\nimport cv2\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.Detector import Detector, FacialAreaRegion\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint:disable=line-too-long\nWEIGHTS_URL = \"https://github.com/opencv/opencv_zoo/raw/main/models/face_detection_yunet/face_detection_yunet_2023mar.onnx\"\n\n\nclass YuNetClient(Detector):\n    def __init__(self) -> None:\n        self.model = self.build_model()\n\n    def build_model(self) -> Any:\n        \"\"\"\n        Build a yunet detector model\n        Returns:\n            model (Any)\n        \"\"\"\n\n        opencv_version = cv2.__version__.split(\".\")\n        if not len(opencv_version) >= 2:\n            raise ValueError(\n                f\"OpenCv's version must have major and minor values but it is {opencv_version}\"\n            )\n\n        opencv_version_major = int(opencv_version[0])\n        opencv_version_minor = int(opencv_version[1])\n\n        if opencv_version_major < 4 or (opencv_version_major == 4 and opencv_version_minor < 8):\n            # min requirement: https://github.com/opencv/opencv_zoo/issues/172\n            raise ValueError(f\"YuNet requires opencv-python >= 4.8 but you have {cv2.__version__}\")\n\n        # pylint: disable=C0301\n        weight_file = weight_utils.download_weights_if_necessary(\n            file_name=\"face_detection_yunet_2023mar.onnx\",\n            source_url=WEIGHTS_URL,\n        )\n\n        try:\n            face_detector = cv2.FaceDetectorYN_create(weight_file, \"\", (0, 0))  # type: ignore[attr-defined]\n        except Exception as err:\n            raise ValueError(\n                \"Exception while calling opencv.FaceDetectorYN_create module.\"\n                + \"This is an optional dependency.\"\n                + \"You can install it as pip install opencv-contrib-python.\"\n            ) from err\n        return face_detector\n\n    def detect_faces(self, img: NDArray[Any]) -> List[FacialAreaRegion]:\n        \"\"\"\n        Detect and align face with yunet\n\n        Args:\n            img (np.ndarray): pre-loaded image as numpy array\n\n        Returns:\n            results (List[FacialAreaRegion]): A list of FacialAreaRegion objects\n        \"\"\"\n        # FaceDetector.detect_faces does not support score_threshold parameter.\n        # We can set it via environment variable.\n        score_threshold = float(os.environ.get(\"yunet_score_threshold\", \"0.9\"))\n        resp = []\n        faces = []\n        height, width = img.shape[0], img.shape[1]\n        # resize image if it is too large (Yunet fails to detect faces on large input sometimes)\n        # I picked 640 as a threshold because it is the default value of max_size in Yunet.\n        resized = False\n        r: float = 1  # resize factor\n        if height > 640 or width > 640:\n            r = 640.0 / max(height, width)\n            img = cv2.resize(img, (int(width * r), int(height * r)))\n            height, width = img.shape[0], img.shape[1]\n            resized = True\n        self.model.setInputSize((width, height))\n        self.model.setScoreThreshold(score_threshold)\n        _, faces = self.model.detect(img)\n        if faces is None:\n            return resp\n        for face in faces:\n            # pylint: disable=W0105\n            \"\"\"\n            The detection output faces is a two-dimension array of type CV_32F,\n            whose rows are the detected face instances, columns are the location\n            of a face and 5 facial landmarks.\n            The format of each row is as follows:\n            x1, y1, w, h, x_re, y_re, x_le, y_le, x_nt, y_nt,\n            x_rcm, y_rcm, x_lcm, y_lcm,\n            where x1, y1, w, h are the top-left coordinates, width and height of\n            the face bounding box,\n            {x, y}_{re, le, nt, rcm, lcm} stands for the coordinates of right eye,\n            left eye, nose tip, the right corner and left corner of the mouth respectively.\n            \"\"\"\n            (x, y, w, h, x_le, y_le, x_re, y_re) = list(map(int, face[:8]))\n\n            # YuNet returns negative coordinates if it thinks part of the detected face\n            # is outside the frame.\n            x = max(x, 0)\n            y = max(y, 0)\n            if resized:\n                x, y, w, h = int(x / r), int(y / r), int(w / r), int(h / r)\n                x_re, y_re, x_le, y_le = (\n                    int(x_re / r),\n                    int(y_re / r),\n                    int(x_le / r),\n                    int(y_le / r),\n                )\n            confidence = float(face[-1])\n\n            facial_area = FacialAreaRegion(\n                x=x,\n                y=y,\n                w=w,\n                h=h,\n                confidence=confidence,\n                left_eye=(x_re, y_re),\n                right_eye=(x_le, y_le),\n            )\n            resp.append(facial_area)\n        return resp\n"
  },
  {
    "path": "deepface/models/face_detection/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/models/facial_recognition/ArcFace.py",
    "content": "# built-in dependencies\nfrom typing import Any\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\n\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=unsubscriptable-object\n\n# --------------------------------\n# dependency configuration\n\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Model\n    from keras.layers import (\n        ZeroPadding2D,\n        Input,\n        Conv2D,\n        BatchNormalization,\n        PReLU,\n        Add,\n        Dropout,\n        Flatten,\n        Dense,\n    )\nelse:\n    from tensorflow.keras.models import Model\n    from tensorflow.keras.layers import (\n        ZeroPadding2D,\n        Input,\n        Conv2D,\n        BatchNormalization,\n        PReLU,\n        Add,\n        Dropout,\n        Flatten,\n        Dense,\n    )\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/arcface_weights.h5\"\n)\n\n\n# pylint: disable=too-few-public-methods\nclass ArcFaceClient(FacialRecognition):\n    \"\"\"\n    ArcFace model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"ArcFace\"\n        self.input_shape = (112, 112)\n        self.output_shape = 512\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct ArcFace model, download its weights and load\n    Returns:\n        model (Model)\n    \"\"\"\n    base_model = ResNet34()\n    inputs = base_model.inputs[0]\n    arcface_model = base_model.outputs[0]\n    arcface_model = BatchNormalization(momentum=0.9, epsilon=2e-5)(arcface_model)\n    arcface_model = Dropout(0.4)(arcface_model)\n    arcface_model = Flatten()(arcface_model)\n    arcface_model = Dense(512, activation=None, use_bias=True, kernel_initializer=\"glorot_normal\")(\n        arcface_model\n    )\n    embedding = BatchNormalization(momentum=0.9, epsilon=2e-5, name=\"embedding\", scale=True)(\n        arcface_model\n    )\n    model = Model(inputs, embedding, name=base_model.name)\n\n    # ---------------------------------------\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"arcface_weights.h5\", source_url=url\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n    # ---------------------------------------\n\n    return model\n\n\ndef ResNet34() -> Model:\n    \"\"\"\n    ResNet34 model\n    Returns:\n        model (Model)\n    \"\"\"\n    img_input = Input(shape=(112, 112, 3))\n\n    x = ZeroPadding2D(padding=1, name=\"conv1_pad\")(img_input)\n    x = Conv2D(\n        64, 3, strides=1, use_bias=False, kernel_initializer=\"glorot_normal\", name=\"conv1_conv\"\n    )(x)\n    x = BatchNormalization(axis=3, epsilon=2e-5, momentum=0.9, name=\"conv1_bn\")(x)\n    x = PReLU(shared_axes=[1, 2], name=\"conv1_prelu\")(x)\n    x = stack_fn(x)\n\n    model = Model(img_input, x, name=\"ResNet34\")\n\n    return model\n\n\ndef block1(\n    x: Any,\n    filters: int,\n    kernel_size: int = 3,\n    stride: int = 1,\n    conv_shortcut: bool = True,\n    name: str = \"N/A\",\n) -> Any:\n    bn_axis = 3\n\n    if conv_shortcut:\n        shortcut = Conv2D(\n            filters,\n            1,\n            strides=stride,\n            use_bias=False,\n            kernel_initializer=\"glorot_normal\",\n            name=name + \"_0_conv\",\n        )(x)\n        shortcut = BatchNormalization(\n            axis=bn_axis, epsilon=2e-5, momentum=0.9, name=name + \"_0_bn\"\n        )(shortcut)\n    else:\n        shortcut = x\n\n    x = BatchNormalization(axis=bn_axis, epsilon=2e-5, momentum=0.9, name=name + \"_1_bn\")(x)\n    x = ZeroPadding2D(padding=1, name=name + \"_1_pad\")(x)\n    x = Conv2D(\n        filters,\n        3,\n        strides=1,\n        kernel_initializer=\"glorot_normal\",\n        use_bias=False,\n        name=name + \"_1_conv\",\n    )(x)\n    x = BatchNormalization(axis=bn_axis, epsilon=2e-5, momentum=0.9, name=name + \"_2_bn\")(x)\n    x = PReLU(shared_axes=[1, 2], name=name + \"_1_prelu\")(x)\n\n    x = ZeroPadding2D(padding=1, name=name + \"_2_pad\")(x)\n    x = Conv2D(\n        filters,\n        kernel_size,\n        strides=stride,\n        kernel_initializer=\"glorot_normal\",\n        use_bias=False,\n        name=name + \"_2_conv\",\n    )(x)\n    x = BatchNormalization(axis=bn_axis, epsilon=2e-5, momentum=0.9, name=name + \"_3_bn\")(x)\n\n    x = Add(name=name + \"_add\")([shortcut, x])\n    return x\n\n\ndef stack1(x: Any, filters: int, blocks: int, stride1: int = 2, name: str = \"N/A\") -> Any:\n    x = block1(x, filters, stride=stride1, name=name + \"_block1\")\n    for i in range(2, blocks + 1):\n        x = block1(x, filters, conv_shortcut=False, name=name + \"_block\" + str(i))\n    return x\n\n\ndef stack_fn(x: Any) -> Any:\n    x = stack1(x, 64, 3, name=\"conv2\")\n    x = stack1(x, 128, 4, name=\"conv3\")\n    x = stack1(x, 256, 6, name=\"conv4\")\n    return stack1(x, 512, 3, name=\"conv5\")\n"
  },
  {
    "path": "deepface/models/facial_recognition/Buffalo_L.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import List, Union, Any\n\n# third-party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils, folder_utils\nfrom deepface.commons.logger import Logger\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.modules.exceptions import InvalidEmbeddingsShapeError\n\nlogger = Logger()\n\n\nclass Buffalo_L(FacialRecognition):\n    def __init__(self) -> None:\n        self.model = None\n        self.input_shape = (112, 112)\n        self.output_shape = 512\n        self.load_model()\n\n    def load_model(self) -> None:\n        \"\"\"Load the InsightFace Buffalo_L recognition model.\"\"\"\n        try:\n            from insightface.model_zoo import get_model\n        except Exception as err:\n            raise ModuleNotFoundError(\n                \"InsightFace and its dependencies are optional for the Buffalo_L model. \"\n                \"Please install them with: \"\n                \"pip install insightface>=0.7.3 onnxruntime>=1.9.0 typing-extensions pydantic\"\n                \"albumentations\"\n            ) from err\n\n        sub_dir = \"buffalo_l\"\n        model_file = \"webface_r50.onnx\"\n        model_rel_path = os.path.join(sub_dir, model_file)\n        home = folder_utils.get_deepface_home()\n        weights_dir = os.path.join(home, \".deepface\", \"weights\")\n        buffalo_l_dir = os.path.join(weights_dir, sub_dir)\n\n        if not os.path.exists(buffalo_l_dir):\n            os.makedirs(buffalo_l_dir, exist_ok=True)\n            logger.info(f\"Created directory: {buffalo_l_dir}\")\n\n        weights_path = weight_utils.download_weights_if_necessary(\n            file_name=model_rel_path,\n            source_url=\"https://drive.google.com/uc?export=download&confirm=pbef&id=1N0GL-8ehw_bz2eZQWz2b0A5XBdXdxZhg\",  # pylint: disable=line-too-long\n        )\n\n        if not os.path.exists(weights_path):\n            raise FileNotFoundError(f\"Model file not found at: {weights_path}\")\n        logger.debug(f\"Model file found at: {weights_path}\")\n\n        self.model = get_model(weights_path)\n        self.model.prepare(ctx_id=-1, input_size=self.input_shape)\n\n    def preprocess(self, img: NDArray[Any]) -> NDArray[Any]:\n        \"\"\"\n        Preprocess the input image or batch of images.\n\n        Args:\n            img: Input image or batch with shape (112, 112, 3)\n            or (batch_size, 112, 112, 3).\n\n        Returns:\n            Preprocessed image(s) with RGB converted to BGR.\n        \"\"\"\n        if len(img.shape) == 3:\n            img = np.expand_dims(img, axis=0)  # Convert single image to batch of 1\n        elif len(img.shape) != 4:\n            raise InvalidEmbeddingsShapeError(\n                f\"Input must be (112, 112, 3) or (X, 112, 112, 3). Got {img.shape}\"\n            )\n        # Convert RGB to BGR for the entire batch\n        img = img[:, :, :, ::-1]\n        return img\n\n    def forward(self, img: NDArray[Any]) -> Union[List[float], List[List[float]]]:\n        \"\"\"\n        Extract facial embedding(s) from the input image or batch of images.\n\n        Args:\n            img: Input image or batch with shape (112, 112, 3)\n            or (batch_size, 112, 112, 3).\n\n        Returns:\n            Embedding as a list of floats (single image)\n            or list of lists of floats (batch).\n        \"\"\"\n        # Preprocess the input (single image or batch)\n        img = self.preprocess(img)\n        batch_size = img.shape[0]\n\n        # Handle both single images and batches\n        embeddings = []\n        for i in range(batch_size):\n            embedding = self.model.get_feat(img[i])\n            embeddings.append(embedding.flatten().tolist())\n\n        # Return single embedding if batch_size is 1, otherwise return list of embeddings\n        return embeddings[0] if batch_size == 1 else embeddings\n"
  },
  {
    "path": "deepface/models/facial_recognition/DeepID.py",
    "content": "# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Model\n    from keras.layers import (\n        Conv2D,\n        Activation,\n        Input,\n        Add,\n        MaxPooling2D,\n        Flatten,\n        Dense,\n        Dropout,\n    )\nelse:\n    from tensorflow.keras.models import Model\n    from tensorflow.keras.layers import (\n        Conv2D,\n        Activation,\n        Input,\n        Add,\n        MaxPooling2D,\n        Flatten,\n        Dense,\n        Dropout,\n    )\n\n# pylint: disable=line-too-long\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/deepid_keras_weights.h5\"\n)\n\n\n# pylint: disable=too-few-public-methods\nclass DeepIdClient(FacialRecognition):\n    \"\"\"\n    DeepId model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"DeepId\"\n        self.input_shape = (47, 55)\n        self.output_shape = 160\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct DeepId model, download its weights and load\n    \"\"\"\n\n    myInput = Input(shape=(55, 47, 3))\n\n    x = Conv2D(20, (4, 4), name=\"Conv1\", activation=\"relu\", input_shape=(55, 47, 3))(myInput)\n    x = MaxPooling2D(pool_size=2, strides=2, name=\"Pool1\")(x)\n    x = Dropout(rate=0.99, name=\"D1\")(x)\n\n    x = Conv2D(40, (3, 3), name=\"Conv2\", activation=\"relu\")(x)\n    x = MaxPooling2D(pool_size=2, strides=2, name=\"Pool2\")(x)\n    x = Dropout(rate=0.99, name=\"D2\")(x)\n\n    x = Conv2D(60, (3, 3), name=\"Conv3\", activation=\"relu\")(x)\n    x = MaxPooling2D(pool_size=2, strides=2, name=\"Pool3\")(x)\n    x = Dropout(rate=0.99, name=\"D3\")(x)\n\n    x1 = Flatten()(x)\n    fc11 = Dense(160, name=\"fc11\")(x1)\n\n    x2 = Conv2D(80, (2, 2), name=\"Conv4\", activation=\"relu\")(x)\n    x2 = Flatten()(x2)\n    fc12 = Dense(160, name=\"fc12\")(x2)\n\n    y = Add()([fc11, fc12])\n    y = Activation(\"relu\", name=\"deepid\")(y)\n\n    model = Model(inputs=[myInput], outputs=y)\n\n    # ---------------------------------\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"deepid_keras_weights.h5\", source_url=url\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    return model\n"
  },
  {
    "path": "deepface/models/facial_recognition/Dlib.py",
    "content": "# built-in dependencies\nfrom typing import List, Union, Any, cast\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=too-few-public-methods\nWEIGHT_URL = \"http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2\"\n\n\nclass DlibClient(FacialRecognition):\n    \"\"\"\n    Dlib model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = DlibResNet()\n        self.model_name = \"Dlib\"\n        self.input_shape = (150, 150)\n        self.output_shape = 128\n\n    def forward(self, img: NDArray[Any]) -> Union[List[float], List[List[float]]]:\n        \"\"\"\n        Find embeddings with Dlib model.\n            This model necessitates the override of the forward method\n            because it is not a keras model.\n        Args:\n            img (np.ndarray): pre-loaded image(s) in BGR\n        Returns\n            embeddings (list of lists or list of floats): multi-dimensional vectors\n        \"\"\"\n        # Handle single image case\n        if len(img.shape) == 3:\n            img = np.expand_dims(img, axis=0)\n\n        # bgr to rgb\n        img = img[:, :, :, ::-1]  # bgr to rgb\n\n        # img is in scale of [0, 1] but expected [0, 255]\n        if img.max() <= 1:\n            img = img * 255\n\n        img = img.astype(np.uint8)\n\n        embeddings = self.model.model.compute_face_descriptor(img)\n        embeddings = [np.array(embedding).tolist() for embedding in embeddings]\n        if len(embeddings) == 1:\n            return cast(List[float], embeddings[0])\n        return cast(List[List[float]], embeddings)\n\n\nclass DlibResNet:\n    def __init__(self) -> None:\n\n        # This is not a must dependency. Don't import it in the global level.\n        try:\n            import dlib\n        except ModuleNotFoundError as e:\n            raise ImportError(\n                \"Dlib is an optional dependency, ensure the library is installed.\"\n                \"Please install using 'pip install dlib' \"\n            ) from e\n\n        weight_file = weight_utils.download_weights_if_necessary(\n            file_name=\"dlib_face_recognition_resnet_model_v1.dat\",\n            source_url=WEIGHT_URL,\n            compress_type=\"bz2\",\n        )\n\n        self.model = dlib.face_recognition_model_v1(weight_file)\n\n        # return None  # classes must return None\n"
  },
  {
    "path": "deepface/models/facial_recognition/Facenet.py",
    "content": "# built-in dependencies\nfrom typing import Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# --------------------------------\n# dependency configuration\n\ntf_version = package_utils.get_tf_major_version()\n\nif tf_version == 1:\n    from keras.models import Model\n    from keras.layers import Activation\n    from keras.layers import BatchNormalization\n    from keras.layers import Concatenate\n    from keras.layers import Conv2D\n    from keras.layers import Dense\n    from keras.layers import Dropout\n    from keras.layers import GlobalAveragePooling2D\n    from keras.layers import Input\n    from keras.layers import Lambda\n    from keras.layers import MaxPooling2D\n    from keras.layers import add\n    from keras import backend as K\nelse:\n    from tensorflow.keras.models import Model\n    from tensorflow.keras.layers import Activation\n    from tensorflow.keras.layers import BatchNormalization\n    from tensorflow.keras.layers import Concatenate\n    from tensorflow.keras.layers import Conv2D\n    from tensorflow.keras.layers import Dense\n    from tensorflow.keras.layers import Dropout\n    from tensorflow.keras.layers import GlobalAveragePooling2D\n    from tensorflow.keras.layers import Input\n    from tensorflow.keras.layers import Lambda\n    from tensorflow.keras.layers import MaxPooling2D\n    from tensorflow.keras.layers import add\n    from tensorflow.keras import backend as K\n\n# pylint:disable=line-too-long\nFACENET128_WEIGHTS = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/facenet_weights.h5\"\n)\nFACENET512_WEIGHTS = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/facenet512_weights.h5\"\n)\n\n# --------------------------------\n\n\n# pylint: disable=too-few-public-methods\nclass FaceNet128dClient(FacialRecognition):\n    \"\"\"\n    FaceNet-128d model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_facenet128d_model()\n        self.model_name = \"FaceNet-128d\"\n        self.input_shape = (160, 160)\n        self.output_shape = 128\n\n\nclass FaceNet512dClient(FacialRecognition):\n    \"\"\"\n    FaceNet-512d model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_facenet512d_model()\n        self.model_name = \"FaceNet-512d\"\n        self.input_shape = (160, 160)\n        self.output_shape = 512\n\n\ndef scaling(x: NDArray[Any], scale: float) -> NDArray[Any]:\n    return x * scale\n\n\ndef InceptionResNetV1(dimension: int = 128) -> Model:\n    \"\"\"\n    InceptionResNetV1 model heavily inspired from\n    github.com/davidsandberg/facenet/blob/master/src/models/inception_resnet_v1.py\n    As mentioned in Sandberg's repo's readme, pre-trained models are using Inception ResNet v1\n    Besides training process is documented at\n    sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/\n\n    Args:\n        dimension (int): number of dimensions in the embedding layer\n    Returns:\n        model (Model)\n    \"\"\"\n\n    inputs = Input(shape=(160, 160, 3))\n    x = Conv2D(32, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Conv2d_1a_3x3\")(inputs)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_1a_3x3_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_1a_3x3_Activation\")(x)\n    x = Conv2D(32, 3, strides=1, padding=\"valid\", use_bias=False, name=\"Conv2d_2a_3x3\")(x)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_2a_3x3_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_2a_3x3_Activation\")(x)\n    x = Conv2D(64, 3, strides=1, padding=\"same\", use_bias=False, name=\"Conv2d_2b_3x3\")(x)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_2b_3x3_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_2b_3x3_Activation\")(x)\n    x = MaxPooling2D(3, strides=2, name=\"MaxPool_3a_3x3\")(x)\n    x = Conv2D(80, 1, strides=1, padding=\"valid\", use_bias=False, name=\"Conv2d_3b_1x1\")(x)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_3b_1x1_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_3b_1x1_Activation\")(x)\n    x = Conv2D(192, 3, strides=1, padding=\"valid\", use_bias=False, name=\"Conv2d_4a_3x3\")(x)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_4a_3x3_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_4a_3x3_Activation\")(x)\n    x = Conv2D(256, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Conv2d_4b_3x3\")(x)\n    x = BatchNormalization(\n        axis=3, momentum=0.995, epsilon=0.001, scale=False, name=\"Conv2d_4b_3x3_BatchNorm\"\n    )(x)\n    x = Activation(\"relu\", name=\"Conv2d_4b_3x3_Activation\")(x)\n\n    # 5x Block35 (Inception-ResNet-A block):\n    branch_0 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block35_1_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_1_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_1_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_1_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_1_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_1_Branch_2_Conv2d_0c_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_1_Branch_2_Conv2d_0c_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_1_Branch_2_Conv2d_0c_3x3_Activation\")(branch_2)\n    branches = [branch_0, branch_1, branch_2]\n    mixed = Concatenate(axis=3, name=\"Block35_1_Concatenate\")(branches)\n    up = Conv2D(256, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block35_1_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.17})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block35_1_Activation\")(x)\n\n    branch_0 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block35_2_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_2_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_2_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_2_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_2_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_2_Branch_2_Conv2d_0c_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_2_Branch_2_Conv2d_0c_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_2_Branch_2_Conv2d_0c_3x3_Activation\")(branch_2)\n    branches = [branch_0, branch_1, branch_2]\n    mixed = Concatenate(axis=3, name=\"Block35_2_Concatenate\")(branches)\n    up = Conv2D(256, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block35_2_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.17})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block35_2_Activation\")(x)\n\n    branch_0 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block35_3_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_3_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_3_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_3_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_3_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_3_Branch_2_Conv2d_0c_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_3_Branch_2_Conv2d_0c_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_3_Branch_2_Conv2d_0c_3x3_Activation\")(branch_2)\n    branches = [branch_0, branch_1, branch_2]\n    mixed = Concatenate(axis=3, name=\"Block35_3_Concatenate\")(branches)\n    up = Conv2D(256, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block35_3_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.17})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block35_3_Activation\")(x)\n\n    branch_0 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block35_4_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_4_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_4_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_4_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_4_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_4_Branch_2_Conv2d_0c_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_4_Branch_2_Conv2d_0c_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_4_Branch_2_Conv2d_0c_3x3_Activation\")(branch_2)\n    branches = [branch_0, branch_1, branch_2]\n    mixed = Concatenate(axis=3, name=\"Block35_4_Concatenate\")(branches)\n    up = Conv2D(256, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block35_4_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.17})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block35_4_Activation\")(x)\n\n    branch_0 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block35_5_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_5_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block35_5_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        32, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_5_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_5_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        32, 3, strides=1, padding=\"same\", use_bias=False, name=\"Block35_5_Branch_2_Conv2d_0c_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block35_5_Branch_2_Conv2d_0c_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Block35_5_Branch_2_Conv2d_0c_3x3_Activation\")(branch_2)\n    branches = [branch_0, branch_1, branch_2]\n    mixed = Concatenate(axis=3, name=\"Block35_5_Concatenate\")(branches)\n    up = Conv2D(256, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block35_5_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.17})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block35_5_Activation\")(x)\n\n    # Mixed 6a (Reduction-A block):\n    branch_0 = Conv2D(\n        384, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Mixed_6a_Branch_0_Conv2d_1a_3x3\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_6a_Branch_0_Conv2d_1a_3x3_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Mixed_6a_Branch_0_Conv2d_1a_3x3_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_6a_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_6a_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Mixed_6a_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192, 3, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_6a_Branch_1_Conv2d_0b_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_6a_Branch_1_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Mixed_6a_Branch_1_Conv2d_0b_3x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        256, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Mixed_6a_Branch_1_Conv2d_1a_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_6a_Branch_1_Conv2d_1a_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Mixed_6a_Branch_1_Conv2d_1a_3x3_Activation\")(branch_1)\n    branch_pool = MaxPooling2D(\n        3, strides=2, padding=\"valid\", name=\"Mixed_6a_Branch_2_MaxPool_1a_3x3\"\n    )(x)\n    branches = [branch_0, branch_1, branch_pool]\n    x = Concatenate(axis=3, name=\"Mixed_6a\")(branches)\n\n    # 10x Block17 (Inception-ResNet-B block):\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_1_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_1_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_1_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_1_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_1_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_1_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_1_Branch_1_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_1_Branch_1_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_1_Branch_1_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_1_Branch_1_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_1_Branch_1_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_1_Branch_1_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_1_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_1_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_1_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_2_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_2_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_2_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_2_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_2_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_2_Branch_2_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_2_Branch_2_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_2_Branch_2_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_2_Branch_2_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_2_Branch_2_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_2_Branch_2_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_2_Branch_2_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_2_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_2_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_2_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_3_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_3_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_3_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_3_Branch_3_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_3_Branch_3_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_3_Branch_3_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_3_Branch_3_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_3_Branch_3_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_3_Branch_3_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_3_Branch_3_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_3_Branch_3_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_3_Branch_3_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_3_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_3_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_3_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_4_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_4_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_4_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_4_Branch_4_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_4_Branch_4_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_4_Branch_4_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_4_Branch_4_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_4_Branch_4_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_4_Branch_4_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_4_Branch_4_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_4_Branch_4_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_4_Branch_4_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_4_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_4_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_4_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_5_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_5_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_5_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_5_Branch_5_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_5_Branch_5_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_5_Branch_5_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_5_Branch_5_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_5_Branch_5_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_5_Branch_5_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_5_Branch_5_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_5_Branch_5_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_5_Branch_5_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_5_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_5_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_5_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_6_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_6_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_6_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_6_Branch_6_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_6_Branch_6_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_6_Branch_6_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_6_Branch_6_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_6_Branch_6_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_6_Branch_6_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_6_Branch_6_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_6_Branch_6_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_6_Branch_6_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_6_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_6_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_6_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_7_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_7_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_7_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_7_Branch_7_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_7_Branch_7_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_7_Branch_7_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_7_Branch_7_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_7_Branch_7_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_7_Branch_7_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_7_Branch_7_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_7_Branch_7_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_7_Branch_7_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_7_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_7_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_7_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_8_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_8_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_8_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_8_Branch_8_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_8_Branch_8_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_8_Branch_8_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_8_Branch_8_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_8_Branch_8_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_8_Branch_8_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_8_Branch_8_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_8_Branch_8_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_8_Branch_8_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_8_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_8_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_8_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_9_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_9_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_9_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_9_Branch_9_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_9_Branch_9_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_9_Branch_9_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_9_Branch_9_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_9_Branch_9_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_9_Branch_9_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_9_Branch_9_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_9_Branch_9_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_9_Branch_9_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_9_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_9_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_9_Activation\")(x)\n\n    branch_0 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_10_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_10_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block17_10_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        128, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block17_10_Branch_10_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_10_Branch_10_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_10_Branch_10_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [1, 7],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_10_Branch_10_Conv2d_0b_1x7\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_10_Branch_10_Conv2d_0b_1x7_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_10_Branch_10_Conv2d_0b_1x7_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        128,\n        [7, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block17_10_Branch_10_Conv2d_0c_7x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block17_10_Branch_10_Conv2d_0c_7x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block17_10_Branch_10_Conv2d_0c_7x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block17_10_Concatenate\")(branches)\n    up = Conv2D(896, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block17_10_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.1})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block17_10_Activation\")(x)\n\n    # Mixed 7a (Reduction-B block): 8 x 8 x 2080\n    branch_0 = Conv2D(\n        256, 1, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_7a_Branch_0_Conv2d_0a_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_0_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Mixed_7a_Branch_0_Conv2d_0a_1x1_Activation\")(branch_0)\n    branch_0 = Conv2D(\n        384, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Mixed_7a_Branch_0_Conv2d_1a_3x3\"\n    )(branch_0)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_0_Conv2d_1a_3x3_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Mixed_7a_Branch_0_Conv2d_1a_3x3_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        256, 1, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_7a_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Mixed_7a_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        256, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Mixed_7a_Branch_1_Conv2d_1a_3x3\"\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_1_Conv2d_1a_3x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Mixed_7a_Branch_1_Conv2d_1a_3x3_Activation\")(branch_1)\n    branch_2 = Conv2D(\n        256, 1, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_7a_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Mixed_7a_Branch_2_Conv2d_0a_1x1_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        256, 3, strides=1, padding=\"same\", use_bias=False, name=\"Mixed_7a_Branch_2_Conv2d_0b_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_2_Conv2d_0b_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Mixed_7a_Branch_2_Conv2d_0b_3x3_Activation\")(branch_2)\n    branch_2 = Conv2D(\n        256, 3, strides=2, padding=\"valid\", use_bias=False, name=\"Mixed_7a_Branch_2_Conv2d_1a_3x3\"\n    )(branch_2)\n    branch_2 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Mixed_7a_Branch_2_Conv2d_1a_3x3_BatchNorm\",\n    )(branch_2)\n    branch_2 = Activation(\"relu\", name=\"Mixed_7a_Branch_2_Conv2d_1a_3x3_Activation\")(branch_2)\n    branch_pool = MaxPooling2D(\n        3, strides=2, padding=\"valid\", name=\"Mixed_7a_Branch_3_MaxPool_1a_3x3\"\n    )(x)\n    branches = [branch_0, branch_1, branch_2, branch_pool]\n    x = Concatenate(axis=3, name=\"Mixed_7a\")(branches)\n\n    # 5x Block8 (Inception-ResNet-C block):\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_1_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_1_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_1_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_1_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_1_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_1_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_1_Branch_1_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_1_Branch_1_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_1_Branch_1_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_1_Branch_1_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_1_Branch_1_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_1_Branch_1_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_1_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_1_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.2})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block8_1_Activation\")(x)\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_2_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_2_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_2_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_2_Branch_2_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_2_Branch_2_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_2_Branch_2_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_2_Branch_2_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_2_Branch_2_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_2_Branch_2_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_2_Branch_2_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_2_Branch_2_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_2_Branch_2_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_2_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_2_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.2})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block8_2_Activation\")(x)\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_3_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_3_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_3_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_3_Branch_3_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_3_Branch_3_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_3_Branch_3_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_3_Branch_3_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_3_Branch_3_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_3_Branch_3_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_3_Branch_3_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_3_Branch_3_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_3_Branch_3_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_3_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_3_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.2})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block8_3_Activation\")(x)\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_4_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_4_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_4_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_4_Branch_4_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_4_Branch_4_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_4_Branch_4_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_4_Branch_4_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_4_Branch_4_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_4_Branch_4_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_4_Branch_4_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_4_Branch_4_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_4_Branch_4_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_4_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_4_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.2})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block8_4_Activation\")(x)\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_5_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_5_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_5_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_5_Branch_5_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_5_Branch_5_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_5_Branch_5_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_5_Branch_5_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_5_Branch_5_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_5_Branch_5_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_5_Branch_5_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_5_Branch_5_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_5_Branch_5_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_5_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_5_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 0.2})(up)\n    x = add([x, up])\n    x = Activation(\"relu\", name=\"Block8_5_Activation\")(x)\n\n    branch_0 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_6_Branch_0_Conv2d_1x1\"\n    )(x)\n    branch_0 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_6_Branch_0_Conv2d_1x1_BatchNorm\",\n    )(branch_0)\n    branch_0 = Activation(\"relu\", name=\"Block8_6_Branch_0_Conv2d_1x1_Activation\")(branch_0)\n    branch_1 = Conv2D(\n        192, 1, strides=1, padding=\"same\", use_bias=False, name=\"Block8_6_Branch_1_Conv2d_0a_1x1\"\n    )(x)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_6_Branch_1_Conv2d_0a_1x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_6_Branch_1_Conv2d_0a_1x1_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [1, 3],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_6_Branch_1_Conv2d_0b_1x3\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_6_Branch_1_Conv2d_0b_1x3_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_6_Branch_1_Conv2d_0b_1x3_Activation\")(branch_1)\n    branch_1 = Conv2D(\n        192,\n        [3, 1],\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        name=\"Block8_6_Branch_1_Conv2d_0c_3x1\",\n    )(branch_1)\n    branch_1 = BatchNormalization(\n        axis=3,\n        momentum=0.995,\n        epsilon=0.001,\n        scale=False,\n        name=\"Block8_6_Branch_1_Conv2d_0c_3x1_BatchNorm\",\n    )(branch_1)\n    branch_1 = Activation(\"relu\", name=\"Block8_6_Branch_1_Conv2d_0c_3x1_Activation\")(branch_1)\n    branches = [branch_0, branch_1]\n    mixed = Concatenate(axis=3, name=\"Block8_6_Concatenate\")(branches)\n    up = Conv2D(1792, 1, strides=1, padding=\"same\", use_bias=True, name=\"Block8_6_Conv2d_1x1\")(\n        mixed\n    )\n    up = Lambda(scaling, output_shape=K.int_shape(up)[1:], arguments={\"scale\": 1})(up)\n    x = add([x, up])\n\n    # Classification block\n    x = GlobalAveragePooling2D(name=\"AvgPool\")(x)\n    x = Dropout(1.0 - 0.8, name=\"Dropout\")(x)\n    # Bottleneck\n    x = Dense(dimension, use_bias=False, name=\"Bottleneck\")(x)\n    x = BatchNormalization(momentum=0.995, epsilon=0.001, scale=False, name=\"Bottleneck_BatchNorm\")(\n        x\n    )\n\n    # Create model\n    model = Model(inputs, x, name=\"inception_resnet_v1\")\n\n    return model\n\n\ndef load_facenet128d_model(\n    url: str = FACENET128_WEIGHTS,\n) -> Model:\n    \"\"\"\n    Construct FaceNet-128d model, download weights and then load weights\n    Args:\n        dimension (int): construct FaceNet-128d or FaceNet-512d models\n    Returns:\n        model (Model)\n    \"\"\"\n    model = InceptionResNetV1()\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"facenet_weights.h5\", source_url=url\n    )\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    return model\n\n\ndef load_facenet512d_model(\n    url: str = FACENET512_WEIGHTS,\n) -> Model:\n    \"\"\"\n    Construct FaceNet-512d model, download its weights and load\n    Returns:\n        model (Model)\n    \"\"\"\n\n    model = InceptionResNetV1(dimension=512)\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"facenet512_weights.h5\", source_url=url\n    )\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    return model\n"
  },
  {
    "path": "deepface/models/facial_recognition/FbDeepFace.py",
    "content": "# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# --------------------------------\n# dependency configuration\n\ntf_major = package_utils.get_tf_major_version()\ntf_minor = package_utils.get_tf_minor_version()\n\nif tf_major == 1:\n    from keras.models import Model, Sequential\n    from keras.layers import (\n        Convolution2D,\n        MaxPooling2D,\n        Flatten,\n        Dense,\n        Dropout,\n    )\nelse:\n    from tensorflow.keras.models import Model, Sequential\n    from tensorflow.keras.layers import (\n        Convolution2D,\n        MaxPooling2D,\n        Flatten,\n        Dense,\n        Dropout,\n    )\n\n# pylint: disable=line-too-long, too-few-public-methods\nWEIGHTS_URL = \"https://github.com/swghosh/DeepFace/releases/download/weights-vggface2-2d-aligned/VGGFace2_DeepFace_weights_val-0.9034.h5.zip\"\n\n\nclass DeepFaceClient(FacialRecognition):\n    \"\"\"\n    Fb's DeepFace model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        # DeepFace requires tf 2.12 or less\n        if tf_major == 2 and tf_minor > 12:\n            # Ref: https://github.com/serengil/deepface/pull/1079\n            raise ValueError(\n                \"DeepFace model requires LocallyConnected2D but it is no longer supported\"\n                f\" after tf 2.12 but you have {tf_major}.{tf_minor}. You need to downgrade your tf.\"\n            )\n\n        self.model = load_model()\n        self.model_name = \"DeepFace\"\n        self.input_shape = (152, 152)\n        self.output_shape = 4096\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Construct DeepFace model, download its weights and load\n    \"\"\"\n    # we have some checks for this dependency in the init of client\n    # putting this in global causes library initialization\n    if tf_major == 1:\n        from keras.layers import LocallyConnected2D\n    else:\n        from tensorflow.keras.layers import LocallyConnected2D\n\n    base_model = Sequential()\n    base_model.add(\n        Convolution2D(32, (11, 11), activation=\"relu\", name=\"C1\", input_shape=(152, 152, 3))\n    )\n    base_model.add(MaxPooling2D(pool_size=3, strides=2, padding=\"same\", name=\"M2\"))\n    base_model.add(Convolution2D(16, (9, 9), activation=\"relu\", name=\"C3\"))\n    base_model.add(LocallyConnected2D(16, (9, 9), activation=\"relu\", name=\"L4\"))\n    base_model.add(LocallyConnected2D(16, (7, 7), strides=2, activation=\"relu\", name=\"L5\"))\n    base_model.add(LocallyConnected2D(16, (5, 5), activation=\"relu\", name=\"L6\"))\n    base_model.add(Flatten(name=\"F0\"))\n    base_model.add(Dense(4096, activation=\"relu\", name=\"F7\"))\n    base_model.add(Dropout(rate=0.5, name=\"D0\"))\n    base_model.add(Dense(8631, activation=\"softmax\", name=\"F8\"))\n\n    # ---------------------------------\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"VGGFace2_DeepFace_weights_val-0.9034.h5\", source_url=url, compress_type=\"zip\"\n    )\n\n    base_model = weight_utils.load_model_weights(model=base_model, weight_file=weight_file)\n\n    # drop F8 and D0. F7 is the representation layer.\n    deepface_model = Model(inputs=base_model.layers[0].input, outputs=base_model.layers[-3].output)\n\n    return deepface_model\n"
  },
  {
    "path": "deepface/models/facial_recognition/GhostFaceNet.py",
    "content": "# built-in dependencies\nfrom typing import Any\n\n# 3rd party dependencies\nimport tensorflow as tf\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\ntf_major = package_utils.get_tf_major_version()\nif tf_major == 1:\n    import keras\n    from keras import backend as K\n    from keras.models import Model\n    from keras.layers import (\n        Activation,\n        Add,\n        BatchNormalization,\n        Concatenate,\n        Conv2D,\n        DepthwiseConv2D,\n        GlobalAveragePooling2D,\n        Input,\n        Reshape,\n        Multiply,\n        ReLU,\n        PReLU,\n    )\nelse:\n    from tensorflow import keras\n    from tensorflow.keras import backend as K\n    from tensorflow.keras.models import Model\n    from tensorflow.keras.layers import (\n        Activation,\n        Add,\n        BatchNormalization,\n        Concatenate,\n        Conv2D,\n        DepthwiseConv2D,\n        GlobalAveragePooling2D,\n        Input,\n        Reshape,\n        Multiply,\n        ReLU,\n        PReLU,\n    )\n\n\n# pylint: disable=line-too-long, too-few-public-methods, no-else-return, unsubscriptable-object, comparison-with-callable\nWEIGHTS_URL = \"https://github.com/HamadYA/GhostFaceNets/releases/download/v1.2/GhostFaceNet_W1.3_S1_ArcFace.h5\"\n\n\nclass GhostFaceNetClient(FacialRecognition):\n    \"\"\"\n    GhostFaceNet model (GhostFaceNetV1 backbone)\n    Repo: https://github.com/HamadYA/GhostFaceNets\n    Pre-trained weights: https://github.com/HamadYA/GhostFaceNets/releases/tag/v1.2\n        GhostFaceNet_W1.3_S1_ArcFace.h5 ~ 16.5MB\n        Author declared that this backbone and pre-trained weights got 99.7667% accuracy on LFW\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model_name = \"GhostFaceNet\"\n        self.input_shape = (112, 112)\n        self.output_shape = 512\n        self.model = load_model()\n\n\ndef load_model() -> Model:\n    model = GhostFaceNetV1()\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"ghostfacenet_v1.h5\", source_url=WEIGHTS_URL\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    return model\n\n\ndef GhostFaceNetV1() -> Model:\n    \"\"\"\n    Build GhostFaceNetV1 model. Refactored from\n        github.com/HamadYA/GhostFaceNets/blob/main/backbones/ghost_model.py\n    Returns:\n        model (Model)\n    \"\"\"\n    inputs = Input(shape=(112, 112, 3))\n\n    out_channel = 20\n\n    nn = Conv2D(\n        out_channel,\n        (3, 3),\n        strides=1,\n        padding=\"same\",\n        use_bias=False,\n        kernel_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(inputs)\n\n    nn = BatchNormalization(axis=-1)(nn)\n    nn = Activation(\"relu\")(nn)\n\n    dwkernels = [3, 3, 3, 5, 5, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5]\n    exps = [20, 64, 92, 92, 156, 312, 260, 240, 240, 624, 872, 872, 1248, 1248, 1248, 664]\n    outs = [20, 32, 32, 52, 52, 104, 104, 104, 104, 144, 144, 208, 208, 208, 208, 208]\n    strides_set = [1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1]\n    reductions = [0, 0, 0, 24, 40, 0, 0, 0, 0, 156, 220, 220, 0, 312, 0, 168]\n\n    pre_out = out_channel\n    for dwk, stride, exp, out, reduction in zip(dwkernels, strides_set, exps, outs, reductions):\n        shortcut = not (out == pre_out and stride == 1)\n        nn = ghost_bottleneck(nn, dwk, stride, exp, out, reduction, shortcut)\n        pre_out = out\n\n    nn = Conv2D(\n        664,\n        (1, 1),\n        strides=(1, 1),\n        padding=\"valid\",\n        use_bias=False,\n        kernel_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(nn)\n    nn = BatchNormalization(axis=-1)(nn)\n    nn = Activation(\"relu\")(nn)\n\n    xx = Model(inputs=inputs, outputs=nn, name=\"GhostFaceNetV1\")\n\n    # post modelling\n    inputs = xx.inputs[0]\n    nn = xx.outputs[0]\n\n    nn = keras.layers.DepthwiseConv2D(nn.shape[1], use_bias=False, name=\"GDC_dw\")(nn)\n    nn = keras.layers.BatchNormalization(momentum=0.99, epsilon=0.001, name=\"GDC_batchnorm\")(nn)\n    nn = keras.layers.Conv2D(\n        512, 1, use_bias=True, kernel_initializer=\"glorot_normal\", name=\"GDC_conv\"\n    )(nn)\n    nn = keras.layers.Flatten(name=\"GDC_flatten\")(nn)\n\n    embedding = keras.layers.BatchNormalization(\n        momentum=0.99, epsilon=0.001, scale=True, name=\"pre_embedding\"\n    )(nn)\n    embedding_fp32 = keras.layers.Activation(\"linear\", dtype=\"float32\", name=\"embedding\")(embedding)\n\n    model = keras.models.Model(inputs, embedding_fp32, name=xx.name)\n    model = replace_relu_with_prelu(model=model)\n    return model\n\n\ndef se_module(inputs: Any, reduction: int) -> Any:\n    \"\"\"\n    Refactored from github.com/HamadYA/GhostFaceNets/blob/main/backbones/ghost_model.py\n    \"\"\"\n    # get the channel axis\n    channel_axis = 1 if K.image_data_format() == \"channels_first\" else -1\n    # filters = channel axis shape\n    filters = inputs.shape[channel_axis]\n\n    # from None x H x W x C to None x C\n    se = GlobalAveragePooling2D()(inputs)\n\n    # Reshape None x C to None 1 x 1 x C\n    se = Reshape((1, 1, filters))(se)\n\n    # Squeeze by using C*se_ratio. The size will be 1 x 1 x C*se_ratio\n    se = Conv2D(\n        reduction,\n        kernel_size=1,\n        use_bias=True,\n        kernel_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(se)\n    se = Activation(\"relu\")(se)\n\n    # Excitation using C filters. The size will be 1 x 1 x C\n    se = Conv2D(\n        filters,\n        kernel_size=1,\n        use_bias=True,\n        kernel_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(se)\n    se = Activation(\"hard_sigmoid\")(se)\n\n    return Multiply()([inputs, se])\n\n\ndef ghost_module(\n    inputs: Any, out: int, convkernel: int = 1, dwkernel: int = 3, add_activation: bool = True\n) -> Any:\n    \"\"\"\n    Refactored from github.com/HamadYA/GhostFaceNets/blob/main/backbones/ghost_model.py\n    \"\"\"\n    conv_out_channel = out // 2\n    cc = Conv2D(\n        conv_out_channel,\n        convkernel,\n        use_bias=False,\n        strides=(1, 1),\n        padding=\"same\",\n        kernel_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(inputs)\n    cc = BatchNormalization(axis=-1)(cc)\n    if add_activation:\n        cc = Activation(\"relu\")(cc)\n\n    nn = DepthwiseConv2D(\n        dwkernel,\n        1,\n        padding=\"same\",\n        use_bias=False,\n        depthwise_initializer=keras.initializers.VarianceScaling(\n            scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n        ),\n    )(cc)\n    nn = BatchNormalization(axis=-1)(nn)\n    if add_activation:\n        nn = Activation(\"relu\")(nn)\n    return Concatenate()([cc, nn])\n\n\ndef ghost_bottleneck(\n    inputs: Any,\n    dwkernel: int,\n    strides: int,\n    exp: int,\n    out: int,\n    reduction: int,\n    shortcut: bool = True,\n) -> Any:\n    \"\"\"\n    Refactored from github.com/HamadYA/GhostFaceNets/blob/main/backbones/ghost_model.py\n    \"\"\"\n    nn = ghost_module(inputs, exp, add_activation=True)\n    if strides > 1:\n        # Extra depth conv if strides higher than 1\n        nn = DepthwiseConv2D(\n            dwkernel,\n            strides,\n            padding=\"same\",\n            use_bias=False,\n            depthwise_initializer=keras.initializers.VarianceScaling(\n                scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n            ),\n        )(nn)\n        nn = BatchNormalization(axis=-1)(nn)\n\n    if reduction > 0:\n        # Squeeze and excite\n        nn = se_module(nn, reduction)\n\n    # Point-wise linear projection\n    nn = ghost_module(nn, out, add_activation=False)  # ghost2 = GhostModule(exp, out, relu=False)\n\n    if shortcut:\n        xx = DepthwiseConv2D(\n            dwkernel,\n            strides,\n            padding=\"same\",\n            use_bias=False,\n            depthwise_initializer=keras.initializers.VarianceScaling(\n                scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n            ),\n        )(inputs)\n        xx = BatchNormalization(axis=-1)(xx)\n        xx = Conv2D(\n            out,\n            (1, 1),\n            strides=(1, 1),\n            padding=\"valid\",\n            use_bias=False,\n            kernel_initializer=keras.initializers.VarianceScaling(\n                scale=2.0, mode=\"fan_out\", distribution=\"truncated_normal\"\n            ),\n        )(xx)\n        xx = BatchNormalization(axis=-1)(xx)\n    else:\n        xx = inputs\n    return Add()([xx, nn])\n\n\ndef replace_relu_with_prelu(model: Model) -> Model:\n    \"\"\"\n    Replaces relu activation function in the built model with prelu.\n        Refactored from github.com/HamadYA/GhostFaceNets/blob/main/backbones/ghost_model.py\n    Args:\n        model (Model): built model with relu activation functions\n    Returns\n        model (Model): built model with prelu activation functions\n    \"\"\"\n\n    def convert_relu(layer: Any) -> Any:\n        if isinstance(layer, ReLU) or (\n            isinstance(layer, Activation) and layer.activation == keras.activations.relu\n        ):\n            layer_name = layer.name.replace(\"_relu\", \"_prelu\")\n            return PReLU(\n                shared_axes=[1, 2],\n                alpha_initializer=tf.initializers.Constant(0.25),\n                name=layer_name,\n            )\n        return layer\n\n    input_tensors = keras.layers.Input(model.input_shape[1:])\n    return keras.models.clone_model(model, input_tensors=input_tensors, clone_function=convert_relu)\n"
  },
  {
    "path": "deepface/models/facial_recognition/OpenFace.py",
    "content": "# 3rd party dependencies\nimport tensorflow as tf\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 1:\n    from keras.models import Model\n    from keras.layers import Conv2D, ZeroPadding2D, Input, concatenate\n    from keras.layers import Dense, Activation, Lambda, Flatten, BatchNormalization\n    from keras.layers import MaxPooling2D, AveragePooling2D\n    from keras import backend as K\nelse:\n    from tensorflow.keras.models import Model\n    from tensorflow.keras.layers import Conv2D, ZeroPadding2D, Input, concatenate\n    from tensorflow.keras.layers import Dense, Activation, Lambda, Flatten, BatchNormalization\n    from tensorflow.keras.layers import MaxPooling2D, AveragePooling2D\n    from tensorflow.keras import backend as K\n\n# pylint: disable=unnecessary-lambda\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/openface_weights.h5\"\n)\n\n# ---------------------------------------\n\n\n# pylint: disable=too-few-public-methods\nclass OpenFaceClient(FacialRecognition):\n    \"\"\"\n    OpenFace model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"OpenFace\"\n        self.input_shape = (96, 96)\n        self.output_shape = 128\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Consturct OpenFace model, download its weights and load\n    Returns:\n        model (Model)\n    \"\"\"\n    myInput = Input(shape=(96, 96, 3))\n\n    x = ZeroPadding2D(padding=(3, 3), input_shape=(96, 96, 3))(myInput)\n    x = Conv2D(64, (7, 7), strides=(2, 2), name=\"conv1\")(x)\n    x = BatchNormalization(axis=3, epsilon=0.00001, name=\"bn1\")(x)\n    x = Activation(\"relu\")(x)\n    x = ZeroPadding2D(padding=(1, 1))(x)\n    x = MaxPooling2D(pool_size=3, strides=2)(x)\n    x = Lambda(lambda x: tf.nn.lrn(x, alpha=1e-4, beta=0.75), name=\"lrn_1\")(x)\n    x = Conv2D(64, (1, 1), name=\"conv2\")(x)\n    x = BatchNormalization(axis=3, epsilon=0.00001, name=\"bn2\")(x)\n    x = Activation(\"relu\")(x)\n    x = ZeroPadding2D(padding=(1, 1))(x)\n    x = Conv2D(192, (3, 3), name=\"conv3\")(x)\n    x = BatchNormalization(axis=3, epsilon=0.00001, name=\"bn3\")(x)\n    x = Activation(\"relu\")(x)\n    x = Lambda(lambda x: tf.nn.lrn(x, alpha=1e-4, beta=0.75), name=\"lrn_2\")(x)  # x is equal added\n    x = ZeroPadding2D(padding=(1, 1))(x)\n    x = MaxPooling2D(pool_size=3, strides=2)(x)\n\n    # Inception3a\n    inception_3a_3x3 = Conv2D(96, (1, 1), name=\"inception_3a_3x3_conv1\")(x)\n    inception_3a_3x3 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_3x3_bn1\")(\n        inception_3a_3x3\n    )\n    inception_3a_3x3 = Activation(\"relu\")(inception_3a_3x3)\n    inception_3a_3x3 = ZeroPadding2D(padding=(1, 1))(inception_3a_3x3)\n    inception_3a_3x3 = Conv2D(128, (3, 3), name=\"inception_3a_3x3_conv2\")(inception_3a_3x3)\n    inception_3a_3x3 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_3x3_bn2\")(\n        inception_3a_3x3\n    )\n    inception_3a_3x3 = Activation(\"relu\")(inception_3a_3x3)\n\n    inception_3a_5x5 = Conv2D(16, (1, 1), name=\"inception_3a_5x5_conv1\")(x)\n    inception_3a_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_5x5_bn1\")(\n        inception_3a_5x5\n    )\n    inception_3a_5x5 = Activation(\"relu\")(inception_3a_5x5)\n    inception_3a_5x5 = ZeroPadding2D(padding=(2, 2))(inception_3a_5x5)\n    inception_3a_5x5 = Conv2D(32, (5, 5), name=\"inception_3a_5x5_conv2\")(inception_3a_5x5)\n    inception_3a_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_5x5_bn2\")(\n        inception_3a_5x5\n    )\n    inception_3a_5x5 = Activation(\"relu\")(inception_3a_5x5)\n\n    inception_3a_pool = MaxPooling2D(pool_size=3, strides=2)(x)\n    inception_3a_pool = Conv2D(32, (1, 1), name=\"inception_3a_pool_conv\")(inception_3a_pool)\n    inception_3a_pool = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_pool_bn\")(\n        inception_3a_pool\n    )\n    inception_3a_pool = Activation(\"relu\")(inception_3a_pool)\n    inception_3a_pool = ZeroPadding2D(padding=((3, 4), (3, 4)))(inception_3a_pool)\n\n    inception_3a_1x1 = Conv2D(64, (1, 1), name=\"inception_3a_1x1_conv\")(x)\n    inception_3a_1x1 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3a_1x1_bn\")(\n        inception_3a_1x1\n    )\n    inception_3a_1x1 = Activation(\"relu\")(inception_3a_1x1)\n\n    inception_3a = concatenate(\n        [inception_3a_3x3, inception_3a_5x5, inception_3a_pool, inception_3a_1x1], axis=3\n    )\n\n    # Inception3b\n    inception_3b_3x3 = Conv2D(96, (1, 1), name=\"inception_3b_3x3_conv1\")(inception_3a)\n    inception_3b_3x3 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_3x3_bn1\")(\n        inception_3b_3x3\n    )\n    inception_3b_3x3 = Activation(\"relu\")(inception_3b_3x3)\n    inception_3b_3x3 = ZeroPadding2D(padding=(1, 1))(inception_3b_3x3)\n    inception_3b_3x3 = Conv2D(128, (3, 3), name=\"inception_3b_3x3_conv2\")(inception_3b_3x3)\n    inception_3b_3x3 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_3x3_bn2\")(\n        inception_3b_3x3\n    )\n    inception_3b_3x3 = Activation(\"relu\")(inception_3b_3x3)\n\n    inception_3b_5x5 = Conv2D(32, (1, 1), name=\"inception_3b_5x5_conv1\")(inception_3a)\n    inception_3b_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_5x5_bn1\")(\n        inception_3b_5x5\n    )\n    inception_3b_5x5 = Activation(\"relu\")(inception_3b_5x5)\n    inception_3b_5x5 = ZeroPadding2D(padding=(2, 2))(inception_3b_5x5)\n    inception_3b_5x5 = Conv2D(64, (5, 5), name=\"inception_3b_5x5_conv2\")(inception_3b_5x5)\n    inception_3b_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_5x5_bn2\")(\n        inception_3b_5x5\n    )\n    inception_3b_5x5 = Activation(\"relu\")(inception_3b_5x5)\n\n    inception_3b_pool = Lambda(lambda x: x**2, name=\"power2_3b\")(inception_3a)\n    inception_3b_pool = AveragePooling2D(pool_size=(3, 3), strides=(3, 3))(inception_3b_pool)\n    inception_3b_pool = Lambda(lambda x: x * 9, name=\"mult9_3b\")(inception_3b_pool)\n    inception_3b_pool = Lambda(lambda x: K.sqrt(x), name=\"sqrt_3b\")(inception_3b_pool)\n    inception_3b_pool = Conv2D(64, (1, 1), name=\"inception_3b_pool_conv\")(inception_3b_pool)\n    inception_3b_pool = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_pool_bn\")(\n        inception_3b_pool\n    )\n    inception_3b_pool = Activation(\"relu\")(inception_3b_pool)\n    inception_3b_pool = ZeroPadding2D(padding=(4, 4))(inception_3b_pool)\n\n    inception_3b_1x1 = Conv2D(64, (1, 1), name=\"inception_3b_1x1_conv\")(inception_3a)\n    inception_3b_1x1 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3b_1x1_bn\")(\n        inception_3b_1x1\n    )\n    inception_3b_1x1 = Activation(\"relu\")(inception_3b_1x1)\n\n    inception_3b = concatenate(\n        [inception_3b_3x3, inception_3b_5x5, inception_3b_pool, inception_3b_1x1], axis=3\n    )\n\n    # Inception3c\n    inception_3c_3x3 = Conv2D(128, (1, 1), strides=(1, 1), name=\"inception_3c_3x3_conv1\")(\n        inception_3b\n    )\n    inception_3c_3x3 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3c_3x3_bn1\")(\n        inception_3c_3x3\n    )\n    inception_3c_3x3 = Activation(\"relu\")(inception_3c_3x3)\n    inception_3c_3x3 = ZeroPadding2D(padding=(1, 1))(inception_3c_3x3)\n    inception_3c_3x3 = Conv2D(256, (3, 3), strides=(2, 2), name=\"inception_3c_3x3_conv\" + \"2\")(\n        inception_3c_3x3\n    )\n    inception_3c_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_3c_3x3_bn\" + \"2\"\n    )(inception_3c_3x3)\n    inception_3c_3x3 = Activation(\"relu\")(inception_3c_3x3)\n\n    inception_3c_5x5 = Conv2D(32, (1, 1), strides=(1, 1), name=\"inception_3c_5x5_conv1\")(\n        inception_3b\n    )\n    inception_3c_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_3c_5x5_bn1\")(\n        inception_3c_5x5\n    )\n    inception_3c_5x5 = Activation(\"relu\")(inception_3c_5x5)\n    inception_3c_5x5 = ZeroPadding2D(padding=(2, 2))(inception_3c_5x5)\n    inception_3c_5x5 = Conv2D(64, (5, 5), strides=(2, 2), name=\"inception_3c_5x5_conv\" + \"2\")(\n        inception_3c_5x5\n    )\n    inception_3c_5x5 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_3c_5x5_bn\" + \"2\"\n    )(inception_3c_5x5)\n    inception_3c_5x5 = Activation(\"relu\")(inception_3c_5x5)\n\n    inception_3c_pool = MaxPooling2D(pool_size=3, strides=2)(inception_3b)\n    inception_3c_pool = ZeroPadding2D(padding=((0, 1), (0, 1)))(inception_3c_pool)\n\n    inception_3c = concatenate([inception_3c_3x3, inception_3c_5x5, inception_3c_pool], axis=3)\n\n    # inception 4a\n    inception_4a_3x3 = Conv2D(96, (1, 1), strides=(1, 1), name=\"inception_4a_3x3_conv\" + \"1\")(\n        inception_3c\n    )\n    inception_4a_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4a_3x3_bn\" + \"1\"\n    )(inception_4a_3x3)\n    inception_4a_3x3 = Activation(\"relu\")(inception_4a_3x3)\n    inception_4a_3x3 = ZeroPadding2D(padding=(1, 1))(inception_4a_3x3)\n    inception_4a_3x3 = Conv2D(192, (3, 3), strides=(1, 1), name=\"inception_4a_3x3_conv\" + \"2\")(\n        inception_4a_3x3\n    )\n    inception_4a_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4a_3x3_bn\" + \"2\"\n    )(inception_4a_3x3)\n    inception_4a_3x3 = Activation(\"relu\")(inception_4a_3x3)\n\n    inception_4a_5x5 = Conv2D(32, (1, 1), strides=(1, 1), name=\"inception_4a_5x5_conv1\")(\n        inception_3c\n    )\n    inception_4a_5x5 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_4a_5x5_bn1\")(\n        inception_4a_5x5\n    )\n    inception_4a_5x5 = Activation(\"relu\")(inception_4a_5x5)\n    inception_4a_5x5 = ZeroPadding2D(padding=(2, 2))(inception_4a_5x5)\n    inception_4a_5x5 = Conv2D(64, (5, 5), strides=(1, 1), name=\"inception_4a_5x5_conv\" + \"2\")(\n        inception_4a_5x5\n    )\n    inception_4a_5x5 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4a_5x5_bn\" + \"2\"\n    )(inception_4a_5x5)\n    inception_4a_5x5 = Activation(\"relu\")(inception_4a_5x5)\n\n    inception_4a_pool = Lambda(lambda x: x**2, name=\"power2_4a\")(inception_3c)\n    inception_4a_pool = AveragePooling2D(pool_size=(3, 3), strides=(3, 3))(inception_4a_pool)\n    inception_4a_pool = Lambda(lambda x: x * 9, name=\"mult9_4a\")(inception_4a_pool)\n    inception_4a_pool = Lambda(lambda x: K.sqrt(x), name=\"sqrt_4a\")(inception_4a_pool)\n\n    inception_4a_pool = Conv2D(128, (1, 1), strides=(1, 1), name=\"inception_4a_pool_conv\" + \"\")(\n        inception_4a_pool\n    )\n    inception_4a_pool = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4a_pool_bn\" + \"\"\n    )(inception_4a_pool)\n    inception_4a_pool = Activation(\"relu\")(inception_4a_pool)\n    inception_4a_pool = ZeroPadding2D(padding=(2, 2))(inception_4a_pool)\n\n    inception_4a_1x1 = Conv2D(256, (1, 1), strides=(1, 1), name=\"inception_4a_1x1_conv\" + \"\")(\n        inception_3c\n    )\n    inception_4a_1x1 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_4a_1x1_bn\" + \"\")(\n        inception_4a_1x1\n    )\n    inception_4a_1x1 = Activation(\"relu\")(inception_4a_1x1)\n\n    inception_4a = concatenate(\n        [inception_4a_3x3, inception_4a_5x5, inception_4a_pool, inception_4a_1x1], axis=3\n    )\n\n    # inception4e\n    inception_4e_3x3 = Conv2D(160, (1, 1), strides=(1, 1), name=\"inception_4e_3x3_conv\" + \"1\")(\n        inception_4a\n    )\n    inception_4e_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4e_3x3_bn\" + \"1\"\n    )(inception_4e_3x3)\n    inception_4e_3x3 = Activation(\"relu\")(inception_4e_3x3)\n    inception_4e_3x3 = ZeroPadding2D(padding=(1, 1))(inception_4e_3x3)\n    inception_4e_3x3 = Conv2D(256, (3, 3), strides=(2, 2), name=\"inception_4e_3x3_conv\" + \"2\")(\n        inception_4e_3x3\n    )\n    inception_4e_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4e_3x3_bn\" + \"2\"\n    )(inception_4e_3x3)\n    inception_4e_3x3 = Activation(\"relu\")(inception_4e_3x3)\n\n    inception_4e_5x5 = Conv2D(64, (1, 1), strides=(1, 1), name=\"inception_4e_5x5_conv\" + \"1\")(\n        inception_4a\n    )\n    inception_4e_5x5 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4e_5x5_bn\" + \"1\"\n    )(inception_4e_5x5)\n    inception_4e_5x5 = Activation(\"relu\")(inception_4e_5x5)\n    inception_4e_5x5 = ZeroPadding2D(padding=(2, 2))(inception_4e_5x5)\n    inception_4e_5x5 = Conv2D(128, (5, 5), strides=(2, 2), name=\"inception_4e_5x5_conv\" + \"2\")(\n        inception_4e_5x5\n    )\n    inception_4e_5x5 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_4e_5x5_bn\" + \"2\"\n    )(inception_4e_5x5)\n    inception_4e_5x5 = Activation(\"relu\")(inception_4e_5x5)\n\n    inception_4e_pool = MaxPooling2D(pool_size=3, strides=2)(inception_4a)\n    inception_4e_pool = ZeroPadding2D(padding=((0, 1), (0, 1)))(inception_4e_pool)\n\n    inception_4e = concatenate([inception_4e_3x3, inception_4e_5x5, inception_4e_pool], axis=3)\n\n    # inception5a\n    inception_5a_3x3 = Conv2D(96, (1, 1), strides=(1, 1), name=\"inception_5a_3x3_conv\" + \"1\")(\n        inception_4e\n    )\n    inception_5a_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5a_3x3_bn\" + \"1\"\n    )(inception_5a_3x3)\n    inception_5a_3x3 = Activation(\"relu\")(inception_5a_3x3)\n    inception_5a_3x3 = ZeroPadding2D(padding=(1, 1))(inception_5a_3x3)\n    inception_5a_3x3 = Conv2D(384, (3, 3), strides=(1, 1), name=\"inception_5a_3x3_conv\" + \"2\")(\n        inception_5a_3x3\n    )\n    inception_5a_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5a_3x3_bn\" + \"2\"\n    )(inception_5a_3x3)\n    inception_5a_3x3 = Activation(\"relu\")(inception_5a_3x3)\n\n    inception_5a_pool = Lambda(lambda x: x**2, name=\"power2_5a\")(inception_4e)\n    inception_5a_pool = AveragePooling2D(pool_size=(3, 3), strides=(3, 3))(inception_5a_pool)\n    inception_5a_pool = Lambda(lambda x: x * 9, name=\"mult9_5a\")(inception_5a_pool)\n    inception_5a_pool = Lambda(lambda x: K.sqrt(x), name=\"sqrt_5a\")(inception_5a_pool)\n\n    inception_5a_pool = Conv2D(96, (1, 1), strides=(1, 1), name=\"inception_5a_pool_conv\" + \"\")(\n        inception_5a_pool\n    )\n    inception_5a_pool = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5a_pool_bn\" + \"\"\n    )(inception_5a_pool)\n    inception_5a_pool = Activation(\"relu\")(inception_5a_pool)\n    inception_5a_pool = ZeroPadding2D(padding=(1, 1))(inception_5a_pool)\n\n    inception_5a_1x1 = Conv2D(256, (1, 1), strides=(1, 1), name=\"inception_5a_1x1_conv\" + \"\")(\n        inception_4e\n    )\n    inception_5a_1x1 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_5a_1x1_bn\" + \"\")(\n        inception_5a_1x1\n    )\n    inception_5a_1x1 = Activation(\"relu\")(inception_5a_1x1)\n\n    inception_5a = concatenate([inception_5a_3x3, inception_5a_pool, inception_5a_1x1], axis=3)\n\n    # inception_5b\n    inception_5b_3x3 = Conv2D(96, (1, 1), strides=(1, 1), name=\"inception_5b_3x3_conv\" + \"1\")(\n        inception_5a\n    )\n    inception_5b_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5b_3x3_bn\" + \"1\"\n    )(inception_5b_3x3)\n    inception_5b_3x3 = Activation(\"relu\")(inception_5b_3x3)\n    inception_5b_3x3 = ZeroPadding2D(padding=(1, 1))(inception_5b_3x3)\n    inception_5b_3x3 = Conv2D(384, (3, 3), strides=(1, 1), name=\"inception_5b_3x3_conv\" + \"2\")(\n        inception_5b_3x3\n    )\n    inception_5b_3x3 = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5b_3x3_bn\" + \"2\"\n    )(inception_5b_3x3)\n    inception_5b_3x3 = Activation(\"relu\")(inception_5b_3x3)\n\n    inception_5b_pool = MaxPooling2D(pool_size=3, strides=2)(inception_5a)\n\n    inception_5b_pool = Conv2D(96, (1, 1), strides=(1, 1), name=\"inception_5b_pool_conv\" + \"\")(\n        inception_5b_pool\n    )\n    inception_5b_pool = BatchNormalization(\n        axis=3, epsilon=0.00001, name=\"inception_5b_pool_bn\" + \"\"\n    )(inception_5b_pool)\n    inception_5b_pool = Activation(\"relu\")(inception_5b_pool)\n\n    inception_5b_pool = ZeroPadding2D(padding=(1, 1))(inception_5b_pool)\n\n    inception_5b_1x1 = Conv2D(256, (1, 1), strides=(1, 1), name=\"inception_5b_1x1_conv\" + \"\")(\n        inception_5a\n    )\n    inception_5b_1x1 = BatchNormalization(axis=3, epsilon=0.00001, name=\"inception_5b_1x1_bn\" + \"\")(\n        inception_5b_1x1\n    )\n    inception_5b_1x1 = Activation(\"relu\")(inception_5b_1x1)\n\n    inception_5b = concatenate([inception_5b_3x3, inception_5b_pool, inception_5b_1x1], axis=3)\n\n    av_pool = AveragePooling2D(pool_size=(3, 3), strides=(1, 1))(inception_5b)\n    reshape_layer = Flatten()(av_pool)\n    dense_layer = Dense(128, name=\"dense_layer\")(reshape_layer)\n    norm_layer = Lambda(lambda x: K.l2_normalize(x, axis=1), name=\"norm_layer\")(dense_layer)\n\n    # Final Model\n    model = Model(inputs=[myInput], outputs=norm_layer)\n\n    # -----------------------------------\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"openface_weights.h5\", source_url=url\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    # -----------------------------------\n\n    return model\n"
  },
  {
    "path": "deepface/models/facial_recognition/SFace.py",
    "content": "# built-in dependencies\nfrom typing import Any, List, Union, cast\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2 as cv\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=line-too-long, too-few-public-methods\nWEIGHTS_URL = \"https://github.com/opencv/opencv_zoo/raw/main/models/face_recognition_sface/face_recognition_sface_2021dec.onnx\"\n\n\nclass SFaceClient(FacialRecognition):\n    \"\"\"\n    SFace model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"SFace\"\n        self.input_shape = (112, 112)\n        self.output_shape = 128\n\n    def forward(self, img: NDArray[Any]) -> Union[List[float], List[List[float]]]:\n        \"\"\"\n        Find embeddings with SFace model\n            This model necessitates the override of the forward method\n            because it is not a keras model.\n        Args:\n            img (np.ndarray): pre-loaded image in BGR\n        Returns\n            embeddings (list): multi-dimensional vector\n        \"\"\"\n        input_blob = (img * 255).astype(np.uint8)\n\n        embeddings = []\n        for i in range(input_blob.shape[0]):\n            embedding = self.model.model.feature(input_blob[i])\n            embeddings.append(embedding)\n        embeddings_np = np.concatenate(embeddings, axis=0)\n\n        if embeddings_np.shape[0] == 1:\n            return cast(List[float], embeddings_np[0].tolist())\n        return cast(List[List[float]], embeddings_np.tolist())\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Any:\n    \"\"\"\n    Construct SFace model, download its weights and load\n    \"\"\"\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"face_recognition_sface_2021dec.onnx\", source_url=url\n    )\n\n    model = SFaceWrapper(model_path=weight_file)\n\n    return model\n\n\nclass SFaceWrapper:\n    def __init__(self, model_path: str) -> None:\n        \"\"\"\n        SFace wrapper covering model construction, layer infos and predict\n        \"\"\"\n        try:\n            self.model = cv.FaceRecognizerSF.create(\n                model=model_path, config=\"\", backend_id=0, target_id=0\n            )\n        except Exception as err:\n            raise ValueError(\n                \"Exception while calling opencv.FaceRecognizerSF module.\"\n                + \"This is an optional dependency.\"\n                + \"You can install it as pip install opencv-contrib-python.\"\n            ) from err\n"
  },
  {
    "path": "deepface/models/facial_recognition/VGGFace.py",
    "content": "# built-in dependencies\nfrom typing import List, cast, Any\n\n# 3rd party dependencies\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import package_utils, weight_utils\nfrom deepface.modules import verification\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# ---------------------------------------\n\ntf_version = package_utils.get_tf_major_version()\nif tf_version == 1:\n    from keras.models import Model, Sequential\n    from keras.layers import (\n        Convolution2D,\n        ZeroPadding2D,\n        MaxPooling2D,\n        Flatten,\n        Dropout,\n        Activation,\n    )\nelse:\n    from tensorflow.keras.models import Model, Sequential\n    from tensorflow.keras.layers import (\n        Convolution2D,\n        ZeroPadding2D,\n        MaxPooling2D,\n        Flatten,\n        Dropout,\n        Activation,\n    )\n\n# ---------------------------------------\n\nWEIGHTS_URL = (\n    \"https://github.com/serengil/deepface_models/releases/download/v1.0/vgg_face_weights.h5\"\n)\n\n\n# pylint: disable=too-few-public-methods\nclass VggFaceClient(FacialRecognition):\n    \"\"\"\n    VGG-Face model class\n    \"\"\"\n\n    def __init__(self) -> None:\n        self.model = load_model()\n        self.model_name = \"VGG-Face\"\n        self.input_shape = (224, 224)\n        self.output_shape = 4096\n\n    def forward(self, img: NDArray[Any]) -> List[float]:\n        \"\"\"\n        Generates embeddings using the VGG-Face model.\n            This method incorporates an additional normalization layer.\n\n        Args:\n            img (np.ndarray): pre-loaded image in BGR\n        Returns\n            embeddings (list): multi-dimensional vector\n        \"\"\"\n        # model.predict causes memory issue when it is called in a for loop\n        # embedding = model.predict(img, verbose=0)[0].tolist()\n\n        # having normalization layer in descriptor troubles for some gpu users (e.g. issue 957, 966)\n        # instead we are now calculating it with traditional way not with keras backend\n        embedding = super().forward(img)\n        if isinstance(embedding, list) and len(embedding) > 0 and isinstance(embedding[0], list):\n            embedding = cast(List[List[float]], embedding)\n            embedding_norm = verification.l2_normalize(embedding, axis=1)\n        else:\n            embedding = cast(List[float], embedding)\n            embedding_norm = verification.l2_normalize(embedding)\n        return cast(List[float], embedding_norm.tolist())\n\n\ndef base_model() -> Sequential:\n    \"\"\"\n    Base model of VGG-Face being used for classification - not to find embeddings\n    Returns:\n        model (Sequential): model was trained to classify 2622 identities\n    \"\"\"\n    model = Sequential()\n    model.add(ZeroPadding2D((1, 1), input_shape=(224, 224, 3)))\n    model.add(Convolution2D(64, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(64, (3, 3), activation=\"relu\"))\n    model.add(MaxPooling2D((2, 2), strides=(2, 2)))\n\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(128, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(128, (3, 3), activation=\"relu\"))\n    model.add(MaxPooling2D((2, 2), strides=(2, 2)))\n\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(256, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(256, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(256, (3, 3), activation=\"relu\"))\n    model.add(MaxPooling2D((2, 2), strides=(2, 2)))\n\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(MaxPooling2D((2, 2), strides=(2, 2)))\n\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(ZeroPadding2D((1, 1)))\n    model.add(Convolution2D(512, (3, 3), activation=\"relu\"))\n    model.add(MaxPooling2D((2, 2), strides=(2, 2)))\n\n    model.add(Convolution2D(4096, (7, 7), activation=\"relu\"))\n    model.add(Dropout(0.5))\n    model.add(Convolution2D(4096, (1, 1), activation=\"relu\"))\n    model.add(Dropout(0.5))\n    model.add(Convolution2D(2622, (1, 1)))\n    model.add(Flatten())\n    model.add(Activation(\"softmax\"))\n\n    return model\n\n\ndef load_model(\n    url: str = WEIGHTS_URL,\n) -> Model:\n    \"\"\"\n    Final VGG-Face model being used for finding embeddings\n    Returns:\n        model (Model): returning 4096 dimensional vectors\n    \"\"\"\n\n    model = base_model()\n\n    weight_file = weight_utils.download_weights_if_necessary(\n        file_name=\"vgg_face_weights.h5\", source_url=url\n    )\n\n    model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    # 2622d dimensional model\n    # vgg_face_descriptor = Model(inputs=model.layers[0].input, outputs=model.layers[-2].output)\n\n    # 4096 dimensional model offers 6% to 14% increasement on accuracy!\n    # - softmax causes underfitting\n    # - added normalization layer to avoid underfitting with euclidean\n    # as described here: https://github.com/serengil/deepface/issues/944\n    base_model_output = Flatten()(model.layers[-5].output)\n    # keras backend's l2 normalization layer troubles some gpu users (e.g. issue 957, 966)\n    # base_model_output = Lambda(lambda x: K.l2_normalize(x, axis=1), name=\"norm_layer\")(\n    #     base_model_output\n    # )\n    vgg_face_descriptor = Model(inputs=model.layers[0].input, outputs=base_model_output)\n\n    return vgg_face_descriptor\n"
  },
  {
    "path": "deepface/models/facial_recognition/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/models/spoofing/FasNet.py",
    "content": "# built-in dependencies\nfrom typing import Union, Any, Tuple, List\n\n# 3rd party dependencies\nimport cv2\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.commons import weight_utils\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=line-too-long, too-few-public-methods, nested-min-max\nFIRST_WEIGHTS_URL = \"https://github.com/minivision-ai/Silent-Face-Anti-Spoofing/raw/master/resources/anti_spoof_models/2.7_80x80_MiniFASNetV2.pth\"\nSECOND_WEIGHTS_URL = \"https://github.com/minivision-ai/Silent-Face-Anti-Spoofing/raw/master/resources/anti_spoof_models/4_0_0_80x80_MiniFASNetV1SE.pth\"\n\n\nclass Fasnet:\n    \"\"\"\n    Mini Face Anti Spoofing Net Library from repo: github.com/minivision-ai/Silent-Face-Anti-Spoofing\n\n    Minivision's Silent-Face-Anti-Spoofing Repo licensed under Apache License 2.0\n    Ref: github.com/minivision-ai/Silent-Face-Anti-Spoofing/blob/master/src/model_lib/MiniFASNet.py\n    \"\"\"\n\n    def __init__(self) -> None:\n        # pytorch is an opitonal dependency, enforce it to be installed if class imported\n        try:\n            import torch\n        except Exception as err:\n            raise ValueError(\n                \"You must install torch with `pip install torch` command to use face anti spoofing module\"\n            ) from err\n\n        device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n        self.device = device\n\n        # download pre-trained models if not installed yet\n        first_model_weight_file = weight_utils.download_weights_if_necessary(\n            file_name=\"2.7_80x80_MiniFASNetV2.pth\",\n            source_url=FIRST_WEIGHTS_URL,\n        )\n\n        second_model_weight_file = weight_utils.download_weights_if_necessary(\n            file_name=\"4_0_0_80x80_MiniFASNetV1SE.pth\",\n            source_url=SECOND_WEIGHTS_URL,\n        )\n\n        # guarantees Fasnet imported and torch installed\n        from deepface.models.spoofing import FasNetBackbone\n\n        # Fasnet will use 2 distinct models to predict, then it will find the sum of predictions\n        # to make a final prediction\n\n        first_model = FasNetBackbone.MiniFASNetV2(conv6_kernel=(5, 5)).to(device)\n        second_model = FasNetBackbone.MiniFASNetV1SE(conv6_kernel=(5, 5)).to(device)\n\n        # load model weight for first model\n        state_dict = torch.load(first_model_weight_file, map_location=device)\n        keys = iter(state_dict)\n        first_layer_name = keys.__next__()\n\n        if first_layer_name.find(\"module.\") >= 0:\n            from collections import OrderedDict\n\n            new_state_dict = OrderedDict()\n            for key, value in state_dict.items():\n                name_key = key[7:]\n                new_state_dict[name_key] = value\n            first_model.load_state_dict(new_state_dict)\n        else:\n            first_model.load_state_dict(state_dict)\n\n        # load model weight for second model\n        state_dict = torch.load(second_model_weight_file, map_location=device)\n        keys = iter(state_dict)\n        first_layer_name = keys.__next__()\n\n        if first_layer_name.find(\"module.\") >= 0:\n            from collections import OrderedDict\n\n            new_state_dict = OrderedDict()\n            for key, value in state_dict.items():\n                name_key = key[7:]\n                new_state_dict[name_key] = value\n            second_model.load_state_dict(new_state_dict)\n        else:\n            second_model.load_state_dict(state_dict)\n\n        # evaluate models\n        _ = first_model.eval()\n        _ = second_model.eval()\n\n        self.first_model = first_model\n        self.second_model = second_model\n\n    def analyze(\n        self,\n        img: NDArray[Any],\n        facial_area: Union[List[Union[int, float]], Tuple[Union[int, float], ...]],\n    ) -> Tuple[bool, float]:\n        \"\"\"\n        Analyze a given image spoofed or not\n        Args:\n            img (np.ndarray): pre loaded image\n            facial_area (list or tuple): facial rectangle area coordinates with x, y, w, h respectively\n        Returns:\n            result (tuple): a result tuple consisting of is_real and score\n        \"\"\"\n        import torch\n        import torch.nn.functional as F\n\n        x, y, w, h = facial_area\n        first_img = crop(img, (x, y, w, h), 2.7, 80, 80)\n        second_img = crop(img, (x, y, w, h), 4, 80, 80)\n\n        test_transform = Compose(\n            [\n                ToTensor(),\n            ]\n        )\n\n        first_img = test_transform(first_img)\n        first_img = first_img.unsqueeze(0).to(self.device)\n\n        second_img = test_transform(second_img)\n        second_img = second_img.unsqueeze(0).to(self.device)\n\n        with torch.no_grad():\n            first_result = self.first_model.forward(first_img)\n            first_result = F.softmax(first_result).cpu().numpy()\n\n            second_result = self.second_model.forward(second_img)\n            second_result = F.softmax(second_result).cpu().numpy()\n\n        prediction = np.zeros((1, 3))\n        prediction += first_result\n        prediction += second_result\n\n        label = np.argmax(prediction)\n        is_real = True if label == 1 else False  # pylint: disable=simplifiable-if-expression\n        score = prediction[0][label] / 2\n\n        return is_real, score\n\n\n# subsdiary classes and functions\n\n\ndef to_tensor(pic: NDArray[Any]) -> Any:\n    \"\"\"Convert a ``numpy.ndarray`` to tensor.\n\n    See ``ToTensor`` for more details.\n\n    Args:\n        pic (PIL Image or numpy.ndarray): Image to be converted to tensor.\n\n    Returns:\n        Tensor: Converted image.\n    \"\"\"\n    import torch\n\n    # handle numpy array\n    # IR image channel=1: modify by lzc --> 20190730\n    if pic.ndim == 2:\n        pic = pic.reshape((pic.shape[0], pic.shape[1], 1))\n\n    img = torch.from_numpy(pic.transpose((2, 0, 1)))\n    # backward compatibility\n    # return img.float().div(255)  modify by zkx\n    return img.float()\n\n\nclass Compose:\n    def __init__(self, transforms: List[Any]) -> None:\n        self.transforms = transforms\n\n    def __call__(self, img: NDArray[Any]) -> NDArray[Any]:\n        for t in self.transforms:\n            img = t(img)\n        return img\n\n\nclass ToTensor:\n    def __call__(self, pic: Any) -> Any:\n        return to_tensor(pic)\n\n\ndef _get_new_box(\n    src_w: int,\n    src_h: int,\n    bbox: Union[List[Union[int, float]], Tuple[Union[int, float], ...]],\n    scale: float,\n) -> Tuple[int, int, int, int]:\n    x = bbox[0]\n    y = bbox[1]\n    box_w = bbox[2]\n    box_h = bbox[3]\n    scale = min((src_h - 1) / box_h, min((src_w - 1) / box_w, scale))\n    new_width = box_w * scale\n    new_height = box_h * scale\n    center_x, center_y = box_w / 2 + x, box_h / 2 + y\n    left_top_x = center_x - new_width / 2\n    left_top_y = center_y - new_height / 2\n    right_bottom_x = center_x + new_width / 2\n    right_bottom_y = center_y + new_height / 2\n    if left_top_x < 0:\n        right_bottom_x -= left_top_x\n        left_top_x = 0\n    if left_top_y < 0:\n        right_bottom_y -= left_top_y\n        left_top_y = 0\n    if right_bottom_x > src_w - 1:\n        left_top_x -= right_bottom_x - src_w + 1\n        right_bottom_x = src_w - 1\n    if right_bottom_y > src_h - 1:\n        left_top_y -= right_bottom_y - src_h + 1\n        right_bottom_y = src_h - 1\n    return int(left_top_x), int(left_top_y), int(right_bottom_x), int(right_bottom_y)\n\n\ndef crop(\n    org_img: NDArray[Any],\n    bbox: Union[List[Union[int, float]], Tuple[Union[int, float], ...]],\n    scale: float,\n    out_w: int,\n    out_h: int,\n) -> Any:\n    src_h, src_w, _ = np.shape(org_img)\n    left_top_x, left_top_y, right_bottom_x, right_bottom_y = _get_new_box(src_w, src_h, bbox, scale)\n    img = org_img[left_top_y : right_bottom_y + 1, left_top_x : right_bottom_x + 1]\n    dst_img = cv2.resize(img, (out_w, out_h))\n    return dst_img\n"
  },
  {
    "path": "deepface/models/spoofing/FasNetBackbone.py",
    "content": "# These classes are copied from Minivision's Silent-Face-Anti-Spoofing Repo\n# licensed under Apache License 2.0\n# Ref: github.com/minivision-ai/Silent-Face-Anti-Spoofing/blob/master/src/model_lib/MiniFASNet.py\n\n# built-in dependencies\nfrom typing import Tuple, Any, List\n\n# 3rd party dependencies\nimport torch\nfrom torch.nn import (\n    Linear,\n    Conv2d,\n    BatchNorm1d,\n    BatchNorm2d,\n    PReLU,\n    ReLU,\n    Sigmoid,\n    AdaptiveAvgPool2d,\n    Sequential,\n    Module,\n)\n\n# pylint: disable=super-with-arguments, too-many-instance-attributes, unused-argument, redefined-builtin, too-few-public-methods\n\nkeep_dict = {\n    \"1.8M\": [\n        32,\n        32,\n        103,\n        103,\n        64,\n        13,\n        13,\n        64,\n        26,\n        26,\n        64,\n        13,\n        13,\n        64,\n        52,\n        52,\n        64,\n        231,\n        231,\n        128,\n        154,\n        154,\n        128,\n        52,\n        52,\n        128,\n        26,\n        26,\n        128,\n        52,\n        52,\n        128,\n        26,\n        26,\n        128,\n        26,\n        26,\n        128,\n        308,\n        308,\n        128,\n        26,\n        26,\n        128,\n        26,\n        26,\n        128,\n        512,\n        512,\n    ],\n    \"1.8M_\": [\n        32,\n        32,\n        103,\n        103,\n        64,\n        13,\n        13,\n        64,\n        13,\n        13,\n        64,\n        13,\n        13,\n        64,\n        13,\n        13,\n        64,\n        231,\n        231,\n        128,\n        231,\n        231,\n        128,\n        52,\n        52,\n        128,\n        26,\n        26,\n        128,\n        77,\n        77,\n        128,\n        26,\n        26,\n        128,\n        26,\n        26,\n        128,\n        308,\n        308,\n        128,\n        26,\n        26,\n        128,\n        26,\n        26,\n        128,\n        512,\n        512,\n    ],\n}\n\n\ndef MiniFASNetV2(\n    embedding_size: int = 128,\n    conv6_kernel: Tuple[int, int] = (7, 7),\n    drop_p: float = 0.2,\n    num_classes: int = 3,\n    img_channel: int = 3,\n) -> \"MiniFASNet\":\n    return MiniFASNet(\n        keep_dict[\"1.8M_\"], embedding_size, conv6_kernel, drop_p, num_classes, img_channel\n    )\n\n\ndef MiniFASNetV1SE(\n    embedding_size: int = 128,\n    conv6_kernel: Tuple[int, int] = (7, 7),\n    drop_p: float = 0.75,\n    num_classes: int = 3,\n    img_channel: int = 3,\n) -> \"MiniFASNetSE\":\n    return MiniFASNetSE(\n        keep_dict[\"1.8M\"], embedding_size, conv6_kernel, drop_p, num_classes, img_channel\n    )\n\n\nclass Flatten(Module):  # type: ignore[misc]\n    def forward(self, input: Any) -> Any:\n        return input.view(input.size(0), -1)\n\n\nclass Conv_block(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        in_c: Any,\n        out_c: Any,\n        kernel: Tuple[int, int] = (1, 1),\n        stride: Tuple[int, int] = (1, 1),\n        padding: Tuple[int, int] = (0, 0),\n        groups: int = 1,\n    ):\n        super(Conv_block, self).__init__()\n        self.conv = Conv2d(\n            in_c,\n            out_c,\n            kernel_size=kernel,\n            groups=groups,\n            stride=stride,\n            padding=padding,\n            bias=False,\n        )\n        self.bn = BatchNorm2d(out_c)\n        self.prelu = PReLU(out_c)\n\n    def forward(self, x: Any) -> Any:\n        x = self.conv(x)\n        x = self.bn(x)\n        x = self.prelu(x)\n        return x\n\n\nclass Linear_block(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        in_c: Any,\n        out_c: Any,\n        kernel: Tuple[int, int] = (1, 1),\n        stride: Tuple[int, int] = (1, 1),\n        padding: Tuple[int, int] = (0, 0),\n        groups: int = 1,\n    ) -> None:\n        super(Linear_block, self).__init__()\n        self.conv = Conv2d(\n            in_c,\n            out_channels=out_c,\n            kernel_size=kernel,\n            groups=groups,\n            stride=stride,\n            padding=padding,\n            bias=False,\n        )\n        self.bn = BatchNorm2d(out_c)\n\n    def forward(self, x: Any) -> Any:\n        x = self.conv(x)\n        x = self.bn(x)\n        return x\n\n\nclass Depth_Wise(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        c1: Any,\n        c2: Any,\n        c3: Any,\n        residual: bool = False,\n        kernel: Tuple[int, int] = (3, 3),\n        stride: Tuple[int, int] = (2, 2),\n        padding: Tuple[int, int] = (1, 1),\n        groups: int = 1,\n    ) -> None:\n        super(Depth_Wise, self).__init__()\n        c1_in, c1_out = c1\n        c2_in, c2_out = c2\n        c3_in, c3_out = c3\n        self.conv = Conv_block(c1_in, out_c=c1_out, kernel=(1, 1), padding=(0, 0), stride=(1, 1))\n        self.conv_dw = Conv_block(\n            c2_in, c2_out, groups=c2_in, kernel=kernel, padding=padding, stride=stride\n        )\n        self.project = Linear_block(c3_in, c3_out, kernel=(1, 1), padding=(0, 0), stride=(1, 1))\n        self.residual = residual\n\n    def forward(self, x: Any) -> Any:\n        if self.residual:\n            short_cut = x\n        x = self.conv(x)\n        x = self.conv_dw(x)\n        x = self.project(x)\n        if self.residual:\n            output = short_cut + x\n        else:\n            output = x\n        return output\n\n\nclass Depth_Wise_SE(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        c1: Any,\n        c2: Any,\n        c3: Any,\n        residual: bool = False,\n        kernel: Tuple[int, int] = (3, 3),\n        stride: Tuple[int, int] = (2, 2),\n        padding: Tuple[int, int] = (1, 1),\n        groups: int = 1,\n        se_reduct: int = 8,\n    ) -> None:\n        super(Depth_Wise_SE, self).__init__()\n        c1_in, c1_out = c1\n        c2_in, c2_out = c2\n        c3_in, c3_out = c3\n        self.conv = Conv_block(c1_in, out_c=c1_out, kernel=(1, 1), padding=(0, 0), stride=(1, 1))\n        self.conv_dw = Conv_block(\n            c2_in, c2_out, groups=c2_in, kernel=kernel, padding=padding, stride=stride\n        )\n        self.project = Linear_block(c3_in, c3_out, kernel=(1, 1), padding=(0, 0), stride=(1, 1))\n        self.residual = residual\n        self.se_module = SEModule(c3_out, se_reduct)\n\n    def forward(self, x: Any) -> Any:\n        if self.residual:\n            short_cut = x\n        x = self.conv(x)\n        x = self.conv_dw(x)\n        x = self.project(x)\n        if self.residual:\n            x = self.se_module(x)\n            output = short_cut + x\n        else:\n            output = x\n        return output\n\n\nclass SEModule(Module):  # type: ignore[misc]\n    def __init__(self, channels: int, reduction: int):\n        super(SEModule, self).__init__()\n        self.avg_pool = AdaptiveAvgPool2d(1)\n        self.fc1 = Conv2d(channels, channels // reduction, kernel_size=1, padding=0, bias=False)\n        self.bn1 = BatchNorm2d(channels // reduction)\n        self.relu = ReLU(inplace=True)\n        self.fc2 = Conv2d(channels // reduction, channels, kernel_size=1, padding=0, bias=False)\n        self.bn2 = BatchNorm2d(channels)\n        self.sigmoid = Sigmoid()\n\n    def forward(self, x: Any) -> Any:\n        module_input = x\n        x = self.avg_pool(x)\n        x = self.fc1(x)\n        x = self.bn1(x)\n        x = self.relu(x)\n        x = self.fc2(x)\n        x = self.bn2(x)\n        x = self.sigmoid(x)\n        return module_input * x\n\n\nclass Residual(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        c1: Any,\n        c2: Any,\n        c3: Any,\n        num_block: int,\n        groups: int,\n        kernel: Tuple[int, int] = (3, 3),\n        stride: Tuple[int, int] = (1, 1),\n        padding: Tuple[int, int] = (1, 1),\n    ) -> None:\n        super(Residual, self).__init__()\n        modules = []\n        for i in range(num_block):\n            c1_tuple = c1[i]\n            c2_tuple = c2[i]\n            c3_tuple = c3[i]\n            modules.append(\n                Depth_Wise(\n                    c1_tuple,\n                    c2_tuple,\n                    c3_tuple,\n                    residual=True,\n                    kernel=kernel,\n                    padding=padding,\n                    stride=stride,\n                    groups=groups,\n                )\n            )\n        self.model = Sequential(*modules)\n\n    def forward(self, x: Any) -> Any:\n        return self.model(x)\n\n\nclass ResidualSE(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        c1: Any,\n        c2: Any,\n        c3: Any,\n        num_block: int,\n        groups: Any,\n        kernel: Tuple[int, int] = (3, 3),\n        stride: Tuple[int, int] = (1, 1),\n        padding: Tuple[int, int] = (1, 1),\n        se_reduct: int = 4,\n    ):\n        super(ResidualSE, self).__init__()\n        modules = []\n        for i in range(num_block):\n            c1_tuple = c1[i]\n            c2_tuple = c2[i]\n            c3_tuple = c3[i]\n            if i == num_block - 1:\n                modules.append(\n                    Depth_Wise_SE(\n                        c1_tuple,\n                        c2_tuple,\n                        c3_tuple,\n                        residual=True,\n                        kernel=kernel,\n                        padding=padding,\n                        stride=stride,\n                        groups=groups,\n                        se_reduct=se_reduct,\n                    )\n                )\n            else:\n                modules.append(\n                    Depth_Wise(  # type: ignore[arg-type]\n                        c1_tuple,\n                        c2_tuple,\n                        c3_tuple,\n                        residual=True,\n                        kernel=kernel,\n                        padding=padding,\n                        stride=stride,\n                        groups=groups,\n                    )\n                )\n        self.model = Sequential(*modules)\n\n    def forward(self, x: Any) -> Any:\n        return self.model(x)\n\n\nclass MiniFASNet(Module):  # type: ignore[misc]\n    def __init__(\n        self,\n        keep: List[int],\n        embedding_size: int,\n        conv6_kernel: Tuple[int, int] = (7, 7),\n        drop_p: float = 0.0,\n        num_classes: int = 3,\n        img_channel: int = 3,\n    ):\n        super(MiniFASNet, self).__init__()\n        self.embedding_size = embedding_size\n\n        self.conv1 = Conv_block(img_channel, keep[0], kernel=(3, 3), stride=(2, 2), padding=(1, 1))\n        self.conv2_dw = Conv_block(\n            keep[0], keep[1], kernel=(3, 3), stride=(1, 1), padding=(1, 1), groups=keep[1]\n        )\n\n        c1 = [(keep[1], keep[2])]\n        c2 = [(keep[2], keep[3])]\n        c3 = [(keep[3], keep[4])]\n\n        self.conv_23 = Depth_Wise(\n            c1[0], c2[0], c3[0], kernel=(3, 3), stride=(2, 2), padding=(1, 1), groups=keep[3]\n        )\n\n        c1 = [(keep[4], keep[5]), (keep[7], keep[8]), (keep[10], keep[11]), (keep[13], keep[14])]\n        c2 = [(keep[5], keep[6]), (keep[8], keep[9]), (keep[11], keep[12]), (keep[14], keep[15])]\n        c3 = [(keep[6], keep[7]), (keep[9], keep[10]), (keep[12], keep[13]), (keep[15], keep[16])]\n\n        self.conv_3 = Residual(\n            c1, c2, c3, num_block=4, groups=keep[4], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n\n        c1 = [(keep[16], keep[17])]\n        c2 = [(keep[17], keep[18])]\n        c3 = [(keep[18], keep[19])]\n\n        self.conv_34 = Depth_Wise(\n            c1[0], c2[0], c3[0], kernel=(3, 3), stride=(2, 2), padding=(1, 1), groups=keep[19]\n        )\n\n        c1 = [\n            (keep[19], keep[20]),\n            (keep[22], keep[23]),\n            (keep[25], keep[26]),\n            (keep[28], keep[29]),\n            (keep[31], keep[32]),\n            (keep[34], keep[35]),\n        ]\n        c2 = [\n            (keep[20], keep[21]),\n            (keep[23], keep[24]),\n            (keep[26], keep[27]),\n            (keep[29], keep[30]),\n            (keep[32], keep[33]),\n            (keep[35], keep[36]),\n        ]\n        c3 = [\n            (keep[21], keep[22]),\n            (keep[24], keep[25]),\n            (keep[27], keep[28]),\n            (keep[30], keep[31]),\n            (keep[33], keep[34]),\n            (keep[36], keep[37]),\n        ]\n\n        self.conv_4 = Residual(\n            c1, c2, c3, num_block=6, groups=keep[19], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n\n        c1 = [(keep[37], keep[38])]\n        c2 = [(keep[38], keep[39])]\n        c3 = [(keep[39], keep[40])]\n\n        self.conv_45 = Depth_Wise(\n            c1[0], c2[0], c3[0], kernel=(3, 3), stride=(2, 2), padding=(1, 1), groups=keep[40]\n        )\n\n        c1 = [(keep[40], keep[41]), (keep[43], keep[44])]\n        c2 = [(keep[41], keep[42]), (keep[44], keep[45])]\n        c3 = [(keep[42], keep[43]), (keep[45], keep[46])]\n\n        self.conv_5 = Residual(\n            c1, c2, c3, num_block=2, groups=keep[40], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n        self.conv_6_sep = Conv_block(\n            keep[46], keep[47], kernel=(1, 1), stride=(1, 1), padding=(0, 0)\n        )\n        self.conv_6_dw = Linear_block(\n            keep[47], keep[48], groups=keep[48], kernel=conv6_kernel, stride=(1, 1), padding=(0, 0)\n        )\n        self.conv_6_flatten = Flatten()\n        self.linear = Linear(512, embedding_size, bias=False)\n        self.bn = BatchNorm1d(embedding_size)\n        self.drop = torch.nn.Dropout(p=drop_p)\n        self.prob = Linear(embedding_size, num_classes, bias=False)\n\n    def forward(self, x: Any) -> Any:\n        out = self.conv1(x)\n        out = self.conv2_dw(out)\n        out = self.conv_23(out)\n        out = self.conv_3(out)\n        out = self.conv_34(out)\n        out = self.conv_4(out)\n        out = self.conv_45(out)\n        out = self.conv_5(out)\n        out = self.conv_6_sep(out)\n        out = self.conv_6_dw(out)\n        out = self.conv_6_flatten(out)\n        if self.embedding_size != 512:\n            out = self.linear(out)\n        out = self.bn(out)\n        out = self.drop(out)\n        out = self.prob(out)\n        return out\n\n\nclass MiniFASNetSE(MiniFASNet):\n    def __init__(\n        self,\n        keep: List[int],\n        embedding_size: int,\n        conv6_kernel: Tuple[int, int] = (7, 7),\n        drop_p: float = 0.75,\n        num_classes: int = 4,\n        img_channel: int = 3,\n    ):\n        super(MiniFASNetSE, self).__init__(\n            keep=keep,\n            embedding_size=embedding_size,\n            conv6_kernel=conv6_kernel,\n            drop_p=drop_p,\n            num_classes=num_classes,\n            img_channel=img_channel,\n        )\n\n        c1 = [(keep[4], keep[5]), (keep[7], keep[8]), (keep[10], keep[11]), (keep[13], keep[14])]\n        c2 = [(keep[5], keep[6]), (keep[8], keep[9]), (keep[11], keep[12]), (keep[14], keep[15])]\n        c3 = [(keep[6], keep[7]), (keep[9], keep[10]), (keep[12], keep[13]), (keep[15], keep[16])]\n\n        self.conv_3 = ResidualSE(  # type: ignore[assignment]\n            c1, c2, c3, num_block=4, groups=keep[4], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n\n        c1 = [\n            (keep[19], keep[20]),\n            (keep[22], keep[23]),\n            (keep[25], keep[26]),\n            (keep[28], keep[29]),\n            (keep[31], keep[32]),\n            (keep[34], keep[35]),\n        ]\n        c2 = [\n            (keep[20], keep[21]),\n            (keep[23], keep[24]),\n            (keep[26], keep[27]),\n            (keep[29], keep[30]),\n            (keep[32], keep[33]),\n            (keep[35], keep[36]),\n        ]\n        c3 = [\n            (keep[21], keep[22]),\n            (keep[24], keep[25]),\n            (keep[27], keep[28]),\n            (keep[30], keep[31]),\n            (keep[33], keep[34]),\n            (keep[36], keep[37]),\n        ]\n\n        self.conv_4 = ResidualSE(  # type: ignore[assignment]\n            c1, c2, c3, num_block=6, groups=keep[19], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n\n        c1 = [(keep[40], keep[41]), (keep[43], keep[44])]\n        c2 = [(keep[41], keep[42]), (keep[44], keep[45])]\n        c3 = [(keep[42], keep[43]), (keep[45], keep[46])]\n        self.conv_5 = ResidualSE(  # type: ignore[assignment]\n            c1, c2, c3, num_block=2, groups=keep[40], kernel=(3, 3), stride=(1, 1), padding=(1, 1)\n        )\n"
  },
  {
    "path": "deepface/models/spoofing/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/modules/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/modules/database/__init__.py",
    "content": ""
  },
  {
    "path": "deepface/modules/database/inventory.py",
    "content": "# built-in dependencies\nfrom typing import TypedDict, Type, Dict\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.database.postgres import PostgresClient\nfrom deepface.modules.database.pgvector import PGVectorClient\nfrom deepface.modules.database.mongo import MongoDbClient as MongoClient\nfrom deepface.modules.database.weaviate import WeaviateClient\nfrom deepface.modules.database.neo4j import Neo4jClient\nfrom deepface.modules.database.pinecone import PineconeClient\n\n\nclass DatabaseSpec(TypedDict):\n    is_vector_db: bool\n    connection_string: str\n    client: Type[\"Database\"]\n\n\ndatabase_inventory: Dict[str, DatabaseSpec] = {\n    \"postgres\": {\n        \"is_vector_db\": False,\n        \"connection_string\": \"DEEPFACE_POSTGRES_URI\",\n        \"client\": PostgresClient,\n    },\n    \"mongo\": {\n        \"is_vector_db\": False,\n        \"connection_string\": \"DEEPFACE_MONGO_URI\",\n        \"client\": MongoClient,\n    },\n    \"weaviate\": {\n        \"is_vector_db\": True,\n        \"connection_string\": \"DEEPFACE_WEAVIATE_URI\",\n        \"client\": WeaviateClient,\n    },\n    \"neo4j\": {\n        \"is_vector_db\": True,\n        \"connection_string\": \"DEEPFACE_NEO4J_URI\",\n        \"client\": Neo4jClient,\n    },\n    \"pgvector\": {\n        \"is_vector_db\": True,\n        \"connection_string\": \"DEEPFACE_POSTGRES_URI\",\n        \"client\": PGVectorClient,\n    },\n    \"pinecone\": {\n        \"is_vector_db\": True,\n        \"connection_string\": \"DEEPFACE_PINECONE_API_KEY\",\n        \"client\": PineconeClient,\n    },\n}\n"
  },
  {
    "path": "deepface/modules/database/mongo.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport hashlib\nimport struct\nfrom datetime import datetime, timezone\nfrom typing import Any, Dict, List, Optional, Union\n\n# 3rd party dependencies\nimport numpy as np\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.exceptions import DuplicateEntryError\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=too-many-positional-arguments, too-many-instance-attributes\nclass MongoDbClient(Database):\n    \"\"\"\n    MongoDB equivalent of PostgresClient for DeepFace embeddings storage.\n    \"\"\"\n\n    def __init__(\n        self,\n        connection_details: Optional[Union[str, Dict[str, Any]]] = None,\n        connection: Any = None,\n        db_name: str = \"deepface\",\n    ) -> None:\n        try:\n            from pymongo import MongoClient, ASCENDING\n            from pymongo.errors import DuplicateKeyError, BulkWriteError\n            from bson import Binary\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"pymongo is an optional dependency. Please install it as `pip install pymongo`\"\n            ) from e\n        self.MongoClient = MongoClient\n        self.ASCENDING = ASCENDING\n        self.DuplicateKeyError = DuplicateKeyError\n        self.BulkWriteError = BulkWriteError\n        self.Binary = Binary\n\n        if connection is not None:\n            self.client = connection\n        else:\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_MONGO_URI\")\n            if not self.conn_details:\n                raise ValueError(\n                    \"MongoDB connection information not found. \"\n                    \"Please provide connection_details or set DEEPFACE_MONGO_URI\"\n                )\n\n            if isinstance(self.conn_details, str):\n                self.client = MongoClient(self.conn_details)\n            else:\n                self.client = MongoClient(**self.conn_details)\n\n        self.db = self.client[db_name]\n        self.embeddings = self.db.embeddings\n        self.embeddings_index = self.db.embeddings_index\n        self.counters = self.db.counters\n        self.initialize_database()\n\n    def close(self) -> None:\n        \"\"\"Close MongoDB connection.\"\"\"\n        self.client.close()\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure required MongoDB indexes exist.\n        \"\"\"\n\n        # Unique constraint for embeddings\n        self.embeddings.create_index(\n            [(\"face_hash\", self.ASCENDING), (\"embedding_hash\", self.ASCENDING)],\n            unique=True,\n            name=\"uniq_face_embedding\",\n        )\n\n        # Unique constraint for embeddings_index\n        self.embeddings_index.create_index(\n            [\n                (\"model_name\", self.ASCENDING),\n                (\"detector_backend\", self.ASCENDING),\n                (\"align\", self.ASCENDING),\n                (\"l2_normalized\", self.ASCENDING),\n            ],\n            unique=True,\n            name=\"uniq_index_config\",\n        )\n\n        # counters collection for auto-incrementing IDs\n        if not self.counters.find_one({\"_id\": \"embedding_id\"}):\n            self.counters.insert_one({\"_id\": \"embedding_id\", \"seq\": 0})\n\n        logger.debug(\"MongoDB indexes ensured.\")\n\n    def upsert_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        index_data: bytes,\n    ) -> None:\n        \"\"\"\n        Upsert embeddings index into MongoDB.\n        Args:\n            model_name (str): Name of the model.\n            detector_backend (str): Name of the detector backend.\n            aligned (bool): Whether the embeddings are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n            index_data (bytes): Serialized index data.\n        \"\"\"\n        self.embeddings_index.update_one(\n            {\n                \"model_name\": model_name,\n                \"detector_backend\": detector_backend,\n                \"align\": aligned,\n                \"l2_normalized\": l2_normalized,\n            },\n            {\n                \"$set\": {\n                    \"index_data\": self.Binary(index_data),\n                    \"updated_at\": datetime.now(timezone.utc),\n                },\n                \"$setOnInsert\": {\n                    \"created_at\": datetime.now(timezone.utc),\n                },\n            },\n            upsert=True,\n        )\n\n    def get_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> bytes:\n        \"\"\"\n        Retrieve embeddings index from MongoDB.\n        Args:\n            model_name (str): Name of the model.\n            detector_backend (str): Name of the detector backend.\n            aligned (bool): Whether the embeddings are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n        Returns:\n            bytes: Serialized index data.\n        \"\"\"\n        doc = self.embeddings_index.find_one(\n            {\n                \"model_name\": model_name,\n                \"detector_backend\": detector_backend,\n                \"align\": aligned,\n                \"l2_normalized\": l2_normalized,\n            },\n            {\"index_data\": 1},\n        )\n\n        if not doc:\n            raise ValueError(\n                \"No Embeddings index found for the specified parameters \"\n                f\"{model_name=}, {detector_backend=}, \"\n                f\"{aligned=}, {l2_normalized=}. \"\n                \"You must run build_index first.\"\n            )\n\n        return bytes(doc[\"index_data\"])\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert embeddings into MongoDB.\n        Args:\n            embeddings (List[Dict[str, Any]]): List of embedding records to insert.\n            batch_size (int): Number of records to insert in each batch.\n        Returns:\n            int: Number of embeddings successfully inserted.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        docs: List[Dict[str, Any]] = []\n\n        for e in embeddings:\n            face = e[\"face\"]\n            face_shape = list(face.shape)\n\n            binary_face_data = self.Binary(face.astype(np.float32).tobytes())\n\n            embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n\n            face_hash = hashlib.sha256(json.dumps(face.tolist()).encode()).hexdigest()\n            embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n            int_id = self.counters.find_one_and_update(\n                {\"_id\": \"embedding_id\"}, {\"$inc\": {\"seq\": 1}}, upsert=True, return_document=True\n            )[\"seq\"]\n\n            docs.append(\n                {\n                    \"sequence\": int_id,\n                    \"img_name\": e[\"img_name\"],\n                    \"face\": binary_face_data,\n                    \"face_shape\": face_shape,\n                    \"model_name\": e[\"model_name\"],\n                    \"detector_backend\": e[\"detector_backend\"],\n                    \"aligned\": e[\"aligned\"],\n                    \"l2_normalized\": e[\"l2_normalized\"],\n                    \"embedding\": e[\"embedding\"],\n                    \"face_hash\": face_hash,\n                    \"embedding_hash\": embedding_hash,\n                    \"created_at\": datetime.now(timezone.utc),\n                }\n            )\n\n        inserted = 0\n        try:\n            for i in range(0, len(docs), batch_size):\n                result = self.embeddings.insert_many(docs[i : i + batch_size], ordered=False)\n                inserted += len(result.inserted_ids)\n        except (self.DuplicateKeyError, self.BulkWriteError) as e:\n            if len(docs) == 1:\n                logger.warn(\"Duplicate detected for extracted face and embedding.\")\n                return inserted\n            raise DuplicateEntryError(\n                f\"Duplicate detected for extracted face and embedding in {i}-th batch\"\n            ) from e\n\n        return inserted\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings from MongoDB based on specified parameters.\n        Args:\n            model_name (str): Name of the model.\n            detector_backend (str): Name of the detector backend.\n            aligned (bool): Whether the embeddings are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n            batch_size (int): Number of records to fetch in each batch.\n        Returns:\n            List[Dict[str, Any]]: List of embedding records.\n        \"\"\"\n\n        cursor = self.embeddings.find(\n            {\n                \"model_name\": model_name,\n                \"detector_backend\": detector_backend,\n                \"aligned\": aligned,\n                \"l2_normalized\": l2_normalized,\n            },\n            {\n                \"_id\": 1,\n                \"sequence\": 1,\n                \"img_name\": 1,\n                \"embedding\": 1,\n            },\n            batch_size=batch_size,\n        ).sort(\"sequence\", self.ASCENDING)\n\n        results: List[Dict[str, Any]] = []\n        for doc in cursor:\n            results.append(\n                {\n                    \"_id\": str(doc[\"_id\"]),\n                    \"id\": doc[\"sequence\"],\n                    \"img_name\": doc[\"img_name\"],\n                    \"embedding\": doc[\"embedding\"],\n                    \"model_name\": model_name,\n                    \"detector_backend\": detector_backend,\n                    \"aligned\": aligned,\n                    \"l2_normalized\": l2_normalized,\n                }\n            )\n\n        return results\n\n    def search_by_id(\n        self,\n        ids: Union[List[str], List[int]],\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Search records by their IDs.\n        \"\"\"\n        cursor = self.embeddings.find(\n            {\"sequence\": {\"$in\": ids}},\n            {\n                \"_id\": 1,\n                \"sequence\": 1,\n                \"img_name\": 1,\n            },\n        )\n\n        results: List[Dict[str, Any]] = []\n        for doc in cursor:\n            results.append(\n                {\n                    \"_id\": str(doc[\"_id\"]),\n                    \"id\": doc[\"sequence\"],\n                    \"img_name\": doc[\"img_name\"],\n                }\n            )\n\n        return results\n"
  },
  {
    "path": "deepface/modules/database/neo4j.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport hashlib\nimport struct\nfrom typing import Any, Dict, Optional, List, Union\nfrom urllib.parse import urlparse\n\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.modeling import build_model\nfrom deepface.modules.verification import find_cosine_distance, find_euclidean_distance\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n_SCHEMA_CHECKED: Dict[str, bool] = {}\n\n\n# pylint: disable=too-many-positional-arguments\nclass Neo4jClient(Database):\n    def __init__(\n        self,\n        connection_details: Optional[Union[Dict[str, Any], str]] = None,\n        connection: Any = None,\n    ) -> None:\n        # Import here to avoid mandatory dependency\n        try:\n            from neo4j import GraphDatabase\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"neo4j is an optional dependency, ensure the library is installed.\"\n                \"Please install using 'pip install neo4j' \"\n            ) from e\n\n        self.GraphDatabase = GraphDatabase\n        if connection is not None:\n            self.conn = connection\n        else:\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_NEO4J_URI\")\n            if not self.conn_details:\n                raise ValueError(\n                    \"Neo4j connection information not found. \"\n                    \"Please provide connection_details or set the DEEPFACE_NEO4J_URI\"\n                    \" environment variable.\"\n                )\n\n            if isinstance(self.conn_details, str):\n                parsed = urlparse(self.conn_details)\n                uri = f\"{parsed.scheme}://{parsed.hostname}:{parsed.port}\"\n                self.conn = self.GraphDatabase.driver(uri, auth=(parsed.username, parsed.password))\n            else:\n                raise ValueError(\"connection_details must be a string.\")\n\n        if not self.__is_gds_installed():\n            raise ValueError(\n                \"Neo4j Graph Data Science (GDS) plugin is not installed. \"\n                \"Please install the GDS plugin to use Neo4j as a database backend.\"\n            )\n\n    def close(self) -> None:\n        \"\"\"\n        Close the Neo4j database connection.\n        \"\"\"\n        if self.conn:\n            self.conn.close()\n            logger.debug(\"Neo4j connection closed.\")\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure Neo4j database has the necessary constraints and indexes for storing embeddings.\n        \"\"\"\n        model_name = kwargs.get(\"model_name\", \"VGG-Face\")\n        detector_backend = kwargs.get(\"detector_backend\", \"opencv\")\n        aligned = kwargs.get(\"aligned\", True)\n        l2_normalized = kwargs.get(\"l2_normalized\", False)\n\n        node_label = self.__generate_node_label(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        model = build_model(task=\"facial_recognition\", model_name=model_name)\n        dimensions = model.output_shape\n        similarity_function = \"cosine\" if l2_normalized else \"euclidean\"\n\n        if _SCHEMA_CHECKED.get(node_label):\n            logger.debug(f\"Neo4j index {node_label} already exists, skipping creation.\")\n            return\n\n        index_query = f\"\"\"\n            CREATE VECTOR INDEX {node_label}_embedding_idx IF NOT EXISTS\n            FOR (d:{node_label})\n            ON (d.embedding)\n            OPTIONS {{\n                indexConfig: {{\n                    `vector.dimensions`: {dimensions},\n                    `vector.similarity_function`: '{similarity_function}'\n                }}\n            }};\n        \"\"\"\n\n        uniq_query = f\"\"\"\n            CREATE CONSTRAINT {node_label}_unique IF NOT EXISTS\n            FOR (n:{node_label})\n            REQUIRE (n.face_hash, n.embedding_hash) IS UNIQUE;\n        \"\"\"\n\n        with self.conn.session() as session:\n            session.execute_write(lambda tx: tx.run(index_query))\n            session.execute_write(lambda tx: tx.run(uniq_query))\n\n        _SCHEMA_CHECKED[node_label] = True\n        logger.debug(f\"Neo4j index {node_label} ensured.\")\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert embeddings into Neo4j database in batches.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        self.initialize_database(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        node_label = self.__generate_node_label(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        query = f\"\"\"\n        UNWIND $rows AS r\n        MERGE (n:{node_label} {{face_hash: r.face_hash, embedding_hash: r.embedding_hash}})\n        ON CREATE SET\n          n.img_name = r.img_name,\n          n.embedding = r.embedding,\n          n.face = r.face,\n          n.model_name = r.model_name,\n          n.detector_backend = r.detector_backend,\n          n.aligned = r.aligned,\n          n.l2_normalized = r.l2_normalized\n        RETURN count(*) AS processed\n        \"\"\"\n\n        total = 0\n        with self.conn.session() as session:\n            for i in range(0, len(embeddings), batch_size):\n                batch = embeddings[i : i + batch_size]\n                rows = []\n                for e in batch:\n                    face_json = json.dumps(e[\"face\"].tolist())\n                    face_hash = hashlib.sha256(face_json.encode()).hexdigest()\n                    embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n                    embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n                    rows.append(\n                        {\n                            \"face_hash\": face_hash,\n                            \"embedding_hash\": embedding_hash,\n                            \"img_name\": e[\"img_name\"],\n                            \"embedding\": e[\"embedding\"],\n                            # \"face\": e[\"face\"].tolist(),\n                            # \"face_shape\": list(e[\"face\"].shape),\n                            \"model_name\": e.get(\"model_name\"),\n                            \"detector_backend\": e.get(\"detector_backend\"),\n                            \"aligned\": bool(e.get(\"aligned\", True)),\n                            \"l2_normalized\": bool(e.get(\"l2_normalized\", False)),\n                        }\n                    )\n\n                processed = session.execute_write(\n                    lambda tx, q=query, r=rows: int(tx.run(q, rows=r).single()[\"processed\"])\n                )\n                total += processed\n\n        return total\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings from Neo4j database in batches.\n        \"\"\"\n        node_label = self.__generate_node_label(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        query = f\"\"\"\n        MATCH (n:{node_label})\n        WHERE n.embedding IS NOT NULL\n        AND ($last_eid IS NULL OR elementId(n) > $last_eid)\n        RETURN\n        elementId(n) AS cursor,\n        coalesce(n.id, elementId(n)) AS id,\n        n.img_name AS img_name,\n        n.embedding AS embedding\n        ORDER BY cursor ASC\n        LIMIT $limit\n        \"\"\"\n\n        out: List[Dict[str, Any]] = []\n        last_eid: Optional[str] = None\n        with self.conn.session() as session:\n            while True:\n                result = session.run(query, last_eid=last_eid, limit=batch_size)\n                rows = list(result)\n                if not rows:\n                    break\n\n                for r in rows:\n                    out.append(\n                        {\n                            \"id\": r[\"id\"],\n                            \"img_name\": r[\"img_name\"],\n                            \"embedding\": r[\"embedding\"],\n                            \"model_name\": model_name,\n                            \"detector_backend\": detector_backend,\n                            \"aligned\": aligned,\n                            \"l2_normalized\": l2_normalized,\n                        }\n                    )\n\n                # advance cursor using elementId\n                last_eid = rows[-1][\"cursor\"]\n\n        return out\n\n    def search_by_vector(\n        self,\n        vector: List[float],\n        model_name: str = \"VGG-Face\",\n        detector_backend: str = \"opencv\",\n        aligned: bool = True,\n        l2_normalized: bool = False,\n        limit: int = 10,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        ANN search using the main vector (embedding).\n        \"\"\"\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n        node_label = self.__generate_node_label(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n        index_name = f\"{node_label}_embedding_idx\"\n\n        query = \"\"\"\n        CALL db.index.vector.queryNodes($index_name, $limit, $vector)\n        YIELD node, score\n        RETURN\n          elementId(node) AS id,\n          node.img_name AS img_name,\n          node.face_hash AS face_hash,\n          node.embedding AS embedding,\n          node.embedding_hash AS embedding_hash,\n          score AS score\n        ORDER BY score DESC\n        \"\"\"\n\n        with self.conn.session() as session:\n            result = session.run(\n                query,\n                index_name=index_name,\n                limit=limit,\n                vector=vector,\n            )\n            out: List[Dict[str, Any]] = []\n            for r in result:\n\n                if l2_normalized:\n                    distance = find_cosine_distance(vector, r.get(\"embedding\"))\n                    # distance = 2 * (1 - r.get(\"score\"))\n                else:\n                    distance = find_euclidean_distance(vector, r.get(\"embedding\"))\n                    # distance = math.sqrt(1.0 / r.get(\"score\"))\n\n                out.append(\n                    {\n                        \"id\": r.get(\"id\"),\n                        \"img_name\": r.get(\"img_name\"),\n                        \"face_hash\": r.get(\"face_hash\"),\n                        \"embedding_hash\": r.get(\"embedding_hash\"),\n                        \"model_name\": model_name,\n                        \"detector_backend\": detector_backend,\n                        \"aligned\": aligned,\n                        \"l2_normalized\": l2_normalized,\n                        \"distance\": distance,\n                    }\n                )\n\n        return out\n\n    def __is_gds_installed(self) -> bool:\n        \"\"\"\n        Check if the Graph Data Science (GDS) plugin is installed in the Neo4j database.\n        \"\"\"\n        query = \"RETURN gds.version() AS version\"\n        try:\n            with self.conn.session() as session:\n                result = session.run(query).single()\n                logger.debug(f\"GDS version: {result['version']}\")\n                return True\n        except Exception as e:  # pylint: disable=broad-except\n            logger.error(f\"GDS plugin not installed or error occurred: {e}\")\n            return False\n\n    @staticmethod\n    def __generate_node_label(\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> str:\n        \"\"\"\n        Generate a Neo4j node label based on model and preprocessing parameters.\n        \"\"\"\n        label_parts = [\n            model_name.replace(\"-\", \"_\").capitalize(),\n            detector_backend.capitalize(),\n            \"Aligned\" if aligned else \"Unaligned\",\n            \"Norm\" if l2_normalized else \"Raw\",\n        ]\n        return \"\".join(label_parts)\n"
  },
  {
    "path": "deepface/modules/database/pgvector.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport struct\nimport hashlib\nfrom typing import Any, Dict, Optional, List, Union\n\n# 3rd party dependencies\nimport numpy as np\n\n# project dependencies\nfrom deepface.modules.modeling import build_model\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.exceptions import DuplicateEntryError\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n_SCHEMA_CHECKED: Dict[str, bool] = {}\n\n\n# pylint: disable=too-many-positional-arguments\nclass PGVectorClient(Database):\n    def __init__(\n        self,\n        connection_details: Optional[Union[Dict[str, Any], str]] = None,\n        connection: Any = None,\n    ) -> None:\n        # Import here to avoid mandatory dependency\n        try:\n            import psycopg\n            from psycopg import errors\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"psycopg is an optional dependency, ensure the library is installed.\"\n                \"Please install using 'pip install \\\"psycopg[binary]\\\"' \"\n            ) from e\n\n        try:\n            from pgvector.psycopg import register_vector\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"pgvector is an optional dependency, ensure the library is installed.\"\n                \"Please install using 'pip install pgvector' \"\n            ) from e\n\n        self.psycopg = psycopg\n        self.errors = errors\n\n        if connection is not None:\n            self.conn = connection\n        else:\n            # Retrieve connection details from parameter or environment variable\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_POSTGRES_URI\")\n            if not self.conn_details:\n                raise ValueError(\n                    \"PostgreSQL connection information not found. \"\n                    \"Please provide connection_details or set the DEEPFACE_POSTGRES_URI\"\n                    \" environment variable.\"\n                )\n\n            if isinstance(self.conn_details, str):\n                self.conn = self.psycopg.connect(self.conn_details)\n            elif isinstance(self.conn_details, dict):\n                self.conn = self.psycopg.connect(**self.conn_details)\n            else:\n                raise ValueError(\"connection_details must be either a string or a dict.\")\n\n        # is pgvector extension installed?\n        try:\n            if not _SCHEMA_CHECKED.get(\"pgvector_extension\"):\n                with self.conn.cursor() as cur:\n                    cur.execute(\"CREATE EXTENSION IF NOT EXISTS vector;\")\n                    self.conn.commit()\n                    _SCHEMA_CHECKED[\"pgvector_extension\"] = True\n        except Exception as e:\n            raise ValueError(\n                \"Ensure pgvector extension is installed properly by running: \"\n                \"'CREATE EXTENSION IF NOT EXISTS vector;'\"\n            ) from e\n\n        register_vector(self.conn)\n\n    def close(self) -> None:\n        \"\"\"Close the database connection.\"\"\"\n        self.conn.close()\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Initialize PostgreSQL database schema for storing embeddings.\n        Args:\n            model_name (str): Name of the facial recognition model.\n            detector_backend (str): Name of the face detector backend.\n            aligned (bool): Whether the faces are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n        \"\"\"\n        model_name = kwargs.get(\"model_name\", \"VGG-Face\")\n        detector_backend = kwargs.get(\"detector_backend\", \"opencv\")\n        aligned = kwargs.get(\"aligned\", True)\n        l2_normalized = kwargs.get(\"l2_normalized\", False)\n\n        model = build_model(task=\"facial_recognition\", model_name=model_name)\n        dimensions = model.output_shape\n\n        table_name = self.__generate_table_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        if _SCHEMA_CHECKED.get(table_name):\n            logger.debug(\"PostgreSQL schema already checked, skipping.\")\n            return\n\n        create_table_stmt = f\"\"\"\n            CREATE TABLE IF NOT EXISTS {table_name} (\n                id SERIAL PRIMARY KEY,\n                img_name TEXT NOT NULL,\n                face BYTEA NOT NULL,\n                face_shape INT[] NOT NULL,\n                model_name TEXT NOT NULL,\n                detector_backend TEXT NOT NULL,\n                aligned BOOLEAN DEFAULT true,\n                l2_normalized BOOLEAN DEFAULT false,\n                embedding vector({dimensions}) NOT NULL,\n                created_at TIMESTAMPTZ DEFAULT now(),\n                face_hash TEXT NOT NULL,\n                embedding_hash TEXT NOT NULL,\n                UNIQUE (face_hash, embedding_hash)\n            );\n        \"\"\"\n\n        index_name = f\"{table_name}_{'cosine' if l2_normalized else 'euclidean'}_idx\"\n\n        create_index_stmt = f\"\"\"\n            CREATE INDEX {index_name}\n            ON {table_name}\n            USING hnsw (embedding {'vector_cosine_ops' if l2_normalized else 'vector_l2_ops'});\n        \"\"\"\n\n        try:\n            with self.conn.cursor() as cur:\n                # create table if not exists\n                cur.execute(create_table_stmt)\n\n                # create index if not exists\n                try:\n                    cur.execute(create_index_stmt)\n                except Exception as e:  # pylint: disable=broad-except\n                    # unfortunately if not exists is not supported for index creation\n                    if getattr(e, \"sqlstate\", None) == \"42P07\":\n                        self.conn.rollback()\n                    else:\n                        raise\n\n            self.conn.commit()\n        except Exception as e:\n            if getattr(e, \"sqlstate\", None) == \"42501\":  # permission denied\n                raise ValueError(\n                    \"The PostgreSQL user does not have permission to create \"\n                    f\"the required table {table_name}. \"\n                    \"Please ask your database administrator to grant CREATE privileges \"\n                    \"on the schema.\"\n                ) from e\n            raise\n\n        _SCHEMA_CHECKED[table_name] = True\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert multiple embeddings into PostgreSQL.\n        Args:\n            embeddings (List[Dict[str, Any]]): List of embeddings to insert.\n            batch_size (int): Number of embeddings to insert per batch.\n        Returns:\n            int: Number of embeddings inserted.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        self.initialize_database(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        table_name = self.__generate_table_name(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        query = f\"\"\"\n            INSERT INTO {table_name} (\n                img_name,\n                face,\n                face_shape,\n                model_name,\n                detector_backend,\n                aligned,\n                l2_normalized,\n                embedding,\n                face_hash,\n                embedding_hash\n            )\n            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);\n        \"\"\"\n\n        values = []\n        for e in embeddings:\n            face = e[\"face\"]\n            face_shape = list(face.shape)\n            face_bytes = face.astype(np.float32).tobytes()\n            face_json = json.dumps(face.tolist())\n\n            embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n\n            # uniqueness is guaranteed by face hash and embedding hash\n            face_hash = hashlib.sha256(face_json.encode()).hexdigest()\n            embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n            values.append(\n                (\n                    e[\"img_name\"],\n                    face_bytes,\n                    face_shape,\n                    e[\"model_name\"],\n                    e[\"detector_backend\"],\n                    e[\"aligned\"],\n                    e[\"l2_normalized\"],\n                    e[\"embedding\"],\n                    face_hash,\n                    embedding_hash,\n                )\n            )\n\n        try:\n            with self.conn.cursor() as cur:\n                for i in range(0, len(values), batch_size):\n                    cur.executemany(query, values[i : i + batch_size])\n                    # commit for every batch\n                    self.conn.commit()\n                return len(values)\n        except self.psycopg.errors.UniqueViolation as e:\n            self.conn.rollback()\n            if len(values) == 1:\n                logger.warn(\"Duplicate detected for extracted face and embedding.\")\n                return 0\n            raise DuplicateEntryError(\n                f\"Duplicate detected for extracted face and embedding columns in {i}-th batch\"\n            ) from e\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings from PostgreSQL.\n        Args:\n            model_name (str): Name of the facial recognition model.\n            detector_backend (str): Name of the face detector backend.\n            aligned (bool): Whether the faces are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n            batch_size (int): Number of embeddings to fetch per batch.\n        Returns:\n            List[Dict[str, Any]]: List of embeddings.\n        \"\"\"\n\n        table_name = self.__generate_table_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        query = f\"\"\"\n            SELECT id, img_name, embedding\n            FROM {table_name}\n            ORDER BY id ASC;\n        \"\"\"\n\n        embeddings: List[Dict[str, Any]] = []\n\n        with self.conn.cursor(name=\"embeddings_cursor\") as cur:\n            cur.execute(query)\n            while True:\n                batch = cur.fetchmany(batch_size)\n                if not batch:\n                    break\n\n                for r in batch:\n                    embeddings.append(\n                        {\n                            \"id\": r[0],\n                            \"img_name\": r[1],\n                            \"embedding\": list(r[2]),\n                            \"model_name\": model_name,\n                            \"detector_backend\": detector_backend,\n                            \"aligned\": aligned,\n                            \"l2_normalized\": l2_normalized,\n                        }\n                    )\n        return embeddings\n\n    def search_by_vector(\n        self,\n        vector: List[float],\n        model_name: str = \"VGG-Face\",\n        detector_backend: str = \"opencv\",\n        aligned: bool = True,\n        l2_normalized: bool = False,\n        limit: int = 10,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Search for similar embeddings in PostgreSQL using a given vector.\n        Args:\n            vector (List[float]): The query embedding vector.\n            model_name (str): Name of the facial recognition model.\n            detector_backend (str): Name of the face detector backend.\n            aligned (bool): Whether the faces are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n            limit (int): Number of similar embeddings to return.\n        Returns:\n            List[Dict[str, Any]]: List of similar embeddings with distances.\n        \"\"\"\n        table_name = self.__generate_table_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        op = \"<=>\" if l2_normalized else \"<->\"\n\n        query = f\"\"\"\n            SELECT id, img_name, (embedding {op} (%s::vector)) AS distance\n            FROM {table_name}\n            ORDER BY embedding {op} (%s::vector)\n            LIMIT %s;\n        \"\"\"\n\n        results: List[Dict[str, Any]] = []\n\n        with self.conn.cursor() as cur:\n            cur.execute(query, (vector, vector, limit))\n            rows = cur.fetchall()\n            for r in rows:\n                results.append(\n                    {\n                        \"id\": r[0],\n                        \"img_name\": r[1],\n                        # \"embedding\": list(r[2]), # embedding dropped in select query\n                        \"distance\": r[2],\n                        \"model_name\": model_name,\n                        \"detector_backend\": detector_backend,\n                        \"aligned\": aligned,\n                        \"l2_normalized\": l2_normalized,\n                    }\n                )\n        return results\n\n    @staticmethod\n    def __generate_table_name(\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> str:\n        \"\"\"\n        Generate postgres table name based on parameters.\n        \"\"\"\n        class_name_attributes = [\n            model_name.replace(\"-\", \"\"),\n            detector_backend,\n            \"Aligned\" if aligned else \"Unaligned\",\n            \"Norm\" if l2_normalized else \"Raw\",\n        ]\n        return \"Embeddings_\" + \"_\".join(class_name_attributes).lower()\n"
  },
  {
    "path": "deepface/modules/database/pinecone.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport hashlib\nimport struct\nimport math\nfrom typing import Any, Dict, Optional, List, Union\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.modeling import build_model\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\nclass PineconeClient(Database):\n    \"\"\"\n    Pinecone client for storing and retrieving face embeddings and indices.\n    \"\"\"\n\n    def __init__(\n        self,\n        connection_details: Optional[Union[str, Dict[str, Any]]] = None,\n        connection: Any = None,\n    ):\n        try:\n            from pinecone import Pinecone, ServerlessSpec\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"pinecone is an optional dependency. Install with 'pip install pinecone'\"\n            ) from e\n\n        self.pinecone = Pinecone\n        self.serverless_spec = ServerlessSpec\n\n        if connection is not None:\n            self.client = connection\n        else:\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_PINECONE_API_KEY\")\n            if not isinstance(self.conn_details, str):\n                raise ValueError(\n                    \"Pinecone api key must be provided as a string in connection_details \"\n                    \"or via DEEPFACE_PINECONE_API_KEY environment variable.\"\n                )\n\n            self.client = self.pinecone(api_key=self.conn_details)\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure Pinecone index exists.\n        \"\"\"\n        model_name = kwargs.get(\"model_name\", \"VGG-Face\")\n        detector_backend = kwargs.get(\"detector_backend\", \"opencv\")\n        aligned = kwargs.get(\"aligned\", True)\n        l2_normalized = kwargs.get(\"l2_normalized\", False)\n\n        index_name = self.__generate_index_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        if self.client.has_index(index_name):\n            logger.debug(f\"Pinecone index '{index_name}' already exists.\")\n            return\n\n        model = build_model(task=\"facial_recognition\", model_name=model_name)\n        dimensions = model.output_shape\n        similarity_function = \"cosine\" if l2_normalized else \"euclidean\"\n\n        self.client.create_index(\n            name=index_name,\n            dimension=dimensions,\n            metric=similarity_function,\n            spec=self.serverless_spec(\n                cloud=os.getenv(\"DEEPFACE_PINECONE_CLOUD\", \"aws\"),\n                region=os.getenv(\"DEEPFACE_PINECONE_REGION\", \"us-east-1\"),\n            ),\n        )\n        logger.debug(f\"Created Pinecone index '{index_name}' with dimension {dimensions}.\")\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert embeddings into Pinecone database in batches.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        self.initialize_database(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        index_name = self.__generate_index_name(\n            embeddings[0][\"model_name\"],\n            embeddings[0][\"detector_backend\"],\n            embeddings[0][\"aligned\"],\n            embeddings[0][\"l2_normalized\"],\n        )\n\n        # connect to the index\n        index = self.client.Index(index_name)\n\n        total = 0\n        for i in range(0, len(embeddings), batch_size):\n            batch = embeddings[i : i + batch_size]\n            vectors = []\n            for e in batch:\n                face_json = json.dumps(e[\"face\"].tolist())\n                face_hash = hashlib.sha256(face_json.encode()).hexdigest()\n                embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n                embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n                vectors.append(\n                    {\n                        \"id\": f\"{face_hash}:{embedding_hash}\",\n                        \"values\": e[\"embedding\"],\n                        \"metadata\": {\n                            \"img_name\": e[\"img_name\"],\n                            # \"face\": e[\"face\"].tolist(),\n                            # \"face_shape\": list(e[\"face\"].shape),\n                        },\n                    }\n                )\n            index.upsert(vectors=vectors)\n            total += len(vectors)\n\n        return total\n\n    def search_by_vector(\n        self,\n        vector: List[float],\n        model_name: str = \"VGG-Face\",\n        detector_backend: str = \"opencv\",\n        aligned: bool = True,\n        l2_normalized: bool = False,\n        limit: int = 10,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        ANN search using the main vector (embedding).\n        \"\"\"\n        out: List[Dict[str, Any]] = []\n\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        index_name = self.__generate_index_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        index = self.client.Index(index_name)\n        results = index.query(\n            vector=vector,\n            top_k=limit,\n            include_metadata=True,\n            include_values=False,\n        )\n\n        if not results.matches:\n            return out\n\n        for res in results.matches:\n            score = float(res.score)\n            if l2_normalized:\n                distance = 1 - score\n            else:\n                distance = math.sqrt(max(score, 0.0))\n\n            out.append(\n                {\n                    \"id\": res.id,\n                    \"distance\": distance,\n                    \"img_name\": res.metadata.get(\"img_name\"),\n                }\n            )\n        return out\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings from Pinecone database in batches.\n        \"\"\"\n        out: List[Dict[str, Any]] = []\n\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        index_name = self.__generate_index_name(\n            model_name, detector_backend, aligned, l2_normalized\n        )\n\n        index = self.client.Index(index_name)\n\n        # Fetch all IDs\n        ids: List[str] = []\n        for _id in index.list():\n            ids.extend(_id)\n\n        for i in range(0, len(ids), batch_size):\n            batch_ids = ids[i : i + batch_size]\n            fetched = index.fetch(ids=batch_ids)\n            for _id, v in fetched.get(\"vectors\", {}).items():\n                md = v.get(\"metadata\") or {}\n                out.append(\n                    {\n                        \"id\": _id,\n                        \"embedding\": v.get(\"values\"),\n                        \"img_name\": md.get(\"img_name\"),\n                        \"face_hash\": md.get(\"face_hash\"),\n                        \"embedding_hash\": md.get(\"embedding_hash\"),\n                    }\n                )\n\n        return out\n\n    def close(self) -> None:\n        \"\"\"Pinecone client does not require explicit closure\"\"\"\n        return\n\n    @staticmethod\n    def __generate_index_name(\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> str:\n        \"\"\"\n        Generate Pinecone index name based on parameters.\n        \"\"\"\n        index_name_attributes = [\n            \"embeddings\",\n            model_name.replace(\"-\", \"\"),\n            detector_backend,\n            \"Aligned\" if aligned else \"Unaligned\",\n            \"Norm\" if l2_normalized else \"Raw\",\n        ]\n        return \"-\".join(index_name_attributes).lower()\n"
  },
  {
    "path": "deepface/modules/database/postgres.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport hashlib\nimport struct\nfrom typing import Any, Dict, Optional, List, Union, cast\n\n# 3rd party dependencies\nimport numpy as np\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.exceptions import DuplicateEntryError\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n_SCHEMA_CHECKED: Dict[str, bool] = {}\n\nCREATE_EMBEDDINGS_TABLE_SQL = \"\"\"\n    CREATE TABLE IF NOT EXISTS embeddings (\n        id BIGSERIAL PRIMARY KEY,\n        img_name TEXT NOT NULL,\n        face BYTEA NOT NULL,\n        face_shape INT[] NOT NULL,\n        model_name TEXT NOT NULL,\n        detector_backend TEXT NOT NULL,\n        aligned BOOLEAN DEFAULT true,\n        l2_normalized BOOLEAN DEFAULT false,\n        embedding FLOAT8[] NOT NULL,\n        created_at TIMESTAMPTZ DEFAULT now(),\n        face_hash TEXT NOT NULL,\n        embedding_hash TEXT NOT NULL,\n        UNIQUE (face_hash, embedding_hash)\n    );\n\"\"\"\n\nCREATE_EMBEDDINGS_INDEX_TABLE_SQL = \"\"\"\n    CREATE TABLE IF NOT EXISTS embeddings_index (\n        id SERIAL PRIMARY KEY,\n        model_name TEXT,\n        detector_backend TEXT,\n        align BOOL,\n        l2_normalized BOOL,\n        index_data BYTEA,\n        created_at TIMESTAMPTZ DEFAULT now(),\n        updated_at TIMESTAMPTZ DEFAULT now(),\n        UNIQUE (model_name, detector_backend, align, l2_normalized)\n    );\n\"\"\"\n\n\n# pylint: disable=too-many-positional-arguments\nclass PostgresClient(Database):\n    def __init__(\n        self,\n        connection_details: Optional[Union[Dict[str, Any], str]] = None,\n        connection: Any = None,\n    ) -> None:\n        # Import here to avoid mandatory dependency\n        try:\n            import psycopg\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"psycopg is an optional dependency, ensure the library is installed.\"\n                \"Please install using 'pip install \\\"psycopg[binary]\\\"' \"\n            ) from e\n\n        self.psycopg = psycopg\n\n        if connection is not None:\n            self.conn = connection\n        else:\n            # Retrieve connection details from parameter or environment variable\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_POSTGRES_URI\")\n            if not self.conn_details:\n                raise ValueError(\n                    \"PostgreSQL connection information not found. \"\n                    \"Please provide connection_details or set the DEEPFACE_POSTGRES_URI\"\n                    \" environment variable.\"\n                )\n\n            if isinstance(self.conn_details, str):\n                self.conn = self.psycopg.connect(self.conn_details)\n            elif isinstance(self.conn_details, dict):\n                self.conn = self.psycopg.connect(**self.conn_details)\n            else:\n                raise ValueError(\"connection_details must be either a string or a dict.\")\n\n        # Ensure the embeddings table exists\n        self.initialize_database()\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure that the `embeddings` table exists.\n        \"\"\"\n        dsn = self.conn.info.dsn\n\n        if _SCHEMA_CHECKED.get(dsn):\n            logger.debug(\"PostgreSQL schema already checked, skipping.\")\n            return\n\n        with self.conn.cursor() as cur:\n            try:\n                cur.execute(CREATE_EMBEDDINGS_TABLE_SQL)\n                logger.debug(\"Ensured 'embeddings' table either exists or was created in Postgres.\")\n\n                cur.execute(CREATE_EMBEDDINGS_INDEX_TABLE_SQL)\n                logger.debug(\n                    \"Ensured 'embeddings_index' table either exists or was created in Postgres.\"\n                )\n            except Exception as e:\n                if getattr(e, \"sqlstate\", None) == \"42501\":  # permission denied\n                    raise ValueError(\n                        \"The PostgreSQL user does not have permission to create \"\n                        \"the required tables ('embeddings', 'embeddings_index'). \"\n                        \"Please ask your database administrator to grant CREATE privileges \"\n                        \"on the schema.\"\n                    ) from e\n                raise\n\n        self.conn.commit()\n        _SCHEMA_CHECKED[dsn] = True\n\n    def close(self) -> None:\n        \"\"\"Close the database connection.\"\"\"\n        self.conn.close()\n\n    def upsert_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        index_data: bytes,\n    ) -> None:\n        \"\"\"\n        Upsert embeddings index into PostgreSQL.\n        Args:\n            model_name (str): Name of the model.\n            detector_backend (str): Name of the detector backend.\n            aligned (bool): Whether the embeddings are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n            index_data (bytes): Serialized index data.\n        \"\"\"\n        query = \"\"\"\n            INSERT INTO embeddings_index (model_name, detector_backend, align, l2_normalized, index_data)\n            VALUES (%s, %s, %s, %s, %s)\n            ON CONFLICT (model_name, detector_backend, align, l2_normalized)\n            DO UPDATE SET\n                index_data = EXCLUDED.index_data,\n                updated_at = NOW()\n        \"\"\"\n        with self.conn.cursor() as cur:\n            cur.execute(\n                query,\n                (model_name, detector_backend, aligned, l2_normalized, index_data),\n            )\n            self.conn.commit()\n\n    def get_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> bytes:\n        \"\"\"\n        Get embeddings index from PostgreSQL.\n        Args:\n            model_name (str): Name of the model.\n            detector_backend (str): Name of the detector backend.\n            aligned (bool): Whether the embeddings are aligned.\n            l2_normalized (bool): Whether the embeddings are L2 normalized.\n        Returns:\n            bytes: Serialized index data.\n        \"\"\"\n        query = \"\"\"\n            SELECT index_data\n            FROM embeddings_index\n            WHERE model_name = %s AND detector_backend = %s AND align = %s AND l2_normalized = %s\n        \"\"\"\n        with self.conn.cursor() as cur:\n            cur.execute(\n                query,\n                (model_name, detector_backend, aligned, l2_normalized),\n            )\n            result = cur.fetchone()\n            if result:\n                return cast(bytes, result[0])\n            raise ValueError(\n                \"No Embeddings index found for the specified parameters \"\n                f\" {model_name=}, {detector_backend=}, {aligned=}, {l2_normalized=}. \"\n                \"You must run build_index first.\"\n            )\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert multiple embeddings into PostgreSQL.\n        Args:\n            embeddings (List[Dict[str, Any]]): List of embeddings to insert.\n            batch_size (int): Number of embeddings to insert per batch.\n        Returns:\n            int: Number of embeddings inserted.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        query = \"\"\"\n            INSERT INTO embeddings (\n                img_name,\n                face,\n                face_shape,\n                model_name,\n                detector_backend,\n                aligned,\n                l2_normalized,\n                embedding,\n                face_hash,\n                embedding_hash\n            )\n            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);\n        \"\"\"\n\n        values = []\n        for e in embeddings:\n            face = e[\"face\"]\n            face_shape = list(face.shape)\n            face_bytes = face.astype(np.float32).tobytes()\n            face_json = json.dumps(face.tolist())\n\n            embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n\n            # uniqueness is guaranteed by face hash and embedding hash\n            face_hash = hashlib.sha256(face_json.encode()).hexdigest()\n            embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n            values.append(\n                (\n                    e[\"img_name\"],\n                    face_bytes,\n                    face_shape,\n                    e[\"model_name\"],\n                    e[\"detector_backend\"],\n                    e[\"aligned\"],\n                    e[\"l2_normalized\"],\n                    e[\"embedding\"],\n                    face_hash,\n                    embedding_hash,\n                )\n            )\n\n        try:\n            with self.conn.cursor() as cur:\n                for i in range(0, len(values), batch_size):\n                    cur.executemany(query, values[i : i + batch_size])\n                    # commit for every batch\n                    self.conn.commit()\n                return len(values)\n        except self.psycopg.errors.UniqueViolation as e:\n            self.conn.rollback()\n            if len(values) == 1:\n                logger.warn(\"Duplicate detected for extracted face and embedding.\")\n                return 0\n            raise DuplicateEntryError(\n                f\"Duplicate detected for extracted face and embedding columns in {i}-th batch\"\n            ) from e\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n\n        query = \"\"\"\n            SELECT id, img_name, embedding\n            FROM embeddings\n            WHERE model_name = %s AND detector_backend = %s AND aligned = %s AND l2_normalized = %s\n            ORDER BY id ASC;\n        \"\"\"\n\n        embeddings: List[Dict[str, Any]] = []\n\n        with self.conn.cursor(name=\"embeddings_cursor\") as cur:\n            cur.execute(query, (model_name, detector_backend, aligned, l2_normalized))\n            while True:\n                batch = cur.fetchmany(batch_size)\n                if not batch:\n                    break\n\n                for r in batch:\n                    embeddings.append(\n                        {\n                            \"id\": r[0],\n                            \"img_name\": r[1],\n                            \"embedding\": r[2],\n                            \"model_name\": model_name,\n                            \"detector_backend\": detector_backend,\n                            \"aligned\": aligned,\n                            \"l2_normalized\": l2_normalized,\n                        }\n                    )\n        return embeddings\n\n    def search_by_id(\n        self,\n        ids: Union[List[str], List[int]],\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Search records by their IDs.\n        \"\"\"\n        if not ids:\n            return []\n\n        # we may return the face in the future\n        query = \"\"\"\n            SELECT id, img_name\n            FROM embeddings\n            WHERE id = ANY(%s)\n            ORDER BY id ASC;\n        \"\"\"\n\n        results: List[Dict[str, Any]] = []\n\n        with self.conn.cursor() as cur:\n            cur.execute(query, (ids,))\n            rows = cur.fetchall()\n            for r in rows:\n                results.append(\n                    {\n                        \"id\": r[0],\n                        \"img_name\": r[1],\n                    }\n                )\n\n        return results\n"
  },
  {
    "path": "deepface/modules/database/types.py",
    "content": "# built-in dependencies\nfrom typing import Any, Dict, List, Union, Optional\nfrom abc import ABC, abstractmethod\n\n\n# pylint: disable=unnecessary-pass, too-many-positional-arguments\nclass Database(ABC):\n    @abstractmethod\n    def __init__(\n        self,\n        connection_details: Optional[Union[str, Dict[str, Any]]] = None,\n        connection: Any = None,\n    ):\n        \"\"\"\n        Initialize the database client with connection details or an existing connection.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure that the embeddings table or indexes exist in the database.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert embeddings into the database in batches.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings from the database in batches.\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def close(self) -> None:\n        \"\"\"\n        Close the database connection.\n        \"\"\"\n        pass\n\n    def get_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> bytes:\n        \"\"\"\n        Retrieve the embeddings index from the database.\n        \"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} does not require storing embeddings index.\"\n            \" Because it handles indexing internally.\"\n        )\n\n    def search_by_vector(\n        self,\n        vector: List[float],\n        model_name: str = \"VGG-Face\",\n        detector_backend: str = \"opencv\",\n        aligned: bool = True,\n        l2_normalized: bool = False,\n        limit: int = 10,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        ANN search using the main vector (embedding).\n        \"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} does not support ANN search natively.\"\n        )\n\n    def search_by_id(\n        self,\n        ids: Union[List[str], List[int]],\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Search records by their IDs.\n        \"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} does not implement search_by_id method.\"\n            \" Because search by vector returns metadata already.\"\n        )\n\n    def upsert_embeddings_index(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        index_data: bytes,\n    ) -> None:\n        \"\"\"\n        Insert or update the embeddings index in the database.\n        \"\"\"\n        raise NotImplementedError(\n            f\"{self.__class__.__name__} does not require storing embeddings index.\"\n            \" Because it handles indexing internally.\"\n        )\n"
  },
  {
    "path": "deepface/modules/database/weaviate.py",
    "content": "# built-in dependencies\nimport os\nimport json\nimport hashlib\nimport struct\nimport base64\nimport uuid\nimport math\nfrom typing import Any, Dict, Optional, List, Union\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n_SCHEMA_CHECKED: Dict[str, bool] = {}\n\n\n# pylint: disable=too-many-positional-arguments\nclass WeaviateClient(Database):\n    \"\"\"\n    Weaviate client for storing and retrieving face embeddings and indices.\n    \"\"\"\n\n    def __init__(\n        self,\n        connection_details: Optional[Union[str, Dict[str, Any]]] = None,\n        connection: Any = None,\n    ):\n        try:\n            import weaviate\n        except (ModuleNotFoundError, ImportError) as e:\n            raise ValueError(\n                \"weaviate-client is an optional dependency. \"\n                \"Install with 'pip install weaviate-client'\"\n            ) from e\n\n        self.weaviate = weaviate\n\n        if connection is not None:\n            self.client = connection\n            # URL key for _WEAVIATE_CHECKED; fallback if client has no URL\n            self.url = getattr(connection, \"url\", str(id(connection)))\n        else:\n            self.conn_details = connection_details or os.environ.get(\"DEEPFACE_WEAVIATE_URL\")\n            if isinstance(self.conn_details, str):\n                self.url = self.conn_details\n                self.api_key = os.getenv(\"WEAVIATE_API_KEY\")\n            elif isinstance(self.conn_details, dict):\n                self.url = self.conn_details.get(\"url\")\n                self.api_key = self.conn_details.get(\"api_key\") or os.getenv(\"WEAVIATE_API_KEY\")\n            else:\n                raise ValueError(\"connection_details must be a string or dict with 'url'.\")\n\n            if not self.url:\n                raise ValueError(\"Weaviate URL not provided in connection_details.\")\n\n            client_config = {\"url\": self.url}\n            if getattr(self, \"api_key\", None):\n                client_config[\"auth_client_secret\"] = self.weaviate.AuthApiKey(api_key=self.api_key)\n\n            self.client = self.weaviate.Client(**client_config)\n\n    def initialize_database(self, **kwargs: Any) -> None:\n        \"\"\"\n        Ensure Weaviate schemas exist for embeddings using both cosine and L2 (euclidean).\n        \"\"\"\n        model_name = kwargs.get(\"model_name\", \"VGG-Face\")\n        detector_backend = kwargs.get(\"detector_backend\", \"opencv\")\n        aligned = kwargs.get(\"aligned\", True)\n        l2_normalized = kwargs.get(\"l2_normalized\", False)\n\n        existing_schema = self.client.schema.get()\n        existing_classes = {c[\"class\"] for c in existing_schema.get(\"classes\", [])}\n\n        class_name = self.__generate_class_name(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        if _SCHEMA_CHECKED.get(class_name):\n            logger.debug(\"Weaviate schema already checked, skipping.\")\n            return\n\n        if class_name in existing_classes:\n            logger.debug(f\"Weaviate class {class_name} already exists.\")\n            return\n\n        self.client.schema.create_class(\n            {\n                \"class\": class_name,\n                \"vectorIndexType\": \"hnsw\",\n                \"vectorizer\": \"none\",\n                \"vectorIndexConfig\": {\n                    \"M\": int(os.getenv(\"WEAVIATE_HNSW_M\", \"16\")),\n                    \"distance\": \"cosine\" if l2_normalized else \"l2-squared\",\n                },\n                \"properties\": [\n                    {\"name\": \"img_name\", \"dataType\": [\"text\"]},\n                    {\"name\": \"face\", \"dataType\": [\"blob\"]},\n                    {\"name\": \"face_shape\", \"dataType\": [\"int[]\"]},\n                    {\"name\": \"model_name\", \"dataType\": [\"text\"]},\n                    {\"name\": \"detector_backend\", \"dataType\": [\"text\"]},\n                    {\"name\": \"aligned\", \"dataType\": [\"boolean\"]},\n                    {\"name\": \"l2_normalized\", \"dataType\": [\"boolean\"]},\n                    {\"name\": \"face_hash\", \"dataType\": [\"text\"]},\n                    {\"name\": \"embedding_hash\", \"dataType\": [\"text\"]},\n                    # embedding property is optional since we pass it as vector\n                    {\"name\": \"embedding\", \"dataType\": [\"number[]\"]},\n                ],\n            }\n        )\n\n        logger.debug(f\"Weaviate class {class_name} created successfully.\")\n        _SCHEMA_CHECKED[class_name] = True\n\n    def insert_embeddings(self, embeddings: List[Dict[str, Any]], batch_size: int = 100) -> int:\n        \"\"\"\n        Insert multiple embeddings into Weaviate using batch API.\n        \"\"\"\n        if not embeddings:\n            raise ValueError(\"No embeddings to insert.\")\n\n        self.initialize_database(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n        class_name = self.__generate_class_name(\n            model_name=embeddings[0][\"model_name\"],\n            detector_backend=embeddings[0][\"detector_backend\"],\n            aligned=embeddings[0][\"aligned\"],\n            l2_normalized=embeddings[0][\"l2_normalized\"],\n        )\n\n        with self.client.batch as batcher:\n            batcher.batch_size = batch_size\n            batcher.timeout_retries = 3\n            for e in embeddings:\n                face_json = json.dumps(e[\"face\"].tolist())\n                face_hash = hashlib.sha256(face_json.encode()).hexdigest()\n                embedding_bytes = struct.pack(f'{len(e[\"embedding\"])}d', *e[\"embedding\"])\n                embedding_hash = hashlib.sha256(embedding_bytes).hexdigest()\n\n                # Check if embedding already exists\n                query = (\n                    self.client.query.get(class_name, [\"embedding_hash\"])\n                    .with_where(\n                        {\n                            \"path\": [\"embedding_hash\"],\n                            \"operator\": \"Equal\",\n                            \"valueText\": embedding_hash,\n                        }\n                    )\n                    .with_limit(1)\n                    .do()\n                )\n                existing = query.get(\"data\", {}).get(\"Get\", {}).get(class_name, [])\n                if existing:\n                    logger.warn(\n                        f\"Embedding with hash {embedding_hash} already exists in {class_name}.\"\n                    )\n                    continue\n\n                uid = str(uuid.uuid4())\n                properties = {\n                    \"img_name\": e[\"img_name\"],\n                    \"face\": base64.b64encode(e[\"face\"].tobytes()).decode(\"utf-8\"),\n                    \"face_shape\": list(e[\"face\"].shape),\n                    \"model_name\": e[\"model_name\"],\n                    \"detector_backend\": e[\"detector_backend\"],\n                    \"aligned\": e[\"aligned\"],\n                    \"l2_normalized\": e[\"l2_normalized\"],\n                    \"embedding\": e[\"embedding\"],  # optional\n                    \"face_hash\": face_hash,\n                    \"embedding_hash\": embedding_hash,\n                }\n\n                batcher.add_data_object(properties, class_name, vector=e[\"embedding\"], uuid=uid)\n\n        return len(embeddings)\n\n    def fetch_all_embeddings(\n        self,\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n        batch_size: int = 1000,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        Fetch all embeddings with filters.\n        \"\"\"\n        class_name = self.__generate_class_name(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        results = (\n            self.client.query.get(class_name, [\"img_name\", \"embedding\"])\n            .with_additional([\"id\"])\n            .do()\n        )\n        data = results.get(\"data\", {}).get(\"Get\", {}).get(class_name, [])\n\n        embeddings = []\n        for r in data:\n            embeddings.append(\n                {\n                    \"id\": r.get(\"_additional\", {}).get(\"id\"),\n                    \"img_name\": r[\"img_name\"],\n                    \"embedding\": r[\"embedding\"],\n                    \"model_name\": model_name,\n                    \"detector_backend\": detector_backend,\n                    \"aligned\": aligned,\n                    \"l2_normalized\": l2_normalized,\n                }\n            )\n        return embeddings\n\n    def search_by_vector(\n        self,\n        vector: List[float],\n        model_name: str = \"VGG-Face\",\n        detector_backend: str = \"opencv\",\n        aligned: bool = True,\n        l2_normalized: bool = False,\n        limit: int = 10,\n    ) -> List[Dict[str, Any]]:\n        \"\"\"\n        ANN search using the main vector (embedding).\n        \"\"\"\n        class_name = self.__generate_class_name(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n        self.initialize_database(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=aligned,\n            l2_normalized=l2_normalized,\n        )\n\n        query = self.client.query.get(class_name, [\"img_name\", \"embedding\"])\n        query = (\n            query.with_near_vector({\"vector\": vector})\n            .with_limit(limit)\n            .with_additional([\"id\", \"distance\"])\n        )\n        results = query.do()\n\n        data = results.get(\"data\", {}).get(\"Get\", {}).get(class_name, [])\n\n        return [\n            {\n                \"id\": r.get(\"_additional\", {}).get(\"id\"),\n                \"img_name\": r[\"img_name\"],\n                \"embedding\": r[\"embedding\"],\n                \"distance\": (\n                    r.get(\"_additional\", {}).get(\"distance\")\n                    if l2_normalized\n                    else math.sqrt(r.get(\"_additional\", {}).get(\"distance\"))\n                ),\n            }\n            for r in data\n        ]\n\n    def close(self) -> None:\n        \"\"\"\n        Close the Weaviate client connection.\n        \"\"\"\n        self.client.close()\n\n    @staticmethod\n    def __generate_class_name(\n        model_name: str,\n        detector_backend: str,\n        aligned: bool,\n        l2_normalized: bool,\n    ) -> str:\n        \"\"\"\n        Generate Weaviate class name based on parameters.\n        \"\"\"\n        class_name_attributes = [\n            model_name.replace(\"-\", \"\"),\n            detector_backend,\n            \"Aligned\" if aligned else \"Unaligned\",\n            \"Norm\" if l2_normalized else \"Raw\",\n        ]\n        return \"Embeddings_\" + \"_\".join(class_name_attributes).lower()\n"
  },
  {
    "path": "deepface/modules/datastore.py",
    "content": "# built-in dependencies\nimport os\nfrom typing import Any, Dict, IO, List, Union, Optional, cast\nimport uuid\nimport time\nimport math\nimport tempfile\n\n# 3rd party dependencies\nimport pandas as pd\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.modules.database.types import Database\nfrom deepface.modules.database.inventory import database_inventory\n\nfrom deepface.modules.representation import represent\nfrom deepface.modules.verification import (\n    find_angular_distance,\n    find_cosine_distance,\n    find_euclidean_distance,\n    l2_normalize as find_l2_normalize,\n    find_threshold,\n    find_confidence,\n)\nfrom deepface.commons.logger import Logger\n\n\nlogger = Logger()\n\n\n# pylint: disable=too-many-positional-arguments, no-else-return\ndef register(\n    img: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    img_name: Optional[str] = None,\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    l2_normalize: bool = False,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n) -> Dict[str, Any]:\n    \"\"\"\n    Register identities to database for face recognition\n    Args:\n        img (str or np.ndarray or IO[bytes] or list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If a list is provided, each element should be a string\n            or numpy array representing an image, and the function will process images in batch.\n        img_name (optional str): image name to store in db, if not provided then we will try to\n            extract it from given img.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n        database_type (str): Type of database to register identities. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection_details (dict or str): Connection details for the database.\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    Returns:\n        result (dict): A dictionary containing registration results with following keys.\n            - inserted (int): Number of embeddings successfully registered to the database.\n    \"\"\"\n    db_client = __connect_database(\n        database_type=database_type,\n        connection_details=connection_details,\n        connection=connection,\n    )\n\n    results = __get_embeddings(\n        img=img,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        enforce_detection=enforce_detection,\n        align=align,\n        anti_spoofing=anti_spoofing,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        l2_normalize=l2_normalize,\n        return_face=True,\n    )\n\n    embedding_records: List[Dict[str, Any]] = []\n    for result in results:\n        img_identifier = img_name or (\n            img\n            if isinstance(img, str) and img.endswith((\".jpg\", \".jpeg\", \".png\"))\n            else str(uuid.uuid4())\n        )\n\n        embedding_record = {\n            \"id\": None,\n            \"img_name\": img_identifier,\n            \"face\": result[\"face\"],\n            \"model_name\": model_name,\n            \"detector_backend\": detector_backend,\n            \"embedding\": result[\"embedding\"],\n            \"aligned\": align,\n            \"l2_normalized\": l2_normalize,\n        }\n        embedding_records.append(embedding_record)\n\n    inserted = db_client.insert_embeddings(embedding_records, batch_size=100)\n    logger.debug(f\"Successfully registered {inserted} embeddings to the database.\")\n\n    # Close the database connection if it was created internally\n    if connection is None:\n        db_client.close()\n\n    return {\"inserted\": inserted}\n\n\ndef search(\n    img: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    l2_normalize: bool = False,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    similarity_search: bool = False,\n    k: Optional[int] = None,\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n    search_method: str = \"exact\",\n) -> List[pd.DataFrame]:\n    \"\"\"\n    Search for identities in database for face recognition. This is a stateless facial\n        recognition function. Use find function to do it in a stateful way.\n    Args:\n        img (str or np.ndarray or IO[bytes] or list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If a list is provided, each element should be a string\n            or numpy array representing an image, and the function will process images in batch.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'angular' (default is cosine).\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n        similarity_search (boolean): If False, performs identity verification and returns images of\n            the same person. If True, performs similarity search and returns visually similar faces\n            (e.g., celebrity or parental look-alikes). Default is False.\n        k (int): Number of top similar faces to retrieve from the database for each detected face.\n            If not specified, all faces within the threshold will be returned (default is None).\n        search_method (str): Method to use for searching identities. Options: 'exact', 'ann'.\n            To use ann search, you must run build_index function first to create the index.\n        database_type (str): Type of database to search identities. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection_details (dict or str): Connection details for the database.\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    Returns:\n        results (List[pd.DataFrame]):\n            A list of pandas dataframes or a list of dicts. Each dataframe or dict corresponds\n                to the identity information for an individual detected in the source image.\n\n            The DataFrame columns or dict keys include:\n            - id: ID of the detected individual.\n            - img_name: Name of the image file in the database.\n            - model_name: Name of the model used for recognition.\n            - aligned: Whether face alignment was performed.\n            - l2_normalized: Whether L2 normalization was applied.\n            - search_method: Method used for searching identities: exact or ann.\n            - target_x, target_y, target_w, target_h: Bounding box coordinates of the\n                target face in the database. Notice that source image's face coordinates\n                are not included in the result here.\n            - threshold: threshold to determine a pair whether same person or different persons\n            - confidence: Confidence score indicating the likelihood that the images\n                represent the same person. The score is between 0 and 100, where higher values\n                indicate greater confidence in the verification result.\n            - distance_metric: Distance metric used for similarity measurement.\n                Distance metric will be ignored for ann search, and set to cosine if l2_normalize\n                is True, euclidean if l2_normalize is False.\n            - distance: Similarity score between the faces based on the specified model\n                and distance metric\n    \"\"\"\n    dfs: List[pd.DataFrame] = []\n\n    # adjust distance metric\n    if search_method == \"ann\":\n        # ann does cosine for l2 normalized vectors, euclidean for non-l2 normalized vectors\n        new_distance_metric = \"cosine\" if l2_normalize is True else \"euclidean\"\n        if new_distance_metric != distance_metric:\n            logger.warn(\n                f\"Overwriting distance_metric to '{new_distance_metric}' since \"\n                f\"{'vectors are L2-norm' if l2_normalize else 'vectors are not L2-norm'}.\"\n            )\n            distance_metric = new_distance_metric\n    elif search_method != \"exact\":\n        if l2_normalize is True and distance_metric == \"euclidean\":\n            logger.warn(\n                \"Overwriting distance_metric to 'euclidean_l2' since vectors are L2 normalized.\"\n            )\n            distance_metric = \"euclidean_l2\"\n\n    threshold = find_threshold(model_name=model_name, distance_metric=distance_metric)\n\n    db_client = __connect_database(\n        database_type=database_type,\n        connection_details=connection_details,\n        connection=connection,\n    )\n\n    results = __get_embeddings(\n        img=img,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        enforce_detection=enforce_detection,\n        align=align,\n        anti_spoofing=anti_spoofing,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        l2_normalize=l2_normalize,\n        return_face=False,\n    )\n\n    is_vector_db = database_inventory[database_type][\"is_vector_db\"]\n\n    if search_method == \"ann\" and is_vector_db is False:\n        try:\n            import faiss\n        except ImportError as e:\n            raise ValueError(\n                \"faiss is not installed. Please install faiss to use approximate nearest neighbour.\"\n            ) from e\n\n        embeddings_index_bytes = db_client.get_embeddings_index(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=align,\n            l2_normalized=l2_normalize,\n        )\n        embeddings_index_buffer = np.frombuffer(embeddings_index_bytes, dtype=np.uint8)\n        embeddings_index = faiss.deserialize_index(embeddings_index_buffer)\n        logger.info(\"Loaded embeddings index from database.\")\n\n        for result in results:\n            query_vector = np.array(result[\"embedding\"], dtype=\"float32\").reshape(1, -1)\n            distances, indices = embeddings_index.search(query_vector, k or 20)\n            instances = []\n            for i, index in enumerate(indices[0]):\n                distance = (\n                    math.sqrt(distances[0][i])\n                    if distance_metric == \"euclidean\"\n                    else distances[0][i] / 2\n                )\n                verified = bool(distance <= threshold)\n                instance = {\n                    \"id\": index,\n                    # \"img_name\": \"N/A\",  # need to fetch from DB if required\n                    \"model_name\": model_name,\n                    \"detector_backend\": detector_backend,\n                    \"aligned\": align,\n                    \"l2_normalized\": l2_normalize,\n                    \"search_method\": search_method,\n                    \"target_x\": result.get(\"facial_area\", {}).get(\"x\", None),\n                    \"target_y\": result.get(\"facial_area\", {}).get(\"y\", None),\n                    \"target_w\": result.get(\"facial_area\", {}).get(\"w\", None),\n                    \"target_h\": result.get(\"facial_area\", {}).get(\"h\", None),\n                    \"threshold\": threshold,\n                    \"distance_metric\": distance_metric,\n                    \"distance\": distance,\n                    \"confidence\": find_confidence(\n                        distance=distance,\n                        model_name=model_name,\n                        distance_metric=distance_metric,\n                        verified=verified,\n                    ),\n                }\n\n                if similarity_search is False and verified:\n                    instances.append(instance)\n\n            if len(instances) == 0:\n                continue\n\n            df = pd.DataFrame(instances)\n            df = df.sort_values(by=\"distance\", ascending=True).reset_index(drop=True)\n            if k is not None and k > 0:\n                df = df.nsmallest(k, \"distance\")\n\n            # we should query DB to get img_name for each id\n            id_mappings = db_client.search_by_id(ids=df[\"id\"].tolist())\n            ids_df = pd.DataFrame(id_mappings, columns=[\"id\", \"img_name\"])\n            df = df.merge(ids_df, on=\"id\", how=\"left\")\n            del ids_df\n\n            dfs.append(df)\n        return dfs\n\n    elif search_method == \"ann\" and is_vector_db is True:\n        for result in results:\n            target_vector: List[float] = result[\"embedding\"]\n            neighbours = db_client.search_by_vector(\n                vector=target_vector,\n                model_name=model_name,\n                detector_backend=detector_backend,\n                aligned=align,\n                l2_normalized=l2_normalize,\n                limit=k or 20,\n            )\n            if not neighbours:\n                raise ValueError(\n                    \"No embeddings found in the database for the criteria \"\n                    f\"{model_name=}, {detector_backend=}, {align=}, {l2_normalize=}.\"\n                    \"You must call register some embeddings to the database before using search.\"\n                )\n            instances = []\n            for neighbour in neighbours:\n                distance = neighbour[\"distance\"]\n                verified = bool(distance <= threshold)\n                instance = {\n                    \"id\": neighbour[\"id\"],\n                    \"img_name\": neighbour[\"img_name\"],\n                    \"model_name\": model_name,\n                    \"detector_backend\": detector_backend,\n                    \"aligned\": align,\n                    \"l2_normalized\": l2_normalize,\n                    \"search_method\": search_method,\n                    \"target_x\": result.get(\"facial_area\", {}).get(\"x\", None),\n                    \"target_y\": result.get(\"facial_area\", {}).get(\"y\", None),\n                    \"target_w\": result.get(\"facial_area\", {}).get(\"w\", None),\n                    \"target_h\": result.get(\"facial_area\", {}).get(\"h\", None),\n                    \"threshold\": threshold,\n                    \"distance_metric\": distance_metric,\n                    \"distance\": distance,\n                    \"confidence\": find_confidence(\n                        distance=distance,\n                        model_name=model_name,\n                        distance_metric=distance_metric,\n                        verified=verified,\n                    ),\n                }\n\n                if similarity_search is False and verified:\n                    instances.append(instance)\n\n            if len(instances) > 0:\n                df = pd.DataFrame(instances)\n                df = df.sort_values(by=\"distance\", ascending=True).reset_index(drop=True)\n                if k is not None and k > 0:\n                    df = df.nsmallest(k, \"distance\")\n                dfs.append(df)\n\n        return dfs\n\n    elif search_method == \"exact\":\n        source_embeddings = db_client.fetch_all_embeddings(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=align,\n            l2_normalized=l2_normalize,\n        )\n        if not source_embeddings:\n            raise ValueError(\n                \"No embeddings found in the database for the criteria \"\n                f\"{model_name=}, {detector_backend=}, {align=}, {l2_normalize=}.\"\n                \"You must call register some embeddings to the database before using search.\"\n            )\n\n        for result in results:\n            target_embedding = cast(List[float], result[\"embedding\"])\n\n            df = pd.DataFrame(source_embeddings)\n            df[\"target_embedding\"] = [target_embedding for _ in range(len(df))]\n            df[\"search_method\"] = search_method\n            df[\"target_x\"] = result.get(\"facial_area\", {}).get(\"x\", None)\n            df[\"target_y\"] = result.get(\"facial_area\", {}).get(\"y\", None)\n            df[\"target_w\"] = result.get(\"facial_area\", {}).get(\"w\", None)\n            df[\"target_h\"] = result.get(\"facial_area\", {}).get(\"h\", None)\n            df[\"threshold\"] = threshold\n            df[\"distance_metric\"] = distance_metric\n\n            if distance_metric == \"cosine\":\n                df[\"distance\"] = df.apply(\n                    lambda row: find_cosine_distance(row[\"embedding\"], row[\"target_embedding\"]),\n                    axis=1,\n                )\n            elif distance_metric == \"euclidean\":\n                df[\"distance\"] = df.apply(\n                    lambda row: find_euclidean_distance(row[\"embedding\"], row[\"target_embedding\"]),\n                    axis=1,\n                )\n            elif distance_metric == \"angular\":\n                df[\"distance\"] = df.apply(\n                    lambda row: find_angular_distance(row[\"embedding\"], row[\"target_embedding\"]),\n                    axis=1,\n                )\n            elif distance_metric == \"euclidean_l2\":\n                df[\"distance\"] = df.apply(\n                    lambda row: find_euclidean_distance(\n                        find_l2_normalize(row[\"embedding\"]),\n                        find_l2_normalize(row[\"target_embedding\"]),\n                    ),\n                    axis=1,\n                )\n            else:\n                raise ValueError(f\"Unsupported distance metric: {distance_metric}\")\n\n            df[\"confidence\"] = df.apply(\n                lambda row: find_confidence(\n                    distance=row[\"distance\"],\n                    model_name=model_name,\n                    distance_metric=distance_metric,\n                    verified=bool(row[\"distance\"] <= threshold),\n                ),\n                axis=1,\n            )\n\n            df = df.drop(columns=[\"embedding\", \"target_embedding\"])\n\n            if similarity_search is False:\n                df = df[df[\"distance\"] <= threshold]\n\n            if k is not None and k > 0:\n                df = df.nsmallest(k, \"distance\")\n\n            df = df.sort_values(by=\"distance\", ascending=True).reset_index(drop=True)\n\n            dfs.append(df)\n\n        return dfs\n\n    else:\n        raise ValueError(f\"Unsupported search method: {search_method}\")\n\n\ndef build_index(\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    l2_normalize: bool = False,\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n    batch_size: int = 1000,\n    max_neighbors_per_node: int = 32,\n) -> None:\n    \"\"\"\n    Build index for faster search in the database. You should set search_method to 'ann'\n        in the search function to use the built index.\n    Args:\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        max_neighbors_per_node (int): Maximum number of neighbors per node in the index\n            (default is 32).\n        database_type (str): Type of database to build index. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n        connection_details (dict or str): Connection details for the database.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    \"\"\"\n\n    if database_inventory.get(database_type) is None:\n        raise ValueError(f\"Unsupported database type: {database_type}\")\n\n    is_vector_db = database_inventory[database_type][\"is_vector_db\"]\n\n    if is_vector_db is True:\n        logger.info(f\"{database_type} manages its own indexes. No need to build index manually.\")\n        return\n\n    try:\n        import faiss\n    except ImportError as e:\n        raise ValueError(\"faiss is not installed. Please install faiss to use build_index.\") from e\n\n    db_client = __connect_database(\n        database_type=database_type,\n        connection_details=connection_details,\n        connection=connection,\n    )\n\n    index = __get_index(\n        db_client=db_client,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        align=align,\n        l2_normalize=l2_normalize,\n    )\n    if index is not None:\n        indexed_indices = faiss.vector_to_array(index.id_map)\n        indexed_embeddings = set(indexed_indices)\n        logger.info(f\"Found {len(indexed_embeddings)} embeddings already indexed in the database.\")\n    else:\n        logger.info(\"No existing index found in the database. A new index will be created.\")\n        indexed_embeddings = set()\n\n    tic = time.time()\n    source_embeddings = db_client.fetch_all_embeddings(\n        model_name=model_name,\n        detector_backend=detector_backend,\n        aligned=align,\n        l2_normalized=l2_normalize,\n    )\n    toc = time.time()\n\n    if not source_embeddings:\n        raise ValueError(\n            \"No embeddings found in the database for the criteria \"\n            f\"{model_name=}, {detector_backend=}, {align=}, {l2_normalize=}.\"\n            \"You must call register some embeddings to the database before using build_index.\"\n        )\n    logger.info(\n        f\"Fetched {len(source_embeddings)} embeddings from database in {toc - tic:.2f} seconds.\"\n    )\n\n    unindexed_source_embeddings = [\n        item for item in source_embeddings if item[\"id\"] not in indexed_embeddings\n    ]\n\n    if not unindexed_source_embeddings:\n        logger.info(\"All embeddings are already indexed. No new embeddings to index.\")\n        return\n\n    ids = [item[\"id\"] for item in unindexed_source_embeddings]\n    vectors = np.array([item[\"embedding\"] for item in unindexed_source_embeddings], dtype=\"float32\")\n\n    embedding_dim_size = len(source_embeddings[0][\"embedding\"])\n\n    if index is None:\n        base_index = faiss.IndexHNSWFlat(embedding_dim_size, max_neighbors_per_node)\n        index = faiss.IndexIDMap(base_index)\n\n    tic = time.time()\n    for i in range(0, len(vectors), batch_size):\n        batch_ids = np.array(ids[i : i + batch_size], dtype=\"int64\")\n        batch_vectors = vectors[i : i + batch_size]\n        index.add_with_ids(batch_vectors, batch_ids)\n\n    toc = time.time()\n    logger.info(f\"Added {len(vectors)} embeddings to index in {toc - tic:.2f} seconds.\")\n\n    index_path = os.path.join(\n        tempfile.gettempdir(), f\"{model_name}_{detector_backend}_{align}_{l2_normalize}.faiss\"\n    )\n\n    # now create index from scratch, then think how to load an index and add new vectors to it\n    tic = time.time()\n    faiss.write_index(index, index_path)\n    toc = time.time()\n    logger.info(f\"Saved index to disk in {toc - tic:.2f} seconds\")\n\n    with open(index_path, \"rb\") as f:\n        index_data = f.read()\n\n    tic = time.time()\n    db_client.upsert_embeddings_index(\n        model_name=model_name,\n        detector_backend=detector_backend,\n        aligned=align,\n        l2_normalized=l2_normalize,\n        index_data=index_data,\n    )\n    toc = time.time()\n    logger.info(f\"Upserted index to database in {toc - tic:.2f} seconds.\")\n\n    # clean up temp file\n    if os.path.exists(index_path):\n        os.remove(index_path)\n\n\ndef __get_embeddings(\n    img: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    l2_normalize: bool = False,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    return_face: bool = True,\n) -> List[Dict[str, Any]]:\n    \"\"\"\n    Get embeddings for given image(s)\n    Args:\n        img (str or np.ndarray or IO[bytes] or list): The exact path to the image, a numpy array\n            in BGR format, a file object that supports at least `.read` and is opened in binary\n            mode, or a base64 encoded image. If a list is provided, each element should be a string\n            or numpy array representing an image, and the function will process images in batch.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip' (default is opencv).\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n        align (bool): Flag to enable face alignment (default is True).\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base).\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n        return_face (bool): Whether to return the aligned face along with the embedding\n            (default is True).\n    Returns:\n        results (List[Dict]): A list of dictionaries containing embeddings and optionally\n            aligned face images for each detected face in the input image(s).\n    \"\"\"\n    results = represent(\n        img_path=img,\n        model_name=model_name,\n        detector_backend=detector_backend,\n        enforce_detection=enforce_detection,\n        align=align,\n        anti_spoofing=anti_spoofing,\n        expand_percentage=expand_percentage,\n        normalization=normalization,\n        l2_normalize=l2_normalize,\n        return_face=return_face,\n    )\n\n    if len(results) == 0:\n        raise ValueError(\"No embeddings were detected in the provided image(s).\")\n\n    flat_results: List[Dict[str, Any]] = []\n    for result in results:\n        if isinstance(result, dict):\n            flat_results.append(result)\n        elif isinstance(result, list):\n            flat_results.extend(result)\n    return flat_results\n\n\ndef __connect_database(\n    database_type: str = \"postgres\",\n    connection_details: Optional[Union[Dict[str, Any], str]] = None,\n    connection: Any = None,\n) -> Database:\n    \"\"\"\n    Connect to the specified database type\n    Args:\n        database_type (str): Type of database to connect. Options: 'postgres', 'mongo',\n            'weaviate', 'neo4j', 'pgvector', 'pinecone' (default is 'postgres').\n        connection_details (dict or str): Connection details for the database.\n        connection (Any): Existing database connection object. If provided, this connection\n            will be used instead of creating a new one.\n\n        Note:\n            Instead of providing `connection` or `connection_details`, database connection\n            information can be supplied via environment variables:\n            - DEEPFACE_POSTGRES_URI\n            - DEEPFACE_MONGO_URI\n            - DEEPFACE_WEAVIATE_URI\n            - DEEPFACE_NEO4J_URI\n            - DEEPFACE_PINECONE_API_KEY\n    Returns:\n        db_client (Database): An instance of the connected database client.\n    \"\"\"\n\n    if database_inventory.get(database_type) is None:\n        raise ValueError(f\"Unsupported database type: {database_type}\")\n\n    client_class = database_inventory[database_type][\"client\"]\n    return client_class(connection_details=connection_details, connection=connection)\n\n\ndef __get_index(\n    db_client: Database,\n    model_name: str,\n    detector_backend: str,\n    align: bool,\n    l2_normalize: bool,\n) -> Any:\n    \"\"\"\n    Retrieve the embeddings index from the database\n    Args:\n        db_client (Database): An instance of the connected database client.\n        model_name (str): Model for face recognition.\n        detector_backend (string): face detector backend.\n        align (bool): Flag to enable face alignment.\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n    Returns:\n        embeddings_index (Any): The deserialized embeddings index object, or None if not found.\n    \"\"\"\n    import faiss\n\n    try:\n        embeddings_index_bytes = db_client.get_embeddings_index(\n            model_name=model_name,\n            detector_backend=detector_backend,\n            aligned=align,\n            l2_normalized=l2_normalize,\n        )\n        embeddings_index_buffer = np.frombuffer(embeddings_index_bytes, dtype=np.uint8)\n        embeddings_index = faiss.deserialize_index(embeddings_index_buffer)\n        return embeddings_index\n    except ValueError:\n        return None\n"
  },
  {
    "path": "deepface/modules/demography.py",
    "content": "# built-in dependencies\nfrom typing import Any, Dict, List, Union, IO, cast, Tuple\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nfrom tqdm import tqdm\n\n# project dependencies\nfrom deepface.modules import modeling, detection, preprocessing\nfrom deepface.models.demography import Gender, Race, Emotion\nfrom deepface.modules.exceptions import UnimplementedError, SpoofDetected\n\n\n# pylint: disable=too-many-positional-arguments\ndef analyze(\n    img_path: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    actions: Union[Tuple[str, ...], List[str]] = (\"emotion\", \"age\", \"gender\", \"race\"),\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    expand_percentage: int = 0,\n    silent: bool = False,\n    anti_spoofing: bool = False,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Analyze facial attributes such as age, gender, emotion, and race in the provided image.\n\n    Args:\n        img_path (str, np.ndarray, IO[bytes], list): The exact path to the image,\n            a numpy array in BGR format, or a base64 encoded image. If the source image\n            contains multiple faces, the result will include information for each detected face.\n\n        actions (tuple): Attributes to analyze. The default is ('age', 'gender', 'emotion', 'race').\n            You can exclude some of these attributes from the analysis if needed.\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l'\n            'centerface' or 'skip' (default is opencv).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        align (boolean): Perform alignment based on the eye positions (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process\n            (default is False).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        results (List[Dict[str, Any]]): A list of dictionaries, where each dictionary represents\n           the analysis results for a detected face.\n\n           Each dictionary in the list contains the following keys:\n\n           - 'region' (dict): Represents the rectangular region of the detected face in the image.\n               - 'x': x-coordinate of the top-left corner of the face.\n               - 'y': y-coordinate of the top-left corner of the face.\n               - 'w': Width of the detected face region.\n               - 'h': Height of the detected face region.\n\n           - 'age' (float): Estimated age of the detected face.\n\n           - 'face_confidence' (float): Confidence score for the detected face.\n                Indicates the reliability of the face detection.\n\n           - 'dominant_gender' (str): The dominant gender in the detected face.\n                Either \"Man\" or \"Woman.\"\n\n           - 'gender' (dict): Confidence scores for each gender category.\n               - 'Man': Confidence score for the male gender.\n               - 'Woman': Confidence score for the female gender.\n\n           - 'dominant_emotion' (str): The dominant emotion in the detected face.\n                Possible values include \"sad,\" \"angry,\" \"surprise,\" \"fear,\" \"happy,\"\n                \"disgust,\" and \"neutral.\"\n\n           - 'emotion' (dict): Confidence scores for each emotion category.\n               - 'sad': Confidence score for sadness.\n               - 'angry': Confidence score for anger.\n               - 'surprise': Confidence score for surprise.\n               - 'fear': Confidence score for fear.\n               - 'happy': Confidence score for happiness.\n               - 'disgust': Confidence score for disgust.\n               - 'neutral': Confidence score for neutrality.\n\n           - 'dominant_race' (str): The dominant race in the detected face.\n                Possible values include \"indian,\" \"asian,\" \"latino hispanic,\"\n                \"black,\" \"middle eastern,\" and \"white.\"\n\n           - 'race' (dict): Confidence scores for each race category.\n               - 'indian': Confidence score for Indian ethnicity.\n               - 'asian': Confidence score for Asian ethnicity.\n               - 'latino hispanic': Confidence score for Latino/Hispanic ethnicity.\n               - 'black': Confidence score for Black ethnicity.\n               - 'middle eastern': Confidence score for Middle Eastern ethnicity.\n               - 'white': Confidence score for White ethnicity.\n    \"\"\"\n\n    # batch input\n    if (isinstance(img_path, np.ndarray) and img_path.ndim == 4 and img_path.shape[0] > 1) or (\n        isinstance(img_path, list)\n    ):\n        batch_resp_obj: List[List[Dict[str, Any]]] = []\n        # Execute analysis for each image in the batch.\n        for single_img in img_path:\n            # Call the analyze function for each image in the batch.\n            resp_obj = analyze(\n                img_path=single_img,\n                actions=actions,\n                enforce_detection=enforce_detection,\n                detector_backend=detector_backend,\n                align=align,\n                expand_percentage=expand_percentage,\n                silent=silent,\n                anti_spoofing=anti_spoofing,\n            )\n            resp_obj = cast(List[Dict[str, Any]], resp_obj)\n\n            # Append the response object to the batch response list.\n            batch_resp_obj.append(resp_obj)\n        return batch_resp_obj\n\n    # if actions is passed as tuple with single item, interestingly it becomes str here\n    if isinstance(actions, str):\n        actions = (actions,)\n\n    # check if actions is not an iterable or empty.\n    if not hasattr(actions, \"__getitem__\") or not actions:\n        raise ValueError(\"`actions` must be a list of strings.\")\n\n    actions = list(actions)\n\n    # For each action, check if it is valid\n    for action in actions:\n        if action not in (\"emotion\", \"age\", \"gender\", \"race\"):\n            raise UnimplementedError(\n                f\"Invalid action passed ({repr(action)})). \"\n                \"Valid actions are `emotion`, `age`, `gender`, `race`.\"\n            )\n    # ---------------------------------\n    resp_objects = []\n\n    img_objs: List[Dict[str, Any]] = cast(\n        List[Dict[str, Any]],\n        detection.extract_faces(\n            img_path=img_path,\n            detector_backend=detector_backend,\n            enforce_detection=enforce_detection,\n            grayscale=False,\n            align=align,\n            expand_percentage=expand_percentage,\n            anti_spoofing=anti_spoofing,\n        ),\n    )\n\n    for img_obj in img_objs:\n        if anti_spoofing is True and img_obj.get(\"is_real\", True) is False:\n            raise SpoofDetected(\"Spoof detected in the given image.\")\n\n        img_content = img_obj[\"face\"]\n        img_region = img_obj[\"facial_area\"]\n        img_confidence = img_obj[\"confidence\"]\n        if img_content.shape[0] == 0 or img_content.shape[1] == 0:\n            continue\n\n        # rgb to bgr\n        img_content = img_content[:, :, ::-1]\n\n        # resize input image\n        img_content = preprocessing.resize_image(img=img_content, target_size=(224, 224))\n\n        obj: Dict[str, Any] = {}\n        # facial attribute analysis\n        pbar = tqdm(\n            range(0, len(actions)),\n            desc=\"Finding actions\",\n            disable=silent if len(actions) > 1 else True,\n        )\n        for index in pbar:\n            action = actions[index]\n            pbar.set_description(f\"Action: {action}\")\n\n            if action == \"emotion\":\n                emotion_predictions = modeling.build_model(\n                    task=\"facial_attribute\", model_name=\"Emotion\"\n                ).predict(img_content)\n                sum_of_predictions = emotion_predictions.sum()\n\n                obj[\"emotion\"] = {}\n                for i, emotion_label in enumerate(Emotion.labels):\n                    emotion_prediction = 100 * emotion_predictions[i] / sum_of_predictions\n                    obj[\"emotion\"][emotion_label] = emotion_prediction\n\n                obj[\"dominant_emotion\"] = Emotion.labels[np.argmax(emotion_predictions)]\n\n            elif action == \"age\":\n                apparent_age = modeling.build_model(\n                    task=\"facial_attribute\", model_name=\"Age\"\n                ).predict(img_content)\n                # int cast is for exception - object of type 'float32' is not JSON serializable\n                obj[\"age\"] = int(apparent_age)\n\n            elif action == \"gender\":\n                gender_predictions = modeling.build_model(\n                    task=\"facial_attribute\", model_name=\"Gender\"\n                ).predict(img_content)\n                obj[\"gender\"] = {}\n                for i, gender_label in enumerate(Gender.labels):\n                    gender_prediction = 100 * gender_predictions[i]\n                    obj[\"gender\"][gender_label] = gender_prediction\n\n                obj[\"dominant_gender\"] = Gender.labels[np.argmax(gender_predictions)]\n\n            elif action == \"race\":\n                race_predictions = modeling.build_model(\n                    task=\"facial_attribute\", model_name=\"Race\"\n                ).predict(img_content)\n                sum_of_predictions = race_predictions.sum()\n\n                obj[\"race\"] = {}\n                for i, race_label in enumerate(Race.labels):\n                    race_prediction = 100 * race_predictions[i] / sum_of_predictions\n                    obj[\"race\"][race_label] = race_prediction\n\n                obj[\"dominant_race\"] = Race.labels[np.argmax(race_predictions)]\n\n            # -----------------------------\n            # mention facial areas\n            obj[\"region\"] = img_region\n            # include image confidence\n            obj[\"face_confidence\"] = img_confidence\n\n        resp_objects.append(obj)\n\n    return resp_objects\n"
  },
  {
    "path": "deepface/modules/detection.py",
    "content": "# built-in dependencies\nfrom typing import Any, Dict, IO, List, Tuple, Union, Optional, cast\nfrom heapq import nlargest\n\n# 3rd part dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2\n\n# project dependencies\nfrom deepface.modules import modeling\nfrom deepface.models.Detector import Detector, DetectedFace, FacialAreaRegion\nfrom deepface.commons import image_utils\nfrom deepface.models.face_detection import OpenCv\nfrom deepface.modules.exceptions import FaceNotDetected\nfrom deepface.modules.exceptions import UnimplementedError, ImgNotFound\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# pylint: disable=no-else-raise, too-many-positional-arguments\n\n\ndef is_valid_landmark(\n    coord: Optional[Union[Tuple[int, int], Tuple[float, float], List[Union[float, int]]]],\n    width: int,\n    height: int,\n) -> bool:\n    \"\"\"\n    Check if a landmark coordinate is within valid image bounds.\n\n    Args:\n        coord (tuple or list or None): (x, y) coordinate to check.\n        width (int): Image width.\n        height (int): Image height.\n    Returns:\n        bool: True if coordinate is valid and within bounds, False otherwise.\n    \"\"\"\n    if coord is None:\n        return False\n    if not (isinstance(coord, (tuple, list)) and len(coord) == 2):\n        return False\n    x, y = coord\n    return 0 <= x < width and 0 <= y < height\n\n\ndef extract_faces(\n    img_path: Union[str, NDArray[Any], IO[bytes], List[str], List[NDArray[Any]], List[IO[bytes]]],\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    grayscale: bool = False,\n    color_face: str = \"rgb\",\n    normalize_face: bool = True,\n    anti_spoofing: bool = False,\n    max_faces: Optional[int] = None,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Extract faces from a given image\n\n    Args:\n        img_path (str or list of str ornp.ndarray or IO[bytes]): Path to the first image.\n            Accepts exact image path as a string, list of string, numpy array (BGR), a file object\n            that supports at least `.read` and is opened in binary mode, or base64 encoded images.\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m','yolov12l'\n            'centerface' or 'skip' (default is opencv)\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Default is True. Set to False to avoid the exception for low-resolution images.\n\n        align (bool): Flag to enable face alignment (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage.\n\n        grayscale (boolean): (Deprecated) Flag to convert the output face image to grayscale\n            (default is False).\n\n        color_face (string): Color to return face image output. Options: 'rgb', 'bgr' or 'gray'\n            (default is 'rgb').\n\n        normalize_face (boolean): Flag to enable normalization (divide by 255) of the output\n            face image output face image normalization (default is True).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        results (List[Dict[str, Any]]): A list of dictionaries, where each dictionary contains:\n\n        - \"face\" (np.ndarray): The detected face as a NumPy array in RGB format.\n\n        - \"facial_area\" (Dict[str, Any]): The detected face's regions as a dictionary containing:\n            - keys 'x', 'y', 'w', 'h' with int values\n            - keys 'left_eye', 'right_eye' with a tuple of 2 ints as values.\n                left eye and right eye are eyes on the left and right respectively with respect\n                to the person itself instead of observer.\n\n        - \"confidence\" (float): The confidence score associated with the detected face.\n\n        - \"is_real\" (boolean): antispoofing analyze result. this key is just available in the\n            result only if anti_spoofing is set to True in input arguments.\n\n        - \"antispoof_score\" (float): score of antispoofing analyze result. this key is\n            just available in the result only if anti_spoofing is set to True in input arguments.\n    \"\"\"\n    if isinstance(img_path, list) or (isinstance(img_path, np.ndarray) and img_path.ndim == 4):\n        if isinstance(img_path, np.ndarray):\n            img_paths = [img_path[i] for i in range(img_path.shape[0])]\n        else:\n            img_paths = img_path\n\n        all_faces: List[List[Dict[str, Any]]] = []\n        for single_img_path in img_paths:\n            faces = cast(\n                List[Dict[str, Any]],\n                extract_faces(\n                    img_path=single_img_path,\n                    detector_backend=detector_backend,\n                    enforce_detection=enforce_detection,\n                    align=align,\n                    expand_percentage=expand_percentage,\n                    grayscale=grayscale,\n                    color_face=color_face,\n                    normalize_face=normalize_face,\n                    anti_spoofing=anti_spoofing,\n                    max_faces=max_faces,\n                ),\n            )\n            all_faces.append(faces)\n        return all_faces\n\n    resp_objs: List[Dict[str, Any]] = []\n\n    # img might be path, base64 or numpy array. Convert it to numpy whatever it is.\n    img, img_name = image_utils.load_image(img_path)\n\n    if img is None:\n        raise ValueError(f\"Exception while loading {img_name}\")\n\n    height, width, _ = img.shape\n\n    base_region = FacialAreaRegion(x=0, y=0, w=width, h=height, confidence=0)\n\n    if detector_backend == \"skip\":\n        face_objs = [DetectedFace(img=img, facial_area=base_region, confidence=0)]\n    else:\n        face_objs = detect_faces(\n            detector_backend=detector_backend,\n            img=img,\n            align=align,\n            expand_percentage=expand_percentage,\n            max_faces=max_faces,\n        )\n\n    # in case of no face found\n    if len(face_objs) == 0 and enforce_detection is True:\n        if img_name is not None:\n            raise FaceNotDetected(\n                f\"Face could not be detected in {img_name}.\"\n                \"Please confirm that the picture is a face photo \"\n                \"or consider to set enforce_detection param to False.\"\n            )\n        else:\n            raise FaceNotDetected(\n                \"Face could not be detected. Please confirm that the picture is a face photo \"\n                \"or consider to set enforce_detection param to False.\"\n            )\n\n    if len(face_objs) == 0 and enforce_detection is False:\n        face_objs = [DetectedFace(img=img, facial_area=base_region, confidence=0)]\n\n    for face_obj in face_objs:\n        current_img = face_obj.img\n        current_region = face_obj.facial_area\n\n        if current_img.shape[0] == 0 or current_img.shape[1] == 0:\n            continue\n\n        if grayscale is True:\n            logger.warn(\"Parameter grayscale is deprecated. Use color_face instead.\")\n            current_img = cv2.cvtColor(current_img, cv2.COLOR_BGR2GRAY)\n        else:\n            if color_face == \"rgb\":\n                current_img = current_img[:, :, ::-1]\n            elif color_face == \"bgr\":\n                pass  # image is in BGR\n            elif color_face == \"gray\":\n                current_img = cv2.cvtColor(current_img, cv2.COLOR_BGR2GRAY)\n            else:\n                raise UnimplementedError(\n                    f\"The color_face can be rgb, bgr or gray, but it is {color_face}.\"\n                )\n\n        if normalize_face:\n            current_img = current_img / 255  # normalize input in [0, 1]\n\n        # cast to int for flask, and do final checks for borders\n        x = max(0, int(current_region.x))\n        y = max(0, int(current_region.y))\n        w = min(width - x - 1, int(current_region.w))\n        h = min(height - y - 1, int(current_region.h))\n\n        landmarks = {\n            \"left_eye\": current_region.left_eye,\n            \"right_eye\": current_region.right_eye,\n            \"nose\": current_region.nose,\n            \"mouth_left\": current_region.mouth_left,\n            \"mouth_right\": current_region.mouth_right,\n        }\n\n        # convert these to raw python types to ensure compability with Flask\n        for key, value in landmarks.items():\n            if value is not None:\n                landmarks[key] = (int(value[0]), int(value[1]))\n\n        # Sanitize landmarks - set invalid ones to None\n        for key, value in landmarks.items():\n            if not is_valid_landmark(value, width, height):\n                landmarks[key] = None\n\n        facial_area = {\n            \"x\": x,\n            \"y\": y,\n            \"w\": w,\n            \"h\": h,\n            \"left_eye\": landmarks[\"left_eye\"],\n            \"right_eye\": landmarks[\"right_eye\"],\n        }\n\n        # optional nose, mouth_left and mouth_right fields are coming just for retinaface\n        if current_region.nose is not None:\n            facial_area[\"nose\"] = landmarks[\"nose\"]\n        if current_region.mouth_left is not None:\n            facial_area[\"mouth_left\"] = landmarks[\"mouth_left\"]\n        if current_region.mouth_right is not None:\n            facial_area[\"mouth_right\"] = landmarks[\"mouth_right\"]\n\n        resp_obj = {\n            \"face\": current_img,\n            \"facial_area\": facial_area,\n            \"confidence\": round(float(current_region.confidence or 0), 2),\n        }\n\n        if anti_spoofing is True:\n            antispoof_model = modeling.build_model(task=\"spoofing\", model_name=\"Fasnet\")\n            is_real, antispoof_score = antispoof_model.analyze(img=img, facial_area=(x, y, w, h))\n            resp_obj[\"is_real\"] = is_real\n            resp_obj[\"antispoof_score\"] = antispoof_score\n\n        resp_objs.append(resp_obj)\n\n    if len(resp_objs) == 0 and enforce_detection == True:\n        raise ImgNotFound(\n            f\"Exception while extracting faces from {img_name}.\"\n            \"Consider to set enforce_detection arg to False.\"\n        )\n\n    return resp_objs\n\n\ndef detect_faces(\n    detector_backend: str,\n    img: NDArray[Any],\n    align: bool = True,\n    expand_percentage: int = 0,\n    max_faces: Optional[int] = None,\n) -> List[DetectedFace]:\n    \"\"\"\n    Detect face(s) from a given image\n    Args:\n        detector_backend (str): detector name\n\n        img (np.ndarray): pre-loaded image\n\n        align (bool): enable or disable alignment after detection\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n    Returns:\n        results (List[DetectedFace]): A list of DetectedFace objects\n            where each object contains:\n\n        - img (np.ndarray): The detected face as a NumPy array.\n\n        - facial_area (FacialAreaRegion): The facial area region represented as x, y, w, h,\n            left_eye and right eye. left eye and right eye are eyes on the left and right\n            with respect to the person instead of observer.\n\n        - confidence (float): The confidence score associated with the detected face.\n    \"\"\"\n    height, width, _ = img.shape\n    face_detector: Detector = modeling.build_model(\n        task=\"face_detector\", model_name=detector_backend\n    )\n\n    # validate expand percentage score\n    if expand_percentage < 0:\n        logger.warn(\n            f\"Expand percentage cannot be negative but you set it to {expand_percentage}.\"\n            \"Overwritten it to 0.\"\n        )\n        expand_percentage = 0\n\n    # If faces are close to the upper boundary, alignment move them outside\n    # Add a black border around an image to avoid this.\n    height_border = int(0.5 * height)\n    width_border = int(0.5 * width)\n    if align is True:\n        img = cv2.copyMakeBorder(\n            img,\n            height_border,\n            height_border,\n            width_border,\n            width_border,\n            cv2.BORDER_CONSTANT,\n            value=[0, 0, 0],  # Color of the border (black)\n        )\n\n    # find facial areas of given image\n    facial_areas = face_detector.detect_faces(img)\n\n    if max_faces is not None and max_faces < len(facial_areas):\n        facial_areas = nlargest(\n            max_faces, facial_areas, key=lambda facial_area: facial_area.w * facial_area.h\n        )\n\n    return [\n        extract_face(\n            facial_area=facial_area,\n            img=img,\n            align=align,\n            expand_percentage=expand_percentage,\n            width_border=width_border,\n            height_border=height_border,\n            detector_backend=detector_backend,\n        )\n        for facial_area in facial_areas\n    ]\n\n\ndef extract_face(\n    facial_area: FacialAreaRegion,\n    img: NDArray[Any],\n    align: bool,\n    expand_percentage: int,\n    width_border: int,\n    height_border: int,\n    detector_backend: str,\n) -> DetectedFace:\n    x = facial_area.x\n    y = facial_area.y\n    w = facial_area.w\n    h = facial_area.h\n    left_eye = facial_area.left_eye\n    right_eye = facial_area.right_eye\n    confidence = facial_area.confidence\n    nose = facial_area.nose\n    mouth_left = facial_area.mouth_left\n    mouth_right = facial_area.mouth_right\n\n    if expand_percentage > 0:\n        # Expand the facial region height and width by the provided percentage\n        # ensuring that the expanded region stays within img.shape limits\n        expanded_w = w + int(w * expand_percentage / 100)\n        expanded_h = h + int(h * expand_percentage / 100)\n\n        x = max(0, x - int((expanded_w - w) / 2))\n        y = max(0, y - int((expanded_h - h) / 2))\n        w = min(img.shape[1] - x, expanded_w)\n        h = min(img.shape[0] - y, expanded_h)\n\n    # extract detected face unaligned\n    detected_face = img[int(y) : int(y + h), int(x) : int(x + w)]\n\n    # use opencv if eyes aren't provided by the detector (e.g. ssd, yolo)\n    if detector_backend != \"opencv\" and (left_eye is None or right_eye is None):\n        default_detector: OpenCv.OpenCvClient = modeling.build_model(\n            task=\"face_detector\", model_name=\"opencv\"\n        )\n        left_eye_new, right_eye_new = default_detector.find_eyes(detected_face)\n        if left_eye is None and left_eye_new is not None:\n            left_eye = (int(left_eye_new[0]) + x, int(left_eye_new[1]) + y)\n            logger.debug(\n                f\"left eye wasn't detected by {detector_backend}, overwritten by cv2 - {left_eye}\"\n            )\n        if right_eye is None and right_eye_new is not None:\n            right_eye = (int(right_eye_new[0]) + x, int(right_eye_new[1]) + y)\n            logger.debug(\n                f\"right eye wasn't detected by {detector_backend}, overwritten by cv2 - {right_eye}\"\n            )\n\n    # align original image, then find projection of detected face area after alignment\n    if align is True:  # and left_eye is not None and right_eye is not None:\n        # we were aligning the original image before, but this comes with an extra cost\n        # instead we now focus on the facial area with a margin\n        # and align it instead of original image to decrese the cost\n        sub_img, relative_x, relative_y = extract_sub_image(img=img, facial_area=(x, y, w, h))\n\n        aligned_sub_img, angle = align_img_wrt_eyes(\n            img=sub_img, left_eye=left_eye, right_eye=right_eye\n        )\n\n        rotated_x1, rotated_y1, rotated_x2, rotated_y2 = project_facial_area(\n            facial_area=(\n                relative_x,\n                relative_y,\n                relative_x + w,\n                relative_y + h,\n            ),\n            angle=angle,\n            size=(sub_img.shape[0], sub_img.shape[1]),\n        )\n        detected_face = aligned_sub_img[\n            int(rotated_y1) : int(rotated_y2), int(rotated_x1) : int(rotated_x2)\n        ]\n\n        # do not spend memory for these temporary variables anymore\n        del aligned_sub_img, sub_img\n\n        # restore x, y, le and re before border added\n        x = x - width_border\n        y = y - height_border\n        # w and h will not change\n        if left_eye is not None:\n            left_eye = (left_eye[0] - width_border, left_eye[1] - height_border)\n        if right_eye is not None:\n            right_eye = (right_eye[0] - width_border, right_eye[1] - height_border)\n        if nose is not None:\n            nose = (nose[0] - width_border, nose[1] - height_border)\n        if mouth_left is not None:\n            mouth_left = (mouth_left[0] - width_border, mouth_left[1] - height_border)\n        if mouth_right is not None:\n            mouth_right = (mouth_right[0] - width_border, mouth_right[1] - height_border)\n\n    return DetectedFace(\n        img=detected_face,\n        facial_area=FacialAreaRegion(\n            x=x,\n            y=y,\n            h=h,\n            w=w,\n            confidence=confidence,\n            left_eye=left_eye,\n            right_eye=right_eye,\n            nose=nose,\n            mouth_left=mouth_left,\n            mouth_right=mouth_right,\n        ),\n        confidence=confidence or 0,\n    )\n\n\ndef extract_sub_image(\n    img: NDArray[Any], facial_area: Tuple[int, int, int, int]\n) -> Tuple[NDArray[Any], int, int]:\n    \"\"\"\n    Get the sub image with given facial area while expanding the facial region\n        to ensure alignment does not shift the face outside the image.\n\n    This function doubles the height and width of the face region,\n    and adds black pixels if necessary.\n\n    Args:\n        - img (np.ndarray): pre-loaded image with detected face\n        - facial_area (tuple of int): Representing the (x, y, w, h) of the facial area.\n\n    Returns:\n        - extracted_face (np.ndarray): expanded facial image\n        - relative_x (int): adjusted x-coordinates relative to the expanded region\n        - relative_y (int): adjusted y-coordinates relative to the expanded region\n    \"\"\"\n    x, y, w, h = facial_area\n    relative_x = int(0.5 * w)\n    relative_y = int(0.5 * h)\n\n    # calculate expanded coordinates\n    x1, y1 = x - relative_x, y - relative_y\n    x2, y2 = x + w + relative_x, y + h + relative_y\n\n    # most of the time, the expanded region fits inside the image\n    if x1 >= 0 and y1 >= 0 and x2 <= img.shape[1] and y2 <= img.shape[0]:\n        return img[y1:y2, x1:x2], relative_x, relative_y\n\n    # but sometimes, we need to add black pixels\n    # ensure the coordinates are within bounds\n    x1, y1 = max(0, x1), max(0, y1)\n    x2, y2 = min(img.shape[1], x2), min(img.shape[0], y2)\n    cropped_region = img[y1:y2, x1:x2]\n\n    # create a black image\n    extracted_face = np.zeros(\n        (h + 2 * relative_y, w + 2 * relative_x, img.shape[2]), dtype=img.dtype\n    )\n\n    # map the cropped region\n    start_x = max(0, relative_x - x)\n    start_y = max(0, relative_y - y)\n    extracted_face[\n        start_y : start_y + cropped_region.shape[0], start_x : start_x + cropped_region.shape[1]\n    ] = cropped_region\n\n    return extracted_face, relative_x, relative_y\n\n\ndef align_img_wrt_eyes(\n    img: NDArray[Any],\n    left_eye: Optional[Union[List[float], List[int], Tuple[float, float], Tuple[int, int]]],\n    right_eye: Optional[Union[List[float], List[int], Tuple[float, float], Tuple[int, int]]],\n) -> Tuple[NDArray[Any], float]:\n    \"\"\"\n    Align a given image horizantally with respect to their left and right eye locations\n    Args:\n        img (np.ndarray): pre-loaded image with detected face\n        left_eye (list or tuple): coordinates of left eye with respect to the person itself\n        right_eye(list or tuple): coordinates of right eye with respect to the person itself\n    Returns:\n        img (np.ndarray): aligned facial image\n    \"\"\"\n    # if eye could not be detected for the given image, return image itself\n    if left_eye is None or right_eye is None:\n        return img, 0\n\n    # sometimes unexpectedly detected images come with nil dimensions\n    if img.shape[0] == 0 or img.shape[1] == 0:\n        return img, 0\n\n    angle = float(np.degrees(np.arctan2(left_eye[1] - right_eye[1], left_eye[0] - right_eye[0])))\n\n    (h, w) = img.shape[:2]\n    center = (w // 2, h // 2)\n    M = cv2.getRotationMatrix2D(center, angle, 1.0)\n    img = cv2.warpAffine(\n        img, M, (w, h), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_CONSTANT, borderValue=(0, 0, 0)\n    )\n\n    return img, angle\n\n\ndef project_facial_area(\n    facial_area: Tuple[int, int, int, int], angle: float, size: Tuple[int, int]\n) -> Tuple[int, int, int, int]:\n    \"\"\"\n    Update pre-calculated facial area coordinates after image itself\n        rotated with respect to the eyes.\n    Inspried from the work of @UmutDeniz26 - github.com/serengil/retinaface/pull/80\n\n    Args:\n        facial_area (tuple of int): Representing the (x1, y1, x2, y2) of the facial area.\n            x2 is equal to x1 + w1, and y2 is equal to y1 + h1\n        angle (float): Angle of rotation in degrees. Its sign determines the direction of rotation.\n                       Note that angles > 360 degrees are normalized to the range [0, 360).\n        size (tuple of int): Tuple representing the size of the image (width, height).\n\n    Returns:\n        rotated_coordinates (tuple of int): Representing the new coordinates\n            (x1, y1, x2, y2) or (x1, y1, x1+w1, y1+h1) of the rotated facial area.\n    \"\"\"\n\n    # Normalize the witdh of the angle so we don't have to\n    # worry about rotations greater than 360 degrees.\n    # We workaround the quirky behavior of the modulo operator\n    # for negative angle values.\n    direction = 1 if angle >= 0 else -1\n    angle = abs(angle) % 360\n    if angle == 0:\n        return facial_area\n\n    # Angle in radians\n    angle = angle * np.pi / 180\n\n    height, weight = size\n\n    # Translate the facial area to the center of the image\n    x = (facial_area[0] + facial_area[2]) / 2 - weight / 2\n    y = (facial_area[1] + facial_area[3]) / 2 - height / 2\n\n    # Rotate the facial area\n    x_new = x * np.cos(angle) + y * direction * np.sin(angle)\n    y_new = -x * direction * np.sin(angle) + y * np.cos(angle)\n\n    # Translate the facial area back to the original position\n    x_new = x_new + weight / 2\n    y_new = y_new + height / 2\n\n    # Calculate projected coordinates after alignment\n    x1 = x_new - (facial_area[2] - facial_area[0]) / 2\n    y1 = y_new - (facial_area[3] - facial_area[1]) / 2\n    x2 = x_new + (facial_area[2] - facial_area[0]) / 2\n    y2 = y_new + (facial_area[3] - facial_area[1]) / 2\n\n    # validate projected coordinates are in image's boundaries\n    x1 = max(int(x1), 0)\n    y1 = max(int(y1), 0)\n    x2 = min(int(x2), weight)\n    y2 = min(int(y2), height)\n\n    return (x1, y1, x2, y2)\n"
  },
  {
    "path": "deepface/modules/encryption.py",
    "content": "# built-in dependencies\nfrom typing import List, Union, Optional, cast\n\n# third-party dependencies\nfrom lightphe import LightPHE\nfrom lightphe.models.Tensor import EncryptedTensor\nimport numpy as np\n\n# project dependencies\nfrom deepface.commons.embed_utils import is_flat_embedding\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=no-else-return\ndef encrypt_embeddings(\n    embeddings: Union[List[float], List[List[float]]], cryptosystem: Optional[LightPHE] = None\n) -> Union[EncryptedTensor, List[EncryptedTensor], None]:\n    \"\"\"\n    Encrypt embeddings using a provided cryptosystem.\n    Args:\n        embeddings (List[float] or List[List[float]]): Embeddings to encrypt.\n        cryptosystem (LightPHE): Cryptosystem to use for encryption.\n    Returns:\n        EncryptedTensor or List[EncryptedTensor] or None: Encrypted embeddings or None\n            if no cryptosystem is provided.\n    \"\"\"\n    if cryptosystem is None:\n        return None\n\n    if is_flat_embedding(embeddings):\n        embedding = cast(List[float], embeddings)  # let type checker know\n        encrypted_embedding = encrypt_embedding(embedding, cryptosystem)\n        return encrypted_embedding\n    else:\n        encrypted_embeddings: List[EncryptedTensor] = []\n        embeddings = cast(List[List[float]], embeddings)\n        for embedding in embeddings:\n            encrypted_embedding = encrypt_embedding(embedding, cryptosystem)\n            encrypted_embeddings.append(encrypted_embedding)\n\n        if all(item is None for item in encrypted_embeddings):\n            return None\n\n        return encrypted_embeddings\n\n\ndef encrypt_embedding(embeddings: List[float], cryptosystem: LightPHE) -> Optional[EncryptedTensor]:\n    \"\"\"\n    Encrypt an embedding using a provided cryptosystem.\n    Args:\n        embeddings (List[float]): Embedding to encrypt.\n        cryptosystem (LightPHE): Cryptosystem to use for encryption.\n    Returns:\n        EncryptedTensor or None: Encrypted embedding or None if encryption is skipped.\n    \"\"\"\n    if any(x < 0 for x in embeddings):\n        logger.warn(\n            \"Skipping encryption because it contains negative values.\"\n            \"Consider to set minmax_normalize=True in DeepFace.represent method.\"\n        )\n        return None\n\n    norm = np.linalg.norm(embeddings)\n    if not np.isclose(norm, 1.0):\n        logger.warn(\n            \"Skipping encryption because given embedding is not l_2 normalized.\"\n            \"Consider to set l2_normalize=True in DeepFace.represent method.\"\n        )\n        return None\n\n    encrypted_embeddings = cryptosystem.encrypt(embeddings, silent=True)\n    return encrypted_embeddings\n"
  },
  {
    "path": "deepface/modules/exceptions.py",
    "content": "# pylint: disable=unnecessary-pass\n\n\nclass ImgNotFound(ValueError):\n    \"\"\"Raised when the input image is not found or cannot be loaded.\"\"\"\n\n    pass\n\n\nclass PathNotFound(ValueError):\n    \"\"\"Raised when the input path is not found.\"\"\"\n\n    pass\n\n\nclass FaceNotDetected(ValueError):\n    \"\"\"Raised when no face is detected in the input image.\"\"\"\n\n    pass\n\n\nclass SpoofDetected(ValueError):\n    \"\"\"Raised when a spoofed face is detected in the input image.\"\"\"\n\n    pass\n\n\nclass EmptyDatasource(ValueError):\n    \"\"\"Raised when the provided data source is empty.\"\"\"\n\n    pass\n\n\nclass DimensionMismatchError(ValueError):\n    \"\"\"Raised when the dimensions of the input do not match the expected dimensions.\"\"\"\n\n    pass\n\n\nclass InvalidEmbeddingsShapeError(ValueError):\n    \"\"\"Raised when the shape of the embeddings is invalid.\"\"\"\n\n    pass\n\n\nclass DataTypeError(ValueError):\n    \"\"\"Raised when the input data type is incorrect.\"\"\"\n\n    pass\n\n\nclass UnimplementedError(ValueError):\n    \"\"\"Raised when a requested feature is not implemented.\"\"\"\n\n    pass\n\n\nclass DuplicateEntryError(ValueError):\n    \"\"\"Raised when a duplicate entry is found in the database.\"\"\"\n\n    pass\n"
  },
  {
    "path": "deepface/modules/modeling.py",
    "content": "from __future__ import annotations\n\n# built-in dependencies\nfrom typing import TYPE_CHECKING, Any, Final, TypedDict, Dict\n\n# project dependencies\nfrom deepface.models.facial_recognition import (\n    VGGFace,\n    OpenFace,\n    FbDeepFace,\n    DeepID,\n    ArcFace,\n    SFace,\n    Dlib,\n    Facenet,\n    GhostFaceNet,\n    Buffalo_L,\n)\nfrom deepface.models.face_detection import (\n    FastMtCnn,\n    MediaPipe,\n    MtCnn,\n    OpenCv,\n    Dlib as DlibDetector,\n    RetinaFace,\n    Ssd,\n    Yolo as YoloFaceDetector,\n    YuNet,\n    CenterFace,\n)\nfrom deepface.models.demography import Age, Gender, Race, Emotion\nfrom deepface.models.spoofing import FasNet\nfrom deepface.modules.exceptions import UnimplementedError\n\nif TYPE_CHECKING:\n    from deepface.models.Demography import Demography\n    from deepface.models.Detector import Detector\n    from deepface.models.FacialRecognition import FacialRecognition\n\n    cached_models: Dict[str, Dict[str, Any]] = {}\n\n\nclass AvailableModels(TypedDict):\n    facial_recognition: dict[str, type[FacialRecognition]]\n    spoofing: dict[str, type[FasNet.Fasnet]]\n    facial_attribute: dict[str, type[Demography]]\n    face_detector: dict[str, type[Detector]]\n\n\nAVAILABLE_MODELS: Final[AvailableModels] = {\n    \"facial_recognition\": {\n        \"VGG-Face\": VGGFace.VggFaceClient,\n        \"OpenFace\": OpenFace.OpenFaceClient,\n        \"Facenet\": Facenet.FaceNet128dClient,\n        \"Facenet512\": Facenet.FaceNet512dClient,\n        \"DeepFace\": FbDeepFace.DeepFaceClient,\n        \"DeepID\": DeepID.DeepIdClient,\n        \"Dlib\": Dlib.DlibClient,\n        \"ArcFace\": ArcFace.ArcFaceClient,\n        \"SFace\": SFace.SFaceClient,\n        \"GhostFaceNet\": GhostFaceNet.GhostFaceNetClient,\n        \"Buffalo_L\": Buffalo_L.Buffalo_L,\n    },\n    \"spoofing\": {\n        \"Fasnet\": FasNet.Fasnet,\n    },\n    \"facial_attribute\": {\n        \"Emotion\": Emotion.EmotionClient,\n        \"Age\": Age.ApparentAgeClient,\n        \"Gender\": Gender.GenderClient,\n        \"Race\": Race.RaceClient,\n    },\n    \"face_detector\": {\n        \"opencv\": OpenCv.OpenCvClient,\n        \"mtcnn\": MtCnn.MtCnnClient,\n        \"ssd\": Ssd.SsdClient,\n        \"dlib\": DlibDetector.DlibClient,\n        \"retinaface\": RetinaFace.RetinaFaceClient,\n        \"mediapipe\": MediaPipe.MediaPipeClient,\n        \"yolov8n\": YoloFaceDetector.YoloDetectorClientV8n,\n        \"yolov8m\": YoloFaceDetector.YoloDetectorClientV8m,\n        \"yolov8l\": YoloFaceDetector.YoloDetectorClientV8l,\n        \"yolov11n\": YoloFaceDetector.YoloDetectorClientV11n,\n        \"yolov11s\": YoloFaceDetector.YoloDetectorClientV11s,\n        \"yolov11m\": YoloFaceDetector.YoloDetectorClientV11m,\n        \"yolov11l\": YoloFaceDetector.YoloDetectorClientV11l,\n        \"yolov12n\": YoloFaceDetector.YoloDetectorClientV12n,\n        \"yolov12s\": YoloFaceDetector.YoloDetectorClientV12s,\n        \"yolov12m\": YoloFaceDetector.YoloDetectorClientV12m,\n        \"yolov12l\": YoloFaceDetector.YoloDetectorClientV12l,\n        \"yunet\": YuNet.YuNetClient,\n        \"fastmtcnn\": FastMtCnn.FastMtCnnClient,\n        \"centerface\": CenterFace.CenterFaceClient,\n    },\n}\n\n\ndef build_model(task: str, model_name: str) -> Any:\n    \"\"\"\n    This function loads a pre-trained models as singletonish way\n    Parameters:\n        task (str): facial_recognition, facial_attribute, face_detector, spoofing\n        model_name (str): model identifier\n            - VGG-Face, Facenet, Facenet512, OpenFace, DeepFace, DeepID, Dlib,\n                ArcFace, SFace and GhostFaceNet for face recognition\n            - Age, Gender, Emotion, Race for facial attributes\n            - opencv, mtcnn, ssd, dlib, retinaface, mediapipe, yolov8, 'yolov11n',\n                'yolov11s', 'yolov11m', yunet, fastmtcnn or centerface for face detectors\n            - Fasnet for spoofing\n    Returns:\n            built model class\n    \"\"\"\n\n    # singleton design pattern\n    global cached_models\n\n    if task not in AVAILABLE_MODELS.keys():\n        raise UnimplementedError(f\"unimplemented task - {task}\")\n\n    if \"cached_models\" not in globals():\n        cached_models = {current_task: {} for current_task in AVAILABLE_MODELS.keys()}\n\n    if cached_models[task].get(model_name) is None:\n        model = AVAILABLE_MODELS[task].get(model_name)  # type: ignore[literal-required]\n        if model:\n            cached_models[task][model_name] = model()\n        else:\n            raise UnimplementedError(f\"Invalid model_name passed - {task}/{model_name}\")\n\n    return cached_models[task][model_name]\n"
  },
  {
    "path": "deepface/modules/normalization.py",
    "content": "# built-in dependencies\nfrom typing import List, Union, cast\n\n# third-party dependencies\nimport numpy as np\n\n# project dependencies\nfrom deepface.config.minmax import get_minmax_values\nfrom deepface.commons.embed_utils import is_flat_embedding\n\n\ndef normalize_embedding_minmax(\n    model_name: str, embeddings: Union[List[float], List[List[float]]]\n) -> Union[List[float], List[List[float]]]:\n    \"\"\"\n    Normalize embeddings using min-max normalization based on model-specific min-max values.\n    Args:\n        model_name (str): Name of the model to get min-max values for.\n        embeddings (List[float] or List[List[float]]): Embeddings to normalize.\n    Returns:\n        List[float] or List[List[float]]: Normalized embeddings.\n    \"\"\"\n    dim_min, dim_max = get_minmax_values(model_name)\n\n    if dim_max - dim_min == 0:\n        return embeddings\n\n    if is_flat_embedding(embeddings):\n        embeddings = cast(List[float], embeddings)  # let type checker know\n\n        # Clamp vals to [dim_min, dim_max] to ensure the norm-embedding stays in [0, 1]\n        embeddings = [max(x, dim_min) for x in embeddings]  # lower-bound clamp\n        embeddings = [min(x, dim_max) for x in embeddings]  # upper-bound clamp\n\n        embeddings = [(x - dim_min) / (dim_max - dim_min) for x in embeddings]\n\n    else:\n        normalized_embeddings = []\n        for emb in embeddings:\n            emb = cast(List[float], emb)  # let type checker know\n\n            # Clamp vals to [dim_min, dim_max] to ensure the norm-embedding stays in [0, 1]\n            emb = [max(x, dim_min) for x in emb]  # lower-bound clamp\n            emb = [min(x, dim_max) for x in emb]  # upper-bound clamp\n\n            emb = [(min(max(x, dim_min), dim_max) - dim_min) / (dim_max - dim_min) for x in emb]\n            normalized_embeddings.append(emb)\n        embeddings = normalized_embeddings\n\n    return embeddings\n\n\ndef normalize_embedding_l2(\n    embeddings: Union[List[float], List[List[float]]],\n) -> Union[List[float], List[List[float]]]:\n    \"\"\"\n    Normalize embeddings using L2 normalization.\n    Args:\n        embeddings (List[float] or List[List[float]]): Embeddings to normalize.\n    Returns:\n        List[float] or List[List[float]]: L2-normalized embeddings.\n    \"\"\"\n    if is_flat_embedding(embeddings):\n        norm = float(np.linalg.norm(embeddings))\n        if norm > 0:\n            embeddings = cast(List[float], embeddings)  # let type checker know\n            embeddings = (np.array(embeddings) / norm).tolist()\n    else:\n        normalized_embeddings = []\n        for emb in embeddings:\n            emb = cast(List[float], emb)  # let type checker know\n            norm = float(np.linalg.norm(emb))\n            if norm > 0:\n                normalized_emb = (np.array(emb) / norm).tolist()\n            else:\n                normalized_emb = emb\n            normalized_embeddings.append(normalized_emb)\n        embeddings = normalized_embeddings\n\n    return embeddings\n"
  },
  {
    "path": "deepface/modules/preprocessing.py",
    "content": "# built-in dependencies\nfrom typing import Tuple, Any\n\n# 3rd party\nimport numpy as np\nfrom numpy.typing import NDArray\nimport cv2\n\n# project dependencies\nfrom deepface.commons import package_utils\n\n\ntf_major_version = package_utils.get_tf_major_version()\nif tf_major_version == 1:\n    from keras.preprocessing import image\nelif tf_major_version == 2:\n    from tensorflow.keras.preprocessing import image\n\n\ndef normalize_input(img: NDArray[Any], normalization: str = \"base\") -> NDArray[Any]:\n    \"\"\"Normalize input image.\n\n    Args:\n        img (numpy array): the input image.\n        normalization (str, optional): the normalization technique. Defaults to \"base\",\n        for no normalization.\n\n    Returns:\n        numpy array: the normalized image.\n    \"\"\"\n\n    # issue 131 declares that some normalization techniques improves the accuracy\n\n    if normalization == \"base\":\n        return img\n\n    # @trevorgribble and @davedgd contributed this feature\n    # restore input in scale of [0, 255] because it was normalized in scale of\n    # [0, 1] in preprocess_face\n    img *= 255\n\n    if normalization == \"raw\":\n        pass  # return just restored pixels\n\n    elif normalization == \"Facenet\":\n        mean, std = img.mean(), img.std()\n        img = (img - mean) / std\n\n    elif normalization == \"Facenet2018\":\n        # simply / 127.5 - 1 (similar to facenet 2018 model preprocessing step as @iamrishab posted)\n        img /= 127.5\n        img -= 1\n\n    elif normalization == \"VGGFace\":\n        # mean subtraction based on VGGFace1 training data\n        img[..., 0] -= 93.5940\n        img[..., 1] -= 104.7624\n        img[..., 2] -= 129.1863\n\n    elif normalization == \"VGGFace2\":\n        # mean subtraction based on VGGFace2 training data\n        img[..., 0] -= 91.4953\n        img[..., 1] -= 103.8827\n        img[..., 2] -= 131.0912\n\n    elif normalization == \"ArcFace\":\n        # Reference study: The faces are cropped and resized to 112×112,\n        # and each pixel (ranged between [0, 255]) in RGB images is normalised\n        # by subtracting 127.5 then divided by 128.\n        img -= 127.5\n        img /= 128\n    else:\n        raise ValueError(f\"unimplemented normalization type - {normalization}\")\n\n    return img\n\n\ndef resize_image(img: NDArray[Any], target_size: Tuple[int, int]) -> NDArray[Any]:\n    \"\"\"\n    Resize an image to expected size of a ml model with adding black pixels.\n    Args:\n        img (np.ndarray): pre-loaded image as numpy array\n        target_size (tuple): input shape of ml model\n    Returns:\n        img (np.ndarray): resized input image\n    \"\"\"\n    factor_0 = target_size[0] / img.shape[0]\n    factor_1 = target_size[1] / img.shape[1]\n    factor = min(factor_0, factor_1)\n\n    dsize = (\n        int(img.shape[1] * factor),\n        int(img.shape[0] * factor),\n    )\n    img = cv2.resize(img, dsize)\n\n    diff_0 = target_size[0] - img.shape[0]\n    diff_1 = target_size[1] - img.shape[1]\n\n    # Put the base image in the middle of the padded image\n    img = np.pad(\n        img,\n        (\n            (diff_0 // 2, diff_0 - diff_0 // 2),\n            (diff_1 // 2, diff_1 - diff_1 // 2),\n            (0, 0),\n        ),\n        \"constant\",\n    )\n\n    # double check: if target image is not still the same size with target.\n    if img.shape[0:2] != target_size:\n        img = cv2.resize(img, target_size)\n\n    # make it 4-dimensional how ML models expect\n    img = image.img_to_array(img)\n    img = np.expand_dims(img, axis=0)\n\n    if img.max() > 1:\n        img = (img.astype(np.float32) / 255.0).astype(np.float32)\n\n    return img\n"
  },
  {
    "path": "deepface/modules/recognition.py",
    "content": "# built-in dependencies\nimport os\nimport pickle\nfrom typing import List, Union, Optional, Dict, Any, Set, IO, cast, Tuple\nimport time\nimport ast\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport pandas as pd\nfrom tqdm import tqdm\nfrom lightdsa import LightDSA\n\n# project dependencies\nfrom deepface.commons import image_utils\nfrom deepface.modules import representation, detection, verification\nfrom deepface.modules.exceptions import (\n    ImgNotFound,\n    PathNotFound,\n    EmptyDatasource,\n    SpoofDetected,\n    DimensionMismatchError,\n)\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=too-many-arguments, too-many-positional-arguments\ndef find(\n    img_path: Union[str, NDArray[Any], IO[bytes]],\n    db_path: str,\n    model_name: str = \"VGG-Face\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    similarity_search: bool = False,\n    k: Optional[int] = None,\n    expand_percentage: int = 0,\n    threshold: Optional[float] = None,\n    normalization: str = \"base\",\n    silent: bool = False,\n    refresh_database: bool = True,\n    anti_spoofing: bool = False,\n    batched: bool = False,\n    credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None,\n) -> Union[List[pd.DataFrame], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Identify individuals in a database\n\n    Args:\n        img_path (str or np.ndarray): The exact path to the image, a numpy array in BGR format,\n            or a base64 encoded image. If the source image contains multiple faces, the result will\n            include information for each detected face.\n\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular'.\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Default is True. Set to False to avoid the exception for low-resolution images.\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l',\n            'centerface' or 'skip'.\n\n        align (boolean): Perform alignment based on the eye positions.\n\n        similarity_search (boolean): If False, performs identity verification and returns images of\n            the same person. If True, performs similarity search and returns visually similar faces\n            (e.g., celebrity or parental look-alikes). Default is False.\n\n        k (int): Number of top similar faces to retrieve from the database for each detected face.\n            If not specified, all faces within the threshold will be returned (default is None).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        threshold (float): Specify a threshold to determine whether a pair represents the same\n            person or different individuals. This threshold is used for comparing distances.\n            If left unset, default pre-tuned threshold values will be applied based on the specified\n            model name and distance metric (default is None).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Default is base. Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process.\n\n        refresh_database (boolean): Synchronizes the images representation (pkl) file with the\n            directory/db files, if set to false, it will ignore any file changes inside the db_path\n            directory (default is True).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        credentials (LightDSA or dict): public - private key pair. This will be used to sign\n            and verify the integrity of the datastore pickle file. Since pickle files are not safe\n            to load from untrusted sources, signing helps detect tampering and prevents loading a\n            modified datastore that could execute arbitrary code.\n\n            ```\n            from lightdsa import LightDSA\n            cs = LightDSA(algorithm_name = \"eddsa\")\n            DeepFace.find(..., credentials=cs)\n            # DeepFace.find(..., credentials={**cs.dsa.keys, \"algorithm_name\": cs.algorithm_name})\n            ```\n\n            See LightDSA repo for more details: https://github.com/serengil/LightDSA\n\n    Returns:\n        results (List[pd.DataFrame] or List[List[Dict[str, Any]]]):\n            A list of pandas dataframes (if `batched=False`) or\n            a list of dicts (if `batched=True`).\n            Each dataframe or dict corresponds to the identity information for\n            an individual detected in the source image.\n\n            Note: If you have a large database and/or a source photo with many faces,\n            use `batched=True`, as it is optimized for large batch processing.\n            Please pay attention that when using `batched=True`, the function returns\n            a list of dicts (not a list of DataFrames),\n            but with the same keys as the columns in the DataFrame.\n\n            The DataFrame columns or dict keys include:\n\n            - 'identity': Identity label of the detected individual.\n\n            - 'target_x', 'target_y', 'target_w', 'target_h': Bounding box coordinates of the\n                    target face in the database.\n\n            - 'source_x', 'source_y', 'source_w', 'source_h': Bounding box coordinates of the\n                    detected face in the source image.\n\n            - 'threshold': threshold to determine a pair whether same person or different persons\n\n            - 'distance': Similarity score between the faces based on the\n                    specified model and distance metric\n\n            - 'confidence': Confidence score indicating the likelihood that the faces belong to\n                    the same individual. This is calculated based on the distance and the threshold.\n    \"\"\"\n\n    tic = time.time()\n\n    if not os.path.isdir(db_path):\n        raise PathNotFound(f\"Passed path {db_path} does not exist!\")\n\n    img, _ = image_utils.load_image(img_path)\n    if img is None:\n        raise ImgNotFound(f\"Passed image path {img_path} does not exist!\")\n\n    file_parts = [\n        \"ds\",\n        \"model\",\n        model_name,\n        \"detector\",\n        detector_backend,\n        \"aligned\" if align else \"unaligned\",\n        \"normalization\",\n        normalization,\n        \"expand\",\n        str(expand_percentage),\n    ]\n\n    file_name = \"_\".join(file_parts) + \".pkl\"\n    file_name = file_name.replace(\"-\", \"\").lower()\n\n    datastore_path = os.path.join(db_path, file_name)\n    representations = []\n\n    # required columns for representations\n    df_cols = {\n        \"identity\",\n        \"hash\",\n        \"embedding\",\n        \"target_x\",\n        \"target_y\",\n        \"target_w\",\n        \"target_h\",\n    }\n\n    # Ensure the proper datastore file exists\n    if not os.path.exists(datastore_path):\n        __save_representations(datastore_path=datastore_path, credentials=credentials)\n\n    # Load the representations from the existing datastore\n    representations = __load_representations(datastore_path=datastore_path, credentials=credentials)\n\n    # check each item of representations list has required keys\n    for i, current_representation in enumerate(representations):\n        missing_keys = df_cols - set(current_representation.keys())\n        if len(missing_keys) > 0:\n            raise ValueError(\n                f\"{i}-th item does not have some required keys - {missing_keys}.\"\n                f\"Consider to delete {datastore_path}\"\n            )\n\n    # Get the list of images on storage\n    storage_images = set(image_utils.yield_images(path=db_path))\n\n    if len(storage_images) == 0 and refresh_database is True:\n        raise EmptyDatasource(f\"No item found in {db_path}\")\n    if len(representations) == 0 and refresh_database is False:\n        raise EmptyDatasource(f\"Nothing is found in {datastore_path}\")\n\n    must_save_pickle = False\n    new_images, old_images, replaced_images = set(), set(), set()\n\n    if not refresh_database:\n        logger.info(\n            f\"Could be some changes in {db_path} not tracked.\"\n            \"Set refresh_database to true to assure that any changes will be tracked.\"\n        )\n\n    # Enforce data consistency amongst on disk images and pickle file\n    if refresh_database:\n        # embedded images\n        pickled_images = {representation[\"identity\"] for representation in representations}\n\n        new_images = storage_images - pickled_images  # images added to storage\n        old_images = pickled_images - storage_images  # images removed from storage\n\n        # detect replaced images\n        for current_representation in representations:\n            identity = current_representation[\"identity\"]\n            if identity in old_images:\n                continue\n            alpha_hash = current_representation[\"hash\"]\n            beta_hash = image_utils.find_image_hash(identity)\n            if alpha_hash != beta_hash:\n                logger.debug(f\"Even though {identity} represented before, it's replaced later.\")\n                replaced_images.add(identity)\n\n    if not silent and (len(new_images) > 0 or len(old_images) > 0 or len(replaced_images) > 0):\n        logger.info(\n            f\"Found {len(new_images)} newly added image(s)\"\n            f\", {len(old_images)} removed image(s)\"\n            f\", {len(replaced_images)} replaced image(s).\"\n        )\n\n    # append replaced images into both old and new images. these will be dropped and re-added.\n    new_images.update(replaced_images)\n    old_images.update(replaced_images)\n\n    # remove old images first\n    if len(old_images) > 0:\n        representations = [rep for rep in representations if rep[\"identity\"] not in old_images]\n        must_save_pickle = True\n\n    # find representations for new images\n    if len(new_images) > 0:\n        representations += __find_bulk_embeddings(\n            employees=new_images,\n            model_name=model_name,\n            detector_backend=detector_backend,\n            enforce_detection=enforce_detection,\n            align=align,\n            expand_percentage=expand_percentage,\n            normalization=normalization,\n            silent=silent,\n        )  # add new images\n        must_save_pickle = True\n\n    if must_save_pickle:\n        __save_representations(\n            datastore_path=datastore_path, representations=representations, credentials=credentials\n        )\n        if not silent:\n            logger.info(f\"There are now {len(representations)} representations in {file_name}\")\n\n    # Should we have no representations bailout\n    if len(representations) == 0:\n        if not silent:\n            toc = time.time()\n            logger.info(f\"find function duration {toc - tic} seconds\")\n        return []\n\n    # ----------------------------\n    # now, we got representations for facial database\n\n    # img path might have more than once face\n    source_objs: List[Dict[str, Any]] = cast(\n        List[Dict[str, Any]],\n        detection.extract_faces(\n            img_path=img_path,\n            detector_backend=detector_backend,\n            grayscale=False,\n            enforce_detection=enforce_detection,\n            align=align,\n            expand_percentage=expand_percentage,\n            anti_spoofing=anti_spoofing,\n        ),\n    )\n\n    pretuned_threshold = verification.find_threshold(model_name, distance_metric)\n    target_threshold = threshold or pretuned_threshold\n\n    if batched:\n        return find_batched(\n            representations=representations,\n            source_objs=source_objs,\n            model_name=model_name,\n            distance_metric=distance_metric,\n            enforce_detection=enforce_detection,\n            align=align,\n            threshold=target_threshold,\n            normalization=normalization,\n            anti_spoofing=anti_spoofing,\n            similarity_search=similarity_search,\n            k=k,\n        )\n\n    df = pd.DataFrame(representations)\n\n    if silent is False:\n        logger.info(f\"Searching {img_path} in {df.shape[0]} length datastore\")\n\n    resp_obj = []\n\n    for source_obj in source_objs:\n        if anti_spoofing is True and source_obj.get(\"is_real\", True) is False:\n            raise SpoofDetected(\"Spoof detected in the given image.\")\n        source_img = source_obj[\"face\"]\n        source_region = source_obj[\"facial_area\"]\n        target_embedding_obj = representation.represent(\n            img_path=source_img,\n            model_name=model_name,\n            enforce_detection=enforce_detection,\n            detector_backend=\"skip\",\n            align=align,\n            normalization=normalization,\n        )\n        target_embedding_obj = cast(List[Dict[str, Any]], target_embedding_obj)\n        target_representation = target_embedding_obj[0][\"embedding\"]\n\n        result_df = df.copy()  # df will be filtered in each img\n\n        result_df[\"threshold\"] = target_threshold\n        result_df[\"source_x\"] = source_region[\"x\"]\n        result_df[\"source_y\"] = source_region[\"y\"]\n        result_df[\"source_w\"] = source_region[\"w\"]\n        result_df[\"source_h\"] = source_region[\"h\"]\n\n        distances: List[float] = []\n        confidences: List[float] = []\n        for _, instance in df.iterrows():\n            source_representation = instance[\"embedding\"]\n            if source_representation is None:\n                # no representation for this image\n                distances.append(float(\"inf\"))\n                confidences.append(0.0)\n                continue\n\n            target_dims = len(list(target_representation))\n            source_dims = len(list(source_representation))\n            if target_dims != source_dims:\n                raise DimensionMismatchError(\n                    \"Source and target embeddings must have same dimensions but \"\n                    + f\"{target_dims}:{source_dims}. Model structure may change\"\n                    + \" after pickle created. Delete the {file_name} and re-run.\"\n                )\n\n            distance: float = float(\n                cast(\n                    np.float64,\n                    verification.find_distance(\n                        source_representation, target_representation, distance_metric\n                    ),\n                )\n            )\n\n            confidence = verification.find_confidence(\n                distance=distance,\n                model_name=model_name,\n                distance_metric=distance_metric,\n                verified=bool(distance <= pretuned_threshold),\n            )\n\n            distances.append(distance)\n            confidences.append(confidence)\n\n            # ---------------------------\n\n        result_df[\"distance\"] = distances\n        result_df[\"confidence\"] = confidences\n\n        result_df = result_df.drop(columns=[\"embedding\"])\n        # pylint: disable=unsubscriptable-object\n\n        if similarity_search is False:\n            result_df = result_df[result_df[\"distance\"] <= result_df[\"threshold\"]]\n\n        result_df = result_df.sort_values(by=[\"distance\"], ascending=True).reset_index(drop=True)\n\n        if k is not None and len(result_df) > k:\n            result_df = result_df.head(k)\n\n        resp_obj.append(result_df)\n\n    # -----------------------------------\n\n    if not silent:\n        toc = time.time()\n        logger.info(f\"find function duration {toc - tic} seconds\")\n\n    return resp_obj\n\n\ndef __find_bulk_embeddings(\n    employees: Set[str],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    silent: bool = False,\n) -> List[Dict[\"str\", Any]]:\n    \"\"\"\n    Find embeddings of a list of images\n\n    Args:\n        employees (list): list of exact image paths\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        detector_backend (str): face detector model name\n\n        enforce_detection (bool): set this to False if you\n            want to proceed when you cannot detect any face\n\n        align (bool): enable or disable alignment of image\n            before feeding to facial recognition model\n\n        expand_percentage (int): expand detected facial area with a\n            percentage (default is 0).\n\n        normalization (bool): normalization technique\n\n        silent (bool): enable or disable informative logging\n    Returns:\n        representations (list): pivot list of dict with\n            image name, hash, embedding and detected face area's coordinates\n    \"\"\"\n    representations = []\n    for employee in tqdm(\n        employees,\n        desc=\"Finding representations\",\n        disable=silent,\n    ):\n        file_hash = image_utils.find_image_hash(employee)\n\n        try:\n            img_objs: List[Dict[str, Any]] = cast(\n                List[Dict[str, Any]],\n                detection.extract_faces(\n                    img_path=employee,\n                    detector_backend=detector_backend,\n                    grayscale=False,\n                    enforce_detection=enforce_detection,\n                    align=align,\n                    expand_percentage=expand_percentage,\n                    color_face=\"bgr\",  # `represent` expects images in bgr format.\n                ),\n            )\n\n        except ValueError as err:\n            logger.error(f\"Exception while extracting faces from {employee}: {str(err)}\")\n            img_objs = []\n\n        if len(img_objs) == 0:\n            representations.append(\n                {\n                    \"identity\": employee,\n                    \"hash\": file_hash,\n                    \"embedding\": None,\n                    \"target_x\": 0,\n                    \"target_y\": 0,\n                    \"target_w\": 0,\n                    \"target_h\": 0,\n                }\n            )\n        else:\n            for img_obj in img_objs:\n                img_content = img_obj[\"face\"]\n                img_region = img_obj[\"facial_area\"]\n                embedding_obj = representation.represent(\n                    img_path=img_content,\n                    model_name=model_name,\n                    enforce_detection=enforce_detection,\n                    detector_backend=\"skip\",\n                    align=align,\n                    normalization=normalization,\n                )\n                embedding_obj = cast(List[Dict[str, Any]], embedding_obj)\n                img_representation = embedding_obj[0][\"embedding\"]\n                representations.append(\n                    {\n                        \"identity\": employee,\n                        \"hash\": file_hash,\n                        \"embedding\": img_representation,\n                        \"target_x\": img_region[\"x\"],\n                        \"target_y\": img_region[\"y\"],\n                        \"target_w\": img_region[\"w\"],\n                        \"target_h\": img_region[\"h\"],\n                    }\n                )\n\n    return representations\n\n\ndef find_batched(\n    representations: List[Dict[str, Any]],\n    source_objs: List[Dict[str, Any]],\n    model_name: str = \"VGG-Face\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    threshold: Optional[float] = None,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    similarity_search: bool = False,\n    k: Optional[int] = None,\n) -> List[List[Dict[str, Any]]]:\n    \"\"\"\n    Perform batched face recognition by comparing source face embeddings with a set of\n    target embeddings. It calculates pairwise distances between the source and target\n    embeddings using the specified distance metric.\n    The function uses batch processing for efficient computation of distances.\n\n    Args:\n        representations (List[Dict[str, Any]]):\n            A list of dictionaries containing precomputed target embeddings and associated metadata.\n            Each dictionary should have at least the key `embedding`.\n\n        source_objs (List[Dict[str, Any]]):\n            A list of dictionaries representing the source images to compare against\n            the target embeddings. Each dictionary should contain:\n                - `face`: The image data or path to the source face image.\n                - `facial_area`: A dictionary with keys `x`, `y`, `w`, `h`\n                   indicating the facial region.\n                - Optionally, `is_real`: A boolean indicating if the face is real\n                  (used for anti-spoofing).\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular'.\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Default is True. Set to False to avoid the exception for low-resolution images.\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s',\n            'yolov11m', 'centerface' or 'skip'.\n\n        align (boolean): Perform alignment based on the eye positions.\n\n        threshold (float): Specify a threshold to determine whether a pair represents the same\n            person or different individuals. This threshold is used for comparing distances.\n            If left unset, default pre-tuned threshold values will be applied based on the specified\n            model name and distance metric (default is None).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Default is base. Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process.\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        similarity_search (boolean): If False, performs identity verification and returns images of\n            the same person. If True, performs similarity search and returns visually similar faces\n            (e.g., celebrity or parental look-alikes). Default is False.\n\n        k (int): Number of top similar faces to retrieve from the database for each detected face.\n            If not specified, all faces within the threshold will be returned (default is None).\n\n    Returns:\n        List[List[Dict[str, Any]]]:\n            A list where each element corresponds to a source face and\n            contains a list of dictionaries with matching faces.\n    \"\"\"\n    embeddings_list = []\n    valid_mask_lst = []\n    metadata: Set[str] = set()\n\n    for item in representations:\n        emb = item.get(\"embedding\")\n        if emb is not None:\n            embeddings_list.append(emb)\n            valid_mask_lst.append(True)\n        else:\n            embeddings_list.append(np.zeros_like(representations[0][\"embedding\"]))\n            valid_mask_lst.append(False)\n\n        metadata.update(item.keys())\n\n    # remove embedding key from other keys\n    metadata.discard(\"embedding\")\n    metadata_lst = list(metadata)\n\n    embeddings = np.array(embeddings_list)  # (N, D)\n    valid_mask = np.array(valid_mask_lst)  # (N,)\n\n    data = {\n        key: np.array([item.get(key, None) for item in representations]) for key in metadata_lst\n    }\n\n    target_embeddings = []\n    source_regions = []\n    target_thresholds = []\n\n    target_threshold = threshold if similarity_search is False else np.inf\n\n    for source_obj in source_objs:\n        if anti_spoofing and not source_obj.get(\"is_real\", True):\n            raise SpoofDetected(\"Spoof detected in the given image.\")\n\n        source_img = source_obj[\"face\"]\n        source_region = source_obj[\"facial_area\"]\n\n        target_embedding_obj = representation.represent(\n            img_path=source_img,\n            model_name=model_name,\n            enforce_detection=enforce_detection,\n            detector_backend=\"skip\",\n            align=align,\n            normalization=normalization,\n        )\n        # it is safe to access 0 index because we already fed detected face to represent function\n        target_embedding_obj = cast(List[Dict[str, Any]], target_embedding_obj)\n        target_representation = target_embedding_obj[0][\"embedding\"]\n\n        target_embeddings.append(target_representation)\n        source_regions.append(source_region)\n        target_thresholds.append(target_threshold)\n\n    target_embeddings_np = np.array(target_embeddings)  # (M, D)\n    target_thresholds_np = np.array(target_thresholds)  # (M,)\n    source_regions_arr = {\n        \"source_x\": np.array([region[\"x\"] for region in source_regions]),\n        \"source_y\": np.array([region[\"y\"] for region in source_regions]),\n        \"source_w\": np.array([region[\"w\"] for region in source_regions]),\n        \"source_h\": np.array([region[\"h\"] for region in source_regions]),\n    }\n\n    distances: NDArray[Any] = cast(\n        NDArray[Any],\n        verification.find_distance(embeddings, target_embeddings_np, distance_metric),\n    )  # (M, N)\n    distances[:, ~valid_mask] = np.inf\n\n    resp_obj = []\n    for i in range(len(target_embeddings_np)):\n        target_distances = distances[i]  # (N,)\n        target_threshold = target_thresholds_np[i]\n\n        N = embeddings.shape[0]\n        result_data = dict(data)\n        result_data.update(\n            {\n                \"source_x\": np.full(N, source_regions_arr[\"source_x\"][i]),\n                \"source_y\": np.full(N, source_regions_arr[\"source_y\"][i]),\n                \"source_w\": np.full(N, source_regions_arr[\"source_w\"][i]),\n                \"source_h\": np.full(N, source_regions_arr[\"source_h\"][i]),\n                \"threshold\": np.full(N, target_threshold),\n                \"distance\": target_distances,\n            }\n        )\n\n        mask = target_distances <= target_threshold\n\n        filtered_data = {key: value[mask] for key, value in result_data.items()}\n\n        sorted_indices = np.argsort(filtered_data[\"distance\"])\n        sorted_data = {key: value[sorted_indices] for key, value in filtered_data.items()}\n\n        num_results = len(sorted_data[\"distance\"])\n        result_dicts = [\n            {key: sorted_data[key][i] for key in sorted_data} for i in range(num_results)\n        ]\n\n        if k is not None and len(result_dicts) > k:\n            result_dicts = result_dicts[:k]\n\n        resp_obj.append(result_dicts)\n    return resp_obj\n\n\ndef __save_representations(\n    datastore_path: str,\n    representations: Optional[List[Dict[str, Any]]] = None,\n    credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None,\n) -> None:\n    \"\"\"\n    Save representations to a pickle file\n\n    Args:\n        datastore_path (str): path to the pickle file\n        representations (list): list of representations to be saved\n        credentials (LightDSA or dict): public - private key pair as LightDSA object or dictionary.\n            This is going to be used to sign the integrity of the datastore pickle file.\n            If not provided, the datastore will not be signed.\n    \"\"\"\n    with open(datastore_path, \"wb\") as f:\n        pickle.dump(representations or [], f, pickle.HIGHEST_PROTOCOL)\n\n    __sign_datastore(datastore_path=datastore_path, credentials=credentials)\n\n\ndef __load_representations(\n    datastore_path: str, credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None\n) -> List[Dict[str, Any]]:\n    \"\"\"\n    Load representations from a pickle file\n\n    Args:\n        datastore_path (str): path to the pickle file\n        credentials (LightDSA or dict): public - private key pair as LightDSA object or dictionary.\n            This is going to be used to sign the integrity of the datastore pickle file.\n            If not provided, the datastore will not be signed.\n    Returns:\n        representations (list): list of loaded representations\n    \"\"\"\n    __verify_signature(datastore_path=datastore_path, credentials=credentials)\n\n    with open(datastore_path, \"rb\") as f:\n        representations = pickle.load(f)\n\n    if not isinstance(representations, list) or not all(\n        isinstance(x, dict) for x in representations\n    ):\n        raise ValueError(\"Invalid datastore format\")\n\n    return cast(List[Dict[str, Any]], representations)\n\n\ndef __build_dsa(credentials: Union[LightDSA, Dict[str, Any]]) -> LightDSA:\n    \"\"\"\n    Build LightDSA object from credentials\n    Args:\n        credentials (LightDSA or dict): public - private key pair as LightDSA object or dictionary.\n    Returns:\n        dsa (LightDSA): LightDSA object\n    \"\"\"\n    if isinstance(credentials, dict):\n        if \"algorithm_name\" not in credentials:\n            raise ValueError(\"credentials dictionary must have 'algorithm_name' key.\")\n        dsa = LightDSA(\n            algorithm_name=credentials[\"algorithm_name\"],\n            form_name=credentials.get(\"form_name\"),\n            curve_name=credentials.get(\"curve_name\"),\n            keys=credentials,\n        )\n    elif isinstance(credentials, LightDSA):\n        dsa = credentials\n    else:\n        raise ValueError(\"credentials must be either LightDSA or dict type.\")\n    return dsa\n\n\ndef __sign_datastore(\n    datastore_path: str, credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None\n) -> None:\n    \"\"\"\n    Sign the datastore pickle file\n    Args:\n        datastore_path (str): path to the pickle file\n        credentials (LightDSA or dict): public - private key pair as LightDSA object or dictionary.\n            This is going to be used to sign the integrity of the datastore pickle file.\n            If not provided, the datastore will not be signed.\n    \"\"\"\n    if credentials is None:\n        logger.debug(\"No credentials provided. Skipping datastore signing.\")\n        return\n\n    dsa = __build_dsa(credentials=credentials)\n\n    with open(datastore_path, \"rb\") as f:\n        data: bytes = f.read()\n\n    signature = dsa.sign(message=data)\n    with open(datastore_path + \".ldsa\", \"w\", encoding=\"utf-8\") as f:\n        f.write(repr(signature))\n\n    logger.debug(f\"Datastore pickle {datastore_path} signed successfully.\")\n\n\ndef __verify_signature(\n    datastore_path: str, credentials: Optional[Union[LightDSA, Dict[str, Any]]] = None\n) -> None:\n    \"\"\"\n    Verify the signature of a datastore pickle file\n\n    Args:\n        datastore_path (str): path to the pickle file\n        credentials (LightDSA or dict): public - private key pair as LightDSA object or dictionary.\n            This is going to be used to sign the integrity of the datastore pickle file.\n            If not provided, the datastore will not be signed.\n    \"\"\"\n    signature_path = datastore_path + \".ldsa\"\n    if credentials is None:\n        if not os.path.exists(signature_path):\n            logger.debug(\"No credentials provided. Skipping signature verification.\")\n            return\n        raise ValueError(\n            f\"Credentials not provided but signature file {signature_path} exists.\"\n            \"Cannot verify the datastore without credentials.\"\n        )\n\n    dsa = __build_dsa(credentials=credentials)\n\n    algorithm_name = dsa.algorithm_name\n\n    with open(datastore_path, \"rb\") as f:\n        data: bytes = f.read()\n\n    if not os.path.exists(signature_path):\n        raise ValueError(\n            f\"Signature file {signature_path} not found.\"\n            \"You may need to re-create the pickle by deleting the existing one.\"\n        )\n\n    with open(signature_path, \"r\", encoding=\"utf-8\") as f:\n        signature_unified = f.read()\n\n    try:\n        signature: Union[Tuple[int, int], Tuple[Tuple[int, int], int], int] = ast.literal_eval(\n            signature_unified\n        )\n    except SyntaxError as err:\n        raise ValueError(\n            f\"Signature content must be python literal. Verify the signature {signature_path}\"\n        ) from err\n\n    if algorithm_name == \"rsa\":\n        if not isinstance(signature, int):\n            raise ValueError(\n                f\"Invalid signature format for RSA algorithm. Verify the signature {signature_path}\"\n            )\n    elif algorithm_name == \"dsa\":\n        if (\n            not isinstance(signature, tuple)\n            or len(signature) != 2\n            or not all(isinstance(x, int) for x in signature)\n        ):\n            raise ValueError(\n                f\"DSA signature must be Tuple[int, int]. Verify the signature {signature_path}\"\n            )\n    elif algorithm_name == \"eddsa\":\n        if (\n            not isinstance(signature, tuple)  # pylint: disable=too-many-boolean-expressions\n            or len(signature) != 2\n            or not isinstance(signature[0], tuple)\n            or len(signature[0]) != 2\n            or not all(isinstance(x, int) for x in signature[0])\n            or not isinstance(signature[1], int)\n        ):\n            raise ValueError(\n                \"EdDSA signature must be Tuple[Tuple[int, int], int].\"\n                f\"Verify the signature {signature_path}\"\n            )\n    elif algorithm_name == \"ecdsa\":\n        if (\n            not isinstance(signature, tuple)\n            or len(signature) != 2\n            or not all(isinstance(x, int) for x in signature)\n        ):\n            raise ValueError(\n                f\"ECDSA signature must be Tuple[int, int]. Verify the signature {signature_path}\"\n            )\n    else:\n        raise ValueError(f\"Unsupported algorithm_name: {algorithm_name}\")\n\n    # this will raise exception if verification fails\n    is_verified = dsa.verify(message=data, signature=signature)\n\n    # still check the boolean result\n    if not is_verified:\n        raise ValueError(\"Datastore pickle signature verification failed.\")\n\n    logger.info(f\"Datastore pickle {datastore_path} signature verified successfully.\")\n"
  },
  {
    "path": "deepface/modules/representation.py",
    "content": "# built-in dependencies\nfrom typing import Any, Dict, List, Union, Optional, Sequence, IO, cast\nfrom collections import defaultdict\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nfrom lightphe import LightPHE\n\n# project dependencies\nfrom deepface.commons import image_utils\nfrom deepface.modules import modeling, detection, preprocessing\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.modules.normalization import normalize_embedding_l2, normalize_embedding_minmax\nfrom deepface.modules.encryption import encrypt_embeddings\nfrom deepface.modules.exceptions import SpoofDetected\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\n# pylint: disable=too-many-positional-arguments\ndef represent(\n    img_path: Union[str, IO[bytes], NDArray[Any], Sequence[Union[str, NDArray[Any], IO[bytes]]]],\n    model_name: str = \"VGG-Face\",\n    enforce_detection: bool = True,\n    detector_backend: str = \"opencv\",\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n    max_faces: Optional[int] = None,\n    l2_normalize: bool = False,\n    minmax_normalize: bool = False,\n    return_face: bool = False,\n    cryptosystem: Optional[LightPHE] = None,\n) -> Union[List[Dict[str, Any]], List[List[Dict[str, Any]]]]:\n    \"\"\"\n    Represent facial images as multi-dimensional vector embeddings.\n\n    Args:\n        img_path (str, np.ndarray, or Sequence[Union[str, np.ndarray]]):\n            The exact path to the image, a numpy array in BGR format,\n            a base64 encoded image, or a sequence of these.\n            If the source image contains multiple faces,\n            the result will include information for each detected face.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Default is True. Set to False to avoid the exception for low-resolution images.\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l'\n            'centerface' or 'skip'.\n\n        align (boolean): Perform alignment based on the eye positions.\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Default is base. Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        max_faces (int): Set a limit on the number of faces to be processed (default is None).\n\n        l2_normalize (bool): Flag to enable L2 normalization (unit vector normalization)\n            of the output embeddings\n\n        minmax_normalize (bool): Flag to enable min-max normalization of the output embeddings\n            to the range [0, 1].\n\n        return_face (bool): If True, the detected face images will also be returned along\n            with embeddings. Default is False.\n\n        cryptosystem (LightPHE): An instance of a partially homomorphic encryption system\n            to encrypt the output embeddings. If provided, the embeddings will be encrypted\n            using the specified cryptosystem. Then, you will be able to perform homomorphic\n            operations on the encrypted embeddings without decrypting them first.\n            Check out the repo to find out more: https://github.com/serengil/lightphe\n\n    Returns:\n        results (List[Dict[str, Any]] or List[Dict[str, Any]]): A list of dictionaries.\n            Result type becomes List of List of Dict if batch input passed.\n            Each containing the following fields:\n\n        - embedding (List[float]): Multidimensional vector representing facial features.\n            The number of dimensions varies based on the reference model\n            (e.g., FaceNet returns 128 dimensions, VGG-Face returns 4096 dimensions).\n        - facial_area (dict): Detected facial area by face detection in dictionary format.\n            Contains 'x' and 'y' as the left-corner point, and 'w' and 'h'\n            as the width and height. If `detector_backend` is set to 'skip', it represents\n            the full image area and is nonsensical.\n        - face_confidence (float): Confidence score of face detection. If `detector_backend` is set\n            to 'skip', the confidence will be 0 and is nonsensical.\n        - encrypted_embedding (List[Any]): Encrypted multidimensional vector representing\n            facial features. This field is included only if a `cryptosystem` is provided.\n    \"\"\"\n    resp_objs = []\n\n    model: FacialRecognition = modeling.build_model(\n        task=\"facial_recognition\", model_name=model_name\n    )\n\n    # Handle list of image paths or 4D numpy array\n    if isinstance(img_path, list):\n        images = img_path\n    elif isinstance(img_path, np.ndarray) and img_path.ndim == 4:\n        images = [img_path[i] for i in range(img_path.shape[0])]\n    else:\n        images = [img_path]\n\n    batch_images, batch_regions, batch_confidences, batch_indexes = [], [], [], []\n\n    for idx, single_img_path in enumerate(images):\n        # we have run pre-process in verification. so, skip if it is coming from verify.\n        target_size = model.input_shape\n        if detector_backend != \"skip\":\n            # Images are returned in RGB format.\n            img_objs: List[Dict[str, Any]] = cast(\n                List[Dict[str, Any]],\n                detection.extract_faces(\n                    img_path=single_img_path,\n                    detector_backend=detector_backend,\n                    grayscale=False,\n                    enforce_detection=enforce_detection,\n                    align=align,\n                    expand_percentage=expand_percentage,\n                    anti_spoofing=anti_spoofing,\n                    max_faces=max_faces,\n                ),\n            )\n        else:  # skip\n            # Try load. If load error, will raise exception internal\n            img, _ = image_utils.load_image(single_img_path)\n\n            if len(img.shape) != 3:\n                raise ValueError(f\"Input img must be 3 dimensional but it is {img.shape}\")\n\n            # Convert to RGB format to keep compatability with `extract_faces`.\n            img = img[:, :, ::-1]\n\n            # make dummy region and confidence to keep compatibility with `extract_faces`\n            img_objs = [\n                {\n                    \"face\": img,\n                    \"facial_area\": {\"x\": 0, \"y\": 0, \"w\": img.shape[0], \"h\": img.shape[1]},\n                    \"confidence\": 0,\n                }\n            ]\n        # ---------------------------------\n\n        if max_faces is not None and max_faces < len(img_objs):\n            # sort as largest facial areas come first\n            img_objs = sorted(\n                img_objs,\n                key=lambda img_obj: img_obj[\"facial_area\"][\"w\"] * img_obj[\"facial_area\"][\"h\"],\n                reverse=True,\n            )\n            # discard rest of the items\n            img_objs = img_objs[0:max_faces]\n\n        for img_obj in img_objs:\n            if anti_spoofing is True and img_obj.get(\"is_real\", True) is False:\n                raise SpoofDetected(\"Spoof detected in the given image.\")\n\n            img = img_obj[\"face\"]\n\n            # rgb to bgr\n            img = img[:, :, ::-1]\n\n            region = img_obj[\"facial_area\"]\n            confidence = img_obj[\"confidence\"]\n\n            # resize to expected shape of ml model\n            img = preprocessing.resize_image(\n                img=img,\n                # thanks to DeepId (!)\n                target_size=(target_size[1], target_size[0]),\n            )\n\n            # custom normalization\n            img = preprocessing.normalize_input(img=img, normalization=normalization)\n\n            batch_images.append(img)\n            batch_regions.append(region)\n            batch_confidences.append(confidence)\n            batch_indexes.append(idx)\n\n    # Convert list of images to a numpy array for batch processing\n    batch_images_np = np.concatenate(batch_images, axis=0)\n\n    # Forward pass through the model for the entire batch\n    embeddings = model.forward(batch_images_np)\n\n    if minmax_normalize:\n        embeddings = normalize_embedding_minmax(model_name, embeddings)\n\n    if l2_normalize:\n        embeddings = normalize_embedding_l2(embeddings)\n\n    encrypted_embeddings = encrypt_embeddings(embeddings, cryptosystem)\n\n    resp_objs_dict = defaultdict(list)\n    for idy, batch_index in enumerate(batch_indexes):\n        resp_obj = {\n            \"embedding\": embeddings if len(batch_images) == 1 else embeddings[idy],\n            \"facial_area\": batch_regions[idy],\n            \"face_confidence\": batch_confidences[idy],\n        }\n\n        if return_face:\n            resp_obj[\"face\"] = batch_images_np[idy]\n        if cryptosystem is not None and encrypted_embeddings is not None:\n            resp_obj[\"encrypted_embedding\"] = (\n                encrypted_embeddings if len(batch_images) == 1 else encrypted_embeddings[idy]\n            )\n        resp_objs_dict[batch_index].append(resp_obj)\n\n    resp_objs = [resp_objs_dict[idx] for idx in range(len(images))]\n\n    return resp_objs[0] if len(images) == 1 else resp_objs\n"
  },
  {
    "path": "deepface/modules/streaming.py",
    "content": "# built-in dependencies\nimport os\nimport time\nfrom typing import List, Tuple, Optional, cast, Dict, Any\nimport traceback\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\nimport pandas as pd\nimport cv2\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# dependency configuration\nos.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\"\n\n\nIDENTIFIED_IMG_SIZE = 112\nTEXT_COLOR = (255, 255, 255)\n\n\n# pylint: disable=unused-variable, too-many-positional-arguments\ndef analysis(\n    db_path: str,\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enable_face_analysis: bool = True,\n    source: int = 0,\n    time_threshold: int = 5,\n    frame_threshold: int = 5,\n    anti_spoofing: bool = False,\n    output_path: Optional[str] = None,\n    debug: bool = False,\n) -> None:\n    \"\"\"\n    Run real time face recognition and facial attribute analysis\n\n    Args:\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face)\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l'\n            'centerface' or 'skip' (default is opencv).\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        enable_face_analysis (bool): Flag to enable face analysis (default is True).\n\n        source (Any): The source for the video stream (default is 0, which represents the\n            default camera).\n\n        time_threshold (int): The time threshold (in seconds) for face recognition (default is 5).\n\n        frame_threshold (int): The frame threshold for face recognition (default is 5).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n        output_path (str): Path to save the output video. (default is None\n            If None, no video is saved).\n    Returns:\n        None\n    \"\"\"\n    # initialize models\n    build_demography_models(enable_face_analysis=enable_face_analysis)\n    build_facial_recognition_model(model_name=model_name)\n    # call a dummy find function for db_path once to create embeddings before starting webcam\n    _ = search_identity(\n        detected_face=np.zeros([224, 224, 3]),\n        db_path=db_path,\n        detector_backend=detector_backend,\n        distance_metric=distance_metric,\n        model_name=model_name,\n    )\n\n    cap = cv2.VideoCapture(source if isinstance(source, str) else int(source))\n    if not cap.isOpened():\n        logger.error(f\"Cannot open video source: {source}\")\n        return\n\n    # Get video properties\n    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))\n    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))\n    fps = cap.get(cv2.CAP_PROP_FPS)\n\n    # Ensure the output directory exists if output_path is provided\n    if output_path:\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n    # Initialize video writer if output_path is provided\n    video_writer = (\n        cv2.VideoWriter(\n            output_path,\n            cv2.VideoWriter_fourcc(*\"mp4v\"),  # type: ignore[attr-defined]\n            fps,\n            (width, height),\n        )\n        if output_path\n        else None\n    )\n\n    freezed_img = None\n    freeze = False\n    num_frames_with_faces = 0\n    tic = time.time()\n    frame = 0\n\n    while True:\n        has_frame, img = cap.read()\n        if not has_frame:\n            break\n\n        raw_img = img.copy()  # type: ignore[union-attr]\n\n        faces_coordinates = []\n\n        if not freeze:\n            faces_coordinates = grab_facial_areas(\n                img=img, detector_backend=detector_backend, anti_spoofing=anti_spoofing\n            )\n\n            # use raw_img otherwise countdown number will appear in the middle of the face\n            detected_faces = extract_facial_areas(img=raw_img, faces_coordinates=faces_coordinates)\n\n            img = highlight_facial_areas(img=img, faces_coordinates=faces_coordinates)\n\n            # highlight how many seconds required to freeze in the middle of detected face\n            img = countdown_to_freeze(\n                img=img,\n                faces_coordinates=faces_coordinates,\n                frame_threshold=frame_threshold,\n                num_frames_with_faces=num_frames_with_faces,\n            )\n\n            num_frames_with_faces = num_frames_with_faces + 1 if len(faces_coordinates) else 0\n\n            freeze = num_frames_with_faces > 0 and num_frames_with_faces % frame_threshold == 0\n\n            if freeze:\n                frame += 1\n\n                # restore raw image to get rid of countdown informtion\n                img = raw_img.copy()\n\n                # add analyze results into img\n                img = highlight_facial_areas(\n                    img=img, faces_coordinates=faces_coordinates, anti_spoofing=anti_spoofing\n                )\n\n                if debug is True:\n                    cv2.imwrite(f\"freezed_{frame}_0.jpg\", detected_faces[0])\n                    cv2.imwrite(f\"freezed_{frame}_1.jpg\", img)\n\n                # note: faces already detected from img (original one) in grab_facial_areas()\n                # perform_demography_analysis and perform_facial_recognition are using\n                # pre-detected faces, not using anything from img\n\n                # age, gender and emotion analysis\n                img = perform_demography_analysis(\n                    enable_face_analysis=enable_face_analysis,\n                    img=img,\n                    faces_coordinates=faces_coordinates,\n                    detected_faces=detected_faces,\n                )\n\n                if debug is True:\n                    cv2.imwrite(f\"freezed_{frame}_2.jpg\", img)\n\n                # facial recogntion analysis\n                img = perform_facial_recognition(\n                    img=img,\n                    faces_coordinates=faces_coordinates,\n                    detected_faces=detected_faces,\n                    db_path=db_path,\n                    detector_backend=detector_backend,\n                    distance_metric=distance_metric,\n                    model_name=model_name,\n                )\n\n                if debug is True:\n                    cv2.imwrite(f\"freezed_{frame}_3.jpg\", img)\n\n                # freeze the img after analysis\n                freezed_img = img.copy()\n\n                # start counter for freezing\n                tic = time.time()\n                logger.info(\"freezed\")\n\n        elif freeze and time.time() - tic > time_threshold:\n            freeze = False\n            freezed_img = None\n            # reset counter for freezing\n            tic = time.time()\n            logger.info(\"Freeze released\")\n\n        # count how many seconds required to relased freezed image in the left up area\n        freezed_img = countdown_to_release(img=freezed_img, tic=tic, time_threshold=time_threshold)\n        display_img = img if freezed_img is None else freezed_img\n\n        # Save the frame to output video if writer is initialized\n        if video_writer:\n            video_writer.write(display_img)\n\n        cv2.imshow(\"img\", display_img)\n        if cv2.waitKey(1) & 0xFF == ord(\"q\"):\n            break\n\n    # Release resources\n    cap.release()\n    if video_writer:\n        video_writer.release()\n    cv2.destroyAllWindows()\n\n\ndef build_facial_recognition_model(model_name: str) -> None:\n    \"\"\"\n    Build facial recognition model\n    Args:\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n    Returns\n        input_shape (tuple): input shape of given facial recognitio n model.\n    \"\"\"\n    _ = DeepFace.build_model(task=\"facial_recognition\", model_name=model_name)\n    logger.info(f\"{model_name} is built\")\n\n\ndef search_identity(\n    detected_face: NDArray[Any],\n    db_path: str,\n    model_name: str,\n    detector_backend: str,\n    distance_metric: str,\n) -> Tuple[Optional[str], Optional[NDArray[Any]], float]:\n    \"\"\"\n    Search an identity in facial database.\n    Args:\n        detected_face (np.ndarray): extracted individual facial image\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular', (default is cosine).\n    Returns:\n        result (tuple): result consisting of following objects\n            identified image path (str)\n            identified image itself (np.ndarray)\n    \"\"\"\n    target_path = None\n    target_img = None\n    confidence = 0\n    try:\n        dfs = DeepFace.find(\n            img_path=detected_face,\n            db_path=db_path,\n            model_name=model_name,\n            detector_backend=detector_backend,\n            distance_metric=distance_metric,\n            enforce_detection=False,\n            silent=True,\n        )\n        dfs = cast(List[pd.DataFrame], dfs)\n    except ValueError as err:\n        if f\"No item found in {db_path}\" in str(err):\n            logger.warn(\n                f\"No item is found in {db_path}.\"\n                \"So, no facial recognition analysis will be performed.\"\n            )\n            dfs = []\n        else:\n            raise err\n    if len(dfs) == 0:\n        # you may consider to return unknown person's image here\n        return target_path, target_img, confidence\n\n    # detected face is coming from parent, safe to access 1st index\n    df: pd.DataFrame = dfs[0]\n\n    if df.shape[0] == 0:\n        return target_path, target_img, confidence\n\n    candidate = df.iloc[0]\n    target_path = candidate[\"identity\"]\n    confidence = candidate[\"confidence\"]\n    logger.info(f\"Hello, {target_path} (confidence: {confidence}%)\")\n\n    # load found identity image - extracted if possible\n    target_objs: List[Dict[str, Any]] = cast(\n        List[Dict[str, Any]],\n        DeepFace.extract_faces(\n            img_path=target_path,\n            detector_backend=detector_backend,\n            enforce_detection=False,\n            align=True,\n        ),\n    )\n\n    # extract facial area of the identified image if and only if it has one face\n    # otherwise, show image as is\n    if len(target_objs) == 1:\n        # extract 1st item directly\n        target_obj = target_objs[0]\n        target_img = target_obj[\"face\"]\n        target_img *= 255\n        target_img = target_img[:, :, ::-1]\n    else:\n        target_img = cv2.imread(target_path)\n\n    # resize anyway\n    target_img = cv2.resize(target_img, (IDENTIFIED_IMG_SIZE, IDENTIFIED_IMG_SIZE))\n\n    return (\n        target_path.split(\"/\")[-1],\n        target_img,\n        confidence,\n    )\n\n\ndef build_demography_models(enable_face_analysis: bool) -> None:\n    \"\"\"\n    Build demography analysis models\n    Args:\n        enable_face_analysis (bool): Flag to enable face analysis (default is True).\n    Returns:\n        None\n    \"\"\"\n    if enable_face_analysis is False:\n        return\n    DeepFace.build_model(task=\"facial_attribute\", model_name=\"Age\")\n    logger.info(\"Age model is just built\")\n    DeepFace.build_model(task=\"facial_attribute\", model_name=\"Gender\")\n    logger.info(\"Gender model is just built\")\n    DeepFace.build_model(task=\"facial_attribute\", model_name=\"Emotion\")\n    logger.info(\"Emotion model is just built\")\n\n\ndef highlight_facial_areas(\n    img: NDArray[Any],\n    faces_coordinates: List[Tuple[int, int, int, int, bool, float]],\n    anti_spoofing: bool = False,\n) -> NDArray[Any]:\n    \"\"\"\n    Highlight detected faces with rectangles in the given image\n    Args:\n        img (np.ndarray): image itself\n        faces_coordinates (list): list of face coordinates as tuple with x, y, w and h\n            also is_real and antispoof_score keys\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n    Returns:\n        img (np.ndarray): image with highlighted facial areas\n    \"\"\"\n    for x, y, w, h, is_real, antispoof_score in faces_coordinates:\n        # highlight facial area with rectangle\n\n        if anti_spoofing is False:\n            color = (67, 67, 67)\n        else:\n            if is_real is True:\n                color = (0, 255, 0)\n            else:\n                color = (0, 0, 255)\n        cv2.rectangle(img, (x, y), (x + w, y + h), color, 1)\n    return img\n\n\ndef countdown_to_freeze(\n    img: NDArray[Any],\n    faces_coordinates: List[Tuple[int, int, int, int, bool, float]],\n    frame_threshold: int,\n    num_frames_with_faces: int,\n) -> NDArray[Any]:\n    \"\"\"\n    Highlight time to freeze in the image's facial areas\n    Args:\n        img (np.ndarray): image itself\n        faces_coordinates (list): list of face coordinates as tuple with x, y, w and h\n        frame_threshold (int): how many sequantial frames required with face(s) to freeze\n        num_frames_with_faces (int): how many sequantial frames do we have with face(s)\n    Returns:\n        img (np.ndarray): image with counter values\n    \"\"\"\n    for x, y, w, h, is_real, antispoof_score in faces_coordinates:\n        cv2.putText(\n            img,\n            str(frame_threshold - (num_frames_with_faces % frame_threshold)),\n            (int(x + w / 4), int(y + h / 1.5)),\n            cv2.FONT_HERSHEY_SIMPLEX,\n            4,\n            (255, 255, 255),\n            2,\n        )\n    return img\n\n\ndef countdown_to_release(\n    img: Optional[NDArray[Any]], tic: float, time_threshold: int\n) -> Optional[NDArray[Any]]:\n    \"\"\"\n    Highlight time to release the freezing in the image top left area\n    Args:\n        img (np.ndarray): image itself\n        tic (float): time specifying when freezing started\n        time_threshold (int): freeze time threshold\n    Returns:\n        img (np.ndarray): image with time to release the freezing\n    \"\"\"\n    # do not take any action if it is not frozen yet\n    if img is None:\n        return img\n    toc = time.time()\n    time_left = int(time_threshold - (toc - tic) + 1)\n    cv2.rectangle(img, (10, 10), (90, 50), (67, 67, 67), -10)\n    cv2.putText(\n        img,\n        str(time_left),\n        (40, 40),\n        cv2.FONT_HERSHEY_SIMPLEX,\n        1,\n        (255, 255, 255),\n        1,\n    )\n    return img\n\n\ndef grab_facial_areas(\n    img: NDArray[Any],\n    detector_backend: str,\n    threshold: int = 130,\n    anti_spoofing: bool = False,\n) -> List[Tuple[int, int, int, int, bool, float]]:\n    \"\"\"\n    Find facial area coordinates in the given image\n    Args:\n        img (np.ndarray): image itself\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s', 'yolov11m',\n            'centerface' or 'skip' (default is opencv).\n        threshold (int): threshold for facial area, discard smaller ones\n    Returns\n        result (list): list of tuple with x, y, w and h coordinates\n    \"\"\"\n    try:\n        face_objs: List[Dict[str, Any]] = cast(\n            List[Dict[str, Any]],\n            DeepFace.extract_faces(\n                img_path=img,\n                detector_backend=detector_backend,\n                # you may consider to extract with larger expanding value\n                expand_percentage=0,\n                anti_spoofing=anti_spoofing,\n            ),\n        )\n        faces = [\n            (\n                face_obj[\"facial_area\"][\"x\"],\n                face_obj[\"facial_area\"][\"y\"],\n                face_obj[\"facial_area\"][\"w\"],\n                face_obj[\"facial_area\"][\"h\"],\n                face_obj.get(\"is_real\", True),\n                face_obj.get(\"antispoof_score\", 0),\n            )\n            for face_obj in face_objs\n            if face_obj[\"facial_area\"][\"w\"] > threshold\n        ]\n        return faces\n    except:  # to avoid exception if no face detected\n        return []\n\n\ndef extract_facial_areas(\n    img: NDArray[Any], faces_coordinates: List[Tuple[int, int, int, int, bool, float]]\n) -> List[NDArray[Any]]:\n    \"\"\"\n    Extract facial areas as numpy array from given image\n    Args:\n        img (np.ndarray): image itself\n        faces_coordinates (list): list of facial area coordinates as tuple with\n            x, y, w and h values also is_real and antispoof_score keys\n    Returns:\n        detected_faces (list): list of detected facial area images\n    \"\"\"\n    detected_faces = []\n    for x, y, w, h, is_real, antispoof_score in faces_coordinates:\n        detected_face = img[int(y) : int(y + h), int(x) : int(x + w)]\n        detected_faces.append(detected_face)\n    return detected_faces\n\n\ndef perform_facial_recognition(\n    img: NDArray[Any],\n    detected_faces: List[NDArray[Any]],\n    faces_coordinates: List[Tuple[int, int, int, int, bool, float]],\n    db_path: str,\n    detector_backend: str,\n    distance_metric: str,\n    model_name: str,\n) -> NDArray[Any]:\n    \"\"\"\n    Perform facial recognition\n    Args:\n        img (np.ndarray): image itself\n        detected_faces (list): list of extracted detected face images as numpy\n        faces_coordinates (list): list of facial area coordinates as tuple with\n            x, y, w and h values also is_real and antispoof_score keys\n        db_path (string): Path to the folder containing image files. All detected faces\n            in the database will be considered in the decision-making process.\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'yolov11n', 'yolov11s',\n            'yolov11m', 'centerface' or 'skip' (default is opencv).\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n    Returns:\n        img (np.ndarray): image with identified face informations\n    \"\"\"\n    for idx, (x, y, w, h, is_real, antispoof_score) in enumerate(faces_coordinates):\n        detected_face = detected_faces[idx]\n        target_label, target_img, confidence = search_identity(\n            detected_face=detected_face,\n            db_path=db_path,\n            detector_backend=detector_backend,\n            distance_metric=distance_metric,\n            model_name=model_name,\n        )\n        if target_label is None:\n            continue\n\n        if target_img is None:\n            continue\n\n        img = overlay_identified_face(\n            img=img,\n            target_img=target_img,\n            label=target_label,\n            x=x,\n            y=y,\n            w=w,\n            h=h,\n            confidence=confidence,\n        )\n\n    return img\n\n\ndef perform_demography_analysis(\n    enable_face_analysis: bool,\n    img: NDArray[Any],\n    faces_coordinates: List[Tuple[int, int, int, int, bool, float]],\n    detected_faces: List[NDArray[Any]],\n) -> NDArray[Any]:\n    \"\"\"\n    Perform demography analysis on given image\n    Args:\n        enable_face_analysis (bool): Flag to enable face analysis.\n        img (np.ndarray): image itself\n        faces_coordinates (list): list of face coordinates as tuple with\n            x, y, w and h values also is_real and antispoof_score keys\n        detected_faces (list): list of extracted detected face images as numpy\n    Returns:\n        img (np.ndarray): image with analyzed demography information\n    \"\"\"\n    if enable_face_analysis is False:\n        return img\n    for idx, (x, y, w, h, is_real, antispoof_score) in enumerate(faces_coordinates):\n        detected_face = detected_faces[idx]\n        demographies: List[Dict[str, Any]] = cast(\n            List[Dict[str, Any]],\n            DeepFace.analyze(\n                img_path=detected_face,\n                actions=(\"age\", \"gender\", \"emotion\"),\n                detector_backend=\"skip\",\n                enforce_detection=False,\n                silent=True,\n            ),\n        )\n\n        if len(demographies) == 0:\n            continue\n\n        # safe to access 1st index because detector backend is skip\n        demography: Dict[str, Any] = demographies[0]\n\n        img = overlay_emotion(img=img, emotion_probas=demography[\"emotion\"], x=x, y=y, w=w, h=h)\n        img = overlay_age_gender(\n            img=img,\n            apparent_age=demography[\"age\"],\n            gender=demography[\"dominant_gender\"][0:1],  # M or W\n            x=x,\n            y=y,\n            w=w,\n            h=h,\n        )\n    return img\n\n\ndef overlay_identified_face(\n    img: NDArray[Any],\n    target_img: NDArray[Any],\n    label: str,\n    x: int,\n    y: int,\n    w: int,\n    h: int,\n    confidence: float,\n) -> NDArray[Any]:\n    \"\"\"\n    Overlay the identified face onto image itself\n    Args:\n        img (np.ndarray): image itself\n        target_img (np.ndarray): identified face's image\n        label (str): name of the identified face\n        x (int): x coordinate of the face on the given image\n        y (int): y coordinate of the face on the given image\n        w (int): w coordinate of the face on the given image\n        h (int): h coordinate of the face on the given image\n        confidence (float): confidence score of the identified face\n    Returns:\n        img (np.ndarray): image with overlayed identity\n    \"\"\"\n\n    # show classification label with confidence\n    label = f\"{label} ({confidence}%)\"\n    try:\n        if y - IDENTIFIED_IMG_SIZE > 0 and x + w + IDENTIFIED_IMG_SIZE < img.shape[1]:\n            # top right\n            img[\n                y - IDENTIFIED_IMG_SIZE : y,\n                x + w : x + w + IDENTIFIED_IMG_SIZE,\n            ] = target_img\n\n            overlay = img.copy()\n            opacity = 0.4\n            cv2.rectangle(\n                img,\n                (x + w, y),\n                (x + w + IDENTIFIED_IMG_SIZE, y + 20),\n                (46, 200, 255),\n                cv2.FILLED,\n            )\n            cv2.addWeighted(\n                overlay,\n                opacity,\n                img,\n                1 - opacity,\n                0,\n                img,\n            )\n\n            cv2.putText(\n                img,\n                label,\n                (x + w, y + 10),\n                cv2.FONT_HERSHEY_SIMPLEX,\n                0.5,\n                TEXT_COLOR,\n                1,\n            )\n\n            # connect face and text\n            cv2.line(\n                img,\n                (x + int(w / 2), y),\n                (x + 3 * int(w / 4), y - int(IDENTIFIED_IMG_SIZE / 2)),\n                (67, 67, 67),\n                1,\n            )\n            cv2.line(\n                img,\n                (x + 3 * int(w / 4), y - int(IDENTIFIED_IMG_SIZE / 2)),\n                (x + w, y - int(IDENTIFIED_IMG_SIZE / 2)),\n                (67, 67, 67),\n                1,\n            )\n\n        elif y + h + IDENTIFIED_IMG_SIZE < img.shape[0] and x - IDENTIFIED_IMG_SIZE > 0:\n            # bottom left\n            img[\n                y + h : y + h + IDENTIFIED_IMG_SIZE,\n                x - IDENTIFIED_IMG_SIZE : x,\n            ] = target_img\n\n            overlay = img.copy()\n            opacity = 0.4\n            cv2.rectangle(\n                img,\n                (x - IDENTIFIED_IMG_SIZE, y + h - 20),\n                (x, y + h),\n                (46, 200, 255),\n                cv2.FILLED,\n            )\n            cv2.addWeighted(\n                overlay,\n                opacity,\n                img,\n                1 - opacity,\n                0,\n                img,\n            )\n\n            cv2.putText(\n                img,\n                label,\n                (x - IDENTIFIED_IMG_SIZE, y + h - 10),\n                cv2.FONT_HERSHEY_SIMPLEX,\n                0.5,\n                TEXT_COLOR,\n                1,\n            )\n\n            # connect face and text\n            cv2.line(\n                img,\n                (x + int(w / 2), y + h),\n                (\n                    x + int(w / 2) - int(w / 4),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (67, 67, 67),\n                1,\n            )\n            cv2.line(\n                img,\n                (\n                    x + int(w / 2) - int(w / 4),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (x, y + h + int(IDENTIFIED_IMG_SIZE / 2)),\n                (67, 67, 67),\n                1,\n            )\n\n        elif y - IDENTIFIED_IMG_SIZE > 0 and x - IDENTIFIED_IMG_SIZE > 0:\n            # top left\n            img[y - IDENTIFIED_IMG_SIZE : y, x - IDENTIFIED_IMG_SIZE : x] = target_img\n\n            overlay = img.copy()\n            opacity = 0.4\n            cv2.rectangle(\n                img,\n                (x - IDENTIFIED_IMG_SIZE, y),\n                (x, y + 20),\n                (46, 200, 255),\n                cv2.FILLED,\n            )\n            cv2.addWeighted(\n                overlay,\n                opacity,\n                img,\n                1 - opacity,\n                0,\n                img,\n            )\n\n            cv2.putText(\n                img,\n                label,\n                (x - IDENTIFIED_IMG_SIZE, y + 10),\n                cv2.FONT_HERSHEY_SIMPLEX,\n                0.5,\n                TEXT_COLOR,\n                1,\n            )\n\n            # connect face and text\n            cv2.line(\n                img,\n                (x + int(w / 2), y),\n                (\n                    x + int(w / 2) - int(w / 4),\n                    y - int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (67, 67, 67),\n                1,\n            )\n            cv2.line(\n                img,\n                (\n                    x + int(w / 2) - int(w / 4),\n                    y - int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (x, y - int(IDENTIFIED_IMG_SIZE / 2)),\n                (67, 67, 67),\n                1,\n            )\n\n        elif (\n            x + w + IDENTIFIED_IMG_SIZE < img.shape[1]\n            and y + h + IDENTIFIED_IMG_SIZE < img.shape[0]\n        ):\n            # bottom righ\n            img[\n                y + h : y + h + IDENTIFIED_IMG_SIZE,\n                x + w : x + w + IDENTIFIED_IMG_SIZE,\n            ] = target_img\n\n            overlay = img.copy()\n            opacity = 0.4\n            cv2.rectangle(\n                img,\n                (x + w, y + h - 20),\n                (x + w + IDENTIFIED_IMG_SIZE, y + h),\n                (46, 200, 255),\n                cv2.FILLED,\n            )\n            cv2.addWeighted(\n                overlay,\n                opacity,\n                img,\n                1 - opacity,\n                0,\n                img,\n            )\n\n            cv2.putText(\n                img,\n                label,\n                (x + w, y + h - 10),\n                cv2.FONT_HERSHEY_SIMPLEX,\n                0.5,\n                TEXT_COLOR,\n                1,\n            )\n\n            # connect face and text\n            cv2.line(\n                img,\n                (x + int(w / 2), y + h),\n                (\n                    x + int(w / 2) + int(w / 4),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (67, 67, 67),\n                1,\n            )\n            cv2.line(\n                img,\n                (\n                    x + int(w / 2) + int(w / 4),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 2),\n                ),\n                (x + w, y + h + int(IDENTIFIED_IMG_SIZE / 2)),\n                (67, 67, 67),\n                1,\n            )\n        else:\n            logger.info(\"cannot put facial recognition info on the image\")\n    except Exception as err:  # pylint: disable=broad-except\n        logger.error(f\"{str(err)} - {traceback.format_exc()}\")\n    return img\n\n\ndef overlay_emotion(\n    img: NDArray[Any], emotion_probas: Dict[str, float], x: int, y: int, w: int, h: int\n) -> NDArray[Any]:\n    \"\"\"\n    Overlay the analyzed emotion of face onto image itself\n    Args:\n        img (np.ndarray): image itself\n        emotion_probas (dict): probability of different emotionas dictionary\n        x (int): x coordinate of the face on the given image\n        y (int): y coordinate of the face on the given image\n        w (int): w coordinate of the face on the given image\n        h (int): h coordinate of the face on the given image\n    Returns:\n        img (np.ndarray): image with overlay emotion analsis results\n    \"\"\"\n    emotion_df = pd.DataFrame(emotion_probas.items(), columns=[\"emotion\", \"score\"])\n    emotion_df = emotion_df.sort_values(by=[\"score\"], ascending=False).reset_index(drop=True)\n\n    # background of mood box\n\n    # transparency\n    overlay = img.copy()\n    opacity = 0.4\n\n    # put gray background to the right of the detected image\n    if x + w + IDENTIFIED_IMG_SIZE < img.shape[1]:\n        cv2.rectangle(\n            img,\n            (x + w, y),\n            (x + w + IDENTIFIED_IMG_SIZE, y + h),\n            (64, 64, 64),\n            cv2.FILLED,\n        )\n        cv2.addWeighted(overlay, opacity, img, 1 - opacity, 0, img)\n\n    # put gray background to the left of the detected image\n    elif x - IDENTIFIED_IMG_SIZE > 0:\n        cv2.rectangle(\n            img,\n            (x - IDENTIFIED_IMG_SIZE, y),\n            (x, y + h),\n            (64, 64, 64),\n            cv2.FILLED,\n        )\n        cv2.addWeighted(overlay, opacity, img, 1 - opacity, 0, img)\n\n    for index, instance in emotion_df.iterrows():\n        current_emotion = instance[\"emotion\"]\n        emotion_label = f\"{current_emotion} \"\n        emotion_score = instance[\"score\"] / 100\n\n        filled_bar_x = 35  # this is the size if an emotion is 100%\n        bar_x = int(filled_bar_x * emotion_score)\n\n        if x + w + IDENTIFIED_IMG_SIZE < img.shape[1]:\n\n            text_location_y = y + 20 + (index + 1) * 20\n            text_location_x = x + w\n\n            if text_location_y < y + h:\n                cv2.putText(\n                    img,\n                    emotion_label,\n                    (text_location_x, text_location_y),\n                    cv2.FONT_HERSHEY_SIMPLEX,\n                    0.5,\n                    (255, 255, 255),\n                    1,\n                )\n\n                cv2.rectangle(\n                    img,\n                    (x + w + 70, y + 13 + (index + 1) * 20),\n                    (\n                        x + w + 70 + bar_x,\n                        y + 13 + (index + 1) * 20 + 5,\n                    ),\n                    (255, 255, 255),\n                    cv2.FILLED,\n                )\n\n        elif x - IDENTIFIED_IMG_SIZE > 0:\n\n            text_location_y = y + 20 + (index + 1) * 20\n            text_location_x = x - IDENTIFIED_IMG_SIZE\n\n            if text_location_y <= y + h:\n                cv2.putText(\n                    img,\n                    emotion_label,\n                    (text_location_x, text_location_y),\n                    cv2.FONT_HERSHEY_SIMPLEX,\n                    0.5,\n                    (255, 255, 255),\n                    1,\n                )\n\n                cv2.rectangle(\n                    img,\n                    (\n                        x - IDENTIFIED_IMG_SIZE + 70,\n                        y + 13 + (index + 1) * 20,\n                    ),\n                    (\n                        x - IDENTIFIED_IMG_SIZE + 70 + bar_x,\n                        y + 13 + (index + 1) * 20 + 5,\n                    ),\n                    (255, 255, 255),\n                    cv2.FILLED,\n                )\n\n    return img\n\n\ndef overlay_age_gender(\n    img: NDArray[Any], apparent_age: float, gender: str, x: int, y: int, w: int, h: int\n) -> NDArray[Any]:\n    \"\"\"\n    Overlay the analyzed age and gender of face onto image itself\n    Args:\n        img (np.ndarray): image itself\n        apparent_age (float): analyzed apparent age\n        gender (str): analyzed gender\n        x (int): x coordinate of the face on the given image\n        y (int): y coordinate of the face on the given image\n        w (int): w coordinate of the face on the given image\n        h (int): h coordinate of the face on the given image\n    Returns:\n        img (np.ndarray): image with overlay age and gender analsis results\n    \"\"\"\n    logger.debug(f\"{apparent_age} years old {gender}\")\n    analysis_report = f\"{int(apparent_age)} {gender}\"\n\n    info_box_color = (46, 200, 255)\n\n    # show its age and gender on the top of the image\n    if y - IDENTIFIED_IMG_SIZE + int(IDENTIFIED_IMG_SIZE / 5) > 0:\n\n        triangle_coordinates = np.array(\n            [\n                (x + int(w / 2), y),\n                (\n                    x + int(w / 2) - int(w / 10),\n                    y - int(IDENTIFIED_IMG_SIZE / 3),\n                ),\n                (\n                    x + int(w / 2) + int(w / 10),\n                    y - int(IDENTIFIED_IMG_SIZE / 3),\n                ),\n            ]\n        )\n\n        cv2.drawContours(\n            img,\n            [triangle_coordinates],  # type: ignore[list-item]\n            0,\n            info_box_color,\n            -1,\n        )\n\n        cv2.rectangle(\n            img,\n            (\n                x + int(w / 5),\n                y - IDENTIFIED_IMG_SIZE + int(IDENTIFIED_IMG_SIZE / 5),\n            ),\n            (x + w - int(w / 5), y - int(IDENTIFIED_IMG_SIZE / 3)),\n            info_box_color,\n            cv2.FILLED,\n        )\n\n        cv2.putText(\n            img,\n            analysis_report,\n            (x + int(w / 3.5), y - int(IDENTIFIED_IMG_SIZE / 2.1)),\n            cv2.FONT_HERSHEY_SIMPLEX,\n            1,\n            (0, 111, 255),\n            2,\n        )\n\n    # show its age and gender on the top of the image\n    elif y + h + IDENTIFIED_IMG_SIZE - int(IDENTIFIED_IMG_SIZE / 5) < img.shape[0]:\n\n        triangle_coordinates = np.array(\n            [\n                (x + int(w / 2), y + h),\n                (\n                    x + int(w / 2) - int(w / 10),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 3),\n                ),\n                (\n                    x + int(w / 2) + int(w / 10),\n                    y + h + int(IDENTIFIED_IMG_SIZE / 3),\n                ),\n            ]\n        )\n\n        cv2.drawContours(\n            img,\n            [triangle_coordinates],  # type: ignore[list-item]\n            0,\n            info_box_color,\n            -1,\n        )\n\n        cv2.rectangle(\n            img,\n            (x + int(w / 5), y + h + int(IDENTIFIED_IMG_SIZE / 3)),\n            (\n                x + w - int(w / 5),\n                y + h + IDENTIFIED_IMG_SIZE - int(IDENTIFIED_IMG_SIZE / 5),\n            ),\n            info_box_color,\n            cv2.FILLED,\n        )\n\n        cv2.putText(\n            img,\n            analysis_report,\n            (x + int(w / 3.5), y + h + int(IDENTIFIED_IMG_SIZE / 1.5)),\n            cv2.FONT_HERSHEY_SIMPLEX,\n            1,\n            (0, 111, 255),\n            2,\n        )\n\n    return img\n"
  },
  {
    "path": "deepface/modules/verification.py",
    "content": "# built-in dependencies\nimport time\nfrom typing import Any, Dict, Optional, Union, List, Tuple, IO, cast\nimport math\n\n# 3rd party dependencies\nimport numpy as np\nfrom numpy.typing import NDArray\n\n# project dependencies\nfrom deepface.modules import representation, detection, modeling\nfrom deepface.models.FacialRecognition import FacialRecognition\nfrom deepface.commons.logger import Logger\nfrom deepface.config.confidence import confidences\nfrom deepface.config.threshold import thresholds\nfrom deepface.modules.exceptions import (\n    SpoofDetected,\n    DimensionMismatchError,\n    DataTypeError,\n    InvalidEmbeddingsShapeError,\n)\n\nlogger = Logger()\n\n\n# pylint: disable=too-many-positional-arguments, no-else-return\ndef verify(\n    img1_path: Union[str, NDArray[Any], List[float], IO[bytes]],\n    img2_path: Union[str, NDArray[Any], List[float], IO[bytes]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    distance_metric: str = \"cosine\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    silent: bool = False,\n    threshold: Optional[float] = None,\n    anti_spoofing: bool = False,\n) -> Dict[str, Any]:\n    \"\"\"\n    Verify if an image pair represents the same person or different persons.\n\n    The verification function converts facial images to vectors and calculates the similarity\n    between those vectors. Vectors of images of the same person should exhibit higher similarity\n    (or lower distance) than vectors of images of different persons.\n\n    Args:\n        img1_path (str or np.ndarray or List[float]): Path to the first image.\n            Accepts exact image path as a string, numpy array (BGR), base64 encoded images\n            or pre-calculated embeddings.\n\n        img2_path (str or np.ndarray or  or List[float]): Path to the second image.\n            Accepts exact image path as a string, numpy array (BGR), base64 encoded images\n            or pre-calculated embeddings.\n\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n\n        detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',\n            'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8n', 'yolov8m', 'yolov8l', 'yolov11n',\n            'yolov11s', 'yolov11m', 'yolov11l', 'yolov12n', 'yolov12s', 'yolov12m', 'yolov12l'\n            'centerface' or 'skip' (default is opencv)\n\n        distance_metric (string): Metric for measuring similarity. Options: 'cosine',\n            'euclidean', 'euclidean_l2', 'angular' (default is cosine).\n\n        enforce_detection (boolean): If no face is detected in an image, raise an exception.\n            Set to False to avoid the exception for low-resolution images (default is True).\n\n        align (bool): Flag to enable face alignment (default is True).\n\n        expand_percentage (int): expand detected facial area with a percentage (default is 0).\n\n        normalization (string): Normalize the input image before feeding it to the model.\n            Options: base, raw, Facenet, Facenet2018, VGGFace, VGGFace2, ArcFace (default is base)\n\n        silent (boolean): Suppress or allow some log messages for a quieter analysis process\n            (default is False).\n\n        threshold (float): Specify a threshold to determine whether a pair represents the same\n            person or different individuals. This threshold is used for comparing distances.\n            If left unset, default pre-tuned threshold values will be applied based on the specified\n            model name and distance metric (default is None).\n\n        anti_spoofing (boolean): Flag to enable anti spoofing (default is False).\n\n    Returns:\n        result (dict): A dictionary containing verification results.\n\n        - 'verified' (bool): Indicates whether the images represent the same person (True)\n            or different persons (False).\n\n        - 'distance' (float): The distance measure between the face vectors.\n            A lower distance indicates higher similarity.\n\n        - 'threshold' (float): The maximum threshold used for verification.\n            If the distance is below this threshold, the images are considered a match.\n\n        - 'confidence' (float): Confidence score indicating the likelihood that the images\n            represent the same person. The score is between 0 and 100, where higher values\n            indicate greater confidence in the verification result.\n\n        - 'model' (str): The chosen face recognition model.\n\n        - 'similarity_metric' (str): The chosen similarity metric for measuring distances.\n\n        - 'facial_areas' (dict): Rectangular regions of interest for faces in both images.\n            - 'img1': {'x': int, 'y': int, 'w': int, 'h': int}\n                    Region of interest for the first image.\n            - 'img2': {'x': int, 'y': int, 'w': int, 'h': int}\n                    Region of interest for the second image.\n\n        - 'time' (float): Time taken for the verification process in seconds.\n    \"\"\"\n\n    tic = time.time()\n\n    model: FacialRecognition = modeling.build_model(\n        task=\"facial_recognition\", model_name=model_name\n    )\n    dims = model.output_shape\n\n    no_facial_area = {\n        \"x\": None,\n        \"y\": None,\n        \"w\": None,\n        \"h\": None,\n        \"left_eye\": None,\n        \"right_eye\": None,\n    }\n\n    def extract_embeddings_and_facial_areas(\n        img_path: Union[str, NDArray[Any], List[float], IO[bytes]], index: int\n    ) -> Tuple[List[List[float]], List[Dict[str, Any]]]:\n        \"\"\"\n        Extracts facial embeddings and corresponding facial areas from an\n        image or returns pre-calculated embeddings.\n\n        Depending on the type of img_path, the function either extracts\n        facial embeddings from the provided image\n        (via a path or NumPy array) or verifies that the input is a list of\n        pre-calculated embeddings and validates them.\n\n        Args:\n            img_path (Union[str, np.ndarray, List[float]]):\n                - A string representing the file path to an image,\n                - A NumPy array containing the image data,\n                - Or a list of pre-calculated embedding values (of type `float`).\n                - Or a file-like object containing image data (e.g., bytes).\n            index (int): An index value used in error messages and logging\n            to identify the number of the image.\n\n        Returns:\n            Tuple[List[List[float]], List[dict]]:\n                - A list containing lists of facial embeddings for each detected face.\n                - A list of dictionaries where each dictionary contains facial area information.\n        \"\"\"\n        if isinstance(img_path, list):\n            # given image is already pre-calculated embedding\n            if not all(isinstance(dim, (float, int)) for dim in img_path):\n\n                raise DataTypeError(\n                    f\"When passing img{index}_path as a list,\"\n                    \" ensure that all its items are of type float.\"\n                )\n\n            if silent is False:\n                logger.warn(\n                    f\"You passed {index}-th image as pre-calculated embeddings.\"\n                    \"Please ensure that embeddings have been calculated\"\n                    f\" for the {model_name} model.\"\n                )\n\n            if len(img_path) != dims:\n                raise DimensionMismatchError(\n                    f\"embeddings of {model_name} should have {dims} dimensions,\"\n                    f\" but {index}-th image has {len(img_path)} dimensions input\"\n                )\n\n            img_embeddings = [img_path]\n            img_facial_areas = [no_facial_area]\n        else:\n            try:\n                img_embeddings, img_facial_areas = __extract_faces_and_embeddings(\n                    img_path=img_path,\n                    model_name=model_name,\n                    detector_backend=detector_backend,\n                    enforce_detection=enforce_detection,\n                    align=align,\n                    expand_percentage=expand_percentage,\n                    normalization=normalization,\n                    anti_spoofing=anti_spoofing,\n                )\n            except ValueError as err:\n                raise ValueError(f\"Exception while processing img{index}_path\") from err\n        return img_embeddings, img_facial_areas\n\n    img1_embeddings, img1_facial_areas = extract_embeddings_and_facial_areas(img1_path, 1)\n    img2_embeddings, img2_facial_areas = extract_embeddings_and_facial_areas(img2_path, 2)\n\n    min_distance, min_idx, min_idy = float(\"inf\"), None, None\n    for idx, img1_embedding in enumerate(img1_embeddings):\n        for idy, img2_embedding in enumerate(img2_embeddings):\n            distance: float = float(\n                cast(np.float64, find_distance(img1_embedding, img2_embedding, distance_metric))\n            )\n            if distance < min_distance:\n                min_distance, min_idx, min_idy = distance, idx, idy\n\n    # find the face pair with minimum distance\n    pretuned_threshold = find_threshold(model_name, distance_metric)\n    threshold = threshold or pretuned_threshold\n    distance = float(min_distance)\n    confidence = find_confidence(\n        distance=distance,\n        model_name=model_name,\n        distance_metric=distance_metric,\n        verified=distance <= pretuned_threshold,\n    )\n    facial_areas = (\n        no_facial_area if min_idx is None else img1_facial_areas[min_idx],\n        no_facial_area if min_idy is None else img2_facial_areas[min_idy],\n    )\n\n    toc = time.time()\n\n    resp_obj = {\n        \"verified\": distance <= threshold,\n        \"distance\": distance,\n        \"threshold\": threshold,\n        \"confidence\": confidence,\n        \"model\": model_name,\n        \"detector_backend\": detector_backend,\n        \"similarity_metric\": distance_metric,\n        \"facial_areas\": {\"img1\": facial_areas[0], \"img2\": facial_areas[1]},\n        \"time\": round(toc - tic, 2),\n    }\n\n    return resp_obj\n\n\ndef __extract_faces_and_embeddings(\n    img_path: Union[str, NDArray[Any], IO[bytes]],\n    model_name: str = \"VGG-Face\",\n    detector_backend: str = \"opencv\",\n    enforce_detection: bool = True,\n    align: bool = True,\n    expand_percentage: int = 0,\n    normalization: str = \"base\",\n    anti_spoofing: bool = False,\n) -> Tuple[List[List[float]], List[Dict[str, Any]]]:\n    \"\"\"\n    Extract facial areas and find corresponding embeddings for given image\n    Returns:\n        embeddings (List[float])\n        facial areas (List[dict])\n    \"\"\"\n    embeddings = []\n    facial_areas = []\n\n    img_objs: List[Dict[str, Any]] = cast(\n        List[Dict[str, Any]],\n        detection.extract_faces(\n            img_path=img_path,\n            detector_backend=detector_backend,\n            grayscale=False,\n            enforce_detection=enforce_detection,\n            align=align,\n            expand_percentage=expand_percentage,\n            anti_spoofing=anti_spoofing,\n        ),\n    )\n\n    # find embeddings for each face\n    for img_obj in img_objs:\n        if anti_spoofing is True and img_obj.get(\"is_real\", True) is False:\n            raise SpoofDetected(\"Spoof detected in given image.\")\n        img_embedding_obj = representation.represent(\n            img_path=img_obj[\"face\"][:, :, ::-1],  # make compatible with direct representation call\n            model_name=model_name,\n            enforce_detection=enforce_detection,\n            detector_backend=\"skip\",\n            align=align,\n            normalization=normalization,\n        )\n        # already extracted face given, safe to access its 1st item\n        img_embedding_obj = cast(List[Dict[str, Any]], img_embedding_obj)\n        img_embedding = img_embedding_obj[0][\"embedding\"]\n        embeddings.append(img_embedding)\n        facial_areas.append(img_obj[\"facial_area\"])\n\n    return embeddings, facial_areas\n\n\ndef find_cosine_distance(\n    source_representation: Union[NDArray[Any], List[float]],\n    test_representation: Union[NDArray[Any], List[float]],\n) -> Union[np.float64, NDArray[Any]]:\n    \"\"\"\n    Find cosine distance between two given vectors or batches of vectors.\n    Args:\n        source_representation (np.ndarray or list): 1st vector or batch of vectors.\n        test_representation (np.ndarray or list): 2nd vector or batch of vectors.\n    Returns\n        np.float64 or np.ndarray: Calculated cosine distance(s).\n        It returns a np.float64 for single embeddings and np.ndarray for batch embeddings.\n    \"\"\"\n    # Convert inputs to numpy arrays if necessary\n    source_representation = np.asarray(source_representation)\n    test_representation = np.asarray(test_representation)\n\n    if source_representation.ndim == 1 and test_representation.ndim == 1:\n        # single embedding\n        dot_product = np.dot(source_representation, test_representation)\n        source_norm = np.linalg.norm(source_representation)\n        test_norm = np.linalg.norm(test_representation)\n        distances = 1 - dot_product / (source_norm * test_norm)\n        return cast(np.float64, distances)\n    elif source_representation.ndim == 2 and test_representation.ndim == 2:\n        # list of embeddings (batch)\n        source_normed = l2_normalize(source_representation, axis=1)  # (N, D)\n        test_normed = l2_normalize(test_representation, axis=1)  # (M, D)\n        cosine_similarities = np.dot(test_normed, source_normed.T)  # (M, N)\n        distances = 1 - cosine_similarities\n        return cast(NDArray[Any], distances)\n    else:\n        raise InvalidEmbeddingsShapeError(\n            f\"Embeddings must be 1D or 2D, but received \"\n            f\"source shape: {source_representation.shape}, test shape: {test_representation.shape}\"\n        )\n\n\ndef find_angular_distance(\n    source_representation: Union[NDArray[Any], List[float]],\n    test_representation: Union[NDArray[Any], List[float]],\n) -> Union[np.float64, NDArray[Any]]:\n    \"\"\"\n    Find angular distance between two vectors or batches of vectors.\n\n    Args:\n        source_representation (np.ndarray or list): 1st vector or batch of vectors.\n        test_representation (np.ndarray or list): 2nd vector or batch of vectors.\n\n    Returns:\n        np.float64 or np.ndarray: angular distance(s).\n            Returns a np.float64 for single embeddings and np.ndarray for batch embeddings.\n    \"\"\"\n\n    # calculate cosine similarity first\n    # then convert to angular distance\n    source_representation = np.asarray(source_representation)\n    test_representation = np.asarray(test_representation)\n\n    if source_representation.ndim == 1 and test_representation.ndim == 1:\n        # single embedding\n        dot_product = np.dot(source_representation, test_representation)\n        source_norm = np.linalg.norm(source_representation)\n        test_norm = np.linalg.norm(test_representation)\n        similarity = dot_product / (source_norm * test_norm)\n        distances = np.arccos(similarity) / np.pi\n        return cast(np.float64, distances)\n    elif source_representation.ndim == 2 and test_representation.ndim == 2:\n        # list of embeddings (batch)\n        source_normed = l2_normalize(source_representation, axis=1)  # (N, D)\n        test_normed = l2_normalize(test_representation, axis=1)  # (M, D)\n        similarity = np.dot(test_normed, source_normed.T)  # (M, N)\n        distances = np.arccos(similarity) / np.pi\n        return cast(NDArray[Any], distances)\n    else:\n        raise ValueError(\n            f\"Embeddings must be 1D or 2D, but received \"\n            f\"source shape: {source_representation.shape}, test shape: {test_representation.shape}\"\n        )\n\n\ndef find_euclidean_distance(\n    source_representation: Union[NDArray[Any], List[float]],\n    test_representation: Union[NDArray[Any], List[float]],\n) -> Union[np.float64, NDArray[Any]]:\n    \"\"\"\n    Find Euclidean distance between two vectors or batches of vectors.\n\n    Args:\n        source_representation (np.ndarray or list): 1st vector or batch of vectors.\n        test_representation (np.ndarray or list): 2nd vector or batch of vectors.\n\n    Returns:\n        np.float64 or np.ndarray: Euclidean distance(s).\n            Returns a np.float64 for single embeddings and np.ndarray for batch embeddings.\n    \"\"\"\n    # Convert inputs to numpy arrays if necessary\n    source_representation = np.asarray(source_representation)\n    test_representation = np.asarray(test_representation)\n\n    # Single embedding case (1D arrays)\n    if source_representation.ndim == 1 and test_representation.ndim == 1:\n        distances = np.linalg.norm(source_representation - test_representation)\n        return cast(np.float64, distances)\n    # Batch embeddings case (2D arrays)\n    elif source_representation.ndim == 2 and test_representation.ndim == 2:\n        diff = (\n            source_representation[None, :, :] - test_representation[:, None, :]\n        )  # (N, D) - (M, D)  = (M, N, D)\n        distances = np.linalg.norm(diff, axis=2)  # (M, N)\n        return cast(NDArray[Any], distances)\n    else:\n        raise ValueError(\n            f\"Embeddings must be 1D or 2D, but received \"\n            f\"source shape: {source_representation.shape}, test shape: {test_representation.shape}\"\n        )\n\n\ndef l2_normalize(\n    x: Union[NDArray[Any], List[float], List[List[float]]],\n    axis: Union[int, None] = None,\n    epsilon: float = 1e-10,\n) -> NDArray[Any]:\n    \"\"\"\n    Normalize input vector with l2\n    Args:\n        x (np.ndarray or list): given vector\n        axis (int): axis along which to normalize\n    Returns:\n        np.ndarray: l2 normalized vector\n    \"\"\"\n    # Convert inputs to numpy arrays if necessary\n    x = np.asarray(x)\n    norm = np.linalg.norm(x, axis=axis, keepdims=True)\n    return cast(NDArray[Any], x / (norm + epsilon))\n\n\ndef find_distance(\n    alpha_embedding: Union[NDArray[Any], List[float]],\n    beta_embedding: Union[NDArray[Any], List[float]],\n    distance_metric: str,\n) -> Union[np.float64, NDArray[Any]]:\n    \"\"\"\n    Wrapper to find the distance between vectors based on the specified distance metric.\n\n    Args:\n        alpha_embedding (np.ndarray or list): 1st vector or batch of vectors.\n        beta_embedding (np.ndarray or list): 2nd vector or batch of vectors.\n        distance_metric (str): The type of distance to compute\n            ('cosine', 'euclidean', 'euclidean_l2', or 'angular').\n\n    Returns:\n        np.float64 or np.ndarray: The calculated distance(s).\n    \"\"\"\n    # Convert inputs to numpy arrays if necessary\n    alpha_embedding = np.asarray(alpha_embedding)\n    beta_embedding = np.asarray(beta_embedding)\n\n    # Ensure that both embeddings are either 1D or 2D\n    if alpha_embedding.ndim != beta_embedding.ndim or alpha_embedding.ndim not in (1, 2):\n        raise ValueError(\n            f\"Both embeddings must be either 1D or 2D, but received \"\n            f\"alpha shape: {alpha_embedding.shape}, beta shape: {beta_embedding.shape}\"\n        )\n\n    if distance_metric == \"cosine\":\n        distance = find_cosine_distance(alpha_embedding, beta_embedding)\n    elif distance_metric == \"angular\":\n        distance = find_angular_distance(alpha_embedding, beta_embedding)\n    elif distance_metric == \"euclidean\":\n        distance = find_euclidean_distance(alpha_embedding, beta_embedding)\n    elif distance_metric == \"euclidean_l2\":\n        axis = None if alpha_embedding.ndim == 1 else 1\n        normalized_alpha = l2_normalize(alpha_embedding, axis=axis)\n        normalized_beta = l2_normalize(beta_embedding, axis=axis)\n        distance = find_euclidean_distance(normalized_alpha, normalized_beta)\n    else:\n        raise ValueError(\"Invalid distance_metric passed - \", distance_metric)\n    return np.round(distance, 6)\n\n\ndef find_threshold(model_name: str, distance_metric: str) -> float:\n    \"\"\"\n    Retrieve pre-tuned threshold values for a model and distance metric pair\n    Args:\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        distance_metric (str): distance metric name. Options are cosine, euclidean\n            euclidean_l2 and angular.\n    Returns:\n        threshold (float): threshold value for that model name and distance metric\n            pair. Distances less than this threshold will be classified same person.\n    \"\"\"\n    if thresholds.get(model_name) is None:\n        raise ValueError(f\"Model {model_name} is not supported. \")\n\n    threshold = thresholds.get(model_name, {}).get(distance_metric)\n\n    if threshold is None:\n        raise ValueError(\n            f\"Distance metric {distance_metric} is not available for model {model_name}. \"\n        )\n\n    return threshold\n\n\ndef __sigmoid(z: float) -> float:\n    \"\"\"\n    Compute a numerically stable sigmoid-based confidence score.\n\n    This implementation avoids floating-point overflow errors that can occur\n    when computing the standard sigmoid function (1 / (1 + exp(-z))) for very\n    large positive or negative values of `z`. The computation is split based on\n    the sign of `z` to ensure numerical stability while preserving mathematical\n    equivalence.\n\n    Args:\n        z (float): Input value.\n\n    Returns:\n        float: Sigmoid output scaled to the range [0, 1].\n    \"\"\"\n    if z >= 0:\n        return 1 / (1 + math.exp(-z))\n    else:\n        ez = math.exp(z)\n        return 1 * ez / (1 + ez)\n\n\ndef find_confidence(\n    distance: float, model_name: str, distance_metric: str, verified: bool\n) -> float:\n    \"\"\"\n    Using pre-built logistic regression model, find confidence value from distance.\n        The confidence score provides a probalistic estimate, indicating how likely\n        the classification is correct, thus giving softer, more informative measure of\n        certainty than a simple binary classification.\n\n        Configuration values are calculated in experiments/distance-to-confidence.ipynb\n    Args:\n        model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,\n            OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).\n        distance_metric (str): distance metric name. Options are cosine, euclidean\n            euclidean_l2 and angular.\n        verified (bool): True if the images are classified as same person,\n            False if different persons.\n    Returns:\n        confidence (float): confidence value being same person for that model name\n            and distance metric pair. Same person classifications confidence should be\n            distributed between 51-100% and different person classifications confidence\n            should be distributed between 0-49%. The higher the confidence, the more\n            certain the model is about the classification.\n    \"\"\"\n    if distance <= 0:\n        return 100.0 if verified else 0.0\n\n    if confidences.get(model_name) is None:\n        return 51 if verified else 49\n\n    config = confidences[model_name].get(distance_metric)\n\n    if config is None:\n        return 51 if verified else 49\n\n    w = config[\"w\"]\n    b = config[\"b\"]\n\n    normalizer = config[\"normalizer\"]\n\n    denorm_max_true = config[\"denorm_max_true\"]\n    denorm_min_true = config[\"denorm_min_true\"]\n    denorm_max_false = config[\"denorm_max_false\"]\n    denorm_min_false = config[\"denorm_min_false\"]\n\n    if normalizer > 1:\n        distance = distance / normalizer\n\n    z = w * distance + b\n    confidence = 100 * __sigmoid(z)\n\n    # re-distribute the confidence between 0-49 for different persons, 51-100 for same persons\n    if verified:\n        min_original = denorm_min_true\n        max_original = denorm_max_true\n        min_target = max(51, min_original)\n        max_target = 100\n    else:\n        min_original = denorm_min_false\n        max_original = denorm_max_false\n        min_target = 0\n        max_target = min(49, int(max_original))\n\n    confidence_distributed = ((confidence - min_original) / (max_original - min_original)) * (\n        max_target - min_target\n    ) + min_target\n\n    # ensure confidence is within 51-100 for same persons and 0-49 for different persons\n    if verified and confidence_distributed < 51:\n        confidence_distributed = 51\n    elif not verified and confidence_distributed > 49:\n        confidence_distributed = 49\n\n    # ensure confidence is within 0-100\n    if confidence_distributed < 0:\n        confidence_distributed = 0\n    elif confidence_distributed > 100:\n        confidence_distributed = 100\n\n    return round(confidence_distributed, 2)\n"
  },
  {
    "path": "docker/docker-compose.yml",
    "content": "services:\n  postgres:\n    image: postgres:15\n    container_name: postgres\n    restart: unless-stopped\n    environment:\n      POSTGRES_DB: deepface\n      POSTGRES_USER: deepface_user\n      POSTGRES_PASSWORD: deepface_pass\n    # network_mode: \"host\"\n    ports:\n      - \"5433:5432\"\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n      - ./postgres-init:/docker-entrypoint-initdb.d\n  pgvector:\n    image: pgvector/pgvector:pg15\n    container_name: postgres\n    restart: unless-stopped\n    environment:\n      POSTGRES_DB: deepface\n      POSTGRES_USER: deepface_user\n      POSTGRES_PASSWORD: deepface_pass\n    ports:\n      - \"5434:5432\"\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n      - ./pgvector-init:/docker-entrypoint-initdb.d\n  weaviate:\n    image: semitechnologies/weaviate:latest\n    ports:\n      - \"8080:8080\"  # REST API / GraphQL Playground\n    environment:\n      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: \"true\"\n      DEFAULT_VECTORIZER_MODULE: \"none\"\n      ENABLE_MODULES: \"\"\n      PERSISTENCE_DATA_PATH: \"./data\"\n    volumes:\n      - ./weaviate_data:/var/lib/weaviate\n\nvolumes:\n  postgres_data:\n"
  },
  {
    "path": "docker/integration.sh",
    "content": "docker-compose up\n\n# docker exec -it postgres psql -U deepface_user -d deepface\n# \\dt"
  },
  {
    "path": "docker/pgvector-init/01_pgvector.sql",
    "content": "CREATE EXTENSION IF NOT EXISTS vector;"
  },
  {
    "path": "docker/postgres-init/001_create_table.sql",
    "content": "DROP TABLE IF EXISTS embeddings;\n\nCREATE TABLE IF NOT EXISTS embeddings (\n    id SERIAL PRIMARY KEY,\n    img_name TEXT NOT NULL,\n    face BYTEA NOT NULL,\n    face_shape INT[] NOT NULL,\n    model_name TEXT NOT NULL,\n    detector_backend TEXT NOT NULL,\n    aligned BOOLEAN DEFAULT true,\n    l2_normalized BOOLEAN  DEFAULT false,\n    embedding FLOAT8[] NOT NULL,\n    created_at TIMESTAMPTZ DEFAULT now(),\n\n    face_hash TEXT NOT NULL,\n    embedding_hash TEXT NOT NULL,\n\n    UNIQUE (face_hash, embedding_hash)\n);\n\nCREATE TABLE IF NOT EXISTS embeddings_index (\n    id SERIAL PRIMARY KEY,\n    model_name TEXT,\n    detector_backend TEXT,\n    align BOOL,\n    l2_normalized BOOL,\n    index_data BYTEA,\n    created_at TIMESTAMPTZ DEFAULT now(),\n    updated_at TIMESTAMPTZ DEFAULT now(),\n\n    UNIQUE (model_name, detector_backend, align, l2_normalized)\n);"
  },
  {
    "path": "entrypoint.sh",
    "content": "# Example content\necho \"Starting the application...\"\nexec \"$@\"\n\ngunicorn --workers=1 --timeout=7200 --bind=0.0.0.0:5000 --log-level=debug --access-logformat='%(h)s - - [%(t)s] \"%(r)s\" %(s)s %(b)s %(L)s' --access-logfile=- \"app:create_app()\"\n"
  },
  {
    "path": "experiments/distance-to-confidence.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Distance to Confidence\\n\",\n    \"\\n\",\n    \"DeepFace performs a hard classification by clearly separating same person and different persons based on the pre-tuned threshold.\\n\",\n    \"\\n\",\n    \"This notebook builds a logistic regression model to convert calculated distances to probalistic estimate, indicating how likely the classification is correct, thus giving a softer, more informative measure of certainy.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 30,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# built-in dependencies\\n\",\n    \"import itertools\\n\",\n    \"import math\\n\",\n    \"\\n\",\n    \"# 3rd party dependencies\\n\",\n    \"import pandas as pd\\n\",\n    \"from deepface import DeepFace\\n\",\n    \"from deepface.modules.verification import find_distance, find_threshold\\n\",\n    \"from tqdm import tqdm\\n\",\n    \"from sklearn.linear_model import LogisticRegression\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"detector_backend = \\\"mtcnn\\\" # a robust one\\n\",\n    \"\\n\",\n    \"model_names = [\\n\",\n    \"    \\\"VGG-Face\\\", \\\"Facenet\\\", \\\"Facenet512\\\", \\\"ArcFace\\\", \\\"GhostFaceNet\\\",\\n\",\n    \"    \\\"Dlib\\\", \\\"SFace\\\", \\\"OpenFace\\\", \\\"DeepFace\\\", \\\"DeepID\\\", \\\"Buffalo_L\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"distance_metrics = [\\n\",\n    \"    \\\"cosine\\\", \\\"euclidean\\\", \\\"euclidean_l2\\\", \\\"angular\\\",\\n\",\n    \"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Configurations\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pd.set_option('display.max_rows', None)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"model_name = model_names[1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Running an experiment for Facenet & mtcnn...\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(f\\\"Running an experiment for {model_name} & {detector_backend}...\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# build models in advance\\n\",\n    \"model = DeepFace.build_model(model_name)\\n\",\n    \"detector = DeepFace.build_model(task=\\\"face_detector\\\", model_name=detector_backend)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Prepare Dataset\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"idendities = {\\n\",\n    \" \\\"Angelina\\\": [\\\"img1.jpg\\\", \\\"img2.jpg\\\", \\\"img4.jpg\\\"\\n\",\n    \"    , \\\"img5.jpg\\\", \\\"img6.jpg\\\", \\\"img7.jpg\\\", \\\"img10.jpg\\\", \\\"img11.jpg\\\"],\\n\",\n    \" \\\"Scarlett\\\": [\\\"img8.jpg\\\", \\\"img9.jpg\\\"],\\n\",\n    \" \\\"Jennifer\\\": [\\\"img3.jpg\\\", \\\"img12.jpg\\\"],\\n\",\n    \" \\\"Mark\\\": [\\\"img13.jpg\\\", \\\"img14.jpg\\\", \\\"img15.jpg\\\"],\\n\",\n    \" \\\"Jack\\\": [\\\"img16.jpg\\\", \\\"img17.jpg\\\"],\\n\",\n    \" \\\"Elon\\\": [\\\"img18.jpg\\\", \\\"img19.jpg\\\"],\\n\",\n    \" \\\"Jeff\\\": [\\\"img20.jpg\\\", \\\"img21.jpg\\\"],\\n\",\n    \" \\\"Marissa\\\": [\\\"img22.jpg\\\", \\\"img23.jpg\\\"],\\n\",\n    \" \\\"Sundar\\\": [\\\"img24.jpg\\\", \\\"img25.jpg\\\"]\\n\",\n    \"}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"positives = []\\n\",\n    \"for key, values in idendities.items():\\n\",\n    \" for i in range(0, len(values)-1):\\n\",\n    \"  for j in range(i+1, len(values)):\\n\",\n    \"   positive = []\\n\",\n    \"   positive.append(values[i])\\n\",\n    \"   positive.append(values[j])\\n\",\n    \"   positives.append(positive)\\n\",\n    \" \\n\",\n    \"positives = pd.DataFrame(positives, columns = [\\\"file_x\\\", \\\"file_y\\\"])\\n\",\n    \"positives[\\\"actual\\\"] = \\\"Same Person\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"samples_list = list(idendities.values())\\n\",\n    \" \\n\",\n    \"negatives = []\\n\",\n    \"for i in range(0, len(idendities) - 1):\\n\",\n    \" for j in range(i+1, len(idendities)):\\n\",\n    \"  cross_product = itertools.product(samples_list[i], samples_list[j])\\n\",\n    \"  cross_product = list(cross_product)\\n\",\n    \" \\n\",\n    \"  for cross_sample in cross_product:\\n\",\n    \"   negative = []\\n\",\n    \"   negative.append(cross_sample[0])\\n\",\n    \"   negative.append(cross_sample[1])\\n\",\n    \"   negatives.append(negative)\\n\",\n    \" \\n\",\n    \"negatives = pd.DataFrame(negatives, columns = [\\\"file_x\\\", \\\"file_y\\\"])\\n\",\n    \"negatives[\\\"actual\\\"] = \\\"Different Persons\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"df = pd.concat([positives, negatives]).reset_index(drop = True)\\n\",\n    \" \\n\",\n    \"df.file_x = \\\"../tests/dataset/\\\"+df.file_x\\n\",\n    \"df.file_y = \\\"../tests/dataset/\\\"+df.file_y\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img7.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"             file_x            file_y       actual\\n\",\n       \"0  dataset/img1.jpg  dataset/img2.jpg  Same Person\\n\",\n       \"1  dataset/img1.jpg  dataset/img4.jpg  Same Person\\n\",\n       \"2  dataset/img1.jpg  dataset/img5.jpg  Same Person\\n\",\n       \"3  dataset/img1.jpg  dataset/img6.jpg  Same Person\\n\",\n       \"4  dataset/img1.jpg  dataset/img7.jpg  Same Person\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(300, 3)\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df.shape\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Generate Embeddings\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"pivot = {}\\n\",\n    \"def represent(img_name: str):\\n\",\n    \"    if pivot.get(img_name) is None:\\n\",\n    \"        embedding_objs = DeepFace.represent(img_path=img_name, model_name=model_name, detector_backend=detector_backend)\\n\",\n    \"\\n\",\n    \"        if len(embedding_objs) > 1:\\n\",\n    \"            raise ValueError(f\\\"{img_name} has more than one face!\\\")\\n\",\n    \"            \\n\",\n    \"        pivot[img_name] = [embedding_obj[\\\"embedding\\\"] for embedding_obj in embedding_objs]\\n\",\n    \"    return pivot[img_name]\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 300/300 [00:57<00:00,  5.24it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"img1_embeddings = []\\n\",\n    \"img2_embeddings = []\\n\",\n    \"for index, instance in tqdm(df.iterrows(), total=df.shape[0]):\\n\",\n    \"    img1_embeddings = img1_embeddings + represent(instance[\\\"file_x\\\"])\\n\",\n    \"    img2_embeddings = img2_embeddings + represent(instance[\\\"file_y\\\"])\\n\",\n    \"\\n\",\n    \"df[\\\"img1_embeddings\\\"] = img1_embeddings\\n\",\n    \"df[\\\"img2_embeddings\\\"] = img2_embeddings\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"      <th>img1_embeddings</th>\\n\",\n       \"      <th>img2_embeddings</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[0.2710142731666565, 0.6065636873245239, 0.926...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.08416734635829926, 0.17612755298614502, 1....</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-1.072468876838684, 0.48678186535835266, 1.18...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.1698027402162552, 1.0826836824417114, 1.52...</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img7.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.4807380735874176, 1.4791054725646973, 1.52...</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"             file_x            file_y       actual  \\\\\\n\",\n       \"0  dataset/img1.jpg  dataset/img2.jpg  Same Person   \\n\",\n       \"1  dataset/img1.jpg  dataset/img4.jpg  Same Person   \\n\",\n       \"2  dataset/img1.jpg  dataset/img5.jpg  Same Person   \\n\",\n       \"3  dataset/img1.jpg  dataset/img6.jpg  Same Person   \\n\",\n       \"4  dataset/img1.jpg  dataset/img7.jpg  Same Person   \\n\",\n       \"\\n\",\n       \"                                     img1_embeddings  \\\\\\n\",\n       \"0  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"1  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"2  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"3  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"4  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"\\n\",\n       \"                                     img2_embeddings  \\n\",\n       \"0  [0.2710142731666565, 0.6065636873245239, 0.926...  \\n\",\n       \"1  [-0.08416734635829926, 0.17612755298614502, 1....  \\n\",\n       \"2  [-1.072468876838684, 0.48678186535835266, 1.18...  \\n\",\n       \"3  [-0.1698027402162552, 1.0826836824417114, 1.52...  \\n\",\n       \"4  [-0.4807380735874176, 1.4791054725646973, 1.52...  \"\n      ]\n     },\n     \"execution_count\": 17,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Distance Calculation From Embeddings\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"100%|██████████| 300/300 [00:00<00:00, 4605.25it/s]\\n\",\n      \"100%|██████████| 300/300 [00:00<00:00, 13119.64it/s]\\n\",\n      \"100%|██████████| 300/300 [00:00<00:00, 9297.74it/s]\\n\",\n      \"100%|██████████| 300/300 [00:00<00:00, 12523.55it/s]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    distances = []\\n\",\n    \"    for index, instance in tqdm(df.iterrows(), total=df.shape[0]):\\n\",\n    \"        img1_embeddings = instance[\\\"img1_embeddings\\\"]\\n\",\n    \"        img2_embeddings = instance[\\\"img2_embeddings\\\"]\\n\",\n    \"\\n\",\n    \"        distance = find_distance(\\n\",\n    \"            alpha_embedding=img1_embeddings,\\n\",\n    \"            beta_embedding=img2_embeddings,\\n\",\n    \"            distance_metric=distance_metric\\n\",\n    \"        )\\n\",\n    \"        distances.append(distance)\\n\",\n    \"    \\n\",\n    \"    df[distance_metric] = distances\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"      <th>img1_embeddings</th>\\n\",\n       \"      <th>img2_embeddings</th>\\n\",\n       \"      <th>cosine</th>\\n\",\n       \"      <th>euclidean</th>\\n\",\n       \"      <th>euclidean_l2</th>\\n\",\n       \"      <th>angular</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[0.2710142731666565, 0.6065636873245239, 0.926...</td>\\n\",\n       \"      <td>0.220304</td>\\n\",\n       \"      <td>7.776061</td>\\n\",\n       \"      <td>0.663783</td>\\n\",\n       \"      <td>0.215374</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.08416734635829926, 0.17612755298614502, 1....</td>\\n\",\n       \"      <td>0.249256</td>\\n\",\n       \"      <td>8.289897</td>\\n\",\n       \"      <td>0.706053</td>\\n\",\n       \"      <td>0.229695</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-1.072468876838684, 0.48678186535835266, 1.18...</td>\\n\",\n       \"      <td>0.291291</td>\\n\",\n       \"      <td>8.865397</td>\\n\",\n       \"      <td>0.763271</td>\\n\",\n       \"      <td>0.249278</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.1698027402162552, 1.0826836824417114, 1.52...</td>\\n\",\n       \"      <td>0.219916</td>\\n\",\n       \"      <td>7.852590</td>\\n\",\n       \"      <td>0.663198</td>\\n\",\n       \"      <td>0.215176</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img7.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.4807380735874176, 1.4791054725646973, 1.52...</td>\\n\",\n       \"      <td>0.184313</td>\\n\",\n       \"      <td>7.179951</td>\\n\",\n       \"      <td>0.607146</td>\\n\",\n       \"      <td>0.196359</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"             file_x            file_y       actual  \\\\\\n\",\n       \"0  dataset/img1.jpg  dataset/img2.jpg  Same Person   \\n\",\n       \"1  dataset/img1.jpg  dataset/img4.jpg  Same Person   \\n\",\n       \"2  dataset/img1.jpg  dataset/img5.jpg  Same Person   \\n\",\n       \"3  dataset/img1.jpg  dataset/img6.jpg  Same Person   \\n\",\n       \"4  dataset/img1.jpg  dataset/img7.jpg  Same Person   \\n\",\n       \"\\n\",\n       \"                                     img1_embeddings  \\\\\\n\",\n       \"0  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"1  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"2  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"3  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"4  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"\\n\",\n       \"                                     img2_embeddings    cosine  euclidean  \\\\\\n\",\n       \"0  [0.2710142731666565, 0.6065636873245239, 0.926...  0.220304   7.776061   \\n\",\n       \"1  [-0.08416734635829926, 0.17612755298614502, 1....  0.249256   8.289897   \\n\",\n       \"2  [-1.072468876838684, 0.48678186535835266, 1.18...  0.291291   8.865397   \\n\",\n       \"3  [-0.1698027402162552, 1.0826836824417114, 1.52...  0.219916   7.852590   \\n\",\n       \"4  [-0.4807380735874176, 1.4791054725646973, 1.52...  0.184313   7.179951   \\n\",\n       \"\\n\",\n       \"   euclidean_l2   angular  \\n\",\n       \"0      0.663783  0.215374  \\n\",\n       \"1      0.706053  0.229695  \\n\",\n       \"2      0.763271  0.249278  \\n\",\n       \"3      0.663198  0.215176  \\n\",\n       \"4      0.607146  0.196359  \"\n      ]\n     },\n     \"execution_count\": 19,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"df_backup = df.copy()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Distance To Classification\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"df = df_backup.copy()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    threshold = find_threshold(model_name=model_name, distance_metric=distance_metric)\\n\",\n    \"    df[f\\\"{distance_metric}_threshold\\\"] = threshold\\n\",\n    \"    df[f\\\"{distance_metric}_decision\\\"] = 0\\n\",\n    \"    idx = df[df[distance_metric] <= threshold].index\\n\",\n    \"    df.loc[idx, f\\\"{distance_metric}_decision\\\"] = 1\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 23,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"      <th>img1_embeddings</th>\\n\",\n       \"      <th>img2_embeddings</th>\\n\",\n       \"      <th>cosine</th>\\n\",\n       \"      <th>euclidean</th>\\n\",\n       \"      <th>euclidean_l2</th>\\n\",\n       \"      <th>angular</th>\\n\",\n       \"      <th>cosine_threshold</th>\\n\",\n       \"      <th>cosine_decision</th>\\n\",\n       \"      <th>euclidean_threshold</th>\\n\",\n       \"      <th>euclidean_decision</th>\\n\",\n       \"      <th>euclidean_l2_threshold</th>\\n\",\n       \"      <th>euclidean_l2_decision</th>\\n\",\n       \"      <th>angular_threshold</th>\\n\",\n       \"      <th>angular_decision</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[0.2710142731666565, 0.6065636873245239, 0.926...</td>\\n\",\n       \"      <td>0.220304</td>\\n\",\n       \"      <td>7.776061</td>\\n\",\n       \"      <td>0.663783</td>\\n\",\n       \"      <td>0.215374</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.8</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.33</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.08416734635829926, 0.17612755298614502, 1....</td>\\n\",\n       \"      <td>0.249256</td>\\n\",\n       \"      <td>8.289897</td>\\n\",\n       \"      <td>0.706053</td>\\n\",\n       \"      <td>0.229695</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.8</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.33</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-1.072468876838684, 0.48678186535835266, 1.18...</td>\\n\",\n       \"      <td>0.291291</td>\\n\",\n       \"      <td>8.865397</td>\\n\",\n       \"      <td>0.763271</td>\\n\",\n       \"      <td>0.249278</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.8</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.33</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.1698027402162552, 1.0826836824417114, 1.52...</td>\\n\",\n       \"      <td>0.219916</td>\\n\",\n       \"      <td>7.852590</td>\\n\",\n       \"      <td>0.663198</td>\\n\",\n       \"      <td>0.215176</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.8</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.33</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img7.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>[0.64044189453125, 0.6990252733230591, 2.09229...</td>\\n\",\n       \"      <td>[-0.4807380735874176, 1.4791054725646973, 1.52...</td>\\n\",\n       \"      <td>0.184313</td>\\n\",\n       \"      <td>7.179951</td>\\n\",\n       \"      <td>0.607146</td>\\n\",\n       \"      <td>0.196359</td>\\n\",\n       \"      <td>0.4</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>10</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.8</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"      <td>0.33</td>\\n\",\n       \"      <td>1</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"             file_x            file_y       actual  \\\\\\n\",\n       \"0  dataset/img1.jpg  dataset/img2.jpg  Same Person   \\n\",\n       \"1  dataset/img1.jpg  dataset/img4.jpg  Same Person   \\n\",\n       \"2  dataset/img1.jpg  dataset/img5.jpg  Same Person   \\n\",\n       \"3  dataset/img1.jpg  dataset/img6.jpg  Same Person   \\n\",\n       \"4  dataset/img1.jpg  dataset/img7.jpg  Same Person   \\n\",\n       \"\\n\",\n       \"                                     img1_embeddings  \\\\\\n\",\n       \"0  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"1  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"2  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"3  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"4  [0.64044189453125, 0.6990252733230591, 2.09229...   \\n\",\n       \"\\n\",\n       \"                                     img2_embeddings    cosine  euclidean  \\\\\\n\",\n       \"0  [0.2710142731666565, 0.6065636873245239, 0.926...  0.220304   7.776061   \\n\",\n       \"1  [-0.08416734635829926, 0.17612755298614502, 1....  0.249256   8.289897   \\n\",\n       \"2  [-1.072468876838684, 0.48678186535835266, 1.18...  0.291291   8.865397   \\n\",\n       \"3  [-0.1698027402162552, 1.0826836824417114, 1.52...  0.219916   7.852590   \\n\",\n       \"4  [-0.4807380735874176, 1.4791054725646973, 1.52...  0.184313   7.179951   \\n\",\n       \"\\n\",\n       \"   euclidean_l2   angular  cosine_threshold  cosine_decision  \\\\\\n\",\n       \"0      0.663783  0.215374               0.4                1   \\n\",\n       \"1      0.706053  0.229695               0.4                1   \\n\",\n       \"2      0.763271  0.249278               0.4                1   \\n\",\n       \"3      0.663198  0.215176               0.4                1   \\n\",\n       \"4      0.607146  0.196359               0.4                1   \\n\",\n       \"\\n\",\n       \"   euclidean_threshold  euclidean_decision  euclidean_l2_threshold  \\\\\\n\",\n       \"0                   10                   1                     0.8   \\n\",\n       \"1                   10                   1                     0.8   \\n\",\n       \"2                   10                   1                     0.8   \\n\",\n       \"3                   10                   1                     0.8   \\n\",\n       \"4                   10                   1                     0.8   \\n\",\n       \"\\n\",\n       \"   euclidean_l2_decision  angular_threshold  angular_decision  \\n\",\n       \"0                      1               0.33                 1  \\n\",\n       \"1                      1               0.33                 1  \\n\",\n       \"2                      1               0.33                 1  \\n\",\n       \"3                      1               0.33                 1  \\n\",\n       \"4                      1               0.33                 1  \"\n      ]\n     },\n     \"execution_count\": 23,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df.head()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Confidence Score Calculation\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 24,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"confidence_metrics = {}\\n\",\n    \"\\n\",\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    max_value = df[distance_metric].max()\\n\",\n    \"\\n\",\n    \"    X = df[distance_metric].values.reshape(-1, 1)\\n\",\n    \"\\n\",\n    \"    # normalize the distance values before feeding them to the model\\n\",\n    \"    if max_value > 1:\\n\",\n    \"        X = X / max_value\\n\",\n    \"\\n\",\n    \"    y = df[f\\\"{distance_metric}_decision\\\"].values\\n\",\n    \"\\n\",\n    \"    model = LogisticRegression().fit(X, y)\\n\",\n    \"\\n\",\n    \"    w = model.coef_[0][0]\\n\",\n    \"    b = model.intercept_[0]\\n\",\n    \"\\n\",\n    \"    confidence_metrics[distance_metric] = {\\n\",\n    \"        \\\"w\\\": w,\\n\",\n    \"        \\\"b\\\": b,\\n\",\n    \"        \\\"normalizer\\\": max_value,\\n\",\n    \"    }\\n\",\n    \"\\n\",\n    \"    confidences =[]\\n\",\n    \"    for index, instance in df.iterrows():\\n\",\n    \"        distance = instance[distance_metric]\\n\",\n    \"\\n\",\n    \"        if max_value > 1:\\n\",\n    \"            distance = distance / max_value\\n\",\n    \"\\n\",\n    \"        z = w * distance + b\\n\",\n    \"        confidence = 100 / (1 + math.exp(-z))\\n\",\n    \"\\n\",\n    \"        confidences.append(confidence)\\n\",\n    \"    \\n\",\n    \"    df[distance_metric + \\\"_confidence\\\"] = confidences\\n\",\n    \"\\n\",\n    \"    confidence_metrics[distance_metric][\\\"denorm_max_true\\\"] = df[df[f\\\"{distance_metric}_decision\\\"] == 1][distance_metric + \\\"_confidence\\\"].max()\\n\",\n    \"    confidence_metrics[distance_metric][\\\"denorm_min_true\\\"] = df[df[f\\\"{distance_metric}_decision\\\"] == 1][distance_metric + \\\"_confidence\\\"].min()\\n\",\n    \"\\n\",\n    \"    confidence_metrics[distance_metric][\\\"denorm_max_false\\\"] = df[df[f\\\"{distance_metric}_decision\\\"] == 0][distance_metric + \\\"_confidence\\\"].max()\\n\",\n    \"    confidence_metrics[distance_metric][\\\"denorm_min_false\\\"] = df[df[f\\\"{distance_metric}_decision\\\"] == 0][distance_metric + \\\"_confidence\\\"].min()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'cosine': {'w': -6.502269165856082,\\n\",\n       \"  'b': 1.679048923097668,\\n\",\n       \"  'normalizer': 1.206694,\\n\",\n       \"  'denorm_max_true': 77.17253153662926,\\n\",\n       \"  'denorm_min_true': 41.790002608273234,\\n\",\n       \"  'denorm_max_false': 20.618350202170916,\\n\",\n       \"  'denorm_min_false': 0.7976712344840693},\\n\",\n       \" 'euclidean': {'w': -6.716177467853723,\\n\",\n       \"  'b': 2.790978346203265,\\n\",\n       \"  'normalizer': 18.735288,\\n\",\n       \"  'denorm_max_true': 74.76412617567517,\\n\",\n       \"  'denorm_min_true': 40.4423755909089,\\n\",\n       \"  'denorm_max_false': 25.840858374979504,\\n\",\n       \"  'denorm_min_false': 1.9356150486888306},\\n\",\n       \" 'euclidean_l2': {'w': -6.708710331202137,\\n\",\n       \"  'b': 2.9094193067398195,\\n\",\n       \"  'normalizer': 1.553508,\\n\",\n       \"  'denorm_max_true': 75.45756719896039,\\n\",\n       \"  'denorm_min_true': 40.4509428022908,\\n\",\n       \"  'denorm_max_false': 30.555931000001184,\\n\",\n       \"  'denorm_min_false': 2.189644991619842},\\n\",\n       \" 'angular': {'w': -6.371147050396505,\\n\",\n       \"  'b': 0.6766460615182355,\\n\",\n       \"  'normalizer': 0.56627,\\n\",\n       \"  'denorm_max_true': 45.802357900723386,\\n\",\n       \"  'denorm_min_true': 24.327312950719133,\\n\",\n       \"  'denorm_max_false': 16.95267765757785,\\n\",\n       \"  'denorm_min_false': 5.063533287198758}}\"\n      ]\n     },\n     \"execution_count\": 25,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"confidence_metrics\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 26,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# denormalize confidence scores\\n\",\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    for index, instance in df.iterrows():\\n\",\n    \"        current_distance = instance[distance_metric]\\n\",\n    \"        threshold = find_threshold(model_name=model_name, distance_metric=distance_metric)\\n\",\n    \"\\n\",\n    \"        prediction = \\\"same person\\\" if current_distance <= threshold else \\\"different persons\\\"\\n\",\n    \"\\n\",\n    \"        # denormalize same person predictions\\n\",\n    \"        if prediction == \\\"same person\\\":\\n\",\n    \"            min_orginal = confidence_metrics[distance_metric][\\\"denorm_min_true\\\"]\\n\",\n    \"            max_orginal = confidence_metrics[distance_metric][\\\"denorm_max_true\\\"]\\n\",\n    \"            min_target = max(51, min_orginal)\\n\",\n    \"            max_target = 100\\n\",\n    \"        else:\\n\",\n    \"            min_orginal = confidence_metrics[distance_metric][\\\"denorm_min_false\\\"]\\n\",\n    \"            max_orginal = confidence_metrics[distance_metric][\\\"denorm_max_false\\\"]\\n\",\n    \"            min_target = 0\\n\",\n    \"            max_target = min(49, max_orginal)\\n\",\n    \"\\n\",\n    \"        confidence = instance[f\\\"{distance_metric}_confidence\\\"]\\n\",\n    \"\\n\",\n    \"        confidence_new = (\\n\",\n    \"            (confidence - min_orginal) / (max_orginal - min_orginal)\\n\",\n    \"        ) * (max_target - min_target) + min_target\\n\",\n    \"        \\n\",\n    \"        confidence_new = float(confidence_new)\\n\",\n    \"\\n\",\n    \"        # print(f\\\"{prediction}: {confidence}  -> {confidence_new}\\\")\\n\",\n    \"\\n\",\n    \"        df.loc[index, f\\\"{distance_metric}_confidence\\\"] = confidence_new\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Results\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"      <th>cosine</th>\\n\",\n       \"      <th>euclidean</th>\\n\",\n       \"      <th>euclidean_l2</th>\\n\",\n       \"      <th>angular</th>\\n\",\n       \"      <th>cosine_confidence</th>\\n\",\n       \"      <th>euclidean_confidence</th>\\n\",\n       \"      <th>euclidean_l2_confidence</th>\\n\",\n       \"      <th>angular_confidence</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>0</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.220304</td>\\n\",\n       \"      <td>7.776061</td>\\n\",\n       \"      <td>0.663783</td>\\n\",\n       \"      <td>0.215374</td>\\n\",\n       \"      <td>79.066154</td>\\n\",\n       \"      <td>64.767739</td>\\n\",\n       \"      <td>65.867875</td>\\n\",\n       \"      <td>71.428257</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>1</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.249256</td>\\n\",\n       \"      <td>8.289897</td>\\n\",\n       \"      <td>0.706053</td>\\n\",\n       \"      <td>0.229695</td>\\n\",\n       \"      <td>73.892125</td>\\n\",\n       \"      <td>58.210897</td>\\n\",\n       \"      <td>59.488339</td>\\n\",\n       \"      <td>66.878140</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>2</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.291291</td>\\n\",\n       \"      <td>8.865397</td>\\n\",\n       \"      <td>0.763271</td>\\n\",\n       \"      <td>0.249278</td>\\n\",\n       \"      <td>66.154520</td>\\n\",\n       \"      <td>51.000000</td>\\n\",\n       \"      <td>51.000000</td>\\n\",\n       \"      <td>60.905288</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>3</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.219916</td>\\n\",\n       \"      <td>7.852590</td>\\n\",\n       \"      <td>0.663198</td>\\n\",\n       \"      <td>0.215176</td>\\n\",\n       \"      <td>79.134312</td>\\n\",\n       \"      <td>63.788618</td>\\n\",\n       \"      <td>65.956234</td>\\n\",\n       \"      <td>71.492183</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>4</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img7.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.184313</td>\\n\",\n       \"      <td>7.179951</td>\\n\",\n       \"      <td>0.607146</td>\\n\",\n       \"      <td>0.196359</td>\\n\",\n       \"      <td>85.226842</td>\\n\",\n       \"      <td>72.364455</td>\\n\",\n       \"      <td>74.358148</td>\\n\",\n       \"      <td>77.685211</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>5</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img10.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.243940</td>\\n\",\n       \"      <td>8.278702</td>\\n\",\n       \"      <td>0.698483</td>\\n\",\n       \"      <td>0.227122</td>\\n\",\n       \"      <td>74.854050</td>\\n\",\n       \"      <td>58.352994</td>\\n\",\n       \"      <td>60.627930</td>\\n\",\n       \"      <td>67.684707</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>6</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img11.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.236210</td>\\n\",\n       \"      <td>8.214206</td>\\n\",\n       \"      <td>0.687329</td>\\n\",\n       \"      <td>0.223337</td>\\n\",\n       \"      <td>76.243849</td>\\n\",\n       \"      <td>59.172585</td>\\n\",\n       \"      <td>62.310511</td>\\n\",\n       \"      <td>68.880036</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>7</th>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.180357</td>\\n\",\n       \"      <td>6.822683</td>\\n\",\n       \"      <td>0.600594</td>\\n\",\n       \"      <td>0.194172</td>\\n\",\n       \"      <td>85.882118</td>\\n\",\n       \"      <td>76.844969</td>\\n\",\n       \"      <td>75.326061</td>\\n\",\n       \"      <td>78.419335</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>8</th>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.175950</td>\\n\",\n       \"      <td>6.651977</td>\\n\",\n       \"      <td>0.593211</td>\\n\",\n       \"      <td>0.191709</td>\\n\",\n       \"      <td>86.606529</td>\\n\",\n       \"      <td>78.953612</td>\\n\",\n       \"      <td>76.411591</td>\\n\",\n       \"      <td>79.249453</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>9</th>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>Same Person</td>\\n\",\n       \"      <td>0.085547</td>\\n\",\n       \"      <td>4.755967</td>\\n\",\n       \"      <td>0.413635</td>\\n\",\n       \"      <td>0.132621</td>\\n\",\n       \"      <td>100.000000</td>\\n\",\n       \"      <td>100.000000</td>\\n\",\n       \"      <td>100.000000</td>\\n\",\n       \"      <td>100.000000</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"             file_x             file_y       actual    cosine  euclidean  \\\\\\n\",\n       \"0  dataset/img1.jpg   dataset/img2.jpg  Same Person  0.220304   7.776061   \\n\",\n       \"1  dataset/img1.jpg   dataset/img4.jpg  Same Person  0.249256   8.289897   \\n\",\n       \"2  dataset/img1.jpg   dataset/img5.jpg  Same Person  0.291291   8.865397   \\n\",\n       \"3  dataset/img1.jpg   dataset/img6.jpg  Same Person  0.219916   7.852590   \\n\",\n       \"4  dataset/img1.jpg   dataset/img7.jpg  Same Person  0.184313   7.179951   \\n\",\n       \"5  dataset/img1.jpg  dataset/img10.jpg  Same Person  0.243940   8.278702   \\n\",\n       \"6  dataset/img1.jpg  dataset/img11.jpg  Same Person  0.236210   8.214206   \\n\",\n       \"7  dataset/img2.jpg   dataset/img4.jpg  Same Person  0.180357   6.822683   \\n\",\n       \"8  dataset/img2.jpg   dataset/img5.jpg  Same Person  0.175950   6.651977   \\n\",\n       \"9  dataset/img2.jpg   dataset/img6.jpg  Same Person  0.085547   4.755967   \\n\",\n       \"\\n\",\n       \"   euclidean_l2   angular  cosine_confidence  euclidean_confidence  \\\\\\n\",\n       \"0      0.663783  0.215374          79.066154             64.767739   \\n\",\n       \"1      0.706053  0.229695          73.892125             58.210897   \\n\",\n       \"2      0.763271  0.249278          66.154520             51.000000   \\n\",\n       \"3      0.663198  0.215176          79.134312             63.788618   \\n\",\n       \"4      0.607146  0.196359          85.226842             72.364455   \\n\",\n       \"5      0.698483  0.227122          74.854050             58.352994   \\n\",\n       \"6      0.687329  0.223337          76.243849             59.172585   \\n\",\n       \"7      0.600594  0.194172          85.882118             76.844969   \\n\",\n       \"8      0.593211  0.191709          86.606529             78.953612   \\n\",\n       \"9      0.413635  0.132621         100.000000            100.000000   \\n\",\n       \"\\n\",\n       \"   euclidean_l2_confidence  angular_confidence  \\n\",\n       \"0                65.867875           71.428257  \\n\",\n       \"1                59.488339           66.878140  \\n\",\n       \"2                51.000000           60.905288  \\n\",\n       \"3                65.956234           71.492183  \\n\",\n       \"4                74.358148           77.685211  \\n\",\n       \"5                60.627930           67.684707  \\n\",\n       \"6                62.310511           68.880036  \\n\",\n       \"7                75.326061           78.419335  \\n\",\n       \"8                76.411591           79.249453  \\n\",\n       \"9               100.000000          100.000000  \"\n      ]\n     },\n     \"execution_count\": 27,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df[df[\\\"actual\\\"] == \\\"Same Person\\\"][[\\n\",\n    \"    \\\"file_x\\\",\\n\",\n    \"    \\\"file_y\\\",\\n\",\n    \"    \\\"actual\\\",\\n\",\n    \"    \\\"cosine\\\",\\n\",\n    \"    \\\"euclidean\\\",\\n\",\n    \"    \\\"euclidean_l2\\\",\\n\",\n    \"    \\\"angular\\\",\\n\",\n    \"    \\\"cosine_confidence\\\",\\n\",\n    \"    \\\"euclidean_confidence\\\",\\n\",\n    \"    \\\"euclidean_l2_confidence\\\",\\n\",\n    \"    \\\"angular_confidence\\\",\\n\",\n    \"]].head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 28,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>\\n\",\n       \"<style scoped>\\n\",\n       \"    .dataframe tbody tr th:only-of-type {\\n\",\n       \"        vertical-align: middle;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe tbody tr th {\\n\",\n       \"        vertical-align: top;\\n\",\n       \"    }\\n\",\n       \"\\n\",\n       \"    .dataframe thead th {\\n\",\n       \"        text-align: right;\\n\",\n       \"    }\\n\",\n       \"</style>\\n\",\n       \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n       \"  <thead>\\n\",\n       \"    <tr style=\\\"text-align: right;\\\">\\n\",\n       \"      <th></th>\\n\",\n       \"      <th>file_x</th>\\n\",\n       \"      <th>file_y</th>\\n\",\n       \"      <th>actual</th>\\n\",\n       \"      <th>cosine</th>\\n\",\n       \"      <th>euclidean</th>\\n\",\n       \"      <th>euclidean_l2</th>\\n\",\n       \"      <th>angular</th>\\n\",\n       \"      <th>cosine_confidence</th>\\n\",\n       \"      <th>euclidean_confidence</th>\\n\",\n       \"      <th>euclidean_l2_confidence</th>\\n\",\n       \"      <th>angular_confidence</th>\\n\",\n       \"    </tr>\\n\",\n       \"  </thead>\\n\",\n       \"  <tbody>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>38</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img8.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.912684</td>\\n\",\n       \"      <td>15.971380</td>\\n\",\n       \"      <td>1.351062</td>\\n\",\n       \"      <td>0.472171</td>\\n\",\n       \"      <td>3.094661</td>\\n\",\n       \"      <td>3.364286</td>\\n\",\n       \"      <td>3.127406</td>\\n\",\n       \"      <td>5.404447</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>39</th>\\n\",\n       \"      <td>dataset/img1.jpg</td>\\n\",\n       \"      <td>dataset/img9.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.971642</td>\\n\",\n       \"      <td>16.535808</td>\\n\",\n       \"      <td>1.394017</td>\\n\",\n       \"      <td>0.490972</td>\\n\",\n       \"      <td>2.056160</td>\\n\",\n       \"      <td>2.406347</td>\\n\",\n       \"      <td>2.238199</td>\\n\",\n       \"      <td>4.092357</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>40</th>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>dataset/img8.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.718171</td>\\n\",\n       \"      <td>13.744342</td>\\n\",\n       \"      <td>1.198475</td>\\n\",\n       \"      <td>0.409059</td>\\n\",\n       \"      <td>9.632836</td>\\n\",\n       \"      <td>9.327166</td>\\n\",\n       \"      <td>7.763610</td>\\n\",\n       \"      <td>10.860674</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>41</th>\\n\",\n       \"      <td>dataset/img2.jpg</td>\\n\",\n       \"      <td>dataset/img9.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.784581</td>\\n\",\n       \"      <td>14.418712</td>\\n\",\n       \"      <td>1.252662</td>\\n\",\n       \"      <td>0.430888</td>\\n\",\n       \"      <td>6.713687</td>\\n\",\n       \"      <td>7.083039</td>\\n\",\n       \"      <td>5.811885</td>\\n\",\n       \"      <td>8.776472</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>42</th>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>dataset/img8.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.753150</td>\\n\",\n       \"      <td>14.123269</td>\\n\",\n       \"      <td>1.227314</td>\\n\",\n       \"      <td>0.420605</td>\\n\",\n       \"      <td>7.987852</td>\\n\",\n       \"      <td>8.012303</td>\\n\",\n       \"      <td>6.677761</td>\\n\",\n       \"      <td>9.730812</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>43</th>\\n\",\n       \"      <td>dataset/img4.jpg</td>\\n\",\n       \"      <td>dataset/img9.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.829773</td>\\n\",\n       \"      <td>14.878502</td>\\n\",\n       \"      <td>1.288234</td>\\n\",\n       \"      <td>0.445550</td>\\n\",\n       \"      <td>5.177442</td>\\n\",\n       \"      <td>5.790447</td>\\n\",\n       \"      <td>4.724925</td>\\n\",\n       \"      <td>7.497093</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>44</th>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>dataset/img8.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.721133</td>\\n\",\n       \"      <td>13.643271</td>\\n\",\n       \"      <td>1.200943</td>\\n\",\n       \"      <td>0.410041</td>\\n\",\n       \"      <td>9.483595</td>\\n\",\n       \"      <td>9.702528</td>\\n\",\n       \"      <td>7.666288</td>\\n\",\n       \"      <td>10.762127</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>45</th>\\n\",\n       \"      <td>dataset/img5.jpg</td>\\n\",\n       \"      <td>dataset/img9.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.729796</td>\\n\",\n       \"      <td>13.777185</td>\\n\",\n       \"      <td>1.208136</td>\\n\",\n       \"      <td>0.412909</td>\\n\",\n       \"      <td>9.057935</td>\\n\",\n       \"      <td>9.207479</td>\\n\",\n       \"      <td>7.387416</td>\\n\",\n       \"      <td>10.476942</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>46</th>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>dataset/img8.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.717417</td>\\n\",\n       \"      <td>13.921246</td>\\n\",\n       \"      <td>1.197846</td>\\n\",\n       \"      <td>0.408809</td>\\n\",\n       \"      <td>9.671131</td>\\n\",\n       \"      <td>8.695498</td>\\n\",\n       \"      <td>7.788549</td>\\n\",\n       \"      <td>10.885836</td>\\n\",\n       \"    </tr>\\n\",\n       \"    <tr>\\n\",\n       \"      <th>47</th>\\n\",\n       \"      <td>dataset/img6.jpg</td>\\n\",\n       \"      <td>dataset/img9.jpg</td>\\n\",\n       \"      <td>Different Persons</td>\\n\",\n       \"      <td>0.741129</td>\\n\",\n       \"      <td>14.200127</td>\\n\",\n       \"      <td>1.217481</td>\\n\",\n       \"      <td>0.416650</td>\\n\",\n       \"      <td>8.524856</td>\\n\",\n       \"      <td>7.762737</td>\\n\",\n       \"      <td>7.035554</td>\\n\",\n       \"      <td>10.110791</td>\\n\",\n       \"    </tr>\\n\",\n       \"  </tbody>\\n\",\n       \"</table>\\n\",\n       \"</div>\"\n      ],\n      \"text/plain\": [\n       \"              file_x            file_y             actual    cosine  \\\\\\n\",\n       \"38  dataset/img1.jpg  dataset/img8.jpg  Different Persons  0.912684   \\n\",\n       \"39  dataset/img1.jpg  dataset/img9.jpg  Different Persons  0.971642   \\n\",\n       \"40  dataset/img2.jpg  dataset/img8.jpg  Different Persons  0.718171   \\n\",\n       \"41  dataset/img2.jpg  dataset/img9.jpg  Different Persons  0.784581   \\n\",\n       \"42  dataset/img4.jpg  dataset/img8.jpg  Different Persons  0.753150   \\n\",\n       \"43  dataset/img4.jpg  dataset/img9.jpg  Different Persons  0.829773   \\n\",\n       \"44  dataset/img5.jpg  dataset/img8.jpg  Different Persons  0.721133   \\n\",\n       \"45  dataset/img5.jpg  dataset/img9.jpg  Different Persons  0.729796   \\n\",\n       \"46  dataset/img6.jpg  dataset/img8.jpg  Different Persons  0.717417   \\n\",\n       \"47  dataset/img6.jpg  dataset/img9.jpg  Different Persons  0.741129   \\n\",\n       \"\\n\",\n       \"    euclidean  euclidean_l2   angular  cosine_confidence  \\\\\\n\",\n       \"38  15.971380      1.351062  0.472171           3.094661   \\n\",\n       \"39  16.535808      1.394017  0.490972           2.056160   \\n\",\n       \"40  13.744342      1.198475  0.409059           9.632836   \\n\",\n       \"41  14.418712      1.252662  0.430888           6.713687   \\n\",\n       \"42  14.123269      1.227314  0.420605           7.987852   \\n\",\n       \"43  14.878502      1.288234  0.445550           5.177442   \\n\",\n       \"44  13.643271      1.200943  0.410041           9.483595   \\n\",\n       \"45  13.777185      1.208136  0.412909           9.057935   \\n\",\n       \"46  13.921246      1.197846  0.408809           9.671131   \\n\",\n       \"47  14.200127      1.217481  0.416650           8.524856   \\n\",\n       \"\\n\",\n       \"    euclidean_confidence  euclidean_l2_confidence  angular_confidence  \\n\",\n       \"38              3.364286                 3.127406            5.404447  \\n\",\n       \"39              2.406347                 2.238199            4.092357  \\n\",\n       \"40              9.327166                 7.763610           10.860674  \\n\",\n       \"41              7.083039                 5.811885            8.776472  \\n\",\n       \"42              8.012303                 6.677761            9.730812  \\n\",\n       \"43              5.790447                 4.724925            7.497093  \\n\",\n       \"44              9.702528                 7.666288           10.762127  \\n\",\n       \"45              9.207479                 7.387416           10.476942  \\n\",\n       \"46              8.695498                 7.788549           10.885836  \\n\",\n       \"47              7.762737                 7.035554           10.110791  \"\n      ]\n     },\n     \"execution_count\": 28,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"df[df[\\\"actual\\\"] == \\\"Different Persons\\\"][[\\n\",\n    \"    \\\"file_x\\\",\\n\",\n    \"    \\\"file_y\\\",\\n\",\n    \"    \\\"actual\\\",\\n\",\n    \"    \\\"cosine\\\",\\n\",\n    \"    \\\"euclidean\\\",\\n\",\n    \"    \\\"euclidean_l2\\\",\\n\",\n    \"    \\\"angular\\\",\\n\",\n    \"    \\\"cosine_confidence\\\",\\n\",\n    \"    \\\"euclidean_confidence\\\",\\n\",\n    \"    \\\"euclidean_l2_confidence\\\",\\n\",\n    \"    \\\"angular_confidence\\\",\\n\",\n    \"]].head(10)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"We should see that same person classifications should be distributed between 51-100\\n\",\n    \"\\n\",\n    \"and different persons classification should be distributed between 0-49\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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RMRNVSogtW7dmo8//pjDhw/zv//9jxtvvBGA48ePa/JIT1HUegSaKFJEROqdSgWkKVOm8MgjjxATE0NsbCxxcXGAvTWpS5cu1VqguEjROmxQibvYznWxFeSAzVp9NYmIiNSSSs2kffvtt9O7d29SUlLo1KmTY/v111/PbbfdVm3FiQsVtSCZLGC2VOyzRS1IYA9JvkHVV5eIiEgtqFRAAoiMjCQyMtJpW8+ePatckNQRlZ0DCcC7AZjMYNjs45AUkERExM1UKiBlZ2czffp0kpKSOH78ODabzen9ffv2VUtx4kKVnUUbwGSyd7PlZWqgtoiIuKVKBaR77rmHr7/+mrvuuouoqCjHEiTiQarSggT2bra8TA3UFhERt1SpgPT555/z6aefcu2111Z3PVJXVHYW7SJabkRERNxYpe5ia9iwIY0aNaruWqQuqews2kU0F5KIiLixSgWkZ599lilTpjitxyYepjDX/lzpFiTNpi0iIu6rUl1sM2fOZO/evURERBATE4O3t7fT+5s3b66W4sSFirrYKt2CpPXYRETEfVUqIA0cOLCay5A6x1rJddiKqItNRETcWKUC0tSpU6u7DqlrqtyCpOVGRETEfVVqDBJAeno6b731FpMnT+b06dOAvWvt6NGj1VacuJBjkLZf5T6vMUgiIuLGKtWCtH37duLj4wkJCeHAgQOMGTOGRo0asXz5cg4dOsR7771X3XVKbStaaqQyE0WCuthERMStVaoFKTExkZEjR/Lrr7/i51fcwnDzzTfzzTffVFtx4kKFVW1BUkASERH3VamAtHHjRu67774S25s2bUpqamqFjzd37lxiYmLw8/MjNjaWDRs2lLn/smXLaNu2LX5+fnTo0IHPPvvM6X2TyVTq4+WXX3bsExMTU+L96dOnV7h2j1XVmbSL1l9TF5uIiLihSgUkX19fMjMzS2z/5ZdfaNKkSYWOtXTpUhITE5k6dSqbN2+mU6dOJCQkcPz48VL3X7duHUOHDmX06NFs2bKFgQMHMnDgQH766SfHPikpKU6Pd955B5PJxODBg52O9cwzzzjt9+CDD1aodo9WlbXYQC1IIiLi1ioVkG699VaeeeYZCgoKAHuLzaFDh5g0aVKJEHIps2bNYsyYMYwaNYp27doxf/58/P39eeedd0rd/5VXXqFfv35MnDiRq666imeffZauXbvy2muvOfaJjIx0evznP/+hb9++tGrVyulYQUFBTvsFBARU8Ep4sKKJItXFJiIi9VClAtLMmTM5c+YMTZo04ezZs/Tp04fWrVsTFBTE888/X+7j5Ofnk5ycTHx8fHFBZjPx8fGsX7++1M+sX7/eaX+AhISEi+6flpbGp59+yujRo0u8N336dBo3bkyXLl14+eWXKSwsvGiteXl5ZGZmOj08mrWabvPXWmwiIuKGKnUXW0hICKtWreK7775j27ZtnDlzhq5du5YILpdy8uRJrFYrERERTtsjIiLYtWtXqZ9JTU0tdf+LjX169913CQoKYtCgQU7bH3roIbp27UqjRo1Yt24dkydPJiUlhVmzZpV6nGnTpvH000+X99TcX2FVJ4rUbf4iIuK+KhyQbDYbCxcuZPny5Rw4cACTyUTLli2JjIzEMAxMJlNN1Flp77zzDsOGDXO62w7sd+IV6dixIz4+Ptx3331MmzYNX9+SoWDy5MlOn8nMzKRZs2Y1V7irObrYNJO2iIjUPxXqYjMMg1tvvZV77rmHo0eP0qFDB66++moOHjzIyJEjue222yr05WFhYVgsFtLS0py2p6WlERkZWepnIiMjy73/2rVr2b17N/fcc88la4mNjaWwsJADBw6U+r6vry/BwcFOD4/m6GKraguSApKIiLifCgWkhQsX8s0335CUlMSWLVv48MMPWbJkCdu2bePLL79k9erVFZok0sfHh27dupGUlOTYZrPZSEpKIi4urtTPxMXFOe0PsGrVqlL3f/vtt+nWrRudOnW6ZC1bt27FbDYTHh5e7vo9WnV1sRVkg81WPTWJiIjUkgoFpA8//JDHH3+cvn37lnjvuuuu47HHHmPRokUVKiAxMZE333yTd999l507d/LAAw+QnZ3NqFGjABg+fDiTJ0927P/www+zcuVKZs6cya5du3jqqafYtGkT48aNczpuZmYmy5YtK7X1aP369cyePZtt27axb98+Fi1axIQJE/jLX/5Cw4YNK1S/xyqs4jxIPufdEahxSCIi4mYqNAZp+/btvPTSSxd9/6abbmLOnDkVKmDIkCGcOHGCKVOmkJqaSufOnVm5cqVjIPahQ4cwm4tzXK9evVi8eDFPPPEEjz/+OG3atOHjjz+mffv2TsddsmQJhmEwdOjQEt/p6+vLkiVLeOqpp8jLy6Nly5ZMmDDBaYxRvVfViSK9G4DZC2yF9oDk5+FdkiIi4lFMhmEY5d3Zx8eHgwcPEhUVVer7x44do2XLluTl5VVbgXVVZmYmISEhZGRkeOZ4pAU3w8Hv4PYF0H7QpfcvzYsxcPY3+OsPEN62WssTERGpjPL+/q5QF5vVasXL6+KNThaLpcy5hMSNVHUtNihebiQvq+r1iIiI1KIKdbEZhsHIkSNLvQ0eqBctR/WGo4utkhNFAvieS+Z5Hj6ppoiIeJwKBaQRI0Zccp/hw4dXuhipQ6qlBakoIKkFSURE3EuFAtKCBQtqqg6pa6p6mz+c18WmFiQREXEvlVqLTeqBqq7FBhqDJCIibksBSUrnWGpEg7RFRKT+UUCS0hWea0GyVKEFyU9jkERExD0pIEnpqjpRJGgMkoiIuC0FJCnJZrXPgA3VcxdbrgKSiIi4FwUkKanwvPmsqtLFptv8RUTETSkgSUnW8wJStXSxKSCJiIh7UUCSkopakExm+4KzlaWAJCIibkoBSUo6f5JIk6nyx9EgbRERcVMKSFJSdUwSCeAXYn9WC5KIiLgZBSQpqTomiQTnLjabrWrHEhERqUUKSFKSY5LIKgzQhuKAhAEF2VU7loiISC1SQJKSHC1IVexi8/IrHuStuZBERMSNKCBJSY5ZtKvYxWYyaS4kERFxSwpIUlJ1rMNWRLf6i4iIG1JAkpKqa5A2nNeCpC42ERFxHwpIUlJ13eYPakESERG3pIAkJZ0/UWRV+akFSURE3I8CkpTk6GKrhoBU1MWWm1H1Y4mIiNQSBSQpydHFVg0BqUGo/flsetWPJSIiUksUkKSkau1iC7U/56ZX/VgiIiK1RAFJSioKSNXRglS0HptakERExI0oIElJ1moMSEVdbGpBEhERN6KAJCVV50SRRV1sakESERE3ooAkJVXnRJFqQRIRETekgCQlObrY1IIkIiL1kwKSlFSdd7Gd34JkGFU/noiISC1QQJKSqvUutlD7s60Q8rOrfjwREZFaoIAkJVXnRJE+AWD2sr/WOCQREXETCkhSUtEg7eroYjOZNA5JRETcjgKSlFRwLiB5V8NdbKA72URExO0oIElJhWftz14Nqud4akESERE3o4AkJakFSURE6jkFJCnJMVGkWpBERKR+UkCSkgrVgiQiIvVbnQhIc+fOJSYmBj8/P2JjY9mwYUOZ+y9btoy2bdvi5+dHhw4d+Oyzz5zeHzlyJCaTyenRr18/p31Onz7NsGHDCA4OJjQ0lNGjR3PmzJlqPze3VKAWJBERqd9cHpCWLl1KYmIiU6dOZfPmzXTq1ImEhASOHz9e6v7r1q1j6NChjB49mi1btjBw4EAGDhzITz/95LRfv379SElJcTw+/PBDp/eHDRvGzz//zKpVq1ixYgXffPMN9957b42dp1txDNKuhtv8QS1IIiLidlwekGbNmsWYMWMYNWoU7dq1Y/78+fj7+/POO++Uuv8rr7xCv379mDhxIldddRXPPvssXbt25bXXXnPaz9fXl8jISMejYcOGjvd27tzJypUreeutt4iNjaV37968+uqrLFmyhGPHjtXo+dZ5NmvxRJHe1dSC1KCR/TnndPUcT0REpIa5NCDl5+eTnJxMfHy8Y5vZbCY+Pp7169eX+pn169c77Q+QkJBQYv81a9YQHh7OlVdeyQMPPMCpU6ecjhEaGkr37t0d2+Lj4zGbzfzwww+lfm9eXh6ZmZlOD49UNP4IwKuaxiAFhNmfc05Wz/FERERqmEsD0smTJ7FarURERDhtj4iIIDU1tdTPpKamXnL/fv368d5775GUlMSLL77I119/zU033YTVanUcIzw83OkYXl5eNGrU6KLfO23aNEJCQhyPZs2aVfh83ULROmxQfS1I/kUBSS1IIiLiHrxcXUBNuPPOOx2vO3ToQMeOHbn88stZs2YN119/faWOOXnyZBITEx0/Z2ZmemZIKjg3/sjsDWZL9RzT/1wXW7ZakERExD24tAUpLCwMi8VCWlqa0/a0tDQiIyNL/UxkZGSF9gdo1aoVYWFh7Nmzx3GMCweBFxYWcvr06Ysex9fXl+DgYKeHR3Lc4l9NrUdQ3MVWeBbyc6rvuCIiIjXEpQHJx8eHbt26kZSU5Nhms9lISkoiLi6u1M/ExcU57Q+watWqi+4PcOTIEU6dOkVUVJTjGOnp6SQnJzv2Wb16NTabjdjY2KqckvsrqOY72AB8AsHiY3+tcUgiIuIGXH4XW2JiIm+++SbvvvsuO3fu5IEHHiA7O5tRo0YBMHz4cCZPnuzY/+GHH2blypXMnDmTXbt28dRTT7Fp0ybGjRsHwJkzZ5g4cSLff/89Bw4cICkpiQEDBtC6dWsSEhIAuOqqq+jXrx9jxoxhw4YNfPfdd4wbN44777yT6Ojo2r8IdUl1z6INYDKdNw7pVNn7ioiI1AEuH4M0ZMgQTpw4wZQpU0hNTaVz586sXLnSMRD70KFDmM3FOa5Xr14sXryYJ554gscff5w2bdrw8ccf0759ewAsFgvbt2/n3XffJT09nejoaG688UaeffZZfH2LW0UWLVrEuHHjuP766zGbzQwePJg5c+bU7snXRdU9i3YR/8aQdQyyFZBERKTuMxmGYbi6CHeUmZlJSEgIGRkZnjUe6dcvYdFgiOwI96+tvuO+NwD2rYHb3oBOQ6rvuCIiIhVQ3t/fLu9ikzqmaBbt6hykDfYWJNAYJBERcQsKSOLMsQ5bdXexaQySiIi4DwUkceZYh60GxiCB5kISERG3oIAkzgpqaJB2QFEXm1qQRESk7lNAEmc1cZs/FHexqQVJRETcgAKSOKup2/wDz62fd6b0te5ERETqEgUkceaYSbuaW5CCzi3hkpUGmllCRETqOAUkceboYqvGpUagOCAVnoXcjOo9toiISDVTQBJnBTU0D5J3A/ALsb8+k1b2viIipSiw2jiRlUd6Tj4FVpuryxEP5/KlRqSOKayheZAAAiPtrUdZKdDkyuo/voh4lLP5Vr7YkcrqXcfZdOA3jmWcdfTQe5lNXN4kkNhWjbipfRTXtGqEyWRybcHiURSQxJljkHY1tyCBvZvt5G77OCQRkYs4npXLvDV7WbbpCGfyCkvdp9BmsDsti91pWby3/iBtI4MYd11r+neIUlCSaqGAJM5qaiZtOG+gdkr1H1tE3F5ugZXX1+zljW/2kltg70Jr1qgBAzo1Je7yxlwREUTjAB9shkFaVh4/Hc3gyx1pfPZjCrtSsxi3eAtLWh/mhds60Lyxv4vPRtydApI4q6m12KA4IGkMkohcIPngb0z81zb2ncgGoEvzUCbEX0Hv1mGYzc4tQmZMNA1tQNPQBiRcHckT/dvxznf7mf/1Xr7dc5L+r65l1h2duaFdhCtORTyEBmmLs4IauosN7GOQQC1IIuJgGAZvrd3HkP9bz74T2TQJ8uX1YV1Z/kAvfn9FkxLhqDQh/t5MuOEKvpjwe7q3aEhWbiFj3tvEm9/sq4UzEE+lgCTOCmtoHiRwngtJROq9s/lWxi7ezHOf7qTQZnBLxyi+nNCHmys5jqhF4wA+vPcaRsS1AOD5z3Yy64vdGJp7TSpBXWzirKbWYgMIirI/Zx2r/mOLiFs5nZ3P6Hc3suVQOt4WE0/e0o67rmlR5QHW3hYzT916NeHBfrz8v93MWb0Hi9nMw/FtqqlyqS8UkMRZQY792Tug+o8dcpn9OeMo2KxgtlT/d4hInXf4dA7D39nA/pPZhDTw5s3h3enZslG1Hd9kMjG2b2saeFt4ZsUO/vHlL4QH+zK0Z/Nq+w7xfOpiE2f59gGS+NTAHSDB0WD2BlsBZKoVSaQ+OngqmyH/t579J7NpGtqAfz8QV63h6Hx3927JuL6tAfj7Rz/y9S8nauR7xDMpIIkzRwtSDQQks6W4FSn9UPUfX0TqtIOnshn6xvccy8jl8iYBLP9rL1qHB9Xod/7txiu4vdtl2Ax4eMkWDp/OqdHvE8+hgCTFbNbiiSJ9aqCLDaChffAk6Qdr5vgiUicdOpXjFI4+vPcaIoJrYKzjBUwmE8/f1p5Ol4WQnlPA/R8kk1tgrfHvFfengCTFCs77l1VNtCABhJ4bA/CbApJIfXEiK4+73vnBKRyFB9V8OCri62Vh3l+60SjAh5+PZfLiyl219t3ivhSQpFh+UUAy1cxEkQChakESqU+ycgsYuWADB0/l0LyRPx+Oqd1wVCQ6tAEz7+gEwILvDrD2V41HkrIpIEmxgnMDtL39oabWMmoYY3/WGCQRj5dXaOW+95P5+VgmYYE+vHd3T8JroVvtYvpeGc5d19j/kfbIsm2k5+S7rBap+xSQpFhRC1JN3MFWpGFL+/OpPTX3HSLicjabQeI/t7Fu7ykCfCwsGNmTmLAaGttYAY/ffBWtmgSQlpnHU//92dXlSB2mgCTFCorWYavBgNTkCvvzmTQ4+1vNfY+IuNTLX+zm0+0peFtM/N9d3elwWYirSwKggY+FWXd0xmyCj7ceU1ebXJQCkhQr6mKrqTvYAHyDIPjcrf4ndtfc94iIy/w7+Qjz1uwF4KXbO9K7TZiLK3LWuVkoI3rFAPD3j37ibL7uapOSFJCkWH4NzoF0viZX2p9P6E4SEU+z8cBpJi//EYCxfS/nti6Xubii0v3txiuJCvHj0OkcXkn61dXlSB2kgCTFCmphDBJA+FX25+MKSCKe5PDpHO57P5l8q41+V0fytxuudHVJFxXo68WzA9oD8ObafexOzXJxRVLXKCBJsaJlRmpiHbbzFQWk1O01+z0iUmuycgsY/e5GTmfn075pMLOGdMJsrqG7YatJfLsIEq6OwGozeGbFzxiG4eqSpA5RQJJitdWC1LS7/fnYFrAW1ux3iUiNs9kMxi/Zyi9pZwgP8uWt4T3w93GPtdCf6N8OHy8z3+05xRc70lxdjtQhCkhSLP+8eZBqUtgV4BtiD2THd9Tsd4lIjZuz+leSdh3Hx8vMm8O7ExniurmOKqpZI3/u/V0rAJ7/dKeWIREHBSQp5mhBquEuNrMZLutmf334h5r9LhGpUUk705j9pX2Q8wu3daBTs1DXFlQJf+17OZHB9gHbb3+739XlSB2hgCTFausuNoAWvezPe76s+e8SkRpx4GQ245duBeCua1pwe7e6ecfapfj7ePHYTW0BmPvVHtIyc11ckdQFCkhSzDEPUi0EpCtvtj/vW1PctScibiMnv5D73k8mK7eQrs1DefKWdq4uqUoGdI6ma/NQcvKtzPif5mgTBSQ5n6MFqRaWAwhvZ1+4tjAXdn1W898nItXGMAwm/ftHdqdlERboy7y/dMPHy71/nZhMJkfI+/fmI+xKzXRxReJq7v0nWqpXbd3FBvbFcDsPs79eNwdstpr/ThGpFm9/u59Pth3Dy2zi9WFdiXDhArTVqUvzhvTvEIXNgBc/1zxt9Z0CkhSrrXmQivS4x/5dqdvhyyn2tdlyMyHntAKTSB216cBppp0LD0/0v4qeLRu5uKLqNTHhSrzMJr7afYJ1e066uhxxIQUkKVabLUgAAY3hphftr9e9Ci/GwPRm8FJLmHkl/PB/oInbROqM37LzefDDLVhtBrd2inasZ+ZJYsICGBbbHIBpn+/CZtPfQfWVApIUy6+FxWov1PUuGDC3eAHbItnH4fNH4Ysnaq8WEbkom83gb8u2kZKRS6uwAF4Y1AGTqW7PlF1ZD17fhkBfL348msEn24+5uhxxkToRkObOnUtMTAx+fn7ExsayYcOGMvdftmwZbdu2xc/Pjw4dOvDZZ8WDfAsKCpg0aRIdOnQgICCA6Ohohg8fzrFjzn/IY2JiMJlMTo/p06fXyPm5jbxzaxH5BtXu93b5C0z4Cf6eCn9PgyeOQ8ILgAnWvwY/f1S79YhICW+u3cfqc5NBvvbnrgT6usdM2ZURFujL/X3sk0fO+GI3eYWaPLI+cnlAWrp0KYmJiUydOpXNmzfTqVMnEhISOH78eKn7r1u3jqFDhzJ69Gi2bNnCwIEDGThwID/99BMAOTk5bN68mSeffJLNmzezfPlydu/eza233lriWM888wwpKSmOx4MPPlij51rn5Z27a8M3uPa/22QC7wbg7QdevhA3Fn6XaH/v80mQd6b2axIRAJIPnualc7e+P/XHq2kX7YK/I2rZ6N6tiAj25fDps3zw/SFXlyMuYDJcvDpfbGwsPXr04LXXXgPAZrPRrFkzHnzwQR577LES+w8ZMoTs7GxWrFjh2HbNNdfQuXNn5s+fX+p3bNy4kZ49e3Lw4EGaN7f3LcfExDB+/HjGjx9fqbozMzMJCQkhIyOD4GAP+MvCMOCZxmBY4W+7ISjS1RVBYT7M7Qm/7Yc+j0Hfya6uSKTe+S07n/5z1nIsI5dbO0Xzyp2dPbZr7UJLNhziseU/EurvzdcT+xLSwNvVJUk1KO/vb5e2IOXn55OcnEx8fLxjm9lsJj4+nvXr15f6mfXr1zvtD5CQkHDR/QEyMjIwmUyEhoY6bZ8+fTqNGzemS5cuvPzyyxQWXnzh1Ly8PDIzM50eHqXgrD0cQe13sV2Mlw9cP8X++of5mlBSpJYVjTs6lpFLSw8fd1Sa27tdRpvwQNJzCnh9zR5XlyO1zKUB6eTJk1itViIiIpy2R0REkJqaWupnUlNTK7R/bm4ukyZNYujQoU5J8aGHHmLJkiV89dVX3Hfffbzwwgs8+uijF6112rRphISEOB7NmjUr72m6h6LxRyZz7Sw1Ul7tBkCjVpCbDlsWuboakXpl4boDjnFHcz183FFpvCxmxxIkC747wNH0sy6uSGqTy8cg1aSCggLuuOMODMNg3rx5Tu8lJibyhz/8gY4dO3L//fczc+ZMXn31VfLy8ko91uTJk8nIyHA8Dh8+XBunUHuKApJPkH08UF1htsA1f7W//v51zY8kUkt2pWYyfWXxfEf1YdxRaa5rG841rRqRX2hjppYgqVdcGpDCwsKwWCykpaU5bU9LSyMysvQxMJGRkeXavygcHTx4kFWrVl1ynFBsbCyFhYUcOHCg1Pd9fX0JDg52engUxwDtOtK9dr7Ow8A3xD4Waf/Xrq5GxOPlFlh5+MOt5BfauK5tOHdd08LVJbmMyWTi8ZuvAuCjrUf56WiGiyuS2uLSgOTj40O3bt1ISkpybLPZbCQlJREXF1fqZ+Li4pz2B1i1apXT/kXh6Ndff+XLL7+kcePGl6xl69atmM1mwsPDK3k2bs5Vt/iXh48/dPyT/fXmd11bi0g98OLKXefWWfPhpds71qtxR6XpeFkot3aKxjBg+ue7cPG9TVJLXN7FlpiYyJtvvsm7777Lzp07eeCBB8jOzmbUqFEADB8+nMmTi+9eevjhh1m5ciUzZ85k165dPPXUU2zatIlx48YB9nB0++23s2nTJhYtWoTVaiU1NZXU1FTy8/MB+0Dv2bNns23bNvbt28eiRYuYMGECf/nLX2jYsGHtX4S6oC4HJICuI+zPO1dAtqb/F6kpX/9yggXfHQDg5T91IizQ17UF1RETE67Ex2Lm2z0n+fqXE64uR2qBywPSkCFDmDFjBlOmTKFz585s3bqVlStXOgZiHzp0iJSUFMf+vXr1YvHixbzxxht06tSJf/3rX3z88ce0b98egKNHj/Lf//6XI0eO0LlzZ6KiohyPdevWAfbusiVLltCnTx+uvvpqnn/+eSZMmMAbb7xR+xegrsg/N89QXQ1IUR0hugvYCmDrYldXI+KRTp3J45Fl2wAYEdeCvlfW0xb1UjRr5M/wOHtX4/TPd2HVEiQez+XzILkrj5sHacOb8Nkj9rvG7njP1dWUbtMCWDEeGreBcRvr1mByETdnGAZj3kvmy51ptAkP5JMHe+PnbXF1WXVKek4+v3/pKzJzC3np9o7c0d3D7mauJ9xiHiSpQ+ryIO0iHW4H7wA49Ssc/M7V1Yh4lMUbDvHlzjR8LGZeubOLwlEpQv19GHddawBmffELZ/O1BIknU0ASO8cYpDrcGuYbZA9JYG9NEpFqsef4GZ5dsQOAR/tdWW9v6S+P4XExNA1tQGpmLu98t9/V5UgNUkASu7o+SLtId/vgfXb+V4O1RapBfqGN8Uu3kFtgo3frMO6+tqWrS6rT/LwtTEy4EoB5a/Zy8kzpc+eJ+1NAErtcN+hiA/tA7eguYM2HrZpZW6SqZq36hZ+OZhLq783MOzphNmts36Xc2ima9k2DOZNXyKtJv7q6HKkhCkhid/Y3+3MDN5jmoNu5VqTkhZpZW6QKvt93iv/7Zi8A0wd1JCLYz8UVuQez2cTjN9knj1z0wyH2nTjj4oqkJiggiV1uuv3ZHQJS+8H2sVKn98GBb1xdjYhbyjhbwN/+uQ3DgCHdm9GvfemrF0jperUO47q24RTaDMf4LfEsCkhi504tSL6B0PEO++tN77i2FhE3NeU/P3E0/SwtGvsz5Y/tXF2OW3qi/1V4W0x8tfsESTvTLv0BcSsKSGJXFJD8Ql1aRrl1v9v+vHMFpHvYwsEiNew/W4/yn63HsJhN/GNIZwJ8vVxdkltq1SSQu3vbB7U/s2IHuQW67d+TKCCJfRyPO7UgAURcDS37gGGFH+a7uhoRt3E0/SxPfPwTAOP6tqZrczf5f76OevC6NoQH+XLwVA5vf6vb/j2JApJAfhYY5wY7Nwh1aSkV0utB+3PyQjib7spKRNyC1WaQuHQrWbmFdG4W6pj0UCov0NeLx2+2D9h+bfUeUjLOurgiqS4KSFLceuTVALwbuLaWimgdD03a2teR2/yuq6sRqfPeWruPH/afxt/Hwj+GdMbbol8B1WFA52i6t2jI2QIrL3y2y9XlSDXR/x1S3PriTq1HYF+LragV6fv5UJjv2npE6rCfj2Uw44vdAEy5pR0twwJcXJHnMJlMPHXr1ZhM8Mm2Y6zbo0lsPYECkrjf+KPzdfgTBEZA1jHYvtTV1YjUSdl5hTz04RYKrAY3tItgSA8tslrd2jcN4S+xLQB4/KMfNWDbAyggiXsHJC/f4lakb14Ga4Fr6xGpg6b852f2nsgmItiX6YM6YDJptuyaMLHflUQE+3LgVA5zNMO221NAEvcOSADdR0NAE0g/CFsXu7oakTrlX8lH+PfmI5hN8MqdXWgc6OvqkjxWsJ83zwxoD8Ab3+xjZ0qmiyuSqlBAEsg5bX9214Dk4w/Xjre/XjtDY5FEztlz/AxPnrulf3z8FVzTqrGLK/J8CVdH0u/qSAptBo8t/xGrzXB1SVJJCkgC2cftz4Hhrq2jKrrfDQHhkH5Ii9iKALkFVsYt3szZAiu9Lm/M2L66pb+2PD3gaoJ8vdh2OJ0F32luJHelgCRw5lxACnDjgOTjD79LtL/+6gXIVdO21F+GYTB5+Y/sSs0iLNCH2UM6YzFr3FFtiQj2Y/K5uZFe/t9ufk3LcnFFUhkKSFIckAKbuLaOquo+Ghpdbm8RWzvD1dWIuMw73x3goy1HsZhNzLmzC+HBfq4uqd4Z2rMZfa5oQl6hjQn/3Ep+oc3VJUkFKSBJcRebO7cgAXj5QL9p9tfrX4dTe11bj4gLrNtzkhc+2wnA4zdfRa/WYS6uqH4ymUy8dHtHQv29+eloJq+u1l1t7kYBSeDMCftzYIRr66gObW60z7BtK4CP7gdroasrEqk1h07lMHbxZqw2g9u6NOXua2NcXVK9FhHsx/MDOwAw96s9bD70m4srkopQQKrvCnIhL8P+2t272MA+u/Yt/wDfYDiyAb79h6srEqkVp7PzGbFgA7/lFNC+aTDTNN9RndC/YxQDO0djM+DhJVvIOKu52tyFAlJ9l32u9cjsDX6hLi2l2oQ2h5tftr9e8wLs+sy19YjUsNwCK/e8u5H9J7NpGtqAt0f0wM/b4uqy5JynB7TnsoYNOHz6LI8s24Zh6NZ/d6CAVN9lHrM/B0fbW188Rcch0HUEGDb492g48K2rKxKpEQVWGw99uIXNh9IJ9vNiwageRGhQdp0S0sCb14d1xcdiZtWONN5cu8/VJUk5KCDVdxmH7c8hHrY2k8kE/WfaxyMV5MAHg2H3SldXJVKtCq02xi/dyhc70vCxmHljeHeuiAhydVlSio6XhfLkH9sB8OLK3Ww8cNrFFcmlKCDVd46AdJlr66gJFm8Y8gFc0Q8Kc2HJnyF5oaurEqkWVptB4j+38en2FLwtJub9patmyq7j/hLbnAGdo7HaDB74IJkjv+W4uiQpgwJSfZdxxP4c0tS1ddQU7wb2kNTpz2BY4ZOHYfVzoDEA4sZyC6w8+OFm/rvtGF5mE3P/3JXrr/KAu1A9nMlk4oXbOnBVVDAnz+QzeuEmsnI1aLuuUkCq7xwByQNbkIpYvGHg69Bnkv3nb16Gjx/Qmm3iljJyChj+9gY++zEVH4uZ1/7clRuvjnR1WVJOAb5evD2iO+FBvuxOy+LBD7dQaNUkknWRAlJ9l+6hY5AuZDJB38fh1lfBZIFtH8LiO+zTHIi4if0ns7l9/jo2HDhNkK8XC+/uQb/2CkfuJjq0AW+N6I6ft5k1u0/w+Ec/YtOitnWOAlJ9ZrPB6XOzTTdq5dpaakvX4fDnpeAdAPu+srck2fSvN6n7/vdzKre++i2/Hj9DRLAv/7w/jl6Xa5Zsd9XxslBeubMLZhP8c9MRnlmxQ7f/1zEKSPVZxmH74GWLD4S2cHU1tafNDTD0Q/vcTz8vh9XPuLoikYs6m2/lmU92cN/7yWTlFdK9RUP+O643V0UFu7o0qaKEqyN5+fZOACxcd4CX/7dbIakOUUCqz07+Yn9udDlYvFxbS21r1cfe3Qb22ba3fujaekRK8cO+U9z0yje8891+AO7p3ZIP771G8xx5kMHdLuPZAVcD8PqavTz9yQ51t9UR9ey3ojgpCkhhbVxbh6t0Hgqn9sDaGfDJQ/Zuxuaxrq5KhNSMXF7+327+vdl+E0VksB8vDGrPdW11p5onuisuBpsBU//7MwvXHSDjbAEv3d4Rb4vaMFxJAak+S/3R/hx+lWvrcKW+f4cTu2DXCvs8Sfd+ZV+qRMQF0nPyeefb/by5dj9nC6wA3NH9Mv7evx0hDbxdXJ3UpBG9Yghp4M3flm3joy1HOZGVx6tDu9AwwMfVpdVbiqf12ZFN9uem3V1bhyuZzTDoDYjsADknYfGdkJfl6qqknjmemcsLn+3k2umrmbN6D2cLrHRr0ZCP/tqLl27vpHBUTwzs0pQ3h3fD38fCt3tOcuvcb9lxLNPVZdVbJkMjwiolMzOTkJAQMjIyCA52w8GSZ9PhxXMDsyfuhYB6fjdMxhF4oy9kH4crb7ZPLmnWYp9Sc2w2g7V7TvLhD4f4cmcahefGnbSNDOKh69twU/tITJ60PqKU267UTO59L5lDp3Pw8TLzaMKV3H1tS8xm/XmoDuX9/a2AVEluH5B2fQZLhkLDGHh4m6urqRuObIIFN4M1zx6SBr0JvoGurko8iGEYbD+SwWc/prBiewpH08863usR05C//qE1f7iyiYKRkJ6Tz4SlW/lq9wkArmnViOcGdqB1uP5OqioFpBrm9gHpk4ft65L1GAP9Z7i6mrpj5yfwr9H2kNSwJdz0IrS50T7RpNQphmFQYDXILbSSX2jD22zGx8v+sNShf2mfySvk+72n+HbPSVbtSHMKRcF+XgzqehlDezbnykgtMivODMNg8YZDPLdiJ2cLrHiZTYzsFcO461oT6q+xSZWlgFTD3DogWQvgH1fDmTQY9i/7vEBS7PAG+OcIyDpm/zm8HbQfDO0G1N87/lwgK7eAvSey+TUti70nsjmWfpbjWbmcyMrjRFYeZ/IKudjd0H7eZhoH+NIowIdGAT6EB/lyWUN/mjZswGXnHpHBfnhV811ChmGQmpnLtsMZbD+Szob9p9l6ON3RfQbg72Phurbh9O8QRd+24fh5qytXynboVA7PrNjBlzvTAAjwsXBXXAx3XxtDuKZ8qDC3Ckhz587l5ZdfJjU1lU6dOvHqq6/Ss2fPi+6/bNkynnzySQ4cOECbNm148cUXufnmmx3vG4bB1KlTefPNN0lPT+faa69l3rx5tGlT/Mvt9OnTPPjgg3zyySeYzWYGDx7MK6+8QmBg+Zov3Tog/fRv+NfdEBgB438CL/1LpITcTPj6Rdi0AAqyi7eHt7MHpXYD6vfdf9Xo1Jk8fj1+hj0XPFIza3YZGIvZRGSwH1EhfkSG2J8jgv2ICmlAWKAPAb5eBPp64e9rwddiodBmw2ozKLAZZOQUcDo7n9M5+Rz97SwHTmaz/1Q2+05kc/JMXonvatHYn96tw/hdmyb0uaIJDXwUiqTivv7lBNM/38XOFPvAbYvZxPVtwxnSoxm924Th66U/V+XhNgFp6dKlDB8+nPnz5xMbG8vs2bNZtmwZu3fvJjw8vMT+69at4/e//z3Tpk3jlltuYfHixbz44ots3ryZ9u3bA/Diiy8ybdo03n33XVq2bMmTTz7Jjz/+yI4dO/Dzs6ftm266iZSUFP7v//6PgoICRo0aRY8ePVi8eHG56nbbgJSfA/N6wW/7oc9j0Heyqyuq287+Bjv+Czv/C/vWgK2w+L3wq6Hjn6DDnzx7sd9qUGi1ceh0DvtOZLP3xBnH894TZ/gt5+KrmYcH+dI6PJDW4YE0b+RPkyBfmgT5Eh7kS7CfN77eFvy8zfhYzBRYDfKtNgoKbZzJK+RUdj6nzuRxKjuftIxcjvx2liPpORz97SxH089SYK2Zv/osZhNXRATR6bIQOjcL5drWYTRr5F8j3yX1j2EYrN51nNfX7CX54G+O7QE+FnsAv7IJ3Vo0pHWTQA3qvgi3CUixsbH06NGD1157DQCbzUazZs148MEHeeyxx0rsP2TIELKzs1mxYoVj2zXXXEPnzp2ZP38+hmEQHR3N3/72Nx555BEAMjIyiIiIYOHChdx5553s3LmTdu3asXHjRrp3t9/ivnLlSm6++WaOHDlCdHT0Jet2y4CUecy+9ti+NRAUBeM2gq/GPZTb2d9g90rY8R/YmwTW/HNvmKDFtdDxDmgdD8HR9WbMUl6hlYycAtLPFpBxtoDfsvM5npVHSsZZUtJzOZp+lpSMXFIyLh5ITCa4rGEDWjexB6E24UFcfi4U1dTt7TabwYkzeRz5LYfUDHu9qRm5pGbmkpqRy+nsfM7kFZKTbyU7v5CivyUtZhMWk4ngBt40CvCmUYAPkcF+xIQF0DIsgJjGAVwREaQWIqkVv6RlsXTjYf677RgnspxbLoN8vWgXHUyrJoG0CgugRWN/woP9CAv0ISzQt1537Zb397dLJ4rMz88nOTmZyZOLWzHMZjPx8fGsX7++1M+sX7+exMREp20JCQl8/PHHAOzfv5/U1FTi4+Md74eEhBAbG8v69eu58847Wb9+PaGhoY5wBBAfH4/ZbOaHH37gtttuK/G9eXl55OUV/wHMzKyhuSk2vm2f4dqwgWHYnzFKeW1cZHvRa1vxPjYrpB+EtB1gWMGrAdy+QOGooho0tM++3XloccvS9n/CwW+LHwD+YfbJJgOagF8IWLzB7GV/NhX/pbTvZDYnsuzdSOdHh6JfxqVtO58B/NDwj6T5tbT/p3f6rOE4gH27cd7r4mMbhlH8Pca5z53bx2YY5BfayC2wkVdodTznnduWnVfomMywPPy8zbQKC6RVkwAub1L8fHmTwFoPFGaziYhgv3It2WGzGVgNAy+zSXeXSZ1yRUQQT97Sjr/ffBU/Hcvgy53H2bD/FNsOZ5CVV8gP+0/zw/7TpX42wMdCgK8XAb5e+PtYCPDxws/HgrfZhMVswstiwmI2YzGBxWzGy2zCbDZxYaPU+f9LmDCVut3+3vmfufj/Rxe+NSy2hcvu3HNpQDp58iRWq5WICOfp8yMiIti1a1epn0lNTS11/9TUVMf7RdvK2ufC7jsvLy8aNWrk2OdC06ZN4+mnny7nmVXBrhWwd3XNHb95L7j5ZYhsX3PfUR80aAjdRtgf6Yfhp3/BT8sh7Wf7hJM5Jy95iFbnHlXxdkpLvrK5dhJBswlCGngT6u9DSANvwgJ9iA5tQFRIA6JD7WN6mjZsQFSwn1s2+ZvNJsy4X91Sf5jNJjpeFkrHy0IBe5f2rtQsfj2exf4T2ew9mc2R0zmcyMrj5Jl88q02svOtZOdbIavkmLm6pO+V4fUzILmTyZMnO7VcZWZm0qxZs+r/ova3Q3TXczHaBCbzBa859/rcz+V6jX2MTMTVWkajJoQ2g94T7I+Cs/alSzJT7JNO5mXZ7xq0FdqfDZvjY3tPnOH4eX85Of/LyeT4T33eU4nX8ZHX0N0/xvF5EybHcUznHfP87fZ9i/+tZ//cedtNxa99vcz4epnx87ace20f8+PrZSHA10Kovw9Bvl5uGXxEPJWXxUz7piG0bxpS4j3DMMg8W8jpnHxHK3D2ue7knHwrVpsNqw2sNhuFNgPruUehzaDwgm7y89qfnVq5SzR4n/dmWS3jRslPunT8nksDUlhYGBaLhbS0NKftaWlpREZGlvqZyMjIMvcvek5LSyMqKsppn86dOzv2OX78uNMxCgsLOX369EW/19fXF19f3/KfXGV1GVbz3yE1x7sBRHexPy7h8nOPquhRxc+LSP1iMpkI8fcmxF/L11yKS9di8/HxoVu3biQlJTm22Ww2kpKSiIuLK/UzcXFxTvsDrFq1yrF/y5YtiYyMdNonMzOTH374wbFPXFwc6enpJCcnO/ZZvXo1NpuN2Fit5i4iIlLfubyLLTExkREjRtC9e3d69uzJ7Nmzyc7OZtSoUQAMHz6cpk2bMm3aNAAefvhh+vTpw8yZM+nfvz9Llixh06ZNvPHGG4A9HY8fP57nnnuONm3aOG7zj46OZuDAgQBcddVV9OvXjzFjxjB//nwKCgoYN24cd955Z7nuYBMRERHP5vKANGTIEE6cOMGUKVNITU2lc+fOrFy50jHI+tChQ5jNxQ1dvXr1YvHixTzxxBM8/vjjtGnTho8//tgxBxLAo48+SnZ2Nvfeey/p6en07t2blStXOuZAAli0aBHjxo3j+uuvd0wUOWfOnNo7cREREamzXD4Pkrtyy3mQRERE6rny/v526RgkERERkbpIAUlERETkAgpIIiIiIhdQQBIRERG5gAKSiIiIyAUUkEREREQuoIAkIiIicgEFJBEREZELKCCJiIiIXMDlS424q6IJyDMzM11ciYiIiJRX0e/tSy0kooBUSVlZWQA0a9bMxZWIiIhIRWVlZRESEnLR97UWWyXZbDaOHTtGUFAQJpPJ1eXUiMzMTJo1a8bhw4fr/XpzuhbFdC3sdB2K6VoU07UoVlevhWEYZGVlER0djdl88ZFGakGqJLPZzGWXXebqMmpFcHBwnfrD7Uq6FsV0Lex0HYrpWhTTtShWF69FWS1HRTRIW0REROQCCkgiIiIiF1BAkovy9fVl6tSp+Pr6uroUl9O1KKZrYafrUEzXopiuRTF3vxYapC0iIiJyAbUgiYiIiFxAAUlERETkAgpIIiIiIhdQQBIRERG5gAKSiIiIyAUUkKRUc+fOJSYmBj8/P2JjY9mwYYOrS6px06ZNo0ePHgQFBREeHs7AgQPZvXu30z65ubmMHTuWxo0bExgYyODBg0lLS3NRxbVn+vTpmEwmxo8f79hWn67F0aNH+ctf/kLjxo1p0KABHTp0YNOmTY73DcNgypQpREVF0aBBA+Lj4/n1119dWHHNsFqtPPnkk7Rs2ZIGDRpw+eWX8+yzzzot+ump1+Kbb77hj3/8I9HR0ZhMJj7++GOn98tz3qdPn2bYsGEEBwcTGhrK6NGjOXPmTC2eRfUo61oUFBQwadIkOnToQEBAANHR0QwfPpxjx445HcMdroUCkpSwdOlSEhMTmTp1Kps3b6ZTp04kJCRw/PhxV5dWo77++mvGjh3L999/z6pVqygoKODGG28kOzvbsc+ECRP45JNPWLZsGV9//TXHjh1j0KBBLqy65m3cuJH/+7//o2PHjk7b68u1+O2337j22mvx9vbm888/Z8eOHcycOZOGDRs69nnppZeYM2cO8+fP54cffiAgIICEhARyc3NdWHn1e/HFF5k3bx6vvfYaO3fu5MUXX+Sll17i1VdfdezjqdciOzubTp06MXfu3FLfL895Dxs2jJ9//plVq1axYsUKvvnmG+69997aOoVqU9a1yMnJYfPmzTz55JNs3ryZ5cuXs3v3bm699Van/dziWhgiF+jZs6cxduxYx89Wq9WIjo42pk2b5sKqat/x48cNwPj6668NwzCM9PR0w9vb21i2bJljn507dxqAsX79eleVWaOysrKMNm3aGKtWrTL69OljPPzww4Zh1K9rMWnSJKN3794Xfd9msxmRkZHGyy+/7NiWnp5u+Pr6Gh9++GFtlFhr+vfvb9x9991O2wYNGmQMGzbMMIz6cy0A46OPPnL8XJ7z3rFjhwEYGzdudOzz+eefGyaTyTh69Git1V7dLrwWpdmwYYMBGAcPHjQMw32uhVqQxEl+fj7JycnEx8c7tpnNZuLj41m/fr0LK6t9GRkZADRq1AiA5ORkCgoKnK5N27Ztad68ucdem7Fjx9K/f3+nc4b6dS3++9//0r17d/70pz8RHh5Oly5dePPNNx3v79+/n9TUVKdrERISQmxsrMddi169epGUlMQvv/wCwLZt2/j222+56aabgPp1Lc5XnvNev349oaGhdO/e3bFPfHw8ZrOZH374odZrrk0ZGRmYTCZCQ0MB97kWXq4uQOqWkydPYrVaiYiIcNoeERHBrl27XFRV7bPZbIwfP55rr72W9u3bA5CamoqPj4/jf/IiERERpKamuqDKmrVkyRI2b97Mxo0bS7xXn67Fvn37mDdvHomJiTz++ONs3LiRhx56CB8fH0aMGOE439L+n/G0a/HYY4+RmZlJ27ZtsVgsWK1Wnn/+eYYNGwZQr67F+cpz3qmpqYSHhzu97+XlRaNGjTz62uTm5jJp0iSGDh1KcHAw4D7XQgFJpBRjx47lp59+4ttvv3V1KS5x+PBhHn74YVatWoWfn5+ry3Epm81G9+7deeGFFwDo0qULP/30E/Pnz2fEiBEurq52/fOf/2TRokUsXryYq6++mq1btzJ+/Hiio6Pr3bWQSysoKOCOO+7AMAzmzZvn6nIqTF1s4iQsLAyLxVLibqS0tDQiIyNdVFXtGjduHCtWrOCrr77isssuc2yPjIwkPz+f9PR0p/098dokJydz/PhxunbtipeXF15eXnz99dfMmTMHLy8vIiIi6s21iIqKol27dk7brrrqKg4dOgTgON/68P/MxIkTeeyxx7jzzjvp0KEDd911FxMmTGDatGlA/boW5yvPeUdGRpa40aWwsJDTp0975LUpCkcHDx5k1apVjtYjcJ9roYAkTnx8fOjWrRtJSUmObTabjaSkJOLi4lxYWc0zDINx48bx0UcfsXr1alq2bOn0frdu3fD29na6Nrt37+bQoUMed22uv/56fvzxR7Zu3ep4dO/enWHDhjle15drce2115aY7uGXX36hRYsWALRs2ZLIyEina5GZmckPP/zgcdciJycHs9n514bFYsFmswH161qcrzznHRcXR3p6OsnJyY59Vq9ejc1mIzY2ttZrrklF4ejXX3/lyy+/pHHjxk7vu821cPUocal7lixZYvj6+hoLFy40duzYYdx7771GaGiokZqa6urSatQDDzxghISEGGvWrDFSUlIcj5ycHMc+999/v9G8eXNj9erVxqZNm4y4uDgjLi7OhVXXnvPvYjOM+nMtNmzYYHh5eRnPP/+88euvvxqLFi0y/P39jQ8++MCxz/Tp043Q0FDjP//5j7F9+3ZjwIABRsuWLY2zZ8+6sPLqN2LECKNp06bGihUrjP379xvLly83wsLCjEcffdSxj6dei6ysLGPLli3Gli1bDMCYNWuWsWXLFsedWeU57379+hldunQxfvjhB+Pbb7812rRpYwwdOtRVp1RpZV2L/Px849ZbbzUuu+wyY+vWrU5/l+bl5TmO4Q7XQgFJSvXqq68azZs3N3x8fIyePXsa33//vatLqnFAqY8FCxY49jl79qzx17/+1WjYsKHh7+9v3HbbbUZKSorriq5FFwak+nQtPvnkE6N9+/aGr6+v0bZtW+ONN95wet9msxlPPvmkERERYfj6+hrXX3+9sXv3bhdVW3MyMzONhx9+2GjevLnh5+dntGrVyvj73//u9IvPU6/FV199VerfDyNGjDAMo3znferUKWPo0KFGYGCgERwcbIwaNcrIyspywdlUTVnXYv/+/Rf9u/Srr75yHMMdroXJMM6bAlVERERENAZJRERE5EIKSCIiIiIXUEASERERuYACkoiIiMgFFJBERERELqCAJCIiInIBBSQRERGRCyggiYiIiFxAAUlERETkAgpIIiIiIhdQQBIRERG5wP8DmMB7u18X6ZIAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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w4SwsDDh1q1bItbccuPHjxeCgoKEbdu2CRcuXBC2bNki+Pj4CK+99pqxjK23ubCwUDhy5Ihw5MgRAYCwfPly4ciRI8YZW+a0b9CgQUL37t2FAwcOCL/99psQHh4ujBkzRqwm1epebS4vLxcef/xxoVWrVsLRo0dNfp+VlZUZr2FLba7tv3FVVWexCYL12ssAiar10UcfCa1btxYUCoXQq1cvYf/+/WJXyWoAVPtYu3atscytW7eEl19+WfDy8hKcnZ2FJ554QsjOzhav0lZWNUCyx/b++OOPQufOnQWlUil07NhR+M9//mNyXqfTCW+++abg5+cnKJVKYeDAgUJGRoZIta0/tVotTJ8+XWjdurXg6OgotGnTRvjnP/9p8kVp623etWtXtf/vjh8/XhAE89p348YNYcyYMYKrq6vg7u4uTJw4USgsLBShNea5V5svXLhQ4++zXbt2Ga9hS22u7b9xVdUFSNZqr0QQ7lhmlYiIiIg4BomIiIioKgZIRERERFUwQCIiIiKqggESERERURUMkIiIiIiqYIBEREREVAUDJCIiIqIqGCARERERVcEAiYiIiKgKBkhEREREVTBAIiIiIqqCARIRERFRFf8PaWjXaJjT4ysAAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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Xnstb7zxxjk7yqempnL99dd7vp4xYwZBQUHs2bPHM161onPeFBsby7x586p0nfv7EBQURL9+/Vi2bFn9F9BkFI7MrmzLkW9Q+XMiIiYycuRIUlNTOXToEJ9++ilXXXUVDz30EDfeeCMlJSWe66KiovDz8/N8vX//foYNG0bHjh1p1arVec9VV1FRUe0qVEPPPfccqampbN26lYEDBzJu3Di+/fbbGt3LW3XwNoUjs/OMOQp0PUDdaiJiSn5+fkRFRdG2bVv69evH008/zUcffcSnn35abnhG2W41i8XCli1beO6557BYLDz77LMVngM4fPgwv/zlLwkPD6dly5aMHj2aQ4cOee47adIkxowZwwsvvEBMTAwXX3xxtd730ksvER0dTatWrXjggQcoLi4G4MorryQ5OZlHHnnE0ypUmZCQEKKioujatSsLFiwgICCAjz/+uFZ1ePXVV4mLi8Pf35/IyMhy434LCwuZMmUKbdq0wd/fn2HDhrFp0ybP62vWrMFisZCYmMiAAQMIDAxkyJAh7Nmzx3PN999/z1VXXUVISAihoaH079+fzZs3V/4HXo8UjszOPVvNJ+hMy5G61USkqgzD9R8qbzzqYMHaq6++mt69e7N8+fIKX09NTaVHjx48+uijpKam8thjj1V4rri4mBEjRhASEsK6dev45ptvCA4OZuTIkeVaVxITE9mzZw+rVq1ixYoVVX7fl19+yf79+/nyyy958803WbJkiSfQLV++nHbt2nlahFJTU6tcf7vdjo+PD0VFRTWuw+bNm5kyZQrPPfcce/bsYeXKlVxxxRWe6x9//HH+85//8Oabb5KUlESXLl0YMWIEp06dKleW3/3ud8yZM4fNmzdjt9u56667PK+NHz+edu3asWnTJrZs2cKTTz6Jj49PletZ17w+W03qWbmWI/eYI7UciUgVFefDn2K889lPHzvzn7pa6NatG9u3b6/wtaioKOx2O8HBwZ6FgoODg8859/bbb+N0Onn99dc9LTeLFy8mPDycNWvWcN111wEQFBTE66+/jq+vb7Xe16JFC1555RVsNhvdunVj1KhRJCYmMnnyZFq2bInNZvO0CFVVUVERc+bMISsri6uvvpqlS5fWqA7Lly8nKCiIG2+8kZCQEDp27Ejfvn0ByMvLY+HChSxZssQzjuu1115j1apV/OMf/2DatGme8rzwwgsMHz4cgCeffJJRo0ZRUFCAv78/KSkpTJs2jW7dugEQFxdX5XrWB7UcmZmjBJyuZtnys9U05khEmg/DMC7YFXUh33//Pfv27SMkJMSzrl7Lli0pKChg//79nut69erlCRXVeV+PHj2w2Wyer6Ojo8nIyKhRWZ944gmCg4MJDAxk9uzZzJo1i1GjRtW4Dtdeey0dO3akc+fO3HHHHbzzzjvk57t+j+zfv5/i4mKGDh3qud7Hx4dBgwaxa9eucuUqu5tFdLRrSyt3HadOncqvf/1rEhISmDVrVrnyeINajsyspODMc7ufutVEpPp8Al0tON767Dqwa9cuOnXqVKt75Obm0r9/f955551zXmvdurXneVBQ+Zauqr7v7C4ki8Vyziy7qpo2bRqTJk0iODiYyMhITzCsaR1CQkJISkpizZo1fP7550yfPp1nn3223LiiqihbR3eZ3HV89tln+dWvfsUnn3zCp59+yowZM3j//fe5+eabq/UZdUXhyMwcZWYZ2PzUrSYi1Wex1EnXlresXr2aHTt28Mgjj9TqPv369WPp0qW0adOmWvtv1vR9Z/P19cXhcFTp2oiICLp06VKnZbHb7SQkJJCQkMCMGTMIDw9n9erVjBgxAl9fX7755hs6duwIQHFxMZs2beLhhx+u1md07dqVrl278sgjj3D77bezePFir4UjdauZmbvlyGIDm/3MbDVN5RcREyosLCQtLY2jR4+SlJTEn/70J0aPHs2NN97IhAkTanXv8ePHExERwejRo1m3bh0HDx5kzZo1TJkyhSNHjtT5+84WGxvL2rVrOXr0KCdOnGjQOqxYsYL58+ezbds2kpOTeeutt3A6nVx88cUEBQVx3333MW3aNFauXMnOnTuZPHky+fn53H333VUq1+nTp3nwwQdZs2YNycnJfPPNN2zatIlLLrmkRvWsC2o5MrOSQtfRXrptiqdbTS1HImI+K1euJDo6GrvdTosWLejduzfz589n4sSJ5bahqonAwEDWrl3LE088wdixY8nJyaFt27Zcc801lbbC1PR9Z3vuuef4zW9+w0UXXURhYSFGDWby1bQs4eHhLF++nGeffZaCggLi4uJ477336NGjBwCzZs3C6XRyxx13kJOTw4ABA/jss89o0aJFlcpls9k4efIkEyZMID09nYiICMaOHcsf/vCHatexrliMmnyHTS47O5uwsDCysrJq1QzqdRm74dV4CGgBTxyC75fCB/dA5ythwkfeLp2INEIFBQUcPHiQTp06Nc/9KKXRq+zvaF39/la3mpk5zmo58ik9FhdUfL2IiIgoHJmau1vNVjol0z3zo+S0d8ojIiLSBCgcmdnZY47sajkSERG5EIUjM/OEI3fLUYDrWKyWIxERkfNRODKzc8YclYYjdauJiIicl8KRmbnXObL5uY7qVhORKtJEZmmsGuLvpsKRmZWUrpBtLw1Hnm41LQIpIhVz7+9Vdpd2kcbEva/b2Vuu1CUtAmlm7pajswdkGw5wFIOt/v5iiUjTZLfbCQwM5Pjx4/j4+NR68USRumIYBvn5+WRkZBAeHl5uo966pnBkZu691exnTeUH16BshSMROYvFYiE6OpqDBw+SnJzs7eKInCM8PJyoqKh6/QyFIzM7p+XID7AARulrTXj1bxGpN76+vsTFxalrTRodHx+fem0xclM4MjP3mCP3IpAWiysolZzWuCMRqZTVatX2IdJsqTPZzM5uOQJtISIiInIBCkdm5jhrEUjQFiIiIiIXoHBkZp6p/GVajrTWkYiISKUUjszs7EUgQWsdiYiIXIDCkZk5zloEEspsIaKWIxERkYooHJmZZ0B2mXDk6VbTmCMREZGKKByZ2dnbh0CZbjWFIxERkYooHJlZRWOO3C1H6lYTERGpkMKRmVU45qh0Kr9ajkRERCqkcGRmFY058lHLkYiISGUUjsysxL0IZNluNU3lFxERqYzCkZm5w1GF6xyp5UhERKQiCkdm5t4+xFZ2+xD3OkcacyQiIlIRhSMzc5S4jjafM+e0fYiIiEilFI7MzFnsOpYNR9o+REREpFIKR2bmnspfYbeaWo5EREQqonBkZu5uNav9zDltHyIiIlIphSMzq6xbTS1HIiIiFVI4MrOKutU0IFtERKRSCkdm5XSC4XQ9t1YwW01T+UVERCqkcGRW7i41AFuZMUee7UMKG7Y8IiIiTYTCkVm5u9TgrG4191R+tRyJiIhUROHIrBxlWo7Kdqtp41kREZFKKRyZlbN0Gj8WsNrOnNdUfhERkUopHJmVZ6aaD1gsZ867w5HhOLMOkoiIiHgoHJmVu1utbJcanFnnCDRjTUREpAIKR2blrGDTWTjTcgRa60hERKQCCkdmVbZbrSyLBWx+rudqORIRETmHwpFZna9bDbTWkYiISCUUjszqfN1qoLWOREREKqFwZFbn61YDsLu71TTmSERE5GwKR2ZVabeaWo5ERETOR+HIrNx7q1XYcqQxRyIiIuejcGRWjkrCkbvlSLPVREREzqFwZFaVdau5xxxpnSMREZFzKByZVaXdamo5EhEROR+FI7OqtFtNY45ERETOR+HIrCrtVtNsNRERkfNRODKrSrvVtM6RiIjI+SgcmVVVZqup5UhEROQcCkdmVWm3msYciYiInI/CkVl5utV8z31N6xyJiIicl8KRWXm61eznvqZ1jkRERM5L4cisqjJbTQOyRUREzqFwZFaVdqu5xxwpHImIiJxN4cisKu1W02w1ERGR81E4Mquq7K2mliMREZFzKByZVZVmqykciYiInM3r4WjBggXExsbi7+9PfHw8GzduPO+1P/74I7fccguxsbFYLBbmzZt3zjXPPvssFoul3KNbt271WINGylHkOlbYrVY65kiz1URERM7h1XC0dOlSpk6dyowZM0hKSqJ3796MGDGCjIyMCq/Pz8+nc+fOzJo1i6ioqPPet0ePHqSmpnoeX3/9dX1VofFylLiOFXWraZ0jERGR8/JqOJo7dy6TJ0/mzjvvpHv37ixatIjAwEDeeOONCq8fOHAgf/7zn7ntttvw8/M7733tdjtRUVGeR0RERH1VofHytBxV0K2mdY5ERETOy2vhqKioiC1btpCQkHCmMFYrCQkJrF+/vlb3/umnn4iJiaFz586MHz+elJSU2ha36XFWYbaatg8RERE5h9fC0YkTJ3A4HERGRpY7HxkZSVpaWo3vGx8fz5IlS1i5ciULFy7k4MGDXH755eTk5Jz3PYWFhWRnZ5d7NHmVdqu51zlSt5qIiMjZKmhWaNquv/56z/NLL72U+Ph4OnbsyL/+9S/uvvvuCt8zc+ZM/vCHPzRUERtGpd1qAWeucTrAamu4comIiDRyXms5ioiIwGazkZ6eXu58enp6pYOtqys8PJyuXbuyb9++817z1FNPkZWV5XkcPny4zj7fazzdapWscwSazi8iInIWr4UjX19f+vfvT2Jiouec0+kkMTGRwYMH19nn5Obmsn//fqKjo897jZ+fH6GhoeUeTZ6nW62CxkH3bDXQuCMREZGzeLVbberUqUycOJEBAwYwaNAg5s2bR15eHnfeeScAEyZMoG3btsycORNwDeLeuXOn5/nR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EhaLpdxj5MiR9VkF7/NsHVLLlqMgtRyJiEjz5vVwtHTpUqZOncqMGTNISkqid+/ejBgxgoyMin85f/vtt9x+++3cfffdbN26lTFjxjBmzBh++OGHcteNHDmS1NRUz+O9995riOp4T203nXVztxwpHImISDPl9XA0d+5cJk+ezJ133kn37t1ZtGgRgYGBvPHGGxVe/9e//pWRI0cybdo0LrnkEp5//nn69evHK6+8Uu46Pz8/oqKiPI8WLVo0RHW8xzPmqLbhqI3rqG41ERFpprwajoqKitiyZQsJCQmec1arlYSEBNavX1/he9avX1/ueoARI0acc/2aNWto06YNF198Mffddx8nT55/9lVhYSHZ2dnlHk2Op1utjsJRQRYUF9TuXiIiIk2QV8PRiRMncDgcREZGljsfGRlJWlpahe9JS0u74PUjR47krbfeIjExkdmzZ/PVV19x/fXX43A4KrznzJkzCQsL8zzat29fy5p5gTsc2f1rdx//8DMBK+947e4lIiLSBNm9XYD6cNttt3me9+rVi0svvZSLLrqINWvWcM0115xz/VNPPcXUqVM9X2dnZze9gFRS2spT23BksUBQG8g+4hp3FN7Evg8iIiK15NWWo4iICGw2G+np6eXOp6enExUVVeF7oqKiqnU9QOfOnYmIiGDfvn0Vvu7n50doaGi5R5PjDkc+tQxHACGlLXPZR2t/LxERkSbGq+HI19eX/v37k5iY6DnndDpJTExk8ODBFb5n8ODB5a4HWLVq1XmvBzhy5AgnT54kOjq6bgreGNVVyxFAi1jXMTO59vcSERFpYrw+W23q1Km89tprvPnmm+zatYv77ruPvLw87rzzTgAmTJjAU0895bn+oYceYuXKlcyZM4fdu3fz7LPPsnnzZh588EEAcnNzmTZtGt999x2HDh0iMTGR0aNH06VLF0aMGOGVOjaIkjpaIRsgvKPr+LPCkYiIND9eH3M0btw4jh8/zvTp00lLS6NPnz6sXLnSM+g6JSUFq/VMhhsyZAjvvvsuv//973n66aeJi4vjww8/pGfPngDYbDa2b9/Om2++SWZmJjExMVx33XU8//zz+PnVQXBorDwtRwG1v5e75ejnQ7W/l4iISBNjMQzD8HYhGpvs7GzCwsLIyspqOuOP1syGNX+C/nfCL+bV7l4HvoK3boJWcfDbzXVSPBERkfpW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OXbsGCEhIVgsFm8Xp8qys7Np3749hw8fbnZ7wjXnukPzrn9zrjs07/o357pD867/+epuGAY5OTnExMSU27S+utRyVAGr1Uq7du28XYwaCw0NbXb/UNyac92hede/Odcdmnf9m3PdoXnXv6K616bFyE0DskVERETKUDgSERERKUPhyET8/PyYMWMGfn5+3i5Kg2vOdYfmXf/mXHdo3vVvznWH5l3/+q67BmSLiIiIlKGWIxEREZEyFI5EREREylA4EhERESlD4UhERESkDIUjk1iwYAGxsbH4+/sTHx/Pxo0bvV2kejFz5kwGDhxISEgIbdq0YcyYMezZs6fcNQUFBTzwwAO0atWK4OBgbrnlFtLT071U4voza9YsLBYLDz/8sOec2et+9OhR/t//+3+0atWKgIAAevXqxebNmz2vG4bB9OnTiY6OJiAggISEBH766ScvlrhuOBwOnnnmGTp16kRAQAAXXXQRzz//fLn9o8xU97Vr1/KLX/yCmJgYLBYLH374YbnXq1LXU6dOMX78eEJDQwkPD+fuu+8mNze3AWtRM5XVvbi4mCeeeIJevXoRFBRETEwMEyZM4NixY+Xu0VTrDhf+sy/r3nvvxWKxMG/evHLn66L+CkcmsHTpUqZOncqMGTNISkqid+/ejBgxgoyMDG8Xrc599dVXPPDAA3z33XesWrWK4uJirrvuOvLy8jzXPPLII3z88ccsW7aMr776imPHjjF27Fgvlrrubdq0ib/97W9ceuml5c6bue4///wzQ4cOxcfHh08//ZSdO3cyZ84cWrRo4bnmxRdfZP78+SxatIgNGzYQFBTEiBEjKCgo8GLJa2/27NksXLiQV155hV27djF79mxefPFFXn75Zc81Zqp7Xl4evXv3ZsGCBRW+XpW6jh8/nh9//JFVq1axYsUK1q5dyz333NNQVaixyuqen59PUlISzzzzDElJSSxfvpw9e/Zw0003lbuuqdYdLvxn7/bBBx/w3XffERMTc85rdVJ/Q5q8QYMGGQ888IDna4fDYcTExBgzZ870YqkaRkZGhgEYX331lWEYhpGZmWn4+PgYy5Yt81yza9cuAzDWr1/vrWLWqZycHCMuLs5YtWqVMXz4cOOhhx4yDMP8dX/iiSeMYcOGnfd1p9NpREVFGX/+85895zIzMw0/Pz/jvffea4gi1ptRo0YZd911V7lzY8eONcaPH28YhrnrDhgffPCB5+uq1HXnzp0GYGzatMlzzaeffmpYLBbj6NGjDVb22jq77hXZuHGjARjJycmGYZin7oZx/vofOXLEaNu2rfHDDz8YHTt2NP7yl794Xqur+qvlqIkrKipiy5YtJCQkeM5ZrVYSEhJYv369F0vWMLKysgBo2bIlAFu2bKG4uLjc96Nbt2506NDBNN+PBx54gFGjRpWrI5i/7v/9738ZMGAA//d//0ebNm3o27cvr732muf1gwcPkpaWVq7+YWFhxMfHN/n6DxkyhMTERPbu3QvA999/z9dff831118PmLvuZ6tKXdevX094eDgDBgzwXJOQkIDVamXDhg0NXub6lJWVhcViITw8HDB/3Z1OJ3fccQfTpk2jR48e57xeV/XXxrNN3IkTJ3A4HERGRpY7HxkZye7du71UqobhdDp5+OGHGTp0KD179gQgLS0NX19fzw8Kt8jISNLS0rxQyrr1/vvvk5SUxKZNm855zex1P3DgAAsXLmTq1Kk8/fTTbNq0iSlTpuDr68vEiRM9dazo30JTr/+TTz5JdnY23bp1w2az4XA4eOGFFxg/fjyAqet+tqrUNS0tjTZt2pR73W6307JlS1N9PwoKCnjiiSe4/fbbPZuvmr3us2fPxm63M2XKlApfr6v6KxxJk/XAAw/www8/8PXXX3u7KA3i8OHDPPTQQ6xatQp/f39vF6fBOZ1OBgwYwJ/+9CcA+vbtyw8//MCiRYuYOHGil0tXv/71r3/xzjvv8O6779KjRw+2bdvGww8/TExMjOnrLhUrLi7ml7/8JYZhsHDhQm8Xp0Fs2bKFv/71ryQlJWGxWOr1s9St1sRFRERgs9nOmZGUnp5OVFSUl0pV/x588EFWrFjBl19+Sbt27Tzno6KiKCoqIjMzs9z1Zvh+bNmyhYyMDPr164fdbsdut/PVV18xf/587HY7kZGRpq07QHR0NN27dy937pJLLiElJQXAU0cz/luYNm0aTz75JLfddhu9evXijjvu4JFHHmHmzJmAuet+tqrUNSoq6pwJKSUlJZw6dcoU3w93MEpOTmbVqlWeViMwd93XrVtHRkYGHTp08PwMTE5O5tFHHyU2Nhaou/orHDVxvr6+9O/fn8TERM85p9NJYmIigwcP9mLJ6odhGDz44IN88MEHrF69mk6dOpV7vX///vj4+JT7fuzZs4eUlJQm//245ppr2LFjB9u2bfM8BgwYwPjx4z3PzVp3gKFDh56zbMPevXvp2LEjAJ06dSIqKqpc/bOzs9mwYUOTr39+fj5Wa/kf1zabDafTCZi77merSl0HDx5MZmYmW7Zs8VyzevVqnE4n8fHxDV7muuQORj/99BNffPEFrVq1Kve6met+xx13sH379nI/A2NiYpg2bRqfffYZUIf1r/k4cmks3n//fcPPz89YsmSJsXPnTuOee+4xwsPDjbS0NG8Xrc7dd999RlhYmLFmzRojNTXV88jPz/dcc++99xodOnQwVq9ebWzevNkYPHiwMXjwYC+Wuv6Una1mGOau+8aNGw273W688MILxk8//WS88847RmBgoPH22297rpk1a5YRHh5ufPTRR8b27duN0aNHG506dTJOnz7txZLX3sSJE422bdsaK1asMA4ePGgsX77ciIiIMB5//HHPNWaqe05OjrF161Zj69atBmDMnTvX2Lp1q2dGVlXqOnLkSKNv377Ghg0bjK+//tqIi4szbr/9dm9Vqcoqq3tRUZFx0003Ge3atTO2bdtW7mdgYWGh5x5Nte6GceE/+7OdPVvNMOqm/gpHJvHyyy8bHTp0MHx9fY1BgwYZ3333nbeLVC+ACh+LFy/2XHP69Gnj/vvvN1q0aGEEBgYaN998s5Gamuq9Qtejs8OR2ev+8ccfGz179jT8/PyMbt26GX//+9/Lve50Oo1nnnnGiIyMNPz8/IxrrrnG2LNnj5dKW3eys7ONhx56yOjQoYPh7+9vdO7c2fjd735X7heimer+5ZdfVvjvfOLEiYZhVK2uJ0+eNG6//XYjODjYCA0NNe68804jJyfHC7WpnsrqfvDgwfP+DPzyyy8992iqdTeMC//Zn62icFQX9bcYRpklVkVERESaOY05EhERESlD4UhERESkDIUjERERkTIUjkRERETKUDgSERERKUPhSERERKQMhSMRERGRMhSORERERMpQOBIREREpQ+FIREREpAyFIxEREZEyFI5EREREyvj/v6wrVxLhe50AAAAASUVORK5CYII=\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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QnBwcIXyhYWF7Nmzx/66c+fOFdbDuvbaa2nVqhVt2rRh4MCBDBw4kJtuuomAgAD27NlDSUkJ/fr1s5f39vamV69e7Nixo8LnnJk0NmvWDICsrCxatmx53utxNkqApCIlQCJyBovFUqVmqIbAz8+Pa6+9lmuvvZYnnniCO++8k6lTpzJ69Gj279/PDTfcwL333suzzz5L48aN+fbbb7njjjsoLi62J0De3t4VzmmxWCrdZ7VaAdvCsZ6enmzatAlPz4oJ25lJU2UmTpzI6NGjCQoKIjIy0l7bk5ubS/fu3Zk/f/5ZxzRt2tT+PDAwsMJ7wcHBpKamsmrVKr788kumTJnCk08+WaGfT1Wceb3lMZVfrytxjp9qqT/lCVCzeDj8A5w4YGo4IiI1dckll7B06VIANm3ahNVqZcaMGfalFN5///1af0bXrl0pKysjKyuLyy+/vFrHhoeH07Zt27P2d+vWjUWLFhEREUFISEi1zunl5UVCQgIJCQlMnTqVsLAwvvrqKxITE/Hx8eG7776jVatWgK25b8OGDRWaBt2JRoHJaWUlkHfE9rxFT9s256B58YiIVMGxY8e4+uqreffdd9m6dSv79u1j8eLFPP/88wwePBiAtm3bUlJSwssvv8zevXv5z3/+w9y5c2v92e3atWPEiBGMHDmSJUuWsG/fPtavX09ycjKffvppjc45YsQIwsPDGTx4MN988w379u1j1apVjB8/nl9//fWcxy1btoyXXnqJLVu2kJaWxjvvvIPVaqV9+/YEBgZy7733MnHiRJYvX8727du56667yM/P54477qjp5Ts11QDJafnHbVuLB0R2tD3POWRePCIiVRAUFETv3r35v//7P3tfl5iYGO666y4ee+wxAOLj45k5cybPPfcckydP5oorriA5OZmRI0fW+vPfeustnnnmGR566CEOHjxIeHg4l112GTfccEONzhcQEMDXX3/No48+ytChQzl58iTNmzfnmmuuOW+NUFhYGEuWLOHJJ5+ksLCQuLg43nvvPTp2tP1/Pm3aNKxWK7fddhsnT56kR48efPHFFzRq1KhGcTo7i1HViRbcSE5ODqGhoWRnZ1e7+tGpZWyDuf0gIBxu+jfMHwaRneHeb82OTETqSWFhIfv27aN169YuN+pHXMP5fkar8/2tJjA5Lf+obRsYDiG2nv9qAhMREVekBEhO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Awdc8t5cc801/Pjjj2zZssX+6NGjByNGjLA/d6f70a9fv7OmRdi9ezetWrUCoHXr1kRFRVW4Hzk5Oaxbt84l70d+fj4eHhW/Cjw9PbFarYD73Y8zVeXa+/Tpw4kTJ9i0aZO9zFdffYXVaqV37971HnNdK09+fv75Z/73v//RpEmTCu871f0wuxe21J2FCxcavr6+xrx584zt27cbd999txEWFmZkZGSYHVqduvfee43Q0FBj1apVxuHDh+2P/Px8e5l77rnHaNmypfHVV18ZGzduNPr06WP06dPHxKjr15mjwAzDve7H+vXrDS8vL+PZZ581fv75Z2P+/PlGQECA8e6779rLTJs2zQgLCzM++ugjY+vWrcbgwYON1q1bGwUFBSZGXjdGjRplNG/e3Fi2bJmxb98+Y8mSJUZ4eLjxyCOP2Mu48v04efKksXnzZmPz5s0GYMycOdPYvHmzfVRTVa594MCBRteuXY1169YZ3377rREXF2fceuutZl1SrZzvfhQXFxs33nij0aJFC2PLli0V/n8tKiqyn8NZ7ocSIBf38ssvGy1btjR8fHyMXr16Gd9//73ZIdU5oNLHW2+9ZS9TUFBg3HfffUajRo2MgIAA46abbjIOHz5sXtD17PcJkLvdj08++cTo1KmT4evra3To0MF49dVXK7xvtVqNJ554woiMjDR8fX2Na665xti1a5dJ0datnJwcY8KECUbLli0NPz8/o02bNsbf//73Cl9ornw/Vq5cWen/F6NGjTIMo2rXfuzYMePWW281goKCjJCQEGPMmDHGyZMnTbia2jvf/di3b985/39duXKl/RzOcj8shnHGdJ8iIiIibkB9gERERMTtKAESERERt6MESERERNyOEiARERFxO0qARERExO0oARIRERG3owRIRERE3I4SIBEREXE7SoBERETE7SgBEhEREbejBEhERETcjhIgERERcTv/D2YDTbwo6ShYAAAAAElFTkSuQmCC\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"for distance_metric in distance_metrics:\\n\",\n    \"    df[df.actual == \\\"Same Person\\\"][f\\\"{distance_metric}_confidence\\\"].plot.kde(label=\\\"Same Person\\\")\\n\",\n    \"    df[df.actual == \\\"Different Persons\\\"][f\\\"{distance_metric}_confidence\\\"].plot.kde(label=\\\"Different Persons\\\")\\n\",\n    \"    plt.legend()\\n\",\n    \"    plt.show()\\n\",\n    \"    \"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"base\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.16\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "mypy.ini",
    "content": "[mypy]\nignore_missing_imports = True\nwarn_unused_configs = True\nwarn_unused_ignores = False\nstrict = True"
  },
  {
    "path": "package_info.json",
    "content": "{\n    \"version\": \"0.0.99\"\n}\n"
  },
  {
    "path": "requirements-dev.txt",
    "content": "pytest>=8.3.5\n"
  },
  {
    "path": "requirements.txt",
    "content": "requests>=2.27.1\r\nnumpy>=1.14.0\r\npandas>=0.23.4\r\ngdown>=3.10.1\r\ntqdm>=4.30.0\r\nPillow>=5.2.0\r\nopencv-python>=4.5.5.64\r\ntensorflow>=1.9.0\r\nkeras>=2.2.0\r\nFlask>=1.1.2\r\nflask_cors>=4.0.1\r\nmtcnn>=0.1.0\r\nretina-face>=0.0.14\r\nfire>=0.4.0\r\ngunicorn>=20.1.0\r\nlightphe>=0.0.15\r\nlightdsa>=0.0.3\r\npython-dotenv>=1.0.1"
  },
  {
    "path": "requirements_additional.txt",
    "content": "opencv-contrib-python>=4.3.0.36\nmediapipe>=0.8.7.3\ndlib>=19.20.0\nultralytics>=8.1.6\nfacenet-pytorch>=2.5.3\ntorch>=2.1.2\ninsightface>=0.7.3\nonnxruntime>=1.9.0\ntf-keras\ntyping-extensions\npydantic\nalbumentations"
  },
  {
    "path": "requirements_local",
    "content": "numpy==1.22.3\npandas==2.0.3\nPillow==9.0.0\nopencv-python==4.9.0.80\ntensorflow==2.13.1\nkeras==2.13.1\nrequests==2.27.1\ngdown==4.2.0\ntqdm==4.66.1\nFlask==2.0.2\nWerkzeug==2.0.2\nflask_cors==4.0.1\nmtcnn==0.1.1\nretina-face==0.0.17\nfire==0.4.0\ngunicorn==20.1.0\nlightphe==0.0.20\nlightdsa==0.0.3\npython-dotenv==1.0.1\n# psycopg[binary]==3.2.13\n# pymongo==4.3.3\n# faiss-cpu==1.7.3\n# weaviate-client==3.26.7 --no-deps\n# neo4j==5.1.0\n# pgvector==0.3.6\n# pinecone==5.4.2"
  },
  {
    "path": "scripts/dockerize.sh",
    "content": "# Dockerfile is in the root\ncd ..\n\n# start docker\n# sudo service docker start\n\n# list current docker packages\n# docker container ls -a\n\n# delete existing deepface packages\n# docker rm -f $(docker ps -a -q --filter \"ancestor=deepface\")\n\n# build deepface image\ndocker build -t deepface .\n\n# push to docker hub\n# docker login\n# docker tag deepface:latest serengil/deepface:latest\n# docker push serengil/deepface:latest\n\n# copy weights from your local\n# docker cp ~/.deepface/weights/. <CONTAINER_ID>:/root/.deepface/weights/\n\n# run the built image\n# docker run --net=\"host\" deepface\n# docker run -p 5005:5000 deepface\nENV_FILE=\"deepface/api/.env\"\nif [ -f \"$ENV_FILE\" ]; then\n    echo \".env found, sending to container\"\n    docker run -p 5005:5000 --env-file \"$ENV_FILE\" deepface\nelse\n    echo \"no .env found, running container without env vars\"\n    docker run -p 5005:5000 deepface\nfi\n\n\n# or pull the pre-built image from docker hub and run it\n# docker pull serengil/deepface\n# docker run -p 5005:5000 serengil/deepface\n\n# to access the inside of docker image when it is in running status\n# docker exec -it <CONTAINER_ID> /bin/sh\n\n# healthcheck\n# sleep 3s\n# curl localhost:5000"
  },
  {
    "path": "scripts/push-release.sh",
    "content": "cd ..\n\necho \"deleting existing release related files\"\nrm -rf dist/*\nrm -rf build/*\n\necho \"creating a package for current release - pypi compatible\"\npython setup.py sdist bdist_wheel\n\necho \"pushing the release to pypi\"\npython -m twine upload dist/*"
  },
  {
    "path": "scripts/service.sh",
    "content": "#!/usr/bin/env bash\ncd ../deepface/api/src\n\n# run the service with flask - not for production purposes\n# python api.py\n\n# run the service with gunicorn - for prod purposes\ngunicorn --workers=1 --timeout=3600 --bind=0.0.0.0:5005 \"app:create_app()\""
  },
  {
    "path": "setup.py",
    "content": "import json\nimport setuptools\n\nwith open(\"README.md\", \"r\", encoding=\"utf-8\") as fh:\n    long_description = fh.read()\n\nwith open(\"requirements.txt\", \"r\", encoding=\"utf-8\") as f:\n    requirements = f.read().split(\"\\n\")\n\nwith open(\"package_info.json\", \"r\", encoding=\"utf-8\") as f:\n    package_info = json.load(f)\n\nsetuptools.setup(\n    name=\"deepface\",\n    version=package_info[\"version\"],\n    author=\"Sefik Ilkin Serengil\",\n    author_email=\"serengil@gmail.com\",\n    description=(\n        \"A Lightweight Face Recognition and Facial Attribute Analysis Framework\"\n        \" (Age, Gender, Emotion, Race) for Python\"\n    ),\n    data_files=[(\"\", [\"README.md\", \"requirements.txt\", \"package_info.json\"])],\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    url=\"https://github.com/serengil/deepface\",\n    packages=setuptools.find_packages(),\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Operating System :: OS Independent\",\n    ],\n    entry_points={\n        \"console_scripts\": [\"deepface = deepface.DeepFace:cli\"],\n    },\n    python_requires=\">=3.7\",\n    license=\"MIT\",\n    install_requires=requirements,\n)\n"
  },
  {
    "path": "tests/integration/test_postgres_register.py",
    "content": "# built-in dependencies\nimport os\nfrom unittest.mock import patch\n\n# 3rd party dependencies\nimport pytest\nimport psycopg\nfrom deepface import DeepFace\n\n# project dependencies\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nconnection_details_dict = {\n    \"host\": \"localhost\",\n    \"port\": 5433,\n    \"dbname\": \"deepface\",\n    \"user\": \"deepface_user\",\n    \"password\": \"deepface_pass\",\n}\n\nconnection_details_str = \"postgresql://deepface_user:deepface_pass@localhost:5433/deepface\"\n\n\n# pylint: disable=unused-argument\n@pytest.fixture\ndef flush_data():\n    conn = psycopg.connect(**connection_details_dict)\n    cur = conn.cursor()\n    cur.execute(\"DELETE FROM embeddings;\")\n    conn.commit()\n    cur.close()\n    conn.close()\n    logger.debug(\"🗑️ Embeddings data flushed.\")\n\n\ndef test_regsiter_with_json(flush_data):\n    img_path = \"../unit/dataset/img1.jpg\"\n    result = DeepFace.register(\n        img=img_path,\n        model_name=\"Facenet\",\n        detector_backend=\"mtcnn\",\n        connection_details=connection_details_dict,\n    )\n    assert result[\"inserted\"] == 1\n    logger.info(\"✅ Registered with json test passed.\")\n\n\ndef test_register_with_string(flush_data):\n    img_path = \"../unit/dataset/img1.jpg\"\n    result = DeepFace.register(\n        img=img_path,\n        model_name=\"Facenet\",\n        detector_backend=\"mtcnn\",\n        connection_details=connection_details_str,\n    )\n    assert result[\"inserted\"] == 1\n    logger.info(\"✅ Registered with string test passed.\")\n\n\n@patch.dict(os.environ, {\"DEEPFACE_POSTGRES_URI\": connection_details_str})\ndef test_register_with_envvar(flush_data):\n    img_path = \"../unit/dataset/img1.jpg\"\n    result = DeepFace.register(\n        img=img_path,\n        model_name=\"Facenet\",\n        detector_backend=\"mtcnn\",\n    )\n    assert result[\"inserted\"] == 1\n    logger.info(\"✅ Registered with env var test passed.\")\n\n\ndef test_register_with_connection(flush_data):\n    conn = psycopg.connect(**connection_details_dict)\n    img_path = \"../unit/dataset/img1.jpg\"\n    result = DeepFace.register(\n        img=img_path,\n        model_name=\"Facenet\",\n        detector_backend=\"mtcnn\",\n        connection=conn,\n    )\n    assert result[\"inserted\"] == 1\n    conn.close()\n    logger.info(\"✅ Registered with connection test passed.\")\n\n\ndef test_register_duplicate(flush_data):\n    img1_path = \"../unit/dataset/img1.jpg\"\n    result = DeepFace.register(\n        img=img1_path,\n        model_name=\"Facenet\",\n        detector_backend=\"mtcnn\",\n        connection_details=connection_details_dict,\n    )\n    assert result[\"inserted\"] == 1\n\n    # Facenet & opencv pair should have different extracted face & embedding than Facenet & mtcnn\n    result = DeepFace.register(\n        img=img1_path,\n        model_name=\"Facenet\",\n        detector_backend=\"opencv\",\n        connection_details=connection_details_dict,\n    )\n    assert result[\"inserted\"] == 1\n\n    # Duplicate registration with same model & detector should raise error\n    with pytest.raises(ValueError, match=\"Duplicate detected for extracted face and embedding\"):\n        _ = DeepFace.register(\n            img=img1_path,\n            model_name=\"Facenet\",\n            detector_backend=\"mtcnn\",\n            connection_details=connection_details_dict,\n        )\n\n    logger.info(\"✅ Duplicate registration test passed.\")\n"
  },
  {
    "path": "tests/integration/test_postgres_search.py",
    "content": "# built-in dependencies\nimport os\nfrom unittest.mock import patch\n\n# 3rd party dependencies\nimport pytest\nimport psycopg\nfrom deepface import DeepFace\nfrom tqdm import tqdm\nimport pandas as pd\n\n# project dependencies\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nconnection_details_dict = {\n    \"host\": \"localhost\",\n    \"port\": 5433,\n    \"dbname\": \"deepface\",\n    \"user\": \"deepface_user\",\n    \"password\": \"deepface_pass\",\n}\n\n\n# pylint: disable=unused-argument\n@pytest.fixture\ndef flush_data():\n    conn = psycopg.connect(**connection_details_dict)\n    cur = conn.cursor()\n    cur.execute(\"DELETE FROM embeddings;\")\n    conn.commit()\n    cur.close()\n    conn.close()\n    logger.info(\"🗑️ Embeddings data flushed.\")\n\n\n@pytest.fixture\ndef load_data():\n    conn = psycopg.connect(**connection_details_dict)\n\n    # collect items\n    database_items = []\n    for dirpath, dirnames, filenames in os.walk(\"../unit/dataset\"):\n        for filename in filenames:\n            if not filename.lower().endswith((\".png\", \".jpg\", \".jpeg\")):\n                continue\n            filepath = os.path.join(dirpath, filename)\n            database_items.append(filepath)\n\n    for img_path in tqdm(database_items):\n        _ = DeepFace.register(\n            img=img_path,\n            model_name=\"Facenet\",\n            detector_backend=\"mtcnn\",\n            connection=conn,\n        )\n\n    conn.close()\n\n    logger.info(f\"✅ Data with size {len(database_items)} loaded into Postgres for search tests.\")\n\n\ndef test_postgres_search(flush_data, load_data):\n    conn = psycopg.connect(**connection_details_dict)\n\n    target_path = \"dataset/target.jpg\"\n\n    # we loaded data for Facenet and mtcnn, not opencv\n    with pytest.raises(ValueError, match=\"No embeddings found in the database for the criteria\"):\n        _ = DeepFace.search(\n            img=target_path,\n            model_name=\"Facenet\",\n            detector_backend=\"opencv\",\n            connection=conn,\n        )\n\n    dfs = DeepFace.search(\n        img=target_path,\n        model_name=\"Facenet\",\n        distance_metric=\"euclidean\",\n        detector_backend=\"mtcnn\",\n        connection=conn,\n    )\n\n    assert isinstance(dfs, list)\n    assert len(dfs) == 1\n\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n        assert df.shape[0] > 0\n        logger.info(df)\n\n    conn.close()\n    logger.info(\"✅ Postgres search test passed.\")\n"
  },
  {
    "path": "tests/unit/dataset/face-recognition-pivot.csv",
    "content": "file_x,file_y,decision,VGG-Face_cosine,VGG-Face_euclidean,VGG-Face_euclidean_l2,Facenet_cosine,Facenet_euclidean,Facenet_euclidean_l2,OpenFace_cosine,OpenFace_euclidean_l2,DeepFace_cosine,DeepFace_euclidean,DeepFace_euclidean_l2\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img39.jpg,Yes,0.2057,0.389,0.6414,0.1601,6.8679,0.5658,0.5925,1.0886,0.2554,61.3336,0.7147\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img40.jpg,Yes,0.2117,0.3179,0.6508,0.2739,8.9049,0.7402,0.396,0.8899,0.2685,63.3747,0.7328\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img41.jpg,Yes,0.1073,0.2482,0.4632,0.1257,6.1593,0.5014,0.7157,1.1964,0.2452,60.3454,0.7002\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img40.jpg,Yes,0.2991,0.4567,0.7734,0.3134,9.3798,0.7917,0.4941,0.9941,0.1703,45.1688,0.5836\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img41.jpg,Yes,0.1666,0.3542,0.5772,0.1502,6.6491,0.5481,0.2381,0.6901,0.2194,50.4356,0.6624\ndeepface/tests/dataset/img40.jpg,deepface/tests/dataset/img41.jpg,Yes,0.1706,0.3066,0.5841,0.2017,7.6423,0.6352,0.567,1.0649,0.2423,54.2499,0.6961\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img12.jpg,Yes,0.2533,0.5199,0.7118,0.4062,11.2632,0.9014,0.1908,0.6178,0.2337,58.8794,0.6837\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img53.jpg,Yes,0.1655,0.3567,0.5754,0.184,7.5388,0.6066,0.1465,0.5412,0.243,55.2642,0.6971\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img54.jpg,Yes,0.1982,0.4739,0.6297,0.406,11.0618,0.9011,0.1132,0.4758,0.1824,49.7875,0.6041\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img55.jpg,Yes,0.1835,0.3742,0.6057,0.1366,6.4168,0.5227,0.1755,0.5924,0.1697,55.179,0.5825\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img56.jpg,Yes,0.1652,0.4005,0.5748,0.1833,7.3432,0.6054,0.1803,0.6005,0.2061,59.007,0.642\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img53.jpg,Yes,0.372,0.6049,0.8626,0.3933,11.1382,0.8869,0.1068,0.4621,0.1633,48.5516,0.5715\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img54.jpg,Yes,0.2153,0.5145,0.6561,0.2694,9.1155,0.734,0.1943,0.6234,0.1881,52.7146,0.6133\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img55.jpg,Yes,0.3551,0.5941,0.8428,0.4726,12.0647,0.9722,0.1054,0.4591,0.1265,48.2432,0.5029\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img56.jpg,Yes,0.2826,0.565,0.7518,0.4761,11.9569,0.9758,0.1364,0.5224,0.1908,57.6735,0.6177\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img54.jpg,Yes,0.3363,0.593,0.8202,0.4627,11.8744,0.962,0.1964,0.6267,0.174,46.6212,0.5898\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img55.jpg,Yes,0.187,0.3313,0.6116,0.1625,7.0394,0.5701,0.1312,0.5123,0.1439,52.3132,0.5365\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img56.jpg,Yes,0.1385,0.3776,0.5263,0.141,6.4913,0.5311,0.1285,0.507,0.2005,58.0586,0.6332\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img55.jpg,Yes,0.3124,0.5756,0.7905,0.4033,10.944,0.8981,0.1738,0.5896,0.1351,49.8255,0.5198\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img56.jpg,Yes,0.2571,0.5473,0.717,0.3912,10.6329,0.8846,0.1802,0.6002,0.1648,53.0881,0.574\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img56.jpg,Yes,0.2217,0.4543,0.6658,0.1433,6.4387,0.5353,0.1677,0.5792,0.1505,53.6812,0.5486\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img2.jpg,Yes,0.2342,0.5033,0.6844,0.2508,8.2369,0.7082,0.0844,0.4109,0.2417,64.2748,0.6952\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img4.jpg,Yes,0.2051,0.3916,0.6405,0.2766,8.7946,0.7437,0.1662,0.5766,0.2292,64.7785,0.6771\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img5.jpg,Yes,0.2963,0.3948,0.7699,0.2696,8.4689,0.7343,0.0965,0.4393,0.2306,71.6647,0.679\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img6.jpg,Yes,0.254,0.4464,0.7128,0.2164,7.7171,0.6579,0.0691,0.3718,0.2365,64.7594,0.6877\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img7.jpg,Yes,0.3104,0.4764,0.7879,0.2112,7.5718,0.65,0.1027,0.4531,0.2385,61.371,0.6906\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img10.jpg,Yes,0.3363,0.5448,0.8202,0.2129,7.6484,0.6525,0.0661,0.3635,0.2472,65.0668,0.7031\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img11.jpg,Yes,0.3083,0.5416,0.7852,0.2042,7.6195,0.639,0.1626,0.5703,0.2001,61.3824,0.6326\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img4.jpg,Yes,0.1397,0.3961,0.5285,0.1957,7.351,0.6256,0.2497,0.7066,0.1349,51.5853,0.5194\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img5.jpg,Yes,0.1995,0.482,0.6317,0.1574,6.4195,0.561,0.1333,0.5164,0.1583,60.6365,0.5627\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img6.jpg,Yes,0.0908,0.3251,0.4261,0.0787,4.625,0.3969,0.0632,0.3556,0.0756,38.218,0.3888\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img7.jpg,Yes,0.2,0.4664,0.6325,0.1642,6.6261,0.5731,0.1049,0.4581,0.098,42.1113,0.4428\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img10.jpg,Yes,0.2077,0.4862,0.6444,0.1593,6.5693,0.5644,0.0589,0.3431,0.1118,45.9168,0.4729\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img11.jpg,Yes,0.2349,0.5235,0.6854,0.1869,7.2485,0.6114,0.1029,0.4536,0.1548,55.617,0.5564\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img5.jpg,Yes,0.1991,0.3869,0.6311,0.1199,5.7256,0.4898,0.2891,0.7604,0.1797,64.7925,0.5995\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img6.jpg,Yes,0.1937,0.4095,0.6224,0.1772,7.0495,0.5954,0.2199,0.6632,0.1788,59.9202,0.598\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img7.jpg,Yes,0.245,0.4526,0.7,0.1663,6.7868,0.5767,0.3435,0.8289,0.1971,61.177,0.6279\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img10.jpg,Yes,0.1882,0.4274,0.6136,0.1304,6.0445,0.5107,0.2052,0.6406,0.1239,49.4937,0.4979\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img11.jpg,Yes,0.2569,0.5093,0.7168,0.1909,7.4277,0.618,0.2874,0.7582,0.1737,59.8839,0.5894\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img6.jpg,Yes,0.1858,0.3915,0.6095,0.1818,6.967,0.6029,0.13,0.5099,0.1742,63.6179,0.5903\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img7.jpg,Yes,0.2639,0.4391,0.7264,0.1754,6.7894,0.5923,0.1174,0.4846,0.1523,59.6056,0.5519\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img10.jpg,Yes,0.2013,0.4449,0.6344,0.1143,5.525,0.478,0.1228,0.4957,0.1942,66.7805,0.6232\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img11.jpg,Yes,0.3348,0.5599,0.8183,0.1975,7.4008,0.6285,0.2071,0.6436,0.1692,63.0817,0.5818\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img7.jpg,Yes,0.192,0.4085,0.6196,0.1275,5.892,0.505,0.1004,0.4482,0.094,42.0465,0.4335\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img10.jpg,Yes,0.214,0.4593,0.6542,0.1237,5.8374,0.4974,0.0517,0.3216,0.11,46.1197,0.4691\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img11.jpg,Yes,0.2755,0.5319,0.7423,0.1772,7.1072,0.5953,0.1383,0.526,0.1771,59.9849,0.5951\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img10.jpg,Yes,0.3425,0.5729,0.8276,0.1708,6.8133,0.5845,0.0956,0.4374,0.1552,52.8909,0.5571\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img11.jpg,Yes,0.2912,0.5417,0.7632,0.2449,8.3025,0.6998,0.148,0.544,0.1894,60.469,0.6154\ndeepface/tests/dataset/img10.jpg,deepface/tests/dataset/img11.jpg,Yes,0.2535,0.5258,0.712,0.1371,6.2509,0.5237,0.0609,0.349,0.1851,60.8244,0.6085\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img19.jpg,Yes,0.1043,0.3254,0.4567,0.1248,6.2382,0.4996,0.2563,0.7159,0.1712,60.1675,0.5851\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img67.jpg,Yes,0.2197,0.4691,0.6629,0.2387,8.7124,0.6909,0.3072,0.7838,0.1839,58.9528,0.6065\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img67.jpg,Yes,0.1466,0.3965,0.5416,0.1321,6.5557,0.514,0.1504,0.5485,0.1517,55.8044,0.5508\ndeepface/tests/dataset/img20.jpg,deepface/tests/dataset/img21.jpg,Yes,0.0641,0.2068,0.3581,0.1052,5.4253,0.4586,0.1118,0.4729,0.2209,58.7235,0.6646\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img35.jpg,Yes,0.0959,0.2628,0.4381,0.2538,8.7003,0.7124,0.3727,0.8634,0.3244,78.4397,0.8055\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img36.jpg,Yes,0.1553,0.2918,0.5573,0.1861,7.5793,0.6101,0.399,0.8933,0.2923,61.625,0.7646\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img37.jpg,Yes,0.104,0.2651,0.4562,0.1192,6.0818,0.4882,0.4158,0.912,0.2853,62.1217,0.7554\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img36.jpg,Yes,0.2322,0.3945,0.6814,0.2049,7.6366,0.6401,0.38,0.8717,0.2991,74.4219,0.7735\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img37.jpg,Yes,0.1684,0.3516,0.5804,0.186,7.2991,0.6099,0.1662,0.5766,0.164,58.1125,0.5727\ndeepface/tests/dataset/img36.jpg,deepface/tests/dataset/img37.jpg,Yes,0.1084,0.2715,0.4655,0.1338,6.3075,0.5173,0.2909,0.7627,0.2687,54.7311,0.7331\ndeepface/tests/dataset/img22.jpg,deepface/tests/dataset/img23.jpg,Yes,0.3637,0.4569,0.8528,0.3501,9.9752,0.8368,0.1651,0.5746,0.1649,42.2178,0.5742\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img14.jpg,Yes,0.086,0.3384,0.4148,0.1104,5.3711,0.47,0.0952,0.4363,0.2043,61.8532,0.6392\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img15.jpg,Yes,0.1879,0.5589,0.6131,0.2317,7.9283,0.6808,0.3202,0.8003,0.3665,81.975,0.8562\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img57.jpg,Yes,0.1204,0.3952,0.4907,0.1897,7.1445,0.616,0.4599,0.9591,0.3266,82.6217,0.8082\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img58.jpg,Yes,0.1748,0.524,0.5913,0.2264,7.7484,0.6729,0.5006,1.0006,0.3476,75.6494,0.8338\ndeepface/tests/dataset/img14.jpg,deepface/tests/dataset/img15.jpg,Yes,0.1969,0.571,0.6275,0.2322,7.8197,0.6815,0.3409,0.8257,0.4076,89.3521,0.9029\ndeepface/tests/dataset/img14.jpg,deepface/tests/dataset/img57.jpg,Yes,0.1815,0.4206,0.6025,0.128,5.7838,0.5059,0.4251,0.9221,0.3284,84.7328,0.8105\ndeepface/tests/dataset/img14.jpg,deepface/tests/dataset/img58.jpg,Yes,0.2071,0.5609,0.6436,0.2125,7.384,0.6519,0.4993,0.9993,0.3848,83.0627,0.8772\ndeepface/tests/dataset/img15.jpg,deepface/tests/dataset/img57.jpg,Yes,0.198,0.5753,0.6293,0.2073,7.5025,0.6439,0.3957,0.8896,0.3881,91.551,0.881\ndeepface/tests/dataset/img15.jpg,deepface/tests/dataset/img58.jpg,Yes,0.1109,0.4424,0.4709,0.1106,5.4445,0.4702,0.2815,0.7503,0.4153,85.5012,0.9114\ndeepface/tests/dataset/img57.jpg,deepface/tests/dataset/img58.jpg,Yes,0.1581,0.5045,0.5624,0.1452,6.2094,0.5389,0.213,0.6528,0.2184,67.7741,0.6609\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img30.jpg,Yes,0.142,0.28,0.5329,0.1759,7.1649,0.5931,0.3237,0.8046,0.272,59.7856,0.7375\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img31.jpg,Yes,0.1525,0.2777,0.5523,0.1588,6.8613,0.5636,0.5027,1.0027,0.2,49.2171,0.6324\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img32.jpg,Yes,0.1807,0.481,0.6011,0.1997,7.8571,0.632,0.4602,0.9594,0.3084,60.7837,0.7854\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img33.jpg,Yes,0.1757,0.3177,0.5927,0.2406,8.3798,0.6937,0.3446,0.8302,0.1679,47.9061,0.5795\ndeepface/tests/dataset/img30.jpg,deepface/tests/dataset/img31.jpg,Yes,0.1141,0.2453,0.4776,0.1654,6.8805,0.5751,0.3189,0.7986,0.1897,51.344,0.6159\ndeepface/tests/dataset/img30.jpg,deepface/tests/dataset/img32.jpg,Yes,0.1567,0.4575,0.5597,0.1757,7.2731,0.5929,0.1712,0.5851,0.242,57.849,0.6957\ndeepface/tests/dataset/img30.jpg,deepface/tests/dataset/img33.jpg,Yes,0.1548,0.2997,0.5565,0.2074,7.6356,0.644,0.1744,0.5906,0.2601,61.9643,0.7213\ndeepface/tests/dataset/img31.jpg,deepface/tests/dataset/img32.jpg,Yes,0.1402,0.4725,0.5295,0.1009,5.5583,0.4493,0.2098,0.6478,0.2023,51.0814,0.6361\ndeepface/tests/dataset/img31.jpg,deepface/tests/dataset/img33.jpg,Yes,0.0895,0.2296,0.4232,0.1873,7.3261,0.6121,0.1871,0.6118,0.229,56.6939,0.6768\ndeepface/tests/dataset/img32.jpg,deepface/tests/dataset/img33.jpg,Yes,0.2035,0.4953,0.638,0.2415,8.5176,0.6949,0.2426,0.6965,0.2768,62.1742,0.744\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img9.jpg,Yes,0.3147,0.45,0.7933,0.1976,7.3714,0.6287,0.0997,0.4466,0.1695,48.8942,0.5822\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img47.jpg,Yes,0.3638,0.4564,0.853,0.1976,7.2952,0.6287,0.0931,0.4314,0.1869,54.8324,0.6114\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img48.jpg,Yes,0.3068,0.442,0.7834,0.2593,8.2334,0.7201,0.1319,0.5136,0.2194,55.6994,0.6624\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img49.jpg,Yes,0.2353,0.4246,0.686,0.1797,6.8592,0.5996,0.1472,0.5426,0.1904,57.1813,0.617\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img50.jpg,Yes,0.3583,0.5144,0.8465,0.24,8.2435,0.6928,0.132,0.5138,0.138,40.4616,0.5253\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img51.jpg,Yes,0.3446,0.4498,0.8301,0.1666,6.7177,0.5772,0.1413,0.5317,0.1656,46.6621,0.5756\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img47.jpg,Yes,0.3153,0.4374,0.7941,0.1772,6.9625,0.5953,0.1591,0.5641,0.1795,54.801,0.5992\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img48.jpg,Yes,0.3537,0.4845,0.8411,0.1723,6.7796,0.5871,0.1234,0.4969,0.1795,52.6507,0.5992\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img49.jpg,Yes,0.2072,0.4029,0.6437,0.1954,7.2154,0.6251,0.1529,0.553,0.1311,48.2847,0.5121\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img50.jpg,Yes,0.2662,0.4509,0.7296,0.2576,8.5935,0.7177,0.1531,0.5533,0.1205,41.6412,0.491\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img51.jpg,Yes,0.3282,0.4507,0.8102,0.2371,8.0755,0.6887,0.1873,0.612,0.1817,51.7388,0.6029\ndeepface/tests/dataset/img47.jpg,deepface/tests/dataset/img48.jpg,Yes,0.345,0.4542,0.8307,0.1613,6.4777,0.5679,0.1419,0.5328,0.1649,52.6864,0.5742\ndeepface/tests/dataset/img47.jpg,deepface/tests/dataset/img49.jpg,Yes,0.257,0.4382,0.717,0.1944,7.1101,0.6236,0.1089,0.4667,0.2415,66.6307,0.695\ndeepface/tests/dataset/img47.jpg,deepface/tests/dataset/img50.jpg,Yes,0.1844,0.3737,0.6073,0.215,7.7872,0.6558,0.1817,0.6029,0.2052,57.2133,0.6406\ndeepface/tests/dataset/img47.jpg,deepface/tests/dataset/img51.jpg,Yes,0.1979,0.3274,0.6291,0.1303,5.926,0.5106,0.0939,0.4334,0.1209,44.911,0.4918\ndeepface/tests/dataset/img48.jpg,deepface/tests/dataset/img49.jpg,Yes,0.2917,0.4744,0.7639,0.232,7.6321,0.6812,0.1067,0.462,0.2183,61.9241,0.6608\ndeepface/tests/dataset/img48.jpg,deepface/tests/dataset/img50.jpg,Yes,0.3985,0.5478,0.8927,0.2745,8.6847,0.7409,0.2245,0.6701,0.2181,55.6337,0.6605\ndeepface/tests/dataset/img48.jpg,deepface/tests/dataset/img51.jpg,Yes,0.3408,0.4563,0.8255,0.1586,6.4477,0.5633,0.1734,0.5888,0.2082,55.6445,0.6452\ndeepface/tests/dataset/img49.jpg,deepface/tests/dataset/img50.jpg,Yes,0.2073,0.4183,0.6439,0.2437,8.1889,0.6982,0.1738,0.5896,0.1949,57.7545,0.6243\ndeepface/tests/dataset/img49.jpg,deepface/tests/dataset/img51.jpg,Yes,0.2694,0.4491,0.7341,0.2076,7.3716,0.6444,0.1414,0.5318,0.2283,62.518,0.6758\ndeepface/tests/dataset/img50.jpg,deepface/tests/dataset/img51.jpg,Yes,0.2505,0.4295,0.7079,0.2299,8.07,0.6781,0.1894,0.6155,0.1715,47.5665,0.5857\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img17.jpg,Yes,0.2545,0.3759,0.7135,0.1493,6.5661,0.5465,0.2749,0.7414,0.1528,47.8128,0.5528\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img59.jpg,Yes,0.1796,0.4352,0.5993,0.3095,9.6361,0.7868,0.4173,0.9136,0.247,61.4867,0.7028\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img61.jpg,Yes,0.1779,0.3234,0.5965,0.1863,7.2985,0.6105,0.1407,0.5305,0.1643,53.2032,0.5732\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img62.jpg,Yes,0.106,0.2509,0.4604,0.2243,8.1191,0.6698,0.3857,0.8783,0.1953,57.434,0.6249\ndeepface/tests/dataset/img17.jpg,deepface/tests/dataset/img59.jpg,Yes,0.2519,0.5106,0.7099,0.2846,9.3099,0.7544,0.3877,0.8806,0.2994,62.5416,0.7739\ndeepface/tests/dataset/img17.jpg,deepface/tests/dataset/img61.jpg,Yes,0.2507,0.3495,0.708,0.1992,7.6132,0.6313,0.1867,0.6111,0.2101,58.2095,0.6482\ndeepface/tests/dataset/img17.jpg,deepface/tests/dataset/img62.jpg,Yes,0.2533,0.3415,0.7118,0.2672,8.9292,0.731,0.3356,0.8193,0.252,62.3621,0.7099\ndeepface/tests/dataset/img59.jpg,deepface/tests/dataset/img61.jpg,Yes,0.192,0.4543,0.6196,0.4417,11.5466,0.9399,0.3558,0.8435,0.1808,54.8373,0.6014\ndeepface/tests/dataset/img59.jpg,deepface/tests/dataset/img62.jpg,Yes,0.1123,0.3893,0.4738,0.2974,9.5874,0.7713,0.5393,1.0386,0.1934,55.9836,0.6219\ndeepface/tests/dataset/img61.jpg,deepface/tests/dataset/img62.jpg,Yes,0.1251,0.253,0.5002,0.2245,8.1525,0.6701,0.4072,0.9024,0.1757,55.867,0.5928\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img27.jpg,Yes,0.3059,0.5758,0.7822,0.3444,9.7537,0.8299,0.1815,0.6026,0.2396,69.4496,0.6922\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img28.jpg,Yes,0.343,0.5503,0.8282,0.3556,10.2896,0.8433,0.1662,0.5766,0.205,60.0105,0.6403\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img42.jpg,Yes,0.3852,0.542,0.8778,0.3278,9.7855,0.8097,0.2831,0.7524,0.2523,66.2702,0.7104\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img43.jpg,Yes,0.3254,0.5271,0.8067,0.2825,8.887,0.7517,0.2876,0.7585,0.3443,79.1342,0.8299\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img44.jpg,Yes,0.3645,0.5029,0.8539,0.2248,7.9975,0.6706,0.2646,0.7274,0.2572,68.2216,0.7173\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img45.jpg,Yes,0.283,0.4775,0.7523,0.2537,8.5109,0.7124,0.3277,0.8096,0.2726,70.5843,0.7384\ndeepface/tests/dataset/img26.jpg,deepface/tests/dataset/img46.jpg,Yes,0.447,0.5967,0.9456,0.4372,11.0907,0.9351,0.3544,0.8419,0.3079,73.7249,0.7848\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img28.jpg,Yes,0.2847,0.5707,0.7546,0.2178,7.8688,0.6601,0.1205,0.491,0.232,66.1474,0.6811\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img42.jpg,Yes,0.328,0.5946,0.8099,0.2829,8.8485,0.7523,0.3721,0.8627,0.2376,66.8304,0.6893\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img43.jpg,Yes,0.3781,0.65,0.8696,0.2827,8.6093,0.7519,0.2004,0.633,0.2924,75.1537,0.7647\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img44.jpg,Yes,0.3385,0.5968,0.8229,0.2597,8.3408,0.7207,0.2941,0.7669,0.2314,66.8603,0.6803\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img45.jpg,Yes,0.2302,0.5087,0.6785,0.147,6.2958,0.5422,0.2088,0.6463,0.2035,63.0117,0.6379\ndeepface/tests/dataset/img27.jpg,deepface/tests/dataset/img46.jpg,Yes,0.3461,0.6141,0.832,0.388,10.1318,0.881,0.264,0.7266,0.2241,65.3424,0.6694\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img42.jpg,Yes,0.2442,0.4668,0.6988,0.1991,7.7026,0.631,0.2848,0.7547,0.2583,62.2885,0.7187\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img43.jpg,Yes,0.2159,0.4542,0.657,0.2239,8.0122,0.6692,0.2194,0.6624,0.2833,67.7766,0.7527\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img44.jpg,Yes,0.2802,0.4883,0.7486,0.1697,7.0317,0.5826,0.2753,0.742,0.2378,61.8227,0.6897\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img45.jpg,Yes,0.3044,0.5286,0.7803,0.1768,7.1867,0.5946,0.267,0.7307,0.2683,66.1764,0.7326\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img46.jpg,Yes,0.426,0.6222,0.923,0.3338,9.8004,0.817,0.2481,0.7044,0.3072,68.9752,0.7838\ndeepface/tests/dataset/img42.jpg,deepface/tests/dataset/img43.jpg,Yes,0.2018,0.4174,0.6353,0.2418,8.227,0.6954,0.1678,0.5794,0.1483,49.1175,0.5446\ndeepface/tests/dataset/img42.jpg,deepface/tests/dataset/img44.jpg,Yes,0.1685,0.3458,0.5805,0.119,5.8252,0.4879,0.2432,0.6975,0.0957,39.352,0.4375\ndeepface/tests/dataset/img42.jpg,deepface/tests/dataset/img45.jpg,Yes,0.2004,0.4027,0.6331,0.1378,6.2772,0.5251,0.1982,0.6296,0.1742,53.3531,0.5903\ndeepface/tests/dataset/img42.jpg,deepface/tests/dataset/img46.jpg,Yes,0.2253,0.4245,0.6713,0.1946,7.4093,0.6239,0.1761,0.5934,0.1568,49.1856,0.5601\ndeepface/tests/dataset/img43.jpg,deepface/tests/dataset/img44.jpg,Yes,0.2049,0.4137,0.6402,0.2238,7.7899,0.6691,0.1748,0.5912,0.1553,51.4113,0.5573\ndeepface/tests/dataset/img43.jpg,deepface/tests/dataset/img45.jpg,Yes,0.2298,0.4524,0.6779,0.2281,7.8811,0.6754,0.0531,0.3257,0.1801,55.7173,0.6001\ndeepface/tests/dataset/img43.jpg,deepface/tests/dataset/img46.jpg,Yes,0.3731,0.5738,0.8638,0.3741,10.0121,0.865,0.1394,0.5281,0.2184,60.1165,0.6609\ndeepface/tests/dataset/img44.jpg,deepface/tests/dataset/img45.jpg,Yes,0.1743,0.3671,0.5903,0.1052,5.4022,0.4587,0.1636,0.572,0.1275,46.7067,0.505\ndeepface/tests/dataset/img44.jpg,deepface/tests/dataset/img46.jpg,Yes,0.2682,0.4468,0.7324,0.2225,7.7975,0.667,0.1984,0.6299,0.1569,50.7309,0.5602\ndeepface/tests/dataset/img45.jpg,deepface/tests/dataset/img46.jpg,Yes,0.2818,0.486,0.7507,0.2239,7.8397,0.6692,0.1379,0.5252,0.193,56.6925,0.6213\ndeepface/tests/dataset/img24.jpg,deepface/tests/dataset/img25.jpg,Yes,0.1197,0.2833,0.4893,0.1419,6.4307,0.5327,0.1666,0.5773,0.2083,60.7717,0.6454\ndeepface/tests/dataset/img21.jpg,deepface/tests/dataset/img17.jpg,No,0.4907,0.531,0.9907,0.6285,13.4397,1.1212,0.807,1.2704,0.3363,67.5896,0.8201\ndeepface/tests/dataset/img23.jpg,deepface/tests/dataset/img47.jpg,No,0.5671,0.563,1.065,0.6961,13.8325,1.1799,0.1334,0.5166,0.2008,56.6182,0.6337\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img24.jpg,No,0.6046,0.5757,1.0997,0.9105,16.3487,1.3494,0.2078,0.6447,0.2218,57.4046,0.666\ndeepface/tests/dataset/img50.jpg,deepface/tests/dataset/img16.jpg,No,0.7308,0.7317,1.2089,1.0868,17.7134,1.4743,0.3578,0.846,0.2254,57.4293,0.6715\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img18.jpg,No,0.4197,0.569,0.9162,0.8173,13.1177,1.2786,0.6457,1.1364,0.3401,75.8425,0.8247\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img32.jpg,No,0.7555,0.9708,1.2293,1.0896,18.6004,1.4762,0.4448,0.9432,0.2547,60.7653,0.7138\ndeepface/tests/dataset/img51.jpg,deepface/tests/dataset/img26.jpg,No,0.506,0.5807,1.006,0.7329,14.3648,1.2107,0.2928,0.7652,0.2226,61.9764,0.6672\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img27.jpg,No,0.688,0.9511,1.1731,0.9559,15.8763,1.3827,0.3366,0.8205,0.2086,63.7428,0.6459\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img33.jpg,No,0.2131,0.3838,0.6528,0.5762,12.621,1.0735,0.3323,0.8153,0.2895,74.4074,0.7609\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img44.jpg,No,0.7964,0.6879,1.262,0.9531,16.8504,1.3806,0.4968,0.9968,0.2565,63.8992,0.7162\ndeepface/tests/dataset/img8.jpg,deepface/tests/dataset/img61.jpg,No,0.8548,0.6996,1.3075,0.9485,16.2825,1.3773,0.6479,1.1383,0.259,64.0582,0.7198\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img4.jpg,No,0.5862,0.6454,1.0828,0.8624,16.0416,1.3133,0.3185,0.7982,0.2397,65.712,0.6924\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img2.jpg,No,0.6948,0.9246,1.1788,0.9568,16.4217,1.3833,0.3481,0.8344,0.2497,64.7938,0.7067\ndeepface/tests/dataset/img43.jpg,deepface/tests/dataset/img24.jpg,No,0.7757,0.7407,1.2456,1.0007,16.8769,1.4147,0.4194,0.9159,0.3961,77.6798,0.8901\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img20.jpg,No,0.6784,0.7154,1.1648,0.9864,16.5342,1.4045,0.2043,0.6392,0.2499,67.3658,0.707\ndeepface/tests/dataset/img40.jpg,deepface/tests/dataset/img20.jpg,No,0.474,0.4904,0.9736,0.7949,14.8341,1.2609,0.4776,0.9773,0.2192,56.6904,0.6621\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img49.jpg,No,0.725,0.7156,1.2041,1.2676,18.7008,1.5922,0.3254,0.8068,0.1968,58.1537,0.6274\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img29.jpg,No,0.5496,0.5428,1.0484,1.1766,18.8394,1.534,0.2956,0.769,0.323,68.2188,0.8037\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img20.jpg,No,0.7791,0.7506,1.2482,0.945,16.0728,1.3748,0.2922,0.7645,0.2063,58.285,0.6424\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img10.jpg,No,0.6852,0.8904,1.1707,0.9223,16.2459,1.3582,0.3508,0.8377,0.2699,67.3228,0.7347\ndeepface/tests/dataset/img17.jpg,deepface/tests/dataset/img43.jpg,No,0.7785,0.7344,1.2478,0.8234,15.1735,1.2833,0.8461,1.3009,0.3715,74.2351,0.862\ndeepface/tests/dataset/img56.jpg,deepface/tests/dataset/img47.jpg,No,0.5798,0.6885,1.0769,0.9515,16.1507,1.3795,0.2527,0.7109,0.1453,51.4537,0.5391\ndeepface/tests/dataset/img10.jpg,deepface/tests/dataset/img15.jpg,No,0.7144,1.0202,1.1953,1.1267,17.5833,1.5012,0.7384,1.2152,0.404,87.858,0.8989\ndeepface/tests/dataset/img21.jpg,deepface/tests/dataset/img61.jpg,No,0.5642,0.5883,1.0623,0.7305,14.4227,1.2088,0.5523,1.051,0.3206,73.1845,0.8008\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img47.jpg,No,0.6442,0.5952,1.1351,1.0884,17.8754,1.4754,0.6225,1.1158,0.2549,64.7586,0.714\ndeepface/tests/dataset/img11.jpg,deepface/tests/dataset/img51.jpg,No,0.5459,0.6938,1.0448,0.7452,14.4984,1.2208,0.1807,0.6012,0.179,58.3078,0.5983\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img14.jpg,No,0.7235,0.8162,1.2029,1.0599,16.8526,1.4559,0.4242,0.9211,0.26,72.3704,0.7211\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img14.jpg,No,0.5044,0.637,1.0044,0.9856,16.5161,1.404,0.2733,0.7393,0.354,80.6472,0.8415\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img47.jpg,No,0.5752,0.6917,1.0726,1.0042,17.1669,1.4172,0.354,0.8414,0.1709,59.1711,0.5846\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img14.jpg,No,0.6473,0.7275,1.1378,0.9052,15.7543,1.3455,0.2127,0.6523,0.2293,67.2542,0.6771\ndeepface/tests/dataset/img20.jpg,deepface/tests/dataset/img33.jpg,No,0.4886,0.541,0.9885,0.9202,16.051,1.3566,0.6114,1.1058,0.253,62.6318,0.7113\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img62.jpg,No,0.4634,0.5606,0.9627,0.8783,16.0858,1.3254,0.7776,1.2471,0.329,70.4788,0.8112\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img58.jpg,No,0.6048,0.9477,1.0998,0.8084,15.0301,1.2716,0.6403,1.1316,0.3272,69.1393,0.809\ndeepface/tests/dataset/img11.jpg,deepface/tests/dataset/img9.jpg,No,0.6643,0.7784,1.1527,0.899,16.0335,1.3409,0.2452,0.7002,0.1639,56.0631,0.5725\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img46.jpg,No,0.5766,0.7054,1.0738,0.9264,15.9036,1.3611,0.1341,0.5179,0.2298,64.5324,0.6779\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img59.jpg,No,0.7679,0.8729,1.2393,1.0242,17.2778,1.4312,0.7789,1.2481,0.3103,69.694,0.7878\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img35.jpg,No,0.8227,0.8096,1.2827,1.0357,16.7157,1.4392,0.4864,0.9863,0.2401,68.9468,0.693\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img19.jpg,No,0.7052,0.752,1.1876,0.9084,16.1781,1.3479,0.2462,0.7016,0.1449,58.8831,0.5384\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img8.jpg,No,0.4891,0.5451,0.989,0.7908,14.9832,1.2576,0.2408,0.6939,0.2341,63.666,0.6843\ndeepface/tests/dataset/img22.jpg,deepface/tests/dataset/img51.jpg,No,0.5201,0.5378,1.0199,0.6262,13.2133,1.1191,0.1456,0.5397,0.2985,60.8239,0.7726\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img15.jpg,No,0.7147,0.9872,1.1956,1.0641,17.2349,1.4588,0.6229,1.1162,0.4049,89.7221,0.8998\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img29.jpg,No,0.3605,0.5646,0.8492,0.6901,14.6314,1.1748,0.1803,0.6005,0.2709,71.9655,0.7361\ndeepface/tests/dataset/img20.jpg,deepface/tests/dataset/img28.jpg,No,0.5807,0.6843,1.0777,0.8133,15.3844,1.2754,0.1274,0.5048,0.1841,53.6094,0.6067\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img13.jpg,No,0.6366,0.8086,1.1283,0.8832,15.8044,1.3291,0.3343,0.8177,0.177,57.373,0.5949\ndeepface/tests/dataset/img34.jpg,deepface/tests/dataset/img22.jpg,No,0.7842,0.6655,1.2523,1.137,18.5595,1.508,0.4797,0.9795,0.2457,56.695,0.7011\ndeepface/tests/dataset/img67.jpg,deepface/tests/dataset/img58.jpg,No,0.5051,0.8463,1.0051,0.8713,16.0723,1.3201,0.5281,1.0277,0.276,67.6933,0.743\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img9.jpg,No,0.7493,0.7683,1.2242,1.0774,17.7057,1.4679,0.5343,1.0337,0.2113,62.0197,0.65\ndeepface/tests/dataset/img11.jpg,deepface/tests/dataset/img58.jpg,No,0.7495,1.0309,1.2243,1.0359,16.9461,1.4394,0.6411,1.1324,0.2259,65.3131,0.6721\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img42.jpg,No,0.8335,0.8332,1.2911,1.0838,17.9617,1.4723,0.4051,0.9001,0.2449,66.4075,0.6999\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img13.jpg,No,0.476,0.7428,0.9757,1.1589,18.2018,1.5224,0.306,0.7823,0.1879,59.4531,0.6129\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img32.jpg,No,0.7116,0.8739,1.193,1.0402,17.6777,1.4424,0.6456,1.1363,0.2896,71.6141,0.761\ndeepface/tests/dataset/img67.jpg,deepface/tests/dataset/img37.jpg,No,0.4644,0.652,0.9638,0.6683,14.5099,1.1561,0.2355,0.6862,0.2475,61.9234,0.7036\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img7.jpg,No,0.8444,0.7812,1.2666,0.9357,16.3278,1.368,0.4702,1.459,0.4919,67.9214,0.7892\ndeepface/tests/dataset/img11.jpg,deepface/tests/dataset/img27.jpg,No,0.6496,0.8811,1.1398,0.9364,16.0727,1.3685,0.2416,0.6951,0.2127,66.7336,0.6523\ndeepface/tests/dataset/img20.jpg,deepface/tests/dataset/img47.jpg,No,0.6418,0.6011,1.1329,1.0579,16.9991,1.4546,0.31,0.7874,0.1754,54.6104,0.5924\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img44.jpg,No,0.4815,0.6806,0.9814,0.7396,14.1679,1.2162,0.2009,0.6338,0.1836,57.4368,0.606\ndeepface/tests/dataset/img28.jpg,deepface/tests/dataset/img24.jpg,No,0.7851,0.7588,1.2531,0.9406,16.8964,1.3715,0.5353,1.0347,0.2609,60.6589,0.7224\ndeepface/tests/dataset/img67.jpg,deepface/tests/dataset/img43.jpg,No,0.691,0.8328,1.1756,0.9621,16.9417,1.3872,0.3176,0.797,0.3072,72.9213,0.7838\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img51.jpg,No,0.668,0.7024,1.1558,1.1051,17.8105,1.4867,0.2508,0.7083,0.1882,58.3932,0.6135\ndeepface/tests/dataset/img11.jpg,deepface/tests/dataset/img24.jpg,No,0.79,0.801,1.257,1.1173,18.2579,1.4949,0.3437,0.829,0.3096,74.5014,0.7869\ndeepface/tests/dataset/img67.jpg,deepface/tests/dataset/img29.jpg,No,0.5389,0.6762,1.0382,0.8354,16.2507,1.2926,0.1501,0.5479,0.2668,63.7773,0.7305\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img59.jpg,No,0.4237,0.6225,0.9205,0.5002,12.4131,1.0002,0.6375,1.1292,0.2637,58.2849,0.7262\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img24.jpg,No,0.5431,0.5391,1.0422,1.1194,18.4041,1.4962,0.8286,1.2873,0.4458,74.1332,0.9442\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img27.jpg,No,0.821,0.9129,1.2814,0.964,15.9831,1.3885,0.4812,0.9811,0.3061,80.9221,0.7824\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img67.jpg,No,0.5513,0.7255,1.0501,0.9839,17.4219,1.4028,0.8181,1.2792,0.2914,66.5717,0.7634\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img12.jpg,No,0.6435,0.8102,1.1344,0.7661,15.2245,1.2378,0.7472,1.2224,0.2716,61.7006,0.737\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img46.jpg,No,0.8116,0.7634,1.2028,1.1264,17.9427,1.5009,0.9219,1.3578,0.3511,70.3501,0.838\ndeepface/tests/dataset/img32.jpg,deepface/tests/dataset/img27.jpg,No,0.7197,0.9593,1.1997,0.7295,14.4944,1.2079,0.5619,1.0601,0.2725,70.5338,0.7382\ndeepface/tests/dataset/img40.jpg,deepface/tests/dataset/img11.jpg,No,0.7205,0.7563,1.2004,0.9367,16.3131,1.3687,0.5427,1.0418,0.186,59.4748,0.61\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img22.jpg,No,0.5579,0.6466,1.2024,1.0076,17.2122,1.4196,0.7998,1.2648,0.392,65.4579,0.8854\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img35.jpg,No,0.8303,0.9037,1.2887,1.0988,17.1897,1.4824,0.498,0.998,0.2992,78.1653,0.7736\ndeepface/tests/dataset/img5.jpg,deepface/tests/dataset/img45.jpg,No,0.5247,0.6013,1.0244,0.8827,15.3713,1.3287,0.218,0.6603,0.2322,72.2019,0.6814\ndeepface/tests/dataset/img58.jpg,deepface/tests/dataset/img59.jpg,No,0.5937,0.9226,1.0896,0.9931,16.9142,1.4093,0.3525,0.8396,0.3095,68.0277,0.7868\ndeepface/tests/dataset/img40.jpg,deepface/tests/dataset/img45.jpg,No,0.772,0.6976,1.2426,1.0516,17.0626,1.4503,0.5487,1.0475,0.2628,63.7285,0.725\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img3.jpg,No,0.6417,0.6822,1.1329,0.832,15.8921,1.29,1.0374,1.4404,0.2312,54.5718,0.68\ndeepface/tests/dataset/img40.jpg,deepface/tests/dataset/img67.jpg,No,0.4138,0.5942,0.9098,0.948,16.9509,1.3769,0.5121,1.012,0.2455,61.9071,0.7008\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img50.jpg,No,0.5776,0.6934,1.0748,0.816,15.3649,1.2775,0.3515,0.8385,0.2072,61.657,0.6437\ndeepface/tests/dataset/img67.jpg,deepface/tests/dataset/img47.jpg,No,0.5726,0.692,1.0701,0.9987,17.2907,1.4133,0.4099,0.9054,0.1723,55.0701,0.587\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img20.jpg,No,0.684,0.6408,1.1696,0.924,16.3035,1.3594,0.2156,0.6566,0.2111,61.919,0.6498\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img33.jpg,No,0.4625,0.7042,0.9617,0.8709,15.4791,1.3198,0.5609,1.0591,0.3643,76.6864,0.8536\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img58.jpg,No,0.5732,0.8464,1.0707,0.7511,16.6216,1.4011,0.5091,1.009,0.3653,71.3439,0.8548\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img48.jpg,No,0.8186,0.8431,1.2795,1.1082,17.769,1.4888,0.3914,0.8848,0.2363,68.307,0.6875\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img49.jpg,No,0.6614,0.7617,1.1501,0.9935,16.5922,1.4096,0.427,0.9241,0.28,73.8384,0.7483\ndeepface/tests/dataset/img10.jpg,deepface/tests/dataset/img19.jpg,No,0.603,0.7998,1.0982,0.9508,16.8085,1.379,0.3546,0.8422,0.2352,69.7597,0.6859\ndeepface/tests/dataset/img48.jpg,deepface/tests/dataset/img17.jpg,No,0.8174,0.6679,1.2786,0.922,15.8462,1.3579,0.7438,1.2196,0.2545,59.7077,0.7134\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img2.jpg,No,0.6454,0.7751,1.1362,1.0674,17.3381,1.4611,0.1279,0.5058,0.1983,61.7554,0.6298\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img48.jpg,No,0.7325,0.7072,1.2605,0.8198,15.0575,1.2805,0.9352,1.3676,0.3504,69.8577,0.8371\ndeepface/tests/dataset/img30.jpg,deepface/tests/dataset/img44.jpg,No,0.8834,0.7196,1.3292,0.8683,15.5513,1.3178,0.563,1.0611,0.363,75.7833,0.8521\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img29.jpg,No,0.7666,0.7464,1.2382,1.0057,17.0345,1.4183,0.3434,0.8287,0.2411,64.6435,0.6943\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img26.jpg,No,0.6542,0.7763,1.1439,0.9204,16.7702,1.3568,0.2292,0.677,0.262,73.7273,0.7239\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img50.jpg,No,0.6879,0.692,1.1729,1.3134,19.7708,1.6207,0.5038,1.0038,0.2577,54.3931,0.7179\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img49.jpg,No,0.8339,0.8186,1.2915,1.2099,17.7753,1.5555,0.5957,1.0915,0.3315,82.3474,0.8142\ndeepface/tests/dataset/img22.jpg,deepface/tests/dataset/img28.jpg,No,0.6313,0.7037,1.1236,0.8177,15.5314,1.2789,0.2031,0.6373,0.2271,55.2529,0.6739\ndeepface/tests/dataset/img21.jpg,deepface/tests/dataset/img16.jpg,No,0.5678,0.6114,1.0657,0.6376,13.417,1.1293,0.4173,0.9136,0.2696,65.0241,0.7343\ndeepface/tests/dataset/img21.jpg,deepface/tests/dataset/img9.jpg,No,0.7653,0.7211,1.2372,1.0502,17.1485,1.4493,0.5726,1.0701,0.3059,68.2225,0.7822\ndeepface/tests/dataset/img2.jpg,deepface/tests/dataset/img22.jpg,No,0.6866,0.7895,1.1718,1.0005,16.6324,1.4145,0.1955,0.6253,0.3061,69.9331,0.7824\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img29.jpg,No,0.78,0.8337,1.249,1.1016,18.4797,1.4843,0.3404,0.8251,0.3293,67.3331,0.8115\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img37.jpg,No,0.7532,0.7788,1.2273,1.0976,17.7567,1.4816,0.2647,0.7275,0.331,74.5559,0.8137\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img16.jpg,No,0.7516,0.7581,1.226,1.0332,16.9971,1.4375,0.3815,0.8735,0.2859,72.0572,0.7561\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img33.jpg,No,0.4588,0.5085,0.958,1.2465,19.0695,1.5789,0.657,1.1463,0.3722,76.6896,0.8628\ndeepface/tests/dataset/img35.jpg,deepface/tests/dataset/img32.jpg,No,0.2651,0.5459,0.7282,0.5427,12.6429,1.0418,0.409,0.9045,0.2546,69.5802,0.7136\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img48.jpg,No,0.4528,0.678,0.9516,0.8385,15.166,1.295,0.2238,0.669,0.218,56.5099,0.6603\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img23.jpg,No,0.5305,0.5523,1.03,0.7766,14.6983,1.2463,0.1967,0.6272,0.2144,53.347,0.6549\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img33.jpg,No,0.5132,0.6067,1.0131,1.1197,17.8246,1.4965,0.2379,0.6898,0.2301,55.7862,0.6783\ndeepface/tests/dataset/img3.jpg,deepface/tests/dataset/img48.jpg,No,0.4123,0.5581,0.908,0.7879,14.8183,1.2553,0.2125,0.6519,0.2177,56.6639,0.6598\ndeepface/tests/dataset/img43.jpg,deepface/tests/dataset/img25.jpg,No,0.7819,0.7991,1.2505,0.9007,15.601,1.3422,0.4363,0.9341,0.3555,81.219,0.8432\ndeepface/tests/dataset/img14.jpg,deepface/tests/dataset/img9.jpg,No,0.7257,0.7829,1.2047,0.8679,15.1696,1.3175,0.5752,1.0725,0.2493,67.0315,0.7061\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img47.jpg,No,0.5391,0.6276,1.0383,0.7885,14.6406,1.2558,0.1013,0.4501,0.1756,57.5202,0.5926\ndeepface/tests/dataset/img18.jpg,deepface/tests/dataset/img28.jpg,No,0.8293,0.8828,1.2878,1.1151,18.3899,1.4934,0.497,0.997,0.2323,64.8263,0.6816\ndeepface/tests/dataset/img7.jpg,deepface/tests/dataset/img57.jpg,No,0.7468,0.815,1.2221,1.1241,17.3821,1.4994,0.6916,1.1761,0.2244,68.912,0.6699\ndeepface/tests/dataset/img48.jpg,deepface/tests/dataset/img26.jpg,No,0.5877,0.646,1.0842,0.9734,16.2582,1.3953,0.3102,0.7876,0.2059,60.3497,0.6417\ndeepface/tests/dataset/img19.jpg,deepface/tests/dataset/img34.jpg,No,0.2957,0.5193,0.7691,0.5281,12.9854,1.0277,0.5987,1.0943,0.2628,71.5029,0.725\ndeepface/tests/dataset/img41.jpg,deepface/tests/dataset/img37.jpg,No,0.4337,0.5351,0.9314,0.8568,16.0356,1.309,0.684,1.1696,0.3654,65.8114,0.8548\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img32.jpg,No,0.6985,0.8184,1.182,0.9682,16.9113,1.3915,0.5654,1.0634,0.3173,65.953,0.7967\ndeepface/tests/dataset/img12.jpg,deepface/tests/dataset/img57.jpg,No,0.6424,0.8305,1.1335,0.8361,15.6851,1.2931,0.5927,1.0888,0.2943,77.8234,0.7672\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img5.jpg,No,0.662,0.6012,1.1507,0.9931,16.5792,1.4093,0.137,0.5234,0.2182,70.8567,0.6606\ndeepface/tests/dataset/img47.jpg,deepface/tests/dataset/img61.jpg,No,0.6896,0.603,1.1744,0.98,16.5069,1.4,0.5598,1.0581,0.187,57.8252,0.6115\ndeepface/tests/dataset/img33.jpg,deepface/tests/dataset/img49.jpg,No,0.8253,0.7753,1.2848,1.0329,16.5833,1.4373,0.6695,1.1572,0.1992,58.9069,0.6313\ndeepface/tests/dataset/img54.jpg,deepface/tests/dataset/img1.jpg,No,0.5922,0.7522,1.0883,0.9398,16.3902,1.371,0.2515,0.7092,0.2836,62.9648,0.7532\ndeepface/tests/dataset/img29.jpg,deepface/tests/dataset/img25.jpg,No,0.5458,0.5846,1.0448,0.9074,16.167,1.3472,0.622,1.1153,0.2743,68.4542,0.7407\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img67.jpg,No,0.6649,0.7541,1.1531,1.1444,18.95,1.5129,0.3094,0.7866,0.2195,63.9684,0.6625\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img30.jpg,No,0.9492,0.7325,1.3778,0.9241,16.5521,1.3595,0.5533,1.052,0.2955,62.208,0.7687\ndeepface/tests/dataset/img6.jpg,deepface/tests/dataset/img25.jpg,No,0.8285,0.8131,1.2872,0.8051,14.8877,1.2689,0.4267,0.9238,0.3226,79.803,0.8032\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img43.jpg,No,0.6285,0.7443,1.1211,0.838,15.1848,1.2946,0.212,0.6511,0.2685,71.4046,0.7329\ndeepface/tests/dataset/img39.jpg,deepface/tests/dataset/img27.jpg,No,0.7176,0.8685,1.198,0.8199,14.9449,1.2805,0.8286,1.2873,0.285,71.6832,0.755\ndeepface/tests/dataset/img36.jpg,deepface/tests/dataset/img23.jpg,No,0.6223,0.5866,1.1156,1.0693,17.5747,1.4624,0.4266,0.9237,0.32,58.9248,0.7999\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img45.jpg,No,0.6021,0.7106,1.0973,0.9407,16.2744,1.3716,0.2162,0.6576,0.2166,64.3341,0.6582\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img19.jpg,No,0.356,0.5607,0.8437,0.9843,17.485,1.403,0.1858,0.6097,0.2867,75.4126,0.7572\ndeepface/tests/dataset/img55.jpg,deepface/tests/dataset/img17.jpg,No,0.7135,0.6076,1.1946,0.944,16.691,1.374,0.7449,1.2205,0.2951,70.5113,0.7682\ndeepface/tests/dataset/img9.jpg,deepface/tests/dataset/img59.jpg,No,0.8449,0.8766,1.2999,1.1333,18.3376,1.5055,0.8844,1.33,0.3088,67.5783,0.7859\ndeepface/tests/dataset/img58.jpg,deepface/tests/dataset/img49.jpg,No,0.5999,0.8901,1.0953,0.9147,15.3098,1.3526,0.4925,0.9925,0.2266,63.0835,0.6733\ndeepface/tests/dataset/img56.jpg,deepface/tests/dataset/img59.jpg,No,0.7694,0.9166,1.2405,1.0062,17.304,1.4186,0.8703,1.3193,0.2966,70.5446,0.7702\ndeepface/tests/dataset/img4.jpg,deepface/tests/dataset/img8.jpg,No,0.5753,0.6478,1.0727,0.842,15.2912,1.2977,0.3808,0.8727,0.1878,59.2,0.6129\ndeepface/tests/dataset/img16.jpg,deepface/tests/dataset/img25.jpg,No,0.5927,0.6271,1.0887,0.9862,16.5907,1.4044,0.286,0.7563,0.1702,56.0079,0.5835\ndeepface/tests/dataset/img50.jpg,deepface/tests/dataset/img45.jpg,No,0.5692,0.6912,1.067,0.8581,15.6737,1.3101,0.3278,0.8097,0.2383,60.6426,0.6903\ndeepface/tests/dataset/img38.jpg,deepface/tests/dataset/img31.jpg,No,0.4739,0.4751,0.9736,1.1148,18.1862,1.4932,0.6661,1.1542,0.331,70.516,0.8136\ndeepface/tests/dataset/img13.jpg,deepface/tests/dataset/img51.jpg,No,0.5639,0.7621,1.062,0.8047,14.7361,1.2686,0.4,0.8945,0.2308,60.6072,0.6795\ndeepface/tests/dataset/img1.jpg,deepface/tests/dataset/img33.jpg,No,0.7127,0.6418,1.1939,0.9433,16.1933,1.3736,0.6509,1.1409,0.2684,62.7672,0.7326\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img16.jpg,No,0.8344,0.7073,1.2918,0.9023,16.3918,1.3433,0.4153,0.9114,0.3045,65.6394,0.7803\ndeepface/tests/dataset/img53.jpg,deepface/tests/dataset/img23.jpg,No,0.4644,0.5199,0.9637,0.7267,14.6939,1.2056,0.1784,0.5973,0.2774,55.6833,0.7448"
  },
  {
    "path": "tests/unit/dataset/master.csv",
    "content": "file_x,file_y,Decision\r\nimg20.jpg,img21.jpg,Yes\r\nimg16.jpg,img17.jpg,Yes\r\nimg3.jpg,img12.jpg,Yes\r\nimg22.jpg,img23.jpg,Yes\r\nimg24.jpg,img25.jpg,Yes\r\nimg1.jpg,img2.jpg,Yes\r\nimg1.jpg,img4.jpg,Yes\r\nimg1.jpg,img5.jpg,Yes\r\nimg1.jpg,img6.jpg,Yes\r\nimg1.jpg,img7.jpg,Yes\r\nimg1.jpg,img10.jpg,Yes\r\nimg1.jpg,img11.jpg,Yes\r\nimg2.jpg,img4.jpg,Yes\r\nimg2.jpg,img5.jpg,Yes\r\nimg2.jpg,img6.jpg,Yes\r\nimg2.jpg,img7.jpg,Yes\r\nimg2.jpg,img10.jpg,Yes\r\nimg2.jpg,img11.jpg,Yes\r\nimg4.jpg,img5.jpg,Yes\r\nimg4.jpg,img6.jpg,Yes\r\nimg4.jpg,img7.jpg,Yes\r\nimg4.jpg,img10.jpg,Yes\r\nimg4.jpg,img11.jpg,Yes\r\nimg5.jpg,img6.jpg,Yes\r\nimg5.jpg,img7.jpg,Yes\r\nimg5.jpg,img10.jpg,Yes\r\nimg5.jpg,img11.jpg,Yes\r\nimg6.jpg,img7.jpg,Yes\r\nimg6.jpg,img10.jpg,Yes\r\nimg6.jpg,img11.jpg,Yes\r\nimg7.jpg,img10.jpg,Yes\r\nimg7.jpg,img11.jpg,Yes\r\nimg10.jpg,img11.jpg,Yes\r\nimg13.jpg,img14.jpg,Yes\r\nimg13.jpg,img15.jpg,Yes\r\nimg14.jpg,img15.jpg,Yes\r\nimg18.jpg,img19.jpg,Yes\r\nimg8.jpg,img9.jpg,Yes\r\nimg20.jpg,img16.jpg,No\r\nimg20.jpg,img17.jpg,No\r\nimg21.jpg,img16.jpg,No\r\nimg21.jpg,img17.jpg,No\r\nimg20.jpg,img3.jpg,No\r\nimg20.jpg,img12.jpg,No\r\nimg21.jpg,img3.jpg,No\r\nimg21.jpg,img12.jpg,No\r\nimg20.jpg,img22.jpg,No\r\nimg20.jpg,img23.jpg,No\r\nimg21.jpg,img22.jpg,No\r\nimg21.jpg,img23.jpg,No\r\nimg20.jpg,img24.jpg,No\r\nimg20.jpg,img25.jpg,No\r\nimg21.jpg,img24.jpg,No\r\nimg21.jpg,img25.jpg,No\r\nimg20.jpg,img1.jpg,No\r\nimg20.jpg,img2.jpg,No\r\nimg20.jpg,img4.jpg,No\r\nimg20.jpg,img5.jpg,No\r\nimg20.jpg,img6.jpg,No\r\nimg20.jpg,img7.jpg,No\r\nimg20.jpg,img10.jpg,No\r\nimg20.jpg,img11.jpg,No\r\nimg21.jpg,img1.jpg,No\r\nimg21.jpg,img2.jpg,No\r\nimg21.jpg,img4.jpg,No\r\nimg21.jpg,img5.jpg,No\r\nimg21.jpg,img6.jpg,No\r\nimg21.jpg,img7.jpg,No\r\nimg21.jpg,img10.jpg,No\r\nimg21.jpg,img11.jpg,No\r\nimg20.jpg,img13.jpg,No\r\nimg20.jpg,img14.jpg,No\r\nimg20.jpg,img15.jpg,No\r\nimg21.jpg,img13.jpg,No\r\nimg21.jpg,img14.jpg,No\r\nimg21.jpg,img15.jpg,No\r\nimg20.jpg,img18.jpg,No\r\nimg20.jpg,img19.jpg,No\r\nimg21.jpg,img18.jpg,No\r\nimg21.jpg,img19.jpg,No\r\nimg20.jpg,img8.jpg,No\r\nimg20.jpg,img9.jpg,No\r\nimg21.jpg,img8.jpg,No\r\nimg21.jpg,img9.jpg,No\r\nimg16.jpg,img3.jpg,No\r\nimg16.jpg,img12.jpg,No\r\nimg17.jpg,img3.jpg,No\r\nimg17.jpg,img12.jpg,No\r\nimg16.jpg,img22.jpg,No\r\nimg16.jpg,img23.jpg,No\r\nimg17.jpg,img22.jpg,No\r\nimg17.jpg,img23.jpg,No\r\nimg16.jpg,img24.jpg,No\r\nimg16.jpg,img25.jpg,No\r\nimg17.jpg,img24.jpg,No\r\nimg17.jpg,img25.jpg,No\r\nimg16.jpg,img1.jpg,No\r\nimg16.jpg,img2.jpg,No\r\nimg16.jpg,img4.jpg,No\r\nimg16.jpg,img5.jpg,No\r\nimg16.jpg,img6.jpg,No\r\nimg16.jpg,img7.jpg,No\r\nimg16.jpg,img10.jpg,No\r\nimg16.jpg,img11.jpg,No\r\nimg17.jpg,img1.jpg,No\r\nimg17.jpg,img2.jpg,No\r\nimg17.jpg,img4.jpg,No\r\nimg17.jpg,img5.jpg,No\r\nimg17.jpg,img6.jpg,No\r\nimg17.jpg,img7.jpg,No\r\nimg17.jpg,img10.jpg,No\r\nimg17.jpg,img11.jpg,No\r\nimg16.jpg,img13.jpg,No\r\nimg16.jpg,img14.jpg,No\r\nimg16.jpg,img15.jpg,No\r\nimg17.jpg,img13.jpg,No\r\nimg17.jpg,img14.jpg,No\r\nimg17.jpg,img15.jpg,No\r\nimg16.jpg,img18.jpg,No\r\nimg16.jpg,img19.jpg,No\r\nimg17.jpg,img18.jpg,No\r\nimg17.jpg,img19.jpg,No\r\nimg16.jpg,img8.jpg,No\r\nimg16.jpg,img9.jpg,No\r\nimg17.jpg,img8.jpg,No\r\nimg17.jpg,img9.jpg,No\r\nimg3.jpg,img22.jpg,No\r\nimg3.jpg,img23.jpg,No\r\nimg12.jpg,img22.jpg,No\r\nimg12.jpg,img23.jpg,No\r\nimg3.jpg,img24.jpg,No\r\nimg3.jpg,img25.jpg,No\r\nimg12.jpg,img24.jpg,No\r\nimg12.jpg,img25.jpg,No\r\nimg3.jpg,img1.jpg,No\r\nimg3.jpg,img2.jpg,No\r\nimg3.jpg,img4.jpg,No\r\nimg3.jpg,img5.jpg,No\r\nimg3.jpg,img6.jpg,No\r\nimg3.jpg,img7.jpg,No\r\nimg3.jpg,img10.jpg,No\r\nimg3.jpg,img11.jpg,No\r\nimg12.jpg,img1.jpg,No\r\nimg12.jpg,img2.jpg,No\r\nimg12.jpg,img4.jpg,No\r\nimg12.jpg,img5.jpg,No\r\nimg12.jpg,img6.jpg,No\r\nimg12.jpg,img7.jpg,No\r\nimg12.jpg,img10.jpg,No\r\nimg12.jpg,img11.jpg,No\r\nimg3.jpg,img13.jpg,No\r\nimg3.jpg,img14.jpg,No\r\nimg3.jpg,img15.jpg,No\r\nimg12.jpg,img13.jpg,No\r\nimg12.jpg,img14.jpg,No\r\nimg12.jpg,img15.jpg,No\r\nimg3.jpg,img18.jpg,No\r\nimg3.jpg,img19.jpg,No\r\nimg12.jpg,img18.jpg,No\r\nimg12.jpg,img19.jpg,No\r\nimg3.jpg,img8.jpg,No\r\nimg3.jpg,img9.jpg,No\r\nimg12.jpg,img8.jpg,No\r\nimg12.jpg,img9.jpg,No\r\nimg22.jpg,img24.jpg,No\r\nimg22.jpg,img25.jpg,No\r\nimg23.jpg,img24.jpg,No\r\nimg23.jpg,img25.jpg,No\r\nimg22.jpg,img1.jpg,No\r\nimg22.jpg,img2.jpg,No\r\nimg22.jpg,img4.jpg,No\r\nimg22.jpg,img5.jpg,No\r\nimg22.jpg,img6.jpg,No\r\nimg22.jpg,img7.jpg,No\r\nimg22.jpg,img10.jpg,No\r\nimg22.jpg,img11.jpg,No\r\nimg23.jpg,img1.jpg,No\r\nimg23.jpg,img2.jpg,No\r\nimg23.jpg,img4.jpg,No\r\nimg23.jpg,img5.jpg,No\r\nimg23.jpg,img6.jpg,No\r\nimg23.jpg,img7.jpg,No\r\nimg23.jpg,img10.jpg,No\r\nimg23.jpg,img11.jpg,No\r\nimg22.jpg,img13.jpg,No\r\nimg22.jpg,img14.jpg,No\r\nimg22.jpg,img15.jpg,No\r\nimg23.jpg,img13.jpg,No\r\nimg23.jpg,img14.jpg,No\r\nimg23.jpg,img15.jpg,No\r\nimg22.jpg,img18.jpg,No\r\nimg22.jpg,img19.jpg,No\r\nimg23.jpg,img18.jpg,No\r\nimg23.jpg,img19.jpg,No\r\nimg22.jpg,img8.jpg,No\r\nimg22.jpg,img9.jpg,No\r\nimg23.jpg,img8.jpg,No\r\nimg23.jpg,img9.jpg,No\r\nimg24.jpg,img1.jpg,No\r\nimg24.jpg,img2.jpg,No\r\nimg24.jpg,img4.jpg,No\r\nimg24.jpg,img5.jpg,No\r\nimg24.jpg,img6.jpg,No\r\nimg24.jpg,img7.jpg,No\r\nimg24.jpg,img10.jpg,No\r\nimg24.jpg,img11.jpg,No\r\nimg25.jpg,img1.jpg,No\r\nimg25.jpg,img2.jpg,No\r\nimg25.jpg,img4.jpg,No\r\nimg25.jpg,img5.jpg,No\r\nimg25.jpg,img6.jpg,No\r\nimg25.jpg,img7.jpg,No\r\nimg25.jpg,img10.jpg,No\r\nimg25.jpg,img11.jpg,No\r\nimg24.jpg,img13.jpg,No\r\nimg24.jpg,img14.jpg,No\r\nimg24.jpg,img15.jpg,No\r\nimg25.jpg,img13.jpg,No\r\nimg25.jpg,img14.jpg,No\r\nimg25.jpg,img15.jpg,No\r\nimg24.jpg,img18.jpg,No\r\nimg24.jpg,img19.jpg,No\r\nimg25.jpg,img18.jpg,No\r\nimg25.jpg,img19.jpg,No\r\nimg24.jpg,img8.jpg,No\r\nimg24.jpg,img9.jpg,No\r\nimg25.jpg,img8.jpg,No\r\nimg25.jpg,img9.jpg,No\r\nimg1.jpg,img13.jpg,No\r\nimg1.jpg,img14.jpg,No\r\nimg1.jpg,img15.jpg,No\r\nimg2.jpg,img13.jpg,No\r\nimg2.jpg,img14.jpg,No\r\nimg2.jpg,img15.jpg,No\r\nimg4.jpg,img13.jpg,No\r\nimg4.jpg,img14.jpg,No\r\nimg4.jpg,img15.jpg,No\r\nimg5.jpg,img13.jpg,No\r\nimg5.jpg,img14.jpg,No\r\nimg5.jpg,img15.jpg,No\r\nimg6.jpg,img13.jpg,No\r\nimg6.jpg,img14.jpg,No\r\nimg6.jpg,img15.jpg,No\r\nimg7.jpg,img13.jpg,No\r\nimg7.jpg,img14.jpg,No\r\nimg7.jpg,img15.jpg,No\r\nimg10.jpg,img13.jpg,No\r\nimg10.jpg,img14.jpg,No\r\nimg10.jpg,img15.jpg,No\r\nimg11.jpg,img13.jpg,No\r\nimg11.jpg,img14.jpg,No\r\nimg11.jpg,img15.jpg,No\r\nimg1.jpg,img18.jpg,No\r\nimg1.jpg,img19.jpg,No\r\nimg2.jpg,img18.jpg,No\r\nimg2.jpg,img19.jpg,No\r\nimg4.jpg,img18.jpg,No\r\nimg4.jpg,img19.jpg,No\r\nimg5.jpg,img18.jpg,No\r\nimg5.jpg,img19.jpg,No\r\nimg6.jpg,img18.jpg,No\r\nimg6.jpg,img19.jpg,No\r\nimg7.jpg,img18.jpg,No\r\nimg7.jpg,img19.jpg,No\r\nimg10.jpg,img18.jpg,No\r\nimg10.jpg,img19.jpg,No\r\nimg11.jpg,img18.jpg,No\r\nimg11.jpg,img19.jpg,No\r\nimg1.jpg,img8.jpg,No\r\nimg1.jpg,img9.jpg,No\r\nimg2.jpg,img8.jpg,No\r\nimg2.jpg,img9.jpg,No\r\nimg4.jpg,img8.jpg,No\r\nimg4.jpg,img9.jpg,No\r\nimg5.jpg,img8.jpg,No\r\nimg5.jpg,img9.jpg,No\r\nimg6.jpg,img8.jpg,No\r\nimg6.jpg,img9.jpg,No\r\nimg7.jpg,img8.jpg,No\r\nimg7.jpg,img9.jpg,No\r\nimg10.jpg,img8.jpg,No\r\nimg10.jpg,img9.jpg,No\r\nimg11.jpg,img8.jpg,No\r\nimg11.jpg,img9.jpg,No\r\nimg13.jpg,img18.jpg,No\r\nimg13.jpg,img19.jpg,No\r\nimg14.jpg,img18.jpg,No\r\nimg14.jpg,img19.jpg,No\r\nimg15.jpg,img18.jpg,No\r\nimg15.jpg,img19.jpg,No\r\nimg13.jpg,img8.jpg,No\r\nimg13.jpg,img9.jpg,No\r\nimg14.jpg,img8.jpg,No\r\nimg14.jpg,img9.jpg,No\r\nimg15.jpg,img8.jpg,No\r\nimg15.jpg,img9.jpg,No\r\nimg18.jpg,img8.jpg,No\r\nimg18.jpg,img9.jpg,No\r\nimg19.jpg,img8.jpg,No\r\nimg19.jpg,img9.jpg,No"
  },
  {
    "path": "tests/unit/face-recognition-how.py",
    "content": "# 3rd party dependencies\r\nimport matplotlib.pyplot as plt\r\nimport numpy as np\r\nimport cv2\r\n\r\n# project dependencies\r\nfrom deepface import DeepFace\r\nfrom deepface.modules import verification\r\nfrom deepface.models.FacialRecognition import FacialRecognition\r\nfrom deepface.commons.logger import Logger\r\n\r\nlogger = Logger()\r\n\r\n# ----------------------------------------------\r\n# build face recognition model\r\n\r\nmodel_name = \"VGG-Face\"\r\n\r\nmodel: FacialRecognition = DeepFace.build_model(task=\"facial_recognition\", model_name=model_name)\r\n\r\ntarget_size = model.input_shape\r\n\r\nlogger.info(f\"target_size: {target_size}\")\r\n\r\n# ----------------------------------------------\r\n# load images and find embeddings\r\n\r\nimg1 = DeepFace.extract_faces(img_path=\"dataset/img1.jpg\")[0][\"face\"]\r\nimg1 = cv2.resize(img1, target_size)\r\nimg1 = np.expand_dims(img1, axis=0)  # to (1, 224, 224, 3)\r\nimg1_representation = model.forward(img1)\r\n\r\nimg2 = DeepFace.extract_faces(img_path=\"dataset/img3.jpg\")[0][\"face\"]\r\nimg2 = cv2.resize(img2, target_size)\r\nimg2 = np.expand_dims(img2, axis=0)\r\nimg2_representation = model.forward(img2)\r\n\r\nimg1_representation = np.array(img1_representation)\r\nimg2_representation = np.array(img2_representation)\r\n\r\n# ----------------------------------------------\r\n# distance between two images - euclidean distance formula\r\ndistance_vector = np.square(img1_representation - img2_representation)\r\ncurrent_distance = np.sqrt(distance_vector.sum())\r\nlogger.info(f\"Euclidean distance: {current_distance}\")\r\n\r\nthreshold = verification.find_threshold(model_name=model_name, distance_metric=\"euclidean\")\r\nlogger.info(f\"Threshold for {model_name}-euclidean pair is {threshold}\")\r\n\r\nif current_distance < threshold:\r\n    logger.info(\r\n        f\"This pair is same person because its distance {current_distance}\"\r\n        f\" is less than threshold {threshold}\"\r\n    )\r\nelse:\r\n    logger.info(\r\n        f\"This pair is different persons because its distance {current_distance}\"\r\n        f\" is greater than threshold {threshold}\"\r\n    )\r\n# ----------------------------------------------\r\n# expand vectors to be shown better in graph\r\n\r\nimg1_graph = []\r\nimg2_graph = []\r\ndistance_graph = []\r\n\r\nfor i in range(0, 200):\r\n    img1_graph.append(img1_representation)\r\n    img2_graph.append(img2_representation)\r\n    distance_graph.append(distance_vector)\r\n\r\nimg1_graph = np.array(img1_graph)\r\nimg2_graph = np.array(img2_graph)\r\ndistance_graph = np.array(distance_graph)\r\n\r\n# ----------------------------------------------\r\n# plotting\r\n\r\nfig = plt.figure()\r\n\r\nax1 = fig.add_subplot(3, 2, 1)\r\nplt.imshow(img1[0])\r\nplt.axis(\"off\")\r\n\r\nax2 = fig.add_subplot(3, 2, 2)\r\nim = plt.imshow(img1_graph, interpolation=\"nearest\", cmap=plt.cm.ocean)\r\nplt.colorbar()\r\n\r\nax3 = fig.add_subplot(3, 2, 3)\r\nplt.imshow(img2[0])\r\nplt.axis(\"off\")\r\n\r\nax4 = fig.add_subplot(3, 2, 4)\r\nim = plt.imshow(img2_graph, interpolation=\"nearest\", cmap=plt.cm.ocean)\r\nplt.colorbar()\r\n\r\nax5 = fig.add_subplot(3, 2, 5)\r\nplt.text(0.35, 0, f\"Distance: {current_distance}\")\r\nplt.axis(\"off\")\r\n\r\nax6 = fig.add_subplot(3, 2, 6)\r\nim = plt.imshow(distance_graph, interpolation=\"nearest\", cmap=plt.cm.ocean)\r\nplt.colorbar()\r\n\r\nplt.show()\r\n\r\n# ----------------------------------------------\r\n"
  },
  {
    "path": "tests/unit/overlay.py",
    "content": "# 3rd party dependencies\nimport cv2\nimport matplotlib.pyplot as plt\n\n# project dependencies\nfrom deepface.modules import streaming\nfrom deepface import DeepFace\n\nimg_path = \"dataset/img1.jpg\"\nimg = cv2.imread(img_path)\n\noverlay_img_path = \"dataset/img6.jpg\"\nface_objs = DeepFace.extract_faces(overlay_img_path)\noverlay_img = face_objs[0][\"face\"][:, :, ::-1] * 255\n\noverlay_img = cv2.resize(overlay_img, (112, 112))\n\nraw_img = img.copy()\n\ndemographies = DeepFace.analyze(img_path=img_path, actions=(\"age\", \"gender\", \"emotion\"))\ndemography = demographies[0]\n\nx = demography[\"region\"][\"x\"]\ny = demography[\"region\"][\"y\"]\nw = demography[\"region\"][\"w\"]\nh = demography[\"region\"][\"h\"]\n\nimg = streaming.highlight_facial_areas(img=img, faces_coordinates=[(x, y, w, h)])\n\nimg = streaming.overlay_emotion(\n    img=img,\n    emotion_probas=demography[\"emotion\"],\n    x=x,\n    y=y,\n    w=w,\n    h=h,\n)\n\nimg = streaming.overlay_age_gender(\n    img=img,\n    apparent_age=demography[\"age\"],\n    gender=demography[\"dominant_gender\"][0:1],\n    x=x,\n    y=y,\n    w=w,\n    h=h,\n)\n\nimg = streaming.overlay_identified_face(\n    img=img,\n    target_img=overlay_img,\n    label=\"angelina\",\n    x=x,\n    y=y,\n    w=w,\n    h=h,\n)\n\nplt.imshow(img[:, :, ::-1])\nplt.show()\n"
  },
  {
    "path": "tests/unit/stream.py",
    "content": "from deepface import DeepFace\n\nDeepFace.stream(\"dataset\", enable_face_analysis=False, anti_spoofing=True)  # opencv\n# DeepFace.stream(\"dataset\", detector_backend = 'opencv')\n# DeepFace.stream(\"dataset\", detector_backend = 'ssd')\n# DeepFace.stream(\"dataset\", detector_backend = 'mtcnn')\n# DeepFace.stream(\"dataset\", detector_backend = 'dlib')\n# DeepFace.stream(\"dataset\", detector_backend = 'retinaface')\n"
  },
  {
    "path": "tests/unit/test_analyze.py",
    "content": "# 3rd party dependencies\nimport cv2\nimport numpy as np\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.models.demography import Age, Emotion, Gender, Race\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndetectors = [\"opencv\", \"mtcnn\"]\n\n\ndef test_standard_analyze():\n    img = \"dataset/img4.jpg\"\n    demography_objs = DeepFace.analyze(img, silent=True)\n\n    # return type should be list of dict for non batch input\n    assert isinstance(demography_objs, list)\n\n    for demography in demography_objs:\n        assert isinstance(demography, dict)\n        logger.debug(demography)\n        assert demography[\"age\"] > 20 and demography[\"age\"] < 40\n        assert demography[\"dominant_gender\"] == \"Woman\"\n    logger.info(\"✅ test standard analyze done\")\n\n\ndef test_analyze_with_all_actions_as_tuple():\n    img = \"dataset/img4.jpg\"\n    demography_objs = DeepFace.analyze(\n        img, actions=(\"age\", \"gender\", \"race\", \"emotion\"), silent=True\n    )\n\n    for demography in demography_objs:\n        logger.debug(f\"Demography: {demography}\")\n        assert type(demography) == dict\n        age = demography[\"age\"]\n        gender = demography[\"dominant_gender\"]\n        race = demography[\"dominant_race\"]\n        emotion = demography[\"dominant_emotion\"]\n        logger.debug(f\"Age: {age}\")\n        logger.debug(f\"Gender: {gender}\")\n        logger.debug(f\"Race: {race}\")\n        logger.debug(f\"Emotion: {emotion}\")\n        assert demography.get(\"age\") is not None\n        assert demography.get(\"dominant_gender\") is not None\n        assert demography.get(\"dominant_race\") is not None\n        assert demography.get(\"dominant_emotion\") is not None\n\n    logger.info(\"✅ test analyze for all actions as tuple done\")\n\n\ndef test_analyze_with_all_actions_as_list():\n    img = \"dataset/img4.jpg\"\n    demography_objs = DeepFace.analyze(\n        img, actions=[\"age\", \"gender\", \"race\", \"emotion\"], silent=True\n    )\n\n    for demography in demography_objs:\n        logger.debug(f\"Demography: {demography}\")\n        assert type(demography) == dict\n        age = demography[\"age\"]\n        gender = demography[\"dominant_gender\"]\n        race = demography[\"dominant_race\"]\n        emotion = demography[\"dominant_emotion\"]\n        logger.debug(f\"Age: {age}\")\n        logger.debug(f\"Gender: {gender}\")\n        logger.debug(f\"Race: {race}\")\n        logger.debug(f\"Emotion: {emotion}\")\n        assert demography.get(\"age\") is not None\n        assert demography.get(\"dominant_gender\") is not None\n        assert demography.get(\"dominant_race\") is not None\n        assert demography.get(\"dominant_emotion\") is not None\n\n    logger.info(\"✅ test analyze for all actions as array done\")\n\n\ndef test_analyze_for_some_actions():\n    img = \"dataset/img4.jpg\"\n    demography_objs = DeepFace.analyze(img, [\"age\", \"gender\"], silent=True)\n\n    for demography in demography_objs:\n        assert type(demography) == dict\n        age = demography[\"age\"]\n        gender = demography[\"dominant_gender\"]\n\n        logger.debug(f\"Age: { age }\")\n        logger.debug(f\"Gender: {gender}\")\n\n        assert demography.get(\"age\") is not None\n        assert demography.get(\"dominant_gender\") is not None\n\n        # these are not in actions\n        assert demography.get(\"dominant_race\") is None\n        assert demography.get(\"dominant_emotion\") is None\n\n    logger.info(\"✅ test analyze for some actions done\")\n\n\ndef test_analyze_for_preloaded_image():\n    img = cv2.imread(\"dataset/img1.jpg\")\n    resp_objs = DeepFace.analyze(img, silent=True)\n\n    # return type should be list of dict for non batch input\n    assert isinstance(resp_objs, list)\n\n    for resp_obj in resp_objs:\n        assert isinstance(resp_obj, dict)\n        logger.debug(resp_obj)\n        assert resp_obj[\"age\"] > 20 and resp_obj[\"age\"] < 40\n        assert resp_obj[\"dominant_gender\"] == \"Woman\"\n\n    logger.info(\"✅ test analyze for pre-loaded image done\")\n\n\ndef test_analyze_for_different_detectors():\n    img_paths = [\n        \"dataset/img1.jpg\",\n        \"dataset/img5.jpg\",\n        \"dataset/img6.jpg\",\n        \"dataset/img8.jpg\",\n        \"dataset/img1.jpg\",\n        \"dataset/img2.jpg\",\n        \"dataset/img1.jpg\",\n        \"dataset/img2.jpg\",\n        \"dataset/img6.jpg\",\n        \"dataset/img6.jpg\",\n    ]\n\n    for img_path in img_paths:\n        for detector in detectors:\n            results = DeepFace.analyze(\n                img_path, actions=(\"gender\",), detector_backend=detector, enforce_detection=False\n            )\n            # return type should be list of dict for non batch input\n            assert isinstance(results, list)\n            for result in results:\n                assert isinstance(result, dict)\n                logger.debug(result)\n\n                # validate keys\n                assert \"gender\" in result.keys()\n                assert \"dominant_gender\" in result.keys() and result[\"dominant_gender\"] in [\n                    \"Man\",\n                    \"Woman\",\n                ]\n\n                # validate probabilities\n                if result[\"dominant_gender\"] == \"Man\":\n                    assert result[\"gender\"][\"Man\"] > result[\"gender\"][\"Woman\"]\n                else:\n                    assert result[\"gender\"][\"Man\"] < result[\"gender\"][\"Woman\"]\n\n\ndef test_analyze_for_batched_image_as_list_of_string():\n    img_paths = [\"dataset/img1.jpg\", \"dataset/img2.jpg\", \"dataset/couple.jpg\"]\n    expected_faces = [1, 1, 2]\n\n    demography_batch = DeepFace.analyze(img_path=img_paths, silent=True)\n    # return type should be list of list of dict for batch input\n    assert isinstance(demography_batch, list)\n\n    # 3 image in batch, so 3 demography objects\n    assert len(demography_batch) == len(img_paths)\n\n    for idx, demography_objs in enumerate(demography_batch):\n        assert isinstance(demography_objs, list)\n        assert len(demography_objs) == expected_faces[idx]\n        for demography_obj in demography_objs:\n            assert isinstance(demography_obj, dict)\n\n            assert demography_obj[\"age\"] > 20 and demography_obj[\"age\"] < 40\n            assert demography_obj[\"dominant_gender\"] in [\"Woman\", \"Man\"]\n\n    logger.info(\"✅ test analyze for batched image as list of string done\")\n\n\ndef test_analyze_for_batched_image_as_list_of_numpy():\n    img_paths = [\"dataset/img1.jpg\", \"dataset/img2.jpg\", \"dataset/couple.jpg\"]\n    expected_faces = [1, 1, 2]\n\n    imgs = []\n    for img_path in img_paths:\n        img = cv2.imread(img_path)\n        imgs.append(img)\n\n    demography_batch = DeepFace.analyze(img_path=imgs, silent=True)\n    # return type should be list of list of dict for batch input\n    assert isinstance(demography_batch, list)\n\n    # 3 image in batch, so 3 demography objects\n    assert len(demography_batch) == len(img_paths)\n\n    for idx, demography_objs in enumerate(demography_batch):\n        assert isinstance(demography_objs, list)\n        assert len(demography_objs) == expected_faces[idx]\n        for demography_obj in demography_objs:\n            assert isinstance(demography_obj, dict)\n\n            assert demography_obj[\"age\"] > 20 and demography_obj[\"age\"] < 40\n            assert demography_obj[\"dominant_gender\"] in [\"Woman\", \"Man\"]\n\n    logger.info(\"✅ test analyze for batched image as list of numpy done\")\n\n\ndef test_analyze_for_numpy_batched_image():\n    img1_path = \"dataset/img4.jpg\"\n    img2_path = \"dataset/couple.jpg\"\n\n    # Copy and combine the same image to create multiple faces\n    img1 = cv2.imread(img1_path)\n    img2 = cv2.imread(img2_path)\n\n    expected_num_faces = [1, 2]\n\n    img1 = cv2.resize(img1, (500, 500))\n    img2 = cv2.resize(img2, (500, 500))\n\n    img = np.stack([img1, img2])\n    assert len(img.shape) == 4  # Check dimension.\n    assert img.shape[0] == 2  # Check batch size.\n\n    demography_batch = DeepFace.analyze(img, silent=True)\n    # return type should be list of list of dict for batch input\n\n    assert isinstance(demography_batch, list)\n\n    # 2 image in batch, so 2 demography objects.\n    assert len(demography_batch) == 2\n\n    for i, demography_objs in enumerate(demography_batch):\n        assert isinstance(demography_objs, list)\n\n        assert len(demography_objs) == expected_num_faces[i]\n        for demography in demography_objs:  # Iterate over faces\n            assert isinstance(demography, dict)\n\n            assert demography[\"age\"] > 20 and demography[\"age\"] < 40\n            assert demography[\"dominant_gender\"] in [\"Woman\", \"Man\"]\n\n    logger.info(\"✅ test analyze for multiple faces done\")\n\n\ndef test_batch_detect_age_for_multiple_faces():\n    # Load test image and resize to model input size\n    img = cv2.resize(cv2.imread(\"dataset/img1.jpg\"), (224, 224))\n    imgs = [img, img]\n    results = Age.ApparentAgeClient().predict(imgs)\n    # Check there are two ages detected\n    assert len(results) == 2\n    # Check two faces ages are the same in integer format（e.g. 23.6 -> 23）\n    # Must use int() to compare because of max float precision issue in different platforms\n    assert np.array_equal(int(results[0]), int(results[1]))\n    logger.info(\"✅ test batch detect age for multiple faces done\")\n\n\ndef test_batch_detect_emotion_for_multiple_faces():\n    # Load test image and resize to model input size\n    img = cv2.resize(cv2.imread(\"dataset/img1.jpg\"), (224, 224))\n    imgs = [img, img]\n    results = Emotion.EmotionClient().predict(imgs)\n    # Check there are two emotions detected\n    assert len(results) == 2\n    # Check two faces emotions are the same\n    assert np.array_equal(results[0], results[1])\n    logger.info(\"✅ test batch detect emotion for multiple faces done\")\n\n\ndef test_batch_detect_gender_for_multiple_faces():\n    # Load test image and resize to model input size\n    img = cv2.resize(cv2.imread(\"dataset/img1.jpg\"), (224, 224))\n    imgs = [img, img]\n    results = Gender.GenderClient().predict(imgs)\n    # Check there are two genders detected\n    assert len(results) == 2\n    # Check two genders are the same\n    assert np.array_equal(results[0], results[1])\n    logger.info(\"✅ test batch detect gender for multiple faces done\")\n\n\ndef test_batch_detect_race_for_multiple_faces():\n    # Load test image and resize to model input size\n    img = cv2.resize(cv2.imread(\"dataset/img1.jpg\"), (224, 224))\n    imgs = [img, img]\n    results = Race.RaceClient().predict(imgs)\n    # Check there are two races detected\n    assert len(results) == 2\n    # Check two races are the same\n    assert np.array_equal(results[0], results[1])\n    logger.info(\"✅ test batch detect race for multiple faces done\")\n"
  },
  {
    "path": "tests/unit/test_api.py",
    "content": "# built-in dependencies\nimport base64\nimport os\nimport shutil\nimport unittest\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\nfrom unittest.mock import MagicMock, patch\n\n# 3rd party dependencies\nimport flask\nimport gdown\nimport numpy as np\nimport werkzeug\nfrom flask import Flask\nfrom packaging import version\n\n# project dependencies\nfrom deepface.api.src.app import create_app\nfrom deepface.api.src.modules.core import routes\nfrom deepface.commons.logger import Logger\nfrom deepface.modules.detection import extract_faces, DetectedFace, FacialAreaRegion\nfrom deepface.modules import detection\n\nlogger = Logger()\n\nIMG1_SOURCE = \"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img1.jpg\"\nIMG2_SOURCE = \"https://raw.githubusercontent.com/serengil/deepface/refs/heads/master/tests/unit/dataset/img2.jpg\"\nDUMMY_APP = Flask(__name__)\n\n\n# pylint: disable=too-many-public-methods, too-many-positional-arguments\nclass TestApiFunctions(unittest.TestCase):\n    def setUp(self):\n        download_test_images(IMG1_SOURCE)\n        download_test_images(IMG2_SOURCE)\n        app = create_app()\n        app.config[\"DEBUG\"] = True\n        app.config[\"TESTING\"] = True\n        self.app = app.test_client()\n\n    def setup_invalid_image(self):\n        \"\"\"Create a file with invalid image data in a temporary directory.\"\"\"\n        self.tempdir = TemporaryDirectory(prefix=\"test-\", dir=\".\")\n        self.addCleanup(shutil.rmtree, self.tempdir.name)\n        self.invalid_image_path = Path(self.tempdir.name) / \"invalid.jpg\"\n        self.invalid_image_path.write_text(\"Not JPEG data\")\n\n    def test_tp_verify(self):\n        data = {\n            \"img1\": \"dataset/img1.jpg\",\n            \"img2\": \"dataset/img2.jpg\",\n        }\n        response = self.app.post(\"/verify\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n\n        assert result.get(\"verified\") is not None\n        assert result.get(\"model\") is not None\n        assert result.get(\"similarity_metric\") is not None\n        assert result.get(\"detector_backend\") is not None\n        assert result.get(\"distance\") is not None\n        assert result.get(\"threshold\") is not None\n        assert result.get(\"facial_areas\") is not None\n\n        assert result.get(\"verified\") is True\n\n        logger.info(\"✅ true-positive verification api test is done\")\n\n    def test_tn_verify(self):\n        data = {\n            \"img1\": \"dataset/img1.jpg\",\n            \"img2\": \"dataset/img2.jpg\",\n        }\n        response = self.app.post(\"/verify\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n\n        assert result.get(\"verified\") is not None\n        assert result.get(\"model\") is not None\n        assert result.get(\"similarity_metric\") is not None\n        assert result.get(\"detector_backend\") is not None\n        assert result.get(\"distance\") is not None\n        assert result.get(\"threshold\") is not None\n        assert result.get(\"facial_areas\") is not None\n\n        assert result.get(\"verified\") is True\n\n        logger.info(\"✅ true-negative verification api test is done\")\n\n    def test_represent(self):\n        data = {\n            \"img\": \"dataset/img1.jpg\",\n        }\n        response = self.app.post(\"/represent\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n        assert result.get(\"results\") is not None\n        assert isinstance(result[\"results\"], list) is True\n        assert len(result[\"results\"]) > 0\n        for i in result[\"results\"]:\n            assert i.get(\"embedding\") is not None\n            assert isinstance(i.get(\"embedding\"), list) is True\n            assert len(i.get(\"embedding\")) == 4096\n            assert i.get(\"face_confidence\") is not None\n            assert i.get(\"facial_area\") is not None\n\n        logger.info(\"✅ representation api test is done (for image path)\")\n\n    def test_represent_encoded(self):\n        image_path = \"dataset/img1.jpg\"\n        with open(image_path, \"rb\") as image_file:\n            encoded_string = \"data:image/jpeg;base64,\" + base64.b64encode(image_file.read()).decode(\n                \"utf8\"\n            )\n\n        data = {\"model_name\": \"Facenet\", \"detector_backend\": \"mtcnn\", \"img\": encoded_string}\n\n        response = self.app.post(\"/represent\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n        assert result.get(\"results\") is not None\n        assert isinstance(result[\"results\"], list) is True\n        assert len(result[\"results\"]) > 0\n        for i in result[\"results\"]:\n            assert i.get(\"embedding\") is not None\n            assert isinstance(i.get(\"embedding\"), list) is True\n            assert len(i.get(\"embedding\")) == 128\n            assert i.get(\"face_confidence\") is not None\n            assert i.get(\"facial_area\") is not None\n\n        logger.info(\"✅ representation api test is done (for encoded image)\")\n\n    def test_represent_url(self):\n        data = {\n            \"model_name\": \"Facenet\",\n            \"detector_backend\": \"mtcnn\",\n            \"img\": \"https://github.com/serengil/deepface/blob/master/tests/unit/dataset/couple.jpg?raw=true\",\n        }\n\n        response = self.app.post(\"/represent\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n        assert result.get(\"results\") is not None\n        assert isinstance(result[\"results\"], list) is True\n        assert len(result[\"results\"]) == 2  # 2 faces are in the image link\n        for i in result[\"results\"]:\n            assert i.get(\"embedding\") is not None\n            assert isinstance(i.get(\"embedding\"), list) is True\n            assert len(i.get(\"embedding\")) == 128\n            assert i.get(\"face_confidence\") is not None\n            assert i.get(\"facial_area\") is not None\n\n        logger.info(\"✅ representation api test is done (for image url)\")\n\n    def test_analyze(self):\n        data = {\n            \"img\": \"dataset/img1.jpg\",\n        }\n        response = self.app.post(\"/analyze\", json=data)\n        assert response.status_code == 200\n        result = response.json\n        logger.debug(result)\n        assert result.get(\"results\") is not None\n        assert isinstance(result[\"results\"], list) is True\n        assert len(result[\"results\"]) > 0\n        for i in result[\"results\"]:\n            assert i.get(\"age\") is not None\n            assert isinstance(i.get(\"age\"), (int, float))\n            assert i.get(\"dominant_gender\") is not None\n            assert i.get(\"dominant_gender\") in [\"Man\", \"Woman\"]\n            assert i.get(\"dominant_emotion\") is not None\n            assert i.get(\"dominant_race\") is not None\n\n        logger.info(\"✅ analyze api test is done\")\n\n    def test_analyze_inputformats(self):\n        image_path = \"dataset/couple.jpg\"\n        with open(image_path, \"rb\") as image_file:\n            encoded_image = \"data:image/jpeg;base64,\" + base64.b64encode(image_file.read()).decode(\n                \"utf8\"\n            )\n\n        image_sources = [\n            # image path\n            image_path,\n            # image url\n            f\"https://github.com/serengil/deepface/blob/master/tests/unit/{image_path}?raw=true\",\n            # encoded image\n            encoded_image,\n        ]\n\n        results = []\n        for img in image_sources:\n            data = {\n                \"img\": img,\n            }\n            response = self.app.post(\"/analyze\", json=data)\n\n            assert response.status_code == 200\n            result = response.json\n            results.append(result)\n\n            assert result.get(\"results\") is not None\n            assert isinstance(result[\"results\"], list) is True\n            assert len(result[\"results\"]) > 0\n            for i in result[\"results\"]:\n                assert i.get(\"age\") is not None\n                assert isinstance(i.get(\"age\"), (int, float))\n                assert i.get(\"dominant_gender\") is not None\n                assert i.get(\"dominant_gender\") in [\"Man\", \"Woman\"]\n                assert i.get(\"dominant_emotion\") is not None\n                assert i.get(\"dominant_race\") is not None\n\n        assert len(results[0][\"results\"]) == len(results[1][\"results\"]) and len(\n            results[0][\"results\"]\n        ) == len(results[2][\"results\"])\n\n        for i in range(len(results[0][\"results\"])):\n            assert (\n                results[0][\"results\"][i][\"dominant_emotion\"]\n                == results[1][\"results\"][i][\"dominant_emotion\"]\n                and results[0][\"results\"][i][\"dominant_emotion\"]\n                == results[2][\"results\"][i][\"dominant_emotion\"]\n            )\n\n            assert (\n                results[0][\"results\"][i][\"dominant_gender\"]\n                == results[1][\"results\"][i][\"dominant_gender\"]\n                and results[0][\"results\"][i][\"dominant_gender\"]\n                == results[2][\"results\"][i][\"dominant_gender\"]\n            )\n\n            assert (\n                results[0][\"results\"][i][\"dominant_race\"]\n                == results[1][\"results\"][i][\"dominant_race\"]\n                and results[0][\"results\"][i][\"dominant_race\"]\n                == results[2][\"results\"][i][\"dominant_race\"]\n            )\n\n        logger.info(\"✅ different inputs test is done\")\n\n    def test_invalid_verify(self):\n        data = {\n            \"img1\": \"dataset/invalid_1.jpg\",\n            \"img2\": \"dataset/invalid_2.jpg\",\n        }\n        response = self.app.post(\"/verify\", json=data)\n        assert response.status_code == 400\n        logger.info(\"✅ invalid verification request api test is done\")\n\n    def test_invalid_represent(self):\n        \"\"\"/represent fails with status 400  for invalid image data\"\"\"\n        self.setup_invalid_image()\n        data = {\n            \"img\": str(self.invalid_image_path),\n        }\n        response = self.app.post(\"/represent\", json=data)\n        assert response.status_code == 400\n        logger.info(\"✅ invalid represent request api test is done\")\n\n    def test_no_file_represent(self):\n        \"\"\"/represent fails with status 400  for missing image file\"\"\"\n        data = {\n            \"img\": \"no_such_file.jpg\",\n        }\n        response = self.app.post(\"/represent\", json=data)\n        assert response.status_code == 400\n\n    def test_invalid_analyze(self):\n        \"\"\"/analyze fails with status 400  for invalid image data\"\"\"\n        self.setup_invalid_image()\n        data = {\n            \"img\": str(self.invalid_image_path),\n        }\n        response = self.app.post(\"/analyze\", json=data)\n        assert response.status_code == 400\n\n    def test_no_file_analyze(self):\n        \"\"\"/analyze fails with status 400  for missing image file\"\"\"\n        data = {\n            \"img\": \"no_such_file.jpg\",\n        }\n        response = self.app.post(\"/analyze\", json=data)\n        assert response.status_code == 400\n\n    def test_analyze_for_multipart_form_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        with open(\"/tmp/img1.jpg\", \"rb\") as img_file:\n            response = self.app.post(\n                \"/analyze\",\n                content_type=\"multipart/form-data\",\n                data={\n                    \"img\": (img_file, \"test_image.jpg\"),\n                    \"actions\": '[\"age\", \"gender\"]',\n                    \"detector_backend\": \"mtcnn\",\n                },\n            )\n            result = response.json\n            assert response.status_code == 200, response.data\n            assert isinstance(result, dict)\n            assert result.get(\"age\") is not True\n            assert result.get(\"dominant_gender\") is not True\n            logger.info(\"✅ analyze api for multipart form data test is done\")\n\n    def test_verify_for_multipart_form_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        with open(\"/tmp/img1.jpg\", \"rb\") as img1_file:\n            with open(\"/tmp/img2.jpg\", \"rb\") as img2_file:\n                response = self.app.post(\n                    \"/verify\",\n                    content_type=\"multipart/form-data\",\n                    data={\n                        \"img1\": (img1_file, \"first_image.jpg\"),\n                        \"img2\": (img2_file, \"second_image.jpg\"),\n                        \"model_name\": \"Facenet\",\n                        \"detector_backend\": \"mtcnn\",\n                        \"distance_metric\": \"euclidean\",\n                    },\n                )\n                assert response.status_code == 200, response.data\n                result = response.json\n                assert isinstance(result, dict)\n                assert result.get(\"verified\") is not None\n                assert result.get(\"model\") == \"Facenet\"\n                assert result.get(\"similarity_metric\") is not None\n                assert result.get(\"detector_backend\") == \"mtcnn\"\n                assert result.get(\"threshold\") is not None\n                assert result.get(\"facial_areas\") is not None\n\n                logger.info(\"✅ verify api for multipart form data test is done\")\n\n    def test_represent_for_multipart_form_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        with open(\"/tmp/img1.jpg\", \"rb\") as img_file:\n            response = self.app.post(\n                \"/represent\",\n                content_type=\"multipart/form-data\",\n                data={\n                    \"img\": (img_file, \"first_image.jpg\"),\n                    \"model_name\": \"Facenet\",\n                    \"detector_backend\": \"mtcnn\",\n                },\n            )\n            assert response.status_code == 200\n            result = response.json\n            assert isinstance(result, dict)\n            logger.info(\"✅ represent api for multipart form data test is done\")\n\n    def test_represent_for_multipart_form_data_and_filepath(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        response = self.app.post(\n            \"/represent\",\n            content_type=\"multipart/form-data\",\n            data={\n                \"img\": \"/tmp/img1.jpg\",\n                \"model_name\": \"Facenet\",\n                \"detector_backend\": \"mtcnn\",\n            },\n        )\n        assert response.status_code == 200\n        result = response.json\n        assert isinstance(result, dict)\n        logger.info(\"✅ represent api for multipart form data and file path test is done\")\n\n    def test_extract_image_from_form_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        img_key = \"img1\"\n        img_itself = np.zeros((100, 100, 3), dtype=np.uint8)\n        # Establish a temporary request context using the Flask app\n        with DUMMY_APP.test_request_context(\"/dummy_endpoint\"):\n            # Mock the file part\n            with patch(\"deepface.api.src.modules.core.routes.request\") as mock_request:\n                mock_file = MagicMock()\n                mock_file.filename = \"image.jpg\"\n                mock_request.files = {img_key: mock_file}\n\n                # Mock the image loading function\n                with patch(\n                    \"deepface.commons.image_utils.load_image_from_file_storage\",\n                    return_value=img_itself,\n                ):\n                    result = routes.extract_image_from_request(img_key)\n\n                    assert isinstance(result, np.ndarray)\n                    assert np.array_equal(result, img_itself)\n\n        logger.info(\"✅ test extract_image_from_request for real image from form data done\")\n\n    def test_extract_image_string_from_json_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        img_key = \"img1\"\n        img_data = \"image_url_or_path_or_base64\"\n\n        with DUMMY_APP.test_request_context(\"/dummy_endpoint\"):\n            with patch(\"deepface.api.src.modules.core.routes.request\") as mock_request:\n                # Mock JSON data\n                mock_request.files = None\n                mock_request.is_json = True\n                mock_request.get_json = MagicMock(return_value={img_key: img_data})\n\n                result = routes.extract_image_from_request(img_key)\n\n                assert isinstance(result, str)\n                assert result == img_data\n\n        logger.info(\"✅ test extract_image_from_request for image string from json done\")\n\n    def test_extract_image_string_from_form_data(self):\n        if is_form_data_file_testable() is False:\n            return\n\n        img_key = \"img1\"\n        img_data = \"image_url_or_path_or_base64\"\n\n        with DUMMY_APP.test_request_context(\"/dummy_endpoint\"):\n            with patch(\"deepface.api.src.modules.core.routes.request\") as mock_request:\n                # Mock form data\n                mock_request.files = None\n\n                mock_request.is_json = False\n                mock_request.get_json = MagicMock(return_value=None)\n\n                mock_request.form = MagicMock()\n                mock_request.form.to_dict.return_value = {img_key: img_data}\n\n                result = routes.extract_image_from_request(img_key)\n\n                assert isinstance(result, str)\n                assert result == img_data\n\n        logger.info(\"✅ test extract_image_from_request for image string from form done\")\n\n\nclass TestTokenValidation(unittest.TestCase):\n    @patch.dict(\n        os.environ,\n        {\n            \"DEEPFACE_AUTH_TOKEN\": \"some_token\",\n            \"DEEPFACE_CONNECTION_DETAILS\": \"some_connection_string\",\n        },\n    )\n    def setUp(self):\n        app = create_app()\n        app.config[\"DEBUG\"] = True\n        app.config[\"TESTING\"] = True\n        self.app = app.test_client()\n        self.payloads = [\n            (\"/verify\", {\"img1\": \"dataset/img1.jpg\", \"img2\": \"dataset/img2.jpg\"}),\n            (\"/represent\", {\"img\": \"dataset/img1.jpg\"}),\n            (\"/analyze\", {\"img\": \"dataset/img1.jpg\"}),\n            (\"/register\", {\"img\": \"dataset/img1.jpg\"}),\n            (\"/build/index\", {}),\n            (\"/search\", {\"img\": \"dataset/img1.jpg\"}),\n        ]\n\n    def test_missing_token(self):\n        for endpoint, data in self.payloads:\n            response = self.app.post(endpoint, json=data)\n            assert response.status_code == 401\n            logger.info(f\"✅ missing bearer token test for {endpoint} is done\")\n\n    def test_invalid_token(self):\n        for endpoint, data in self.payloads:\n            response = self.app.post(\n                endpoint, json=data, headers={\"Authorization\": \"Bearer wrong_token\"}\n            )\n            assert response.status_code == 401\n            logger.info(f\"✅ invalid bearer token test for {endpoint} is done\")\n\n    @patch(\"deepface.api.src.modules.core.service.build_index\")\n    @patch(\"deepface.api.src.modules.core.service.search\")\n    @patch(\"deepface.api.src.modules.core.service.register\")\n    @patch(\"deepface.api.src.modules.core.service.represent\")\n    @patch(\"deepface.api.src.modules.core.service.analyze\")\n    @patch(\"deepface.api.src.modules.core.service.verify\")\n    def test_valid_token(\n        self,\n        mock_verify,\n        mock_analyze,\n        mock_represent,\n        mock_register,\n        mock_search,\n        mock_build_index,\n    ):\n        mock_verify.return_value = ({\"verified\": True}, 200)\n        mock_analyze.return_value = ({\"results\": []}, 200)\n        mock_represent.return_value = ({\"results\": []}, 200)\n        mock_register.return_value = ({\"inserted\": 1}, 200)\n        mock_search.return_value = ({\"results\": []}, 200)\n        mock_build_index.return_value = ({\"message\": \"Index built successfully\"}, 200)\n\n        for endpoint, data in self.payloads:\n            response = self.app.post(\n                endpoint, json=data, headers={\"Authorization\": \"Bearer some_token\"}\n            )\n            assert (\n                response.status_code == 200\n            ), f\"Failed at {endpoint} with status {response.status_code}\"\n            logger.info(f\"✅ valid bearer token test for {endpoint} is done\")\n\n\nclass TestConnectionStringFailedValidation(unittest.TestCase):\n    def setUp(self):\n        os.environ.pop(\"DEEPFACE_CONNECTION_DETAILS\", None)\n        os.environ.pop(\"DEEPFACE_POSTGRES_URI\", None)\n\n        app = create_app()\n        app.config[\"DEBUG\"] = True\n        app.config[\"TESTING\"] = True\n        self.app = app.test_client()\n\n    def test_register(self):\n        response = self.app.post(\"/register\", json={})\n        assert response.status_code == 500\n        logger.info(\"✅ invalid connection string test for /register is done\")\n\n    def test_build_index(self):\n        response = self.app.post(\"/build/index\", json={})\n        assert response.status_code == 500\n        logger.info(\"✅ invalid connection string test for /build/index is done\")\n\n    def test_search(self):\n        response = self.app.post(\"/search\", json={})\n        assert response.status_code == 500\n        logger.info(\"✅ invalid connection string test for /search is done\")\n\n\nclass TestConnectionStringSucceddedValidation(unittest.TestCase):\n    @patch.dict(os.environ, {\"DEEPFACE_CONNECTION_DETAILS\": \"some_connection_string\"})\n    def setUp(self):\n        self.patcher_register = patch(\"deepface.api.src.modules.core.service.register\")\n        self.patcher_search = patch(\"deepface.api.src.modules.core.service.search\")\n        self.patcher_build_index = patch(\"deepface.api.src.modules.core.service.build_index\")\n\n        self.mock_register = self.patcher_register.start()\n        self.mock_search = self.patcher_search.start()\n        self.mock_build_index = self.patcher_build_index.start()\n\n        self.mock_register.return_value = ({\"inserted\": 1}, 200)\n        self.mock_search.return_value = ({\"results\": []}, 200)\n        self.mock_build_index.return_value = ({\"message\": \"Index built successfully\"}, 200)\n\n        app = create_app()\n        app.config[\"DEBUG\"] = True\n        app.config[\"TESTING\"] = True\n        self.app = app.test_client()\n\n    def tearDown(self):\n        self.patcher_register.stop()\n        self.patcher_search.stop()\n        self.patcher_build_index.stop()\n\n    def test_register(self):\n        response = self.app.post(\"/register\", json={\"img\": \"dataset/img1.jpg\"})\n        assert response.status_code == 200, response.data\n        logger.info(\"✅ successful connection string test for /register is done\")\n\n    def test_build_index(self):\n        response = self.app.post(\"/build/index\", json={})\n        assert response.status_code == 200, response.data\n        logger.info(\"✅ successful connection string test for /build/index is done\")\n\n    def test_search(self):\n        response = self.app.post(\"/search\", json={\"img\": \"dataset/img1.jpg\"})\n        assert response.status_code == 200, response.data\n        logger.info(\"✅ successful connection string test for /search is done\")\n\n\ndef download_test_images(url: str):\n    file_name = url.split(\"/\")[-1]\n    target_file = f\"/tmp/{file_name}\"\n    if os.path.exists(target_file) is True:\n        return\n\n    gdown.download(url, target_file, quiet=False)\n\n\ndef is_form_data_file_testable() -> bool:\n    \"\"\"\n    Sending a file from form data fails in unit test with\n        415 unsupported media type error for flask 3.X\n        but it is working for flask 2.0.2\n    Returns:\n        is_form_data_file_testable (bool)\n    \"\"\"\n    flask_version = version.parse(flask.__version__)\n    werkzeus_version = version.parse(werkzeug.__version__)\n    threshold_version = version.parse(\"2.0.2\")\n    is_testable = flask_version <= threshold_version and werkzeus_version <= threshold_version\n    if is_testable is False:\n        logger.warn(\n            \"sending file in form data is not testable because of flask, werkzeus versions.\"\n            f\"Expected <= {threshold_version}, but {flask_version=} and {werkzeus_version}.\"\n        )\n    return is_testable\n\n\ndef test_landmarks_are_raw_python_types(monkeypatch):\n    \"\"\"\n    Tests that the landmarks returned by extract_faces are of raw Python types (int, tuple of ints).\n        This is important for compatibility with frameworks like Flask that may have issues\n        serializing NumPy types.\n    \"\"\"\n    fake_landmarks = {\n        \"x\": 10,\n        \"y\": np.int64(15),\n        \"w\": 200,\n        \"h\": 200,\n        \"left_eye\": np.array([50, 60], dtype=np.int64),\n        \"right_eye\": np.array([150, 60], dtype=np.int32),\n        \"nose\": (100, 100),\n        \"confidence\": 1,\n    }\n\n    def fake_detect_faces(**kwargs):\n        return [\n            DetectedFace(\n                img=np.zeros((200, 200, 3), dtype=np.uint8),\n                facial_area=FacialAreaRegion(\n                    x=fake_landmarks[\"x\"],\n                    y=fake_landmarks[\"y\"],\n                    w=fake_landmarks[\"w\"],\n                    h=fake_landmarks[\"h\"],\n                    confidence=fake_landmarks[\"confidence\"],\n                    left_eye=fake_landmarks[\"left_eye\"],\n                    right_eye=fake_landmarks[\"right_eye\"],\n                    nose=fake_landmarks[\"nose\"],\n                ),\n                confidence=fake_landmarks[\"confidence\"],\n            )\n        ]\n\n    monkeypatch.setattr(detection, \"detect_faces\", fake_detect_faces)\n\n    def fake_load_image(*args, **kwargs):\n        return np.zeros((200, 200, 3), dtype=np.uint8), \"fake.jpg\"\n\n    monkeypatch.setattr(detection.image_utils, \"load_image\", fake_load_image)\n\n    results = extract_faces(\"fake_path.jpg\", detector_backend=\"opencv\", enforce_detection=True)\n\n    landmarks = results[0][\"facial_area\"]\n    for _, value in landmarks.items():\n        if isinstance(value, tuple):\n            assert all(isinstance(coord, int) for coord in value)\n        else:\n            assert isinstance(value, int)\n"
  },
  {
    "path": "tests/unit/test_commons.py",
    "content": "# built-in dependencies\nimport os\nfrom unittest import mock\nfrom unittest.mock import MagicMock\nimport pytest\n\n# project dependencies\nfrom deepface.commons import folder_utils, weight_utils, package_utils\nfrom deepface.commons.logger import Logger\n\n# pylint: disable=unused-argument\n\nlogger = Logger()\n\ntf_version = package_utils.get_tf_major_version()\n\n# conditional imports\nif tf_version == 1:\n    from keras.models import Sequential\n    from keras.layers import (\n        Dropout,\n        Dense,\n    )\nelse:\n    from tensorflow.keras.models import Sequential\n    from tensorflow.keras.layers import (\n        Dropout,\n        Dense,\n    )\n\n\ndef test_loading_broken_weights():\n    home = folder_utils.get_deepface_home()\n    weight_file = os.path.join(home, \".deepface/weights/vgg_face_weights.h5\")\n\n    # construct a dummy model\n    model = Sequential()\n\n    # Add layers to the model\n    model.add(\n        Dense(units=64, activation=\"relu\", input_shape=(100,))\n    )  # Input layer with 100 features\n    model.add(Dropout(0.5))  # Dropout layer to prevent overfitting\n    model.add(Dense(units=32, activation=\"relu\"))  # Hidden layer\n    model.add(Dense(units=10, activation=\"softmax\"))  # Output layer with 10 classes\n\n    # vgg's weights cannot be loaded to this model\n    with pytest.raises(\n        ValueError, match=\"An exception occurred while loading the pre-trained weights from\"\n    ):\n        model = weight_utils.load_model_weights(model=model, weight_file=weight_file)\n\n    logger.info(\"✅ test loading broken weight file is done\")\n\n\n@mock.patch(\"deepface.commons.folder_utils.get_deepface_home\")  # Update with your actual module\n@mock.patch(\"gdown.download\")  # Mocking gdown's download function\n@mock.patch(\"os.path.isfile\")  # Mocking os.path.isfile\n@mock.patch(\"os.makedirs\")  # Mocking os.makedirs to avoid FileNotFoundError\n@mock.patch(\"zipfile.ZipFile\")  # Mocking the ZipFile class\n@mock.patch(\"bz2.BZ2File\")  # Mocking the BZ2File class\n@mock.patch(\"builtins.open\", new_callable=mock.mock_open())  # Mocking open\nclass TestDownloadWeightFeature:\n    def test_download_weights_for_available_file(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedir: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n        mock_isfile.return_value = True\n        mock_get_deepface_home.return_value = os.path.normpath(\"/mock/home\")\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.zip\"\n\n        result = weight_utils.download_weights_if_necessary(file_name, source_url)\n\n        assert os.path.normpath(result) == os.path.normpath(\n            os.path.join(\"/mock/home\", \".deepface/weights\", file_name)\n        )\n\n        mock_gdown.assert_not_called()\n        mock_zipfile.assert_not_called()\n        mock_bz2file.assert_not_called()\n        logger.info(\"✅ test download weights for available file is done\")\n\n    def test_download_weights_if_necessary_gdown_failure(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedirs: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n        # Setting up the mock return values\n        mock_get_deepface_home.return_value = os.path.normpath(\"/mock/home\")\n        mock_isfile.return_value = False  # Simulate file not being present\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.h5\"\n\n        # Simulate gdown.download raising an exception\n        mock_gdown.side_effect = Exception(\"Download failed!\")\n\n        # Call the function and check for ValueError\n        with pytest.raises(\n            ValueError,\n            match=f\"⛓️‍💥 An exception occurred while downloading {file_name} from {source_url}.\",\n        ):\n            weight_utils.download_weights_if_necessary(file_name, source_url)\n\n        logger.info(\"✅ test for downloading weights while gdown fails done\")\n\n    def test_download_weights_if_necessary_no_compression(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedir: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n        # Setting up the mock return values\n        mock_get_deepface_home.return_value = os.path.normpath(\"/mock/home\")\n        mock_isfile.return_value = False  # Simulate file not being present\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.h5\"\n\n        # Call the function\n        result = weight_utils.download_weights_if_necessary(file_name, source_url)\n\n        # Normalize the expected path\n        expected_path = os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5\")\n\n        # Assert that gdown.download was called with the correct parameters\n        mock_gdown.assert_called_once_with(source_url, expected_path, quiet=False)\n\n        # Assert that the return value is correct\n        assert result == expected_path\n\n        # Assert that zipfile.ZipFile and bz2.BZ2File were not called\n        mock_zipfile.assert_not_called()\n        mock_bz2file.assert_not_called()\n\n        logger.info(\"✅ test download weights with no compression is done\")\n\n    def test_download_weights_if_necessary_zip(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedirs: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n        # Setting up the mock return values\n        mock_get_deepface_home.return_value = os.path.normpath(\"/mock/home\")\n        mock_isfile.return_value = False  # Simulate file not being present\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.zip\"\n        compress_type = \"zip\"\n\n        # Call the function\n        result = weight_utils.download_weights_if_necessary(file_name, source_url, compress_type)\n\n        # Assert that gdown.download was called with the correct parameters\n        mock_gdown.assert_called_once_with(\n            source_url,\n            os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5.zip\"),\n            quiet=False,\n        )\n\n        # Simulate the unzipping behavior\n        mock_zipfile.return_value.__enter__.return_value.extractall = mock.Mock()\n\n        # Call the function again to simulate unzipping\n        with mock_zipfile.return_value as zip_ref:\n            zip_ref.extractall(os.path.normpath(\"/mock/home/.deepface/weights\"))\n\n        # Assert that the zip file was unzipped correctly\n        zip_ref.extractall.assert_called_once_with(os.path.normpath(\"/mock/home/.deepface/weights\"))\n\n        # Assert that the return value is correct\n        assert result == os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5\")\n\n        logger.info(\"✅ test download weights for zip is done\")\n\n    def test_download_weights_if_necessary_bz2(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedirs: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n\n        # Setting up the mock return values\n        mock_get_deepface_home.return_value = os.path.normpath(\"/mock/home\")\n        mock_isfile.return_value = False  # Simulate file not being present\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.bz2\"\n        compress_type = \"bz2\"\n\n        # Simulate the download success\n        mock_gdown.return_value = None\n\n        # Simulate the BZ2 file reading behavior\n        mock_bz2file.return_value.__enter__.return_value.read.return_value = b\"fake data\"\n\n        # Call the function under test\n        result = weight_utils.download_weights_if_necessary(file_name, source_url, compress_type)\n\n        # Assert that gdown.download was called with the correct parameters\n        mock_gdown.assert_called_once_with(\n            source_url,\n            os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5.bz2\"),\n            quiet=False,\n        )\n\n        # Ensure open() is called once for writing the decompressed data\n        mock_open.assert_called_once_with(\n            os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5\"), \"wb\"\n        )\n\n        # TODO: find a way to check write is called\n\n        # Assert that the return value is correct\n        assert result == os.path.normpath(\"/mock/home/.deepface/weights/model_weights.h5\")\n\n        logger.info(\"✅ test download weights for bz2 is done\")\n\n    def test_download_weights_for_non_supported_compress_type(\n        self,\n        mock_open: MagicMock,\n        mock_zipfile: MagicMock,\n        mock_bz2file: MagicMock,\n        mock_makedirs: MagicMock,\n        mock_isfile: MagicMock,\n        mock_gdown: MagicMock,\n        mock_get_deepface_home: MagicMock,\n    ):\n        mock_isfile.return_value = False\n\n        file_name = \"model_weights.h5\"\n        source_url = \"http://example.com/model_weights.bz2\"\n        compress_type = \"7z\"\n        with pytest.raises(ValueError, match=\"unimplemented compress type - 7z\"):\n            _ = weight_utils.download_weights_if_necessary(file_name, source_url, compress_type)\n        logger.info(\"✅ test download weights for unsupported compress type is done\")\n"
  },
  {
    "path": "tests/unit/test_encrypt.py",
    "content": "# built-in dependencies\nimport uuid\n\n\n# 3rd party dependencies\nimport pytest\nfrom lightphe import LightPHE\nfrom lightphe.models.Tensor import EncryptedTensor\n\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.config.threshold import thresholds\n\nexperiment_id = uuid.uuid4()\ncs = LightPHE(algorithm_name=\"Paillier\", precision=19)\ncs.export_keys(f\"/tmp/{experiment_id}_secret.txt\")\ncs.export_keys(f\"/tmp/{experiment_id}_public.txt\", public=True)\n\n\ndef test_no_encrypt():\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"VGG-Face\",\n    )\n\n    assert isinstance(results, list)\n    assert len(results) == 1\n\n    result = results[0]\n    assert \"encrypted_embedding\" not in result\n\n\ndef test_encrypt_single():\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"VGG-Face\",\n        cryptosystem=cs,\n    )\n\n    assert isinstance(results, list)\n    assert len(results) == 1\n\n    result = results[0]\n    assert \"encrypted_embedding\" in result\n    encrypted_embedding = result[\"encrypted_embedding\"]\n    assert encrypted_embedding is not None\n    assert isinstance(encrypted_embedding, EncryptedTensor)\n    assert isinstance(encrypted_embedding.fractions, list)\n    assert len(encrypted_embedding.fractions) == 4096  # vgg-face embedding\n\n\ndef test_encrypt_batch():\n    results = DeepFace.represent(\n        img_path=[\"dataset/img1.jpg\", \"dataset/couple.jpg\", \"dataset/img2.jpg\"],\n        model_name=\"VGG-Face\",\n        cryptosystem=cs,\n    )\n\n    assert isinstance(results, list)\n    assert len(results) == 3\n\n    expected_faces = [1, 2, 1]\n    for idx, current_results in enumerate(results):\n        assert isinstance(current_results, list)\n        assert len(current_results) == expected_faces[idx]\n        for result in current_results:\n            assert \"encrypted_embedding\" in result\n            encrypted_embedding = result[\"encrypted_embedding\"]\n            assert encrypted_embedding is not None\n            assert isinstance(encrypted_embedding, EncryptedTensor)\n            assert isinstance(encrypted_embedding.fractions, list)\n            assert len(encrypted_embedding.fractions) == 4096  # vgg-face embedding\n\n\ndef test_encrypt_single_skip_case():\n    \"\"\"\n    Test that encryption is skipped when embeddings contain negative values.\n    \"\"\"\n    # Dim values of Facenet are roughly in [-3, 3], so no normalization leads to negative values.\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 1\n    result = results[0]\n    assert \"encrypted_embedding\" not in result\n\n    # secondly, facenet embeddings aren't l2 normalized by default similar to vgg-face\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n        minmax_normalize=True,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 1\n    result = results[0]\n    assert \"encrypted_embedding\" not in result\n\n    # do l2 normalization and min max normalization to encrypt\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n        minmax_normalize=True,\n        l2_normalize=True,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 1\n    result = results[0]\n    assert \"encrypted_embedding\" in result\n    encrypted_embedding = result[\"encrypted_embedding\"]\n    assert isinstance(encrypted_embedding, EncryptedTensor)\n    assert isinstance(encrypted_embedding.fractions, list)\n    assert len(encrypted_embedding.fractions) == 128  # facenet embedding\n\n\ndef test_encrypt_batch_skip_case():\n    # Dim values of Facenet are roughly in [-3, 3], so no normalization leads to negative values.\n    results = DeepFace.represent(\n        img_path=[\"dataset/img1.jpg\", \"dataset/couple.jpg\", \"dataset/img2.jpg\"],\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 3\n    expected_faces = [1, 2, 1]\n    for idx, result in enumerate(results):\n        assert isinstance(result, list)\n        assert len(result) == expected_faces[idx]\n        for res in result:\n            assert \"encrypted_embedding\" not in res\n\n    # secondly, facenet embeddings aren't l2 normalized by default similar to vgg-face\n    results = DeepFace.represent(\n        img_path=[\"dataset/img1.jpg\", \"dataset/couple.jpg\", \"dataset/img2.jpg\"],\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n        minmax_normalize=True,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 3\n    expected_faces = [1, 2, 1]\n    for idx, result in enumerate(results):\n        assert isinstance(result, list)\n        assert len(result) == expected_faces[idx]\n        for res in result:\n            assert \"encrypted_embedding\" not in res\n\n    # do l2 normalization and min max normalization to encrypt\n    results = DeepFace.represent(\n        img_path=[\"dataset/img1.jpg\", \"dataset/couple.jpg\", \"dataset/img2.jpg\"],\n        model_name=\"Facenet\",\n        cryptosystem=cs,\n        minmax_normalize=True,\n        l2_normalize=True,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 3\n    expected_faces = [1, 2, 1]\n    for idx, result in enumerate(results):\n        assert isinstance(result, list)\n        assert len(result) == expected_faces[idx]\n        for res in result:\n            assert \"encrypted_embedding\" in res\n            encrypted_embedding = res[\"encrypted_embedding\"]\n            assert encrypted_embedding is not None\n            assert isinstance(encrypted_embedding, EncryptedTensor)\n            assert isinstance(encrypted_embedding.fractions, list)\n        assert len(encrypted_embedding.fractions) == 128  # facenet embedding\n\n\ndef test_homomorphic_encryption():\n    # this only has public key\n    cloud_cs = LightPHE(\n        algorithm_name=\"Paillier\", precision=19, key_file=f\"/tmp/{experiment_id}_public.txt\"\n    )\n\n    encrypted_embedding = DeepFace.represent(\n        img_path=\"dataset/img2.jpg\",\n        model_name=\"VGG-Face\",\n        cryptosystem=cloud_cs,\n    )[0][\"encrypted_embedding\"]\n\n    # cloud system should not be able to decrypt\n    with pytest.raises(ValueError, match=\"must have private key\"):\n        cloud_cs.decrypt(encrypted_embedding)\n\n    plain_embedding = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"VGG-Face\",\n    )[\n        0\n    ][\"embedding\"]\n\n    # compute cosine similarity in encrypted domain\n    encrypted_cosine_similarity = encrypted_embedding @ plain_embedding\n\n    # on-prem system has private key\n    onprem_cs = LightPHE(\n        algorithm_name=\"Paillier\", precision=19, key_file=f\"/tmp/{experiment_id}_secret.txt\"\n    )\n\n    # on-prem system can decrypt the result\n    decrypted_cosine_similarity = onprem_cs.decrypt(encrypted_cosine_similarity)[0]\n    decrypted_cosine_distance = 1 - decrypted_cosine_similarity\n\n    threshold = thresholds[\"VGG-Face\"][\"cosine\"]\n\n    assert decrypted_cosine_distance < threshold\n"
  },
  {
    "path": "tests/unit/test_enforce_detection.py",
    "content": "# 3rd party dependencies\nimport pytest\nimport numpy as np\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef test_enabled_enforce_detection_for_non_facial_input():\n    black_img = np.zeros([224, 224, 3])\n\n    with pytest.raises(ValueError):\n        DeepFace.represent(img_path=black_img)\n\n    with pytest.raises(ValueError):\n        DeepFace.verify(img1_path=black_img, img2_path=black_img)\n\n    logger.info(\"✅ enabled enforce detection with non facial input tests done\")\n\n\ndef test_disabled_enforce_detection_for_non_facial_input_on_represent():\n    black_img = np.zeros([224, 224, 3])\n    objs = DeepFace.represent(img_path=black_img, enforce_detection=False)\n\n    assert isinstance(objs, list)\n    assert len(objs) > 0\n    assert isinstance(objs[0], dict)\n    assert \"embedding\" in objs[0].keys()\n    assert \"facial_area\" in objs[0].keys()\n    assert isinstance(objs[0][\"facial_area\"], dict)\n    assert \"x\" in objs[0][\"facial_area\"].keys()\n    assert \"y\" in objs[0][\"facial_area\"].keys()\n    assert \"w\" in objs[0][\"facial_area\"].keys()\n    assert \"h\" in objs[0][\"facial_area\"].keys()\n    assert isinstance(objs[0][\"embedding\"], list)\n    assert len(objs[0][\"embedding\"]) == 4096  # embedding of VGG-Face\n\n    logger.info(\"✅ disabled enforce detection with non facial input test for represent tests done\")\n\n\ndef test_disabled_enforce_detection_for_non_facial_input_on_verify():\n    black_img = np.zeros([224, 224, 3])\n    obj = DeepFace.verify(img1_path=black_img, img2_path=black_img, enforce_detection=False)\n    assert isinstance(obj, dict)\n\n    logger.info(\"✅ disabled enforce detection with non facial input test for verify tests done\")\n"
  },
  {
    "path": "tests/unit/test_extract_faces.py",
    "content": "# built-in dependencies\nimport base64\n\n# 3rd party dependencies\nimport cv2\nimport numpy as np\nimport pytest\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons import image_utils\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\ndetectors = [\"opencv\", \"mtcnn\", \"ssd\"]\n\n\ndef test_different_detectors():\n    img_path = \"dataset/img11.jpg\"\n    img = cv2.imread(img_path)\n    height, width, _ = img.shape\n\n    for detector in detectors:\n        img_objs = DeepFace.extract_faces(img_path=img_path, detector_backend=detector)\n        # img_objs should be a list of dicts\n        assert isinstance(img_objs, list)\n        for img_obj in img_objs:\n            assert isinstance(img_obj, dict)\n            assert \"face\" in img_obj.keys()\n            assert \"facial_area\" in img_obj.keys()\n            assert isinstance(img_obj[\"facial_area\"], dict)\n            assert \"x\" in img_obj[\"facial_area\"].keys()\n            assert \"y\" in img_obj[\"facial_area\"].keys()\n            assert \"w\" in img_obj[\"facial_area\"].keys()\n            assert \"h\" in img_obj[\"facial_area\"].keys()\n            # is left eye set with respect to the person instead of observer\n            assert \"left_eye\" in img_obj[\"facial_area\"].keys()\n            assert \"right_eye\" in img_obj[\"facial_area\"].keys()\n            right_eye = img_obj[\"facial_area\"][\"right_eye\"]\n            left_eye = img_obj[\"facial_area\"][\"left_eye\"]\n\n            # left eye and right eye must be tuple\n            assert isinstance(left_eye, tuple)\n            assert isinstance(right_eye, tuple)\n\n            # right eye should be the right eye of the person\n            assert left_eye[0] > right_eye[0]\n\n            # left eye and right eye must be int not to have problem in api\n            assert isinstance(left_eye[0], int)\n            assert isinstance(left_eye[1], int)\n            assert isinstance(right_eye[0], int)\n            assert isinstance(right_eye[1], int)\n\n            # confidence must be float, not numpy not to have problem in api\n            assert \"confidence\" in img_obj.keys()\n            type_conf = type(img_obj[\"confidence\"])\n            assert isinstance(\n                img_obj[\"confidence\"], float\n            ), f\"confidence type must be float but it is {type_conf}\"\n\n            # we added black pixeled borders to image because if faces are close to border,\n            # then alignment moves them to outside of the image. adding this borders may\n            # cause to miscalculate the facial area. check it is restored correctly.\n            x = img_obj[\"facial_area\"][\"x\"]\n            y = img_obj[\"facial_area\"][\"y\"]\n            w = img_obj[\"facial_area\"][\"w\"]\n            h = img_obj[\"facial_area\"][\"h\"]\n\n            assert x < width\n            assert x + w < width\n            assert y < height\n            assert y + h < height\n            assert left_eye[0] < height\n            assert right_eye[0] < height\n            assert left_eye[1] < width\n            assert right_eye[1] < width\n\n            img = img_obj[\"face\"]\n            assert img.shape[0] > 0 and img.shape[1] > 0\n        logger.info(f\"✅ extract_faces for {detector} backend test is done\")\n\n\ndef test_numpy_input():\n    img_path = \"dataset/img1.jpg\"\n    img = cv2.imread(img_path)[:, :, ::-1]  # BGR to RGB\n    for detector in detectors:\n        img_objs = DeepFace.extract_faces(img_path=img.copy(), detector_backend=detector)\n        # img_objs should be a list of dicts\n        assert isinstance(img_objs, list)\n        assert len(img_objs) == 1\n        for img_obj in img_objs:\n            assert isinstance(img_obj, dict)\n            assert \"face\" in img_obj.keys()\n            assert \"facial_area\" in img_obj.keys()\n            face = img_obj[\"face\"]\n            assert face.shape[0] > 0 and face.shape[1] > 0\n        logger.info(f\"✅ extract_faces for {detector} backend with numpy input test is done\")\n\n\ndef test_backends_for_enforced_detection_with_non_facial_inputs():\n    black_img = np.zeros([224, 224, 3])\n    for detector in detectors:\n        with pytest.raises(ValueError):\n            _ = DeepFace.extract_faces(img_path=black_img, detector_backend=detector)\n    logger.info(\"✅ extract_faces for enforced detection and non-facial image test is done\")\n\n\ndef test_backends_for_not_enforced_detection_with_non_facial_inputs():\n    black_img = np.zeros([224, 224, 3])\n    for detector in detectors:\n        objs = DeepFace.extract_faces(\n            img_path=black_img, detector_backend=detector, enforce_detection=False\n        )\n        assert objs[0][\"face\"].shape == (224, 224, 3)\n    logger.info(\"✅ extract_faces for not enforced detection and non-facial image test is done\")\n\n\ndef test_file_types_while_loading_base64():\n    img1_path = \"dataset/img47.jpg\"\n    img1_base64 = image_to_base64(image_path=img1_path)\n\n    with pytest.raises(ValueError, match=\"Input image can be jpg or png, but it is\"):\n        _ = image_utils.load_image_from_base64(uri=img1_base64)\n\n    img2_path = \"dataset/img1.jpg\"\n    img2_base64 = image_to_base64(image_path=img2_path)\n\n    img2 = image_utils.load_image_from_base64(uri=img2_base64)\n    # 3 dimensional image should be loaded\n    assert len(img2.shape) == 3\n\n\ndef image_to_base64(image_path):\n    with open(image_path, \"rb\") as image_file:\n        encoded_string = base64.b64encode(image_file.read()).decode(\"utf-8\")\n    return \"data:image/jpeg,\" + encoded_string\n\n\ndef test_facial_coordinates_are_in_borders():\n    inner_detectors = [\"retinaface\", \"mtcnn\"]\n    expected_faces = [7, 5]\n    # mtcnn finds 6 faces in my local & ci-cd, but found 5 in another env.\n\n    img_path = \"dataset/selfie-many-people.jpg\"\n    img = cv2.imread(img_path)\n    height, width, _ = img.shape\n\n    for i, detector_backend in enumerate(inner_detectors):\n        results = DeepFace.extract_faces(img_path=img_path, detector_backend=detector_backend)\n\n        # this is a hard example, mtcnn can detect 6 and retinaface can detect 7 faces\n        # be sure all those faces detected. any change in detection module can break this.\n        assert len(results) >= expected_faces[i]\n\n        for result in results:\n            facial_area = result[\"facial_area\"]\n\n            x = facial_area[\"x\"]\n            y = facial_area[\"y\"]\n            w = facial_area[\"w\"]\n            h = facial_area[\"h\"]\n\n            assert x >= 0\n            assert y >= 0\n            assert x + w < width\n            assert y + h < height\n\n        logger.info(f\"✅ facial area coordinates are all in image borders for {detector_backend}\")\n\n\ndef test_batch_str_inputs():\n    img_paths = [\"dataset/img1.jpg\", \"dataset/couple.jpg\", \"dataset/img3.jpg\"]\n    expected_num_faces = [1, 2, 1]\n    results = DeepFace.extract_faces(img_path=img_paths, detector_backend=\"mtcnn\")\n    # result should be a list of list of dicts\n    assert isinstance(results, list)\n    assert len(results) == 3\n    for i, inner_results in enumerate(results):\n        assert isinstance(inner_results, list)\n        assert len(inner_results) == expected_num_faces[i]\n        for result in inner_results:\n            assert isinstance(result, dict)\n            assert \"face\" in result\n            assert \"facial_area\" in result\n\n    logger.info(\"✅ extract_faces batch str input test is done\")\n\n\ndef test_batch_ndarray_inputs():\n    img1 = cv2.imread(\"dataset/img1.jpg\")[:, :, ::-1]  # BGR to RGB\n    img2 = cv2.imread(\"dataset/couple.jpg\")[:, :, ::-1]  # BGR to RGB\n    img3 = cv2.imread(\"dataset/img3.jpg\")[:, :, ::-1]  # BGR to RGB\n\n    h, w = img1.shape[:2]\n\n    img2 = cv2.resize(img2, (w, h))\n    img3 = cv2.resize(img3, (w, h))\n\n    img_batch = np.array([img1, img2, img3])\n    assert img_batch.shape == (3, h, w, 3)\n\n    expected_num_faces = [1, 2, 1]\n\n    results = DeepFace.extract_faces(img_path=img_batch, detector_backend=\"retinaface\")\n    # result should be a list of list of dicts\n    assert isinstance(results, list)\n    assert len(results) == len(img_batch)\n    for i, inner_results in enumerate(results):\n        assert isinstance(inner_results, list)\n        assert (\n            len(inner_results) == expected_num_faces[i]\n        ), f\"Number of faces for image {i} does not match\"\n        for result in inner_results:\n            assert isinstance(result, dict)\n            assert \"face\" in result\n            assert \"facial_area\" in result\n    logger.info(\"✅ extract_faces batch ndarray input test is done\")\n"
  },
  {
    "path": "tests/unit/test_find.py",
    "content": "# built-in dependencies\nimport os\n\n# 3rd party dependencies\nimport cv2\nimport pandas as pd\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.modules import verification\nfrom deepface.commons import image_utils\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\nthreshold = verification.find_threshold(model_name=\"VGG-Face\", distance_metric=\"cosine\")\n\n\ndef test_find_with_exact_path():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    dfs = DeepFace.find(img_path=img_path, db_path=\"dataset\", silent=True)\n    assert len(dfs) > 0\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n\n        # one is img1.jpg itself\n        identity_df = df[df[\"identity\"] == img_path]\n        assert identity_df.shape[0] > 0\n\n        # validate reproducability\n        assert identity_df[\"distance\"].values[0] <= threshold\n\n        df = df[df[\"identity\"] != img_path]\n        logger.debug(df.head())\n        assert df.shape[0] > 0\n\n        assert \"confidence\" in df.columns\n        # confidence is between 0 and 100\n        assert df[\"confidence\"].max() <= 100\n        assert df[\"confidence\"].min() >= 0\n        # also we just show verified ones in results\n        assert df[\"confidence\"].max() <= 100\n        assert df[\"confidence\"].min() >= 51\n\n    logger.info(\"✅ test find for exact path done\")\n\n\ndef test_find_with_array_input():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    img1 = cv2.imread(img_path)\n    dfs = DeepFace.find(img1, db_path=\"dataset\", silent=True)\n    assert len(dfs) > 0\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n\n        # one is img1.jpg itself\n        identity_df = df[df[\"identity\"] == img_path]\n        assert identity_df.shape[0] > 0\n\n        # validate reproducability\n        assert identity_df[\"distance\"].values[0] < threshold\n\n        df = df[df[\"identity\"] != img_path]\n        logger.debug(df.head())\n        assert df.shape[0] > 0\n\n    logger.info(\"✅ test find for array input done\")\n\n\ndef test_find_with_extracted_faces():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    face_objs = DeepFace.extract_faces(img_path)\n    img = face_objs[0][\"face\"]\n    dfs = DeepFace.find(img, db_path=\"dataset\", detector_backend=\"skip\", silent=True)\n    assert len(dfs) > 0\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n\n        # one is img1.jpg itself\n        identity_df = df[df[\"identity\"] == img_path]\n        assert identity_df.shape[0] > 0\n\n        # validate reproducability\n        assert identity_df[\"distance\"].values[0] < threshold\n\n        df = df[df[\"identity\"] != img_path]\n        logger.debug(df.head())\n        assert df.shape[0] > 0\n    logger.info(\"✅ test find for extracted face input done\")\n\n\ndef test_filetype_for_find():\n    \"\"\"\n    only images as jpg and png can be loaded into database\n    \"\"\"\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    dfs = DeepFace.find(img_path=img_path, db_path=\"dataset\", silent=True)\n\n    df = dfs[0]\n\n    # img47 is webp even though its extension is jpg\n    assert df[df[\"identity\"] == \"dataset/img47.jpg\"].shape[0] == 0\n\n\ndef test_filetype_for_find_bulk_embeddings():\n    # List\n    list_imgs = image_utils.list_images(\"dataset\")\n\n    assert len(list_imgs) > 0\n\n    # img47 is webp even though its extension is jpg\n    assert \"dataset/img47.jpg\" not in list_imgs\n\n    # Generator\n    gen_imgs = list(image_utils.yield_images(\"dataset\"))\n\n    assert len(gen_imgs) > 0\n\n    # img47 is webp even though its extension is jpg\n    assert \"dataset/img47.jpg\" not in gen_imgs\n\n    assert gen_imgs == list_imgs\n\n\ndef test_find_without_refresh_database():\n    import shutil, hashlib\n\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n\n    # 1. Calculate hash of the .pkl file;\n    # 2. Move random image to the temporary created directory;\n    # 3. As a result, there will be a difference between the .pkl file and the disk files;\n    # 4. If refresh_database=False, then .pkl file should not be updated.\n    #    Recalculate hash and compare it with the hash from pt. 1;\n    # 5. After successful check, the image will be moved back to the original destination;\n\n    pkl_path = \"dataset/ds_model_vggface_detector_opencv_aligned_normalization_base_expand_0.pkl\"\n    with open(pkl_path, \"rb\") as f:\n        hash_before = hashlib.sha256(f.read())\n\n    image_name = \"img28.jpg\"\n    tmp_dir = \"dataset/temp_image\"\n    os.mkdir(tmp_dir)\n    shutil.move(os.path.join(\"dataset\", image_name), os.path.join(tmp_dir, image_name))\n\n    dfs = DeepFace.find(img_path=img_path, db_path=\"dataset\", silent=True, refresh_database=False)\n\n    with open(pkl_path, \"rb\") as f:\n        hash_after = hashlib.sha256(f.read())\n\n    shutil.move(os.path.join(tmp_dir, image_name), os.path.join(\"dataset\", image_name))\n    os.rmdir(tmp_dir)\n\n    assert hash_before.hexdigest() == hash_after.hexdigest()\n\n    logger.info(\"✅ .pkl hashes before and after the recognition process are the same\")\n\n    assert len(dfs) > 0\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n\n        # one is img1.jpg itself\n        identity_df = df[df[\"identity\"] == img_path]\n        assert identity_df.shape[0] > 0\n\n        # validate reproducability\n        assert identity_df[\"distance\"].values[0] < threshold\n\n        df = df[df[\"identity\"] != img_path]\n        logger.debug(df.head())\n        assert df.shape[0] > 0\n    logger.info(\"✅ test find without refresh database done\")\n\n\ndef test_find_for_similarity_search():\n    angelinas = [\n        os.path.join(\"dataset\", \"img1.jpg\"),\n        os.path.join(\"dataset\", \"img2.jpg\"),\n        os.path.join(\"dataset\", \"img4.jpg\"),\n        os.path.join(\"dataset\", \"img5.jpg\"),\n        os.path.join(\"dataset\", \"img6.jpg\"),\n        os.path.join(\"dataset\", \"img7.jpg\"),\n        os.path.join(\"dataset\", \"img10.jpg\"),\n        os.path.join(\"dataset\", \"img11.jpg\"),\n        os.path.join(\"dataset\", \"img11_reflection.jpg\"),\n        os.path.join(\"dataset\", \"couple.jpg\"),\n        os.path.join(\"dataset\", \"selfie-many-people.jpg\"),\n    ]\n    k = len(angelinas) + 5\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n\n    verification_threshold = verification.find_threshold(\n        model_name=\"VGG-Face\", distance_metric=\"cosine\"\n    )\n    dfs = DeepFace.find(\n        img_path=img_path,\n        db_path=\"dataset\",\n        silent=True,\n        similarity_search=True,\n        k=k,\n    )\n\n    assert isinstance(dfs, list)\n    assert len(dfs) > 0\n    for df in dfs:\n        assert isinstance(df, pd.DataFrame)\n        assert df.shape[0] <= k\n\n        verify_df = df[df[\"identity\"].isin(angelinas)]\n        similar_df = df[~df[\"identity\"].isin(angelinas)]\n\n        assert verify_df.shape[0] > 0\n        assert verify_df[\"distance\"].max() <= verification_threshold\n\n        assert similar_df.shape[0] > 0\n        assert similar_df[\"distance\"].min() > verification_threshold\n\n    logger.info(\"✅ test find for similarity search done\")\n"
  },
  {
    "path": "tests/unit/test_find_batched.py",
    "content": "# built-in dependencies\nimport os\n\n# 3rd party dependencies\nimport cv2\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.modules import verification\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\nthreshold = verification.find_threshold(model_name=\"VGG-Face\", distance_metric=\"cosine\")\n\n\ndef test_find_with_exact_path():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    results = DeepFace.find(img_path=img_path, db_path=\"dataset\", silent=True, batched=True)\n    assert len(results) > 0\n    required_keys = set(\n        [\n            \"identity\",\n            \"distance\",\n            \"threshold\",\n            \"hash\",\n            \"target_x\",\n            \"target_y\",\n            \"target_w\",\n            \"target_h\",\n            \"source_x\",\n            \"source_y\",\n            \"source_w\",\n            \"source_h\",\n        ]\n    )\n    for result in results:\n        assert isinstance(result, list)\n\n        found_image_itself = False\n        for face in result:\n            assert isinstance(face, dict)\n            assert set(face.keys()) == required_keys\n            if face[\"identity\"] == img_path:\n                # validate reproducability\n                assert face[\"distance\"] < threshold\n                # one is img1.jpg itself\n                found_image_itself = True\n        assert found_image_itself\n\n    assert len(results[0]) > 1\n\n    logger.info(\"✅ test find for exact path done\")\n\n\ndef test_batched_find_with_similarity_search():\n    angelinas = [\n        os.path.join(\"dataset\", \"img1.jpg\"),\n        os.path.join(\"dataset\", \"img2.jpg\"),\n        os.path.join(\"dataset\", \"img4.jpg\"),\n        os.path.join(\"dataset\", \"img5.jpg\"),\n        os.path.join(\"dataset\", \"img6.jpg\"),\n        os.path.join(\"dataset\", \"img7.jpg\"),\n        os.path.join(\"dataset\", \"img10.jpg\"),\n        os.path.join(\"dataset\", \"img11.jpg\"),\n        os.path.join(\"dataset\", \"img11_reflection.jpg\"),\n        os.path.join(\"dataset\", \"couple.jpg\"),\n        os.path.join(\"dataset\", \"selfie-many-people.jpg\"),\n    ]\n\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    k = len(angelinas) + 5\n    verification_threshold = verification.find_threshold(\n        model_name=\"VGG-Face\", distance_metric=\"cosine\"\n    )\n    results = DeepFace.find(\n        img_path=img_path, db_path=\"dataset\", silent=True, batched=True, similarity_search=True, k=k\n    )\n    assert isinstance(results, list)\n    assert len(results) > 0\n    for inner_results in results:\n        assert isinstance(inner_results, list)\n\n        assert len(inner_results) <= k\n        verified = 0\n        similar = 0\n        for result in inner_results:\n            assert isinstance(result, dict)\n            if result[\"identity\"] in angelinas:\n                verified += 1\n                assert result[\"distance\"] <= verification_threshold\n            else:\n                similar += 1\n                assert result[\"distance\"] > verification_threshold\n\n        assert verified > 0\n        assert similar > 0\n\n    logger.info(\"✅ test batched find with similarity search done\")\n\n\ndef test_find_with_array_input():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    img1 = cv2.imread(img_path)\n    results = DeepFace.find(img1, db_path=\"dataset\", silent=True, batched=True)\n    assert len(results) > 0\n    for result in results:\n        assert isinstance(result, list)\n\n        found_image_itself = False\n        for face in result:\n            assert isinstance(face, dict)\n            if face[\"identity\"] == img_path:\n                # validate reproducability\n                assert face[\"distance\"] < threshold\n                # one is img1.jpg itself\n                found_image_itself = True\n        assert found_image_itself\n\n    assert len(results[0]) > 1\n\n    logger.info(\"✅ test find for array input done\")\n\n\ndef test_find_with_extracted_faces():\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    face_objs = DeepFace.extract_faces(img_path)\n    img = face_objs[0][\"face\"]\n    results = DeepFace.find(\n        img, db_path=\"dataset\", detector_backend=\"skip\", silent=True, batched=True\n    )\n    assert len(results) > 0\n    for result in results:\n        assert isinstance(result, list)\n\n        found_image_itself = False\n        for face in result:\n            assert isinstance(face, dict)\n            if face[\"identity\"] == img_path:\n                # validate reproducability\n                assert face[\"distance\"] < threshold\n                # one is img1.jpg itself\n                found_image_itself = True\n        assert found_image_itself\n\n    assert len(results[0]) > 1\n    logger.info(\"✅ test find for extracted face input done\")\n\n\ndef test_filetype_for_find():\n    \"\"\"\n    only images as jpg and png can be loaded into database\n    \"\"\"\n    img_path = os.path.join(\"dataset\", \"img1.jpg\")\n    results = DeepFace.find(img_path=img_path, db_path=\"dataset\", silent=True, batched=True)\n\n    result = results[0]\n\n    assert not any(face[\"identity\"] == \"dataset/img47.jpg\" for face in result)\n\n    logger.info(\"✅ test wrong filetype done\")\n"
  },
  {
    "path": "tests/unit/test_landmark_sanitization.py",
    "content": "import numpy as np\nimport pytest\nfrom deepface.modules.detection import extract_faces, DetectedFace, FacialAreaRegion, is_valid_landmark\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\ndef sanitize_landmarks(region, width, height):\n    landmarks = {\n        \"left_eye\": region.left_eye,\n        \"right_eye\": region.right_eye,\n        \"nose\": region.nose,\n        \"mouth_left\": region.mouth_left,\n        \"mouth_right\": region.mouth_right,\n    }\n    for key, value in landmarks.items():\n        if not is_valid_landmark(value, width, height):\n            landmarks[key] = None\n    return landmarks\n\ndef test_sanitize_landmarks():\n    img = np.zeros((100, 100, 3), dtype=np.uint8)\n    height, width = img.shape[:2]\n    region = FacialAreaRegion(\n        x=10, y=10, w=50, h=50,\n        left_eye=(-5, 20),  # invalid\n        right_eye=(20, 200),  # invalid\n        nose=(30, 30),  # valid\n        mouth_left=(150, 20),  # invalid\n        mouth_right=(20, -10),  # invalid\n        confidence=0.9\n    )\n    landmarks = sanitize_landmarks(region, width, height)\n    logger.info(f\"Sanitized landmarks: {landmarks}\")\n    assert landmarks[\"left_eye\"] is None\n    assert landmarks[\"right_eye\"] is None\n    assert landmarks[\"nose\"] == (30, 30)\n    assert landmarks[\"mouth_left\"] is None\n    assert landmarks[\"mouth_right\"] is None\n    logger.info(\"Test passed: Invalid landmarks are sanitized to None.\")\n\ndef test_extract_faces_sanitizes_landmarks(monkeypatch):\n    img = np.zeros((100, 100, 3), dtype=np.uint8)\n    facial_area = FacialAreaRegion(\n        x=10, y=10, w=50, h=50,\n        left_eye=(-5, 20),  # invalid\n        right_eye=(20, 200),  # invalid\n        nose=(30, 30),  # valid\n        mouth_left=(150, 20),  # invalid\n        mouth_right=(20, -10),  # invalid\n        confidence=0.9\n    )\n    detected_face = DetectedFace(img=img, facial_area=facial_area, confidence=0.9)\n    monkeypatch.setattr(\"deepface.modules.detection.detect_faces\", lambda *args, **kwargs: [detected_face])\n    result = extract_faces(img, detector_backend=\"opencv\", enforce_detection=False)\n    facial_area_out = result[0][\"facial_area\"]\n    logger.info(f\"Output facial_area: {facial_area_out}\")\n    assert facial_area_out[\"left_eye\"] is None\n    assert facial_area_out[\"right_eye\"] is None\n    assert facial_area_out.get(\"nose\") == (30, 30)\n    assert facial_area_out.get(\"mouth_left\") is None\n    assert facial_area_out.get(\"mouth_right\") is None "
  },
  {
    "path": "tests/unit/test_output_normalization.py",
    "content": "# 3rd-party dependencies\nimport numpy as np\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.modules.normalization import normalize_embedding_minmax\nfrom deepface.config.minmax import minmax_values\n\n\ndef test_minmax_normalization():\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        minmax_normalize=False,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 1\n\n    for result in results:\n        embedding = result[\"embedding\"]\n        assert any(x < 0.0 or x > 1.0 for x in embedding)  # not normalized\n\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        minmax_normalize=True,\n    )\n    for result in results:\n        embedding = result[\"embedding\"]\n        assert all(x >= 0.0 and x <= 1.0 for x in embedding)  # normalized\n\n\ndef test_minmax_normalization_batch():\n    results = DeepFace.represent(\n        img_path=[\"dataset/img1.jpg\", \"dataset/couple.jpg\"],\n        model_name=\"Facenet\",\n        minmax_normalize=True,\n    )\n    assert isinstance(results, list)\n    assert len(results) == 2\n    expected_embeddings = [1, 2]\n    for idx, current_results in enumerate(results):\n        assert isinstance(current_results, list)\n        assert len(current_results) == expected_embeddings[idx]\n        for result in current_results:\n            embedding = result[\"embedding\"]\n            assert all(x >= 0.0 and x <= 1.0 for x in embedding)  # normalized\n\n\ndef test_minmax_normalization_edge_values():\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        minmax_normalize=False,\n    )\n    for result in results:\n        embedding = result[\"embedding\"]\n        dim_min, dim_max = minmax_values[\"Facenet\"]\n\n        add_val = dim_max - max(embedding) + 0.2\n        sub_val = abs(dim_min) - abs(min(embedding)) + 0.2\n\n        shifted_embedding = [x + add_val if x > 0 else x - sub_val for x in embedding]\n        normalized_embedding = normalize_embedding_minmax(\"Facenet\", shifted_embedding)\n        assert any(x < 0.0 or x > 1.0 for x in shifted_embedding)  # not normalized\n        assert all(x >= 0.0 and x <= 1.0 for x in normalized_embedding)  # normalized\n\n\ndef test_l2_normalization():\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        l2_normalize=False,\n    )\n    raw_embedding = results[0][\"embedding\"]\n    norm = np.linalg.norm(raw_embedding)\n    assert not np.isclose(norm, 1.0), f\"L2 norm of norm embedding shouldn't be 1, got {norm}\"\n\n    results = DeepFace.represent(\n        img_path=\"dataset/img1.jpg\",\n        model_name=\"Facenet\",\n        l2_normalize=True,\n    )\n    l2_embedding = results[0][\"embedding\"]\n\n    # L2 embedding != raw embedding\n    assert not np.allclose(\n        l2_embedding, raw_embedding\n    ), \"L2 normalized embedding should differ from raw embedding\"\n\n    # Norm of L2 embedding should be 1\n    norm = np.linalg.norm(l2_embedding)\n    assert np.isclose(norm, 1.0), f\"L2 norm of normalized embedding should be 1, got {norm}\"\n"
  },
  {
    "path": "tests/unit/test_represent.py",
    "content": "# built-in dependencies\nimport io\nimport cv2\nimport pytest\nimport numpy as np\nimport pytest\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef test_standard_represent():\n    img_path = \"dataset/img1.jpg\"\n    embedding_objs = DeepFace.represent(img_path)\n    # type should be list of dict\n    assert isinstance(embedding_objs, list)\n\n    for embedding_obj in embedding_objs:\n        assert isinstance(embedding_obj, dict)\n\n        embedding = embedding_obj[\"embedding\"]\n        logger.debug(f\"Function returned {len(embedding)} dimensional vector\")\n        assert len(embedding) == 4096\n    logger.info(\"✅ test standard represent function done\")\n\n\ndef test_standard_represent_with_io_object():\n    img_path = \"dataset/img1.jpg\"\n    default_embedding_objs = DeepFace.represent(img_path)\n    io_embedding_objs = DeepFace.represent(open(img_path, \"rb\"))\n    assert default_embedding_objs == io_embedding_objs\n\n    # Confirm non-seekable io objects are handled properly\n    io_obj = io.BytesIO(open(img_path, \"rb\").read())\n    io_obj.seek = None\n    no_seek_io_embedding_objs = DeepFace.represent(io_obj)\n    assert default_embedding_objs == no_seek_io_embedding_objs\n\n    # Confirm non-image io objects raise exceptions\n    with pytest.raises(ValueError, match=\"Failed to decode image\"):\n        DeepFace.represent(io.BytesIO(open(r\"../../requirements.txt\", \"rb\").read()))\n\n    logger.info(\"✅ test standard represent with io object function done\")\n\n\ndef test_represent_for_skipped_detector_backend_with_image_path():\n    face_img = \"dataset/img5.jpg\"\n    img_objs = DeepFace.represent(img_path=face_img, detector_backend=\"skip\")\n    assert len(img_objs) >= 1\n    img_obj = img_objs[0]\n    assert \"embedding\" in img_obj.keys()\n    assert \"facial_area\" in img_obj.keys()\n    assert isinstance(img_obj[\"facial_area\"], dict)\n    assert \"x\" in img_obj[\"facial_area\"].keys()\n    assert \"y\" in img_obj[\"facial_area\"].keys()\n    assert \"w\" in img_obj[\"facial_area\"].keys()\n    assert \"h\" in img_obj[\"facial_area\"].keys()\n    assert \"face_confidence\" in img_obj.keys()\n    logger.info(\"✅ test represent function for skipped detector and image path input backend done\")\n\n\ndef test_represent_for_preloaded_image():\n    face_img = \"dataset/img5.jpg\"\n    img = cv2.imread(face_img)\n    img_objs = DeepFace.represent(img_path=img)\n    # type should be list of dict\n    assert isinstance(img_objs, list)\n    assert len(img_objs) >= 1\n\n    for img_obj in img_objs:\n        assert isinstance(img_obj, dict)\n        assert \"embedding\" in img_obj.keys()\n        assert \"facial_area\" in img_obj.keys()\n        assert isinstance(img_obj[\"facial_area\"], dict)\n        assert \"x\" in img_obj[\"facial_area\"].keys()\n        assert \"y\" in img_obj[\"facial_area\"].keys()\n        assert \"w\" in img_obj[\"facial_area\"].keys()\n        assert \"h\" in img_obj[\"facial_area\"].keys()\n        assert \"face_confidence\" in img_obj.keys()\n    logger.info(\"✅ test represent function for skipped detector and preloaded image done\")\n\n\ndef test_represent_for_skipped_detector_backend_with_preloaded_image():\n    face_img = \"dataset/img5.jpg\"\n    img = cv2.imread(face_img)\n    img_objs = DeepFace.represent(img_path=img, detector_backend=\"skip\")\n    assert len(img_objs) >= 1\n    img_obj = img_objs[0]\n    assert \"embedding\" in img_obj.keys()\n    assert \"facial_area\" in img_obj.keys()\n    assert isinstance(img_obj[\"facial_area\"], dict)\n    assert \"x\" in img_obj[\"facial_area\"].keys()\n    assert \"y\" in img_obj[\"facial_area\"].keys()\n    assert \"w\" in img_obj[\"facial_area\"].keys()\n    assert \"h\" in img_obj[\"facial_area\"].keys()\n    assert \"face_confidence\" in img_obj.keys()\n    logger.info(\"✅ test represent function for skipped detector and preloaded image done\")\n\n\ndef test_max_faces():\n    # confirm that input image has more than one face\n    results = DeepFace.represent(img_path=\"dataset/couple.jpg\")\n    assert len(results) > 1\n\n    # test it with max faces arg\n    max_faces = 1\n    results = DeepFace.represent(img_path=\"dataset/couple.jpg\", max_faces=max_faces)\n    assert len(results) == max_faces\n\n\ndef test_represent_detector_backend():\n    # Results using a detection backend.\n    results_1 = DeepFace.represent(img_path=\"dataset/img1.jpg\")\n    assert len(results_1) == 1\n\n    # Results performing face extraction first.\n    faces = DeepFace.extract_faces(img_path=\"dataset/img1.jpg\", color_face=\"bgr\")\n    assert len(faces) == 1\n\n    # Images sent into represent need to be in BGR format.\n    img = faces[0][\"face\"]\n    results_2 = DeepFace.represent(img_path=img, detector_backend=\"skip\")\n    assert len(results_2) == 1\n\n    # The embeddings should be the exact same for both cases.\n    embedding_1 = results_1[0][\"embedding\"]\n    embedding_2 = results_2[0][\"embedding\"]\n    assert embedding_1 == embedding_2\n    logger.info(\"✅ test represent function for consistent output.\")\n\n\n@pytest.mark.parametrize(\n    \"model_name\",\n    [\n        \"VGG-Face\",\n        \"Facenet\",\n        \"SFace\",\n    ],\n)\ndef test_batched_represent_for_list_input(model_name):\n    img_paths = [\n        \"dataset/img1.jpg\",\n        \"dataset/img2.jpg\",\n        \"dataset/img3.jpg\",\n        \"dataset/img4.jpg\",\n        \"dataset/img5.jpg\",\n        \"dataset/couple.jpg\",\n    ]\n\n    expected_faces = [1, 1, 1, 1, 1, 2]\n\n    batched_embedding_objs = DeepFace.represent(img_path=img_paths, model_name=model_name)\n\n    # type should be list of list of dict for batch input\n    assert isinstance(batched_embedding_objs, list)\n\n    assert len(batched_embedding_objs) == len(\n        img_paths\n    ), f\"Expected {len(img_paths)} embeddings, got {len(batched_embedding_objs)}\"\n\n    # the last one has two faces\n    for idx, embedding_objs in enumerate(batched_embedding_objs):\n        # type should be list of list of dict for batch input\n        # batched_embedding_objs was list already, embedding_objs should be list of dict\n        assert isinstance(embedding_objs, list)\n        for embedding_obj in embedding_objs:\n            assert isinstance(embedding_obj, dict)\n\n        assert expected_faces[idx] == len(\n            embedding_objs\n        ), f\"{img_paths[idx]} has {expected_faces[idx]} faces, but got {len(embedding_objs)} embeddings!\"\n\n    for idx, img_path in enumerate(img_paths):\n        single_embedding_objs = DeepFace.represent(img_path=img_path, model_name=model_name)\n        # type should be list of dict for single input\n        assert isinstance(single_embedding_objs, list)\n        for embedding_obj in single_embedding_objs:\n            assert isinstance(embedding_obj, dict)\n\n        assert len(single_embedding_objs) == len(batched_embedding_objs[idx])\n\n        for alpha, beta in zip(single_embedding_objs, batched_embedding_objs[idx]):\n            assert isinstance(alpha, dict)\n            assert isinstance(beta, dict)\n            assert np.allclose(\n                alpha[\"embedding\"], beta[\"embedding\"], rtol=1e-2, atol=1e-2\n            ), \"Embeddings do not match within tolerance\"\n\n    logger.info(f\"✅ test batch represent function with string input for model {model_name} done\")\n\n\n@pytest.mark.parametrize(\n    \"model_name\",\n    [\n        \"VGG-Face\",\n        \"Facenet\",\n        \"SFace\",\n    ],\n)\ndef test_batched_represent_for_numpy_input(model_name):\n    img_paths = [\n        \"dataset/img1.jpg\",\n        \"dataset/img2.jpg\",\n        \"dataset/img3.jpg\",\n        \"dataset/img4.jpg\",\n        \"dataset/img5.jpg\",\n        \"dataset/couple.jpg\",\n    ]\n    expected_faces = [1, 1, 1, 1, 1, 2]\n\n    imgs = []\n    for img_path in img_paths:\n        img = cv2.imread(img_path)\n        img = cv2.resize(img, (1000, 1000))\n        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n        # print(img.shape)\n        imgs.append(img)\n\n    imgs = np.array(imgs)\n    assert imgs.ndim == 4 and imgs.shape[0] == len(img_paths)\n\n    batched_embedding_objs = DeepFace.represent(img_path=imgs, model_name=model_name)\n\n    # type should be list of list of dict for batch input\n    assert isinstance(batched_embedding_objs, list)\n    for idx, batched_embedding_obj in enumerate(batched_embedding_objs):\n        assert isinstance(batched_embedding_obj, list)\n        # it also has to have the expected number of faces\n        assert len(batched_embedding_obj) == expected_faces[idx]\n        for embedding_obj in batched_embedding_obj:\n            assert isinstance(embedding_obj, dict)\n\n    # we should have the same number of embeddings as the number of images\n    assert len(batched_embedding_objs) == len(img_paths)\n\n    logger.info(f\"✅ test batch represent function with numpy input for model {model_name} done\")\n"
  },
  {
    "path": "tests/unit/test_signature.py",
    "content": "# built-in dependencies\nimport os\nimport shutil\nimport uuid\nimport unittest\n\n# 3rd party dependencies\nimport pytest\nfrom lightdsa import LightDSA\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nALGORITHMS = [\"ecdsa\", \"eddsa\", \"rsa\", \"dsa\"]\n\n\n# pylint: disable=line-too-long\nclass TestSignature(unittest.TestCase):\n    def setUp(self):\n        experiment_id = str(uuid.uuid4())\n        self.db_path = f\"/tmp/{experiment_id}\"\n        self.expected_ds = (\n            \"ds_model_vggface_detector_opencv_aligned_normalization_base_expand_0.pkl\"\n        )\n\n        # create experiment folder\n        if not os.path.exists(self.db_path):\n            os.mkdir(self.db_path)\n\n        # copy some test files\n        os.system(f\"cp dataset/img1.jpg /tmp/{experiment_id}/\")\n        os.system(f\"cp dataset/img2.jpg /tmp/{experiment_id}/\")\n        os.system(f\"cp dataset/img3.jpg /tmp/{experiment_id}/\")\n\n    def tearDown(self):\n        if os.path.exists(self.db_path):\n            shutil.rmtree(self.db_path)\n\n    def test_sign_and_verify_happy_path_with_obj(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n            dfs_1st = DeepFace.find(\n                img_path=\"dataset/img6.jpg\", db_path=self.db_path, credentials=cs\n            )\n            dfs_2nd = DeepFace.find(\n                img_path=\"dataset/img7.jpg\", db_path=self.db_path, credentials=cs\n            )\n\n            assert isinstance(dfs_1st, list)\n            assert isinstance(dfs_2nd, list)\n\n            assert len(dfs_1st) > 0\n            assert len(dfs_2nd) > 0\n\n            assert dfs_1st[0].shape[0] == 2  # img1, img2\n            assert dfs_2nd[0].shape[0] == 2  # img1, img2\n\n            logger.info(\n                f\"✅ Signature test for happy path with LightDSA obj passed for {algorithm_name}\"\n            )\n            self.__flush_datastore_and_signature()\n\n    def test_sign_and_verify_happy_path_with_dict(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n            _ = DeepFace.find(\n                img_path=\"dataset/img6.jpg\",\n                db_path=self.db_path,\n                credentials={**cs.dsa.keys, \"algorithm_name\": algorithm_name},\n            )\n            _ = DeepFace.find(\n                img_path=\"dataset/img7.jpg\",\n                db_path=self.db_path,\n                credentials={**cs.dsa.keys, \"algorithm_name\": algorithm_name},\n            )\n\n            logger.info(f\"✅ Signature test for happy path with dict passed for {algorithm_name}\")\n            self.__flush_datastore_and_signature()\n\n    def test_missing_algorithm_in_dict(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n\n            with pytest.raises(\n                ValueError, match=\"credentials dictionary must have 'algorithm_name' key\"\n            ):\n                _ = DeepFace.find(\n                    img_path=\"dataset/img6.jpg\",\n                    db_path=self.db_path,\n                    credentials=cs.dsa.keys,\n                )\n\n            logger.info(f\"✅ Signature test for missing algorithm name passed for {algorithm_name}\")\n            self.__flush_datastore_and_signature()\n\n    def test_tampered_datastore_detection_with_type_error(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n\n            # this will create and sign the datastore\n            _ = DeepFace.find(img_path=\"dataset/img6.jpg\", db_path=self.db_path, credentials=cs)\n\n            # Tamper with the datastore file\n            signature = f\"{self.db_path}/{self.expected_ds}.ldsa\"\n            with open(signature, \"w\", encoding=\"utf-8\") as f:\n                f.write(\"'tampering with the datastore'\")\n\n            # signature type is not matching the algorithm\n            with pytest.raises(ValueError, match=\"Verify the signature\"):\n                _ = DeepFace.find(img_path=\"dataset/img7.jpg\", db_path=self.db_path, credentials=cs)\n\n            self.__flush_datastore_and_signature()\n\n            logger.info(\n                f\"✅ Tampered datastore detection test with type error passed for {algorithm_name}\"\n            )\n\n    def test_tampered_datastore_detection_with_content(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n\n            # this will create and sign the datastore\n            _ = DeepFace.find(img_path=\"dataset/img6.jpg\", db_path=self.db_path, credentials=cs)\n\n            if algorithm_name == \"rsa\":\n                new_signature = 319561459047296488548458984747399773018716548204273025089624526759359534233284312158510290754391934668693104185451914855617607653930118615834122905987992506015413484111459136235040703307837127330552076394553025514846602694994704058032032682011030896228476574896316764474080643444528752822215665326313975210266100821320428968057729348770126684036043834110914715739798738033680251895412183116783758569626527555756175521592665908984550792405972689418461489583818241720836275237261051794829129609867815663459783380179330918682830834361767346820728010180691232612809687266284664884281497246914633251532570093804727503221592140826938085233362518642240314192925852839183375057159735842181129571046919197169304114361287251975127762914060608489444548355191778055788828924190814939438198679453052886489889714657423399402932343101284126001466450432228046323891788753347814011641443220020734532039664233082527737624947853241639198217834\n            elif algorithm_name == \"dsa\":\n                new_signature = (\n                    9100224601877825638014134863066256026676002678448729267282144204754,\n                    7634803645147310159689393871148731810441463887021966655811033398889,\n                )\n            elif algorithm_name == \"ecdsa\":\n                new_signature = (\n                    21518513378698262440337632884706393342279436822165585485363750050247340191720,\n                    41671206923584596559299832926426077520762049023469772372748973101822889226099,\n                )\n            elif algorithm_name == \"eddsa\":\n                new_signature = (\n                    (\n                        10558823458062709006637242334064065742608369933510637863306601023456142118149,\n                        35629342124183609337373813938440693584938877184586698416611230077459766071,\n                    ),\n                    616779964632213973552139846661614990419749880592583320329014277948539725318347638187634255022715560768868643524944455800527501125094189022366431963778314,\n                )\n            else:\n                raise ValueError(f\"Unsupported algorithm name: {algorithm_name}\")\n\n            # Tamper with the datastore file\n            signature = f\"{self.db_path}/{self.expected_ds}.ldsa\"\n            with open(signature, \"w\", encoding=\"utf-8\") as f:\n                f.write(str(new_signature))\n\n            # signature type is not matching the algorithm\n            with pytest.raises(ValueError, match=r\"(Signature is invalid|Invalid signature)\"):\n                _ = DeepFace.find(img_path=\"dataset/img7.jpg\", db_path=self.db_path, credentials=cs)\n\n            self.__flush_datastore_and_signature()\n\n            logger.info(\n                f\"✅ Tampered datastore detection test with content passed for {algorithm_name}\"\n            )\n\n    def test_unsigned_datastore_detected(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n\n            # this will create ds without signature\n            _ = DeepFace.find(img_path=\"dataset/img6.jpg\", db_path=self.db_path)\n\n            with pytest.raises(\n                ValueError,\n                match=\".ldsa not found.You may need to re-create the pickle by deleting the existing one.\",\n            ):\n                _ = DeepFace.find(img_path=\"dataset/img7.jpg\", db_path=self.db_path, credentials=cs)\n\n            logger.info(\n                f\"✅ Signature test for happy path with LightDSA obj passed for {algorithm_name}\"\n            )\n            self.__flush_datastore_and_signature()\n\n    def test_signed_datastore_with_no_credentials(self):\n        for algorithm_name in ALGORITHMS:\n            cs = LightDSA(algorithm_name=algorithm_name)\n\n            # this will create and sign the datastore\n            _ = DeepFace.find(img_path=\"dataset/img6.jpg\", db_path=self.db_path, credentials=cs)\n\n            signature_path = f\"{self.db_path}/{self.expected_ds}.ldsa\"\n            with pytest.raises(\n                ValueError,\n                match=f\"Credentials not provided but signature file {signature_path} exists.\",\n            ):\n                _ = DeepFace.find(img_path=\"dataset/img7.jpg\", db_path=self.db_path)\n\n            logger.info(f\"✅ Signed datastore with no credentials test passed for {algorithm_name}\")\n            self.__flush_datastore_and_signature()\n\n    def test_custom_curves(self):\n        for algorithm_name, form_name, curve_name in [\n            # default configurations\n            # (\"eddsa\", \"edwards\", \"ed25519\"),\n            # (\"ecdsa\", \"weierstrass\", \"secp256k1\"),\n            # custom configurations\n            (\"eddsa\", \"weierstrass\", \"secp256k1\"),\n            (\"eddsa\", \"koblitz\", \"k233\"),\n            (\"eddsa\", \"edwards\", \"e521\"),\n            (\"ecdsa\", \"edwards\", \"ed25519\"),\n            (\"ecdsa\", \"koblitz\", \"k233\"),\n            (\"ecdsa\", \"weierstrass\", \"bn638\"),\n        ]:\n            cs = LightDSA(algorithm_name=algorithm_name, form_name=form_name, curve_name=curve_name)\n            _ = DeepFace.find(\n                img_path=\"dataset/img6.jpg\",\n                db_path=self.db_path,\n                credentials={\n                    **cs.dsa.keys,\n                    \"algorithm_name\": algorithm_name,\n                    \"form_name\": form_name,\n                    \"curve_name\": curve_name,\n                },\n            )\n            _ = DeepFace.find(\n                img_path=\"dataset/img7.jpg\",\n                db_path=self.db_path,\n                credentials={\n                    **cs.dsa.keys,\n                    \"algorithm_name\": algorithm_name,\n                    \"form_name\": form_name,\n                    \"curve_name\": curve_name,\n                },\n            )\n\n            logger.info(\n                f\"✅ Signature test for custom curves passed for {algorithm_name}/{form_name}/{curve_name}\"\n            )\n            self.__flush_datastore_and_signature()\n\n    def __flush_datastore_and_signature(self):\n        if os.path.exists(f\"{self.db_path}/{self.expected_ds}\"):\n            os.remove(f\"{self.db_path}/{self.expected_ds}\")\n\n        if os.path.exists(f\"{self.db_path}/{self.expected_ds}.ldsa\"):\n            os.remove(f\"{self.db_path}/{self.expected_ds}.ldsa\")\n"
  },
  {
    "path": "tests/unit/test_singleton.py",
    "content": "from deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef test_singleton_same_object():\n    assert Logger() == Logger()\n    logger.info(\"✅ id's of instances of \\\"singletoned\\\" class Logger are the same\")\n"
  },
  {
    "path": "tests/unit/test_verify.py",
    "content": "# 3rd party dependencies\nimport pytest\nimport cv2\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.modules.verification import find_distance\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\nmodels = [\"VGG-Face\", \"Facenet\", \"Facenet512\", \"ArcFace\", \"GhostFaceNet\"]\nmetrics = [\"cosine\", \"euclidean\", \"euclidean_l2\", \"angular\"]\ndetectors = [\"opencv\", \"mtcnn\"]\n\n\ndef test_different_facial_recognition_models():\n    dataset = [\n        [\"dataset/img1.jpg\", \"dataset/img2.jpg\", True],\n        [\"dataset/img5.jpg\", \"dataset/img6.jpg\", True],\n        [\"dataset/img6.jpg\", \"dataset/img7.jpg\", True],\n        [\"dataset/img8.jpg\", \"dataset/img9.jpg\", True],\n        [\"dataset/img1.jpg\", \"dataset/img11.jpg\", True],\n        [\"dataset/img2.jpg\", \"dataset/img11.jpg\", True],\n        [\"dataset/img1.jpg\", \"dataset/img3.jpg\", False],\n        [\"dataset/img2.jpg\", \"dataset/img3.jpg\", False],\n        [\"dataset/img6.jpg\", \"dataset/img8.jpg\", False],\n        [\"dataset/img6.jpg\", \"dataset/img9.jpg\", False],\n    ]\n\n    expected_coverage = 97.53  # human level accuracy on LFW\n    successful_tests = 0\n    unsuccessful_tests = 0\n    for model in models:\n        for metric in metrics:\n            for instance in dataset:\n                img1 = instance[0]\n                img2 = instance[1]\n                result = instance[2]\n\n                resp_obj = DeepFace.verify(img1, img2, model_name=model, distance_metric=metric)\n\n                prediction = resp_obj[\"verified\"]\n                distance = round(resp_obj[\"distance\"], 2)\n                threshold = resp_obj[\"threshold\"]\n\n                if prediction is result:\n                    test_result_label = \"✅\"\n                    successful_tests += 1\n                else:\n                    test_result_label = \"❌\"\n                    unsuccessful_tests += 1\n\n                if prediction is True:\n                    classified_label = \"same person\"\n                else:\n                    classified_label = \"different persons\"\n\n                img1_alias = img1.split(\"/\", maxsplit=1)[-1]\n                img2_alias = img2.split(\"/\", maxsplit=1)[-1]\n\n                logger.debug(\n                    f\"{test_result_label} Pair {img1_alias}-{img2_alias}\"\n                    f\" is {classified_label} based on {model}-{metric}\"\n                    f\" (Distance: {distance}, Threshold: {threshold})\",\n                )\n\n    coverage_score = (100 * successful_tests) / (successful_tests + unsuccessful_tests)\n    assert (\n        coverage_score > expected_coverage\n    ), f\"⛔ facial recognition models test failed with {coverage_score} score\"\n\n    logger.info(f\"✅ facial recognition models test passed with {coverage_score}\")\n\n\ndef test_different_face_detectors():\n    for detector in detectors:\n        res = DeepFace.verify(\"dataset/img1.jpg\", \"dataset/img2.jpg\", detector_backend=detector)\n        assert isinstance(res, dict)\n        assert \"verified\" in res.keys()\n        assert res[\"verified\"] in [True, False]\n        assert \"distance\" in res.keys()\n        assert \"threshold\" in res.keys()\n        assert \"model\" in res.keys()\n        assert \"detector_backend\" in res.keys()\n        assert \"similarity_metric\" in res.keys()\n        assert \"facial_areas\" in res.keys()\n        assert \"img1\" in res[\"facial_areas\"].keys()\n        assert \"img2\" in res[\"facial_areas\"].keys()\n        assert \"x\" in res[\"facial_areas\"][\"img1\"].keys()\n        assert \"y\" in res[\"facial_areas\"][\"img1\"].keys()\n        assert \"w\" in res[\"facial_areas\"][\"img1\"].keys()\n        assert \"h\" in res[\"facial_areas\"][\"img1\"].keys()\n        assert \"x\" in res[\"facial_areas\"][\"img2\"].keys()\n        assert \"y\" in res[\"facial_areas\"][\"img2\"].keys()\n        assert \"w\" in res[\"facial_areas\"][\"img2\"].keys()\n        assert \"h\" in res[\"facial_areas\"][\"img2\"].keys()\n        assert \"confidence\" in res.keys()\n        assert isinstance(res[\"confidence\"], (float, int))\n        assert 0 <= res[\"confidence\"] <= 100, \"Confidence should be between 0 and 100\"\n        if res[\"verified\"]:\n            assert (\n                51 <= res[\"confidence\"] <= 100\n            ), \"Confidence for same person should be between 51 and 100\"\n        else:\n            assert (\n                0 <= res[\"confidence\"] <= 49\n            ), \"Confidence for different persons should be between 0 and 49\"\n        logger.info(f\"✅ test verify for {detector} backend done\")\n\n\ndef test_verify_for_preloaded_image():\n    img1 = cv2.imread(\"dataset/img1.jpg\")\n    img2 = cv2.imread(\"dataset/img2.jpg\")\n    res = DeepFace.verify(img1, img2)\n    assert res[\"verified\"] is True\n    logger.info(\"✅ test verify for pre-loaded image done\")\n\n\ndef test_verify_for_precalculated_embeddings():\n    model_name = \"Facenet\"\n\n    img1_path = \"dataset/img1.jpg\"\n    img2_path = \"dataset/img2.jpg\"\n\n    img1_embedding = DeepFace.represent(img_path=img1_path, model_name=model_name)[0][\"embedding\"]\n    img2_embedding = DeepFace.represent(img_path=img2_path, model_name=model_name)[0][\"embedding\"]\n\n    result = DeepFace.verify(\n        img1_path=img1_embedding, img2_path=img2_embedding, model_name=model_name, silent=True\n    )\n\n    assert result[\"verified\"] is True\n    assert result[\"distance\"] < result[\"threshold\"]\n    assert result[\"model\"] == model_name\n    assert result[\"facial_areas\"][\"img1\"] is not None\n    assert result[\"facial_areas\"][\"img2\"] is not None\n\n    assert isinstance(result[\"facial_areas\"][\"img1\"], dict)\n    assert isinstance(result[\"facial_areas\"][\"img2\"], dict)\n\n    assert \"x\" in result[\"facial_areas\"][\"img1\"].keys()\n    assert \"y\" in result[\"facial_areas\"][\"img1\"].keys()\n    assert \"w\" in result[\"facial_areas\"][\"img1\"].keys()\n    assert \"h\" in result[\"facial_areas\"][\"img1\"].keys()\n    assert \"left_eye\" in result[\"facial_areas\"][\"img1\"].keys()\n    assert \"right_eye\" in result[\"facial_areas\"][\"img1\"].keys()\n\n    assert \"x\" in result[\"facial_areas\"][\"img2\"].keys()\n    assert \"y\" in result[\"facial_areas\"][\"img2\"].keys()\n    assert \"w\" in result[\"facial_areas\"][\"img2\"].keys()\n    assert \"h\" in result[\"facial_areas\"][\"img2\"].keys()\n    assert \"left_eye\" in result[\"facial_areas\"][\"img2\"].keys()\n    assert \"right_eye\" in result[\"facial_areas\"][\"img2\"].keys()\n\n    logger.info(\"✅ test verify for pre-calculated embeddings done\")\n\n\ndef test_verify_with_precalculated_embeddings_for_incorrect_model():\n    # generate embeddings with VGG (default)\n    img1_path = \"dataset/img1.jpg\"\n    img2_path = \"dataset/img2.jpg\"\n    img1_embedding = DeepFace.represent(img_path=img1_path)[0][\"embedding\"]\n    img2_embedding = DeepFace.represent(img_path=img2_path)[0][\"embedding\"]\n\n    with pytest.raises(\n        ValueError,\n        match=\"embeddings of Facenet should have 128 dimensions, but 1-th image has 4096 dimensions input\",\n    ):\n        _ = DeepFace.verify(\n            img1_path=img1_embedding, img2_path=img2_embedding, model_name=\"Facenet\", silent=True\n        )\n\n    logger.info(\"✅ test verify with pre-calculated embeddings for incorrect model done\")\n\n\ndef test_verify_for_broken_embeddings():\n    img1_embeddings = [\"a\", \"b\", \"c\"]\n    img2_embeddings = [1, 2, 3]\n\n    with pytest.raises(\n        ValueError,\n        match=\"When passing img1_path as a list, ensure that all its items are of type float.\",\n    ):\n        _ = DeepFace.verify(img1_path=img1_embeddings, img2_path=img2_embeddings)\n    logger.info(\"✅ test verify for broken embeddings content is done\")\n\n\ndef test_verify_for_nested_embeddings():\n    \"\"\"\n    batch embeddings not supported\n    \"\"\"\n    img1_embeddings = [[1, 2, 3], [4, 5, 6]]\n    img2_path = \"dataset/img1.jpg\"\n\n    with pytest.raises(\n        ValueError,\n        match=\"When passing img1_path as a list, ensure that all its items are of type float\",\n    ):\n        _ = DeepFace.verify(img1_path=img1_embeddings, img2_path=img2_path)\n\n    logger.info(\"✅ test verify for nested embeddings is done\")\n\n\ndef test_compability_of_verify_and_represent():\n    \"\"\"\n    verify and represent should be compatible\n        because of rgb bgr conversion, this is confusing\n    \"\"\"\n    img1 = \"dataset/img1.jpg\"\n    img2 = \"dataset/img2.jpg\"\n\n    resp_obj = DeepFace.verify(\n        img1, img2, model_name=\"Facenet\", detector_backend=\"mtcnn\", distance_metric=\"cosine\"\n    )\n    alpha = resp_obj[\"distance\"]\n\n    img1_repr = DeepFace.represent(img1, model_name=\"Facenet\", detector_backend=\"mtcnn\")[0][\n        \"embedding\"\n    ]\n    img2_repr = DeepFace.represent(img2, model_name=\"Facenet\", detector_backend=\"mtcnn\")[0][\n        \"embedding\"\n    ]\n\n    beta = find_distance(\n        alpha_embedding=img1_repr,\n        beta_embedding=img2_repr,\n        distance_metric=\"cosine\",\n    )\n\n    assert abs(alpha - beta) < 1e-6, f\"Distance mismatch: {alpha} (verify) vs {beta} (represent)\"\n\n    logger.info(\"✅ test compatibility of verify and represent is done\")\n\n\ndef test_confidence():\n    for distance_metric in metrics:\n        result = DeepFace.verify(\n            \"dataset/img1.jpg\",\n            \"dataset/img2.jpg\",\n            model_name=\"Facenet\",\n            detector_backend=\"mtcnn\",\n            distance_metric=distance_metric,\n        )\n        assert (\n            result[\"confidence\"] >= 51\n        ), f\"Confidence should be >= 51 for same person, got {result['confidence']}\"\n\n        result = DeepFace.verify(\n            \"dataset/img1.jpg\",\n            \"dataset/img8.jpg\",\n            model_name=\"Facenet\",\n            detector_backend=\"mtcnn\",\n            distance_metric=distance_metric,\n        )\n        assert (\n            result[\"confidence\"] <= 49\n        ), f\"Confidence should be <= 49 for different persons, got {result['confidence']}\"\n        logger.info(f\"✅ test confidence for {distance_metric} metric is done\")\n"
  },
  {
    "path": "tests/unit/test_version.py",
    "content": "# built-in dependencies\nimport json\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n\ndef test_version():\n    with open(\"../../package_info.json\", \"r\", encoding=\"utf-8\") as f:\n        package_info = json.load(f)\n\n    assert DeepFace.__version__ == package_info[\"version\"]\n    logger.info(\"✅ versions are matching in both package_info.json and deepface/__init__.py\")\n"
  },
  {
    "path": "tests/unit/visual-test.py",
    "content": "# 3rd party dependencies\nimport matplotlib.pyplot as plt\n\n# project dependencies\nfrom deepface import DeepFace\nfrom deepface.commons.logger import Logger\n\nlogger = Logger()\n\n# some models (e.g. Dlib) and detectors (e.g. retinaface) do not have test cases\n# because they require to install huge packages\n# this module is for local runs\n\nmodel_names = [\n    \"VGG-Face\",\n    \"Facenet\",\n    \"Facenet512\",\n    \"OpenFace\",\n    \"DeepFace\",\n    \"DeepID\",\n    \"Dlib\",\n    \"ArcFace\",\n    \"SFace\",\n    \"GhostFaceNet\",\n]\n\ndetector_backends = [\n    \"opencv\",\n    \"ssd\",\n    \"dlib\",\n    \"mtcnn\",\n    \"fastmtcnn\",\n    # \"mediapipe\", # crashed in mac\n    \"retinaface\",\n    \"yunet\",\n    \"yolov8n\",\n    \"yolov8m\",\n    \"yolov8l\",\n    \"yolov11n\",\n    \"yolov11s\",\n    \"yolov11m\",\n    \"yolov11l\",\n    \"yolov12n\",\n    \"yolov12s\",\n    \"yolov12m\",\n    \"yolov12l\",\n    \"yolov11n\",\n    \"yolov11s\",\n    \"yolov11m\",\n    \"centerface\",\n]\n\n# verification\nfor model_name in model_names:\n    obj = DeepFace.verify(\n        img1_path=\"dataset/img1.jpg\", img2_path=\"dataset/img2.jpg\", model_name=model_name\n    )\n    logger.info(obj)\n    logger.info(\"---------------------\")\n\n# represent\nfor model_name in model_names:\n    embedding_objs = DeepFace.represent(img_path=\"dataset/img1.jpg\", model_name=model_name)\n    for embedding_obj in embedding_objs:\n        embedding = embedding_obj[\"embedding\"]\n        logger.info(f\"{model_name} produced {len(embedding)}D vector\")\n\n\n# find\ndfs = DeepFace.find(\n    img_path=\"dataset/img1.jpg\", db_path=\"dataset\", model_name=\"Facenet\", detector_backend=\"mtcnn\"\n)\nfor df in dfs:\n    logger.info(df)\n\nexpand_areas = [0]\nimg_paths = [\"dataset/img11.jpg\", \"dataset/img11_reflection.jpg\"]\nfor expand_area in expand_areas:\n    for img_path in img_paths:\n        # extract faces\n        for detector_backend in detector_backends:\n            face_objs = DeepFace.extract_faces(\n                img_path=img_path,\n                detector_backend=detector_backend,\n                align=True,\n                expand_percentage=expand_area,\n            )\n            for face_obj in face_objs:\n                face = face_obj[\"face\"]\n                logger.info(f\"testing {img_path} with {detector_backend}\")\n                logger.info(face_obj[\"facial_area\"])\n                logger.info(face_obj[\"confidence\"])\n\n                # we know opencv sometimes cannot find eyes\n                if face_obj[\"facial_area\"][\"left_eye\"] is not None:\n                    assert isinstance(face_obj[\"facial_area\"][\"left_eye\"], tuple)\n                    assert isinstance(face_obj[\"facial_area\"][\"left_eye\"][0], int)\n                    assert isinstance(face_obj[\"facial_area\"][\"left_eye\"][1], int)\n\n                if face_obj[\"facial_area\"][\"right_eye\"] is not None:\n                    assert isinstance(face_obj[\"facial_area\"][\"right_eye\"], tuple)\n                    assert isinstance(face_obj[\"facial_area\"][\"right_eye\"][0], int)\n                    assert isinstance(face_obj[\"facial_area\"][\"right_eye\"][1], int)\n\n                # left eye is really the left eye of the person\n                if (\n                    face_obj[\"facial_area\"][\"left_eye\"] is not None\n                    and face_obj[\"facial_area\"][\"right_eye\"] is not None\n                ):\n                    re_x = face_obj[\"facial_area\"][\"right_eye\"][0]\n                    le_x = face_obj[\"facial_area\"][\"left_eye\"][0]\n                    assert re_x < le_x, \"right eye must be the right eye of the person\"\n\n                type_conf = type(face_obj[\"confidence\"])\n                assert isinstance(\n                    face_obj[\"confidence\"], float\n                ), f\"confidence type must be float but it is {type_conf}\"\n                assert face_obj[\"confidence\"] <= 1\n\n                plt.imshow(face)\n                plt.axis(\"off\")\n                plt.show()\n                logger.info(\"-----------\")\n"
  }
]