Repository: DataTalksClub/mlops-zoomcamp Branch: main Commit: fdca5b44045e Files: 274 Total size: 18.9 MB Directory structure: gitextract_69ga8un0/ ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ ├── cd-deploy.yml │ └── ci-tests.yml ├── .gitignore ├── 01-intro/ │ ├── README.md │ ├── duration-prediction.ipynb │ └── meta.json ├── 02-experiment-tracking/ │ ├── README.md │ ├── duration-prediction.ipynb │ ├── meta.json │ ├── mlflow_on_aws.md │ ├── model-registry.ipynb │ ├── requirements.txt │ └── running-mlflow-examples/ │ ├── scenario-1.ipynb │ ├── scenario-2.ipynb │ └── scenario-3.ipynb ├── 03-orchestration/ │ ├── README.md │ └── code/ │ ├── commands.md │ ├── duration-prediction.ipynb │ └── duration-prediction.py ├── 04-deployment/ │ ├── README.md │ ├── batch/ │ │ ├── Pipfile │ │ ├── README.md │ │ ├── score.ipynb │ │ ├── score.py │ │ ├── score_backfill.py │ │ └── score_deploy.py │ ├── load_model.ipynb │ ├── meta.json │ ├── streaming/ │ │ ├── Dockerfile │ │ ├── Pipfile │ │ ├── README.md │ │ ├── lambda_function.py │ │ ├── test.py │ │ └── test_docker.py │ ├── web-service/ │ │ ├── Dockerfile │ │ ├── Pipfile │ │ ├── README.md │ │ ├── predict.py │ │ └── test.py │ └── web-service-mlflow/ │ ├── Pipfile │ ├── README.md │ ├── predict.py │ ├── random-forest.ipynb │ └── test.py ├── 05-monitoring/ │ ├── README.md │ ├── baseline_model_nyc_taxi_data.ipynb │ ├── config/ │ │ ├── grafana_dashboards.yaml │ │ └── grafana_datasources.yaml │ ├── dashboards/ │ │ └── data_drift.json │ ├── data/ │ │ └── .gitignore │ ├── debugging_nyc_taxi_data.ipynb │ ├── docker-compose.yml │ ├── dummy_metrics_calculation.py │ ├── evidently_metrics_calculation.py │ ├── meta.json │ ├── models/ │ │ └── .gitignore │ ├── post-evidently-0.7/ │ │ ├── README.md │ │ ├── baseline_model_nyc_taxi_data.ipynb │ │ ├── config/ │ │ │ ├── grafana_dashboards.yaml │ │ │ └── grafana_datasources.yaml │ │ ├── dashboards/ │ │ │ └── data_drift.json │ │ ├── debugging_nyc_taxi_data.ipynb │ │ ├── docker-compose.yml │ │ ├── dummy_metrics_calculation.py │ │ ├── evidently_metrics_calculation.py │ │ ├── meta.json │ │ └── requirements.txt │ └── requirements.txt ├── 06-best-practices/ │ ├── README.md │ ├── code/ │ │ ├── .gitignore │ │ ├── .pre-commit-config.yaml │ │ ├── .vscode/ │ │ │ └── settings.json │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── Pipfile │ │ ├── README.md │ │ ├── infrastructure/ │ │ │ ├── main.tf │ │ │ ├── modules/ │ │ │ │ ├── ecr/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── kinesis/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── lambda/ │ │ │ │ │ ├── iam.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ └── s3/ │ │ │ │ ├── main.tf │ │ │ │ └── variables.tf │ │ │ ├── variables.tf │ │ │ └── vars/ │ │ │ ├── prod.tfvars │ │ │ └── stg.tfvars │ │ ├── integration-test/ │ │ │ ├── docker-compose.yaml │ │ │ ├── event.json │ │ │ ├── model/ │ │ │ │ ├── MLmodel │ │ │ │ ├── conda.yaml │ │ │ │ ├── model.pkl │ │ │ │ ├── python_env.yaml │ │ │ │ └── requirements.txt │ │ │ ├── run.sh │ │ │ ├── test_docker.py │ │ │ └── test_kinesis.py │ │ ├── lambda_function.py │ │ ├── model.py │ │ ├── plan.md │ │ ├── pyproject.toml │ │ ├── scripts/ │ │ │ ├── deploy_manual.sh │ │ │ ├── publish.sh │ │ │ └── test_cloud_e2e.sh │ │ └── tests/ │ │ ├── __init__.py │ │ ├── data.b64 │ │ └── model_test.py │ ├── docs.md │ └── meta.json ├── 07-project/ │ └── README.md ├── README.md ├── after-sign-up.md ├── asking-questions.md ├── certificate.md ├── cohorts/ │ ├── 2022/ │ │ ├── 01-intro/ │ │ │ ├── homework.ipynb │ │ │ └── homework.md │ │ ├── 02-experiment-tracking/ │ │ │ ├── homework/ │ │ │ │ ├── hpo.py │ │ │ │ ├── preprocess_data.py │ │ │ │ ├── register_model.py │ │ │ │ └── train.py │ │ │ └── homework.md │ │ ├── 03-orchestration/ │ │ │ ├── README.md │ │ │ ├── code/ │ │ │ │ ├── model_training.py │ │ │ │ ├── orchestration.py │ │ │ │ ├── prefect_deploy.py │ │ │ │ ├── prefect_flow.py │ │ │ │ └── work-queue.py │ │ │ ├── homework.md │ │ │ ├── homework.py │ │ │ └── homework_solution.py │ │ ├── 04-deployment/ │ │ │ ├── homework/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Pipfile │ │ │ │ ├── batch.py │ │ │ │ ├── homework.dockerfile │ │ │ │ └── starter.ipynb │ │ │ └── homework.md │ │ ├── 05-monitoring/ │ │ │ ├── README.md │ │ │ ├── homework/ │ │ │ │ ├── docker-compose-homework-solution.yml │ │ │ │ ├── docker-compose-homework.yml │ │ │ │ ├── model_training.py │ │ │ │ ├── prediction_service/ │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── Pipfile │ │ │ │ │ └── app.py │ │ │ │ ├── prefect-monitoring/ │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── clean_mongo.py │ │ │ │ │ ├── monitor_profile.ipynb │ │ │ │ │ ├── monitor_profile_solution.ipynb │ │ │ │ │ ├── prefect_monitoring.py │ │ │ │ │ ├── prefect_monitoring_solution.py │ │ │ │ │ ├── prepare_reference_data.py │ │ │ │ │ └── send_data.py │ │ │ │ ├── prepare.py │ │ │ │ ├── requirements.txt │ │ │ │ └── test.py │ │ │ └── homework.md │ │ ├── 06-best-practices/ │ │ │ ├── homework/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Pipfile │ │ │ │ └── batch.py │ │ │ ├── homework.md │ │ │ └── homework_solution/ │ │ │ ├── Dockerfile │ │ │ ├── Pipfile │ │ │ ├── batch.py │ │ │ ├── docker-compose.yaml │ │ │ ├── integration_test.py │ │ │ ├── integration_test.sh │ │ │ └── tests/ │ │ │ ├── __init__.py │ │ │ └── test_batch.py │ │ ├── 07-project/ │ │ │ └── README.md │ │ └── leaderboard.md │ ├── 2023/ │ │ ├── 01-intro/ │ │ │ └── homework.md │ │ ├── 02-experiment-tracking/ │ │ │ ├── homework/ │ │ │ │ ├── hpo.py │ │ │ │ ├── preprocess_data.py │ │ │ │ ├── register_model.py │ │ │ │ └── train.py │ │ │ ├── homework-wandb/ │ │ │ │ ├── preprocess_data.py │ │ │ │ ├── sweep.py │ │ │ │ └── train.py │ │ │ ├── homework.md │ │ │ ├── solution-mlflow/ │ │ │ │ ├── hpo.py │ │ │ │ ├── preprocess_data.py │ │ │ │ ├── register_model.py │ │ │ │ └── train.py │ │ │ └── wandb.md │ │ ├── 03-orchestration/ │ │ │ ├── homework.md │ │ │ └── prefect/ │ │ │ ├── .gitignore │ │ │ ├── 3.2/ │ │ │ │ ├── cat_dog_facts.py │ │ │ │ └── cat_facts.py │ │ │ ├── 3.3/ │ │ │ │ ├── duration_prediction_explore.ipynb │ │ │ │ ├── duration_prediction_original.ipynb │ │ │ │ ├── orchestrate.py │ │ │ │ └── orchestrate_pre_prefect.py │ │ │ ├── 3.4/ │ │ │ │ └── orchestrate.py │ │ │ ├── 3.5/ │ │ │ │ ├── create_s3_bucket_block.py │ │ │ │ ├── orchestrate.py │ │ │ │ └── orchestrate_s3.py │ │ │ ├── 3.6/ │ │ │ │ ├── create_s3_bucket_block.py │ │ │ │ └── orchestrate_s3.py │ │ │ ├── README.md │ │ │ ├── meta.json │ │ │ └── requirements.txt │ │ ├── 04-deployment/ │ │ │ ├── homework/ │ │ │ │ ├── Dockerfile │ │ │ │ └── starter.ipynb │ │ │ └── homework.md │ │ ├── 05-monitoring/ │ │ │ └── homework.md │ │ ├── 06-best-practices/ │ │ │ ├── homework/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Pipfile │ │ │ │ └── batch.py │ │ │ ├── homework.md │ │ │ └── homework_solution/ │ │ │ ├── Pipfile │ │ │ ├── batch.py │ │ │ ├── docker-compose.yaml │ │ │ ├── integration_test.py │ │ │ └── tests/ │ │ │ ├── __init__.py │ │ │ └── test_batch.py │ │ ├── 07-project/ │ │ │ └── README.md │ │ └── README.md │ ├── 2024/ │ │ ├── 01-intro/ │ │ │ └── homework.md │ │ ├── 02-experiment-tracking/ │ │ │ ├── homework/ │ │ │ │ ├── hpo.py │ │ │ │ ├── preprocess_data.py │ │ │ │ ├── register_model.py │ │ │ │ └── train.py │ │ │ ├── homework.md │ │ │ └── solution/ │ │ │ ├── hpo.py │ │ │ ├── preprocess_data.py │ │ │ ├── register_model.py │ │ │ └── train.py │ │ ├── 03-orchestration/ │ │ │ ├── .gitignore │ │ │ ├── 3.0/ │ │ │ │ └── README.md │ │ │ ├── 3.1/ │ │ │ │ └── README.md │ │ │ ├── 3.2/ │ │ │ │ └── README.md │ │ │ ├── 3.3/ │ │ │ │ └── README.md │ │ │ ├── 3.4/ │ │ │ │ └── README.md │ │ │ ├── 3.5/ │ │ │ │ └── README.md │ │ │ ├── README.md │ │ │ ├── homework.md │ │ │ ├── meta.json │ │ │ └── requirements.txt │ │ ├── 04-deployment/ │ │ │ ├── homework/ │ │ │ │ └── starter.ipynb │ │ │ ├── homework.md │ │ │ └── homework_solution/ │ │ │ ├── Dockerfile │ │ │ ├── Pipfile │ │ │ ├── batch.py │ │ │ ├── homework.dockerfile │ │ │ └── solution.ipynb │ │ ├── 05-monitoring/ │ │ │ └── homework.md │ │ ├── 06-best-practices/ │ │ │ ├── homework/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── Pipfile │ │ │ │ └── batch.py │ │ │ └── homework.md │ │ ├── README.md │ │ └── project.md │ └── 2025/ │ ├── 01-intro/ │ │ ├── homework.ipynb │ │ └── homework.md │ ├── 02-experiment-tracking/ │ │ ├── homework/ │ │ │ ├── hpo.py │ │ │ ├── preprocess_data.py │ │ │ ├── register_model.py │ │ │ └── train.py │ │ └── homework.md │ ├── 03-orchestration/ │ │ └── homework.md │ ├── 04-deployment/ │ │ ├── homework/ │ │ │ └── starter.ipynb │ │ └── homework.md │ ├── 05-monitoring/ │ │ └── homework.md │ ├── 06-best-practices/ │ │ ├── homework/ │ │ │ ├── Dockerfile │ │ │ ├── Pipfile │ │ │ └── batch.py │ │ └── homework.md │ ├── README.md │ ├── competition/ │ │ └── README.md │ └── project.md ├── generate/ │ └── generate_pages.ipynb └── learning-in-public.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ github: alexeygrigorev ================================================ FILE: .github/workflows/cd-deploy.yml ================================================ name: CD-Deploy on: push: branches: - 'develop' # paths: # - '06-best-practices/code/**' jobs: build-push-deploy: runs-on: ubuntu-latest steps: - name: Check out repo uses: actions/checkout@v3 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: "eu-west-1" - uses: hashicorp/setup-terraform@v2 with: terraform_wrapper: false # Define the infrastructure - name: TF plan id: tf-plan working-directory: '06-best-practices/code/infrastructure' run: | terraform init -backend-config="key=mlops-zoomcamp-prod.tfstate" -reconfigure && terraform plan -var-file=vars/prod.tfvars - name: TF Apply id: tf-apply working-directory: '06-best-practices/code/infrastructure' if: ${{ steps.tf-plan.outcome }} == 'success' run: | terraform apply -auto-approve -var-file=vars/prod.tfvars echo "::set-output name=ecr_repo::$(terraform output ecr_repo | xargs)" echo "::set-output name=predictions_stream_name::$(terraform output predictions_stream_name | xargs)" echo "::set-output name=model_bucket::$(terraform output model_bucket | xargs)" echo "::set-output name=lambda_function::$(terraform output lambda_function | xargs)" # Build-Push - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v1 - name: Build, tag, and push image to Amazon ECR id: build-image-step working-directory: "06-best-practices/code" env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} ECR_REPOSITORY: ${{ steps.tf-apply.outputs.ecr_repo }} IMAGE_TAG: "latest" # ${{ github.sha }} run: | docker build -t ${ECR_REGISTRY}/${ECR_REPOSITORY}:${IMAGE_TAG} . docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG echo "::set-output name=image_uri::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" # Deploy - name: Get model artifacts # The steps here are not suited for production. # In practice, retrieving the latest model version or RUN_ID from a service like MLflow or DVC can also be integrated into a CI/CD pipeline. # But due to the limited scope of this workshop, we would be keeping things simple. # In practice, you would also have a separate training pipeline to write new model artifacts to your Model Bucket in Prod. id: get-model-artifacts working-directory: "06-best-practices/code" env: MODEL_BUCKET_DEV: "mlflow-models-alexey" MODEL_BUCKET_PROD: ${{ steps.tf-apply.outputs.model_bucket }} run: | export RUN_ID=$(aws s3api list-objects-v2 --bucket ${MODEL_BUCKET_DEV} \ --query 'sort_by(Contents, &LastModified)[-1].Key' --output=text | cut -f2 -d/) aws s3 sync s3://${MODEL_BUCKET_DEV} s3://${MODEL_BUCKET_PROD} echo "::set-output name=run_id::${RUN_ID}" - name: Update Lambda env: LAMBDA_FUNCTION: ${{ steps.tf-apply.outputs.lambda_function }} PREDICTIONS_STREAM_NAME: ${{ steps.tf-apply.outputs.predictions_stream_name }} MODEL_BUCKET: ${{ steps.tf-apply.outputs.model_bucket }} RUN_ID: ${{ steps.get-model-artifacts.outputs.run_id }} run: | variables="{ \ PREDICTIONS_STREAM_NAME=$PREDICTIONS_STREAM_NAME, MODEL_BUCKET=$MODEL_BUCKET, RUN_ID=$RUN_ID \ }" STATE=$(aws lambda get-function --function-name $LAMBDA_FUNCTION --region "eu-west-1" --query 'Configuration.LastUpdateStatus' --output text) while [[ "$STATE" == "InProgress" ]] do echo "sleep 5sec ...." sleep 5s STATE=$(aws lambda get-function --function-name $LAMBDA_FUNCTION --region "eu-west-1" --query 'Configuration.LastUpdateStatus' --output text) echo $STATE done aws lambda update-function-configuration --function-name $LAMBDA_FUNCTION \ --environment "Variables=${variables}" ================================================ FILE: .github/workflows/ci-tests.yml ================================================ name: CI-Tests on: pull_request: branches: - 'develop' paths: - '06-best-practices/code/**' env: AWS_DEFAULT_REGION: 'eu-west-1' AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install dependencies working-directory: "06-best-practices/code" run: pip install pipenv && pipenv install --dev - name: Run Unit tests working-directory: "06-best-practices/code" run: pipenv run pytest tests/ - name: Lint working-directory: "06-best-practices/code" run: pipenv run pylint --recursive=y . - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ env.AWS_DEFAULT_REGION }} - name: Integration Test working-directory: '06-best-practices/code/integraton-test' run: | . run.sh tf-plan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ env.AWS_DEFAULT_REGION }} - uses: hashicorp/setup-terraform@v2 - name: TF plan id: plan working-directory: '06-best-practices/code/infrastructure' run: | terraform init -backend-config="key=mlops-zoomcamp-prod.tfstate" --reconfigure && terraform plan --var-file vars/prod.tfvars ================================================ FILE: .gitignore ================================================ data/ .ipynb_checkpoints .bin *.db *.parquet *.html *.csv .venv venv .idea **/artifacts/ **/models/ __pycache__/ **.env **.terraform/ **.terraform.lock* **terraform.tfstate* .DS_Store ================================================ FILE: 01-intro/README.md ================================================ # 1. Introduction Instructor: Alexey Grigorev ## 1.1 Introduction ## 1.2 Environment preparation ### 1.2.1 GitHub Codespaces OR ### 1.2.2 VM in AWS **Note**: You don't have to rent an instance in the cloud. You can follow the same instructions for setting up your local environment. Code: Recommended development environment: Linux ### Step 1: Download and install the Anaconda distribution of Python ```sh wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh bash Anaconda3-2022.05-Linux-x86_64.sh ``` ### Step 2: Update existing packages ```sh sudo apt update ``` ### Step 3: Install Docker and Docker Compose Follow the instructions here: [install-using-the-repository](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) Set up Docker's apt repository. ```sh # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update ``` Install the Docker packages. ```sh sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` To run docker without `sudo`: ```sh sudo groupadd docker sudo usermod -aG docker $USER ``` ### Step 4: Run Docker ```sh docker run hello-world ``` If you get `docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.` error, restart your VM instance, or run: `sudo dockerd` **Note**: If you get `It is required that your private key files are NOT accessible by others. This private key will be ignored.` error, you should change permits on the downloaded file to protect your private key: ```sh chmod 400 name-of-your-private-key-file.pem ``` ## 1.3 (Optional) Training a ride duration prediction model **Note**: The NYC taxi data is now in parquet format, not CSV. Here's a [video](https://www.youtube.com/watch?v=r94QjpX9vSE&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK) that explains how to read parquet data. Links: * [Notebook](duration-prediction.ipynb) ## 1.4 Course overview ## 1.5 MLOps maturity model Links: * [MLOps Maturity model](https://docs.microsoft.com/en-us/azure/architecture/example-scenario/mlops/mlops-maturity-model) ## 1.6 Homework More information [here](../cohorts/2025/01-intro/homework.md). ## Notes Did you take notes? Add them here: * [Local MacOS envprep by Adetbekov](https://github.com/adetbekov/mlops-zoomcamp/blob/main/01-intro/macos-local-envprep.md) * [Environment Setup by Ayoub](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/intro-01.md) * [Intro, Environment Setup, and MLOps Maturity Models by Bala](https://github.com/balapriyac/DTC-MLOps-Zoomcamp/tree/main/week1) * [GCP Environment Setup by Piyush](https://github.com/piyush-an/MLOps-ZoomCamp/blob/main/01-Introduction/infrastructure.md) * [Microsoft Azure Environment Setup by Olaide](https://github.com/josepholaide/MLOps-Practice/blob/main/Week%201/README.md) * [Environment Preparation using GCP and pyenv by Dani](https://github.com/syahrulhamdani/dtc-mlops/blob/main/week-1-introduction/README.md) * [Useful links by Zioalex](https://github.com/zioalex/mlops-zoomcamp/blob/main/My_notes_week1.md) * [Notes by Alvaro Navas](https://github.com/ziritrion/mlopszoomcamp/blob/main/notes/1_intro.md) * [Environment setup on GCP (recycled from Data Engineering Zoomcamp)](https://gist.github.com/ziritrion/3214aa570e15ae09bf72c4587cb9d686) * [Docker cheatsheet](https://gist.github.com/ziritrion/1842c8a4c4851602a8733bba19ab6050) * [Conda cheatsheet](https://gist.github.com/ziritrion/8024025672ea92b8bdeb320d6015aa0d) * [Git cheatsheet](https://gist.github.com/ziritrion/d73ca65bf4d19c79ca842a55853cb962) * [Python and data libraries cheatseet](https://gist.github.com/ziritrion/9b80e47956adc0f20ecce209d494cd0a) * [Cloud server setup using Deploifai (on AWS, Azure, or GCP) by 98sean98](https://github.com/98sean98/mlops-zoomcamp/blob/main/01-intro/deploifai-server/readme.md) * [Notes from first lesson by Neimv](https://gitlab.com/neimv/mlops/-/blob/main/lessons_weeks/notes_1.md) * [Course preliminaries (jupyterbook) by particle1331](https://particle1331.github.io/ok-transformer/nb/mlops/01-intro.html) * [Notes by Francisco Delca (environment: local ubuntu + virtualvenv)](https://github.com/FDelca/mlops_datatalks_notes/blob/main/Week1/Week1-LearningNotes.ipynb) * [What is MLOps? - Non-technical intro by Lorenz](https://github.com/LoHertel/Road-to-MLOps/blob/main/01-primer/README.md) * [Notes for Week1 by Bhagabat](https://github.com/BPrasad123/MLOps_Zoomcamp/tree/main/Week1) * [What is MLOps? - Storytime by Pathik Ghugare](https://github.com/pathikg/MLOps-Zoomcamp-DataTalks/blob/main/week-01-introduction/MLOps-Introduction.md) * [Module 1 Notes by Stephen Barrie](https://stephen137.github.io/posts/MLOps_Zoomcamp_Week_1/MLOps_Zoomcamp_Week_1.html) * [Module 1 Notes - MacOS + Pycharm by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/01-intro/README.md) * [Comprehensive guide to MLOps: Theory & Concepts for Beginners by Nithish Prabhu](https://ntp3105.github.io/Comprehensive-MLOps/Week-1/Introduction%20to%20MLOps.html) * [Module 1 Notes -Video 1.2 Env Prep Ec2 troubleshooting notes for remote-ssh vscode to ec2](https://github.com/thatwonguy/mlops-zoomcamp/blob/personal/01-intro/README.md) * [Ch1 notes by Marcus](https://github.com/mleiwe/mlops-zoomcamp/blob/Ch1_Marcus/cohorts/2024/01-intro/Ch1_Notes.md) * [GCP setup instructions](https://github.com/mleiwe/mlops-zoomcamp/blob/Ch1_Marcus/cohorts/2024/01-intro/GoogleCloudSetUpNotes.md) * [Machine Learning Essentials: FAQs on Linear Regression, One-Hot Encoding & RMSE](https://github.com/niting9881/course-mlops-zoomcamp/blob/main/01-intro/README.md) * [GCP Environment Setup with Terraform + Cloud-Init by Artem](https://github.com/Ladn0/mlops-zoomcamp/tree/main/01-intro/notes) * [Week 1 - local setup hints by hannarud](https://github.com/hannarud/mlops-zoomcamp-2025/blob/main/week1_notes.md) * [Week-1 - Introduction to MLOps, Env Setup,Notebooks detailed Notes by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/tree/main/01-introduction#readme) * Send a PR, add your notes above this line ================================================ FILE: 01-intro/duration-prediction.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b2bd82d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.9.7\r\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": 2, "id": "41062d8a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "c984c564", "metadata": {}, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 4, "id": "4add538c", "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "id": "8b135c2b", "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.linear_model import Lasso\n", "from sklearn.linear_model import Ridge\n", "\n", "from sklearn.metrics import root_mean_squared_error" ] }, { "cell_type": "code", "execution_count": 6, "id": "8e013caf", "metadata": {}, "outputs": [], "source": [ "df = pd.read_parquet('./data/green_tripdata_2021-01.parquet')\n", "\n", "df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", "df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", "df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", "categorical = ['PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "df[categorical] = df[categorical].astype(str)" ] }, { "cell_type": "code", "execution_count": 7, "id": "116ff0cc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "9.775464208836793" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_dicts = df[categorical + numerical].to_dict(orient='records')\n", "\n", "dv = DictVectorizer()\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "target = 'duration'\n", "y_train = df[target].values\n", "\n", "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_train)\n", "\n", "root_mean_squared_error(y_train, y_pred)" ] }, { "cell_type": "code", "execution_count": 8, "id": "b134c97b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/ubuntu/anaconda3/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n", "/home/ubuntu/anaconda3/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD4CAYAAAD2FnFTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABGIElEQVR4nO3deXzU9bX4/9eZyUz2lYQQCJAAYZPdICDUWlELtkrbq7faalvbutvle29rrbe/e297u9h7u1uVct3qrUs3rdi6K7ghCCggWyBAyEI2su/JzLx/f3wmIYZJMknmk0yS83w8Po/JfNYTonPmvYsxBqWUUqonx0gHoJRSKjxpglBKKRWQJgillFIBaYJQSikVkCYIpZRSAUWMdAChlJqaarKyskY6DKWUGjV279592hiTFujYmEoQWVlZ7Nq1a6TDUEqpUUNETvZ2TKuYlFJKBWRrghCRdSKSJyL5InJngOMiIr/xH98nIsv8++eIyJ5uW72IfNPOWJVSSn2YbVVMIuIE7gUuAYqBnSKy2RhzsNtp64Ec/7YCuB9YYYzJA5Z0u08J8LRdsSqllDqbnW0Q5wH5xpjjACLyJLAB6J4gNgCPGmu+j+0ikiQiGcaY0m7nrAWOGWN6rSdTSo0tHR0dFBcX09raOtKhjBlRUVFkZmbicrmCvsbOBDEFKOr2vhirlNDfOVOA7gniauCJ3h4iIjcCNwJMmzZtCOEqpcJFcXEx8fHxZGVlISIjHc6oZ4yhqqqK4uJisrOzg77OzjaIQH/VnjMD9nmOiLiBK4A/9/YQY8wmY0yuMSY3LS1gTy2l1CjT2trKhAkTNDmEiIgwYcKEAZfI7EwQxcDUbu8zgVMDPGc98J4xptyWCJVSYUuTQ2gN5t/TzgSxE8gRkWx/SeBqYHOPczYDX/D3ZloJ1PVof7iGPqqXlFJK2ce2NghjjEdEbgdeBJzAQ8aYAyJys//4RuA54DIgH2gGru+8XkRisHpA3WRXjEqp0eHxHYUhvd/nVgxve+XWrVv52c9+xt///nc2b97MwYMHufPOs3r+A1BbW8vjjz/OrbfeCsCpU6f4+te/zl/+8pfhDBmweSS1MeY5rCTQfd/Gbj8b4LZerm0GJtgZnxpegf4nH+7/UZUKJa/Xi9PpHNA1V1xxBVdccUWvx2tra7nvvvu6EsTkyZNHJDmAjqRWSqmACgoKmDt3Ll/84hdZtGgRV155Jc3NzWRlZfGDH/yANWvW8Oc//5mXXnqJVatWsWzZMq666ioaGxsBeOGFF5g7dy5r1qzhqaee6rrvI488wu233w5AeXk5n/70p1m8eDGLFy9m27Zt3HnnnRw7dowlS5bw7W9/m4KCAhYsWABYjffXX389CxcuZOnSpWzZsqXrnp/5zGdYt24dOTk53HHHHSH5NxhTczEppVQo5eXl8eCDD7J69Wq+/OUvc9999wHWmIK33nqL06dP85nPfIZXXnmF2NhYfvrTn/KLX/yCO+64gxtuuIHXXnuNWbNm8dnPfjbg/b/+9a/z0Y9+lKeffhqv10tjYyN33303+/fvZ8+ePYCVqDrde++9AHzwwQccPnyYSy+9lCNHjgCwZ88e3n//fSIjI5kzZw5f+9rXmDp1as9HDoiWIJRSqhdTp05l9erVAFx77bW89dZbAF0f+Nu3b+fgwYOsXr2aJUuW8Pvf/56TJ09y+PBhsrOzycnJQUS49tprA97/tdde45ZbbgHA6XSSmJjYZzxvvfUW1113HQBz585l+vTpXQli7dq1JCYmEhUVxfz58zl5cuhji7UEoZRSvejZNbTzfWxsLGANQLvkkkt44okPd7bcs2ePLd10rWbbwCIjI7t+djqdeDyeIT9PSxBKKdWLwsJC3nnnHQCeeOIJ1qxZ86HjK1eu5O233yY/Px+A5uZmjhw5wty5czlx4gTHjh3rujaQtWvXcv/99wNWg3d9fT3x8fE0NDQEPP+CCy7gscceA+DIkSMUFhYyZ86cof+ivdAShFIq7I1Ub7d58+bx+9//nptuuomcnBxuueUW7rnnnq7jaWlpPPLII1xzzTW0tbUB8MMf/pDZs2ezadMmPvGJT5CamsqaNWvYv3//Wff/9a9/zY033siDDz6I0+nk/vvvZ9WqVaxevZoFCxawfv16brvtTEfPW2+9lZtvvpmFCxcSERHBI4888qGSQ6hJX0WW0SY3N9fogkHhS7u5qmAdOnSIefPmjWgMBQUFfPKTnwz4wT5aBfp3FZHdxpjcQOdrFZNSSqmAtIpJDQuvz/DigTJON7axauYEZqTGjXRISvUpKytrTJUeBkNLEMp2Le1ebn1sN68fqSS/opEH3jzBkfLAjXBKqfChCULZqry+lc89sJ2XDpbziYUZfHf9PJKiXbx2uKLPLntKqZGnVUzKFj6f4ecv5/HAmycAuP/zy6hu6gDgIzmpPLuvlBNVTSMZolKqH1qCUCHn9Rnu+Os+7t1yjHULJvHiNy9g3YKMruO5WSnERkbwdn7VCEaplOqPliBUyD31XjF/2V3MN9bm8P8umX3WcZfTwZLMRLafqKaupYPE6ODXyFXj1K6HQ3u/3Ov7P2cAtm7ditvt5vzzzx/0PeLi4rom+gsXWoJQIff0+yVkp8byzYtzej1nUWYSXp/hpQNlwxiZUvbYunUr27ZtG+kwQk4ThAro8R2FZ23BKK9v5Z3jVVy+eHKfc9FkJkeTHOPi2X2lvZ6j1Ej71Kc+xbnnnss555zDpk2bAGsa72XLlrF48WLWrl1LQUEBGzdu5Je//CVLlizhzTff5Etf+tKH1nCIi7O6dTc2NrJ27VqWLVvGwoULeeaZZ0bk9wqWVjGpkHp27ymMAYf0vQqYiLAoM4m38k9T2dBGWrx90wUoNVgPPfQQKSkptLS0sHz5cjZs2MANN9zAG2+8QXZ2NtXV1aSkpHDzzTcTFxfHt771LQAefPDBgPeLiori6aefJiEhgdOnT7Ny5UquuOKKsF1/W0sQKqRePFDG/IwEJsZH9Xvu0qlWNdPf3i8ZhsiUGrjf/OY3LF68mJUrV1JUVMSmTZu44IILyM7OBiAlJWVA9zPGcNddd7Fo0SIuvvhiSkpKKC8vtyP0kNAEoULG4/Wxr7iOVTODWyl2YkIUS6cl8addRTomQoWdrVu38sorr/DOO++wd+9eli5dyuLFi4P6th8REYHP5wOspNDe3g7AY489RmVlJbt372bPnj2kp6fT2tpq6+8xFJogVMgcrWikzeNjUWbfi55098+5Uzla0cieolr7AlNqEOrq6khOTiYmJobDhw+zfft22traeP311zlxwhrfU11dDXDWFN1ZWVns3r0bgGeeeYaOjo6ue06cOBGXy8WWLVtCsqiPnbQNQoXMB8V1ACycksj249VBXfPJRRn8198P8si2ApZOS7YzPDWahbhbajDWrVvHxo0bWbRoEXPmzGHlypWkpaWxadMmPvOZz+Dz+Zg4cSIvv/wyl19+OVdeeSXPPPMM99xzDzfccAMbNmzgvPPOY+3atV0LDH3+85/n8ssvJzc3lyVLljB37txh/70GwtYEISLrgF8DTuABY8zdPY6L//hlQDPwJWPMe/5jScADwALAAF82xrxjZ7xqaPaV1BIfGUHWhNigE0R8lItrV07ngTeP882LZ5OdGmtzlEoFJzIykueffz7gsfXr13/o/ezZs9m3b9+H9m3fvr3r55/85CcApKamdi1A1FO4jYEAGxOEiDiBe4FLgGJgp4hsNsYc7HbaeiDHv60A7ve/gpU4XjDGXCkibiDGrlhHlUADhkbg21UgHxTXsWBKIg7HwHpkfPUj2fx+WwH3bsnnZ1cttik6pdRA2dkGcR6Qb4w5boxpB54ENvQ4ZwPwqLFsB5JEJENEEoALgAcBjDHtxphaG2Md87w+w+tHKm1rDG73+DhU2jCg9odOE+Oj+NyKaTz9fglF1c02RKeUGgw7E8QUoKjb+2L/vmDOmQFUAg+LyPsi8oCIBKx7EJEbRWSXiOyqrKwMXfRjzLN7T/HFh97lhf32jFw+Ut5Au9fHwkEkCICbLpiJU4T7th4LcWRqtNKebaE1mH9POxNEoHqGnhH2dk4EsAy43xizFGgC7gz0EGPMJmNMrjEmNy0tbSjxjmlb8ioAeCzIEdGdfMZw8FQd7R5fn+ft8zdQL5qSNKj4JiVG8c/LM/nL7iJO1bYM6h5q7IiKiqKqqkqTRIgYY6iqqiIqqv/xSd3Z2UhdDEzt9j4TOBXkOQYoNsbs8O//C70kCNU/r8/wxpFKIiMcvJV/mhOnm4JqDPYZwzN7TrGzoJrVMyfwpdVZvZ77QUktidEupqZEDyi27qOtJyVE0+E1fH/zAX73hYBL5KpxIjMzk+LiYrRWIHSioqLIzMwc0DV2JoidQI6IZAMlwNXA53qcsxm4XUSexGqcrjPGlAKISJGIzDHG5AFrgYOoQdlXXEtNcwff+8Q87n7+MH/cWcSd6/vvXrfjeBU7C6pJjHbxbkE1pxvbSI0LPCXGvuI6FmUmDmnKgJRYN1OSojlQWj/oe6ixweVydY1WViPHtiomY4wHuB14ETgE/MkYc0BEbhaRm/2nPQccB/KB/wVu7XaLrwGPicg+YAnwY7tiHeteP1KJCHxmWSbzJydwMMgP4GOVTUyIdfOV1dl4vKZr8Z+eWju85JU1sHDK4NofujtncgLFNS2U1YXv6FKlxgtbx0EYY57DSgLd923s9rMBbuvl2j2A1jOEwLsnqlkwOZGUWDdTU2I4eCq4BFFa10Jmcgyp8ZGcMzmBP+4s5F8vnY3LeeZ7xeM7CimqbsbjM9S1dAQ962tv5mUk8NLBcl4+WMZ1q7KGdC+l1NDoVBvjwPHKJnLSremGp6XEUFzTjNfXd+NfS7uXmuYOMhKtRq2l05Kpae7g7fzTZ51b4m9UnpI0sPaHQCbGR5Ia5+aVQxVDvpdSamg0QYxxTW0eyupbmZEay+M7CimrbaXDa/jd68f6/LZfVm9V8WQkWh/6ORPjiI+K4Nm9Z6/fUFjdTGxkREhWhhMRsibEsqeoVnuwKDXCNEGMcQVVTQDMSLNKEMmxbgCqm9r7vK60zioVZCRZJYgIp4N150zipQNltHZ4u87zGcOR8gZyJsaFbE77KcnR1LV0UFSt3V2VGkk6Wd8YEKgk8LkV0wA4cdpKENmpsbxfWEtKtwQxo49hI6V1rcRGRhAfeeY/kSuWTObPu4t5YX8Zn1pqjXksrmmhud3LnPT4UP06ZCZZs6rsK6ll2gSdYUWpkaIliDHuRKWVILImWOMeEqNdOASqm/svQUxOjPpQqWD1zFRmpsXywFvHu6p/8soaEOhq4wiF9IRI3E5H1+ywSqmRoQlijDt+uokpSdFEu50AOB1CUoy7zyomYwwV9W2kJ3x41KXDIXx5TTb7S+p594Q1W2teeT3TUmKIcYeuMBrhdDA3I75rdLZSamRoghjjjgcYNZ3ST4KobGzD4zNd7RXdfWZpJskxLr73t/386pUjnKptZf7khJDHvXBKIvtL6vD109tKKWUfTRBjmDGGE5WNZyWI5Ni+E8SpWqsHU1KAXknRbif3fn4Zp2pb+NUrR5mfkcD5M1NDGzhWgmho83BSZ3dVasRoI/UYVtXUTn2r5+wSRKyb5nYvbd16I3VXUmP1HkqKCdxt9fyZqfzxplW8cqiclBg3zgGu/xCMHH+j9/EACU4pNTw0QYxheWXWGrmze/Qw6hyvUNfSEfC6klrrW3tyzNlVTJ0WTElkwZTEIY+c7s37J2sA+OvuYsrr24AzPbOUUsNDE8QYdsg/59K8jF4SRGsvCaKmhSiXgyiX80P77UoGgcRERhDtcnK6se/eVkop+2gbxBh28FQ96QmRTOgxA2tXgmjurQTRQlJ076WH4ZIa5+Z0Y9tIh6HUuKUJYgw7WFrPvIyzexglRFsFx96qmIprWnptfxhOqXGRmiCUGkGaIMaodo+PY5WNARNEhMNBXGREH20Q4ZEg0uIjqW/10OYJ3JiulLKXJogx6mhFAx1ew/wACQKsaqZACaK+tYOGVk9YVDF1Vo1VaTuEUiNCE8QYdajU6sEUqAQBvSeIzvWgw6EEkRpnJSmtZlJqZGgvpjHqD9tP4nY62H68qmtajO4So10cq2w8a3/nGIi+urgOlwmxVglCE4RSI0NLEGNQdVM7+4prWZ6VjKOXKbgTo120eXw09OjqWtzPILnh5I5wkBjt0iompUaIJogxaGteBQ4RPpLT+3zenV1de679XFjdTJTLasQOB8kxLmr6mXlWKWUPTRBjzFtHK9l1soblWSkk9LHCW+ex0h4Joqi6manJMSFb/GeokvuZWFApZR9NEGPIwVP1PLe/jAWTE1i3YFKf5yZ1JYgPr9pWVNPC1JTwWaQnOdZNQ6sHj9c30qEoNe7YmiBEZJ2I5IlIvojcGeC4iMhv/Mf3iciybscKROQDEdkjIrvsjHOsOFLeQGSEg88un4bL2fefNj46AofwoWU9jTEUVTczLYwSREqMGwPU9jLqWyllH9sqmkXECdwLXAIUAztFZLMx5mC309YDOf5tBXC//7XTx4wxp+2KcawpqGpi+oSYoGZXjXA4SI5xdy1JCtaHcGObh8zkaDvDHJCuNbS1HUKpYWdnS+R5QL4x5jiAiDwJbAC6J4gNwKPGWr9yu4gkiUiGMabUxrjGpOZ2DxUNbSyemhT0NalxkRzvliCKaqxZXKemxPTac2hm4Z/P2nds2lUDC3YAkv29qbShWqnhZ2cV0xSgqNv7Yv++YM8xwEsisltEbuztISJyo4jsEpFdlZWVIQh7dCqssj7cp08IvnooNc7NidONXau2dVY3hVMVU0K0C6cINdpQrdSwszNBBKrn6Ll+ZF/nrDbGLMOqhrpNRC4I9BBjzCZjTK4xJjctrfdunWNdQVUzThEykwaQIOIjae3wUVZv9WQqrD5TgggXDhGSYlxUaxuEUsPOzgRRDEzt9j4TOBXsOcaYztcK4GmsKivVk/EhxkthdTOTk6JwRwT/J031z3V0vNKqZiqqaSY5xhU2YyA6Jce6tQSh1Aiw85NgJ5AjItlACXA18Lke52wGbve3T6wA6owxpSISCziMMQ3+ny8FfmBjrKOLzwvFO+Hk29BQxmeNYZVJ473o1UQ0fZnG2Kn934NuCeJ0I2tyUsOuB1On5Bg3p2rrRjoMpcYd2xKEMcYjIrcDLwJO4CFjzAERudl/fCPwHHAZkA80A9f7L08HnvYP1ooAHjfGvGBXrKNKWyPs3AS1hZCQCVlrOGRmUHlsNxtanoI3/0Ze1nXsy7kNnzOyz1slREUQ63ZyvLIJr8+wt6i23/ETIyElxkVzu5fGNk/YlW6UGsts/b/NGPMcVhLovm9jt58NcFuA644Di+2MbVRqqoJtv4GWGlh6HUxeBiJsb7mQ/zp0kGvmRvBVzxPMP/Ewk6q28+bSX9AUk9nr7USE7LRYjp9uYl9xLfWtnj6n5xgpnV1di6qbe52dVikVejqSerQwBp65DVqqYMVNMOVc8E+H0dBmNeB64zLYsfAHvL7sHuKai7lk+xdIaDjW521npMZx8FQdrxwqRwRWz0q1/VcZqJRuCUIpNXw0QYwWux6CI8/D3MthwqwPHWps9QAQH2UVCEvSL+Sllf8HwMU7rieh8Xivt716+VRON7az6Y3jLJic2PVhHE46px4vqmnp50ylVChpghgNWuvhtR9C1kcg++zevg1tVoLoXj9fHz+TV1c8jBHhwl23EtUWeED6+bNSuXBOGh1ew0dywq/0ABDjduKOcGgJQqlhpgliNNh+H7RUwyU/ADn7T9azBNGpIXY6r+feR2R7NR9575uIL/BYgrsum8eUpGguW5gR+thDQERIiXFTXKMJQqnhpAki3LXUwLbfwrzLYcqygKdEVOzHKYYFpU8zs/DPXRtAdeI5vLvg+6TV7mXxkXsCXj87PZ6377yIBVMSbfs1hio5xvWhiQWVUvbTBBHu9j4J7Q1wwbd7PaXWE0FShIfelnA4OXk9R6f+M/NPPMzkijdsCtReybFuimqasTq+KaWGgyaIcGaM1Tg95VzI6L3Xb22HkySXp89b7Z53BzXxc1i17y5iWspCHantkmPcNLd7dfEgpYaRjjoKZy/9f3D6CCy+BnY93OtptR0RpLnPbl/oOfPqyfSLOefEI6zadxevnvdAwPaMcNXV1bWmhQlxfQ8AVEqFxuj5hBiPirZDRBRMXtrnabUdEST2U4IAaIucwO553yG9eiezTz4RqiiHRVdXV+3JpNSw0RJEuPK0Q9kHMGkhOHsfm+A1UO9xkuTyBnXb45mfYmr5KyzJ+yWlqefz+I5QBWyv5FhrXYgi7cmk1LDREkS4OvEGeFohY0mfp1W1OTBIv20QXUTYseA/8TojWfXB9xBfkNeNsMgIJymxbu3JpNQw0gQRrg7+DSIiIXVOn6dVtlp/wsSI4D/oW6PS2DX/e6TW7mPeiUeGEOTwmpocrWMhlBpGmiDCkdcDh/8BExeAs+9awLp2q29rXIRvQI84mbGOk5MuZeHRe0lsODLoUIdTZkpM16JGSin7aYIIRyW7rZHTkxb0e2qjx0oQ0c7g2iC6iLDrnO/R7kpg1d5/w9HLKOtwMjU5hlO1LXh9OhZCqeGgCSIcHXvN6oKaOrvfUxs7rD9hjHNgJQiANncy7y74T1IaDnNO/u8GfP1wm5YSQ4fXdC2RqpSylyaIcHTsNWutB3dsv6c2dlgliBjHwBMEQEn6xzg+5QrOOf4AKbX7B3WP4TI1JRrQrq5KDRdNEOGmpQZKdsHMi4I6vaGrimlwCQJg97zv0BKZyqp9/4bTG77fzqcmW8uhaoJQanhoggg3J94A44NZa4M6vbFDiBAfLsfg6+U7XAnsWPADEpuOs+jobwd9H7tNTopGRNeFUGq4aIIIN8e3gjvemn8pCI0eGVLpoVNZ2vkcmfZZ5p54lLTq3UO+nx3cEQ4yEqIo1hKEUsNCR1KHm5PvwLQV4HQFdXpDh2NA7Q8952cCODbtKgD2zPkXMirfZuW+7/H8mr/iiYgJ+r7DJTMlRkdTKzVMtAQRTpqrofIQTFsZ9CWNHaEpQQB4ImLYvuiHxLWUsCTvFyG5Z6hlTYihoEoThFLDIagEISJ/FZFPiAxs+k8RWScieSKSLyJ3BjguIvIb//F9IrKsx3GniLwvIn8fyHNHrcLt1uu084O+pCGECQKgMuVcDmddx+zCPzKpclvI7hsqM9PiqGxoo64l/MdtKDXaBfuBfz/wOeCoiNwtInP7u0BEnMC9wHpgPnCNiMzvcdp6IMe/3eh/TnffAA4FGePoV7jNmpgvyPYHCF0bRHf7Zn+NuthsVuz/d1wd9SG991DNTIsD4Hhl4whHotTYF1SCMMa8Yoz5PLAMKABeFpFtInK9iPRWWX4ekG+MOW6MaQeeBDb0OGcD8KixbAeSRCQDQEQygU8ADwz4txqtCrdb4x9cUUFfYlUxDXAUdT+8zii2L/oR0W2nOffQT0N676GaOdFKEMcqm0Y4EqXGvqCrjERkAvAl4KvA+8CvsRLGy71cMgUo6va+2L8v2HN+BdwBhPbrcbja8Ttrig13rLU4UB8LBHXX6BlYI3WwqpIWcnDGV5hRspkp5a+F/P6DNTU5GpdTyK/QEoRSdgu2DeIp4E0gBrjcGHOFMeaPxpivAXG9XRZgX8/O+gHPEZFPAhXGmH77W4rIjSKyS0R2VVZW9nd6+KorscY/JGcN6LJQt0F0t3/WzdTEz+G8/d8nsr3GlmcMxOM7CvnTrmKSY9y8fqSSx3cUjnRISo1pwZYgHjDGzDfG/MQYUwogIpEAxpjcXq4pBqZ2e58JnArynNXAFSJSgFU1dZGI/CHQQ4wxm4wxucaY3LS0tCB/nTBUe9J6TZoW9CVtXmj32ZcgfA4X7yz6Ee6OenIP/MiWZwxGWnwklQ1tIx2GUmNesAnihwH2vdPPNTuBHBHJFhE3cDWwucc5m4Ev+HszrQTqjDGlxpjvGmMyjTFZ/uteM8ZcG2Sso1NtIUQlQVRi0Jc0hWCajf7UJszhwKybmF72IhmVb9n2nIFIi4ukuqlNZ3VVymZ9DpQTkUlYbQLRIrKUM1VCCVjVTb0yxnhE5HbgRcAJPGSMOSAiN/uPbwSeAy4D8oFm4Poh/C6jW20hJE0f0CVdE/UNsZG6r8FzAAezv0zWqX+Qe/DHHJp+HcYxsuMr0+Ij8RmoatJShFJ26u//9I9jNUxnAt1HTjUAd/V3c2PMc1hJoPu+jd1+NsBt/dxjK7C1v2eNas3V0Hwapq0a0GUNnsFP9T0QPqebnfPvYu3OG5l8+m1KJn7U1uf1Jy0+EoDyek0QStmpzwRhjPk98HsR+SdjzF+HKabxp+Q963UA7Q9wpgQRbUMvpp7KU1dRkLGeaWUvcTppIW3uFNuf2Zv0hCgEKKsL35lnlRoL+myDEJHOev8sEfmXntswxDc+nHoPEEia2u+p3XUlCJtLEJ3en/stjDiZXvrCsDyvNy6ng9S4SF04SCmb9VfF1LliTW9dWVUolO6F2FSICH6AHAxhudEgBGqXAChOu4Dp5a+Q0Hic+rgZIX9usCYlRlGsk/YpZav+qph+53/9/vCEM06V74eEnmMI+9fQ1Ug9fGMJy1POY1L1TqaVv8L+2BtAAg1lsV9GYhQflNRR39pBQlRwM98qpQYm2IFy/y0iCSLiEpFXReR0t+onNRStdVBTMMgEYf35hquKCcA4IihKX0tsaxmpdfuG7bk9TUq0Slt5ZQ0jFoNSY12w4yAuNcbUA5/EGtw2G/i2bVGNJ+UHrNdBJIhGj+AUg1uGdzxAVcI5NEZNJrN8C+IbmVlVJyVYCeJwaXhNJqjUWBJsgugsw18GPGGMqbYpnvGnbL/1mjB5wJc2dghxEWb4a3lEKJx0MZGeejKqdgzzwy2J0S6iXU4OlmoJQim7BJsgnhWRw0Au8KqIpAHahSQUyvZBzIQBjaDu1OAR4lwjM5q4ITaLmvjZZJx+G3d73bA/X0SYlBjF4TItQShll2Cn+74TWAXkGmM6gCbOnrpbDUb5fpi0cFCNvY0dDuJHKEEAFE28CKevjfnHHxyR509KjCKvrAGfTrmhlC0GskLcPOCzIvIF4ErgUntCGke8Hig/COkLBnW5VcU0crOht0RN5HTiImaffJzo1vJhf35GQhTN7V4Kq7W7q1J2CLYX0/8BPwPWAMv9W2+zuKpgVR0FbxtMWjSoyxtHsIqpU8nEjyLGy4L83w37szt7Mh3ShmqlbBHsrGu5wHz/3EkqVDobqCctgKJ3B3x5Y4cwLXZk/yRt7mTyp11FTuGfOJz9RRpiBzbh4FCkJ0ThEDhU1sD6hRnD9lylxotgq5j2A5PsDGRcKttnrUGdOntQlzd4ZETbIDodmHkjPoebhUfvHdbnupwOslNjtQShlE2CTRCpwEEReVFENndudgY2LpR9AGlzwTm4kcBWI/XIr8jaGpnK4axrySp9nqT6w8P67LkZCdqTSSmbBFvF9J92BjEuGWMliNnrBnW5xwctXmscRDg4lP0lcgr/yJIjv2Zr7v3D9tz5GQn8Y1+pTrmhlA2C7eb6OlAAuPw/7wTeszGusa+x3FoDYtLgejB1riY30o3UnTpcCRyc8RUmV75FWvWuYXvuOZMTADhQoqUIpUIt2F5MNwB/ATq7qkwB/mZTTOND2QfW66SFg7q8c6K+cEkQAEemX0Nz5ESW5P3aKiENwczCP5+1BbIoMwmAfcW1Q3qeUupswbZB3AasBuoBjDFHgYl2BTUulPt7MKWfM6jLO6f6jg+TKiYArzOa/bNuIq12D5Mr3xiWZ6bEuslMjmZfyfCP5lZqrAs2QbQZY9o734hIBBA+n0yjza6H4fA/IDIRDvzNej9Ajf6ZXOPCoJG6u2OZn6YhZhqLj/wazPDEtigzUUsQStkg2ATxuojcBUSLyCXAn4Fn7QtrHGgog/j0wV/eWcUURiUIAONwsS/ndpIbjpJ16rn+LwiBRZlJFFW3UNPU3v/JSqmgBZsg7gQqgQ+Am4DngO/ZFdSYZ3xWI3X84IeWNHRWMYVRG0Snkxkfpzp+LouO/haH1/4P7UVTrIkOP9BqJqVCKtheTD6sRulbjTFXGmP+V0dVD0FLDXjbIW7wCaIxDBupu4iDvXO+SVxLCXMLHrX9cQsyrQSxt6jW9mcpNZ70mSDE8p8icho4DOSJSKWI/HswNxeRdSKSJyL5InJnL/f/jf/4PhFZ5t8fJSLvisheETkgImNrydMG/8R2QyhBNIZpFVOn0rTVFKZfzIL83xHbXGLrsxKiXMxOj2PXyRpbn6PUeNNfCeKbWL2XlhtjJhhjUoAVwGoR+X99XSgiTuBeYD0wH7hGROb3OG09kOPfbgQ6R1i1ARcZYxYDS4B1IrIy2F8q7DWWWa9xg2+DaPQ4EAwxYZAgeuuS+t6872BEOPfQ3bY9+/EdhTy+o5CkaDfbj1fxh+0nbXuWUuNNfwniC8A1xpgTnTuMMceBa/3H+nIekG+MOe7vAfUkZ68hsQF41Fi2A0kikuF/3+g/x+XfRv6TMFQayyAyHtyxg75Fg381OcdwryY3AM3Rk9g/62YyK7YypXyrrc/KSo2hzeOjvF7XsVIqVPpLEC5jzOmeO40xlZxZhrQ3U4Cibu+L/fuCOkdEnCKyB6gAXjbGBFzbUkRuFJFdIrKrsrKyn5DCREP5kNofIDym+g5GXtZ11MbN5NxDdxPhsW/dhukTrGRbUKVrQygVKv0liL66oPTXPSXQd9uen2i9nmOM8RpjlgCZwHkiEnBOCmPMJmNMrjEmNy0trZ+QwoAxVgliCNVLYLVBhGMPpp58Dhc7z/l3YltOsfTw/9j2nKRoF4nRLgpON9n2DKXGm/4SxGIRqQ+wNQD9zRFRDEzt9j4TODXQc4wxtcBWYHCz2oWb+lPgaRtSAzVYA+XCtYG6p8qUZdZkfkV/YXKFPSOsRYTpE2IoqGpCO9gpFRp9JghjjNMYkxBgizfG9FfFtBPIEZFsEXEDVwM9pwjfDHzB35tpJVBnjCkVkTQRSQIQkWjgYqxeVKNfpf/XGGIJosEjYTeKui/7cm6nJj6HFR/8O5Ft1bY8Y1ZaHA2tHvLKG2y5v1LjzUDWpB4QY4wHuB14ETgE/MkYc0BEbhaRm/2nPQccB/KB/wVu9e/PALaIyD6sRPOyMebvdsU6rDoTRPzQVkAbLVVMnXxON+8s+gnujnrOO/D9IU/mF8js9HgAthweJW1RSoW5YNeDGBRjzHNYSaD7vo3dfjZYEwH2vG4fsNTO2EZM5WGr91Jk3JBu0+gJn7UgglWbMIe9s7/Osryfk1P4JEenXxPS+ydEu8hIjGJLXgW3XDgzpPdWajyyrQShelGZN+QeTGCVIEZDL6aeDmd/gZK0C1h26L9Jqd0f8vvPSY9n98ka6lo6Qn5vpcYbTRDDyRirBDGESfoAfMYaKDfaShAAiIN3Fv2I1sg01uz5Fq6O0M6fNGdSPF6f4Y0jWs2k1FBpghhOjeXQWjfkEkRT10R94dtI3deCP+3uJN5a+jOiW8tZte97IW2PmJoSQ1p8JM/vLw3ZPZUarzRBDKeuBuqhJYhwXE1uoKqSFrFnzr+QWbE1pBP6OURYv2ASrx2uoLndE7L7KjUeaYIYTpV51msIBslB+E7UF6y8rGspSl/LkrxfklqzJ2T3vWxhBq0dPl47XBGyeyo1HmmCGE6VhyEqESIThnSbzrUgRnMJAgARti/8AU1RGaze8y0i20MzG+vyrBTS4iP5xz6tZlJqKDRBDKfKPEibCzK0GfY6lxuNjwjfNohgdbgSeGvpz4lqq2bV3u+GZJlSp+NMNVNTm1YzKTVYmiCGU+VhK0EMUeMoLUH01nBdkzif3fPvZPLpt5l//MGQPOuyhRm0ebSaSamh0AQxXBorobkqNAliDDRS95Q/9SoKMtaz6MhvmVi1c8j302ompYZOE8Rw6ezBlDZnyLdqGCON1B8iwrsL/oPG2Gms3nsHEZ7G/q/pQ2c105Y8rWZSarA0QQyXrgQxfquY+uOJiOXNpT/H1dHArOKnBt0e0bnKnMvpoM3j4yfPHeLxHYUhjlapsU8TxHCpzAN3PCRMHvKtGjscxEb4cIbxanKDVRc/m53nfI/EpgKmVmwZ0r2mT4jBHeEgr3xopRGlxitbJ+tT3VQetqqXhtiDCUbnRH296T7CuruK5GVMPv02jdGZ1CQMrlouwuFgVlocR8sbdI0IpQZBSxDDpbOLawg0jNKJ+gaiYNI6GqMymFHyNyLbqgZ9n5z0OGpbOqhoaAthdEqND5oghkNzNTRVhKSBGvwzuY6REkRvjCOCo1OvwoiD2UV/wukd3Af8HP8aEUd1ESGlBkwTxHDonGIjRCWIRs/oWixosNrdSeRn/hPRbaeZVfxXxDfw3khJMW4mxkdyRNshlBowTRDDobMH08QQJYgOx6habnQo6uNmUJCxnqTGfJYe/vmg7jE7PZ4TVU06eZ9SA6QJYjhU5oErFhIyQ3K7sdRIHYyKlFxKU1Yw9+QfyDn55ICvn51urRHxzrHBt2UoNR5pghgOlYcgbTY4QvPPPR4aqXsqnHQJJWkfJffgj5lW+sKArs2aEIPLKWzN00WElBoITRDDIYQ9mIyxGqnjx1EJAgBx8NbS/6EyeSnn7/0ukyveCPrSCKeDmWlxbD1Sod1dlRoATRB22vUwvHMvNJRCW4P1ftfDQ7pls1fwMf5KEABeZzSvn/tbauNzWPP+v5BWvSvoa2enx1NU3cKJ0002RqjU2GJrghCRdSKSJyL5InJngOMiIr/xH98nIsv8+6eKyBYROSQiB0TkG3bGaavGcut1iKvIdd2ua6K+8dFI3VOHK54tuRtpip7MhbtuJ7nuQFDXzfZ3d31d16pWKmi2JQgRcQL3AuuB+cA1IjK/x2nrgRz/diNwv3+/B/hXY8w8YCVwW4BrR4cGf4IY4jrUXbcbixP1DVBbZAqvLd9EmzuRj+28hYSGY/1ekxLrZkZqrLZDKDUAdpYgzgPyjTHHjTHtwJPAhh7nbAAeNZbtQJKIZBhjSo0x7wEYYxqAQ8AUG2O1T2MZOFwQkxKa2/kn6hsP4yD60hI9ideW/y/G4eSinTcQ19T/ZHwfnZPG9uNVtHZ4+z6xsyqw+6bUOGRngpgCFHV7X8zZH/L9niMiWcBSYEegh4jIjSKyS0R2VVaG4bfDhjKImwgSmn/qziqm8Z4gABpjp/Hq8gdw+DysfferxLSc6vP8j85Oo83jY/tx7e6qVDDsTBCBZqXr+anW5zkiEgf8FfimMaY+0EOMMZuMMbnGmNy0tLRBB2ubxvKQtT8ANHqsP1ncGFhuNBTq42eyZfnvcHkaWfvuDUS19v4lYeWMCcRHRfDUeyXDGKFSo5edCaIYmNrtfSbQ8yter+eIiAsrOTxmjHnKxjjt42mFlpqQtT9AtzYILUF0qUmcx5bc+4lqO81FO28gsq064HlRLif/nDuV5z4opaK+dZijVGr0sTNB7ARyRCRbRNzA1cDmHudsBr7g7820EqgzxpSKiAAPAoeMMb+wMUZ7NfrXQ45PD90tx3EVU29rWgNUJS/m9XN/S1xzCR/beROujrqA97h25XQ8PsMT7xYFPK6UOsO2BGGM8QC3Ay9iNTL/yRhzQERuFpGb/ac9BxwH8oH/BW71718NXAdcJCJ7/NtldsVqmwb/esg2lCBix3Evpt5UTFjOm8t+RWLjMT6281YiPB8e8/D4jkLeOVbF7PQ4Nr5+jI2v99/7SanxzNZxEMaY54wxs40xM40xP/Lv22iM2ej/2RhjbvMfX2iM2eXf/5YxRowxi4wxS/zbc3bGaouGcnA4IWZCyG5Z519NzqVDHAMqTVvNW0t/Rkr9AT666zac3pazzrlsYQYen4+/7i7WkdVK9UFXlLNTYxnETrSSRAjsOFFNfrWbKHGx40TgevbxJtCKdMemXcU7i37C+Xu/wwXvfZPXl92Dz+nuOj4xPor1CzLYvPcUP/j7Qf79k/OREKz0p9RYo99D7dRQFtIeTABNHiexEf3041ecnLyeHQu/T8bpbaze8y3E1/Gh4yuyU1g9cwIPv13Az186MkJRKhXeNEHYpa0BWqohPiOkt23yOol1ahfXYBzP/DQ759/F1IotnL/vLsScSawiwmULM7h6+VR+uyWfLXkVIxipUuFJq5jsUnHIeo2fHNLbNnkdTHR39H+iAuDo9GuI8LayNM/qDPfOwh91VTeJCPMyEpiUEMVtj73Hv14yh2i3k8+FpkZQqVFPSxB2qThovWoV04g7NON63p/zL0wvfYELd92Cq+PM+tQup4OrcjNpbvey7djpEYxSqfCjCcIu5QfB6Q7ZHEydmrwO4rSKacAOzbiebYt+zMSa97h4x5eIbi3vOpaRGM38jATePna6/3malBpHNEHYpeKg1f4QojmYADwGWn1aghisgimXs/Xce4lrLmLdtqtJq36v69jH5kyktcOnvcOU6kYThB2MgfIDIW+gbvZYleOxTk0QfelrxHVZ2vm8tOoxPM4Y1r77FWuNa2OYkhzNzLRYth+vwqMFNKUATRD2aCy3ejAlhDZBNHqtP5f2YhqauvgcXjj/CUpTz2f5wR+xeu8duDrqOX9mKnUtHbx8KnKkQ1QqLGiCsENXA3Xou7gCWsUUAh2uBF4/9x72zP46U8te4bK3ruQj7jySY1w8nB890uEpFRY0QdihvDNBhLiLa1cVk5YgQkIcHJx5Ay+vfBSfw8Ul736FHyf+jfdOOzhQqz3AldIEYYeKg9YUG5FxIb1tU1cVk5YgQqkqaSHPr/4zxzI/zfqax3ja/Z88f7hmpMNSasTp1yQ7lB+A9NAvod1ZxRSnVUwDFmjOJrDmbQLwRMTw7sLvU5q2hmV7/52vVf6A5rzLiJn90ZD2RFNqNNEEEWo+L1QehtyvhPzWnVVMMVrFFDKBEkfZ8u+Sv+1pPn70GTi9DxZ/bgQiU2rk6VejUKspsFaSmzgv5Ldu8jpwiQ+3Q6eottPMtFienXgLd3huwddQBm/8N+zYBD5NzGp80RJEqJUfsF7T50PpvpDeutHj1OqlYfKthc1cfGoNqakzuMP7IDz/bTi0GTbcC8nTQ/OQXQ+fvS/3+tDcW6kQ0BJEqFUcBATS7ChB6EyuwyUrzstns1vYdHIyJ+ffCpf/Bk69D/efD7sfsQZDKjXGaYIItfIDkJIN7piQ37rJ69AeTMPoG/OaiXDAzw/GwblfhFu2weSl8Ow34LErof7USIeolK00QYTKroetrfAdcMcFrj4YImsmVy1B2G3HiWp2nKjmRNlp1qVVsbkoip+9mGdVLX1hM1z2Mzi5De5bCXuf1NKEGrM0QYRSRys0VUJipi231xLE8LsivZpYp5eXDpZZOxwOOO8GuPktqxrx6Zvgyc9Doy44pMYeTRChVF9ivdqQIIyBuo4IErSReljFRvj41KQqjpQ38s6xqjMHJsyE65+DS/4L8l+Be1fAe49qTyc1ptiaIERknYjkiUi+iNwZ4LiIyG/8x/eJyLJuxx4SkQoR2W9njCFVV2S9Jk4N+a0bPUK7cZDs8oT83qpv6ybWkBAVwU9fOIzpXp3kcMLqr8NNb0DaHNj8NXjwEqsxW6kxwLYEISJO4F5gPTAfuEZEeg4vXg/k+Lcbgfu7HXsEWGdXfLaoK4bIRIiMD/mtK1utP1WSJohh53YY1s5LZ09RLS8dLD/7hIlz4frn4dO/g9pC2PQx+OsNUH1i+INVKoTsLEGcB+QbY44bY9qBJ4ENPc7ZADxqLNuBJBHJADDGvAGMrtVb6otta3/oTBCJmiBGxFXyKjPiPfzP33bgeffhszshiMDiq+Fru2DNN+HQs/Db5fCPf7WShlKjkJ0D5aYARd3eFwMrgjhnClAa7ENE5Eas0gfTpk0bVKAh4W2HhnKYtNiW22sJYmQ5Bb59ThO3bE/kqcIo/jmrtfeeahf/J5x3E7z+U2vMxK6HYcE/WdVRkxYOZ9hKDYmdJQgJsK9nf8BgzumTMWaTMSbXGJOblpY2kEtDq74EMJA4xZbbV/gThLZBjJx1U9pYnNzBrw7E0tpfX4GEDLj8V/CNvbDiZjj8D9i4Bh5aB/v+DJ624QhZqSGxM0EUA91bazOBniOLgjlndKg5ab0mhWgahh4qWx04xehI6hEkAt9Z2MipFicPHg1yIGRiJqz7Mfy//XDpD6GhDJ76KvxivlUN1VRpb9BKDYGdVUw7gRwRyQZKgKuBntNibgZuF5Ensaqf6owxQVcvhZXakxCdDFGJtty+stVBUoQHR6AylxoWO05U4wSWJ0XwqwOxZFLOhrlBdkiISYHzvwYrb4PjW2Dng5D3HBx7FZKzIXM5TF5iZ/hKDZhtCcIY4xGR24EXASfwkDHmgIjc7D++EXgOuAzIB5qBrpnKROQJ4EIgVUSKgf8wxjxoV7xDVlNgW+kBrAShDdTh4ctTy/mX+mx+VzCJT85pwtkzaQczij7nEisplOyC4p3wwZ/gwFNQvAuWfA5mXAhOlx3h9x2jThaourF1NldjzHNYSaD7vo3dfjbAbb1ce42dsYVUQzm01ED2R217RGWbg2RXu233V8FLcXv44tQKNp7M4L8/gO8uahrcjaKTYNbFMHOtNYam6F2rdHHgKYhKgrmfgPkbrGQRERnC30Cp4Oh036FQsst6DdU00AFUtDhYHK+jqMPFx1LrONYUxe+OJJOT4OXKrNbB30wEkqZZ25KnrJHZBzfDob/DnscgMsFKJLM/br3GpobuF1GqD5ogQqF4J4gTEuwZA+E1UN3mIClFq5jCyZemltPsiOXO3fGkRvm4cFIISngRkVbJYe4nwNMOJ16Hg8/AkRetkgUCmbmQc6m1ZSy2EoxSNtAEEQpF71rdW22qM65qc+BDSIzQBBFOIhzw1ckFlDRM46ZtCfzH7EJmxrayIjslRA9wW20VOZdYczyV7oGjL8PRF2HLj2HLjyBuEuRcDDkft6qiohJC82yl0AQxdB0tVgli+hrbHlGpYyDCVozTx3dzivje4encnZ/Jj+cWDO2Gva0y53DAlGXWduF3oLHSqoo6+iIcfBbe/wM4XDB9lb908XFIzdHShRoSTRBDVbTDGkU9YZZtj6ho6ZxmQ9sgwlGSy8tdOcX82+Hp/M+xTC6aVU+M3f9nxaXBkmuszdthlWKPvmiVMF76nrUlZ8HsdVbbxfTV2tCtBkwTxFCdeNNqf5gww75HNDoBmBSpvZjC1eSodr6RfYq78zP59q4EfruiPnRf3oNdfCo5G259x5r76ejLVrvF7kdgx0ZrEauZH7MSRs6lIQpMjXWaIIaq4E1rGcqIKNsekd8QQZLbp2tBhLkliU18bkoljxVPZH6ih9vmNY9MIEnTYPlXrK29GU68AUdesBLGoWcBf6+p9HNg4nxImKJVUSogTRBD0dYIJbutEbI2yq93Miveo/8PjwKXp1fT5EzgZwdimZPo4eLJw1zq660NY846a9Wpsg+sRPH+/0He89Zo7qhEmHiOlTDam21ZT12NTpoghqLgTfB5rAFyNQW2PSa/PoJLp+jkbqOBCNx9bj3HGpL55rsJ/O2iGmYlhEnJTwQyFllbbCq0NUDFQSg/YH3RKdxmNXbPWQ+LPguz1to7mluFPU0QQ3H4H9YgpumrbUsQ1W1CdbuDWfHag2m0iHLCplV1XP5qMl/dlsgzF9WQ6B7QJMWh1VsbRmQ8TF1hbV4PVB8DXwfsf8oacxEzwZqmfNFnYcq5Wg01DmmCGCyfz6rXnXWx1V/dJvn11p9oZrwXhjBYVw2fHSesda6+ltXED45M45rXYvnT2ibiXCOYJPrjjLCWTc29HtbdDfmvwr4/Wutsv7sJUmZYiWL+BkibG3yy0DmfRjVNEINVssuaqnnuJ2x9TH6D1YNpVoKHU5ogRpW5cS3cmlXKvScyuOYNF/esqCcrLkyqm3rT/QM9+wJrQsGoBCtZbL0btv4E4ifDzIsgaw1MPc9KHlq6GJM0QQzW4X+AI8IqQdgovz6CaKdhSoxvlC6UMb6tSaknxunlvoIpXPpSCldltfDRSe1kxvhIj/aS7DbhPYW7KxqWXmtt9aes7rPHXoPDf4c9f7DOiZlgJZIpuf6eUfOsmY0ddi43o4aDJojB8Hnhg79YjdPRSbY+6lBdBDPjdR2I0WxZYhOvfLyan+6P5amT0Tx2/EwvoXinh2VJTVyRXkVmtNXjKWRTdYRawmQ494vW5vNC5WFrgF7xTuv1yAtnznXHWVVRYDWIx6ZBTKr1s0t7SY0WmiAG49gWqC+Gj//I1sfUtQs7T7v46uwR6k+vQiY92scvljfw42UNHKiNoKLFSVmLg9eKfLxbE8dbVQl8KqOKKzNOj3SoZ+tvoF7mcmtb8E9QmQcVB6DikNVDqnTfmdmOO7mi4f1Hraqp5GzrtXOLm6jVVWFEE8RgvPeI9W1ozmW2PmZLmRuPES6drF1cR7vOhutOKUBKBMzPhroOJ/9XPJG/lqZypDGaR6Y0MyEyjBu0e7P/r2d+Tptrbed8xpqKprkamk9Dk3+LcFtdaw/8DUy3dpnYNJjk74o7aZE1W21ytlZXjRBNEANVX2oNMFp5i629lwBeKolkYpSXJTrN95iW6PJye3Yp8+ObeagwnctfieI3K+rJTe0Y6dBCw+mG+EnW1pPPCy3VVtJIybYG8pXug233WGOMANzxMGmhlSw6E0fanODGaPQ2cFAFRRPEQL35M+s19yu2PqbFA1vL3Hx6equ2P4wTF6XWkRXTyn2F07hqaxLXzWzhG/ObRmdpIlgOp1VqiE2z3ndWV3k90FhqNXaX7bOSxnu/hw5/daszEtLnnyltTDznTBJyRY/c7zPGaIIYiOoT1uRny75ofdux0X2HY2n2Ovj0NK1eGk9mxLTxwiXV/PcHsfzfsWj+UhDFP2e3cnV2C3MSvOOnet4ZAYlTwfggfYG1GR80VlgzJ5fthdK91mJK7/3+w9dGJkJ8OsSlW1OHRCVYW2SiNa1I1TErkbhjR+Z3G0XEWhZ6bMjNzTW7du3q/8TBMAae/DwcexW+vgcSMj58PNgZN4OQX+9k/cspfHJqG788r75rf896bDW2lbS6ebp0AttqEvAaYUachxVpHeQkeJgc4yMj2ktGtI8JUT6c4yVx9GSMtR58Y7lVBdVYZq0R3/ladRRa660R4j1FJlhJJH4SxGecKYF0vo9Lt17H+NxUIrLbGJMb6JiWIIL17ibI+wdc+sOzk0MInWp28JW3E4mJMPzbogbbnqPC35Sodm7PLuW6zArKnZN4tdTNP4ojqe/4cBWKA8PEaB/ZcV5mxnuYGe9lVoL1mhHtG9ulDhGISbE2bztEp1jbxHlnzjEGPC1Womitg8lLoKEUGsrObMde7SOR+Esk3RNHYqbVCD9xvrU2xxilCSIYB56GF//Nmkt/1e22PWZPdQS3b0+krl34zqxCjpW2csy2p6nRItHlJZESZk8BMxkaPE5Od0RQ1e6ipiOCmvYIqjpcnGp2s7c6kmavs+vaGKePmQleZsVbyWNWgvWaFefFNV46BolYYy9cMdaHfEcLRCVZW+dYDbASSUcLtNVZyaLztfPn2iJrYsO2RvB2q/qNmQDRyVaVWHKWtUUljonGcFsThIisA34NOIEHjDF39zgu/uOXAc3Al4wx7wVz7bBoa4S3fgFv/sKa0OzTG23po13ZKtx/OJZHj0WTHu3jsQtqaanTeTXU2UQgweUlweVlRszZ7VPGQJ3HSUlrJCWtbk61uilpdfNGaSRPF55ZsyRCfEyLbuO8dEiP8pHo9pHgskZ1+wz4/PfyGeuZUU5DlLPz1dqie+yLiTCjO+mIWNVJ7hirpNAbY6yZcBvLrF6NDaXQcAoK3oDjW6xzopOt2Z4zz4PMXKsNxWXfmjF2sS1BiIgTuBe4BCgGdorIZmPMwW6nrQdy/NsK4H5gRZDXho4x0N4ILbVWl7vTR60/7qFnobkKFl8Dn/zlkHpHGANeA81eoazZQWmLk7w6J9sq3bxZ5sYHXDihjusyK2ip84XsV1Pji4i1BGqSq5lz4j88wLLVK5xqc1PSEsnJlkgKmqN4qSSa6vbQfaonuHykRPpIcRvrNdJHsj/5GM4kH58RKwF17jPWPq8BA8REGOJdhniXz3rt9j7CAQ7AKQYRcAg4xdonYqyfBQT/fjE93ls/D/q7nsiZhu/U2Wf2ez3WANqaAmsr3H5mbIjDZU1DkjbXamRPybaqqmJTrSoxV5TVHdgZGVZjPuwsQZwH5BtjjgOIyJPABqD7h/wG4FFjtZRvF5EkEckAsoK4NjSMgR9PPtN9rpMrFmZfCitvg6nLB3Xrr7ydyNsVbjw+8JjA/zVmxXn4RHo1H0utY3KULimq7BPlNMyIaWNGTBsf6bbf+uLioMlfNeUABP+HL9aHeLtPaPc5zrwaoa37e5/Q7HXQ4ImgweOkvsPJ0RYn9f73HnP2h54D64O7sxu3U6wPfa/P0OpzYLC38aT780P3pAzA/3nhcJJOFQvlGIt8x1hQcpzsUy8zWZ7s8w4e48CLEx/CJ7w/o4SJAc8TAfFHnhrv5s07LgrZb9HJzgQxBSjq9r4Yq5TQ3zlTgrwWABG5EbjR/7ZRRPKGEHM39cDv/VtAqcCQ50U4CbwO3DPUG/UvJPEOI43XfqMt5lEX7xE4/eaQbvGloM+U7wz6IdN7O2BnggiUlHv2qe3tnGCutXYaswnYNLDQhk5EdvXWNSwcabz2Gm3xwuiLWeMdfnYmiGJgarf3mXDWjNW9neMO4lqllFI2srM1ZCeQIyLZIuIGrgY29zhnM/AFsawE6owxpUFeq5RSyka2lSCMMR4RuR14Eaur6kPGmAMicrP/+EbgOawurvlY3Vyv7+tau2IdpGGv1hoijddeoy1eGH0xa7zDbExNtaGUUip0wqfDrVJKqbCiCUIppVRAmiAGSETWiUieiOSLyJ0jHU8gIvKQiFSIyP5u+1JE5GUROep/TR7JGLsTkakiskVEDonIARH5hn9/WMYsIlEi8q6I7PXH+33//rCMt5OIOEXkfRH5u/992MYrIgUi8oGI7BGRXf594Rxvkoj8RUQO+/87XhXO8QZLE8QAdJsCZD0wH7hGROaPbFQBPQKs67HvTuBVY0wO8Kr/fbjwAP9qjJkHrARu8/+7hmvMbcBFxpjFwBJgnb8XXrjG2+kbwKFu78M93o8ZY5Z0G0sQzvH+GnjBGDMXWIz17xzO8QbHGKNbkBuwCnix2/vvAt8d6bh6iTUL2N/tfR6Q4f85A8gb6Rj7iP0ZrHm4wj5mIAZ4D2ukf9jGizWW6FXgIuDv4f7fBFAApPbYF5bxAgnACfydfsI93oFsWoIYmN6mBhkN0o01xgT/a+AJXkaYiGQBS4EdhHHM/uqaPUAF8LIxJqzjBX4F3IE1tVKncI7XAC+JyG7/dDoQvvHOACqBh/1VeA+ISCzhG2/QNEEMTNBTgKiBE5E44K/AN40x9f2dP5KMMV5jzBKsb+bniciCEQ6pVyLySaDCGLN7pGMZgNXGmGVY1bm3icgFIx1QHyKAZcD9xpilQBOjsTopAE0QAxPM9CHhqtw/Uy7+14oRjudDRMSFlRweM8Y85d8d1jEDGGNqga1YbT7hGu9q4AoRKQCeBC4SkT8QvvFijDnlf60AnsaaHTpc4y0Giv2lSIC/YCWMcI03aJogBmY0TwGyGfii/+cvYtXzhwX/wlEPAoeMMb/odigsYxaRNBFJ8v8cDVwMHCZM4zXGfNcYk2mMycL6b/Y1Y8y1hGm8IhIrIvGdPwOXAvsJ03iNMWVAkYjM8e9ai7U0QVjGOxA6knqAROQyrPrczilAfjSyEZ1NRJ4ALsSaHrkc+A/gb8CfgGlAIXCVMaZ6hEL8EBFZA7wJfMCZOvK7sNohwi5mEVmENQ+8E+tL1p+MMT8QkQmEYbzdiciFwLeMMZ8M13hFZAZWqQGs6pvHjTE/Ctd4AURkCfAA1kSjx7GmDXIQpvEGSxOEUkqpgLSKSSmlVECaIJRSSgWkCUIppVRAmiCUUkoFpAlCKaVUQJoglFJKBaQJQimlVED/Pz/uNNylmolkAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sns.distplot(y_pred, label='prediction')\n", "sns.distplot(y_train, label='actual')\n", "\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 9, "id": "f9e6479e", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename):\n", " if filename.endswith('.csv'):\n", " df = pd.read_csv(filename)\n", "\n", " df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime)\n", " df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime)\n", " elif filename.endswith('.parquet'):\n", " df = pd.read_parquet(filename)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 10, "id": "8029eba0", "metadata": {}, "outputs": [], "source": [ "df_train = read_dataframe('./data/green_tripdata_2021-01.parquet')\n", "df_val = read_dataframe('./data/green_tripdata_2021-02.parquet')" ] }, { "cell_type": "code", "execution_count": 11, "id": "f6f2f0eb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(73908, 61921)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df_train), len(df_val)" ] }, { "cell_type": "code", "execution_count": 12, "id": "951d51ef", "metadata": {}, "outputs": [], "source": [ "df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID']\n", "df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID']" ] }, { "cell_type": "code", "execution_count": 13, "id": "c5cbfc25", "metadata": {}, "outputs": [], "source": [ "categorical = ['PU_DO'] #'PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "dv = DictVectorizer()\n", "\n", "train_dicts = df_train[categorical + numerical].to_dict(orient='records')\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "val_dicts = df_val[categorical + numerical].to_dict(orient='records')\n", "X_val = dv.transform(val_dicts)" ] }, { "cell_type": "code", "execution_count": 14, "id": "1e9fb68b", "metadata": {}, "outputs": [], "source": [ "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values" ] }, { "cell_type": "code", "execution_count": 15, "id": "429e2394", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7.479513631630414" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_val)\n", "\n", "root_mean_squared_error(y_val, y_pred)" ] }, { "cell_type": "code", "execution_count": 16, "id": "22bf6f8b", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'wb') as f_out:\n", " pickle.dump((dv, lr), f_out)" ] }, { "cell_type": "code", "execution_count": 17, "id": "a4999b94", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11.167275941179728" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = Lasso(0.01)\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_val)\n", "\n", "root_mean_squared_error(y_val, y_pred)" ] }, { "cell_type": "code", "execution_count": null, "id": "47b0eb9b", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 01-intro/meta.json ================================================ { "module": { "number": 1, "title": "Introduction" }, "units": [ { "number": 1, "title": "Introduction", "youtube": "https://www.youtube.com/watch?v=s0uaFZSzwfI" }, { "number": 2, "title": "Environment preparation", "youtube": "https://www.youtube.com/watch?v=IXSiYkP23zo" }, { "number": 3, "title": "(Optional) Training a ride duration prediction model", "youtube": "https://www.youtube.com/watch?v=iRunifGSHFc" }, { "number": 4, "title": "Course overview", "youtube": "https://www.youtube.com/watch?v=teP9KWkP6SM" }, { "number": 5, "title": "MLOps maturity model", "youtube": "https://www.youtube.com/watch?v=XwTH8BDGzYk" }, { "number": 6, "title": "Homework", "youtube": "" } ] } ================================================ FILE: 02-experiment-tracking/README.md ================================================ # 2. Experiment tracking and model management * [Slides](https://drive.google.com/file/d/1YtkAtOQS3wvY7yts_nosVlXrLQBq5q37/view?usp=sharing) * **NOTE:** `list_experiments` has been replaced by `search_experiments`. Some notebooks used in this course might need to be updated. | [Reference](https://github.com/mlflow/mlflow/issues/8941) ## 2.1 Experiment tracking intro ## 2.2 Getting started with MLflow Note: in the videos, Cristian uses Jupyter in VS code and runs everything locally But if you set up a VM in the previous module, you can keep using it and use the usual Jupyter from your browser. There's no significant difference between using Jupyter with VS code and without ## 2.3 Experiment tracking with MLflow ## 2.4 Model management ## 2.5 Model registry > **Starting MLflow 2.9, model registry stages are deprecated.** Please use model version tags and aliases instead of stages. For example, instead of `transition_model_version_stage(name, version, stage)` use `set_registered_model_alias(name, alias, version)`. More details [here](https://github.com/mlflow/mlflow/issues/10336) and [here](https://mlflow.org/docs/latest/model-registry.html). ## 2.6 MLflow in practice ## 2.7 MLflow: benefits, limitations and alternatives ## 2.7 Homework More information [here](../cohorts/2025/02-experiment-tracking/homework.md). ## Notes Did you take notes? Add them here: * [Notes/General Docs on MLflow by Ayoub](https://gist.github.com/Qfl3x/ccff6b0708358c040e437d52af0c2e43) * [Minimalist MLflow code reference by Anna V](https://github.com/annnvv/mlops_zoomcamp/blob/main/notes/module2_notes_MLflow.md) * [Notes from second lesson by Neimv](https://gitlab.com/neimv/mlops/-/blob/main/lessons_weeks/notes_2.md) * [2nd Week Experiment & Tracking notes by Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/experiment_tracking_02.md) * [Experiment tracking (jupyterbook) by particle1331](https://particle1331.github.io/ok-transformer/nb/mlops/03-mlflow.html) * [Week 2: Experiment & Tracking Notes by Bengsoon Chuah](https://github.com/bengsoon/mlops-zoomcamp/blob/main/02-experiment-tracking/notes/Experiment_Tracking_notes.md) * [2.4 Model Management Notes by Alvaro Pena](https://github.com/alvarofps/mlops-zoomcamp/blob/main/02-experiment-tracking/my-notes/2.4%20Model%20management.md) * [Notes by Alvaro Navas](https://github.com/ziritrion/mlopszoomcamp/blob/main/notes/2_experiment.md) * [Notebook from froukje](https://github.com/froukje/ml-ops-zoomcamp/blob/master/02-experiment-tracking/week02.ipynb) and [notes](https://medium.com/@falbrechtg/getting-started-with-mlflow-tracking-46a0089d6a73) * [Blog post on setting up MLFlow on GCP by Isaac Kargar](https://kargarisaac.github.io/blog/mlops/data%20engineering/2022/06/15/MLFlow-on-GCP.html). * [Week2: Experiment tracking notes and notebook by Bhagabat](https://github.com/BPrasad123/MLOps_Zoomcamp/tree/main/Week2) * [Notes of ML-flow by Jaime Cabrera-Salcedo](https://github.com/jaimeh94/MLOps-Zoomcamp/tree/main/02-experiment-tracking) * [Experiment tracking with MLflow by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/02-experiment-tracking/README.md) * [Running MLflow with Docker and on Minikube](https://open.substack.com/pub/asfandqazi/p/mlflow-on-minikube?r=2o17tf&utm_campaign=post&utm_medium=web) * [Chapter 2: Full Notes by Marcus](https://github.com/mleiwe/mlops-zoomcamp/blob/Ch2_Marcus/cohorts/2024/02-experiment-tracking/Ch2_notes.md) * [Experiemnt Tracking and Mlflow by Annaliese Tech](https://github.com/AnnalieseTech/MLOPS_ZOOMCAMP/blob/main/02_EXPERIMENT_TRACKING/EXPERIMENT_TRACKING_NOTES.md) * [Adding Hyperparameter Tuning to Your Notebook with MLflow and Hyperopt by Annaliese Tech](https://github.com/AnnalieseTech/MLOPS_ZOOMCAMP/blob/main/02_EXPERIMENT_TRACKING/Hyperparameter-Tuning.md) * [MLFlow setup and Experiment Tracking by Hokfu](https://github.com/Hokfu/MLOps_Zoomcamp_Study/blob/main/02-experiment-tracking/README.md) * [2025 Cohort | Notes on MLflow & Hyperopt by Gabi Fonseca](https://github.com/fonsecagabriella/ml_ops/blob/main/02_experiment_tracking/__notes.md) * [Homework 2 Experiment and Tracking article by Srikanth Ganji](https://medium.com/@srikanth.unix07/mlops-zoomcamp-2025-homework-2-experiment-tracking-with-mlflow-4ea1ed783531) * [Week-2 - Detailed Notes of MLFlow, Experiment Tracking, Notebooks, Homework by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/blob/main/02-experiment-tracking/README.md) * Send a PR, add your notes above this line ================================================ FILE: 02-experiment-tracking/duration-prediction.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b2bd82d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.9.12\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": 2, "id": "41062d8a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "c984c564", "metadata": {}, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 4, "id": "4add538c", "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "id": "8b135c2b", "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.linear_model import Lasso\n", "from sklearn.linear_model import Ridge\n", "\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 44, "id": "1464985f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import mlflow\n", "\n", "\n", "mlflow.set_tracking_uri(\"sqlite:///mlflow.db\")\n", "mlflow.set_experiment(\"nyc-taxi-experiment\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "f9e6479e", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename):\n", " df = pd.read_csv(filename)\n", "\n", " df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime)\n", " df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 8, "id": "8029eba0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/42/f9s_rgk15078ym2w50_xtc180000gq/T/ipykernel_4832/3970424726.py:2: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", " df = pd.read_csv(filename)\n" ] } ], "source": [ "df_train = read_dataframe('./data/green_tripdata_2021-01.csv')\n", "df_val = read_dataframe('./data/green_tripdata_2021-02.csv')" ] }, { "cell_type": "code", "execution_count": 9, "id": "f6f2f0eb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(73908, 61921)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df_train), len(df_val)" ] }, { "cell_type": "code", "execution_count": 10, "id": "951d51ef", "metadata": {}, "outputs": [], "source": [ "df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID']\n", "df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID']" ] }, { "cell_type": "code", "execution_count": 11, "id": "c5cbfc25", "metadata": {}, "outputs": [], "source": [ "categorical = ['PU_DO'] #'PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "dv = DictVectorizer()\n", "\n", "train_dicts = df_train[categorical + numerical].to_dict(orient='records')\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "val_dicts = df_val[categorical + numerical].to_dict(orient='records')\n", "X_val = dv.transform(val_dicts)" ] }, { "cell_type": "code", "execution_count": 12, "id": "1e9fb68b", "metadata": {}, "outputs": [], "source": [ "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values" ] }, { "cell_type": "code", "execution_count": 13, "id": "429e2394", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7.758715210382775" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_val)\n", "\n", "mean_squared_error(y_val, y_pred, squared=False)" ] }, { "cell_type": "code", "execution_count": 14, "id": "22bf6f8b", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'wb') as f_out:\n", " pickle.dump((dv, lr), f_out)" ] }, { "cell_type": "code", "execution_count": 47, "id": "a4999b94", "metadata": {}, "outputs": [], "source": [ "with mlflow.start_run():\n", "\n", " mlflow.set_tag(\"developer\", \"cristian\")\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", "\n", " alpha = 0.1\n", " mlflow.log_param(\"alpha\", alpha)\n", " lr = Lasso(alpha)\n", " lr.fit(X_train, y_train)\n", "\n", " y_pred = lr.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " mlflow.log_artifact(local_path=\"models/lin_reg.bin\", artifact_path=\"models_pickle\")" ] }, { "cell_type": "code", "execution_count": null, "id": "47b0eb9b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 15, "id": "5f56e97b", "metadata": {}, "outputs": [], "source": [ "import xgboost as xgb" ] }, { "cell_type": "code", "execution_count": 16, "id": "907dc6a2", "metadata": {}, "outputs": [], "source": [ "from hyperopt import fmin, tpe, hp, STATUS_OK, Trials\n", "from hyperopt.pyll import scope" ] }, { "cell_type": "code", "execution_count": 17, "id": "091ab328", "metadata": {}, "outputs": [], "source": [ "train = xgb.DMatrix(X_train, label=y_train)\n", "valid = xgb.DMatrix(X_val, label=y_val)" ] }, { "cell_type": "code", "execution_count": 23, "id": "c2d84b26", "metadata": {}, "outputs": [], "source": [ "def objective(params):\n", " with mlflow.start_run():\n", " mlflow.set_tag(\"model\", \"xgboost\")\n", " mlflow.log_params(params)\n", " booster = xgb.train(\n", " params=params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " return {'loss': rmse, 'status': STATUS_OK}" ] }, { "cell_type": "code", "execution_count": 24, "id": "6b1f77f5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[12:38:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.27920 \n", "[1]\tvalidation-rmse:8.01759 \n", "[2]\tvalidation-rmse:7.08526 \n", "[3]\tvalidation-rmse:6.80494 \n", "[4]\tvalidation-rmse:6.70455 \n", "[5]\tvalidation-rmse:6.66392 \n", "[6]\tvalidation-rmse:6.64210 \n", "[7]\tvalidation-rmse:6.63159 \n", "[8]\tvalidation-rmse:6.62676 \n", "[9]\tvalidation-rmse:6.62346 \n", "[10]\tvalidation-rmse:6.62027 \n", "[11]\tvalidation-rmse:6.61790 \n", "[12]\tvalidation-rmse:6.61591 \n", "[13]\tvalidation-rmse:6.61457 \n", "[14]\tvalidation-rmse:6.61208 \n", "[15]\tvalidation-rmse:6.60727 \n", "[16]\tvalidation-rmse:6.60534 \n", "[17]\tvalidation-rmse:6.60406 \n", "[18]\tvalidation-rmse:6.60130 \n", "[19]\tvalidation-rmse:6.60099 \n", "[20]\tvalidation-rmse:6.59977 \n", "[21]\tvalidation-rmse:6.59743 \n", "[22]\tvalidation-rmse:6.59615 \n", "[23]\tvalidation-rmse:6.59525 \n", "[24]\tvalidation-rmse:6.59426 \n", "[25]\tvalidation-rmse:6.59344 \n", "[26]\tvalidation-rmse:6.59256 \n", "[27]\tvalidation-rmse:6.59171 \n", "[28]\tvalidation-rmse:6.59147 \n", "[29]\tvalidation-rmse:6.58954 \n", "[30]\tvalidation-rmse:6.58971 \n", "[31]\tvalidation-rmse:6.58914 \n", "[32]\tvalidation-rmse:6.58899 \n", "[33]\tvalidation-rmse:6.58854 \n", "[34]\tvalidation-rmse:6.58800 \n", "[35]\tvalidation-rmse:6.58843 \n", "[36]\tvalidation-rmse:6.58843 \n", "[37]\tvalidation-rmse:6.58830 \n", "[38]\tvalidation-rmse:6.58821 \n", "[39]\tvalidation-rmse:6.58807 \n", "[40]\tvalidation-rmse:6.58789 \n", "[41]\tvalidation-rmse:6.58760 \n", "[42]\tvalidation-rmse:6.58753 \n", "[43]\tvalidation-rmse:6.58801 \n", "[44]\tvalidation-rmse:6.58824 \n", "[45]\tvalidation-rmse:6.58705 \n", "[46]\tvalidation-rmse:6.58718 \n", "[47]\tvalidation-rmse:6.58745 \n", "[48]\tvalidation-rmse:6.58593 \n", "[49]\tvalidation-rmse:6.58587 \n", "[50]\tvalidation-rmse:6.58564 \n", "[51]\tvalidation-rmse:6.58451 \n", "[52]\tvalidation-rmse:6.58450 \n", "[53]\tvalidation-rmse:6.58429 \n", "[54]\tvalidation-rmse:6.58450 \n", "[55]\tvalidation-rmse:6.58429 \n", "[56]\tvalidation-rmse:6.58379 \n", "[57]\tvalidation-rmse:6.58365 \n", "[58]\tvalidation-rmse:6.58416 \n", "[59]\tvalidation-rmse:6.58427 \n", "[60]\tvalidation-rmse:6.58358 \n", "[61]\tvalidation-rmse:6.58404 \n", "[62]\tvalidation-rmse:6.58352 \n", "[63]\tvalidation-rmse:6.58314 \n", "[64]\tvalidation-rmse:6.58317 \n", "[65]\tvalidation-rmse:6.58325 \n", "[66]\tvalidation-rmse:6.58308 \n", "[67]\tvalidation-rmse:6.58327 \n", "[68]\tvalidation-rmse:6.58338 \n", "[69]\tvalidation-rmse:6.58339 \n", "[70]\tvalidation-rmse:6.58306 \n", "[71]\tvalidation-rmse:6.58300 \n", "[72]\tvalidation-rmse:6.58322 \n", "[73]\tvalidation-rmse:6.58246 \n", "[74]\tvalidation-rmse:6.58218 \n", "[75]\tvalidation-rmse:6.58220 \n", "[76]\tvalidation-rmse:6.58216 \n", "[77]\tvalidation-rmse:6.58211 \n", "[78]\tvalidation-rmse:6.58200 \n", "[79]\tvalidation-rmse:6.58218 \n", "[80]\tvalidation-rmse:6.58266 \n", "[81]\tvalidation-rmse:6.58407 \n", "[82]\tvalidation-rmse:6.58394 \n", "[83]\tvalidation-rmse:6.58766 \n", "[84]\tvalidation-rmse:6.58808 \n", "[85]\tvalidation-rmse:6.58788 \n", "[86]\tvalidation-rmse:6.58806 \n", "[87]\tvalidation-rmse:6.58781 \n", "[88]\tvalidation-rmse:6.58830 \n", "[89]\tvalidation-rmse:6.58842 \n", "[90]\tvalidation-rmse:6.58867 \n", "[91]\tvalidation-rmse:6.58835 \n", "[92]\tvalidation-rmse:6.58843 \n", "[93]\tvalidation-rmse:6.58829 \n", "[94]\tvalidation-rmse:6.58857 \n", "[95]\tvalidation-rmse:6.58837 \n", "[96]\tvalidation-rmse:6.58828 \n", "[97]\tvalidation-rmse:6.58856 \n", "[98]\tvalidation-rmse:6.58840 \n", "[99]\tvalidation-rmse:6.58855 \n", "[100]\tvalidation-rmse:6.58857 \n", "[101]\tvalidation-rmse:6.58902 \n", "[102]\tvalidation-rmse:6.58965 \n", "[103]\tvalidation-rmse:6.59053 \n", "[104]\tvalidation-rmse:6.59091 \n", "[105]\tvalidation-rmse:6.59235 \n", "[106]\tvalidation-rmse:6.59203 \n", "[107]\tvalidation-rmse:6.59191 \n", "[108]\tvalidation-rmse:6.59157 \n", "[109]\tvalidation-rmse:6.59161 \n", "[110]\tvalidation-rmse:6.59208 \n", "[111]\tvalidation-rmse:6.59198 \n", "[112]\tvalidation-rmse:6.59159 \n", "[113]\tvalidation-rmse:6.59122 \n", "[114]\tvalidation-rmse:6.59135 \n", "[115]\tvalidation-rmse:6.59117 \n", "[116]\tvalidation-rmse:6.59120 \n", "[117]\tvalidation-rmse:6.59102 \n", "[118]\tvalidation-rmse:6.59076 \n", "[119]\tvalidation-rmse:6.59063 \n", "[120]\tvalidation-rmse:6.59097 \n", "[121]\tvalidation-rmse:6.59099 \n", "[122]\tvalidation-rmse:6.59098 \n", "[123]\tvalidation-rmse:6.59092 \n", "[124]\tvalidation-rmse:6.59113 \n", "[125]\tvalidation-rmse:6.59149 \n", "[126]\tvalidation-rmse:6.59154 \n", "[127]\tvalidation-rmse:6.59138 \n", "[128]\tvalidation-rmse:6.59115 \n", "[12:38:33] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.25179 \n", "[1]\tvalidation-rmse:19.36542 \n", "[2]\tvalidation-rmse:18.53081 \n", "[3]\tvalidation-rmse:17.74354 \n", "[4]\tvalidation-rmse:17.00251 \n", "[5]\tvalidation-rmse:16.30619 \n", "[6]\tvalidation-rmse:15.65125 \n", "[7]\tvalidation-rmse:15.03645 \n", "[8]\tvalidation-rmse:14.45918 \n", "[9]\tvalidation-rmse:13.91665 \n", "[10]\tvalidation-rmse:13.40839 \n", "[11]\tvalidation-rmse:12.93222 \n", "[12]\tvalidation-rmse:12.48605 \n", "[13]\tvalidation-rmse:12.06667 \n", "[14]\tvalidation-rmse:11.67720 \n", "[15]\tvalidation-rmse:11.31099 \n", "[16]\tvalidation-rmse:10.97043 \n", "[17]\tvalidation-rmse:10.65298 \n", "[18]\tvalidation-rmse:10.35607 \n", "[19]\tvalidation-rmse:10.07940 \n", "[20]\tvalidation-rmse:9.82233 \n", "[21]\tvalidation-rmse:9.58395 \n", "[22]\tvalidation-rmse:9.36035 \n", "[23]\tvalidation-rmse:9.15318 \n", "[24]\tvalidation-rmse:8.96136 \n", "[25]\tvalidation-rmse:8.78314 \n", "[26]\tvalidation-rmse:8.61892 \n", "[27]\tvalidation-rmse:8.46559 \n", "[28]\tvalidation-rmse:8.32417 \n", "[29]\tvalidation-rmse:8.19099 \n", "[30]\tvalidation-rmse:8.06830 \n", "[31]\tvalidation-rmse:7.95539 \n", "[32]\tvalidation-rmse:7.85188 \n", "[33]\tvalidation-rmse:7.75502 \n", "[34]\tvalidation-rmse:7.66505 \n", "[35]\tvalidation-rmse:7.58240 \n", "[36]\tvalidation-rmse:7.50501 \n", "[37]\tvalidation-rmse:7.43425 \n", "[38]\tvalidation-rmse:7.36901 \n", "[39]\tvalidation-rmse:7.30826 \n", "[40]\tvalidation-rmse:7.25269 \n", "[41]\tvalidation-rmse:7.20014 \n", "[42]\tvalidation-rmse:7.15171 \n", "[43]\tvalidation-rmse:7.10687 \n", "[44]\tvalidation-rmse:7.06611 \n", "[45]\tvalidation-rmse:7.02806 \n", "[46]\tvalidation-rmse:6.99265 \n", "[47]\tvalidation-rmse:6.95892 \n", "[48]\tvalidation-rmse:6.92809 \n", "[49]\tvalidation-rmse:6.89924 \n", "[50]\tvalidation-rmse:6.87288 \n", "[51]\tvalidation-rmse:6.84795 \n", "[52]\tvalidation-rmse:6.82460 \n", "[53]\tvalidation-rmse:6.80294 \n", "[54]\tvalidation-rmse:6.78241 \n", "[55]\tvalidation-rmse:6.76295 \n", "[56]\tvalidation-rmse:6.74590 \n", "[57]\tvalidation-rmse:6.72979 \n", "[58]\tvalidation-rmse:6.71470 \n", "[59]\tvalidation-rmse:6.70015 \n", "[60]\tvalidation-rmse:6.68690 \n", "[61]\tvalidation-rmse:6.67426 \n", "[62]\tvalidation-rmse:6.66181 \n", "[63]\tvalidation-rmse:6.65059 \n", "[64]\tvalidation-rmse:6.63985 \n", "[65]\tvalidation-rmse:6.62990 \n", "[66]\tvalidation-rmse:6.62034 \n", "[67]\tvalidation-rmse:6.61137 \n", "[68]\tvalidation-rmse:6.60324 \n", "[69]\tvalidation-rmse:6.59522 \n", "[70]\tvalidation-rmse:6.58749 \n", "[71]\tvalidation-rmse:6.58042 \n", "[72]\tvalidation-rmse:6.57371 \n", "[73]\tvalidation-rmse:6.56754 \n", "[74]\tvalidation-rmse:6.56178 \n", "[75]\tvalidation-rmse:6.55569 \n", "[76]\tvalidation-rmse:6.55086 \n", "[77]\tvalidation-rmse:6.54554 \n", "[78]\tvalidation-rmse:6.54087 \n", "[79]\tvalidation-rmse:6.53628 \n", "[80]\tvalidation-rmse:6.53199 \n", "[81]\tvalidation-rmse:6.52792 \n", "[82]\tvalidation-rmse:6.52447 \n", "[83]\tvalidation-rmse:6.52091 \n", "[84]\tvalidation-rmse:6.51810 \n", "[85]\tvalidation-rmse:6.51494 \n", "[86]\tvalidation-rmse:6.51163 \n", "[87]\tvalidation-rmse:6.50891 \n", "[88]\tvalidation-rmse:6.50658 \n", "[89]\tvalidation-rmse:6.50427 \n", "[90]\tvalidation-rmse:6.50226 \n", "[91]\tvalidation-rmse:6.49986 \n", "[92]\tvalidation-rmse:6.49808 \n", "[93]\tvalidation-rmse:6.49611 \n", "[94]\tvalidation-rmse:6.49413 \n", "[95]\tvalidation-rmse:6.49235 \n", "[96]\tvalidation-rmse:6.49057 \n", "[97]\tvalidation-rmse:6.48907 \n", "[98]\tvalidation-rmse:6.48752 \n", "[99]\tvalidation-rmse:6.48619 \n", "[100]\tvalidation-rmse:6.48484 \n", "[101]\tvalidation-rmse:6.48354 \n", "[102]\tvalidation-rmse:6.48240 \n", "[103]\tvalidation-rmse:6.48114 \n", "[104]\tvalidation-rmse:6.48014 \n", "[105]\tvalidation-rmse:6.47892 \n", "[106]\tvalidation-rmse:6.47794 \n", "[107]\tvalidation-rmse:6.47678 \n", "[108]\tvalidation-rmse:6.47583 \n", "[109]\tvalidation-rmse:6.47496 \n", "[110]\tvalidation-rmse:6.47400 \n", "[111]\tvalidation-rmse:6.47329 \n", "[112]\tvalidation-rmse:6.47217 \n", "[113]\tvalidation-rmse:6.47119 \n", "[114]\tvalidation-rmse:6.47028 \n", "[115]\tvalidation-rmse:6.46962 \n", "[116]\tvalidation-rmse:6.46903 \n", "[117]\tvalidation-rmse:6.46802 \n", "[118]\tvalidation-rmse:6.46745 \n", "[119]\tvalidation-rmse:6.46670 \n", "[120]\tvalidation-rmse:6.46586 \n", "[121]\tvalidation-rmse:6.46499 \n", "[122]\tvalidation-rmse:6.46439 \n", "[123]\tvalidation-rmse:6.46347 \n", "[124]\tvalidation-rmse:6.46272 \n", "[125]\tvalidation-rmse:6.46183 \n", "[126]\tvalidation-rmse:6.46088 \n", "[127]\tvalidation-rmse:6.46006 \n", "[128]\tvalidation-rmse:6.45929 \n", "[129]\tvalidation-rmse:6.45859 \n", "[130]\tvalidation-rmse:6.45807 \n", "[131]\tvalidation-rmse:6.45737 \n", "[132]\tvalidation-rmse:6.45700 \n", "[133]\tvalidation-rmse:6.45650 \n", "[134]\tvalidation-rmse:6.45598 \n", "[135]\tvalidation-rmse:6.45556 \n", "[136]\tvalidation-rmse:6.45514 \n", "[137]\tvalidation-rmse:6.45463 \n", "[138]\tvalidation-rmse:6.45426 \n", "[139]\tvalidation-rmse:6.45381 \n", "[140]\tvalidation-rmse:6.45300 \n", "[141]\tvalidation-rmse:6.45255 \n", "[142]\tvalidation-rmse:6.45177 \n", "[143]\tvalidation-rmse:6.45140 \n", "[144]\tvalidation-rmse:6.45080 \n", "[145]\tvalidation-rmse:6.45042 \n", "[146]\tvalidation-rmse:6.44977 \n", "[147]\tvalidation-rmse:6.44933 \n", "[148]\tvalidation-rmse:6.44894 \n", "[149]\tvalidation-rmse:6.44866 \n", "[150]\tvalidation-rmse:6.44828 \n", "[151]\tvalidation-rmse:6.44777 \n", "[152]\tvalidation-rmse:6.44722 \n", "[153]\tvalidation-rmse:6.44681 \n", "[154]\tvalidation-rmse:6.44645 \n", "[155]\tvalidation-rmse:6.44628 \n", "[156]\tvalidation-rmse:6.44598 \n", "[157]\tvalidation-rmse:6.44543 \n", "[158]\tvalidation-rmse:6.44503 \n", "[159]\tvalidation-rmse:6.44431 \n", "[160]\tvalidation-rmse:6.44401 \n", "[161]\tvalidation-rmse:6.44353 \n", "[162]\tvalidation-rmse:6.44325 \n", "[163]\tvalidation-rmse:6.44270 \n", "[164]\tvalidation-rmse:6.44252 \n", "[165]\tvalidation-rmse:6.44223 \n", "[166]\tvalidation-rmse:6.44168 \n", "[167]\tvalidation-rmse:6.44116 \n", "[168]\tvalidation-rmse:6.44102 \n", "[169]\tvalidation-rmse:6.44082 \n", "[170]\tvalidation-rmse:6.44024 \n", "[171]\tvalidation-rmse:6.43970 \n", "[172]\tvalidation-rmse:6.43954 \n", "[173]\tvalidation-rmse:6.43922 \n", "[174]\tvalidation-rmse:6.43901 \n", "[175]\tvalidation-rmse:6.43870 \n", "[176]\tvalidation-rmse:6.43837 \n", "[177]\tvalidation-rmse:6.43793 \n", "[178]\tvalidation-rmse:6.43753 \n", "[179]\tvalidation-rmse:6.43693 \n", "[180]\tvalidation-rmse:6.43678 \n", "[181]\tvalidation-rmse:6.43632 \n", "[182]\tvalidation-rmse:6.43606 \n", "[183]\tvalidation-rmse:6.43566 \n", "[184]\tvalidation-rmse:6.43550 \n", "[185]\tvalidation-rmse:6.43513 \n", "[186]\tvalidation-rmse:6.43489 \n", "[187]\tvalidation-rmse:6.43469 \n", "[188]\tvalidation-rmse:6.43447 \n", "[189]\tvalidation-rmse:6.43426 \n", "[190]\tvalidation-rmse:6.43402 \n", "[191]\tvalidation-rmse:6.43357 \n", "[192]\tvalidation-rmse:6.43319 \n", "[193]\tvalidation-rmse:6.43305 \n", "[194]\tvalidation-rmse:6.43278 \n", "[195]\tvalidation-rmse:6.43269 \n", "[196]\tvalidation-rmse:6.43246 \n", "[197]\tvalidation-rmse:6.43207 \n", "[198]\tvalidation-rmse:6.43179 \n", "[199]\tvalidation-rmse:6.43138 \n", "[200]\tvalidation-rmse:6.43120 \n", "[201]\tvalidation-rmse:6.43070 \n", "[202]\tvalidation-rmse:6.43048 \n", "[203]\tvalidation-rmse:6.43003 \n", "[204]\tvalidation-rmse:6.42985 \n", "[205]\tvalidation-rmse:6.42947 \n", "[206]\tvalidation-rmse:6.42934 \n", "[207]\tvalidation-rmse:6.42918 \n", "[208]\tvalidation-rmse:6.42887 \n", "[209]\tvalidation-rmse:6.42867 \n", "[210]\tvalidation-rmse:6.42851 \n", "[211]\tvalidation-rmse:6.42833 \n", "[212]\tvalidation-rmse:6.42802 \n", "[213]\tvalidation-rmse:6.42771 \n", "[214]\tvalidation-rmse:6.42739 \n", "[215]\tvalidation-rmse:6.42718 \n", "[216]\tvalidation-rmse:6.42701 \n", "[217]\tvalidation-rmse:6.42684 \n", "[218]\tvalidation-rmse:6.42678 \n", "[219]\tvalidation-rmse:6.42660 \n", "[220]\tvalidation-rmse:6.42630 \n", "[221]\tvalidation-rmse:6.42603 \n", "[222]\tvalidation-rmse:6.42559 \n", "[223]\tvalidation-rmse:6.42535 \n", "[224]\tvalidation-rmse:6.42497 \n", "[225]\tvalidation-rmse:6.42489 \n", "[226]\tvalidation-rmse:6.42451 \n", "[227]\tvalidation-rmse:6.42431 \n", "[228]\tvalidation-rmse:6.42396 \n", "[229]\tvalidation-rmse:6.42365 \n", "[230]\tvalidation-rmse:6.42332 \n", "[231]\tvalidation-rmse:6.42315 \n", "[232]\tvalidation-rmse:6.42310 \n", "[233]\tvalidation-rmse:6.42275 \n", "[234]\tvalidation-rmse:6.42239 \n", "[235]\tvalidation-rmse:6.42223 \n", "[236]\tvalidation-rmse:6.42207 \n", "[237]\tvalidation-rmse:6.42190 \n", "[238]\tvalidation-rmse:6.42157 \n", "[239]\tvalidation-rmse:6.42130 \n", "[240]\tvalidation-rmse:6.42111 \n", "[241]\tvalidation-rmse:6.42096 \n", "[242]\tvalidation-rmse:6.42082 \n", "[243]\tvalidation-rmse:6.42057 \n", "[244]\tvalidation-rmse:6.42051 \n", "[245]\tvalidation-rmse:6.42033 \n", "[246]\tvalidation-rmse:6.42021 \n", "[247]\tvalidation-rmse:6.41994 \n", "[248]\tvalidation-rmse:6.41961 \n", "[249]\tvalidation-rmse:6.41945 \n", "[250]\tvalidation-rmse:6.41913 \n", "[251]\tvalidation-rmse:6.41906 \n", "[252]\tvalidation-rmse:6.41865 \n", "[253]\tvalidation-rmse:6.41845 \n", "[254]\tvalidation-rmse:6.41813 \n", "[255]\tvalidation-rmse:6.41790 \n", "[256]\tvalidation-rmse:6.41768 \n", "[257]\tvalidation-rmse:6.41755 \n", "[258]\tvalidation-rmse:6.41720 \n", "[259]\tvalidation-rmse:6.41716 \n", "[260]\tvalidation-rmse:6.41706 \n", "[261]\tvalidation-rmse:6.41682 \n", "[262]\tvalidation-rmse:6.41660 \n", "[263]\tvalidation-rmse:6.41633 \n", "[264]\tvalidation-rmse:6.41619 \n", "[265]\tvalidation-rmse:6.41606 \n", "[266]\tvalidation-rmse:6.41568 \n", "[267]\tvalidation-rmse:6.41557 \n", "[268]\tvalidation-rmse:6.41549 \n", "[269]\tvalidation-rmse:6.41538 \n", "[270]\tvalidation-rmse:6.41524 \n", "[271]\tvalidation-rmse:6.41505 \n", "[272]\tvalidation-rmse:6.41499 \n", "[273]\tvalidation-rmse:6.41485 \n", "[274]\tvalidation-rmse:6.41477 \n", "[275]\tvalidation-rmse:6.41451 \n", "[276]\tvalidation-rmse:6.41439 \n", "[277]\tvalidation-rmse:6.41425 \n", "[278]\tvalidation-rmse:6.41391 \n", "[279]\tvalidation-rmse:6.41386 \n", "[280]\tvalidation-rmse:6.41360 \n", "[281]\tvalidation-rmse:6.41344 \n", "[282]\tvalidation-rmse:6.41312 \n", "[283]\tvalidation-rmse:6.41300 \n", "[284]\tvalidation-rmse:6.41274 \n", "[285]\tvalidation-rmse:6.41269 \n", "[286]\tvalidation-rmse:6.41243 \n", "[287]\tvalidation-rmse:6.41239 \n", "[288]\tvalidation-rmse:6.41217 \n", "[289]\tvalidation-rmse:6.41196 \n", "[290]\tvalidation-rmse:6.41191 \n", "[291]\tvalidation-rmse:6.41189 \n", "[292]\tvalidation-rmse:6.41174 \n", "[293]\tvalidation-rmse:6.41153 \n", "[294]\tvalidation-rmse:6.41135 \n", "[295]\tvalidation-rmse:6.41101 \n", "[296]\tvalidation-rmse:6.41083 \n", "[297]\tvalidation-rmse:6.41070 \n", "[298]\tvalidation-rmse:6.41052 \n", "[299]\tvalidation-rmse:6.41040 \n", "[300]\tvalidation-rmse:6.41026 \n", "[301]\tvalidation-rmse:6.41014 \n", "[302]\tvalidation-rmse:6.41004 \n", "[303]\tvalidation-rmse:6.40998 \n", "[304]\tvalidation-rmse:6.40992 \n", "[305]\tvalidation-rmse:6.40983 \n", "[306]\tvalidation-rmse:6.40954 \n", "[307]\tvalidation-rmse:6.40945 \n", "[308]\tvalidation-rmse:6.40939 \n", "[309]\tvalidation-rmse:6.40915 \n", "[310]\tvalidation-rmse:6.40908 \n", "[311]\tvalidation-rmse:6.40875 \n", "[312]\tvalidation-rmse:6.40861 \n", "[313]\tvalidation-rmse:6.40833 \n", "[314]\tvalidation-rmse:6.40821 \n", "[315]\tvalidation-rmse:6.40791 \n", "[316]\tvalidation-rmse:6.40791 \n", "[317]\tvalidation-rmse:6.40769 \n", "[318]\tvalidation-rmse:6.40764 \n", "[319]\tvalidation-rmse:6.40738 \n", "[320]\tvalidation-rmse:6.40728 \n", "[321]\tvalidation-rmse:6.40702 \n", "[322]\tvalidation-rmse:6.40682 \n", "[323]\tvalidation-rmse:6.40679 \n", "[324]\tvalidation-rmse:6.40667 \n", "[325]\tvalidation-rmse:6.40658 \n", "[326]\tvalidation-rmse:6.40644 \n", "[327]\tvalidation-rmse:6.40631 \n", "[328]\tvalidation-rmse:6.40608 \n", "[329]\tvalidation-rmse:6.40593 \n", "[330]\tvalidation-rmse:6.40580 \n", "[331]\tvalidation-rmse:6.40567 \n", "[332]\tvalidation-rmse:6.40541 \n", "[333]\tvalidation-rmse:6.40534 \n", "[334]\tvalidation-rmse:6.40523 \n", "[335]\tvalidation-rmse:6.40509 \n", "[336]\tvalidation-rmse:6.40509 \n", "[337]\tvalidation-rmse:6.40497 \n", "[338]\tvalidation-rmse:6.40482 \n", "[339]\tvalidation-rmse:6.40468 \n", "[340]\tvalidation-rmse:6.40461 \n", "[341]\tvalidation-rmse:6.40454 \n", "[342]\tvalidation-rmse:6.40438 \n", "[343]\tvalidation-rmse:6.40432 \n", "[344]\tvalidation-rmse:6.40424 \n", "[345]\tvalidation-rmse:6.40416 \n", "[346]\tvalidation-rmse:6.40388 \n", "[347]\tvalidation-rmse:6.40373 \n", "[348]\tvalidation-rmse:6.40354 \n", "[349]\tvalidation-rmse:6.40331 \n", "[350]\tvalidation-rmse:6.40327 \n", "[351]\tvalidation-rmse:6.40299 \n", "[352]\tvalidation-rmse:6.40305 \n", "[353]\tvalidation-rmse:6.40281 \n", "[354]\tvalidation-rmse:6.40267 \n", "[355]\tvalidation-rmse:6.40244 \n", "[356]\tvalidation-rmse:6.40228 \n", "[357]\tvalidation-rmse:6.40201 \n", "[358]\tvalidation-rmse:6.40182 \n", "[359]\tvalidation-rmse:6.40182 \n", "[360]\tvalidation-rmse:6.40173 \n", "[361]\tvalidation-rmse:6.40164 \n", "[362]\tvalidation-rmse:6.40161 \n", "[363]\tvalidation-rmse:6.40139 \n", "[364]\tvalidation-rmse:6.40121 \n", "[365]\tvalidation-rmse:6.40107 \n", "[366]\tvalidation-rmse:6.40097 \n", "[367]\tvalidation-rmse:6.40096 \n", "[368]\tvalidation-rmse:6.40076 \n", "[369]\tvalidation-rmse:6.40066 \n", "[370]\tvalidation-rmse:6.40054 \n", "[371]\tvalidation-rmse:6.40037 \n", "[372]\tvalidation-rmse:6.40020 \n", "[373]\tvalidation-rmse:6.40002 \n", "[374]\tvalidation-rmse:6.39997 \n", "[375]\tvalidation-rmse:6.40006 \n", "[376]\tvalidation-rmse:6.39993 \n", "[377]\tvalidation-rmse:6.39979 \n", "[378]\tvalidation-rmse:6.39976 \n", "[379]\tvalidation-rmse:6.39968 \n", "[380]\tvalidation-rmse:6.39957 \n", "[381]\tvalidation-rmse:6.39946 \n", "[382]\tvalidation-rmse:6.39943 \n", "[383]\tvalidation-rmse:6.39932 \n", "[384]\tvalidation-rmse:6.39920 \n", "[385]\tvalidation-rmse:6.39909 \n", "[386]\tvalidation-rmse:6.39884 \n", "[387]\tvalidation-rmse:6.39877 \n", "[388]\tvalidation-rmse:6.39873 \n", "[389]\tvalidation-rmse:6.39856 \n", "[390]\tvalidation-rmse:6.39845 \n", "[391]\tvalidation-rmse:6.39822 \n", "[392]\tvalidation-rmse:6.39810 \n", "[393]\tvalidation-rmse:6.39777 \n", "[394]\tvalidation-rmse:6.39767 \n", "[395]\tvalidation-rmse:6.39751 \n", "[396]\tvalidation-rmse:6.39737 \n", "[397]\tvalidation-rmse:6.39713 \n", "[398]\tvalidation-rmse:6.39694 \n", "[399]\tvalidation-rmse:6.39692 \n", "[400]\tvalidation-rmse:6.39689 \n", "[401]\tvalidation-rmse:6.39681 \n", "[402]\tvalidation-rmse:6.39665 \n", "[403]\tvalidation-rmse:6.39661 \n", "[404]\tvalidation-rmse:6.39650 \n", "[405]\tvalidation-rmse:6.39641 \n", "[406]\tvalidation-rmse:6.39631 \n", "[407]\tvalidation-rmse:6.39617 \n", "[408]\tvalidation-rmse:6.39610 \n", "[409]\tvalidation-rmse:6.39601 \n", "[410]\tvalidation-rmse:6.39589 \n", "[411]\tvalidation-rmse:6.39587 \n", "[412]\tvalidation-rmse:6.39568 \n", "[413]\tvalidation-rmse:6.39555 \n", "[414]\tvalidation-rmse:6.39542 \n", "[415]\tvalidation-rmse:6.39538 \n", "[416]\tvalidation-rmse:6.39542 \n", "[417]\tvalidation-rmse:6.39531 \n", "[418]\tvalidation-rmse:6.39522 \n", "[419]\tvalidation-rmse:6.39521 \n", "[420]\tvalidation-rmse:6.39512 \n", "[421]\tvalidation-rmse:6.39506 \n", "[422]\tvalidation-rmse:6.39501 \n", "[423]\tvalidation-rmse:6.39493 \n", "[424]\tvalidation-rmse:6.39483 \n", "[425]\tvalidation-rmse:6.39471 \n", "[426]\tvalidation-rmse:6.39447 \n", "[427]\tvalidation-rmse:6.39440 \n", "[428]\tvalidation-rmse:6.39431 \n", "[429]\tvalidation-rmse:6.39423 \n", "[430]\tvalidation-rmse:6.39416 \n", "[431]\tvalidation-rmse:6.39395 \n", "[432]\tvalidation-rmse:6.39385 \n", "[433]\tvalidation-rmse:6.39371 \n", "[434]\tvalidation-rmse:6.39357 \n", "[435]\tvalidation-rmse:6.39337 \n", "[436]\tvalidation-rmse:6.39323 \n", "[437]\tvalidation-rmse:6.39301 \n", "[438]\tvalidation-rmse:6.39298 \n", "[439]\tvalidation-rmse:6.39285 \n", "[440]\tvalidation-rmse:6.39273 \n", "[441]\tvalidation-rmse:6.39276 \n", "[442]\tvalidation-rmse:6.39259 \n", "[443]\tvalidation-rmse:6.39250 \n", "[444]\tvalidation-rmse:6.39250 \n", "[445]\tvalidation-rmse:6.39238 \n", "[446]\tvalidation-rmse:6.39222 \n", "[447]\tvalidation-rmse:6.39214 \n", "[448]\tvalidation-rmse:6.39204 \n", "[449]\tvalidation-rmse:6.39162 \n", "[450]\tvalidation-rmse:6.39159 \n", "[451]\tvalidation-rmse:6.39148 \n", "[452]\tvalidation-rmse:6.39145 \n", "[453]\tvalidation-rmse:6.39138 \n", "[454]\tvalidation-rmse:6.39125 \n", "[455]\tvalidation-rmse:6.39107 \n", "[456]\tvalidation-rmse:6.39102 \n", "[457]\tvalidation-rmse:6.39105 \n", "[458]\tvalidation-rmse:6.39109 \n", "[459]\tvalidation-rmse:6.39094 \n", "[460]\tvalidation-rmse:6.39085 \n", "[461]\tvalidation-rmse:6.39079 \n", "[462]\tvalidation-rmse:6.39085 \n", "[463]\tvalidation-rmse:6.39083 \n", "[464]\tvalidation-rmse:6.39031 \n", "[465]\tvalidation-rmse:6.39019 \n", "[466]\tvalidation-rmse:6.39015 \n", "[467]\tvalidation-rmse:6.38991 \n", "[468]\tvalidation-rmse:6.38973 \n", "[469]\tvalidation-rmse:6.38968 \n", "[470]\tvalidation-rmse:6.38968 \n", "[471]\tvalidation-rmse:6.38960 \n", "[472]\tvalidation-rmse:6.38949 \n", "[473]\tvalidation-rmse:6.38926 \n", "[474]\tvalidation-rmse:6.38918 \n", "[475]\tvalidation-rmse:6.38909 \n", "[476]\tvalidation-rmse:6.38898 \n", "[477]\tvalidation-rmse:6.38885 \n", "[478]\tvalidation-rmse:6.38879 \n", "[479]\tvalidation-rmse:6.38871 \n", "[480]\tvalidation-rmse:6.38855 \n", "[481]\tvalidation-rmse:6.38840 \n", "[482]\tvalidation-rmse:6.38840 \n", "[483]\tvalidation-rmse:6.38818 \n", "[484]\tvalidation-rmse:6.38806 \n", "[485]\tvalidation-rmse:6.38810 \n", "[486]\tvalidation-rmse:6.38790 \n", "[487]\tvalidation-rmse:6.38786 \n", "[488]\tvalidation-rmse:6.38776 \n", "[489]\tvalidation-rmse:6.38768 \n", "[490]\tvalidation-rmse:6.38746 \n", "[491]\tvalidation-rmse:6.38736 \n", "[492]\tvalidation-rmse:6.38732 \n", "[493]\tvalidation-rmse:6.38737 \n", "[494]\tvalidation-rmse:6.38731 \n", "[495]\tvalidation-rmse:6.38725 \n", "[496]\tvalidation-rmse:6.38710 \n", "[497]\tvalidation-rmse:6.38703 \n", "[498]\tvalidation-rmse:6.38685 \n", "[499]\tvalidation-rmse:6.38689 \n", "[500]\tvalidation-rmse:6.38665 \n", "[501]\tvalidation-rmse:6.38662 \n", "[502]\tvalidation-rmse:6.38650 \n", "[503]\tvalidation-rmse:6.38640 \n", "[504]\tvalidation-rmse:6.38618 \n", "[505]\tvalidation-rmse:6.38605 \n", "[506]\tvalidation-rmse:6.38595 \n", "[507]\tvalidation-rmse:6.38586 \n", "[508]\tvalidation-rmse:6.38584 \n", "[509]\tvalidation-rmse:6.38583 \n", "[510]\tvalidation-rmse:6.38583 \n", "[511]\tvalidation-rmse:6.38568 \n", "[512]\tvalidation-rmse:6.38569 \n", "[513]\tvalidation-rmse:6.38558 \n", "[514]\tvalidation-rmse:6.38548 \n", "[515]\tvalidation-rmse:6.38534 \n", "[516]\tvalidation-rmse:6.38546 \n", "[517]\tvalidation-rmse:6.38541 \n", "[518]\tvalidation-rmse:6.38528 \n", "[519]\tvalidation-rmse:6.38518 \n", "[520]\tvalidation-rmse:6.38502 \n", "[521]\tvalidation-rmse:6.38501 \n", "[522]\tvalidation-rmse:6.38494 \n", "[523]\tvalidation-rmse:6.38478 \n", "[524]\tvalidation-rmse:6.38473 \n", "[525]\tvalidation-rmse:6.38466 \n", "[526]\tvalidation-rmse:6.38466 \n", "[527]\tvalidation-rmse:6.38454 \n", "[528]\tvalidation-rmse:6.38459 \n", "[529]\tvalidation-rmse:6.38454 \n", "[530]\tvalidation-rmse:6.38454 \n", "[531]\tvalidation-rmse:6.38452 \n", "[532]\tvalidation-rmse:6.38447 \n", "[533]\tvalidation-rmse:6.38443 \n", "[534]\tvalidation-rmse:6.38435 \n", "[535]\tvalidation-rmse:6.38432 \n", "[536]\tvalidation-rmse:6.38435 \n", "[537]\tvalidation-rmse:6.38432 \n", "[538]\tvalidation-rmse:6.38412 \n", "[539]\tvalidation-rmse:6.38403 \n", "[540]\tvalidation-rmse:6.38392 \n", "[541]\tvalidation-rmse:6.38387 \n", "[542]\tvalidation-rmse:6.38389 \n", "[543]\tvalidation-rmse:6.38372 \n", "[544]\tvalidation-rmse:6.38362 \n", "[545]\tvalidation-rmse:6.38368 \n", "[546]\tvalidation-rmse:6.38354 \n", "[547]\tvalidation-rmse:6.38340 \n", "[548]\tvalidation-rmse:6.38334 \n", "[549]\tvalidation-rmse:6.38320 \n", "[550]\tvalidation-rmse:6.38315 \n", "[551]\tvalidation-rmse:6.38318 \n", "[552]\tvalidation-rmse:6.38303 \n", "[553]\tvalidation-rmse:6.38290 \n", "[554]\tvalidation-rmse:6.38278 \n", "[555]\tvalidation-rmse:6.38277 \n", "[556]\tvalidation-rmse:6.38246 \n", "[557]\tvalidation-rmse:6.38238 \n", "[558]\tvalidation-rmse:6.38224 \n", "[559]\tvalidation-rmse:6.38230 \n", "[560]\tvalidation-rmse:6.38220 \n", "[561]\tvalidation-rmse:6.38216 \n", "[562]\tvalidation-rmse:6.38219 \n", "[563]\tvalidation-rmse:6.38209 \n", "[564]\tvalidation-rmse:6.38211 \n", "[565]\tvalidation-rmse:6.38199 \n", "[566]\tvalidation-rmse:6.38183 \n", "[567]\tvalidation-rmse:6.38179 \n", "[568]\tvalidation-rmse:6.38170 \n", "[569]\tvalidation-rmse:6.38170 \n", "[570]\tvalidation-rmse:6.38173 \n", "[571]\tvalidation-rmse:6.38162 \n", "[572]\tvalidation-rmse:6.38155 \n", "[573]\tvalidation-rmse:6.38141 \n", "[574]\tvalidation-rmse:6.38135 \n", "[575]\tvalidation-rmse:6.38133 \n", "[576]\tvalidation-rmse:6.38123 \n", "[577]\tvalidation-rmse:6.38115 \n", "[578]\tvalidation-rmse:6.38097 \n", "[579]\tvalidation-rmse:6.38098 \n", "[580]\tvalidation-rmse:6.38103 \n", "[581]\tvalidation-rmse:6.38096 \n", "[582]\tvalidation-rmse:6.38096 \n", "[583]\tvalidation-rmse:6.38092 \n", "[584]\tvalidation-rmse:6.38086 \n", "[585]\tvalidation-rmse:6.38082 \n", "[586]\tvalidation-rmse:6.38072 \n", "[587]\tvalidation-rmse:6.38068 \n", "[588]\tvalidation-rmse:6.38064 \n", "[589]\tvalidation-rmse:6.38056 \n", "[590]\tvalidation-rmse:6.38051 \n", "[591]\tvalidation-rmse:6.38045 \n", "[592]\tvalidation-rmse:6.38039 \n", "[593]\tvalidation-rmse:6.38035 \n", "[594]\tvalidation-rmse:6.38027 \n", "[595]\tvalidation-rmse:6.38020 \n", "[596]\tvalidation-rmse:6.38008 \n", "[597]\tvalidation-rmse:6.38001 \n", "[598]\tvalidation-rmse:6.37997 \n", "[599]\tvalidation-rmse:6.37995 \n", "[600]\tvalidation-rmse:6.37993 \n", "[601]\tvalidation-rmse:6.37991 \n", "[602]\tvalidation-rmse:6.37983 \n", "[603]\tvalidation-rmse:6.37969 \n", "[604]\tvalidation-rmse:6.37967 \n", "[605]\tvalidation-rmse:6.37960 \n", "[606]\tvalidation-rmse:6.37955 \n", "[607]\tvalidation-rmse:6.37958 \n", "[608]\tvalidation-rmse:6.37960 \n", "[609]\tvalidation-rmse:6.37949 \n", "[610]\tvalidation-rmse:6.37953 \n", "[611]\tvalidation-rmse:6.37957 \n", "[612]\tvalidation-rmse:6.37951 \n", "[613]\tvalidation-rmse:6.37940 \n", "[614]\tvalidation-rmse:6.37928 \n", "[615]\tvalidation-rmse:6.37927 \n", "[616]\tvalidation-rmse:6.37917 \n", "[617]\tvalidation-rmse:6.37908 \n", "[618]\tvalidation-rmse:6.37900 \n", "[619]\tvalidation-rmse:6.37902 \n", "[620]\tvalidation-rmse:6.37911 \n", "[621]\tvalidation-rmse:6.37904 \n", "[622]\tvalidation-rmse:6.37901 \n", "[623]\tvalidation-rmse:6.37914 \n", "[624]\tvalidation-rmse:6.37912 \n", "[625]\tvalidation-rmse:6.37906 \n", "[626]\tvalidation-rmse:6.37903 \n", "[627]\tvalidation-rmse:6.37899 \n", "[628]\tvalidation-rmse:6.37903 \n", "[629]\tvalidation-rmse:6.37893 \n", "[630]\tvalidation-rmse:6.37896 \n", "[631]\tvalidation-rmse:6.37894 \n", "[632]\tvalidation-rmse:6.37876 \n", "[633]\tvalidation-rmse:6.37871 \n", "[634]\tvalidation-rmse:6.37869 \n", "[635]\tvalidation-rmse:6.37869 \n", "[636]\tvalidation-rmse:6.37864 \n", "[637]\tvalidation-rmse:6.37867 \n", "[638]\tvalidation-rmse:6.37861 \n", "[639]\tvalidation-rmse:6.37859 \n", "[640]\tvalidation-rmse:6.37852 \n", "[641]\tvalidation-rmse:6.37846 \n", "[642]\tvalidation-rmse:6.37833 \n", "[643]\tvalidation-rmse:6.37835 \n", "[644]\tvalidation-rmse:6.37828 \n", "[645]\tvalidation-rmse:6.37819 \n", "[646]\tvalidation-rmse:6.37805 \n", "[647]\tvalidation-rmse:6.37800 \n", "[648]\tvalidation-rmse:6.37791 \n", "[649]\tvalidation-rmse:6.37776 \n", "[650]\tvalidation-rmse:6.37772 \n", "[651]\tvalidation-rmse:6.37754 \n", "[652]\tvalidation-rmse:6.37743 \n", "[653]\tvalidation-rmse:6.37743 \n", "[654]\tvalidation-rmse:6.37742 \n", "[655]\tvalidation-rmse:6.37725 \n", "[656]\tvalidation-rmse:6.37715 \n", "[657]\tvalidation-rmse:6.37712 \n", "[658]\tvalidation-rmse:6.37703 \n", "[659]\tvalidation-rmse:6.37709 \n", "[660]\tvalidation-rmse:6.37701 \n", "[661]\tvalidation-rmse:6.37698 \n", "[662]\tvalidation-rmse:6.37689 \n", "[663]\tvalidation-rmse:6.37689 \n", "[664]\tvalidation-rmse:6.37693 \n", "[665]\tvalidation-rmse:6.37689 \n", "[666]\tvalidation-rmse:6.37692 \n", "[667]\tvalidation-rmse:6.37693 \n", "[668]\tvalidation-rmse:6.37681 \n", "[669]\tvalidation-rmse:6.37675 \n", "[670]\tvalidation-rmse:6.37661 \n", "[671]\tvalidation-rmse:6.37658 \n", "[672]\tvalidation-rmse:6.37651 \n", "[673]\tvalidation-rmse:6.37645 \n", "[674]\tvalidation-rmse:6.37638 \n", "[675]\tvalidation-rmse:6.37640 \n", "[676]\tvalidation-rmse:6.37650 \n", "[677]\tvalidation-rmse:6.37652 \n", "[678]\tvalidation-rmse:6.37652 \n", "[679]\tvalidation-rmse:6.37650 \n", "[680]\tvalidation-rmse:6.37652 \n", "[681]\tvalidation-rmse:6.37649 \n", "[682]\tvalidation-rmse:6.37646 \n", "[683]\tvalidation-rmse:6.37653 \n", "[684]\tvalidation-rmse:6.37658 \n", "[685]\tvalidation-rmse:6.37649 \n", "[686]\tvalidation-rmse:6.37647 \n", "[687]\tvalidation-rmse:6.37647 \n", "[688]\tvalidation-rmse:6.37645 \n", "[689]\tvalidation-rmse:6.37638 \n", "[690]\tvalidation-rmse:6.37638 \n", "[691]\tvalidation-rmse:6.37626 \n", "[692]\tvalidation-rmse:6.37622 \n", "[693]\tvalidation-rmse:6.37610 \n", "[694]\tvalidation-rmse:6.37603 \n", "[695]\tvalidation-rmse:6.37585 \n", "[696]\tvalidation-rmse:6.37580 \n", "[697]\tvalidation-rmse:6.37579 \n", "[698]\tvalidation-rmse:6.37581 \n", "[699]\tvalidation-rmse:6.37583 \n", "[700]\tvalidation-rmse:6.37573 \n", "[701]\tvalidation-rmse:6.37569 \n", "[702]\tvalidation-rmse:6.37578 \n", "[703]\tvalidation-rmse:6.37588 \n", "[704]\tvalidation-rmse:6.37588 \n", "[705]\tvalidation-rmse:6.37579 \n", "[706]\tvalidation-rmse:6.37576 \n", "[707]\tvalidation-rmse:6.37575 \n", "[708]\tvalidation-rmse:6.37574 \n", "[709]\tvalidation-rmse:6.37566 \n", "[710]\tvalidation-rmse:6.37558 \n", "[711]\tvalidation-rmse:6.37553 \n", "[712]\tvalidation-rmse:6.37548 \n", "[713]\tvalidation-rmse:6.37547 \n", "[714]\tvalidation-rmse:6.37542 \n", "[715]\tvalidation-rmse:6.37538 \n", "[716]\tvalidation-rmse:6.37539 \n", "[717]\tvalidation-rmse:6.37536 \n", "[718]\tvalidation-rmse:6.37535 \n", "[719]\tvalidation-rmse:6.37527 \n", "[720]\tvalidation-rmse:6.37530 \n", "[721]\tvalidation-rmse:6.37524 \n", "[722]\tvalidation-rmse:6.37522 \n", "[723]\tvalidation-rmse:6.37520 \n", "[724]\tvalidation-rmse:6.37518 \n", "[725]\tvalidation-rmse:6.37510 \n", "[726]\tvalidation-rmse:6.37520 \n", "[727]\tvalidation-rmse:6.37517 \n", "[728]\tvalidation-rmse:6.37518 \n", "[729]\tvalidation-rmse:6.37518 \n", "[730]\tvalidation-rmse:6.37518 \n", "[731]\tvalidation-rmse:6.37516 \n", "[732]\tvalidation-rmse:6.37509 \n", "[733]\tvalidation-rmse:6.37507 \n", "[734]\tvalidation-rmse:6.37501 \n", "[735]\tvalidation-rmse:6.37505 \n", "[736]\tvalidation-rmse:6.37504 \n", "[737]\tvalidation-rmse:6.37499 \n", "[738]\tvalidation-rmse:6.37516 \n", "[739]\tvalidation-rmse:6.37517 \n", "[740]\tvalidation-rmse:6.37511 \n", "[741]\tvalidation-rmse:6.37516 \n", "[742]\tvalidation-rmse:6.37516 \n", "[743]\tvalidation-rmse:6.37512 \n", "[744]\tvalidation-rmse:6.37511 \n", "[745]\tvalidation-rmse:6.37517 \n", "[746]\tvalidation-rmse:6.37512 \n", "[747]\tvalidation-rmse:6.37511 \n", "[748]\tvalidation-rmse:6.37504 \n", "[749]\tvalidation-rmse:6.37502 \n", "[750]\tvalidation-rmse:6.37489 \n", "[751]\tvalidation-rmse:6.37492 \n", "[752]\tvalidation-rmse:6.37489 \n", "[753]\tvalidation-rmse:6.37491 \n", "[754]\tvalidation-rmse:6.37485 \n", "[755]\tvalidation-rmse:6.37486 \n", "[756]\tvalidation-rmse:6.37486 \n", "[757]\tvalidation-rmse:6.37476 \n", "[758]\tvalidation-rmse:6.37470 \n", "[759]\tvalidation-rmse:6.37463 \n", "[760]\tvalidation-rmse:6.37459 \n", "[761]\tvalidation-rmse:6.37454 \n", "[762]\tvalidation-rmse:6.37451 \n", "[763]\tvalidation-rmse:6.37451 \n", "[764]\tvalidation-rmse:6.37449 \n", "[765]\tvalidation-rmse:6.37448 \n", "[766]\tvalidation-rmse:6.37471 \n", "[767]\tvalidation-rmse:6.37469 \n", "[768]\tvalidation-rmse:6.37460 \n", "[769]\tvalidation-rmse:6.37446 \n", "[770]\tvalidation-rmse:6.37440 \n", "[771]\tvalidation-rmse:6.37446 \n", "[772]\tvalidation-rmse:6.37437 \n", "[773]\tvalidation-rmse:6.37434 \n", "[774]\tvalidation-rmse:6.37423 \n", "[775]\tvalidation-rmse:6.37428 \n", "[776]\tvalidation-rmse:6.37426 \n", "[777]\tvalidation-rmse:6.37426 \n", "[778]\tvalidation-rmse:6.37417 \n", "[779]\tvalidation-rmse:6.37411 \n", "[780]\tvalidation-rmse:6.37404 \n", "[781]\tvalidation-rmse:6.37402 \n", "[782]\tvalidation-rmse:6.37409 \n", "[783]\tvalidation-rmse:6.37427 \n", "[784]\tvalidation-rmse:6.37428 \n", "[785]\tvalidation-rmse:6.37441 \n", "[786]\tvalidation-rmse:6.37450 \n", "[787]\tvalidation-rmse:6.37452 \n", "[788]\tvalidation-rmse:6.37454 \n", "[789]\tvalidation-rmse:6.37456 \n", "[790]\tvalidation-rmse:6.37442 \n", "[791]\tvalidation-rmse:6.37442 \n", "[792]\tvalidation-rmse:6.37438 \n", "[793]\tvalidation-rmse:6.37431 \n", "[794]\tvalidation-rmse:6.37441 \n", "[795]\tvalidation-rmse:6.37460 \n", "[796]\tvalidation-rmse:6.37457 \n", "[797]\tvalidation-rmse:6.37452 \n", "[798]\tvalidation-rmse:6.37448 \n", "[799]\tvalidation-rmse:6.37441 \n", "[800]\tvalidation-rmse:6.37434 \n", "[801]\tvalidation-rmse:6.37425 \n", "[802]\tvalidation-rmse:6.37425 \n", "[803]\tvalidation-rmse:6.37424 \n", "[804]\tvalidation-rmse:6.37411 \n", "[805]\tvalidation-rmse:6.37415 \n", "[806]\tvalidation-rmse:6.37422 \n", "[807]\tvalidation-rmse:6.37432 \n", "[808]\tvalidation-rmse:6.37434 \n", "[809]\tvalidation-rmse:6.37434 \n", "[810]\tvalidation-rmse:6.37434 \n", "[811]\tvalidation-rmse:6.37419 \n", "[812]\tvalidation-rmse:6.37407 \n", "[813]\tvalidation-rmse:6.37399 \n", "[814]\tvalidation-rmse:6.37402 \n", "[815]\tvalidation-rmse:6.37404 \n", "[816]\tvalidation-rmse:6.37401 \n", "[817]\tvalidation-rmse:6.37399 \n", "[818]\tvalidation-rmse:6.37400 \n", "[819]\tvalidation-rmse:6.37396 \n", "[820]\tvalidation-rmse:6.37386 \n", "[821]\tvalidation-rmse:6.37381 \n", "[822]\tvalidation-rmse:6.37380 \n", "[823]\tvalidation-rmse:6.37378 \n", "[824]\tvalidation-rmse:6.37367 \n", "[825]\tvalidation-rmse:6.37360 \n", "[826]\tvalidation-rmse:6.37352 \n", "[827]\tvalidation-rmse:6.37346 \n", "[828]\tvalidation-rmse:6.37349 \n", "[829]\tvalidation-rmse:6.37344 \n", "[830]\tvalidation-rmse:6.37361 \n", "[831]\tvalidation-rmse:6.37359 \n", "[832]\tvalidation-rmse:6.37350 \n", "[833]\tvalidation-rmse:6.37344 \n", "[834]\tvalidation-rmse:6.37344 \n", "[835]\tvalidation-rmse:6.37340 \n", "[836]\tvalidation-rmse:6.37338 \n", "[837]\tvalidation-rmse:6.37337 \n", "[838]\tvalidation-rmse:6.37331 \n", "[839]\tvalidation-rmse:6.37352 \n", "[840]\tvalidation-rmse:6.37347 \n", "[841]\tvalidation-rmse:6.37344 \n", "[842]\tvalidation-rmse:6.37334 \n", "[843]\tvalidation-rmse:6.37337 \n", "[844]\tvalidation-rmse:6.37340 \n", "[845]\tvalidation-rmse:6.37353 \n", "[846]\tvalidation-rmse:6.37352 \n", "[847]\tvalidation-rmse:6.37354 \n", "[848]\tvalidation-rmse:6.37351 \n", "[849]\tvalidation-rmse:6.37351 \n", "[850]\tvalidation-rmse:6.37349 \n", "[851]\tvalidation-rmse:6.37345 \n", "[852]\tvalidation-rmse:6.37343 \n", "[853]\tvalidation-rmse:6.37339 \n", "[854]\tvalidation-rmse:6.37341 \n", "[855]\tvalidation-rmse:6.37331 \n", "[856]\tvalidation-rmse:6.37333 \n", "[857]\tvalidation-rmse:6.37325 \n", "[858]\tvalidation-rmse:6.37328 \n", "[859]\tvalidation-rmse:6.37324 \n", "[860]\tvalidation-rmse:6.37324 \n", "[861]\tvalidation-rmse:6.37335 \n", "[862]\tvalidation-rmse:6.37354 \n", "[863]\tvalidation-rmse:6.37381 \n", "[864]\tvalidation-rmse:6.37390 \n", "[865]\tvalidation-rmse:6.37399 \n", "[866]\tvalidation-rmse:6.37395 \n", "[867]\tvalidation-rmse:6.37392 \n", "[868]\tvalidation-rmse:6.37394 \n", "[869]\tvalidation-rmse:6.37393 \n", "[870]\tvalidation-rmse:6.37395 \n", "[871]\tvalidation-rmse:6.37399 \n", "[872]\tvalidation-rmse:6.37397 \n", "[873]\tvalidation-rmse:6.37402 \n", "[874]\tvalidation-rmse:6.37400 \n", "[875]\tvalidation-rmse:6.37427 \n", "[876]\tvalidation-rmse:6.37426 \n", "[877]\tvalidation-rmse:6.37429 \n", "[878]\tvalidation-rmse:6.37429 \n", "[879]\tvalidation-rmse:6.37419 \n", "[880]\tvalidation-rmse:6.37433 \n", "[881]\tvalidation-rmse:6.37432 \n", "[882]\tvalidation-rmse:6.37429 \n", "[883]\tvalidation-rmse:6.37432 \n", "[884]\tvalidation-rmse:6.37421 \n", "[885]\tvalidation-rmse:6.37415 \n", "[886]\tvalidation-rmse:6.37413 \n", "[887]\tvalidation-rmse:6.37408 \n", "[888]\tvalidation-rmse:6.37404 \n", "[889]\tvalidation-rmse:6.37397 \n", "[890]\tvalidation-rmse:6.37398 \n", "[891]\tvalidation-rmse:6.37401 \n", "[892]\tvalidation-rmse:6.37399 \n", "[893]\tvalidation-rmse:6.37390 \n", "[894]\tvalidation-rmse:6.37387 \n", "[895]\tvalidation-rmse:6.37386 \n", "[896]\tvalidation-rmse:6.37382 \n", "[897]\tvalidation-rmse:6.37379 \n", "[898]\tvalidation-rmse:6.37373 \n", "[899]\tvalidation-rmse:6.37369 \n", "[900]\tvalidation-rmse:6.37362 \n", "[901]\tvalidation-rmse:6.37367 \n", "[902]\tvalidation-rmse:6.37352 \n", "[903]\tvalidation-rmse:6.37354 \n", "[904]\tvalidation-rmse:6.37336 \n", "[905]\tvalidation-rmse:6.37332 \n", "[906]\tvalidation-rmse:6.37328 \n", "[907]\tvalidation-rmse:6.37329 \n", "[908]\tvalidation-rmse:6.37321 \n", "[909]\tvalidation-rmse:6.37319 \n", "[910]\tvalidation-rmse:6.37318 \n", "[911]\tvalidation-rmse:6.37343 \n", "[912]\tvalidation-rmse:6.37349 \n", "[913]\tvalidation-rmse:6.37351 \n", "[914]\tvalidation-rmse:6.37354 \n", "[915]\tvalidation-rmse:6.37353 \n", "[916]\tvalidation-rmse:6.37350 \n", "[917]\tvalidation-rmse:6.37363 \n", "[918]\tvalidation-rmse:6.37363 \n", "[919]\tvalidation-rmse:6.37389 \n", "[920]\tvalidation-rmse:6.37380 \n", "[921]\tvalidation-rmse:6.37379 \n", "[922]\tvalidation-rmse:6.37384 \n", "[923]\tvalidation-rmse:6.37374 \n", "[924]\tvalidation-rmse:6.37378 \n", "[925]\tvalidation-rmse:6.37382 \n", "[926]\tvalidation-rmse:6.37381 \n", "[927]\tvalidation-rmse:6.37374 \n", "[928]\tvalidation-rmse:6.37375 \n", "[929]\tvalidation-rmse:6.37370 \n", "[930]\tvalidation-rmse:6.37364 \n", "[931]\tvalidation-rmse:6.37373 \n", "[932]\tvalidation-rmse:6.37372 \n", "[933]\tvalidation-rmse:6.37372 \n", "[934]\tvalidation-rmse:6.37356 \n", "[935]\tvalidation-rmse:6.37350 \n", "[936]\tvalidation-rmse:6.37347 \n", "[937]\tvalidation-rmse:6.37347 \n", "[938]\tvalidation-rmse:6.37335 \n", "[939]\tvalidation-rmse:6.37338 \n", "[940]\tvalidation-rmse:6.37341 \n", "[941]\tvalidation-rmse:6.37339 \n", "[942]\tvalidation-rmse:6.37348 \n", "[943]\tvalidation-rmse:6.37347 \n", "[944]\tvalidation-rmse:6.37350 \n", "[945]\tvalidation-rmse:6.37362 \n", "[946]\tvalidation-rmse:6.37352 \n", "[947]\tvalidation-rmse:6.37355 \n", "[948]\tvalidation-rmse:6.37360 \n", "[949]\tvalidation-rmse:6.37354 \n", "[950]\tvalidation-rmse:6.37355 \n", "[951]\tvalidation-rmse:6.37348 \n", "[952]\tvalidation-rmse:6.37345 \n", "[953]\tvalidation-rmse:6.37347 \n", "[954]\tvalidation-rmse:6.37348 \n", "[955]\tvalidation-rmse:6.37345 \n", "[956]\tvalidation-rmse:6.37343 \n", "[957]\tvalidation-rmse:6.37362 \n", "[958]\tvalidation-rmse:6.37361 \n", "[959]\tvalidation-rmse:6.37364 \n", "[12:43:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.55573 \n", "[1]\tvalidation-rmse:18.08340 \n", "[2]\tvalidation-rmse:16.76415 \n", "[3]\tvalidation-rmse:15.58150 \n", "[4]\tvalidation-rmse:14.52593 \n", "[5]\tvalidation-rmse:13.58520 \n", "[6]\tvalidation-rmse:12.74715 \n", "[7]\tvalidation-rmse:12.00336 \n", "[8]\tvalidation-rmse:11.34568 \n", "[9]\tvalidation-rmse:10.76410 \n", "[10]\tvalidation-rmse:10.25369 \n", "[11]\tvalidation-rmse:9.80442 \n", "[12]\tvalidation-rmse:9.41014 \n", "[13]\tvalidation-rmse:9.06520 \n", "[14]\tvalidation-rmse:8.76445 \n", "[15]\tvalidation-rmse:8.50223 \n", "[16]\tvalidation-rmse:8.27392 \n", "[17]\tvalidation-rmse:8.07620 \n", "[18]\tvalidation-rmse:7.90389 \n", "[19]\tvalidation-rmse:7.75426 \n", "[20]\tvalidation-rmse:7.62363 \n", "[21]\tvalidation-rmse:7.51117 \n", "[22]\tvalidation-rmse:7.41330 \n", "[23]\tvalidation-rmse:7.32761 \n", "[24]\tvalidation-rmse:7.25395 \n", "[25]\tvalidation-rmse:7.18943 \n", "[26]\tvalidation-rmse:7.13277 \n", "[27]\tvalidation-rmse:7.08359 \n", "[28]\tvalidation-rmse:7.04075 \n", "[29]\tvalidation-rmse:7.00289 \n", "[30]\tvalidation-rmse:6.97012 \n", "[31]\tvalidation-rmse:6.94004 \n", "[32]\tvalidation-rmse:6.91411 \n", "[33]\tvalidation-rmse:6.89125 \n", "[34]\tvalidation-rmse:6.87076 \n", "[35]\tvalidation-rmse:6.85254 \n", "[36]\tvalidation-rmse:6.83721 \n", "[37]\tvalidation-rmse:6.82334 \n", "[38]\tvalidation-rmse:6.81035 \n", "[39]\tvalidation-rmse:6.79856 \n", "[40]\tvalidation-rmse:6.78916 \n", "[41]\tvalidation-rmse:6.77952 \n", "[42]\tvalidation-rmse:6.77186 \n", "[43]\tvalidation-rmse:6.76432 \n", "[44]\tvalidation-rmse:6.75814 \n", "[45]\tvalidation-rmse:6.75243 \n", "[46]\tvalidation-rmse:6.74604 \n", "[47]\tvalidation-rmse:6.74150 \n", "[48]\tvalidation-rmse:6.73749 \n", "[49]\tvalidation-rmse:6.73269 \n", "[50]\tvalidation-rmse:6.72941 \n", "[51]\tvalidation-rmse:6.72650 \n", "[52]\tvalidation-rmse:6.72347 \n", "[53]\tvalidation-rmse:6.72109 \n", "[54]\tvalidation-rmse:6.71855 \n", "[55]\tvalidation-rmse:6.71600 \n", "[56]\tvalidation-rmse:6.71417 \n", "[57]\tvalidation-rmse:6.71242 \n", "[58]\tvalidation-rmse:6.70960 \n", "[59]\tvalidation-rmse:6.70811 \n", "[60]\tvalidation-rmse:6.70656 \n", "[61]\tvalidation-rmse:6.70534 \n", "[62]\tvalidation-rmse:6.70380 \n", "[63]\tvalidation-rmse:6.70224 \n", "[64]\tvalidation-rmse:6.70069 \n", "[65]\tvalidation-rmse:6.69958 \n", "[66]\tvalidation-rmse:6.69860 \n", "[67]\tvalidation-rmse:6.69701 \n", "[68]\tvalidation-rmse:6.69596 \n", "[69]\tvalidation-rmse:6.69505 \n", "[70]\tvalidation-rmse:6.69423 \n", "[71]\tvalidation-rmse:6.69317 \n", "[72]\tvalidation-rmse:6.69177 \n", "[73]\tvalidation-rmse:6.69012 \n", "[74]\tvalidation-rmse:6.68947 \n", "[75]\tvalidation-rmse:6.68876 \n", "[76]\tvalidation-rmse:6.68816 \n", "[77]\tvalidation-rmse:6.68750 \n", "[78]\tvalidation-rmse:6.68677 \n", "[79]\tvalidation-rmse:6.68624 \n", "[80]\tvalidation-rmse:6.68539 \n", "[81]\tvalidation-rmse:6.68499 \n", "[82]\tvalidation-rmse:6.68442 \n", "[83]\tvalidation-rmse:6.68370 \n", "[84]\tvalidation-rmse:6.68272 \n", "[85]\tvalidation-rmse:6.68079 \n", "[86]\tvalidation-rmse:6.67992 \n", "[87]\tvalidation-rmse:6.67959 \n", "[88]\tvalidation-rmse:6.67854 \n", "[89]\tvalidation-rmse:6.67770 \n", "[90]\tvalidation-rmse:6.67727 \n", "[91]\tvalidation-rmse:6.67647 \n", "[92]\tvalidation-rmse:6.67576 \n", "[93]\tvalidation-rmse:6.67516 \n", "[94]\tvalidation-rmse:6.67482 \n", "[95]\tvalidation-rmse:6.67427 \n", "[96]\tvalidation-rmse:6.67340 \n", "[97]\tvalidation-rmse:6.67317 \n", "[98]\tvalidation-rmse:6.67268 \n", "[99]\tvalidation-rmse:6.67193 \n", "[100]\tvalidation-rmse:6.67148 \n", "[101]\tvalidation-rmse:6.67110 \n", "[102]\tvalidation-rmse:6.67053 \n", "[103]\tvalidation-rmse:6.67006 \n", "[104]\tvalidation-rmse:6.66968 \n", "[105]\tvalidation-rmse:6.66910 \n", "[106]\tvalidation-rmse:6.66891 \n", "[107]\tvalidation-rmse:6.66852 \n", "[108]\tvalidation-rmse:6.66809 \n", "[109]\tvalidation-rmse:6.66780 \n", "[110]\tvalidation-rmse:6.66748 \n", "[111]\tvalidation-rmse:6.66699 \n", "[112]\tvalidation-rmse:6.66616 \n", "[113]\tvalidation-rmse:6.66566 \n", "[114]\tvalidation-rmse:6.66518 \n", "[115]\tvalidation-rmse:6.66468 \n", "[116]\tvalidation-rmse:6.66413 \n", "[117]\tvalidation-rmse:6.66354 \n", "[118]\tvalidation-rmse:6.66248 \n", "[119]\tvalidation-rmse:6.66207 \n", "[120]\tvalidation-rmse:6.66187 \n", "[121]\tvalidation-rmse:6.66139 \n", "[122]\tvalidation-rmse:6.66071 \n", "[123]\tvalidation-rmse:6.66048 \n", "[124]\tvalidation-rmse:6.65975 \n", "[125]\tvalidation-rmse:6.65930 \n", "[126]\tvalidation-rmse:6.65865 \n", "[127]\tvalidation-rmse:6.65821 \n", "[128]\tvalidation-rmse:6.65782 \n", "[129]\tvalidation-rmse:6.65758 \n", "[130]\tvalidation-rmse:6.65727 \n", "[131]\tvalidation-rmse:6.65691 \n", "[132]\tvalidation-rmse:6.65678 \n", "[133]\tvalidation-rmse:6.65607 \n", "[134]\tvalidation-rmse:6.65562 \n", "[135]\tvalidation-rmse:6.65530 \n", "[136]\tvalidation-rmse:6.65475 \n", "[137]\tvalidation-rmse:6.65434 \n", "[138]\tvalidation-rmse:6.65370 \n", "[139]\tvalidation-rmse:6.65330 \n", "[140]\tvalidation-rmse:6.65288 \n", "[141]\tvalidation-rmse:6.65234 \n", "[142]\tvalidation-rmse:6.65177 \n", "[143]\tvalidation-rmse:6.65150 \n", "[144]\tvalidation-rmse:6.65119 \n", "[145]\tvalidation-rmse:6.65065 \n", "[146]\tvalidation-rmse:6.65045 \n", "[147]\tvalidation-rmse:6.65015 \n", "[148]\tvalidation-rmse:6.64981 \n", "[149]\tvalidation-rmse:6.64964 \n", "[150]\tvalidation-rmse:6.64933 \n", "[151]\tvalidation-rmse:6.64894 \n", "[152]\tvalidation-rmse:6.64868 \n", "[153]\tvalidation-rmse:6.64818 \n", "[154]\tvalidation-rmse:6.64801 \n", "[155]\tvalidation-rmse:6.64763 \n", "[156]\tvalidation-rmse:6.64728 \n", "[157]\tvalidation-rmse:6.64680 \n", "[158]\tvalidation-rmse:6.64622 \n", "[159]\tvalidation-rmse:6.64585 \n", "[160]\tvalidation-rmse:6.64558 \n", "[161]\tvalidation-rmse:6.64524 \n", "[162]\tvalidation-rmse:6.64498 \n", "[163]\tvalidation-rmse:6.64461 \n", "[164]\tvalidation-rmse:6.64407 \n", "[165]\tvalidation-rmse:6.64371 \n", "[166]\tvalidation-rmse:6.64361 \n", "[167]\tvalidation-rmse:6.64351 \n", "[168]\tvalidation-rmse:6.64291 \n", "[169]\tvalidation-rmse:6.64236 \n", "[170]\tvalidation-rmse:6.64215 \n", "[171]\tvalidation-rmse:6.64158 \n", "[172]\tvalidation-rmse:6.64108 \n", "[173]\tvalidation-rmse:6.64088 \n", "[174]\tvalidation-rmse:6.64020 \n", "[175]\tvalidation-rmse:6.63994 \n", "[176]\tvalidation-rmse:6.63978 \n", "[177]\tvalidation-rmse:6.63954 \n", "[178]\tvalidation-rmse:6.63898 \n", "[179]\tvalidation-rmse:6.63871 \n", "[180]\tvalidation-rmse:6.63840 \n", "[181]\tvalidation-rmse:6.63806 \n", "[182]\tvalidation-rmse:6.63795 \n", "[183]\tvalidation-rmse:6.63764 \n", "[184]\tvalidation-rmse:6.63722 \n", "[185]\tvalidation-rmse:6.63692 \n", "[186]\tvalidation-rmse:6.63672 \n", "[187]\tvalidation-rmse:6.63624 \n", "[188]\tvalidation-rmse:6.63600 \n", "[189]\tvalidation-rmse:6.63558 \n", "[190]\tvalidation-rmse:6.63501 \n", "[191]\tvalidation-rmse:6.63458 \n", "[192]\tvalidation-rmse:6.63434 \n", "[193]\tvalidation-rmse:6.63354 \n", "[194]\tvalidation-rmse:6.63321 \n", "[195]\tvalidation-rmse:6.63278 \n", "[196]\tvalidation-rmse:6.63200 \n", "[197]\tvalidation-rmse:6.63170 \n", "[198]\tvalidation-rmse:6.63128 \n", "[199]\tvalidation-rmse:6.63114 \n", "[200]\tvalidation-rmse:6.63104 \n", "[201]\tvalidation-rmse:6.63075 \n", "[202]\tvalidation-rmse:6.63040 \n", "[203]\tvalidation-rmse:6.63018 \n", "[204]\tvalidation-rmse:6.62970 \n", "[205]\tvalidation-rmse:6.62972 \n", "[206]\tvalidation-rmse:6.62931 \n", "[207]\tvalidation-rmse:6.62910 \n", "[208]\tvalidation-rmse:6.62886 \n", "[209]\tvalidation-rmse:6.62851 \n", "[210]\tvalidation-rmse:6.62817 \n", "[211]\tvalidation-rmse:6.62802 \n", "[212]\tvalidation-rmse:6.62782 \n", "[213]\tvalidation-rmse:6.62771 \n", "[214]\tvalidation-rmse:6.62722 \n", "[215]\tvalidation-rmse:6.62693 \n", "[216]\tvalidation-rmse:6.62665 \n", "[217]\tvalidation-rmse:6.62621 \n", "[218]\tvalidation-rmse:6.62594 \n", "[219]\tvalidation-rmse:6.62561 \n", "[220]\tvalidation-rmse:6.62509 \n", "[221]\tvalidation-rmse:6.62479 \n", "[222]\tvalidation-rmse:6.62439 \n", "[223]\tvalidation-rmse:6.62410 \n", "[224]\tvalidation-rmse:6.62391 \n", "[225]\tvalidation-rmse:6.62372 \n", "[226]\tvalidation-rmse:6.62360 \n", "[227]\tvalidation-rmse:6.62338 \n", "[228]\tvalidation-rmse:6.62289 \n", "[229]\tvalidation-rmse:6.62228 \n", "[230]\tvalidation-rmse:6.62220 \n", "[231]\tvalidation-rmse:6.62198 \n", "[232]\tvalidation-rmse:6.62164 \n", "[233]\tvalidation-rmse:6.62122 \n", "[234]\tvalidation-rmse:6.62096 \n", "[235]\tvalidation-rmse:6.62070 \n", "[236]\tvalidation-rmse:6.62052 \n", "[237]\tvalidation-rmse:6.62005 \n", "[238]\tvalidation-rmse:6.61955 \n", "[239]\tvalidation-rmse:6.61941 \n", "[240]\tvalidation-rmse:6.61909 \n", "[241]\tvalidation-rmse:6.61872 \n", "[242]\tvalidation-rmse:6.61830 \n", "[243]\tvalidation-rmse:6.61795 \n", "[244]\tvalidation-rmse:6.61776 \n", "[245]\tvalidation-rmse:6.61746 \n", "[246]\tvalidation-rmse:6.61719 \n", "[247]\tvalidation-rmse:6.61694 \n", "[248]\tvalidation-rmse:6.61678 \n", "[249]\tvalidation-rmse:6.61649 \n", "[250]\tvalidation-rmse:6.61633 \n", "[251]\tvalidation-rmse:6.61595 \n", "[252]\tvalidation-rmse:6.61566 \n", "[253]\tvalidation-rmse:6.61551 \n", "[254]\tvalidation-rmse:6.61541 \n", "[255]\tvalidation-rmse:6.61523 \n", "[256]\tvalidation-rmse:6.61480 \n", "[257]\tvalidation-rmse:6.61458 \n", "[258]\tvalidation-rmse:6.61429 \n", "[259]\tvalidation-rmse:6.61409 \n", "[260]\tvalidation-rmse:6.61386 \n", "[261]\tvalidation-rmse:6.61352 \n", "[262]\tvalidation-rmse:6.61336 \n", "[263]\tvalidation-rmse:6.61298 \n", "[264]\tvalidation-rmse:6.61279 \n", "[265]\tvalidation-rmse:6.61240 \n", "[266]\tvalidation-rmse:6.61195 \n", "[267]\tvalidation-rmse:6.61125 \n", "[268]\tvalidation-rmse:6.61089 \n", "[269]\tvalidation-rmse:6.61066 \n", "[270]\tvalidation-rmse:6.61045 \n", "[271]\tvalidation-rmse:6.61003 \n", "[272]\tvalidation-rmse:6.60979 \n", "[273]\tvalidation-rmse:6.60960 \n", "[274]\tvalidation-rmse:6.60942 \n", "[275]\tvalidation-rmse:6.60908 \n", "[276]\tvalidation-rmse:6.60891 \n", "[277]\tvalidation-rmse:6.60813 \n", "[278]\tvalidation-rmse:6.60791 \n", "[279]\tvalidation-rmse:6.60766 \n", "[280]\tvalidation-rmse:6.60752 \n", "[281]\tvalidation-rmse:6.60729 \n", "[282]\tvalidation-rmse:6.60731 \n", "[283]\tvalidation-rmse:6.60697 \n", "[284]\tvalidation-rmse:6.60670 \n", "[285]\tvalidation-rmse:6.60644 \n", "[286]\tvalidation-rmse:6.60617 \n", "[287]\tvalidation-rmse:6.60611 \n", "[288]\tvalidation-rmse:6.60588 \n", "[289]\tvalidation-rmse:6.60578 \n", "[290]\tvalidation-rmse:6.60559 \n", "[291]\tvalidation-rmse:6.60541 \n", "[292]\tvalidation-rmse:6.60526 \n", "[293]\tvalidation-rmse:6.60510 \n", "[294]\tvalidation-rmse:6.60471 \n", "[295]\tvalidation-rmse:6.60445 \n", "[296]\tvalidation-rmse:6.60413 \n", "[297]\tvalidation-rmse:6.60371 \n", "[298]\tvalidation-rmse:6.60364 \n", "[299]\tvalidation-rmse:6.60321 \n", "[300]\tvalidation-rmse:6.60284 \n", "[301]\tvalidation-rmse:6.60234 \n", "[302]\tvalidation-rmse:6.60208 \n", "[303]\tvalidation-rmse:6.60165 \n", "[304]\tvalidation-rmse:6.60146 \n", "[305]\tvalidation-rmse:6.60120 \n", "[306]\tvalidation-rmse:6.60097 \n", "[307]\tvalidation-rmse:6.60077 \n", "[308]\tvalidation-rmse:6.60052 \n", "[309]\tvalidation-rmse:6.60020 \n", "[310]\tvalidation-rmse:6.60007 \n", "[311]\tvalidation-rmse:6.59973 \n", "[312]\tvalidation-rmse:6.59942 \n", "[313]\tvalidation-rmse:6.59904 \n", "[314]\tvalidation-rmse:6.59900 \n", "[315]\tvalidation-rmse:6.59885 \n", "[316]\tvalidation-rmse:6.59872 \n", "[317]\tvalidation-rmse:6.59808 \n", "[318]\tvalidation-rmse:6.59777 \n", "[319]\tvalidation-rmse:6.59735 \n", "[320]\tvalidation-rmse:6.59713 \n", "[321]\tvalidation-rmse:6.59682 \n", "[322]\tvalidation-rmse:6.59668 \n", "[323]\tvalidation-rmse:6.59635 \n", "[324]\tvalidation-rmse:6.59588 \n", "[325]\tvalidation-rmse:6.59562 \n", "[326]\tvalidation-rmse:6.59552 \n", "[327]\tvalidation-rmse:6.59517 \n", "[328]\tvalidation-rmse:6.59479 \n", "[329]\tvalidation-rmse:6.59444 \n", "[330]\tvalidation-rmse:6.59427 \n", "[331]\tvalidation-rmse:6.59406 \n", "[332]\tvalidation-rmse:6.59395 \n", "[333]\tvalidation-rmse:6.59362 \n", "[334]\tvalidation-rmse:6.59325 \n", "[335]\tvalidation-rmse:6.59312 \n", "[336]\tvalidation-rmse:6.59290 \n", "[337]\tvalidation-rmse:6.59294 \n", "[338]\tvalidation-rmse:6.59266 \n", "[339]\tvalidation-rmse:6.59246 \n", "[340]\tvalidation-rmse:6.59233 \n", "[341]\tvalidation-rmse:6.59194 \n", "[342]\tvalidation-rmse:6.59159 \n", "[343]\tvalidation-rmse:6.59150 \n", "[344]\tvalidation-rmse:6.59120 \n", "[345]\tvalidation-rmse:6.59099 \n", "[346]\tvalidation-rmse:6.59091 \n", "[347]\tvalidation-rmse:6.59078 \n", "[348]\tvalidation-rmse:6.59063 \n", "[349]\tvalidation-rmse:6.59054 \n", "[350]\tvalidation-rmse:6.59037 \n", "[351]\tvalidation-rmse:6.59015 \n", "[352]\tvalidation-rmse:6.58980 \n", "[353]\tvalidation-rmse:6.58951 \n", "[354]\tvalidation-rmse:6.58935 \n", "[355]\tvalidation-rmse:6.58897 \n", "[356]\tvalidation-rmse:6.58870 \n", "[357]\tvalidation-rmse:6.58857 \n", "[358]\tvalidation-rmse:6.58836 \n", "[359]\tvalidation-rmse:6.58808 \n", "[360]\tvalidation-rmse:6.58788 \n", "[361]\tvalidation-rmse:6.58755 \n", "[362]\tvalidation-rmse:6.58730 \n", "[363]\tvalidation-rmse:6.58708 \n", "[364]\tvalidation-rmse:6.58683 \n", "[365]\tvalidation-rmse:6.58665 \n", "[366]\tvalidation-rmse:6.58622 \n", "[367]\tvalidation-rmse:6.58591 \n", "[368]\tvalidation-rmse:6.58578 \n", "[369]\tvalidation-rmse:6.58561 \n", "[370]\tvalidation-rmse:6.58536 \n", "[371]\tvalidation-rmse:6.58521 \n", "[372]\tvalidation-rmse:6.58509 \n", "[373]\tvalidation-rmse:6.58492 \n", "[374]\tvalidation-rmse:6.58471 \n", "[375]\tvalidation-rmse:6.58449 \n", "[376]\tvalidation-rmse:6.58435 \n", "[377]\tvalidation-rmse:6.58399 \n", "[378]\tvalidation-rmse:6.58362 \n", "[379]\tvalidation-rmse:6.58356 \n", "[380]\tvalidation-rmse:6.58341 \n", "[381]\tvalidation-rmse:6.58318 \n", "[382]\tvalidation-rmse:6.58297 \n", "[383]\tvalidation-rmse:6.58273 \n", "[384]\tvalidation-rmse:6.58257 \n", "[385]\tvalidation-rmse:6.58235 \n", "[386]\tvalidation-rmse:6.58226 \n", "[387]\tvalidation-rmse:6.58218 \n", "[388]\tvalidation-rmse:6.58215 \n", "[389]\tvalidation-rmse:6.58190 \n", "[390]\tvalidation-rmse:6.58171 \n", "[391]\tvalidation-rmse:6.58165 \n", "[392]\tvalidation-rmse:6.58155 \n", "[393]\tvalidation-rmse:6.58138 \n", "[394]\tvalidation-rmse:6.58127 \n", "[395]\tvalidation-rmse:6.58104 \n", "[396]\tvalidation-rmse:6.58078 \n", "[397]\tvalidation-rmse:6.58052 \n", "[398]\tvalidation-rmse:6.58033 \n", "[399]\tvalidation-rmse:6.58017 \n", "[400]\tvalidation-rmse:6.57997 \n", "[401]\tvalidation-rmse:6.57986 \n", "[402]\tvalidation-rmse:6.57974 \n", "[403]\tvalidation-rmse:6.57945 \n", "[404]\tvalidation-rmse:6.57904 \n", "[405]\tvalidation-rmse:6.57880 \n", "[406]\tvalidation-rmse:6.57838 \n", "[407]\tvalidation-rmse:6.57804 \n", "[408]\tvalidation-rmse:6.57784 \n", "[409]\tvalidation-rmse:6.57753 \n", "[410]\tvalidation-rmse:6.57728 \n", "[411]\tvalidation-rmse:6.57720 \n", "[412]\tvalidation-rmse:6.57707 \n", "[413]\tvalidation-rmse:6.57681 \n", "[414]\tvalidation-rmse:6.57680 \n", "[415]\tvalidation-rmse:6.57665 \n", "[416]\tvalidation-rmse:6.57641 \n", "[417]\tvalidation-rmse:6.57626 \n", "[418]\tvalidation-rmse:6.57599 \n", "[419]\tvalidation-rmse:6.57567 \n", "[420]\tvalidation-rmse:6.57482 \n", "[421]\tvalidation-rmse:6.57447 \n", "[422]\tvalidation-rmse:6.57444 \n", "[423]\tvalidation-rmse:6.57404 \n", "[424]\tvalidation-rmse:6.57363 \n", "[425]\tvalidation-rmse:6.57346 \n", "[426]\tvalidation-rmse:6.57326 \n", "[427]\tvalidation-rmse:6.57287 \n", "[428]\tvalidation-rmse:6.57255 \n", "[429]\tvalidation-rmse:6.57248 \n", "[430]\tvalidation-rmse:6.57226 \n", "[431]\tvalidation-rmse:6.57193 \n", "[432]\tvalidation-rmse:6.57179 \n", "[433]\tvalidation-rmse:6.57157 \n", "[434]\tvalidation-rmse:6.57146 \n", "[435]\tvalidation-rmse:6.57109 \n", "[436]\tvalidation-rmse:6.57067 \n", "[437]\tvalidation-rmse:6.57029 \n", "[438]\tvalidation-rmse:6.57011 \n", "[439]\tvalidation-rmse:6.56974 \n", "[440]\tvalidation-rmse:6.56964 \n", "[441]\tvalidation-rmse:6.56935 \n", "[442]\tvalidation-rmse:6.56911 \n", "[443]\tvalidation-rmse:6.56897 \n", "[444]\tvalidation-rmse:6.56889 \n", "[445]\tvalidation-rmse:6.56869 \n", "[446]\tvalidation-rmse:6.56858 \n", "[447]\tvalidation-rmse:6.56854 \n", "[448]\tvalidation-rmse:6.56826 \n", "[449]\tvalidation-rmse:6.56814 \n", "[450]\tvalidation-rmse:6.56800 \n", "[451]\tvalidation-rmse:6.56787 \n", "[452]\tvalidation-rmse:6.56776 \n", "[453]\tvalidation-rmse:6.56755 \n", "[454]\tvalidation-rmse:6.56732 \n", "[455]\tvalidation-rmse:6.56720 \n", "[456]\tvalidation-rmse:6.56701 \n", "[457]\tvalidation-rmse:6.56704 \n", "[458]\tvalidation-rmse:6.56677 \n", "[459]\tvalidation-rmse:6.56669 \n", "[460]\tvalidation-rmse:6.56601 \n", "[461]\tvalidation-rmse:6.56580 \n", "[462]\tvalidation-rmse:6.56562 \n", "[463]\tvalidation-rmse:6.56546 \n", "[464]\tvalidation-rmse:6.56516 \n", "[465]\tvalidation-rmse:6.56510 \n", "[466]\tvalidation-rmse:6.56489 \n", "[467]\tvalidation-rmse:6.56471 \n", "[468]\tvalidation-rmse:6.56455 \n", "[469]\tvalidation-rmse:6.56430 \n", "[470]\tvalidation-rmse:6.56408 \n", "[471]\tvalidation-rmse:6.56375 \n", "[472]\tvalidation-rmse:6.56342 \n", "[473]\tvalidation-rmse:6.56324 \n", "[474]\tvalidation-rmse:6.56312 \n", "[475]\tvalidation-rmse:6.56290 \n", "[476]\tvalidation-rmse:6.56275 \n", "[477]\tvalidation-rmse:6.56270 \n", "[478]\tvalidation-rmse:6.56243 \n", "[479]\tvalidation-rmse:6.56227 \n", "[480]\tvalidation-rmse:6.56207 \n", "[481]\tvalidation-rmse:6.56183 \n", "[482]\tvalidation-rmse:6.56160 \n", "[483]\tvalidation-rmse:6.56146 \n", "[484]\tvalidation-rmse:6.56122 \n", "[485]\tvalidation-rmse:6.56096 \n", "[486]\tvalidation-rmse:6.56083 \n", "[487]\tvalidation-rmse:6.56054 \n", "[488]\tvalidation-rmse:6.56041 \n", "[489]\tvalidation-rmse:6.56026 \n", "[490]\tvalidation-rmse:6.56013 \n", "[491]\tvalidation-rmse:6.55992 \n", "[492]\tvalidation-rmse:6.55980 \n", "[493]\tvalidation-rmse:6.55973 \n", "[494]\tvalidation-rmse:6.55955 \n", "[495]\tvalidation-rmse:6.55938 \n", "[496]\tvalidation-rmse:6.55920 \n", "[497]\tvalidation-rmse:6.55913 \n", "[498]\tvalidation-rmse:6.55887 \n", "[499]\tvalidation-rmse:6.55893 \n", "[500]\tvalidation-rmse:6.55878 \n", "[501]\tvalidation-rmse:6.55846 \n", "[502]\tvalidation-rmse:6.55816 \n", "[503]\tvalidation-rmse:6.55798 \n", "[504]\tvalidation-rmse:6.55779 \n", "[505]\tvalidation-rmse:6.55758 \n", "[506]\tvalidation-rmse:6.55744 \n", "[507]\tvalidation-rmse:6.55730 \n", "[508]\tvalidation-rmse:6.55720 \n", "[509]\tvalidation-rmse:6.55711 \n", "[510]\tvalidation-rmse:6.55704 \n", "[511]\tvalidation-rmse:6.55687 \n", "[512]\tvalidation-rmse:6.55683 \n", "[513]\tvalidation-rmse:6.55673 \n", "[514]\tvalidation-rmse:6.55663 \n", "[515]\tvalidation-rmse:6.55648 \n", "[516]\tvalidation-rmse:6.55632 \n", "[517]\tvalidation-rmse:6.55623 \n", "[518]\tvalidation-rmse:6.55601 \n", "[519]\tvalidation-rmse:6.55575 \n", "[520]\tvalidation-rmse:6.55563 \n", "[521]\tvalidation-rmse:6.55542 \n", "[522]\tvalidation-rmse:6.55531 \n", "[523]\tvalidation-rmse:6.55515 \n", "[524]\tvalidation-rmse:6.55499 \n", "[525]\tvalidation-rmse:6.55486 \n", "[526]\tvalidation-rmse:6.55472 \n", "[527]\tvalidation-rmse:6.55447 \n", "[528]\tvalidation-rmse:6.55437 \n", "[529]\tvalidation-rmse:6.55414 \n", "[530]\tvalidation-rmse:6.55390 \n", "[531]\tvalidation-rmse:6.55365 \n", "[532]\tvalidation-rmse:6.55334 \n", "[533]\tvalidation-rmse:6.55317 \n", "[534]\tvalidation-rmse:6.55295 \n", "[535]\tvalidation-rmse:6.55259 \n", "[536]\tvalidation-rmse:6.55224 \n", "[537]\tvalidation-rmse:6.55209 \n", "[538]\tvalidation-rmse:6.55201 \n", "[539]\tvalidation-rmse:6.55181 \n", "[540]\tvalidation-rmse:6.55171 \n", "[541]\tvalidation-rmse:6.55154 \n", "[542]\tvalidation-rmse:6.55152 \n", "[543]\tvalidation-rmse:6.55135 \n", "[544]\tvalidation-rmse:6.55142 \n", "[545]\tvalidation-rmse:6.55124 \n", "[546]\tvalidation-rmse:6.55109 \n", "[547]\tvalidation-rmse:6.55092 \n", "[548]\tvalidation-rmse:6.55060 \n", "[549]\tvalidation-rmse:6.55034 \n", "[550]\tvalidation-rmse:6.55019 \n", "[551]\tvalidation-rmse:6.54994 \n", "[552]\tvalidation-rmse:6.54964 \n", "[553]\tvalidation-rmse:6.54952 \n", "[554]\tvalidation-rmse:6.54926 \n", "[555]\tvalidation-rmse:6.54899 \n", "[556]\tvalidation-rmse:6.54886 \n", "[557]\tvalidation-rmse:6.54864 \n", "[558]\tvalidation-rmse:6.54830 \n", "[559]\tvalidation-rmse:6.54819 \n", "[560]\tvalidation-rmse:6.54802 \n", "[561]\tvalidation-rmse:6.54796 \n", "[562]\tvalidation-rmse:6.54775 \n", "[563]\tvalidation-rmse:6.54754 \n", "[564]\tvalidation-rmse:6.54741 \n", "[565]\tvalidation-rmse:6.54722 \n", "[566]\tvalidation-rmse:6.54704 \n", "[567]\tvalidation-rmse:6.54686 \n", "[568]\tvalidation-rmse:6.54665 \n", "[569]\tvalidation-rmse:6.54653 \n", "[570]\tvalidation-rmse:6.54638 \n", "[571]\tvalidation-rmse:6.54614 \n", "[572]\tvalidation-rmse:6.54589 \n", "[573]\tvalidation-rmse:6.54570 \n", "[574]\tvalidation-rmse:6.54538 \n", "[575]\tvalidation-rmse:6.54521 \n", "[576]\tvalidation-rmse:6.54499 \n", "[577]\tvalidation-rmse:6.54472 \n", "[578]\tvalidation-rmse:6.54458 \n", "[579]\tvalidation-rmse:6.54449 \n", "[580]\tvalidation-rmse:6.54430 \n", "[581]\tvalidation-rmse:6.54425 \n", "[582]\tvalidation-rmse:6.54402 \n", "[583]\tvalidation-rmse:6.54392 \n", "[584]\tvalidation-rmse:6.54381 \n", "[585]\tvalidation-rmse:6.54366 \n", "[586]\tvalidation-rmse:6.54342 \n", "[587]\tvalidation-rmse:6.54337 \n", "[588]\tvalidation-rmse:6.54319 \n", "[589]\tvalidation-rmse:6.54271 \n", "[590]\tvalidation-rmse:6.54195 \n", "[591]\tvalidation-rmse:6.54182 \n", "[592]\tvalidation-rmse:6.54178 \n", "[593]\tvalidation-rmse:6.54171 \n", "[594]\tvalidation-rmse:6.54166 \n", "[595]\tvalidation-rmse:6.54152 \n", "[596]\tvalidation-rmse:6.54149 \n", "[597]\tvalidation-rmse:6.54135 \n", "[598]\tvalidation-rmse:6.54113 \n", "[599]\tvalidation-rmse:6.54104 \n", "[600]\tvalidation-rmse:6.54084 \n", "[601]\tvalidation-rmse:6.54050 \n", "[602]\tvalidation-rmse:6.54029 \n", "[603]\tvalidation-rmse:6.54013 \n", "[604]\tvalidation-rmse:6.54000 \n", "[605]\tvalidation-rmse:6.53934 \n", "[606]\tvalidation-rmse:6.53913 \n", "[607]\tvalidation-rmse:6.53896 \n", "[608]\tvalidation-rmse:6.53879 \n", "[609]\tvalidation-rmse:6.53856 \n", "[610]\tvalidation-rmse:6.53831 \n", "[611]\tvalidation-rmse:6.53814 \n", "[612]\tvalidation-rmse:6.53791 \n", "[613]\tvalidation-rmse:6.53776 \n", "[614]\tvalidation-rmse:6.53758 \n", "[615]\tvalidation-rmse:6.53751 \n", "[616]\tvalidation-rmse:6.53738 \n", "[617]\tvalidation-rmse:6.53725 \n", "[618]\tvalidation-rmse:6.53713 \n", "[619]\tvalidation-rmse:6.53700 \n", "[620]\tvalidation-rmse:6.53686 \n", "[621]\tvalidation-rmse:6.53663 \n", "[622]\tvalidation-rmse:6.53639 \n", "[623]\tvalidation-rmse:6.53622 \n", "[624]\tvalidation-rmse:6.53606 \n", "[625]\tvalidation-rmse:6.53588 \n", "[626]\tvalidation-rmse:6.53573 \n", "[627]\tvalidation-rmse:6.53555 \n", "[628]\tvalidation-rmse:6.53541 \n", "[629]\tvalidation-rmse:6.53522 \n", "[630]\tvalidation-rmse:6.53499 \n", "[631]\tvalidation-rmse:6.53486 \n", "[632]\tvalidation-rmse:6.53470 \n", "[633]\tvalidation-rmse:6.53455 \n", "[634]\tvalidation-rmse:6.53455 \n", "[635]\tvalidation-rmse:6.53443 \n", "[636]\tvalidation-rmse:6.53438 \n", "[637]\tvalidation-rmse:6.53432 \n", "[638]\tvalidation-rmse:6.53425 \n", "[639]\tvalidation-rmse:6.53396 \n", "[640]\tvalidation-rmse:6.53375 \n", "[641]\tvalidation-rmse:6.53376 \n", "[642]\tvalidation-rmse:6.53338 \n", "[643]\tvalidation-rmse:6.53333 \n", "[644]\tvalidation-rmse:6.53318 \n", "[645]\tvalidation-rmse:6.53307 \n", "[646]\tvalidation-rmse:6.53298 \n", "[647]\tvalidation-rmse:6.53282 \n", "[648]\tvalidation-rmse:6.53239 \n", "[649]\tvalidation-rmse:6.53229 \n", "[650]\tvalidation-rmse:6.53200 \n", "[651]\tvalidation-rmse:6.53193 \n", "[652]\tvalidation-rmse:6.53135 \n", "[653]\tvalidation-rmse:6.53130 \n", "[654]\tvalidation-rmse:6.53118 \n", "[655]\tvalidation-rmse:6.53115 \n", "[656]\tvalidation-rmse:6.53106 \n", "[657]\tvalidation-rmse:6.53096 \n", "[658]\tvalidation-rmse:6.53076 \n", "[659]\tvalidation-rmse:6.53068 \n", "[660]\tvalidation-rmse:6.53062 \n", "[661]\tvalidation-rmse:6.53051 \n", "[662]\tvalidation-rmse:6.53044 \n", "[663]\tvalidation-rmse:6.53032 \n", "[664]\tvalidation-rmse:6.53023 \n", "[665]\tvalidation-rmse:6.53009 \n", "[666]\tvalidation-rmse:6.53003 \n", "[667]\tvalidation-rmse:6.52977 \n", "[668]\tvalidation-rmse:6.52959 \n", "[669]\tvalidation-rmse:6.52945 \n", "[670]\tvalidation-rmse:6.52938 \n", "[671]\tvalidation-rmse:6.52921 \n", "[672]\tvalidation-rmse:6.52904 \n", "[673]\tvalidation-rmse:6.52902 \n", "[674]\tvalidation-rmse:6.52902 \n", "[675]\tvalidation-rmse:6.52903 \n", "[676]\tvalidation-rmse:6.52893 \n", "[677]\tvalidation-rmse:6.52880 \n", "[678]\tvalidation-rmse:6.52869 \n", "[679]\tvalidation-rmse:6.52828 \n", "[680]\tvalidation-rmse:6.52808 \n", "[681]\tvalidation-rmse:6.52792 \n", "[682]\tvalidation-rmse:6.52771 \n", "[683]\tvalidation-rmse:6.52753 \n", "[684]\tvalidation-rmse:6.52725 \n", "[685]\tvalidation-rmse:6.52706 \n", "[686]\tvalidation-rmse:6.52679 \n", "[687]\tvalidation-rmse:6.52667 \n", "[688]\tvalidation-rmse:6.52658 \n", "[689]\tvalidation-rmse:6.52656 \n", "[690]\tvalidation-rmse:6.52638 \n", "[691]\tvalidation-rmse:6.52634 \n", "[692]\tvalidation-rmse:6.52629 \n", "[693]\tvalidation-rmse:6.52617 \n", "[694]\tvalidation-rmse:6.52598 \n", "[695]\tvalidation-rmse:6.52570 \n", "[696]\tvalidation-rmse:6.52563 \n", "[697]\tvalidation-rmse:6.52557 \n", "[698]\tvalidation-rmse:6.52551 \n", "[699]\tvalidation-rmse:6.52539 \n", "[700]\tvalidation-rmse:6.52517 \n", "[701]\tvalidation-rmse:6.52501 \n", "[702]\tvalidation-rmse:6.52488 \n", "[703]\tvalidation-rmse:6.52462 \n", "[704]\tvalidation-rmse:6.52428 \n", "[705]\tvalidation-rmse:6.52424 \n", "[706]\tvalidation-rmse:6.52407 \n", "[707]\tvalidation-rmse:6.52387 \n", "[708]\tvalidation-rmse:6.52386 \n", "[709]\tvalidation-rmse:6.52383 \n", "[710]\tvalidation-rmse:6.52349 \n", "[711]\tvalidation-rmse:6.52327 \n", "[712]\tvalidation-rmse:6.52318 \n", "[713]\tvalidation-rmse:6.52313 \n", "[714]\tvalidation-rmse:6.52310 \n", "[715]\tvalidation-rmse:6.52298 \n", "[716]\tvalidation-rmse:6.52281 \n", "[717]\tvalidation-rmse:6.52240 \n", "[718]\tvalidation-rmse:6.52232 \n", "[719]\tvalidation-rmse:6.52213 \n", "[720]\tvalidation-rmse:6.52189 \n", "[721]\tvalidation-rmse:6.52174 \n", "[722]\tvalidation-rmse:6.52161 \n", "[723]\tvalidation-rmse:6.52148 \n", "[724]\tvalidation-rmse:6.52132 \n", "[725]\tvalidation-rmse:6.52120 \n", "[726]\tvalidation-rmse:6.52097 \n", "[727]\tvalidation-rmse:6.52080 \n", "[728]\tvalidation-rmse:6.52054 \n", "[729]\tvalidation-rmse:6.52043 \n", "[730]\tvalidation-rmse:6.52042 \n", "[731]\tvalidation-rmse:6.52020 \n", "[732]\tvalidation-rmse:6.52003 \n", "[733]\tvalidation-rmse:6.51975 \n", "[734]\tvalidation-rmse:6.51972 \n", "[735]\tvalidation-rmse:6.51952 \n", "[736]\tvalidation-rmse:6.51937 \n", "[737]\tvalidation-rmse:6.51917 \n", "[738]\tvalidation-rmse:6.51914 \n", "[739]\tvalidation-rmse:6.51899 \n", "[740]\tvalidation-rmse:6.51887 \n", "[741]\tvalidation-rmse:6.51873 \n", "[742]\tvalidation-rmse:6.51856 \n", "[743]\tvalidation-rmse:6.51835 \n", "[744]\tvalidation-rmse:6.51824 \n", "[745]\tvalidation-rmse:6.51822 \n", "[746]\tvalidation-rmse:6.51820 \n", "[747]\tvalidation-rmse:6.51812 \n", "[748]\tvalidation-rmse:6.51801 \n", "[749]\tvalidation-rmse:6.51804 \n", "[750]\tvalidation-rmse:6.51783 \n", "[751]\tvalidation-rmse:6.51781 \n", "[752]\tvalidation-rmse:6.51777 \n", "[753]\tvalidation-rmse:6.51763 \n", "[754]\tvalidation-rmse:6.51755 \n", "[755]\tvalidation-rmse:6.51751 \n", "[756]\tvalidation-rmse:6.51735 \n", "[757]\tvalidation-rmse:6.51720 \n", "[758]\tvalidation-rmse:6.51716 \n", "[759]\tvalidation-rmse:6.51705 \n", "[760]\tvalidation-rmse:6.51686 \n", "[761]\tvalidation-rmse:6.51670 \n", "[762]\tvalidation-rmse:6.51657 \n", "[763]\tvalidation-rmse:6.51635 \n", "[764]\tvalidation-rmse:6.51619 \n", "[765]\tvalidation-rmse:6.51600 \n", "[766]\tvalidation-rmse:6.51582 \n", "[767]\tvalidation-rmse:6.51553 \n", "[768]\tvalidation-rmse:6.51532 \n", "[769]\tvalidation-rmse:6.51520 \n", "[770]\tvalidation-rmse:6.51502 \n", "[771]\tvalidation-rmse:6.51482 \n", "[772]\tvalidation-rmse:6.51458 \n", "[773]\tvalidation-rmse:6.51442 \n", "[774]\tvalidation-rmse:6.51422 \n", "[775]\tvalidation-rmse:6.51416 \n", "[776]\tvalidation-rmse:6.51401 \n", "[777]\tvalidation-rmse:6.51393 \n", "[778]\tvalidation-rmse:6.51389 \n", "[779]\tvalidation-rmse:6.51386 \n", "[780]\tvalidation-rmse:6.51381 \n", "[781]\tvalidation-rmse:6.51371 \n", "[782]\tvalidation-rmse:6.51348 \n", "[783]\tvalidation-rmse:6.51334 \n", "[784]\tvalidation-rmse:6.51315 \n", "[785]\tvalidation-rmse:6.51302 \n", "[786]\tvalidation-rmse:6.51291 \n", "[787]\tvalidation-rmse:6.51281 \n", "[788]\tvalidation-rmse:6.51268 \n", "[789]\tvalidation-rmse:6.51258 \n", "[790]\tvalidation-rmse:6.51239 \n", "[791]\tvalidation-rmse:6.51230 \n", "[792]\tvalidation-rmse:6.51209 \n", "[793]\tvalidation-rmse:6.51194 \n", "[794]\tvalidation-rmse:6.51192 \n", "[795]\tvalidation-rmse:6.51172 \n", "[796]\tvalidation-rmse:6.51133 \n", "[797]\tvalidation-rmse:6.51119 \n", "[798]\tvalidation-rmse:6.51111 \n", "[799]\tvalidation-rmse:6.51099 \n", "[800]\tvalidation-rmse:6.51094 \n", "[801]\tvalidation-rmse:6.51080 \n", "[802]\tvalidation-rmse:6.51063 \n", "[803]\tvalidation-rmse:6.51053 \n", "[804]\tvalidation-rmse:6.51040 \n", "[805]\tvalidation-rmse:6.51007 \n", "[806]\tvalidation-rmse:6.50995 \n", "[807]\tvalidation-rmse:6.50982 \n", "[808]\tvalidation-rmse:6.50973 \n", "[809]\tvalidation-rmse:6.50962 \n", "[810]\tvalidation-rmse:6.50941 \n", "[811]\tvalidation-rmse:6.50930 \n", "[812]\tvalidation-rmse:6.50923 \n", "[813]\tvalidation-rmse:6.50907 \n", "[814]\tvalidation-rmse:6.50900 \n", "[815]\tvalidation-rmse:6.50890 \n", "[816]\tvalidation-rmse:6.50866 \n", "[817]\tvalidation-rmse:6.50856 \n", "[818]\tvalidation-rmse:6.50848 \n", "[819]\tvalidation-rmse:6.50841 \n", "[820]\tvalidation-rmse:6.50832 \n", "[821]\tvalidation-rmse:6.50825 \n", "[822]\tvalidation-rmse:6.50819 \n", "[823]\tvalidation-rmse:6.50804 \n", "[824]\tvalidation-rmse:6.50789 \n", "[825]\tvalidation-rmse:6.50783 \n", "[826]\tvalidation-rmse:6.50768 \n", "[827]\tvalidation-rmse:6.50762 \n", "[828]\tvalidation-rmse:6.50759 \n", "[829]\tvalidation-rmse:6.50748 \n", "[830]\tvalidation-rmse:6.50744 \n", "[831]\tvalidation-rmse:6.50731 \n", "[832]\tvalidation-rmse:6.50723 \n", "[833]\tvalidation-rmse:6.50712 \n", "[834]\tvalidation-rmse:6.50701 \n", "[835]\tvalidation-rmse:6.50675 \n", "[836]\tvalidation-rmse:6.50672 \n", "[837]\tvalidation-rmse:6.50654 \n", "[838]\tvalidation-rmse:6.50645 \n", "[839]\tvalidation-rmse:6.50632 \n", "[840]\tvalidation-rmse:6.50629 \n", "[841]\tvalidation-rmse:6.50618 \n", "[842]\tvalidation-rmse:6.50601 \n", "[843]\tvalidation-rmse:6.50597 \n", "[844]\tvalidation-rmse:6.50590 \n", "[845]\tvalidation-rmse:6.50585 \n", "[846]\tvalidation-rmse:6.50583 \n", "[847]\tvalidation-rmse:6.50581 \n", "[848]\tvalidation-rmse:6.50508 \n", "[849]\tvalidation-rmse:6.50500 \n", "[850]\tvalidation-rmse:6.50487 \n", "[851]\tvalidation-rmse:6.50481 \n", "[852]\tvalidation-rmse:6.50477 \n", "[853]\tvalidation-rmse:6.50454 \n", "[854]\tvalidation-rmse:6.50442 \n", "[855]\tvalidation-rmse:6.50436 \n", "[856]\tvalidation-rmse:6.50420 \n", "[857]\tvalidation-rmse:6.50391 \n", "[858]\tvalidation-rmse:6.50374 \n", "[859]\tvalidation-rmse:6.50372 \n", "[860]\tvalidation-rmse:6.50355 \n", "[861]\tvalidation-rmse:6.50340 \n", "[862]\tvalidation-rmse:6.50328 \n", "[863]\tvalidation-rmse:6.50325 \n", "[864]\tvalidation-rmse:6.50305 \n", "[865]\tvalidation-rmse:6.50286 \n", "[866]\tvalidation-rmse:6.50285 \n", "[867]\tvalidation-rmse:6.50276 \n", "[868]\tvalidation-rmse:6.50258 \n", "[869]\tvalidation-rmse:6.50243 \n", "[870]\tvalidation-rmse:6.50233 \n", "[871]\tvalidation-rmse:6.50227 \n", "[872]\tvalidation-rmse:6.50217 \n", "[873]\tvalidation-rmse:6.50199 \n", "[874]\tvalidation-rmse:6.50194 \n", "[875]\tvalidation-rmse:6.50190 \n", "[876]\tvalidation-rmse:6.50181 \n", "[877]\tvalidation-rmse:6.50171 \n", "[878]\tvalidation-rmse:6.50164 \n", "[879]\tvalidation-rmse:6.50147 \n", "[880]\tvalidation-rmse:6.50138 \n", "[881]\tvalidation-rmse:6.50125 \n", "[882]\tvalidation-rmse:6.50110 \n", "[883]\tvalidation-rmse:6.50093 \n", "[884]\tvalidation-rmse:6.50073 \n", "[885]\tvalidation-rmse:6.50053 \n", "[886]\tvalidation-rmse:6.50035 \n", "[887]\tvalidation-rmse:6.50041 \n", "[888]\tvalidation-rmse:6.50035 \n", "[889]\tvalidation-rmse:6.50022 \n", "[890]\tvalidation-rmse:6.50013 \n", "[891]\tvalidation-rmse:6.50010 \n", "[892]\tvalidation-rmse:6.50004 \n", "[893]\tvalidation-rmse:6.49988 \n", "[894]\tvalidation-rmse:6.49991 \n", "[895]\tvalidation-rmse:6.49960 \n", "[896]\tvalidation-rmse:6.49941 \n", "[897]\tvalidation-rmse:6.49918 \n", "[898]\tvalidation-rmse:6.49907 \n", "[899]\tvalidation-rmse:6.49909 \n", "[900]\tvalidation-rmse:6.49902 \n", "[901]\tvalidation-rmse:6.49888 \n", "[902]\tvalidation-rmse:6.49867 \n", "[903]\tvalidation-rmse:6.49863 \n", "[904]\tvalidation-rmse:6.49841 \n", "[905]\tvalidation-rmse:6.49831 \n", "[906]\tvalidation-rmse:6.49802 \n", "[907]\tvalidation-rmse:6.49790 \n", "[908]\tvalidation-rmse:6.49774 \n", "[909]\tvalidation-rmse:6.49765 \n", "[910]\tvalidation-rmse:6.49748 \n", "[911]\tvalidation-rmse:6.49735 \n", "[912]\tvalidation-rmse:6.49717 \n", "[913]\tvalidation-rmse:6.49709 \n", "[914]\tvalidation-rmse:6.49701 \n", "[915]\tvalidation-rmse:6.49690 \n", "[916]\tvalidation-rmse:6.49670 \n", "[917]\tvalidation-rmse:6.49657 \n", "[918]\tvalidation-rmse:6.49647 \n", "[919]\tvalidation-rmse:6.49641 \n", "[920]\tvalidation-rmse:6.49639 \n", "[921]\tvalidation-rmse:6.49638 \n", "[922]\tvalidation-rmse:6.49630 \n", "[923]\tvalidation-rmse:6.49621 \n", "[924]\tvalidation-rmse:6.49604 \n", "[925]\tvalidation-rmse:6.49593 \n", "[926]\tvalidation-rmse:6.49582 \n", "[927]\tvalidation-rmse:6.49571 \n", "[928]\tvalidation-rmse:6.49546 \n", "[929]\tvalidation-rmse:6.49537 \n", "[930]\tvalidation-rmse:6.49527 \n", "[931]\tvalidation-rmse:6.49519 \n", "[932]\tvalidation-rmse:6.49524 \n", "[933]\tvalidation-rmse:6.49513 \n", "[934]\tvalidation-rmse:6.49508 \n", "[935]\tvalidation-rmse:6.49505 \n", "[936]\tvalidation-rmse:6.49497 \n", "[937]\tvalidation-rmse:6.49487 \n", "[938]\tvalidation-rmse:6.49468 \n", "[939]\tvalidation-rmse:6.49464 \n", "[940]\tvalidation-rmse:6.49454 \n", "[941]\tvalidation-rmse:6.49445 \n", "[942]\tvalidation-rmse:6.49434 \n", "[943]\tvalidation-rmse:6.49420 \n", "[944]\tvalidation-rmse:6.49411 \n", "[945]\tvalidation-rmse:6.49399 \n", "[946]\tvalidation-rmse:6.49390 \n", "[947]\tvalidation-rmse:6.49377 \n", "[948]\tvalidation-rmse:6.49365 \n", "[949]\tvalidation-rmse:6.49347 \n", "[950]\tvalidation-rmse:6.49340 \n", "[951]\tvalidation-rmse:6.49331 \n", "[952]\tvalidation-rmse:6.49314 \n", "[953]\tvalidation-rmse:6.49303 \n", "[954]\tvalidation-rmse:6.49281 \n", "[955]\tvalidation-rmse:6.49266 \n", "[956]\tvalidation-rmse:6.49252 \n", "[957]\tvalidation-rmse:6.49235 \n", "[958]\tvalidation-rmse:6.49222 \n", "[959]\tvalidation-rmse:6.49214 \n", "[960]\tvalidation-rmse:6.49208 \n", "[961]\tvalidation-rmse:6.49196 \n", "[962]\tvalidation-rmse:6.49180 \n", "[963]\tvalidation-rmse:6.49167 \n", "[964]\tvalidation-rmse:6.49160 \n", "[965]\tvalidation-rmse:6.49153 \n", "[966]\tvalidation-rmse:6.49134 \n", "[967]\tvalidation-rmse:6.49120 \n", "[968]\tvalidation-rmse:6.49117 \n", "[969]\tvalidation-rmse:6.49101 \n", "[970]\tvalidation-rmse:6.49092 \n", "[971]\tvalidation-rmse:6.49041 \n", "[972]\tvalidation-rmse:6.49033 \n", "[973]\tvalidation-rmse:6.49021 \n", "[974]\tvalidation-rmse:6.49010 \n", "[975]\tvalidation-rmse:6.49002 \n", "[976]\tvalidation-rmse:6.48994 \n", "[977]\tvalidation-rmse:6.48975 \n", "[978]\tvalidation-rmse:6.48962 \n", "[979]\tvalidation-rmse:6.48947 \n", "[980]\tvalidation-rmse:6.48935 \n", "[981]\tvalidation-rmse:6.48925 \n", "[982]\tvalidation-rmse:6.48917 \n", "[983]\tvalidation-rmse:6.48903 \n", "[984]\tvalidation-rmse:6.48886 \n", "[985]\tvalidation-rmse:6.48880 \n", "[986]\tvalidation-rmse:6.48870 \n", "[987]\tvalidation-rmse:6.48861 \n", "[988]\tvalidation-rmse:6.48841 \n", "[989]\tvalidation-rmse:6.48828 \n", "[990]\tvalidation-rmse:6.48829 \n", "[991]\tvalidation-rmse:6.48831 \n", "[992]\tvalidation-rmse:6.48823 \n", "[993]\tvalidation-rmse:6.48819 \n", "[994]\tvalidation-rmse:6.48802 \n", "[995]\tvalidation-rmse:6.48787 \n", "[996]\tvalidation-rmse:6.48770 \n", "[997]\tvalidation-rmse:6.48762 \n", "[998]\tvalidation-rmse:6.48755 \n", "[999]\tvalidation-rmse:6.48747 \n", "[12:43:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.27313 \n", "[1]\tvalidation-rmse:19.40488 \n", "[2]\tvalidation-rmse:18.58579 \n", "[3]\tvalidation-rmse:17.81300 \n", "[4]\tvalidation-rmse:17.08508 \n", "[5]\tvalidation-rmse:16.39874 \n", "[6]\tvalidation-rmse:15.75340 \n", "[7]\tvalidation-rmse:15.14597 \n", "[8]\tvalidation-rmse:14.57482 \n", "[9]\tvalidation-rmse:14.03799 \n", "[10]\tvalidation-rmse:13.53397 \n", "[11]\tvalidation-rmse:13.06106 \n", "[12]\tvalidation-rmse:12.61785 \n", "[13]\tvalidation-rmse:12.20171 \n", "[14]\tvalidation-rmse:11.81171 \n", "[15]\tvalidation-rmse:11.44796 \n", "[16]\tvalidation-rmse:11.10688 \n", "[17]\tvalidation-rmse:10.78859 \n", "[18]\tvalidation-rmse:10.49088 \n", "[19]\tvalidation-rmse:10.21358 \n", "[20]\tvalidation-rmse:9.95521 \n", "[21]\tvalidation-rmse:9.71441 \n", "[22]\tvalidation-rmse:9.49008 \n", "[23]\tvalidation-rmse:9.28111 \n", "[24]\tvalidation-rmse:9.08703 \n", "[25]\tvalidation-rmse:8.90693 \n", "[26]\tvalidation-rmse:8.73977 \n", "[27]\tvalidation-rmse:8.58459 \n", "[28]\tvalidation-rmse:8.44067 \n", "[29]\tvalidation-rmse:8.30663 \n", "[30]\tvalidation-rmse:8.18223 \n", "[31]\tvalidation-rmse:8.06671 \n", "[32]\tvalidation-rmse:7.95996 \n", "[33]\tvalidation-rmse:7.86115 \n", "[34]\tvalidation-rmse:7.77032 \n", "[35]\tvalidation-rmse:7.68531 \n", "[36]\tvalidation-rmse:7.60676 \n", "[37]\tvalidation-rmse:7.53416 \n", "[38]\tvalidation-rmse:7.46729 \n", "[39]\tvalidation-rmse:7.40431 \n", "[40]\tvalidation-rmse:7.34677 \n", "[41]\tvalidation-rmse:7.29297 \n", "[42]\tvalidation-rmse:7.24322 \n", "[43]\tvalidation-rmse:7.19723 \n", "[44]\tvalidation-rmse:7.15458 \n", "[45]\tvalidation-rmse:7.11451 \n", "[46]\tvalidation-rmse:7.07804 \n", "[47]\tvalidation-rmse:7.04397 \n", "[48]\tvalidation-rmse:7.01157 \n", "[49]\tvalidation-rmse:6.98199 \n", "[50]\tvalidation-rmse:6.95366 \n", "[51]\tvalidation-rmse:6.92777 \n", "[52]\tvalidation-rmse:6.90384 \n", "[53]\tvalidation-rmse:6.88167 \n", "[54]\tvalidation-rmse:6.86027 \n", "[55]\tvalidation-rmse:6.84091 \n", "[56]\tvalidation-rmse:6.82232 \n", "[57]\tvalidation-rmse:6.80544 \n", "[58]\tvalidation-rmse:6.78930 \n", "[59]\tvalidation-rmse:6.77421 \n", "[60]\tvalidation-rmse:6.75970 \n", "[61]\tvalidation-rmse:6.74608 \n", "[62]\tvalidation-rmse:6.73401 \n", "[63]\tvalidation-rmse:6.72255 \n", "[64]\tvalidation-rmse:6.71129 \n", "[65]\tvalidation-rmse:6.70158 \n", "[66]\tvalidation-rmse:6.69182 \n", "[67]\tvalidation-rmse:6.68281 \n", "[68]\tvalidation-rmse:6.67454 \n", "[69]\tvalidation-rmse:6.66647 \n", "[70]\tvalidation-rmse:6.65853 \n", "[71]\tvalidation-rmse:6.65072 \n", "[72]\tvalidation-rmse:6.64353 \n", "[73]\tvalidation-rmse:6.63674 \n", "[74]\tvalidation-rmse:6.63026 \n", "[75]\tvalidation-rmse:6.62423 \n", "[76]\tvalidation-rmse:6.61879 \n", "[77]\tvalidation-rmse:6.61336 \n", "[78]\tvalidation-rmse:6.60815 \n", "[79]\tvalidation-rmse:6.60338 \n", "[80]\tvalidation-rmse:6.59918 \n", "[81]\tvalidation-rmse:6.59456 \n", "[82]\tvalidation-rmse:6.59046 \n", "[83]\tvalidation-rmse:6.58644 \n", "[84]\tvalidation-rmse:6.58273 \n", "[85]\tvalidation-rmse:6.57921 \n", "[86]\tvalidation-rmse:6.57579 \n", "[87]\tvalidation-rmse:6.57248 \n", "[88]\tvalidation-rmse:6.56937 \n", "[89]\tvalidation-rmse:6.56641 \n", "[90]\tvalidation-rmse:6.56376 \n", "[91]\tvalidation-rmse:6.56128 \n", "[92]\tvalidation-rmse:6.55883 \n", "[93]\tvalidation-rmse:6.55666 \n", "[94]\tvalidation-rmse:6.55437 \n", "[95]\tvalidation-rmse:6.55228 \n", "[96]\tvalidation-rmse:6.55027 \n", "[97]\tvalidation-rmse:6.54810 \n", "[98]\tvalidation-rmse:6.54616 \n", "[99]\tvalidation-rmse:6.54451 \n", "[100]\tvalidation-rmse:6.54269 \n", "[101]\tvalidation-rmse:6.54116 \n", "[102]\tvalidation-rmse:6.53953 \n", "[103]\tvalidation-rmse:6.53797 \n", "[104]\tvalidation-rmse:6.53656 \n", "[105]\tvalidation-rmse:6.53510 \n", "[106]\tvalidation-rmse:6.53382 \n", "[107]\tvalidation-rmse:6.53265 \n", "[108]\tvalidation-rmse:6.53170 \n", "[109]\tvalidation-rmse:6.53066 \n", "[110]\tvalidation-rmse:6.52976 \n", "[111]\tvalidation-rmse:6.52863 \n", "[112]\tvalidation-rmse:6.52781 \n", "[113]\tvalidation-rmse:6.52683 \n", "[114]\tvalidation-rmse:6.52589 \n", "[115]\tvalidation-rmse:6.52488 \n", "[116]\tvalidation-rmse:6.52406 \n", "[117]\tvalidation-rmse:6.52320 \n", "[118]\tvalidation-rmse:6.52248 \n", "[119]\tvalidation-rmse:6.52141 \n", "[120]\tvalidation-rmse:6.52075 \n", "[121]\tvalidation-rmse:6.51978 \n", "[122]\tvalidation-rmse:6.51897 \n", "[123]\tvalidation-rmse:6.51833 \n", "[124]\tvalidation-rmse:6.51764 \n", "[125]\tvalidation-rmse:6.51713 \n", "[126]\tvalidation-rmse:6.51655 \n", "[127]\tvalidation-rmse:6.51592 \n", "[128]\tvalidation-rmse:6.51506 \n", "[129]\tvalidation-rmse:6.51433 \n", "[130]\tvalidation-rmse:6.51366 \n", "[131]\tvalidation-rmse:6.51305 \n", "[132]\tvalidation-rmse:6.51248 \n", "[133]\tvalidation-rmse:6.51195 \n", "[134]\tvalidation-rmse:6.51126 \n", "[135]\tvalidation-rmse:6.51092 \n", "[136]\tvalidation-rmse:6.51036 \n", "[137]\tvalidation-rmse:6.50985 \n", "[138]\tvalidation-rmse:6.50941 \n", "[139]\tvalidation-rmse:6.50896 \n", "[140]\tvalidation-rmse:6.50838 \n", "[141]\tvalidation-rmse:6.50789 \n", "[142]\tvalidation-rmse:6.50729 \n", "[143]\tvalidation-rmse:6.50691 \n", "[144]\tvalidation-rmse:6.50656 \n", "[145]\tvalidation-rmse:6.50611 \n", "[146]\tvalidation-rmse:6.50582 \n", "[147]\tvalidation-rmse:6.50542 \n", "[148]\tvalidation-rmse:6.50508 \n", "[149]\tvalidation-rmse:6.50461 \n", "[150]\tvalidation-rmse:6.50420 \n", "[151]\tvalidation-rmse:6.50383 \n", "[152]\tvalidation-rmse:6.50354 \n", "[153]\tvalidation-rmse:6.50299 \n", "[154]\tvalidation-rmse:6.50250 \n", "[155]\tvalidation-rmse:6.50203 \n", "[156]\tvalidation-rmse:6.50165 \n", "[157]\tvalidation-rmse:6.50136 \n", "[158]\tvalidation-rmse:6.50095 \n", "[159]\tvalidation-rmse:6.50073 \n", "[160]\tvalidation-rmse:6.50039 \n", "[161]\tvalidation-rmse:6.50019 \n", "[162]\tvalidation-rmse:6.49986 \n", "[163]\tvalidation-rmse:6.49960 \n", "[164]\tvalidation-rmse:6.49921 \n", "[165]\tvalidation-rmse:6.49891 \n", "[166]\tvalidation-rmse:6.49851 \n", "[167]\tvalidation-rmse:6.49807 \n", "[168]\tvalidation-rmse:6.49771 \n", "[169]\tvalidation-rmse:6.49747 \n", "[170]\tvalidation-rmse:6.49733 \n", "[171]\tvalidation-rmse:6.49694 \n", "[172]\tvalidation-rmse:6.49669 \n", "[173]\tvalidation-rmse:6.49638 \n", "[174]\tvalidation-rmse:6.49622 \n", "[175]\tvalidation-rmse:6.49594 \n", "[176]\tvalidation-rmse:6.49575 \n", "[177]\tvalidation-rmse:6.49540 \n", "[178]\tvalidation-rmse:6.49513 \n", "[179]\tvalidation-rmse:6.49487 \n", "[180]\tvalidation-rmse:6.49466 \n", "[181]\tvalidation-rmse:6.49427 \n", "[182]\tvalidation-rmse:6.49389 \n", "[183]\tvalidation-rmse:6.49367 \n", "[184]\tvalidation-rmse:6.49335 \n", "[185]\tvalidation-rmse:6.49294 \n", "[186]\tvalidation-rmse:6.49278 \n", "[187]\tvalidation-rmse:6.49264 \n", "[188]\tvalidation-rmse:6.49246 \n", "[189]\tvalidation-rmse:6.49212 \n", "[190]\tvalidation-rmse:6.49198 \n", "[191]\tvalidation-rmse:6.49174 \n", "[192]\tvalidation-rmse:6.49156 \n", "[193]\tvalidation-rmse:6.49122 \n", "[194]\tvalidation-rmse:6.49094 \n", "[195]\tvalidation-rmse:6.49064 \n", "[196]\tvalidation-rmse:6.49044 \n", "[197]\tvalidation-rmse:6.49024 \n", "[198]\tvalidation-rmse:6.48995 \n", "[199]\tvalidation-rmse:6.48977 \n", "[200]\tvalidation-rmse:6.48962 \n", "[201]\tvalidation-rmse:6.48930 \n", "[202]\tvalidation-rmse:6.48913 \n", "[203]\tvalidation-rmse:6.48886 \n", "[204]\tvalidation-rmse:6.48874 \n", "[205]\tvalidation-rmse:6.48856 \n", "[206]\tvalidation-rmse:6.48845 \n", "[207]\tvalidation-rmse:6.48830 \n", "[208]\tvalidation-rmse:6.48804 \n", "[209]\tvalidation-rmse:6.48781 \n", "[210]\tvalidation-rmse:6.48761 \n", "[211]\tvalidation-rmse:6.48741 \n", "[212]\tvalidation-rmse:6.48725 \n", "[213]\tvalidation-rmse:6.48698 \n", "[214]\tvalidation-rmse:6.48679 \n", "[215]\tvalidation-rmse:6.48649 \n", "[216]\tvalidation-rmse:6.48629 \n", "[217]\tvalidation-rmse:6.48613 \n", "[218]\tvalidation-rmse:6.48591 \n", "[219]\tvalidation-rmse:6.48569 \n", "[220]\tvalidation-rmse:6.48529 \n", "[221]\tvalidation-rmse:6.48508 \n", "[222]\tvalidation-rmse:6.48496 \n", "[223]\tvalidation-rmse:6.48485 \n", "[224]\tvalidation-rmse:6.48461 \n", "[225]\tvalidation-rmse:6.48450 \n", "[226]\tvalidation-rmse:6.48428 \n", "[227]\tvalidation-rmse:6.48418 \n", "[228]\tvalidation-rmse:6.48402 \n", "[229]\tvalidation-rmse:6.48382 \n", "[230]\tvalidation-rmse:6.48368 \n", "[231]\tvalidation-rmse:6.48353 \n", "[232]\tvalidation-rmse:6.48347 \n", "[233]\tvalidation-rmse:6.48329 \n", "[234]\tvalidation-rmse:6.48306 \n", "[235]\tvalidation-rmse:6.48290 \n", "[236]\tvalidation-rmse:6.48255 \n", "[237]\tvalidation-rmse:6.48241 \n", "[238]\tvalidation-rmse:6.48222 \n", "[239]\tvalidation-rmse:6.48204 \n", "[240]\tvalidation-rmse:6.48186 \n", "[241]\tvalidation-rmse:6.48172 \n", "[242]\tvalidation-rmse:6.48162 \n", "[243]\tvalidation-rmse:6.48144 \n", "[244]\tvalidation-rmse:6.48136 \n", "[245]\tvalidation-rmse:6.48113 \n", "[246]\tvalidation-rmse:6.48105 \n", "[247]\tvalidation-rmse:6.48086 \n", "[248]\tvalidation-rmse:6.48070 \n", "[249]\tvalidation-rmse:6.48052 \n", "[250]\tvalidation-rmse:6.48042 \n", "[251]\tvalidation-rmse:6.48033 \n", "[252]\tvalidation-rmse:6.48021 \n", "[253]\tvalidation-rmse:6.48003 \n", "[254]\tvalidation-rmse:6.47980 \n", "[255]\tvalidation-rmse:6.47972 \n", "[256]\tvalidation-rmse:6.47959 \n", "[257]\tvalidation-rmse:6.47933 \n", "[258]\tvalidation-rmse:6.47921 \n", "[259]\tvalidation-rmse:6.47888 \n", "[260]\tvalidation-rmse:6.47872 \n", "[261]\tvalidation-rmse:6.47852 \n", "[262]\tvalidation-rmse:6.47812 \n", "[263]\tvalidation-rmse:6.47802 \n", "[264]\tvalidation-rmse:6.47789 \n", "[265]\tvalidation-rmse:6.47775 \n", "[266]\tvalidation-rmse:6.47755 \n", "[267]\tvalidation-rmse:6.47745 \n", "[268]\tvalidation-rmse:6.47741 \n", "[269]\tvalidation-rmse:6.47711 \n", "[270]\tvalidation-rmse:6.47697 \n", "[271]\tvalidation-rmse:6.47684 \n", "[272]\tvalidation-rmse:6.47675 \n", "[273]\tvalidation-rmse:6.47663 \n", "[274]\tvalidation-rmse:6.47644 \n", "[275]\tvalidation-rmse:6.47637 \n", "[276]\tvalidation-rmse:6.47632 \n", "[277]\tvalidation-rmse:6.47620 \n", "[278]\tvalidation-rmse:6.47603 \n", "[279]\tvalidation-rmse:6.47588 \n", "[280]\tvalidation-rmse:6.47576 \n", "[281]\tvalidation-rmse:6.47559 \n", "[282]\tvalidation-rmse:6.47532 \n", "[283]\tvalidation-rmse:6.47510 \n", "[284]\tvalidation-rmse:6.47480 \n", "[285]\tvalidation-rmse:6.47460 \n", "[286]\tvalidation-rmse:6.47445 \n", "[287]\tvalidation-rmse:6.47422 \n", "[288]\tvalidation-rmse:6.47420 \n", "[289]\tvalidation-rmse:6.47402 \n", "[290]\tvalidation-rmse:6.47395 \n", "[291]\tvalidation-rmse:6.47385 \n", "[292]\tvalidation-rmse:6.47373 \n", "[293]\tvalidation-rmse:6.47362 \n", "[294]\tvalidation-rmse:6.47339 \n", "[295]\tvalidation-rmse:6.47327 \n", "[296]\tvalidation-rmse:6.47318 \n", "[297]\tvalidation-rmse:6.47307 \n", "[298]\tvalidation-rmse:6.47287 \n", "[299]\tvalidation-rmse:6.47277 \n", "[300]\tvalidation-rmse:6.47268 \n", "[301]\tvalidation-rmse:6.47248 \n", "[302]\tvalidation-rmse:6.47239 \n", "[303]\tvalidation-rmse:6.47234 \n", "[304]\tvalidation-rmse:6.47212 \n", "[305]\tvalidation-rmse:6.47193 \n", "[306]\tvalidation-rmse:6.47169 \n", "[307]\tvalidation-rmse:6.47159 \n", "[308]\tvalidation-rmse:6.47137 \n", "[309]\tvalidation-rmse:6.47118 \n", "[310]\tvalidation-rmse:6.47108 \n", "[311]\tvalidation-rmse:6.47094 \n", "[312]\tvalidation-rmse:6.47094 \n", "[313]\tvalidation-rmse:6.47074 \n", "[314]\tvalidation-rmse:6.47062 \n", "[315]\tvalidation-rmse:6.47044 \n", "[316]\tvalidation-rmse:6.47042 \n", "[317]\tvalidation-rmse:6.47034 \n", "[318]\tvalidation-rmse:6.47022 \n", "[319]\tvalidation-rmse:6.47005 \n", "[320]\tvalidation-rmse:6.46983 \n", "[321]\tvalidation-rmse:6.46975 \n", "[322]\tvalidation-rmse:6.46964 \n", "[323]\tvalidation-rmse:6.46953 \n", "[324]\tvalidation-rmse:6.46940 \n", "[325]\tvalidation-rmse:6.46924 \n", "[326]\tvalidation-rmse:6.46914 \n", "[327]\tvalidation-rmse:6.46909 \n", "[328]\tvalidation-rmse:6.46902 \n", "[329]\tvalidation-rmse:6.46889 \n", "[330]\tvalidation-rmse:6.46882 \n", "[331]\tvalidation-rmse:6.46874 \n", "[332]\tvalidation-rmse:6.46865 \n", "[333]\tvalidation-rmse:6.46852 \n", "[334]\tvalidation-rmse:6.46836 \n", "[335]\tvalidation-rmse:6.46803 \n", "[336]\tvalidation-rmse:6.46790 \n", "[337]\tvalidation-rmse:6.46787 \n", "[338]\tvalidation-rmse:6.46772 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46759 \n", "[341]\tvalidation-rmse:6.46752 \n", "[342]\tvalidation-rmse:6.46742 \n", "[343]\tvalidation-rmse:6.46726 \n", "[344]\tvalidation-rmse:6.46713 \n", "[345]\tvalidation-rmse:6.46705 \n", "[346]\tvalidation-rmse:6.46688 \n", "[347]\tvalidation-rmse:6.46676 \n", "[348]\tvalidation-rmse:6.46667 \n", "[349]\tvalidation-rmse:6.46652 \n", "[350]\tvalidation-rmse:6.46642 \n", "[351]\tvalidation-rmse:6.46638 \n", "[352]\tvalidation-rmse:6.46624 \n", "[353]\tvalidation-rmse:6.46611 \n", "[354]\tvalidation-rmse:6.46604 \n", "[355]\tvalidation-rmse:6.46594 \n", "[356]\tvalidation-rmse:6.46594 \n", "[357]\tvalidation-rmse:6.46589 \n", "[358]\tvalidation-rmse:6.46585 \n", "[359]\tvalidation-rmse:6.46580 \n", "[360]\tvalidation-rmse:6.46569 \n", "[361]\tvalidation-rmse:6.46565 \n", "[362]\tvalidation-rmse:6.46557 \n", "[363]\tvalidation-rmse:6.46543 \n", "[364]\tvalidation-rmse:6.46524 \n", "[365]\tvalidation-rmse:6.46503 \n", "[366]\tvalidation-rmse:6.46491 \n", "[367]\tvalidation-rmse:6.46487 \n", "[368]\tvalidation-rmse:6.46480 \n", "[369]\tvalidation-rmse:6.46468 \n", "[370]\tvalidation-rmse:6.46457 \n", "[371]\tvalidation-rmse:6.46442 \n", "[372]\tvalidation-rmse:6.46434 \n", "[373]\tvalidation-rmse:6.46428 \n", "[374]\tvalidation-rmse:6.46422 \n", "[375]\tvalidation-rmse:6.46412 \n", "[376]\tvalidation-rmse:6.46402 \n", "[377]\tvalidation-rmse:6.46392 \n", "[378]\tvalidation-rmse:6.46373 \n", "[379]\tvalidation-rmse:6.46364 \n", "[380]\tvalidation-rmse:6.46350 \n", "[381]\tvalidation-rmse:6.46332 \n", "[382]\tvalidation-rmse:6.46329 \n", "[383]\tvalidation-rmse:6.46316 \n", "[384]\tvalidation-rmse:6.46303 \n", "[385]\tvalidation-rmse:6.46295 \n", "[386]\tvalidation-rmse:6.46279 \n", "[387]\tvalidation-rmse:6.46271 \n", "[388]\tvalidation-rmse:6.46265 \n", "[389]\tvalidation-rmse:6.46260 \n", "[390]\tvalidation-rmse:6.46254 \n", "[391]\tvalidation-rmse:6.46247 \n", "[392]\tvalidation-rmse:6.46239 \n", "[393]\tvalidation-rmse:6.46234 \n", "[394]\tvalidation-rmse:6.46224 \n", "[395]\tvalidation-rmse:6.46217 \n", "[396]\tvalidation-rmse:6.46193 \n", "[397]\tvalidation-rmse:6.46186 \n", "[398]\tvalidation-rmse:6.46179 \n", "[399]\tvalidation-rmse:6.46168 \n", "[400]\tvalidation-rmse:6.46160 \n", "[401]\tvalidation-rmse:6.46145 \n", "[402]\tvalidation-rmse:6.46129 \n", "[403]\tvalidation-rmse:6.46123 \n", "[404]\tvalidation-rmse:6.46127 \n", "[405]\tvalidation-rmse:6.46117 \n", "[406]\tvalidation-rmse:6.46119 \n", "[407]\tvalidation-rmse:6.46110 \n", "[408]\tvalidation-rmse:6.46102 \n", "[409]\tvalidation-rmse:6.46097 \n", "[410]\tvalidation-rmse:6.46080 \n", "[411]\tvalidation-rmse:6.46076 \n", "[412]\tvalidation-rmse:6.46070 \n", "[413]\tvalidation-rmse:6.46046 \n", "[414]\tvalidation-rmse:6.46039 \n", "[415]\tvalidation-rmse:6.46031 \n", "[416]\tvalidation-rmse:6.46027 \n", "[417]\tvalidation-rmse:6.46013 \n", "[418]\tvalidation-rmse:6.46007 \n", "[419]\tvalidation-rmse:6.46001 \n", "[420]\tvalidation-rmse:6.45993 \n", "[421]\tvalidation-rmse:6.45985 \n", "[422]\tvalidation-rmse:6.45971 \n", "[423]\tvalidation-rmse:6.45970 \n", "[424]\tvalidation-rmse:6.45961 \n", "[425]\tvalidation-rmse:6.45950 \n", "[426]\tvalidation-rmse:6.45946 \n", "[427]\tvalidation-rmse:6.45939 \n", "[428]\tvalidation-rmse:6.45940 \n", "[429]\tvalidation-rmse:6.45938 \n", "[430]\tvalidation-rmse:6.45931 \n", "[431]\tvalidation-rmse:6.45930 \n", "[432]\tvalidation-rmse:6.45931 \n", "[433]\tvalidation-rmse:6.45923 \n", "[434]\tvalidation-rmse:6.45914 \n", "[435]\tvalidation-rmse:6.45905 \n", "[436]\tvalidation-rmse:6.45895 \n", "[437]\tvalidation-rmse:6.45893 \n", "[438]\tvalidation-rmse:6.45874 \n", "[439]\tvalidation-rmse:6.45868 \n", "[440]\tvalidation-rmse:6.45859 \n", "[441]\tvalidation-rmse:6.45857 \n", "[442]\tvalidation-rmse:6.45838 \n", "[443]\tvalidation-rmse:6.45827 \n", "[444]\tvalidation-rmse:6.45808 \n", "[445]\tvalidation-rmse:6.45797 \n", "[446]\tvalidation-rmse:6.45793 \n", "[447]\tvalidation-rmse:6.45783 \n", "[448]\tvalidation-rmse:6.45778 \n", "[449]\tvalidation-rmse:6.45765 \n", "[450]\tvalidation-rmse:6.45754 \n", "[451]\tvalidation-rmse:6.45753 \n", "[452]\tvalidation-rmse:6.45742 \n", "[453]\tvalidation-rmse:6.45733 \n", "[454]\tvalidation-rmse:6.45719 \n", "[455]\tvalidation-rmse:6.45698 \n", "[456]\tvalidation-rmse:6.45694 \n", "[457]\tvalidation-rmse:6.45692 \n", "[458]\tvalidation-rmse:6.45681 \n", "[459]\tvalidation-rmse:6.45673 \n", "[460]\tvalidation-rmse:6.45667 \n", "[461]\tvalidation-rmse:6.45668 \n", "[462]\tvalidation-rmse:6.45664 \n", "[463]\tvalidation-rmse:6.45659 \n", "[464]\tvalidation-rmse:6.45661 \n", "[465]\tvalidation-rmse:6.45657 \n", "[466]\tvalidation-rmse:6.45642 \n", "[467]\tvalidation-rmse:6.45642 \n", "[468]\tvalidation-rmse:6.45645 \n", "[469]\tvalidation-rmse:6.45641 \n", "[470]\tvalidation-rmse:6.45631 \n", "[471]\tvalidation-rmse:6.45632 \n", "[472]\tvalidation-rmse:6.45625 \n", "[473]\tvalidation-rmse:6.45620 \n", "[474]\tvalidation-rmse:6.45619 \n", "[475]\tvalidation-rmse:6.45609 \n", "[476]\tvalidation-rmse:6.45610 \n", "[477]\tvalidation-rmse:6.45604 \n", "[478]\tvalidation-rmse:6.45585 \n", "[479]\tvalidation-rmse:6.45588 \n", "[480]\tvalidation-rmse:6.45575 \n", "[481]\tvalidation-rmse:6.45562 \n", "[482]\tvalidation-rmse:6.45549 \n", "[483]\tvalidation-rmse:6.45544 \n", "[484]\tvalidation-rmse:6.45542 \n", "[485]\tvalidation-rmse:6.45536 \n", "[486]\tvalidation-rmse:6.45535 \n", "[487]\tvalidation-rmse:6.45531 \n", "[488]\tvalidation-rmse:6.45523 \n", "[489]\tvalidation-rmse:6.45518 \n", "[490]\tvalidation-rmse:6.45510 \n", "[491]\tvalidation-rmse:6.45502 \n", "[492]\tvalidation-rmse:6.45492 \n", "[493]\tvalidation-rmse:6.45486 \n", "[494]\tvalidation-rmse:6.45482 \n", "[495]\tvalidation-rmse:6.45471 \n", "[496]\tvalidation-rmse:6.45465 \n", "[497]\tvalidation-rmse:6.45453 \n", "[498]\tvalidation-rmse:6.45445 \n", "[499]\tvalidation-rmse:6.45440 \n", "[500]\tvalidation-rmse:6.45438 \n", "[501]\tvalidation-rmse:6.45431 \n", "[502]\tvalidation-rmse:6.45418 \n", "[503]\tvalidation-rmse:6.45413 \n", "[504]\tvalidation-rmse:6.45417 \n", "[505]\tvalidation-rmse:6.45418 \n", "[506]\tvalidation-rmse:6.45409 \n", "[507]\tvalidation-rmse:6.45405 \n", "[508]\tvalidation-rmse:6.45404 \n", "[509]\tvalidation-rmse:6.45406 \n", "[510]\tvalidation-rmse:6.45400 \n", "[511]\tvalidation-rmse:6.45401 \n", "[512]\tvalidation-rmse:6.45400 \n", "[513]\tvalidation-rmse:6.45396 \n", "[514]\tvalidation-rmse:6.45391 \n", "[515]\tvalidation-rmse:6.45380 \n", "[516]\tvalidation-rmse:6.45382 \n", "[517]\tvalidation-rmse:6.45370 \n", "[518]\tvalidation-rmse:6.45364 \n", "[519]\tvalidation-rmse:6.45354 \n", "[520]\tvalidation-rmse:6.45349 \n", "[521]\tvalidation-rmse:6.45335 \n", "[522]\tvalidation-rmse:6.45321 \n", "[523]\tvalidation-rmse:6.45310 \n", "[524]\tvalidation-rmse:6.45293 \n", "[525]\tvalidation-rmse:6.45288 \n", "[526]\tvalidation-rmse:6.45262 \n", "[527]\tvalidation-rmse:6.45251 \n", "[528]\tvalidation-rmse:6.45244 \n", "[529]\tvalidation-rmse:6.45242 \n", "[530]\tvalidation-rmse:6.45236 \n", "[531]\tvalidation-rmse:6.45226 \n", "[532]\tvalidation-rmse:6.45222 \n", "[533]\tvalidation-rmse:6.45222 \n", "[534]\tvalidation-rmse:6.45202 \n", "[535]\tvalidation-rmse:6.45209 \n", "[536]\tvalidation-rmse:6.45208 \n", "[537]\tvalidation-rmse:6.45205 \n", "[538]\tvalidation-rmse:6.45196 \n", "[539]\tvalidation-rmse:6.45191 \n", "[540]\tvalidation-rmse:6.45168 \n", "[541]\tvalidation-rmse:6.45168 \n", "[542]\tvalidation-rmse:6.45162 \n", "[543]\tvalidation-rmse:6.45158 \n", "[544]\tvalidation-rmse:6.45155 \n", "[545]\tvalidation-rmse:6.45152 \n", "[546]\tvalidation-rmse:6.45147 \n", "[547]\tvalidation-rmse:6.45145 \n", "[548]\tvalidation-rmse:6.45141 \n", "[549]\tvalidation-rmse:6.45139 \n", "[550]\tvalidation-rmse:6.45138 \n", "[551]\tvalidation-rmse:6.45129 \n", "[552]\tvalidation-rmse:6.45112 \n", "[553]\tvalidation-rmse:6.45109 \n", "[554]\tvalidation-rmse:6.45101 \n", "[555]\tvalidation-rmse:6.45093 \n", "[556]\tvalidation-rmse:6.45093 \n", "[557]\tvalidation-rmse:6.45080 \n", "[558]\tvalidation-rmse:6.45082 \n", "[559]\tvalidation-rmse:6.45075 \n", "[560]\tvalidation-rmse:6.45065 \n", "[561]\tvalidation-rmse:6.45040 \n", "[562]\tvalidation-rmse:6.45035 \n", "[563]\tvalidation-rmse:6.45041 \n", "[564]\tvalidation-rmse:6.45039 \n", "[565]\tvalidation-rmse:6.45029 \n", "[566]\tvalidation-rmse:6.45024 \n", "[567]\tvalidation-rmse:6.45009 \n", "[568]\tvalidation-rmse:6.45004 \n", "[569]\tvalidation-rmse:6.44982 \n", "[570]\tvalidation-rmse:6.44981 \n", "[571]\tvalidation-rmse:6.44971 \n", "[572]\tvalidation-rmse:6.44968 \n", "[573]\tvalidation-rmse:6.44969 \n", "[574]\tvalidation-rmse:6.44956 \n", "[575]\tvalidation-rmse:6.44955 \n", "[576]\tvalidation-rmse:6.44949 \n", "[577]\tvalidation-rmse:6.44941 \n", "[578]\tvalidation-rmse:6.44933 \n", "[579]\tvalidation-rmse:6.44930 \n", "[580]\tvalidation-rmse:6.44924 \n", "[581]\tvalidation-rmse:6.44920 \n", "[582]\tvalidation-rmse:6.44929 \n", "[583]\tvalidation-rmse:6.44926 \n", "[584]\tvalidation-rmse:6.44922 \n", "[585]\tvalidation-rmse:6.44918 \n", "[586]\tvalidation-rmse:6.44922 \n", "[587]\tvalidation-rmse:6.44921 \n", "[588]\tvalidation-rmse:6.44920 \n", "[589]\tvalidation-rmse:6.44909 \n", "[590]\tvalidation-rmse:6.44905 \n", "[591]\tvalidation-rmse:6.44904 \n", "[592]\tvalidation-rmse:6.44900 \n", "[593]\tvalidation-rmse:6.44894 \n", "[594]\tvalidation-rmse:6.44889 \n", "[595]\tvalidation-rmse:6.44881 \n", "[596]\tvalidation-rmse:6.44880 \n", "[597]\tvalidation-rmse:6.44877 \n", "[598]\tvalidation-rmse:6.44877 \n", "[599]\tvalidation-rmse:6.44877 \n", "[600]\tvalidation-rmse:6.44874 \n", "[601]\tvalidation-rmse:6.44870 \n", "[602]\tvalidation-rmse:6.44871 \n", "[603]\tvalidation-rmse:6.44856 \n", "[604]\tvalidation-rmse:6.44855 \n", "[605]\tvalidation-rmse:6.44855 \n", "[606]\tvalidation-rmse:6.44855 \n", "[607]\tvalidation-rmse:6.44844 \n", "[608]\tvalidation-rmse:6.44839 \n", "[609]\tvalidation-rmse:6.44841 \n", "[610]\tvalidation-rmse:6.44828 \n", "[611]\tvalidation-rmse:6.44818 \n", "[612]\tvalidation-rmse:6.44815 \n", "[613]\tvalidation-rmse:6.44818 \n", "[614]\tvalidation-rmse:6.44822 \n", "[615]\tvalidation-rmse:6.44822 \n", "[616]\tvalidation-rmse:6.44826 \n", "[617]\tvalidation-rmse:6.44822 \n", "[618]\tvalidation-rmse:6.44817 \n", "[619]\tvalidation-rmse:6.44809 \n", "[620]\tvalidation-rmse:6.44795 \n", "[621]\tvalidation-rmse:6.44787 \n", "[622]\tvalidation-rmse:6.44776 \n", "[623]\tvalidation-rmse:6.44767 \n", "[624]\tvalidation-rmse:6.44767 \n", "[625]\tvalidation-rmse:6.44771 \n", "[626]\tvalidation-rmse:6.44772 \n", "[627]\tvalidation-rmse:6.44776 \n", "[628]\tvalidation-rmse:6.44779 \n", "[629]\tvalidation-rmse:6.44775 \n", "[630]\tvalidation-rmse:6.44772 \n", "[631]\tvalidation-rmse:6.44761 \n", "[632]\tvalidation-rmse:6.44758 \n", "[633]\tvalidation-rmse:6.44759 \n", "[634]\tvalidation-rmse:6.44759 \n", "[635]\tvalidation-rmse:6.44754 \n", "[636]\tvalidation-rmse:6.44749 \n", "[637]\tvalidation-rmse:6.44740 \n", "[638]\tvalidation-rmse:6.44741 \n", "[639]\tvalidation-rmse:6.44740 \n", "[640]\tvalidation-rmse:6.44742 \n", "[641]\tvalidation-rmse:6.44747 \n", "[642]\tvalidation-rmse:6.44743 \n", "[643]\tvalidation-rmse:6.44738 \n", "[644]\tvalidation-rmse:6.44732 \n", "[645]\tvalidation-rmse:6.44729 \n", "[646]\tvalidation-rmse:6.44727 \n", "[647]\tvalidation-rmse:6.44729 \n", "[648]\tvalidation-rmse:6.44727 \n", "[649]\tvalidation-rmse:6.44727 \n", "[650]\tvalidation-rmse:6.44723 \n", "[651]\tvalidation-rmse:6.44719 \n", "[652]\tvalidation-rmse:6.44713 \n", "[653]\tvalidation-rmse:6.44709 \n", "[654]\tvalidation-rmse:6.44705 \n", "[655]\tvalidation-rmse:6.44699 \n", "[656]\tvalidation-rmse:6.44696 \n", "[657]\tvalidation-rmse:6.44684 \n", "[658]\tvalidation-rmse:6.44678 \n", "[659]\tvalidation-rmse:6.44675 \n", "[660]\tvalidation-rmse:6.44677 \n", "[661]\tvalidation-rmse:6.44670 \n", "[662]\tvalidation-rmse:6.44674 \n", "[663]\tvalidation-rmse:6.44675 \n", "[664]\tvalidation-rmse:6.44673 \n", "[665]\tvalidation-rmse:6.44668 \n", "[666]\tvalidation-rmse:6.44657 \n", "[667]\tvalidation-rmse:6.44650 \n", "[668]\tvalidation-rmse:6.44645 \n", "[669]\tvalidation-rmse:6.44632 \n", "[670]\tvalidation-rmse:6.44625 \n", "[671]\tvalidation-rmse:6.44621 \n", "[672]\tvalidation-rmse:6.44616 \n", "[673]\tvalidation-rmse:6.44607 \n", "[674]\tvalidation-rmse:6.44597 \n", "[675]\tvalidation-rmse:6.44593 \n", "[676]\tvalidation-rmse:6.44587 \n", "[677]\tvalidation-rmse:6.44572 \n", "[678]\tvalidation-rmse:6.44568 \n", "[679]\tvalidation-rmse:6.44570 \n", "[680]\tvalidation-rmse:6.44576 \n", "[681]\tvalidation-rmse:6.44583 \n", "[682]\tvalidation-rmse:6.44579 \n", "[683]\tvalidation-rmse:6.44577 \n", "[684]\tvalidation-rmse:6.44580 \n", "[685]\tvalidation-rmse:6.44580 \n", "[686]\tvalidation-rmse:6.44578 \n", "[687]\tvalidation-rmse:6.44571 \n", "[688]\tvalidation-rmse:6.44568 \n", "[689]\tvalidation-rmse:6.44560 \n", "[690]\tvalidation-rmse:6.44560 \n", "[691]\tvalidation-rmse:6.44550 \n", "[692]\tvalidation-rmse:6.44551 \n", "[693]\tvalidation-rmse:6.44550 \n", "[694]\tvalidation-rmse:6.44541 \n", "[695]\tvalidation-rmse:6.44545 \n", "[696]\tvalidation-rmse:6.44542 \n", "[697]\tvalidation-rmse:6.44538 \n", "[698]\tvalidation-rmse:6.44532 \n", "[699]\tvalidation-rmse:6.44529 \n", "[700]\tvalidation-rmse:6.44531 \n", "[701]\tvalidation-rmse:6.44526 \n", "[702]\tvalidation-rmse:6.44523 \n", "[703]\tvalidation-rmse:6.44516 \n", "[704]\tvalidation-rmse:6.44521 \n", "[705]\tvalidation-rmse:6.44521 \n", "[706]\tvalidation-rmse:6.44513 \n", "[707]\tvalidation-rmse:6.44511 \n", "[708]\tvalidation-rmse:6.44507 \n", "[709]\tvalidation-rmse:6.44502 \n", "[710]\tvalidation-rmse:6.44496 \n", "[711]\tvalidation-rmse:6.44492 \n", "[712]\tvalidation-rmse:6.44481 \n", "[713]\tvalidation-rmse:6.44489 \n", "[714]\tvalidation-rmse:6.44489 \n", "[715]\tvalidation-rmse:6.44490 \n", "[716]\tvalidation-rmse:6.44491 \n", "[717]\tvalidation-rmse:6.44490 \n", "[718]\tvalidation-rmse:6.44480 \n", "[719]\tvalidation-rmse:6.44472 \n", "[720]\tvalidation-rmse:6.44468 \n", "[721]\tvalidation-rmse:6.44465 \n", "[722]\tvalidation-rmse:6.44466 \n", "[723]\tvalidation-rmse:6.44463 \n", "[724]\tvalidation-rmse:6.44462 \n", "[725]\tvalidation-rmse:6.44465 \n", "[726]\tvalidation-rmse:6.44461 \n", "[727]\tvalidation-rmse:6.44459 \n", "[728]\tvalidation-rmse:6.44457 \n", "[729]\tvalidation-rmse:6.44453 \n", "[730]\tvalidation-rmse:6.44441 \n", "[731]\tvalidation-rmse:6.44433 \n", "[732]\tvalidation-rmse:6.44437 \n", "[733]\tvalidation-rmse:6.44435 \n", "[734]\tvalidation-rmse:6.44454 \n", "[735]\tvalidation-rmse:6.44457 \n", "[736]\tvalidation-rmse:6.44459 \n", "[737]\tvalidation-rmse:6.44461 \n", "[738]\tvalidation-rmse:6.44454 \n", "[739]\tvalidation-rmse:6.44455 \n", "[740]\tvalidation-rmse:6.44451 \n", "[741]\tvalidation-rmse:6.44453 \n", "[742]\tvalidation-rmse:6.44451 \n", "[743]\tvalidation-rmse:6.44435 \n", "[744]\tvalidation-rmse:6.44432 \n", "[745]\tvalidation-rmse:6.44433 \n", "[746]\tvalidation-rmse:6.44432 \n", "[747]\tvalidation-rmse:6.44428 \n", "[748]\tvalidation-rmse:6.44430 \n", "[749]\tvalidation-rmse:6.44428 \n", "[750]\tvalidation-rmse:6.44423 \n", "[751]\tvalidation-rmse:6.44431 \n", "[752]\tvalidation-rmse:6.44438 \n", "[753]\tvalidation-rmse:6.44440 \n", "[754]\tvalidation-rmse:6.44425 \n", "[755]\tvalidation-rmse:6.44424 \n", "[756]\tvalidation-rmse:6.44427 \n", "[757]\tvalidation-rmse:6.44426 \n", "[758]\tvalidation-rmse:6.44425 \n", "[759]\tvalidation-rmse:6.44422 \n", "[760]\tvalidation-rmse:6.44421 \n", "[761]\tvalidation-rmse:6.44419 \n", "[762]\tvalidation-rmse:6.44410 \n", "[763]\tvalidation-rmse:6.44410 \n", "[764]\tvalidation-rmse:6.44409 \n", "[765]\tvalidation-rmse:6.44410 \n", "[766]\tvalidation-rmse:6.44403 \n", "[767]\tvalidation-rmse:6.44401 \n", "[768]\tvalidation-rmse:6.44397 \n", "[769]\tvalidation-rmse:6.44390 \n", "[770]\tvalidation-rmse:6.44387 \n", "[771]\tvalidation-rmse:6.44381 \n", "[772]\tvalidation-rmse:6.44376 \n", "[773]\tvalidation-rmse:6.44372 \n", "[774]\tvalidation-rmse:6.44373 \n", "[775]\tvalidation-rmse:6.44371 \n", "[776]\tvalidation-rmse:6.44366 \n", "[777]\tvalidation-rmse:6.44364 \n", "[778]\tvalidation-rmse:6.44367 \n", "[779]\tvalidation-rmse:6.44367 \n", "[780]\tvalidation-rmse:6.44367 \n", "[781]\tvalidation-rmse:6.44370 \n", "[782]\tvalidation-rmse:6.44361 \n", "[783]\tvalidation-rmse:6.44357 \n", "[784]\tvalidation-rmse:6.44352 \n", "[785]\tvalidation-rmse:6.44347 \n", "[786]\tvalidation-rmse:6.44333 \n", "[787]\tvalidation-rmse:6.44336 \n", "[788]\tvalidation-rmse:6.44334 \n", "[789]\tvalidation-rmse:6.44332 \n", "[790]\tvalidation-rmse:6.44333 \n", "[791]\tvalidation-rmse:6.44328 \n", "[792]\tvalidation-rmse:6.44328 \n", "[793]\tvalidation-rmse:6.44323 \n", "[794]\tvalidation-rmse:6.44316 \n", "[795]\tvalidation-rmse:6.44320 \n", "[796]\tvalidation-rmse:6.44310 \n", "[797]\tvalidation-rmse:6.44306 \n", "[798]\tvalidation-rmse:6.44303 \n", "[799]\tvalidation-rmse:6.44300 \n", "[800]\tvalidation-rmse:6.44295 \n", "[801]\tvalidation-rmse:6.44301 \n", "[802]\tvalidation-rmse:6.44299 \n", "[803]\tvalidation-rmse:6.44297 \n", "[804]\tvalidation-rmse:6.44292 \n", "[805]\tvalidation-rmse:6.44291 \n", "[806]\tvalidation-rmse:6.44293 \n", "[807]\tvalidation-rmse:6.44286 \n", "[808]\tvalidation-rmse:6.44273 \n", "[809]\tvalidation-rmse:6.44278 \n", "[810]\tvalidation-rmse:6.44275 \n", "[811]\tvalidation-rmse:6.44266 \n", "[812]\tvalidation-rmse:6.44271 \n", "[813]\tvalidation-rmse:6.44274 \n", "[814]\tvalidation-rmse:6.44274 \n", "[815]\tvalidation-rmse:6.44271 \n", "[816]\tvalidation-rmse:6.44265 \n", "[817]\tvalidation-rmse:6.44263 \n", "[818]\tvalidation-rmse:6.44261 \n", "[819]\tvalidation-rmse:6.44262 \n", "[820]\tvalidation-rmse:6.44257 \n", "[821]\tvalidation-rmse:6.44257 \n", "[822]\tvalidation-rmse:6.44250 \n", "[823]\tvalidation-rmse:6.44254 \n", "[824]\tvalidation-rmse:6.44251 \n", "[825]\tvalidation-rmse:6.44257 \n", "[826]\tvalidation-rmse:6.44261 \n", "[827]\tvalidation-rmse:6.44257 \n", "[828]\tvalidation-rmse:6.44259 \n", "[829]\tvalidation-rmse:6.44255 \n", "[830]\tvalidation-rmse:6.44260 \n", "[831]\tvalidation-rmse:6.44251 \n", "[832]\tvalidation-rmse:6.44248 \n", "[833]\tvalidation-rmse:6.44249 \n", "[834]\tvalidation-rmse:6.44236 \n", "[835]\tvalidation-rmse:6.44237 \n", "[836]\tvalidation-rmse:6.44233 \n", "[837]\tvalidation-rmse:6.44231 \n", "[838]\tvalidation-rmse:6.44214 \n", "[839]\tvalidation-rmse:6.44216 \n", "[840]\tvalidation-rmse:6.44219 \n", "[841]\tvalidation-rmse:6.44215 \n", "[842]\tvalidation-rmse:6.44214 \n", "[843]\tvalidation-rmse:6.44198 \n", "[844]\tvalidation-rmse:6.44197 \n", "[845]\tvalidation-rmse:6.44197 \n", "[846]\tvalidation-rmse:6.44193 \n", "[847]\tvalidation-rmse:6.44180 \n", "[848]\tvalidation-rmse:6.44178 \n", "[849]\tvalidation-rmse:6.44183 \n", "[850]\tvalidation-rmse:6.44182 \n", "[851]\tvalidation-rmse:6.44182 \n", "[852]\tvalidation-rmse:6.44182 \n", "[853]\tvalidation-rmse:6.44183 \n", "[854]\tvalidation-rmse:6.44189 \n", "[855]\tvalidation-rmse:6.44190 \n", "[856]\tvalidation-rmse:6.44193 \n", "[857]\tvalidation-rmse:6.44189 \n", "[858]\tvalidation-rmse:6.44187 \n", "[859]\tvalidation-rmse:6.44183 \n", "[860]\tvalidation-rmse:6.44165 \n", "[861]\tvalidation-rmse:6.44161 \n", "[862]\tvalidation-rmse:6.44154 \n", "[863]\tvalidation-rmse:6.44147 \n", "[864]\tvalidation-rmse:6.44160 \n", "[865]\tvalidation-rmse:6.44163 \n", "[866]\tvalidation-rmse:6.44162 \n", "[867]\tvalidation-rmse:6.44154 \n", "[868]\tvalidation-rmse:6.44156 \n", "[869]\tvalidation-rmse:6.44174 \n", "[870]\tvalidation-rmse:6.44185 \n", "[871]\tvalidation-rmse:6.44185 \n", "[872]\tvalidation-rmse:6.44189 \n", "[873]\tvalidation-rmse:6.44188 \n", "[874]\tvalidation-rmse:6.44183 \n", "[875]\tvalidation-rmse:6.44182 \n", "[876]\tvalidation-rmse:6.44181 \n", "[877]\tvalidation-rmse:6.44172 \n", "[878]\tvalidation-rmse:6.44170 \n", "[879]\tvalidation-rmse:6.44167 \n", "[880]\tvalidation-rmse:6.44166 \n", "[881]\tvalidation-rmse:6.44162 \n", "[882]\tvalidation-rmse:6.44160 \n", "[883]\tvalidation-rmse:6.44160 \n", "[884]\tvalidation-rmse:6.44155 \n", "[885]\tvalidation-rmse:6.44148 \n", "[886]\tvalidation-rmse:6.44146 \n", "[887]\tvalidation-rmse:6.44146 \n", "[888]\tvalidation-rmse:6.44143 \n", "[889]\tvalidation-rmse:6.44133 \n", "[890]\tvalidation-rmse:6.44124 \n", "[891]\tvalidation-rmse:6.44121 \n", "[892]\tvalidation-rmse:6.44120 \n", "[893]\tvalidation-rmse:6.44117 \n", "[894]\tvalidation-rmse:6.44116 \n", "[895]\tvalidation-rmse:6.44115 \n", "[896]\tvalidation-rmse:6.44100 \n", "[897]\tvalidation-rmse:6.44098 \n", "[898]\tvalidation-rmse:6.44097 \n", "[899]\tvalidation-rmse:6.44097 \n", "[900]\tvalidation-rmse:6.44094 \n", "[901]\tvalidation-rmse:6.44087 \n", "[902]\tvalidation-rmse:6.44096 \n", "[903]\tvalidation-rmse:6.44121 \n", "[904]\tvalidation-rmse:6.44151 \n", "[905]\tvalidation-rmse:6.44178 \n", "[906]\tvalidation-rmse:6.44179 \n", "[907]\tvalidation-rmse:6.44190 \n", "[908]\tvalidation-rmse:6.44191 \n", "[909]\tvalidation-rmse:6.44190 \n", "[910]\tvalidation-rmse:6.44201 \n", "[911]\tvalidation-rmse:6.44198 \n", "[912]\tvalidation-rmse:6.44201 \n", "[913]\tvalidation-rmse:6.44197 \n", "[914]\tvalidation-rmse:6.44193 \n", "[915]\tvalidation-rmse:6.44186 \n", "[916]\tvalidation-rmse:6.44180 \n", "[917]\tvalidation-rmse:6.44171 \n", "[918]\tvalidation-rmse:6.44170 \n", "[919]\tvalidation-rmse:6.44164 \n", "[920]\tvalidation-rmse:6.44165 \n", "[921]\tvalidation-rmse:6.44163 \n", "[922]\tvalidation-rmse:6.44169 \n", "[923]\tvalidation-rmse:6.44164 \n", "[924]\tvalidation-rmse:6.44160 \n", "[925]\tvalidation-rmse:6.44158 \n", "[926]\tvalidation-rmse:6.44155 \n", "[927]\tvalidation-rmse:6.44152 \n", "[928]\tvalidation-rmse:6.44143 \n", "[929]\tvalidation-rmse:6.44140 \n", "[930]\tvalidation-rmse:6.44141 \n", "[931]\tvalidation-rmse:6.44143 \n", "[932]\tvalidation-rmse:6.44145 \n", "[933]\tvalidation-rmse:6.44140 \n", "[934]\tvalidation-rmse:6.44140 \n", "[935]\tvalidation-rmse:6.44136 \n", "[936]\tvalidation-rmse:6.44142 \n", "[937]\tvalidation-rmse:6.44139 \n", "[938]\tvalidation-rmse:6.44136 \n", "[939]\tvalidation-rmse:6.44129 \n", "[940]\tvalidation-rmse:6.44130 \n", "[941]\tvalidation-rmse:6.44123 \n", "[942]\tvalidation-rmse:6.44123 \n", "[943]\tvalidation-rmse:6.44115 \n", "[944]\tvalidation-rmse:6.44119 \n", "[945]\tvalidation-rmse:6.44120 \n", "[946]\tvalidation-rmse:6.44122 \n", "[947]\tvalidation-rmse:6.44117 \n", "[948]\tvalidation-rmse:6.44123 \n", "[949]\tvalidation-rmse:6.44122 \n", "[950]\tvalidation-rmse:6.44122 \n", "[951]\tvalidation-rmse:6.44124 \n", "[12:46:29] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.01936 \n", "[1]\tvalidation-rmse:7.85375 \n", "[2]\tvalidation-rmse:6.98308 \n", "[3]\tvalidation-rmse:6.71768 \n", "[4]\tvalidation-rmse:6.62596 \n", "[5]\tvalidation-rmse:6.58734 \n", "[6]\tvalidation-rmse:6.57090 \n", "[7]\tvalidation-rmse:6.56007 \n", "[8]\tvalidation-rmse:6.55186 \n", "[9]\tvalidation-rmse:6.54650 \n", "[10]\tvalidation-rmse:6.54225 \n", "[11]\tvalidation-rmse:6.53798 \n", "[12]\tvalidation-rmse:6.54011 \n", "[13]\tvalidation-rmse:6.53474 \n", "[14]\tvalidation-rmse:6.53172 \n", "[15]\tvalidation-rmse:6.52646 \n", "[16]\tvalidation-rmse:6.52439 \n", "[17]\tvalidation-rmse:6.52059 \n", "[18]\tvalidation-rmse:6.51834 \n", "[19]\tvalidation-rmse:6.51896 \n", "[20]\tvalidation-rmse:6.51959 \n", "[21]\tvalidation-rmse:6.51853 \n", "[22]\tvalidation-rmse:6.51442 \n", "[23]\tvalidation-rmse:6.51193 \n", "[24]\tvalidation-rmse:6.50966 \n", "[25]\tvalidation-rmse:6.50688 \n", "[26]\tvalidation-rmse:6.50601 \n", "[27]\tvalidation-rmse:6.50088 \n", "[28]\tvalidation-rmse:6.49820 \n", "[29]\tvalidation-rmse:6.49671 \n", "[30]\tvalidation-rmse:6.49527 \n", "[31]\tvalidation-rmse:6.49074 \n", "[32]\tvalidation-rmse:6.48881 \n", "[33]\tvalidation-rmse:6.48677 \n", "[34]\tvalidation-rmse:6.48365 \n", "[35]\tvalidation-rmse:6.48278 \n", "[36]\tvalidation-rmse:6.48161 \n", "[37]\tvalidation-rmse:6.48015 \n", "[38]\tvalidation-rmse:6.47940 \n", "[39]\tvalidation-rmse:6.47747 \n", "[40]\tvalidation-rmse:6.47542 \n", "[41]\tvalidation-rmse:6.47413 \n", "[42]\tvalidation-rmse:6.47472 \n", "[43]\tvalidation-rmse:6.47192 \n", "[44]\tvalidation-rmse:6.47390 \n", "[45]\tvalidation-rmse:6.47423 \n", "[46]\tvalidation-rmse:6.47237 \n", "[47]\tvalidation-rmse:6.47198 \n", "[48]\tvalidation-rmse:6.47095 \n", "[49]\tvalidation-rmse:6.46934 \n", "[50]\tvalidation-rmse:6.46811 \n", "[51]\tvalidation-rmse:6.46955 \n", "[52]\tvalidation-rmse:6.46967 \n", "[53]\tvalidation-rmse:6.46713 \n", "[54]\tvalidation-rmse:6.46502 \n", "[55]\tvalidation-rmse:6.46374 \n", "[56]\tvalidation-rmse:6.46514 \n", "[57]\tvalidation-rmse:6.46389 \n", "[58]\tvalidation-rmse:6.46451 \n", "[59]\tvalidation-rmse:6.46484 \n", "[60]\tvalidation-rmse:6.46480 \n", "[61]\tvalidation-rmse:6.46369 \n", "[62]\tvalidation-rmse:6.46289 \n", "[63]\tvalidation-rmse:6.46469 \n", "[64]\tvalidation-rmse:6.46370 \n", "[65]\tvalidation-rmse:6.46268 \n", "[66]\tvalidation-rmse:6.46346 \n", "[67]\tvalidation-rmse:6.46261 \n", "[68]\tvalidation-rmse:6.46258 \n", "[69]\tvalidation-rmse:6.46212 \n", "[70]\tvalidation-rmse:6.46296 \n", "[71]\tvalidation-rmse:6.46447 \n", "[72]\tvalidation-rmse:6.46544 \n", "[73]\tvalidation-rmse:6.46538 \n", "[74]\tvalidation-rmse:6.46450 \n", "[75]\tvalidation-rmse:6.46404 \n", "[76]\tvalidation-rmse:6.46388 \n", "[77]\tvalidation-rmse:6.46428 \n", "[78]\tvalidation-rmse:6.46494 \n", "[79]\tvalidation-rmse:6.46426 \n", "[80]\tvalidation-rmse:6.46490 \n", "[81]\tvalidation-rmse:6.46594 \n", "[82]\tvalidation-rmse:6.46655 \n", "[83]\tvalidation-rmse:6.46640 \n", "[84]\tvalidation-rmse:6.46847 \n", "[85]\tvalidation-rmse:6.47315 \n", "[86]\tvalidation-rmse:6.47027 \n", "[87]\tvalidation-rmse:6.47055 \n", "[88]\tvalidation-rmse:6.47001 \n", "[89]\tvalidation-rmse:6.47013 \n", "[90]\tvalidation-rmse:6.47069 \n", "[91]\tvalidation-rmse:6.47058 \n", "[92]\tvalidation-rmse:6.47060 \n", "[93]\tvalidation-rmse:6.47113 \n", "[94]\tvalidation-rmse:6.47111 \n", "[95]\tvalidation-rmse:6.47101 \n", "[96]\tvalidation-rmse:6.47255 \n", "[97]\tvalidation-rmse:6.47275 \n", "[98]\tvalidation-rmse:6.47378 \n", "[99]\tvalidation-rmse:6.47446 \n", "[100]\tvalidation-rmse:6.47642 \n", "[101]\tvalidation-rmse:6.47674 \n", "[102]\tvalidation-rmse:6.47519 \n", "[103]\tvalidation-rmse:6.47431 \n", "[104]\tvalidation-rmse:6.47395 \n", "[105]\tvalidation-rmse:6.47683 \n", "[106]\tvalidation-rmse:6.47743 \n", "[107]\tvalidation-rmse:6.47833 \n", "[108]\tvalidation-rmse:6.47867 \n", "[109]\tvalidation-rmse:6.47908 \n", "[110]\tvalidation-rmse:6.47965 \n", "[111]\tvalidation-rmse:6.48030 \n", "[112]\tvalidation-rmse:6.47999 \n", "[113]\tvalidation-rmse:6.48005 \n", "[114]\tvalidation-rmse:6.47975 \n", "[115]\tvalidation-rmse:6.47971 \n", "[116]\tvalidation-rmse:6.48081 \n", "[117]\tvalidation-rmse:6.48051 \n", "[118]\tvalidation-rmse:6.48054 \n", "[12:46:54] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.02404 \n", "[1]\tvalidation-rmse:18.93941 \n", "[2]\tvalidation-rmse:17.93192 \n", "[3]\tvalidation-rmse:16.99863 \n", "[4]\tvalidation-rmse:16.13336 \n", "[5]\tvalidation-rmse:15.33284 \n", "[6]\tvalidation-rmse:14.59177 \n", "[7]\tvalidation-rmse:13.90754 \n", "[8]\tvalidation-rmse:13.27680 \n", "[9]\tvalidation-rmse:12.69652 \n", "[10]\tvalidation-rmse:12.16204 \n", "[11]\tvalidation-rmse:11.66889 \n", "[12]\tvalidation-rmse:11.21597 \n", "[13]\tvalidation-rmse:10.80118 \n", "[14]\tvalidation-rmse:10.42078 \n", "[15]\tvalidation-rmse:10.07307 \n", "[16]\tvalidation-rmse:9.75427 \n", "[17]\tvalidation-rmse:9.46394 \n", "[18]\tvalidation-rmse:9.19898 \n", "[19]\tvalidation-rmse:8.95728 \n", "[20]\tvalidation-rmse:8.73820 \n", "[21]\tvalidation-rmse:8.53869 \n", "[22]\tvalidation-rmse:8.35675 \n", "[23]\tvalidation-rmse:8.19146 \n", "[24]\tvalidation-rmse:8.04182 \n", "[25]\tvalidation-rmse:7.90477 \n", "[26]\tvalidation-rmse:7.78090 \n", "[27]\tvalidation-rmse:7.66832 \n", "[28]\tvalidation-rmse:7.56665 \n", "[29]\tvalidation-rmse:7.47554 \n", "[30]\tvalidation-rmse:7.39255 \n", "[31]\tvalidation-rmse:7.31661 \n", "[32]\tvalidation-rmse:7.24828 \n", "[33]\tvalidation-rmse:7.18584 \n", "[34]\tvalidation-rmse:7.13044 \n", "[35]\tvalidation-rmse:7.07808 \n", "[36]\tvalidation-rmse:7.03137 \n", "[37]\tvalidation-rmse:6.98827 \n", "[38]\tvalidation-rmse:6.94832 \n", "[39]\tvalidation-rmse:6.91265 \n", "[40]\tvalidation-rmse:6.88081 \n", "[41]\tvalidation-rmse:6.85111 \n", "[42]\tvalidation-rmse:6.82402 \n", "[43]\tvalidation-rmse:6.79974 \n", "[44]\tvalidation-rmse:6.77698 \n", "[45]\tvalidation-rmse:6.75574 \n", "[46]\tvalidation-rmse:6.73603 \n", "[47]\tvalidation-rmse:6.71780 \n", "[48]\tvalidation-rmse:6.70136 \n", "[49]\tvalidation-rmse:6.68564 \n", "[50]\tvalidation-rmse:6.67056 \n", "[51]\tvalidation-rmse:6.65768 \n", "[52]\tvalidation-rmse:6.64561 \n", "[53]\tvalidation-rmse:6.63454 \n", "[54]\tvalidation-rmse:6.62449 \n", "[55]\tvalidation-rmse:6.61471 \n", "[56]\tvalidation-rmse:6.60561 \n", "[57]\tvalidation-rmse:6.59717 \n", "[58]\tvalidation-rmse:6.58930 \n", "[59]\tvalidation-rmse:6.58199 \n", "[60]\tvalidation-rmse:6.57524 \n", "[61]\tvalidation-rmse:6.56924 \n", "[62]\tvalidation-rmse:6.56281 \n", "[63]\tvalidation-rmse:6.55719 \n", "[64]\tvalidation-rmse:6.55181 \n", "[65]\tvalidation-rmse:6.54716 \n", "[66]\tvalidation-rmse:6.54306 \n", "[67]\tvalidation-rmse:6.53865 \n", "[68]\tvalidation-rmse:6.53502 \n", "[69]\tvalidation-rmse:6.53160 \n", "[70]\tvalidation-rmse:6.52826 \n", "[71]\tvalidation-rmse:6.52535 \n", "[72]\tvalidation-rmse:6.52264 \n", "[73]\tvalidation-rmse:6.51965 \n", "[74]\tvalidation-rmse:6.51740 \n", "[75]\tvalidation-rmse:6.51539 \n", "[76]\tvalidation-rmse:6.51337 \n", "[77]\tvalidation-rmse:6.51150 \n", "[78]\tvalidation-rmse:6.50952 \n", "[79]\tvalidation-rmse:6.50760 \n", "[80]\tvalidation-rmse:6.50608 \n", "[81]\tvalidation-rmse:6.50455 \n", "[82]\tvalidation-rmse:6.50313 \n", "[83]\tvalidation-rmse:6.50146 \n", "[84]\tvalidation-rmse:6.50021 \n", "[85]\tvalidation-rmse:6.49906 \n", "[86]\tvalidation-rmse:6.49782 \n", "[87]\tvalidation-rmse:6.49650 \n", "[88]\tvalidation-rmse:6.49548 \n", "[89]\tvalidation-rmse:6.49432 \n", "[90]\tvalidation-rmse:6.49333 \n", "[91]\tvalidation-rmse:6.49242 \n", "[92]\tvalidation-rmse:6.49139 \n", "[93]\tvalidation-rmse:6.49046 \n", "[94]\tvalidation-rmse:6.48977 \n", "[95]\tvalidation-rmse:6.48908 \n", "[96]\tvalidation-rmse:6.48822 \n", "[97]\tvalidation-rmse:6.48758 \n", "[98]\tvalidation-rmse:6.48661 \n", "[99]\tvalidation-rmse:6.48575 \n", "[100]\tvalidation-rmse:6.48497 \n", "[101]\tvalidation-rmse:6.48439 \n", "[102]\tvalidation-rmse:6.48362 \n", "[103]\tvalidation-rmse:6.48290 \n", "[104]\tvalidation-rmse:6.48226 \n", "[105]\tvalidation-rmse:6.48170 \n", "[106]\tvalidation-rmse:6.48104 \n", "[107]\tvalidation-rmse:6.48039 \n", "[108]\tvalidation-rmse:6.47998 \n", "[109]\tvalidation-rmse:6.47957 \n", "[110]\tvalidation-rmse:6.47898 \n", "[111]\tvalidation-rmse:6.47807 \n", "[112]\tvalidation-rmse:6.47738 \n", "[113]\tvalidation-rmse:6.47678 \n", "[114]\tvalidation-rmse:6.47621 \n", "[115]\tvalidation-rmse:6.47566 \n", "[116]\tvalidation-rmse:6.47502 \n", "[117]\tvalidation-rmse:6.47457 \n", "[118]\tvalidation-rmse:6.47410 \n", "[119]\tvalidation-rmse:6.47362 \n", "[120]\tvalidation-rmse:6.47308 \n", "[121]\tvalidation-rmse:6.47268 \n", "[122]\tvalidation-rmse:6.47220 \n", "[123]\tvalidation-rmse:6.47184 \n", "[124]\tvalidation-rmse:6.47145 \n", "[125]\tvalidation-rmse:6.47100 \n", "[126]\tvalidation-rmse:6.47055 \n", "[127]\tvalidation-rmse:6.47005 \n", "[128]\tvalidation-rmse:6.46953 \n", "[129]\tvalidation-rmse:6.46920 \n", "[130]\tvalidation-rmse:6.46862 \n", "[131]\tvalidation-rmse:6.46840 \n", "[132]\tvalidation-rmse:6.46796 \n", "[133]\tvalidation-rmse:6.46774 \n", "[134]\tvalidation-rmse:6.46723 \n", "[135]\tvalidation-rmse:6.46680 \n", "[136]\tvalidation-rmse:6.46647 \n", "[137]\tvalidation-rmse:6.46623 \n", "[138]\tvalidation-rmse:6.46571 \n", "[139]\tvalidation-rmse:6.46537 \n", "[140]\tvalidation-rmse:6.46496 \n", "[141]\tvalidation-rmse:6.46467 \n", "[142]\tvalidation-rmse:6.46458 \n", "[143]\tvalidation-rmse:6.46412 \n", "[144]\tvalidation-rmse:6.46377 \n", "[145]\tvalidation-rmse:6.46345 \n", "[146]\tvalidation-rmse:6.46302 \n", "[147]\tvalidation-rmse:6.46281 \n", "[148]\tvalidation-rmse:6.46243 \n", "[149]\tvalidation-rmse:6.46227 \n", "[150]\tvalidation-rmse:6.46181 \n", "[151]\tvalidation-rmse:6.46165 \n", "[152]\tvalidation-rmse:6.46128 \n", "[153]\tvalidation-rmse:6.46100 \n", "[154]\tvalidation-rmse:6.46065 \n", "[155]\tvalidation-rmse:6.46048 \n", "[156]\tvalidation-rmse:6.46029 \n", "[157]\tvalidation-rmse:6.46001 \n", "[158]\tvalidation-rmse:6.45954 \n", "[159]\tvalidation-rmse:6.45918 \n", "[160]\tvalidation-rmse:6.45897 \n", "[161]\tvalidation-rmse:6.45874 \n", "[162]\tvalidation-rmse:6.45848 \n", "[163]\tvalidation-rmse:6.45828 \n", "[164]\tvalidation-rmse:6.45802 \n", "[165]\tvalidation-rmse:6.45778 \n", "[166]\tvalidation-rmse:6.45761 \n", "[167]\tvalidation-rmse:6.45712 \n", "[168]\tvalidation-rmse:6.45699 \n", "[169]\tvalidation-rmse:6.45664 \n", "[170]\tvalidation-rmse:6.45660 \n", "[171]\tvalidation-rmse:6.45627 \n", "[172]\tvalidation-rmse:6.45610 \n", "[173]\tvalidation-rmse:6.45578 \n", "[174]\tvalidation-rmse:6.45564 \n", "[175]\tvalidation-rmse:6.45526 \n", "[176]\tvalidation-rmse:6.45501 \n", "[177]\tvalidation-rmse:6.45489 \n", "[178]\tvalidation-rmse:6.45469 \n", "[179]\tvalidation-rmse:6.45434 \n", "[180]\tvalidation-rmse:6.45408 \n", "[181]\tvalidation-rmse:6.45400 \n", "[182]\tvalidation-rmse:6.45377 \n", "[183]\tvalidation-rmse:6.45358 \n", "[184]\tvalidation-rmse:6.45343 \n", "[185]\tvalidation-rmse:6.45311 \n", "[186]\tvalidation-rmse:6.45285 \n", "[187]\tvalidation-rmse:6.45263 \n", "[188]\tvalidation-rmse:6.45253 \n", "[189]\tvalidation-rmse:6.45256 \n", "[190]\tvalidation-rmse:6.45210 \n", "[191]\tvalidation-rmse:6.45196 \n", "[192]\tvalidation-rmse:6.45168 \n", "[193]\tvalidation-rmse:6.45166 \n", "[194]\tvalidation-rmse:6.45136 \n", "[195]\tvalidation-rmse:6.45108 \n", "[196]\tvalidation-rmse:6.45080 \n", "[197]\tvalidation-rmse:6.45058 \n", "[198]\tvalidation-rmse:6.45040 \n", "[199]\tvalidation-rmse:6.45004 \n", "[200]\tvalidation-rmse:6.44992 \n", "[201]\tvalidation-rmse:6.44981 \n", "[202]\tvalidation-rmse:6.44957 \n", "[203]\tvalidation-rmse:6.44923 \n", "[204]\tvalidation-rmse:6.44920 \n", "[205]\tvalidation-rmse:6.44891 \n", "[206]\tvalidation-rmse:6.44871 \n", "[207]\tvalidation-rmse:6.44865 \n", "[208]\tvalidation-rmse:6.44840 \n", "[209]\tvalidation-rmse:6.44831 \n", "[210]\tvalidation-rmse:6.44824 \n", "[211]\tvalidation-rmse:6.44799 \n", "[212]\tvalidation-rmse:6.44792 \n", "[213]\tvalidation-rmse:6.44781 \n", "[214]\tvalidation-rmse:6.44780 \n", "[215]\tvalidation-rmse:6.44744 \n", "[216]\tvalidation-rmse:6.44744 \n", "[217]\tvalidation-rmse:6.44733 \n", "[218]\tvalidation-rmse:6.44699 \n", "[219]\tvalidation-rmse:6.44669 \n", "[220]\tvalidation-rmse:6.44642 \n", "[221]\tvalidation-rmse:6.44628 \n", "[222]\tvalidation-rmse:6.44611 \n", "[223]\tvalidation-rmse:6.44594 \n", "[224]\tvalidation-rmse:6.44576 \n", "[225]\tvalidation-rmse:6.44569 \n", "[226]\tvalidation-rmse:6.44547 \n", "[227]\tvalidation-rmse:6.44524 \n", "[228]\tvalidation-rmse:6.44514 \n", "[229]\tvalidation-rmse:6.44510 \n", "[230]\tvalidation-rmse:6.44489 \n", "[231]\tvalidation-rmse:6.44470 \n", "[232]\tvalidation-rmse:6.44461 \n", "[233]\tvalidation-rmse:6.44439 \n", "[234]\tvalidation-rmse:6.44425 \n", "[235]\tvalidation-rmse:6.44404 \n", "[236]\tvalidation-rmse:6.44387 \n", "[237]\tvalidation-rmse:6.44381 \n", "[238]\tvalidation-rmse:6.44382 \n", "[239]\tvalidation-rmse:6.44369 \n", "[240]\tvalidation-rmse:6.44360 \n", "[241]\tvalidation-rmse:6.44349 \n", "[242]\tvalidation-rmse:6.44351 \n", "[243]\tvalidation-rmse:6.44346 \n", "[244]\tvalidation-rmse:6.44313 \n", "[245]\tvalidation-rmse:6.44279 \n", "[246]\tvalidation-rmse:6.44251 \n", "[247]\tvalidation-rmse:6.44232 \n", "[248]\tvalidation-rmse:6.44206 \n", "[249]\tvalidation-rmse:6.44197 \n", "[250]\tvalidation-rmse:6.44175 \n", "[251]\tvalidation-rmse:6.44171 \n", "[252]\tvalidation-rmse:6.44163 \n", "[253]\tvalidation-rmse:6.44155 \n", "[254]\tvalidation-rmse:6.44151 \n", "[255]\tvalidation-rmse:6.44111 \n", "[256]\tvalidation-rmse:6.44114 \n", "[257]\tvalidation-rmse:6.44104 \n", "[258]\tvalidation-rmse:6.44087 \n", "[259]\tvalidation-rmse:6.44096 \n", "[260]\tvalidation-rmse:6.44085 \n", "[261]\tvalidation-rmse:6.44066 \n", "[262]\tvalidation-rmse:6.44043 \n", "[263]\tvalidation-rmse:6.44012 \n", "[264]\tvalidation-rmse:6.44014 \n", "[265]\tvalidation-rmse:6.44026 \n", "[266]\tvalidation-rmse:6.44004 \n", "[267]\tvalidation-rmse:6.44001 \n", "[268]\tvalidation-rmse:6.43968 \n", "[269]\tvalidation-rmse:6.43966 \n", "[270]\tvalidation-rmse:6.43961 \n", "[271]\tvalidation-rmse:6.43940 \n", "[272]\tvalidation-rmse:6.43915 \n", "[273]\tvalidation-rmse:6.43908 \n", "[274]\tvalidation-rmse:6.43871 \n", "[275]\tvalidation-rmse:6.43872 \n", "[276]\tvalidation-rmse:6.43864 \n", "[277]\tvalidation-rmse:6.43853 \n", "[278]\tvalidation-rmse:6.43843 \n", "[279]\tvalidation-rmse:6.43812 \n", "[280]\tvalidation-rmse:6.43798 \n", "[281]\tvalidation-rmse:6.43788 \n", "[282]\tvalidation-rmse:6.43779 \n", "[283]\tvalidation-rmse:6.43764 \n", "[284]\tvalidation-rmse:6.43758 \n", "[285]\tvalidation-rmse:6.43733 \n", "[286]\tvalidation-rmse:6.43729 \n", "[287]\tvalidation-rmse:6.43719 \n", "[288]\tvalidation-rmse:6.43710 \n", "[289]\tvalidation-rmse:6.43665 \n", "[290]\tvalidation-rmse:6.43653 \n", "[291]\tvalidation-rmse:6.43660 \n", "[292]\tvalidation-rmse:6.43657 \n", "[293]\tvalidation-rmse:6.43625 \n", "[294]\tvalidation-rmse:6.43628 \n", "[295]\tvalidation-rmse:6.43612 \n", "[296]\tvalidation-rmse:6.43608 \n", "[297]\tvalidation-rmse:6.43575 \n", "[298]\tvalidation-rmse:6.43550 \n", "[299]\tvalidation-rmse:6.43546 \n", "[300]\tvalidation-rmse:6.43539 \n", "[301]\tvalidation-rmse:6.43526 \n", "[302]\tvalidation-rmse:6.43519 \n", "[303]\tvalidation-rmse:6.43506 \n", "[304]\tvalidation-rmse:6.43490 \n", "[305]\tvalidation-rmse:6.43498 \n", "[306]\tvalidation-rmse:6.43506 \n", "[307]\tvalidation-rmse:6.43505 \n", "[308]\tvalidation-rmse:6.43514 \n", "[309]\tvalidation-rmse:6.43513 \n", "[310]\tvalidation-rmse:6.43508 \n", "[311]\tvalidation-rmse:6.43497 \n", "[312]\tvalidation-rmse:6.43485 \n", "[313]\tvalidation-rmse:6.43462 \n", "[314]\tvalidation-rmse:6.43454 \n", "[315]\tvalidation-rmse:6.43450 \n", "[316]\tvalidation-rmse:6.43432 \n", "[317]\tvalidation-rmse:6.43437 \n", "[318]\tvalidation-rmse:6.43403 \n", "[319]\tvalidation-rmse:6.43398 \n", "[320]\tvalidation-rmse:6.43396 \n", "[321]\tvalidation-rmse:6.43383 \n", "[322]\tvalidation-rmse:6.43382 \n", "[323]\tvalidation-rmse:6.43361 \n", "[324]\tvalidation-rmse:6.43361 \n", "[325]\tvalidation-rmse:6.43342 \n", "[326]\tvalidation-rmse:6.43335 \n", "[327]\tvalidation-rmse:6.43322 \n", "[328]\tvalidation-rmse:6.43326 \n", "[329]\tvalidation-rmse:6.43353 \n", "[330]\tvalidation-rmse:6.43350 \n", "[331]\tvalidation-rmse:6.43347 \n", "[332]\tvalidation-rmse:6.43340 \n", "[333]\tvalidation-rmse:6.43341 \n", "[334]\tvalidation-rmse:6.43334 \n", "[335]\tvalidation-rmse:6.43320 \n", "[336]\tvalidation-rmse:6.43304 \n", "[337]\tvalidation-rmse:6.43304 \n", "[338]\tvalidation-rmse:6.43303 \n", "[339]\tvalidation-rmse:6.43295 \n", "[340]\tvalidation-rmse:6.43282 \n", "[341]\tvalidation-rmse:6.43275 \n", "[342]\tvalidation-rmse:6.43265 \n", "[343]\tvalidation-rmse:6.43232 \n", "[344]\tvalidation-rmse:6.43243 \n", "[345]\tvalidation-rmse:6.43239 \n", "[346]\tvalidation-rmse:6.43239 \n", "[347]\tvalidation-rmse:6.43238 \n", "[348]\tvalidation-rmse:6.43241 \n", "[349]\tvalidation-rmse:6.43255 \n", "[350]\tvalidation-rmse:6.43248 \n", "[351]\tvalidation-rmse:6.43246 \n", "[352]\tvalidation-rmse:6.43248 \n", "[353]\tvalidation-rmse:6.43237 \n", "[354]\tvalidation-rmse:6.43229 \n", "[355]\tvalidation-rmse:6.43228 \n", "[356]\tvalidation-rmse:6.43218 \n", "[357]\tvalidation-rmse:6.43208 \n", "[358]\tvalidation-rmse:6.43201 \n", "[359]\tvalidation-rmse:6.43183 \n", "[360]\tvalidation-rmse:6.43177 \n", "[361]\tvalidation-rmse:6.43160 \n", "[362]\tvalidation-rmse:6.43151 \n", "[363]\tvalidation-rmse:6.43152 \n", "[364]\tvalidation-rmse:6.43145 \n", "[365]\tvalidation-rmse:6.43144 \n", "[366]\tvalidation-rmse:6.43125 \n", "[367]\tvalidation-rmse:6.43134 \n", "[368]\tvalidation-rmse:6.43129 \n", "[369]\tvalidation-rmse:6.43116 \n", "[370]\tvalidation-rmse:6.43117 \n", "[371]\tvalidation-rmse:6.43122 \n", "[372]\tvalidation-rmse:6.43108 \n", "[373]\tvalidation-rmse:6.43103 \n", "[374]\tvalidation-rmse:6.43086 \n", "[375]\tvalidation-rmse:6.43083 \n", "[376]\tvalidation-rmse:6.43083 \n", "[377]\tvalidation-rmse:6.43099 \n", "[378]\tvalidation-rmse:6.43098 \n", "[379]\tvalidation-rmse:6.43098 \n", "[380]\tvalidation-rmse:6.43089 \n", "[381]\tvalidation-rmse:6.43097 \n", "[382]\tvalidation-rmse:6.43084 \n", "[383]\tvalidation-rmse:6.43079 \n", "[384]\tvalidation-rmse:6.43069 \n", "[385]\tvalidation-rmse:6.43075 \n", "[386]\tvalidation-rmse:6.43059 \n", "[387]\tvalidation-rmse:6.43064 \n", "[388]\tvalidation-rmse:6.43051 \n", "[389]\tvalidation-rmse:6.43037 \n", "[390]\tvalidation-rmse:6.43024 \n", "[391]\tvalidation-rmse:6.43031 \n", "[392]\tvalidation-rmse:6.43027 \n", "[393]\tvalidation-rmse:6.43008 \n", "[394]\tvalidation-rmse:6.43009 \n", "[395]\tvalidation-rmse:6.43012 \n", "[396]\tvalidation-rmse:6.43010 \n", "[397]\tvalidation-rmse:6.42971 \n", "[398]\tvalidation-rmse:6.42971 \n", "[399]\tvalidation-rmse:6.42967 \n", "[400]\tvalidation-rmse:6.42968 \n", "[401]\tvalidation-rmse:6.42966 \n", "[402]\tvalidation-rmse:6.42960 \n", "[403]\tvalidation-rmse:6.42950 \n", "[404]\tvalidation-rmse:6.42946 \n", "[405]\tvalidation-rmse:6.42949 \n", "[406]\tvalidation-rmse:6.42946 \n", "[407]\tvalidation-rmse:6.42948 \n", "[408]\tvalidation-rmse:6.42930 \n", "[409]\tvalidation-rmse:6.42950 \n", "[410]\tvalidation-rmse:6.42976 \n", "[411]\tvalidation-rmse:6.42970 \n", "[412]\tvalidation-rmse:6.42951 \n", "[413]\tvalidation-rmse:6.42939 \n", "[414]\tvalidation-rmse:6.42928 \n", "[415]\tvalidation-rmse:6.42931 \n", "[416]\tvalidation-rmse:6.42927 \n", "[417]\tvalidation-rmse:6.42906 \n", "[418]\tvalidation-rmse:6.42896 \n", "[419]\tvalidation-rmse:6.42907 \n", "[420]\tvalidation-rmse:6.42891 \n", "[421]\tvalidation-rmse:6.42889 \n", "[422]\tvalidation-rmse:6.42882 \n", "[423]\tvalidation-rmse:6.42882 \n", "[424]\tvalidation-rmse:6.42902 \n", "[425]\tvalidation-rmse:6.42909 \n", "[426]\tvalidation-rmse:6.42932 \n", "[427]\tvalidation-rmse:6.42924 \n", "[428]\tvalidation-rmse:6.42916 \n", "[429]\tvalidation-rmse:6.42918 \n", "[430]\tvalidation-rmse:6.42909 \n", "[431]\tvalidation-rmse:6.42902 \n", "[432]\tvalidation-rmse:6.42890 \n", "[433]\tvalidation-rmse:6.42880 \n", "[434]\tvalidation-rmse:6.42871 \n", "[435]\tvalidation-rmse:6.42871 \n", "[436]\tvalidation-rmse:6.42864 \n", "[437]\tvalidation-rmse:6.42884 \n", "[438]\tvalidation-rmse:6.42880 \n", "[439]\tvalidation-rmse:6.42884 \n", "[440]\tvalidation-rmse:6.42863 \n", "[441]\tvalidation-rmse:6.42853 \n", "[442]\tvalidation-rmse:6.42851 \n", "[443]\tvalidation-rmse:6.42853 \n", "[444]\tvalidation-rmse:6.42824 \n", "[445]\tvalidation-rmse:6.42817 \n", "[446]\tvalidation-rmse:6.42796 \n", "[447]\tvalidation-rmse:6.42795 \n", "[448]\tvalidation-rmse:6.42756 \n", "[449]\tvalidation-rmse:6.42756 \n", "[450]\tvalidation-rmse:6.42722 \n", "[451]\tvalidation-rmse:6.42716 \n", "[452]\tvalidation-rmse:6.42715 \n", "[453]\tvalidation-rmse:6.42740 \n", "[454]\tvalidation-rmse:6.42746 \n", "[455]\tvalidation-rmse:6.42750 \n", "[456]\tvalidation-rmse:6.42762 \n", "[457]\tvalidation-rmse:6.42775 \n", "[458]\tvalidation-rmse:6.42763 \n", "[459]\tvalidation-rmse:6.42764 \n", "[460]\tvalidation-rmse:6.42761 \n", "[461]\tvalidation-rmse:6.42746 \n", "[462]\tvalidation-rmse:6.42744 \n", "[463]\tvalidation-rmse:6.42740 \n", "[464]\tvalidation-rmse:6.42739 \n", "[465]\tvalidation-rmse:6.42739 \n", "[466]\tvalidation-rmse:6.42707 \n", "[467]\tvalidation-rmse:6.42711 \n", "[468]\tvalidation-rmse:6.42736 \n", "[469]\tvalidation-rmse:6.42732 \n", "[470]\tvalidation-rmse:6.42730 \n", "[471]\tvalidation-rmse:6.42722 \n", "[472]\tvalidation-rmse:6.42711 \n", "[473]\tvalidation-rmse:6.42714 \n", "[474]\tvalidation-rmse:6.42708 \n", "[475]\tvalidation-rmse:6.42700 \n", "[476]\tvalidation-rmse:6.42689 \n", "[477]\tvalidation-rmse:6.42699 \n", "[478]\tvalidation-rmse:6.42692 \n", "[479]\tvalidation-rmse:6.42688 \n", "[480]\tvalidation-rmse:6.42696 \n", "[481]\tvalidation-rmse:6.42700 \n", "[482]\tvalidation-rmse:6.42700 \n", "[483]\tvalidation-rmse:6.42706 \n", "[484]\tvalidation-rmse:6.42687 \n", "[485]\tvalidation-rmse:6.42678 \n", "[486]\tvalidation-rmse:6.42658 \n", "[487]\tvalidation-rmse:6.42662 \n", "[488]\tvalidation-rmse:6.42681 \n", "[489]\tvalidation-rmse:6.42676 \n", "[490]\tvalidation-rmse:6.42679 \n", "[491]\tvalidation-rmse:6.42674 \n", "[492]\tvalidation-rmse:6.42684 \n", "[493]\tvalidation-rmse:6.42722 \n", "[494]\tvalidation-rmse:6.42739 \n", "[495]\tvalidation-rmse:6.42741 \n", "[496]\tvalidation-rmse:6.42730 \n", "[497]\tvalidation-rmse:6.42713 \n", "[498]\tvalidation-rmse:6.42721 \n", "[499]\tvalidation-rmse:6.42719 \n", "[500]\tvalidation-rmse:6.42724 \n", "[501]\tvalidation-rmse:6.42712 \n", "[502]\tvalidation-rmse:6.42701 \n", "[503]\tvalidation-rmse:6.42696 \n", "[504]\tvalidation-rmse:6.42682 \n", "[505]\tvalidation-rmse:6.42687 \n", "[506]\tvalidation-rmse:6.42683 \n", "[507]\tvalidation-rmse:6.42681 \n", "[508]\tvalidation-rmse:6.42684 \n", "[509]\tvalidation-rmse:6.42675 \n", "[510]\tvalidation-rmse:6.42669 \n", "[511]\tvalidation-rmse:6.42667 \n", "[512]\tvalidation-rmse:6.42655 \n", "[513]\tvalidation-rmse:6.42655 \n", "[514]\tvalidation-rmse:6.42654 \n", "[515]\tvalidation-rmse:6.42662 \n", "[516]\tvalidation-rmse:6.42664 \n", "[517]\tvalidation-rmse:6.42673 \n", "[518]\tvalidation-rmse:6.42686 \n", "[519]\tvalidation-rmse:6.42679 \n", "[520]\tvalidation-rmse:6.42671 \n", "[521]\tvalidation-rmse:6.42685 \n", "[522]\tvalidation-rmse:6.42721 \n", "[523]\tvalidation-rmse:6.42716 \n", "[524]\tvalidation-rmse:6.42716 \n", "[525]\tvalidation-rmse:6.42699 \n", "[526]\tvalidation-rmse:6.42697 \n", "[527]\tvalidation-rmse:6.42703 \n", "[528]\tvalidation-rmse:6.42712 \n", "[529]\tvalidation-rmse:6.42740 \n", "[530]\tvalidation-rmse:6.42749 \n", "[531]\tvalidation-rmse:6.42736 \n", "[532]\tvalidation-rmse:6.42730 \n", "[533]\tvalidation-rmse:6.42736 \n", "[534]\tvalidation-rmse:6.42737 \n", "[535]\tvalidation-rmse:6.42728 \n", "[536]\tvalidation-rmse:6.42729 \n", "[537]\tvalidation-rmse:6.42730 \n", "[538]\tvalidation-rmse:6.42729 \n", "[539]\tvalidation-rmse:6.42729 \n", "[540]\tvalidation-rmse:6.42727 \n", "[541]\tvalidation-rmse:6.42711 \n", "[542]\tvalidation-rmse:6.42721 \n", "[543]\tvalidation-rmse:6.42711 \n", "[544]\tvalidation-rmse:6.42751 \n", "[545]\tvalidation-rmse:6.42756 \n", "[546]\tvalidation-rmse:6.42746 \n", "[547]\tvalidation-rmse:6.42748 \n", "[548]\tvalidation-rmse:6.42750 \n", "[549]\tvalidation-rmse:6.42753 \n", "[550]\tvalidation-rmse:6.42766 \n", "[551]\tvalidation-rmse:6.42763 \n", "[552]\tvalidation-rmse:6.42755 \n", "[553]\tvalidation-rmse:6.42760 \n", "[554]\tvalidation-rmse:6.42756 \n", "[555]\tvalidation-rmse:6.42758 \n", "[556]\tvalidation-rmse:6.42764 \n", "[557]\tvalidation-rmse:6.42800 \n", "[558]\tvalidation-rmse:6.42802 \n", "[559]\tvalidation-rmse:6.42799 \n", "[560]\tvalidation-rmse:6.42787 \n", "[561]\tvalidation-rmse:6.42779 \n", "[562]\tvalidation-rmse:6.42789 \n", "[563]\tvalidation-rmse:6.42790 \n", "[12:49:30] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:9.30271 \n", "[1]\tvalidation-rmse:7.15139 \n", "[2]\tvalidation-rmse:6.78544 \n", "[3]\tvalidation-rmse:6.71313 \n", "[4]\tvalidation-rmse:6.68968 \n", "[5]\tvalidation-rmse:6.68068 \n", "[6]\tvalidation-rmse:6.67247 \n", "[7]\tvalidation-rmse:6.66346 \n", "[8]\tvalidation-rmse:6.65769 \n", "[9]\tvalidation-rmse:6.65338 \n", "[10]\tvalidation-rmse:6.64790 \n", "[11]\tvalidation-rmse:6.64374 \n", "[12]\tvalidation-rmse:6.64142 \n", "[13]\tvalidation-rmse:6.63667 \n", "[14]\tvalidation-rmse:6.63482 \n", "[15]\tvalidation-rmse:6.63062 \n", "[16]\tvalidation-rmse:6.62922 \n", "[17]\tvalidation-rmse:6.62573 \n", "[18]\tvalidation-rmse:6.62108 \n", "[19]\tvalidation-rmse:6.61561 \n", "[20]\tvalidation-rmse:6.61318 \n", "[21]\tvalidation-rmse:6.60789 \n", "[22]\tvalidation-rmse:6.60389 \n", "[23]\tvalidation-rmse:6.60298 \n", "[24]\tvalidation-rmse:6.59823 \n", "[25]\tvalidation-rmse:6.59616 \n", "[26]\tvalidation-rmse:6.59159 \n", "[27]\tvalidation-rmse:6.58932 \n", "[28]\tvalidation-rmse:6.58771 \n", "[29]\tvalidation-rmse:6.58705 \n", "[30]\tvalidation-rmse:6.58177 \n", "[31]\tvalidation-rmse:6.57890 \n", "[32]\tvalidation-rmse:6.57604 \n", "[33]\tvalidation-rmse:6.57452 \n", "[34]\tvalidation-rmse:6.57502 \n", "[35]\tvalidation-rmse:6.57480 \n", "[36]\tvalidation-rmse:6.57329 \n", "[37]\tvalidation-rmse:6.57152 \n", "[38]\tvalidation-rmse:6.56925 \n", "[39]\tvalidation-rmse:6.56893 \n", "[40]\tvalidation-rmse:6.56701 \n", "[41]\tvalidation-rmse:6.56481 \n", "[42]\tvalidation-rmse:6.56245 \n", "[43]\tvalidation-rmse:6.56050 \n", "[44]\tvalidation-rmse:6.55749 \n", "[45]\tvalidation-rmse:6.55668 \n", "[46]\tvalidation-rmse:6.55543 \n", "[47]\tvalidation-rmse:6.55124 \n", "[48]\tvalidation-rmse:6.55226 \n", "[49]\tvalidation-rmse:6.55106 \n", "[50]\tvalidation-rmse:6.54917 \n", "[51]\tvalidation-rmse:6.54743 \n", "[52]\tvalidation-rmse:6.54613 \n", "[53]\tvalidation-rmse:6.54425 \n", "[54]\tvalidation-rmse:6.54188 \n", "[55]\tvalidation-rmse:6.54251 \n", "[56]\tvalidation-rmse:6.54060 \n", "[57]\tvalidation-rmse:6.53939 \n", "[58]\tvalidation-rmse:6.53740 \n", "[59]\tvalidation-rmse:6.53543 \n", "[60]\tvalidation-rmse:6.53460 \n", "[61]\tvalidation-rmse:6.53311 \n", "[62]\tvalidation-rmse:6.53151 \n", "[63]\tvalidation-rmse:6.52768 \n", "[64]\tvalidation-rmse:6.52554 \n", "[65]\tvalidation-rmse:6.52228 \n", "[66]\tvalidation-rmse:6.52066 \n", "[67]\tvalidation-rmse:6.51883 \n", "[68]\tvalidation-rmse:6.51316 \n", "[69]\tvalidation-rmse:6.51107 \n", "[70]\tvalidation-rmse:6.50853 \n", "[71]\tvalidation-rmse:6.50574 \n", "[72]\tvalidation-rmse:6.50394 \n", "[73]\tvalidation-rmse:6.50273 \n", "[74]\tvalidation-rmse:6.50156 \n", "[75]\tvalidation-rmse:6.50289 \n", "[76]\tvalidation-rmse:6.50244 \n", "[77]\tvalidation-rmse:6.50060 \n", "[78]\tvalidation-rmse:6.50003 \n", "[79]\tvalidation-rmse:6.49847 \n", "[80]\tvalidation-rmse:6.49489 \n", "[81]\tvalidation-rmse:6.49547 \n", "[82]\tvalidation-rmse:6.49474 \n", "[83]\tvalidation-rmse:6.49360 \n", "[84]\tvalidation-rmse:6.49265 \n", "[85]\tvalidation-rmse:6.49104 \n", "[86]\tvalidation-rmse:6.48859 \n", "[87]\tvalidation-rmse:6.48689 \n", "[88]\tvalidation-rmse:6.48512 \n", "[89]\tvalidation-rmse:6.48460 \n", "[90]\tvalidation-rmse:6.48327 \n", "[91]\tvalidation-rmse:6.48293 \n", "[92]\tvalidation-rmse:6.48067 \n", "[93]\tvalidation-rmse:6.47946 \n", "[94]\tvalidation-rmse:6.47823 \n", "[95]\tvalidation-rmse:6.47694 \n", "[96]\tvalidation-rmse:6.47472 \n", "[97]\tvalidation-rmse:6.47429 \n", "[98]\tvalidation-rmse:6.47295 \n", "[99]\tvalidation-rmse:6.47216 \n", "[100]\tvalidation-rmse:6.47092 \n", "[101]\tvalidation-rmse:6.46990 \n", "[102]\tvalidation-rmse:6.46828 \n", "[103]\tvalidation-rmse:6.46772 \n", "[104]\tvalidation-rmse:6.46671 \n", "[105]\tvalidation-rmse:6.46567 \n", "[106]\tvalidation-rmse:6.46588 \n", "[107]\tvalidation-rmse:6.46441 \n", "[108]\tvalidation-rmse:6.46296 \n", "[109]\tvalidation-rmse:6.46237 \n", "[110]\tvalidation-rmse:6.46185 \n", "[111]\tvalidation-rmse:6.46148 \n", "[112]\tvalidation-rmse:6.45976 \n", "[113]\tvalidation-rmse:6.45871 \n", "[114]\tvalidation-rmse:6.45798 \n", "[115]\tvalidation-rmse:6.45558 \n", "[116]\tvalidation-rmse:6.45285 \n", "[117]\tvalidation-rmse:6.45221 \n", "[118]\tvalidation-rmse:6.45016 \n", "[119]\tvalidation-rmse:6.44925 \n", "[120]\tvalidation-rmse:6.44850 \n", "[121]\tvalidation-rmse:6.44720 \n", "[122]\tvalidation-rmse:6.44541 \n", "[123]\tvalidation-rmse:6.44450 \n", "[124]\tvalidation-rmse:6.44341 \n", "[125]\tvalidation-rmse:6.44284 \n", "[126]\tvalidation-rmse:6.44329 \n", "[127]\tvalidation-rmse:6.44250 \n", "[128]\tvalidation-rmse:6.44079 \n", "[129]\tvalidation-rmse:6.44127 \n", "[130]\tvalidation-rmse:6.43985 \n", "[131]\tvalidation-rmse:6.43843 \n", "[132]\tvalidation-rmse:6.43792 \n", "[133]\tvalidation-rmse:6.43758 \n", "[134]\tvalidation-rmse:6.43599 \n", "[135]\tvalidation-rmse:6.43510 \n", "[136]\tvalidation-rmse:6.43429 \n", "[137]\tvalidation-rmse:6.43327 \n", "[138]\tvalidation-rmse:6.43304 \n", "[139]\tvalidation-rmse:6.43178 \n", "[140]\tvalidation-rmse:6.42977 \n", "[141]\tvalidation-rmse:6.42895 \n", "[142]\tvalidation-rmse:6.42821 \n", "[143]\tvalidation-rmse:6.42734 \n", "[144]\tvalidation-rmse:6.42571 \n", "[145]\tvalidation-rmse:6.42471 \n", "[146]\tvalidation-rmse:6.42002 \n", "[147]\tvalidation-rmse:6.41934 \n", "[148]\tvalidation-rmse:6.41793 \n", "[149]\tvalidation-rmse:6.41814 \n", "[150]\tvalidation-rmse:6.41763 \n", "[151]\tvalidation-rmse:6.41716 \n", "[152]\tvalidation-rmse:6.41597 \n", "[153]\tvalidation-rmse:6.41546 \n", "[154]\tvalidation-rmse:6.41502 \n", "[155]\tvalidation-rmse:6.41463 \n", "[156]\tvalidation-rmse:6.41423 \n", "[157]\tvalidation-rmse:6.41370 \n", "[158]\tvalidation-rmse:6.41235 \n", "[159]\tvalidation-rmse:6.41252 \n", "[160]\tvalidation-rmse:6.41205 \n", "[161]\tvalidation-rmse:6.41075 \n", "[162]\tvalidation-rmse:6.41024 \n", "[163]\tvalidation-rmse:6.41038 \n", "[164]\tvalidation-rmse:6.41017 \n", "[165]\tvalidation-rmse:6.40982 \n", "[166]\tvalidation-rmse:6.40876 \n", "[167]\tvalidation-rmse:6.40888 \n", "[168]\tvalidation-rmse:6.40845 \n", "[169]\tvalidation-rmse:6.40770 \n", "[170]\tvalidation-rmse:6.40746 \n", "[171]\tvalidation-rmse:6.40689 \n", "[172]\tvalidation-rmse:6.40520 \n", "[173]\tvalidation-rmse:6.40459 \n", "[174]\tvalidation-rmse:6.40382 \n", "[175]\tvalidation-rmse:6.40366 \n", "[176]\tvalidation-rmse:6.40505 \n", "[177]\tvalidation-rmse:6.40476 \n", "[178]\tvalidation-rmse:6.40430 \n", "[179]\tvalidation-rmse:6.40371 \n", "[180]\tvalidation-rmse:6.40407 \n", "[181]\tvalidation-rmse:6.40374 \n", "[182]\tvalidation-rmse:6.40331 \n", "[183]\tvalidation-rmse:6.40253 \n", "[184]\tvalidation-rmse:6.40217 \n", "[185]\tvalidation-rmse:6.40101 \n", "[186]\tvalidation-rmse:6.40055 \n", "[187]\tvalidation-rmse:6.39986 \n", "[188]\tvalidation-rmse:6.39842 \n", "[189]\tvalidation-rmse:6.39855 \n", "[190]\tvalidation-rmse:6.39849 \n", "[191]\tvalidation-rmse:6.40017 \n", "[192]\tvalidation-rmse:6.39842 \n", "[193]\tvalidation-rmse:6.39734 \n", "[194]\tvalidation-rmse:6.39611 \n", "[195]\tvalidation-rmse:6.39431 \n", "[196]\tvalidation-rmse:6.39430 \n", "[197]\tvalidation-rmse:6.39244 \n", "[198]\tvalidation-rmse:6.39182 \n", "[199]\tvalidation-rmse:6.39021 \n", "[200]\tvalidation-rmse:6.39163 \n", "[201]\tvalidation-rmse:6.39176 \n", "[202]\tvalidation-rmse:6.39120 \n", "[203]\tvalidation-rmse:6.39159 \n", "[204]\tvalidation-rmse:6.39056 \n", "[205]\tvalidation-rmse:6.39162 \n", "[206]\tvalidation-rmse:6.39119 \n", "[207]\tvalidation-rmse:6.39073 \n", "[208]\tvalidation-rmse:6.38805 \n", "[209]\tvalidation-rmse:6.38681 \n", "[210]\tvalidation-rmse:6.38687 \n", "[211]\tvalidation-rmse:6.38657 \n", "[212]\tvalidation-rmse:6.38546 \n", "[213]\tvalidation-rmse:6.38517 \n", "[214]\tvalidation-rmse:6.38568 \n", "[215]\tvalidation-rmse:6.38573 \n", "[216]\tvalidation-rmse:6.38506 \n", "[217]\tvalidation-rmse:6.38485 \n", "[218]\tvalidation-rmse:6.38392 \n", "[219]\tvalidation-rmse:6.38400 \n", "[220]\tvalidation-rmse:6.38271 \n", "[221]\tvalidation-rmse:6.38219 \n", "[222]\tvalidation-rmse:6.38163 \n", "[223]\tvalidation-rmse:6.38249 \n", "[224]\tvalidation-rmse:6.38257 \n", "[225]\tvalidation-rmse:6.38276 \n", "[226]\tvalidation-rmse:6.38286 \n", "[227]\tvalidation-rmse:6.38266 \n", "[228]\tvalidation-rmse:6.38268 \n", "[229]\tvalidation-rmse:6.38204 \n", "[230]\tvalidation-rmse:6.38179 \n", "[231]\tvalidation-rmse:6.38187 \n", "[232]\tvalidation-rmse:6.38140 \n", "[233]\tvalidation-rmse:6.38104 \n", "[234]\tvalidation-rmse:6.37957 \n", "[235]\tvalidation-rmse:6.37896 \n", "[236]\tvalidation-rmse:6.37807 \n", "[237]\tvalidation-rmse:6.37824 \n", "[238]\tvalidation-rmse:6.37746 \n", "[239]\tvalidation-rmse:6.37679 \n", "[240]\tvalidation-rmse:6.37630 \n", "[241]\tvalidation-rmse:6.37600 \n", "[242]\tvalidation-rmse:6.37602 \n", "[243]\tvalidation-rmse:6.37577 \n", "[244]\tvalidation-rmse:6.37510 \n", "[245]\tvalidation-rmse:6.37461 \n", "[246]\tvalidation-rmse:6.37341 \n", "[247]\tvalidation-rmse:6.37316 \n", "[248]\tvalidation-rmse:6.37234 \n", "[249]\tvalidation-rmse:6.37178 \n", "[250]\tvalidation-rmse:6.37113 \n", "[251]\tvalidation-rmse:6.37025 \n", "[252]\tvalidation-rmse:6.36878 \n", "[253]\tvalidation-rmse:6.36877 \n", "[254]\tvalidation-rmse:6.36820 \n", "[255]\tvalidation-rmse:6.36832 \n", "[256]\tvalidation-rmse:6.36780 \n", "[257]\tvalidation-rmse:6.36773 \n", "[258]\tvalidation-rmse:6.36856 \n", "[259]\tvalidation-rmse:6.36788 \n", "[260]\tvalidation-rmse:6.36766 \n", "[261]\tvalidation-rmse:6.36810 \n", "[262]\tvalidation-rmse:6.36803 \n", "[263]\tvalidation-rmse:6.36777 \n", "[264]\tvalidation-rmse:6.36739 \n", "[265]\tvalidation-rmse:6.36690 \n", "[266]\tvalidation-rmse:6.36550 \n", "[267]\tvalidation-rmse:6.36611 \n", "[268]\tvalidation-rmse:6.36562 \n", "[269]\tvalidation-rmse:6.36511 \n", "[270]\tvalidation-rmse:6.36491 \n", "[271]\tvalidation-rmse:6.36440 \n", "[272]\tvalidation-rmse:6.36304 \n", "[273]\tvalidation-rmse:6.36201 \n", "[274]\tvalidation-rmse:6.36145 \n", "[275]\tvalidation-rmse:6.36059 \n", "[276]\tvalidation-rmse:6.36024 \n", "[277]\tvalidation-rmse:6.35989 \n", "[278]\tvalidation-rmse:6.36027 \n", "[279]\tvalidation-rmse:6.36084 \n", "[280]\tvalidation-rmse:6.36012 \n", "[281]\tvalidation-rmse:6.36024 \n", "[282]\tvalidation-rmse:6.35986 \n", "[283]\tvalidation-rmse:6.35938 \n", "[284]\tvalidation-rmse:6.35891 \n", "[285]\tvalidation-rmse:6.35823 \n", "[286]\tvalidation-rmse:6.35821 \n", "[287]\tvalidation-rmse:6.35824 \n", "[288]\tvalidation-rmse:6.35825 \n", "[289]\tvalidation-rmse:6.35789 \n", "[290]\tvalidation-rmse:6.35756 \n", "[291]\tvalidation-rmse:6.35725 \n", "[292]\tvalidation-rmse:6.35765 \n", "[293]\tvalidation-rmse:6.35657 \n", "[294]\tvalidation-rmse:6.35429 \n", "[295]\tvalidation-rmse:6.35744 \n", "[296]\tvalidation-rmse:6.35725 \n", "[297]\tvalidation-rmse:6.35769 \n", "[298]\tvalidation-rmse:6.35700 \n", "[299]\tvalidation-rmse:6.35658 \n", "[300]\tvalidation-rmse:6.35575 \n", "[301]\tvalidation-rmse:6.35586 \n", "[302]\tvalidation-rmse:6.35513 \n", "[303]\tvalidation-rmse:6.35496 \n", "[304]\tvalidation-rmse:6.35515 \n", "[305]\tvalidation-rmse:6.35500 \n", "[306]\tvalidation-rmse:6.35442 \n", "[307]\tvalidation-rmse:6.35378 \n", "[308]\tvalidation-rmse:6.35441 \n", "[309]\tvalidation-rmse:6.35405 \n", "[310]\tvalidation-rmse:6.35384 \n", "[311]\tvalidation-rmse:6.35370 \n", "[312]\tvalidation-rmse:6.35378 \n", "[313]\tvalidation-rmse:6.35350 \n", "[314]\tvalidation-rmse:6.35254 \n", "[315]\tvalidation-rmse:6.35211 \n", "[316]\tvalidation-rmse:6.35198 \n", "[317]\tvalidation-rmse:6.35204 \n", "[318]\tvalidation-rmse:6.35143 \n", "[319]\tvalidation-rmse:6.35066 \n", "[320]\tvalidation-rmse:6.35068 \n", "[321]\tvalidation-rmse:6.35009 \n", "[322]\tvalidation-rmse:6.35006 \n", "[323]\tvalidation-rmse:6.35005 \n", "[324]\tvalidation-rmse:6.34990 \n", "[325]\tvalidation-rmse:6.35038 \n", "[326]\tvalidation-rmse:6.35084 \n", "[327]\tvalidation-rmse:6.35062 \n", "[328]\tvalidation-rmse:6.35000 \n", "[329]\tvalidation-rmse:6.35006 \n", "[330]\tvalidation-rmse:6.34959 \n", "[331]\tvalidation-rmse:6.34904 \n", "[332]\tvalidation-rmse:6.34936 \n", "[333]\tvalidation-rmse:6.34815 \n", "[334]\tvalidation-rmse:6.34831 \n", "[335]\tvalidation-rmse:6.34858 \n", "[336]\tvalidation-rmse:6.34871 \n", "[337]\tvalidation-rmse:6.34847 \n", "[338]\tvalidation-rmse:6.34754 \n", "[339]\tvalidation-rmse:6.34663 \n", "[340]\tvalidation-rmse:6.34679 \n", "[341]\tvalidation-rmse:6.34647 \n", "[342]\tvalidation-rmse:6.34626 \n", "[343]\tvalidation-rmse:6.34662 \n", "[344]\tvalidation-rmse:6.34673 \n", "[345]\tvalidation-rmse:6.34581 \n", "[346]\tvalidation-rmse:6.34650 \n", "[347]\tvalidation-rmse:6.34632 \n", "[348]\tvalidation-rmse:6.34587 \n", "[349]\tvalidation-rmse:6.34596 \n", "[350]\tvalidation-rmse:6.34646 \n", "[351]\tvalidation-rmse:6.34638 \n", "[352]\tvalidation-rmse:6.34609 \n", "[353]\tvalidation-rmse:6.34632 \n", "[354]\tvalidation-rmse:6.34557 \n", "[355]\tvalidation-rmse:6.34605 \n", "[356]\tvalidation-rmse:6.34559 \n", "[357]\tvalidation-rmse:6.34466 \n", "[358]\tvalidation-rmse:6.34407 \n", "[359]\tvalidation-rmse:6.34440 \n", "[360]\tvalidation-rmse:6.34352 \n", "[361]\tvalidation-rmse:6.34316 \n", "[362]\tvalidation-rmse:6.34319 \n", "[363]\tvalidation-rmse:6.34214 \n", "[364]\tvalidation-rmse:6.34298 \n", "[365]\tvalidation-rmse:6.34314 \n", "[366]\tvalidation-rmse:6.34367 \n", "[367]\tvalidation-rmse:6.34427 \n", "[368]\tvalidation-rmse:6.34404 \n", "[369]\tvalidation-rmse:6.34335 \n", "[370]\tvalidation-rmse:6.34382 \n", "[371]\tvalidation-rmse:6.34359 \n", "[372]\tvalidation-rmse:6.34354 \n", "[373]\tvalidation-rmse:6.34354 \n", "[374]\tvalidation-rmse:6.34349 \n", "[375]\tvalidation-rmse:6.34357 \n", "[376]\tvalidation-rmse:6.34411 \n", "[377]\tvalidation-rmse:6.34414 \n", "[378]\tvalidation-rmse:6.34420 \n", "[379]\tvalidation-rmse:6.34342 \n", "[380]\tvalidation-rmse:6.34372 \n", "[381]\tvalidation-rmse:6.34339 \n", "[382]\tvalidation-rmse:6.34328 \n", "[383]\tvalidation-rmse:6.34313 \n", "[384]\tvalidation-rmse:6.34272 \n", "[385]\tvalidation-rmse:6.34261 \n", "[386]\tvalidation-rmse:6.34257 \n", "[387]\tvalidation-rmse:6.34312 \n", "[388]\tvalidation-rmse:6.34343 \n", "[389]\tvalidation-rmse:6.34138 \n", "[390]\tvalidation-rmse:6.34104 \n", "[391]\tvalidation-rmse:6.34142 \n", "[392]\tvalidation-rmse:6.34131 \n", "[393]\tvalidation-rmse:6.34193 \n", "[394]\tvalidation-rmse:6.34105 \n", "[395]\tvalidation-rmse:6.34128 \n", "[396]\tvalidation-rmse:6.34027 \n", "[397]\tvalidation-rmse:6.34023 \n", "[398]\tvalidation-rmse:6.34001 \n", "[399]\tvalidation-rmse:6.34004 \n", "[400]\tvalidation-rmse:6.34013 \n", "[401]\tvalidation-rmse:6.33976 \n", "[402]\tvalidation-rmse:6.33946 \n", "[403]\tvalidation-rmse:6.33939 \n", "[404]\tvalidation-rmse:6.33909 \n", "[405]\tvalidation-rmse:6.33857 \n", "[406]\tvalidation-rmse:6.33921 \n", "[407]\tvalidation-rmse:6.33911 \n", "[408]\tvalidation-rmse:6.33825 \n", "[409]\tvalidation-rmse:6.33854 \n", "[410]\tvalidation-rmse:6.33806 \n", "[411]\tvalidation-rmse:6.33856 \n", "[412]\tvalidation-rmse:6.33831 \n", "[413]\tvalidation-rmse:6.33894 \n", "[414]\tvalidation-rmse:6.33877 \n", "[415]\tvalidation-rmse:6.33833 \n", "[416]\tvalidation-rmse:6.33799 \n", "[417]\tvalidation-rmse:6.33790 \n", "[418]\tvalidation-rmse:6.33811 \n", "[419]\tvalidation-rmse:6.33767 \n", "[420]\tvalidation-rmse:6.33842 \n", "[421]\tvalidation-rmse:6.33810 \n", "[422]\tvalidation-rmse:6.33766 \n", "[423]\tvalidation-rmse:6.33754 \n", "[424]\tvalidation-rmse:6.33818 \n", "[425]\tvalidation-rmse:6.33689 \n", "[426]\tvalidation-rmse:6.33650 \n", "[427]\tvalidation-rmse:6.33608 \n", "[428]\tvalidation-rmse:6.33524 \n", "[429]\tvalidation-rmse:6.33278 \n", "[430]\tvalidation-rmse:6.33283 \n", "[431]\tvalidation-rmse:6.33258 \n", "[432]\tvalidation-rmse:6.33233 \n", "[433]\tvalidation-rmse:6.33290 \n", "[434]\tvalidation-rmse:6.33209 \n", "[435]\tvalidation-rmse:6.33193 \n", "[436]\tvalidation-rmse:6.33193 \n", "[437]\tvalidation-rmse:6.33196 \n", "[438]\tvalidation-rmse:6.33100 \n", "[439]\tvalidation-rmse:6.33119 \n", "[440]\tvalidation-rmse:6.33127 \n", "[441]\tvalidation-rmse:6.33108 \n", "[442]\tvalidation-rmse:6.33125 \n", "[443]\tvalidation-rmse:6.33017 \n", "[444]\tvalidation-rmse:6.33028 \n", "[445]\tvalidation-rmse:6.33034 \n", "[446]\tvalidation-rmse:6.33009 \n", "[447]\tvalidation-rmse:6.32978 \n", "[448]\tvalidation-rmse:6.32977 \n", "[449]\tvalidation-rmse:6.32949 \n", "[450]\tvalidation-rmse:6.32930 \n", "[451]\tvalidation-rmse:6.32942 \n", "[452]\tvalidation-rmse:6.32914 \n", "[453]\tvalidation-rmse:6.32912 \n", "[454]\tvalidation-rmse:6.32869 \n", "[455]\tvalidation-rmse:6.32930 \n", "[456]\tvalidation-rmse:6.32888 \n", "[457]\tvalidation-rmse:6.32934 \n", "[458]\tvalidation-rmse:6.32908 \n", "[459]\tvalidation-rmse:6.32954 \n", "[460]\tvalidation-rmse:6.32839 \n", "[461]\tvalidation-rmse:6.32830 \n", "[462]\tvalidation-rmse:6.32778 \n", "[463]\tvalidation-rmse:6.32791 \n", "[464]\tvalidation-rmse:6.32808 \n", "[465]\tvalidation-rmse:6.32796 \n", "[466]\tvalidation-rmse:6.32759 \n", "[467]\tvalidation-rmse:6.32763 \n", "[468]\tvalidation-rmse:6.32738 \n", "[469]\tvalidation-rmse:6.32700 \n", "[470]\tvalidation-rmse:6.32636 \n", "[471]\tvalidation-rmse:6.32601 \n", "[472]\tvalidation-rmse:6.32577 \n", "[473]\tvalidation-rmse:6.32600 \n", "[474]\tvalidation-rmse:6.32560 \n", "[475]\tvalidation-rmse:6.32579 \n", "[476]\tvalidation-rmse:6.32563 \n", "[477]\tvalidation-rmse:6.32482 \n", "[478]\tvalidation-rmse:6.32507 \n", "[479]\tvalidation-rmse:6.32517 \n", "[480]\tvalidation-rmse:6.32497 \n", "[481]\tvalidation-rmse:6.32533 \n", "[482]\tvalidation-rmse:6.32504 \n", "[483]\tvalidation-rmse:6.32456 \n", "[484]\tvalidation-rmse:6.32427 \n", "[485]\tvalidation-rmse:6.32403 \n", "[486]\tvalidation-rmse:6.32313 \n", "[487]\tvalidation-rmse:6.32339 \n", "[488]\tvalidation-rmse:6.32379 \n", "[489]\tvalidation-rmse:6.32403 \n", "[490]\tvalidation-rmse:6.32383 \n", "[491]\tvalidation-rmse:6.32310 \n", "[492]\tvalidation-rmse:6.32300 \n", "[493]\tvalidation-rmse:6.32308 \n", "[494]\tvalidation-rmse:6.32259 \n", "[495]\tvalidation-rmse:6.32247 \n", "[496]\tvalidation-rmse:6.32246 \n", "[497]\tvalidation-rmse:6.32217 \n", "[498]\tvalidation-rmse:6.32187 \n", "[499]\tvalidation-rmse:6.32326 \n", "[500]\tvalidation-rmse:6.32329 \n", "[501]\tvalidation-rmse:6.32298 \n", "[502]\tvalidation-rmse:6.32320 \n", "[503]\tvalidation-rmse:6.32324 \n", "[504]\tvalidation-rmse:6.32320 \n", "[505]\tvalidation-rmse:6.32147 \n", "[506]\tvalidation-rmse:6.32068 \n", "[507]\tvalidation-rmse:6.32090 \n", "[508]\tvalidation-rmse:6.32139 \n", "[509]\tvalidation-rmse:6.32093 \n", "[510]\tvalidation-rmse:6.32108 \n", "[511]\tvalidation-rmse:6.32136 \n", "[512]\tvalidation-rmse:6.32107 \n", "[513]\tvalidation-rmse:6.32063 \n", "[514]\tvalidation-rmse:6.32027 \n", "[515]\tvalidation-rmse:6.32022 \n", "[516]\tvalidation-rmse:6.31968 \n", "[517]\tvalidation-rmse:6.31952 \n", "[518]\tvalidation-rmse:6.31953 \n", "[519]\tvalidation-rmse:6.31942 \n", "[520]\tvalidation-rmse:6.31919 \n", "[521]\tvalidation-rmse:6.31965 \n", "[522]\tvalidation-rmse:6.31954 \n", "[523]\tvalidation-rmse:6.31928 \n", "[524]\tvalidation-rmse:6.31939 \n", "[525]\tvalidation-rmse:6.31947 \n", "[526]\tvalidation-rmse:6.31916 \n", "[527]\tvalidation-rmse:6.31928 \n", "[528]\tvalidation-rmse:6.31900 \n", "[529]\tvalidation-rmse:6.31818 \n", "[530]\tvalidation-rmse:6.31814 \n", "[531]\tvalidation-rmse:6.31839 \n", "[532]\tvalidation-rmse:6.31763 \n", "[533]\tvalidation-rmse:6.31783 \n", "[534]\tvalidation-rmse:6.31812 \n", "[535]\tvalidation-rmse:6.31798 \n", "[536]\tvalidation-rmse:6.31768 \n", "[537]\tvalidation-rmse:6.31774 \n", "[538]\tvalidation-rmse:6.31779 \n", "[539]\tvalidation-rmse:6.31787 \n", "[540]\tvalidation-rmse:6.31786 \n", "[541]\tvalidation-rmse:6.31770 \n", "[542]\tvalidation-rmse:6.31767 \n", "[543]\tvalidation-rmse:6.31724 \n", "[544]\tvalidation-rmse:6.31726 \n", "[545]\tvalidation-rmse:6.31728 \n", "[546]\tvalidation-rmse:6.31744 \n", "[547]\tvalidation-rmse:6.31709 \n", "[548]\tvalidation-rmse:6.31724 \n", "[549]\tvalidation-rmse:6.31693 \n", "[550]\tvalidation-rmse:6.31692 \n", "[551]\tvalidation-rmse:6.31705 \n", "[552]\tvalidation-rmse:6.31781 \n", "[553]\tvalidation-rmse:6.31794 \n", "[554]\tvalidation-rmse:6.31740 \n", "[555]\tvalidation-rmse:6.31804 \n", "[556]\tvalidation-rmse:6.31783 \n", "[557]\tvalidation-rmse:6.31716 \n", "[558]\tvalidation-rmse:6.31695 \n", "[559]\tvalidation-rmse:6.31699 \n", "[560]\tvalidation-rmse:6.31706 \n", "[561]\tvalidation-rmse:6.31706 \n", "[562]\tvalidation-rmse:6.31599 \n", "[563]\tvalidation-rmse:6.31647 \n", "[564]\tvalidation-rmse:6.31660 \n", "[565]\tvalidation-rmse:6.31658 \n", "[566]\tvalidation-rmse:6.31715 \n", "[567]\tvalidation-rmse:6.31751 \n", "[568]\tvalidation-rmse:6.31754 \n", "[569]\tvalidation-rmse:6.31737 \n", "[570]\tvalidation-rmse:6.31700 \n", "[571]\tvalidation-rmse:6.31597 \n", "[572]\tvalidation-rmse:6.31591 \n", "[573]\tvalidation-rmse:6.31570 \n", "[574]\tvalidation-rmse:6.31570 \n", "[575]\tvalidation-rmse:6.31627 \n", "[576]\tvalidation-rmse:6.31630 \n", "[577]\tvalidation-rmse:6.31611 \n", "[578]\tvalidation-rmse:6.31627 \n", "[579]\tvalidation-rmse:6.31636 \n", "[580]\tvalidation-rmse:6.31640 \n", "[581]\tvalidation-rmse:6.31619 \n", "[582]\tvalidation-rmse:6.31666 \n", "[583]\tvalidation-rmse:6.31708 \n", "[584]\tvalidation-rmse:6.31726 \n", "[585]\tvalidation-rmse:6.31749 \n", "[586]\tvalidation-rmse:6.31723 \n", "[587]\tvalidation-rmse:6.31676 \n", "[588]\tvalidation-rmse:6.31646 \n", "[589]\tvalidation-rmse:6.31630 \n", "[590]\tvalidation-rmse:6.31657 \n", "[591]\tvalidation-rmse:6.31614 \n", "[592]\tvalidation-rmse:6.31595 \n", "[593]\tvalidation-rmse:6.31619 \n", "[594]\tvalidation-rmse:6.31629 \n", "[595]\tvalidation-rmse:6.31634 \n", "[596]\tvalidation-rmse:6.31791 \n", "[597]\tvalidation-rmse:6.31810 \n", "[598]\tvalidation-rmse:6.31730 \n", "[599]\tvalidation-rmse:6.31776 \n", "[600]\tvalidation-rmse:6.31800 \n", "[601]\tvalidation-rmse:6.31832 \n", "[602]\tvalidation-rmse:6.31827 \n", "[603]\tvalidation-rmse:6.31903 \n", "[604]\tvalidation-rmse:6.31917 \n", "[605]\tvalidation-rmse:6.31918 \n", "[606]\tvalidation-rmse:6.31908 \n", "[607]\tvalidation-rmse:6.31912 \n", "[608]\tvalidation-rmse:6.31923 \n", "[609]\tvalidation-rmse:6.31960 \n", "[610]\tvalidation-rmse:6.32004 \n", "[611]\tvalidation-rmse:6.32009 \n", "[612]\tvalidation-rmse:6.32001 \n", "[613]\tvalidation-rmse:6.32042 \n", "[614]\tvalidation-rmse:6.32046 \n", "[615]\tvalidation-rmse:6.32032 \n", "[616]\tvalidation-rmse:6.32054 \n", "[617]\tvalidation-rmse:6.32041 \n", "[618]\tvalidation-rmse:6.32097 \n", "[619]\tvalidation-rmse:6.32132 \n", "[620]\tvalidation-rmse:6.32137 \n", "[621]\tvalidation-rmse:6.32175 \n", "[622]\tvalidation-rmse:6.32172 \n", "[12:49:49] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.21742 \n", "[1]\tvalidation-rmse:8.58470 \n", "[2]\tvalidation-rmse:7.28742 \n", "[3]\tvalidation-rmse:6.83830 \n", "[4]\tvalidation-rmse:6.65775 \n", "[5]\tvalidation-rmse:6.57839 \n", "[6]\tvalidation-rmse:6.53644 \n", "[7]\tvalidation-rmse:6.51776 \n", "[8]\tvalidation-rmse:6.50818 \n", "[9]\tvalidation-rmse:6.50172 \n", "[10]\tvalidation-rmse:6.49650 \n", "[11]\tvalidation-rmse:6.48956 \n", "[12]\tvalidation-rmse:6.48298 \n", "[13]\tvalidation-rmse:6.47936 \n", "[14]\tvalidation-rmse:6.47461 \n", "[15]\tvalidation-rmse:6.47099 \n", "[16]\tvalidation-rmse:6.46963 \n", "[17]\tvalidation-rmse:6.46611 \n", "[18]\tvalidation-rmse:6.46395 \n", "[19]\tvalidation-rmse:6.46219 \n", "[20]\tvalidation-rmse:6.46039 \n", "[21]\tvalidation-rmse:6.45928 \n", "[22]\tvalidation-rmse:6.45708 \n", "[23]\tvalidation-rmse:6.45498 \n", "[24]\tvalidation-rmse:6.45193 \n", "[25]\tvalidation-rmse:6.45074 \n", "[26]\tvalidation-rmse:6.45006 \n", "[27]\tvalidation-rmse:6.44820 \n", "[28]\tvalidation-rmse:6.44685 \n", "[29]\tvalidation-rmse:6.44605 \n", "[30]\tvalidation-rmse:6.44601 \n", "[31]\tvalidation-rmse:6.44575 \n", "[32]\tvalidation-rmse:6.44521 \n", "[33]\tvalidation-rmse:6.44508 \n", "[34]\tvalidation-rmse:6.44442 \n", "[35]\tvalidation-rmse:6.44042 \n", "[36]\tvalidation-rmse:6.43907 \n", "[37]\tvalidation-rmse:6.43778 \n", "[38]\tvalidation-rmse:6.43810 \n", "[39]\tvalidation-rmse:6.43692 \n", "[40]\tvalidation-rmse:6.43787 \n", "[41]\tvalidation-rmse:6.43763 \n", "[42]\tvalidation-rmse:6.43685 \n", "[43]\tvalidation-rmse:6.43500 \n", "[44]\tvalidation-rmse:6.43524 \n", "[45]\tvalidation-rmse:6.43659 \n", "[46]\tvalidation-rmse:6.43649 \n", "[47]\tvalidation-rmse:6.43526 \n", "[48]\tvalidation-rmse:6.43444 \n", "[49]\tvalidation-rmse:6.43408 \n", "[50]\tvalidation-rmse:6.43549 \n", "[51]\tvalidation-rmse:6.43433 \n", "[52]\tvalidation-rmse:6.43382 \n", "[53]\tvalidation-rmse:6.43483 \n", "[54]\tvalidation-rmse:6.43622 \n", "[55]\tvalidation-rmse:6.43480 \n", "[56]\tvalidation-rmse:6.43554 \n", "[57]\tvalidation-rmse:6.43617 \n", "[58]\tvalidation-rmse:6.43620 \n", "[59]\tvalidation-rmse:6.43672 \n", "[60]\tvalidation-rmse:6.43750 \n", "[61]\tvalidation-rmse:6.43719 \n", "[62]\tvalidation-rmse:6.43943 \n", "[63]\tvalidation-rmse:6.43935 \n", "[64]\tvalidation-rmse:6.43923 \n", "[65]\tvalidation-rmse:6.43890 \n", "[66]\tvalidation-rmse:6.43983 \n", "[67]\tvalidation-rmse:6.43956 \n", "[68]\tvalidation-rmse:6.44110 \n", "[69]\tvalidation-rmse:6.44172 \n", "[70]\tvalidation-rmse:6.44489 \n", "[71]\tvalidation-rmse:6.44672 \n", "[72]\tvalidation-rmse:6.44677 \n", "[73]\tvalidation-rmse:6.44787 \n", "[74]\tvalidation-rmse:6.44876 \n", "[75]\tvalidation-rmse:6.44941 \n", "[76]\tvalidation-rmse:6.45038 \n", "[77]\tvalidation-rmse:6.45040 \n", "[78]\tvalidation-rmse:6.45138 \n", "[79]\tvalidation-rmse:6.45111 \n", "[80]\tvalidation-rmse:6.44981 \n", "[81]\tvalidation-rmse:6.45016 \n", "[82]\tvalidation-rmse:6.44978 \n", "[83]\tvalidation-rmse:6.45023 \n", "[84]\tvalidation-rmse:6.45107 \n", "[85]\tvalidation-rmse:6.45219 \n", "[86]\tvalidation-rmse:6.45215 \n", "[87]\tvalidation-rmse:6.45548 \n", "[88]\tvalidation-rmse:6.45677 \n", "[89]\tvalidation-rmse:6.45709 \n", "[90]\tvalidation-rmse:6.45835 \n", "[91]\tvalidation-rmse:6.45849 \n", "[92]\tvalidation-rmse:6.46092 \n", "[93]\tvalidation-rmse:6.46091 \n", "[94]\tvalidation-rmse:6.46120 \n", "[95]\tvalidation-rmse:6.46069 \n", "[96]\tvalidation-rmse:6.46062 \n", "[97]\tvalidation-rmse:6.46116 \n", "[98]\tvalidation-rmse:6.46202 \n", "[99]\tvalidation-rmse:6.46131 \n", "[100]\tvalidation-rmse:6.46084 \n", "[101]\tvalidation-rmse:6.46148 \n", "[12:50:25] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.95977 \n", "[1]\tvalidation-rmse:18.82241 \n", "[2]\tvalidation-rmse:17.77106 \n", "[3]\tvalidation-rmse:16.80110 \n", "[4]\tvalidation-rmse:15.90780 \n", "[5]\tvalidation-rmse:15.08661 \n", "[6]\tvalidation-rmse:14.33073 \n", "[7]\tvalidation-rmse:13.63435 \n", "[8]\tvalidation-rmse:12.99986 \n", "[9]\tvalidation-rmse:12.41287 \n", "[10]\tvalidation-rmse:11.87931 \n", "[11]\tvalidation-rmse:11.38960 \n", "[12]\tvalidation-rmse:10.94480 \n", "[13]\tvalidation-rmse:10.53626 \n", "[14]\tvalidation-rmse:10.16743 \n", "[15]\tvalidation-rmse:9.83092 \n", "[16]\tvalidation-rmse:9.52314 \n", "[17]\tvalidation-rmse:9.24688 \n", "[18]\tvalidation-rmse:8.99610 \n", "[19]\tvalidation-rmse:8.76825 \n", "[20]\tvalidation-rmse:8.56071 \n", "[21]\tvalidation-rmse:8.37566 \n", "[22]\tvalidation-rmse:8.20665 \n", "[23]\tvalidation-rmse:8.05413 \n", "[24]\tvalidation-rmse:7.91750 \n", "[25]\tvalidation-rmse:7.79350 \n", "[26]\tvalidation-rmse:7.68009 \n", "[27]\tvalidation-rmse:7.57945 \n", "[28]\tvalidation-rmse:7.48799 \n", "[29]\tvalidation-rmse:7.40583 \n", "[30]\tvalidation-rmse:7.32957 \n", "[31]\tvalidation-rmse:7.26208 \n", "[32]\tvalidation-rmse:7.20131 \n", "[33]\tvalidation-rmse:7.14401 \n", "[34]\tvalidation-rmse:7.09505 \n", "[35]\tvalidation-rmse:7.04886 \n", "[36]\tvalidation-rmse:7.00796 \n", "[37]\tvalidation-rmse:6.97064 \n", "[38]\tvalidation-rmse:6.93575 \n", "[39]\tvalidation-rmse:6.90474 \n", "[40]\tvalidation-rmse:6.87691 \n", "[41]\tvalidation-rmse:6.85117 \n", "[42]\tvalidation-rmse:6.82637 \n", "[43]\tvalidation-rmse:6.80509 \n", "[44]\tvalidation-rmse:6.78564 \n", "[45]\tvalidation-rmse:6.76721 \n", "[46]\tvalidation-rmse:6.75102 \n", "[47]\tvalidation-rmse:6.73566 \n", "[48]\tvalidation-rmse:6.72139 \n", "[49]\tvalidation-rmse:6.70802 \n", "[50]\tvalidation-rmse:6.69609 \n", "[51]\tvalidation-rmse:6.68565 \n", "[52]\tvalidation-rmse:6.67540 \n", "[53]\tvalidation-rmse:6.66667 \n", "[54]\tvalidation-rmse:6.65854 \n", "[55]\tvalidation-rmse:6.65036 \n", "[56]\tvalidation-rmse:6.64354 \n", "[57]\tvalidation-rmse:6.63715 \n", "[58]\tvalidation-rmse:6.63062 \n", "[59]\tvalidation-rmse:6.62449 \n", "[60]\tvalidation-rmse:6.61895 \n", "[61]\tvalidation-rmse:6.61396 \n", "[62]\tvalidation-rmse:6.60927 \n", "[63]\tvalidation-rmse:6.60493 \n", "[64]\tvalidation-rmse:6.60109 \n", "[65]\tvalidation-rmse:6.59685 \n", "[66]\tvalidation-rmse:6.59357 \n", "[67]\tvalidation-rmse:6.58998 \n", "[68]\tvalidation-rmse:6.58684 \n", "[69]\tvalidation-rmse:6.58380 \n", "[70]\tvalidation-rmse:6.58106 \n", "[71]\tvalidation-rmse:6.57870 \n", "[72]\tvalidation-rmse:6.57656 \n", "[73]\tvalidation-rmse:6.57439 \n", "[74]\tvalidation-rmse:6.57275 \n", "[75]\tvalidation-rmse:6.57100 \n", "[76]\tvalidation-rmse:6.56911 \n", "[77]\tvalidation-rmse:6.56698 \n", "[78]\tvalidation-rmse:6.56514 \n", "[79]\tvalidation-rmse:6.56327 \n", "[80]\tvalidation-rmse:6.56211 \n", "[81]\tvalidation-rmse:6.56075 \n", "[82]\tvalidation-rmse:6.55938 \n", "[83]\tvalidation-rmse:6.55784 \n", "[84]\tvalidation-rmse:6.55622 \n", "[85]\tvalidation-rmse:6.55505 \n", "[86]\tvalidation-rmse:6.55401 \n", "[87]\tvalidation-rmse:6.55320 \n", "[88]\tvalidation-rmse:6.55229 \n", "[89]\tvalidation-rmse:6.55164 \n", "[90]\tvalidation-rmse:6.55027 \n", "[91]\tvalidation-rmse:6.54934 \n", "[92]\tvalidation-rmse:6.54843 \n", "[93]\tvalidation-rmse:6.54707 \n", "[94]\tvalidation-rmse:6.54643 \n", "[95]\tvalidation-rmse:6.54564 \n", "[96]\tvalidation-rmse:6.54449 \n", "[97]\tvalidation-rmse:6.54368 \n", "[98]\tvalidation-rmse:6.54273 \n", "[99]\tvalidation-rmse:6.54199 \n", "[100]\tvalidation-rmse:6.54134 \n", "[101]\tvalidation-rmse:6.54086 \n", "[102]\tvalidation-rmse:6.54010 \n", "[103]\tvalidation-rmse:6.53890 \n", "[104]\tvalidation-rmse:6.53837 \n", "[105]\tvalidation-rmse:6.53752 \n", "[106]\tvalidation-rmse:6.53664 \n", "[107]\tvalidation-rmse:6.53619 \n", "[108]\tvalidation-rmse:6.53562 \n", "[109]\tvalidation-rmse:6.53522 \n", "[110]\tvalidation-rmse:6.53491 \n", "[111]\tvalidation-rmse:6.53449 \n", "[112]\tvalidation-rmse:6.53407 \n", "[113]\tvalidation-rmse:6.53320 \n", "[114]\tvalidation-rmse:6.53293 \n", "[115]\tvalidation-rmse:6.53244 \n", "[116]\tvalidation-rmse:6.53176 \n", "[117]\tvalidation-rmse:6.53131 \n", "[118]\tvalidation-rmse:6.53075 \n", "[119]\tvalidation-rmse:6.53009 \n", "[120]\tvalidation-rmse:6.52966 \n", "[121]\tvalidation-rmse:6.52922 \n", "[122]\tvalidation-rmse:6.52849 \n", "[123]\tvalidation-rmse:6.52812 \n", "[124]\tvalidation-rmse:6.52751 \n", "[125]\tvalidation-rmse:6.52702 \n", "[126]\tvalidation-rmse:6.52652 \n", "[127]\tvalidation-rmse:6.52585 \n", "[128]\tvalidation-rmse:6.52536 \n", "[129]\tvalidation-rmse:6.52517 \n", "[130]\tvalidation-rmse:6.52494 \n", "[131]\tvalidation-rmse:6.52414 \n", "[132]\tvalidation-rmse:6.52380 \n", "[133]\tvalidation-rmse:6.52328 \n", "[134]\tvalidation-rmse:6.52255 \n", "[135]\tvalidation-rmse:6.52218 \n", "[136]\tvalidation-rmse:6.52183 \n", "[137]\tvalidation-rmse:6.52140 \n", "[138]\tvalidation-rmse:6.52085 \n", "[139]\tvalidation-rmse:6.52050 \n", "[140]\tvalidation-rmse:6.52022 \n", "[141]\tvalidation-rmse:6.51994 \n", "[142]\tvalidation-rmse:6.51964 \n", "[143]\tvalidation-rmse:6.51943 \n", "[144]\tvalidation-rmse:6.51919 \n", "[145]\tvalidation-rmse:6.51880 \n", "[146]\tvalidation-rmse:6.51843 \n", "[147]\tvalidation-rmse:6.51822 \n", "[148]\tvalidation-rmse:6.51794 \n", "[149]\tvalidation-rmse:6.51752 \n", "[150]\tvalidation-rmse:6.51689 \n", "[151]\tvalidation-rmse:6.51656 \n", "[152]\tvalidation-rmse:6.51626 \n", "[153]\tvalidation-rmse:6.51573 \n", "[154]\tvalidation-rmse:6.51525 \n", "[155]\tvalidation-rmse:6.51490 \n", "[156]\tvalidation-rmse:6.51474 \n", "[157]\tvalidation-rmse:6.51438 \n", "[158]\tvalidation-rmse:6.51408 \n", "[159]\tvalidation-rmse:6.51377 \n", "[160]\tvalidation-rmse:6.51353 \n", "[161]\tvalidation-rmse:6.51323 \n", "[162]\tvalidation-rmse:6.51289 \n", "[163]\tvalidation-rmse:6.51257 \n", "[164]\tvalidation-rmse:6.51184 \n", "[165]\tvalidation-rmse:6.51160 \n", "[166]\tvalidation-rmse:6.51120 \n", "[167]\tvalidation-rmse:6.51073 \n", "[168]\tvalidation-rmse:6.51043 \n", "[169]\tvalidation-rmse:6.50998 \n", "[170]\tvalidation-rmse:6.50978 \n", "[171]\tvalidation-rmse:6.50935 \n", "[172]\tvalidation-rmse:6.50875 \n", "[173]\tvalidation-rmse:6.50851 \n", "[174]\tvalidation-rmse:6.50815 \n", "[175]\tvalidation-rmse:6.50751 \n", "[176]\tvalidation-rmse:6.50710 \n", "[177]\tvalidation-rmse:6.50661 \n", "[178]\tvalidation-rmse:6.50632 \n", "[179]\tvalidation-rmse:6.50612 \n", "[180]\tvalidation-rmse:6.50563 \n", "[181]\tvalidation-rmse:6.50533 \n", "[182]\tvalidation-rmse:6.50482 \n", "[183]\tvalidation-rmse:6.50455 \n", "[184]\tvalidation-rmse:6.50435 \n", "[185]\tvalidation-rmse:6.50412 \n", "[186]\tvalidation-rmse:6.50339 \n", "[187]\tvalidation-rmse:6.50325 \n", "[188]\tvalidation-rmse:6.50321 \n", "[189]\tvalidation-rmse:6.50292 \n", "[190]\tvalidation-rmse:6.50272 \n", "[191]\tvalidation-rmse:6.50237 \n", "[192]\tvalidation-rmse:6.50219 \n", "[193]\tvalidation-rmse:6.50205 \n", "[194]\tvalidation-rmse:6.50173 \n", "[195]\tvalidation-rmse:6.50151 \n", "[196]\tvalidation-rmse:6.50110 \n", "[197]\tvalidation-rmse:6.50069 \n", "[198]\tvalidation-rmse:6.50050 \n", "[199]\tvalidation-rmse:6.50022 \n", "[200]\tvalidation-rmse:6.49960 \n", "[201]\tvalidation-rmse:6.49918 \n", "[202]\tvalidation-rmse:6.49884 \n", "[203]\tvalidation-rmse:6.49879 \n", "[204]\tvalidation-rmse:6.49861 \n", "[205]\tvalidation-rmse:6.49840 \n", "[206]\tvalidation-rmse:6.49796 \n", "[207]\tvalidation-rmse:6.49761 \n", "[208]\tvalidation-rmse:6.49731 \n", "[209]\tvalidation-rmse:6.49733 \n", "[210]\tvalidation-rmse:6.49686 \n", "[211]\tvalidation-rmse:6.49676 \n", "[212]\tvalidation-rmse:6.49631 \n", "[213]\tvalidation-rmse:6.49596 \n", "[214]\tvalidation-rmse:6.49591 \n", "[215]\tvalidation-rmse:6.49559 \n", "[216]\tvalidation-rmse:6.49514 \n", "[217]\tvalidation-rmse:6.49488 \n", "[218]\tvalidation-rmse:6.49457 \n", "[219]\tvalidation-rmse:6.49436 \n", "[220]\tvalidation-rmse:6.49410 \n", "[221]\tvalidation-rmse:6.49384 \n", "[222]\tvalidation-rmse:6.49358 \n", "[223]\tvalidation-rmse:6.49335 \n", "[224]\tvalidation-rmse:6.49302 \n", "[225]\tvalidation-rmse:6.49286 \n", "[226]\tvalidation-rmse:6.49260 \n", "[227]\tvalidation-rmse:6.49207 \n", "[228]\tvalidation-rmse:6.49163 \n", "[229]\tvalidation-rmse:6.49139 \n", "[230]\tvalidation-rmse:6.49106 \n", "[231]\tvalidation-rmse:6.49078 \n", "[232]\tvalidation-rmse:6.49042 \n", "[233]\tvalidation-rmse:6.49010 \n", "[234]\tvalidation-rmse:6.48957 \n", "[235]\tvalidation-rmse:6.48956 \n", "[236]\tvalidation-rmse:6.48911 \n", "[237]\tvalidation-rmse:6.48877 \n", "[238]\tvalidation-rmse:6.48846 \n", "[239]\tvalidation-rmse:6.48819 \n", "[240]\tvalidation-rmse:6.48809 \n", "[241]\tvalidation-rmse:6.48790 \n", "[242]\tvalidation-rmse:6.48766 \n", "[243]\tvalidation-rmse:6.48758 \n", "[244]\tvalidation-rmse:6.48736 \n", "[245]\tvalidation-rmse:6.48735 \n", "[246]\tvalidation-rmse:6.48722 \n", "[247]\tvalidation-rmse:6.48711 \n", "[248]\tvalidation-rmse:6.48690 \n", "[249]\tvalidation-rmse:6.48670 \n", "[250]\tvalidation-rmse:6.48652 \n", "[251]\tvalidation-rmse:6.48636 \n", "[252]\tvalidation-rmse:6.48615 \n", "[253]\tvalidation-rmse:6.48598 \n", "[254]\tvalidation-rmse:6.48570 \n", "[255]\tvalidation-rmse:6.48528 \n", "[256]\tvalidation-rmse:6.48513 \n", "[257]\tvalidation-rmse:6.48470 \n", "[258]\tvalidation-rmse:6.48446 \n", "[259]\tvalidation-rmse:6.48412 \n", "[260]\tvalidation-rmse:6.48401 \n", "[261]\tvalidation-rmse:6.48366 \n", "[262]\tvalidation-rmse:6.48349 \n", "[263]\tvalidation-rmse:6.48331 \n", "[264]\tvalidation-rmse:6.48299 \n", "[265]\tvalidation-rmse:6.48290 \n", "[266]\tvalidation-rmse:6.48276 \n", "[267]\tvalidation-rmse:6.48250 \n", "[268]\tvalidation-rmse:6.48243 \n", "[269]\tvalidation-rmse:6.48208 \n", "[270]\tvalidation-rmse:6.48186 \n", "[271]\tvalidation-rmse:6.48156 \n", "[272]\tvalidation-rmse:6.48134 \n", "[273]\tvalidation-rmse:6.48110 \n", "[274]\tvalidation-rmse:6.48081 \n", "[275]\tvalidation-rmse:6.48058 \n", "[276]\tvalidation-rmse:6.48046 \n", "[277]\tvalidation-rmse:6.48048 \n", "[278]\tvalidation-rmse:6.48027 \n", "[279]\tvalidation-rmse:6.47998 \n", "[280]\tvalidation-rmse:6.47976 \n", "[281]\tvalidation-rmse:6.47959 \n", "[282]\tvalidation-rmse:6.47934 \n", "[283]\tvalidation-rmse:6.47902 \n", "[284]\tvalidation-rmse:6.47864 \n", "[285]\tvalidation-rmse:6.47837 \n", "[286]\tvalidation-rmse:6.47817 \n", "[287]\tvalidation-rmse:6.47791 \n", "[288]\tvalidation-rmse:6.47740 \n", "[289]\tvalidation-rmse:6.47727 \n", "[290]\tvalidation-rmse:6.47698 \n", "[291]\tvalidation-rmse:6.47667 \n", "[292]\tvalidation-rmse:6.47651 \n", "[293]\tvalidation-rmse:6.47644 \n", "[294]\tvalidation-rmse:6.47623 \n", "[295]\tvalidation-rmse:6.47594 \n", "[296]\tvalidation-rmse:6.47536 \n", "[297]\tvalidation-rmse:6.47505 \n", "[298]\tvalidation-rmse:6.47479 \n", "[299]\tvalidation-rmse:6.47449 \n", "[300]\tvalidation-rmse:6.47403 \n", "[301]\tvalidation-rmse:6.47383 \n", "[302]\tvalidation-rmse:6.47354 \n", "[303]\tvalidation-rmse:6.47320 \n", "[304]\tvalidation-rmse:6.47318 \n", "[305]\tvalidation-rmse:6.47302 \n", "[306]\tvalidation-rmse:6.47274 \n", "[307]\tvalidation-rmse:6.47279 \n", "[308]\tvalidation-rmse:6.47249 \n", "[309]\tvalidation-rmse:6.47222 \n", "[310]\tvalidation-rmse:6.47203 \n", "[311]\tvalidation-rmse:6.47193 \n", "[312]\tvalidation-rmse:6.47174 \n", "[313]\tvalidation-rmse:6.47163 \n", "[314]\tvalidation-rmse:6.47176 \n", "[315]\tvalidation-rmse:6.47150 \n", "[316]\tvalidation-rmse:6.47137 \n", "[317]\tvalidation-rmse:6.47136 \n", "[318]\tvalidation-rmse:6.47109 \n", "[319]\tvalidation-rmse:6.47095 \n", "[320]\tvalidation-rmse:6.47081 \n", "[321]\tvalidation-rmse:6.47056 \n", "[322]\tvalidation-rmse:6.47040 \n", "[323]\tvalidation-rmse:6.47031 \n", "[324]\tvalidation-rmse:6.47007 \n", "[325]\tvalidation-rmse:6.46987 \n", "[326]\tvalidation-rmse:6.46950 \n", "[327]\tvalidation-rmse:6.46933 \n", "[328]\tvalidation-rmse:6.46943 \n", "[329]\tvalidation-rmse:6.46925 \n", "[330]\tvalidation-rmse:6.46903 \n", "[331]\tvalidation-rmse:6.46888 \n", "[332]\tvalidation-rmse:6.46873 \n", "[333]\tvalidation-rmse:6.46844 \n", "[334]\tvalidation-rmse:6.46820 \n", "[335]\tvalidation-rmse:6.46826 \n", "[336]\tvalidation-rmse:6.46801 \n", "[337]\tvalidation-rmse:6.46782 \n", "[338]\tvalidation-rmse:6.46759 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46678 \n", "[341]\tvalidation-rmse:6.46653 \n", "[342]\tvalidation-rmse:6.46627 \n", "[343]\tvalidation-rmse:6.46626 \n", "[344]\tvalidation-rmse:6.46603 \n", "[345]\tvalidation-rmse:6.46592 \n", "[346]\tvalidation-rmse:6.46559 \n", "[347]\tvalidation-rmse:6.46536 \n", "[348]\tvalidation-rmse:6.46510 \n", "[349]\tvalidation-rmse:6.46502 \n", "[350]\tvalidation-rmse:6.46473 \n", "[351]\tvalidation-rmse:6.46451 \n", "[352]\tvalidation-rmse:6.46432 \n", "[353]\tvalidation-rmse:6.46422 \n", "[354]\tvalidation-rmse:6.46408 \n", "[355]\tvalidation-rmse:6.46397 \n", "[356]\tvalidation-rmse:6.46388 \n", "[357]\tvalidation-rmse:6.46389 \n", "[358]\tvalidation-rmse:6.46363 \n", "[359]\tvalidation-rmse:6.46335 \n", "[360]\tvalidation-rmse:6.46312 \n", "[361]\tvalidation-rmse:6.46278 \n", "[362]\tvalidation-rmse:6.46259 \n", "[363]\tvalidation-rmse:6.46240 \n", "[364]\tvalidation-rmse:6.46230 \n", "[365]\tvalidation-rmse:6.46211 \n", "[366]\tvalidation-rmse:6.46172 \n", "[367]\tvalidation-rmse:6.46149 \n", "[368]\tvalidation-rmse:6.46133 \n", "[369]\tvalidation-rmse:6.46092 \n", "[370]\tvalidation-rmse:6.46085 \n", "[371]\tvalidation-rmse:6.46056 \n", "[372]\tvalidation-rmse:6.46031 \n", "[373]\tvalidation-rmse:6.46010 \n", "[374]\tvalidation-rmse:6.45976 \n", "[375]\tvalidation-rmse:6.45969 \n", "[376]\tvalidation-rmse:6.45945 \n", "[377]\tvalidation-rmse:6.45917 \n", "[378]\tvalidation-rmse:6.45904 \n", "[379]\tvalidation-rmse:6.45898 \n", "[380]\tvalidation-rmse:6.45877 \n", "[381]\tvalidation-rmse:6.45852 \n", "[382]\tvalidation-rmse:6.45827 \n", "[383]\tvalidation-rmse:6.45801 \n", "[384]\tvalidation-rmse:6.45798 \n", "[385]\tvalidation-rmse:6.45796 \n", "[386]\tvalidation-rmse:6.45768 \n", "[387]\tvalidation-rmse:6.45749 \n", "[388]\tvalidation-rmse:6.45732 \n", "[389]\tvalidation-rmse:6.45712 \n", "[390]\tvalidation-rmse:6.45672 \n", "[391]\tvalidation-rmse:6.45663 \n", "[392]\tvalidation-rmse:6.45650 \n", "[393]\tvalidation-rmse:6.45639 \n", "[394]\tvalidation-rmse:6.45632 \n", "[395]\tvalidation-rmse:6.45635 \n", "[396]\tvalidation-rmse:6.45631 \n", "[397]\tvalidation-rmse:6.45609 \n", "[398]\tvalidation-rmse:6.45594 \n", "[399]\tvalidation-rmse:6.45577 \n", "[400]\tvalidation-rmse:6.45581 \n", "[401]\tvalidation-rmse:6.45573 \n", "[402]\tvalidation-rmse:6.45568 \n", "[403]\tvalidation-rmse:6.45561 \n", "[404]\tvalidation-rmse:6.45549 \n", "[405]\tvalidation-rmse:6.45528 \n", "[406]\tvalidation-rmse:6.45503 \n", "[407]\tvalidation-rmse:6.45483 \n", "[408]\tvalidation-rmse:6.45473 \n", "[409]\tvalidation-rmse:6.45466 \n", "[410]\tvalidation-rmse:6.45438 \n", "[411]\tvalidation-rmse:6.45418 \n", "[412]\tvalidation-rmse:6.45415 \n", "[413]\tvalidation-rmse:6.45389 \n", "[414]\tvalidation-rmse:6.45362 \n", "[415]\tvalidation-rmse:6.45365 \n", "[416]\tvalidation-rmse:6.45348 \n", "[417]\tvalidation-rmse:6.45362 \n", "[418]\tvalidation-rmse:6.45339 \n", "[419]\tvalidation-rmse:6.45326 \n", "[420]\tvalidation-rmse:6.45324 \n", "[421]\tvalidation-rmse:6.45314 \n", "[422]\tvalidation-rmse:6.45302 \n", "[423]\tvalidation-rmse:6.45322 \n", "[424]\tvalidation-rmse:6.45260 \n", "[425]\tvalidation-rmse:6.45242 \n", "[426]\tvalidation-rmse:6.45238 \n", "[427]\tvalidation-rmse:6.45227 \n", "[428]\tvalidation-rmse:6.45211 \n", "[429]\tvalidation-rmse:6.45190 \n", "[430]\tvalidation-rmse:6.45174 \n", "[431]\tvalidation-rmse:6.45159 \n", "[432]\tvalidation-rmse:6.45143 \n", "[433]\tvalidation-rmse:6.45131 \n", "[434]\tvalidation-rmse:6.45121 \n", "[435]\tvalidation-rmse:6.45104 \n", "[436]\tvalidation-rmse:6.45078 \n", "[437]\tvalidation-rmse:6.45059 \n", "[438]\tvalidation-rmse:6.45057 \n", "[439]\tvalidation-rmse:6.45051 \n", "[440]\tvalidation-rmse:6.45035 \n", "[441]\tvalidation-rmse:6.45028 \n", "[442]\tvalidation-rmse:6.45003 \n", "[443]\tvalidation-rmse:6.44988 \n", "[444]\tvalidation-rmse:6.44970 \n", "[445]\tvalidation-rmse:6.44953 \n", "[446]\tvalidation-rmse:6.44923 \n", "[447]\tvalidation-rmse:6.44920 \n", "[448]\tvalidation-rmse:6.44893 \n", "[449]\tvalidation-rmse:6.44892 \n", "[450]\tvalidation-rmse:6.44880 \n", "[451]\tvalidation-rmse:6.44869 \n", "[452]\tvalidation-rmse:6.44849 \n", "[453]\tvalidation-rmse:6.44828 \n", "[454]\tvalidation-rmse:6.44818 \n", "[455]\tvalidation-rmse:6.44815 \n", "[456]\tvalidation-rmse:6.44807 \n", "[457]\tvalidation-rmse:6.44779 \n", "[458]\tvalidation-rmse:6.44766 \n", "[459]\tvalidation-rmse:6.44745 \n", "[460]\tvalidation-rmse:6.44718 \n", "[461]\tvalidation-rmse:6.44708 \n", "[462]\tvalidation-rmse:6.44663 \n", "[463]\tvalidation-rmse:6.44645 \n", "[464]\tvalidation-rmse:6.44644 \n", "[465]\tvalidation-rmse:6.44630 \n", "[466]\tvalidation-rmse:6.44620 \n", "[467]\tvalidation-rmse:6.44611 \n", "[468]\tvalidation-rmse:6.44599 \n", "[469]\tvalidation-rmse:6.44581 \n", "[470]\tvalidation-rmse:6.44568 \n", "[471]\tvalidation-rmse:6.44552 \n", "[472]\tvalidation-rmse:6.44538 \n", "[473]\tvalidation-rmse:6.44548 \n", "[474]\tvalidation-rmse:6.44530 \n", "[475]\tvalidation-rmse:6.44514 \n", "[476]\tvalidation-rmse:6.44518 \n", "[477]\tvalidation-rmse:6.44513 \n", "[478]\tvalidation-rmse:6.44488 \n", "[479]\tvalidation-rmse:6.44462 \n", "[480]\tvalidation-rmse:6.44450 \n", "[481]\tvalidation-rmse:6.44443 \n", "[482]\tvalidation-rmse:6.44460 \n", "[483]\tvalidation-rmse:6.44432 \n", "[484]\tvalidation-rmse:6.44416 \n", "[485]\tvalidation-rmse:6.44399 \n", "[486]\tvalidation-rmse:6.44370 \n", "[487]\tvalidation-rmse:6.44369 \n", "[488]\tvalidation-rmse:6.44344 \n", "[489]\tvalidation-rmse:6.44330 \n", "[490]\tvalidation-rmse:6.44309 \n", "[491]\tvalidation-rmse:6.44296 \n", "[492]\tvalidation-rmse:6.44290 \n", "[493]\tvalidation-rmse:6.44271 \n", "[494]\tvalidation-rmse:6.44259 \n", "[495]\tvalidation-rmse:6.44247 \n", "[496]\tvalidation-rmse:6.44247 \n", "[497]\tvalidation-rmse:6.44250 \n", "[498]\tvalidation-rmse:6.44239 \n", "[499]\tvalidation-rmse:6.44233 \n", "[500]\tvalidation-rmse:6.44215 \n", "[501]\tvalidation-rmse:6.44199 \n", "[502]\tvalidation-rmse:6.44180 \n", "[503]\tvalidation-rmse:6.44173 \n", "[504]\tvalidation-rmse:6.44159 \n", "[505]\tvalidation-rmse:6.44155 \n", "[506]\tvalidation-rmse:6.44142 \n", "[507]\tvalidation-rmse:6.44143 \n", "[508]\tvalidation-rmse:6.44125 \n", "[509]\tvalidation-rmse:6.44109 \n", "[510]\tvalidation-rmse:6.44091 \n", "[511]\tvalidation-rmse:6.44075 \n", "[512]\tvalidation-rmse:6.44011 \n", "[513]\tvalidation-rmse:6.43992 \n", "[514]\tvalidation-rmse:6.43996 \n", "[515]\tvalidation-rmse:6.43992 \n", "[516]\tvalidation-rmse:6.43976 \n", "[517]\tvalidation-rmse:6.43955 \n", "[518]\tvalidation-rmse:6.43944 \n", "[519]\tvalidation-rmse:6.43959 \n", "[520]\tvalidation-rmse:6.43941 \n", "[521]\tvalidation-rmse:6.43922 \n", "[522]\tvalidation-rmse:6.43891 \n", "[523]\tvalidation-rmse:6.43891 \n", "[524]\tvalidation-rmse:6.43886 \n", "[525]\tvalidation-rmse:6.43885 \n", "[526]\tvalidation-rmse:6.43884 \n", "[527]\tvalidation-rmse:6.43871 \n", "[528]\tvalidation-rmse:6.43852 \n", "[529]\tvalidation-rmse:6.43829 \n", "[530]\tvalidation-rmse:6.43819 \n", "[531]\tvalidation-rmse:6.43803 \n", "[532]\tvalidation-rmse:6.43802 \n", "[533]\tvalidation-rmse:6.43796 \n", "[534]\tvalidation-rmse:6.43793 \n", "[535]\tvalidation-rmse:6.43790 \n", "[536]\tvalidation-rmse:6.43791 \n", "[537]\tvalidation-rmse:6.43777 \n", "[538]\tvalidation-rmse:6.43770 \n", "[539]\tvalidation-rmse:6.43764 \n", "[540]\tvalidation-rmse:6.43765 \n", "[541]\tvalidation-rmse:6.43763 \n", "[542]\tvalidation-rmse:6.43755 \n", "[543]\tvalidation-rmse:6.43740 \n", "[544]\tvalidation-rmse:6.43721 \n", "[545]\tvalidation-rmse:6.43704 \n", "[546]\tvalidation-rmse:6.43679 \n", "[547]\tvalidation-rmse:6.43666 \n", "[548]\tvalidation-rmse:6.43656 \n", "[549]\tvalidation-rmse:6.43647 \n", "[550]\tvalidation-rmse:6.43622 \n", "[551]\tvalidation-rmse:6.43622 \n", "[552]\tvalidation-rmse:6.43592 \n", "[553]\tvalidation-rmse:6.43577 \n", "[554]\tvalidation-rmse:6.43558 \n", "[555]\tvalidation-rmse:6.43546 \n", "[556]\tvalidation-rmse:6.43538 \n", "[557]\tvalidation-rmse:6.43521 \n", "[558]\tvalidation-rmse:6.43508 \n", "[559]\tvalidation-rmse:6.43502 \n", "[560]\tvalidation-rmse:6.43496 \n", "[561]\tvalidation-rmse:6.43484 \n", "[562]\tvalidation-rmse:6.43475 \n", "[563]\tvalidation-rmse:6.43467 \n", "[564]\tvalidation-rmse:6.43457 \n", "[565]\tvalidation-rmse:6.43422 \n", "[566]\tvalidation-rmse:6.43414 \n", "[567]\tvalidation-rmse:6.43406 \n", "[568]\tvalidation-rmse:6.43410 \n", "[569]\tvalidation-rmse:6.43389 \n", "[570]\tvalidation-rmse:6.43381 \n", "[571]\tvalidation-rmse:6.43346 \n", "[572]\tvalidation-rmse:6.43332 \n", "[573]\tvalidation-rmse:6.43325 \n", "[574]\tvalidation-rmse:6.43311 \n", "[575]\tvalidation-rmse:6.43307 \n", "[576]\tvalidation-rmse:6.43285 \n", "[577]\tvalidation-rmse:6.43283 \n", "[578]\tvalidation-rmse:6.43264 \n", "[579]\tvalidation-rmse:6.43263 \n", "[580]\tvalidation-rmse:6.43242 \n", "[581]\tvalidation-rmse:6.43222 \n", "[582]\tvalidation-rmse:6.43216 \n", "[583]\tvalidation-rmse:6.43212 \n", "[584]\tvalidation-rmse:6.43202 \n", "[585]\tvalidation-rmse:6.43217 \n", "[586]\tvalidation-rmse:6.43222 \n", "[587]\tvalidation-rmse:6.43212 \n", "[588]\tvalidation-rmse:6.43190 \n", "[589]\tvalidation-rmse:6.43174 \n", "[590]\tvalidation-rmse:6.43139 \n", "[591]\tvalidation-rmse:6.43135 \n", "[592]\tvalidation-rmse:6.43139 \n", "[593]\tvalidation-rmse:6.43121 \n", "[594]\tvalidation-rmse:6.43088 \n", "[595]\tvalidation-rmse:6.43072 \n", "[596]\tvalidation-rmse:6.43047 \n", "[597]\tvalidation-rmse:6.43041 \n", "[598]\tvalidation-rmse:6.43032 \n", "[599]\tvalidation-rmse:6.43027 \n", "[600]\tvalidation-rmse:6.43007 \n", "[601]\tvalidation-rmse:6.43001 \n", "[602]\tvalidation-rmse:6.42985 \n", "[603]\tvalidation-rmse:6.42970 \n", "[604]\tvalidation-rmse:6.42964 \n", "[605]\tvalidation-rmse:6.42954 \n", "[606]\tvalidation-rmse:6.42945 \n", "[607]\tvalidation-rmse:6.42930 \n", "[608]\tvalidation-rmse:6.42916 \n", "[609]\tvalidation-rmse:6.42919 \n", "[610]\tvalidation-rmse:6.42906 \n", "[611]\tvalidation-rmse:6.42910 \n", "[612]\tvalidation-rmse:6.42906 \n", "[613]\tvalidation-rmse:6.42912 \n", "[614]\tvalidation-rmse:6.42924 \n", "[615]\tvalidation-rmse:6.42884 \n", "[616]\tvalidation-rmse:6.42874 \n", "[617]\tvalidation-rmse:6.42867 \n", "[618]\tvalidation-rmse:6.42854 \n", "[619]\tvalidation-rmse:6.42849 \n", "[620]\tvalidation-rmse:6.42844 \n", "[621]\tvalidation-rmse:6.42850 \n", "[622]\tvalidation-rmse:6.42826 \n", "[623]\tvalidation-rmse:6.42813 \n", "[624]\tvalidation-rmse:6.42812 \n", "[625]\tvalidation-rmse:6.42803 \n", "[626]\tvalidation-rmse:6.42809 \n", "[627]\tvalidation-rmse:6.42806 \n", "[628]\tvalidation-rmse:6.42802 \n", "[629]\tvalidation-rmse:6.42799 \n", "[630]\tvalidation-rmse:6.42789 \n", "[631]\tvalidation-rmse:6.42758 \n", "[632]\tvalidation-rmse:6.42736 \n", "[633]\tvalidation-rmse:6.42744 \n", "[634]\tvalidation-rmse:6.42736 \n", "[635]\tvalidation-rmse:6.42738 \n", "[636]\tvalidation-rmse:6.42726 \n", "[637]\tvalidation-rmse:6.42713 \n", "[638]\tvalidation-rmse:6.42690 \n", "[639]\tvalidation-rmse:6.42693 \n", "[640]\tvalidation-rmse:6.42667 \n", "[641]\tvalidation-rmse:6.42642 \n", "[642]\tvalidation-rmse:6.42639 \n", "[643]\tvalidation-rmse:6.42631 \n", "[644]\tvalidation-rmse:6.42618 \n", "[645]\tvalidation-rmse:6.42616 \n", "[646]\tvalidation-rmse:6.42612 \n", "[647]\tvalidation-rmse:6.42603 \n", "[648]\tvalidation-rmse:6.42590 \n", "[649]\tvalidation-rmse:6.42578 \n", "[650]\tvalidation-rmse:6.42574 \n", "[651]\tvalidation-rmse:6.42560 \n", "[652]\tvalidation-rmse:6.42550 \n", "[653]\tvalidation-rmse:6.42561 \n", "[654]\tvalidation-rmse:6.42552 \n", "[655]\tvalidation-rmse:6.42542 \n", "[656]\tvalidation-rmse:6.42521 \n", "[657]\tvalidation-rmse:6.42510 \n", "[658]\tvalidation-rmse:6.42503 \n", "[659]\tvalidation-rmse:6.42510 \n", "[660]\tvalidation-rmse:6.42514 \n", "[661]\tvalidation-rmse:6.42516 \n", "[662]\tvalidation-rmse:6.42507 \n", "[663]\tvalidation-rmse:6.42511 \n", "[664]\tvalidation-rmse:6.42495 \n", "[665]\tvalidation-rmse:6.42478 \n", "[666]\tvalidation-rmse:6.42463 \n", "[667]\tvalidation-rmse:6.42450 \n", "[668]\tvalidation-rmse:6.42442 \n", "[669]\tvalidation-rmse:6.42430 \n", "[670]\tvalidation-rmse:6.42436 \n", "[671]\tvalidation-rmse:6.42437 \n", "[672]\tvalidation-rmse:6.42412 \n", "[673]\tvalidation-rmse:6.42397 \n", "[674]\tvalidation-rmse:6.42391 \n", "[675]\tvalidation-rmse:6.42383 \n", "[676]\tvalidation-rmse:6.42387 \n", "[677]\tvalidation-rmse:6.42398 \n", "[678]\tvalidation-rmse:6.42413 \n", "[679]\tvalidation-rmse:6.42412 \n", "[680]\tvalidation-rmse:6.42395 \n", "[681]\tvalidation-rmse:6.42373 \n", "[682]\tvalidation-rmse:6.42367 \n", "[683]\tvalidation-rmse:6.42356 \n", "[684]\tvalidation-rmse:6.42343 \n", "[685]\tvalidation-rmse:6.42326 \n", "[686]\tvalidation-rmse:6.42313 \n", "[687]\tvalidation-rmse:6.42310 \n", "[688]\tvalidation-rmse:6.42290 \n", "[689]\tvalidation-rmse:6.42288 \n", "[690]\tvalidation-rmse:6.42286 \n", "[691]\tvalidation-rmse:6.42274 \n", "[692]\tvalidation-rmse:6.42264 \n", "[693]\tvalidation-rmse:6.42250 \n", "[694]\tvalidation-rmse:6.42247 \n", "[695]\tvalidation-rmse:6.42241 \n", "[696]\tvalidation-rmse:6.42239 \n", "[697]\tvalidation-rmse:6.42236 \n", "[698]\tvalidation-rmse:6.42220 \n", "[699]\tvalidation-rmse:6.42207 \n", "[700]\tvalidation-rmse:6.42185 \n", "[701]\tvalidation-rmse:6.42177 \n", "[702]\tvalidation-rmse:6.42163 \n", "[703]\tvalidation-rmse:6.42146 \n", "[704]\tvalidation-rmse:6.42136 \n", "[705]\tvalidation-rmse:6.42119 \n", "[706]\tvalidation-rmse:6.42105 \n", "[707]\tvalidation-rmse:6.42103 \n", "[708]\tvalidation-rmse:6.42097 \n", "[709]\tvalidation-rmse:6.42084 \n", "[710]\tvalidation-rmse:6.42075 \n", "[711]\tvalidation-rmse:6.42080 \n", "[712]\tvalidation-rmse:6.42076 \n", "[713]\tvalidation-rmse:6.42073 \n", "[714]\tvalidation-rmse:6.42059 \n", "[715]\tvalidation-rmse:6.42053 \n", "[716]\tvalidation-rmse:6.42043 \n", "[717]\tvalidation-rmse:6.42028 \n", "[718]\tvalidation-rmse:6.42023 \n", "[719]\tvalidation-rmse:6.42017 \n", "[720]\tvalidation-rmse:6.42005 \n", "[721]\tvalidation-rmse:6.41998 \n", "[722]\tvalidation-rmse:6.41987 \n", "[723]\tvalidation-rmse:6.42005 \n", "[724]\tvalidation-rmse:6.41961 \n", "[725]\tvalidation-rmse:6.41963 \n", "[726]\tvalidation-rmse:6.41949 \n", "[727]\tvalidation-rmse:6.41943 \n", "[728]\tvalidation-rmse:6.41957 \n", "[729]\tvalidation-rmse:6.41936 \n", "[730]\tvalidation-rmse:6.41931 \n", "[731]\tvalidation-rmse:6.41932 \n", "[732]\tvalidation-rmse:6.41912 \n", "[733]\tvalidation-rmse:6.41911 \n", "[734]\tvalidation-rmse:6.41919 \n", "[735]\tvalidation-rmse:6.41914 \n", "[736]\tvalidation-rmse:6.41898 \n", "[737]\tvalidation-rmse:6.41901 \n", "[738]\tvalidation-rmse:6.41903 \n", "[739]\tvalidation-rmse:6.41894 \n", "[740]\tvalidation-rmse:6.41879 \n", "[741]\tvalidation-rmse:6.41855 \n", "[742]\tvalidation-rmse:6.41852 \n", "[743]\tvalidation-rmse:6.41846 \n", "[744]\tvalidation-rmse:6.41837 \n", "[745]\tvalidation-rmse:6.41828 \n", "[746]\tvalidation-rmse:6.41822 \n", "[747]\tvalidation-rmse:6.41808 \n", "[748]\tvalidation-rmse:6.41791 \n", "[749]\tvalidation-rmse:6.41782 \n", "[750]\tvalidation-rmse:6.41776 \n", "[751]\tvalidation-rmse:6.41763 \n", "[752]\tvalidation-rmse:6.41752 \n", "[753]\tvalidation-rmse:6.41750 \n", "[754]\tvalidation-rmse:6.41758 \n", "[755]\tvalidation-rmse:6.41758 \n", "[756]\tvalidation-rmse:6.41762 \n", "[757]\tvalidation-rmse:6.41765 \n", "[758]\tvalidation-rmse:6.41761 \n", "[759]\tvalidation-rmse:6.41764 \n", "[760]\tvalidation-rmse:6.41765 \n", "[761]\tvalidation-rmse:6.41756 \n", "[762]\tvalidation-rmse:6.41753 \n", "[763]\tvalidation-rmse:6.41757 \n", "[764]\tvalidation-rmse:6.41746 \n", "[765]\tvalidation-rmse:6.41736 \n", "[766]\tvalidation-rmse:6.41724 \n", "[767]\tvalidation-rmse:6.41718 \n", "[768]\tvalidation-rmse:6.41687 \n", "[769]\tvalidation-rmse:6.41679 \n", "[770]\tvalidation-rmse:6.41663 \n", "[771]\tvalidation-rmse:6.41670 \n", "[772]\tvalidation-rmse:6.41664 \n", "[773]\tvalidation-rmse:6.41651 \n", "[774]\tvalidation-rmse:6.41647 \n", "[775]\tvalidation-rmse:6.41633 \n", "[776]\tvalidation-rmse:6.41627 \n", "[777]\tvalidation-rmse:6.41610 \n", "[778]\tvalidation-rmse:6.41572 \n", "[779]\tvalidation-rmse:6.41576 \n", "[780]\tvalidation-rmse:6.41557 \n", "[781]\tvalidation-rmse:6.41545 \n", "[782]\tvalidation-rmse:6.41531 \n", "[783]\tvalidation-rmse:6.41533 \n", "[784]\tvalidation-rmse:6.41524 \n", "[785]\tvalidation-rmse:6.41522 \n", "[786]\tvalidation-rmse:6.41507 \n", "[787]\tvalidation-rmse:6.41495 \n", "[788]\tvalidation-rmse:6.41485 \n", "[789]\tvalidation-rmse:6.41484 \n", "[790]\tvalidation-rmse:6.41480 \n", "[791]\tvalidation-rmse:6.41477 \n", "[792]\tvalidation-rmse:6.41474 \n", "[793]\tvalidation-rmse:6.41471 \n", "[794]\tvalidation-rmse:6.41474 \n", "[795]\tvalidation-rmse:6.41473 \n", "[796]\tvalidation-rmse:6.41458 \n", "[797]\tvalidation-rmse:6.41453 \n", "[798]\tvalidation-rmse:6.41441 \n", "[799]\tvalidation-rmse:6.41435 \n", "[800]\tvalidation-rmse:6.41430 \n", "[801]\tvalidation-rmse:6.41403 \n", "[802]\tvalidation-rmse:6.41396 \n", "[803]\tvalidation-rmse:6.41379 \n", "[804]\tvalidation-rmse:6.41378 \n", "[805]\tvalidation-rmse:6.41378 \n", "[806]\tvalidation-rmse:6.41362 \n", "[807]\tvalidation-rmse:6.41359 \n", "[808]\tvalidation-rmse:6.41354 \n", "[809]\tvalidation-rmse:6.41354 \n", "[810]\tvalidation-rmse:6.41345 \n", "[811]\tvalidation-rmse:6.41323 \n", "[812]\tvalidation-rmse:6.41307 \n", "[813]\tvalidation-rmse:6.41298 \n", "[814]\tvalidation-rmse:6.41305 \n", "[815]\tvalidation-rmse:6.41304 \n", "[816]\tvalidation-rmse:6.41299 \n", "[817]\tvalidation-rmse:6.41285 \n", "[818]\tvalidation-rmse:6.41275 \n", "[819]\tvalidation-rmse:6.41267 \n", "[820]\tvalidation-rmse:6.41274 \n", "[821]\tvalidation-rmse:6.41262 \n", "[822]\tvalidation-rmse:6.41247 \n", "[823]\tvalidation-rmse:6.41234 \n", "[824]\tvalidation-rmse:6.41230 \n", "[825]\tvalidation-rmse:6.41216 \n", "[826]\tvalidation-rmse:6.41212 \n", "[827]\tvalidation-rmse:6.41200 \n", "[828]\tvalidation-rmse:6.41184 \n", "[829]\tvalidation-rmse:6.41168 \n", "[830]\tvalidation-rmse:6.41165 \n", "[831]\tvalidation-rmse:6.41161 \n", "[832]\tvalidation-rmse:6.41150 \n", "[833]\tvalidation-rmse:6.41131 \n", "[834]\tvalidation-rmse:6.41132 \n", "[835]\tvalidation-rmse:6.41139 \n", "[836]\tvalidation-rmse:6.41136 \n", "[837]\tvalidation-rmse:6.41136 \n", "[838]\tvalidation-rmse:6.41129 \n", "[839]\tvalidation-rmse:6.41112 \n", "[840]\tvalidation-rmse:6.41094 \n", "[841]\tvalidation-rmse:6.41087 \n", "[842]\tvalidation-rmse:6.41079 \n", "[843]\tvalidation-rmse:6.41073 \n", "[844]\tvalidation-rmse:6.41075 \n", "[845]\tvalidation-rmse:6.41082 \n", "[846]\tvalidation-rmse:6.41076 \n", "[847]\tvalidation-rmse:6.41064 \n", "[848]\tvalidation-rmse:6.41054 \n", "[849]\tvalidation-rmse:6.41096 \n", "[850]\tvalidation-rmse:6.41077 \n", "[851]\tvalidation-rmse:6.41075 \n", "[852]\tvalidation-rmse:6.41059 \n", "[853]\tvalidation-rmse:6.41060 \n", "[854]\tvalidation-rmse:6.41050 \n", "[855]\tvalidation-rmse:6.41052 \n", "[856]\tvalidation-rmse:6.41050 \n", "[857]\tvalidation-rmse:6.41034 \n", "[858]\tvalidation-rmse:6.41041 \n", "[859]\tvalidation-rmse:6.41028 \n", "[860]\tvalidation-rmse:6.41025 \n", "[861]\tvalidation-rmse:6.41015 \n", "[862]\tvalidation-rmse:6.41003 \n", "[863]\tvalidation-rmse:6.41012 \n", "[864]\tvalidation-rmse:6.41003 \n", "[865]\tvalidation-rmse:6.40980 \n", "[866]\tvalidation-rmse:6.40974 \n", "[867]\tvalidation-rmse:6.40971 \n", "[868]\tvalidation-rmse:6.40982 \n", "[869]\tvalidation-rmse:6.40981 \n", "[870]\tvalidation-rmse:6.40970 \n", "[871]\tvalidation-rmse:6.40961 \n", "[872]\tvalidation-rmse:6.40958 \n", "[873]\tvalidation-rmse:6.40942 \n", "[874]\tvalidation-rmse:6.40927 \n", "[875]\tvalidation-rmse:6.40924 \n", "[876]\tvalidation-rmse:6.40911 \n", "[877]\tvalidation-rmse:6.40906 \n", "[878]\tvalidation-rmse:6.40903 \n", "[879]\tvalidation-rmse:6.40891 \n", "[880]\tvalidation-rmse:6.40884 \n", "[881]\tvalidation-rmse:6.40869 \n", "[882]\tvalidation-rmse:6.40853 \n", "[883]\tvalidation-rmse:6.40854 \n", "[884]\tvalidation-rmse:6.40854 \n", "[885]\tvalidation-rmse:6.40847 \n", "[886]\tvalidation-rmse:6.40843 \n", "[887]\tvalidation-rmse:6.40861 \n", "[888]\tvalidation-rmse:6.40872 \n", "[889]\tvalidation-rmse:6.40874 \n", "[890]\tvalidation-rmse:6.40881 \n", "[891]\tvalidation-rmse:6.40871 \n", "[892]\tvalidation-rmse:6.40870 \n", "[893]\tvalidation-rmse:6.40863 \n", "[894]\tvalidation-rmse:6.40862 \n", "[895]\tvalidation-rmse:6.40858 \n", "[896]\tvalidation-rmse:6.40859 \n", "[897]\tvalidation-rmse:6.40842 \n", "[898]\tvalidation-rmse:6.40830 \n", "[899]\tvalidation-rmse:6.40836 \n", "[900]\tvalidation-rmse:6.40827 \n", "[901]\tvalidation-rmse:6.40831 \n", "[902]\tvalidation-rmse:6.40819 \n", "[903]\tvalidation-rmse:6.40807 \n", "[904]\tvalidation-rmse:6.40814 \n", "[905]\tvalidation-rmse:6.40820 \n", "[906]\tvalidation-rmse:6.40819 \n", "[907]\tvalidation-rmse:6.40800 \n", "[908]\tvalidation-rmse:6.40798 \n", "[909]\tvalidation-rmse:6.40801 \n", "[910]\tvalidation-rmse:6.40790 \n", "[911]\tvalidation-rmse:6.40794 \n", "[912]\tvalidation-rmse:6.40786 \n", "[913]\tvalidation-rmse:6.40793 \n", "[914]\tvalidation-rmse:6.40797 \n", "[915]\tvalidation-rmse:6.40796 \n", "[916]\tvalidation-rmse:6.40802 \n", "[917]\tvalidation-rmse:6.40812 \n", "[918]\tvalidation-rmse:6.40807 \n", "[919]\tvalidation-rmse:6.40812 \n", "[920]\tvalidation-rmse:6.40817 \n", "[921]\tvalidation-rmse:6.40808 \n", "[922]\tvalidation-rmse:6.40806 \n", "[923]\tvalidation-rmse:6.40794 \n", "[924]\tvalidation-rmse:6.40789 \n", "[925]\tvalidation-rmse:6.40787 \n", "[926]\tvalidation-rmse:6.40790 \n", "[927]\tvalidation-rmse:6.40787 \n", "[928]\tvalidation-rmse:6.40796 \n", "[929]\tvalidation-rmse:6.40786 \n", "[930]\tvalidation-rmse:6.40779 \n", "[931]\tvalidation-rmse:6.40784 \n", "[932]\tvalidation-rmse:6.40772 \n", "[933]\tvalidation-rmse:6.40752 \n", "[934]\tvalidation-rmse:6.40739 \n", "[935]\tvalidation-rmse:6.40757 \n", "[936]\tvalidation-rmse:6.40768 \n", "[937]\tvalidation-rmse:6.40757 \n", "[938]\tvalidation-rmse:6.40734 \n", "[939]\tvalidation-rmse:6.40725 \n", "[940]\tvalidation-rmse:6.40726 \n", "[941]\tvalidation-rmse:6.40713 \n", "[942]\tvalidation-rmse:6.40707 \n", "[943]\tvalidation-rmse:6.40690 \n", "[944]\tvalidation-rmse:6.40694 \n", "[945]\tvalidation-rmse:6.40685 \n", "[946]\tvalidation-rmse:6.40675 \n", "[947]\tvalidation-rmse:6.40660 \n", "[948]\tvalidation-rmse:6.40652 \n", "[949]\tvalidation-rmse:6.40641 \n", "[950]\tvalidation-rmse:6.40638 \n", "[951]\tvalidation-rmse:6.40628 \n", "[952]\tvalidation-rmse:6.40622 \n", "[953]\tvalidation-rmse:6.40620 \n", "[954]\tvalidation-rmse:6.40611 \n", "[955]\tvalidation-rmse:6.40618 \n", "[956]\tvalidation-rmse:6.40622 \n", "[957]\tvalidation-rmse:6.40628 \n", "[958]\tvalidation-rmse:6.40621 \n", "[959]\tvalidation-rmse:6.40620 \n", "[960]\tvalidation-rmse:6.40607 \n", "[961]\tvalidation-rmse:6.40599 \n", "[962]\tvalidation-rmse:6.40590 \n", "[963]\tvalidation-rmse:6.40590 \n", "[964]\tvalidation-rmse:6.40582 \n", "[965]\tvalidation-rmse:6.40567 \n", "[966]\tvalidation-rmse:6.40549 \n", "[967]\tvalidation-rmse:6.40542 \n", "[968]\tvalidation-rmse:6.40532 \n", "[969]\tvalidation-rmse:6.40547 \n", "[970]\tvalidation-rmse:6.40530 \n", "[971]\tvalidation-rmse:6.40515 \n", "[972]\tvalidation-rmse:6.40511 \n", "[973]\tvalidation-rmse:6.40507 \n", "[974]\tvalidation-rmse:6.40511 \n", "[975]\tvalidation-rmse:6.40496 \n", "[976]\tvalidation-rmse:6.40491 \n", "[977]\tvalidation-rmse:6.40479 \n", "[978]\tvalidation-rmse:6.40474 \n", "[979]\tvalidation-rmse:6.40467 \n", "[980]\tvalidation-rmse:6.40461 \n", "[981]\tvalidation-rmse:6.40446 \n", "[982]\tvalidation-rmse:6.40448 \n", "[983]\tvalidation-rmse:6.40444 \n", "[984]\tvalidation-rmse:6.40437 \n", "[985]\tvalidation-rmse:6.40429 \n", "[986]\tvalidation-rmse:6.40416 \n", "[987]\tvalidation-rmse:6.40405 \n", "[988]\tvalidation-rmse:6.40407 \n", "[989]\tvalidation-rmse:6.40392 \n", "[990]\tvalidation-rmse:6.40387 \n", "[991]\tvalidation-rmse:6.40381 \n", "[992]\tvalidation-rmse:6.40376 \n", "[993]\tvalidation-rmse:6.40371 \n", "[994]\tvalidation-rmse:6.40376 \n", "[995]\tvalidation-rmse:6.40368 \n", "[996]\tvalidation-rmse:6.40364 \n", "[997]\tvalidation-rmse:6.40373 \n", "[998]\tvalidation-rmse:6.40378 \n", "[999]\tvalidation-rmse:6.40377 \n", "[12:52:36] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:17.94108 \n", "[1]\tvalidation-rmse:15.35056 \n", "[2]\tvalidation-rmse:13.30333 \n", "[3]\tvalidation-rmse:11.70191 \n", "[4]\tvalidation-rmse:10.46186 \n", "[5]\tvalidation-rmse:9.51512 \n", "[6]\tvalidation-rmse:8.79783 \n", "[7]\tvalidation-rmse:8.26185 \n", "[8]\tvalidation-rmse:7.86080 \n", "[9]\tvalidation-rmse:7.55922 \n", "[10]\tvalidation-rmse:7.33751 \n", "[11]\tvalidation-rmse:7.16949 \n", "[12]\tvalidation-rmse:7.04291 \n", "[13]\tvalidation-rmse:6.94846 \n", "[14]\tvalidation-rmse:6.87611 \n", "[15]\tvalidation-rmse:6.82031 \n", "[16]\tvalidation-rmse:6.77759 \n", "[17]\tvalidation-rmse:6.74460 \n", "[18]\tvalidation-rmse:6.71862 \n", "[19]\tvalidation-rmse:6.69631 \n", "[20]\tvalidation-rmse:6.68054 \n", "[21]\tvalidation-rmse:6.66439 \n", "[22]\tvalidation-rmse:6.65130 \n", "[23]\tvalidation-rmse:6.64139 \n", "[24]\tvalidation-rmse:6.63414 \n", "[25]\tvalidation-rmse:6.62747 \n", "[26]\tvalidation-rmse:6.62146 \n", "[27]\tvalidation-rmse:6.61619 \n", "[28]\tvalidation-rmse:6.61236 \n", "[29]\tvalidation-rmse:6.60878 \n", "[30]\tvalidation-rmse:6.60620 \n", "[31]\tvalidation-rmse:6.60375 \n", "[32]\tvalidation-rmse:6.60168 \n", "[33]\tvalidation-rmse:6.59983 \n", "[34]\tvalidation-rmse:6.59726 \n", "[35]\tvalidation-rmse:6.59536 \n", "[36]\tvalidation-rmse:6.59404 \n", "[37]\tvalidation-rmse:6.59236 \n", "[38]\tvalidation-rmse:6.58979 \n", "[39]\tvalidation-rmse:6.58934 \n", "[40]\tvalidation-rmse:6.58847 \n", "[41]\tvalidation-rmse:6.58655 \n", "[42]\tvalidation-rmse:6.58605 \n", "[43]\tvalidation-rmse:6.58447 \n", "[44]\tvalidation-rmse:6.58387 \n", "[45]\tvalidation-rmse:6.58373 \n", "[46]\tvalidation-rmse:6.58309 \n", "[47]\tvalidation-rmse:6.58226 \n", "[48]\tvalidation-rmse:6.58192 \n", "[49]\tvalidation-rmse:6.58111 \n", "[50]\tvalidation-rmse:6.58036 \n", "[51]\tvalidation-rmse:6.58006 \n", "[52]\tvalidation-rmse:6.57954 \n", "[53]\tvalidation-rmse:6.57922 \n", "[54]\tvalidation-rmse:6.57939 \n", "[55]\tvalidation-rmse:6.57887 \n", "[56]\tvalidation-rmse:6.57852 \n", "[57]\tvalidation-rmse:6.57828 \n", "[58]\tvalidation-rmse:6.57819 \n", "[59]\tvalidation-rmse:6.57798 \n", "[60]\tvalidation-rmse:6.57761 \n", "[61]\tvalidation-rmse:6.57718 \n", "[62]\tvalidation-rmse:6.57737 \n", "[63]\tvalidation-rmse:6.57693 \n", "[64]\tvalidation-rmse:6.57667 \n", "[65]\tvalidation-rmse:6.57668 \n", "[66]\tvalidation-rmse:6.57655 \n", "[67]\tvalidation-rmse:6.57592 \n", "[68]\tvalidation-rmse:6.57586 \n", "[69]\tvalidation-rmse:6.57580 \n", "[70]\tvalidation-rmse:6.57557 \n", "[71]\tvalidation-rmse:6.57503 \n", "[72]\tvalidation-rmse:6.57480 \n", "[73]\tvalidation-rmse:6.57451 \n", "[74]\tvalidation-rmse:6.57444 \n", "[75]\tvalidation-rmse:6.57416 \n", "[76]\tvalidation-rmse:6.57395 \n", "[77]\tvalidation-rmse:6.57409 \n", "[78]\tvalidation-rmse:6.57386 \n", "[79]\tvalidation-rmse:6.57376 \n", "[80]\tvalidation-rmse:6.57371 \n", "[81]\tvalidation-rmse:6.57396 \n", "[82]\tvalidation-rmse:6.57394 \n", "[83]\tvalidation-rmse:6.57384 \n", "[84]\tvalidation-rmse:6.57330 \n", "[85]\tvalidation-rmse:6.57341 \n", "[86]\tvalidation-rmse:6.57348 \n", "[87]\tvalidation-rmse:6.57336 \n", "[88]\tvalidation-rmse:6.57301 \n", "[89]\tvalidation-rmse:6.57328 \n", "[90]\tvalidation-rmse:6.57317 \n", "[91]\tvalidation-rmse:6.57330 \n", "[92]\tvalidation-rmse:6.57307 \n", "[93]\tvalidation-rmse:6.57308 \n", "[94]\tvalidation-rmse:6.57300 \n", "[95]\tvalidation-rmse:6.57312 \n", "[96]\tvalidation-rmse:6.57313 \n", "[97]\tvalidation-rmse:6.57338 \n", "[98]\tvalidation-rmse:6.57325 \n", "[99]\tvalidation-rmse:6.57339 \n", "[100]\tvalidation-rmse:6.57365 \n", "[101]\tvalidation-rmse:6.57373 \n", "[102]\tvalidation-rmse:6.57351 \n", "[103]\tvalidation-rmse:6.57366 \n", "[104]\tvalidation-rmse:6.57364 \n", "[105]\tvalidation-rmse:6.57370 \n", "[106]\tvalidation-rmse:6.57341 \n", "[107]\tvalidation-rmse:6.57337 \n", "[108]\tvalidation-rmse:6.57306 \n", "[109]\tvalidation-rmse:6.57296 \n", "[110]\tvalidation-rmse:6.57288 \n", "[111]\tvalidation-rmse:6.57306 \n", "[112]\tvalidation-rmse:6.57291 \n", "[113]\tvalidation-rmse:6.57278 \n", "[114]\tvalidation-rmse:6.57330 \n", "[115]\tvalidation-rmse:6.57340 \n", "[116]\tvalidation-rmse:6.57348 \n", "[117]\tvalidation-rmse:6.57357 \n", "[118]\tvalidation-rmse:6.57343 \n", "[119]\tvalidation-rmse:6.57337 \n", "[120]\tvalidation-rmse:6.57481 \n", "[121]\tvalidation-rmse:6.57492 \n", "[122]\tvalidation-rmse:6.57491 \n", "[123]\tvalidation-rmse:6.57608 \n", "[124]\tvalidation-rmse:6.57611 \n", "[125]\tvalidation-rmse:6.57599 \n", "[126]\tvalidation-rmse:6.57585 \n", "[127]\tvalidation-rmse:6.57588 \n", "[128]\tvalidation-rmse:6.57638 \n", "[129]\tvalidation-rmse:6.57663 \n", "[130]\tvalidation-rmse:6.57724 \n", "[131]\tvalidation-rmse:6.57719 \n", "[132]\tvalidation-rmse:6.57766 \n", "[133]\tvalidation-rmse:6.57792 \n", "[134]\tvalidation-rmse:6.57794 \n", "[135]\tvalidation-rmse:6.57771 \n", "[136]\tvalidation-rmse:6.57767 \n", "[137]\tvalidation-rmse:6.57765 \n", "[138]\tvalidation-rmse:6.57737 \n", "[139]\tvalidation-rmse:6.57765 \n", "[140]\tvalidation-rmse:6.57785 \n", "[141]\tvalidation-rmse:6.57771 \n", "[142]\tvalidation-rmse:6.57790 \n", "[143]\tvalidation-rmse:6.57790 \n", "[144]\tvalidation-rmse:6.57799 \n", "[145]\tvalidation-rmse:6.57785 \n", "[146]\tvalidation-rmse:6.57788 \n", "[147]\tvalidation-rmse:6.57806 \n", "[148]\tvalidation-rmse:6.57785 \n", "[149]\tvalidation-rmse:6.57797 \n", "[150]\tvalidation-rmse:6.57810 \n", "[151]\tvalidation-rmse:6.57798 \n", "[152]\tvalidation-rmse:6.57789 \n", "[153]\tvalidation-rmse:6.57765 \n", "[154]\tvalidation-rmse:6.57758 \n", "[155]\tvalidation-rmse:6.57762 \n", "[156]\tvalidation-rmse:6.57775 \n", "[157]\tvalidation-rmse:6.57782 \n", "[158]\tvalidation-rmse:6.57752 \n", "[159]\tvalidation-rmse:6.57786 \n", "[160]\tvalidation-rmse:6.57755 \n", "[161]\tvalidation-rmse:6.57759 \n", "[162]\tvalidation-rmse:6.57766 \n", "[12:53:21] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.25579 \n", "[1]\tvalidation-rmse:17.55159 \n", "[2]\tvalidation-rmse:16.05608 \n", "[3]\tvalidation-rmse:14.74722 \n", "[4]\tvalidation-rmse:13.60444 \n", "[5]\tvalidation-rmse:12.61101 \n", "[6]\tvalidation-rmse:11.74958 \n", "[7]\tvalidation-rmse:11.00629 \n", "[8]\tvalidation-rmse:10.36656 \n", "[9]\tvalidation-rmse:9.81799 \n", "[10]\tvalidation-rmse:9.34750 \n", "[11]\tvalidation-rmse:8.94800 \n", "[12]\tvalidation-rmse:8.60891 \n", "[13]\tvalidation-rmse:8.32142 \n", "[14]\tvalidation-rmse:8.07884 \n", "[15]\tvalidation-rmse:7.87275 \n", "[16]\tvalidation-rmse:7.69898 \n", "[17]\tvalidation-rmse:7.55054 \n", "[18]\tvalidation-rmse:7.42583 \n", "[19]\tvalidation-rmse:7.31965 \n", "[20]\tvalidation-rmse:7.23054 \n", "[21]\tvalidation-rmse:7.15510 \n", "[22]\tvalidation-rmse:7.09130 \n", "[23]\tvalidation-rmse:7.03673 \n", "[24]\tvalidation-rmse:6.98919 \n", "[25]\tvalidation-rmse:6.94829 \n", "[26]\tvalidation-rmse:6.91340 \n", "[27]\tvalidation-rmse:6.88201 \n", "[28]\tvalidation-rmse:6.85475 \n", "[29]\tvalidation-rmse:6.83227 \n", "[30]\tvalidation-rmse:6.81223 \n", "[31]\tvalidation-rmse:6.79430 \n", "[32]\tvalidation-rmse:6.77975 \n", "[33]\tvalidation-rmse:6.76632 \n", "[34]\tvalidation-rmse:6.75432 \n", "[35]\tvalidation-rmse:6.74362 \n", "[36]\tvalidation-rmse:6.73448 \n", "[37]\tvalidation-rmse:6.72633 \n", "[38]\tvalidation-rmse:6.71950 \n", "[39]\tvalidation-rmse:6.71268 \n", "[40]\tvalidation-rmse:6.70673 \n", "[41]\tvalidation-rmse:6.70168 \n", "[42]\tvalidation-rmse:6.69643 \n", "[43]\tvalidation-rmse:6.69182 \n", "[44]\tvalidation-rmse:6.68765 \n", "[45]\tvalidation-rmse:6.68435 \n", "[46]\tvalidation-rmse:6.68143 \n", "[47]\tvalidation-rmse:6.67812 \n", "[48]\tvalidation-rmse:6.67592 \n", "[49]\tvalidation-rmse:6.67364 \n", "[50]\tvalidation-rmse:6.67115 \n", "[51]\tvalidation-rmse:6.66912 \n", "[52]\tvalidation-rmse:6.66720 \n", "[53]\tvalidation-rmse:6.66570 \n", "[54]\tvalidation-rmse:6.66455 \n", "[55]\tvalidation-rmse:6.66322 \n", "[56]\tvalidation-rmse:6.66211 \n", "[57]\tvalidation-rmse:6.66127 \n", "[58]\tvalidation-rmse:6.66037 \n", "[59]\tvalidation-rmse:6.65954 \n", "[60]\tvalidation-rmse:6.65891 \n", "[61]\tvalidation-rmse:6.65830 \n", "[62]\tvalidation-rmse:6.65762 \n", "[63]\tvalidation-rmse:6.65694 \n", "[64]\tvalidation-rmse:6.65633 \n", "[65]\tvalidation-rmse:6.65555 \n", "[66]\tvalidation-rmse:6.65522 \n", "[67]\tvalidation-rmse:6.65477 \n", "[68]\tvalidation-rmse:6.65445 \n", "[69]\tvalidation-rmse:6.65396 \n", "[70]\tvalidation-rmse:6.65321 \n", "[71]\tvalidation-rmse:6.65289 \n", "[72]\tvalidation-rmse:6.65244 \n", "[73]\tvalidation-rmse:6.65204 \n", "[74]\tvalidation-rmse:6.65174 \n", "[75]\tvalidation-rmse:6.65141 \n", "[76]\tvalidation-rmse:6.65090 \n", "[77]\tvalidation-rmse:6.65042 \n", "[78]\tvalidation-rmse:6.65020 \n", "[79]\tvalidation-rmse:6.65011 \n", "[80]\tvalidation-rmse:6.64978 \n", "[81]\tvalidation-rmse:6.64944 \n", "[82]\tvalidation-rmse:6.64946 \n", "[83]\tvalidation-rmse:6.64925 \n", "[84]\tvalidation-rmse:6.64914 \n", "[85]\tvalidation-rmse:6.64898 \n", "[86]\tvalidation-rmse:6.64895 \n", "[87]\tvalidation-rmse:6.64867 \n", "[88]\tvalidation-rmse:6.64842 \n", "[89]\tvalidation-rmse:6.64845 \n", "[90]\tvalidation-rmse:6.64845 \n", "[91]\tvalidation-rmse:6.64817 \n", "[92]\tvalidation-rmse:6.64796 \n", "[93]\tvalidation-rmse:6.64776 \n", "[94]\tvalidation-rmse:6.64755 \n", "[95]\tvalidation-rmse:6.64751 \n", "[96]\tvalidation-rmse:6.64709 \n", "[97]\tvalidation-rmse:6.64706 \n", "[98]\tvalidation-rmse:6.64700 \n", "[99]\tvalidation-rmse:6.64682 \n", "[100]\tvalidation-rmse:6.64675 \n", "[101]\tvalidation-rmse:6.64668 \n", "[102]\tvalidation-rmse:6.64642 \n", "[103]\tvalidation-rmse:6.64626 \n", "[104]\tvalidation-rmse:6.64635 \n", "[105]\tvalidation-rmse:6.64614 \n", "[106]\tvalidation-rmse:6.64608 \n", "[107]\tvalidation-rmse:6.64573 \n", "[108]\tvalidation-rmse:6.64547 \n", "[109]\tvalidation-rmse:6.64557 \n", "[110]\tvalidation-rmse:6.64549 \n", "[111]\tvalidation-rmse:6.64560 \n", "[112]\tvalidation-rmse:6.64562 \n", "[113]\tvalidation-rmse:6.64555 \n", "[114]\tvalidation-rmse:6.64565 \n", "[115]\tvalidation-rmse:6.64543 \n", "[116]\tvalidation-rmse:6.64523 \n", "[117]\tvalidation-rmse:6.64521 \n", "[118]\tvalidation-rmse:6.64491 \n", "[119]\tvalidation-rmse:6.64486 \n", "[120]\tvalidation-rmse:6.64487 \n", "[121]\tvalidation-rmse:6.64481 \n", "[122]\tvalidation-rmse:6.64477 \n", "[123]\tvalidation-rmse:6.64456 \n", "[124]\tvalidation-rmse:6.64445 \n", "[125]\tvalidation-rmse:6.64431 \n", "[126]\tvalidation-rmse:6.64418 \n", "[127]\tvalidation-rmse:6.64410 \n", "[128]\tvalidation-rmse:6.64402 \n", "[129]\tvalidation-rmse:6.64377 \n", "[130]\tvalidation-rmse:6.64378 \n", "[131]\tvalidation-rmse:6.64381 \n", "[132]\tvalidation-rmse:6.64364 \n", "[133]\tvalidation-rmse:6.64366 \n", "[134]\tvalidation-rmse:6.64328 \n", "[135]\tvalidation-rmse:6.64335 \n", "[136]\tvalidation-rmse:6.64354 \n", "[137]\tvalidation-rmse:6.64354 \n", "[138]\tvalidation-rmse:6.64351 \n", "[139]\tvalidation-rmse:6.64336 \n", "[140]\tvalidation-rmse:6.64375 \n", "[141]\tvalidation-rmse:6.64392 \n", "[142]\tvalidation-rmse:6.64387 \n", "[143]\tvalidation-rmse:6.64378 \n", "[144]\tvalidation-rmse:6.64384 \n", "[145]\tvalidation-rmse:6.64383 \n", "[146]\tvalidation-rmse:6.64396 \n", "[147]\tvalidation-rmse:6.64370 \n", "[148]\tvalidation-rmse:6.64342 \n", "[149]\tvalidation-rmse:6.64349 \n", "[150]\tvalidation-rmse:6.64356 \n", "[151]\tvalidation-rmse:6.64353 \n", "[152]\tvalidation-rmse:6.64347 \n", "[153]\tvalidation-rmse:6.64349 \n", "[154]\tvalidation-rmse:6.64328 \n", "[155]\tvalidation-rmse:6.64327 \n", "[156]\tvalidation-rmse:6.64336 \n", "[157]\tvalidation-rmse:6.64316 \n", "[158]\tvalidation-rmse:6.64322 \n", "[159]\tvalidation-rmse:6.64325 \n", "[160]\tvalidation-rmse:6.64316 \n", "[161]\tvalidation-rmse:6.64322 \n", "[162]\tvalidation-rmse:6.64317 \n", "[163]\tvalidation-rmse:6.64310 \n", "[164]\tvalidation-rmse:6.64290 \n", "[165]\tvalidation-rmse:6.64305 \n", "[166]\tvalidation-rmse:6.64296 \n", "[167]\tvalidation-rmse:6.64277 \n", "[168]\tvalidation-rmse:6.64272 \n", "[169]\tvalidation-rmse:6.64250 \n", "[170]\tvalidation-rmse:6.64238 \n", "[171]\tvalidation-rmse:6.64222 \n", "[172]\tvalidation-rmse:6.64205 \n", "[173]\tvalidation-rmse:6.64153 \n", "[174]\tvalidation-rmse:6.64147 \n", "[175]\tvalidation-rmse:6.64132 \n", "[176]\tvalidation-rmse:6.64133 \n", "[177]\tvalidation-rmse:6.64133 \n", "[178]\tvalidation-rmse:6.64129 \n", "[179]\tvalidation-rmse:6.64119 \n", "[180]\tvalidation-rmse:6.64122 \n", "[181]\tvalidation-rmse:6.64120 \n", "[182]\tvalidation-rmse:6.64113 \n", "[183]\tvalidation-rmse:6.64109 \n", "[184]\tvalidation-rmse:6.64109 \n", "[185]\tvalidation-rmse:6.64102 \n", "[186]\tvalidation-rmse:6.64083 \n", "[187]\tvalidation-rmse:6.64070 \n", "[188]\tvalidation-rmse:6.64084 \n", "[189]\tvalidation-rmse:6.64071 \n", "[190]\tvalidation-rmse:6.64068 \n", "[191]\tvalidation-rmse:6.64065 \n", "[192]\tvalidation-rmse:6.64067 \n", "[193]\tvalidation-rmse:6.64055 \n", "[194]\tvalidation-rmse:6.64054 \n", "[195]\tvalidation-rmse:6.64053 \n", "[196]\tvalidation-rmse:6.64080 \n", "[197]\tvalidation-rmse:6.64072 \n", "[198]\tvalidation-rmse:6.64095 \n", "[199]\tvalidation-rmse:6.64087 \n", "[200]\tvalidation-rmse:6.64082 \n", "[201]\tvalidation-rmse:6.64079 \n", "[202]\tvalidation-rmse:6.64096 \n", "[203]\tvalidation-rmse:6.64088 \n", "[204]\tvalidation-rmse:6.64072 \n", "[205]\tvalidation-rmse:6.64069 \n", "[206]\tvalidation-rmse:6.64064 \n", "[207]\tvalidation-rmse:6.64061 \n", "[208]\tvalidation-rmse:6.64085 \n", "[209]\tvalidation-rmse:6.64084 \n", "[210]\tvalidation-rmse:6.64084 \n", "[211]\tvalidation-rmse:6.64090 \n", "[212]\tvalidation-rmse:6.64067 \n", "[213]\tvalidation-rmse:6.64056 \n", "[214]\tvalidation-rmse:6.64049 \n", "[215]\tvalidation-rmse:6.64057 \n", "[216]\tvalidation-rmse:6.64048 \n", "[217]\tvalidation-rmse:6.64041 \n", "[218]\tvalidation-rmse:6.64036 \n", "[219]\tvalidation-rmse:6.64031 \n", "[220]\tvalidation-rmse:6.64026 \n", "[221]\tvalidation-rmse:6.64029 \n", "[222]\tvalidation-rmse:6.64027 \n", "[223]\tvalidation-rmse:6.64008 \n", "[224]\tvalidation-rmse:6.63994 \n", "[225]\tvalidation-rmse:6.63988 \n", "[226]\tvalidation-rmse:6.63968 \n", "[227]\tvalidation-rmse:6.63977 \n", "[228]\tvalidation-rmse:6.63978 \n", "[229]\tvalidation-rmse:6.63966 \n", "[230]\tvalidation-rmse:6.63970 \n", "[231]\tvalidation-rmse:6.64013 \n", "[232]\tvalidation-rmse:6.64007 \n", "[233]\tvalidation-rmse:6.63989 \n", "[234]\tvalidation-rmse:6.63995 \n", "[235]\tvalidation-rmse:6.63987 \n", "[236]\tvalidation-rmse:6.63989 \n", "[237]\tvalidation-rmse:6.63992 \n", "[238]\tvalidation-rmse:6.63982 \n", "[239]\tvalidation-rmse:6.63987 \n", "[240]\tvalidation-rmse:6.64016 \n", "[241]\tvalidation-rmse:6.64018 \n", "[242]\tvalidation-rmse:6.64022 \n", "[243]\tvalidation-rmse:6.64043 \n", "[244]\tvalidation-rmse:6.64029 \n", "[245]\tvalidation-rmse:6.64018 \n", "[246]\tvalidation-rmse:6.64017 \n", "[247]\tvalidation-rmse:6.64006 \n", "[248]\tvalidation-rmse:6.64013 \n", "[249]\tvalidation-rmse:6.64016 \n", "[250]\tvalidation-rmse:6.64010 \n", "[251]\tvalidation-rmse:6.64008 \n", "[252]\tvalidation-rmse:6.64005 \n", "[253]\tvalidation-rmse:6.64005 \n", "[254]\tvalidation-rmse:6.64005 \n", "[255]\tvalidation-rmse:6.63996 \n", "[256]\tvalidation-rmse:6.63992 \n", "[257]\tvalidation-rmse:6.63990 \n", "[258]\tvalidation-rmse:6.63982 \n", "[259]\tvalidation-rmse:6.63992 \n", "[260]\tvalidation-rmse:6.63988 \n", "[261]\tvalidation-rmse:6.63985 \n", "[262]\tvalidation-rmse:6.63992 \n", "[263]\tvalidation-rmse:6.64008 \n", "[264]\tvalidation-rmse:6.64028 \n", "[265]\tvalidation-rmse:6.64038 \n", "[266]\tvalidation-rmse:6.64035 \n", "[267]\tvalidation-rmse:6.64031 \n", "[268]\tvalidation-rmse:6.64032 \n", "[269]\tvalidation-rmse:6.64068 \n", "[270]\tvalidation-rmse:6.64071 \n", "[271]\tvalidation-rmse:6.64073 \n", "[272]\tvalidation-rmse:6.64075 \n", "[273]\tvalidation-rmse:6.64062 \n", "[274]\tvalidation-rmse:6.64071 \n", "[275]\tvalidation-rmse:6.64061 \n", "[276]\tvalidation-rmse:6.64058 \n", "[277]\tvalidation-rmse:6.64058 \n", "[278]\tvalidation-rmse:6.64048 \n", "[279]\tvalidation-rmse:6.64046 \n", "[12:54:32] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.08757 \n", "[1]\tvalidation-rmse:19.05759 \n", "[2]\tvalidation-rmse:18.09836 \n", "[3]\tvalidation-rmse:17.20561 \n", "[4]\tvalidation-rmse:16.37527 \n", "[5]\tvalidation-rmse:15.60380 \n", "[6]\tvalidation-rmse:14.88839 \n", "[7]\tvalidation-rmse:14.22457 \n", "[8]\tvalidation-rmse:13.60948 \n", "[9]\tvalidation-rmse:13.04061 \n", "[10]\tvalidation-rmse:12.51467 \n", "[11]\tvalidation-rmse:12.02853 \n", "[12]\tvalidation-rmse:11.58042 \n", "[13]\tvalidation-rmse:11.16732 \n", "[14]\tvalidation-rmse:10.78718 \n", "[15]\tvalidation-rmse:10.43706 \n", "[16]\tvalidation-rmse:10.11592 \n", "[17]\tvalidation-rmse:9.82086 \n", "[18]\tvalidation-rmse:9.55012 \n", "[19]\tvalidation-rmse:9.30302 \n", "[20]\tvalidation-rmse:9.07669 \n", "[21]\tvalidation-rmse:8.86985 \n", "[22]\tvalidation-rmse:8.68058 \n", "[23]\tvalidation-rmse:8.50784 \n", "[24]\tvalidation-rmse:8.35066 \n", "[25]\tvalidation-rmse:8.20728 \n", "[26]\tvalidation-rmse:8.07642 \n", "[27]\tvalidation-rmse:7.95787 \n", "[28]\tvalidation-rmse:7.84961 \n", "[29]\tvalidation-rmse:7.75074 \n", "[30]\tvalidation-rmse:7.66102 \n", "[31]\tvalidation-rmse:7.57908 \n", "[32]\tvalidation-rmse:7.50446 \n", "[33]\tvalidation-rmse:7.43640 \n", "[34]\tvalidation-rmse:7.37433 \n", "[35]\tvalidation-rmse:7.31726 \n", "[36]\tvalidation-rmse:7.26551 \n", "[37]\tvalidation-rmse:7.21854 \n", "[38]\tvalidation-rmse:7.17533 \n", "[39]\tvalidation-rmse:7.13570 \n", "[40]\tvalidation-rmse:7.09975 \n", "[41]\tvalidation-rmse:7.06664 \n", "[42]\tvalidation-rmse:7.03650 \n", "[43]\tvalidation-rmse:7.00868 \n", "[44]\tvalidation-rmse:6.98289 \n", "[45]\tvalidation-rmse:6.95919 \n", "[46]\tvalidation-rmse:6.93718 \n", "[47]\tvalidation-rmse:6.91736 \n", "[48]\tvalidation-rmse:6.89893 \n", "[49]\tvalidation-rmse:6.88192 \n", "[50]\tvalidation-rmse:6.86599 \n", "[51]\tvalidation-rmse:6.85125 \n", "[52]\tvalidation-rmse:6.83759 \n", "[53]\tvalidation-rmse:6.82519 \n", "[54]\tvalidation-rmse:6.81378 \n", "[55]\tvalidation-rmse:6.80277 \n", "[56]\tvalidation-rmse:6.79288 \n", "[57]\tvalidation-rmse:6.78364 \n", "[58]\tvalidation-rmse:6.77507 \n", "[59]\tvalidation-rmse:6.76696 \n", "[60]\tvalidation-rmse:6.75940 \n", "[61]\tvalidation-rmse:6.75266 \n", "[62]\tvalidation-rmse:6.74624 \n", "[63]\tvalidation-rmse:6.74047 \n", "[64]\tvalidation-rmse:6.73484 \n", "[65]\tvalidation-rmse:6.72966 \n", "[66]\tvalidation-rmse:6.72477 \n", "[67]\tvalidation-rmse:6.72000 \n", "[68]\tvalidation-rmse:6.71564 \n", "[69]\tvalidation-rmse:6.71141 \n", "[70]\tvalidation-rmse:6.70758 \n", "[71]\tvalidation-rmse:6.70403 \n", "[72]\tvalidation-rmse:6.70077 \n", "[73]\tvalidation-rmse:6.69776 \n", "[74]\tvalidation-rmse:6.69496 \n", "[75]\tvalidation-rmse:6.69206 \n", "[76]\tvalidation-rmse:6.68949 \n", "[77]\tvalidation-rmse:6.68709 \n", "[78]\tvalidation-rmse:6.68493 \n", "[79]\tvalidation-rmse:6.68273 \n", "[80]\tvalidation-rmse:6.68074 \n", "[81]\tvalidation-rmse:6.67872 \n", "[82]\tvalidation-rmse:6.67710 \n", "[83]\tvalidation-rmse:6.67555 \n", "[84]\tvalidation-rmse:6.67398 \n", "[85]\tvalidation-rmse:6.67262 \n", "[86]\tvalidation-rmse:6.67134 \n", "[87]\tvalidation-rmse:6.66992 \n", "[88]\tvalidation-rmse:6.66876 \n", "[89]\tvalidation-rmse:6.66746 \n", "[90]\tvalidation-rmse:6.66654 \n", "[91]\tvalidation-rmse:6.66532 \n", "[92]\tvalidation-rmse:6.66442 \n", "[93]\tvalidation-rmse:6.66335 \n", "[94]\tvalidation-rmse:6.66226 \n", "[95]\tvalidation-rmse:6.66135 \n", "[96]\tvalidation-rmse:6.66064 \n", "[97]\tvalidation-rmse:6.65992 \n", "[98]\tvalidation-rmse:6.65908 \n", "[99]\tvalidation-rmse:6.65839 \n", "[100]\tvalidation-rmse:6.65775 \n", "[101]\tvalidation-rmse:6.65702 \n", "[102]\tvalidation-rmse:6.65623 \n", "[103]\tvalidation-rmse:6.65559 \n", "[104]\tvalidation-rmse:6.65514 \n", "[105]\tvalidation-rmse:6.65465 \n", "[106]\tvalidation-rmse:6.65418 \n", "[107]\tvalidation-rmse:6.65365 \n", "[108]\tvalidation-rmse:6.65330 \n", "[109]\tvalidation-rmse:6.65275 \n", "[110]\tvalidation-rmse:6.65236 \n", "[111]\tvalidation-rmse:6.65180 \n", "[112]\tvalidation-rmse:6.65131 \n", "[113]\tvalidation-rmse:6.65086 \n", "[114]\tvalidation-rmse:6.65035 \n", "[115]\tvalidation-rmse:6.64999 \n", "[116]\tvalidation-rmse:6.64970 \n", "[117]\tvalidation-rmse:6.64946 \n", "[118]\tvalidation-rmse:6.64908 \n", "[119]\tvalidation-rmse:6.64880 \n", "[120]\tvalidation-rmse:6.64850 \n", "[121]\tvalidation-rmse:6.64816 \n", "[122]\tvalidation-rmse:6.64785 \n", "[123]\tvalidation-rmse:6.64754 \n", "[124]\tvalidation-rmse:6.64720 \n", "[125]\tvalidation-rmse:6.64696 \n", "[126]\tvalidation-rmse:6.64663 \n", "[127]\tvalidation-rmse:6.64636 \n", "[128]\tvalidation-rmse:6.64619 \n", "[129]\tvalidation-rmse:6.64601 \n", "[130]\tvalidation-rmse:6.64573 \n", "[131]\tvalidation-rmse:6.64549 \n", "[132]\tvalidation-rmse:6.64522 \n", "[133]\tvalidation-rmse:6.64480 \n", "[134]\tvalidation-rmse:6.64450 \n", "[135]\tvalidation-rmse:6.64429 \n", "[136]\tvalidation-rmse:6.64404 \n", "[137]\tvalidation-rmse:6.64377 \n", "[138]\tvalidation-rmse:6.64356 \n", "[139]\tvalidation-rmse:6.64328 \n", "[140]\tvalidation-rmse:6.64303 \n", "[141]\tvalidation-rmse:6.64281 \n", "[142]\tvalidation-rmse:6.64270 \n", "[143]\tvalidation-rmse:6.64255 \n", "[144]\tvalidation-rmse:6.64233 \n", "[145]\tvalidation-rmse:6.64216 \n", "[146]\tvalidation-rmse:6.64196 \n", "[147]\tvalidation-rmse:6.64175 \n", "[148]\tvalidation-rmse:6.64159 \n", "[149]\tvalidation-rmse:6.64142 \n", "[150]\tvalidation-rmse:6.64122 \n", "[151]\tvalidation-rmse:6.64105 \n", "[152]\tvalidation-rmse:6.64086 \n", "[153]\tvalidation-rmse:6.64075 \n", "[154]\tvalidation-rmse:6.64050 \n", "[155]\tvalidation-rmse:6.64029 \n", "[156]\tvalidation-rmse:6.64013 \n", "[157]\tvalidation-rmse:6.63995 \n", "[158]\tvalidation-rmse:6.63980 \n", "[159]\tvalidation-rmse:6.63975 \n", "[160]\tvalidation-rmse:6.63959 \n", "[161]\tvalidation-rmse:6.63940 \n", "[162]\tvalidation-rmse:6.63919 \n", "[163]\tvalidation-rmse:6.63906 \n", "[164]\tvalidation-rmse:6.63893 \n", "[165]\tvalidation-rmse:6.63880 \n", "[166]\tvalidation-rmse:6.63860 \n", "[167]\tvalidation-rmse:6.63828 \n", "[168]\tvalidation-rmse:6.63814 \n", "[169]\tvalidation-rmse:6.63806 \n", "[170]\tvalidation-rmse:6.63791 \n", "[171]\tvalidation-rmse:6.63770 \n", "[172]\tvalidation-rmse:6.63758 \n", "[173]\tvalidation-rmse:6.63719 \n", "[174]\tvalidation-rmse:6.63701 \n", "[175]\tvalidation-rmse:6.63679 \n", "[176]\tvalidation-rmse:6.63669 \n", "[177]\tvalidation-rmse:6.63657 \n", "[178]\tvalidation-rmse:6.63654 \n", "[179]\tvalidation-rmse:6.63636 \n", "[180]\tvalidation-rmse:6.63628 \n", "[181]\tvalidation-rmse:6.63613 \n", "[182]\tvalidation-rmse:6.63595 \n", "[183]\tvalidation-rmse:6.63580 \n", "[184]\tvalidation-rmse:6.63561 \n", "[185]\tvalidation-rmse:6.63552 \n", "[186]\tvalidation-rmse:6.63537 \n", "[187]\tvalidation-rmse:6.63524 \n", "[188]\tvalidation-rmse:6.63514 \n", "[189]\tvalidation-rmse:6.63502 \n", "[190]\tvalidation-rmse:6.63487 \n", "[191]\tvalidation-rmse:6.63469 \n", "[192]\tvalidation-rmse:6.63458 \n", "[193]\tvalidation-rmse:6.63442 \n", "[194]\tvalidation-rmse:6.63430 \n", "[195]\tvalidation-rmse:6.63424 \n", "[196]\tvalidation-rmse:6.63408 \n", "[197]\tvalidation-rmse:6.63389 \n", "[198]\tvalidation-rmse:6.63384 \n", "[199]\tvalidation-rmse:6.63381 \n", "[200]\tvalidation-rmse:6.63361 \n", "[201]\tvalidation-rmse:6.63351 \n", "[202]\tvalidation-rmse:6.63334 \n", "[203]\tvalidation-rmse:6.63319 \n", "[204]\tvalidation-rmse:6.63309 \n", "[205]\tvalidation-rmse:6.63301 \n", "[206]\tvalidation-rmse:6.63287 \n", "[207]\tvalidation-rmse:6.63216 \n", "[208]\tvalidation-rmse:6.63199 \n", "[209]\tvalidation-rmse:6.63187 \n", "[210]\tvalidation-rmse:6.63176 \n", "[211]\tvalidation-rmse:6.63166 \n", "[212]\tvalidation-rmse:6.63135 \n", "[213]\tvalidation-rmse:6.63115 \n", "[214]\tvalidation-rmse:6.63104 \n", "[215]\tvalidation-rmse:6.63076 \n", "[216]\tvalidation-rmse:6.63068 \n", "[217]\tvalidation-rmse:6.63060 \n", "[218]\tvalidation-rmse:6.63044 \n", "[219]\tvalidation-rmse:6.63041 \n", "[220]\tvalidation-rmse:6.63017 \n", "[221]\tvalidation-rmse:6.63005 \n", "[222]\tvalidation-rmse:6.63000 \n", "[223]\tvalidation-rmse:6.62990 \n", "[224]\tvalidation-rmse:6.62985 \n", "[225]\tvalidation-rmse:6.62976 \n", "[226]\tvalidation-rmse:6.62968 \n", "[227]\tvalidation-rmse:6.62954 \n", "[228]\tvalidation-rmse:6.62945 \n", "[229]\tvalidation-rmse:6.62940 \n", "[230]\tvalidation-rmse:6.62884 \n", "[231]\tvalidation-rmse:6.62871 \n", "[232]\tvalidation-rmse:6.62862 \n", "[233]\tvalidation-rmse:6.62853 \n", "[234]\tvalidation-rmse:6.62843 \n", "[235]\tvalidation-rmse:6.62832 \n", "[236]\tvalidation-rmse:6.62805 \n", "[237]\tvalidation-rmse:6.62794 \n", "[238]\tvalidation-rmse:6.62789 \n", "[239]\tvalidation-rmse:6.62785 \n", "[240]\tvalidation-rmse:6.62776 \n", "[241]\tvalidation-rmse:6.62765 \n", "[242]\tvalidation-rmse:6.62748 \n", "[243]\tvalidation-rmse:6.62735 \n", "[244]\tvalidation-rmse:6.62723 \n", "[245]\tvalidation-rmse:6.62720 \n", "[246]\tvalidation-rmse:6.62713 \n", "[247]\tvalidation-rmse:6.62706 \n", "[248]\tvalidation-rmse:6.62700 \n", "[249]\tvalidation-rmse:6.62696 \n", "[250]\tvalidation-rmse:6.62682 \n", "[251]\tvalidation-rmse:6.62672 \n", "[252]\tvalidation-rmse:6.62620 \n", "[253]\tvalidation-rmse:6.62608 \n", "[254]\tvalidation-rmse:6.62593 \n", "[255]\tvalidation-rmse:6.62585 \n", "[256]\tvalidation-rmse:6.62577 \n", "[257]\tvalidation-rmse:6.62571 \n", "[258]\tvalidation-rmse:6.62563 \n", "[259]\tvalidation-rmse:6.62557 \n", "[260]\tvalidation-rmse:6.62551 \n", "[261]\tvalidation-rmse:6.62539 \n", "[262]\tvalidation-rmse:6.62533 \n", "[263]\tvalidation-rmse:6.62527 \n", "[264]\tvalidation-rmse:6.62507 \n", "[265]\tvalidation-rmse:6.62494 \n", "[266]\tvalidation-rmse:6.62487 \n", "[267]\tvalidation-rmse:6.62482 \n", "[268]\tvalidation-rmse:6.62480 \n", "[269]\tvalidation-rmse:6.62471 \n", "[270]\tvalidation-rmse:6.62450 \n", "[271]\tvalidation-rmse:6.62446 \n", "[272]\tvalidation-rmse:6.62445 \n", "[273]\tvalidation-rmse:6.62428 \n", "[274]\tvalidation-rmse:6.62418 \n", "[275]\tvalidation-rmse:6.62414 \n", "[276]\tvalidation-rmse:6.62409 \n", "[277]\tvalidation-rmse:6.62397 \n", "[278]\tvalidation-rmse:6.62392 \n", "[279]\tvalidation-rmse:6.62384 \n", "[280]\tvalidation-rmse:6.62372 \n", "[281]\tvalidation-rmse:6.62361 \n", "[282]\tvalidation-rmse:6.62358 \n", "[283]\tvalidation-rmse:6.62355 \n", "[284]\tvalidation-rmse:6.62343 \n", "[285]\tvalidation-rmse:6.62340 \n", "[286]\tvalidation-rmse:6.62330 \n", "[287]\tvalidation-rmse:6.62322 \n", "[288]\tvalidation-rmse:6.62315 \n", "[289]\tvalidation-rmse:6.62310 \n", "[290]\tvalidation-rmse:6.62303 \n", "[291]\tvalidation-rmse:6.62274 \n", "[292]\tvalidation-rmse:6.62246 \n", "[293]\tvalidation-rmse:6.62242 \n", "[294]\tvalidation-rmse:6.62239 \n", "[295]\tvalidation-rmse:6.62234 \n", "[296]\tvalidation-rmse:6.62230 \n", "[297]\tvalidation-rmse:6.62213 \n", "[298]\tvalidation-rmse:6.62208 \n", "[299]\tvalidation-rmse:6.62203 \n", "[300]\tvalidation-rmse:6.62195 \n", "[301]\tvalidation-rmse:6.62191 \n", "[302]\tvalidation-rmse:6.62181 \n", "[303]\tvalidation-rmse:6.62173 \n", "[304]\tvalidation-rmse:6.62170 \n", "[305]\tvalidation-rmse:6.62170 \n", "[306]\tvalidation-rmse:6.62160 \n", "[307]\tvalidation-rmse:6.62152 \n", "[308]\tvalidation-rmse:6.62145 \n", "[309]\tvalidation-rmse:6.62133 \n", "[310]\tvalidation-rmse:6.62129 \n", "[311]\tvalidation-rmse:6.62123 \n", "[312]\tvalidation-rmse:6.62117 \n", "[313]\tvalidation-rmse:6.62094 \n", "[314]\tvalidation-rmse:6.62056 \n", "[315]\tvalidation-rmse:6.62053 \n", "[316]\tvalidation-rmse:6.62042 \n", "[317]\tvalidation-rmse:6.62037 \n", "[318]\tvalidation-rmse:6.62034 \n", "[319]\tvalidation-rmse:6.62029 \n", "[320]\tvalidation-rmse:6.62017 \n", "[321]\tvalidation-rmse:6.62013 \n", "[322]\tvalidation-rmse:6.62003 \n", "[323]\tvalidation-rmse:6.61999 \n", "[324]\tvalidation-rmse:6.61993 \n", "[325]\tvalidation-rmse:6.61992 \n", "[326]\tvalidation-rmse:6.61986 \n", "[327]\tvalidation-rmse:6.61982 \n", "[328]\tvalidation-rmse:6.61954 \n", "[329]\tvalidation-rmse:6.61954 \n", "[330]\tvalidation-rmse:6.61913 \n", "[331]\tvalidation-rmse:6.61909 \n", "[332]\tvalidation-rmse:6.61902 \n", "[333]\tvalidation-rmse:6.61878 \n", "[334]\tvalidation-rmse:6.61863 \n", "[335]\tvalidation-rmse:6.61856 \n", "[336]\tvalidation-rmse:6.61856 \n", "[337]\tvalidation-rmse:6.61851 \n", "[338]\tvalidation-rmse:6.61846 \n", "[339]\tvalidation-rmse:6.61841 \n", "[340]\tvalidation-rmse:6.61836 \n", "[341]\tvalidation-rmse:6.61828 \n", "[342]\tvalidation-rmse:6.61820 \n", "[343]\tvalidation-rmse:6.61816 \n", "[344]\tvalidation-rmse:6.61808 \n", "[345]\tvalidation-rmse:6.61799 \n", "[346]\tvalidation-rmse:6.61788 \n", "[347]\tvalidation-rmse:6.61787 \n", "[348]\tvalidation-rmse:6.61783 \n", "[349]\tvalidation-rmse:6.61774 \n", "[350]\tvalidation-rmse:6.61767 \n", "[351]\tvalidation-rmse:6.61766 \n", "[352]\tvalidation-rmse:6.61756 \n", "[353]\tvalidation-rmse:6.61751 \n", "[354]\tvalidation-rmse:6.61745 \n", "[355]\tvalidation-rmse:6.61723 \n", "[356]\tvalidation-rmse:6.61687 \n", "[357]\tvalidation-rmse:6.61654 \n", "[358]\tvalidation-rmse:6.61624 \n", "[359]\tvalidation-rmse:6.61622 \n", "[360]\tvalidation-rmse:6.61604 \n", "[361]\tvalidation-rmse:6.61597 \n", "[362]\tvalidation-rmse:6.61590 \n", "[363]\tvalidation-rmse:6.61580 \n", "[364]\tvalidation-rmse:6.61564 \n", "[365]\tvalidation-rmse:6.61566 \n", "[366]\tvalidation-rmse:6.61562 \n", "[367]\tvalidation-rmse:6.61557 \n", "[368]\tvalidation-rmse:6.61555 \n", "[369]\tvalidation-rmse:6.61539 \n", "[370]\tvalidation-rmse:6.61519 \n", "[371]\tvalidation-rmse:6.61506 \n", "[372]\tvalidation-rmse:6.61492 \n", "[373]\tvalidation-rmse:6.61487 \n", "[374]\tvalidation-rmse:6.61485 \n", "[375]\tvalidation-rmse:6.61476 \n", "[376]\tvalidation-rmse:6.61470 \n", "[377]\tvalidation-rmse:6.61467 \n", "[378]\tvalidation-rmse:6.61457 \n", "[379]\tvalidation-rmse:6.61454 \n", "[380]\tvalidation-rmse:6.61455 \n", "[381]\tvalidation-rmse:6.61452 \n", "[382]\tvalidation-rmse:6.61449 \n", "[383]\tvalidation-rmse:6.61436 \n", "[384]\tvalidation-rmse:6.61431 \n", "[385]\tvalidation-rmse:6.61425 \n", "[386]\tvalidation-rmse:6.61415 \n", "[387]\tvalidation-rmse:6.61393 \n", "[388]\tvalidation-rmse:6.61389 \n", "[389]\tvalidation-rmse:6.61387 \n", "[390]\tvalidation-rmse:6.61374 \n", "[391]\tvalidation-rmse:6.61359 \n", "[392]\tvalidation-rmse:6.61348 \n", "[393]\tvalidation-rmse:6.61333 \n", "[394]\tvalidation-rmse:6.61322 \n", "[395]\tvalidation-rmse:6.61310 \n", "[396]\tvalidation-rmse:6.61287 \n", "[397]\tvalidation-rmse:6.61278 \n", "[398]\tvalidation-rmse:6.61259 \n", "[399]\tvalidation-rmse:6.61247 \n", "[400]\tvalidation-rmse:6.61238 \n", "[401]\tvalidation-rmse:6.61228 \n", "[402]\tvalidation-rmse:6.61220 \n", "[403]\tvalidation-rmse:6.61200 \n", "[404]\tvalidation-rmse:6.61196 \n", "[405]\tvalidation-rmse:6.61188 \n", "[406]\tvalidation-rmse:6.61184 \n", "[407]\tvalidation-rmse:6.61174 \n", "[408]\tvalidation-rmse:6.61167 \n", "[409]\tvalidation-rmse:6.61160 \n", "[410]\tvalidation-rmse:6.61149 \n", "[411]\tvalidation-rmse:6.61132 \n", "[412]\tvalidation-rmse:6.61114 \n", "[413]\tvalidation-rmse:6.61112 \n", "[414]\tvalidation-rmse:6.61104 \n", "[415]\tvalidation-rmse:6.61094 \n", "[416]\tvalidation-rmse:6.61083 \n", "[417]\tvalidation-rmse:6.61075 \n", "[418]\tvalidation-rmse:6.61063 \n", "[419]\tvalidation-rmse:6.61063 \n", "[420]\tvalidation-rmse:6.61053 \n", "[421]\tvalidation-rmse:6.61047 \n", "[422]\tvalidation-rmse:6.61041 \n", "[423]\tvalidation-rmse:6.61037 \n", "[424]\tvalidation-rmse:6.61035 \n", "[425]\tvalidation-rmse:6.61015 \n", "[426]\tvalidation-rmse:6.61011 \n", "[427]\tvalidation-rmse:6.61009 \n", "[428]\tvalidation-rmse:6.61004 \n", "[429]\tvalidation-rmse:6.61004 \n", "[430]\tvalidation-rmse:6.60994 \n", "[431]\tvalidation-rmse:6.60994 \n", "[432]\tvalidation-rmse:6.60985 \n", "[433]\tvalidation-rmse:6.60978 \n", "[434]\tvalidation-rmse:6.60965 \n", "[435]\tvalidation-rmse:6.60960 \n", "[436]\tvalidation-rmse:6.60957 \n", "[437]\tvalidation-rmse:6.60952 \n", "[438]\tvalidation-rmse:6.60948 \n", "[439]\tvalidation-rmse:6.60943 \n", "[440]\tvalidation-rmse:6.60942 \n", "[441]\tvalidation-rmse:6.60935 \n", "[442]\tvalidation-rmse:6.60935 \n", "[443]\tvalidation-rmse:6.60925 \n", "[444]\tvalidation-rmse:6.60917 \n", "[445]\tvalidation-rmse:6.60919 \n", "[446]\tvalidation-rmse:6.60910 \n", "[447]\tvalidation-rmse:6.60911 \n", "[448]\tvalidation-rmse:6.60903 \n", "[449]\tvalidation-rmse:6.60896 \n", "[450]\tvalidation-rmse:6.60887 \n", "[451]\tvalidation-rmse:6.60880 \n", "[452]\tvalidation-rmse:6.60880 \n", "[453]\tvalidation-rmse:6.60872 \n", "[454]\tvalidation-rmse:6.60864 \n", "[455]\tvalidation-rmse:6.60865 \n", "[456]\tvalidation-rmse:6.60859 \n", "[457]\tvalidation-rmse:6.60849 \n", "[458]\tvalidation-rmse:6.60842 \n", "[459]\tvalidation-rmse:6.60838 \n", "[460]\tvalidation-rmse:6.60839 \n", "[461]\tvalidation-rmse:6.60834 \n", "[462]\tvalidation-rmse:6.60827 \n", "[463]\tvalidation-rmse:6.60821 \n", "[464]\tvalidation-rmse:6.60815 \n", "[465]\tvalidation-rmse:6.60813 \n", "[466]\tvalidation-rmse:6.60807 \n", "[467]\tvalidation-rmse:6.60805 \n", "[468]\tvalidation-rmse:6.60796 \n", "[469]\tvalidation-rmse:6.60794 \n", "[470]\tvalidation-rmse:6.60787 \n", "[471]\tvalidation-rmse:6.60778 \n", "[472]\tvalidation-rmse:6.60777 \n", "[473]\tvalidation-rmse:6.60772 \n", "[474]\tvalidation-rmse:6.60770 \n", "[475]\tvalidation-rmse:6.60763 \n", "[476]\tvalidation-rmse:6.60750 \n", "[477]\tvalidation-rmse:6.60746 \n", "[478]\tvalidation-rmse:6.60743 \n", "[479]\tvalidation-rmse:6.60736 \n", "[480]\tvalidation-rmse:6.60736 \n", "[481]\tvalidation-rmse:6.60730 \n", "[482]\tvalidation-rmse:6.60724 \n", "[483]\tvalidation-rmse:6.60721 \n", "[484]\tvalidation-rmse:6.60714 \n", "[485]\tvalidation-rmse:6.60706 \n", "[486]\tvalidation-rmse:6.60707 \n", "[487]\tvalidation-rmse:6.60700 \n", "[488]\tvalidation-rmse:6.60695 \n", "[489]\tvalidation-rmse:6.60688 \n", "[490]\tvalidation-rmse:6.60681 \n", "[491]\tvalidation-rmse:6.60680 \n", "[492]\tvalidation-rmse:6.60672 \n", "[493]\tvalidation-rmse:6.60675 \n", "[494]\tvalidation-rmse:6.60669 \n", "[495]\tvalidation-rmse:6.60669 \n", "[496]\tvalidation-rmse:6.60664 \n", "[497]\tvalidation-rmse:6.60665 \n", "[498]\tvalidation-rmse:6.60656 \n", "[499]\tvalidation-rmse:6.60651 \n", "[500]\tvalidation-rmse:6.60649 \n", "[501]\tvalidation-rmse:6.60644 \n", "[502]\tvalidation-rmse:6.60643 \n", "[503]\tvalidation-rmse:6.60635 \n", "[504]\tvalidation-rmse:6.60636 \n", "[505]\tvalidation-rmse:6.60628 \n", "[506]\tvalidation-rmse:6.60631 \n", "[507]\tvalidation-rmse:6.60631 \n", "[508]\tvalidation-rmse:6.60624 \n", "[509]\tvalidation-rmse:6.60616 \n", "[510]\tvalidation-rmse:6.60609 \n", "[511]\tvalidation-rmse:6.60604 \n", "[512]\tvalidation-rmse:6.60595 \n", "[513]\tvalidation-rmse:6.60596 \n", "[514]\tvalidation-rmse:6.60590 \n", "[515]\tvalidation-rmse:6.60589 \n", "[516]\tvalidation-rmse:6.60582 \n", "[517]\tvalidation-rmse:6.60582 \n", "[518]\tvalidation-rmse:6.60577 \n", "[519]\tvalidation-rmse:6.60575 \n", "[520]\tvalidation-rmse:6.60571 \n", "[521]\tvalidation-rmse:6.60571 \n", "[522]\tvalidation-rmse:6.60570 \n", "[523]\tvalidation-rmse:6.60564 \n", "[524]\tvalidation-rmse:6.60562 \n", "[525]\tvalidation-rmse:6.60553 \n", "[526]\tvalidation-rmse:6.60552 \n", "[527]\tvalidation-rmse:6.60547 \n", "[528]\tvalidation-rmse:6.60547 \n", "[529]\tvalidation-rmse:6.60542 \n", "[530]\tvalidation-rmse:6.60543 \n", "[531]\tvalidation-rmse:6.60538 \n", "[532]\tvalidation-rmse:6.60533 \n", "[533]\tvalidation-rmse:6.60529 \n", "[534]\tvalidation-rmse:6.60524 \n", "[535]\tvalidation-rmse:6.60522 \n", "[536]\tvalidation-rmse:6.60511 \n", "[537]\tvalidation-rmse:6.60509 \n", "[538]\tvalidation-rmse:6.60500 \n", "[539]\tvalidation-rmse:6.60493 \n", "[540]\tvalidation-rmse:6.60491 \n", "[541]\tvalidation-rmse:6.60494 \n", "[542]\tvalidation-rmse:6.60487 \n", "[543]\tvalidation-rmse:6.60488 \n", "[544]\tvalidation-rmse:6.60482 \n", "[545]\tvalidation-rmse:6.60476 \n", "[546]\tvalidation-rmse:6.60480 \n", "[547]\tvalidation-rmse:6.60476 \n", "[548]\tvalidation-rmse:6.60462 \n", "[549]\tvalidation-rmse:6.60456 \n", "[550]\tvalidation-rmse:6.60455 \n", "[551]\tvalidation-rmse:6.60452 \n", "[552]\tvalidation-rmse:6.60450 \n", "[553]\tvalidation-rmse:6.60445 \n", "[554]\tvalidation-rmse:6.60434 \n", "[555]\tvalidation-rmse:6.60426 \n", "[556]\tvalidation-rmse:6.60417 \n", "[557]\tvalidation-rmse:6.60409 \n", "[558]\tvalidation-rmse:6.60406 \n", "[559]\tvalidation-rmse:6.60404 \n", "[560]\tvalidation-rmse:6.60404 \n", "[561]\tvalidation-rmse:6.60399 \n", "[562]\tvalidation-rmse:6.60395 \n", "[563]\tvalidation-rmse:6.60398 \n", "[564]\tvalidation-rmse:6.60391 \n", "[565]\tvalidation-rmse:6.60393 \n", "[566]\tvalidation-rmse:6.60386 \n", "[567]\tvalidation-rmse:6.60386 \n", "[568]\tvalidation-rmse:6.60381 \n", "[569]\tvalidation-rmse:6.60379 \n", "[570]\tvalidation-rmse:6.60375 \n", "[571]\tvalidation-rmse:6.60375 \n", "[572]\tvalidation-rmse:6.60361 \n", "[573]\tvalidation-rmse:6.60348 \n", "[574]\tvalidation-rmse:6.60341 \n", "[575]\tvalidation-rmse:6.60339 \n", "[576]\tvalidation-rmse:6.60336 \n", "[577]\tvalidation-rmse:6.60333 \n", "[578]\tvalidation-rmse:6.60328 \n", "[579]\tvalidation-rmse:6.60328 \n", "[580]\tvalidation-rmse:6.60327 \n", "[581]\tvalidation-rmse:6.60312 \n", "[582]\tvalidation-rmse:6.60303 \n", "[583]\tvalidation-rmse:6.60296 \n", "[584]\tvalidation-rmse:6.60296 \n", "[585]\tvalidation-rmse:6.60280 \n", "[586]\tvalidation-rmse:6.60273 \n", "[587]\tvalidation-rmse:6.60270 \n", "[588]\tvalidation-rmse:6.60262 \n", "[589]\tvalidation-rmse:6.60255 \n", "[590]\tvalidation-rmse:6.60253 \n", "[591]\tvalidation-rmse:6.60241 \n", "[592]\tvalidation-rmse:6.60231 \n", "[593]\tvalidation-rmse:6.60224 \n", "[594]\tvalidation-rmse:6.60214 \n", "[595]\tvalidation-rmse:6.60204 \n", "[596]\tvalidation-rmse:6.60198 \n", "[597]\tvalidation-rmse:6.60186 \n", "[598]\tvalidation-rmse:6.60181 \n", "[599]\tvalidation-rmse:6.60177 \n", "[600]\tvalidation-rmse:6.60170 \n", "[601]\tvalidation-rmse:6.60163 \n", "[602]\tvalidation-rmse:6.60156 \n", "[603]\tvalidation-rmse:6.60152 \n", "[604]\tvalidation-rmse:6.60149 \n", "[605]\tvalidation-rmse:6.60143 \n", "[606]\tvalidation-rmse:6.60137 \n", "[607]\tvalidation-rmse:6.60133 \n", "[608]\tvalidation-rmse:6.60132 \n", "[609]\tvalidation-rmse:6.60116 \n", "[610]\tvalidation-rmse:6.60110 \n", "[611]\tvalidation-rmse:6.60108 \n", "[612]\tvalidation-rmse:6.60105 \n", "[613]\tvalidation-rmse:6.60103 \n", "[614]\tvalidation-rmse:6.60099 \n", "[615]\tvalidation-rmse:6.60094 \n", "[616]\tvalidation-rmse:6.60082 \n", "[617]\tvalidation-rmse:6.60079 \n", "[618]\tvalidation-rmse:6.60071 \n", "[619]\tvalidation-rmse:6.60063 \n", "[620]\tvalidation-rmse:6.60059 \n", "[621]\tvalidation-rmse:6.60055 \n", "[622]\tvalidation-rmse:6.60050 \n", "[623]\tvalidation-rmse:6.60047 \n", "[624]\tvalidation-rmse:6.60040 \n", "[625]\tvalidation-rmse:6.60041 \n", "[626]\tvalidation-rmse:6.60038 \n", "[627]\tvalidation-rmse:6.60031 \n", "[628]\tvalidation-rmse:6.60027 \n", "[629]\tvalidation-rmse:6.60020 \n", "[630]\tvalidation-rmse:6.60018 \n", "[631]\tvalidation-rmse:6.60014 \n", "[632]\tvalidation-rmse:6.60005 \n", "[633]\tvalidation-rmse:6.60000 \n", "[634]\tvalidation-rmse:6.59997 \n", "[635]\tvalidation-rmse:6.59994 \n", "[636]\tvalidation-rmse:6.59988 \n", "[637]\tvalidation-rmse:6.59984 \n", "[638]\tvalidation-rmse:6.59979 \n", "[639]\tvalidation-rmse:6.59978 \n", "[640]\tvalidation-rmse:6.59975 \n", "[641]\tvalidation-rmse:6.59970 \n", "[642]\tvalidation-rmse:6.59966 \n", "[643]\tvalidation-rmse:6.59961 \n", "[644]\tvalidation-rmse:6.59960 \n", "[645]\tvalidation-rmse:6.59956 \n", "[646]\tvalidation-rmse:6.59953 \n", "[647]\tvalidation-rmse:6.59954 \n", "[648]\tvalidation-rmse:6.59950 \n", "[649]\tvalidation-rmse:6.59943 \n", "[650]\tvalidation-rmse:6.59938 \n", "[651]\tvalidation-rmse:6.59934 \n", "[652]\tvalidation-rmse:6.59928 \n", "[653]\tvalidation-rmse:6.59926 \n", "[654]\tvalidation-rmse:6.59923 \n", "[655]\tvalidation-rmse:6.59923 \n", "[656]\tvalidation-rmse:6.59919 \n", "[657]\tvalidation-rmse:6.59912 \n", "[658]\tvalidation-rmse:6.59910 \n", "[659]\tvalidation-rmse:6.59901 \n", "[660]\tvalidation-rmse:6.59897 \n", "[661]\tvalidation-rmse:6.59893 \n", "[662]\tvalidation-rmse:6.59886 \n", "[663]\tvalidation-rmse:6.59884 \n", "[664]\tvalidation-rmse:6.59886 \n", "[665]\tvalidation-rmse:6.59886 \n", "[666]\tvalidation-rmse:6.59882 \n", "[667]\tvalidation-rmse:6.59885 \n", "[668]\tvalidation-rmse:6.59882 \n", "[669]\tvalidation-rmse:6.59877 \n", "[670]\tvalidation-rmse:6.59872 \n", "[671]\tvalidation-rmse:6.59870 \n", "[672]\tvalidation-rmse:6.59868 \n", "[673]\tvalidation-rmse:6.59864 \n", "[674]\tvalidation-rmse:6.59857 \n", "[675]\tvalidation-rmse:6.59857 \n", "[676]\tvalidation-rmse:6.59853 \n", "[677]\tvalidation-rmse:6.59849 \n", "[678]\tvalidation-rmse:6.59849 \n", "[679]\tvalidation-rmse:6.59844 \n", "[680]\tvalidation-rmse:6.59843 \n", "[681]\tvalidation-rmse:6.59840 \n", "[682]\tvalidation-rmse:6.59836 \n", "[683]\tvalidation-rmse:6.59831 \n", "[684]\tvalidation-rmse:6.59829 \n", "[685]\tvalidation-rmse:6.59825 \n", "[686]\tvalidation-rmse:6.59825 \n", "[687]\tvalidation-rmse:6.59823 \n", "[688]\tvalidation-rmse:6.59827 \n", "[689]\tvalidation-rmse:6.59816 \n", "[690]\tvalidation-rmse:6.59812 \n", "[691]\tvalidation-rmse:6.59807 \n", "[692]\tvalidation-rmse:6.59800 \n", "[693]\tvalidation-rmse:6.59795 \n", "[694]\tvalidation-rmse:6.59791 \n", "[695]\tvalidation-rmse:6.59788 \n", "[696]\tvalidation-rmse:6.59791 \n", "[697]\tvalidation-rmse:6.59786 \n", "[698]\tvalidation-rmse:6.59776 \n", "[699]\tvalidation-rmse:6.59772 \n", "[700]\tvalidation-rmse:6.59767 \n", "[701]\tvalidation-rmse:6.59762 \n", "[702]\tvalidation-rmse:6.59757 \n", "[703]\tvalidation-rmse:6.59758 \n", "[704]\tvalidation-rmse:6.59753 \n", "[705]\tvalidation-rmse:6.59752 \n", "[706]\tvalidation-rmse:6.59749 \n", "[707]\tvalidation-rmse:6.59745 \n", "[708]\tvalidation-rmse:6.59739 \n", "[709]\tvalidation-rmse:6.59736 \n", "[710]\tvalidation-rmse:6.59736 \n", "[711]\tvalidation-rmse:6.59733 \n", "[712]\tvalidation-rmse:6.59732 \n", "[713]\tvalidation-rmse:6.59729 \n", "[714]\tvalidation-rmse:6.59726 \n", "[715]\tvalidation-rmse:6.59724 \n", "[716]\tvalidation-rmse:6.59726 \n", "[717]\tvalidation-rmse:6.59721 \n", "[718]\tvalidation-rmse:6.59716 \n", "[719]\tvalidation-rmse:6.59716 \n", "[720]\tvalidation-rmse:6.59712 \n", "[721]\tvalidation-rmse:6.59706 \n", "[722]\tvalidation-rmse:6.59701 \n", "[723]\tvalidation-rmse:6.59700 \n", "[724]\tvalidation-rmse:6.59698 \n", "[725]\tvalidation-rmse:6.59697 \n", "[726]\tvalidation-rmse:6.59693 \n", "[727]\tvalidation-rmse:6.59695 \n", "[728]\tvalidation-rmse:6.59694 \n", "[729]\tvalidation-rmse:6.59694 \n", "[730]\tvalidation-rmse:6.59691 \n", "[731]\tvalidation-rmse:6.59679 \n", "[732]\tvalidation-rmse:6.59672 \n", "[733]\tvalidation-rmse:6.59669 \n", "[734]\tvalidation-rmse:6.59667 \n", "[735]\tvalidation-rmse:6.59664 \n", "[736]\tvalidation-rmse:6.59662 \n", "[737]\tvalidation-rmse:6.59663 \n", "[738]\tvalidation-rmse:6.59658 \n", "[739]\tvalidation-rmse:6.59658 \n", "[740]\tvalidation-rmse:6.59657 \n", "[741]\tvalidation-rmse:6.59661 \n", "[742]\tvalidation-rmse:6.59657 \n", "[743]\tvalidation-rmse:6.59659 \n", "[744]\tvalidation-rmse:6.59658 \n", "[745]\tvalidation-rmse:6.59657 \n", "[746]\tvalidation-rmse:6.59654 \n", "[747]\tvalidation-rmse:6.59656 \n", "[748]\tvalidation-rmse:6.59650 \n", "[749]\tvalidation-rmse:6.59646 \n", "[750]\tvalidation-rmse:6.59646 \n", "[751]\tvalidation-rmse:6.59640 \n", "[752]\tvalidation-rmse:6.59648 \n", "[753]\tvalidation-rmse:6.59643 \n", "[754]\tvalidation-rmse:6.59638 \n", "[755]\tvalidation-rmse:6.59637 \n", "[756]\tvalidation-rmse:6.59632 \n", "[757]\tvalidation-rmse:6.59635 \n", "[758]\tvalidation-rmse:6.59636 \n", "[759]\tvalidation-rmse:6.59620 \n", "[760]\tvalidation-rmse:6.59620 \n", "[761]\tvalidation-rmse:6.59617 \n", "[762]\tvalidation-rmse:6.59619 \n", "[763]\tvalidation-rmse:6.59616 \n", "[764]\tvalidation-rmse:6.59614 \n", "[765]\tvalidation-rmse:6.59614 \n", "[766]\tvalidation-rmse:6.59613 \n", "[767]\tvalidation-rmse:6.59612 \n", "[768]\tvalidation-rmse:6.59612 \n", "[769]\tvalidation-rmse:6.59608 \n", "[770]\tvalidation-rmse:6.59606 \n", "[771]\tvalidation-rmse:6.59605 \n", "[772]\tvalidation-rmse:6.59605 \n", "[773]\tvalidation-rmse:6.59604 \n", "[774]\tvalidation-rmse:6.59604 \n", "[775]\tvalidation-rmse:6.59603 \n", "[776]\tvalidation-rmse:6.59601 \n", "[777]\tvalidation-rmse:6.59601 \n", "[778]\tvalidation-rmse:6.59599 \n", "[779]\tvalidation-rmse:6.59598 \n", "[780]\tvalidation-rmse:6.59593 \n", "[781]\tvalidation-rmse:6.59590 \n", "[782]\tvalidation-rmse:6.59588 \n", "[783]\tvalidation-rmse:6.59584 \n", "[784]\tvalidation-rmse:6.59583 \n", "[785]\tvalidation-rmse:6.59581 \n", "[786]\tvalidation-rmse:6.59585 \n", "[787]\tvalidation-rmse:6.59580 \n", "[788]\tvalidation-rmse:6.59575 \n", "[789]\tvalidation-rmse:6.59566 \n", "[790]\tvalidation-rmse:6.59568 \n", "[791]\tvalidation-rmse:6.59568 \n", "[792]\tvalidation-rmse:6.59564 \n", "[793]\tvalidation-rmse:6.59564 \n", "[794]\tvalidation-rmse:6.59560 \n", "[795]\tvalidation-rmse:6.59557 \n", "[796]\tvalidation-rmse:6.59557 \n", "[797]\tvalidation-rmse:6.59532 \n", "[798]\tvalidation-rmse:6.59527 \n", "[799]\tvalidation-rmse:6.59528 \n", "[800]\tvalidation-rmse:6.59528 \n", "[801]\tvalidation-rmse:6.59524 \n", "[802]\tvalidation-rmse:6.59523 \n", "[803]\tvalidation-rmse:6.59524 \n", "[804]\tvalidation-rmse:6.59521 \n", "[805]\tvalidation-rmse:6.59519 \n", "[806]\tvalidation-rmse:6.59517 \n", "[807]\tvalidation-rmse:6.59514 \n", "[808]\tvalidation-rmse:6.59512 \n", "[809]\tvalidation-rmse:6.59513 \n", "[810]\tvalidation-rmse:6.59512 \n", "[811]\tvalidation-rmse:6.59509 \n", "[812]\tvalidation-rmse:6.59510 \n", "[813]\tvalidation-rmse:6.59509 \n", "[814]\tvalidation-rmse:6.59505 \n", "[815]\tvalidation-rmse:6.59504 \n", "[816]\tvalidation-rmse:6.59500 \n", "[817]\tvalidation-rmse:6.59497 \n", "[818]\tvalidation-rmse:6.59494 \n", "[819]\tvalidation-rmse:6.59495 \n", "[820]\tvalidation-rmse:6.59490 \n", "[821]\tvalidation-rmse:6.59490 \n", "[822]\tvalidation-rmse:6.59487 \n", "[823]\tvalidation-rmse:6.59475 \n", "[824]\tvalidation-rmse:6.59473 \n", "[825]\tvalidation-rmse:6.59470 \n", "[826]\tvalidation-rmse:6.59462 \n", "[827]\tvalidation-rmse:6.59453 \n", "[828]\tvalidation-rmse:6.59451 \n", "[829]\tvalidation-rmse:6.59446 \n", "[830]\tvalidation-rmse:6.59442 \n", "[831]\tvalidation-rmse:6.59442 \n", "[832]\tvalidation-rmse:6.59439 \n", "[833]\tvalidation-rmse:6.59437 \n", "[834]\tvalidation-rmse:6.59437 \n", "[835]\tvalidation-rmse:6.59434 \n", "[836]\tvalidation-rmse:6.59435 \n", "[837]\tvalidation-rmse:6.59433 \n", "[838]\tvalidation-rmse:6.59432 \n", "[839]\tvalidation-rmse:6.59431 \n", "[840]\tvalidation-rmse:6.59433 \n", "[841]\tvalidation-rmse:6.59427 \n", "[842]\tvalidation-rmse:6.59428 \n", "[843]\tvalidation-rmse:6.59425 \n", "[844]\tvalidation-rmse:6.59425 \n", "[845]\tvalidation-rmse:6.59424 \n", "[846]\tvalidation-rmse:6.59422 \n", "[847]\tvalidation-rmse:6.59419 \n", "[848]\tvalidation-rmse:6.59420 \n", "[849]\tvalidation-rmse:6.59409 \n", "[850]\tvalidation-rmse:6.59409 \n", "[851]\tvalidation-rmse:6.59408 \n", "[852]\tvalidation-rmse:6.59397 \n", "[853]\tvalidation-rmse:6.59399 \n", "[854]\tvalidation-rmse:6.59401 \n", "[855]\tvalidation-rmse:6.59399 \n", "[856]\tvalidation-rmse:6.59395 \n", "[857]\tvalidation-rmse:6.59394 \n", "[858]\tvalidation-rmse:6.59391 \n", "[859]\tvalidation-rmse:6.59387 \n", "[860]\tvalidation-rmse:6.59388 \n", "[861]\tvalidation-rmse:6.59386 \n", "[862]\tvalidation-rmse:6.59383 \n", "[863]\tvalidation-rmse:6.59382 \n", "[864]\tvalidation-rmse:6.59381 \n", "[865]\tvalidation-rmse:6.59379 \n", "[866]\tvalidation-rmse:6.59376 \n", "[867]\tvalidation-rmse:6.59374 \n", "[868]\tvalidation-rmse:6.59374 \n", "[869]\tvalidation-rmse:6.59367 \n", "[870]\tvalidation-rmse:6.59359 \n", "[871]\tvalidation-rmse:6.59356 \n", "[872]\tvalidation-rmse:6.59353 \n", "[873]\tvalidation-rmse:6.59350 \n", "[874]\tvalidation-rmse:6.59354 \n", "[875]\tvalidation-rmse:6.59356 \n", "[876]\tvalidation-rmse:6.59353 \n", "[877]\tvalidation-rmse:6.59352 \n", "[878]\tvalidation-rmse:6.59350 \n", "[879]\tvalidation-rmse:6.59353 \n", "[880]\tvalidation-rmse:6.59348 \n", "[881]\tvalidation-rmse:6.59345 \n", "[882]\tvalidation-rmse:6.59342 \n", "[883]\tvalidation-rmse:6.59341 \n", "[884]\tvalidation-rmse:6.59341 \n", "[885]\tvalidation-rmse:6.59334 \n", "[886]\tvalidation-rmse:6.59331 \n", "[887]\tvalidation-rmse:6.59328 \n", "[888]\tvalidation-rmse:6.59328 \n", "[889]\tvalidation-rmse:6.59324 \n", "[890]\tvalidation-rmse:6.59327 \n", "[891]\tvalidation-rmse:6.59312 \n", "[892]\tvalidation-rmse:6.59309 \n", "[893]\tvalidation-rmse:6.59309 \n", "[894]\tvalidation-rmse:6.59305 \n", "[895]\tvalidation-rmse:6.59305 \n", "[896]\tvalidation-rmse:6.59305 \n", "[897]\tvalidation-rmse:6.59308 \n", "[898]\tvalidation-rmse:6.59298 \n", "[899]\tvalidation-rmse:6.59298 \n", "[900]\tvalidation-rmse:6.59295 \n", "[901]\tvalidation-rmse:6.59281 \n", "[902]\tvalidation-rmse:6.59274 \n", "[903]\tvalidation-rmse:6.59277 \n", "[904]\tvalidation-rmse:6.59268 \n", "[905]\tvalidation-rmse:6.59271 \n", "[906]\tvalidation-rmse:6.59263 \n", "[907]\tvalidation-rmse:6.59262 \n", "[908]\tvalidation-rmse:6.59262 \n", "[909]\tvalidation-rmse:6.59261 \n", "[910]\tvalidation-rmse:6.59247 \n", "[911]\tvalidation-rmse:6.59248 \n", "[912]\tvalidation-rmse:6.59251 \n", "[913]\tvalidation-rmse:6.59251 \n", "[914]\tvalidation-rmse:6.59246 \n", "[915]\tvalidation-rmse:6.59247 \n", "[916]\tvalidation-rmse:6.59242 \n", "[917]\tvalidation-rmse:6.59232 \n", "[918]\tvalidation-rmse:6.59222 \n", "[919]\tvalidation-rmse:6.59214 \n", "[920]\tvalidation-rmse:6.59212 \n", "[921]\tvalidation-rmse:6.59210 \n", "[922]\tvalidation-rmse:6.59199 \n", "[923]\tvalidation-rmse:6.59207 \n", "[924]\tvalidation-rmse:6.59194 \n", "[925]\tvalidation-rmse:6.59192 \n", "[926]\tvalidation-rmse:6.59175 \n", "[927]\tvalidation-rmse:6.59175 \n", "[928]\tvalidation-rmse:6.59174 \n", "[929]\tvalidation-rmse:6.59166 \n", "[930]\tvalidation-rmse:6.59168 \n", "[931]\tvalidation-rmse:6.59166 \n", "[932]\tvalidation-rmse:6.59155 \n", "[933]\tvalidation-rmse:6.59154 \n", "[934]\tvalidation-rmse:6.59155 \n", "[935]\tvalidation-rmse:6.59156 \n", "[936]\tvalidation-rmse:6.59154 \n", "[937]\tvalidation-rmse:6.59154 \n", "[938]\tvalidation-rmse:6.59153 \n", "[939]\tvalidation-rmse:6.59151 \n", "[940]\tvalidation-rmse:6.59152 \n", "[941]\tvalidation-rmse:6.59148 \n", "[942]\tvalidation-rmse:6.59145 \n", "[943]\tvalidation-rmse:6.59142 \n", "[944]\tvalidation-rmse:6.59147 \n", "[945]\tvalidation-rmse:6.59132 \n", "[946]\tvalidation-rmse:6.59132 \n", "[947]\tvalidation-rmse:6.59131 \n", "[948]\tvalidation-rmse:6.59131 \n", "[949]\tvalidation-rmse:6.59129 \n", "[950]\tvalidation-rmse:6.59124 \n", "[951]\tvalidation-rmse:6.59125 \n", "[952]\tvalidation-rmse:6.59122 \n", "[953]\tvalidation-rmse:6.59124 \n", "[954]\tvalidation-rmse:6.59124 \n", "[955]\tvalidation-rmse:6.59123 \n", "[956]\tvalidation-rmse:6.59122 \n", "[957]\tvalidation-rmse:6.59119 \n", "[958]\tvalidation-rmse:6.59116 \n", "[959]\tvalidation-rmse:6.59113 \n", "[960]\tvalidation-rmse:6.59113 \n", "[961]\tvalidation-rmse:6.59113 \n", "[962]\tvalidation-rmse:6.59114 \n", "[963]\tvalidation-rmse:6.59111 \n", "[964]\tvalidation-rmse:6.59111 \n", "[965]\tvalidation-rmse:6.59109 \n", "[966]\tvalidation-rmse:6.59111 \n", "[967]\tvalidation-rmse:6.59107 \n", "[968]\tvalidation-rmse:6.59108 \n", "[969]\tvalidation-rmse:6.59104 \n", "[970]\tvalidation-rmse:6.59102 \n", "[971]\tvalidation-rmse:6.59100 \n", "[972]\tvalidation-rmse:6.59089 \n", "[973]\tvalidation-rmse:6.59088 \n", "[974]\tvalidation-rmse:6.59091 \n", "[975]\tvalidation-rmse:6.59090 \n", "[976]\tvalidation-rmse:6.59081 \n", "[977]\tvalidation-rmse:6.59086 \n", "[978]\tvalidation-rmse:6.59081 \n", "[979]\tvalidation-rmse:6.59086 \n", "[980]\tvalidation-rmse:6.59085 \n", "[981]\tvalidation-rmse:6.59082 \n", "[982]\tvalidation-rmse:6.59082 \n", "[983]\tvalidation-rmse:6.59081 \n", "[984]\tvalidation-rmse:6.59079 \n", "[985]\tvalidation-rmse:6.59077 \n", "[986]\tvalidation-rmse:6.59071 \n", "[987]\tvalidation-rmse:6.59070 \n", "[988]\tvalidation-rmse:6.59070 \n", "[989]\tvalidation-rmse:6.59070 \n", "[990]\tvalidation-rmse:6.59068 \n", "[991]\tvalidation-rmse:6.59066 \n", "[992]\tvalidation-rmse:6.59065 \n", "[993]\tvalidation-rmse:6.59064 \n", "[994]\tvalidation-rmse:6.59065 \n", "[995]\tvalidation-rmse:6.59066 \n", "[996]\tvalidation-rmse:6.59063 \n", "[997]\tvalidation-rmse:6.59062 \n", "[998]\tvalidation-rmse:6.59057 \n", "[999]\tvalidation-rmse:6.59055 \n", "[12:55:50] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:7.94999 \n", "[1]\tvalidation-rmse:6.66505 \n", "[2]\tvalidation-rmse:6.51208 \n", "[3]\tvalidation-rmse:6.49198 \n", "[4]\tvalidation-rmse:6.47869 \n", "[5]\tvalidation-rmse:6.46969 \n", "[6]\tvalidation-rmse:6.45923 \n", "[7]\tvalidation-rmse:6.44862 \n", "[8]\tvalidation-rmse:6.44191 \n", "[9]\tvalidation-rmse:6.43372 \n", "[10]\tvalidation-rmse:6.42872 \n", "[11]\tvalidation-rmse:6.41933 \n", "[12]\tvalidation-rmse:6.40998 \n", "[13]\tvalidation-rmse:6.40807 \n", "[14]\tvalidation-rmse:6.40168 \n", "[15]\tvalidation-rmse:6.39808 \n", "[16]\tvalidation-rmse:6.39353 \n", "[17]\tvalidation-rmse:6.39163 \n", "[18]\tvalidation-rmse:6.38800 \n", "[19]\tvalidation-rmse:6.38631 \n", "[20]\tvalidation-rmse:6.38182 \n", "[21]\tvalidation-rmse:6.37997 \n", "[22]\tvalidation-rmse:6.37545 \n", "[23]\tvalidation-rmse:6.37345 \n", "[24]\tvalidation-rmse:6.37131 \n", "[25]\tvalidation-rmse:6.36773 \n", "[26]\tvalidation-rmse:6.36801 \n", "[27]\tvalidation-rmse:6.36636 \n", "[28]\tvalidation-rmse:6.36504 \n", "[29]\tvalidation-rmse:6.36354 \n", "[30]\tvalidation-rmse:6.36220 \n", "[31]\tvalidation-rmse:6.36060 \n", "[32]\tvalidation-rmse:6.35946 \n", "[33]\tvalidation-rmse:6.35664 \n", "[34]\tvalidation-rmse:6.35519 \n", "[35]\tvalidation-rmse:6.35318 \n", "[36]\tvalidation-rmse:6.34908 \n", "[37]\tvalidation-rmse:6.34733 \n", "[38]\tvalidation-rmse:6.34574 \n", "[39]\tvalidation-rmse:6.34358 \n", "[40]\tvalidation-rmse:6.34305 \n", "[41]\tvalidation-rmse:6.34277 \n", "[42]\tvalidation-rmse:6.34077 \n", "[43]\tvalidation-rmse:6.33846 \n", "[44]\tvalidation-rmse:6.34654 \n", "[45]\tvalidation-rmse:6.34720 \n", "[46]\tvalidation-rmse:6.34523 \n", "[47]\tvalidation-rmse:6.34598 \n", "[48]\tvalidation-rmse:6.34558 \n", "[49]\tvalidation-rmse:6.34492 \n", "[50]\tvalidation-rmse:6.34528 \n", "[51]\tvalidation-rmse:6.34436 \n", "[52]\tvalidation-rmse:6.34400 \n", "[53]\tvalidation-rmse:6.34258 \n", "[54]\tvalidation-rmse:6.34259 \n", "[55]\tvalidation-rmse:6.34310 \n", "[56]\tvalidation-rmse:6.34271 \n", "[57]\tvalidation-rmse:6.34365 \n", "[58]\tvalidation-rmse:6.34363 \n", "[59]\tvalidation-rmse:6.34370 \n", "[60]\tvalidation-rmse:6.34441 \n", "[61]\tvalidation-rmse:6.34450 \n", "[62]\tvalidation-rmse:6.34563 \n", "[63]\tvalidation-rmse:6.34507 \n", "[64]\tvalidation-rmse:6.34467 \n", "[65]\tvalidation-rmse:6.34943 \n", "[66]\tvalidation-rmse:6.35302 \n", "[67]\tvalidation-rmse:6.35254 \n", "[68]\tvalidation-rmse:6.35299 \n", "[69]\tvalidation-rmse:6.35342 \n", "[70]\tvalidation-rmse:6.35833 \n", "[71]\tvalidation-rmse:6.35778 \n", "[72]\tvalidation-rmse:6.35878 \n", "[73]\tvalidation-rmse:6.36046 \n", "[74]\tvalidation-rmse:6.36036 \n", "[75]\tvalidation-rmse:6.36086 \n", "[76]\tvalidation-rmse:6.36137 \n", "[77]\tvalidation-rmse:6.36148 \n", "[78]\tvalidation-rmse:6.35999 \n", "[79]\tvalidation-rmse:6.36180 \n", "[80]\tvalidation-rmse:6.36185 \n", "[81]\tvalidation-rmse:6.36225 \n", "[82]\tvalidation-rmse:6.36401 \n", "[83]\tvalidation-rmse:6.36304 \n", "[84]\tvalidation-rmse:6.36272 \n", "[85]\tvalidation-rmse:6.36578 \n", "[86]\tvalidation-rmse:6.36743 \n", "[87]\tvalidation-rmse:6.36803 \n", "[88]\tvalidation-rmse:6.36723 \n", "[89]\tvalidation-rmse:6.36825 \n", "[90]\tvalidation-rmse:6.36886 \n", "[91]\tvalidation-rmse:6.36812 \n", "[92]\tvalidation-rmse:6.37044 \n", "[93]\tvalidation-rmse:6.37256 \n", "[12:56:10] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:10.64481 \n", "[1]\tvalidation-rmse:7.64485 \n", "[2]\tvalidation-rmse:6.90495 \n", "[3]\tvalidation-rmse:6.69288 \n", "[4]\tvalidation-rmse:6.62681 \n", "[5]\tvalidation-rmse:6.59206 \n", "[6]\tvalidation-rmse:6.57508 \n", "[7]\tvalidation-rmse:6.56611 \n", "[8]\tvalidation-rmse:6.55936 \n", "[9]\tvalidation-rmse:6.55532 \n", "[10]\tvalidation-rmse:6.55041 \n", "[11]\tvalidation-rmse:6.54803 \n", "[12]\tvalidation-rmse:6.54640 \n", "[13]\tvalidation-rmse:6.54392 \n", "[14]\tvalidation-rmse:6.54173 \n", "[15]\tvalidation-rmse:6.54067 \n", "[16]\tvalidation-rmse:6.53834 \n", "[17]\tvalidation-rmse:6.53847 \n", "[18]\tvalidation-rmse:6.53800 \n", "[19]\tvalidation-rmse:6.53789 \n", "[20]\tvalidation-rmse:6.53673 \n", "[21]\tvalidation-rmse:6.53516 \n", "[22]\tvalidation-rmse:6.53412 \n", "[23]\tvalidation-rmse:6.53367 \n", "[24]\tvalidation-rmse:6.53404 \n", "[25]\tvalidation-rmse:6.53348 \n", "[26]\tvalidation-rmse:6.53196 \n", "[27]\tvalidation-rmse:6.53243 \n", "[28]\tvalidation-rmse:6.53148 \n", "[29]\tvalidation-rmse:6.53113 \n", "[30]\tvalidation-rmse:6.53006 \n", "[31]\tvalidation-rmse:6.53090 \n", "[32]\tvalidation-rmse:6.53054 \n", "[33]\tvalidation-rmse:6.53009 \n", "[34]\tvalidation-rmse:6.52972 \n", "[35]\tvalidation-rmse:6.52924 \n", "[36]\tvalidation-rmse:6.52903 \n", "[37]\tvalidation-rmse:6.52863 \n", "[38]\tvalidation-rmse:6.52801 \n", "[39]\tvalidation-rmse:6.52808 \n", "[40]\tvalidation-rmse:6.52828 \n", "[41]\tvalidation-rmse:6.52731 \n", "[42]\tvalidation-rmse:6.52783 \n", "[43]\tvalidation-rmse:6.52872 \n", "[44]\tvalidation-rmse:6.52963 \n", "[45]\tvalidation-rmse:6.52899 \n", "[46]\tvalidation-rmse:6.53073 \n", "[47]\tvalidation-rmse:6.52950 \n", "[48]\tvalidation-rmse:6.53035 \n", "[49]\tvalidation-rmse:6.53058 \n", "[50]\tvalidation-rmse:6.53122 \n", "[51]\tvalidation-rmse:6.53192 \n", "[52]\tvalidation-rmse:6.53104 \n", "[53]\tvalidation-rmse:6.53145 \n", "[54]\tvalidation-rmse:6.53271 \n", "[55]\tvalidation-rmse:6.53334 \n", "[56]\tvalidation-rmse:6.53331 \n", "[57]\tvalidation-rmse:6.53292 \n", "[58]\tvalidation-rmse:6.53320 \n", "[59]\tvalidation-rmse:6.53360 \n", "[60]\tvalidation-rmse:6.53470 \n", "[61]\tvalidation-rmse:6.53684 \n", "[62]\tvalidation-rmse:6.53724 \n", "[63]\tvalidation-rmse:6.53771 \n", "[64]\tvalidation-rmse:6.53771 \n", "[65]\tvalidation-rmse:6.53707 \n", "[66]\tvalidation-rmse:6.53710 \n", "[67]\tvalidation-rmse:6.53764 \n", "[68]\tvalidation-rmse:6.53782 \n", "[69]\tvalidation-rmse:6.54225 \n", "[70]\tvalidation-rmse:6.54279 \n", "[71]\tvalidation-rmse:6.54347 \n", "[72]\tvalidation-rmse:6.54594 \n", "[73]\tvalidation-rmse:6.54586 \n", "[74]\tvalidation-rmse:6.54631 \n", "[75]\tvalidation-rmse:6.54722 \n", "[76]\tvalidation-rmse:6.54778 \n", "[77]\tvalidation-rmse:6.54802 \n", "[78]\tvalidation-rmse:6.54803 \n", "[79]\tvalidation-rmse:6.54922 \n", "[80]\tvalidation-rmse:6.54988 \n", "[81]\tvalidation-rmse:6.55017 \n", "[82]\tvalidation-rmse:6.55089 \n", "[83]\tvalidation-rmse:6.55261 \n", "[84]\tvalidation-rmse:6.55250 \n", "[85]\tvalidation-rmse:6.55257 \n", "[86]\tvalidation-rmse:6.55263 \n", "[87]\tvalidation-rmse:6.55446 \n", "[88]\tvalidation-rmse:6.55437 \n", "[89]\tvalidation-rmse:6.55435 \n", "[90]\tvalidation-rmse:6.55521 \n", "[91]\tvalidation-rmse:6.55597 \n", "[12:56:38] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.03354 \n", "[1]\tvalidation-rmse:8.52700 \n", "[2]\tvalidation-rmse:7.33946 \n", "[3]\tvalidation-rmse:6.94272 \n", "[4]\tvalidation-rmse:6.79021 \n", "[5]\tvalidation-rmse:6.72366 \n", "[6]\tvalidation-rmse:6.69201 \n", "[7]\tvalidation-rmse:6.67523 \n", "[8]\tvalidation-rmse:6.66677 \n", "[9]\tvalidation-rmse:6.66270 \n", "[10]\tvalidation-rmse:6.65757 \n", "[11]\tvalidation-rmse:6.65530 \n", "[12]\tvalidation-rmse:6.65331 \n", "[13]\tvalidation-rmse:6.65262 \n", "[14]\tvalidation-rmse:6.65035 \n", "[15]\tvalidation-rmse:6.65039 \n", "[16]\tvalidation-rmse:6.64985 \n", "[17]\tvalidation-rmse:6.64910 \n", "[18]\tvalidation-rmse:6.64815 \n", "[19]\tvalidation-rmse:6.64793 \n", "[20]\tvalidation-rmse:6.64728 \n", "[21]\tvalidation-rmse:6.64619 \n", "[22]\tvalidation-rmse:6.64553 \n", "[23]\tvalidation-rmse:6.64453 \n", "[24]\tvalidation-rmse:6.64315 \n", "[25]\tvalidation-rmse:6.64343 \n", "[26]\tvalidation-rmse:6.64214 \n", "[27]\tvalidation-rmse:6.64246 \n", "[28]\tvalidation-rmse:6.64070 \n", "[29]\tvalidation-rmse:6.64053 \n", "[30]\tvalidation-rmse:6.64135 \n", "[31]\tvalidation-rmse:6.64136 \n", "[32]\tvalidation-rmse:6.64292 \n", "[33]\tvalidation-rmse:6.64347 \n", "[34]\tvalidation-rmse:6.64399 \n", "[35]\tvalidation-rmse:6.64377 \n", "[36]\tvalidation-rmse:6.64454 \n", "[37]\tvalidation-rmse:6.64379 \n", "[38]\tvalidation-rmse:6.64488 \n", "[39]\tvalidation-rmse:6.64694 \n", "[40]\tvalidation-rmse:6.64707 \n", "[41]\tvalidation-rmse:6.64918 \n", "[42]\tvalidation-rmse:6.65053 \n", "[43]\tvalidation-rmse:6.65122 \n", "[44]\tvalidation-rmse:6.65037 \n", "[45]\tvalidation-rmse:6.65063 \n", "[46]\tvalidation-rmse:6.65130 \n", "[47]\tvalidation-rmse:6.65080 \n", "[48]\tvalidation-rmse:6.65066 \n", "[49]\tvalidation-rmse:6.65103 \n", "[50]\tvalidation-rmse:6.65142 \n", "[51]\tvalidation-rmse:6.65291 \n", "[52]\tvalidation-rmse:6.65287 \n", "[53]\tvalidation-rmse:6.65262 \n", "[54]\tvalidation-rmse:6.65313 \n", "[55]\tvalidation-rmse:6.65271 \n", "[56]\tvalidation-rmse:6.65449 \n", "[57]\tvalidation-rmse:6.65432 \n", "[58]\tvalidation-rmse:6.65530 \n", "[59]\tvalidation-rmse:6.65498 \n", "[60]\tvalidation-rmse:6.65492 \n", "[61]\tvalidation-rmse:6.65501 \n", "[62]\tvalidation-rmse:6.65459 \n", "[63]\tvalidation-rmse:6.65511 \n", "[64]\tvalidation-rmse:6.65514 \n", "[65]\tvalidation-rmse:6.65566 \n", "[66]\tvalidation-rmse:6.65552 \n", "[67]\tvalidation-rmse:6.65555 \n", "[68]\tvalidation-rmse:6.65657 \n", "[69]\tvalidation-rmse:6.65637 \n", "[70]\tvalidation-rmse:6.65691 \n", "[71]\tvalidation-rmse:6.65731 \n", "[72]\tvalidation-rmse:6.65695 \n", "[73]\tvalidation-rmse:6.65791 \n", "[74]\tvalidation-rmse:6.65822 \n", "[75]\tvalidation-rmse:6.65778 \n", "[76]\tvalidation-rmse:6.65749 \n", "[77]\tvalidation-rmse:6.65737 \n", "[78]\tvalidation-rmse:6.65779 \n", "[79]\tvalidation-rmse:6.65763 \n", "[12:57:04] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:6.80989 \n", "[1]\tvalidation-rmse:6.70418 \n", "[2]\tvalidation-rmse:6.67275 \n", "[3]\tvalidation-rmse:6.65733 \n", "[4]\tvalidation-rmse:6.64064 \n", "[5]\tvalidation-rmse:6.63494 \n", "[6]\tvalidation-rmse:6.63649 \n", "[7]\tvalidation-rmse:6.62836 \n", "[8]\tvalidation-rmse:6.62406 \n", "[9]\tvalidation-rmse:6.61550 \n", "[10]\tvalidation-rmse:6.61334 \n", "[11]\tvalidation-rmse:6.61281 \n", "[12]\tvalidation-rmse:6.60964 \n", "[13]\tvalidation-rmse:6.60956 \n", "[14]\tvalidation-rmse:6.60787 \n", "[15]\tvalidation-rmse:6.60701 \n", "[16]\tvalidation-rmse:6.60575 \n", "[17]\tvalidation-rmse:6.60646 \n", "[18]\tvalidation-rmse:6.60317 \n", "[19]\tvalidation-rmse:6.60425 \n", "[20]\tvalidation-rmse:6.60630 \n", "[21]\tvalidation-rmse:6.60418 \n", "[22]\tvalidation-rmse:6.60286 \n", "[23]\tvalidation-rmse:6.60203 \n", "[24]\tvalidation-rmse:6.60279 \n", "[25]\tvalidation-rmse:6.60278 \n", "[26]\tvalidation-rmse:6.60153 \n", "[27]\tvalidation-rmse:6.60786 \n", "[28]\tvalidation-rmse:6.60726 \n", "[29]\tvalidation-rmse:6.61617 \n", "[30]\tvalidation-rmse:6.61597 \n", "[31]\tvalidation-rmse:6.61643 \n", "[32]\tvalidation-rmse:6.61416 \n", "[33]\tvalidation-rmse:6.61543 \n", "[34]\tvalidation-rmse:6.61535 \n", "[35]\tvalidation-rmse:6.61594 \n", "[36]\tvalidation-rmse:6.61374 \n", "[37]\tvalidation-rmse:6.61401 \n", "[38]\tvalidation-rmse:6.61224 \n", "[39]\tvalidation-rmse:6.61305 \n", "[40]\tvalidation-rmse:6.61343 \n", "[41]\tvalidation-rmse:6.61390 \n", "[42]\tvalidation-rmse:6.61557 \n", "[43]\tvalidation-rmse:6.61621 \n", "[44]\tvalidation-rmse:6.61631 \n", "[45]\tvalidation-rmse:6.61738 \n", "[46]\tvalidation-rmse:6.61950 \n", "[47]\tvalidation-rmse:6.61979 \n", "[48]\tvalidation-rmse:6.62065 \n", "[49]\tvalidation-rmse:6.62318 \n", "[50]\tvalidation-rmse:6.62296 \n", "[51]\tvalidation-rmse:6.62230 \n", "[52]\tvalidation-rmse:6.62222 \n", "[53]\tvalidation-rmse:6.62211 \n", "[54]\tvalidation-rmse:6.62136 \n", "[55]\tvalidation-rmse:6.62277 \n", "[56]\tvalidation-rmse:6.62317 \n", "[57]\tvalidation-rmse:6.62356 \n", "[58]\tvalidation-rmse:6.62406 \n", "[59]\tvalidation-rmse:6.62626 \n", "[60]\tvalidation-rmse:6.62628 \n", "[61]\tvalidation-rmse:6.62664 \n", "[62]\tvalidation-rmse:6.62751 \n", "[63]\tvalidation-rmse:6.62776 \n", "[64]\tvalidation-rmse:6.62699 \n", "[65]\tvalidation-rmse:6.62683 \n", "[66]\tvalidation-rmse:6.62689 \n", "[67]\tvalidation-rmse:6.62938 \n", "[68]\tvalidation-rmse:6.62989 \n", "[69]\tvalidation-rmse:6.63032 \n", "[70]\tvalidation-rmse:6.63106 \n", "[71]\tvalidation-rmse:6.63095 \n", "[72]\tvalidation-rmse:6.63214 \n", "[73]\tvalidation-rmse:6.63168 \n", "[74]\tvalidation-rmse:6.63180 \n", "[75]\tvalidation-rmse:6.63249 \n", "[76]\tvalidation-rmse:6.63311 \n", "[12:57:23] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:18.73838 \n", "[1]\tvalidation-rmse:16.65480 \n", "[2]\tvalidation-rmse:14.89445 \n", "[3]\tvalidation-rmse:13.41476 \n", "[4]\tvalidation-rmse:12.17492 \n", "[5]\tvalidation-rmse:11.14544 \n", "[6]\tvalidation-rmse:10.29238 \n", "[7]\tvalidation-rmse:9.59132 \n", "[8]\tvalidation-rmse:9.01886 \n", "[9]\tvalidation-rmse:8.55327 \n", "[10]\tvalidation-rmse:8.17608 \n", "[11]\tvalidation-rmse:7.87159 \n", "[12]\tvalidation-rmse:7.62357 \n", "[13]\tvalidation-rmse:7.42538 \n", "[14]\tvalidation-rmse:7.26560 \n", "[15]\tvalidation-rmse:7.13530 \n", "[16]\tvalidation-rmse:7.02884 \n", "[17]\tvalidation-rmse:6.94293 \n", "[18]\tvalidation-rmse:6.87393 \n", "[19]\tvalidation-rmse:6.81595 \n", "[20]\tvalidation-rmse:6.76813 \n", "[21]\tvalidation-rmse:6.72832 \n", "[22]\tvalidation-rmse:6.69469 \n", "[23]\tvalidation-rmse:6.66751 \n", "[24]\tvalidation-rmse:6.64510 \n", "[25]\tvalidation-rmse:6.62421 \n", "[26]\tvalidation-rmse:6.60612 \n", "[27]\tvalidation-rmse:6.59131 \n", "[28]\tvalidation-rmse:6.57727 \n", "[29]\tvalidation-rmse:6.56610 \n", "[30]\tvalidation-rmse:6.55680 \n", "[31]\tvalidation-rmse:6.54856 \n", "[32]\tvalidation-rmse:6.54149 \n", "[33]\tvalidation-rmse:6.53441 \n", "[34]\tvalidation-rmse:6.52821 \n", "[35]\tvalidation-rmse:6.52279 \n", "[36]\tvalidation-rmse:6.51852 \n", "[37]\tvalidation-rmse:6.51444 \n", "[38]\tvalidation-rmse:6.51039 \n", "[39]\tvalidation-rmse:6.50722 \n", "[40]\tvalidation-rmse:6.50486 \n", "[41]\tvalidation-rmse:6.50207 \n", "[42]\tvalidation-rmse:6.49963 \n", "[43]\tvalidation-rmse:6.49770 \n", "[44]\tvalidation-rmse:6.49520 \n", "[45]\tvalidation-rmse:6.49358 \n", "[46]\tvalidation-rmse:6.49213 \n", "[47]\tvalidation-rmse:6.49036 \n", "[48]\tvalidation-rmse:6.48902 \n", "[49]\tvalidation-rmse:6.48810 \n", "[50]\tvalidation-rmse:6.48679 \n", "[51]\tvalidation-rmse:6.48578 \n", "[52]\tvalidation-rmse:6.48438 \n", "[53]\tvalidation-rmse:6.48292 \n", "[54]\tvalidation-rmse:6.48182 \n", "[55]\tvalidation-rmse:6.48063 \n", "[56]\tvalidation-rmse:6.47937 \n", "[57]\tvalidation-rmse:6.47871 \n", "[58]\tvalidation-rmse:6.47725 \n", "[59]\tvalidation-rmse:6.47626 \n", "[60]\tvalidation-rmse:6.47554 \n", "[61]\tvalidation-rmse:6.47475 \n", "[62]\tvalidation-rmse:6.47407 \n", "[63]\tvalidation-rmse:6.47324 \n", "[64]\tvalidation-rmse:6.47261 \n", "[65]\tvalidation-rmse:6.47196 \n", "[66]\tvalidation-rmse:6.47103 \n", "[67]\tvalidation-rmse:6.46959 \n", "[68]\tvalidation-rmse:6.46887 \n", "[69]\tvalidation-rmse:6.46844 \n", "[70]\tvalidation-rmse:6.46777 \n", "[71]\tvalidation-rmse:6.46721 \n", "[72]\tvalidation-rmse:6.46646 \n", "[73]\tvalidation-rmse:6.46620 \n", "[74]\tvalidation-rmse:6.46522 \n", "[75]\tvalidation-rmse:6.46483 \n", "[76]\tvalidation-rmse:6.46450 \n", "[77]\tvalidation-rmse:6.46408 \n", "[78]\tvalidation-rmse:6.46375 \n", "[79]\tvalidation-rmse:6.46302 \n", "[80]\tvalidation-rmse:6.46270 \n", "[81]\tvalidation-rmse:6.46216 \n", "[82]\tvalidation-rmse:6.46171 \n", "[83]\tvalidation-rmse:6.46138 \n", "[84]\tvalidation-rmse:6.46088 \n", "[85]\tvalidation-rmse:6.46040 \n", "[86]\tvalidation-rmse:6.45953 \n", "[87]\tvalidation-rmse:6.45914 \n", "[88]\tvalidation-rmse:6.45851 \n", "[89]\tvalidation-rmse:6.45800 \n", "[90]\tvalidation-rmse:6.45773 \n", "[91]\tvalidation-rmse:6.45723 \n", "[92]\tvalidation-rmse:6.45688 \n", "[93]\tvalidation-rmse:6.45640 \n", "[94]\tvalidation-rmse:6.45601 \n", "[95]\tvalidation-rmse:6.45548 \n", "[96]\tvalidation-rmse:6.45517 \n", "[97]\tvalidation-rmse:6.45464 \n", "[98]\tvalidation-rmse:6.45432 \n", "[99]\tvalidation-rmse:6.45395 \n", "[100]\tvalidation-rmse:6.45367 \n", "[101]\tvalidation-rmse:6.45335 \n", "[102]\tvalidation-rmse:6.45306 \n", "[103]\tvalidation-rmse:6.45264 \n", "[104]\tvalidation-rmse:6.45245 \n", "[105]\tvalidation-rmse:6.45213 \n", "[106]\tvalidation-rmse:6.45175 \n", "[107]\tvalidation-rmse:6.45125 \n", "[108]\tvalidation-rmse:6.45056 \n", "[109]\tvalidation-rmse:6.45027 \n", "[110]\tvalidation-rmse:6.44996 \n", "[111]\tvalidation-rmse:6.44952 \n", "[112]\tvalidation-rmse:6.44922 \n", "[113]\tvalidation-rmse:6.44875 \n", "[114]\tvalidation-rmse:6.44842 \n", "[115]\tvalidation-rmse:6.44823 \n", "[116]\tvalidation-rmse:6.44805 \n", "[117]\tvalidation-rmse:6.44793 \n", "[118]\tvalidation-rmse:6.44744 \n", "[119]\tvalidation-rmse:6.44733 \n", "[120]\tvalidation-rmse:6.44701 \n", "[121]\tvalidation-rmse:6.44674 \n", "[122]\tvalidation-rmse:6.44662 \n", "[123]\tvalidation-rmse:6.44634 \n", "[124]\tvalidation-rmse:6.44561 \n", "[125]\tvalidation-rmse:6.44535 \n", "[126]\tvalidation-rmse:6.44507 \n", "[127]\tvalidation-rmse:6.44485 \n", "[128]\tvalidation-rmse:6.44469 \n", "[129]\tvalidation-rmse:6.44419 \n", "[130]\tvalidation-rmse:6.44422 \n", "[131]\tvalidation-rmse:6.44392 \n", "[132]\tvalidation-rmse:6.44382 \n", "[133]\tvalidation-rmse:6.44351 \n", "[134]\tvalidation-rmse:6.44324 \n", "[135]\tvalidation-rmse:6.44319 \n", "[136]\tvalidation-rmse:6.44270 \n", "[137]\tvalidation-rmse:6.44230 \n", "[138]\tvalidation-rmse:6.44194 \n", "[139]\tvalidation-rmse:6.44170 \n", "[140]\tvalidation-rmse:6.44152 \n", "[141]\tvalidation-rmse:6.44074 \n", "[142]\tvalidation-rmse:6.44025 \n", "[143]\tvalidation-rmse:6.44009 \n", "[144]\tvalidation-rmse:6.43981 \n", "[145]\tvalidation-rmse:6.43973 \n", "[146]\tvalidation-rmse:6.43976 \n", "[147]\tvalidation-rmse:6.43968 \n", "[148]\tvalidation-rmse:6.43948 \n", "[149]\tvalidation-rmse:6.43901 \n", "[150]\tvalidation-rmse:6.43870 \n", "[151]\tvalidation-rmse:6.43863 \n", "[152]\tvalidation-rmse:6.43852 \n", "[153]\tvalidation-rmse:6.43827 \n", "[154]\tvalidation-rmse:6.43767 \n", "[155]\tvalidation-rmse:6.43750 \n", "[156]\tvalidation-rmse:6.43749 \n", "[157]\tvalidation-rmse:6.43735 \n", "[158]\tvalidation-rmse:6.43712 \n", "[159]\tvalidation-rmse:6.43692 \n", "[160]\tvalidation-rmse:6.43668 \n", "[161]\tvalidation-rmse:6.43658 \n", "[162]\tvalidation-rmse:6.43625 \n", "[163]\tvalidation-rmse:6.43626 \n", "[164]\tvalidation-rmse:6.43611 \n", "[165]\tvalidation-rmse:6.43558 \n", "[166]\tvalidation-rmse:6.43532 \n", "[167]\tvalidation-rmse:6.43516 \n", "[168]\tvalidation-rmse:6.43506 \n", "[169]\tvalidation-rmse:6.43467 \n", "[170]\tvalidation-rmse:6.43465 \n", "[171]\tvalidation-rmse:6.43455 \n", "[172]\tvalidation-rmse:6.43470 \n", "[173]\tvalidation-rmse:6.43469 \n", "[174]\tvalidation-rmse:6.43443 \n", "[175]\tvalidation-rmse:6.43362 \n", "[176]\tvalidation-rmse:6.43340 \n", "[177]\tvalidation-rmse:6.43282 \n", "[178]\tvalidation-rmse:6.43255 \n", "[179]\tvalidation-rmse:6.43231 \n", "[180]\tvalidation-rmse:6.43199 \n", "[181]\tvalidation-rmse:6.43192 \n", "[182]\tvalidation-rmse:6.43189 \n", "[183]\tvalidation-rmse:6.43150 \n", "[184]\tvalidation-rmse:6.43154 \n", "[185]\tvalidation-rmse:6.43142 \n", "[186]\tvalidation-rmse:6.43093 \n", "[187]\tvalidation-rmse:6.43053 \n", "[188]\tvalidation-rmse:6.43043 \n", "[189]\tvalidation-rmse:6.43031 \n", "[190]\tvalidation-rmse:6.43011 \n", "[191]\tvalidation-rmse:6.42992 \n", "[192]\tvalidation-rmse:6.42976 \n", "[193]\tvalidation-rmse:6.42975 \n", "[194]\tvalidation-rmse:6.42945 \n", "[195]\tvalidation-rmse:6.42937 \n", "[196]\tvalidation-rmse:6.42961 \n", "[197]\tvalidation-rmse:6.42964 \n", "[198]\tvalidation-rmse:6.42966 \n", "[199]\tvalidation-rmse:6.42953 \n", "[200]\tvalidation-rmse:6.42946 \n", "[201]\tvalidation-rmse:6.42944 \n", "[202]\tvalidation-rmse:6.42954 \n", "[203]\tvalidation-rmse:6.42948 \n", "[204]\tvalidation-rmse:6.42943 \n", "[205]\tvalidation-rmse:6.42911 \n", "[206]\tvalidation-rmse:6.42880 \n", "[207]\tvalidation-rmse:6.42873 \n", "[208]\tvalidation-rmse:6.42899 \n", "[209]\tvalidation-rmse:6.42905 \n", "[210]\tvalidation-rmse:6.42879 \n", "[211]\tvalidation-rmse:6.42853 \n", "[212]\tvalidation-rmse:6.42835 \n", "[213]\tvalidation-rmse:6.42820 \n", "[214]\tvalidation-rmse:6.42776 \n", "[215]\tvalidation-rmse:6.42751 \n", "[216]\tvalidation-rmse:6.42715 \n", "[217]\tvalidation-rmse:6.42716 \n", "[218]\tvalidation-rmse:6.42713 \n", "[219]\tvalidation-rmse:6.42694 \n", "[220]\tvalidation-rmse:6.42687 \n", "[221]\tvalidation-rmse:6.42674 \n", "[222]\tvalidation-rmse:6.42674 \n", "[223]\tvalidation-rmse:6.42699 \n", "[224]\tvalidation-rmse:6.42720 \n", "[225]\tvalidation-rmse:6.42819 \n", "[226]\tvalidation-rmse:6.42811 \n", "[227]\tvalidation-rmse:6.42801 \n", "[228]\tvalidation-rmse:6.42788 \n", "[229]\tvalidation-rmse:6.42791 \n", "[230]\tvalidation-rmse:6.42788 \n", "[231]\tvalidation-rmse:6.42771 \n", "[232]\tvalidation-rmse:6.42758 \n", "[233]\tvalidation-rmse:6.42739 \n", "[234]\tvalidation-rmse:6.42713 \n", "[235]\tvalidation-rmse:6.42723 \n", "[236]\tvalidation-rmse:6.42726 \n", "[237]\tvalidation-rmse:6.42711 \n", "[238]\tvalidation-rmse:6.42687 \n", "[239]\tvalidation-rmse:6.42673 \n", "[240]\tvalidation-rmse:6.42656 \n", "[241]\tvalidation-rmse:6.42629 \n", "[242]\tvalidation-rmse:6.42636 \n", "[243]\tvalidation-rmse:6.42608 \n", "[244]\tvalidation-rmse:6.42595 \n", "[245]\tvalidation-rmse:6.42610 \n", "[246]\tvalidation-rmse:6.42587 \n", "[247]\tvalidation-rmse:6.42588 \n", "[248]\tvalidation-rmse:6.42595 \n", "[249]\tvalidation-rmse:6.42591 \n", "[250]\tvalidation-rmse:6.42588 \n", "[251]\tvalidation-rmse:6.42575 \n", "[252]\tvalidation-rmse:6.42579 \n", "[253]\tvalidation-rmse:6.42557 \n", "[254]\tvalidation-rmse:6.42537 \n", "[255]\tvalidation-rmse:6.42558 \n", "[256]\tvalidation-rmse:6.42567 \n", "[257]\tvalidation-rmse:6.42524 \n", "[258]\tvalidation-rmse:6.42493 \n", "[259]\tvalidation-rmse:6.42489 \n", "[260]\tvalidation-rmse:6.42475 \n", "[261]\tvalidation-rmse:6.42487 \n", "[262]\tvalidation-rmse:6.42475 \n", "[263]\tvalidation-rmse:6.42469 \n", "[264]\tvalidation-rmse:6.42439 \n", "[265]\tvalidation-rmse:6.42438 \n", "[266]\tvalidation-rmse:6.42448 \n", "[267]\tvalidation-rmse:6.42439 \n", "[268]\tvalidation-rmse:6.42431 \n", "[269]\tvalidation-rmse:6.42407 \n", "[270]\tvalidation-rmse:6.42388 \n", "[271]\tvalidation-rmse:6.42394 \n", "[272]\tvalidation-rmse:6.42393 \n", "[273]\tvalidation-rmse:6.42388 \n", "[274]\tvalidation-rmse:6.42372 \n", "[275]\tvalidation-rmse:6.42387 \n", "[276]\tvalidation-rmse:6.42388 \n", "[277]\tvalidation-rmse:6.42398 \n", "[278]\tvalidation-rmse:6.42408 \n", "[279]\tvalidation-rmse:6.42404 \n", "[280]\tvalidation-rmse:6.42379 \n", "[281]\tvalidation-rmse:6.42386 \n", "[282]\tvalidation-rmse:6.42374 \n", "[283]\tvalidation-rmse:6.42376 \n", "[284]\tvalidation-rmse:6.42366 \n", "[285]\tvalidation-rmse:6.42358 \n", "[286]\tvalidation-rmse:6.42347 \n", "[287]\tvalidation-rmse:6.42341 \n", "[288]\tvalidation-rmse:6.42331 \n", "[289]\tvalidation-rmse:6.42342 \n", "[290]\tvalidation-rmse:6.42326 \n", "[291]\tvalidation-rmse:6.42291 \n", "[292]\tvalidation-rmse:6.42282 \n", "[293]\tvalidation-rmse:6.42292 \n", "[294]\tvalidation-rmse:6.42283 \n", "[295]\tvalidation-rmse:6.42267 \n", "[296]\tvalidation-rmse:6.42255 \n", "[297]\tvalidation-rmse:6.42252 \n", "[298]\tvalidation-rmse:6.42229 \n", "[299]\tvalidation-rmse:6.42232 \n", "[300]\tvalidation-rmse:6.42235 \n", "[301]\tvalidation-rmse:6.42243 \n", "[302]\tvalidation-rmse:6.42242 \n", "[303]\tvalidation-rmse:6.42240 \n", "[304]\tvalidation-rmse:6.42237 \n", "[305]\tvalidation-rmse:6.42239 \n", "[306]\tvalidation-rmse:6.42233 \n", "[307]\tvalidation-rmse:6.42231 \n", "[308]\tvalidation-rmse:6.42233 \n", "[309]\tvalidation-rmse:6.42226 \n", "[310]\tvalidation-rmse:6.42238 \n", "[311]\tvalidation-rmse:6.42258 \n", "[312]\tvalidation-rmse:6.42253 \n", "[313]\tvalidation-rmse:6.42237 \n", "[314]\tvalidation-rmse:6.42288 \n", "[315]\tvalidation-rmse:6.42347 \n", "[316]\tvalidation-rmse:6.42361 \n", "[317]\tvalidation-rmse:6.42365 \n", "[318]\tvalidation-rmse:6.42362 \n", "[319]\tvalidation-rmse:6.42348 \n", "[320]\tvalidation-rmse:6.42355 \n", "[321]\tvalidation-rmse:6.42350 \n", "[322]\tvalidation-rmse:6.42345 \n", "[323]\tvalidation-rmse:6.42358 \n", "[324]\tvalidation-rmse:6.42357 \n", "[325]\tvalidation-rmse:6.42332 \n", "[326]\tvalidation-rmse:6.42339 \n", "[327]\tvalidation-rmse:6.42336 \n", "[328]\tvalidation-rmse:6.42311 \n", "[329]\tvalidation-rmse:6.42297 \n", "[330]\tvalidation-rmse:6.42290 \n", "[331]\tvalidation-rmse:6.42289 \n", "[332]\tvalidation-rmse:6.42284 \n", "[333]\tvalidation-rmse:6.42272 \n", "[334]\tvalidation-rmse:6.42280 \n", "[335]\tvalidation-rmse:6.42424 \n", "[336]\tvalidation-rmse:6.42436 \n", "[337]\tvalidation-rmse:6.42425 \n", "[338]\tvalidation-rmse:6.42440 \n", "[339]\tvalidation-rmse:6.42440 \n", "[340]\tvalidation-rmse:6.42434 \n", "[341]\tvalidation-rmse:6.42425 \n", "[342]\tvalidation-rmse:6.42371 \n", "[343]\tvalidation-rmse:6.42372 \n", "[344]\tvalidation-rmse:6.42373 \n", "[345]\tvalidation-rmse:6.42331 \n", "[346]\tvalidation-rmse:6.42321 \n", "[347]\tvalidation-rmse:6.42327 \n", "[348]\tvalidation-rmse:6.42325 \n", "[349]\tvalidation-rmse:6.42322 \n", "[350]\tvalidation-rmse:6.42319 \n", "[351]\tvalidation-rmse:6.42309 \n", "[352]\tvalidation-rmse:6.42280 \n", "[353]\tvalidation-rmse:6.42279 \n", "[354]\tvalidation-rmse:6.42292 \n", "[355]\tvalidation-rmse:6.42281 \n", "[356]\tvalidation-rmse:6.42280 \n", "[357]\tvalidation-rmse:6.42267 \n", "[358]\tvalidation-rmse:6.42251 \n", "[359]\tvalidation-rmse:6.42227 \n", "[12:58:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:16.46234 \n", "[1]\tvalidation-rmse:13.14594 \n", "[2]\tvalidation-rmse:10.87019 \n", "[3]\tvalidation-rmse:9.34545 \n", "[4]\tvalidation-rmse:8.34395 \n", "[5]\tvalidation-rmse:7.70253 \n", "[6]\tvalidation-rmse:7.28939 \n", "[7]\tvalidation-rmse:7.02685 \n", "[8]\tvalidation-rmse:6.85399 \n", "[9]\tvalidation-rmse:6.74153 \n", "[10]\tvalidation-rmse:6.66233 \n", "[11]\tvalidation-rmse:6.60783 \n", "[12]\tvalidation-rmse:6.56779 \n", "[13]\tvalidation-rmse:6.53906 \n", "[14]\tvalidation-rmse:6.51751 \n", "[15]\tvalidation-rmse:6.50278 \n", "[16]\tvalidation-rmse:6.49343 \n", "[17]\tvalidation-rmse:6.48424 \n", "[18]\tvalidation-rmse:6.47904 \n", "[19]\tvalidation-rmse:6.47403 \n", "[20]\tvalidation-rmse:6.46991 \n", "[21]\tvalidation-rmse:6.46657 \n", "[22]\tvalidation-rmse:6.46344 \n", "[23]\tvalidation-rmse:6.46028 \n", "[24]\tvalidation-rmse:6.45578 \n", "[25]\tvalidation-rmse:6.45352 \n", "[26]\tvalidation-rmse:6.45079 \n", "[27]\tvalidation-rmse:6.44839 \n", "[28]\tvalidation-rmse:6.44479 \n", "[29]\tvalidation-rmse:6.44292 \n", "[30]\tvalidation-rmse:6.44095 \n", "[31]\tvalidation-rmse:6.43742 \n", "[32]\tvalidation-rmse:6.43548 \n", "[33]\tvalidation-rmse:6.43346 \n", "[34]\tvalidation-rmse:6.43236 \n", "[35]\tvalidation-rmse:6.43076 \n", "[36]\tvalidation-rmse:6.42917 \n", "[37]\tvalidation-rmse:6.42837 \n", "[38]\tvalidation-rmse:6.42719 \n", "[39]\tvalidation-rmse:6.42574 \n", "[40]\tvalidation-rmse:6.42426 \n", "[41]\tvalidation-rmse:6.42287 \n", "[42]\tvalidation-rmse:6.42075 \n", "[43]\tvalidation-rmse:6.41950 \n", "[44]\tvalidation-rmse:6.41768 \n", "[45]\tvalidation-rmse:6.41618 \n", "[46]\tvalidation-rmse:6.41494 \n", "[47]\tvalidation-rmse:6.41329 \n", "[48]\tvalidation-rmse:6.41222 \n", "[49]\tvalidation-rmse:6.40964 \n", "[50]\tvalidation-rmse:6.40776 \n", "[51]\tvalidation-rmse:6.40689 \n", "[52]\tvalidation-rmse:6.40570 \n", "[53]\tvalidation-rmse:6.40467 \n", "[54]\tvalidation-rmse:6.40364 \n", "[55]\tvalidation-rmse:6.40265 \n", "[56]\tvalidation-rmse:6.40179 \n", "[57]\tvalidation-rmse:6.40090 \n", "[58]\tvalidation-rmse:6.40023 \n", "[59]\tvalidation-rmse:6.39953 \n", "[60]\tvalidation-rmse:6.39831 \n", "[61]\tvalidation-rmse:6.39715 \n", "[62]\tvalidation-rmse:6.39644 \n", "[63]\tvalidation-rmse:6.39541 \n", "[64]\tvalidation-rmse:6.39456 \n", "[65]\tvalidation-rmse:6.39325 \n", "[66]\tvalidation-rmse:6.39243 \n", "[67]\tvalidation-rmse:6.39199 \n", "[68]\tvalidation-rmse:6.39141 \n", "[69]\tvalidation-rmse:6.39062 \n", "[70]\tvalidation-rmse:6.39044 \n", "[71]\tvalidation-rmse:6.38959 \n", "[72]\tvalidation-rmse:6.38887 \n", "[73]\tvalidation-rmse:6.38834 \n", "[74]\tvalidation-rmse:6.38801 \n", "[75]\tvalidation-rmse:6.38721 \n", "[76]\tvalidation-rmse:6.38685 \n", "[77]\tvalidation-rmse:6.38587 \n", "[78]\tvalidation-rmse:6.38548 \n", "[79]\tvalidation-rmse:6.38446 \n", "[80]\tvalidation-rmse:6.38390 \n", "[81]\tvalidation-rmse:6.38288 \n", "[82]\tvalidation-rmse:6.38212 \n", "[83]\tvalidation-rmse:6.38120 \n", "[84]\tvalidation-rmse:6.38030 \n", "[85]\tvalidation-rmse:6.37994 \n", "[86]\tvalidation-rmse:6.37931 \n", "[87]\tvalidation-rmse:6.37870 \n", "[88]\tvalidation-rmse:6.37757 \n", "[89]\tvalidation-rmse:6.37698 \n", "[90]\tvalidation-rmse:6.37691 \n", "[91]\tvalidation-rmse:6.37611 \n", "[92]\tvalidation-rmse:6.37560 \n", "[93]\tvalidation-rmse:6.37431 \n", "[94]\tvalidation-rmse:6.37403 \n", "[95]\tvalidation-rmse:6.37359 \n", "[96]\tvalidation-rmse:6.37321 \n", "[97]\tvalidation-rmse:6.37261 \n", "[98]\tvalidation-rmse:6.37150 \n", "[99]\tvalidation-rmse:6.37102 \n", "[100]\tvalidation-rmse:6.37071 \n", "[101]\tvalidation-rmse:6.37048 \n", "[102]\tvalidation-rmse:6.36955 \n", "[103]\tvalidation-rmse:6.36913 \n", "[104]\tvalidation-rmse:6.36899 \n", "[105]\tvalidation-rmse:6.36871 \n", "[106]\tvalidation-rmse:6.36835 \n", "[107]\tvalidation-rmse:6.36756 \n", "[108]\tvalidation-rmse:6.36714 \n", "[109]\tvalidation-rmse:6.36675 \n", "[110]\tvalidation-rmse:6.36599 \n", "[111]\tvalidation-rmse:6.36569 \n", "[112]\tvalidation-rmse:6.36580 \n", "[113]\tvalidation-rmse:6.36560 \n", "[114]\tvalidation-rmse:6.36537 \n", "[115]\tvalidation-rmse:6.36469 \n", "[116]\tvalidation-rmse:6.36465 \n", "[117]\tvalidation-rmse:6.36409 \n", "[118]\tvalidation-rmse:6.36425 \n", "[119]\tvalidation-rmse:6.36407 \n", "[120]\tvalidation-rmse:6.36397 \n", "[121]\tvalidation-rmse:6.36341 \n", "[122]\tvalidation-rmse:6.36327 \n", "[123]\tvalidation-rmse:6.36298 \n", "[124]\tvalidation-rmse:6.36303 \n", "[125]\tvalidation-rmse:6.36290 \n", "[126]\tvalidation-rmse:6.36291 \n", "[127]\tvalidation-rmse:6.36303 \n", "[128]\tvalidation-rmse:6.36251 \n", "[129]\tvalidation-rmse:6.36211 \n", "[130]\tvalidation-rmse:6.36135 \n", "[131]\tvalidation-rmse:6.36147 \n", "[132]\tvalidation-rmse:6.36129 \n", "[133]\tvalidation-rmse:6.36063 \n", "[134]\tvalidation-rmse:6.36061 \n", "[135]\tvalidation-rmse:6.36046 \n", "[136]\tvalidation-rmse:6.35988 \n", "[137]\tvalidation-rmse:6.35905 \n", "[138]\tvalidation-rmse:6.35841 \n", "[139]\tvalidation-rmse:6.35812 \n", "[140]\tvalidation-rmse:6.35779 \n", "[141]\tvalidation-rmse:6.35783 \n", "[142]\tvalidation-rmse:6.35762 \n", "[143]\tvalidation-rmse:6.35715 \n", "[144]\tvalidation-rmse:6.35698 \n", "[145]\tvalidation-rmse:6.35623 \n", "[146]\tvalidation-rmse:6.35617 \n", "[147]\tvalidation-rmse:6.35580 \n", "[148]\tvalidation-rmse:6.35564 \n", "[149]\tvalidation-rmse:6.35578 \n", "[150]\tvalidation-rmse:6.35539 \n", "[151]\tvalidation-rmse:6.35525 \n", "[152]\tvalidation-rmse:6.35496 \n", "[153]\tvalidation-rmse:6.35474 \n", "[154]\tvalidation-rmse:6.35418 \n", "[155]\tvalidation-rmse:6.35383 \n", "[156]\tvalidation-rmse:6.35354 \n", "[157]\tvalidation-rmse:6.35324 \n", "[158]\tvalidation-rmse:6.35263 \n", "[159]\tvalidation-rmse:6.35313 \n", "[160]\tvalidation-rmse:6.35303 \n", "[161]\tvalidation-rmse:6.35294 \n", "[162]\tvalidation-rmse:6.35265 \n", "[163]\tvalidation-rmse:6.35241 \n", "[164]\tvalidation-rmse:6.35211 \n", "[165]\tvalidation-rmse:6.35218 \n", "[166]\tvalidation-rmse:6.35195 \n", "[167]\tvalidation-rmse:6.35194 \n", "[168]\tvalidation-rmse:6.35211 \n", "[169]\tvalidation-rmse:6.35186 \n", "[170]\tvalidation-rmse:6.35161 \n", "[171]\tvalidation-rmse:6.35155 \n", "[172]\tvalidation-rmse:6.35141 \n", "[173]\tvalidation-rmse:6.35184 \n", "[174]\tvalidation-rmse:6.35186 \n", "[175]\tvalidation-rmse:6.35153 \n", "[176]\tvalidation-rmse:6.35138 \n", "[177]\tvalidation-rmse:6.35120 \n", "[178]\tvalidation-rmse:6.35108 \n", "[179]\tvalidation-rmse:6.35180 \n", "[180]\tvalidation-rmse:6.35091 \n", "[181]\tvalidation-rmse:6.35102 \n", "[182]\tvalidation-rmse:6.35047 \n", "[183]\tvalidation-rmse:6.35022 \n", "[184]\tvalidation-rmse:6.35041 \n", "[185]\tvalidation-rmse:6.35042 \n", "[186]\tvalidation-rmse:6.35134 \n", "[187]\tvalidation-rmse:6.35118 \n", "[188]\tvalidation-rmse:6.35105 \n", "[189]\tvalidation-rmse:6.35130 \n", "[190]\tvalidation-rmse:6.35163 \n", "[191]\tvalidation-rmse:6.35112 \n", "[192]\tvalidation-rmse:6.35091 \n", "[193]\tvalidation-rmse:6.35054 \n", "[194]\tvalidation-rmse:6.35048 \n", "[195]\tvalidation-rmse:6.35045 \n", "[196]\tvalidation-rmse:6.35022 \n", "[197]\tvalidation-rmse:6.35012 \n", "[198]\tvalidation-rmse:6.34985 \n", "[199]\tvalidation-rmse:6.34963 \n", "[200]\tvalidation-rmse:6.34955 \n", "[201]\tvalidation-rmse:6.34941 \n", "[202]\tvalidation-rmse:6.35006 \n", "[203]\tvalidation-rmse:6.34976 \n", "[204]\tvalidation-rmse:6.34979 \n", "[205]\tvalidation-rmse:6.34970 \n", "[206]\tvalidation-rmse:6.34905 \n", "[207]\tvalidation-rmse:6.34851 \n", "[208]\tvalidation-rmse:6.34837 \n", "[209]\tvalidation-rmse:6.34796 \n", "[210]\tvalidation-rmse:6.34767 \n", "[211]\tvalidation-rmse:6.34822 \n", "[212]\tvalidation-rmse:6.34828 \n", "[213]\tvalidation-rmse:6.34813 \n", "[214]\tvalidation-rmse:6.34765 \n", "[215]\tvalidation-rmse:6.34735 \n", "[216]\tvalidation-rmse:6.34749 \n", "[217]\tvalidation-rmse:6.34741 \n", "[218]\tvalidation-rmse:6.34705 \n", "[219]\tvalidation-rmse:6.34728 \n", "[220]\tvalidation-rmse:6.34658 \n", "[221]\tvalidation-rmse:6.34660 \n", "[222]\tvalidation-rmse:6.34643 \n", "[223]\tvalidation-rmse:6.34623 \n", "[224]\tvalidation-rmse:6.34628 \n", "[225]\tvalidation-rmse:6.34643 \n", "[226]\tvalidation-rmse:6.34645 \n", "[227]\tvalidation-rmse:6.34609 \n", "[228]\tvalidation-rmse:6.34722 \n", "[229]\tvalidation-rmse:6.34778 \n", "[230]\tvalidation-rmse:6.34811 \n", "[231]\tvalidation-rmse:6.34802 \n", "[232]\tvalidation-rmse:6.34806 \n", "[233]\tvalidation-rmse:6.34857 \n", "[234]\tvalidation-rmse:6.34849 \n", "[235]\tvalidation-rmse:6.34898 \n", "[236]\tvalidation-rmse:6.34892 \n", "[237]\tvalidation-rmse:6.34917 \n", "[238]\tvalidation-rmse:6.34890 \n", "[239]\tvalidation-rmse:6.34908 \n", "[240]\tvalidation-rmse:6.34910 \n", "[241]\tvalidation-rmse:6.34889 \n", "[242]\tvalidation-rmse:6.34863 \n", "[243]\tvalidation-rmse:6.34906 \n", "[244]\tvalidation-rmse:6.34905 \n", "[245]\tvalidation-rmse:6.34768 \n", "[246]\tvalidation-rmse:6.34783 \n", "[247]\tvalidation-rmse:6.34748 \n", "[248]\tvalidation-rmse:6.34695 \n", "[249]\tvalidation-rmse:6.34686 \n", "[250]\tvalidation-rmse:6.34656 \n", "[251]\tvalidation-rmse:6.34733 \n", "[252]\tvalidation-rmse:6.34744 \n", "[253]\tvalidation-rmse:6.34705 \n", "[254]\tvalidation-rmse:6.34699 \n", "[255]\tvalidation-rmse:6.34751 \n", "[256]\tvalidation-rmse:6.34759 \n", "[257]\tvalidation-rmse:6.34818 \n", "[258]\tvalidation-rmse:6.34826 \n", "[259]\tvalidation-rmse:6.34826 \n", "[260]\tvalidation-rmse:6.34822 \n", "[261]\tvalidation-rmse:6.34782 \n", "[262]\tvalidation-rmse:6.34823 \n", "[263]\tvalidation-rmse:6.34821 \n", "[264]\tvalidation-rmse:6.34830 \n", "[265]\tvalidation-rmse:6.34807 \n", "[266]\tvalidation-rmse:6.34818 \n", "[267]\tvalidation-rmse:6.34769 \n", "[268]\tvalidation-rmse:6.34773 \n", "[269]\tvalidation-rmse:6.34860 \n", "[270]\tvalidation-rmse:6.34892 \n", "[271]\tvalidation-rmse:6.34909 \n", "[272]\tvalidation-rmse:6.34900 \n", "[273]\tvalidation-rmse:6.34908 \n", "[274]\tvalidation-rmse:6.34934 \n", "[275]\tvalidation-rmse:6.34922 \n", "[276]\tvalidation-rmse:6.34929 \n", "[277]\tvalidation-rmse:6.34923 \n", "[12:59:14] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.97830 \n", "[1]\tvalidation-rmse:18.85403 \n", "[2]\tvalidation-rmse:17.81426 \n", "[3]\tvalidation-rmse:16.85295 \n", "[4]\tvalidation-rmse:15.96583 \n", "[5]\tvalidation-rmse:15.14800 \n", "[6]\tvalidation-rmse:14.39458 \n", "[7]\tvalidation-rmse:13.70131 \n", "[8]\tvalidation-rmse:13.06374 \n", "[9]\tvalidation-rmse:12.47844 \n", "[10]\tvalidation-rmse:11.94142 \n", "[11]\tvalidation-rmse:11.45032 \n", "[12]\tvalidation-rmse:11.00120 \n", "[13]\tvalidation-rmse:10.59083 \n", "[14]\tvalidation-rmse:10.21610 \n", "[15]\tvalidation-rmse:9.87506 \n", "[16]\tvalidation-rmse:9.56434 \n", "[17]\tvalidation-rmse:9.28272 \n", "[18]\tvalidation-rmse:9.02637 \n", "[19]\tvalidation-rmse:8.79552 \n", "[20]\tvalidation-rmse:8.58521 \n", "[21]\tvalidation-rmse:8.39580 \n", "[22]\tvalidation-rmse:8.22467 \n", "[23]\tvalidation-rmse:8.07005 \n", "[24]\tvalidation-rmse:7.93051 \n", "[25]\tvalidation-rmse:7.80410 \n", "[26]\tvalidation-rmse:7.69007 \n", "[27]\tvalidation-rmse:7.58661 \n", "[28]\tvalidation-rmse:7.49301 \n", "[29]\tvalidation-rmse:7.40887 \n", "[30]\tvalidation-rmse:7.33305 \n", "[31]\tvalidation-rmse:7.26438 \n", "[32]\tvalidation-rmse:7.20196 \n", "[33]\tvalidation-rmse:7.14575 \n", "[34]\tvalidation-rmse:7.09517 \n", "[35]\tvalidation-rmse:7.04865 \n", "[36]\tvalidation-rmse:7.00649 \n", "[37]\tvalidation-rmse:6.96806 \n", "[38]\tvalidation-rmse:6.93358 \n", "[39]\tvalidation-rmse:6.90165 \n", "[40]\tvalidation-rmse:6.87254 \n", "[41]\tvalidation-rmse:6.84669 \n", "[42]\tvalidation-rmse:6.82293 \n", "[43]\tvalidation-rmse:6.80033 \n", "[44]\tvalidation-rmse:6.78015 \n", "[45]\tvalidation-rmse:6.76149 \n", "[46]\tvalidation-rmse:6.74500 \n", "[47]\tvalidation-rmse:6.73008 \n", "[48]\tvalidation-rmse:6.71570 \n", "[49]\tvalidation-rmse:6.70346 \n", "[50]\tvalidation-rmse:6.69159 \n", "[51]\tvalidation-rmse:6.68082 \n", "[52]\tvalidation-rmse:6.67070 \n", "[53]\tvalidation-rmse:6.66193 \n", "[54]\tvalidation-rmse:6.65374 \n", "[55]\tvalidation-rmse:6.64536 \n", "[56]\tvalidation-rmse:6.63817 \n", "[57]\tvalidation-rmse:6.63138 \n", "[58]\tvalidation-rmse:6.62488 \n", "[59]\tvalidation-rmse:6.61897 \n", "[60]\tvalidation-rmse:6.61347 \n", "[61]\tvalidation-rmse:6.60860 \n", "[62]\tvalidation-rmse:6.60371 \n", "[63]\tvalidation-rmse:6.59894 \n", "[64]\tvalidation-rmse:6.59438 \n", "[65]\tvalidation-rmse:6.59013 \n", "[66]\tvalidation-rmse:6.58568 \n", "[67]\tvalidation-rmse:6.58179 \n", "[68]\tvalidation-rmse:6.57806 \n", "[69]\tvalidation-rmse:6.57506 \n", "[70]\tvalidation-rmse:6.57175 \n", "[71]\tvalidation-rmse:6.56876 \n", "[72]\tvalidation-rmse:6.56586 \n", "[73]\tvalidation-rmse:6.56314 \n", "[74]\tvalidation-rmse:6.56051 \n", "[75]\tvalidation-rmse:6.55814 \n", "[76]\tvalidation-rmse:6.55577 \n", "[77]\tvalidation-rmse:6.55299 \n", "[78]\tvalidation-rmse:6.55090 \n", "[79]\tvalidation-rmse:6.54858 \n", "[80]\tvalidation-rmse:6.54691 \n", "[81]\tvalidation-rmse:6.54539 \n", "[82]\tvalidation-rmse:6.54393 \n", "[83]\tvalidation-rmse:6.54248 \n", "[84]\tvalidation-rmse:6.54157 \n", "[85]\tvalidation-rmse:6.54034 \n", "[86]\tvalidation-rmse:6.53931 \n", "[87]\tvalidation-rmse:6.53832 \n", "[88]\tvalidation-rmse:6.53682 \n", "[89]\tvalidation-rmse:6.53565 \n", "[90]\tvalidation-rmse:6.53431 \n", "[91]\tvalidation-rmse:6.53339 \n", "[92]\tvalidation-rmse:6.53235 \n", "[93]\tvalidation-rmse:6.53139 \n", "[94]\tvalidation-rmse:6.53045 \n", "[95]\tvalidation-rmse:6.52969 \n", "[96]\tvalidation-rmse:6.52886 \n", "[97]\tvalidation-rmse:6.52828 \n", "[98]\tvalidation-rmse:6.52766 \n", "[99]\tvalidation-rmse:6.52664 \n", "[100]\tvalidation-rmse:6.52575 \n", "[101]\tvalidation-rmse:6.52503 \n", "[102]\tvalidation-rmse:6.52449 \n", "[103]\tvalidation-rmse:6.52379 \n", "[104]\tvalidation-rmse:6.52305 \n", "[105]\tvalidation-rmse:6.52237 \n", "[106]\tvalidation-rmse:6.52192 \n", "[107]\tvalidation-rmse:6.52133 \n", "[108]\tvalidation-rmse:6.52072 \n", "[109]\tvalidation-rmse:6.51999 \n", "[110]\tvalidation-rmse:6.51966 \n", "[111]\tvalidation-rmse:6.51926 \n", "[112]\tvalidation-rmse:6.51894 \n", "[113]\tvalidation-rmse:6.51831 \n", "[114]\tvalidation-rmse:6.51801 \n", "[115]\tvalidation-rmse:6.51752 \n", "[116]\tvalidation-rmse:6.51721 \n", "[117]\tvalidation-rmse:6.51686 \n", "[118]\tvalidation-rmse:6.51641 \n", "[119]\tvalidation-rmse:6.51582 \n", "[120]\tvalidation-rmse:6.51557 \n", "[121]\tvalidation-rmse:6.51517 \n", "[122]\tvalidation-rmse:6.51492 \n", "[123]\tvalidation-rmse:6.51434 \n", "[124]\tvalidation-rmse:6.51408 \n", "[125]\tvalidation-rmse:6.51370 \n", "[126]\tvalidation-rmse:6.51347 \n", "[127]\tvalidation-rmse:6.51318 \n", "[128]\tvalidation-rmse:6.51300 \n", "[129]\tvalidation-rmse:6.51269 \n", "[130]\tvalidation-rmse:6.51235 \n", "[131]\tvalidation-rmse:6.51195 \n", "[132]\tvalidation-rmse:6.51177 \n", "[133]\tvalidation-rmse:6.51141 \n", "[134]\tvalidation-rmse:6.51116 \n", "[135]\tvalidation-rmse:6.51098 \n", "[136]\tvalidation-rmse:6.51062 \n", "[137]\tvalidation-rmse:6.51035 \n", "[138]\tvalidation-rmse:6.50990 \n", "[139]\tvalidation-rmse:6.50966 \n", "[140]\tvalidation-rmse:6.50935 \n", "[141]\tvalidation-rmse:6.50923 \n", "[142]\tvalidation-rmse:6.50895 \n", "[143]\tvalidation-rmse:6.50885 \n", "[144]\tvalidation-rmse:6.50859 \n", "[145]\tvalidation-rmse:6.50840 \n", "[146]\tvalidation-rmse:6.50825 \n", "[147]\tvalidation-rmse:6.50789 \n", "[148]\tvalidation-rmse:6.50767 \n", "[149]\tvalidation-rmse:6.50736 \n", "[150]\tvalidation-rmse:6.50718 \n", "[151]\tvalidation-rmse:6.50703 \n", "[152]\tvalidation-rmse:6.50681 \n", "[153]\tvalidation-rmse:6.50652 \n", "[154]\tvalidation-rmse:6.50612 \n", "[155]\tvalidation-rmse:6.50595 \n", "[156]\tvalidation-rmse:6.50580 \n", "[157]\tvalidation-rmse:6.50554 \n", "[158]\tvalidation-rmse:6.50533 \n", "[159]\tvalidation-rmse:6.50513 \n", "[160]\tvalidation-rmse:6.50495 \n", "[161]\tvalidation-rmse:6.50456 \n", "[162]\tvalidation-rmse:6.50441 \n", "[163]\tvalidation-rmse:6.50432 \n", "[164]\tvalidation-rmse:6.50405 \n", "[165]\tvalidation-rmse:6.50379 \n", "[166]\tvalidation-rmse:6.50354 \n", "[167]\tvalidation-rmse:6.50323 \n", "[168]\tvalidation-rmse:6.50307 \n", "[169]\tvalidation-rmse:6.50281 \n", "[170]\tvalidation-rmse:6.50258 \n", "[171]\tvalidation-rmse:6.50241 \n", "[172]\tvalidation-rmse:6.50225 \n", "[173]\tvalidation-rmse:6.50204 \n", "[174]\tvalidation-rmse:6.50169 \n", "[175]\tvalidation-rmse:6.50121 \n", "[176]\tvalidation-rmse:6.50112 \n", "[177]\tvalidation-rmse:6.50094 \n", "[178]\tvalidation-rmse:6.50074 \n", "[179]\tvalidation-rmse:6.50066 \n", "[180]\tvalidation-rmse:6.50037 \n", "[181]\tvalidation-rmse:6.50027 \n", "[182]\tvalidation-rmse:6.50002 \n", "[183]\tvalidation-rmse:6.49983 \n", "[184]\tvalidation-rmse:6.49969 \n", "[185]\tvalidation-rmse:6.49942 \n", "[186]\tvalidation-rmse:6.49929 \n", "[187]\tvalidation-rmse:6.49903 \n", "[188]\tvalidation-rmse:6.49893 \n", "[189]\tvalidation-rmse:6.49868 \n", "[190]\tvalidation-rmse:6.49845 \n", "[191]\tvalidation-rmse:6.49835 \n", "[192]\tvalidation-rmse:6.49798 \n", "[193]\tvalidation-rmse:6.49768 \n", "[194]\tvalidation-rmse:6.49744 \n", "[195]\tvalidation-rmse:6.49719 \n", "[196]\tvalidation-rmse:6.49710 \n", "[197]\tvalidation-rmse:6.49691 \n", "[198]\tvalidation-rmse:6.49659 \n", "[199]\tvalidation-rmse:6.49657 \n", "[200]\tvalidation-rmse:6.49644 \n", "[201]\tvalidation-rmse:6.49632 \n", "[202]\tvalidation-rmse:6.49605 \n", "[203]\tvalidation-rmse:6.49588 \n", "[204]\tvalidation-rmse:6.49564 \n", "[205]\tvalidation-rmse:6.49548 \n", "[206]\tvalidation-rmse:6.49529 \n", "[207]\tvalidation-rmse:6.49523 \n", "[208]\tvalidation-rmse:6.49509 \n", "[209]\tvalidation-rmse:6.49505 \n", "[210]\tvalidation-rmse:6.49483 \n", "[211]\tvalidation-rmse:6.49465 \n", "[212]\tvalidation-rmse:6.49440 \n", "[213]\tvalidation-rmse:6.49414 \n", "[214]\tvalidation-rmse:6.49389 \n", "[215]\tvalidation-rmse:6.49386 \n", "[216]\tvalidation-rmse:6.49368 \n", "[217]\tvalidation-rmse:6.49361 \n", "[218]\tvalidation-rmse:6.49343 \n", "[219]\tvalidation-rmse:6.49331 \n", "[220]\tvalidation-rmse:6.49324 \n", "[221]\tvalidation-rmse:6.49310 \n", "[222]\tvalidation-rmse:6.49297 \n", "[223]\tvalidation-rmse:6.49283 \n", "[224]\tvalidation-rmse:6.49272 \n", "[225]\tvalidation-rmse:6.49262 \n", "[226]\tvalidation-rmse:6.49241 \n", "[227]\tvalidation-rmse:6.49204 \n", "[228]\tvalidation-rmse:6.49188 \n", "[229]\tvalidation-rmse:6.49175 \n", "[230]\tvalidation-rmse:6.49162 \n", "[231]\tvalidation-rmse:6.49155 \n", "[232]\tvalidation-rmse:6.49145 \n", "[233]\tvalidation-rmse:6.49127 \n", "[234]\tvalidation-rmse:6.49114 \n", "[235]\tvalidation-rmse:6.49096 \n", "[236]\tvalidation-rmse:6.49065 \n", "[237]\tvalidation-rmse:6.49051 \n", "[238]\tvalidation-rmse:6.49040 \n", "[239]\tvalidation-rmse:6.49001 \n", "[240]\tvalidation-rmse:6.48989 \n", "[241]\tvalidation-rmse:6.48965 \n", "[242]\tvalidation-rmse:6.48957 \n", "[243]\tvalidation-rmse:6.48955 \n", "[244]\tvalidation-rmse:6.48944 \n", "[245]\tvalidation-rmse:6.48935 \n", "[246]\tvalidation-rmse:6.48916 \n", "[247]\tvalidation-rmse:6.48910 \n", "[248]\tvalidation-rmse:6.48907 \n", "[249]\tvalidation-rmse:6.48901 \n", "[250]\tvalidation-rmse:6.48899 \n", "[251]\tvalidation-rmse:6.48881 \n", "[252]\tvalidation-rmse:6.48855 \n", "[253]\tvalidation-rmse:6.48837 \n", "[254]\tvalidation-rmse:6.48810 \n", "[255]\tvalidation-rmse:6.48785 \n", "[256]\tvalidation-rmse:6.48774 \n", "[257]\tvalidation-rmse:6.48760 \n", "[258]\tvalidation-rmse:6.48763 \n", "[259]\tvalidation-rmse:6.48757 \n", "[260]\tvalidation-rmse:6.48745 \n", "[261]\tvalidation-rmse:6.48735 \n", "[262]\tvalidation-rmse:6.48730 \n", "[263]\tvalidation-rmse:6.48730 \n", "[264]\tvalidation-rmse:6.48719 \n", "[265]\tvalidation-rmse:6.48685 \n", "[266]\tvalidation-rmse:6.48664 \n", "[267]\tvalidation-rmse:6.48655 \n", "[268]\tvalidation-rmse:6.48649 \n", "[269]\tvalidation-rmse:6.48643 \n", "[270]\tvalidation-rmse:6.48637 \n", "[271]\tvalidation-rmse:6.48626 \n", "[272]\tvalidation-rmse:6.48619 \n", "[273]\tvalidation-rmse:6.48611 \n", "[274]\tvalidation-rmse:6.48599 \n", "[275]\tvalidation-rmse:6.48593 \n", "[276]\tvalidation-rmse:6.48581 \n", "[277]\tvalidation-rmse:6.48563 \n", "[278]\tvalidation-rmse:6.48555 \n", "[279]\tvalidation-rmse:6.48553 \n", "[280]\tvalidation-rmse:6.48536 \n", "[281]\tvalidation-rmse:6.48529 \n", "[282]\tvalidation-rmse:6.48517 \n", "[283]\tvalidation-rmse:6.48508 \n", "[284]\tvalidation-rmse:6.48496 \n", "[285]\tvalidation-rmse:6.48479 \n", "[286]\tvalidation-rmse:6.48472 \n", "[287]\tvalidation-rmse:6.48461 \n", "[288]\tvalidation-rmse:6.48458 \n", "[289]\tvalidation-rmse:6.48446 \n", "[290]\tvalidation-rmse:6.48446 \n", "[291]\tvalidation-rmse:6.48417 \n", "[292]\tvalidation-rmse:6.48394 \n", "[293]\tvalidation-rmse:6.48388 \n", "[294]\tvalidation-rmse:6.48369 \n", "[295]\tvalidation-rmse:6.48365 \n", "[296]\tvalidation-rmse:6.48353 \n", "[297]\tvalidation-rmse:6.48353 \n", "[298]\tvalidation-rmse:6.48341 \n", "[299]\tvalidation-rmse:6.48333 \n", "[300]\tvalidation-rmse:6.48320 \n", "[301]\tvalidation-rmse:6.48301 \n", "[302]\tvalidation-rmse:6.48290 \n", "[303]\tvalidation-rmse:6.48276 \n", "[304]\tvalidation-rmse:6.48278 \n", "[305]\tvalidation-rmse:6.48265 \n", "[306]\tvalidation-rmse:6.48262 \n", "[307]\tvalidation-rmse:6.48258 \n", "[308]\tvalidation-rmse:6.48247 \n", "[309]\tvalidation-rmse:6.48234 \n", "[310]\tvalidation-rmse:6.48218 \n", "[311]\tvalidation-rmse:6.48208 \n", "[312]\tvalidation-rmse:6.48187 \n", "[313]\tvalidation-rmse:6.48181 \n", "[314]\tvalidation-rmse:6.48177 \n", "[315]\tvalidation-rmse:6.48174 \n", "[316]\tvalidation-rmse:6.48168 \n", "[317]\tvalidation-rmse:6.48160 \n", "[318]\tvalidation-rmse:6.48155 \n", "[319]\tvalidation-rmse:6.48152 \n", "[320]\tvalidation-rmse:6.48117 \n", "[321]\tvalidation-rmse:6.48123 \n", "[322]\tvalidation-rmse:6.48112 \n", "[323]\tvalidation-rmse:6.48098 \n", "[324]\tvalidation-rmse:6.48094 \n", "[325]\tvalidation-rmse:6.48083 \n", "[326]\tvalidation-rmse:6.48071 \n", "[327]\tvalidation-rmse:6.48060 \n", "[328]\tvalidation-rmse:6.48049 \n", "[329]\tvalidation-rmse:6.48054 \n", "[330]\tvalidation-rmse:6.48040 \n", "[331]\tvalidation-rmse:6.48026 \n", "[332]\tvalidation-rmse:6.48019 \n", "[333]\tvalidation-rmse:6.48015 \n", "[334]\tvalidation-rmse:6.48008 \n", "[335]\tvalidation-rmse:6.47998 \n", "[336]\tvalidation-rmse:6.47986 \n", "[337]\tvalidation-rmse:6.47987 \n", "[338]\tvalidation-rmse:6.47969 \n", "[339]\tvalidation-rmse:6.47963 \n", "[340]\tvalidation-rmse:6.47954 \n", "[341]\tvalidation-rmse:6.47947 \n", "[342]\tvalidation-rmse:6.47936 \n", "[343]\tvalidation-rmse:6.47929 \n", "[344]\tvalidation-rmse:6.47917 \n", "[345]\tvalidation-rmse:6.47908 \n", "[346]\tvalidation-rmse:6.47890 \n", "[347]\tvalidation-rmse:6.47878 \n", "[348]\tvalidation-rmse:6.47876 \n", "[349]\tvalidation-rmse:6.47870 \n", "[350]\tvalidation-rmse:6.47864 \n", "[351]\tvalidation-rmse:6.47859 \n", "[352]\tvalidation-rmse:6.47848 \n", "[353]\tvalidation-rmse:6.47838 \n", "[354]\tvalidation-rmse:6.47827 \n", "[355]\tvalidation-rmse:6.47822 \n", "[356]\tvalidation-rmse:6.47816 \n", "[357]\tvalidation-rmse:6.47816 \n", "[358]\tvalidation-rmse:6.47814 \n", "[359]\tvalidation-rmse:6.47811 \n", "[360]\tvalidation-rmse:6.47808 \n", "[361]\tvalidation-rmse:6.47804 \n", "[362]\tvalidation-rmse:6.47778 \n", "[363]\tvalidation-rmse:6.47765 \n", "[364]\tvalidation-rmse:6.47764 \n", "[365]\tvalidation-rmse:6.47767 \n", "[366]\tvalidation-rmse:6.47763 \n", "[367]\tvalidation-rmse:6.47762 \n", "[368]\tvalidation-rmse:6.47755 \n", "[369]\tvalidation-rmse:6.47747 \n", "[370]\tvalidation-rmse:6.47744 \n", "[371]\tvalidation-rmse:6.47735 \n", "[372]\tvalidation-rmse:6.47719 \n", "[373]\tvalidation-rmse:6.47716 \n", "[374]\tvalidation-rmse:6.47707 \n", "[375]\tvalidation-rmse:6.47704 \n", "[376]\tvalidation-rmse:6.47688 \n", "[377]\tvalidation-rmse:6.47673 \n", "[378]\tvalidation-rmse:6.47673 \n", "[379]\tvalidation-rmse:6.47659 \n", "[380]\tvalidation-rmse:6.47645 \n", "[381]\tvalidation-rmse:6.47619 \n", "[382]\tvalidation-rmse:6.47604 \n", "[383]\tvalidation-rmse:6.47601 \n", "[384]\tvalidation-rmse:6.47581 \n", "[385]\tvalidation-rmse:6.47581 \n", "[386]\tvalidation-rmse:6.47580 \n", "[387]\tvalidation-rmse:6.47568 \n", "[388]\tvalidation-rmse:6.47615 \n", "[389]\tvalidation-rmse:6.47622 \n", "[390]\tvalidation-rmse:6.47617 \n", "[391]\tvalidation-rmse:6.47586 \n", "[392]\tvalidation-rmse:6.47587 \n", "[393]\tvalidation-rmse:6.47576 \n", "[394]\tvalidation-rmse:6.47570 \n", "[395]\tvalidation-rmse:6.47565 \n", "[396]\tvalidation-rmse:6.47552 \n", "[397]\tvalidation-rmse:6.47545 \n", "[398]\tvalidation-rmse:6.47544 \n", "[399]\tvalidation-rmse:6.47544 \n", "[400]\tvalidation-rmse:6.47529 \n", "[401]\tvalidation-rmse:6.47537 \n", "[402]\tvalidation-rmse:6.47532 \n", "[403]\tvalidation-rmse:6.47529 \n", "[404]\tvalidation-rmse:6.47524 \n", "[405]\tvalidation-rmse:6.47522 \n", "[406]\tvalidation-rmse:6.47501 \n", "[407]\tvalidation-rmse:6.47495 \n", "[408]\tvalidation-rmse:6.47474 \n", "[409]\tvalidation-rmse:6.47467 \n", "[410]\tvalidation-rmse:6.47462 \n", "[411]\tvalidation-rmse:6.47460 \n", "[412]\tvalidation-rmse:6.47457 \n", "[413]\tvalidation-rmse:6.47457 \n", "[414]\tvalidation-rmse:6.47461 \n", "[415]\tvalidation-rmse:6.47453 \n", "[416]\tvalidation-rmse:6.47446 \n", "[417]\tvalidation-rmse:6.47444 \n", "[418]\tvalidation-rmse:6.47439 \n", "[419]\tvalidation-rmse:6.47433 \n", "[420]\tvalidation-rmse:6.47418 \n", "[421]\tvalidation-rmse:6.47414 \n", "[422]\tvalidation-rmse:6.47417 \n", "[423]\tvalidation-rmse:6.47404 \n", "[424]\tvalidation-rmse:6.47401 \n", "[425]\tvalidation-rmse:6.47392 \n", "[426]\tvalidation-rmse:6.47393 \n", "[427]\tvalidation-rmse:6.47387 \n", "[428]\tvalidation-rmse:6.47373 \n", "[429]\tvalidation-rmse:6.47371 \n", "[430]\tvalidation-rmse:6.47366 \n", "[431]\tvalidation-rmse:6.47421 \n", "[432]\tvalidation-rmse:6.47422 \n", "[433]\tvalidation-rmse:6.47441 \n", "[434]\tvalidation-rmse:6.47445 \n", "[435]\tvalidation-rmse:6.47443 \n", "[436]\tvalidation-rmse:6.47442 \n", "[437]\tvalidation-rmse:6.47436 \n", "[438]\tvalidation-rmse:6.47426 \n", "[439]\tvalidation-rmse:6.47424 \n", "[440]\tvalidation-rmse:6.47421 \n", "[441]\tvalidation-rmse:6.47416 \n", "[442]\tvalidation-rmse:6.47418 \n", "[443]\tvalidation-rmse:6.47416 \n", "[444]\tvalidation-rmse:6.47412 \n", "[445]\tvalidation-rmse:6.47410 \n", "[446]\tvalidation-rmse:6.47407 \n", "[447]\tvalidation-rmse:6.47401 \n", "[448]\tvalidation-rmse:6.47404 \n", "[449]\tvalidation-rmse:6.47390 \n", "[450]\tvalidation-rmse:6.47384 \n", "[451]\tvalidation-rmse:6.47382 \n", "[452]\tvalidation-rmse:6.47382 \n", "[453]\tvalidation-rmse:6.47377 \n", "[454]\tvalidation-rmse:6.47379 \n", "[455]\tvalidation-rmse:6.47376 \n", "[456]\tvalidation-rmse:6.47370 \n", "[457]\tvalidation-rmse:6.47364 \n", "[458]\tvalidation-rmse:6.47358 \n", "[459]\tvalidation-rmse:6.47355 \n", "[460]\tvalidation-rmse:6.47356 \n", "[461]\tvalidation-rmse:6.47354 \n", "[462]\tvalidation-rmse:6.47355 \n", "[463]\tvalidation-rmse:6.47351 \n", "[464]\tvalidation-rmse:6.47354 \n", "[465]\tvalidation-rmse:6.47349 \n", "[466]\tvalidation-rmse:6.47347 \n", "[467]\tvalidation-rmse:6.47347 \n", "[468]\tvalidation-rmse:6.47349 \n", "[469]\tvalidation-rmse:6.47344 \n", "[470]\tvalidation-rmse:6.47324 \n", "[471]\tvalidation-rmse:6.47309 \n", "[472]\tvalidation-rmse:6.47307 \n", "[473]\tvalidation-rmse:6.47308 \n", "[474]\tvalidation-rmse:6.47289 \n", "[475]\tvalidation-rmse:6.47287 \n", "[476]\tvalidation-rmse:6.47290 \n", "[477]\tvalidation-rmse:6.47287 \n", "[478]\tvalidation-rmse:6.47283 \n", "[479]\tvalidation-rmse:6.47280 \n", "[480]\tvalidation-rmse:6.47281 \n", "[481]\tvalidation-rmse:6.47279 \n", "[482]\tvalidation-rmse:6.47275 \n", "[483]\tvalidation-rmse:6.47270 \n", "[484]\tvalidation-rmse:6.47266 \n", "[485]\tvalidation-rmse:6.47264 \n", "[486]\tvalidation-rmse:6.47258 \n", "[487]\tvalidation-rmse:6.47248 \n", "[488]\tvalidation-rmse:6.47246 \n", "[489]\tvalidation-rmse:6.47244 \n", "[490]\tvalidation-rmse:6.47232 \n", "[491]\tvalidation-rmse:6.47229 \n", "[492]\tvalidation-rmse:6.47227 \n", "[493]\tvalidation-rmse:6.47226 \n", "[494]\tvalidation-rmse:6.47220 \n", "[495]\tvalidation-rmse:6.47211 \n", "[496]\tvalidation-rmse:6.47203 \n", "[497]\tvalidation-rmse:6.47197 \n", "[498]\tvalidation-rmse:6.47195 \n", "[499]\tvalidation-rmse:6.47184 \n", "[500]\tvalidation-rmse:6.47177 \n", "[501]\tvalidation-rmse:6.47177 \n", "[502]\tvalidation-rmse:6.47174 \n", "[503]\tvalidation-rmse:6.47211 \n", "[504]\tvalidation-rmse:6.47213 \n", "[505]\tvalidation-rmse:6.47213 \n", "[506]\tvalidation-rmse:6.47208 \n", "[507]\tvalidation-rmse:6.47201 \n", "[508]\tvalidation-rmse:6.47203 \n", "[509]\tvalidation-rmse:6.47206 \n", "[510]\tvalidation-rmse:6.47201 \n", "[511]\tvalidation-rmse:6.47202 \n", "[512]\tvalidation-rmse:6.47197 \n", "[513]\tvalidation-rmse:6.47196 \n", "[514]\tvalidation-rmse:6.47185 \n", "[515]\tvalidation-rmse:6.47186 \n", "[516]\tvalidation-rmse:6.47185 \n", "[517]\tvalidation-rmse:6.47176 \n", "[518]\tvalidation-rmse:6.47175 \n", "[519]\tvalidation-rmse:6.47173 \n", "[520]\tvalidation-rmse:6.47164 \n", "[521]\tvalidation-rmse:6.47159 \n", "[522]\tvalidation-rmse:6.47157 \n", "[523]\tvalidation-rmse:6.47172 \n", "[524]\tvalidation-rmse:6.47182 \n", "[525]\tvalidation-rmse:6.47191 \n", "[526]\tvalidation-rmse:6.47191 \n", "[527]\tvalidation-rmse:6.47194 \n", "[528]\tvalidation-rmse:6.47190 \n", "[529]\tvalidation-rmse:6.47191 \n", "[530]\tvalidation-rmse:6.47185 \n", "[531]\tvalidation-rmse:6.47190 \n", "[532]\tvalidation-rmse:6.47186 \n", "[533]\tvalidation-rmse:6.47186 \n", "[534]\tvalidation-rmse:6.47179 \n", "[535]\tvalidation-rmse:6.47177 \n", "[536]\tvalidation-rmse:6.47174 \n", "[537]\tvalidation-rmse:6.47175 \n", "[538]\tvalidation-rmse:6.47177 \n", "[539]\tvalidation-rmse:6.47168 \n", "[540]\tvalidation-rmse:6.47166 \n", "[541]\tvalidation-rmse:6.47159 \n", "[542]\tvalidation-rmse:6.47155 \n", "[543]\tvalidation-rmse:6.47152 \n", "[544]\tvalidation-rmse:6.47147 \n", "[545]\tvalidation-rmse:6.47139 \n", "[546]\tvalidation-rmse:6.47133 \n", "[547]\tvalidation-rmse:6.47124 \n", "[548]\tvalidation-rmse:6.47120 \n", "[549]\tvalidation-rmse:6.47115 \n", "[550]\tvalidation-rmse:6.47118 \n", "[551]\tvalidation-rmse:6.47110 \n", "[552]\tvalidation-rmse:6.47112 \n", "[553]\tvalidation-rmse:6.47112 \n", "[554]\tvalidation-rmse:6.47105 \n", "[555]\tvalidation-rmse:6.47101 \n", "[556]\tvalidation-rmse:6.47101 \n", "[557]\tvalidation-rmse:6.47087 \n", "[558]\tvalidation-rmse:6.47088 \n", "[559]\tvalidation-rmse:6.47087 \n", "[560]\tvalidation-rmse:6.47086 \n", "[561]\tvalidation-rmse:6.47087 \n", "[562]\tvalidation-rmse:6.47091 \n", "[563]\tvalidation-rmse:6.47091 \n", "[564]\tvalidation-rmse:6.47079 \n", "[565]\tvalidation-rmse:6.47074 \n", "[566]\tvalidation-rmse:6.47067 \n", "[567]\tvalidation-rmse:6.47065 \n", "[568]\tvalidation-rmse:6.47053 \n", "[569]\tvalidation-rmse:6.47050 \n", "[570]\tvalidation-rmse:6.47041 \n", "[571]\tvalidation-rmse:6.47034 \n", "[572]\tvalidation-rmse:6.47028 \n", "[573]\tvalidation-rmse:6.47027 \n", "[574]\tvalidation-rmse:6.47021 \n", "[575]\tvalidation-rmse:6.47021 \n", "[576]\tvalidation-rmse:6.47017 \n", "[577]\tvalidation-rmse:6.47019 \n", "[578]\tvalidation-rmse:6.47019 \n", "[579]\tvalidation-rmse:6.47019 \n", "[580]\tvalidation-rmse:6.47022 \n", "[581]\tvalidation-rmse:6.47024 \n", "[582]\tvalidation-rmse:6.47026 \n", "[583]\tvalidation-rmse:6.47022 \n", "[584]\tvalidation-rmse:6.47025 \n", "[585]\tvalidation-rmse:6.47030 \n", "[586]\tvalidation-rmse:6.47024 \n", "[587]\tvalidation-rmse:6.47020 \n", "[588]\tvalidation-rmse:6.47015 \n", "[589]\tvalidation-rmse:6.47012 \n", "[590]\tvalidation-rmse:6.47013 \n", "[591]\tvalidation-rmse:6.47008 \n", "[592]\tvalidation-rmse:6.47010 \n", "[593]\tvalidation-rmse:6.47007 \n", "[594]\tvalidation-rmse:6.47015 \n", "[595]\tvalidation-rmse:6.47015 \n", "[596]\tvalidation-rmse:6.47008 \n", "[597]\tvalidation-rmse:6.47004 \n", "[598]\tvalidation-rmse:6.47003 \n", "[599]\tvalidation-rmse:6.47001 \n", "[600]\tvalidation-rmse:6.46995 \n", "[601]\tvalidation-rmse:6.46989 \n", "[602]\tvalidation-rmse:6.46991 \n", "[603]\tvalidation-rmse:6.46993 \n", "[604]\tvalidation-rmse:6.46989 \n", "[605]\tvalidation-rmse:6.46983 \n", "[606]\tvalidation-rmse:6.46982 \n", "[607]\tvalidation-rmse:6.46979 \n", "[608]\tvalidation-rmse:6.46986 \n", "[609]\tvalidation-rmse:6.46990 \n", "[610]\tvalidation-rmse:6.46988 \n", "[611]\tvalidation-rmse:6.46981 \n", "[612]\tvalidation-rmse:6.46998 \n", "[613]\tvalidation-rmse:6.47002 \n", "[614]\tvalidation-rmse:6.47007 \n", "[615]\tvalidation-rmse:6.47008 \n", "[616]\tvalidation-rmse:6.47004 \n", "[617]\tvalidation-rmse:6.47001 \n", "[618]\tvalidation-rmse:6.47002 \n", "[619]\tvalidation-rmse:6.46994 \n", "[620]\tvalidation-rmse:6.46987 \n", "[621]\tvalidation-rmse:6.46980 \n", "[622]\tvalidation-rmse:6.46974 \n", "[623]\tvalidation-rmse:6.46969 \n", "[624]\tvalidation-rmse:6.46965 \n", "[625]\tvalidation-rmse:6.46960 \n", "[626]\tvalidation-rmse:6.46960 \n", "[627]\tvalidation-rmse:6.46961 \n", "[628]\tvalidation-rmse:6.46961 \n", "[629]\tvalidation-rmse:6.46964 \n", "[630]\tvalidation-rmse:6.46962 \n", "[631]\tvalidation-rmse:6.46956 \n", "[632]\tvalidation-rmse:6.46963 \n", "[633]\tvalidation-rmse:6.46967 \n", "[634]\tvalidation-rmse:6.46967 \n", "[635]\tvalidation-rmse:6.46972 \n", "[636]\tvalidation-rmse:6.46971 \n", "[637]\tvalidation-rmse:6.46962 \n", "[638]\tvalidation-rmse:6.46962 \n", "[639]\tvalidation-rmse:6.46958 \n", "[640]\tvalidation-rmse:6.46950 \n", "[641]\tvalidation-rmse:6.46954 \n", "[642]\tvalidation-rmse:6.46949 \n", "[643]\tvalidation-rmse:6.46938 \n", "[644]\tvalidation-rmse:6.46940 \n", "[645]\tvalidation-rmse:6.46940 \n", "[646]\tvalidation-rmse:6.46942 \n", "[647]\tvalidation-rmse:6.46946 \n", "[648]\tvalidation-rmse:6.46941 \n", "[649]\tvalidation-rmse:6.46941 \n", "[650]\tvalidation-rmse:6.46943 \n", "[651]\tvalidation-rmse:6.46947 \n", "[652]\tvalidation-rmse:6.46944 \n", "[653]\tvalidation-rmse:6.46945 \n", "[654]\tvalidation-rmse:6.46954 \n", "[655]\tvalidation-rmse:6.46951 \n", "[656]\tvalidation-rmse:6.46954 \n", "[657]\tvalidation-rmse:6.46956 \n", "[658]\tvalidation-rmse:6.46960 \n", "[659]\tvalidation-rmse:6.46960 \n", "[660]\tvalidation-rmse:6.46965 \n", "[661]\tvalidation-rmse:6.46977 \n", "[662]\tvalidation-rmse:6.46981 \n", "[663]\tvalidation-rmse:6.46994 \n", "[664]\tvalidation-rmse:6.46988 \n", "[665]\tvalidation-rmse:6.46983 \n", "[666]\tvalidation-rmse:6.46975 \n", "[667]\tvalidation-rmse:6.46963 \n", "[668]\tvalidation-rmse:6.46966 \n", "[669]\tvalidation-rmse:6.46958 \n", "[670]\tvalidation-rmse:6.46959 \n", "[671]\tvalidation-rmse:6.46958 \n", "[672]\tvalidation-rmse:6.46959 \n", "[673]\tvalidation-rmse:6.46957 \n", "[674]\tvalidation-rmse:6.46964 \n", "[675]\tvalidation-rmse:6.46962 \n", "[676]\tvalidation-rmse:6.46952 \n", "[677]\tvalidation-rmse:6.46953 \n", "[678]\tvalidation-rmse:6.46947 \n", "[679]\tvalidation-rmse:6.46941 \n", "[680]\tvalidation-rmse:6.46951 \n", "[681]\tvalidation-rmse:6.46953 \n", "[682]\tvalidation-rmse:6.46953 \n", "[683]\tvalidation-rmse:6.46947 \n", "[684]\tvalidation-rmse:6.46948 \n", "[685]\tvalidation-rmse:6.46944 \n", "[686]\tvalidation-rmse:6.46929 \n", "[687]\tvalidation-rmse:6.46949 \n", "[688]\tvalidation-rmse:6.46951 \n", "[689]\tvalidation-rmse:6.46952 \n", "[690]\tvalidation-rmse:6.46957 \n", "[691]\tvalidation-rmse:6.46956 \n", "[692]\tvalidation-rmse:6.46962 \n", "[693]\tvalidation-rmse:6.46957 \n", "[694]\tvalidation-rmse:6.46957 \n", "[695]\tvalidation-rmse:6.46960 \n", "[696]\tvalidation-rmse:6.46955 \n", "[697]\tvalidation-rmse:6.46956 \n", "[698]\tvalidation-rmse:6.46953 \n", "[699]\tvalidation-rmse:6.46954 \n", "[700]\tvalidation-rmse:6.46958 \n", "[701]\tvalidation-rmse:6.46961 \n", "[702]\tvalidation-rmse:6.46966 \n", "[703]\tvalidation-rmse:6.46971 \n", "[704]\tvalidation-rmse:6.46969 \n", "[705]\tvalidation-rmse:6.46969 \n", "[706]\tvalidation-rmse:6.46966 \n", "[707]\tvalidation-rmse:6.46963 \n", "[708]\tvalidation-rmse:6.46965 \n", "[709]\tvalidation-rmse:6.46959 \n", "[710]\tvalidation-rmse:6.46965 \n", "[711]\tvalidation-rmse:6.46963 \n", "[712]\tvalidation-rmse:6.46960 \n", "[713]\tvalidation-rmse:6.46946 \n", "[714]\tvalidation-rmse:6.46950 \n", "[715]\tvalidation-rmse:6.46953 \n", "[716]\tvalidation-rmse:6.47009 \n", "[717]\tvalidation-rmse:6.47049 \n", "[718]\tvalidation-rmse:6.47060 \n", "[719]\tvalidation-rmse:6.47058 \n", "[720]\tvalidation-rmse:6.47056 \n", "[721]\tvalidation-rmse:6.47059 \n", "[722]\tvalidation-rmse:6.47061 \n", "[723]\tvalidation-rmse:6.47063 \n", "[724]\tvalidation-rmse:6.47067 \n", "[725]\tvalidation-rmse:6.47065 \n", "[726]\tvalidation-rmse:6.47056 \n", "[727]\tvalidation-rmse:6.47060 \n", "[728]\tvalidation-rmse:6.47068 \n", "[729]\tvalidation-rmse:6.47065 \n", "[730]\tvalidation-rmse:6.47061 \n", "[731]\tvalidation-rmse:6.47060 \n", "[732]\tvalidation-rmse:6.47059 \n", "[733]\tvalidation-rmse:6.47050 \n", "[734]\tvalidation-rmse:6.47049 \n", "[735]\tvalidation-rmse:6.47057 \n", " 36%|███▌ | 18/50 [23:33<23:33, 44.17s/trial, best loss: 6.321673211235433]" ] } ], "source": [ "search_space = {\n", " 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)),\n", " 'learning_rate': hp.loguniform('learning_rate', -3, 0),\n", " 'reg_alpha': hp.loguniform('reg_alpha', -5, -1),\n", " 'reg_lambda': hp.loguniform('reg_lambda', -6, -1),\n", " 'min_child_weight': hp.loguniform('min_child_weight', -1, 3),\n", " 'objective': 'reg:linear',\n", " 'seed': 42\n", "}\n", "\n", "best_result = fmin(\n", " fn=objective,\n", " space=search_space,\n", " algo=tpe.suggest,\n", " max_evals=50,\n", " trials=Trials()\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "fc4d5283", "metadata": {}, "outputs": [], "source": [ "mlflow.xgboost.autolog(disable=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "0e8cd729", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[11:40:58] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.48425\n", "[1]\tvalidation-rmse:17.95634\n", "[2]\tvalidation-rmse:16.59114\n", "[3]\tvalidation-rmse:15.37412\n", "[4]\tvalidation-rmse:14.29011\n", "[5]\tvalidation-rmse:13.32800\n", "[6]\tvalidation-rmse:12.47570\n", "[7]\tvalidation-rmse:11.72140\n", "[8]\tvalidation-rmse:11.05888\n", "[9]\tvalidation-rmse:10.47583\n", "[10]\tvalidation-rmse:9.96483\n", "[11]\tvalidation-rmse:9.51784\n", "[12]\tvalidation-rmse:9.12620\n", "[13]\tvalidation-rmse:8.78522\n", "[14]\tvalidation-rmse:8.49037\n", "[15]\tvalidation-rmse:8.23332\n", "[16]\tvalidation-rmse:8.01179\n", "[17]\tvalidation-rmse:7.81822\n", "[18]\tvalidation-rmse:7.65209\n", "[19]\tvalidation-rmse:7.50743\n", "[20]\tvalidation-rmse:7.38235\n", "[21]\tvalidation-rmse:7.27382\n", "[22]\tvalidation-rmse:7.17865\n", "[23]\tvalidation-rmse:7.09606\n", "[24]\tvalidation-rmse:7.02481\n", "[25]\tvalidation-rmse:6.96336\n", "[26]\tvalidation-rmse:6.91001\n", "[27]\tvalidation-rmse:6.86273\n", "[28]\tvalidation-rmse:6.82111\n", "[29]\tvalidation-rmse:6.78450\n", "[30]\tvalidation-rmse:6.75253\n", "[31]\tvalidation-rmse:6.72379\n", "[32]\tvalidation-rmse:6.69828\n", "[33]\tvalidation-rmse:6.67533\n", "[34]\tvalidation-rmse:6.65594\n", "[35]\tvalidation-rmse:6.63823\n", "[36]\tvalidation-rmse:6.62237\n", "[37]\tvalidation-rmse:6.60869\n", "[38]\tvalidation-rmse:6.59673\n", "[39]\tvalidation-rmse:6.58612\n", "[40]\tvalidation-rmse:6.57635\n", "[41]\tvalidation-rmse:6.56725\n", "[42]\tvalidation-rmse:6.55951\n", "[43]\tvalidation-rmse:6.55213\n", "[44]\tvalidation-rmse:6.54590\n", "[45]\tvalidation-rmse:6.53959\n", "[46]\tvalidation-rmse:6.53464\n", "[47]\tvalidation-rmse:6.53019\n", "[48]\tvalidation-rmse:6.52650\n", "[49]\tvalidation-rmse:6.52243\n", "[50]\tvalidation-rmse:6.51983\n", "[51]\tvalidation-rmse:6.51696\n", "[52]\tvalidation-rmse:6.51425\n", "[53]\tvalidation-rmse:6.51218\n", "[54]\tvalidation-rmse:6.50939\n", "[55]\tvalidation-rmse:6.50728\n", "[56]\tvalidation-rmse:6.50533\n", "[57]\tvalidation-rmse:6.50282\n", "[58]\tvalidation-rmse:6.50099\n", "[59]\tvalidation-rmse:6.49892\n", "[60]\tvalidation-rmse:6.49719\n", "[61]\tvalidation-rmse:6.49492\n", "[62]\tvalidation-rmse:6.49347\n", "[63]\tvalidation-rmse:6.49178\n", "[64]\tvalidation-rmse:6.49026\n", "[65]\tvalidation-rmse:6.48871\n", "[66]\tvalidation-rmse:6.48779\n", "[67]\tvalidation-rmse:6.48643\n", "[68]\tvalidation-rmse:6.48508\n", "[69]\tvalidation-rmse:6.48346\n", "[70]\tvalidation-rmse:6.48224\n", "[71]\tvalidation-rmse:6.48140\n", "[72]\tvalidation-rmse:6.48045\n", "[73]\tvalidation-rmse:6.47899\n", "[74]\tvalidation-rmse:6.47849\n", "[75]\tvalidation-rmse:6.47771\n", "[76]\tvalidation-rmse:6.47630\n", "[77]\tvalidation-rmse:6.47578\n", "[78]\tvalidation-rmse:6.47497\n", "[79]\tvalidation-rmse:6.47406\n", "[80]\tvalidation-rmse:6.47340\n", "[81]\tvalidation-rmse:6.47235\n", "[82]\tvalidation-rmse:6.47127\n", "[83]\tvalidation-rmse:6.47046\n", "[84]\tvalidation-rmse:6.46950\n", "[85]\tvalidation-rmse:6.46858\n", "[86]\tvalidation-rmse:6.46750\n", "[87]\tvalidation-rmse:6.46680\n", "[88]\tvalidation-rmse:6.46649\n", "[89]\tvalidation-rmse:6.46569\n", "[90]\tvalidation-rmse:6.46511\n", "[91]\tvalidation-rmse:6.46452\n", "[92]\tvalidation-rmse:6.46346\n", "[93]\tvalidation-rmse:6.46263\n", "[94]\tvalidation-rmse:6.46173\n", "[95]\tvalidation-rmse:6.46134\n", "[96]\tvalidation-rmse:6.46066\n", "[97]\tvalidation-rmse:6.46005\n", "[98]\tvalidation-rmse:6.45936\n", "[99]\tvalidation-rmse:6.45918\n", "[100]\tvalidation-rmse:6.45835\n", "[101]\tvalidation-rmse:6.45781\n", "[102]\tvalidation-rmse:6.45731\n", "[103]\tvalidation-rmse:6.45657\n", "[104]\tvalidation-rmse:6.45587\n", "[105]\tvalidation-rmse:6.45561\n", "[106]\tvalidation-rmse:6.45500\n", "[107]\tvalidation-rmse:6.45398\n", "[108]\tvalidation-rmse:6.45347\n", "[109]\tvalidation-rmse:6.45267\n", "[110]\tvalidation-rmse:6.45200\n", "[111]\tvalidation-rmse:6.45156\n", "[112]\tvalidation-rmse:6.45112\n", "[113]\tvalidation-rmse:6.45018\n", "[114]\tvalidation-rmse:6.44976\n", "[115]\tvalidation-rmse:6.44900\n", "[116]\tvalidation-rmse:6.44842\n", "[117]\tvalidation-rmse:6.44762\n", "[118]\tvalidation-rmse:6.44738\n", "[119]\tvalidation-rmse:6.44711\n", "[120]\tvalidation-rmse:6.44638\n", "[121]\tvalidation-rmse:6.44598\n", "[122]\tvalidation-rmse:6.44529\n", "[123]\tvalidation-rmse:6.44480\n", "[124]\tvalidation-rmse:6.44425\n", "[125]\tvalidation-rmse:6.44323\n", "[126]\tvalidation-rmse:6.44282\n", "[127]\tvalidation-rmse:6.44198\n", "[128]\tvalidation-rmse:6.44140\n", "[129]\tvalidation-rmse:6.44101\n", "[130]\tvalidation-rmse:6.44053\n", "[131]\tvalidation-rmse:6.43959\n", "[132]\tvalidation-rmse:6.43899\n", "[133]\tvalidation-rmse:6.43901\n", "[134]\tvalidation-rmse:6.43821\n", "[135]\tvalidation-rmse:6.43787\n", "[136]\tvalidation-rmse:6.43767\n", "[137]\tvalidation-rmse:6.43717\n", "[138]\tvalidation-rmse:6.43644\n", "[139]\tvalidation-rmse:6.43608\n", "[140]\tvalidation-rmse:6.43571\n", "[141]\tvalidation-rmse:6.43506\n", "[142]\tvalidation-rmse:6.43461\n", "[143]\tvalidation-rmse:6.43386\n", "[144]\tvalidation-rmse:6.43347\n", "[145]\tvalidation-rmse:6.43294\n", "[146]\tvalidation-rmse:6.43230\n", "[147]\tvalidation-rmse:6.43166\n", "[148]\tvalidation-rmse:6.43117\n", "[149]\tvalidation-rmse:6.43067\n", "[150]\tvalidation-rmse:6.43030\n", "[151]\tvalidation-rmse:6.42977\n", "[152]\tvalidation-rmse:6.42925\n", "[153]\tvalidation-rmse:6.42872\n", "[154]\tvalidation-rmse:6.42834\n", "[155]\tvalidation-rmse:6.42751\n", "[156]\tvalidation-rmse:6.42705\n", "[157]\tvalidation-rmse:6.42655\n", "[158]\tvalidation-rmse:6.42641\n", "[159]\tvalidation-rmse:6.42602\n", "[160]\tvalidation-rmse:6.42575\n", "[161]\tvalidation-rmse:6.42527\n", "[162]\tvalidation-rmse:6.42492\n", "[163]\tvalidation-rmse:6.42432\n", "[164]\tvalidation-rmse:6.42380\n", "[165]\tvalidation-rmse:6.42329\n", "[166]\tvalidation-rmse:6.42299\n", "[167]\tvalidation-rmse:6.42238\n", "[168]\tvalidation-rmse:6.42203\n", "[169]\tvalidation-rmse:6.42129\n", "[170]\tvalidation-rmse:6.42097\n", "[171]\tvalidation-rmse:6.42056\n", "[172]\tvalidation-rmse:6.42016\n", "[173]\tvalidation-rmse:6.41957\n", "[174]\tvalidation-rmse:6.41916\n", "[175]\tvalidation-rmse:6.41878\n", "[176]\tvalidation-rmse:6.41825\n", "[177]\tvalidation-rmse:6.41814\n", "[178]\tvalidation-rmse:6.41773\n", "[179]\tvalidation-rmse:6.41717\n", "[180]\tvalidation-rmse:6.41681\n", "[181]\tvalidation-rmse:6.41642\n", "[182]\tvalidation-rmse:6.41612\n", "[183]\tvalidation-rmse:6.41553\n", "[184]\tvalidation-rmse:6.41534\n", "[185]\tvalidation-rmse:6.41499\n", "[186]\tvalidation-rmse:6.41474\n", "[187]\tvalidation-rmse:6.41433\n", "[188]\tvalidation-rmse:6.41400\n", "[189]\tvalidation-rmse:6.41337\n", "[190]\tvalidation-rmse:6.41303\n", "[191]\tvalidation-rmse:6.41268\n", "[192]\tvalidation-rmse:6.41231\n", "[193]\tvalidation-rmse:6.41194\n", "[194]\tvalidation-rmse:6.41151\n", "[195]\tvalidation-rmse:6.41114\n", "[196]\tvalidation-rmse:6.41079\n", "[197]\tvalidation-rmse:6.41052\n", "[198]\tvalidation-rmse:6.41007\n", "[199]\tvalidation-rmse:6.40992\n", "[200]\tvalidation-rmse:6.40956\n", "[201]\tvalidation-rmse:6.40909\n", "[202]\tvalidation-rmse:6.40863\n", "[203]\tvalidation-rmse:6.40831\n", "[204]\tvalidation-rmse:6.40787\n", "[205]\tvalidation-rmse:6.40747\n", "[206]\tvalidation-rmse:6.40700\n", "[207]\tvalidation-rmse:6.40670\n", "[208]\tvalidation-rmse:6.40645\n", "[209]\tvalidation-rmse:6.40634\n", "[210]\tvalidation-rmse:6.40602\n", "[211]\tvalidation-rmse:6.40582\n", "[212]\tvalidation-rmse:6.40544\n", "[213]\tvalidation-rmse:6.40531\n", "[214]\tvalidation-rmse:6.40478\n", "[215]\tvalidation-rmse:6.40440\n", "[216]\tvalidation-rmse:6.40421\n", "[217]\tvalidation-rmse:6.40378\n", "[218]\tvalidation-rmse:6.40336\n", "[219]\tvalidation-rmse:6.40309\n", "[220]\tvalidation-rmse:6.40257\n", "[221]\tvalidation-rmse:6.40214\n", "[222]\tvalidation-rmse:6.40190\n", "[223]\tvalidation-rmse:6.40140\n", "[224]\tvalidation-rmse:6.40096\n", "[225]\tvalidation-rmse:6.40073\n", "[226]\tvalidation-rmse:6.40039\n", "[227]\tvalidation-rmse:6.40008\n", "[228]\tvalidation-rmse:6.39980\n", "[229]\tvalidation-rmse:6.39959\n", "[230]\tvalidation-rmse:6.39915\n", "[231]\tvalidation-rmse:6.39874\n", "[232]\tvalidation-rmse:6.39853\n", "[233]\tvalidation-rmse:6.39811\n", "[234]\tvalidation-rmse:6.39816\n", "[235]\tvalidation-rmse:6.39778\n", "[236]\tvalidation-rmse:6.39731\n", "[237]\tvalidation-rmse:6.39706\n", "[238]\tvalidation-rmse:6.39680\n", "[239]\tvalidation-rmse:6.39668\n", "[240]\tvalidation-rmse:6.39620\n", "[241]\tvalidation-rmse:6.39588\n", "[242]\tvalidation-rmse:6.39569\n", "[243]\tvalidation-rmse:6.39555\n", "[244]\tvalidation-rmse:6.39537\n", "[245]\tvalidation-rmse:6.39505\n", "[246]\tvalidation-rmse:6.39490\n", "[247]\tvalidation-rmse:6.39435\n", "[248]\tvalidation-rmse:6.39392\n", "[249]\tvalidation-rmse:6.39374\n", "[250]\tvalidation-rmse:6.39338\n", "[251]\tvalidation-rmse:6.39298\n", "[252]\tvalidation-rmse:6.39281\n", "[253]\tvalidation-rmse:6.39263\n", "[254]\tvalidation-rmse:6.39238\n", "[255]\tvalidation-rmse:6.39207\n", "[256]\tvalidation-rmse:6.39173\n", "[257]\tvalidation-rmse:6.39155\n", "[258]\tvalidation-rmse:6.39141\n", "[259]\tvalidation-rmse:6.39115\n", "[260]\tvalidation-rmse:6.39095\n", "[261]\tvalidation-rmse:6.39069\n", "[262]\tvalidation-rmse:6.39050\n", "[263]\tvalidation-rmse:6.39016\n", "[264]\tvalidation-rmse:6.38974\n", "[265]\tvalidation-rmse:6.38962\n", "[266]\tvalidation-rmse:6.38921\n", "[267]\tvalidation-rmse:6.38887\n", "[268]\tvalidation-rmse:6.38838\n", "[269]\tvalidation-rmse:6.38814\n", "[270]\tvalidation-rmse:6.38786\n", "[271]\tvalidation-rmse:6.38755\n", "[272]\tvalidation-rmse:6.38727\n", "[273]\tvalidation-rmse:6.38673\n", "[274]\tvalidation-rmse:6.38660\n", "[275]\tvalidation-rmse:6.38649\n", "[276]\tvalidation-rmse:6.38615\n", "[277]\tvalidation-rmse:6.38595\n", "[278]\tvalidation-rmse:6.38585\n", "[279]\tvalidation-rmse:6.38558\n", "[280]\tvalidation-rmse:6.38529\n", "[281]\tvalidation-rmse:6.38510\n", "[282]\tvalidation-rmse:6.38480\n", "[283]\tvalidation-rmse:6.38455\n", "[284]\tvalidation-rmse:6.38429\n", "[285]\tvalidation-rmse:6.38410\n", "[286]\tvalidation-rmse:6.38377\n", "[287]\tvalidation-rmse:6.38341\n", "[288]\tvalidation-rmse:6.38321\n", "[289]\tvalidation-rmse:6.38288\n", "[290]\tvalidation-rmse:6.38241\n", "[291]\tvalidation-rmse:6.38218\n", "[292]\tvalidation-rmse:6.38187\n", "[293]\tvalidation-rmse:6.38155\n", "[294]\tvalidation-rmse:6.38099\n", "[295]\tvalidation-rmse:6.38073\n", "[296]\tvalidation-rmse:6.38059\n", "[297]\tvalidation-rmse:6.38034\n", "[298]\tvalidation-rmse:6.38019\n", "[299]\tvalidation-rmse:6.38001\n", "[300]\tvalidation-rmse:6.37986\n", "[301]\tvalidation-rmse:6.37969\n", "[302]\tvalidation-rmse:6.37924\n", "[303]\tvalidation-rmse:6.37890\n", "[304]\tvalidation-rmse:6.37895\n", "[305]\tvalidation-rmse:6.37869\n", "[306]\tvalidation-rmse:6.37842\n", "[307]\tvalidation-rmse:6.37816\n", "[308]\tvalidation-rmse:6.37811\n", "[309]\tvalidation-rmse:6.37783\n", "[310]\tvalidation-rmse:6.37772\n", "[311]\tvalidation-rmse:6.37743\n", "[312]\tvalidation-rmse:6.37729\n", "[313]\tvalidation-rmse:6.37705\n", "[314]\tvalidation-rmse:6.37677\n", "[315]\tvalidation-rmse:6.37649\n", "[316]\tvalidation-rmse:6.37631\n", "[317]\tvalidation-rmse:6.37607\n", "[318]\tvalidation-rmse:6.37611\n", "[319]\tvalidation-rmse:6.37608\n", "[320]\tvalidation-rmse:6.37587\n", "[321]\tvalidation-rmse:6.37530\n", "[322]\tvalidation-rmse:6.37512\n", "[323]\tvalidation-rmse:6.37506\n", "[324]\tvalidation-rmse:6.37484\n", "[325]\tvalidation-rmse:6.37454\n", "[326]\tvalidation-rmse:6.37430\n", "[327]\tvalidation-rmse:6.37402\n", "[328]\tvalidation-rmse:6.37381\n", "[329]\tvalidation-rmse:6.37348\n", "[330]\tvalidation-rmse:6.37324\n", "[331]\tvalidation-rmse:6.37311\n", "[332]\tvalidation-rmse:6.37297\n", "[333]\tvalidation-rmse:6.37277\n", "[334]\tvalidation-rmse:6.37257\n", "[335]\tvalidation-rmse:6.37230\n", "[336]\tvalidation-rmse:6.37213\n", "[337]\tvalidation-rmse:6.37191\n", "[338]\tvalidation-rmse:6.37165\n", "[339]\tvalidation-rmse:6.37154\n", "[340]\tvalidation-rmse:6.37124\n", "[341]\tvalidation-rmse:6.37103\n", "[342]\tvalidation-rmse:6.37061\n", "[343]\tvalidation-rmse:6.37043\n", "[344]\tvalidation-rmse:6.37031\n", "[345]\tvalidation-rmse:6.37003\n", "[346]\tvalidation-rmse:6.36971\n", "[347]\tvalidation-rmse:6.36955\n", "[348]\tvalidation-rmse:6.36942\n", "[349]\tvalidation-rmse:6.36912\n", "[350]\tvalidation-rmse:6.36894\n", "[351]\tvalidation-rmse:6.36858\n", "[352]\tvalidation-rmse:6.36840\n", "[353]\tvalidation-rmse:6.36804\n", "[354]\tvalidation-rmse:6.36803\n", "[355]\tvalidation-rmse:6.36783\n", "[356]\tvalidation-rmse:6.36776\n", "[357]\tvalidation-rmse:6.36764\n", "[358]\tvalidation-rmse:6.36762\n", "[359]\tvalidation-rmse:6.36744\n", "[360]\tvalidation-rmse:6.36724\n", "[361]\tvalidation-rmse:6.36704\n", "[362]\tvalidation-rmse:6.36685\n", "[363]\tvalidation-rmse:6.36665\n", "[364]\tvalidation-rmse:6.36641\n", "[365]\tvalidation-rmse:6.36637\n", "[366]\tvalidation-rmse:6.36607\n", "[367]\tvalidation-rmse:6.36587\n", "[368]\tvalidation-rmse:6.36567\n", "[369]\tvalidation-rmse:6.36541\n", "[370]\tvalidation-rmse:6.36523\n", "[371]\tvalidation-rmse:6.36505\n", "[372]\tvalidation-rmse:6.36473\n", "[373]\tvalidation-rmse:6.36452\n", "[374]\tvalidation-rmse:6.36396\n", "[375]\tvalidation-rmse:6.36372\n", "[376]\tvalidation-rmse:6.36350\n", "[377]\tvalidation-rmse:6.36332\n", "[378]\tvalidation-rmse:6.36308\n", "[379]\tvalidation-rmse:6.36287\n", "[380]\tvalidation-rmse:6.36263\n", "[381]\tvalidation-rmse:6.36248\n", "[382]\tvalidation-rmse:6.36231\n", "[383]\tvalidation-rmse:6.36206\n", "[384]\tvalidation-rmse:6.36214\n", "[385]\tvalidation-rmse:6.36212\n", "[386]\tvalidation-rmse:6.36183\n", "[387]\tvalidation-rmse:6.36132\n", "[388]\tvalidation-rmse:6.36115\n", "[389]\tvalidation-rmse:6.36116\n", "[390]\tvalidation-rmse:6.36061\n", "[391]\tvalidation-rmse:6.36054\n", "[392]\tvalidation-rmse:6.36047\n", "[393]\tvalidation-rmse:6.36021\n", "[394]\tvalidation-rmse:6.36019\n", "[395]\tvalidation-rmse:6.36027\n", "[396]\tvalidation-rmse:6.36014\n", "[397]\tvalidation-rmse:6.35992\n", "[398]\tvalidation-rmse:6.35962\n", "[399]\tvalidation-rmse:6.35944\n", "[400]\tvalidation-rmse:6.35921\n", "[401]\tvalidation-rmse:6.35872\n", "[402]\tvalidation-rmse:6.35841\n", "[403]\tvalidation-rmse:6.35808\n", "[404]\tvalidation-rmse:6.35819\n", "[405]\tvalidation-rmse:6.35802\n", "[406]\tvalidation-rmse:6.35802\n", "[407]\tvalidation-rmse:6.35791\n", "[408]\tvalidation-rmse:6.35773\n", "[409]\tvalidation-rmse:6.35767\n", "[410]\tvalidation-rmse:6.35738\n", "[411]\tvalidation-rmse:6.35727\n", "[412]\tvalidation-rmse:6.35691\n", "[413]\tvalidation-rmse:6.35679\n", "[414]\tvalidation-rmse:6.35674\n", "[415]\tvalidation-rmse:6.35645\n", "[416]\tvalidation-rmse:6.35627\n", "[417]\tvalidation-rmse:6.35604\n", "[418]\tvalidation-rmse:6.35583\n", "[419]\tvalidation-rmse:6.35568\n", "[420]\tvalidation-rmse:6.35537\n", "[421]\tvalidation-rmse:6.35517\n", "[422]\tvalidation-rmse:6.35501\n", "[423]\tvalidation-rmse:6.35494\n", "[424]\tvalidation-rmse:6.35493\n", "[425]\tvalidation-rmse:6.35484\n", "[426]\tvalidation-rmse:6.35466\n", "[427]\tvalidation-rmse:6.35450\n", "[428]\tvalidation-rmse:6.35439\n", "[429]\tvalidation-rmse:6.35428\n", "[430]\tvalidation-rmse:6.35407\n", "[431]\tvalidation-rmse:6.35404\n", "[432]\tvalidation-rmse:6.35378\n", "[433]\tvalidation-rmse:6.35372\n", "[434]\tvalidation-rmse:6.35329\n", "[435]\tvalidation-rmse:6.35308\n", "[436]\tvalidation-rmse:6.35290\n", "[437]\tvalidation-rmse:6.35275\n", "[438]\tvalidation-rmse:6.35250\n", "[439]\tvalidation-rmse:6.35226\n", "[440]\tvalidation-rmse:6.35212\n", "[441]\tvalidation-rmse:6.35214\n", "[442]\tvalidation-rmse:6.35182\n", "[443]\tvalidation-rmse:6.35178\n", "[444]\tvalidation-rmse:6.35177\n", "[445]\tvalidation-rmse:6.35154\n", "[446]\tvalidation-rmse:6.35140\n", "[447]\tvalidation-rmse:6.35129\n", "[448]\tvalidation-rmse:6.35133\n", "[449]\tvalidation-rmse:6.35111\n", "[450]\tvalidation-rmse:6.35098\n", "[451]\tvalidation-rmse:6.35082\n", "[452]\tvalidation-rmse:6.35065\n", "[453]\tvalidation-rmse:6.35056\n", "[454]\tvalidation-rmse:6.35051\n", "[455]\tvalidation-rmse:6.35033\n", "[456]\tvalidation-rmse:6.35020\n", "[457]\tvalidation-rmse:6.34994\n", "[458]\tvalidation-rmse:6.34976\n", "[459]\tvalidation-rmse:6.34979\n", "[460]\tvalidation-rmse:6.34971\n", "[461]\tvalidation-rmse:6.34956\n", "[462]\tvalidation-rmse:6.34961\n", "[463]\tvalidation-rmse:6.34934\n", "[464]\tvalidation-rmse:6.34912\n", "[465]\tvalidation-rmse:6.34890\n", "[466]\tvalidation-rmse:6.34872\n", "[467]\tvalidation-rmse:6.34854\n", "[468]\tvalidation-rmse:6.34831\n", "[469]\tvalidation-rmse:6.34805\n", "[470]\tvalidation-rmse:6.34763\n", "[471]\tvalidation-rmse:6.34753\n", "[472]\tvalidation-rmse:6.34731\n", "[473]\tvalidation-rmse:6.34715\n", "[474]\tvalidation-rmse:6.34699\n", "[475]\tvalidation-rmse:6.34684\n", "[476]\tvalidation-rmse:6.34679\n", "[477]\tvalidation-rmse:6.34682\n", "[478]\tvalidation-rmse:6.34658\n", "[479]\tvalidation-rmse:6.34625\n", "[480]\tvalidation-rmse:6.34618\n", "[481]\tvalidation-rmse:6.34608\n", "[482]\tvalidation-rmse:6.34589\n", "[483]\tvalidation-rmse:6.34588\n", "[484]\tvalidation-rmse:6.34570\n", "[485]\tvalidation-rmse:6.34541\n", "[486]\tvalidation-rmse:6.34537\n", "[487]\tvalidation-rmse:6.34472\n", "[488]\tvalidation-rmse:6.34472\n", "[489]\tvalidation-rmse:6.34462\n", "[490]\tvalidation-rmse:6.34436\n", "[491]\tvalidation-rmse:6.34427\n", "[492]\tvalidation-rmse:6.34432\n", "[493]\tvalidation-rmse:6.34416\n", "[494]\tvalidation-rmse:6.34416\n", "[495]\tvalidation-rmse:6.34394\n", "[496]\tvalidation-rmse:6.34379\n", "[497]\tvalidation-rmse:6.34366\n", "[498]\tvalidation-rmse:6.34359\n", "[499]\tvalidation-rmse:6.34364\n", "[500]\tvalidation-rmse:6.34317\n", "[501]\tvalidation-rmse:6.34308\n", "[502]\tvalidation-rmse:6.34282\n", "[503]\tvalidation-rmse:6.34274\n", "[504]\tvalidation-rmse:6.34261\n", "[505]\tvalidation-rmse:6.34252\n", "[506]\tvalidation-rmse:6.34228\n", "[507]\tvalidation-rmse:6.34228\n", "[508]\tvalidation-rmse:6.34226\n", "[509]\tvalidation-rmse:6.34220\n", "[510]\tvalidation-rmse:6.34206\n", "[511]\tvalidation-rmse:6.34190\n", "[512]\tvalidation-rmse:6.34174\n", "[513]\tvalidation-rmse:6.34137\n", "[514]\tvalidation-rmse:6.34128\n", "[515]\tvalidation-rmse:6.34121\n", "[516]\tvalidation-rmse:6.34110\n", "[517]\tvalidation-rmse:6.34090\n", "[518]\tvalidation-rmse:6.34064\n", "[519]\tvalidation-rmse:6.34045\n", "[520]\tvalidation-rmse:6.34029\n", "[521]\tvalidation-rmse:6.34022\n", "[522]\tvalidation-rmse:6.34006\n", "[523]\tvalidation-rmse:6.33990\n", "[524]\tvalidation-rmse:6.33967\n", "[525]\tvalidation-rmse:6.33965\n", "[526]\tvalidation-rmse:6.33959\n", "[527]\tvalidation-rmse:6.33950\n", "[528]\tvalidation-rmse:6.33934\n", "[529]\tvalidation-rmse:6.33925\n", "[530]\tvalidation-rmse:6.33925\n", "[531]\tvalidation-rmse:6.33922\n", "[532]\tvalidation-rmse:6.33908\n", "[533]\tvalidation-rmse:6.33889\n", "[534]\tvalidation-rmse:6.33886\n", "[535]\tvalidation-rmse:6.33875\n", "[536]\tvalidation-rmse:6.33861\n", "[537]\tvalidation-rmse:6.33832\n", "[538]\tvalidation-rmse:6.33797\n", "[539]\tvalidation-rmse:6.33794\n", "[540]\tvalidation-rmse:6.33782\n", "[541]\tvalidation-rmse:6.33770\n", "[542]\tvalidation-rmse:6.33752\n", "[543]\tvalidation-rmse:6.33739\n", "[544]\tvalidation-rmse:6.33730\n", "[545]\tvalidation-rmse:6.33707\n", "[546]\tvalidation-rmse:6.33694\n", "[547]\tvalidation-rmse:6.33680\n", "[548]\tvalidation-rmse:6.33659\n", "[549]\tvalidation-rmse:6.33672\n", "[550]\tvalidation-rmse:6.33653\n", "[551]\tvalidation-rmse:6.33657\n", "[552]\tvalidation-rmse:6.33651\n", "[553]\tvalidation-rmse:6.33631\n", "[554]\tvalidation-rmse:6.33623\n", "[555]\tvalidation-rmse:6.33601\n", "[556]\tvalidation-rmse:6.33609\n", "[557]\tvalidation-rmse:6.33599\n", "[558]\tvalidation-rmse:6.33582\n", "[559]\tvalidation-rmse:6.33582\n", "[560]\tvalidation-rmse:6.33561\n", "[561]\tvalidation-rmse:6.33555\n", "[562]\tvalidation-rmse:6.33554\n", "[563]\tvalidation-rmse:6.33540\n", "[564]\tvalidation-rmse:6.33525\n", "[565]\tvalidation-rmse:6.33519\n", "[566]\tvalidation-rmse:6.33517\n", "[567]\tvalidation-rmse:6.33522\n", "[568]\tvalidation-rmse:6.33518\n", "[569]\tvalidation-rmse:6.33510\n", "[570]\tvalidation-rmse:6.33491\n", "[571]\tvalidation-rmse:6.33472\n", "[572]\tvalidation-rmse:6.33458\n", "[573]\tvalidation-rmse:6.33443\n", "[574]\tvalidation-rmse:6.33427\n", "[575]\tvalidation-rmse:6.33401\n", "[576]\tvalidation-rmse:6.33395\n", "[577]\tvalidation-rmse:6.33392\n", "[578]\tvalidation-rmse:6.33378\n", "[579]\tvalidation-rmse:6.33362\n", "[580]\tvalidation-rmse:6.33322\n", "[581]\tvalidation-rmse:6.33312\n", "[582]\tvalidation-rmse:6.33298\n", "[583]\tvalidation-rmse:6.33288\n", "[584]\tvalidation-rmse:6.33279\n", "[585]\tvalidation-rmse:6.33271\n", "[586]\tvalidation-rmse:6.33261\n", "[587]\tvalidation-rmse:6.33248\n", "[588]\tvalidation-rmse:6.33243\n", "[589]\tvalidation-rmse:6.33233\n", "[590]\tvalidation-rmse:6.33220\n", "[591]\tvalidation-rmse:6.33225\n", "[592]\tvalidation-rmse:6.33206\n", "[593]\tvalidation-rmse:6.33196\n", "[594]\tvalidation-rmse:6.33162\n", "[595]\tvalidation-rmse:6.33156\n", "[596]\tvalidation-rmse:6.33168\n", "[597]\tvalidation-rmse:6.33147\n", "[598]\tvalidation-rmse:6.33136\n", "[599]\tvalidation-rmse:6.33130\n", "[600]\tvalidation-rmse:6.33126\n", "[601]\tvalidation-rmse:6.33116\n", "[602]\tvalidation-rmse:6.33107\n", "[603]\tvalidation-rmse:6.33093\n", "[604]\tvalidation-rmse:6.33082\n", "[605]\tvalidation-rmse:6.33088\n", "[606]\tvalidation-rmse:6.33082\n", "[607]\tvalidation-rmse:6.33074\n", "[608]\tvalidation-rmse:6.33069\n", "[609]\tvalidation-rmse:6.33065\n", "[610]\tvalidation-rmse:6.33053\n", "[611]\tvalidation-rmse:6.33047\n", "[612]\tvalidation-rmse:6.33048\n", "[613]\tvalidation-rmse:6.33042\n", "[614]\tvalidation-rmse:6.33046\n", "[615]\tvalidation-rmse:6.33046\n", "[616]\tvalidation-rmse:6.33024\n", "[617]\tvalidation-rmse:6.33020\n", "[618]\tvalidation-rmse:6.33003\n", "[619]\tvalidation-rmse:6.32991\n", "[620]\tvalidation-rmse:6.32981\n", "[621]\tvalidation-rmse:6.32971\n", "[622]\tvalidation-rmse:6.32958\n", "[623]\tvalidation-rmse:6.32947\n", "[624]\tvalidation-rmse:6.32937\n", "[625]\tvalidation-rmse:6.32929\n", "[626]\tvalidation-rmse:6.32923\n", "[627]\tvalidation-rmse:6.32900\n", "[628]\tvalidation-rmse:6.32882\n", "[629]\tvalidation-rmse:6.32867\n", "[630]\tvalidation-rmse:6.32856\n", "[631]\tvalidation-rmse:6.32842\n", "[632]\tvalidation-rmse:6.32832\n", "[633]\tvalidation-rmse:6.32810\n", "[634]\tvalidation-rmse:6.32814\n", "[635]\tvalidation-rmse:6.32801\n", "[636]\tvalidation-rmse:6.32790\n", "[637]\tvalidation-rmse:6.32781\n", "[638]\tvalidation-rmse:6.32774\n", "[639]\tvalidation-rmse:6.32761\n", "[640]\tvalidation-rmse:6.32758\n", "[641]\tvalidation-rmse:6.32737\n", "[642]\tvalidation-rmse:6.32715\n", "[643]\tvalidation-rmse:6.32706\n", "[644]\tvalidation-rmse:6.32696\n", "[645]\tvalidation-rmse:6.32696\n", "[646]\tvalidation-rmse:6.32686\n", "[647]\tvalidation-rmse:6.32685\n", "[648]\tvalidation-rmse:6.32672\n", "[649]\tvalidation-rmse:6.32671\n", "[650]\tvalidation-rmse:6.32658\n", "[651]\tvalidation-rmse:6.32669\n", "[652]\tvalidation-rmse:6.32636\n", "[653]\tvalidation-rmse:6.32621\n", "[654]\tvalidation-rmse:6.32593\n", "[655]\tvalidation-rmse:6.32580\n", "[656]\tvalidation-rmse:6.32567\n", "[657]\tvalidation-rmse:6.32573\n", "[658]\tvalidation-rmse:6.32562\n", "[659]\tvalidation-rmse:6.32563\n", "[660]\tvalidation-rmse:6.32540\n", "[661]\tvalidation-rmse:6.32547\n", "[662]\tvalidation-rmse:6.32535\n", "[663]\tvalidation-rmse:6.32540\n", "[664]\tvalidation-rmse:6.32526\n", "[665]\tvalidation-rmse:6.32517\n", "[666]\tvalidation-rmse:6.32512\n", "[667]\tvalidation-rmse:6.32507\n", "[668]\tvalidation-rmse:6.32504\n", "[669]\tvalidation-rmse:6.32511\n", "[670]\tvalidation-rmse:6.32492\n", "[671]\tvalidation-rmse:6.32479\n", "[672]\tvalidation-rmse:6.32472\n", "[673]\tvalidation-rmse:6.32461\n", "[674]\tvalidation-rmse:6.32423\n", "[675]\tvalidation-rmse:6.32426\n", "[676]\tvalidation-rmse:6.32416\n", "[677]\tvalidation-rmse:6.32405\n", "[678]\tvalidation-rmse:6.32411\n", "[679]\tvalidation-rmse:6.32404\n", "[680]\tvalidation-rmse:6.32398\n", "[681]\tvalidation-rmse:6.32386\n", "[682]\tvalidation-rmse:6.32366\n", "[683]\tvalidation-rmse:6.32354\n", "[684]\tvalidation-rmse:6.32353\n", "[685]\tvalidation-rmse:6.32335\n", "[686]\tvalidation-rmse:6.32323\n", "[687]\tvalidation-rmse:6.32323\n", "[688]\tvalidation-rmse:6.32329\n", "[689]\tvalidation-rmse:6.32316\n", "[690]\tvalidation-rmse:6.32317\n", "[691]\tvalidation-rmse:6.32309\n", "[692]\tvalidation-rmse:6.32297\n", "[693]\tvalidation-rmse:6.32285\n", "[694]\tvalidation-rmse:6.32286\n", "[695]\tvalidation-rmse:6.32272\n", "[696]\tvalidation-rmse:6.32262\n", "[697]\tvalidation-rmse:6.32253\n", "[698]\tvalidation-rmse:6.32250\n", "[699]\tvalidation-rmse:6.32242\n", "[700]\tvalidation-rmse:6.32235\n", "[701]\tvalidation-rmse:6.32225\n", "[702]\tvalidation-rmse:6.32213\n", "[703]\tvalidation-rmse:6.32189\n", "[704]\tvalidation-rmse:6.32180\n", "[705]\tvalidation-rmse:6.32164\n", "[706]\tvalidation-rmse:6.32147\n", "[707]\tvalidation-rmse:6.32138\n", "[708]\tvalidation-rmse:6.32127\n", "[709]\tvalidation-rmse:6.32115\n", "[710]\tvalidation-rmse:6.32098\n", "[711]\tvalidation-rmse:6.32092\n", "[712]\tvalidation-rmse:6.32091\n", "[713]\tvalidation-rmse:6.32086\n", "[714]\tvalidation-rmse:6.32074\n", "[715]\tvalidation-rmse:6.32049\n", "[716]\tvalidation-rmse:6.32045\n", "[717]\tvalidation-rmse:6.32040\n", "[718]\tvalidation-rmse:6.32035\n", "[719]\tvalidation-rmse:6.32034\n", "[720]\tvalidation-rmse:6.32033\n", "[721]\tvalidation-rmse:6.32039\n", "[722]\tvalidation-rmse:6.32011\n", "[723]\tvalidation-rmse:6.32003\n", "[724]\tvalidation-rmse:6.31998\n", "[725]\tvalidation-rmse:6.31989\n", "[726]\tvalidation-rmse:6.31984\n", "[727]\tvalidation-rmse:6.31982\n", "[728]\tvalidation-rmse:6.31982\n", "[729]\tvalidation-rmse:6.31957\n", "[730]\tvalidation-rmse:6.31946\n", "[731]\tvalidation-rmse:6.31952\n", "[732]\tvalidation-rmse:6.31942\n", "[733]\tvalidation-rmse:6.31935\n", "[734]\tvalidation-rmse:6.31928\n", "[735]\tvalidation-rmse:6.31909\n", "[736]\tvalidation-rmse:6.31903\n", "[737]\tvalidation-rmse:6.31903\n", "[738]\tvalidation-rmse:6.31895\n", "[739]\tvalidation-rmse:6.31879\n", "[740]\tvalidation-rmse:6.31878\n", "[741]\tvalidation-rmse:6.31856\n", "[742]\tvalidation-rmse:6.31826\n", "[743]\tvalidation-rmse:6.31824\n", "[744]\tvalidation-rmse:6.31824\n", "[745]\tvalidation-rmse:6.31816\n", "[746]\tvalidation-rmse:6.31825\n", "[747]\tvalidation-rmse:6.31809\n", "[748]\tvalidation-rmse:6.31785\n", "[749]\tvalidation-rmse:6.31777\n", "[750]\tvalidation-rmse:6.31764\n", "[751]\tvalidation-rmse:6.31746\n", "[752]\tvalidation-rmse:6.31749\n", "[753]\tvalidation-rmse:6.31734\n", "[754]\tvalidation-rmse:6.31728\n", "[755]\tvalidation-rmse:6.31728\n", "[756]\tvalidation-rmse:6.31711\n", "[757]\tvalidation-rmse:6.31703\n", "[758]\tvalidation-rmse:6.31689\n", "[759]\tvalidation-rmse:6.31687\n", "[760]\tvalidation-rmse:6.31687\n", "[761]\tvalidation-rmse:6.31676\n", "[762]\tvalidation-rmse:6.31672\n", "[763]\tvalidation-rmse:6.31675\n", "[764]\tvalidation-rmse:6.31681\n", "[765]\tvalidation-rmse:6.31674\n", "[766]\tvalidation-rmse:6.31657\n", "[767]\tvalidation-rmse:6.31652\n", "[768]\tvalidation-rmse:6.31651\n", "[769]\tvalidation-rmse:6.31654\n", "[770]\tvalidation-rmse:6.31642\n", "[771]\tvalidation-rmse:6.31625\n", "[772]\tvalidation-rmse:6.31620\n", "[773]\tvalidation-rmse:6.31607\n", "[774]\tvalidation-rmse:6.31611\n", "[775]\tvalidation-rmse:6.31609\n", "[776]\tvalidation-rmse:6.31606\n", "[777]\tvalidation-rmse:6.31605\n", "[778]\tvalidation-rmse:6.31593\n", "[779]\tvalidation-rmse:6.31596\n", "[780]\tvalidation-rmse:6.31588\n", "[781]\tvalidation-rmse:6.31578\n", "[782]\tvalidation-rmse:6.31580\n", "[783]\tvalidation-rmse:6.31577\n", "[784]\tvalidation-rmse:6.31584\n", "[785]\tvalidation-rmse:6.31580\n", "[786]\tvalidation-rmse:6.31578\n", "[787]\tvalidation-rmse:6.31578\n", "[788]\tvalidation-rmse:6.31569\n", "[789]\tvalidation-rmse:6.31562\n", "[790]\tvalidation-rmse:6.31562\n", "[791]\tvalidation-rmse:6.31550\n", "[792]\tvalidation-rmse:6.31538\n", "[793]\tvalidation-rmse:6.31527\n", "[794]\tvalidation-rmse:6.31519\n", "[795]\tvalidation-rmse:6.31519\n", "[796]\tvalidation-rmse:6.31516\n", "[797]\tvalidation-rmse:6.31509\n", "[798]\tvalidation-rmse:6.31505\n", "[799]\tvalidation-rmse:6.31505\n", "[800]\tvalidation-rmse:6.31504\n", "[801]\tvalidation-rmse:6.31493\n", "[802]\tvalidation-rmse:6.31492\n", "[803]\tvalidation-rmse:6.31482\n", "[804]\tvalidation-rmse:6.31462\n", "[805]\tvalidation-rmse:6.31462\n", "[806]\tvalidation-rmse:6.31457\n", "[807]\tvalidation-rmse:6.31451\n", "[808]\tvalidation-rmse:6.31460\n", "[809]\tvalidation-rmse:6.31450\n", "[810]\tvalidation-rmse:6.31440\n", "[811]\tvalidation-rmse:6.31399\n", "[812]\tvalidation-rmse:6.31386\n", "[813]\tvalidation-rmse:6.31385\n", "[814]\tvalidation-rmse:6.31385\n", "[815]\tvalidation-rmse:6.31380\n", "[816]\tvalidation-rmse:6.31375\n", "[817]\tvalidation-rmse:6.31369\n", "[818]\tvalidation-rmse:6.31366\n", "[819]\tvalidation-rmse:6.31363\n", "[820]\tvalidation-rmse:6.31342\n", "[821]\tvalidation-rmse:6.31328\n", "[822]\tvalidation-rmse:6.31317\n", "[823]\tvalidation-rmse:6.31322\n", "[824]\tvalidation-rmse:6.31317\n", "[825]\tvalidation-rmse:6.31318\n", "[826]\tvalidation-rmse:6.31317\n", "[827]\tvalidation-rmse:6.31317\n", "[828]\tvalidation-rmse:6.31309\n", "[829]\tvalidation-rmse:6.31290\n", "[830]\tvalidation-rmse:6.31278\n", "[831]\tvalidation-rmse:6.31271\n", "[832]\tvalidation-rmse:6.31266\n", "[833]\tvalidation-rmse:6.31270\n", "[834]\tvalidation-rmse:6.31273\n", "[835]\tvalidation-rmse:6.31271\n", "[836]\tvalidation-rmse:6.31268\n", "[837]\tvalidation-rmse:6.31260\n", "[838]\tvalidation-rmse:6.31253\n", "[839]\tvalidation-rmse:6.31239\n", "[840]\tvalidation-rmse:6.31230\n", "[841]\tvalidation-rmse:6.31227\n", "[842]\tvalidation-rmse:6.31215\n", "[843]\tvalidation-rmse:6.31216\n", "[844]\tvalidation-rmse:6.31220\n", "[845]\tvalidation-rmse:6.31214\n", "[846]\tvalidation-rmse:6.31200\n", "[847]\tvalidation-rmse:6.31178\n", "[848]\tvalidation-rmse:6.31167\n", "[849]\tvalidation-rmse:6.31149\n", "[850]\tvalidation-rmse:6.31131\n", "[851]\tvalidation-rmse:6.31137\n", "[852]\tvalidation-rmse:6.31137\n", "[853]\tvalidation-rmse:6.31140\n", "[854]\tvalidation-rmse:6.31131\n", "[855]\tvalidation-rmse:6.31122\n", "[856]\tvalidation-rmse:6.31085\n", "[857]\tvalidation-rmse:6.31078\n", "[858]\tvalidation-rmse:6.31097\n", "[859]\tvalidation-rmse:6.31099\n", "[860]\tvalidation-rmse:6.31095\n", "[861]\tvalidation-rmse:6.31070\n", "[862]\tvalidation-rmse:6.31047\n", "[863]\tvalidation-rmse:6.31043\n", "[864]\tvalidation-rmse:6.31033\n", "[865]\tvalidation-rmse:6.31020\n", "[866]\tvalidation-rmse:6.31011\n", "[867]\tvalidation-rmse:6.31008\n", "[868]\tvalidation-rmse:6.31002\n", "[869]\tvalidation-rmse:6.30995\n", "[870]\tvalidation-rmse:6.30987\n", "[871]\tvalidation-rmse:6.30997\n", "[872]\tvalidation-rmse:6.30987\n", "[873]\tvalidation-rmse:6.30980\n", "[874]\tvalidation-rmse:6.30973\n", "[875]\tvalidation-rmse:6.30972\n", "[876]\tvalidation-rmse:6.30968\n", "[877]\tvalidation-rmse:6.30949\n", "[878]\tvalidation-rmse:6.30944\n", "[879]\tvalidation-rmse:6.30935\n", "[880]\tvalidation-rmse:6.30874\n", "[881]\tvalidation-rmse:6.30878\n", "[882]\tvalidation-rmse:6.30872\n", "[883]\tvalidation-rmse:6.30863\n", "[884]\tvalidation-rmse:6.30866\n", "[885]\tvalidation-rmse:6.30861\n", "[886]\tvalidation-rmse:6.30857\n", "[887]\tvalidation-rmse:6.30841\n", "[888]\tvalidation-rmse:6.30834\n", "[889]\tvalidation-rmse:6.30829\n", "[890]\tvalidation-rmse:6.30821\n", "[891]\tvalidation-rmse:6.30811\n", "[892]\tvalidation-rmse:6.30818\n", "[893]\tvalidation-rmse:6.30817\n", "[894]\tvalidation-rmse:6.30813\n", "[895]\tvalidation-rmse:6.30801\n", "[896]\tvalidation-rmse:6.30797\n", "[897]\tvalidation-rmse:6.30800\n", "[898]\tvalidation-rmse:6.30800\n", "[899]\tvalidation-rmse:6.30791\n", "[900]\tvalidation-rmse:6.30796\n", "[901]\tvalidation-rmse:6.30791\n", "[902]\tvalidation-rmse:6.30760\n", "[903]\tvalidation-rmse:6.30756\n", "[904]\tvalidation-rmse:6.30752\n", "[905]\tvalidation-rmse:6.30746\n", "[906]\tvalidation-rmse:6.30742\n", "[907]\tvalidation-rmse:6.30734\n", "[908]\tvalidation-rmse:6.30724\n", "[909]\tvalidation-rmse:6.30714\n", "[910]\tvalidation-rmse:6.30712\n", "[911]\tvalidation-rmse:6.30715\n", "[912]\tvalidation-rmse:6.30709\n", "[913]\tvalidation-rmse:6.30718\n", "[914]\tvalidation-rmse:6.30721\n", "[915]\tvalidation-rmse:6.30722\n", "[916]\tvalidation-rmse:6.30723\n", "[917]\tvalidation-rmse:6.30718\n", "[918]\tvalidation-rmse:6.30709\n", "[919]\tvalidation-rmse:6.30688\n", "[920]\tvalidation-rmse:6.30691\n", "[921]\tvalidation-rmse:6.30683\n", "[922]\tvalidation-rmse:6.30667\n", "[923]\tvalidation-rmse:6.30660\n", "[924]\tvalidation-rmse:6.30665\n", "[925]\tvalidation-rmse:6.30641\n", "[926]\tvalidation-rmse:6.30624\n", "[927]\tvalidation-rmse:6.30625\n", "[928]\tvalidation-rmse:6.30617\n", "[929]\tvalidation-rmse:6.30613\n", "[930]\tvalidation-rmse:6.30627\n", "[931]\tvalidation-rmse:6.30610\n", "[932]\tvalidation-rmse:6.30612\n", "[933]\tvalidation-rmse:6.30606\n", "[934]\tvalidation-rmse:6.30607\n", "[935]\tvalidation-rmse:6.30596\n", "[936]\tvalidation-rmse:6.30597\n", "[937]\tvalidation-rmse:6.30603\n", "[938]\tvalidation-rmse:6.30606\n", "[939]\tvalidation-rmse:6.30587\n", "[940]\tvalidation-rmse:6.30576\n", "[941]\tvalidation-rmse:6.30545\n", "[942]\tvalidation-rmse:6.30536\n", "[943]\tvalidation-rmse:6.30521\n", "[944]\tvalidation-rmse:6.30519\n", "[945]\tvalidation-rmse:6.30513\n", "[946]\tvalidation-rmse:6.30508\n", "[947]\tvalidation-rmse:6.30497\n", "[948]\tvalidation-rmse:6.30495\n", "[949]\tvalidation-rmse:6.30499\n", "[950]\tvalidation-rmse:6.30494\n", "[951]\tvalidation-rmse:6.30492\n", "[952]\tvalidation-rmse:6.30498\n", "[953]\tvalidation-rmse:6.30483\n", "[954]\tvalidation-rmse:6.30486\n", "[955]\tvalidation-rmse:6.30495\n", "[956]\tvalidation-rmse:6.30500\n", "[957]\tvalidation-rmse:6.30516\n", "[958]\tvalidation-rmse:6.30518\n", "[959]\tvalidation-rmse:6.30519\n", "[960]\tvalidation-rmse:6.30516\n", "[961]\tvalidation-rmse:6.30515\n", "[962]\tvalidation-rmse:6.30517\n", "[963]\tvalidation-rmse:6.30516\n", "[964]\tvalidation-rmse:6.30516\n", "[965]\tvalidation-rmse:6.30513\n", "[966]\tvalidation-rmse:6.30518\n", "[967]\tvalidation-rmse:6.30510\n", "[968]\tvalidation-rmse:6.30517\n", "[969]\tvalidation-rmse:6.30511\n", "[970]\tvalidation-rmse:6.30513\n", "[971]\tvalidation-rmse:6.30513\n", "[972]\tvalidation-rmse:6.30510\n", "[973]\tvalidation-rmse:6.30508\n", "[974]\tvalidation-rmse:6.30504\n", "[975]\tvalidation-rmse:6.30485\n", "[976]\tvalidation-rmse:6.30485\n", "[977]\tvalidation-rmse:6.30472\n", "[978]\tvalidation-rmse:6.30462\n", "[979]\tvalidation-rmse:6.30468\n", "[980]\tvalidation-rmse:6.30474\n", "[981]\tvalidation-rmse:6.30474\n", "[982]\tvalidation-rmse:6.30483\n", "[983]\tvalidation-rmse:6.30475\n", "[984]\tvalidation-rmse:6.30474\n", "[985]\tvalidation-rmse:6.30472\n", "[986]\tvalidation-rmse:6.30472\n", "[987]\tvalidation-rmse:6.30470\n", "[988]\tvalidation-rmse:6.30461\n", "[989]\tvalidation-rmse:6.30449\n", "[990]\tvalidation-rmse:6.30449\n", "[991]\tvalidation-rmse:6.30438\n", "[992]\tvalidation-rmse:6.30438\n", "[993]\tvalidation-rmse:6.30429\n", "[994]\tvalidation-rmse:6.30429\n", "[995]\tvalidation-rmse:6.30412\n", "[996]\tvalidation-rmse:6.30410\n", "[997]\tvalidation-rmse:6.30407\n", "[998]\tvalidation-rmse:6.30405\n", "[999]\tvalidation-rmse:6.30398\n" ] } ], "source": [ "with mlflow.start_run():\n", " \n", " train = xgb.DMatrix(X_train, label=y_train)\n", " valid = xgb.DMatrix(X_val, label=y_val)\n", "\n", " best_params = {\n", " 'learning_rate': 0.09585355369315604,\n", " 'max_depth': 30,\n", " 'min_child_weight': 1.060597050922164,\n", " 'objective': 'reg:linear',\n", " 'reg_alpha': 0.018060244040060163,\n", " 'reg_lambda': 0.011658731377413597,\n", " 'seed': 42\n", " }\n", "\n", " mlflow.log_params(best_params)\n", "\n", " booster = xgb.train(\n", " params=best_params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", "\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " with open(\"models/preprocessor.b\", \"wb\") as f_out:\n", " pickle.dump(dv, f_out)\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlflow.xgboost.log_model(booster, artifact_path=\"models_mlflow\")" ] }, { "cell_type": "code", "execution_count": null, "id": "c2108f4b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 23, "id": "87614b82", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/cristian.martinez/miniconda3/envs/exp-tracking-env/lib/python3.9/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor\n", "from sklearn.svm import LinearSVR\n", "\n", "mlflow.sklearn.autolog()\n", "\n", "for model_class in (RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor, LinearSVR):\n", "\n", " with mlflow.start_run():\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlmodel = model_class()\n", " mlmodel.fit(X_train, y_train)\n", "\n", " y_pred = mlmodel.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "6f0813c7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "4c489ec5", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 02-experiment-tracking/meta.json ================================================ { "module": { "number": 2, "title": "Experiment tracking and model management" }, "units": [ { "number": 1, "title": "Experiment tracking intro", "youtube": "https://www.youtube.com/watch?v=MiA7LQin9c8" }, { "number": 2, "title": "Getting started with MLflow", "youtube": "https://www.youtube.com/watch?v=cESCQE9J3ZE" }, { "number": 3, "title": "Experiment tracking with MLflow", "youtube": "https://www.youtube.com/watch?v=iaJz-T7VWec" }, { "number": 4, "title": "Model management", "youtube": "https://www.youtube.com/watch?v=OVUPIX88q88" }, { "number": 5, "title": "Model registry", "youtube": "https://www.youtube.com/watch?v=TKHU7HAvGH8" }, { "number": 6, "title": "MLflow in practice", "youtube": "https://www.youtube.com/watch?v=1ykg4YmbFVA" }, { "number": 7, "title": "MLflow: benefits, limitations and alternatives", "youtube": "https://www.youtube.com/watch?v=Lugy1JPsBRY" }, { "number": 8, "title": "Homework", "youtube": "" } ] } ================================================ FILE: 02-experiment-tracking/mlflow_on_aws.md ================================================ # Basic AWS setup This tutorials explains how to configure a remote tracking server on AWS. We will use an RDS database as the backend store and an s3 bucket as the artifact store. 1. First, you need to [create an AWS account](https://aws.amazon.com/free). If you open a new account, AWS allows you to use some of their products for free but take into account that **you may be charged for using the AWS services**. More information [here](https://youtu.be/rkKvzCskpLE) and [here](https://aws.amazon.com/premiumsupport/knowledge-center/free-tier-charges/). 2. Launch a new EC2 instance. For this, you can select one of the instance types that are free tier eligible. For example, we will select an Amazon Linux OS (`Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type`) and a `t2.micro` instance type, which are free tier eligible. You'll also need to create a new key pair so later you can connect to the new instance using SSH. Click on "Create new key pair" and complete the details like in the image below: Select the new key pair and then click on "Launch Instance". Finally, you have to edit the security group so the EC2 instance accepts SSH (port 22) and HTTP connections (port 5000): 3. Create an s3 bucket to be used as the artifact store. Go to s3 and click on "Create bucket". Fill in the bucket name as in the image below and let all the other configurations with their default values. Note: s3 bucket names must be unique across all AWS account in all the AWS Regions within a partition, that means that once a bucket is created, the name of that bucket cannot be used by another AWS account within the same region. If you get an error saying that the bucket name was already taken you can fix it easily by just changing the name to something like `mlflow-artifacts-remote-2` or another name. 4. Create a new PostgreSQL database to be used as the backend store Go to the RDS Console and click on "Create database". Make sure to select "PostgreSQL" engine type and the "Free tier" template. Select a name for your DB instance, set the master username as "mlflow" and tick the option "Auto generate a password" so Amazon RDS generate a password automatically. Finally, on the section "Additional configuration" specify a database name so RDS automatically creates an initial database for you. After clicking on "launch database" you will be able to check the newly generated password, but take into account that the automatically generated password will be shown only once! You can use the default values for all the other configurations. Take note of the following information: * master username * password * initial database name * endpoint Once the DB instance is created, go to the RDS console, select the new db and under "Connectivity & security" select the VPC security group. Modify the security group by adding a new inbound rule that allows postgreSQL connections on the port 5432 from the security group of the EC2 instance. This way, the server will be able to connect to the postgres database. Note that the database name might be set to "postgres" by default. 5. Connect to the EC2 instance and launch the tracking server. Go to the EC2 Console and find the instance launched on the step 2. Click on "Connect" and then follow the steps described in the tab "SSH". Run the following commands to install the dependencies, configure the environment and launch the server: * `sudo yum update` * `pip3 install mlflow boto3 psycopg2-binary` * `aws configure` # you'll need to input your AWS credentials here * `mlflow server -h 0.0.0.0 -p 5000 --backend-store-uri postgresql://DB_USER:DB_PASSWORD@DB_ENDPOINT:5432/DB_NAME --default-artifact-root s3://S3_BUCKET_NAME` Note: before launching the server, check that the instance can access the s3 bucket created in the step number 3. To do that, just run this command from the EC2 instance: `aws s3 ls`. You should see the bucket listed in the result. 6. Access the remote tracking server from your local machine. Open a new tab on your web browser and go to this address: `http://:5000` (you can find the instance's public DNS by checking the details of your instance in the EC2 Console). ================================================ FILE: 02-experiment-tracking/model-registry.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## MLflow's Model Registry" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "from mlflow.tracking import MlflowClient\n", "\n", "\n", "MLFLOW_TRACKING_URI = \"sqlite:///mlflow.db\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interacting with the MLflow tracking server\n", "\n", "The `MlflowClient` object allows us to interact with...\n", "- an MLflow Tracking Server that creates and manages experiments and runs.\n", "- an MLflow Registry Server that creates and manages registered models and model versions. \n", "\n", "To instantiate it we need to pass a tracking URI and/or a registry URI" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client = MlflowClient(tracking_uri=MLFLOW_TRACKING_URI)\n", "\n", "client.list_experiments()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'3'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client.create_experiment(name=\"my-cool-experiment\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check the latest versions for the experiment with id `1`..." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "from mlflow.entities import ViewType\n", "\n", "runs = client.search_runs(\n", " experiment_ids='1',\n", " filter_string=\"metrics.rmse < 7\",\n", " run_view_type=ViewType.ACTIVE_ONLY,\n", " max_results=5,\n", " order_by=[\"metrics.rmse ASC\"]\n", ")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "run id: 7db08e4f93af4ee1bcbce1d8a763e23a, rmse: 6.3040\n", "run id: a06a6b594fff409cb0d34e203b49f33f, rmse: 6.7423\n", "run id: b8904012c84343b5bf8ee72aa8f0f402, rmse: 6.9047\n", "run id: 54493fed643c4952be5232279e309053, rmse: 6.9213\n" ] } ], "source": [ "for run in runs:\n", " print(f\"run id: {run.info.run_id}, rmse: {run.data.metrics['rmse']:.4f}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interacting with the Model Registry\n", "\n", "In this section We will use the `MlflowClient` instance to:\n", "\n", "1. Register a new version for the experiment `nyc-taxi-regressor`\n", "2. Retrieve the latests versions of the model `nyc-taxi-regressor` and check that a new version `4` was created.\n", "3. Transition the version `4` to \"Staging\" and adding annotations to it." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "import mlflow\n", "\n", "mlflow.set_tracking_uri(MLFLOW_TRACKING_URI)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Registered model 'nyc-taxi-regressor' already exists. Creating a new version of this model...\n", "2022/05/19 16:47:17 INFO mlflow.tracking._model_registry.client: Waiting up to 300 seconds for model version to finish creation. Model name: nyc-taxi-regressor, version 4\n", "Created version '4' of model 'nyc-taxi-regressor'.\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "run_id = \"b8904012c84343b5bf8ee72aa8f0f402\"\n", "model_uri = f\"runs:/{run_id}/model\"\n", "mlflow.register_model(model_uri=model_uri, name=\"nyc-taxi-regressor\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "version: 1, stage: Staging\n", "version: 2, stage: Production\n", "version: 4, stage: None\n" ] } ], "source": [ "model_name = \"nyc-taxi-regressor\"\n", "latest_versions = client.get_latest_versions(name=model_name)\n", "\n", "for version in latest_versions:\n", " print(f\"version: {version.version}, stage: {version.current_stage}\")" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_version = 4\n", "new_stage = \"Staging\"\n", "client.transition_model_version_stage(\n", " name=model_name,\n", " version=model_version,\n", " stage=new_stage,\n", " archive_existing_versions=False\n", ")" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from datetime import datetime\n", "\n", "date = datetime.today().date()\n", "client.update_model_version(\n", " name=model_name,\n", " version=model_version,\n", " description=f\"The model version {model_version} was transitioned to {new_stage} on {date}\"\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparing versions and selecting the new \"Production\" model\n", "\n", "In the last section, we will retrieve models registered in the model registry and compare their performance on an unseen test set. The idea is to simulate the scenario in which a deployment engineer has to interact with the model registry to decide whether to update the model version that is in production or not.\n", "\n", "These are the steps:\n", "\n", "1. Load the test dataset, which corresponds to the NYC Green Taxi data from the month of March 2021.\n", "2. Download the `DictVectorizer` that was fitted using the training data and saved to MLflow as an artifact, and load it with pickle.\n", "3. Preprocess the test set using the `DictVectorizer` so we can properly feed the regressors.\n", "4. Make predictions on the test set using the model versions that are currently in the \"Staging\" and \"Production\" stages, and compare their performance.\n", "5. Based on the results, update the \"Production\" model version accordingly.\n", "\n", "\n", "**Note: the model registry doesn't actually deploy the model to production when you transition a model to the \"Production\" stage, it just assign a label to that model version. You should complement the registry with some CI/CD code that does the actual deployment.**" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import mean_squared_error\n", "import pandas as pd\n", "\n", "\n", "def read_dataframe(filename):\n", " df = pd.read_csv(filename)\n", "\n", " df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime)\n", " df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " return df\n", "\n", "\n", "def preprocess(df, dv):\n", " df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID']\n", " categorical = ['PU_DO']\n", " numerical = ['trip_distance']\n", " train_dicts = df[categorical + numerical].to_dict(orient='records')\n", " return dv.transform(train_dicts)\n", "\n", "\n", "def test_model(name, stage, X_test, y_test):\n", " model = mlflow.pyfunc.load_model(f\"models:/{name}/{stage}\")\n", " y_pred = model.predict(X_test)\n", " return {\"rmse\": mean_squared_error(y_test, y_pred, squared=False)}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/42/f9s_rgk15078ym2w50_xtc180000gq/T/ipykernel_5486/3050441246.py:6: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", " df = pd.read_csv(filename)\n" ] } ], "source": [ "df = read_dataframe(\"data/green_tripdata_2021-03.csv\")" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/Users/cristian.martinez/Repositories/mlops-zoomcamp/02-experiment-tracking/preprocessor'" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client.download_artifacts(run_id=run_id, path='preprocessor', dst_path='.')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "import pickle\n", "\n", "with open(\"preprocessor/preprocessor.b\", \"rb\") as f_in:\n", " dv = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "X_test = preprocess(df, dv)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "target = \"duration\"\n", "y_test = df[target].values" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 139 ms, sys: 44.6 ms, total: 183 ms\n", "Wall time: 447 ms\n" ] }, { "data": { "text/plain": [ "{'rmse': 6.659623830022514}" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time test_model(name=model_name, stage=\"Production\", X_test=X_test, y_test=y_test)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 6.94 s, sys: 216 ms, total: 7.16 s\n", "Wall time: 7.28 s\n" ] }, { "data": { "text/plain": [ "{'rmse': 6.881555517147188}" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%time test_model(name=model_name, stage=\"Staging\", X_test=X_test, y_test=y_test)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "client.transition_model_version_stage(\n", " name=model_name,\n", " version=4,\n", " stage=\"Production\",\n", " archive_existing_versions=True\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3.9.12 ('exp-tracking-env')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: 02-experiment-tracking/requirements.txt ================================================ mlflow jupyter scikit-learn pandas seaborn hyperopt xgboost fastparquet boto3 ================================================ FILE: 02-experiment-tracking/running-mlflow-examples/scenario-1.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Scenario 1: A single data scientist participating in an ML competition\n", "\n", "MLflow setup:\n", "* Tracking server: no\n", "* Backend store: local filesystem\n", "* Artifacts store: local filesystem\n", "\n", "The experiments can be explored locally by launching the MLflow UI." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import mlflow" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(f\"tracking URI: '{mlflow.get_tracking_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creating an experiment and logging a new run" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "from sklearn.datasets import load_iris\n", "from sklearn.metrics import accuracy_score\n", "\n", "mlflow.set_experiment(\"my-experiment-1\")\n", "\n", "with mlflow.start_run():\n", "\n", " X, y = load_iris(return_X_y=True)\n", "\n", " params = {\"C\": 0.1, \"random_state\": 42}\n", " mlflow.log_params(params)\n", "\n", " lr = LogisticRegression(**params).fit(X, y)\n", " y_pred = lr.predict(X)\n", " mlflow.log_metric(\"accuracy\", accuracy_score(y, y_pred))\n", "\n", " mlflow.sklearn.log_model(lr, artifact_path=\"models\")\n", " print(f\"default artifacts URI: '{mlflow.get_artifact_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interacting with the model registry" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from mlflow.tracking import MlflowClient\n", "\n", "\n", "client = MlflowClient()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from mlflow.exceptions import MlflowException\n", "\n", "try:\n", " client.search_registered_models()\n", "except MlflowException:\n", " print(\"It's not possible to access the model registry :(\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3.9.12 ('exp-tracking-env')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: 02-experiment-tracking/running-mlflow-examples/scenario-2.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Scenario 2: A cross-functional team with one data scientist working on an ML model\n", "\n", "\n", "MLflow setup:\n", "- tracking server: yes, local server\n", "- backend store: sqlite database\n", "- artifacts store: local filesystem\n", "\n", "The experiments can be explored locally by accessing the local tracking server.\n", "\n", "To run this example you need to launch the mlflow server locally by running the following command in your terminal:\n", "\n", "`mlflow server --backend-store-uri sqlite:///backend.db`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import mlflow\n", "\n", "\n", "mlflow.set_tracking_uri(\"http://127.0.0.1:5000\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(f\"tracking URI: '{mlflow.get_tracking_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "from sklearn.datasets import load_iris\n", "from sklearn.metrics import accuracy_score\n", "\n", "mlflow.set_experiment(\"my-experiment-1\")\n", "\n", "with mlflow.start_run():\n", "\n", " X, y = load_iris(return_X_y=True)\n", "\n", " params = {\"C\": 0.1, \"random_state\": 42}\n", " mlflow.log_params(params)\n", "\n", " lr = LogisticRegression(**params).fit(X, y)\n", " y_pred = lr.predict(X)\n", " mlflow.log_metric(\"accuracy\", accuracy_score(y, y_pred))\n", "\n", " mlflow.sklearn.log_model(lr, artifact_path=\"models\")\n", " print(f\"default artifacts URI: '{mlflow.get_artifact_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interacting with the model registry" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from mlflow.tracking import MlflowClient\n", "\n", "\n", "client = MlflowClient(\"http://127.0.0.1:5000\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "client.search_registered_models()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "run_id = client.search_runs(experiment_ids='1')[0].info.run_id\n", "mlflow.register_model(\n", " model_uri=f\"runs:/{run_id}/models\",\n", " name='iris-classifier'\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3.9.12 ('exp-tracking-env')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: 02-experiment-tracking/running-mlflow-examples/scenario-3.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Scenario 3: Multiple data scientists working on multiple ML models\n", "\n", "MLflow setup:\n", "* Tracking server: yes, remote server (EC2).\n", "* Backend store: postgresql database.\n", "* Artifacts store: s3 bucket.\n", "\n", "The experiments can be explored by accessing the remote server.\n", "\n", "The example uses AWS to host a remote server. In order to run the example you'll need an AWS account. Follow the steps described in the file `mlflow_on_aws.md` to create a new AWS account and launch the tracking server. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import mlflow\n", "import os\n", "\n", "os.environ[\"AWS_PROFILE\"] = \"\" # fill in with your AWS profile. More info: https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials\n", "\n", "TRACKING_SERVER_HOST = \"\" # fill in with the public DNS of the EC2 instance\n", "mlflow.set_tracking_uri(f\"http://{TRACKING_SERVER_HOST}:5000\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(f\"tracking URI: '{mlflow.get_tracking_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments() # list_experiments API has been removed, you can use search_experiments instead.()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "from sklearn.datasets import load_iris\n", "from sklearn.metrics import accuracy_score\n", "\n", "mlflow.set_experiment(\"my-experiment-1\")\n", "\n", "with mlflow.start_run():\n", "\n", " X, y = load_iris(return_X_y=True)\n", "\n", " params = {\"C\": 0.1, \"random_state\": 42}\n", " mlflow.log_params(params)\n", "\n", " lr = LogisticRegression(**params).fit(X, y)\n", " y_pred = lr.predict(X)\n", " mlflow.log_metric(\"accuracy\", accuracy_score(y, y_pred))\n", "\n", " mlflow.sklearn.log_model(lr, artifact_path=\"models\")\n", " print(f\"default artifacts URI: '{mlflow.get_artifact_uri()}'\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "mlflow.search_experiments()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interacting with the model registry" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from mlflow.tracking import MlflowClient\n", "\n", "\n", "client = MlflowClient(f\"http://{TRACKING_SERVER_HOST}:5000\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "client.search_registered_models()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "run_id = client.search_runs(experiment_ids=['1'])[0].info.run_id\n", "mlflow.register_model(\n", " model_uri=f\"runs:/{run_id}/models\",\n", " name='iris-classifier'\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3.9.12 ('exp-tracking-env')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: 03-orchestration/README.md ================================================ # 3. Orchestration and ML Pipelines ## 3.1 Introduction to ML Pipelines ## 3.2 Turning the Notebook into a Python Script ## 3.3 Using an Orchestrator Now that we converted the notebook into a python script, we can use an orchestrator to turn the script into a production pipeline. There's no video for this unit, but you can use ChatGPT to help you with this. ### Step 1: Choosing the Tool For that you first need to choose an orchestrator. For example: - Airflow - Prefect - Dagster - Kestra - Mage - or some other tool ### Step 2: Running the Tool * Configure the tool to run locally * Run the simplest "hello world" workflow ### Step 3: Orchestrating the Workflow * Get the code from the previous unit (see [code](code/)) * Use the tool to orchestrate the steps in the pipeline ### Step 4: Parametrizing the Workflow * Schedule the workflow to run monthly * The train data should be from two months ago * The validation data - one month ago ### Step 5: Backfilling * Learn to run the workflow for some of the past months ### Step 6: Deployment (optional) * Learn to deploy the tool to the cloud ### Resources For guidance, you can refer to past cohorts of the course: - Prefect - 2022 and 2023 - Mage - 2024 You can also rely on ChatGPT or similar tools. They are very helpful. ## 3.4 Homework More information [here](../cohorts/2025/03-orchestration/homework.md). ## Resources ### Mlflow If you want to run MLFlow with Docker, you can do this: Create a dockerfile for mlflow, e.g. `mlflow.dockerfile`: ```dockerfile FROM python:3.10-slim RUN pip install mlflow==2.12.1 EXPOSE 5000 CMD [ \ "mlflow", "server", \ "--backend-store-uri", "sqlite:///home/mlflow_data/mlflow.db", \ "--host", "0.0.0.0", \ "--port", "5000" \ ] ``` Add it to the docker-compose.yaml: ```yaml mlflow: build: context: . dockerfile: mlflow.dockerfile ports: - "5000:5000" volumes: - "${PWD}/mlflow_data:/home/mlflow_data/" ``` In your code, make sure you use the same version of mlflow (`mlflow==2.12.1`). When you run it, mlflow should be accessible at `http://mlflow:5000`. ## Notes ### Notes previous editions - [2022 Prefect notes](../cohorts/2022/03-orchestration/README.md) - [2023 Prefect notes](../cohorts/2023/03-orchestration/prefect/README.md) - [2024 Mage notes](../cohorts/2024/03-orchestration/README.md) ### Notes 2025 Did you take notes? Add them here: * [2025 Cohort | Running Airflow + MLflow using Docker by André Calatré](https://github.com/calatre/mlops-zoomcamp/tree/main/03-orchestration) * [Week 3 - workflow orchestration & Prefect by hannarud](https://github.com/hannarud/mlops-zoomcamp-2025/blob/main/week3_notes.md) * [Orchestration with Prefect Notes and Code by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/blob/main/03-orchestration/README.md) * Send a PR, add your notes above this line ================================================ FILE: 03-orchestration/code/commands.md ================================================ ```bash pip install mlflow jupyter pandas numpy scikit-learn xgboost hyperopt wget https://raw.githubusercontent.com/DataTalksClub/mlops-zoomcamp/refs/heads/main/02-experiment-tracking/duration-prediction.ipynb jupyter notebook mlflow server \ --backend-store-uri sqlite:///mlflow.db ``` ```python import mlflow mlflow.set_tracking_uri("http://localhost:5000") mlflow.set_experiment("nyc-taxi-experiment") ``` ```python URL = 'https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2021-01.parquet' ``` ================================================ FILE: 03-orchestration/code/duration-prediction.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b2bd82d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.12.1\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": 2, "id": "41062d8a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "c984c564", "metadata": {}, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 4, "id": "8b135c2b", "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.metrics import root_mean_squared_error" ] }, { "cell_type": "code", "execution_count": 5, "id": "1464985f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025/05/22 12:10:31 INFO mlflow.tracking.fluent: Experiment with name 'nyc-taxi-experiment' does not exist. Creating a new experiment.\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import mlflow\n", "\n", "mlflow.set_tracking_uri(\"http://localhost:5000\")\n", "mlflow.set_experiment(\"nyc-taxi-experiment\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "f9e6479e", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename):\n", " df = pd.read_parquet(filename)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", "\n", " df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID']\n", "\n", " return df" ] }, { "cell_type": "code", "execution_count": 17, "id": "8029eba0", "metadata": {}, "outputs": [], "source": [ "df_train = read_dataframe('https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2021-01.parquet')\n", "df_val = read_dataframe('https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2021-02.parquet')" ] }, { "cell_type": "code", "execution_count": 18, "id": "c5cbfc25", "metadata": {}, "outputs": [], "source": [ "categorical = ['PU_DO'] #'PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "dv = DictVectorizer()\n", "\n", "train_dicts = df_train[categorical + numerical].to_dict(orient='records')\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "val_dicts = df_val[categorical + numerical].to_dict(orient='records')\n", "X_val = dv.transform(val_dicts)" ] }, { "cell_type": "code", "execution_count": 19, "id": "1e9fb68b", "metadata": {}, "outputs": [], "source": [ "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values" ] }, { "cell_type": "code", "execution_count": 21, "id": "5f56e97b", "metadata": {}, "outputs": [], "source": [ "import xgboost as xgb" ] }, { "cell_type": "code", "execution_count": 26, "id": "b1f71259-0e96-4725-9151-dc274f4e984c", "metadata": {}, "outputs": [], "source": [ "from pathlib import Path" ] }, { "cell_type": "code", "execution_count": 28, "id": "0ee76202-3ff6-4bd7-b70e-b8d1c87c26d1", "metadata": {}, "outputs": [], "source": [ "models_folder = Path('models')\n", "models_folder.mkdir(exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 29, "id": "0e8cd729", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/python/3.12.1/lib/python3.12/site-packages/xgboost/callback.py:386: UserWarning: [12:17:00] WARNING: /workspace/src/objective/regression_obj.cu:250: reg:linear is now deprecated in favor of reg:squarederror.\n", " self.starting_round = model.num_boosted_rounds()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[0]\tvalidation-rmse:11.44482\n", "[1]\tvalidation-rmse:10.77202\n", "[2]\tvalidation-rmse:10.18363\n", "[3]\tvalidation-rmse:9.67396\n", "[4]\tvalidation-rmse:9.23166\n", "[5]\tvalidation-rmse:8.84808\n", "[6]\tvalidation-rmse:8.51883\n", "[7]\tvalidation-rmse:8.23597\n", "[8]\tvalidation-rmse:7.99320\n", "[9]\tvalidation-rmse:7.78709\n", "[10]\tvalidation-rmse:7.61022\n", "[11]\tvalidation-rmse:7.45952\n", "[12]\tvalidation-rmse:7.33049\n", "[13]\tvalidation-rmse:7.22098\n", "[14]\tvalidation-rmse:7.12713\n", "[15]\tvalidation-rmse:7.04752\n", "[16]\tvalidation-rmse:6.98005\n", "[17]\tvalidation-rmse:6.92232\n", "[18]\tvalidation-rmse:6.87112\n", "[19]\tvalidation-rmse:6.82740\n", "[20]\tvalidation-rmse:6.78995\n", "[21]\tvalidation-rmse:6.75792\n", "[22]\tvalidation-rmse:6.72994\n", "[23]\tvalidation-rmse:6.70547\n", "[24]\tvalidation-rmse:6.68390\n", "[25]\tvalidation-rmse:6.66421\n", "[26]\tvalidation-rmse:6.64806\n", "[27]\tvalidation-rmse:6.63280\n", "[28]\tvalidation-rmse:6.61924\n", "[29]\tvalidation-rmse:6.60773\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/python/3.12.1/lib/python3.12/site-packages/mlflow/xgboost/__init__.py:168: UserWarning: [12:17:36] WARNING: /workspace/src/c_api/c_api.cc:1427: Saving model in the UBJSON format as default. You can use file extension: `json`, `ubj` or `deprecated` to choose between formats.\n", " xgb_model.save_model(model_data_path)\n", "\u001b[31m2025/05/22 12:17:41 WARNING mlflow.models.model: Model logged without a signature and input example. Please set `input_example` parameter when logging the model to auto infer the model signature.\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "🏃 View run stylish-auk-139 at: http://localhost:5000/#/experiments/1/runs/494792a9a00b48b1b1ef16a3dd8aeebe\n", "🧪 View experiment at: http://localhost:5000/#/experiments/1\n" ] } ], "source": [ "with mlflow.start_run():\n", " train = xgb.DMatrix(X_train, label=y_train)\n", " valid = xgb.DMatrix(X_val, label=y_val)\n", "\n", " best_params = {\n", " 'learning_rate': 0.09585355369315604,\n", " 'max_depth': 30,\n", " 'min_child_weight': 1.060597050922164,\n", " 'objective': 'reg:linear',\n", " 'reg_alpha': 0.018060244040060163,\n", " 'reg_lambda': 0.011658731377413597,\n", " 'seed': 42\n", " }\n", "\n", " mlflow.log_params(best_params)\n", "\n", " booster = xgb.train(\n", " params=best_params,\n", " dtrain=train,\n", " num_boost_round=30,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", "\n", " y_pred = booster.predict(valid)\n", " rmse = root_mean_squared_error(y_val, y_pred)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " with open(\"models/preprocessor.b\", \"wb\") as f_out:\n", " pickle.dump(dv, f_out)\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlflow.xgboost.log_model(booster, artifact_path=\"models_mlflow\")" ] }, { "cell_type": "code", "execution_count": null, "id": "c2108f4b", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.1" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 03-orchestration/code/duration-prediction.py ================================================ #!/usr/bin/env python # coding: utf-8 import pickle from pathlib import Path import pandas as pd import xgboost as xgb from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import root_mean_squared_error import mlflow mlflow.set_tracking_uri("http://localhost:5000") mlflow.set_experiment("nyc-taxi-experiment") models_folder = Path('models') models_folder.mkdir(exist_ok=True) def read_dataframe(year, month): url = f'https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_{year}-{month:02d}.parquet' df = pd.read_parquet(url) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] return df def create_X(df, dv=None): categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if dv is None: dv = DictVectorizer(sparse=True) X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv def train_model(X_train, y_train, X_val, y_val, dv): with mlflow.start_run() as run: train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { 'learning_rate': 0.09585355369315604, 'max_depth': 30, 'min_child_weight': 1.060597050922164, 'objective': 'reg:linear', 'reg_alpha': 0.018060244040060163, 'reg_lambda': 0.011658731377413597, 'seed': 42 } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=30, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = root_mean_squared_error(y_val, y_pred) mlflow.log_metric("rmse", rmse) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") return run.info.run_id def run(year, month): df_train = read_dataframe(year=year, month=month) next_year = year if month < 12 else year + 1 next_month = month + 1 if month < 12 else 1 df_val = read_dataframe(year=next_year, month=next_month) X_train, dv = create_X(df_train) X_val, _ = create_X(df_val, dv) target = 'duration' y_train = df_train[target].values y_val = df_val[target].values run_id = train_model(X_train, y_train, X_val, y_val, dv) print(f"MLflow run_id: {run_id}") return run_id if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description='Train a model to predict taxi trip duration.') parser.add_argument('--year', type=int, required=True, help='Year of the data to train on') parser.add_argument('--month', type=int, required=True, help='Month of the data to train on') args = parser.parse_args() run_id = run(year=args.year, month=args.month) with open("run_id.txt", "w") as f: f.write(run_id) ================================================ FILE: 04-deployment/README.md ================================================ # 4. Model Deployment ## 4.1 Three ways of deploying a model ## 4.2 Web-services: Deploying models with Flask and Docker [See code here](web-service/) ## 4.3 Web-services: Getting the models from the model registry (MLflow) [See code here](web-service-mlflow/) ## 4.4 (Optional) Streaming: Deploying models with Kinesis and Lambda Note: Since some of the steps in this video requires the use of AWS services which incur some cost on the user, it is optional to code along to this video. However, as material in Module 6 is based on the content of this video, we still highly recommended that you watch it. [See code here](streaming/) ## 4.5 Batch: Preparing a scoring script [See code here](batch/) ## 4.6 MLOps Zoomcamp 4.6 - Batch scoring with Mage No video - you already know how to do it: * Connect to MLFlow * Create a transformation block * Get the model from the registry, apply it ## Homework More information [here](../cohorts/2025/04-deployment/homework.md). ## Notes Did you take notes? Add them here: * [Notes on model deployment (+ creating a modeling package) by Ron M.](https://particle1331.github.io/inefficient-networks/notebooks/mlops/04-deployment/notes.html) * [Notes on Model Deployment using Google Cloud Platform, by M. Ayoub C.](https://gist.github.com/Qfl3x/de2a9b98a370749a4b17a4c94ef46185) * [Week4: Notes on Model Deployment by Bhagabat](https://github.com/BPrasad123/MLOps_Zoomcamp/tree/main/Week4) * [Week 4: Deployment notes by Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/deployment-04.md) * [Week 4: Deployment notes by Waleed](https://github.com/waleedayoub/mlops-zoomcamp/blob/main/cohorts/2023/04-deployment/module4notes.waleed.md) * [Week4: Deployment: Offline (Batch), Online (Web service /w MLflow, Streaming) by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/04-deployment/README.md) * [Week 4: Deployment Notes - Marcus](https://github.com/mleiwe/mlops-zoomcamp/blob/NotesBranch/cohorts/2024/04-deployment/Ch4_Notes_ML.md) * [Cohort 2025| ML model deployment notes by Nitin Gupta](https://github.com/niting9881/course-mlops-zoomcamp/blob/main/04-deployment/README.md) * [week-4: Detailed notes on deployment,streaming module,notes,codes and homework by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/blob/main/04-deployment/README.md) * Send a PR, add your notes above this line ================================================ FILE: 04-deployment/batch/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" prefect = "==2.0b6" mlflow = "*" pandas = "*" boto3 = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.9" ================================================ FILE: 04-deployment/batch/README.md ================================================ ## Batch deployment * Turn the notebook for training a model into a notebook for applying the model * Turn the notebook into a script * Clean it and parametrize ================================================ FILE: 04-deployment/batch/score.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2e25cf66", "metadata": {}, "outputs": [], "source": [ "import os\n", "import uuid\n", "import pickle\n", "\n", "import pandas as pd\n", "\n", "import mlflow\n", "\n", "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.pipeline import make_pipeline" ] }, { "cell_type": "code", "execution_count": 7, "id": "5887deea", "metadata": {}, "outputs": [], "source": [ "year = 2021\n", "month = 2\n", "taxi_type = 'green'\n", "\n", "input_file = f'https://s3.amazonaws.com/nyc-tlc/trip+data/{taxi_type}_tripdata_{year:04d}-{month:02d}.parquet'\n", "output_file = f'output/{taxi_type}/{year:04d}-{month:02d}.parquet'\n", "\n", "RUN_ID = os.getenv('RUN_ID', 'e1efc53e9bd149078b0c12aeaa6365df')" ] }, { "cell_type": "code", "execution_count": 8, "id": "b9666e19", "metadata": {}, "outputs": [], "source": [ "def generate_uuids(n):\n", " ride_ids = []\n", " for i in range(n):\n", " ride_ids.append(str(uuid.uuid4()))\n", " return ride_ids\n", "\n", "def read_dataframe(filename: str):\n", " df = pd.read_parquet(filename)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.dt.total_seconds() / 60\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", " \n", " df['ride_id'] = generate_uuids(len(df))\n", "\n", " return df\n", "\n", "\n", "def prepare_dictionaries(df: pd.DataFrame):\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID']\n", "\n", " categorical = ['PU_DO']\n", " numerical = ['trip_distance']\n", " dicts = df[categorical + numerical].to_dict(orient='records')\n", " return dicts" ] }, { "cell_type": "code", "execution_count": 9, "id": "6b5f0d80", "metadata": {}, "outputs": [], "source": [ "def load_model(run_id):\n", " logged_model = f's3://mlflow-models-alexey/1/{RUN_ID}/artifacts/model'\n", " model = mlflow.pyfunc.load_model(logged_model)\n", " return model\n", "\n", "\n", "def apply_model(input_file, run_id, output_file):\n", "\n", " df = read_dataframe(input_file)\n", " dicts = prepare_dictionaries(df)\n", "\n", " \n", " model = load_model(run_id)\n", " y_pred = model.predict(dicts)\n", "\n", " df_result = pd.DataFrame()\n", " df_result['ride_id'] = df['ride_id']\n", " df_result['lpep_pickup_datetime'] = df['lpep_pickup_datetime']\n", " df_result['PULocationID'] = df['PULocationID']\n", " df_result['DOLocationID'] = df['DOLocationID']\n", " df_result['actual_duration'] = df['duration']\n", " df_result['predicted_duration'] = y_pred\n", " df_result['diff'] = df_result['actual_duration'] - df_result['predicted_duration']\n", " df_result['model_version'] = run_id\n", " \n", " df_result.to_parquet(output_file, index=False)" ] }, { "cell_type": "code", "execution_count": 11, "id": "cc2899e7", "metadata": {}, "outputs": [], "source": [ "apply_model(input_file=input_file, run_id=RUN_ID, output_file=output_file)" ] }, { "cell_type": "code", "execution_count": 12, "id": "b75bd6c9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2021-02.parquet 2021-03.parquet\r\n" ] } ], "source": [ "!ls output/green/" ] }, { "cell_type": "code", "execution_count": null, "id": "289d4bc4", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 04-deployment/batch/score.py ================================================ #!/usr/bin/env python # coding: utf-8 import os import sys import uuid import pickle from datetime import datetime import pandas as pd import mlflow from prefect import task, flow, get_run_logger from prefect.context import get_run_context from dateutil.relativedelta import relativedelta from sklearn.feature_extraction import DictVectorizer from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error from sklearn.pipeline import make_pipeline def generate_uuids(n): ride_ids = [] for i in range(n): ride_ids.append(str(uuid.uuid4())) return ride_ids def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)] df['ride_id'] = generate_uuids(len(df)) return df def prepare_dictionaries(df: pd.DataFrame): categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') return dicts def load_model(run_id): logged_model = f's3://mlflow-models-alexey/1/{run_id}/artifacts/model' model = mlflow.pyfunc.load_model(logged_model) return model def save_results(df, y_pred, run_id, output_file): df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['lpep_pickup_datetime'] = df['lpep_pickup_datetime'] df_result['PULocationID'] = df['PULocationID'] df_result['DOLocationID'] = df['DOLocationID'] df_result['actual_duration'] = df['duration'] df_result['predicted_duration'] = y_pred df_result['diff'] = df_result['actual_duration'] - df_result['predicted_duration'] df_result['model_version'] = run_id df_result.to_parquet(output_file, index=False) @task def apply_model(input_file, run_id, output_file): logger = get_run_logger() logger.info(f'reading the data from {input_file}...') df = read_dataframe(input_file) dicts = prepare_dictionaries(df) logger.info(f'loading the model with RUN_ID={run_id}...') model = load_model(run_id) logger.info(f'applying the model...') y_pred = model.predict(dicts) logger.info(f'saving the result to {output_file}...') save_results(df, y_pred, run_id, output_file) return output_file def get_paths(run_date, taxi_type, run_id): prev_month = run_date - relativedelta(months=1) year = prev_month.year month = prev_month.month input_file = f's3://nyc-tlc/trip data/{taxi_type}_tripdata_{year:04d}-{month:02d}.parquet' output_file = f's3://nyc-duration-prediction-alexey/taxi_type={taxi_type}/year={year:04d}/month={month:02d}/{run_id}.parquet' return input_file, output_file @flow def ride_duration_prediction( taxi_type: str, run_id: str, run_date: datetime = None): if run_date is None: ctx = get_run_context() run_date = ctx.flow_run.expected_start_time input_file, output_file = get_paths(run_date, taxi_type, run_id) apply_model( input_file=input_file, run_id=run_id, output_file=output_file ) def run(): taxi_type = sys.argv[1] # 'green' year = int(sys.argv[2]) # 2021 month = int(sys.argv[3]) # 3 run_id = sys.argv[4] # 'e1efc53e9bd149078b0c12aeaa6365df' ride_duration_prediction( taxi_type=taxi_type, run_id=run_id, run_date=datetime(year=year, month=month, day=1) ) if __name__ == '__main__': run() ================================================ FILE: 04-deployment/batch/score_backfill.py ================================================ from datetime import datetime from dateutil.relativedelta import relativedelta from prefect import flow import score @flow def ride_duration_prediction_backfill(): start_date = datetime(year=2021, month=3, day=1) end_date = datetime(year=2022, month=4, day=1) d = start_date while d <= end_date: score.ride_duration_prediction( taxi_type='green', run_id='e1efc53e9bd149078b0c12aeaa6365df', run_date=d ) d = d + relativedelta(months=1) if __name__ == '__main__': ride_duration_prediction_backfill() ================================================ FILE: 04-deployment/batch/score_deploy.py ================================================ from prefect.deployments import Deployment from prefect.orion.schemas.schedules import CronSchedule from score import ride_duration_prediction deployment = Deployment.build_from_flow( flow=ride_duration_prediction, name="ride_duration_prediction", parameters={ "taxi_type": "green", "run_id": "e1efc53e9bd149078b0c12aeaa6365df", }, schedule=CronSchedule(cron="0 3 2 * *"), work_queue_name="ml", ) deployment.apply() ================================================ FILE: 04-deployment/load_model.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 3, "id": "d84f7be2", "metadata": {}, "outputs": [], "source": [ "import mlflow\n", "\n", "TRACKING_URL = \"http://127.0.0.1:5000\"\n", "mlflow.set_tracking_uri(TRACKING_URL)" ] }, { "cell_type": "code", "execution_count": 5, "id": "293ac71d", "metadata": {}, "outputs": [], "source": [ "run_id = '6dd459b11b4e48dc862f4e1019d166f6'\n", "logged_model = f'runs:/{run_id}/model'\n", "\n", "loaded_model = mlflow.pyfunc.load_model(logged_model)" ] }, { "cell_type": "code", "execution_count": 1, "id": "031645d6", "metadata": {}, "outputs": [], "source": [ "import mlflow\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "e5e6825e", "metadata": {}, "outputs": [], "source": [ "loaded_model = mlflow.pyfunc.load_model('s3://mlflow-models-alexey/1/6dd459b11b4e48dc862f4e1019d166f6/artifacts/model/')" ] }, { "cell_type": "code", "execution_count": null, "id": "64f389c2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "id": "aaf7ad20", "metadata": {}, "outputs": [], "source": [ "request = {\n", " 'lpep_pickup_datetime': '2021-01-01 00:15:56',\n", " 'PULocationID': 43,\n", " 'DOLocationID': 151,\n", " 'passenger_count': 1.0,\n", " 'trip_distance': 1.01\n", "}" ] }, { "cell_type": "code", "execution_count": 4, "id": "6256f61d", "metadata": {}, "outputs": [], "source": [ "features = {}\n", "features['PU_DO'] = '%s_%s' % (request['PULocationID'], request['DOLocationID'])\n", "features['trip_distance'] = request['trip_distance']" ] }, { "cell_type": "code", "execution_count": 5, "id": "0b3a195c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([14.8285286])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loaded_model.predict(features)" ] }, { "cell_type": "code", "execution_count": null, "id": "6fce5f72", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 04-deployment/meta.json ================================================ { "module": { "number": 4, "title": "Model Deployment" }, "units": [ { "number": 1, "title": "Three ways of deploying a model", "youtube": "https://www.youtube.com/watch?v=JMGe4yIoBRA" }, { "number": 2, "title": "Web-services: Deploying models with Flask and Docker", "youtube": "https://www.youtube.com/watch?v=D7wfMAdgdF8" }, { "number": 3, "title": "Web-services: Getting the models from the model registry (MLflow)", "youtube": "https://www.youtube.com/watch?v=aewOpHSCkqI" }, { "number": 4, "title": "(Optional) Streaming: Deploying models with Kinesis and Lambda ", "youtube": "https://www.youtube.com/watch?v=TCqr9HNcrsI" }, { "number": 5, "title": "Batch: Preparing a scoring script", "youtube": "https://www.youtube.com/watch?v=18Lbaaeigek" }, { "number": 6, "title": "MLOps Zoomcamp 4.6 - Batch: Scheduling batch scoring jobs with Prefect", "youtube": "https://www.youtube.com/watch?v=ekT_JW213Tc" }, { "number": 7, "title": "Homework", "youtube": "" } ] } ================================================ FILE: 04-deployment/streaming/Dockerfile ================================================ FROM public.ecr.aws/lambda/python:3.9 RUN pip install -U pip RUN pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "lambda_function.py", "./" ] CMD [ "lambda_function.lambda_handler" ] ================================================ FILE: 04-deployment/streaming/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] boto3 = "*" mlflow = "*" scikit-learn = "==1.0.2" [dev-packages] [requires] python_version = "3.9" ================================================ FILE: 04-deployment/streaming/README.md ================================================ ## Machine Learning for Streaming * Scenario * Creating the role * Create a Lambda function, test it * Create a Kinesis stream * Connect the function to the stream * Send the records Links * [Tutorial: Using Amazon Lambda with Amazon Kinesis](https://docs.amazonaws.cn/en_us/lambda/latest/dg/with-kinesis-example.html) ## Code snippets ### Sending data ```bash KINESIS_STREAM_INPUT=ride_events aws kinesis put-record \ --stream-name ${KINESIS_STREAM_INPUT} \ --partition-key 1 \ --data "Hello, this is a test." ``` Decoding base64 ```python base64.b64decode(data_encoded).decode('utf-8') ``` Record example ```json { "ride": { "PULocationID": 130, "DOLocationID": 205, "trip_distance": 3.66 }, "ride_id": 123 } ``` Sending this record ```bash aws kinesis put-record \ --stream-name ${KINESIS_STREAM_INPUT} \ --partition-key 1 \ --data '{ "ride": { "PULocationID": 130, "DOLocationID": 205, "trip_distance": 3.66 }, "ride_id": 156 }' ``` ### Test event ```json { "Records": [ { "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49630081666084879290581185630324770398608704880802529282", "data": "ewogICAgICAgICJyaWRlIjogewogICAgICAgICAgICAiUFVMb2NhdGlvbklEIjogMTMwLAogICAgICAgICAgICAiRE9Mb2NhdGlvbklEIjogMjA1LAogICAgICAgICAgICAidHJpcF9kaXN0YW5jZSI6IDMuNjYKICAgICAgICB9LCAKICAgICAgICAicmlkZV9pZCI6IDI1NgogICAgfQ==", "approximateArrivalTimestamp": 1654161514.132 }, "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000000:49630081666084879290581185630324770398608704880802529282", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::XXXXXXXXX:role/lambda-kinesis-role", "awsRegion": "eu-west-1", "eventSourceARN": "arn:aws:kinesis:eu-west-1:XXXXXXXXX:stream/ride_events" } ] } ``` ### Reading from the stream ```bash KINESIS_STREAM_OUTPUT='ride_predictions' SHARD='shardId-000000000000' SHARD_ITERATOR=$(aws kinesis \ get-shard-iterator \ --shard-id ${SHARD} \ --shard-iterator-type TRIM_HORIZON \ --stream-name ${KINESIS_STREAM_OUTPUT} \ --query 'ShardIterator' \ ) RESULT=$(aws kinesis get-records --shard-iterator $SHARD_ITERATOR) echo ${RESULT} | jq -r '.Records[0].Data' | base64 --decode ``` ### Running the test ```bash export PREDICTIONS_STREAM_NAME="ride_predictions" export RUN_ID="e1efc53e9bd149078b0c12aeaa6365df" export TEST_RUN="True" python test.py ``` ### Putting everything to Docker ```bash docker build -t stream-model-duration:v1 . docker run -it --rm \ -p 8080:8080 \ -e PREDICTIONS_STREAM_NAME="ride_predictions" \ -e RUN_ID="e1efc53e9bd149078b0c12aeaa6365df" \ -e TEST_RUN="True" \ -e AWS_DEFAULT_REGION="eu-west-1" \ stream-model-duration:v1 ``` URL for testing: * http://localhost:8080/2015-03-31/functions/function/invocations ### Configuring AWS CLI to run in Docker To use AWS CLI, you may need to set the env variables: ```bash docker run -it --rm \ -p 8080:8080 \ -e PREDICTIONS_STREAM_NAME="ride_predictions" \ -e RUN_ID="e1efc53e9bd149078b0c12aeaa6365df" \ -e TEST_RUN="True" \ -e AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \ -e AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \ -e AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" \ stream-model-duration:v1 ``` Alternatively, you can mount the `.aws` folder with your credentials to the `.aws` folder in the container: ```bash docker run -it --rm \ -p 8080:8080 \ -e PREDICTIONS_STREAM_NAME="ride_predictions" \ -e RUN_ID="e1efc53e9bd149078b0c12aeaa6365df" \ -e TEST_RUN="True" \ -v c:/Users/alexe/.aws:/root/.aws \ stream-model-duration:v1 ``` ### Publishing Docker images Creating an ECR repo ```bash aws ecr create-repository --repository-name duration-model ``` Logging in ```bash $(aws ecr get-login --no-include-email) ``` Pushing ```bash REMOTE_URI="387546586013.dkr.ecr.eu-west-1.amazonaws.com/duration-model" REMOTE_TAG="v1" REMOTE_IMAGE=${REMOTE_URI}:${REMOTE_TAG} LOCAL_IMAGE="stream-model-duration:v1" docker tag ${LOCAL_IMAGE} ${REMOTE_IMAGE} docker push ${REMOTE_IMAGE} ``` ================================================ FILE: 04-deployment/streaming/lambda_function.py ================================================ import os import json import boto3 import base64 import mlflow kinesis_client = boto3.client('kinesis') PREDICTIONS_STREAM_NAME = os.getenv('PREDICTIONS_STREAM_NAME', 'ride_predictions') RUN_ID = os.getenv('RUN_ID') logged_model = f's3://mlflow-models-alexey/1/{RUN_ID}/artifacts/model' # logged_model = f'runs:/{RUN_ID}/model' model = mlflow.pyfunc.load_model(logged_model) TEST_RUN = os.getenv('TEST_RUN', 'False') == 'True' def prepare_features(ride): features = {} features['PU_DO'] = '%s_%s' % (ride['PULocationID'], ride['DOLocationID']) features['trip_distance'] = ride['trip_distance'] return features def predict(features): pred = model.predict(features) return float(pred[0]) def lambda_handler(event, context): # print(json.dumps(event)) predictions_events = [] for record in event['Records']: encoded_data = record['kinesis']['data'] decoded_data = base64.b64decode(encoded_data).decode('utf-8') ride_event = json.loads(decoded_data) # print(ride_event) ride = ride_event['ride'] ride_id = ride_event['ride_id'] features = prepare_features(ride) prediction = predict(features) prediction_event = { 'model': 'ride_duration_prediction_model', 'version': '123', 'prediction': { 'ride_duration': prediction, 'ride_id': ride_id } } if not TEST_RUN: kinesis_client.put_record( StreamName=PREDICTIONS_STREAM_NAME, Data=json.dumps(prediction_event), PartitionKey=str(ride_id) ) predictions_events.append(prediction_event) return { 'predictions': predictions_events } ================================================ FILE: 04-deployment/streaming/test.py ================================================ import lambda_function event = { "Records": [ { "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49630081666084879290581185630324770398608704880802529282", "data": "ewogICAgICAgICJyaWRlIjogewogICAgICAgICAgICAiUFVMb2NhdGlvbklEIjogMTMwLAogICAgICAgICAgICAiRE9Mb2NhdGlvbklEIjogMjA1LAogICAgICAgICAgICAidHJpcF9kaXN0YW5jZSI6IDMuNjYKICAgICAgICB9LCAKICAgICAgICAicmlkZV9pZCI6IDI1NgogICAgfQ==", "approximateArrivalTimestamp": 1654161514.132 }, "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000000:49630081666084879290581185630324770398608704880802529282", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::387546586013:role/lambda-kinesis-role", "awsRegion": "eu-west-1", "eventSourceARN": "arn:aws:kinesis:eu-west-1:387546586013:stream/ride_events" } ] } result = lambda_function.lambda_handler(event, None) print(result) ================================================ FILE: 04-deployment/streaming/test_docker.py ================================================ import requests event = { "Records": [ { "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49630081666084879290581185630324770398608704880802529282", "data": "ewogICAgICAgICJyaWRlIjogewogICAgICAgICAgICAiUFVMb2NhdGlvbklEIjogMTMwLAogICAgICAgICAgICAiRE9Mb2NhdGlvbklEIjogMjA1LAogICAgICAgICAgICAidHJpcF9kaXN0YW5jZSI6IDMuNjYKICAgICAgICB9LCAKICAgICAgICAicmlkZV9pZCI6IDI1NgogICAgfQ==", "approximateArrivalTimestamp": 1654161514.132 }, "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000000:49630081666084879290581185630324770398608704880802529282", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::387546586013:role/lambda-kinesis-role", "awsRegion": "eu-west-1", "eventSourceARN": "arn:aws:kinesis:eu-west-1:387546586013:stream/ride_events" } ] } url = 'http://localhost:8080/2015-03-31/functions/function/invocations' response = requests.post(url, json=event) print(response.json()) ================================================ FILE: 04-deployment/web-service/Dockerfile ================================================ FROM python:3.9.7-slim RUN pip install -U pip RUN pip install pipenv WORKDIR /app COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "predict.py", "lin_reg.bin", "./" ] EXPOSE 9696 ENTRYPOINT [ "gunicorn", "--bind=0.0.0.0:9696", "predict:app" ] ================================================ FILE: 04-deployment/web-service/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" flask = "*" gunicorn = "*" [dev-packages] requests = "*" [requires] python_version = "3.9" ================================================ FILE: 04-deployment/web-service/README.md ================================================ ## Deploying a model as a web-service * Creating a virtual environment with Pipenv * Creating a script for predictiong * Putting the script into a Flask app * Packaging the app to Docker ```bash docker build -t ride-duration-prediction-service:v1 . ``` ```bash docker run -it --rm -p 9696:9696 ride-duration-prediction-service:v1 ``` ================================================ FILE: 04-deployment/web-service/predict.py ================================================ import pickle from flask import Flask, request, jsonify with open('lin_reg.bin', 'rb') as f_in: (dv, model) = pickle.load(f_in) def prepare_features(ride): features = {} features['PU_DO'] = '%s_%s' % (ride['PULocationID'], ride['DOLocationID']) features['trip_distance'] = ride['trip_distance'] return features def predict(features): X = dv.transform(features) preds = model.predict(X) return float(preds[0]) app = Flask('duration-prediction') @app.route('/predict', methods=['POST']) def predict_endpoint(): ride = request.get_json() features = prepare_features(ride) pred = predict(features) result = { 'duration': pred } return jsonify(result) if __name__ == "__main__": app.run(debug=True, host='0.0.0.0', port=9696) ================================================ FILE: 04-deployment/web-service/test.py ================================================ import requests ride = { "PULocationID": 10, "DOLocationID": 50, "trip_distance": 40 } url = 'http://localhost:9696/predict' response = requests.post(url, json=ride) print(response.json()) ================================================ FILE: 04-deployment/web-service-mlflow/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" flask = "*" gunicorn = "*" mlflow = "*" boto3 = "*" [dev-packages] requests = "*" [requires] python_version = "3.9" ================================================ FILE: 04-deployment/web-service-mlflow/README.md ================================================ ## Getting the model for deployment from MLflow * Take the code from the previous video * Train another model, register with MLflow * Put the model into a scikit-learn pipeline * Model deployment with tracking server * Model deployment without the tracking server Starting the MLflow server with S3: ```bash mlflow server \ --backend-store-uri=sqlite:///mlflow.db \ --default-artifact-root=s3://mlflow-models-alexey/ ``` Downloading the artifact ```bash export MLFLOW_TRACKING_URI="http://127.0.0.1:5000" export MODEL_RUN_ID="6dd459b11b4e48dc862f4e1019d166f6" mlflow artifacts download \ --run-id ${MODEL_RUN_ID} \ --artifact-path model \ --dst-path . ``` ================================================ FILE: 04-deployment/web-service-mlflow/predict.py ================================================ import os import pickle import mlflow from flask import Flask, request, jsonify RUN_ID = os.getenv('RUN_ID') logged_model = f's3://mlflow-models-alexey/1/{RUN_ID}/artifacts/model' # logged_model = f'runs:/{RUN_ID}/model' model = mlflow.pyfunc.load_model(logged_model) def prepare_features(ride): features = {} features['PU_DO'] = '%s_%s' % (ride['PULocationID'], ride['DOLocationID']) features['trip_distance'] = ride['trip_distance'] return features def predict(features): preds = model.predict(features) return float(preds[0]) app = Flask('duration-prediction') @app.route('/predict', methods=['POST']) def predict_endpoint(): ride = request.get_json() features = prepare_features(ride) pred = predict(features) result = { 'duration': pred, 'model_version': RUN_ID } return jsonify(result) if __name__ == "__main__": app.run(debug=True, host='0.0.0.0', port=9696) ================================================ FILE: 04-deployment/web-service-mlflow/random-forest.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2e25cf66", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "\n", "import pandas as pd\n", "\n", "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 24, "id": "041e9423", "metadata": {}, "outputs": [], "source": [ "from sklearn.pipeline import make_pipeline" ] }, { "cell_type": "code", "execution_count": 2, "id": "506bec39", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022/06/01 12:27:06 INFO mlflow.tracking.fluent: Experiment with name 'green-taxi-duration' does not exist. Creating a new experiment.\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import mlflow\n", "\n", "mlflow.set_tracking_uri(\"http://127.0.0.1:5000\")\n", "mlflow.set_experiment(\"green-taxi-duration\")" ] }, { "cell_type": "code", "execution_count": 3, "id": "b9666e19", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename: str):\n", " df = pd.read_parquet(filename)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.dt.total_seconds() / 60\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " return df\n", "\n", "\n", "def prepare_dictionaries(df: pd.DataFrame):\n", " df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID']\n", " categorical = ['PU_DO']\n", " numerical = ['trip_distance']\n", " dicts = df[categorical + numerical].to_dict(orient='records')\n", " return dicts" ] }, { "cell_type": "code", "execution_count": 5, "id": "6b5f0d80", "metadata": {}, "outputs": [], "source": [ "df_train = read_dataframe('data/green_tripdata_2021-01.parquet')\n", "df_val = read_dataframe('data/green_tripdata_2021-02.parquet')\n", "\n", "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values\n", "\n", "dict_train = prepare_dictionaries(df_train)\n", "dict_val = prepare_dictionaries(df_val)" ] }, { "cell_type": "code", "execution_count": 26, "id": "c73081e1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'max_depth': 20, 'n_estimators': 100, 'min_samples_leaf': 10, 'random_state': 0} 15.136777093556063\n" ] } ], "source": [ "with mlflow.start_run():\n", " params = dict(max_depth=20, n_estimators=100, min_samples_leaf=10, random_state=0)\n", " mlflow.log_params(params)\n", "\n", " pipeline = make_pipeline(\n", " DictVectorizer(),\n", " RandomForestRegressor(**params, n_jobs=-1)\n", " )\n", "\n", " pipeline.fit(dict_train, y_train)\n", " y_pred = pipeline.predict(dict_val)\n", "\n", " rmse = mean_squared_error(y_pred, y_val, squared=False)\n", " print(params, rmse)\n", " mlflow.log_metric('rmse', rmse)\n", "\n", " mlflow.sklearn.log_model(pipeline, artifact_path=\"model\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "c22bbccb", "metadata": {}, "outputs": [], "source": [ "from mlflow.tracking import MlflowClient\n" ] }, { "cell_type": "code", "execution_count": 20, "id": "8ff6b57e", "metadata": {}, "outputs": [], "source": [ "MLFLOW_TRACKING_URI = 'http://127.0.0.1:5000'\n", "RUN_ID = 'b4d3bca8aa8e46a6b8257fe4541b1136'\n", "\n", "client = MlflowClient(tracking_uri=MLFLOW_TRACKING_URI)" ] }, { "cell_type": "code", "execution_count": 21, "id": "524f7008", "metadata": {}, "outputs": [], "source": [ "path = client.download_artifacts(run_id=RUN_ID, path='dict_vectorizer.bin')" ] }, { "cell_type": "code", "execution_count": 22, "id": "d760f7ed", "metadata": {}, "outputs": [], "source": [ "with open(path, 'rb') as f_out:\n", " dv = pickle.load(f_out)" ] }, { "cell_type": "code", "execution_count": 23, "id": "c35deb48", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DictVectorizer()" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dv" ] }, { "cell_type": "code", "execution_count": null, "id": "529caf33", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 04-deployment/web-service-mlflow/test.py ================================================ import requests ride = { "PULocationID": 10, "DOLocationID": 50, "trip_distance": 40 } url = 'http://localhost:9696/predict' response = requests.post(url, json=ride) print(response.json()) ================================================ FILE: 05-monitoring/README.md ================================================ # 5. Model Monitoring ## 5.1 Intro to ML monitoring ## 5.2 Environment setup ## 5.3 Prepare reference and model ## 5.4 Evidently metrics calculation ## 5.5 Evidently Monitoring Dashboard ## 5.6 Dummy monitoring ## 5.7 Data quality monitoring > Note: in this video we use Prefect (07:33-11:21). Feel free to skip this part. Also note that Prefect is not officially supported in the 2024 edition of the course. ## 5.8 Save Grafana Dashboard ## 5.9 Debugging with test suites and reports ## Homework More information [here](../cohorts/2025/05-monitoring/homework.md) ## Notes Did you take notes? Add them here: * [Week 5 notes by M. Ayoub C.](https://gist.github.com/Qfl3x/aa6b1bec35fb645ded0371c46e8aafd1) * [week 5: Monitoring notes Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/monitoring-05.md) * [Week 5: 2023](https://github.com/dimzachar/mlops-zoomcamp/tree/master/notes/Week_5) * [Week5: Why we need to monitor models after deployment? by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/05-monitoring/README.md) * [week-5: Detailed Notes about Monitoring, codes and homework by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/blob/main/05-monitoring/README.md) * Send a PR, add your notes above this line # Monitoring example ## Notes There were a massive update for Evidently since 0.7.0 version. To check working example with Evidently >= 0.7.0 go to `post-evidently-0.7` folder. ## Prerequisites You need following tools installed: - `docker` - `docker-compose` (included to Docker Desktop for Mac and Docker Desktop for Windows ) ## Preparation Note: all actions expected to be executed in repo folder. - Create virtual environment and activate it (eg. `python -m venv venv && source ./venv/bin/activate` or `conda create -n venv python=3.11 && conda activate venv`) - Install required packages `pip install -r requirements.txt` - Run `baseline_model_nyc_taxi_data.ipynb` for downloading datasets, training model and creating reference dataset ## Monitoring Example ### Starting services To start all required services, execute: ```bash docker-compose up ``` It will start following services: - `db` - PostgreSQL, for storing metrics data - `adminer` - database management tool - `grafana` - Visual dashboarding tool ### Sending data To calculate evidently metrics with prefect and send them to database, execute: ```bash python evidently_metrics_calculation.py ``` This script will simulate batch monitoring. Every 10 seconds it will collect data for a daily batch, calculate metrics and insert them into database. This metrics will be available in Grafana in preconfigured dashboard. ### Accsess dashboard - In your browser go to a `localhost:3000` The default username and password are `admin` - Then navigate to `General/Home` menu and click on `Home`. - In the folder `General` you will see `New Dashboard`. Click on it to access preconfigured dashboard. ### Ad-hoc debugging Run `debugging_nyc_taxi_data.ipynb` to see how you can perform a debugging with help of Evidently `TestSuites` and `Reports` ### Stopping services To stop all services, execute: ```bash docker-compose down ``` ================================================ FILE: 05-monitoring/baseline_model_nyc_taxi_data.ipynb ================================================ [File too large to display: 10.3 MB] ================================================ FILE: 05-monitoring/config/grafana_dashboards.yaml ================================================ apiVersion: 1 providers: # an unique provider name. Required - name: 'Evidently Dashboards' # Org id. Default to 1 orgId: 1 # name of the dashboard folder. folder: '' # folder UID. will be automatically generated if not specified folderUid: '' # provider type. Default to 'file' type: file # disable dashboard deletion disableDeletion: false # how often Grafana will scan for changed dashboards updateIntervalSeconds: 10 # allow updating provisioned dashboards from the UI allowUiUpdates: false options: # path to dashboard files on disk. Required when using the 'file' type path: /opt/grafana/dashboards # use folder names from filesystem to create folders in Grafana foldersFromFilesStructure: true ================================================ FILE: 05-monitoring/config/grafana_datasources.yaml ================================================ # config file version apiVersion: 1 # list of datasources to insert/update # available in the database datasources: - name: PostgreSQL type: postgres access: proxy url: db:5432 database: test user: postgres secureJsonData: password: 'example' jsonData: sslmode: 'disable' database: test ================================================ FILE: 05-monitoring/dashboards/data_drift.json ================================================ { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 1, "links": [], "liveNow": false, "panels": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n prediction_drift\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "prediction_drift" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Prediction Drift", "type": "timeseries" }, { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "share_missing_values" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, "id": 6, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n share_missing_values\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "share_missing_values" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Share of missing values", "type": "timeseries" }, { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "num_drifted_columns" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 9 }, "id": 4, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n num_drifted_columns\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "num_drifted_columns" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Number of Drifted Columns", "type": "timeseries" } ], "schemaVersion": 36, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "2022-01-22T05:42:46.872Z", "to": "2022-02-18T03:36:41.895Z" }, "timepicker": {}, "timezone": "", "title": "New dashboard", "uid": "NPXSRpQ4z", "version": 1, "weekStart": "" } ================================================ FILE: 05-monitoring/data/.gitignore ================================================ !.gitignore ================================================ FILE: 05-monitoring/debugging_nyc_taxi_data.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "id": "ef3de2e5", "metadata": {}, "source": [ "# Debugging with Evidently Test Suites and Reports" ] }, { "cell_type": "code", "execution_count": 1, "id": "846c2997", "metadata": {}, "outputs": [], "source": [ "import datetime\n", "import pandas as pd\n", "\n", "from evidently import ColumnMapping\n", "from evidently.report import Report\n", "from evidently.metric_preset import DataDriftPreset\n", "\n", "from evidently.test_suite import TestSuite\n", "from evidently.test_preset import DataDriftTestPreset\n", "\n", "from joblib import dump, load\n", "\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error" ] }, { "cell_type": "markdown", "id": "2c6fb70c", "metadata": {}, "source": [ "## Load data and model" ] }, { "cell_type": "code", "execution_count": 2, "id": "1853033d", "metadata": {}, "outputs": [], "source": [ "ref_data = pd.read_parquet('data/reference.parquet')" ] }, { "cell_type": "code", "execution_count": 3, "id": "56625c2a", "metadata": {}, "outputs": [], "source": [ "current_data = pd.read_parquet('data/green_tripdata_2022-02.parquet')" ] }, { "cell_type": "code", "execution_count": 5, "id": "2c2a3b5f", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'rb') as f_in:\n", " model = load(f_in)" ] }, { "cell_type": "code", "execution_count": 6, "id": "3a43c2fb", "metadata": {}, "outputs": [], "source": [ "# data labeling\n", "target = \"duration_min\"\n", "num_features = [\"passenger_count\", \"trip_distance\", \"fare_amount\", \"total_amount\"]\n", "cat_features = [\"PULocationID\", \"DOLocationID\"]" ] }, { "cell_type": "code", "execution_count": 8, "id": "42784a5d", "metadata": {}, "outputs": [], "source": [ "problematic_data = current_data.loc[(current_data.lpep_pickup_datetime >= datetime.datetime(2022,2,2,0,0)) & \n", " (current_data.lpep_pickup_datetime < datetime.datetime(2022,2,3,0,0))]" ] }, { "cell_type": "markdown", "id": "a1af4d1b", "metadata": {}, "source": [ "## Generate Test Suite and Report" ] }, { "cell_type": "code", "execution_count": 9, "id": "4a033c0b", "metadata": {}, "outputs": [], "source": [ "column_mapping = ColumnMapping(\n", " prediction='prediction',\n", " numerical_features=num_features,\n", " categorical_features=cat_features,\n", " target=None\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "id": "01225608", "metadata": {}, "outputs": [], "source": [ "problematic_data['prediction'] = model.predict(problematic_data[num_features + cat_features].fillna(0))" ] }, { "cell_type": "code", "execution_count": 12, "id": "125b71e2", "metadata": {}, "outputs": [], "source": [ "test_suite = TestSuite(tests = [DataDriftTestPreset()])\n", "test_suite.run(reference_data=ref_data, current_data=problematic_data, column_mapping=column_mapping)" ] }, { "cell_type": "code", "execution_count": 17, "id": "c299926b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Loading...
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_suite.show(mode='inline')" ] }, { "cell_type": "code", "execution_count": 15, "id": "5ba8bbe2", "metadata": {}, "outputs": [], "source": [ "report = Report(metrics = [DataDriftPreset()])\n", "report.run(reference_data=ref_data, current_data=problematic_data, column_mapping=column_mapping)" ] }, { "cell_type": "code", "execution_count": 16, "id": "021a899d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
Loading...
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "report.show(mode='inline')" ] }, { "cell_type": "code", "execution_count": null, "id": "f86f9659", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.3" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 05-monitoring/docker-compose.yml ================================================ version: '3.7' volumes: grafana_data: {} networks: front-tier: back-tier: services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: example ports: - "5432:5432" networks: - back-tier adminer: image: adminer restart: always ports: - "8080:8080" networks: - back-tier - front-tier grafana: image: grafana/grafana-enterprise user: "472" ports: - "3000:3000" volumes: - ./config/grafana_datasources.yaml:/etc/grafana/provisioning/datasources/datasource.yaml:ro - ./config/grafana_dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro - ./dashboards:/opt/grafana/dashboards networks: - back-tier - front-tier restart: always ================================================ FILE: 05-monitoring/dummy_metrics_calculation.py ================================================ import datetime import time import random import logging import uuid import pytz import pandas as pd import io import psycopg logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s]: %(message)s") SEND_TIMEOUT = 10 rand = random.Random() create_table_statement = """ drop table if exists dummy_metrics; create table dummy_metrics( timestamp timestamp, value1 integer, value2 varchar, value3 float ) """ def prep_db(): with psycopg.connect("host=localhost port=5432 user=postgres password=example", autocommit=True) as conn: res = conn.execute("SELECT 1 FROM pg_database WHERE datname='test'") if len(res.fetchall()) == 0: conn.execute("create database test;") with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example") as conn: conn.execute(create_table_statement) def calculate_dummy_metrics_postgresql(curr): value1 = rand.randint(0, 1000) value2 = str(uuid.uuid4()) value3 = rand.random() curr.execute( "insert into dummy_metrics(timestamp, value1, value2, value3) values (%s, %s, %s, %s)", (datetime.datetime.now(pytz.timezone('Europe/London')), value1, value2, value3) ) def main(): prep_db() last_send = datetime.datetime.now() - datetime.timedelta(seconds=10) with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example", autocommit=True) as conn: for i in range(0, 100): with conn.cursor() as curr: calculate_dummy_metrics_postgresql(curr) new_send = datetime.datetime.now() seconds_elapsed = (new_send - last_send).total_seconds() if seconds_elapsed < SEND_TIMEOUT: time.sleep(SEND_TIMEOUT - seconds_elapsed) while last_send < new_send: last_send = last_send + datetime.timedelta(seconds=10) logging.info("data sent") if __name__ == '__main__': main() ================================================ FILE: 05-monitoring/evidently_metrics_calculation.py ================================================ import datetime import time import random import logging import uuid import pytz import pandas as pd import io import psycopg import joblib from prefect import task, flow from evidently.report import Report from evidently import ColumnMapping from evidently.metrics import ColumnDriftMetric, DatasetDriftMetric, DatasetMissingValuesMetric logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s]: %(message)s") SEND_TIMEOUT = 10 rand = random.Random() create_table_statement = """ drop table if exists dummy_metrics; create table dummy_metrics( timestamp timestamp, prediction_drift float, num_drifted_columns integer, share_missing_values float ) """ reference_data = pd.read_parquet('data/reference.parquet') with open('models/lin_reg.bin', 'rb') as f_in: model = joblib.load(f_in) raw_data = pd.read_parquet('data/green_tripdata_2022-02.parquet') begin = datetime.datetime(2022, 2, 1, 0, 0) num_features = ['passenger_count', 'trip_distance', 'fare_amount', 'total_amount'] cat_features = ['PULocationID', 'DOLocationID'] column_mapping = ColumnMapping( prediction='prediction', numerical_features=num_features, categorical_features=cat_features, target=None ) report = Report(metrics = [ ColumnDriftMetric(column_name='prediction'), DatasetDriftMetric(), DatasetMissingValuesMetric() ]) @task def prep_db(): with psycopg.connect("host=localhost port=5432 user=postgres password=example", autocommit=True) as conn: res = conn.execute("SELECT 1 FROM pg_database WHERE datname='test'") if len(res.fetchall()) == 0: conn.execute("create database test;") with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example") as conn: conn.execute(create_table_statement) @task def calculate_metrics_postgresql(curr, i): current_data = raw_data[(raw_data.lpep_pickup_datetime >= (begin + datetime.timedelta(i))) & (raw_data.lpep_pickup_datetime < (begin + datetime.timedelta(i + 1)))] #current_data.fillna(0, inplace=True) current_data['prediction'] = model.predict(current_data[num_features + cat_features].fillna(0)) report.run(reference_data = reference_data, current_data = current_data, column_mapping=column_mapping) result = report.as_dict() prediction_drift = result['metrics'][0]['result']['drift_score'] num_drifted_columns = result['metrics'][1]['result']['number_of_drifted_columns'] share_missing_values = result['metrics'][2]['result']['current']['share_of_missing_values'] curr.execute( "insert into dummy_metrics(timestamp, prediction_drift, num_drifted_columns, share_missing_values) values (%s, %s, %s, %s)", (begin + datetime.timedelta(i), prediction_drift, num_drifted_columns, share_missing_values) ) @flow def batch_monitoring_backfill(): prep_db() last_send = datetime.datetime.now() - datetime.timedelta(seconds=10) with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example", autocommit=True) as conn: for i in range(0, 27): with conn.cursor() as curr: calculate_metrics_postgresql(curr, i) new_send = datetime.datetime.now() seconds_elapsed = (new_send - last_send).total_seconds() if seconds_elapsed < SEND_TIMEOUT: time.sleep(SEND_TIMEOUT - seconds_elapsed) while last_send < new_send: last_send = last_send + datetime.timedelta(seconds=10) logging.info("data sent") if __name__ == '__main__': batch_monitoring_backfill() ================================================ FILE: 05-monitoring/meta.json ================================================ { "module": { "number": 5, "title": "ML Monitoring" }, "units": [ { "number": 1, "title": "Intro to ML monitoring", "youtube": "https://www.youtube.com/watch?v=SQ0jBwd_3kk" }, { "number": 2, "title": "Environment setup", "youtube": "https://www.youtube.com/watch?v=yixA3C1xSxc" }, { "number": 3, "title": "Prepare reference and model", "youtube": "https://www.youtube.com/watch?v=IjNrkqMYQeQ" }, { "number": 4, "title": "Evidently metrics calculation", "youtube": "https://www.youtube.com/watch?v=kP3lzh_HfWY" }, { "number": 5, "title": "Dummy monitoring", "youtube": "https://www.youtube.com/watch?v=s3G4PMsOMOA" }, { "number": 6, "title": "Data quality monitoring", "youtube": "https://www.youtube.com/watch?v=fytrmPbcLhI" }, { "number": 7, "title": "Save Grafana Dashboard", "youtube": "https://www.youtube.com/watch?v=-c4iumyZMyw" }, { "number": 8, "title": "Debugging with test suites and reports", "youtube": "https://www.youtube.com/watch?v=sNSk3ojISh8" } ] } ================================================ FILE: 05-monitoring/models/.gitignore ================================================ !.gitignore ================================================ FILE: 05-monitoring/post-evidently-0.7/README.md ================================================ # 5. Model Monitoring ## 5.1 Intro to ML monitoring ## 5.2 Environment setup ## 5.3 Prepare reference and model ## 5.4 Evidently metrics calculation ## 5.5 Evidently Monitoring Dashboard ## 5.6 Dummy monitoring ## 5.7 Data quality monitoring > Note: in this video we use Prefect (07:33-11:21). Feel free to skip this part. Also note that Prefect is not officially supported in the 2024 edition of the course. ## 5.8 Save Grafana Dashboard ## 5.9 Debugging with test suites and reports ## Homework More information [here](../cohorts/2024/05-monitoring/homework.md) ## Notes Did you take notes? Add them here: * [Week 5 notes by M. Ayoub C.](https://gist.github.com/Qfl3x/aa6b1bec35fb645ded0371c46e8aafd1) * [week 5: Monitoring notes Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/monitoring-05.md) * [Week 5: 2023](https://github.com/dimzachar/mlops-zoomcamp/tree/master/notes/Week_5) * [Week5: Why we need to monitor models after deployment? by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/05-monitoring/README.md) * Send a PR, add your notes above this line # Monitoring example ## Prerequisites You need following tools installed: - `docker` - `docker-compose` (included to Docker Desktop for Mac and Docker Desktop for Windows ) ## Preparation Note: all actions expected to be executed in repo folder. - Create virtual environment and activate it (eg. `python -m venv venv && source ./venv/bin/activate` or `conda create -n venv python=3.11 && conda activate venv`) - Install required packages `pip install -r requirements.txt` - Run `baseline_model_nyc_taxi_data.ipynb` for downloading datasets, training model and creating reference dataset ## Monitoring Example ### Starting services To start all required services, execute: ```bash docker-compose up ``` It will start following services: - `db` - PostgreSQL, for storing metrics data - `adminer` - database management tool - `grafana` - Visual dashboarding tool ### Sending data To calculate evidently metrics with prefect and send them to database, execute: ```bash python evidently_metrics_calculation.py ``` This script will simulate batch monitoring. Every 10 seconds it will collect data for a daily batch, calculate metrics and insert them into database. This metrics will be available in Grafana in preconfigured dashboard. ### Accsess dashboard - In your browser go to a `localhost:3000` The default username and password are `admin` - Then navigate to `General/Home` menu and click on `Home`. - In the folder `General` you will see `New Dashboard`. Click on it to access preconfigured dashboard. ### Ad-hoc debugging Run `debugging_nyc_taxi_data.ipynb` to see how you can perform a debugging with help of Evidently `TestSuites` and `Reports` ### Stopping services To stop all services, execute: ```bash docker-compose down ``` ================================================ FILE: 05-monitoring/post-evidently-0.7/baseline_model_nyc_taxi_data.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "id": "edab3cd3-e5a8-4b63-8b8d-c9ef758571b8", "metadata": {}, "source": [ "# Baseline model for batch monitoring example" ] }, { "cell_type": "code", "execution_count": null, "id": "b54264e6eb117908", "metadata": {}, "outputs": [], "source": [ "import requests\n", "import datetime\n", "import pandas as pd\n", "\n", "from evidently import DataDefinition\n", "from evidently import Dataset\n", "from evidently import Report\n", "from evidently.metrics import ValueDrift, DriftedColumnsCount, MissingValueCount\n", "\n", "from joblib import load, dump\n", "from tqdm import tqdm\n", "\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error" ] }, { "cell_type": "code", "execution_count": null, "id": "46aeb5ac-bfb7-4fe4-b732-6bf372ba2e95", "metadata": {}, "outputs": [], "source": [ "! mkdir data" ] }, { "cell_type": "code", "execution_count": null, "id": "c935a6bc588248d7", "metadata": {}, "outputs": [], "source": [ "files = [('green_tripdata_2022-02.parquet', './data'), ('green_tripdata_2022-01.parquet', './data')]\n", "\n", "print(\"Download files:\")\n", "for file, path in files:\n", " url=f\"https://d37ci6vzurychx.cloudfront.net/trip-data/{file}\"\n", " resp=requests.get(url, stream=True)\n", " save_path=f\"{path}/{file}\"\n", " with open(save_path, \"wb\") as handle:\n", " for data in tqdm(resp.iter_content(),\n", " desc=f\"{file}\",\n", " postfix=f\"save to {save_path}\",\n", " total=int(resp.headers[\"Content-Length\"])):\n", " handle.write(data)" ] }, { "cell_type": "code", "execution_count": null, "id": "10f4d69997668ea8", "metadata": {}, "outputs": [], "source": [ "jan_data = pd.read_parquet('data/green_tripdata_2022-01.parquet')" ] }, { "cell_type": "code", "execution_count": null, "id": "755c48c29d032e40", "metadata": {}, "outputs": [], "source": [ "jan_data.describe()" ] }, { "cell_type": "code", "execution_count": null, "id": "abc417723077a646", "metadata": {}, "outputs": [], "source": [ "jan_data.shape" ] }, { "cell_type": "code", "execution_count": null, "id": "281a27332b636f09", "metadata": {}, "outputs": [], "source": [ "# create target\n", "jan_data[\"duration_min\"] = jan_data.lpep_dropoff_datetime - jan_data.lpep_pickup_datetime\n", "jan_data.duration_min = jan_data.duration_min.apply(lambda td : float(td.total_seconds())/60)" ] }, { "cell_type": "code", "execution_count": null, "id": "53880bc897446f97", "metadata": {}, "outputs": [], "source": [ "# filter out outliers\n", "jan_data = jan_data[(jan_data.duration_min >= 0) & (jan_data.duration_min <= 60)]\n", "jan_data = jan_data[(jan_data.passenger_count > 0) & (jan_data.passenger_count <= 8)]" ] }, { "cell_type": "code", "execution_count": null, "id": "6081a7e81e9f56f", "metadata": {}, "outputs": [], "source": [ "jan_data.duration_min.hist()" ] }, { "cell_type": "code", "execution_count": null, "id": "1c36e0ebfb0879ec", "metadata": {}, "outputs": [], "source": [ "# data labeling\n", "target = \"duration_min\"\n", "num_features = [\"passenger_count\", \"trip_distance\", \"fare_amount\", \"total_amount\"]\n", "cat_features = [\"PULocationID\", \"DOLocationID\"]" ] }, { "cell_type": "code", "execution_count": null, "id": "553a23ed50b7c326", "metadata": {}, "outputs": [], "source": [ "jan_data.shape" ] }, { "cell_type": "code", "execution_count": null, "id": "4b2d012fb9b1894a", "metadata": {}, "outputs": [], "source": [ "train_data = jan_data[:30000]\n", "val_data = jan_data[30000:]" ] }, { "cell_type": "code", "execution_count": null, "id": "acbd0bcaea363591", "metadata": {}, "outputs": [], "source": [ "model = LinearRegression()" ] }, { "cell_type": "code", "execution_count": null, "id": "2071678344a3f82e", "metadata": {}, "outputs": [], "source": [ "model.fit(train_data[num_features + cat_features], train_data[target])" ] }, { "cell_type": "code", "execution_count": null, "id": "f2b35c8b807bbd0a", "metadata": {}, "outputs": [], "source": [ "train_preds = model.predict(train_data[num_features + cat_features])\n", "train_data['prediction'] = train_preds" ] }, { "cell_type": "code", "execution_count": null, "id": "775faa558e6ed9f5", "metadata": {}, "outputs": [], "source": [ "val_preds = model.predict(val_data[num_features + cat_features])\n", "val_data['prediction'] = val_preds" ] }, { "cell_type": "code", "execution_count": null, "id": "e675db84c123c9db", "metadata": {}, "outputs": [], "source": [ "print(mean_absolute_error(train_data.duration_min, train_data.prediction))\n", "print(mean_absolute_error(val_data.duration_min, val_data.prediction))" ] }, { "cell_type": "markdown", "id": "594f99e8-3667-4108-adf3-d9509150924d", "metadata": {}, "source": [ "# Dump model and reference data" ] }, { "cell_type": "code", "execution_count": null, "id": "b323d6bb-7cbc-4b0b-893c-88f9f1b54a31", "metadata": {}, "outputs": [], "source": [ "! mkdir models" ] }, { "cell_type": "code", "execution_count": null, "id": "a41101a02592a969", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'wb') as f_out:\n", " dump(model, f_out)" ] }, { "cell_type": "code", "execution_count": null, "id": "6ba1f803d2d9ddf7", "metadata": {}, "outputs": [], "source": [ "val_data.to_parquet('data/reference.parquet')" ] }, { "cell_type": "markdown", "id": "c857c5683c59b65", "metadata": {}, "source": [ "# Evidently Report" ] }, { "cell_type": "code", "execution_count": null, "id": "1e10db1a0250c1ab", "metadata": {}, "outputs": [], "source": [ "data_definition = DataDefinition(numerical_columns=num_features + ['prediction'], categorical_columns=cat_features)\n", "train_dataset = Dataset.from_pandas(\n", " train_data,\n", " data_definition\n", ")\n", "\n", "val_dataset = Dataset.from_pandas(\n", " val_data,\n", " data_definition\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "543ca2a7e4f00a45", "metadata": {}, "outputs": [], "source": [ "report = Report(metrics=[\n", " ValueDrift(column='prediction'),\n", " DriftedColumnsCount(),\n", " MissingValueCount(column='prediction'),\n", "]\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "676afb69b6172332", "metadata": {}, "outputs": [], "source": [ "snapshot = report.run(reference_data=train_dataset, current_data=val_dataset)" ] }, { "cell_type": "code", "execution_count": null, "id": "69ad038a3a95098a", "metadata": {}, "outputs": [], "source": [ "snapshot" ] }, { "cell_type": "code", "execution_count": null, "id": "a9e2aa5ca9b496d4", "metadata": {}, "outputs": [], "source": [ "result = snapshot.dict()" ] }, { "cell_type": "code", "execution_count": null, "id": "6e5035dd2c278a9a", "metadata": {}, "outputs": [], "source": [ "result" ] }, { "cell_type": "code", "execution_count": null, "id": "e899f3602bfff467", "metadata": {}, "outputs": [], "source": [ "#prediction drift\n", "result['metrics'][0]['value']" ] }, { "cell_type": "code", "execution_count": null, "id": "1259822acaefed1e", "metadata": {}, "outputs": [], "source": [ "#number of drifted columns\n", "result['metrics'][1]['value']['count']" ] }, { "cell_type": "code", "execution_count": null, "id": "a3addf64d2dc04ae", "metadata": {}, "outputs": [], "source": [ "#share of missing values\n", "result['metrics'][2]['value']['count']" ] }, { "cell_type": "markdown", "id": "b2f9038a218615f1", "metadata": {}, "source": [ "# Evidently Dashboard" ] }, { "cell_type": "code", "execution_count": null, "id": "fb2023542b25fd91", "metadata": {}, "outputs": [], "source": [ "from evidently.presets import DataDriftPreset, DataSummaryPreset\n", "\n", "from evidently.ui.workspace import Workspace\n", "from evidently.sdk.panels import *\n", "from evidently.legacy.renderers.html_widgets import WidgetSize" ] }, { "cell_type": "code", "execution_count": null, "id": "ad1e20608545b2ec", "metadata": {}, "outputs": [], "source": [ "ws = Workspace(\"workspace\")" ] }, { "cell_type": "code", "execution_count": null, "id": "e953dfbe75da3c06", "metadata": {}, "outputs": [], "source": [ "project = ws.create_project(\"NYC Taxi Data Quality Project\")\n", "project.description = \"My project description\"\n", "project.save()" ] }, { "cell_type": "code", "execution_count": null, "id": "b50a04f69b18b46e", "metadata": {}, "outputs": [], "source": [ "regular_report = Report(\n", " metrics=[\n", " DataSummaryPreset()\n", " ],\n", ")\n", "\n", "data = Dataset.from_pandas(\n", " val_data.loc[val_data.lpep_pickup_datetime.between('2022-01-28', '2022-01-29', inclusive=\"left\")],\n", " data_definition=data_definition,\n", ")\n", "\n", "regular_snapshot = regular_report.run(current_data=data, timestamp=datetime.datetime(2022,1,28))\n", "\n", "regular_snapshot" ] }, { "cell_type": "code", "execution_count": null, "id": "11d1f0f5a3a478a1", "metadata": {}, "outputs": [], "source": [ "ws.add_run(project.id, regular_snapshot)" ] }, { "cell_type": "markdown", "id": "15c502ed-a2d6-4de9-866a-5eca46c354ce", "metadata": {}, "source": [ "note: To view a report please run \"evidently ui\" command in a separate tab in your terminal." ] }, { "cell_type": "code", "execution_count": null, "id": "c9ffc785f07a3b43", "metadata": {}, "outputs": [], "source": [ "#configure the dashboard\n", "project.dashboard.add_panel(\n", " text_panel(title=\"NYC taxi data dashboard\")\n", ")\n", "\n", "project.dashboard.add_panel(\n", " bar_plot_panel(\n", " title=\"Inference Count\",\n", " values=[\n", " PanelMetric(\n", " metric=\"RowCount\",\n", " legend=\"count\",\n", " ),\n", " ],\n", " size=\"half\",\n", " ),\n", ")\n", "\n", "project.dashboard.add_panel(\n", " line_plot_panel(\n", " title=\"Number of Missing Values\",\n", " values=[\n", " PanelMetric(\n", " metric=\"DatasetMissingValueCount\",\n", " legend=\"count\"\n", " ),\n", " ],\n", " size=\"half\",\n", " ),\n", ")\n", "\n", "project.save()" ] }, { "cell_type": "markdown", "id": "e57e1bcc-4561-4e23-829b-3a635c989b2b", "metadata": {}, "source": [ "To view a dashboard please run \"evidently ui\" command in a separate tab in your terminal." ] }, { "cell_type": "code", "execution_count": null, "id": "ef86fd9791faf042", "metadata": {}, "outputs": [], "source": [ "regular_report = Report(\n", " metrics=[\n", " DataSummaryPreset()\n", " ],\n", ")\n", "\n", "data = Dataset.from_pandas(\n", " val_data.loc[val_data.lpep_pickup_datetime.between('2022-01-29', '2022-01-30', inclusive=\"left\")],\n", " data_definition=data_definition,\n", ")\n", "\n", "regular_run = regular_report.run(current_data=data, timestamp=datetime.datetime(2022,1,29))\n", "\n", "regular_run" ] }, { "cell_type": "code", "execution_count": null, "id": "42a513dc53964471", "metadata": {}, "outputs": [], "source": [ "ws.add_run(project.id, regular_run)" ] }, { "cell_type": "code", "execution_count": null, "id": "7da8c7d2911c5f1e", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 05-monitoring/post-evidently-0.7/config/grafana_dashboards.yaml ================================================ apiVersion: 1 providers: # an unique provider name. Required - name: 'Evidently Dashboards' # Org id. Default to 1 orgId: 1 # name of the dashboard folder. folder: '' # folder UID. will be automatically generated if not specified folderUid: '' # provider type. Default to 'file' type: file # disable dashboard deletion disableDeletion: false # how often Grafana will scan for changed dashboards updateIntervalSeconds: 10 # allow updating provisioned dashboards from the UI allowUiUpdates: false options: # path to dashboard files on disk. Required when using the 'file' type path: /opt/grafana/dashboards # use folder names from filesystem to create folders in Grafana foldersFromFilesStructure: true ================================================ FILE: 05-monitoring/post-evidently-0.7/config/grafana_datasources.yaml ================================================ # config file version apiVersion: 1 # list of datasources to insert/update # available in the database datasources: - name: PostgreSQL type: postgres access: proxy url: db:5432 database: test user: postgres secureJsonData: password: 'example' jsonData: sslmode: 'disable' database: test ================================================ FILE: 05-monitoring/post-evidently-0.7/dashboards/data_drift.json ================================================ { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 1, "links": [], "liveNow": false, "panels": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "id": 2, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n prediction_drift\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "prediction_drift" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Prediction Drift", "type": "timeseries" }, { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "share_missing_values" }, "properties": [ { "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 0 }, "id": 6, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n share_missing_values\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "share_missing_values" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Share of missing values", "type": "timeseries" }, { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [ { "matcher": { "id": "byName", "options": "num_drifted_columns" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 9 }, "id": 4, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "postgres", "uid": "PCC52D03280B7034C" }, "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": false, "rawSql": "SELECT\n \"timestamp\" AS \"time\",\n num_drifted_columns\nFROM dummy_metrics\nWHERE\n $__timeFilter(\"timestamp\")\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ "num_drifted_columns" ], "type": "column" } ] ], "table": "dummy_metrics", "timeColumn": "\"timestamp\"", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Number of Drifted Columns", "type": "timeseries" } ], "schemaVersion": 36, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "2022-01-22T05:42:46.872Z", "to": "2022-02-18T03:36:41.895Z" }, "timepicker": {}, "timezone": "", "title": "New dashboard", "uid": "NPXSRpQ4z", "version": 1, "weekStart": "" } ================================================ FILE: 05-monitoring/post-evidently-0.7/debugging_nyc_taxi_data.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "id": "09fa0727-544d-42b8-96bc-2e63a55cb530", "metadata": {}, "source": [ "# Debugging with Evidently Test Suites and Reports" ] }, { "cell_type": "code", "execution_count": null, "id": "23c1c23f31d03fc4", "metadata": {}, "outputs": [], "source": [ "import datetime\n", "import pandas as pd\n", "\n", "from evidently import DataDefinition\n", "from evidently import Dataset\n", "from evidently import Report\n", "from evidently.presets import DataDriftPreset\n", "\n", "from joblib import dump, load\n", "\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error" ] }, { "cell_type": "markdown", "id": "44b49d335185015b", "metadata": {}, "source": [ "## Load data and model" ] }, { "cell_type": "code", "execution_count": null, "id": "d8fe4f358cf24845", "metadata": {}, "outputs": [], "source": [ "ref_data = pd.read_parquet('data/reference.parquet')" ] }, { "cell_type": "code", "execution_count": null, "id": "f81b3ba799db6c09", "metadata": {}, "outputs": [], "source": [ "current_data = pd.read_parquet('data/green_tripdata_2022-02.parquet')" ] }, { "cell_type": "code", "execution_count": null, "id": "797e28e0f316de1c", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'rb') as f_in:\n", " model = load(f_in)" ] }, { "cell_type": "code", "execution_count": null, "id": "e3f9f40226f5412d", "metadata": {}, "outputs": [], "source": [ "# data labeling\n", "target = \"duration_min\"\n", "num_features = [\"passenger_count\", \"trip_distance\", \"fare_amount\", \"total_amount\"]\n", "cat_features = [\"PULocationID\", \"DOLocationID\"]" ] }, { "cell_type": "code", "execution_count": null, "id": "771ff16eee8d4e40", "metadata": {}, "outputs": [], "source": [ "problematic_data = current_data.loc[(current_data.lpep_pickup_datetime >= datetime.datetime(2022,2,2,0,0)) & \n", " (current_data.lpep_pickup_datetime < datetime.datetime(2022,2,3,0,0))]" ] }, { "cell_type": "markdown", "id": "5bcdf6367f12095a", "metadata": {}, "source": [ "## Generate Report with Tests (ex Test Suite)\n", "\n", "### Note\n", "\n", "Since Evidently 0.7.0 release, Test Suite is integrated into reports.\n", "\n", "To include tests into report, you just past tests to metric or provide `include_tests=True` to include default tests (if provided).\n" ] }, { "cell_type": "code", "execution_count": null, "id": "c69323606ad94423", "metadata": {}, "outputs": [], "source": [ "data_definition = DataDefinition(\n", " numerical_columns=num_features + ['prediction'],\n", " categorical_columns=cat_features,\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "eba31f2094f3501d", "metadata": {}, "outputs": [], "source": [ "problematic_data['prediction'] = model.predict(problematic_data[num_features + cat_features].fillna(0))" ] }, { "cell_type": "code", "execution_count": null, "id": "ccfe2916aa1df406", "metadata": {}, "outputs": [], "source": [ "report = Report([DataDriftPreset()], include_tests=True)\n", "\n", "ref_dataset = Dataset.from_pandas(ref_data, data_definition=data_definition)\n", "problematic_dataset = Dataset.from_pandas(ref_data, data_definition=data_definition)\n", "\n", "\n", "run = report.run(reference_data=ref_dataset, current_data=problematic_dataset)" ] }, { "cell_type": "code", "execution_count": null, "id": "65ef103f31a14e47", "metadata": {}, "outputs": [], "source": [ "run" ] }, { "cell_type": "code", "execution_count": null, "id": "1899d6782d6fc0be", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: 05-monitoring/post-evidently-0.7/docker-compose.yml ================================================ version: '3.7' volumes: grafana_data: {} networks: front-tier: back-tier: services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: example ports: - "5432:5432" networks: - back-tier adminer: image: adminer restart: always ports: - "8080:8080" networks: - back-tier - front-tier grafana: image: grafana/grafana-enterprise user: "472" ports: - "3000:3000" volumes: - ./config/grafana_datasources.yaml:/etc/grafana/provisioning/datasources/datasource.yaml:ro - ./config/grafana_dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml:ro - ./dashboards:/opt/grafana/dashboards networks: - back-tier - front-tier restart: always ================================================ FILE: 05-monitoring/post-evidently-0.7/dummy_metrics_calculation.py ================================================ import datetime import time import random import logging import uuid import pytz import pandas as pd import io import psycopg logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s]: %(message)s") SEND_TIMEOUT = 10 rand = random.Random() create_table_statement = """ drop table if exists dummy_metrics; create table dummy_metrics( timestamp timestamp, value1 integer, value2 varchar, value3 float ) """ def prep_db(): with psycopg.connect("host=localhost port=5432 user=postgres password=example", autocommit=True) as conn: res = conn.execute("SELECT 1 FROM pg_database WHERE datname='test'") if len(res.fetchall()) == 0: conn.execute("create database test;") with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example") as conn: conn.execute(create_table_statement) def calculate_dummy_metrics_postgresql(curr): value1 = rand.randint(0, 1000) value2 = str(uuid.uuid4()) value3 = rand.random() curr.execute( "insert into dummy_metrics(timestamp, value1, value2, value3) values (%s, %s, %s, %s)", (datetime.datetime.now(pytz.timezone('Europe/London')), value1, value2, value3) ) def main(): prep_db() last_send = datetime.datetime.now() - datetime.timedelta(seconds=10) with psycopg.connect("host=localhost port=5432 dbname=test user=postgres password=example", autocommit=True) as conn: for i in range(0, 100): with conn.cursor() as curr: calculate_dummy_metrics_postgresql(curr) new_send = datetime.datetime.now() seconds_elapsed = (new_send - last_send).total_seconds() if seconds_elapsed < SEND_TIMEOUT: time.sleep(SEND_TIMEOUT - seconds_elapsed) while last_send < new_send: last_send = last_send + datetime.timedelta(seconds=10) logging.info("data sent") if __name__ == '__main__': main() ================================================ FILE: 05-monitoring/post-evidently-0.7/evidently_metrics_calculation.py ================================================ import datetime import time import random import logging import uuid import pytz import pandas as pd import io import psycopg import joblib from prefect import task, flow from evidently import Report from evidently import DataDefinition from evidently import Dataset from evidently.metrics import ValueDrift, DriftedColumnsCount, MissingValueCount logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s]: %(message)s") SEND_TIMEOUT = 10 rand = random.Random() create_table_statement = """ drop table if exists dummy_metrics; create table dummy_metrics( timestamp timestamp, prediction_drift float, num_drifted_columns integer, share_missing_values float ) """ reference_data = pd.read_parquet('data/reference.parquet') with open('models/lin_reg.bin', 'rb') as f_in: model = joblib.load(f_in) raw_data = pd.read_parquet('data/green_tripdata_2022-02.parquet') begin = datetime.datetime(2022, 2, 1, 0, 0) num_features = ['passenger_count', 'trip_distance', 'fare_amount', 'total_amount'] cat_features = ['PULocationID', 'DOLocationID'] data_definition = DataDefinition( numerical_columns=num_features + ['prediction'], categorical_columns=cat_features, ) report = Report(metrics = [ ValueDrift(column='prediction'), DriftedColumnsCount(), MissingValueCount(column='prediction'), ]) CONNECTION_STRING = "host=localhost port=5432 user=postgres password=example" CONNECTION_STRING_DB = CONNECTION_STRING + " dbname=test" @task def prep_db(): with psycopg.connect(CONNECTION_STRING, autocommit=True) as conn: res = conn.execute("SELECT 1 FROM pg_database WHERE datname='test'") if len(res.fetchall()) == 0: conn.execute("create database test;") with psycopg.connect(CONNECTION_STRING_DB) as conn: conn.execute(create_table_statement) @task def calculate_metrics_postgresql(i): current_data = raw_data[(raw_data.lpep_pickup_datetime >= (begin + datetime.timedelta(i))) & (raw_data.lpep_pickup_datetime < (begin + datetime.timedelta(i + 1)))] #current_data.fillna(0, inplace=True) current_data['prediction'] = model.predict(current_data[num_features + cat_features].fillna(0)) current_dataset = Dataset.from_pandas(current_data, data_definition=data_definition) reference_dataset = Dataset.from_pandas(reference_data, data_definition=data_definition) run = report.run(reference_data=reference_dataset, current_data=current_dataset) result = run.dict() prediction_drift = result['metrics'][0]['value'] num_drifted_columns = result['metrics'][1]['value']['count'] share_missing_values = result['metrics'][2]['value']['share'] with psycopg.connect(CONNECTION_STRING_DB, autocommit=True) as conn: with conn.cursor() as curr: curr.execute( "insert into dummy_metrics(timestamp, prediction_drift, num_drifted_columns, share_missing_values) values (%s, %s, %s, %s)", (begin + datetime.timedelta(i), prediction_drift, num_drifted_columns, share_missing_values) ) @flow def batch_monitoring_backfill(): prep_db() last_send = datetime.datetime.now() - datetime.timedelta(seconds=10) for i in range(0, 27): calculate_metrics_postgresql(i) new_send = datetime.datetime.now() seconds_elapsed = (new_send - last_send).total_seconds() if seconds_elapsed < SEND_TIMEOUT: time.sleep(SEND_TIMEOUT - seconds_elapsed) while last_send < new_send: last_send = last_send + datetime.timedelta(seconds=10) logging.info("data sent") if __name__ == '__main__': batch_monitoring_backfill() ================================================ FILE: 05-monitoring/post-evidently-0.7/meta.json ================================================ { "module": { "number": 5, "title": "ML Monitoring" }, "units": [ { "number": 1, "title": "Intro to ML monitoring", "youtube": "https://www.youtube.com/watch?v=SQ0jBwd_3kk" }, { "number": 2, "title": "Environment setup", "youtube": "https://www.youtube.com/watch?v=yixA3C1xSxc" }, { "number": 3, "title": "Prepare reference and model", "youtube": "https://www.youtube.com/watch?v=IjNrkqMYQeQ" }, { "number": 4, "title": "Evidently metrics calculation", "youtube": "https://www.youtube.com/watch?v=kP3lzh_HfWY" }, { "number": 5, "title": "Dummy monitoring", "youtube": "https://www.youtube.com/watch?v=s3G4PMsOMOA" }, { "number": 6, "title": "Data quality monitoring", "youtube": "https://www.youtube.com/watch?v=fytrmPbcLhI" }, { "number": 7, "title": "Save Grafana Dashboard", "youtube": "https://www.youtube.com/watch?v=-c4iumyZMyw" }, { "number": 8, "title": "Debugging with test suites and reports", "youtube": "https://www.youtube.com/watch?v=sNSk3ojISh8" } ] } ================================================ FILE: 05-monitoring/post-evidently-0.7/requirements.txt ================================================ prefect tqdm requests joblib pyarrow psycopg psycopg_binary evidently pandas numpy scikit-learn jupyter matplotlib ================================================ FILE: 05-monitoring/requirements.txt ================================================ prefect tqdm requests joblib pyarrow psycopg psycopg_binary evidently==0.6.7 pandas numpy scikit-learn jupyter matplotlib ================================================ FILE: 06-best-practices/README.md ================================================ # 6. Best Practices ## Part A (Part B below) ### 6.1 Testing Python code with pytest ### 6.2 Integration tests with docker-compose ### 6.3 Testing cloud services with LocalStack ### 6.4 Code quality: linting and formatting ### 6.5 Git pre-commit hooks ### 6.6 Makefiles and make ### 6.7 Homework More information [here](../cohorts/2025/06-best-practices/homework.md).
## Part B ### Infrastructure-as-Code with Terraform ![image](AWS-stream-pipeline.png) #### Summary * Setting up a stream-based pipeline infrastructure in AWS, using Terraform * Project infrastructure modules (AWS): Kinesis Streams (Producer & Consumer), Lambda (Serving API), S3 Bucket (Model artifacts), ECR (Image Registry) Further info here: * [Concepts of IaC and Terraform](docs.md#concepts-of-iac-and-terraform) * [Setup and Execution](https://github.com/DataTalksClub/mlops-zoomcamp/tree/main/06-best-practices/code#iac) #### 6B.1: Terraform - Introduction https://www.youtube.com/watch?v=zRcLgT7Qnio&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=48 * Introduction * Setup & Pre-Reqs * Concepts of Terraform and IaC (reference material from previous courses) #### 6B.2: Terraform - Modules and Outputs variables https://www.youtube.com/watch?v=-6scXrFcPNk&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=49 * What are they? * Creating a Kinesis module #### 6B.3: Build an e2e workflow for Ride Predictions https://www.youtube.com/watch?v=JVydd1K6R7M&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=50 * TF resources for ECR, Lambda, S3 #### 6B.4: Test the pipeline e2e https://www.youtube.com/watch?v=YWao0rnqVoI&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=51 * Demo: apply TF to our use-case, manually deploy data dependencies & test * Recap: IaC, Terraform, next steps Additional material on understanding Terraform concepts here: [Reference Material](docs.md#concepts-of-iac-and-terraform)
### CI/CD with GitHub Actions ![image](ci_cd_zoomcamp.png) #### Summary * Automate a complete CI/CD pipeline using GitHub Actions to automatically trigger jobs to build, test, and deploy our service to Lambda for every new commit/code change to our repository. * The goal of our CI/CD pipeline is to execute tests, build and push container image to a registry, and update our lambda service for every commit to the GitHub repository. Further info here: [Concepts of CI/CD and GitHub Actions](docs.md#concepts-of-ci-cd-and-github-actions) #### 6B.5: CI/CD - Introduction https://www.youtube.com/watch?v=OMwwZ0Z_cdk&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=52 * Architecture (Ride Predictions) * What are GitHub Workflows? #### 6B.6: Continuous Integration https://www.youtube.com/watch?v=xkTWF9c33mU&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=53 * `ci-tests.yml` * Automate sections from tests: Env setup, Unit test, Integration test, Terraform plan * Create a CI workflow to trigger on `pull-request` to `develop` branch * Execute demo #### 6B.7: Continuous Delivery https://www.youtube.com/watch?v=jCNxqXCKh2s&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=54 * `cd-deploy.yml` * Automate sections from tests: Terraform plan, Terraform apply, Docker build & ECR push, Update Lambda config * Create a CD workflow to trigger on `push` to `develop` branch * Execute demo #### Alternative CICD Solutions * Using args and env variables in docker image, and leveraging makefile commands in cicd * Check the repo [README](https://github.com/Nakulbajaj101/mlops-zoomcamp/blob/main/06-best-practices/code-practice/README.md) * Using the args [Dockerfile](https://github.com/Nakulbajaj101/mlops-zoomcamp/blob/main/06-best-practices/code-practice/Dockerfile) * Using build args [ECR terraform](https://github.com/Nakulbajaj101/mlops-zoomcamp/blob/main/06-best-practices/code-practice/deploy/modules/ecr/main.tf) * Updating lambda env variables [Post deploy](https://github.com/Nakulbajaj101/mlops-zoomcamp/blob/main/06-best-practices/code-practice/deploy/run_apply_local.sh) * Making use of make file commands in CICD [CICD](https://github.com/Nakulbajaj101/mlops-zoomcamp/tree/main/.github/workflows) ### Notes Did you take notes? Add them here: * [Week 6a Notes by M. Ayoub C.](https://gist.github.com/Qfl3x/267d4cff36b58de67b4e33ca3fc9983f) * [Week 6: Unit test/Integration test/Test Automation/Could service test with LocalStack/Code quality/Git pre-commit/Makefile by Hongfan (Amber)](https://github.com/Muhongfan/MLops/blob/main/06-best-practice/README.md) * [Week 6 Best Practices: 2023](https://github.com/dimzachar/mlops-zoomcamp/tree/master/notes/Week_6) * [Cohort 2025| Best Practices notes and FAQ by Nitin Gupta](https://github.com/niting9881/course-mlops-zoomcamp/blob/main/06-best-practices/README.md) * [Week-6: Detailed notes about unit-testing/integration-testing/make/makefile/pre-commit/localstack/terraform/ci/cd, codes/scripts and homwork by Muhammad Shifa](https://github.com/MuhammadShifa/mlops-zoomcamp2025/blob/main/06-best-practices/code/README.md) * Send a PR, add your notes above this line ================================================ FILE: 06-best-practices/code/.gitignore ================================================ __pycache__ ================================================ FILE: 06-best-practices/code/.pre-commit-config.yaml ================================================ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files - repo: https://github.com/pycqa/isort rev: 5.10.1 hooks: - id: isort name: isort (python) - repo: https://github.com/psf/black rev: 22.6.0 hooks: - id: black language_version: python3.9 - repo: local hooks: - id: pylint name: pylint entry: pylint language: system types: [python] args: [ "-rn", # Only display messages "-sn", # Don't display the score "--recursive=y" ] - repo: local hooks: - id: pytest-check name: pytest-check entry: pytest language: system pass_filenames: false always_run: true args: [ "tests/" ] ================================================ FILE: 06-best-practices/code/.vscode/settings.json ================================================ { "python.testing.pytestArgs": [ "tests" ], "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true, "python.linting.pylintEnabled": true, "python.linting.enabled": true } ================================================ FILE: 06-best-practices/code/Dockerfile ================================================ FROM public.ecr.aws/lambda/python:3.9 RUN pip install -U pip RUN pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "lambda_function.py", "model.py", "./" ] CMD [ "lambda_function.lambda_handler" ] ================================================ FILE: 06-best-practices/code/Makefile ================================================ LOCAL_TAG:=$(shell date +"%Y-%m-%d-%H-%M") LOCAL_IMAGE_NAME:=stream-model-duration:${LOCAL_TAG} test: pytest tests/ quality_checks: isort . black . pylint --recursive=y . build: quality_checks test docker build -t ${LOCAL_IMAGE_NAME} . integration_test: build LOCAL_IMAGE_NAME=${LOCAL_IMAGE_NAME} bash integraton-test/run.sh publish: build integration_test LOCAL_IMAGE_NAME=${LOCAL_IMAGE_NAME} bash scripts/publish.sh setup: pipenv install --dev pre-commit install ================================================ FILE: 06-best-practices/code/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] boto3 = "*" mlflow = "*" scikit-learn = "==1.0.2" [dev-packages] pytest = "*" deepdiff = "*" pylint = "==2.14.4" black = "*" isort = "*" pre-commit = "*" [requires] python_version = "3.9" ================================================ FILE: 06-best-practices/code/README.md ================================================ ## Code snippets ### Building and running Docker images ```bash docker build -t stream-model-duration:v2 . ``` ```bash docker run -it --rm \ -p 8080:8080 \ -e PREDICTIONS_STREAM_NAME="ride_predictions" \ -e RUN_ID="e1efc53e9bd149078b0c12aeaa6365df" \ -e TEST_RUN="True" \ -e AWS_DEFAULT_REGION="eu-west-1" \ stream-model-duration:v2 ``` Mounting the model folder: ``` docker run -it --rm \ -p 8080:8080 \ -e PREDICTIONS_STREAM_NAME="ride_predictions" \ -e RUN_ID="Test123" \ -e MODEL_LOCATION="/app/model" \ -e TEST_RUN="True" \ -e AWS_DEFAULT_REGION="eu-west-1" \ -v $(pwd)/model:/app/model \ stream-model-duration:v2 ``` ### Specifying endpoint URL ```bash aws --endpoint-url=http://localhost:4566 \ kinesis list-streams ``` ```bash aws --endpoint-url=http://localhost:4566 \ kinesis create-stream \ --stream-name ride_predictions \ --shard-count 1 ``` ```bash aws --endpoint-url=http://localhost:4566 \ kinesis get-shard-iterator \ --shard-id ${SHARD} \ --shard-iterator-type TRIM_HORIZON \ --stream-name ${PREDICTIONS_STREAM_NAME} \ --query 'ShardIterator' ``` ### Unable to locate credentials If you get `'Unable to locate credentials'` error, add these env variables to the `docker-compose.yaml` file: ```yaml - AWS_ACCESS_KEY_ID=abc - AWS_SECRET_ACCESS_KEY=xyz ``` ### Make Without make: ``` isort . black . pylint --recursive=y . pytest tests/ ``` With make: ``` make quality_checks make test ``` To prepare the project, run ```bash make setup ``` ### IaC w/ Terraform #### Setup **Installation**: * [aws-cli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (both versions are fine) * [terraform client](https://www.terraform.io/downloads) **Configuration**: 1. If you've already created an AWS account, head to the IAM section, generate your secret-key, and download it locally. [Instructions](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-prereqs.html) 2. [Configure]((https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)) `aws-cli` with your downloaded AWS secret keys: ```shell $ aws configure AWS Access Key ID [None]: xxx AWS Secret Access Key [None]: xxx Default region name [None]: eu-west-1 Default output format [None]: ``` 3. Verify aws config: ```shell $ aws sts get-caller-identity ``` 4. (Optional) Configuring with `aws profile`: [here](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html) and [here](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#using-an-external-credentials-process)
#### Execution 1. To create infra (manually, in order to test on staging env) ```shell # Initialize state file (.tfstate) terraform init # Check changes to new infra plan terraform plan -var-file=vars/stg.tfvars ``` ```shell # Create new infra terraform apply -var-file=vars/stg.tfvars ``` 2. To prepare aws env (copy model artifacts, set env-vars for lambda etc.): ``` . ./scripts/deploy_manual.sh ``` 3. To test the pipeline end-to-end with our new cloud infra: ``` . ./scripts/test_cloud_e2e.sh ``` 4. And then check on CloudWatch logs. Or try `get-records` on the `output_kinesis_stream` (refer to `integration_test`) 5. Destroy infra after use: ```shell # Delete infra after your work, to avoid costs on any running services terraform destroy ```
### CI/CD 1. Create a PR (feature branch): `.github/workflows/ci-tests.yml` * Env setup, Unit test, Integration test, Terraform plan 2. Merge PR to `develop`: `.github/workflows/cd-deploy.yml` * Terraform plan, Terraform apply, Docker build & ECR push, Update Lambda config ### Notes * Unfortunately, the `RUN_ID` (if set via the `ENV` or `ARG` in `Dockerfile`), disappears during lambda invocation. We'll set it via `aws lambda update-function-configuration` CLI command (refer to `deploy_manual.sh` or `.github/workflows/cd-deploy.yml`) ================================================ FILE: 06-best-practices/code/infrastructure/main.tf ================================================ # Make sure to create state bucket beforehand terraform { required_version = ">= 1.0" backend "s3" { bucket = "tf-state-mlops-zoomcamp" key = "mlops-zoomcamp-stg.tfstate" region = "eu-west-1" encrypt = true } } provider "aws" { region = var.aws_region } data "aws_caller_identity" "current_identity" {} locals { account_id = data.aws_caller_identity.current_identity.account_id } # ride_events module "source_kinesis_stream" { source = "./modules/kinesis" retention_period = 48 shard_count = 2 stream_name = "${var.source_stream_name}-${var.project_id}" tags = var.project_id } # ride_predictions module "output_kinesis_stream" { source = "./modules/kinesis" retention_period = 48 shard_count = 2 stream_name = "${var.output_stream_name}-${var.project_id}" tags = var.project_id } # model bucket module "s3_bucket" { source = "./modules/s3" bucket_name = "${var.model_bucket}-${var.project_id}" } # image registry module "ecr_image" { source = "./modules/ecr" ecr_repo_name = "${var.ecr_repo_name}_${var.project_id}" account_id = local.account_id lambda_function_local_path = var.lambda_function_local_path docker_image_local_path = var.docker_image_local_path } module "lambda_function" { source = "./modules/lambda" image_uri = module.ecr_image.image_uri lambda_function_name = "${var.lambda_function_name}_${var.project_id}" model_bucket = module.s3_bucket.name output_stream_name = "${var.output_stream_name}-${var.project_id}" output_stream_arn = module.output_kinesis_stream.stream_arn source_stream_name = "${var.source_stream_name}-${var.project_id}" source_stream_arn = module.source_kinesis_stream.stream_arn } # For CI/CD output "lambda_function" { value = "${var.lambda_function_name}_${var.project_id}" } output "model_bucket" { value = module.s3_bucket.name } output "predictions_stream_name" { value = "${var.output_stream_name}-${var.project_id}" } output "ecr_repo" { value = "${var.ecr_repo_name}_${var.project_id}" } ================================================ FILE: 06-best-practices/code/infrastructure/modules/ecr/main.tf ================================================ resource "aws_ecr_repository" "repo" { name = var.ecr_repo_name image_tag_mutability = "MUTABLE" image_scanning_configuration { scan_on_push = false } force_delete = true } # In practice, the Image build-and-push step is handled separately by the CI/CD pipeline and not the IaC script. # But because the lambda config would fail without an existing Image URI in ECR, # we can also upload any base image to bootstrap the lambda config, unrelated to your Inference logic resource null_resource ecr_image { triggers = { python_file = md5(file(var.lambda_function_local_path)) docker_file = md5(file(var.docker_image_local_path)) } provisioner "local-exec" { command = < ### Objective The goal of this project is to apply everything we have learned in this course to build an end-to-end machine learning project. ## Problem statement For the project, we will ask you to build an end-to-end ML project. For that, you will need: * Select a dataset that you're interested in (see [Datasets](#datasets)) * Train a model on that dataset tracking your experiments * Create a model training pipeline * Deploy the model in batch, web service or streaming * Monitor the performance of your model * Follow the best practices ## Technologies You don't have to limit yourself to technologies covered in the course. You can use alternatives as well: * **Cloud**: AWS, GCP, Azure, ... * **Experiment tracking tools**: MLFlow, Weights & Biases, ... * **Workflow orchestration**: Prefect, Airflow, Flyte, Kubeflow, Argo, ... * **Monitoring**: Evidently, WhyLabs/whylogs, ... * **CI/CD**: Github actions, Gitlab CI/CD, ... * **Infrastructure as code (IaC)**: Terraform, Pulumi, Cloud Formation, ... If you use a tool that wasn't covered in the course, be sure to explain what that tool does. If you're not certain about some tools, ask in Slack. ## Peer reviewing > [!IMPORTANT] > To evaluate the projects, we'll use peer reviewing. This is a great opportunity for you to learn from each other. > * To get points for your project, you need to evaluate 3 projects of your peers > * You get 3 extra points for each evaluation ## Evaluation Criteria * Problem description * 0 points: The problem is not described * 1 point: The problem is described but shortly or not clearly * 2 points: The problem is well described and it's clear what the problem the project solves * Cloud * 0 points: Cloud is not used, things run only locally * 2 points: The project is developed on the cloud OR uses localstack (or similar tool) OR the project is deployed to Kubernetes or similar container management platforms * 4 points: The project is developed on the cloud and IaC tools are used for provisioning the infrastructure * Experiment tracking and model registry * 0 points: No experiment tracking or model registry * 2 points: Experiments are tracked or models are registered in the registry * 4 points: Both experiment tracking and model registry are used * Workflow orchestration * 0 points: No workflow orchestration * 2 points: Basic workflow orchestration * 4 points: Fully deployed workflow * Model deployment * 0 points: Model is not deployed * 2 points: Model is deployed but only locally * 4 points: The model deployment code is containerized and could be deployed to cloud or special tools for model deployment are used * Model monitoring * 0 points: No model monitoring * 2 points: Basic model monitoring that calculates and reports metrics * 4 points: Comprehensive model monitoring that sends alerts or runs a conditional workflow (e.g. retraining, generating debugging dashboard, switching to a different model) if the defined metrics threshold is violated * Reproducibility * 0 points: No instructions on how to run the code at all, the data is missing * 2 points: Some instructions are there, but they are not complete OR instructions are clear and complete, the code works, but the data is missing * 4 points: Instructions are clear, it's easy to run the code, and it works. The versions for all the dependencies are specified. * Best practices * [ ] There are unit tests (1 point) * [ ] There is an integration test (1 point) * [ ] Linter and/or code formatter are used (1 point) * [ ] There's a Makefile (1 point) * [ ] There are pre-commit hooks (1 point) * [ ] There's a CI/CD pipeline (2 points) > [!NOTE] > It's highly recommended to create a new repository for your project (not inside an existing repo) with a meaningful title, such as > "Car Price Prediction" or "Music Genre Classification" and include as many details as possible in the README file. ChatGPT can assist you with this. Doing so will not only make it easier to showcase your project for potential job opportunities but also have it featured on the [Projects Gallery App](#projects-gallery). > If you leave the README file empty or with minimal details, there may be point deductions as per the [Evaluation Criteria](#evaluation-criteria). ## Resources ### Datasets Refer to the provided [datasets](https://github.com/DataTalksClub/data-engineering-zoomcamp/blob/main/projects/datasets.md) for possible selection. ### Projects Gallery Explore a collection of projects completed by members of our community. The projects cover a wide range of topics and utilize different tools and techniques. Feel free to delve into any project and see how others have tackled real-world problems with data, structured their code, and presented their findings. It's a great resource to learn and get ideas for your own projects. [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://datatalksclub-projects.streamlit.app/) ### MLOps Zoomcamp 2023 * [2023 Projects](../cohorts/2023/07-project) ### MLOps Zoomcamp 2022 * [2022 Projects](../cohorts/2022/07-project) ================================================ FILE: README.md ================================================

MLOps Zoomcamp

MLOps Zoomcamp: A Free 9-Week Course on Productionizing ML Services

MLOps (machine learning operations) is a must-know skill for many data professionals. Master the fundamentals of MLOps, from training and experimentation to deployment and monitoring.

Join Slack#course-mlops-zoomcamp ChannelTelegram AnnouncementsCourse PlaylistFAQTweet about the Course

## How to Take MLOps Zoomcamp ### 2025 Cohort - **Start Date**: May 5, 2025 - **Register Here**: [Sign up](https://airtable.com/shrCb8y6eTbPKwSTL) - **Stay Updated**: Subscribe to our [Google Calendar](https://calendar.google.com/calendar/?cid=M3Jzbmg0ZDA2aHVsY2M1ZjcyNDJtODNyMTRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ) (Desktop only) ### Self-Paced Learning All course materials are freely available for independent study. Follow these steps: 1. Watch the course videos. 2. Join the [Slack community](https://datatalks.club/slack.html). 3. Refer to the [FAQ document](https://datatalks.club/faq/mlops-zoomcamp.html) for guidance. ## Syllabus The course consists of structured modules, hands-on workshops, and a final project to reinforce your learning. Each module introduces core MLOps concepts and tools. ### Prerequisites To get the most out of this course, you should have prior experience with: - Python - Docker - Command line basics - Machine learning (e.g., through [ML Zoomcamp](https://github.com/alexeygrigorev/mlbookcamp-code/tree/master/course-zoomcamp)) - 1+ year of programming experience ## Modules ### [Module 1: Introduction](01-intro) - What is MLOps? - MLOps maturity model - NY Taxi dataset (our running example) - Why MLOps is essential - Course structure & environment setup - Homework ### [Module 2: Experiment Tracking & Model Management](02-experiment-tracking) - Introduction to experiment tracking - MLflow basics - Model saving and loading - Model registry - Hands-on MLflow exercises - Homework ### [Module 3: Orchestration & ML Pipelines](03-orchestration) - Workflow orchestration - Homework ### [Module 4: Model Deployment](04-deployment) - Deployment strategies: online (web, streaming) vs. offline (batch) - Deploying with Flask (web service) - Streaming deployment with AWS Kinesis & Lambda - Batch scoring for offline processing - Homework ### [Module 5: Model Monitoring](05-monitoring) - Monitoring ML-based services - Web service monitoring with Prometheus, Evidently, and Grafana - Batch job monitoring with Prefect, MongoDB, and Evidently - Homework ### [Module 6: Best Practices](06-best-practices) - Unit and integration testing - Linting, formatting, and pre-commit hooks - CI/CD with GitHub Actions - Infrastructure as Code (Terraform) - Homework ### [Final Project](07-project/) - End-to-end project integrating all course concepts ## Community & Support ### Getting Help on Slack Join the [`#course-mlops-zoomcamp`](https://app.slack.com/client/T01ATQK62F8/C02R98X7DS9) channel on [DataTalks.Club Slack](https://datatalks.club/slack.html) for discussions, troubleshooting, and networking. To keep discussions organized: - Follow [our guidelines](asking-questions.md) when posting questions. - Review the [community guidelines](https://datatalks.club/slack/guidelines.html). ## Instructors - [Cristian Martinez](https://www.linkedin.com/in/cristian-javier-martinez-09bb7031/) - [Alexey Grigorev](https://www.linkedin.com/in/agrigorev/) - [Emeli Dral](https://www.linkedin.com/in/emelidral/) ## Sponsors & Supporters Interested in supporting our community? Reach out to [alexey@datatalks.club](mailto:alexey@datatalks.club). ## About DataTalks.Club

DataTalks.Club

DataTalks.Club is a global online community of data enthusiasts. It's a place to discuss data, learn, share knowledge, ask and answer questions, and support each other.

WebsiteJoin Slack CommunityNewsletterUpcoming EventsGoogle CalendarYouTubeGitHubLinkedInTwitter

All the activity at DataTalks.Club mainly happens on [Slack](https://datatalks.club/slack.html). We post updates there and discuss different aspects of data, career questions, and more. At DataTalksClub, we organize online events, community activities, and free courses. You can learn more about what we do at [DataTalksClub Community Navigation](https://www.notion.so/DataTalksClub-Community-Navigation-bf070ad27ba44bf6bbc9222082f0e5a8?pvs=21). ================================================ FILE: after-sign-up.md ================================================ ## Thank you! Thanks for signining up for the course. The process of adding you to the mailing list is not automated yet, but you will hear from us closer to the course start. To make sure you don't miss any announcements - Register in [DataTalks.Club's Slack](https://datatalks.club/slack.html) and join the [`#course-mlops-zoomcamp`](https://app.slack.com/client/T01ATQK62F8/C02R98X7DS9) channel - Join the [course Telegram channel with announcements](https://t.me/dtc_courses) - [Tweet about the course!](https://ctt.ac/fH67W) - Subscribe to [DataTalks.Club's YouTube channel](https://www.youtube.com/c/DataTalksClub) and check [the course playlist](https://www.youtube.com/playlist?list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK) - Subscribe to our [public Google Calendar](https://calendar.google.com/calendar/?cid=M3Jzbmg0ZDA2aHVsY2M1ZjcyNDJtODNyMTRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ) (it works from Desktop only) - Check our [Technical FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit) if you have questions See you in May! ================================================ FILE: asking-questions.md ================================================ ## Asking questions If you have any questions, ask them in the [`#course-mlops-zoomcamp`](https://app.slack.com/client/T01ATQK62F8/C02R98X7DS9) channel in [DataTalks.Club](https://datatalks.club) slack. To keep our discussion in Slack more organized, we ask you to follow these suggestions: * Before asking a question, check [FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit). * Use threads. When you have a problem, first describe the problem shortly and then put the actual error in the thread - so it doesn't take the entire screen. * Instead of screenshots, it's better to copy-paste the error you're getting in text. Use ` ``` ` for formatting your code. It's very difficult to read text from screenshots. * Please don't take pictures of your code with a phone. It's even harder to read. Follow the previous suggestion, and in rare cases when you need to show what happens on your screen, take a screenshot. * You don't need to tag the instructors when you have a problem. We will see it eventually. * If somebody helped you with your problem and it's not in [FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit), please add it there. It'll help other students. ================================================ FILE: certificate.md ================================================ ## Getting your certificate Congratulations on finishing the course! Here's how you can get your certificate. First, get your certificate id using the `compute_certificate_id` function: ```python from hashlib import sha1 def compute_hash(email): return sha1(email.encode('utf-8')).hexdigest() def compute_certificate_id(email): email_clean = email.lower().strip() return compute_hash(email_clean + '_') ``` Then use this hash to get the URL ```python cohort = 2024 course = 'mlops-zoomcamp' your_id = compute_certificate_id('never.give.up@gmail.com') url = f"https://certificate.datatalks.club/{course}/{cohort}/{your_id}.pdf" print(url) ``` Example: https://certificate.datatalks.club/mlops-zoomcamp/2022/fe629854d45c559e9c10b3b8458ea392fdeb68a9.pdf ## Adding to LinkedIn You can add your certificate to LinkedIn: * Log in to your LinkedIn account, then go to your profile. * On the right, in the "Add profile" section dropdown, choose "Background" and then select the drop-down triangle next to "Licenses & Certifications". * In "Name", enter "MLOps Zoomcamp". * In "Issuing Organization", enter "DataTalksClub". * (Optional) In "Issue Date", enter the time when the certificate was created. * (Optional) Select the checkbox This certification does not expire. * Put your certificate ID. * In "Certification URL", enter the URL for your certificate. [Adapted from here](https://support.edx.org/hc/en-us/articles/206501938-How-can-I-add-my-certificate-to-my-LinkedIn-profile-) ================================================ FILE: cohorts/2022/01-intro/homework.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 42, "id": "7525e867", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "\n", "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 35, "id": "4c1fbc9a", "metadata": {}, "outputs": [], "source": [ "df = pd.read_parquet('./data/fhv_tripdata_2021-01.parquet')" ] }, { "cell_type": "code", "execution_count": 20, "id": "7a70df86", "metadata": {}, "outputs": [], "source": [ "old_len = len(df)" ] }, { "cell_type": "code", "execution_count": 36, "id": "f17cc325", "metadata": {}, "outputs": [], "source": [ "df['duration'] = df.dropOff_datetime - df.pickup_datetime\n", "df['duration'] = df.duration.dt.total_seconds() / 60" ] }, { "cell_type": "code", "execution_count": 16, "id": "1b613836", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "19.1672240937939" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.duration.mean()" ] }, { "cell_type": "code", "execution_count": 37, "id": "3092ae43", "metadata": {}, "outputs": [], "source": [ "df = df[(df.duration >= 1) & (df.duration <= 60)].copy()" ] }, { "cell_type": "code", "execution_count": 38, "id": "2e1aa200", "metadata": {}, "outputs": [], "source": [ "categorical = ['PUlocationID', 'DOlocationID']\n", "\n", "df[categorical] = df[categorical].fillna(-1).astype('int')" ] }, { "cell_type": "code", "execution_count": 52, "id": "22c6495b", "metadata": {}, "outputs": [], "source": [ "df[categorical] = df[categorical].astype('str')" ] }, { "cell_type": "code", "execution_count": 55, "id": "12fcfa04", "metadata": {}, "outputs": [], "source": [ "train_dicts = df[categorical].to_dict(orient='records')" ] }, { "cell_type": "code", "execution_count": 56, "id": "0606301f", "metadata": {}, "outputs": [], "source": [ "dv = DictVectorizer()\n", "X_train = dv.fit_transform(train_dicts) " ] }, { "cell_type": "code", "execution_count": 57, "id": "c81c6737", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1109826, 525)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.shape" ] }, { "cell_type": "code", "execution_count": 60, "id": "aeaf7bad", "metadata": {}, "outputs": [], "source": [ "y_train = df.duration.values" ] }, { "cell_type": "code", "execution_count": 59, "id": "75199886", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "525" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(dv.feature_names_)" ] }, { "cell_type": "code", "execution_count": 61, "id": "4d7f1e4b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LinearRegression()" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 62, "id": "d61318d0", "metadata": {}, "outputs": [], "source": [ "y_pred = lr.predict(X_train)" ] }, { "cell_type": "code", "execution_count": 63, "id": "1aa5f5c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10.528519107212292" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_train, y_pred, squared=False)" ] }, { "cell_type": "code", "execution_count": 64, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PUlocationID', 'DOlocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.dropOff_datetime - df.pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 65, "id": "4854399a", "metadata": {}, "outputs": [], "source": [ "df_val = read_data('./data/fhv_tripdata_2021-02.parquet')" ] }, { "cell_type": "code", "execution_count": 68, "id": "f9eea69f", "metadata": {}, "outputs": [], "source": [ "val_dicts = df_val[categorical].to_dict(orient='records')" ] }, { "cell_type": "code", "execution_count": 69, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "X_val = dv.transform(val_dicts) " ] }, { "cell_type": "code", "execution_count": 70, "id": "7f8f950d", "metadata": {}, "outputs": [], "source": [ "y_pred = lr.predict(X_val)" ] }, { "cell_type": "code", "execution_count": 71, "id": "8f129850", "metadata": {}, "outputs": [], "source": [ "y_val = df_val.duration.values" ] }, { "cell_type": "code", "execution_count": 72, "id": "8a277ab9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11.014283211122269" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_val, y_pred, squared=False)" ] }, { "cell_type": "code", "execution_count": null, "id": "b5108416", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2022/01-intro/homework.md ================================================ ## 1.6 Homework The goal of this homework is to train a simple model for predicting the duration of a ride - similar to what we did in this module. ## Q1. Downloading the data We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), but instead of "Green Taxi Trip Records", we'll use "For-Hire Vehicle Trip Records". Download the data for January and February 2021. Note that you need "For-Hire Vehicle Trip Records", not "High Volume For-Hire Vehicle Trip Records". Read the data for January. How many records are there? * 1054112 * 1154112 * 1254112 * 1354112 ## Q2. Computing duration Now let's compute the `duration` variable. It should contain the duration of a ride in minutes. What's the average trip duration in January? * 15.16 * 19.16 * 24.16 * 29.16 ## Data preparation Check the distribution of the duration variable. There are some outliers. Let's remove them and keep only the records where the duration was between 1 and 60 minutes (inclusive). How many records did you drop? ## Q3. Missing values The features we'll use for our model are the pickup and dropoff location IDs. But they have a lot of missing values there. Let's replace them with "-1". What's the fractions of missing values for the pickup location ID? I.e. fraction of "-1"s after you filled the NAs. * 53% * 63% * 73% * 83% ## Q4. One-hot encoding Let's apply one-hot encoding to the pickup and dropoff location IDs. We'll use only these two features for our model. * Turn the dataframe into a list of dictionaries * Fit a dictionary vectorizer * Get a feature matrix from it What's the dimensionality of this matrix? (The number of columns). * 2 * 152 * 352 * 525 * 725 ## Q5. Training a model Now let's use the feature matrix from the previous step to train a model. * Train a plain linear regression model with default parameters * Calculate the RMSE of the model on the training data What's the RMSE on train? * 5.52 * 10.52 * 15.52 * 20.52 ## Q6. Evaluating the model Now let's apply this model to the validation dataset (Feb 2021). What's the RMSE on validation? * 6.01 * 11.01 * 16.01 * 21.01 ## Submit the results Submit your results here: https://forms.gle/V8q5rv7QRoZ13Sft6 It's possible that your answers won't match exactly. If it's the case, select the closest one. ## Deadline The deadline for submitting is 24 May 2022 (Tuesday) 23:00 CET. After that, the form will be closed. ## Solution * [Video](https://www.youtube.com/watch?v=feH1PMLyu-Q&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=9) * [Notebook](homework.ipynb) ================================================ FILE: cohorts/2022/02-experiment-tracking/homework/hpo.py ================================================ import argparse import os import pickle import mlflow import numpy as np from hyperopt import STATUS_OK, Trials, fmin, hp, tpe from hyperopt.pyll import scope from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def run(data_path, num_trials): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_valid, y_valid = load_pickle(os.path.join(data_path, "valid.pkl")) def objective(params): rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_valid) rmse = mean_squared_error(y_valid, y_pred, squared=False) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 1, 20, 1)), 'n_estimators': scope.int(hp.quniform('n_estimators', 10, 50, 1)), 'min_samples_split': scope.int(hp.quniform('min_samples_split', 2, 10, 1)), 'min_samples_leaf': scope.int(hp.quniform('min_samples_leaf', 1, 4, 1)), 'random_state': 42 } rstate = np.random.default_rng(42) # for reproducible results fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=num_trials, trials=Trials(), rstate=rstate ) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( "--data_path", default="./output", help="the location where the processed NYC taxi trip data was saved." ) parser.add_argument( "--max_evals", type=int, default=50, help="the number of parameter evaluations for the optimizer to explore." ) args = parser.parse_args() run(args.data_path, args.max_evals) ================================================ FILE: cohorts/2022/02-experiment-tracking/homework/preprocess_data.py ================================================ import argparse import os import pickle import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv def run(raw_data_path: str, dest_path: str, dataset: str = "green"): # load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2021-01.parquet") ) df_valid = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2021-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2021-03.parquet") ) # extract the target target = 'duration' y_train = df_train[target].values y_valid = df_valid[target].values y_test = df_test[target].values # fit the dictvectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_valid, _ = preprocess(df_valid, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # save dictvectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_valid, y_valid), os.path.join(dest_path, "valid.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( "--raw_data_path", help="the location where the raw NYC taxi trip data was saved" ) parser.add_argument( "--dest_path", help="the location where the resulting files will be saved." ) args = parser.parse_args() run(args.raw_data_path, args.dest_path) ================================================ FILE: cohorts/2022/02-experiment-tracking/homework/register_model.py ================================================ import argparse import os import pickle import mlflow from hyperopt import hp, space_eval from hyperopt.pyll import scope from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() SPACE = { 'max_depth': scope.int(hp.quniform('max_depth', 1, 20, 1)), 'n_estimators': scope.int(hp.quniform('n_estimators', 10, 50, 1)), 'min_samples_split': scope.int(hp.quniform('min_samples_split', 2, 10, 1)), 'min_samples_leaf': scope.int(hp.quniform('min_samples_leaf', 1, 4, 1)), 'random_state': 42 } def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_valid, y_valid = load_pickle(os.path.join(data_path, "valid.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): params = space_eval(SPACE, params) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) # evaluate model on the validation and test sets valid_rmse = mean_squared_error(y_valid, rf.predict(X_valid), squared=False) mlflow.log_metric("valid_rmse", valid_rmse) test_rmse = mean_squared_error(y_test, rf.predict(X_test), squared=False) mlflow.log_metric("test_rmse", test_rmse) def run(data_path, log_top): client = MlflowClient() # retrieve the top_n model runs and log the models to MLflow experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=log_top, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) # best_run = client.search_runs( ... )[0] # register the best model # mlflow.register_model( ... ) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( "--data_path", default="./output", help="the location where the processed NYC taxi trip data was saved." ) parser.add_argument( "--top_n", default=5, type=int, help="the top 'top_n' models will be evaluated to decide which model to promote." ) args = parser.parse_args() run(args.data_path, args.top_n) ================================================ FILE: cohorts/2022/02-experiment-tracking/homework/train.py ================================================ import argparse import os import pickle from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) def run(data_path): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_valid, y_valid = load_pickle(os.path.join(data_path, "valid.pkl")) rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_valid) rmse = mean_squared_error(y_valid, y_pred, squared=False) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( "--data_path", default="./output", help="the location where the processed NYC taxi trip data was saved." ) args = parser.parse_args() run(args.data_path) ================================================ FILE: cohorts/2022/02-experiment-tracking/homework.md ================================================ ## Homework The goal of this homework is to get familiar with MLflow. ## Q1. Install MLflow To get started with MLflow you'll need to install the MLflow Python package. For this we recommend creating a separate Python environment, for example, you can use [conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-envs), and then install the package there with `pip` or `conda`. Once you installed the package, run the command `mlflow --version` and check the output. What's the version that you have? ## Q2. Download and preprocess the data We'll use the Green Taxi Trip Records dataset. Download the data for January, February and March 2021 in parquet format from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). Use the script `preprocess_data.py` located in the folder [`homework`](homework) to preprocess the data. The script will - load the data from the folder `` (the folder where you have downloaded the data), - fit a `DictVectorizer` on the training set (January 2021 data), - save the preprocessed datasets and the `DictVectorizer` to disk Your task is to download the datasets and then execute this command: ``` python preprocess_data.py --raw_data_path --dest_path ./output ``` Tip: go to `02-experiment-tracking/homework/` folder before executing the command and change the value of `` to the location where you saved the data. How many files were saved to `OUTPUT_FOLDER`? * 1 * 3 * 4 * 7 ## Q3. Train a model with autolog We will train a random forest regressor (from Scikit-Learn) on the taxi dataset. We have prepared the training script `train.py` for this exercise, which can be also found in the folder `homework`. The script will load the datasets produced by the previous step, train the model on the training set and finally calculate the RMSE on the validation set. Your task is to modify the script to enable **autologging** with MLflow, execute the script and then launch the MLflow UI to check that the experiment run was properly tracked. Tip 1: don't forget to wrap the training code with a `with mlflow.start_run():` statement as we showed in the videos. Tip 2: don't modify the hyperparameters of the model to make sure that the training will finish quickly. How many parameters are automatically logged by MLflow? * 19 * 17 * 10 * 20 ## Q4. Launch the tracking server locally We want to manage the entire lifecycle of our ML model. In this step, you'll need to launch a tracking server. This way we will also have access to the model registry. Your task is to * launch the tracking server on your local machine * select a SQLite db for the backend store and a folder called `artifacts` for the artifacts store You should keep the tracking server running to work on the next two exercises that use the server. In addition to `backend-store-uri`, what else do you need to pass to properly configure the server? * `default-artifact-root` * `serve-artifacts` * `artifacts-only` * `artifacts-destination` ## Q5. Tune the hyperparameters of the model Now let's try to reduce the validation error by tuning the hyperparameters of the random forest regressor using `hyperopt`. We have prepared the script `hpo.py` for this exercise. Your task is to modify the script `hpo.py` and make sure that the validation RMSE is logged to MLflow for each run of the hyperparameter optimization (you will need to add a few lines of code to the `objective` function) and run the script without passing any parameters. After that, open the MLflow UI and explore the runs from the experiment called `random-forest-hyperopt` to answer the question below. Important: don't use autologging for this exercise. The idea is to just log the information that you need to answer the question below, including: * the list of hyperparameters that are passed to the `objective` function during the optimization. * the RMSE obtained on the validation set (February 2021 data). What's the best validation RMSE that you got? * 6.128 * 6.628 * 7.128 * 7.628 ## Q6. Promote the best model to the model registry The results from the hyperparameter optimization are quite good so we can assume that we are ready to test some of these models in production. In this exercise, you'll promote the best model to the model registry. We have prepared a script called `register_model.py`, which will check the results from the previous step and select the top 5 runs. After that, it will calculate the RMSE of those models on the test set (March 2021 data) and save the results to a new experiment called `random-forest-best-models`. Your task is to update the script `register_model.py` so that it selects the model with the lowest RMSE on the test set and registers it to the model registry. Tip 1: you can use the method `search_runs` from the `MlflowClient` to get the model with the lowest RMSE. Tip 2: to register the model you can use the method `mlflow.register_model` and you will need to pass the right model_uri in the form of a string that looks like this: `"runs://model"`, and the name of the model (make sure to choose a good one!). What is the test RMSE of the best model? * 6.1 * 6.55 * 7.93 * 15.1 ## Submit the results Submit your results here: https://forms.gle/9wXF5ntBA3FNe65L9 It's possible that your answers won't match exactly. If it's the case, select the closest one. ## Deadline The deadline for submitting is 2 June 2022 (Thursday) at 23:00 CEST. After that, the form will be closed. ## Solution * [Video](https://www.youtube.com/watch?v=s2LcTqLEIxw&list=PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK&index=21) ================================================ FILE: cohorts/2022/03-orchestration/README.md ================================================ # 3. Orchestration and ML Pipelines **Note:** [`orchestration.py`](orchestration.py) is a ready final version. The rest of the files were worked on together during the video tutorials. **Note** With Prefect version [`2.2.1`](https://github.com/PrefectHQ/prefect/blob/orion/RELEASE-NOTES.md#20b8) or later `DeploymentSpec`'s are now just `Deployment`'s. ## 3.1 Negative engineering and workflow orchestration ## 3.2 Introduction to Prefect 2.0 ## 3.3 First Prefect flow and basics ## 3.4 Remote Prefect Orion deployment ## 3.5 Deployment of Prefect flow **Note:** There are several changes to deployment in Prefect 2.3.1 since 2.0b8: - `DeploymentSpec` in 2.0b8 now becomes `Deployment`. - `work_queue_name` is used instead of `tags` to submit the deployment to the a specific work queue. - You don't need to create a work queue before using the work queue. A work queue will be created if it doesn't exist. ```python from prefect.deployments import Deployment from prefect.orion.schemas.schedules import IntervalSchedule from datetime import timedelta deployment = Deployment.build_from_flow( flow=main, name="model_training", schedule=IntervalSchedule(interval=timedelta(minutes=5)), work_queue_name="ml" ) deployment.apply() ``` Links: * [Instructions for Hosting Prefect Orion](https://discourse.prefect.io/t/hosting-an-orion-instance-on-a-cloud-vm/967) ## 3.6 MLOps Zoomcamp 3.6 - (Optional) Work queues and agents ## 3.7 Homework More information here: TBD ## Notes Did you take notes? Add them here: * [Week 3, Prefect Introduction and S3 Bucket configuration with Prefect by M. Ayoub C.](https://gist.github.com/Qfl3x/8dd69b8173f027b9468016c118f3b6a5) * [Notes from froukje](https://github.com/froukje/ml-ops-zoomcamp/blob/master/03-orchestration/week03_orchestration.ipynb) * [Minimalist code notes from Anna V](https://github.com/annnvv/mlops_zoomcamp/blob/main/notes/module3_notes_prefect.md) * [Getting Started on Prefect 2.0 + Deploying worfklows for MLflow Staging by Ron Medina (Jupyter Book)](https://particle1331.github.io/inefficient-networks/notebooks/mlops/3-prefect/3-prefect.html) * [Quickstart your homework by Zioalex](https://github.com/zioalex/mlops-zoomcamp/blob/week3/03-orchestration/homework_quickstart.md) * [Notes from Maxime M](https://github.com/maxmarkov/mlops-zoomcamp/blob/master/lecture-notes/WEEK-3/03-orchestration.md) * [Week3: Prefect introduction and homework notes by Bhagabat](https://github.com/BPrasad123/MLOps_Zoomcamp/tree/main/Week3) * [Week 3: Orchestration notes by Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/orchestration-03.md) * Send a PR, add your notes above this line ================================================ FILE: cohorts/2022/03-orchestration/code/model_training.py ================================================ from audioop import add import pandas as pd import pickle from sklearn.feature_extraction import DictVectorizer from sklearn.linear_model import LinearRegression, Lasso, Ridge from sklearn.metrics import mean_squared_error import xgboost as xgb from hyperopt import fmin, tpe, hp, STATUS_OK, Trials from hyperopt.pyll import scope import mlflow mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") def read_dataframe(filename): df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def add_features(train_path="./data/green_tripdata_2021-01.parquet", val_path="./data/green_tripdata_2021-02.parquet"): df_train = read_dataframe(train_path) df_val = read_dataframe(val_path) print(len(df_train)) print(len(df_val)) df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID'] df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID'] categorical = ['PU_DO'] #'PULocationID', 'DOLocationID'] numerical = ['trip_distance'] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient='records') X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient='records') X_val = dv.transform(val_dicts) target = 'duration' y_train = df_train[target].values y_val = df_val[target].values return X_train, X_val, y_train, y_val, dv # # Modelling # lr = LinearRegression() # lr.fit(X_train, y_train) # y_pred = lr.predict(X_val) # mean_squared_error(y_val, y_pred, squared=False) # with open('models/lin_reg.bin', 'wb') as f_out: # pickle.dump((dv, lr), f_out) # with mlflow.start_run(): # mlflow.set_tag("developer", "cristian") # mlflow.log_param("train-data-path", "./data/green_tripdata_2021-01.csv") # mlflow.log_param("valid-data-path", "./data/green_tripdata_2021-02.csv") # alpha = 0.1 # mlflow.log_param("alpha", alpha) # lr = Lasso(alpha) # lr.fit(X_train, y_train) # y_pred = lr.predict(X_val) # rmse = mean_squared_error(y_val, y_pred, squared=False) # mlflow.log_metric("rmse", rmse) # mlflow.log_artifact(local_path="models/lin_reg.bin", artifact_path="models_pickle") def train_model_search(train, valid, y_val): def objective(params): with mlflow.start_run(): mlflow.set_tag("model", "xgboost") mlflow.log_params(params) booster = xgb.train( params=params, dtrain=train, num_boost_round=1000, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)), 'learning_rate': hp.loguniform('learning_rate', -3, 0), 'reg_alpha': hp.loguniform('reg_alpha', -5, -1), 'reg_lambda': hp.loguniform('reg_lambda', -6, -1), 'min_child_weight': hp.loguniform('min_child_weight', -1, 3), 'objective': 'reg:linear', 'seed': 42 } best_result = fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=1, trials=Trials() ) return def train_best_model(train, valid, y_val, dv): with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { 'learning_rate': 0.09585355369315604, 'max_depth': 30, 'min_child_weight': 1.060597050922164, 'objective': 'reg:linear', 'reg_alpha': 0.018060244040060163, 'reg_lambda': 0.011658731377413597, 'seed': 42 } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=1000, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") if __name__ == "__main__": X_train, X_val, y_train, y_val, dv = add_features() train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) train_model_search(train, valid, y_val) train_best_model(train, valid, y_val, dv) ================================================ FILE: cohorts/2022/03-orchestration/code/orchestration.py ================================================ import pandas as pd import pickle from sklearn.feature_extraction import DictVectorizer from sklearn.linear_model import LinearRegression, Lasso, Ridge from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from hyperopt import fmin, tpe, hp, STATUS_OK, Trials from hyperopt.pyll import scope from prefect import flow, task @task def read_dataframe(filename): df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df @task def add_features(df_train, df_val): df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID'] df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID'] categorical = ['PU_DO'] #'PULocationID', 'DOLocationID'] numerical = ['trip_distance'] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient='records') X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient='records') X_val = dv.transform(val_dicts) target = 'duration' y_train = df_train[target].values y_val = df_val[target].values return X_train, X_val, y_train, y_val, dv @task def train_model_search(train, valid, y_val): def _objective(params): with mlflow.start_run(): mlflow.set_tag("model", "xgboost") mlflow.log_params(params) booster = xgb.train( params=params, dtrain=train, num_boost_round=1000, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)), 'learning_rate': hp.loguniform('learning_rate', -3, 0), 'reg_alpha': hp.loguniform('reg_alpha', -5, -1), 'reg_lambda': hp.loguniform('reg_lambda', -6, -1), 'min_child_weight': hp.loguniform('min_child_weight', -1, 3), 'objective': 'reg:linear', 'seed': 42 } best_result = fmin( fn=_objective, space=search_space, algo=tpe.suggest, max_evals=1, trials=Trials() ) return best_result @task def train_best_model(X_train, X_val, y_train, y_val, dv): with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { 'learning_rate': 0.09585355369315604, 'max_depth': 30, 'min_child_weight': 1.060597050922164, 'objective': 'reg:linear', 'reg_alpha': 0.018060244040060163, 'reg_lambda': 0.011658731377413597, 'seed': 42 } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=1000, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") @flow def main_flow(train_path: str = './data/green_tripdata_2021-01.parquet', val_path: str = './data/green_tripdata_2021-02.parquet'): mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load df_train = read_dataframe(train_path) df_val = read_dataframe(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val).result() # Training train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best = train_model_search(train, valid, y_val) train_best_model(X_train, X_val, y_train, y_val, dv, wait_for=best) # main_flow() from prefect.deployments import Deployment from prefect.orion.schemas.schedules import IntervalSchedule from datetime import timedelta Deployment.build_from_flow( flow=main_flow, name="model_training", # schedule=IntervalSchedule(interval=timedelta(weeks=1)), work_queue_name="ml", ) ================================================ FILE: cohorts/2022/03-orchestration/code/prefect_deploy.py ================================================ import pandas as pd import pickle from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import xgboost as xgb from hyperopt import fmin, tpe, hp, STATUS_OK, Trials from hyperopt.pyll import scope import mlflow from prefect import flow, task @task def read_dataframe(filename): df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df @task def add_features(df_train, df_val): # df_train = read_dataframe(train_path) # df_val = read_dataframe(val_path) print(len(df_train)) print(len(df_val)) df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID'] df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID'] categorical = ['PU_DO'] #'PULocationID', 'DOLocationID'] numerical = ['trip_distance'] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient='records') X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient='records') X_val = dv.transform(val_dicts) target = 'duration' y_train = df_train[target].values y_val = df_val[target].values return X_train, X_val, y_train, y_val, dv @task def train_model_search(train, valid, y_val): def objective(params): with mlflow.start_run(): mlflow.set_tag("model", "xgboost") mlflow.log_params(params) booster = xgb.train( params=params, dtrain=train, num_boost_round=100, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)), 'learning_rate': hp.loguniform('learning_rate', -3, 0), 'reg_alpha': hp.loguniform('reg_alpha', -5, -1), 'reg_lambda': hp.loguniform('reg_lambda', -6, -1), 'min_child_weight': hp.loguniform('min_child_weight', -1, 3), 'objective': 'reg:linear', 'seed': 42 } best_result = fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=1, trials=Trials() ) return @task def train_best_model(train, valid, y_val, dv): with mlflow.start_run(): best_params = { 'learning_rate': 0.09585355369315604, 'max_depth': 30, 'min_child_weight': 1.060597050922164, 'objective': 'reg:linear', 'reg_alpha': 0.018060244040060163, 'reg_lambda': 0.011658731377413597, 'seed': 42 } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") @flow def main(train_path: str="./data/green_tripdata_2021-01.parquet", val_path: str="./data/green_tripdata_2021-02.parquet"): mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") X_train = read_dataframe(train_path) X_val = read_dataframe(val_path) X_train, X_val, y_train, y_val, dv = add_features(X_train, X_val).result() train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) train_model_search(train, valid, y_val) train_best_model(train, valid, y_val, dv) from prefect.deployments import Deployment from prefect.orion.schemas.schedules import IntervalSchedule from datetime import timedelta deployment = Deployment.build_from_flow( flow=main, name="model_training", schedule=IntervalSchedule(interval=timedelta(minutes=5)), work_queue_name="ml" ) deployment.apply() ================================================ FILE: cohorts/2022/03-orchestration/code/prefect_flow.py ================================================ import pandas as pd import pickle from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import xgboost as xgb from hyperopt import fmin, tpe, hp, STATUS_OK, Trials from hyperopt.pyll import scope import mlflow from prefect import flow, task @task def read_dataframe(filename): df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df @task def add_features(df_train, df_val): # df_train = read_dataframe(train_path) # df_val = read_dataframe(val_path) print(len(df_train)) print(len(df_val)) df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID'] df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID'] categorical = ['PU_DO'] #'PULocationID', 'DOLocationID'] numerical = ['trip_distance'] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient='records') X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient='records') X_val = dv.transform(val_dicts) target = 'duration' y_train = df_train[target].values y_val = df_val[target].values return X_train, X_val, y_train, y_val, dv @task def train_model_search(train, valid, y_val): def objective(params): with mlflow.start_run(): mlflow.set_tag("model", "xgboost") mlflow.log_params(params) booster = xgb.train( params=params, dtrain=train, num_boost_round=100, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)), 'learning_rate': hp.loguniform('learning_rate', -3, 0), 'reg_alpha': hp.loguniform('reg_alpha', -5, -1), 'reg_lambda': hp.loguniform('reg_lambda', -6, -1), 'min_child_weight': hp.loguniform('min_child_weight', -1, 3), 'objective': 'reg:linear', 'seed': 42 } best_result = fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=1, trials=Trials() ) return @task def train_best_model(train, valid, y_val, dv): with mlflow.start_run(): best_params = { 'learning_rate': 0.09585355369315604, 'max_depth': 30, 'min_child_weight': 1.060597050922164, 'objective': 'reg:linear', 'reg_alpha': 0.018060244040060163, 'reg_lambda': 0.011658731377413597, 'seed': 42 } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, 'validation')], early_stopping_rounds=50 ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") @flow def main(train_path: str="./data/green_tripdata_2021-01.parquet", val_path: str="./data/green_tripdata_2021-02.parquet"): mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") X_train = read_dataframe(train_path) X_val = read_dataframe(val_path) X_train, X_val, y_train, y_val, dv = add_features(X_train, X_val).result() train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) train_model_search(train, valid, y_val) train_best_model(train, valid, y_val, dv) ================================================ FILE: cohorts/2022/03-orchestration/code/work-queue.py ================================================ from prefect import flow @flow def myflow(): print("hello") from prefect.deployments import Deployment from prefect.orion.schemas.schedules import IntervalSchedule from datetime import timedelta deployment_dev = Deployment.build_from_flow( flow=myflow, name="model_training-dev", schedule=IntervalSchedule(interval=timedelta(minutes=5)), work_queue_name="dev" ) deployment_dev.apply() deployment_prod = Deployment.build_from_flow( flow=myflow, name="model_training-prod", schedule=IntervalSchedule(interval=timedelta(minutes=5)), work_queue_name="prod" ) deployment_prod.apply() ================================================ FILE: cohorts/2022/03-orchestration/homework.md ================================================ ## 3.6 Homework The goal of this homework is to familiarize users with workflow orchestration. We start from the solution of homework 1. The notebook can be found below: https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/01-intro/homework.ipynb This has already been converted to a script called `homework.py` in the `03-orchestration` folder of this repo. You will use the FHV dataset like in homework 1. ## Motivation We already have a model training script. Maybe a data scientist in your team handed it to you and your job is schedule the running of training script using a workflow orchestration - Prefect in this case. Below are the requirements. Do not implement them yet, we will do so in this exercise. Just understand the goal. 1. The training flow will be run every month. 2. The flow will take in a parameter called `date` which will be a datetime. * a. `date` should default to `None`. * b. If `date` is `None`, set `date` as the current day. Use the data from 2 months back as the training data and the data from the previous month as validation data. * c. If `date` is passed, get 2 months before the `date` as the training data, and the previous month as validation data. * d. As a concrete example, if the date passed is "2021-03-15", the training data should be "fhv_tripdata_2021-01.parquet" and the validation file will be "fhv_trip_data_2021-02.parquet". 3. Save the model as "model-{date}.bin" where date is in `YYYY-MM-DD`. Note that `date` here is the value of the flow `parameter`. In practice, this setup makes it very easy to get the latest model to run predictions because you just need to get the most recent one. 4. In this example we use a DictVectorizer. That is needed to run future data through our model. Save that as "dv-{date}.b". Similar to above, if the date is `2021-03-15`, the files output should be `model-2021-03-15.bin` and `dv-2021-03-15.b`. This convention is not strict in industry, and in practice, you will come up with your own system to manage these training pipeline runs. For example, if we wanted to train on the whole history instead of just one month, we'd need to allow for added parameterization and logic in our flow. If the data came in weekly instead of monthly, we might need a different naming convention. But these requirements are already a simple approximation of something you could use in production. On the deployment side, it's very easy to just pull in the latest data and predict it using the latest model and vectorizer files. Tools the MLFlow in the last chapter can simplify that process as well. This homework will focus more on the batch training. In order, this homework assignment will be about: 1. Converting the script to a Flow. 2. Changing the parameters to take in a `date`. Making this parameter dynamic. 3. Scheduling a batch training job that outputs the latest model somewhere. ## Setup You can use either local Prefect Orion or a VM hosted Prefect Orion instance for this. It shouldn't matter. Just note that if you use a VM hosted one, you will need to configure your local API to hit the VM. Video 3.4 of the course will give more detailed instructions if you been run it on a VM. ## Q1. Converting the script to a Prefect flow If you want to follow the videos exactly, do: ```bash pip install prefect==2.0b5 ``` If you need Windows support, check [`windows.md`](windows.md) for installation instructions. The current script `homework.py` is a fully functional script as long as you already have `fhv_trip_data_2021-01.parquet` and `fhv_trip_data_2021-02.parquet` inside a `data` folder. You should be able to already run it using: ```bash python homework.py ``` We want to bring this to workflow orchestration to add observability around it. The `main` function will be converted to a `flow` and the other functions will be `tasks`. After adding all of the decorators, there is actually one task that you will need to call `.result()` for inside the `flow` to get it to work. Which task is this? * `read_data` * `prepare_features` * `train_model` * `run_model` Important: change all `print` statements to use the Prefect logger. Using the `print` statement will not appear in the Prefect UI. You have to call `get_run_logger` at the start of the task to use it. ## Q2. Parameterizing the flow Right now there are two parameters for `main()` called `train_path` and `val_path`. We want to change the flow function to accept `date` instead. `date` should then be passed to a task that gives both the `train_path` and `val_path` to use. It should look like this: ```python @flow def main(date=None): train_path, val_path = get_paths(date).result() # rest of flow below ``` Where `get_paths` is a task that you have to implement. The specs for this are outlined in the motivation section. Listing them out again here: * a. The flow will take in a parameter called `date` which will be a datetime. `date` should default to `None`. * b. If `date` is `None`, use the current day. Use the data from 2 months back as the training data and the data from the previous month as validation data. * c. If a `date` value is supplied, get 2 months before the `date` as the training data, and the previous month as validation data. * d. As a concrete example, if the date passed is "2021-03-15", the training data should be "fhv_tripdata_2021-01.parquet" and the validation file will be "fhv_trip_data_2021-02.parquet". Because we have two files: * fhv_tripdata_2021-01.parquet * fhv_tripdata_2021-02.parquet Change the `main()` flow call to the following: ```python main(date="2021-03-15") ``` and it should use those files. This is a simplification for testing our homework. Recall the page from where we downloaded the For-Hire trip data. https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page Download the relevant files needed to run the `main` flow if `date` is 2021-08-15. For example: ```python main(date="2021-08-15") ``` By setting up the logger from the previous step, we should see some logs about our training job. What is the validation MSE when running the flow with this date? Note you need to download the relevant files to run. Part of this question is understanding which files the flow should be looking for. The validation MSE is: * 11.637 * 11.837 * 12.037 * 12.237 ## Q3. Saving the model and artifacts At the moment, we are not saving the model and vectorizer for future use. You don't need a new task for this, you can just add it inside the `flow`. The requirements for filenames to save it as were mentioned in the Motivation section. They are pasted again here: * Save the model as "model-{date}.bin" where date is in `YYYY-MM-DD`. Note that `date` here is the value of the flow `parameter`. In practice, this setup makes it very easy to get the latest model to run predictions because you just need to get the most recent one. * In this example we use a DictVectorizer. That is needed to run future data through our model. Save that as "dv-{date}.b". Similar to above, if the date is `2021-03-15`, the files output should be `model-2021-03-15.bin` and `dv-2021-03-15.b`. By using this file name, during inference, we can just pull the latest model from our model directory and apply it. Assuming we already had a list of filenames: ```python ['model-2021-03-15.bin', 'model-2021-04-15.bin', 'model-2021-05-15.bin'] ``` We could do something like `sorted(model_list, reverse=False)[0]` to get the filename of the latest file. This is the simplest way to consistently use the latest trained model for inference. Tools like MLFlow give us more control logic to use flows. What is the file size of the `DictVectorizer` that we trained when the `date` is 2021-08-15? * 13,000 bytes * 23,000 bytes * 33,000 bytes * 43,000 bytes You can bring up the Orion UI and see the work you've been doing. If you are using local Orion, you can start the server with: ```bash prefect orion start ``` You should be able to see previous Flow runs and the most recent successful runs. Navigate to some of them. Take time to explore the UI. The radar plot would be a good thing to share on social media if you participate in those posts. ## Q4. Creating a deployment with a CronSchedule We previously showed the `IntervalSchedule` in the video tutorials. In some cases, the interval is too rigid. For example, what if we wanted to run this `flow` on the 15th of every month? An interval of 30 days would not be in sync. In cases like these, the `CronSchedule` is more appropriate. The documentation for that is [here](https://orion-docs.prefect.io/concepts/schedules/#cronschedule) Cron is an important part of workflow orchestration. It is used to schedule tasks, and was a predecessor for more mature orchestration frameworks. A lot of teams still use Cron in production. Even if you don't use Cron, the Cron expression is very common as a way to write a schedule, and the basics are worth learning for orchestration, even outside Prefect. For this exercise, use a `CronSchedule` when creating a Prefect deployment. What is the Cron expression to run a flow at 9 AM every 15th of the month? * `* * 15 9 0` * `9 15 * * *` * `0 9 15 * *` * `0 15 9 1 *` Hint: there are many Cron to English tools. Try looking for one to help you. Create a deployment with `prefect deployment create` after you write your `DeploymentSpec` ## Q5. Viewing the Deployment View the deployment in the UI. When first loading, we may not see that many flows because the default filter is 1 day back and 1 day forward. Remove the filter for 1 day forward to see the scheduled runs. How many flow runs are scheduled by Prefect in advance? You should not be counting manually. There is a number of upcoming runs on the top right of the dashboard. * 0 * 3 * 10 * 25 **Note:** Your answer may be off by 1. It's okay. Select the option closest to your answer. ## Q6. Creating a work-queue In order to run this flow, you will need an agent and a work queue. Because we scheduled our flow on every month, it won't really get picked up by an agent. For this exercise, create a work-queue from the UI and view it using the CLI. For all CLI commands with Prefect, you can use `--help` to get more information. For example, * `prefect --help` * `prefect work-queue --help` What is the command to view the available work-queues? * `prefect work-queue inspect` * `prefect work-queue ls` * `prefect work-queue preview` * `prefect work-queue list` ## Submit the results * Submit your results here: https://forms.gle/tYEZdrYdXHBizmtJ7 * It's possible that your answers won't match exactly. If it's the case, select the closest one. * You can submit your answers multiple times. In this case, the last submission will be used for scoring. ## Deadline The deadline for submitting is 13 June 2022 (Monday) 23:00 CEST. After that, the form will be closed. ## Solution * [Code - `homework_solution.py`](homework_solution.py) * [Video](https://www.youtube.com/watch?v=DfmRb7J-Wuw) ================================================ FILE: cohorts/2022/03-orchestration/homework.py ================================================ import pandas as pd from sklearn.feature_extraction import DictVectorizer from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error def read_data(path): df = pd.read_parquet(path) return df def prepare_features(df, categorical, train=True): df['duration'] = df.dropOff_datetime - df.pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() mean_duration = df.duration.mean() if train: print(f"The mean duration of training is {mean_duration}") else: print(f"The mean duration of validation is {mean_duration}") df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df def train_model(df, categorical): train_dicts = df[categorical].to_dict(orient='records') dv = DictVectorizer() X_train = dv.fit_transform(train_dicts) y_train = df.duration.values print(f"The shape of X_train is {X_train.shape}") print(f"The DictVectorizer has {len(dv.feature_names_)} features") lr = LinearRegression() lr.fit(X_train, y_train) y_pred = lr.predict(X_train) mse = mean_squared_error(y_train, y_pred, squared=False) print(f"The MSE of training is: {mse}") return lr, dv def run_model(df, categorical, dv, lr): val_dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(val_dicts) y_pred = lr.predict(X_val) y_val = df.duration.values mse = mean_squared_error(y_val, y_pred, squared=False) print(f"The MSE of validation is: {mse}") return def main(train_path: str = './data/fhv_tripdata_2021-01.parquet', val_path: str = './data/fhv_tripdata_2021-02.parquet'): categorical = ['PUlocationID', 'DOlocationID'] df_train = read_data(train_path) df_train_processed = prepare_features(df_train, categorical) df_val = read_data(val_path) df_val_processed = prepare_features(df_val, categorical, False) # train the model lr, dv = train_model(df_train_processed, categorical) run_model(df_val_processed, categorical, dv, lr) main() ================================================ FILE: cohorts/2022/03-orchestration/homework_solution.py ================================================ import pandas as pd from sklearn.feature_extraction import DictVectorizer from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error from prefect import task, flow, get_run_logger from datetime import datetime import pickle @task def read_data(path): df = pd.read_parquet(path) return df @task def prepare_features(df, categorical, train=True): logger = get_run_logger() df['duration'] = df.dropOff_datetime - df.pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() mean_duration = df.duration.mean() if train: logger.info(f"The mean duration of training is {mean_duration}") else: logger.info(f"The mean duration of validation is {mean_duration}") df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df @task def train_model(df, categorical): logger = get_run_logger() train_dicts = df[categorical].to_dict(orient='records') dv = DictVectorizer() X_train = dv.fit_transform(train_dicts) y_train = df.duration.values logger.info(f"The shape of X_train is {X_train.shape}") logger.info(f"The DictVectorizer has {len(dv.feature_names_)} features") lr = LinearRegression() lr.fit(X_train, y_train) y_pred = lr.predict(X_train) mse = mean_squared_error(y_train, y_pred, squared=False) logger.info(f"The MSE of training is: {mse}") return lr, dv @task def run_model(df, categorical, dv, lr): logger = get_run_logger() val_dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(val_dicts) y_pred = lr.predict(X_val) y_val = df.duration.values mse = mean_squared_error(y_val, y_pred, squared=False) logger.info(f"The MSE of validation is: {mse}") return @task def get_paths(date): from dateutil.relativedelta import relativedelta if date: processed_date = datetime.strptime(date, "%Y-%m-%d") else: processed_date = datetime.today() train_date = processed_date - relativedelta(months=2) val_date = processed_date - relativedelta(months=1) train_path = f"./data/fhv_tripdata_{train_date.year}-{str(train_date.month).zfill(2)}.parquet" val_path = f"./data/fhv_tripdata_{val_date.year}-{str(val_date.month).zfill(2)}.parquet" return train_path, val_path @flow def main(date=None): train_path, val_path = get_paths(date).result() categorical = ['PUlocationID', 'DOlocationID'] df_train = read_data(train_path) df_train_processed = prepare_features(df_train, categorical) df_val = read_data(val_path) df_val_processed = prepare_features(df_val, categorical, False) # train the model lr, dv = train_model(df_train_processed, categorical).result() run_model(df_val_processed, categorical, dv, lr) if date is None: date = datetime.today.strftime("%Y-%m-%d") with open(f'./models/dv-{date}.b', 'wb') as f_out: pickle.dump(dv, f_out) # main("2021-08-15") from prefect.deployments import Deployment from prefect.orion.schemas.schedules import CronSchedule from prefect.flow_runners import SubprocessFlowRunner Deployment( flow=main, name="model_training", schedule=CronSchedule(cron="0 9 15 * *"), flow_runner=SubprocessFlowRunner(), ) ================================================ FILE: cohorts/2022/04-deployment/homework/Dockerfile ================================================ FROM python:3.9.7-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ================================================ FILE: cohorts/2022/04-deployment/homework/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.9" ================================================ FILE: cohorts/2022/04-deployment/homework/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import pickle import pandas as pd year = int(sys.argv[1]) # 2021 month = int(sys.argv[2]) #2 input_file = f's3://nyc-tlc/trip data/fhv_tripdata_{year:04d}-{month:02d}.parquet' output_file = f's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PUlocationID', 'DOlocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.dropOff_datetime - df.pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ================================================ FILE: cohorts/2022/04-deployment/homework/homework.dockerfile ================================================ FROM agrigorev/zoomcamp-model:mlops-3.9.7-slim RUN pip install -U pip RUN pip install pipenv WORKDIR /app COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2022/04-deployment/homework/starter.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2c51efaa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scikit-learn==1.0.2\n", "scikit-learn-intelex==2021.20210714.120553\n" ] } ], "source": [ "!pip freeze | grep scikit-learn" ] }, { "cell_type": "code", "execution_count": 1, "id": "0ef880a0", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 15, "id": "920cff32", "metadata": {}, "outputs": [], "source": [ "year = 2021\n", "month = 2\n", "\n", "input_file = f'https://nyc-tlc.s3.amazonaws.com/trip+data/fhv_tripdata_{year:04d}-{month:02d}.parquet'\n", "output_file = f'output/fhv_tripdata_{year:04d}-{month:02d}.parquet'" ] }, { "cell_type": "code", "execution_count": 2, "id": "7836ccfd", "metadata": {}, "outputs": [], "source": [ "with open('model.bin', 'rb') as f_in:\n", " dv, lr = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": 3, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PUlocationID', 'DOlocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.dropOff_datetime - df.pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 10, "id": "4854399a", "metadata": {}, "outputs": [], "source": [ "df = read_data(input_file)\n", "df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str')" ] }, { "cell_type": "code", "execution_count": 6, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "dicts = df[categorical].to_dict(orient='records')\n", "X_val = dv.transform(dicts)\n", "y_pred = lr.predict(X_val)" ] }, { "cell_type": "code", "execution_count": 7, "id": "914b15a5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16.191691679979066" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred.mean()" ] }, { "cell_type": "code", "execution_count": 13, "id": "037e3d22", "metadata": {}, "outputs": [], "source": [ "df_result = pd.DataFrame()\n", "df_result['ride_id'] = df['ride_id']\n", "df_result['predicted_duration'] = y_pred" ] }, { "cell_type": "code", "execution_count": 17, "id": "7a5753be", "metadata": {}, "outputs": [], "source": [ "df_result.to_parquet(\n", " output_file,\n", " engine='pyarrow',\n", " compression=None,\n", " index=False\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "f0b3b58c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 19M\r\n", "-rw-rw-r-- 1 ubuntu ubuntu 19M Jun 30 08:43 fhv_tripdata_2021-02.parquet\r\n" ] } ], "source": [ "!ls -lh output/" ] }, { "cell_type": "code", "execution_count": null, "id": "0dbe3e15", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2022/04-deployment/homework.md ================================================ ## 4.8 Homework In this homework, we'll deploy the ride duration model in batch mode. Like in homework 1 and 3, we'll use the FHV data. You'll find the starter code in the [homework](https://github.com/DataTalksClub/mlops-zoomcamp/blob/74324e4d3759e9712ce406b8b30c77cff66e6cef/04-deployment/homework/) directory. ## Q1. Notebook We'll start with the same notebook we ended up with in homework 1. We cleaned it a little bit and kept only the scoring part. Now it's in [homework/starter.ipynb](https://github.com/DataTalksClub/mlops-zoomcamp/blob/74324e4d3759e9712ce406b8b30c77cff66e6cef/04-deployment/homework/starter.ipynb). Run this notebook for the February 2021 FVH data. What's the mean predicted duration for this dataset? * 11.19 * 16.19 * 21.19 * 26.19 ## Q2. Preparing the output Like in the course videos, we want to prepare the dataframe with the output. First, let's create an artificial `ride_id` column: ```python df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') ``` Next, write the ride id and the predictions to a dataframe with results. Save it as parquet: ```python df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ``` What's the size of the output file? * 9M * 19M * 29M * 39M Make sure you use the snippet above for saving the file. It should contain only these two columns. For this question, don't change the dtypes of the columns and use pyarrow, not fastparquet. ## Q3. Creating the scoring script Now let's turn the notebook into a script. Which command you need to execute for that? ## Q4. Virtual environment Now let's put everything into a virtual environment. We'll use pipenv for that. Install all the required libraries. Pay attention to the Scikit-Learn version: check the starter notebook for details. After installing the libraries, pipenv creates two files: `Pipfile` and `Pipfile.lock`. The `Pipfile.lock` file keeps the hashes of the dependencies we use for the virtual env. What's the first hash for the Scikit-Learn dependency? ## Q5. Parametrize the script Let's now make the script configurable via CLI. We'll create two parameters: year and month. Run the script for March 2021. What's the mean predicted duration? * 11.29 * 16.29 * 21.29 * 26.29 Hint: just add a print statement to your script. ## Q6. Docker contaner Finally, we'll package the script in the docker container. For that, you'll need to use a base image that we prepared. This is how it looks like: ``` FROM python:3.9.7-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ``` (see [`homework/Dockerfile`](homework/Dockerfile)) We pushed it to [`agrigorev/zoomcamp-model:mlops-3.9.7-slim`](https://hub.docker.com/layers/zoomcamp-model/agrigorev/zoomcamp-model/mlops-3.9.7-slim/images/sha256-7fac33c783cc6018356ce16a4b408f6c977b55a4df52bdb6c4d0215edf83af5d?context=explore), which you should use as your base image. That is, this is how your Dockerfile should start: ```docker FROM agrigorev/zoomcamp-model:mlops-3.9.7-slim # do stuff here ``` This image already has a pickle file with a dictionary vectorizer and a model. You will need to use them. Important: don't copy the model to the docker image. You will need to use the pickle file already in the image. Now run the script with docker. What's the mean predicted duration for April 2021? * 9.96 * 16.55 * 25.96 * 36.55 ## Bonus: upload the result to the cloud (Not graded) Just printing the mean duration inside the docker image doesn't seem very practical. Typically, after creating the output file, we upload it to the cloud storage. Modify your code to upload the parquet file to S3/GCS/etc. ## Submit the results * Submit your results here: https://forms.gle/pFAYjTFqFMJELG819 * It's possible that your answers won't match exactly. If it's the case, select the closest one. * You can submit your answers multiple times. In this case, the last submission will be used for scoring. ## Deadline The deadline for submitting is 27 June 2022 (Monday) 23:00 CEST. After that, the form will be closed. ## Solution After the deadline, we'll post the solution here ## Publishing the image to dockerhub This is how we published the image to Docker hub: ```bash docker build -t mlops-zoomcamp-model:v1 . docker tag mlops-zoomcamp-model:v1 agrigorev/zoomcamp-model:mlops-3.9.7-slim docker push agrigorev/zoomcamp-model:mlops-3.9.7-slim ``` ================================================ FILE: cohorts/2022/05-monitoring/README.md ================================================ # 5. Model Monitoring ## 5.1 Monitoring for ML-based services [Slides](https://drive.google.com/file/d/1wcMU75ZcNNJie4ELjsKPkITIL93wHykt/view?usp=sharing) ## 5.2 Setting up the environment ## 5.3 Creating a prediction service and simulating traffic ## 5.4 Realtime monitoring walktrough (Prometheus, Evidently, Grafana) ## 5.5 Batch monitoring walktrough (Prefect, MongoDB, Evidently) ## 5.6 Homework More information here: TBD ## Notes Did you take notes? Add them here: * [Week 5 notes by M. Ayoub C.](https://gist.github.com/Qfl3x/aa6b1bec35fb645ded0371c46e8aafd1) * [week 5: Monitoring notes Ayoub.B](https://github.com/ayoub-berdeddouch/mlops-journey/blob/main/monitoring-05.md) * Send a PR, add your notes above this line # Monitoring example ## Prerequisites You need following tools installed: - `docker` - `docker-compose` (included to Docker Desktop for Mac and Docker Desktop for Windows ) ## Preparation Note: all actions expected to be executed in repo folder. - Create virtual environment and activate it (eg. `python -m venv venv && source ./venv/bin/activate`) - Install required packages `pip install -r requirements.txt` - Run `python prepare.py` for downloading datasets ## Monitoring Example ### Starting services To start all required services, execute: ```bash docker-compose up ``` It will start following services: - `prometheus` - TSDB for metrics - `grafana` - Visual tool for metrics - `mongo` - MongoDB, for storing raw data, predictions, targets and profile reports - `evidently_service` - Evindently RT-monitoring service (draft example) - `prediction_service` - main service, which makes predictions ### Sending data To start sending data to service, execute: ```bash python send_data.py ``` This script will send every second single row from dataset to prediction service along with creating file `target.csv` with actual results (so it can be loaded after) ## Batch Monitoring Example After you stop sending data to service, you can run batch monitoring pipeline (using Prefect) by running script: ```bash python prefect_example.py ``` This script will: - load `target.csv` to MongoDB - download dataset from MongoDB - Run Evidently Model Profile and Evidently Report on this data - Save Profile data back to MongoDB - Save Report to `evidently_report_example.html` You can look at Prefect steps in Prefect Orion UI (to start it execute `prefect orion start`) ================================================ FILE: cohorts/2022/05-monitoring/homework/docker-compose-homework-solution.yml ================================================ version: "3.7" volumes: mongo_data: {} networks: front-tier: back-tier: services: prediction_service: build: context: prediction_service dockerfile: Dockerfile depends_on: - mongo environment: MONGO_DATABASE: "prediction_service" MONGO_ADDRESS: "mongodb://mongo.:27017/" MODEL_VERSION: "2" MODEL_FILE: "lin_reg_V2.bin" ports: - 9696:9696 networks: - back-tier - front-tier mongo: image: mongo ports: - 27017:27017 volumes: - mongo_data:/data/db networks: - back-tier - front-tier ================================================ FILE: cohorts/2022/05-monitoring/homework/docker-compose-homework.yml ================================================ version: "3.7" volumes: mongo_data: {} networks: front-tier: back-tier: services: prediction_service: build: context: prediction_service dockerfile: Dockerfile depends_on: - mongo environment: MONGO_DATABASE: "prediction_service" MONGO_ADDRESS: "mongodb://mongo.:27017/" MODEL_VERSION: "1" MODEL_FILE: "lin_reg.bin" ports: - 9696:9696 networks: - back-tier - front-tier mongo: image: mongo ports: - 27017:27017 volumes: - mongo_data:/data/db networks: - back-tier - front-tier ================================================ FILE: cohorts/2022/05-monitoring/homework/model_training.py ================================================ import pickle import pandas as pd import pyarrow.parquet as pq from sklearn.feature_extraction import DictVectorizer from sklearn.linear_model import LinearRegression def read_dataframe(filename): df = pq.read_table(filename).to_pandas() df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def add_features(train_data="./datasets/green_tripdata_2021-03.parquet", additional_training_data=None): df_train = read_dataframe(train_data) if additional_training_data: extra_data = read_dataframe(additional_training_data) df_train = pd.concat([df_train, extra_data], axis=0, ignore_index=True) df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient='records') X_train = dv.fit_transform(train_dicts) target = 'duration' y_train = df_train[target].values return X_train, y_train, dv if __name__ == "__main__": X_train, y_train, dv = add_features() print("Training model with one month of data") lr = LinearRegression() lr.fit(X_train, y_train) with open('prediction_service/lin_reg.bin', 'wb') as f_out: pickle.dump((dv, lr), f_out) X_train, y_train, dv = add_features(additional_training_data="./datasets/green_tripdata_2021-04.parquet") print("Training model with two months of data") lr = LinearRegression() lr.fit(X_train, y_train) with open('prediction_service/lin_reg_V2.bin', 'wb') as f_out: pickle.dump((dv, lr), f_out) ================================================ FILE: cohorts/2022/05-monitoring/homework/prediction_service/Dockerfile ================================================ FROM python:3.8-slim-buster RUN pip install -U pip RUN pip install pipenv WORKDIR /app COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "app.py", "lin_reg.bin", "lin_reg_V2.bin", "./" ] EXPOSE 9696 ENTRYPOINT ["gunicorn", "--bind=0.0.0.0:9696", "app:app" ] ================================================ FILE: cohorts/2022/05-monitoring/homework/prediction_service/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" flask = "==2.0.1" pandas = "==1.1.5" evidently = "*" pymongo = "*" gunicorn = "*" [dev-packages] pyarrow = "*" [requires] python_version = "3.8" ================================================ FILE: cohorts/2022/05-monitoring/homework/prediction_service/app.py ================================================ import logging import os import pickle import uuid from flask import Flask, jsonify, request from pymongo import MongoClient MONGO_ADDRESS = os.getenv("MONGO_ADDRESS", "mongodb://localhost:27017/") MONGO_DATABASE = os.getenv("MONGO_DATABASE", "ride_prediction") LOGGED_MODEL = os.getenv("MODEL_FILE", "lin_reg.bin") MODEL_VERSION = os.getenv("MODEL_VERSION", "1") with open(LOGGED_MODEL, 'rb') as f_in: dv, model = pickle.load(f_in) mongo_client = MongoClient(MONGO_ADDRESS) mongo_db = mongo_client[MONGO_DATABASE] mongo_collection = mongo_db.get_collection("data") app = Flask("Ride-Prediction-Service") logging.basicConfig(level=logging.INFO) def prepare_features(ride): """Function to prepare features before making prediction""" record = ride.copy() record['PU_DO'] = '%s_%s' % (record['PULocationID'], record['DOLocationID']) features = dv.transform([record]) return features, record def save_db(record, pred_result): """Save data to mongo db collection""" rec = record.copy() rec["prediction"] = pred_result[0] mongo_collection.insert_one(rec) @app.route("/", methods=["GET"]) def get_info(): """Function to provide info about the app""" info = """

Ride Prediction Service

Data Request Example

"ride = { "PULocationID": 10, "DOLocationID": 50, "trip_distance": 40 }"

""" return info @app.route("/predict-duration", methods=["POST"]) def predict_duration(): """Function to predict duration""" ride = request.get_json() features, record = prepare_features(ride) prediction = model.predict(features) ride_id = str(uuid.uuid4()) pred_data = { "ride_id": ride_id, "PU_DO": record["PU_DO"], "trip_distance": record["trip_distance"], "status": 200, "duration": prediction[0], "model_version": MODEL_VERSION } save_db(record, prediction) result = { "statusCode": 200, "data" : pred_data } return jsonify(result) if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=9696) ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" pyarrow = "*" prefect = "==2.0b8" pandas = "*" pymongo = "*" psutil = "==5.9.1" evidently = "*" [dev-packages] [requires] python_version = "3.8" ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/clean_mongo.py ================================================ from pymongo import MongoClient MONGO_CLIENT_ADDRESS = "mongodb://localhost:27017/" MONGO_DATABASE = "prediction_service" if __name__ == "__main__": client = MongoClient(MONGO_CLIENT_ADDRESS) client.drop_database(MONGO_DATABASE) ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/monitor_profile.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "from pymongo import MongoClient\n", "import pprint" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.12 ('prediction_service_practice-b8Zbdkaa')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "63df8a96dcc14a3f8fc6f13bb4daf95ac616547a440980d0dc62a5d5ed05a07e" } } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/monitor_profile_solution.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from pymongo import MongoClient\n", "import pprint" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "MONGO_CLIENT_ADDRESS = \"mongodb://localhost:27017/\"\n", "MONGO_DATABASE = \"prediction_service\"\n", "REPORT_COLLECTION = \"report\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "client = MongoClient()\n", "collection = client.get_database(MONGO_DATABASE).get_collection(REPORT_COLLECTION)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9\n" ] } ], "source": [ "for col in collection.find():\n", " pprint.pprint(len(col['data_drift']['data']['metrics'].keys()))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.2 ('prefect-monitoring-vrjQsnUO')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "8c4128a542e647ac345fb470a121f5ad37749126bd51dd0e4b0f94b08087470c" } } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/prefect_monitoring.py ================================================ import json import os import pickle import pandas import pyarrow.parquet as pq from evidently import ColumnMapping from evidently.dashboard import Dashboard from evidently.dashboard.tabs import DataDriftTab, RegressionPerformanceTab from evidently.model_profile import Profile from evidently.model_profile.sections import ( DataDriftProfileSection, RegressionPerformanceProfileSection) from prefect import flow, task from pymongo import MongoClient MONGO_CLIENT_ADDRESS = "mongodb://localhost:27017/" MONGO_DATABASE = "prediction_service" PREDICTION_COLLECTION = "data" REPORT_COLLECTION = "report" REFERENCE_DATA_FILE = "../datasets/green_tripdata_2021-03.parquet" # Modify this for Q7 TARGET_DATA_FILE = "target.csv" MODEL_FILE = os.getenv('MODEL_FILE', '../prediction_service/lin_reg.bin') # Modify this for Q7 @task def upload_target(filename): client = MongoClient(MONGO_CLIENT_ADDRESS) collection = client.get_database(MONGO_DATABASE).get_collection(PREDICTION_COLLECTION) with open(filename) as f_target: for line in f_target.readlines(): row = line.split(",") collection.update_one({"id": row[0]}, {"$set": {"target": float(row[1])}} ) @task def load_reference_data(filename): with open(MODEL_FILE, 'rb') as f_in: dv, model = pickle.load(f_in) reference_data = pq.read_table(filename).to_pandas().sample(n=5000,random_state=42) #Monitoring for 1st 5000 records # Create features reference_data['PU_DO'] = reference_data['PULocationID'].astype(str) + "_" + reference_data['DOLocationID'].astype(str) # add target column reference_data['target'] = reference_data.lpep_dropoff_datetime - reference_data.lpep_pickup_datetime reference_data.target = reference_data.target.apply(lambda td: td.total_seconds() / 60) reference_data = reference_data[(reference_data.target >= 1) & (reference_data.target <= 60)] features = ['PU_DO', 'PULocationID', 'DOLocationID', 'trip_distance'] x_pred = dv.transform(reference_data[features].to_dict(orient='records')) reference_data['prediction'] = model.predict(x_pred) return reference_data @task def fetch_data(): client = MongoClient(MONGO_CLIENT_ADDRESS) data = client.get_database(MONGO_DATABASE).get_collection(PREDICTION_COLLECTION).find() df = pandas.DataFrame(list(data)) return df @task def run_evidently(ref_data, data): ref_data.drop(['ehail_fee'], axis=1, inplace=True) data.drop('ehail_fee', axis=1, inplace=True) # drop empty column (until Evidently will work with it properly) profile = Profile(sections=[DataDriftProfileSection(), RegressionPerformanceProfileSection()]) mapping = ColumnMapping(prediction="prediction", numerical_features=['trip_distance'], categorical_features=['PULocationID', 'DOLocationID'], datetime_features=[]) profile.calculate(ref_data, data, mapping) dashboard = Dashboard(tabs=[DataDriftTab(), RegressionPerformanceTab(verbose_level=0)]) dashboard.calculate(ref_data, data, mapping) return json.loads(profile.json()), dashboard @task def save_report(result): pass @task def save_html_report(result): pass @flow def batch_analyze(): upload_target(TARGET_DATA_FILE) ref_data = load_reference_data(REFERENCE_DATA_FILE).result() data = fetch_data().result() profile, dashboard = run_evidently(ref_data, data).result() save_report(profile) save_html_report(dashboard) batch_analyze() ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/prefect_monitoring_solution.py ================================================ import json import os import pickle from datetime import datetime import pandas import pyarrow.parquet as pq from evidently import ColumnMapping from evidently.dashboard import Dashboard from evidently.dashboard.tabs import DataDriftTab, RegressionPerformanceTab from evidently.model_profile import Profile from evidently.model_profile.sections import ( DataDriftProfileSection, RegressionPerformanceProfileSection) from prefect import flow, task from pymongo import MongoClient MONGO_CLIENT_ADDRESS = "mongodb://localhost:27017/" MONGO_DATABASE = "prediction_service" PREDICTION_COLLECTION = "data" REPORT_COLLECTION = "report" REFERENCE_DATA_FILE = "green_tripdata_2021-03to04.parquet" # Modify this for Q7 TARGET_DATA_FILE = "target.csv" MODEL_FILE = os.getenv('MODEL_FILE', '../prediction_service/lin_reg_V2.bin') # Modify this for Q7 @task def upload_target(filename): client = MongoClient(MONGO_CLIENT_ADDRESS) collection = client.get_database(MONGO_DATABASE).get_collection(PREDICTION_COLLECTION) with open(filename) as f_target: for line in f_target.readlines(): row = line.split(",") collection.update_one({"id": row[0]}, {"$set": {"target": float(row[1])}} ) @task def load_reference_data(filename): with open(MODEL_FILE, 'rb') as f_in: dv, model = pickle.load(f_in) reference_data = pq.read_table(filename).to_pandas().sample(n=5000,random_state=42) #Monitoring for 1st 5000 records # Create features reference_data['PU_DO'] = reference_data['PULocationID'].astype(str) + "_" + reference_data['DOLocationID'].astype(str) # add target column reference_data['target'] = reference_data.lpep_dropoff_datetime - reference_data.lpep_pickup_datetime reference_data.target = reference_data.target.apply(lambda td: td.total_seconds() / 60) reference_data = reference_data[(reference_data.target >= 1) & (reference_data.target <= 60)] features = ['PU_DO', 'PULocationID', 'DOLocationID', 'trip_distance'] x_pred = dv.transform(reference_data[features].to_dict(orient='records')) reference_data['prediction'] = model.predict(x_pred) return reference_data @task def fetch_data(): client = MongoClient(MONGO_CLIENT_ADDRESS) data = client.get_database(MONGO_DATABASE).get_collection(PREDICTION_COLLECTION).find() df = pandas.DataFrame(list(data)) return df @task def run_evidently(ref_data, data): ref_data.drop(['ehail_fee'], axis=1, inplace=True) data.drop('ehail_fee', axis=1, inplace=True) # drop empty column (until Evidently will work with it properly) profile = Profile(sections=[DataDriftProfileSection(), RegressionPerformanceProfileSection()]) mapping = ColumnMapping(prediction="prediction", numerical_features=['trip_distance'], categorical_features=['PULocationID', 'DOLocationID'], datetime_features=[]) profile.calculate(ref_data, data, mapping) dashboard = Dashboard(tabs=[DataDriftTab(), RegressionPerformanceTab(verbose_level=0)]) dashboard.calculate(ref_data, data, mapping) return json.loads(profile.json()), dashboard @task def save_report(result): """Save evidendtly profile for ride prediction to mongo server""" client = MongoClient(MONGO_CLIENT_ADDRESS) collection = client.get_database(MONGO_DATABASE).get_collection(REPORT_COLLECTION) collection.insert_one(result) @task def save_html_report(result, filename_suffix=None): """Create evidently html report file for ride prediction""" if filename_suffix is None: filename_suffix = datetime.now().strftime('%Y-%m-%d-%H-%M') result.save(f"ride_prediction_drift_report_{filename_suffix}.html") @flow def batch_analyze(): upload_target(TARGET_DATA_FILE) ref_data = load_reference_data(REFERENCE_DATA_FILE).result() data = fetch_data().result() profile, dashboard = run_evidently(ref_data, data).result() save_report(profile) save_html_report(dashboard) batch_analyze() ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/prepare_reference_data.py ================================================ import pandas as pd import pyarrow.parquet as pq data_files = ["../datasets/green_tripdata_2021-03.parquet", "../datasets/green_tripdata_2021-04.parquet"] output_file = "green_tripdata_2021-03to04.parquet" df = pd.DataFrame() for file in data_files: data = pq.read_table(file).to_pandas() df = pd.concat([data, df], ignore_index=True) df.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ================================================ FILE: cohorts/2022/05-monitoring/homework/prefect-monitoring/send_data.py ================================================ import json import uuid from datetime import datetime import pyarrow.parquet as pq import requests table = pq.read_table("../datasets/green_tripdata_2021-05.parquet")\ .to_pandas()\ .sample(n=5000, random_state=42) #5000 rows sampled data = table.copy() class DateTimeEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, datetime): return o.isoformat() return json.JSONEncoder.default(self, o) with open("target.csv", 'w') as f_target: for index, row in data.iterrows(): row['id'] = str(uuid.uuid4()) duration = (row['lpep_dropoff_datetime'] - row['lpep_pickup_datetime']).total_seconds() / 60 if duration >= 1 and duration <= 60: f_target.write(f"{row['id']},{duration}\n") resp = requests.post("http://127.0.0.1:9696/predict-duration", headers={"Content-Type": "application/json"}, data=row.to_json()).json() print(f"prediction: {resp['data']['duration']}") ================================================ FILE: cohorts/2022/05-monitoring/homework/prepare.py ================================================ from tqdm import tqdm import requests files = ["green_tripdata_2021-03.parquet", "green_tripdata_2021-04.parquet", "green_tripdata_2021-05.parquet"] path = "./datasets" print(f"Download files:") for file in files: # Change the url based on what works for you whether s3 or cloudfront url = f"https://d37ci6vzurychx.cloudfront.net/trip-data/{file}" resp = requests.get(url, stream=True) save_path = f"{path}/{file}" with open(save_path, "wb") as handle: for data in tqdm(resp.iter_content(), desc=f"{file}", postfix=f"save to {save_path}", total=int(resp.headers["Content-Length"])): handle.write(data) ================================================ FILE: cohorts/2022/05-monitoring/homework/requirements.txt ================================================ scikit-learn==1.0.2 dataclasses==0.6 Flask~=2.0.1 pandas>=1.1.5 Werkzeug~=2.0.1 requests~=2.26.0 prometheus_client~=0.11.0 pyyaml~=5.4.1 tqdm pyarrow prefect==2.0b8 pymongo evidently pipenv ================================================ FILE: cohorts/2022/05-monitoring/homework/test.py ================================================ import os import pprint from pymongo import MongoClient import requests MONGODB_ADDRESS = os.getenv("MONGODB_ADDRESS", "mongodb://127.0.0.1:27017/") FLASK_URL = "http://127.0.0.1:9696/predict-duration" mongo_client = MongoClient(MONGODB_ADDRESS) mongo_db = mongo_client['prediction_service'] mongo_collection = mongo_db['data'] ride_test_data = { "PULocationID": 10, "DOLocationID": 50, "trip_distance": 40 } if __name__ == "__main__": requests.post(url=FLASK_URL ,json=ride_test_data) for coll in mongo_collection.find(): pprint.pprint(coll) ================================================ FILE: cohorts/2022/05-monitoring/homework.md ================================================ ## 5.5 Homework > This homework is prepared by [Nakul Bajaj](https://github.com/Nakulbajaj101). Thank you Nakul! In this homework, we'll monitor the ride duration model deployed in batch mode. We will use green taxi data for this task. Before we start the homework we want to set up few things and make sure data is available. We have provided with two models: * one trained on 03-2021 * another trained on both 03-2021 and 04-2021 Both models are linear regression models. If you want to know how they are trained, check [homework/model_training.py](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/model_training.py). Both models will be uploaded in the docker image, we will use `ENVIRONMENT` variables in the docker-compose file, to specify which one to use. There is a `requirements.txt` to setup your conda or virtual environment. You can create a datasets folder in the `homework` directory or modify location for Q3 to Q7 ## Preparation To download data from 03-2021 to 05-2021, run [`prepare.py`](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prepare.py). If you create the datasets folder, then you don't have to modify this file, else modify it to point to the location where you want to store the data. If you get 403 errors, change it to S3 location or reach out in the channel, this issue has been addressed in the slack channel. For Q6 and Q7 we want to prepare the dataset which combines 03-2021 and Q4-2021. Run the [`prepare_reference_data.py`](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/prepare_reference_data.py) script for that. You'll find all the starter code in the [homework](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/) directory. ## Q1. Docker compose We'll start with the docker compose file in the homework directory. The file is ready to use and is in [homework/docker-compose-homework.yml](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/docker-compose-homework.yml). Run docker compose. Once up and running, open the localhost for mongo. What’s the message you get in browser at [http://localhost:27017](http://localhost:27017)? * No message is displayed (empty) * It looks like you are trying to access MongoDB over HTTP on the native driver port * This is a cool prediction service * None of the above ## Q2. Docker volume In the docker compose file we have specified the volume. We do it because we don't want to lose the data when we restart the services. We want to know what is this volume, so we can keep it safe and not delete it. What is the command to find the name of our volume? * `docker ls` * `docker images` * `docker volume rm` * `docker volume ls` ## Q3. Sending data to the prediction service The service is now up and running. When the requet comes in, it makes the prediction, and then saves it to mongo DB. Inspect the [homework/prediction_service/app.py](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prediction_service/app.py) file. We want to simulate traffic and get it ready for monitoring. For that we have prepared a python script [homework/prefect-monitoring/send_data.py](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/send_data.py). Run this script to score 5000 random datapoints for period 2021-05. What is the last prediction by the current model? * 22.16 * 15.74 * 9.93 * 27.24 ## Q4. Generate evidently report using Prefect We have prepared the prefect monitoring script, which will use the `target.csv` file prepared in the previous step. In the script we have provided the reference data file (data on which model was trained on, 03-2021). We want to know if the trips in 05-2021 deviated from 03-2021. You may have to modify two functions in the prefect monitoring script to generate the evidently profile and evidently report, `save_report` and `save_html_report`. The monitoring script is located in [homework/prefect-monitoring/prefect_monitoring.py](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/prefect_monitoring.py) How many model features have drifted based on the html report? * 3 * 2 * 5 * 0 ## Q5. Name of the test What’s the stats test for location ids? ## Q6. Sending data to the prediction service with new model Suppose some of the features have drifted. We want to run the new model to observe how it performs and compare it to the previous model. To do this, we need to make few modifications. In the docker compose file, change two environment variables: `MODEL_FILE` and `MODEL_VERSION`, pointing to the other model and providing a new model version. Once updated, restart the servers, so environment variables are updated. Similar to Q3, we will simulate the traffic with same data points, running the `send_data.py` file. Before we run this, we need to clean the mongo database. To do it, run [homework/prefect-monitoring/clean_mongo.py](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/clean_mongo.py). What is the last prediction made by the new model? * 15.74 * 16.64 * 37.002 * 8.50 ## Q7. Generate evidently report using Prefect with new model In this step we want to use the new reference data, which is a combination of 03-2021 and 04-2021. This should be the reference dataset because it was used to train the `lin_reg_V2.bin` model. Modify lines 22 and 24 in `prefect_monitoring.py` script to point to new data file and new model, then run the Prefect script. Which model feature detected drift when we run with the new model and new reference dataset, in comaprison to old run? * DOLocationID * PULocationID * target * trip_distance ## Q8. Bonus Question (Not marked) Whats the length of the metrics for collection name "report" stored as a collection in mongo db? Use this jupyter notebook: [homework/prefect-monitoring/monitor_profile.ipynb](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/monitor_profile.ipynb) * 2 * 9 * 5 * NA (empty) ## Submit the results * The homework is optional and there's no form for submitting the results * Its possible results may not match, but should be close ## Solution * Code * [Code - `docker compose.py`](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/docker-compose-homework-solution.yml) * [Code - `prefect monitoring script`](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/prefect_monitoring_solution.py) * [Code - `monitor profile notebook`](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/05-monitoring/homework/prefect-monitoring/monitor_profile_solution.ipynb) * [Video](https://www.youtube.com/watch?v=uwGg6PE8sLg) ================================================ FILE: cohorts/2022/06-best-practices/homework/Dockerfile ================================================ FROM python:3.9.7-slim RUN pip install -U pip RUN pip install pipenv WORKDIR /app COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] COPY [ "model.bin", "model.bin" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2022/06-best-practices/homework/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.9" ================================================ FILE: cohorts/2022/06-best-practices/homework/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import pickle import pandas as pd year = int(sys.argv[1]) month = int(sys.argv[2]) input_file = f'https://raw.githubusercontent.com/alexeygrigorev/datasets/master/nyc-tlc/fhv/fhv_tripdata_{year:04d}-{month:02d}.parquet' output_file = f's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PUlocationID', 'DOlocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.dropOff_datetime - df.pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred df_result.to_parquet(output_file, engine='pyarrow', index=False) ================================================ FILE: cohorts/2022/06-best-practices/homework.md ================================================ ## 6.7 Homework In this homework, we'll take the ride duration prediction model that we deployed in batch mode in homework 4 and improve the reliability of our code with unit and integration tests. You'll find the starter code in the [homework](homework/) directory. ## Q1. Refactoring Before we can start converting our code with tests, we need to refactor it. We'll start by getting rid of all the global variables. * Let's create a function `main` with two parameters: `year` and `month`. * Move all the code (except `read_data`) inside `main` * Make `categorical` a parameter for `read_data` and pass it inside `main` Now we need to create the "main" block from which we'll invoke the main function. How does the `if` statement that we use for this looks like? Hint: after refactoring, check that the code still works. Just run it e.g. for Feb 2021 and see if it finishes successfully. To make it easier to run it, you can write results to your local filesystem. E.g. here: ```python output_file = f'taxi_type=fhv_year={year:04d}_month={month:02d}.parquet' ``` ## Q2. Installing pytest Now we need to install `pytest`: ```bash pipenv install --dev pytest ``` Next, create a folder `tests` and create two files. One will be the file with tests. We can name it `test_batch.py`. What should be the other file? Hint: to be able to test `batch.py`, we need to be able to import it. Without this other file, we won't be able to do it. ## Q3. Writing first unit test Now let's cover our code with unit tests. We'll start with the pre-processing logic inside `read_data`. It's difficult to test right now because first reads the file and then performs some transformations. We need to split this code into two parts: reading (I/O) and transformation. So let's create a function `prepare_data` that takes in a dataframe (and some other parameters too) and applies some transformation to it. (That's basically the entire `read_data` function after reading the parquet file) Now create a test and use this as input: ```python data = [ (None, None, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2, 0), dt(1, 2, 50)), (1, 1, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PUlocationID', 'DOlocationID', 'pickup_datetime', 'dropOff_datetime'] df = pd.DataFrame(data, columns=columns) ``` Where `dt` is a helper function: ```python from datetime import datetime def dt(hour, minute, second=0): return datetime(2021, 1, 1, hour, minute, second) ``` Define the expected output and use the assert to make sure that the actual dataframe matches the expected one Tip: When you compare two Pandas DataFrames, the result is also a DataFrame. The same is true for Pandas Series. Also, a DataFrame could be turned into a list of dictionaries. How many rows should be there in the expected dataframe? - 1 - 2 - 3 - 4 ## Q4. Mocking S3 with Localstack Now let's prepare for an integration test. In our script, we write data to S3. So we'll use Localstack to mimic S3. First, let's run Localstack with Docker compose. Let's create a `docker-compose.yaml` file with just one service: localstack. Inside localstack, we're only interested in running S3. Start the service and test it by creating a bucket where we'll keep the output. Let's call it "nyc-duration". With AWS CLI, this is how we create a bucket: ```bash aws s3 mb s3://nyc-duration ``` Adjust it for localstack. How does the command look like? Check that the bucket was successfully created. With AWS, this is how we typically do it: ```bash aws s3 ls ``` ## Make input and output paths configurable Right now the input and output paths are hardcoded, but we want to change it for the tests. One of the possible ways would be to specify `INPUT_FILE_PATTERN` and `OUTPUT_FILE_PATTERN` via the env variables. Let's do that: ```bash export INPUT_FILE_PATTERN="s3://nyc-duration/in/{year:04d}-{month:02d}.parquet" export OUTPUT_FILE_PATTERN="s3://nyc-duration/out/{year:04d}-{month:02d}.parquet" ``` And this is how we can read them: ```python def get_input_path(year, month): default_input_pattern = 'https://raw.githubusercontent.com/alexeygrigorev/datasets/master/nyc-tlc/fhv/fhv_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) # rest of the main function ... ``` ## Reading from Localstack S3 with Pandas So far we've been reading parquet files from S3 with using pandas `read_parquet`. But this way we read it from the actual S3 service. Now we need to replace it with our localstack one. For that, we need to specify the endpoint url: ```python options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet('s3://bucket/file.parquet', storage_options=options) ``` Let's modify our `read_data` function: - check if `S3_ENDPOINT_URL` is set, and if it is, use it for reading - otherwise use the usual way ## Q5. Creating test data Now let's create `integration_test.py` We'll use the dataframe we created in Q3 (the dataframe for the unit test) and save it to S3. You don't need to do anything else: just create a dataframe and save it. We will pretent that this is data for January 2021. Run the `integration_test.py` script. After that, use AWS CLI to verify that the file was created. Use this snipped for saving the file: ```python df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) ``` What's the size of the file? - 3512 - 33512 - 63512 - 93512 Note: it's important to use the code from the snippet for saving the file. Otherwise the size may be different depending on the OS, engine and compression. Even if you use this exact snippet, the size of your dataframe may still be a bit off. Just select the closest option. ## Q6. Finish the integration test We can read from our localstack s3, but we also need to write to it. Create a function `save_data` which works similarly to `read_data`, but we use it for saving a dataframe. Let's run the `batch.py` script for "January 2021" (the fake data we created in Q5). We can do that from our integration test in Python: we can use `os.system` for doing that (there are other options too). Now it saves the result to localstack. The only thing we need to do now is to read this data and verify the result is correct. What's the sum of predicted durations for the test dataframe? - 23.05 - 46.23 - 69.28 - 81.78 ## Running the test (ungraded) The rest is ready, but we need to write a shell script for doing that. Let's do that! ## Submit the results * Submit your results here: https://forms.gle/SGLiBTwbBWNhK2sv6 * It's possible that your answers won't match exactly. If it's the case, select the closest one. * You can submit your answers multiple times. In this case, the last submission will be used for scoring. ## Deadline The deadline for submitting is 1 August 23:00 CEST. After that, the form will be closed. ## Solution After the deadline, we'll post the solution here ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/Dockerfile ================================================ FROM python:3.9.7-slim RUN pip install -U pip RUN pip install pipenv WORKDIR /app COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] COPY [ "model.bin", "model.bin" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.0.2" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] pytest = "*" [requires] python_version = "3.9" ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import os import sys import pickle import pandas as pd def prepare_data(df, categorical): df['duration'] = df.dropOff_datetime - df.pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df def read_data(filename, categorical): S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') if S3_ENDPOINT_URL is not None: options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet(filename, storage_options=options) else: df = pd.read_parquet(filename) return prepare_data(df, categorical) def write_date(filename, df): S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') if S3_ENDPOINT_URL is not None: options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df.to_parquet(filename, engine='pyarrow', index=False, storage_options=options) else: df.to_parquet(filename, engine='pyarrow', index=False) def get_input_path(year, month): default_input_pattern = 'https://raw.githubusercontent.com/alexeygrigorev/datasets/master/nyc-tlc/fhv/fhv_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PUlocationID', 'DOlocationID'] df = read_data(input_file, categorical) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred write_date(output_file, df_result) if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year, month) ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/docker-compose.yaml ================================================ services: s3: image: localstack/localstack ports: - "4566:4566" environment: - SERVICES=s3 ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/integration_test.py ================================================ import os from datetime import datetime import pandas as pd import batch def dt(hour, minute, second=0): return datetime(2021, 1, 1, hour, minute, second) S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } data = [ (None, None, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2, 0), dt(1, 2, 50)), (1, 1, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PUlocationID', 'DOlocationID', 'pickup_datetime', 'dropOff_datetime'] df_input = pd.DataFrame(data, columns=columns) input_file = batch.get_input_path(2021, 1) output_file = batch.get_output_path(2021, 1) df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) os.system('python batch.py 2021 1') df_actual = pd.read_parquet(output_file, storage_options=options) assert abs(df_actual['predicted_duration'].sum() - 69.28) < 0.1 ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/integration_test.sh ================================================ #!/usr/bin/env bash docker-compose up -d sleep 5 export INPUT_FILE_PATTERN="s3://nyc-duration/in/{year:04d}-{month:02d}.parquet" export OUTPUT_FILE_PATTERN="s3://nyc-duration/out/{year:04d}-{month:02d}.parquet" export S3_ENDPOINT_URL="http://localhost:4566" aws --endpoint-url="${S3_ENDPOINT_URL}" s3 mb s3://nyc-duration pipenv run python integration_test.py ERROR_CODE=$? if [ ${ERROR_CODE} != 0 ]; then docker-compose logs docker-compose down exit ${ERROR_CODE} fi echo "yay tests work!" docker-compose down ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/tests/__init__.py ================================================ ================================================ FILE: cohorts/2022/06-best-practices/homework_solution/tests/test_batch.py ================================================ from datetime import datetime import pandas as pd import batch def dt(hour, minute, second=0): return datetime(2021, 1, 1, hour, minute, second) def test_prepare_data(): data = [ (None, None, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2), dt(1, 10)), (1, 1, dt(1, 2, 0), dt(1, 2, 50)), (1, 1, dt(1, 2, 0), dt(2, 2, 1)), ] categorical = ['PUlocationID', 'DOlocationID'] columns = ['PUlocationID', 'DOlocationID', 'pickup_datetime', 'dropOff_datetime'] df = pd.DataFrame(data, columns=columns) df_actual = batch.prepare_data(df, categorical) data_expected = [ ('-1', '-1', 8.0), ( '1', '1', 8.0), ] columns_test = ['PUlocationID', 'DOlocationID', 'duration'] df_expected = pd.DataFrame(data_expected, columns=columns_test) print(df_actual) assert (df_actual['PUlocationID'] == df_expected['PUlocationID']).all() assert (df_actual['DOlocationID'] == df_expected['DOlocationID']).all() assert (df_actual['duration'] - df_expected['duration']).abs().sum() < 0.0000001 ================================================ FILE: cohorts/2022/07-project/README.md ================================================ ## Course Project The goal of this project is to apply everything we learned in this course and build an end-to-end machine learning project. Remember that to pass the project, you must evaluate 3 peers. If you don't do that, your project can't be considered compelete. ### Submitting #### Project Cohort #2 Project: * Form: https://forms.gle/aj8LHkY7PrWG9XzW6 * Deadline: 12 September, 23:00 CEST Peer reviewing: * Peer review assignments: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vQYTps829bmaN-aaJPiBUc3UwtN3e_llI44DKv-rQDsmVRMS1No7XWQqOyNI4ZbFbIvN351Q-G6edCP/pubhtml) ("project 2" tab) * Form: https://forms.gle/BeQ2HCohrM3puKf26 * Deadline: 19 September, 23:00 CEST Project feedback: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vRB5xKkhCyAUVNSNJvxaP94RwgNbYhf3dNf_ctRHhNKvvQQB94YVBn9JRdCTdQb5NGCJdYBtjXP7tP9/pubhtml) ("feedback-02" tab) #### Project Cohort #1 Project: * Form: https://forms.gle/7UmQkK4BBxqdgMDp9 * Deadline: 22 August, 23:00 CEST Peer reviewing: * Peer review assignments: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vQYTps829bmaN-aaJPiBUc3UwtN3e_llI44DKv-rQDsmVRMS1No7XWQqOyNI4ZbFbIvN351Q-G6edCP/pubhtml) ("project 1" tab) * Form: https://forms.gle/KaBMoYhmfeEFmiWb7 * Deadline: 29 August, 23:00 CEST Project feedback: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vRB5xKkhCyAUVNSNJvxaP94RwgNbYhf3dNf_ctRHhNKvvQQB94YVBn9JRdCTdQb5NGCJdYBtjXP7tP9/pubhtml) ("feedback-02" tab) ### Evaluation criteria See [here](../../../07-project/README.md) ### Misc To get the hash for your project, use this function to hash your email: ```python from hashlib import sha1 def compute_hash(email): return sha1(email.lower().encode('utf-8')).hexdigest() ``` Or use [this website](http://www.sha1-online.com/). ================================================ FILE: cohorts/2022/leaderboard.md ================================================ ## Leaderboard This is the top [100 leaderboard]([https://docs.google.com/spreadsheets/d/e/2PACX-1vQHj_Y138-aWhkPvwZFPIDl8aoJmtNjaUQ7ZaL-3BFhiuqQZgUpHY3yjbsvF_nsyF0WftTorji4ovCb/pubhtml#](https://docs.google.com/spreadsheets/d/e/2PACX-1vRhinTR4Gpxcud-xX0cPBVqboO8RE5gFY7W2dfgfhzECuPFOaCoo9TVWUTxxrSmzvbZY0D-N1vai8RN/pubhtml)) of participants of MLOps Zoomcamp 2022 edition!
Name Project Social Links and comments
Ashish Lalchandani Project
Purity Nyagweth Project
More info Links:
Giovanni Pecoraro Project
More info Links:
Nakul Bajaj Project
Marcos M. Jiménez Project
More info > I am still improving the project. A basic model, but the important is everything around it.
Mohammed Ayoub Chettouh Project
More info Links:
Pedro Munoz Project
Oluwatosin Olajide Project
Sergei Zemskov Project
Esteban Encina Project
Rizdi Aprilian Project
Karim Lulu Project
Babatunde Ayanlola Emmanuel Ayanlowo
More info Links: > Experts in SQL Language, Analytic Engineering &Product Management Using Scrum Framework.
Camilo A. Caceres F. Project
More info Links:
Yan Vlasov Project
Low Kim Hoe Project
Artem Glazkov Project
Jan Weber Project
Icaro Bombonato Project
More info > Feel free to contact me :)
Adam Gifford Project
More info Links: > I am the lead data scientist at BehaVR, a digital health and wellness startup looking to translate proven science into immersive and engaging XR therapeutics for mental and behavioral health. As we move towards our long-term goal of live operational monitoring and scoring of user activity to personalize experiences dynamically, this project serves as a foundation in framework development for real-time serving and monitoring of a prediction service to classify continuous-signal data.
Artem Li Project
Adesoba Adewale Olamide Project
Amir Project
Antonio Damiao Rodrigues Project
Walid Chrimni Project
Shivam Kurtarkar Project
Vyacheslav Shen Project
More info Links:
Venkat Ramakrishnan
Deepak Ramani Project
More info Links: > Awesome course. Great instructor. Learned a lot. Infrastructure surrounding ML is daunting but Alexey and Co make it simpler for us to get in. Highly recommended.
Frauke Albrecht Project
Rinat Gareev Project
More info > In my job the most of MLOps experience I have is with Kubeflow or Amazon SageMaker (AWS). I used this project to learn something new and evaluate new frameworks, for example, Ray. Thanks for the opportunity and the course!
Isaac Omolayo Project
Antonis Stellas Project
Ayush Bihani
Ruslan Romanov Project
More info > Learning process was very exciting
Pablo Dalchiele Project
Nahum Sá Project
Patrick Walukagga Project
More info > Enthusiastic Data Sciencist/Data Engineer/ML Engineer with a strong background in backend software engineering with Python.
Moiz Sajid Project
More info > Thank you to the DataTalks.Club team for organizing this amazing course that covers the latest technologies and trends in MLOps!
Yusuf Yelken Project
Alexander Gabriel Valverde Guillen Project
Carlos Pereira Project
Daniel Hen
bryskulov Project
Surawut Jirasaktavee Project
Sai Teja Macharla
Senthilkumar Gopal Project
More info Links:
Tim Becker
Ezinwanne Aka
Ammar Chalifah Project
Nwoke Tochukwu
Alessandro S. Project
Hakeem Kazeem
Isaac Kargar Project
More info Links:
Yalcin Erbasi Project
================================================ FILE: cohorts/2023/01-intro/homework.md ================================================ ## Homework The goal of this homework is to train a simple model for predicting the duration of a ride - similar to what we did in this module. ## Q1. Downloading the data We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), but instead of "**Green** Taxi Trip Records", we'll use "**Yellow** Taxi Trip Records". Download the data for January and February 2022. Read the data for January. How many columns are there? * 16 * 17 * 18 * 19 ## Q2. Computing duration Now let's compute the `duration` variable. It should contain the duration of a ride in minutes. What's the standard deviation of the trips duration in January? * 41.45 * 46.45 * 51.45 * 56.45 ## Q3. Dropping outliers Next, we need to check the distribution of the `duration` variable. There are some outliers. Let's remove them and keep only the records where the duration was between 1 and 60 minutes (inclusive). What fraction of the records left after you dropped the outliers? * 90% * 92% * 95% * 98% ## Q4. One-hot encoding Let's apply one-hot encoding to the pickup and dropoff location IDs. We'll use only these two features for our model. * Turn the dataframe into a list of dictionaries (remember to re-cast the ids to strings - otherwise it will label encode them) * Fit a dictionary vectorizer * Get a feature matrix from it What's the dimensionality of this matrix (number of columns)? * 2 * 155 * 345 * 515 * 715 ## Q5. Training a model Now let's use the feature matrix from the previous step to train a model. * Train a plain linear regression model with default parameters * Calculate the RMSE of the model on the training data What's the RMSE on train? * 6.99 * 11.99 * 16.99 * 21.99 ## Q6. Evaluating the model Now let's apply this model to the validation dataset (February 2022). What's the RMSE on validation? * 7.79 * 12.79 * 17.79 * 22.79 ## Submit the results * Submit your results here: https://forms.gle/uYTnWrcsubi2gdGV7 * You can submit your solution multiple times. In this case, only the last submission will be used * If your answer doesn't match options exactly, select the closest one ## Deadline The deadline for submitting is 23 May 2023 (Tuesday), 23:00 CEST (Berlin time). After that, the form will be closed. ================================================ FILE: cohorts/2023/02-experiment-tracking/homework/hpo.py ================================================ import os import pickle import click import mlflow import optuna from optuna.samplers import TPESampler from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--num_trials", default=10, help="The number of parameter evaluations for the optimizer to explore" ) def run_optimization(data_path: str, num_trials: int): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) def objective(trial): params = { 'n_estimators': trial.suggest_int('n_estimators', 10, 50, 1), 'max_depth': trial.suggest_int('max_depth', 1, 20, 1), 'min_samples_split': trial.suggest_int('min_samples_split', 2, 10, 1), 'min_samples_leaf': trial.suggest_int('min_samples_leaf', 1, 4, 1), 'random_state': 42, 'n_jobs': -1 } rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) return rmse sampler = TPESampler(seed=42) study = optuna.create_study(direction="minimize", sampler=sampler) study.optimize(objective, n_trials=num_trials) if __name__ == '__main__': run_optimization() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework/preprocess_data.py ================================================ import os import pickle import click import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df['lpep_dropoff_datetime'] - df['lpep_pickup_datetime'] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option( "--dest_path", help="Location where the resulting files will be saved" ) def run_data_prep(raw_data_path: str, dest_path: str, dataset: str = "green"): # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-03.parquet") ) # Extract the target target = 'tip_amount' y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': run_data_prep() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework/register_model.py ================================================ import os import pickle import click import mlflow from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" RF_PARAMS = ['max_depth', 'n_estimators', 'min_samples_split', 'min_samples_leaf', 'random_state', 'n_jobs'] mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): for param in RF_PARAMS: params[param] = int(params[param]) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) # Evaluate model on the validation and test sets val_rmse = mean_squared_error(y_val, rf.predict(X_val), squared=False) mlflow.log_metric("val_rmse", val_rmse) test_rmse = mean_squared_error(y_test, rf.predict(X_test), squared=False) mlflow.log_metric("test_rmse", test_rmse) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--top_n", default=5, type=int, help="Number of top models that need to be evaluated to decide which one to promote" ) def run_register_model(data_path: str, top_n: int): client = MlflowClient() # Retrieve the top_n model runs and log the models experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # Select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) # best_run = client.search_runs( ... )[0] # Register the best model # mlflow.register_model( ... ) if __name__ == '__main__': run_register_model() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework/train.py ================================================ import os import pickle import click from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) def run_train(data_path: str): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) if __name__ == '__main__': run_train() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework-wandb/preprocess_data.py ================================================ import os import pickle import click import pandas as pd import wandb from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df["duration"] = df["lpep_dropoff_datetime"] - df["lpep_pickup_datetime"] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df["PU_DO"] = df["PULocationID"] + "_" + df["DOLocationID"] categorical = ["PU_DO"] numerical = ["trip_distance"] dicts = df[categorical + numerical].to_dict(orient="records") if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option("--wandb_project", help="Name of Weights & Biases project") @click.option("--wandb_entity", help="Name of Weights & Biases entity") @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option("--dest_path", help="Location where the resulting files will be saved") def run_data_prep( wandb_project: str, wandb_entity: str, raw_data_path: str, dest_path: str, dataset: str = "green", ): # Initialize a Weights & Biases run wandb.init(project=wandb_project, entity=wandb_entity, job_type="preprocess") # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-03.parquet") ) # Extract the target target = "tip_amount" y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) artifact = wandb.Artifact("NYC-Taxi", type="preprocessed_dataset") artifact.add_dir(dest_path) wandb.log_artifact(artifact) if __name__ == "__main__": run_data_prep() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework-wandb/sweep.py ================================================ import os import pickle import click from functools import partial import wandb from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) def run_train(data_artifact: str): wandb.init() config = wandb.config # Fetch the preprocessed dataset from artifacts artifact = wandb.use_artifact(data_artifact, type="preprocessed_dataset") data_path = artifact.download() X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) # Define the XGBoost Regressor Mode, train the model and perform prediction # TODO: Pass the parameters n_estimators, min_samples_split, min_samples_leaf from `config` to `RandomForestRegressor` rf = RandomForestRegressor(max_depth=config.max_depth, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) mse = mean_squared_error(y_val, y_pred, squared=False) wandb.log({"MSE": mse}) with open("regressor.pkl", "wb") as f: pickle.dump(rf, f) artifact = wandb.Artifact(f"{wandb.run.id}-model", type="model") artifact.add_file("regressor.pkl") wandb.log_artifact(artifact) SWEEP_CONFIG = { "method": "bayes", "metric": {"name": "MSE", "goal": "minimize"}, "parameters": { "max_depth": { "distribution": "int_uniform", "min": 1, "max": 20, }, "n_estimators": { "distribution": "int_uniform", "min": 10, "max": 50, }, "min_samples_split": { "distribution": "int_uniform", "min": 2, "max": 10, }, "min_samples_leaf": { "distribution": "int_uniform", "min": 1, "max": 4, }, }, } @click.command() @click.option("--wandb_project", help="Name of Weights & Biases project") @click.option("--wandb_entity", help="Name of Weights & Biases entity") @click.option( "--data_artifact", help="Address of the Weights & Biases artifact holding the preprocessed data", ) @click.option("--count", default=5, help="Number of iterations in the sweep") def run_sweep(wandb_project: str, wandb_entity: str, data_artifact: str, count: int): sweep_id = wandb.sweep(SWEEP_CONFIG, project=wandb_project, entity=wandb_entity) wandb.agent(sweep_id, partial(run_train, data_artifact=data_artifact), count=count) if __name__ == "__main__": run_sweep() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework-wandb/train.py ================================================ import os import pickle import click import wandb from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option("--wandb_project", help="Name of Weights & Biases project") @click.option("--wandb_entity", help="Name of Weights & Biases entity") @click.option( "--data_artifact", help="Address of the Weights & Biases artifact holding the preprocessed data", ) @click.option("--random_state", default=0, help="Random state") @click.option("--max_depth", default=10, help="Max tree depth") def run_train( wandb_project: str, wandb_entity: str, data_artifact: str, max_depth: int, random_state: int, ): # Initialize a Weights & Biases run wandb.init( project=wandb_project, entity=wandb_entity, job_type="train", config={"max_depth": max_depth, "random_state": random_state}, ) # Fetch the preprocessed dataset from artifacts artifact = wandb.use_artifact(data_artifact, type="preprocessed_dataset") data_path = artifact.download() X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) # Define the XGBoost Regressor Mode, train the model and perform prediction rf = RandomForestRegressor(max_depth=max_depth, random_state=random_state) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) mse = mean_squared_error(y_val, y_pred, squared=False) # TODO: Log `mse` to Weights & Biases under the key `"MSE"` with open("regressor.pkl", "wb") as f: pickle.dump(rf, f) # TODO: Log `regressor.pkl` as an artifact of type `model` if __name__ == "__main__": run_train() ================================================ FILE: cohorts/2023/02-experiment-tracking/homework.md ================================================ ## Homework The goal of this homework is to get familiar with tools like MLflow for experiment tracking and model management. ## Q1. Install the package To get started with MLflow you'll need to install the appropriate Python package. For this we recommend creating a separate Python environment, for example, you can use [conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-envs), and then install the package there with `pip` or `conda`. Once you installed the package, run the command `mlflow --version` and check the output. What's the version that you have? ## Q2. Download and preprocess the data We'll use the Green Taxi Trip Records dataset to predict the amount of tips for each trip. Download the data for January, February and March 2022 in parquet format from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). Use the script `preprocess_data.py` located in the folder [`homework`](homework) to preprocess the data. The script will: * load the data from the folder `` (the folder where you have downloaded the data), * fit a `DictVectorizer` on the training set (January 2022 data), * save the preprocessed datasets and the `DictVectorizer` to disk. Your task is to download the datasets and then execute this command: ``` python preprocess_data.py --raw_data_path --dest_path ./output ``` Tip: go to `02-experiment-tracking/homework/` folder before executing the command and change the value of `` to the location where you saved the data. So what's the size of the saved `DictVectorizer` file? * 54 kB * 154 kB * 54 MB * 154 MB ## Q3. Train a model with autolog We will train a `RandomForestRegressor` (from Scikit-Learn) on the taxi dataset. We have prepared the training script `train.py` for this exercise, which can be also found in the folder `homework`. The script will: * load the datasets produced by the previous step, * train the model on the training set, * calculate the RMSE score on the validation set. Your task is to modify the script to enable **autologging** with MLflow, execute the script and then launch the MLflow UI to check that the experiment run was properly tracked. Tip 1: don't forget to wrap the training code with a `with mlflow.start_run():` statement as we showed in the videos. Tip 2: don't modify the hyperparameters of the model to make sure that the training will finish quickly. What is the value of the `max_depth` parameter: * 4 * 6 * 8 * 10 ## Launch the tracking server locally for MLflow Now we want to manage the entire lifecycle of our ML model. In this step, you'll need to launch a tracking server. This way we will also have access to the model registry. In case of MLflow, you need to: * launch the tracking server on your local machine, * select a SQLite db for the backend store and a folder called `artifacts` for the artifacts store. You should keep the tracking server running to work on the next three exercises that use the server. ## Q4. Tune model hyperparameters Now let's try to reduce the validation error by tuning the hyperparameters of the `RandomForestRegressor` using `optuna`. We have prepared the script `hpo.py` for this exercise. Your task is to modify the script `hpo.py` and make sure that the validation RMSE is logged to the tracking server for each run of the hyperparameter optimization (you will need to add a few lines of code to the `objective` function) and run the script without passing any parameters. After that, open UI and explore the runs from the experiment called `random-forest-hyperopt` to answer the question below. Note: Don't use autologging for this exercise. The idea is to just log the information that you need to answer the question below, including: * the list of hyperparameters that are passed to the `objective` function during the optimization, * the RMSE obtained on the validation set (February 2022 data). What's the best validation RMSE that you got? * 1.85 * 2.15 * 2.45 * 2.85 ## Q5. Promote the best model to the model registry The results from the hyperparameter optimization are quite good. So, we can assume that we are ready to test some of these models in production. In this exercise, you'll promote the best model to the model registry. We have prepared a script called `register_model.py`, which will check the results from the previous step and select the top 5 runs. After that, it will calculate the RMSE of those models on the test set (March 2022 data) and save the results to a new experiment called `random-forest-best-models`. Your task is to update the script `register_model.py` so that it selects the model with the lowest RMSE on the test set and registers it to the model registry. Tips for MLflow: * you can use the method `search_runs` from the `MlflowClient` to get the model with the lowest RMSE, * to register the model you can use the method `mlflow.register_model` and you will need to pass the right `model_uri` in the form of a string that looks like this: `"runs://model"`, and the name of the model (make sure to choose a good one!). What is the test RMSE of the best model? * 1.885 * 2.185 * 2.555 * 2.955 ## Q6. Model metadata Now explore your best model in the model registry using UI. What information does the model registry contain about each model? * Version number * Source experiment * Model signature * All the above answers are correct ## Submit the results * Submit your results here: https://forms.gle/Fy1pvrPEKd4yjz3s6 * You can submit your solution multiple times. In this case, only the last submission will be used * If your answer doesn't match options exactly, select the closest one ## Deadline The deadline for submitting is 4 June 2023 (Sunday), 22:00 CEST (Berlin time). After that, the form will be closed. ================================================ FILE: cohorts/2023/02-experiment-tracking/solution-mlflow/hpo.py ================================================ import os import pickle import click import mlflow import optuna from optuna.samplers import TPESampler from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--num_trials", default=10, help="The number of parameter evaluations for the optimizer to explore" ) def run_optimization(data_path: str, num_trials: int): mlflow.sklearn.autolog(disable=True) X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) def objective(trial): params = { 'n_estimators': trial.suggest_int('n_estimators', 10, 50, 1), 'max_depth': trial.suggest_int('max_depth', 1, 20, 1), 'min_samples_split': trial.suggest_int('min_samples_split', 2, 10, 1), 'min_samples_leaf': trial.suggest_int('min_samples_leaf', 1, 4, 1), 'random_state': 42, 'n_jobs': -1 } with mlflow.start_run(): mlflow.log_params(params) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return rmse sampler = TPESampler(seed=42) study = optuna.create_study(direction="minimize", sampler=sampler) study.optimize(objective, n_trials=num_trials) if __name__ == '__main__': run_optimization() ================================================ FILE: cohorts/2023/02-experiment-tracking/solution-mlflow/preprocess_data.py ================================================ import os import pickle import click import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df['lpep_dropoff_datetime'] - df['lpep_pickup_datetime'] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option( "--dest_path", help="Location where the resulting files will be saved" ) def run_data_prep(raw_data_path: str, dest_path: str, dataset: str = "green"): # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2022-03.parquet") ) # Extract the target target = 'tip_amount' y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': run_data_prep() ================================================ FILE: cohorts/2023/02-experiment-tracking/solution-mlflow/register_model.py ================================================ import os import pickle import click import mlflow from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" RF_PARAMS = ['max_depth', 'n_estimators', 'min_samples_split', 'min_samples_leaf', 'random_state', 'n_jobs'] mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): for param in RF_PARAMS: params[param] = int(params[param]) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) # Evaluate model on the validation and test sets val_rmse = mean_squared_error(y_val, rf.predict(X_val), squared=False) mlflow.log_metric("val_rmse", val_rmse) test_rmse = mean_squared_error(y_test, rf.predict(X_test), squared=False) mlflow.log_metric("test_rmse", test_rmse) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--top_n", default=5, type=int, help="Number of top models that need to be evaluated to decide which one to promote" ) def run_register_model(data_path: str, top_n: int): client = MlflowClient() # Retrieve the top_n model runs and log the models experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # Select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) best_run = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.test_rmse ASC"] )[0] # Register the best model run_id = best_run.info.run_id model_uri = f"runs:/{run_id}/model" mlflow.register_model(model_uri, name="rf-best-model") if __name__ == '__main__': run_register_model() ================================================ FILE: cohorts/2023/02-experiment-tracking/solution-mlflow/train.py ================================================ import os import pickle import click import mlflow from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("random-forest-train") def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) def run_train(data_path: str): mlflow.sklearn.autolog() X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) with mlflow.start_run(): rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) if __name__ == '__main__': run_train() ================================================ FILE: cohorts/2023/02-experiment-tracking/wandb.md ================================================ ## Weights & Biases workshop * Video: https://www.youtube.com/watch?v=yNyqFMwEyL4 * Github repository: https://wandb.me/mlops-zoomcamp-github ## Homework with Weights & Biases The goal of this homework is to get familiar with Weights & Biases for experiment tracking, model management, hyperparameter optimization, and many more. Before getting started with the homework, you need to have a Weights & Biases account. You can do so by visiting [wandb.ai/site](https://wandb.ai/site) and clicking on the **Sign Up** button. # Q1. Install the Package To get started with Weights & Biases, you'll need to install the appropriate Python package. For this, we recommend creating a separate Python environment. For example, you can use [conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-envs), and then install the package there with `pip` or `conda`. The following are the libraries you need to install: * `pandas` * `matplotlib` * `scikit-learn` * `pyarrow` * `wandb` Once you have installed the package, run the command `wandb --version` and check the output. What's the version that you have? # Q2. Download and preprocess the data We'll use the Green Taxi Trip Records dataset to predict the amount of tips for each trip. Download the data for January, February and March 2022 in parquet format from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). **Tip:** In case you're on [GitHub Codespaces](https://github.com/features/codespaces) or [gitpod.io](https://gitpod.io), you can open up the terminal and run the following commands to download the data: ```shell wget https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2022-01.parquet wget https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2022-02.parquet wget https://d37ci6vzurychx.cloudfront.net/trip-data/green_tripdata_2022-03.parquet ``` Use the script `preprocess_data.py` located in the folder [`homework-wandb`](homework-wandb) to preprocess the data. The script will: * initialize a Weights & Biases run. * load the data from the folder `` (the folder where you have downloaded the data), * fit a `DictVectorizer` on the training set (January 2022 data), * save the preprocessed datasets and the `DictVectorizer` to your Weights & Biases dashboard as an artifact of type `preprocessed_dataset`. Your task is to download the datasets and then execute this command: ```bash python preprocess_data.py \ --wandb_project \ --wandb_entity \ --raw_data_path \ --dest_path ./output ``` Tip: Go to `02-experiment-tracking/homework-wandb/` folder before executing the command and change the value of `` to the name of your Weights & Biases project, `` to your Weights & Biases username, and `` to the location where you saved the data. Once you navigate to the `Files` tab of your artifact on your Weights & Biases page, what's the size of the saved `DictVectorizer` file? * 54 kB * 154 kB * 54 MB * 154 MB # Q3. Train a model with Weights & Biases logging We will train a `RandomForestRegressor` (from Scikit-Learn) on the taxi dataset. We have prepared the training script `train.py` for this exercise, which can also be found in the folder `homework-wandb`. The script will: * initialize a Weights & Biases run. * load the preprocessed datasets by fetching them from the Weights & Biases artifact previously created, * train the model on the training set, * calculate the MSE score on the validation set and log it to Weights & Biases, * save the trained model and log it to Weights & Biases as a model artifact. Your task is to modify the script to enable adding Weights & Biases logging, execute the script and then check the Weights & Biases run UI to ensure that the experiment run was properly tracked. TODO 1: log `mse` to Weights & Biases under the key `"MSE"` TODO 2: log `regressor.pkl` as an artifact of type `model`. Refer to the [official docs](https://docs.wandb.ai/guides/artifacts) for more information on logging artifacts. You can run the script using: ```bash python train.py \ --wandb_project \ --wandb_entity \ --data_artifact "//NYC-Taxi:v0" ``` Tip 1: You can find the artifact address under the `Usage` tab on the respective artifact's page. Tip 2: Don't modify the hyperparameters of the model to ensure that the training will finish quickly. Once you have successfully run the script, navigate the `Overview` section of the run in the Weights & Biases UI and scroll down to the `Configs`. What is the value of the `max_depth` parameter: * 4 * 6 * 8 * 10 # Q4. Tune model hyperparameters Now let's try to reduce the validation error by tuning the hyperparameters of the `RandomForestRegressor` using [Weights & Biases Sweeps](https://docs.wandb.ai/guides/sweeps). We have prepared the script `sweep.py` for this exercise in the `homework-wandb` directory. Your task is to modify `sweep.py` to pass the parameters `n_estimators`, `min_samples_split` and `min_samples_leaf` from `config` to `RandomForestRegressor` inside the `run_train()` function. Then, we will run the sweep to determine not only the best of hyperparameters for training our model but also to analyze the most optimal trends in different hyperparameters. We can run the sweep using: ```bash python sweep.py \ --wandb_project \ --wandb_entity \ --data_artifact "//NYC-Taxi:v0" ``` This command will run the sweep for 5 iterations using the **Bayesian Optimization and HyperBand** method, as proposed by the paper [BOHB: Robust and Efficient Hyperparameter Optimization at Scale](https://arxiv.org/abs/1807.01774). You can take a look at the sweep on your Weights & Biases dashboard, examine at the **Parameter Importance Panel** and the **Parallel Coordinates Plot** to determine and analyze which hyperparameter is the most important: * `max_depth` * `n_estimators` * `min_samples_split` * `min_samples_leaf` # Q5. Link the best model to the model registry Now that we have obtained the optimal set of hyperparameters and trained the best model, we can assume that we are ready to test some of these models in production. In this exercise, you'll create a model registry and link the best model from the Sweep to the model registry. First, you will need to create a Registered Model to hold all the candidate models for your particular modeling task. You can refer to [this section](https://docs.wandb.ai/guides/models/walkthrough#1-create-a-new-registered-model) of the official docs to learn how to create a registered model using the Weights & Biases UI. Once you have created the Registered Model successfully, you can navigate to the best run of your sweep, go to the model artifact created by the particular run, and click on the `Link to Registry` option in the UI. This will link the model artifact to the Registered Model. You can choose to add some suitable aliases for the Registered Model, such as `production`, `best`, etc. Now that the model artifact is linked to the Registered Model, what information do we see on the Registered Model UI? * Versioning * Metadata * Aliases * Metric (MSE) * Source run * All of these * None of these ## Submit the results * Submit your results here: https://forms.gle/ndmTHeogFLeckSHm9 * You can submit your solution multiple times; in this case, only the last submission will be considered * If your answer doesn't match options exactly, select the closest one ## Deadline The deadline for submitting is 6 June, 23:00 (Berlin time). After that, the form will be closed. ================================================ FILE: cohorts/2023/03-orchestration/homework.md ================================================ ## Homework The goal of this homework is to familiarize users with workflow orchestration. Start with the orchestrate.py file in the 03-orchestration/3.4 folder of the course repo: https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/03-orchestration/3.4/orchestrate.py ## Q1. Human-readable name You’d like to give the first task, `read_data` a nicely formatted name. How can you specify a task name? > Hint: look in the docs at https://docs.prefect.io or > check out the doc string in a code editor. - `@task(retries=3, retry_delay_seconds=2, name="Read taxi data")` - `@task(retries=3, retry_delay_seconds=2, task_name="Read taxi data")` - `@task(retries=3, retry_delay_seconds=2, task-name="Read taxi data")` - `@task(retries=3, retry_delay_seconds=2, task_name_function=lambda x: f"Read taxi data")` ## Q2. Cron Cron is a common scheduling specification for workflows. Using the flow in `orchestrate.py`, create a deployment. Schedule your deployment to run on the third day of every month at 9am UTC. What’s the cron schedule for that? - `0 9 3 * *` - `0 0 9 3 *` - `9 * 3 0 *` - `* * 9 3 0` ## Q3. RMSE Download the January 2023 Green Taxi data and use it for your training data. Download the February 2023 Green Taxi data and use it for your validation data. Make sure you upload the data to GitHub so it is available for your deployment. Create a custom flow run of your deployment from the UI. Choose Custom Run for the flow and enter the file path as a string on the JSON tab under Parameters. Make sure you have a worker running and polling the correct work pool. View the results in the UI. What’s the final RMSE to five decimal places? - 6.67433 - 5.19931 - 8.89443 - 9.12250 ## Q4. RMSE (Markdown Artifact) Download the February 2023 Green Taxi data and use it for your training data. Download the March 2023 Green Taxi data and use it for your validation data. Create a Prefect Markdown artifact that displays the RMSE for the validation data. Create a deployment and run it. What’s the RMSE in the artifact to two decimal places ? - 9.71 - 12.02 - 15.33 - 5.37 ## Q5. Emails It’s often helpful to be notified when something with your dataflow doesn’t work as planned. Create an email notification for to use with your own Prefect server instance. In your virtual environment, install the prefect-email integration with ```bash pip install prefect-email ``` Make sure you are connected to a running Prefect server instance through your Prefect profile. See the docs if needed: https://docs.prefect.io/latest/concepts/settings/#configuration-profiles Register the new block with your server with ```bash prefect block register -m prefect_email ``` Remember that a block is a Prefect class with a nice UI form interface. Block objects live on the server and can be created and accessed in your Python code. See the docs for how to authenticate by saving your email credentials to a block and note that you will need an App Password to send emails with Gmail and other services. Follow the instructions in the docs. Create and save an `EmailServerCredentials` notification block. Use the credentials block to send an email. Test the notification functionality by running a deployment. What is the name of the pre-built prefect-email task function? - `send_email_message` - `email_send_message` - `send_email` - `send_message` ## Q6. Prefect Cloud The hosted Prefect Cloud lets you avoid running your own Prefect server and has automations that allow you to get notifications when certain events occur or don’t occur. Create a free forever Prefect Cloud account at [app.prefect.cloud](https://app.prefect.cloud/) and connect your workspace to it following the steps in the UI when you sign up. Set up an Automation from the UI that will send yourself an email when a flow run completes. Run one of your existing deployments and check your email to see the notification. Make sure your active profile is pointing toward Prefect Cloud and make sure you have a worker active. What is the name of the second step in the Automation creation process? - Details - Trigger - Actions - The end ## Submit the results * Submit your results here: https://forms.gle/nVSYH5fGGamdY1LaA * You can submit your solution multiple times. In this case, only the last submission will be used * If your answer doesn't match options exactly, select the closest one ## Deadline The deadline for submitting is 12 June (Monday), 23:00 CEST (Berlin time). After that, the form will be closed. ================================================ FILE: cohorts/2023/03-orchestration/prefect/.gitignore ================================================ data/ .ipynb_checkpoints models/* mlruns/* .vscode/ ./DS_Store *.db *.DS_Store ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.2/cat_dog_facts.py ================================================ import httpx from prefect import flow @flow def fetch_cat_fact(): '''A flow that gets a cat fact''' return httpx.get("https://catfact.ninja/fact?max_length=140").json()["fact"] @flow def fetch_dog_fact(): '''A flow that gets a dog fact''' return httpx.get( "https://dogapi.dog/api/v2/facts", headers={"accept": "application/json"}, ).json()["data"][0]["attributes"]["body"] @flow(log_prints=True) def animal_facts(): cat_fact = fetch_cat_fact() dog_fact = fetch_dog_fact() print(f"🐱: {cat_fact} \n🐶: {dog_fact}") if __name__ == "__main__": animal_facts() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.2/cat_facts.py ================================================ import httpx from prefect import flow, task @task(retries=4, retry_delay_seconds=0.1, log_prints=True) def fetch_cat_fact(): cat_fact = httpx.get("https://f3-vyx5c2hfpq-ue.a.run.app/") #An endpoint that is designed to fail sporadically if cat_fact.status_code >= 400: raise Exception() print(cat_fact.text) @flow def fetch(): fetch_cat_fact() if __name__ == "__main__": fetch() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.3/duration_prediction_explore.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "137dd095", "metadata": {}, "source": [ "Explorations of `duration-prediction.ipynb` from Module 2." ] }, { "cell_type": "code", "execution_count": 1, "id": "b2bd82d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.9.12\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": 2, "id": "41062d8a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "c984c564", "metadata": {}, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 4, "id": "4add538c", "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "id": "8b135c2b", "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.linear_model import Lasso\n", "from sklearn.linear_model import Ridge\n", "\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 6, "id": "1464985f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2023/05/11 11:51:37 INFO mlflow.store.db.utils: Creating initial MLflow database tables...\n", "2023/05/11 11:51:37 INFO mlflow.store.db.utils: Updating database tables\n", "INFO [alembic.runtime.migration] Context impl SQLiteImpl.\n", "INFO [alembic.runtime.migration] Will assume non-transactional DDL.\n", "INFO [alembic.runtime.migration] Running upgrade -> 451aebb31d03, add metric step\n", "INFO [alembic.runtime.migration] Running upgrade 451aebb31d03 -> 90e64c465722, migrate user column to tags\n", "INFO [alembic.runtime.migration] Running upgrade 90e64c465722 -> 181f10493468, allow nulls for metric values\n", "INFO [alembic.runtime.migration] Running upgrade 181f10493468 -> df50e92ffc5e, Add Experiment Tags Table\n", "INFO [alembic.runtime.migration] Running upgrade df50e92ffc5e -> 7ac759974ad8, Update run tags with larger limit\n", "INFO [alembic.runtime.migration] Running upgrade 7ac759974ad8 -> 89d4b8295536, create latest metrics table\n", "INFO [89d4b8295536_create_latest_metrics_table_py] Migration complete!\n", "INFO [alembic.runtime.migration] Running upgrade 89d4b8295536 -> 2b4d017a5e9b, add model registry tables to db\n", "INFO [2b4d017a5e9b_add_model_registry_tables_to_db_py] Adding registered_models and model_versions tables to database.\n", "INFO [2b4d017a5e9b_add_model_registry_tables_to_db_py] Migration complete!\n", "INFO [alembic.runtime.migration] Running upgrade 2b4d017a5e9b -> cfd24bdc0731, Update run status constraint with killed\n", "INFO [alembic.runtime.migration] Running upgrade cfd24bdc0731 -> 0a8213491aaa, drop_duplicate_killed_constraint\n", "INFO [alembic.runtime.migration] Running upgrade 0a8213491aaa -> 728d730b5ebd, add registered model tags table\n", "INFO [alembic.runtime.migration] Running upgrade 728d730b5ebd -> 27a6a02d2cf1, add model version tags table\n", "INFO [alembic.runtime.migration] Running upgrade 27a6a02d2cf1 -> 84291f40a231, add run_link to model_version\n", "INFO [alembic.runtime.migration] Running upgrade 84291f40a231 -> a8c4a736bde6, allow nulls for run_id\n", "INFO [alembic.runtime.migration] Running upgrade a8c4a736bde6 -> 39d1c3be5f05, add_is_nan_constraint_for_metrics_tables_if_necessary\n", "INFO [alembic.runtime.migration] Running upgrade 39d1c3be5f05 -> c48cb773bb87, reset_default_value_for_is_nan_in_metrics_table_for_mysql\n", "INFO [alembic.runtime.migration] Running upgrade c48cb773bb87 -> bd07f7e963c5, create index on run_uuid\n", "INFO [alembic.runtime.migration] Running upgrade bd07f7e963c5 -> 0c779009ac13, add deleted_time field to runs table\n", "INFO [alembic.runtime.migration] Running upgrade 0c779009ac13 -> cc1f77228345, change param value length to 500\n", "INFO [alembic.runtime.migration] Running upgrade cc1f77228345 -> 97727af70f4d, Add creation_time and last_update_time to experiments table\n", "INFO [alembic.runtime.migration] Running upgrade 97727af70f4d -> 3500859a5d39, Add Model Aliases table\n", "INFO [alembic.runtime.migration] Context impl SQLiteImpl.\n", "INFO [alembic.runtime.migration] Will assume non-transactional DDL.\n", "2023/05/11 11:51:37 INFO mlflow.tracking.fluent: Experiment with name 'nyc-taxi-experiment' does not exist. Creating a new experiment.\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import mlflow\n", "\n", "\n", "mlflow.set_tracking_uri(\"sqlite:///mlflow.db\")\n", "mlflow.set_experiment(\"nyc-taxi-experiment\")" ] }, { "cell_type": "code", "execution_count": 18, "id": "f9e6479e", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename):\n", " df = pd.read_parquet(filename) # switched to reading in parquet files\n", "\n", " df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime)\n", " df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 19, "id": "8029eba0", "metadata": {}, "outputs": [], "source": [ "df_train = read_dataframe(filename=\"../data/green_tripdata_2021-01.parquet\")\n", "df_val = read_dataframe(filename=\"../data/green_tripdata_2021-02.parquet\")" ] }, { "cell_type": "code", "execution_count": 20, "id": "f6f2f0eb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(73908, 61921)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df_train), len(df_val)" ] }, { "cell_type": "code", "execution_count": 21, "id": "951d51ef", "metadata": {}, "outputs": [], "source": [ "df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID']\n", "df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID']" ] }, { "cell_type": "code", "execution_count": 29, "id": "c5cbfc25", "metadata": {}, "outputs": [], "source": [ "categorical = ['PU_DO'] #'PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "dv = DictVectorizer()\n", "\n", "train_dicts = df_train[categorical + numerical].to_dict(orient='records')\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "val_dicts = df_val[categorical + numerical].to_dict(orient='records')\n", "X_val = dv.transform(val_dicts)" ] }, { "cell_type": "code", "execution_count": 30, "id": "0b2eea4e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "scipy.sparse._csr.csr_matrix" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(X_train) # sparse matrix" ] }, { "cell_type": "code", "execution_count": 24, "id": "4aeee3f9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "scipy.sparse._csr.csr_matrix" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(X_val)" ] }, { "cell_type": "code", "execution_count": 28, "id": "1e9fb68b", "metadata": {}, "outputs": [], "source": [ "# if models can handle sparse arrays, don't need to do this Jeff says\n", "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values" ] }, { "cell_type": "code", "execution_count": 26, "id": "296c74b5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(y_val)" ] }, { "cell_type": "code", "execution_count": 41, "id": "0c9ab534", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(y_train)" ] }, { "cell_type": "code", "execution_count": 31, "id": "429e2394", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7.758715206931833" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_val)\n", "\n", "mean_squared_error(y_val, y_pred, squared=False)" ] }, { "cell_type": "code", "execution_count": 39, "id": "22bf6f8b", "metadata": {}, "outputs": [], "source": [ "# jeff added pathlib making directory\n", "import pathlib\n", "pathlib.Path(\"models\").mkdir(exist_ok=True)\n", " \n", "\n", "with open('models/lin_reg2.bin', 'wb') as f_out:\n", " pickle.dump((dv, lr), f_out)" ] }, { "cell_type": "code", "execution_count": 35, "id": "a4999b94", "metadata": {}, "outputs": [], "source": [ "with mlflow.start_run():\n", "\n", " mlflow.set_tag(\"developer\", \"cristian\")\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", "\n", " alpha = 0.1\n", " mlflow.log_param(\"alpha\", alpha)\n", " lr = Lasso(alpha)\n", " lr.fit(X_train, y_train)\n", "\n", " y_pred = lr.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " mlflow.log_artifact(local_path=\"models/lin_reg.bin\", artifact_path=\"models_pickle\")" ] }, { "cell_type": "code", "execution_count": 36, "id": "5f56e97b", "metadata": {}, "outputs": [], "source": [ "import xgboost as xgb" ] }, { "cell_type": "code", "execution_count": 37, "id": "907dc6a2", "metadata": {}, "outputs": [], "source": [ "from hyperopt import fmin, tpe, hp, STATUS_OK, Trials\n", "from hyperopt.pyll import scope" ] }, { "cell_type": "code", "execution_count": 38, "id": "091ab328", "metadata": {}, "outputs": [], "source": [ "train = xgb.DMatrix(X_train, label=y_train)\n", "valid = xgb.DMatrix(X_val, label=y_val)" ] }, { "cell_type": "code", "execution_count": 23, "id": "c2d84b26", "metadata": {}, "outputs": [], "source": [ "def objective(params):\n", " with mlflow.start_run():\n", " mlflow.set_tag(\"model\", \"xgboost\")\n", " mlflow.log_params(params)\n", " booster = xgb.train(\n", " params=params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " return {'loss': rmse, 'status': STATUS_OK}" ] }, { "cell_type": "code", "execution_count": 24, "id": "6b1f77f5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[12:38:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.27920 \n", "[1]\tvalidation-rmse:8.01759 \n", "[2]\tvalidation-rmse:7.08526 \n", "[3]\tvalidation-rmse:6.80494 \n", "[4]\tvalidation-rmse:6.70455 \n", "[5]\tvalidation-rmse:6.66392 \n", "[6]\tvalidation-rmse:6.64210 \n", "[7]\tvalidation-rmse:6.63159 \n", "[8]\tvalidation-rmse:6.62676 \n", "[9]\tvalidation-rmse:6.62346 \n", "[10]\tvalidation-rmse:6.62027 \n", "[11]\tvalidation-rmse:6.61790 \n", "[12]\tvalidation-rmse:6.61591 \n", "[13]\tvalidation-rmse:6.61457 \n", "[14]\tvalidation-rmse:6.61208 \n", "[15]\tvalidation-rmse:6.60727 \n", "[16]\tvalidation-rmse:6.60534 \n", "[17]\tvalidation-rmse:6.60406 \n", "[18]\tvalidation-rmse:6.60130 \n", "[19]\tvalidation-rmse:6.60099 \n", "[20]\tvalidation-rmse:6.59977 \n", "[21]\tvalidation-rmse:6.59743 \n", "[22]\tvalidation-rmse:6.59615 \n", "[23]\tvalidation-rmse:6.59525 \n", "[24]\tvalidation-rmse:6.59426 \n", "[25]\tvalidation-rmse:6.59344 \n", "[26]\tvalidation-rmse:6.59256 \n", "[27]\tvalidation-rmse:6.59171 \n", "[28]\tvalidation-rmse:6.59147 \n", "[29]\tvalidation-rmse:6.58954 \n", "[30]\tvalidation-rmse:6.58971 \n", "[31]\tvalidation-rmse:6.58914 \n", "[32]\tvalidation-rmse:6.58899 \n", "[33]\tvalidation-rmse:6.58854 \n", "[34]\tvalidation-rmse:6.58800 \n", "[35]\tvalidation-rmse:6.58843 \n", "[36]\tvalidation-rmse:6.58843 \n", "[37]\tvalidation-rmse:6.58830 \n", "[38]\tvalidation-rmse:6.58821 \n", "[39]\tvalidation-rmse:6.58807 \n", "[40]\tvalidation-rmse:6.58789 \n", "[41]\tvalidation-rmse:6.58760 \n", "[42]\tvalidation-rmse:6.58753 \n", "[43]\tvalidation-rmse:6.58801 \n", "[44]\tvalidation-rmse:6.58824 \n", "[45]\tvalidation-rmse:6.58705 \n", "[46]\tvalidation-rmse:6.58718 \n", "[47]\tvalidation-rmse:6.58745 \n", "[48]\tvalidation-rmse:6.58593 \n", "[49]\tvalidation-rmse:6.58587 \n", "[50]\tvalidation-rmse:6.58564 \n", "[51]\tvalidation-rmse:6.58451 \n", "[52]\tvalidation-rmse:6.58450 \n", "[53]\tvalidation-rmse:6.58429 \n", "[54]\tvalidation-rmse:6.58450 \n", "[55]\tvalidation-rmse:6.58429 \n", "[56]\tvalidation-rmse:6.58379 \n", "[57]\tvalidation-rmse:6.58365 \n", "[58]\tvalidation-rmse:6.58416 \n", "[59]\tvalidation-rmse:6.58427 \n", "[60]\tvalidation-rmse:6.58358 \n", "[61]\tvalidation-rmse:6.58404 \n", "[62]\tvalidation-rmse:6.58352 \n", "[63]\tvalidation-rmse:6.58314 \n", "[64]\tvalidation-rmse:6.58317 \n", "[65]\tvalidation-rmse:6.58325 \n", "[66]\tvalidation-rmse:6.58308 \n", "[67]\tvalidation-rmse:6.58327 \n", "[68]\tvalidation-rmse:6.58338 \n", "[69]\tvalidation-rmse:6.58339 \n", "[70]\tvalidation-rmse:6.58306 \n", "[71]\tvalidation-rmse:6.58300 \n", "[72]\tvalidation-rmse:6.58322 \n", "[73]\tvalidation-rmse:6.58246 \n", "[74]\tvalidation-rmse:6.58218 \n", "[75]\tvalidation-rmse:6.58220 \n", "[76]\tvalidation-rmse:6.58216 \n", "[77]\tvalidation-rmse:6.58211 \n", "[78]\tvalidation-rmse:6.58200 \n", "[79]\tvalidation-rmse:6.58218 \n", "[80]\tvalidation-rmse:6.58266 \n", "[81]\tvalidation-rmse:6.58407 \n", "[82]\tvalidation-rmse:6.58394 \n", "[83]\tvalidation-rmse:6.58766 \n", "[84]\tvalidation-rmse:6.58808 \n", "[85]\tvalidation-rmse:6.58788 \n", "[86]\tvalidation-rmse:6.58806 \n", "[87]\tvalidation-rmse:6.58781 \n", "[88]\tvalidation-rmse:6.58830 \n", "[89]\tvalidation-rmse:6.58842 \n", "[90]\tvalidation-rmse:6.58867 \n", "[91]\tvalidation-rmse:6.58835 \n", "[92]\tvalidation-rmse:6.58843 \n", "[93]\tvalidation-rmse:6.58829 \n", "[94]\tvalidation-rmse:6.58857 \n", "[95]\tvalidation-rmse:6.58837 \n", "[96]\tvalidation-rmse:6.58828 \n", "[97]\tvalidation-rmse:6.58856 \n", "[98]\tvalidation-rmse:6.58840 \n", "[99]\tvalidation-rmse:6.58855 \n", "[100]\tvalidation-rmse:6.58857 \n", "[101]\tvalidation-rmse:6.58902 \n", "[102]\tvalidation-rmse:6.58965 \n", "[103]\tvalidation-rmse:6.59053 \n", "[104]\tvalidation-rmse:6.59091 \n", "[105]\tvalidation-rmse:6.59235 \n", "[106]\tvalidation-rmse:6.59203 \n", "[107]\tvalidation-rmse:6.59191 \n", "[108]\tvalidation-rmse:6.59157 \n", "[109]\tvalidation-rmse:6.59161 \n", "[110]\tvalidation-rmse:6.59208 \n", "[111]\tvalidation-rmse:6.59198 \n", "[112]\tvalidation-rmse:6.59159 \n", "[113]\tvalidation-rmse:6.59122 \n", "[114]\tvalidation-rmse:6.59135 \n", "[115]\tvalidation-rmse:6.59117 \n", "[116]\tvalidation-rmse:6.59120 \n", "[117]\tvalidation-rmse:6.59102 \n", "[118]\tvalidation-rmse:6.59076 \n", "[119]\tvalidation-rmse:6.59063 \n", "[120]\tvalidation-rmse:6.59097 \n", "[121]\tvalidation-rmse:6.59099 \n", "[122]\tvalidation-rmse:6.59098 \n", "[123]\tvalidation-rmse:6.59092 \n", "[124]\tvalidation-rmse:6.59113 \n", "[125]\tvalidation-rmse:6.59149 \n", "[126]\tvalidation-rmse:6.59154 \n", "[127]\tvalidation-rmse:6.59138 \n", "[128]\tvalidation-rmse:6.59115 \n", "[12:38:33] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.25179 \n", "[1]\tvalidation-rmse:19.36542 \n", "[2]\tvalidation-rmse:18.53081 \n", "[3]\tvalidation-rmse:17.74354 \n", "[4]\tvalidation-rmse:17.00251 \n", "[5]\tvalidation-rmse:16.30619 \n", "[6]\tvalidation-rmse:15.65125 \n", "[7]\tvalidation-rmse:15.03645 \n", "[8]\tvalidation-rmse:14.45918 \n", "[9]\tvalidation-rmse:13.91665 \n", "[10]\tvalidation-rmse:13.40839 \n", "[11]\tvalidation-rmse:12.93222 \n", "[12]\tvalidation-rmse:12.48605 \n", "[13]\tvalidation-rmse:12.06667 \n", "[14]\tvalidation-rmse:11.67720 \n", "[15]\tvalidation-rmse:11.31099 \n", "[16]\tvalidation-rmse:10.97043 \n", "[17]\tvalidation-rmse:10.65298 \n", "[18]\tvalidation-rmse:10.35607 \n", "[19]\tvalidation-rmse:10.07940 \n", "[20]\tvalidation-rmse:9.82233 \n", "[21]\tvalidation-rmse:9.58395 \n", "[22]\tvalidation-rmse:9.36035 \n", "[23]\tvalidation-rmse:9.15318 \n", "[24]\tvalidation-rmse:8.96136 \n", "[25]\tvalidation-rmse:8.78314 \n", "[26]\tvalidation-rmse:8.61892 \n", "[27]\tvalidation-rmse:8.46559 \n", "[28]\tvalidation-rmse:8.32417 \n", "[29]\tvalidation-rmse:8.19099 \n", "[30]\tvalidation-rmse:8.06830 \n", "[31]\tvalidation-rmse:7.95539 \n", "[32]\tvalidation-rmse:7.85188 \n", "[33]\tvalidation-rmse:7.75502 \n", "[34]\tvalidation-rmse:7.66505 \n", "[35]\tvalidation-rmse:7.58240 \n", "[36]\tvalidation-rmse:7.50501 \n", "[37]\tvalidation-rmse:7.43425 \n", "[38]\tvalidation-rmse:7.36901 \n", "[39]\tvalidation-rmse:7.30826 \n", "[40]\tvalidation-rmse:7.25269 \n", "[41]\tvalidation-rmse:7.20014 \n", "[42]\tvalidation-rmse:7.15171 \n", "[43]\tvalidation-rmse:7.10687 \n", "[44]\tvalidation-rmse:7.06611 \n", "[45]\tvalidation-rmse:7.02806 \n", "[46]\tvalidation-rmse:6.99265 \n", "[47]\tvalidation-rmse:6.95892 \n", "[48]\tvalidation-rmse:6.92809 \n", "[49]\tvalidation-rmse:6.89924 \n", "[50]\tvalidation-rmse:6.87288 \n", "[51]\tvalidation-rmse:6.84795 \n", "[52]\tvalidation-rmse:6.82460 \n", "[53]\tvalidation-rmse:6.80294 \n", "[54]\tvalidation-rmse:6.78241 \n", "[55]\tvalidation-rmse:6.76295 \n", "[56]\tvalidation-rmse:6.74590 \n", "[57]\tvalidation-rmse:6.72979 \n", "[58]\tvalidation-rmse:6.71470 \n", "[59]\tvalidation-rmse:6.70015 \n", "[60]\tvalidation-rmse:6.68690 \n", "[61]\tvalidation-rmse:6.67426 \n", "[62]\tvalidation-rmse:6.66181 \n", "[63]\tvalidation-rmse:6.65059 \n", "[64]\tvalidation-rmse:6.63985 \n", "[65]\tvalidation-rmse:6.62990 \n", "[66]\tvalidation-rmse:6.62034 \n", "[67]\tvalidation-rmse:6.61137 \n", "[68]\tvalidation-rmse:6.60324 \n", "[69]\tvalidation-rmse:6.59522 \n", "[70]\tvalidation-rmse:6.58749 \n", "[71]\tvalidation-rmse:6.58042 \n", "[72]\tvalidation-rmse:6.57371 \n", "[73]\tvalidation-rmse:6.56754 \n", "[74]\tvalidation-rmse:6.56178 \n", "[75]\tvalidation-rmse:6.55569 \n", "[76]\tvalidation-rmse:6.55086 \n", "[77]\tvalidation-rmse:6.54554 \n", "[78]\tvalidation-rmse:6.54087 \n", "[79]\tvalidation-rmse:6.53628 \n", "[80]\tvalidation-rmse:6.53199 \n", "[81]\tvalidation-rmse:6.52792 \n", "[82]\tvalidation-rmse:6.52447 \n", "[83]\tvalidation-rmse:6.52091 \n", "[84]\tvalidation-rmse:6.51810 \n", "[85]\tvalidation-rmse:6.51494 \n", "[86]\tvalidation-rmse:6.51163 \n", "[87]\tvalidation-rmse:6.50891 \n", "[88]\tvalidation-rmse:6.50658 \n", "[89]\tvalidation-rmse:6.50427 \n", "[90]\tvalidation-rmse:6.50226 \n", "[91]\tvalidation-rmse:6.49986 \n", "[92]\tvalidation-rmse:6.49808 \n", "[93]\tvalidation-rmse:6.49611 \n", "[94]\tvalidation-rmse:6.49413 \n", "[95]\tvalidation-rmse:6.49235 \n", "[96]\tvalidation-rmse:6.49057 \n", "[97]\tvalidation-rmse:6.48907 \n", "[98]\tvalidation-rmse:6.48752 \n", "[99]\tvalidation-rmse:6.48619 \n", "[100]\tvalidation-rmse:6.48484 \n", "[101]\tvalidation-rmse:6.48354 \n", "[102]\tvalidation-rmse:6.48240 \n", "[103]\tvalidation-rmse:6.48114 \n", "[104]\tvalidation-rmse:6.48014 \n", "[105]\tvalidation-rmse:6.47892 \n", "[106]\tvalidation-rmse:6.47794 \n", "[107]\tvalidation-rmse:6.47678 \n", "[108]\tvalidation-rmse:6.47583 \n", "[109]\tvalidation-rmse:6.47496 \n", "[110]\tvalidation-rmse:6.47400 \n", "[111]\tvalidation-rmse:6.47329 \n", "[112]\tvalidation-rmse:6.47217 \n", "[113]\tvalidation-rmse:6.47119 \n", "[114]\tvalidation-rmse:6.47028 \n", "[115]\tvalidation-rmse:6.46962 \n", "[116]\tvalidation-rmse:6.46903 \n", "[117]\tvalidation-rmse:6.46802 \n", "[118]\tvalidation-rmse:6.46745 \n", "[119]\tvalidation-rmse:6.46670 \n", "[120]\tvalidation-rmse:6.46586 \n", "[121]\tvalidation-rmse:6.46499 \n", "[122]\tvalidation-rmse:6.46439 \n", "[123]\tvalidation-rmse:6.46347 \n", "[124]\tvalidation-rmse:6.46272 \n", "[125]\tvalidation-rmse:6.46183 \n", "[126]\tvalidation-rmse:6.46088 \n", "[127]\tvalidation-rmse:6.46006 \n", "[128]\tvalidation-rmse:6.45929 \n", "[129]\tvalidation-rmse:6.45859 \n", "[130]\tvalidation-rmse:6.45807 \n", "[131]\tvalidation-rmse:6.45737 \n", "[132]\tvalidation-rmse:6.45700 \n", "[133]\tvalidation-rmse:6.45650 \n", "[134]\tvalidation-rmse:6.45598 \n", "[135]\tvalidation-rmse:6.45556 \n", "[136]\tvalidation-rmse:6.45514 \n", "[137]\tvalidation-rmse:6.45463 \n", "[138]\tvalidation-rmse:6.45426 \n", "[139]\tvalidation-rmse:6.45381 \n", "[140]\tvalidation-rmse:6.45300 \n", "[141]\tvalidation-rmse:6.45255 \n", "[142]\tvalidation-rmse:6.45177 \n", "[143]\tvalidation-rmse:6.45140 \n", "[144]\tvalidation-rmse:6.45080 \n", "[145]\tvalidation-rmse:6.45042 \n", "[146]\tvalidation-rmse:6.44977 \n", "[147]\tvalidation-rmse:6.44933 \n", "[148]\tvalidation-rmse:6.44894 \n", "[149]\tvalidation-rmse:6.44866 \n", "[150]\tvalidation-rmse:6.44828 \n", "[151]\tvalidation-rmse:6.44777 \n", "[152]\tvalidation-rmse:6.44722 \n", "[153]\tvalidation-rmse:6.44681 \n", "[154]\tvalidation-rmse:6.44645 \n", "[155]\tvalidation-rmse:6.44628 \n", "[156]\tvalidation-rmse:6.44598 \n", "[157]\tvalidation-rmse:6.44543 \n", "[158]\tvalidation-rmse:6.44503 \n", "[159]\tvalidation-rmse:6.44431 \n", "[160]\tvalidation-rmse:6.44401 \n", "[161]\tvalidation-rmse:6.44353 \n", "[162]\tvalidation-rmse:6.44325 \n", "[163]\tvalidation-rmse:6.44270 \n", "[164]\tvalidation-rmse:6.44252 \n", "[165]\tvalidation-rmse:6.44223 \n", "[166]\tvalidation-rmse:6.44168 \n", "[167]\tvalidation-rmse:6.44116 \n", "[168]\tvalidation-rmse:6.44102 \n", "[169]\tvalidation-rmse:6.44082 \n", "[170]\tvalidation-rmse:6.44024 \n", "[171]\tvalidation-rmse:6.43970 \n", "[172]\tvalidation-rmse:6.43954 \n", "[173]\tvalidation-rmse:6.43922 \n", "[174]\tvalidation-rmse:6.43901 \n", "[175]\tvalidation-rmse:6.43870 \n", "[176]\tvalidation-rmse:6.43837 \n", "[177]\tvalidation-rmse:6.43793 \n", "[178]\tvalidation-rmse:6.43753 \n", "[179]\tvalidation-rmse:6.43693 \n", "[180]\tvalidation-rmse:6.43678 \n", "[181]\tvalidation-rmse:6.43632 \n", "[182]\tvalidation-rmse:6.43606 \n", "[183]\tvalidation-rmse:6.43566 \n", "[184]\tvalidation-rmse:6.43550 \n", "[185]\tvalidation-rmse:6.43513 \n", "[186]\tvalidation-rmse:6.43489 \n", "[187]\tvalidation-rmse:6.43469 \n", "[188]\tvalidation-rmse:6.43447 \n", "[189]\tvalidation-rmse:6.43426 \n", "[190]\tvalidation-rmse:6.43402 \n", "[191]\tvalidation-rmse:6.43357 \n", "[192]\tvalidation-rmse:6.43319 \n", "[193]\tvalidation-rmse:6.43305 \n", "[194]\tvalidation-rmse:6.43278 \n", "[195]\tvalidation-rmse:6.43269 \n", "[196]\tvalidation-rmse:6.43246 \n", "[197]\tvalidation-rmse:6.43207 \n", "[198]\tvalidation-rmse:6.43179 \n", "[199]\tvalidation-rmse:6.43138 \n", "[200]\tvalidation-rmse:6.43120 \n", "[201]\tvalidation-rmse:6.43070 \n", "[202]\tvalidation-rmse:6.43048 \n", "[203]\tvalidation-rmse:6.43003 \n", "[204]\tvalidation-rmse:6.42985 \n", "[205]\tvalidation-rmse:6.42947 \n", "[206]\tvalidation-rmse:6.42934 \n", "[207]\tvalidation-rmse:6.42918 \n", "[208]\tvalidation-rmse:6.42887 \n", "[209]\tvalidation-rmse:6.42867 \n", "[210]\tvalidation-rmse:6.42851 \n", "[211]\tvalidation-rmse:6.42833 \n", "[212]\tvalidation-rmse:6.42802 \n", "[213]\tvalidation-rmse:6.42771 \n", "[214]\tvalidation-rmse:6.42739 \n", "[215]\tvalidation-rmse:6.42718 \n", "[216]\tvalidation-rmse:6.42701 \n", "[217]\tvalidation-rmse:6.42684 \n", "[218]\tvalidation-rmse:6.42678 \n", "[219]\tvalidation-rmse:6.42660 \n", "[220]\tvalidation-rmse:6.42630 \n", "[221]\tvalidation-rmse:6.42603 \n", "[222]\tvalidation-rmse:6.42559 \n", "[223]\tvalidation-rmse:6.42535 \n", "[224]\tvalidation-rmse:6.42497 \n", "[225]\tvalidation-rmse:6.42489 \n", "[226]\tvalidation-rmse:6.42451 \n", "[227]\tvalidation-rmse:6.42431 \n", "[228]\tvalidation-rmse:6.42396 \n", "[229]\tvalidation-rmse:6.42365 \n", "[230]\tvalidation-rmse:6.42332 \n", "[231]\tvalidation-rmse:6.42315 \n", "[232]\tvalidation-rmse:6.42310 \n", "[233]\tvalidation-rmse:6.42275 \n", "[234]\tvalidation-rmse:6.42239 \n", "[235]\tvalidation-rmse:6.42223 \n", "[236]\tvalidation-rmse:6.42207 \n", "[237]\tvalidation-rmse:6.42190 \n", "[238]\tvalidation-rmse:6.42157 \n", "[239]\tvalidation-rmse:6.42130 \n", "[240]\tvalidation-rmse:6.42111 \n", "[241]\tvalidation-rmse:6.42096 \n", "[242]\tvalidation-rmse:6.42082 \n", "[243]\tvalidation-rmse:6.42057 \n", "[244]\tvalidation-rmse:6.42051 \n", "[245]\tvalidation-rmse:6.42033 \n", "[246]\tvalidation-rmse:6.42021 \n", "[247]\tvalidation-rmse:6.41994 \n", "[248]\tvalidation-rmse:6.41961 \n", "[249]\tvalidation-rmse:6.41945 \n", "[250]\tvalidation-rmse:6.41913 \n", "[251]\tvalidation-rmse:6.41906 \n", "[252]\tvalidation-rmse:6.41865 \n", "[253]\tvalidation-rmse:6.41845 \n", "[254]\tvalidation-rmse:6.41813 \n", "[255]\tvalidation-rmse:6.41790 \n", "[256]\tvalidation-rmse:6.41768 \n", "[257]\tvalidation-rmse:6.41755 \n", "[258]\tvalidation-rmse:6.41720 \n", "[259]\tvalidation-rmse:6.41716 \n", "[260]\tvalidation-rmse:6.41706 \n", "[261]\tvalidation-rmse:6.41682 \n", "[262]\tvalidation-rmse:6.41660 \n", "[263]\tvalidation-rmse:6.41633 \n", "[264]\tvalidation-rmse:6.41619 \n", "[265]\tvalidation-rmse:6.41606 \n", "[266]\tvalidation-rmse:6.41568 \n", "[267]\tvalidation-rmse:6.41557 \n", "[268]\tvalidation-rmse:6.41549 \n", "[269]\tvalidation-rmse:6.41538 \n", "[270]\tvalidation-rmse:6.41524 \n", "[271]\tvalidation-rmse:6.41505 \n", "[272]\tvalidation-rmse:6.41499 \n", "[273]\tvalidation-rmse:6.41485 \n", "[274]\tvalidation-rmse:6.41477 \n", "[275]\tvalidation-rmse:6.41451 \n", "[276]\tvalidation-rmse:6.41439 \n", "[277]\tvalidation-rmse:6.41425 \n", "[278]\tvalidation-rmse:6.41391 \n", "[279]\tvalidation-rmse:6.41386 \n", "[280]\tvalidation-rmse:6.41360 \n", "[281]\tvalidation-rmse:6.41344 \n", "[282]\tvalidation-rmse:6.41312 \n", "[283]\tvalidation-rmse:6.41300 \n", "[284]\tvalidation-rmse:6.41274 \n", "[285]\tvalidation-rmse:6.41269 \n", "[286]\tvalidation-rmse:6.41243 \n", "[287]\tvalidation-rmse:6.41239 \n", "[288]\tvalidation-rmse:6.41217 \n", "[289]\tvalidation-rmse:6.41196 \n", "[290]\tvalidation-rmse:6.41191 \n", "[291]\tvalidation-rmse:6.41189 \n", "[292]\tvalidation-rmse:6.41174 \n", "[293]\tvalidation-rmse:6.41153 \n", "[294]\tvalidation-rmse:6.41135 \n", "[295]\tvalidation-rmse:6.41101 \n", "[296]\tvalidation-rmse:6.41083 \n", "[297]\tvalidation-rmse:6.41070 \n", "[298]\tvalidation-rmse:6.41052 \n", "[299]\tvalidation-rmse:6.41040 \n", "[300]\tvalidation-rmse:6.41026 \n", "[301]\tvalidation-rmse:6.41014 \n", "[302]\tvalidation-rmse:6.41004 \n", "[303]\tvalidation-rmse:6.40998 \n", "[304]\tvalidation-rmse:6.40992 \n", "[305]\tvalidation-rmse:6.40983 \n", "[306]\tvalidation-rmse:6.40954 \n", "[307]\tvalidation-rmse:6.40945 \n", "[308]\tvalidation-rmse:6.40939 \n", "[309]\tvalidation-rmse:6.40915 \n", "[310]\tvalidation-rmse:6.40908 \n", "[311]\tvalidation-rmse:6.40875 \n", "[312]\tvalidation-rmse:6.40861 \n", "[313]\tvalidation-rmse:6.40833 \n", "[314]\tvalidation-rmse:6.40821 \n", "[315]\tvalidation-rmse:6.40791 \n", "[316]\tvalidation-rmse:6.40791 \n", "[317]\tvalidation-rmse:6.40769 \n", "[318]\tvalidation-rmse:6.40764 \n", "[319]\tvalidation-rmse:6.40738 \n", "[320]\tvalidation-rmse:6.40728 \n", "[321]\tvalidation-rmse:6.40702 \n", "[322]\tvalidation-rmse:6.40682 \n", "[323]\tvalidation-rmse:6.40679 \n", "[324]\tvalidation-rmse:6.40667 \n", "[325]\tvalidation-rmse:6.40658 \n", "[326]\tvalidation-rmse:6.40644 \n", "[327]\tvalidation-rmse:6.40631 \n", "[328]\tvalidation-rmse:6.40608 \n", "[329]\tvalidation-rmse:6.40593 \n", "[330]\tvalidation-rmse:6.40580 \n", "[331]\tvalidation-rmse:6.40567 \n", "[332]\tvalidation-rmse:6.40541 \n", "[333]\tvalidation-rmse:6.40534 \n", "[334]\tvalidation-rmse:6.40523 \n", "[335]\tvalidation-rmse:6.40509 \n", "[336]\tvalidation-rmse:6.40509 \n", "[337]\tvalidation-rmse:6.40497 \n", "[338]\tvalidation-rmse:6.40482 \n", "[339]\tvalidation-rmse:6.40468 \n", "[340]\tvalidation-rmse:6.40461 \n", "[341]\tvalidation-rmse:6.40454 \n", "[342]\tvalidation-rmse:6.40438 \n", "[343]\tvalidation-rmse:6.40432 \n", "[344]\tvalidation-rmse:6.40424 \n", "[345]\tvalidation-rmse:6.40416 \n", "[346]\tvalidation-rmse:6.40388 \n", "[347]\tvalidation-rmse:6.40373 \n", "[348]\tvalidation-rmse:6.40354 \n", "[349]\tvalidation-rmse:6.40331 \n", "[350]\tvalidation-rmse:6.40327 \n", "[351]\tvalidation-rmse:6.40299 \n", "[352]\tvalidation-rmse:6.40305 \n", "[353]\tvalidation-rmse:6.40281 \n", "[354]\tvalidation-rmse:6.40267 \n", "[355]\tvalidation-rmse:6.40244 \n", "[356]\tvalidation-rmse:6.40228 \n", "[357]\tvalidation-rmse:6.40201 \n", "[358]\tvalidation-rmse:6.40182 \n", "[359]\tvalidation-rmse:6.40182 \n", "[360]\tvalidation-rmse:6.40173 \n", "[361]\tvalidation-rmse:6.40164 \n", "[362]\tvalidation-rmse:6.40161 \n", "[363]\tvalidation-rmse:6.40139 \n", "[364]\tvalidation-rmse:6.40121 \n", "[365]\tvalidation-rmse:6.40107 \n", "[366]\tvalidation-rmse:6.40097 \n", "[367]\tvalidation-rmse:6.40096 \n", "[368]\tvalidation-rmse:6.40076 \n", "[369]\tvalidation-rmse:6.40066 \n", "[370]\tvalidation-rmse:6.40054 \n", "[371]\tvalidation-rmse:6.40037 \n", "[372]\tvalidation-rmse:6.40020 \n", "[373]\tvalidation-rmse:6.40002 \n", "[374]\tvalidation-rmse:6.39997 \n", "[375]\tvalidation-rmse:6.40006 \n", "[376]\tvalidation-rmse:6.39993 \n", "[377]\tvalidation-rmse:6.39979 \n", "[378]\tvalidation-rmse:6.39976 \n", "[379]\tvalidation-rmse:6.39968 \n", "[380]\tvalidation-rmse:6.39957 \n", "[381]\tvalidation-rmse:6.39946 \n", "[382]\tvalidation-rmse:6.39943 \n", "[383]\tvalidation-rmse:6.39932 \n", "[384]\tvalidation-rmse:6.39920 \n", "[385]\tvalidation-rmse:6.39909 \n", "[386]\tvalidation-rmse:6.39884 \n", "[387]\tvalidation-rmse:6.39877 \n", "[388]\tvalidation-rmse:6.39873 \n", "[389]\tvalidation-rmse:6.39856 \n", "[390]\tvalidation-rmse:6.39845 \n", "[391]\tvalidation-rmse:6.39822 \n", "[392]\tvalidation-rmse:6.39810 \n", "[393]\tvalidation-rmse:6.39777 \n", "[394]\tvalidation-rmse:6.39767 \n", "[395]\tvalidation-rmse:6.39751 \n", "[396]\tvalidation-rmse:6.39737 \n", "[397]\tvalidation-rmse:6.39713 \n", "[398]\tvalidation-rmse:6.39694 \n", "[399]\tvalidation-rmse:6.39692 \n", "[400]\tvalidation-rmse:6.39689 \n", "[401]\tvalidation-rmse:6.39681 \n", "[402]\tvalidation-rmse:6.39665 \n", "[403]\tvalidation-rmse:6.39661 \n", "[404]\tvalidation-rmse:6.39650 \n", "[405]\tvalidation-rmse:6.39641 \n", "[406]\tvalidation-rmse:6.39631 \n", "[407]\tvalidation-rmse:6.39617 \n", "[408]\tvalidation-rmse:6.39610 \n", "[409]\tvalidation-rmse:6.39601 \n", "[410]\tvalidation-rmse:6.39589 \n", "[411]\tvalidation-rmse:6.39587 \n", "[412]\tvalidation-rmse:6.39568 \n", "[413]\tvalidation-rmse:6.39555 \n", "[414]\tvalidation-rmse:6.39542 \n", "[415]\tvalidation-rmse:6.39538 \n", "[416]\tvalidation-rmse:6.39542 \n", "[417]\tvalidation-rmse:6.39531 \n", "[418]\tvalidation-rmse:6.39522 \n", "[419]\tvalidation-rmse:6.39521 \n", "[420]\tvalidation-rmse:6.39512 \n", "[421]\tvalidation-rmse:6.39506 \n", "[422]\tvalidation-rmse:6.39501 \n", "[423]\tvalidation-rmse:6.39493 \n", "[424]\tvalidation-rmse:6.39483 \n", "[425]\tvalidation-rmse:6.39471 \n", "[426]\tvalidation-rmse:6.39447 \n", "[427]\tvalidation-rmse:6.39440 \n", "[428]\tvalidation-rmse:6.39431 \n", "[429]\tvalidation-rmse:6.39423 \n", "[430]\tvalidation-rmse:6.39416 \n", "[431]\tvalidation-rmse:6.39395 \n", "[432]\tvalidation-rmse:6.39385 \n", "[433]\tvalidation-rmse:6.39371 \n", "[434]\tvalidation-rmse:6.39357 \n", "[435]\tvalidation-rmse:6.39337 \n", "[436]\tvalidation-rmse:6.39323 \n", "[437]\tvalidation-rmse:6.39301 \n", "[438]\tvalidation-rmse:6.39298 \n", "[439]\tvalidation-rmse:6.39285 \n", "[440]\tvalidation-rmse:6.39273 \n", "[441]\tvalidation-rmse:6.39276 \n", "[442]\tvalidation-rmse:6.39259 \n", "[443]\tvalidation-rmse:6.39250 \n", "[444]\tvalidation-rmse:6.39250 \n", "[445]\tvalidation-rmse:6.39238 \n", "[446]\tvalidation-rmse:6.39222 \n", "[447]\tvalidation-rmse:6.39214 \n", "[448]\tvalidation-rmse:6.39204 \n", "[449]\tvalidation-rmse:6.39162 \n", "[450]\tvalidation-rmse:6.39159 \n", "[451]\tvalidation-rmse:6.39148 \n", "[452]\tvalidation-rmse:6.39145 \n", "[453]\tvalidation-rmse:6.39138 \n", "[454]\tvalidation-rmse:6.39125 \n", "[455]\tvalidation-rmse:6.39107 \n", "[456]\tvalidation-rmse:6.39102 \n", "[457]\tvalidation-rmse:6.39105 \n", "[458]\tvalidation-rmse:6.39109 \n", "[459]\tvalidation-rmse:6.39094 \n", "[460]\tvalidation-rmse:6.39085 \n", "[461]\tvalidation-rmse:6.39079 \n", "[462]\tvalidation-rmse:6.39085 \n", "[463]\tvalidation-rmse:6.39083 \n", "[464]\tvalidation-rmse:6.39031 \n", "[465]\tvalidation-rmse:6.39019 \n", "[466]\tvalidation-rmse:6.39015 \n", "[467]\tvalidation-rmse:6.38991 \n", "[468]\tvalidation-rmse:6.38973 \n", "[469]\tvalidation-rmse:6.38968 \n", "[470]\tvalidation-rmse:6.38968 \n", "[471]\tvalidation-rmse:6.38960 \n", "[472]\tvalidation-rmse:6.38949 \n", "[473]\tvalidation-rmse:6.38926 \n", "[474]\tvalidation-rmse:6.38918 \n", "[475]\tvalidation-rmse:6.38909 \n", "[476]\tvalidation-rmse:6.38898 \n", "[477]\tvalidation-rmse:6.38885 \n", "[478]\tvalidation-rmse:6.38879 \n", "[479]\tvalidation-rmse:6.38871 \n", "[480]\tvalidation-rmse:6.38855 \n", "[481]\tvalidation-rmse:6.38840 \n", "[482]\tvalidation-rmse:6.38840 \n", "[483]\tvalidation-rmse:6.38818 \n", "[484]\tvalidation-rmse:6.38806 \n", "[485]\tvalidation-rmse:6.38810 \n", "[486]\tvalidation-rmse:6.38790 \n", "[487]\tvalidation-rmse:6.38786 \n", "[488]\tvalidation-rmse:6.38776 \n", "[489]\tvalidation-rmse:6.38768 \n", "[490]\tvalidation-rmse:6.38746 \n", "[491]\tvalidation-rmse:6.38736 \n", "[492]\tvalidation-rmse:6.38732 \n", "[493]\tvalidation-rmse:6.38737 \n", "[494]\tvalidation-rmse:6.38731 \n", "[495]\tvalidation-rmse:6.38725 \n", "[496]\tvalidation-rmse:6.38710 \n", "[497]\tvalidation-rmse:6.38703 \n", "[498]\tvalidation-rmse:6.38685 \n", "[499]\tvalidation-rmse:6.38689 \n", "[500]\tvalidation-rmse:6.38665 \n", "[501]\tvalidation-rmse:6.38662 \n", "[502]\tvalidation-rmse:6.38650 \n", "[503]\tvalidation-rmse:6.38640 \n", "[504]\tvalidation-rmse:6.38618 \n", "[505]\tvalidation-rmse:6.38605 \n", "[506]\tvalidation-rmse:6.38595 \n", "[507]\tvalidation-rmse:6.38586 \n", "[508]\tvalidation-rmse:6.38584 \n", "[509]\tvalidation-rmse:6.38583 \n", "[510]\tvalidation-rmse:6.38583 \n", "[511]\tvalidation-rmse:6.38568 \n", "[512]\tvalidation-rmse:6.38569 \n", "[513]\tvalidation-rmse:6.38558 \n", "[514]\tvalidation-rmse:6.38548 \n", "[515]\tvalidation-rmse:6.38534 \n", "[516]\tvalidation-rmse:6.38546 \n", "[517]\tvalidation-rmse:6.38541 \n", "[518]\tvalidation-rmse:6.38528 \n", "[519]\tvalidation-rmse:6.38518 \n", "[520]\tvalidation-rmse:6.38502 \n", "[521]\tvalidation-rmse:6.38501 \n", "[522]\tvalidation-rmse:6.38494 \n", "[523]\tvalidation-rmse:6.38478 \n", "[524]\tvalidation-rmse:6.38473 \n", "[525]\tvalidation-rmse:6.38466 \n", "[526]\tvalidation-rmse:6.38466 \n", "[527]\tvalidation-rmse:6.38454 \n", "[528]\tvalidation-rmse:6.38459 \n", "[529]\tvalidation-rmse:6.38454 \n", "[530]\tvalidation-rmse:6.38454 \n", "[531]\tvalidation-rmse:6.38452 \n", "[532]\tvalidation-rmse:6.38447 \n", "[533]\tvalidation-rmse:6.38443 \n", "[534]\tvalidation-rmse:6.38435 \n", "[535]\tvalidation-rmse:6.38432 \n", "[536]\tvalidation-rmse:6.38435 \n", "[537]\tvalidation-rmse:6.38432 \n", "[538]\tvalidation-rmse:6.38412 \n", "[539]\tvalidation-rmse:6.38403 \n", "[540]\tvalidation-rmse:6.38392 \n", "[541]\tvalidation-rmse:6.38387 \n", "[542]\tvalidation-rmse:6.38389 \n", "[543]\tvalidation-rmse:6.38372 \n", "[544]\tvalidation-rmse:6.38362 \n", "[545]\tvalidation-rmse:6.38368 \n", "[546]\tvalidation-rmse:6.38354 \n", "[547]\tvalidation-rmse:6.38340 \n", "[548]\tvalidation-rmse:6.38334 \n", "[549]\tvalidation-rmse:6.38320 \n", "[550]\tvalidation-rmse:6.38315 \n", "[551]\tvalidation-rmse:6.38318 \n", "[552]\tvalidation-rmse:6.38303 \n", "[553]\tvalidation-rmse:6.38290 \n", "[554]\tvalidation-rmse:6.38278 \n", "[555]\tvalidation-rmse:6.38277 \n", "[556]\tvalidation-rmse:6.38246 \n", "[557]\tvalidation-rmse:6.38238 \n", "[558]\tvalidation-rmse:6.38224 \n", "[559]\tvalidation-rmse:6.38230 \n", "[560]\tvalidation-rmse:6.38220 \n", "[561]\tvalidation-rmse:6.38216 \n", "[562]\tvalidation-rmse:6.38219 \n", "[563]\tvalidation-rmse:6.38209 \n", "[564]\tvalidation-rmse:6.38211 \n", "[565]\tvalidation-rmse:6.38199 \n", "[566]\tvalidation-rmse:6.38183 \n", "[567]\tvalidation-rmse:6.38179 \n", "[568]\tvalidation-rmse:6.38170 \n", "[569]\tvalidation-rmse:6.38170 \n", "[570]\tvalidation-rmse:6.38173 \n", "[571]\tvalidation-rmse:6.38162 \n", "[572]\tvalidation-rmse:6.38155 \n", "[573]\tvalidation-rmse:6.38141 \n", "[574]\tvalidation-rmse:6.38135 \n", "[575]\tvalidation-rmse:6.38133 \n", "[576]\tvalidation-rmse:6.38123 \n", "[577]\tvalidation-rmse:6.38115 \n", "[578]\tvalidation-rmse:6.38097 \n", "[579]\tvalidation-rmse:6.38098 \n", "[580]\tvalidation-rmse:6.38103 \n", "[581]\tvalidation-rmse:6.38096 \n", "[582]\tvalidation-rmse:6.38096 \n", "[583]\tvalidation-rmse:6.38092 \n", "[584]\tvalidation-rmse:6.38086 \n", "[585]\tvalidation-rmse:6.38082 \n", "[586]\tvalidation-rmse:6.38072 \n", "[587]\tvalidation-rmse:6.38068 \n", "[588]\tvalidation-rmse:6.38064 \n", "[589]\tvalidation-rmse:6.38056 \n", "[590]\tvalidation-rmse:6.38051 \n", "[591]\tvalidation-rmse:6.38045 \n", "[592]\tvalidation-rmse:6.38039 \n", "[593]\tvalidation-rmse:6.38035 \n", "[594]\tvalidation-rmse:6.38027 \n", "[595]\tvalidation-rmse:6.38020 \n", "[596]\tvalidation-rmse:6.38008 \n", "[597]\tvalidation-rmse:6.38001 \n", "[598]\tvalidation-rmse:6.37997 \n", "[599]\tvalidation-rmse:6.37995 \n", "[600]\tvalidation-rmse:6.37993 \n", "[601]\tvalidation-rmse:6.37991 \n", "[602]\tvalidation-rmse:6.37983 \n", "[603]\tvalidation-rmse:6.37969 \n", "[604]\tvalidation-rmse:6.37967 \n", "[605]\tvalidation-rmse:6.37960 \n", "[606]\tvalidation-rmse:6.37955 \n", "[607]\tvalidation-rmse:6.37958 \n", "[608]\tvalidation-rmse:6.37960 \n", "[609]\tvalidation-rmse:6.37949 \n", "[610]\tvalidation-rmse:6.37953 \n", "[611]\tvalidation-rmse:6.37957 \n", "[612]\tvalidation-rmse:6.37951 \n", "[613]\tvalidation-rmse:6.37940 \n", "[614]\tvalidation-rmse:6.37928 \n", "[615]\tvalidation-rmse:6.37927 \n", "[616]\tvalidation-rmse:6.37917 \n", "[617]\tvalidation-rmse:6.37908 \n", "[618]\tvalidation-rmse:6.37900 \n", "[619]\tvalidation-rmse:6.37902 \n", "[620]\tvalidation-rmse:6.37911 \n", "[621]\tvalidation-rmse:6.37904 \n", "[622]\tvalidation-rmse:6.37901 \n", "[623]\tvalidation-rmse:6.37914 \n", "[624]\tvalidation-rmse:6.37912 \n", "[625]\tvalidation-rmse:6.37906 \n", "[626]\tvalidation-rmse:6.37903 \n", "[627]\tvalidation-rmse:6.37899 \n", "[628]\tvalidation-rmse:6.37903 \n", "[629]\tvalidation-rmse:6.37893 \n", "[630]\tvalidation-rmse:6.37896 \n", "[631]\tvalidation-rmse:6.37894 \n", "[632]\tvalidation-rmse:6.37876 \n", "[633]\tvalidation-rmse:6.37871 \n", "[634]\tvalidation-rmse:6.37869 \n", "[635]\tvalidation-rmse:6.37869 \n", "[636]\tvalidation-rmse:6.37864 \n", "[637]\tvalidation-rmse:6.37867 \n", "[638]\tvalidation-rmse:6.37861 \n", "[639]\tvalidation-rmse:6.37859 \n", "[640]\tvalidation-rmse:6.37852 \n", "[641]\tvalidation-rmse:6.37846 \n", "[642]\tvalidation-rmse:6.37833 \n", "[643]\tvalidation-rmse:6.37835 \n", "[644]\tvalidation-rmse:6.37828 \n", "[645]\tvalidation-rmse:6.37819 \n", "[646]\tvalidation-rmse:6.37805 \n", "[647]\tvalidation-rmse:6.37800 \n", "[648]\tvalidation-rmse:6.37791 \n", "[649]\tvalidation-rmse:6.37776 \n", "[650]\tvalidation-rmse:6.37772 \n", "[651]\tvalidation-rmse:6.37754 \n", "[652]\tvalidation-rmse:6.37743 \n", "[653]\tvalidation-rmse:6.37743 \n", "[654]\tvalidation-rmse:6.37742 \n", "[655]\tvalidation-rmse:6.37725 \n", "[656]\tvalidation-rmse:6.37715 \n", "[657]\tvalidation-rmse:6.37712 \n", "[658]\tvalidation-rmse:6.37703 \n", "[659]\tvalidation-rmse:6.37709 \n", "[660]\tvalidation-rmse:6.37701 \n", "[661]\tvalidation-rmse:6.37698 \n", "[662]\tvalidation-rmse:6.37689 \n", "[663]\tvalidation-rmse:6.37689 \n", "[664]\tvalidation-rmse:6.37693 \n", "[665]\tvalidation-rmse:6.37689 \n", "[666]\tvalidation-rmse:6.37692 \n", "[667]\tvalidation-rmse:6.37693 \n", "[668]\tvalidation-rmse:6.37681 \n", "[669]\tvalidation-rmse:6.37675 \n", "[670]\tvalidation-rmse:6.37661 \n", "[671]\tvalidation-rmse:6.37658 \n", "[672]\tvalidation-rmse:6.37651 \n", "[673]\tvalidation-rmse:6.37645 \n", "[674]\tvalidation-rmse:6.37638 \n", "[675]\tvalidation-rmse:6.37640 \n", "[676]\tvalidation-rmse:6.37650 \n", "[677]\tvalidation-rmse:6.37652 \n", "[678]\tvalidation-rmse:6.37652 \n", "[679]\tvalidation-rmse:6.37650 \n", "[680]\tvalidation-rmse:6.37652 \n", "[681]\tvalidation-rmse:6.37649 \n", "[682]\tvalidation-rmse:6.37646 \n", "[683]\tvalidation-rmse:6.37653 \n", "[684]\tvalidation-rmse:6.37658 \n", "[685]\tvalidation-rmse:6.37649 \n", "[686]\tvalidation-rmse:6.37647 \n", "[687]\tvalidation-rmse:6.37647 \n", "[688]\tvalidation-rmse:6.37645 \n", "[689]\tvalidation-rmse:6.37638 \n", "[690]\tvalidation-rmse:6.37638 \n", "[691]\tvalidation-rmse:6.37626 \n", "[692]\tvalidation-rmse:6.37622 \n", "[693]\tvalidation-rmse:6.37610 \n", "[694]\tvalidation-rmse:6.37603 \n", "[695]\tvalidation-rmse:6.37585 \n", "[696]\tvalidation-rmse:6.37580 \n", "[697]\tvalidation-rmse:6.37579 \n", "[698]\tvalidation-rmse:6.37581 \n", "[699]\tvalidation-rmse:6.37583 \n", "[700]\tvalidation-rmse:6.37573 \n", "[701]\tvalidation-rmse:6.37569 \n", "[702]\tvalidation-rmse:6.37578 \n", "[703]\tvalidation-rmse:6.37588 \n", "[704]\tvalidation-rmse:6.37588 \n", "[705]\tvalidation-rmse:6.37579 \n", "[706]\tvalidation-rmse:6.37576 \n", "[707]\tvalidation-rmse:6.37575 \n", "[708]\tvalidation-rmse:6.37574 \n", "[709]\tvalidation-rmse:6.37566 \n", "[710]\tvalidation-rmse:6.37558 \n", "[711]\tvalidation-rmse:6.37553 \n", "[712]\tvalidation-rmse:6.37548 \n", "[713]\tvalidation-rmse:6.37547 \n", "[714]\tvalidation-rmse:6.37542 \n", "[715]\tvalidation-rmse:6.37538 \n", "[716]\tvalidation-rmse:6.37539 \n", "[717]\tvalidation-rmse:6.37536 \n", "[718]\tvalidation-rmse:6.37535 \n", "[719]\tvalidation-rmse:6.37527 \n", "[720]\tvalidation-rmse:6.37530 \n", "[721]\tvalidation-rmse:6.37524 \n", "[722]\tvalidation-rmse:6.37522 \n", "[723]\tvalidation-rmse:6.37520 \n", "[724]\tvalidation-rmse:6.37518 \n", "[725]\tvalidation-rmse:6.37510 \n", "[726]\tvalidation-rmse:6.37520 \n", "[727]\tvalidation-rmse:6.37517 \n", "[728]\tvalidation-rmse:6.37518 \n", "[729]\tvalidation-rmse:6.37518 \n", "[730]\tvalidation-rmse:6.37518 \n", "[731]\tvalidation-rmse:6.37516 \n", "[732]\tvalidation-rmse:6.37509 \n", "[733]\tvalidation-rmse:6.37507 \n", "[734]\tvalidation-rmse:6.37501 \n", "[735]\tvalidation-rmse:6.37505 \n", "[736]\tvalidation-rmse:6.37504 \n", "[737]\tvalidation-rmse:6.37499 \n", "[738]\tvalidation-rmse:6.37516 \n", "[739]\tvalidation-rmse:6.37517 \n", "[740]\tvalidation-rmse:6.37511 \n", "[741]\tvalidation-rmse:6.37516 \n", "[742]\tvalidation-rmse:6.37516 \n", "[743]\tvalidation-rmse:6.37512 \n", "[744]\tvalidation-rmse:6.37511 \n", "[745]\tvalidation-rmse:6.37517 \n", "[746]\tvalidation-rmse:6.37512 \n", "[747]\tvalidation-rmse:6.37511 \n", "[748]\tvalidation-rmse:6.37504 \n", "[749]\tvalidation-rmse:6.37502 \n", "[750]\tvalidation-rmse:6.37489 \n", "[751]\tvalidation-rmse:6.37492 \n", "[752]\tvalidation-rmse:6.37489 \n", "[753]\tvalidation-rmse:6.37491 \n", "[754]\tvalidation-rmse:6.37485 \n", "[755]\tvalidation-rmse:6.37486 \n", "[756]\tvalidation-rmse:6.37486 \n", "[757]\tvalidation-rmse:6.37476 \n", "[758]\tvalidation-rmse:6.37470 \n", "[759]\tvalidation-rmse:6.37463 \n", "[760]\tvalidation-rmse:6.37459 \n", "[761]\tvalidation-rmse:6.37454 \n", "[762]\tvalidation-rmse:6.37451 \n", "[763]\tvalidation-rmse:6.37451 \n", "[764]\tvalidation-rmse:6.37449 \n", "[765]\tvalidation-rmse:6.37448 \n", "[766]\tvalidation-rmse:6.37471 \n", "[767]\tvalidation-rmse:6.37469 \n", "[768]\tvalidation-rmse:6.37460 \n", "[769]\tvalidation-rmse:6.37446 \n", "[770]\tvalidation-rmse:6.37440 \n", "[771]\tvalidation-rmse:6.37446 \n", "[772]\tvalidation-rmse:6.37437 \n", "[773]\tvalidation-rmse:6.37434 \n", "[774]\tvalidation-rmse:6.37423 \n", "[775]\tvalidation-rmse:6.37428 \n", "[776]\tvalidation-rmse:6.37426 \n", "[777]\tvalidation-rmse:6.37426 \n", "[778]\tvalidation-rmse:6.37417 \n", "[779]\tvalidation-rmse:6.37411 \n", "[780]\tvalidation-rmse:6.37404 \n", "[781]\tvalidation-rmse:6.37402 \n", "[782]\tvalidation-rmse:6.37409 \n", "[783]\tvalidation-rmse:6.37427 \n", "[784]\tvalidation-rmse:6.37428 \n", "[785]\tvalidation-rmse:6.37441 \n", "[786]\tvalidation-rmse:6.37450 \n", "[787]\tvalidation-rmse:6.37452 \n", "[788]\tvalidation-rmse:6.37454 \n", "[789]\tvalidation-rmse:6.37456 \n", "[790]\tvalidation-rmse:6.37442 \n", "[791]\tvalidation-rmse:6.37442 \n", "[792]\tvalidation-rmse:6.37438 \n", "[793]\tvalidation-rmse:6.37431 \n", "[794]\tvalidation-rmse:6.37441 \n", "[795]\tvalidation-rmse:6.37460 \n", "[796]\tvalidation-rmse:6.37457 \n", "[797]\tvalidation-rmse:6.37452 \n", "[798]\tvalidation-rmse:6.37448 \n", "[799]\tvalidation-rmse:6.37441 \n", "[800]\tvalidation-rmse:6.37434 \n", "[801]\tvalidation-rmse:6.37425 \n", "[802]\tvalidation-rmse:6.37425 \n", "[803]\tvalidation-rmse:6.37424 \n", "[804]\tvalidation-rmse:6.37411 \n", "[805]\tvalidation-rmse:6.37415 \n", "[806]\tvalidation-rmse:6.37422 \n", "[807]\tvalidation-rmse:6.37432 \n", "[808]\tvalidation-rmse:6.37434 \n", "[809]\tvalidation-rmse:6.37434 \n", "[810]\tvalidation-rmse:6.37434 \n", "[811]\tvalidation-rmse:6.37419 \n", "[812]\tvalidation-rmse:6.37407 \n", "[813]\tvalidation-rmse:6.37399 \n", "[814]\tvalidation-rmse:6.37402 \n", "[815]\tvalidation-rmse:6.37404 \n", "[816]\tvalidation-rmse:6.37401 \n", "[817]\tvalidation-rmse:6.37399 \n", "[818]\tvalidation-rmse:6.37400 \n", "[819]\tvalidation-rmse:6.37396 \n", "[820]\tvalidation-rmse:6.37386 \n", "[821]\tvalidation-rmse:6.37381 \n", "[822]\tvalidation-rmse:6.37380 \n", "[823]\tvalidation-rmse:6.37378 \n", "[824]\tvalidation-rmse:6.37367 \n", "[825]\tvalidation-rmse:6.37360 \n", "[826]\tvalidation-rmse:6.37352 \n", "[827]\tvalidation-rmse:6.37346 \n", "[828]\tvalidation-rmse:6.37349 \n", "[829]\tvalidation-rmse:6.37344 \n", "[830]\tvalidation-rmse:6.37361 \n", "[831]\tvalidation-rmse:6.37359 \n", "[832]\tvalidation-rmse:6.37350 \n", "[833]\tvalidation-rmse:6.37344 \n", "[834]\tvalidation-rmse:6.37344 \n", "[835]\tvalidation-rmse:6.37340 \n", "[836]\tvalidation-rmse:6.37338 \n", "[837]\tvalidation-rmse:6.37337 \n", "[838]\tvalidation-rmse:6.37331 \n", "[839]\tvalidation-rmse:6.37352 \n", "[840]\tvalidation-rmse:6.37347 \n", "[841]\tvalidation-rmse:6.37344 \n", "[842]\tvalidation-rmse:6.37334 \n", "[843]\tvalidation-rmse:6.37337 \n", "[844]\tvalidation-rmse:6.37340 \n", "[845]\tvalidation-rmse:6.37353 \n", "[846]\tvalidation-rmse:6.37352 \n", "[847]\tvalidation-rmse:6.37354 \n", "[848]\tvalidation-rmse:6.37351 \n", "[849]\tvalidation-rmse:6.37351 \n", "[850]\tvalidation-rmse:6.37349 \n", "[851]\tvalidation-rmse:6.37345 \n", "[852]\tvalidation-rmse:6.37343 \n", "[853]\tvalidation-rmse:6.37339 \n", "[854]\tvalidation-rmse:6.37341 \n", "[855]\tvalidation-rmse:6.37331 \n", "[856]\tvalidation-rmse:6.37333 \n", "[857]\tvalidation-rmse:6.37325 \n", "[858]\tvalidation-rmse:6.37328 \n", "[859]\tvalidation-rmse:6.37324 \n", "[860]\tvalidation-rmse:6.37324 \n", "[861]\tvalidation-rmse:6.37335 \n", "[862]\tvalidation-rmse:6.37354 \n", "[863]\tvalidation-rmse:6.37381 \n", "[864]\tvalidation-rmse:6.37390 \n", "[865]\tvalidation-rmse:6.37399 \n", "[866]\tvalidation-rmse:6.37395 \n", "[867]\tvalidation-rmse:6.37392 \n", "[868]\tvalidation-rmse:6.37394 \n", "[869]\tvalidation-rmse:6.37393 \n", "[870]\tvalidation-rmse:6.37395 \n", "[871]\tvalidation-rmse:6.37399 \n", "[872]\tvalidation-rmse:6.37397 \n", "[873]\tvalidation-rmse:6.37402 \n", "[874]\tvalidation-rmse:6.37400 \n", "[875]\tvalidation-rmse:6.37427 \n", "[876]\tvalidation-rmse:6.37426 \n", "[877]\tvalidation-rmse:6.37429 \n", "[878]\tvalidation-rmse:6.37429 \n", "[879]\tvalidation-rmse:6.37419 \n", "[880]\tvalidation-rmse:6.37433 \n", "[881]\tvalidation-rmse:6.37432 \n", "[882]\tvalidation-rmse:6.37429 \n", "[883]\tvalidation-rmse:6.37432 \n", "[884]\tvalidation-rmse:6.37421 \n", "[885]\tvalidation-rmse:6.37415 \n", "[886]\tvalidation-rmse:6.37413 \n", "[887]\tvalidation-rmse:6.37408 \n", "[888]\tvalidation-rmse:6.37404 \n", "[889]\tvalidation-rmse:6.37397 \n", "[890]\tvalidation-rmse:6.37398 \n", "[891]\tvalidation-rmse:6.37401 \n", "[892]\tvalidation-rmse:6.37399 \n", "[893]\tvalidation-rmse:6.37390 \n", "[894]\tvalidation-rmse:6.37387 \n", "[895]\tvalidation-rmse:6.37386 \n", "[896]\tvalidation-rmse:6.37382 \n", "[897]\tvalidation-rmse:6.37379 \n", "[898]\tvalidation-rmse:6.37373 \n", "[899]\tvalidation-rmse:6.37369 \n", "[900]\tvalidation-rmse:6.37362 \n", "[901]\tvalidation-rmse:6.37367 \n", "[902]\tvalidation-rmse:6.37352 \n", "[903]\tvalidation-rmse:6.37354 \n", "[904]\tvalidation-rmse:6.37336 \n", "[905]\tvalidation-rmse:6.37332 \n", "[906]\tvalidation-rmse:6.37328 \n", "[907]\tvalidation-rmse:6.37329 \n", "[908]\tvalidation-rmse:6.37321 \n", "[909]\tvalidation-rmse:6.37319 \n", "[910]\tvalidation-rmse:6.37318 \n", "[911]\tvalidation-rmse:6.37343 \n", "[912]\tvalidation-rmse:6.37349 \n", "[913]\tvalidation-rmse:6.37351 \n", "[914]\tvalidation-rmse:6.37354 \n", "[915]\tvalidation-rmse:6.37353 \n", "[916]\tvalidation-rmse:6.37350 \n", "[917]\tvalidation-rmse:6.37363 \n", "[918]\tvalidation-rmse:6.37363 \n", "[919]\tvalidation-rmse:6.37389 \n", "[920]\tvalidation-rmse:6.37380 \n", "[921]\tvalidation-rmse:6.37379 \n", "[922]\tvalidation-rmse:6.37384 \n", "[923]\tvalidation-rmse:6.37374 \n", "[924]\tvalidation-rmse:6.37378 \n", "[925]\tvalidation-rmse:6.37382 \n", "[926]\tvalidation-rmse:6.37381 \n", "[927]\tvalidation-rmse:6.37374 \n", "[928]\tvalidation-rmse:6.37375 \n", "[929]\tvalidation-rmse:6.37370 \n", "[930]\tvalidation-rmse:6.37364 \n", "[931]\tvalidation-rmse:6.37373 \n", "[932]\tvalidation-rmse:6.37372 \n", "[933]\tvalidation-rmse:6.37372 \n", "[934]\tvalidation-rmse:6.37356 \n", "[935]\tvalidation-rmse:6.37350 \n", "[936]\tvalidation-rmse:6.37347 \n", "[937]\tvalidation-rmse:6.37347 \n", "[938]\tvalidation-rmse:6.37335 \n", "[939]\tvalidation-rmse:6.37338 \n", "[940]\tvalidation-rmse:6.37341 \n", "[941]\tvalidation-rmse:6.37339 \n", "[942]\tvalidation-rmse:6.37348 \n", "[943]\tvalidation-rmse:6.37347 \n", "[944]\tvalidation-rmse:6.37350 \n", "[945]\tvalidation-rmse:6.37362 \n", "[946]\tvalidation-rmse:6.37352 \n", "[947]\tvalidation-rmse:6.37355 \n", "[948]\tvalidation-rmse:6.37360 \n", "[949]\tvalidation-rmse:6.37354 \n", "[950]\tvalidation-rmse:6.37355 \n", "[951]\tvalidation-rmse:6.37348 \n", "[952]\tvalidation-rmse:6.37345 \n", "[953]\tvalidation-rmse:6.37347 \n", "[954]\tvalidation-rmse:6.37348 \n", "[955]\tvalidation-rmse:6.37345 \n", "[956]\tvalidation-rmse:6.37343 \n", "[957]\tvalidation-rmse:6.37362 \n", "[958]\tvalidation-rmse:6.37361 \n", "[959]\tvalidation-rmse:6.37364 \n", "[12:43:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.55573 \n", "[1]\tvalidation-rmse:18.08340 \n", "[2]\tvalidation-rmse:16.76415 \n", "[3]\tvalidation-rmse:15.58150 \n", "[4]\tvalidation-rmse:14.52593 \n", "[5]\tvalidation-rmse:13.58520 \n", "[6]\tvalidation-rmse:12.74715 \n", "[7]\tvalidation-rmse:12.00336 \n", "[8]\tvalidation-rmse:11.34568 \n", "[9]\tvalidation-rmse:10.76410 \n", "[10]\tvalidation-rmse:10.25369 \n", "[11]\tvalidation-rmse:9.80442 \n", "[12]\tvalidation-rmse:9.41014 \n", "[13]\tvalidation-rmse:9.06520 \n", "[14]\tvalidation-rmse:8.76445 \n", "[15]\tvalidation-rmse:8.50223 \n", "[16]\tvalidation-rmse:8.27392 \n", "[17]\tvalidation-rmse:8.07620 \n", "[18]\tvalidation-rmse:7.90389 \n", "[19]\tvalidation-rmse:7.75426 \n", "[20]\tvalidation-rmse:7.62363 \n", "[21]\tvalidation-rmse:7.51117 \n", "[22]\tvalidation-rmse:7.41330 \n", "[23]\tvalidation-rmse:7.32761 \n", "[24]\tvalidation-rmse:7.25395 \n", "[25]\tvalidation-rmse:7.18943 \n", "[26]\tvalidation-rmse:7.13277 \n", "[27]\tvalidation-rmse:7.08359 \n", "[28]\tvalidation-rmse:7.04075 \n", "[29]\tvalidation-rmse:7.00289 \n", "[30]\tvalidation-rmse:6.97012 \n", "[31]\tvalidation-rmse:6.94004 \n", "[32]\tvalidation-rmse:6.91411 \n", "[33]\tvalidation-rmse:6.89125 \n", "[34]\tvalidation-rmse:6.87076 \n", "[35]\tvalidation-rmse:6.85254 \n", "[36]\tvalidation-rmse:6.83721 \n", "[37]\tvalidation-rmse:6.82334 \n", "[38]\tvalidation-rmse:6.81035 \n", "[39]\tvalidation-rmse:6.79856 \n", "[40]\tvalidation-rmse:6.78916 \n", "[41]\tvalidation-rmse:6.77952 \n", "[42]\tvalidation-rmse:6.77186 \n", "[43]\tvalidation-rmse:6.76432 \n", "[44]\tvalidation-rmse:6.75814 \n", "[45]\tvalidation-rmse:6.75243 \n", "[46]\tvalidation-rmse:6.74604 \n", "[47]\tvalidation-rmse:6.74150 \n", "[48]\tvalidation-rmse:6.73749 \n", "[49]\tvalidation-rmse:6.73269 \n", "[50]\tvalidation-rmse:6.72941 \n", "[51]\tvalidation-rmse:6.72650 \n", "[52]\tvalidation-rmse:6.72347 \n", "[53]\tvalidation-rmse:6.72109 \n", "[54]\tvalidation-rmse:6.71855 \n", "[55]\tvalidation-rmse:6.71600 \n", "[56]\tvalidation-rmse:6.71417 \n", "[57]\tvalidation-rmse:6.71242 \n", "[58]\tvalidation-rmse:6.70960 \n", "[59]\tvalidation-rmse:6.70811 \n", "[60]\tvalidation-rmse:6.70656 \n", "[61]\tvalidation-rmse:6.70534 \n", "[62]\tvalidation-rmse:6.70380 \n", "[63]\tvalidation-rmse:6.70224 \n", "[64]\tvalidation-rmse:6.70069 \n", "[65]\tvalidation-rmse:6.69958 \n", "[66]\tvalidation-rmse:6.69860 \n", "[67]\tvalidation-rmse:6.69701 \n", "[68]\tvalidation-rmse:6.69596 \n", "[69]\tvalidation-rmse:6.69505 \n", "[70]\tvalidation-rmse:6.69423 \n", "[71]\tvalidation-rmse:6.69317 \n", "[72]\tvalidation-rmse:6.69177 \n", "[73]\tvalidation-rmse:6.69012 \n", "[74]\tvalidation-rmse:6.68947 \n", "[75]\tvalidation-rmse:6.68876 \n", "[76]\tvalidation-rmse:6.68816 \n", "[77]\tvalidation-rmse:6.68750 \n", "[78]\tvalidation-rmse:6.68677 \n", "[79]\tvalidation-rmse:6.68624 \n", "[80]\tvalidation-rmse:6.68539 \n", "[81]\tvalidation-rmse:6.68499 \n", "[82]\tvalidation-rmse:6.68442 \n", "[83]\tvalidation-rmse:6.68370 \n", "[84]\tvalidation-rmse:6.68272 \n", "[85]\tvalidation-rmse:6.68079 \n", "[86]\tvalidation-rmse:6.67992 \n", "[87]\tvalidation-rmse:6.67959 \n", "[88]\tvalidation-rmse:6.67854 \n", "[89]\tvalidation-rmse:6.67770 \n", "[90]\tvalidation-rmse:6.67727 \n", "[91]\tvalidation-rmse:6.67647 \n", "[92]\tvalidation-rmse:6.67576 \n", "[93]\tvalidation-rmse:6.67516 \n", "[94]\tvalidation-rmse:6.67482 \n", "[95]\tvalidation-rmse:6.67427 \n", "[96]\tvalidation-rmse:6.67340 \n", "[97]\tvalidation-rmse:6.67317 \n", "[98]\tvalidation-rmse:6.67268 \n", "[99]\tvalidation-rmse:6.67193 \n", "[100]\tvalidation-rmse:6.67148 \n", "[101]\tvalidation-rmse:6.67110 \n", "[102]\tvalidation-rmse:6.67053 \n", "[103]\tvalidation-rmse:6.67006 \n", "[104]\tvalidation-rmse:6.66968 \n", "[105]\tvalidation-rmse:6.66910 \n", "[106]\tvalidation-rmse:6.66891 \n", "[107]\tvalidation-rmse:6.66852 \n", "[108]\tvalidation-rmse:6.66809 \n", "[109]\tvalidation-rmse:6.66780 \n", "[110]\tvalidation-rmse:6.66748 \n", "[111]\tvalidation-rmse:6.66699 \n", "[112]\tvalidation-rmse:6.66616 \n", "[113]\tvalidation-rmse:6.66566 \n", "[114]\tvalidation-rmse:6.66518 \n", "[115]\tvalidation-rmse:6.66468 \n", "[116]\tvalidation-rmse:6.66413 \n", "[117]\tvalidation-rmse:6.66354 \n", "[118]\tvalidation-rmse:6.66248 \n", "[119]\tvalidation-rmse:6.66207 \n", "[120]\tvalidation-rmse:6.66187 \n", "[121]\tvalidation-rmse:6.66139 \n", "[122]\tvalidation-rmse:6.66071 \n", "[123]\tvalidation-rmse:6.66048 \n", "[124]\tvalidation-rmse:6.65975 \n", "[125]\tvalidation-rmse:6.65930 \n", "[126]\tvalidation-rmse:6.65865 \n", "[127]\tvalidation-rmse:6.65821 \n", "[128]\tvalidation-rmse:6.65782 \n", "[129]\tvalidation-rmse:6.65758 \n", "[130]\tvalidation-rmse:6.65727 \n", "[131]\tvalidation-rmse:6.65691 \n", "[132]\tvalidation-rmse:6.65678 \n", "[133]\tvalidation-rmse:6.65607 \n", "[134]\tvalidation-rmse:6.65562 \n", "[135]\tvalidation-rmse:6.65530 \n", "[136]\tvalidation-rmse:6.65475 \n", "[137]\tvalidation-rmse:6.65434 \n", "[138]\tvalidation-rmse:6.65370 \n", "[139]\tvalidation-rmse:6.65330 \n", "[140]\tvalidation-rmse:6.65288 \n", "[141]\tvalidation-rmse:6.65234 \n", "[142]\tvalidation-rmse:6.65177 \n", "[143]\tvalidation-rmse:6.65150 \n", "[144]\tvalidation-rmse:6.65119 \n", "[145]\tvalidation-rmse:6.65065 \n", "[146]\tvalidation-rmse:6.65045 \n", "[147]\tvalidation-rmse:6.65015 \n", "[148]\tvalidation-rmse:6.64981 \n", "[149]\tvalidation-rmse:6.64964 \n", "[150]\tvalidation-rmse:6.64933 \n", "[151]\tvalidation-rmse:6.64894 \n", "[152]\tvalidation-rmse:6.64868 \n", "[153]\tvalidation-rmse:6.64818 \n", "[154]\tvalidation-rmse:6.64801 \n", "[155]\tvalidation-rmse:6.64763 \n", "[156]\tvalidation-rmse:6.64728 \n", "[157]\tvalidation-rmse:6.64680 \n", "[158]\tvalidation-rmse:6.64622 \n", "[159]\tvalidation-rmse:6.64585 \n", "[160]\tvalidation-rmse:6.64558 \n", "[161]\tvalidation-rmse:6.64524 \n", "[162]\tvalidation-rmse:6.64498 \n", "[163]\tvalidation-rmse:6.64461 \n", "[164]\tvalidation-rmse:6.64407 \n", "[165]\tvalidation-rmse:6.64371 \n", "[166]\tvalidation-rmse:6.64361 \n", "[167]\tvalidation-rmse:6.64351 \n", "[168]\tvalidation-rmse:6.64291 \n", "[169]\tvalidation-rmse:6.64236 \n", "[170]\tvalidation-rmse:6.64215 \n", "[171]\tvalidation-rmse:6.64158 \n", "[172]\tvalidation-rmse:6.64108 \n", "[173]\tvalidation-rmse:6.64088 \n", "[174]\tvalidation-rmse:6.64020 \n", "[175]\tvalidation-rmse:6.63994 \n", "[176]\tvalidation-rmse:6.63978 \n", "[177]\tvalidation-rmse:6.63954 \n", "[178]\tvalidation-rmse:6.63898 \n", "[179]\tvalidation-rmse:6.63871 \n", "[180]\tvalidation-rmse:6.63840 \n", "[181]\tvalidation-rmse:6.63806 \n", "[182]\tvalidation-rmse:6.63795 \n", "[183]\tvalidation-rmse:6.63764 \n", "[184]\tvalidation-rmse:6.63722 \n", "[185]\tvalidation-rmse:6.63692 \n", "[186]\tvalidation-rmse:6.63672 \n", "[187]\tvalidation-rmse:6.63624 \n", "[188]\tvalidation-rmse:6.63600 \n", "[189]\tvalidation-rmse:6.63558 \n", "[190]\tvalidation-rmse:6.63501 \n", "[191]\tvalidation-rmse:6.63458 \n", "[192]\tvalidation-rmse:6.63434 \n", "[193]\tvalidation-rmse:6.63354 \n", "[194]\tvalidation-rmse:6.63321 \n", "[195]\tvalidation-rmse:6.63278 \n", "[196]\tvalidation-rmse:6.63200 \n", "[197]\tvalidation-rmse:6.63170 \n", "[198]\tvalidation-rmse:6.63128 \n", "[199]\tvalidation-rmse:6.63114 \n", "[200]\tvalidation-rmse:6.63104 \n", "[201]\tvalidation-rmse:6.63075 \n", "[202]\tvalidation-rmse:6.63040 \n", "[203]\tvalidation-rmse:6.63018 \n", "[204]\tvalidation-rmse:6.62970 \n", "[205]\tvalidation-rmse:6.62972 \n", "[206]\tvalidation-rmse:6.62931 \n", "[207]\tvalidation-rmse:6.62910 \n", "[208]\tvalidation-rmse:6.62886 \n", "[209]\tvalidation-rmse:6.62851 \n", "[210]\tvalidation-rmse:6.62817 \n", "[211]\tvalidation-rmse:6.62802 \n", "[212]\tvalidation-rmse:6.62782 \n", "[213]\tvalidation-rmse:6.62771 \n", "[214]\tvalidation-rmse:6.62722 \n", "[215]\tvalidation-rmse:6.62693 \n", "[216]\tvalidation-rmse:6.62665 \n", "[217]\tvalidation-rmse:6.62621 \n", "[218]\tvalidation-rmse:6.62594 \n", "[219]\tvalidation-rmse:6.62561 \n", "[220]\tvalidation-rmse:6.62509 \n", "[221]\tvalidation-rmse:6.62479 \n", "[222]\tvalidation-rmse:6.62439 \n", "[223]\tvalidation-rmse:6.62410 \n", "[224]\tvalidation-rmse:6.62391 \n", "[225]\tvalidation-rmse:6.62372 \n", "[226]\tvalidation-rmse:6.62360 \n", "[227]\tvalidation-rmse:6.62338 \n", "[228]\tvalidation-rmse:6.62289 \n", "[229]\tvalidation-rmse:6.62228 \n", "[230]\tvalidation-rmse:6.62220 \n", "[231]\tvalidation-rmse:6.62198 \n", "[232]\tvalidation-rmse:6.62164 \n", "[233]\tvalidation-rmse:6.62122 \n", "[234]\tvalidation-rmse:6.62096 \n", "[235]\tvalidation-rmse:6.62070 \n", "[236]\tvalidation-rmse:6.62052 \n", "[237]\tvalidation-rmse:6.62005 \n", "[238]\tvalidation-rmse:6.61955 \n", "[239]\tvalidation-rmse:6.61941 \n", "[240]\tvalidation-rmse:6.61909 \n", "[241]\tvalidation-rmse:6.61872 \n", "[242]\tvalidation-rmse:6.61830 \n", "[243]\tvalidation-rmse:6.61795 \n", "[244]\tvalidation-rmse:6.61776 \n", "[245]\tvalidation-rmse:6.61746 \n", "[246]\tvalidation-rmse:6.61719 \n", "[247]\tvalidation-rmse:6.61694 \n", "[248]\tvalidation-rmse:6.61678 \n", "[249]\tvalidation-rmse:6.61649 \n", "[250]\tvalidation-rmse:6.61633 \n", "[251]\tvalidation-rmse:6.61595 \n", "[252]\tvalidation-rmse:6.61566 \n", "[253]\tvalidation-rmse:6.61551 \n", "[254]\tvalidation-rmse:6.61541 \n", "[255]\tvalidation-rmse:6.61523 \n", "[256]\tvalidation-rmse:6.61480 \n", "[257]\tvalidation-rmse:6.61458 \n", "[258]\tvalidation-rmse:6.61429 \n", "[259]\tvalidation-rmse:6.61409 \n", "[260]\tvalidation-rmse:6.61386 \n", "[261]\tvalidation-rmse:6.61352 \n", "[262]\tvalidation-rmse:6.61336 \n", "[263]\tvalidation-rmse:6.61298 \n", "[264]\tvalidation-rmse:6.61279 \n", "[265]\tvalidation-rmse:6.61240 \n", "[266]\tvalidation-rmse:6.61195 \n", "[267]\tvalidation-rmse:6.61125 \n", "[268]\tvalidation-rmse:6.61089 \n", "[269]\tvalidation-rmse:6.61066 \n", "[270]\tvalidation-rmse:6.61045 \n", "[271]\tvalidation-rmse:6.61003 \n", "[272]\tvalidation-rmse:6.60979 \n", "[273]\tvalidation-rmse:6.60960 \n", "[274]\tvalidation-rmse:6.60942 \n", "[275]\tvalidation-rmse:6.60908 \n", "[276]\tvalidation-rmse:6.60891 \n", "[277]\tvalidation-rmse:6.60813 \n", "[278]\tvalidation-rmse:6.60791 \n", "[279]\tvalidation-rmse:6.60766 \n", "[280]\tvalidation-rmse:6.60752 \n", "[281]\tvalidation-rmse:6.60729 \n", "[282]\tvalidation-rmse:6.60731 \n", "[283]\tvalidation-rmse:6.60697 \n", "[284]\tvalidation-rmse:6.60670 \n", "[285]\tvalidation-rmse:6.60644 \n", "[286]\tvalidation-rmse:6.60617 \n", "[287]\tvalidation-rmse:6.60611 \n", "[288]\tvalidation-rmse:6.60588 \n", "[289]\tvalidation-rmse:6.60578 \n", "[290]\tvalidation-rmse:6.60559 \n", "[291]\tvalidation-rmse:6.60541 \n", "[292]\tvalidation-rmse:6.60526 \n", "[293]\tvalidation-rmse:6.60510 \n", "[294]\tvalidation-rmse:6.60471 \n", "[295]\tvalidation-rmse:6.60445 \n", "[296]\tvalidation-rmse:6.60413 \n", "[297]\tvalidation-rmse:6.60371 \n", "[298]\tvalidation-rmse:6.60364 \n", "[299]\tvalidation-rmse:6.60321 \n", "[300]\tvalidation-rmse:6.60284 \n", "[301]\tvalidation-rmse:6.60234 \n", "[302]\tvalidation-rmse:6.60208 \n", "[303]\tvalidation-rmse:6.60165 \n", "[304]\tvalidation-rmse:6.60146 \n", "[305]\tvalidation-rmse:6.60120 \n", "[306]\tvalidation-rmse:6.60097 \n", "[307]\tvalidation-rmse:6.60077 \n", "[308]\tvalidation-rmse:6.60052 \n", "[309]\tvalidation-rmse:6.60020 \n", "[310]\tvalidation-rmse:6.60007 \n", "[311]\tvalidation-rmse:6.59973 \n", "[312]\tvalidation-rmse:6.59942 \n", "[313]\tvalidation-rmse:6.59904 \n", "[314]\tvalidation-rmse:6.59900 \n", "[315]\tvalidation-rmse:6.59885 \n", "[316]\tvalidation-rmse:6.59872 \n", "[317]\tvalidation-rmse:6.59808 \n", "[318]\tvalidation-rmse:6.59777 \n", "[319]\tvalidation-rmse:6.59735 \n", "[320]\tvalidation-rmse:6.59713 \n", "[321]\tvalidation-rmse:6.59682 \n", "[322]\tvalidation-rmse:6.59668 \n", "[323]\tvalidation-rmse:6.59635 \n", "[324]\tvalidation-rmse:6.59588 \n", "[325]\tvalidation-rmse:6.59562 \n", "[326]\tvalidation-rmse:6.59552 \n", "[327]\tvalidation-rmse:6.59517 \n", "[328]\tvalidation-rmse:6.59479 \n", "[329]\tvalidation-rmse:6.59444 \n", "[330]\tvalidation-rmse:6.59427 \n", "[331]\tvalidation-rmse:6.59406 \n", "[332]\tvalidation-rmse:6.59395 \n", "[333]\tvalidation-rmse:6.59362 \n", "[334]\tvalidation-rmse:6.59325 \n", "[335]\tvalidation-rmse:6.59312 \n", "[336]\tvalidation-rmse:6.59290 \n", "[337]\tvalidation-rmse:6.59294 \n", "[338]\tvalidation-rmse:6.59266 \n", "[339]\tvalidation-rmse:6.59246 \n", "[340]\tvalidation-rmse:6.59233 \n", "[341]\tvalidation-rmse:6.59194 \n", "[342]\tvalidation-rmse:6.59159 \n", "[343]\tvalidation-rmse:6.59150 \n", "[344]\tvalidation-rmse:6.59120 \n", "[345]\tvalidation-rmse:6.59099 \n", "[346]\tvalidation-rmse:6.59091 \n", "[347]\tvalidation-rmse:6.59078 \n", "[348]\tvalidation-rmse:6.59063 \n", "[349]\tvalidation-rmse:6.59054 \n", "[350]\tvalidation-rmse:6.59037 \n", "[351]\tvalidation-rmse:6.59015 \n", "[352]\tvalidation-rmse:6.58980 \n", "[353]\tvalidation-rmse:6.58951 \n", "[354]\tvalidation-rmse:6.58935 \n", "[355]\tvalidation-rmse:6.58897 \n", "[356]\tvalidation-rmse:6.58870 \n", "[357]\tvalidation-rmse:6.58857 \n", "[358]\tvalidation-rmse:6.58836 \n", "[359]\tvalidation-rmse:6.58808 \n", "[360]\tvalidation-rmse:6.58788 \n", "[361]\tvalidation-rmse:6.58755 \n", "[362]\tvalidation-rmse:6.58730 \n", "[363]\tvalidation-rmse:6.58708 \n", "[364]\tvalidation-rmse:6.58683 \n", "[365]\tvalidation-rmse:6.58665 \n", "[366]\tvalidation-rmse:6.58622 \n", "[367]\tvalidation-rmse:6.58591 \n", "[368]\tvalidation-rmse:6.58578 \n", "[369]\tvalidation-rmse:6.58561 \n", "[370]\tvalidation-rmse:6.58536 \n", "[371]\tvalidation-rmse:6.58521 \n", "[372]\tvalidation-rmse:6.58509 \n", "[373]\tvalidation-rmse:6.58492 \n", "[374]\tvalidation-rmse:6.58471 \n", "[375]\tvalidation-rmse:6.58449 \n", "[376]\tvalidation-rmse:6.58435 \n", "[377]\tvalidation-rmse:6.58399 \n", "[378]\tvalidation-rmse:6.58362 \n", "[379]\tvalidation-rmse:6.58356 \n", "[380]\tvalidation-rmse:6.58341 \n", "[381]\tvalidation-rmse:6.58318 \n", "[382]\tvalidation-rmse:6.58297 \n", "[383]\tvalidation-rmse:6.58273 \n", "[384]\tvalidation-rmse:6.58257 \n", "[385]\tvalidation-rmse:6.58235 \n", "[386]\tvalidation-rmse:6.58226 \n", "[387]\tvalidation-rmse:6.58218 \n", "[388]\tvalidation-rmse:6.58215 \n", "[389]\tvalidation-rmse:6.58190 \n", "[390]\tvalidation-rmse:6.58171 \n", "[391]\tvalidation-rmse:6.58165 \n", "[392]\tvalidation-rmse:6.58155 \n", "[393]\tvalidation-rmse:6.58138 \n", "[394]\tvalidation-rmse:6.58127 \n", "[395]\tvalidation-rmse:6.58104 \n", "[396]\tvalidation-rmse:6.58078 \n", "[397]\tvalidation-rmse:6.58052 \n", "[398]\tvalidation-rmse:6.58033 \n", "[399]\tvalidation-rmse:6.58017 \n", "[400]\tvalidation-rmse:6.57997 \n", "[401]\tvalidation-rmse:6.57986 \n", "[402]\tvalidation-rmse:6.57974 \n", "[403]\tvalidation-rmse:6.57945 \n", "[404]\tvalidation-rmse:6.57904 \n", "[405]\tvalidation-rmse:6.57880 \n", "[406]\tvalidation-rmse:6.57838 \n", "[407]\tvalidation-rmse:6.57804 \n", "[408]\tvalidation-rmse:6.57784 \n", "[409]\tvalidation-rmse:6.57753 \n", "[410]\tvalidation-rmse:6.57728 \n", "[411]\tvalidation-rmse:6.57720 \n", "[412]\tvalidation-rmse:6.57707 \n", "[413]\tvalidation-rmse:6.57681 \n", "[414]\tvalidation-rmse:6.57680 \n", "[415]\tvalidation-rmse:6.57665 \n", "[416]\tvalidation-rmse:6.57641 \n", "[417]\tvalidation-rmse:6.57626 \n", "[418]\tvalidation-rmse:6.57599 \n", "[419]\tvalidation-rmse:6.57567 \n", "[420]\tvalidation-rmse:6.57482 \n", "[421]\tvalidation-rmse:6.57447 \n", "[422]\tvalidation-rmse:6.57444 \n", "[423]\tvalidation-rmse:6.57404 \n", "[424]\tvalidation-rmse:6.57363 \n", "[425]\tvalidation-rmse:6.57346 \n", "[426]\tvalidation-rmse:6.57326 \n", "[427]\tvalidation-rmse:6.57287 \n", "[428]\tvalidation-rmse:6.57255 \n", "[429]\tvalidation-rmse:6.57248 \n", "[430]\tvalidation-rmse:6.57226 \n", "[431]\tvalidation-rmse:6.57193 \n", "[432]\tvalidation-rmse:6.57179 \n", "[433]\tvalidation-rmse:6.57157 \n", "[434]\tvalidation-rmse:6.57146 \n", "[435]\tvalidation-rmse:6.57109 \n", "[436]\tvalidation-rmse:6.57067 \n", "[437]\tvalidation-rmse:6.57029 \n", "[438]\tvalidation-rmse:6.57011 \n", "[439]\tvalidation-rmse:6.56974 \n", "[440]\tvalidation-rmse:6.56964 \n", "[441]\tvalidation-rmse:6.56935 \n", "[442]\tvalidation-rmse:6.56911 \n", "[443]\tvalidation-rmse:6.56897 \n", "[444]\tvalidation-rmse:6.56889 \n", "[445]\tvalidation-rmse:6.56869 \n", "[446]\tvalidation-rmse:6.56858 \n", "[447]\tvalidation-rmse:6.56854 \n", "[448]\tvalidation-rmse:6.56826 \n", "[449]\tvalidation-rmse:6.56814 \n", "[450]\tvalidation-rmse:6.56800 \n", "[451]\tvalidation-rmse:6.56787 \n", "[452]\tvalidation-rmse:6.56776 \n", "[453]\tvalidation-rmse:6.56755 \n", "[454]\tvalidation-rmse:6.56732 \n", "[455]\tvalidation-rmse:6.56720 \n", "[456]\tvalidation-rmse:6.56701 \n", "[457]\tvalidation-rmse:6.56704 \n", "[458]\tvalidation-rmse:6.56677 \n", "[459]\tvalidation-rmse:6.56669 \n", "[460]\tvalidation-rmse:6.56601 \n", "[461]\tvalidation-rmse:6.56580 \n", "[462]\tvalidation-rmse:6.56562 \n", "[463]\tvalidation-rmse:6.56546 \n", "[464]\tvalidation-rmse:6.56516 \n", "[465]\tvalidation-rmse:6.56510 \n", "[466]\tvalidation-rmse:6.56489 \n", "[467]\tvalidation-rmse:6.56471 \n", "[468]\tvalidation-rmse:6.56455 \n", "[469]\tvalidation-rmse:6.56430 \n", "[470]\tvalidation-rmse:6.56408 \n", "[471]\tvalidation-rmse:6.56375 \n", "[472]\tvalidation-rmse:6.56342 \n", "[473]\tvalidation-rmse:6.56324 \n", "[474]\tvalidation-rmse:6.56312 \n", "[475]\tvalidation-rmse:6.56290 \n", "[476]\tvalidation-rmse:6.56275 \n", "[477]\tvalidation-rmse:6.56270 \n", "[478]\tvalidation-rmse:6.56243 \n", "[479]\tvalidation-rmse:6.56227 \n", "[480]\tvalidation-rmse:6.56207 \n", "[481]\tvalidation-rmse:6.56183 \n", "[482]\tvalidation-rmse:6.56160 \n", "[483]\tvalidation-rmse:6.56146 \n", "[484]\tvalidation-rmse:6.56122 \n", "[485]\tvalidation-rmse:6.56096 \n", "[486]\tvalidation-rmse:6.56083 \n", "[487]\tvalidation-rmse:6.56054 \n", "[488]\tvalidation-rmse:6.56041 \n", "[489]\tvalidation-rmse:6.56026 \n", "[490]\tvalidation-rmse:6.56013 \n", "[491]\tvalidation-rmse:6.55992 \n", "[492]\tvalidation-rmse:6.55980 \n", "[493]\tvalidation-rmse:6.55973 \n", "[494]\tvalidation-rmse:6.55955 \n", "[495]\tvalidation-rmse:6.55938 \n", "[496]\tvalidation-rmse:6.55920 \n", "[497]\tvalidation-rmse:6.55913 \n", "[498]\tvalidation-rmse:6.55887 \n", "[499]\tvalidation-rmse:6.55893 \n", "[500]\tvalidation-rmse:6.55878 \n", "[501]\tvalidation-rmse:6.55846 \n", "[502]\tvalidation-rmse:6.55816 \n", "[503]\tvalidation-rmse:6.55798 \n", "[504]\tvalidation-rmse:6.55779 \n", "[505]\tvalidation-rmse:6.55758 \n", "[506]\tvalidation-rmse:6.55744 \n", "[507]\tvalidation-rmse:6.55730 \n", "[508]\tvalidation-rmse:6.55720 \n", "[509]\tvalidation-rmse:6.55711 \n", "[510]\tvalidation-rmse:6.55704 \n", "[511]\tvalidation-rmse:6.55687 \n", "[512]\tvalidation-rmse:6.55683 \n", "[513]\tvalidation-rmse:6.55673 \n", "[514]\tvalidation-rmse:6.55663 \n", "[515]\tvalidation-rmse:6.55648 \n", "[516]\tvalidation-rmse:6.55632 \n", "[517]\tvalidation-rmse:6.55623 \n", "[518]\tvalidation-rmse:6.55601 \n", "[519]\tvalidation-rmse:6.55575 \n", "[520]\tvalidation-rmse:6.55563 \n", "[521]\tvalidation-rmse:6.55542 \n", "[522]\tvalidation-rmse:6.55531 \n", "[523]\tvalidation-rmse:6.55515 \n", "[524]\tvalidation-rmse:6.55499 \n", "[525]\tvalidation-rmse:6.55486 \n", "[526]\tvalidation-rmse:6.55472 \n", "[527]\tvalidation-rmse:6.55447 \n", "[528]\tvalidation-rmse:6.55437 \n", "[529]\tvalidation-rmse:6.55414 \n", "[530]\tvalidation-rmse:6.55390 \n", "[531]\tvalidation-rmse:6.55365 \n", "[532]\tvalidation-rmse:6.55334 \n", "[533]\tvalidation-rmse:6.55317 \n", "[534]\tvalidation-rmse:6.55295 \n", "[535]\tvalidation-rmse:6.55259 \n", "[536]\tvalidation-rmse:6.55224 \n", "[537]\tvalidation-rmse:6.55209 \n", "[538]\tvalidation-rmse:6.55201 \n", "[539]\tvalidation-rmse:6.55181 \n", "[540]\tvalidation-rmse:6.55171 \n", "[541]\tvalidation-rmse:6.55154 \n", "[542]\tvalidation-rmse:6.55152 \n", "[543]\tvalidation-rmse:6.55135 \n", "[544]\tvalidation-rmse:6.55142 \n", "[545]\tvalidation-rmse:6.55124 \n", "[546]\tvalidation-rmse:6.55109 \n", "[547]\tvalidation-rmse:6.55092 \n", "[548]\tvalidation-rmse:6.55060 \n", "[549]\tvalidation-rmse:6.55034 \n", "[550]\tvalidation-rmse:6.55019 \n", "[551]\tvalidation-rmse:6.54994 \n", "[552]\tvalidation-rmse:6.54964 \n", "[553]\tvalidation-rmse:6.54952 \n", "[554]\tvalidation-rmse:6.54926 \n", "[555]\tvalidation-rmse:6.54899 \n", "[556]\tvalidation-rmse:6.54886 \n", "[557]\tvalidation-rmse:6.54864 \n", "[558]\tvalidation-rmse:6.54830 \n", "[559]\tvalidation-rmse:6.54819 \n", "[560]\tvalidation-rmse:6.54802 \n", "[561]\tvalidation-rmse:6.54796 \n", "[562]\tvalidation-rmse:6.54775 \n", "[563]\tvalidation-rmse:6.54754 \n", "[564]\tvalidation-rmse:6.54741 \n", "[565]\tvalidation-rmse:6.54722 \n", "[566]\tvalidation-rmse:6.54704 \n", "[567]\tvalidation-rmse:6.54686 \n", "[568]\tvalidation-rmse:6.54665 \n", "[569]\tvalidation-rmse:6.54653 \n", "[570]\tvalidation-rmse:6.54638 \n", "[571]\tvalidation-rmse:6.54614 \n", "[572]\tvalidation-rmse:6.54589 \n", "[573]\tvalidation-rmse:6.54570 \n", "[574]\tvalidation-rmse:6.54538 \n", "[575]\tvalidation-rmse:6.54521 \n", "[576]\tvalidation-rmse:6.54499 \n", "[577]\tvalidation-rmse:6.54472 \n", "[578]\tvalidation-rmse:6.54458 \n", "[579]\tvalidation-rmse:6.54449 \n", "[580]\tvalidation-rmse:6.54430 \n", "[581]\tvalidation-rmse:6.54425 \n", "[582]\tvalidation-rmse:6.54402 \n", "[583]\tvalidation-rmse:6.54392 \n", "[584]\tvalidation-rmse:6.54381 \n", "[585]\tvalidation-rmse:6.54366 \n", "[586]\tvalidation-rmse:6.54342 \n", "[587]\tvalidation-rmse:6.54337 \n", "[588]\tvalidation-rmse:6.54319 \n", "[589]\tvalidation-rmse:6.54271 \n", "[590]\tvalidation-rmse:6.54195 \n", "[591]\tvalidation-rmse:6.54182 \n", "[592]\tvalidation-rmse:6.54178 \n", "[593]\tvalidation-rmse:6.54171 \n", "[594]\tvalidation-rmse:6.54166 \n", "[595]\tvalidation-rmse:6.54152 \n", "[596]\tvalidation-rmse:6.54149 \n", "[597]\tvalidation-rmse:6.54135 \n", "[598]\tvalidation-rmse:6.54113 \n", "[599]\tvalidation-rmse:6.54104 \n", "[600]\tvalidation-rmse:6.54084 \n", "[601]\tvalidation-rmse:6.54050 \n", "[602]\tvalidation-rmse:6.54029 \n", "[603]\tvalidation-rmse:6.54013 \n", "[604]\tvalidation-rmse:6.54000 \n", "[605]\tvalidation-rmse:6.53934 \n", "[606]\tvalidation-rmse:6.53913 \n", "[607]\tvalidation-rmse:6.53896 \n", "[608]\tvalidation-rmse:6.53879 \n", "[609]\tvalidation-rmse:6.53856 \n", "[610]\tvalidation-rmse:6.53831 \n", "[611]\tvalidation-rmse:6.53814 \n", "[612]\tvalidation-rmse:6.53791 \n", "[613]\tvalidation-rmse:6.53776 \n", "[614]\tvalidation-rmse:6.53758 \n", "[615]\tvalidation-rmse:6.53751 \n", "[616]\tvalidation-rmse:6.53738 \n", "[617]\tvalidation-rmse:6.53725 \n", "[618]\tvalidation-rmse:6.53713 \n", "[619]\tvalidation-rmse:6.53700 \n", "[620]\tvalidation-rmse:6.53686 \n", "[621]\tvalidation-rmse:6.53663 \n", "[622]\tvalidation-rmse:6.53639 \n", "[623]\tvalidation-rmse:6.53622 \n", "[624]\tvalidation-rmse:6.53606 \n", "[625]\tvalidation-rmse:6.53588 \n", "[626]\tvalidation-rmse:6.53573 \n", "[627]\tvalidation-rmse:6.53555 \n", "[628]\tvalidation-rmse:6.53541 \n", "[629]\tvalidation-rmse:6.53522 \n", "[630]\tvalidation-rmse:6.53499 \n", "[631]\tvalidation-rmse:6.53486 \n", "[632]\tvalidation-rmse:6.53470 \n", "[633]\tvalidation-rmse:6.53455 \n", "[634]\tvalidation-rmse:6.53455 \n", "[635]\tvalidation-rmse:6.53443 \n", "[636]\tvalidation-rmse:6.53438 \n", "[637]\tvalidation-rmse:6.53432 \n", "[638]\tvalidation-rmse:6.53425 \n", "[639]\tvalidation-rmse:6.53396 \n", "[640]\tvalidation-rmse:6.53375 \n", "[641]\tvalidation-rmse:6.53376 \n", "[642]\tvalidation-rmse:6.53338 \n", "[643]\tvalidation-rmse:6.53333 \n", "[644]\tvalidation-rmse:6.53318 \n", "[645]\tvalidation-rmse:6.53307 \n", "[646]\tvalidation-rmse:6.53298 \n", "[647]\tvalidation-rmse:6.53282 \n", "[648]\tvalidation-rmse:6.53239 \n", "[649]\tvalidation-rmse:6.53229 \n", "[650]\tvalidation-rmse:6.53200 \n", "[651]\tvalidation-rmse:6.53193 \n", "[652]\tvalidation-rmse:6.53135 \n", "[653]\tvalidation-rmse:6.53130 \n", "[654]\tvalidation-rmse:6.53118 \n", "[655]\tvalidation-rmse:6.53115 \n", "[656]\tvalidation-rmse:6.53106 \n", "[657]\tvalidation-rmse:6.53096 \n", "[658]\tvalidation-rmse:6.53076 \n", "[659]\tvalidation-rmse:6.53068 \n", "[660]\tvalidation-rmse:6.53062 \n", "[661]\tvalidation-rmse:6.53051 \n", "[662]\tvalidation-rmse:6.53044 \n", "[663]\tvalidation-rmse:6.53032 \n", "[664]\tvalidation-rmse:6.53023 \n", "[665]\tvalidation-rmse:6.53009 \n", "[666]\tvalidation-rmse:6.53003 \n", "[667]\tvalidation-rmse:6.52977 \n", "[668]\tvalidation-rmse:6.52959 \n", "[669]\tvalidation-rmse:6.52945 \n", "[670]\tvalidation-rmse:6.52938 \n", "[671]\tvalidation-rmse:6.52921 \n", "[672]\tvalidation-rmse:6.52904 \n", "[673]\tvalidation-rmse:6.52902 \n", "[674]\tvalidation-rmse:6.52902 \n", "[675]\tvalidation-rmse:6.52903 \n", "[676]\tvalidation-rmse:6.52893 \n", "[677]\tvalidation-rmse:6.52880 \n", "[678]\tvalidation-rmse:6.52869 \n", "[679]\tvalidation-rmse:6.52828 \n", "[680]\tvalidation-rmse:6.52808 \n", "[681]\tvalidation-rmse:6.52792 \n", "[682]\tvalidation-rmse:6.52771 \n", "[683]\tvalidation-rmse:6.52753 \n", "[684]\tvalidation-rmse:6.52725 \n", "[685]\tvalidation-rmse:6.52706 \n", "[686]\tvalidation-rmse:6.52679 \n", "[687]\tvalidation-rmse:6.52667 \n", "[688]\tvalidation-rmse:6.52658 \n", "[689]\tvalidation-rmse:6.52656 \n", "[690]\tvalidation-rmse:6.52638 \n", "[691]\tvalidation-rmse:6.52634 \n", "[692]\tvalidation-rmse:6.52629 \n", "[693]\tvalidation-rmse:6.52617 \n", "[694]\tvalidation-rmse:6.52598 \n", "[695]\tvalidation-rmse:6.52570 \n", "[696]\tvalidation-rmse:6.52563 \n", "[697]\tvalidation-rmse:6.52557 \n", "[698]\tvalidation-rmse:6.52551 \n", "[699]\tvalidation-rmse:6.52539 \n", "[700]\tvalidation-rmse:6.52517 \n", "[701]\tvalidation-rmse:6.52501 \n", "[702]\tvalidation-rmse:6.52488 \n", "[703]\tvalidation-rmse:6.52462 \n", "[704]\tvalidation-rmse:6.52428 \n", "[705]\tvalidation-rmse:6.52424 \n", "[706]\tvalidation-rmse:6.52407 \n", "[707]\tvalidation-rmse:6.52387 \n", "[708]\tvalidation-rmse:6.52386 \n", "[709]\tvalidation-rmse:6.52383 \n", "[710]\tvalidation-rmse:6.52349 \n", "[711]\tvalidation-rmse:6.52327 \n", "[712]\tvalidation-rmse:6.52318 \n", "[713]\tvalidation-rmse:6.52313 \n", "[714]\tvalidation-rmse:6.52310 \n", "[715]\tvalidation-rmse:6.52298 \n", "[716]\tvalidation-rmse:6.52281 \n", "[717]\tvalidation-rmse:6.52240 \n", "[718]\tvalidation-rmse:6.52232 \n", "[719]\tvalidation-rmse:6.52213 \n", "[720]\tvalidation-rmse:6.52189 \n", "[721]\tvalidation-rmse:6.52174 \n", "[722]\tvalidation-rmse:6.52161 \n", "[723]\tvalidation-rmse:6.52148 \n", "[724]\tvalidation-rmse:6.52132 \n", "[725]\tvalidation-rmse:6.52120 \n", "[726]\tvalidation-rmse:6.52097 \n", "[727]\tvalidation-rmse:6.52080 \n", "[728]\tvalidation-rmse:6.52054 \n", "[729]\tvalidation-rmse:6.52043 \n", "[730]\tvalidation-rmse:6.52042 \n", "[731]\tvalidation-rmse:6.52020 \n", "[732]\tvalidation-rmse:6.52003 \n", "[733]\tvalidation-rmse:6.51975 \n", "[734]\tvalidation-rmse:6.51972 \n", "[735]\tvalidation-rmse:6.51952 \n", "[736]\tvalidation-rmse:6.51937 \n", "[737]\tvalidation-rmse:6.51917 \n", "[738]\tvalidation-rmse:6.51914 \n", "[739]\tvalidation-rmse:6.51899 \n", "[740]\tvalidation-rmse:6.51887 \n", "[741]\tvalidation-rmse:6.51873 \n", "[742]\tvalidation-rmse:6.51856 \n", "[743]\tvalidation-rmse:6.51835 \n", "[744]\tvalidation-rmse:6.51824 \n", "[745]\tvalidation-rmse:6.51822 \n", "[746]\tvalidation-rmse:6.51820 \n", "[747]\tvalidation-rmse:6.51812 \n", "[748]\tvalidation-rmse:6.51801 \n", "[749]\tvalidation-rmse:6.51804 \n", "[750]\tvalidation-rmse:6.51783 \n", "[751]\tvalidation-rmse:6.51781 \n", "[752]\tvalidation-rmse:6.51777 \n", "[753]\tvalidation-rmse:6.51763 \n", "[754]\tvalidation-rmse:6.51755 \n", "[755]\tvalidation-rmse:6.51751 \n", "[756]\tvalidation-rmse:6.51735 \n", "[757]\tvalidation-rmse:6.51720 \n", "[758]\tvalidation-rmse:6.51716 \n", "[759]\tvalidation-rmse:6.51705 \n", "[760]\tvalidation-rmse:6.51686 \n", "[761]\tvalidation-rmse:6.51670 \n", "[762]\tvalidation-rmse:6.51657 \n", "[763]\tvalidation-rmse:6.51635 \n", "[764]\tvalidation-rmse:6.51619 \n", "[765]\tvalidation-rmse:6.51600 \n", "[766]\tvalidation-rmse:6.51582 \n", "[767]\tvalidation-rmse:6.51553 \n", "[768]\tvalidation-rmse:6.51532 \n", "[769]\tvalidation-rmse:6.51520 \n", "[770]\tvalidation-rmse:6.51502 \n", "[771]\tvalidation-rmse:6.51482 \n", "[772]\tvalidation-rmse:6.51458 \n", "[773]\tvalidation-rmse:6.51442 \n", "[774]\tvalidation-rmse:6.51422 \n", "[775]\tvalidation-rmse:6.51416 \n", "[776]\tvalidation-rmse:6.51401 \n", "[777]\tvalidation-rmse:6.51393 \n", "[778]\tvalidation-rmse:6.51389 \n", "[779]\tvalidation-rmse:6.51386 \n", "[780]\tvalidation-rmse:6.51381 \n", "[781]\tvalidation-rmse:6.51371 \n", "[782]\tvalidation-rmse:6.51348 \n", "[783]\tvalidation-rmse:6.51334 \n", "[784]\tvalidation-rmse:6.51315 \n", "[785]\tvalidation-rmse:6.51302 \n", "[786]\tvalidation-rmse:6.51291 \n", "[787]\tvalidation-rmse:6.51281 \n", "[788]\tvalidation-rmse:6.51268 \n", "[789]\tvalidation-rmse:6.51258 \n", "[790]\tvalidation-rmse:6.51239 \n", "[791]\tvalidation-rmse:6.51230 \n", "[792]\tvalidation-rmse:6.51209 \n", "[793]\tvalidation-rmse:6.51194 \n", "[794]\tvalidation-rmse:6.51192 \n", "[795]\tvalidation-rmse:6.51172 \n", "[796]\tvalidation-rmse:6.51133 \n", "[797]\tvalidation-rmse:6.51119 \n", "[798]\tvalidation-rmse:6.51111 \n", "[799]\tvalidation-rmse:6.51099 \n", "[800]\tvalidation-rmse:6.51094 \n", "[801]\tvalidation-rmse:6.51080 \n", "[802]\tvalidation-rmse:6.51063 \n", "[803]\tvalidation-rmse:6.51053 \n", "[804]\tvalidation-rmse:6.51040 \n", "[805]\tvalidation-rmse:6.51007 \n", "[806]\tvalidation-rmse:6.50995 \n", "[807]\tvalidation-rmse:6.50982 \n", "[808]\tvalidation-rmse:6.50973 \n", "[809]\tvalidation-rmse:6.50962 \n", "[810]\tvalidation-rmse:6.50941 \n", "[811]\tvalidation-rmse:6.50930 \n", "[812]\tvalidation-rmse:6.50923 \n", "[813]\tvalidation-rmse:6.50907 \n", "[814]\tvalidation-rmse:6.50900 \n", "[815]\tvalidation-rmse:6.50890 \n", "[816]\tvalidation-rmse:6.50866 \n", "[817]\tvalidation-rmse:6.50856 \n", "[818]\tvalidation-rmse:6.50848 \n", "[819]\tvalidation-rmse:6.50841 \n", "[820]\tvalidation-rmse:6.50832 \n", "[821]\tvalidation-rmse:6.50825 \n", "[822]\tvalidation-rmse:6.50819 \n", "[823]\tvalidation-rmse:6.50804 \n", "[824]\tvalidation-rmse:6.50789 \n", "[825]\tvalidation-rmse:6.50783 \n", "[826]\tvalidation-rmse:6.50768 \n", "[827]\tvalidation-rmse:6.50762 \n", "[828]\tvalidation-rmse:6.50759 \n", "[829]\tvalidation-rmse:6.50748 \n", "[830]\tvalidation-rmse:6.50744 \n", "[831]\tvalidation-rmse:6.50731 \n", "[832]\tvalidation-rmse:6.50723 \n", "[833]\tvalidation-rmse:6.50712 \n", "[834]\tvalidation-rmse:6.50701 \n", "[835]\tvalidation-rmse:6.50675 \n", "[836]\tvalidation-rmse:6.50672 \n", "[837]\tvalidation-rmse:6.50654 \n", "[838]\tvalidation-rmse:6.50645 \n", "[839]\tvalidation-rmse:6.50632 \n", "[840]\tvalidation-rmse:6.50629 \n", "[841]\tvalidation-rmse:6.50618 \n", "[842]\tvalidation-rmse:6.50601 \n", "[843]\tvalidation-rmse:6.50597 \n", "[844]\tvalidation-rmse:6.50590 \n", "[845]\tvalidation-rmse:6.50585 \n", "[846]\tvalidation-rmse:6.50583 \n", "[847]\tvalidation-rmse:6.50581 \n", "[848]\tvalidation-rmse:6.50508 \n", "[849]\tvalidation-rmse:6.50500 \n", "[850]\tvalidation-rmse:6.50487 \n", "[851]\tvalidation-rmse:6.50481 \n", "[852]\tvalidation-rmse:6.50477 \n", "[853]\tvalidation-rmse:6.50454 \n", "[854]\tvalidation-rmse:6.50442 \n", "[855]\tvalidation-rmse:6.50436 \n", "[856]\tvalidation-rmse:6.50420 \n", "[857]\tvalidation-rmse:6.50391 \n", "[858]\tvalidation-rmse:6.50374 \n", "[859]\tvalidation-rmse:6.50372 \n", "[860]\tvalidation-rmse:6.50355 \n", "[861]\tvalidation-rmse:6.50340 \n", "[862]\tvalidation-rmse:6.50328 \n", "[863]\tvalidation-rmse:6.50325 \n", "[864]\tvalidation-rmse:6.50305 \n", "[865]\tvalidation-rmse:6.50286 \n", "[866]\tvalidation-rmse:6.50285 \n", "[867]\tvalidation-rmse:6.50276 \n", "[868]\tvalidation-rmse:6.50258 \n", "[869]\tvalidation-rmse:6.50243 \n", "[870]\tvalidation-rmse:6.50233 \n", "[871]\tvalidation-rmse:6.50227 \n", "[872]\tvalidation-rmse:6.50217 \n", "[873]\tvalidation-rmse:6.50199 \n", "[874]\tvalidation-rmse:6.50194 \n", "[875]\tvalidation-rmse:6.50190 \n", "[876]\tvalidation-rmse:6.50181 \n", "[877]\tvalidation-rmse:6.50171 \n", "[878]\tvalidation-rmse:6.50164 \n", "[879]\tvalidation-rmse:6.50147 \n", "[880]\tvalidation-rmse:6.50138 \n", "[881]\tvalidation-rmse:6.50125 \n", "[882]\tvalidation-rmse:6.50110 \n", "[883]\tvalidation-rmse:6.50093 \n", "[884]\tvalidation-rmse:6.50073 \n", "[885]\tvalidation-rmse:6.50053 \n", "[886]\tvalidation-rmse:6.50035 \n", "[887]\tvalidation-rmse:6.50041 \n", "[888]\tvalidation-rmse:6.50035 \n", "[889]\tvalidation-rmse:6.50022 \n", "[890]\tvalidation-rmse:6.50013 \n", "[891]\tvalidation-rmse:6.50010 \n", "[892]\tvalidation-rmse:6.50004 \n", "[893]\tvalidation-rmse:6.49988 \n", "[894]\tvalidation-rmse:6.49991 \n", "[895]\tvalidation-rmse:6.49960 \n", "[896]\tvalidation-rmse:6.49941 \n", "[897]\tvalidation-rmse:6.49918 \n", "[898]\tvalidation-rmse:6.49907 \n", "[899]\tvalidation-rmse:6.49909 \n", "[900]\tvalidation-rmse:6.49902 \n", "[901]\tvalidation-rmse:6.49888 \n", "[902]\tvalidation-rmse:6.49867 \n", "[903]\tvalidation-rmse:6.49863 \n", "[904]\tvalidation-rmse:6.49841 \n", "[905]\tvalidation-rmse:6.49831 \n", "[906]\tvalidation-rmse:6.49802 \n", "[907]\tvalidation-rmse:6.49790 \n", "[908]\tvalidation-rmse:6.49774 \n", "[909]\tvalidation-rmse:6.49765 \n", "[910]\tvalidation-rmse:6.49748 \n", "[911]\tvalidation-rmse:6.49735 \n", "[912]\tvalidation-rmse:6.49717 \n", "[913]\tvalidation-rmse:6.49709 \n", "[914]\tvalidation-rmse:6.49701 \n", "[915]\tvalidation-rmse:6.49690 \n", "[916]\tvalidation-rmse:6.49670 \n", "[917]\tvalidation-rmse:6.49657 \n", "[918]\tvalidation-rmse:6.49647 \n", "[919]\tvalidation-rmse:6.49641 \n", "[920]\tvalidation-rmse:6.49639 \n", "[921]\tvalidation-rmse:6.49638 \n", "[922]\tvalidation-rmse:6.49630 \n", "[923]\tvalidation-rmse:6.49621 \n", "[924]\tvalidation-rmse:6.49604 \n", "[925]\tvalidation-rmse:6.49593 \n", "[926]\tvalidation-rmse:6.49582 \n", "[927]\tvalidation-rmse:6.49571 \n", "[928]\tvalidation-rmse:6.49546 \n", "[929]\tvalidation-rmse:6.49537 \n", "[930]\tvalidation-rmse:6.49527 \n", "[931]\tvalidation-rmse:6.49519 \n", "[932]\tvalidation-rmse:6.49524 \n", "[933]\tvalidation-rmse:6.49513 \n", "[934]\tvalidation-rmse:6.49508 \n", "[935]\tvalidation-rmse:6.49505 \n", "[936]\tvalidation-rmse:6.49497 \n", "[937]\tvalidation-rmse:6.49487 \n", "[938]\tvalidation-rmse:6.49468 \n", "[939]\tvalidation-rmse:6.49464 \n", "[940]\tvalidation-rmse:6.49454 \n", "[941]\tvalidation-rmse:6.49445 \n", "[942]\tvalidation-rmse:6.49434 \n", "[943]\tvalidation-rmse:6.49420 \n", "[944]\tvalidation-rmse:6.49411 \n", "[945]\tvalidation-rmse:6.49399 \n", "[946]\tvalidation-rmse:6.49390 \n", "[947]\tvalidation-rmse:6.49377 \n", "[948]\tvalidation-rmse:6.49365 \n", "[949]\tvalidation-rmse:6.49347 \n", "[950]\tvalidation-rmse:6.49340 \n", "[951]\tvalidation-rmse:6.49331 \n", "[952]\tvalidation-rmse:6.49314 \n", "[953]\tvalidation-rmse:6.49303 \n", "[954]\tvalidation-rmse:6.49281 \n", "[955]\tvalidation-rmse:6.49266 \n", "[956]\tvalidation-rmse:6.49252 \n", "[957]\tvalidation-rmse:6.49235 \n", "[958]\tvalidation-rmse:6.49222 \n", "[959]\tvalidation-rmse:6.49214 \n", "[960]\tvalidation-rmse:6.49208 \n", "[961]\tvalidation-rmse:6.49196 \n", "[962]\tvalidation-rmse:6.49180 \n", "[963]\tvalidation-rmse:6.49167 \n", "[964]\tvalidation-rmse:6.49160 \n", "[965]\tvalidation-rmse:6.49153 \n", "[966]\tvalidation-rmse:6.49134 \n", "[967]\tvalidation-rmse:6.49120 \n", "[968]\tvalidation-rmse:6.49117 \n", "[969]\tvalidation-rmse:6.49101 \n", "[970]\tvalidation-rmse:6.49092 \n", "[971]\tvalidation-rmse:6.49041 \n", "[972]\tvalidation-rmse:6.49033 \n", "[973]\tvalidation-rmse:6.49021 \n", "[974]\tvalidation-rmse:6.49010 \n", "[975]\tvalidation-rmse:6.49002 \n", "[976]\tvalidation-rmse:6.48994 \n", "[977]\tvalidation-rmse:6.48975 \n", "[978]\tvalidation-rmse:6.48962 \n", "[979]\tvalidation-rmse:6.48947 \n", "[980]\tvalidation-rmse:6.48935 \n", "[981]\tvalidation-rmse:6.48925 \n", "[982]\tvalidation-rmse:6.48917 \n", "[983]\tvalidation-rmse:6.48903 \n", "[984]\tvalidation-rmse:6.48886 \n", "[985]\tvalidation-rmse:6.48880 \n", "[986]\tvalidation-rmse:6.48870 \n", "[987]\tvalidation-rmse:6.48861 \n", "[988]\tvalidation-rmse:6.48841 \n", "[989]\tvalidation-rmse:6.48828 \n", "[990]\tvalidation-rmse:6.48829 \n", "[991]\tvalidation-rmse:6.48831 \n", "[992]\tvalidation-rmse:6.48823 \n", "[993]\tvalidation-rmse:6.48819 \n", "[994]\tvalidation-rmse:6.48802 \n", "[995]\tvalidation-rmse:6.48787 \n", "[996]\tvalidation-rmse:6.48770 \n", "[997]\tvalidation-rmse:6.48762 \n", "[998]\tvalidation-rmse:6.48755 \n", "[999]\tvalidation-rmse:6.48747 \n", "[12:43:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.27313 \n", "[1]\tvalidation-rmse:19.40488 \n", "[2]\tvalidation-rmse:18.58579 \n", "[3]\tvalidation-rmse:17.81300 \n", "[4]\tvalidation-rmse:17.08508 \n", "[5]\tvalidation-rmse:16.39874 \n", "[6]\tvalidation-rmse:15.75340 \n", "[7]\tvalidation-rmse:15.14597 \n", "[8]\tvalidation-rmse:14.57482 \n", "[9]\tvalidation-rmse:14.03799 \n", "[10]\tvalidation-rmse:13.53397 \n", "[11]\tvalidation-rmse:13.06106 \n", "[12]\tvalidation-rmse:12.61785 \n", "[13]\tvalidation-rmse:12.20171 \n", "[14]\tvalidation-rmse:11.81171 \n", "[15]\tvalidation-rmse:11.44796 \n", "[16]\tvalidation-rmse:11.10688 \n", "[17]\tvalidation-rmse:10.78859 \n", "[18]\tvalidation-rmse:10.49088 \n", "[19]\tvalidation-rmse:10.21358 \n", "[20]\tvalidation-rmse:9.95521 \n", "[21]\tvalidation-rmse:9.71441 \n", "[22]\tvalidation-rmse:9.49008 \n", "[23]\tvalidation-rmse:9.28111 \n", "[24]\tvalidation-rmse:9.08703 \n", "[25]\tvalidation-rmse:8.90693 \n", "[26]\tvalidation-rmse:8.73977 \n", "[27]\tvalidation-rmse:8.58459 \n", "[28]\tvalidation-rmse:8.44067 \n", "[29]\tvalidation-rmse:8.30663 \n", "[30]\tvalidation-rmse:8.18223 \n", "[31]\tvalidation-rmse:8.06671 \n", "[32]\tvalidation-rmse:7.95996 \n", "[33]\tvalidation-rmse:7.86115 \n", "[34]\tvalidation-rmse:7.77032 \n", "[35]\tvalidation-rmse:7.68531 \n", "[36]\tvalidation-rmse:7.60676 \n", "[37]\tvalidation-rmse:7.53416 \n", "[38]\tvalidation-rmse:7.46729 \n", "[39]\tvalidation-rmse:7.40431 \n", "[40]\tvalidation-rmse:7.34677 \n", "[41]\tvalidation-rmse:7.29297 \n", "[42]\tvalidation-rmse:7.24322 \n", "[43]\tvalidation-rmse:7.19723 \n", "[44]\tvalidation-rmse:7.15458 \n", "[45]\tvalidation-rmse:7.11451 \n", "[46]\tvalidation-rmse:7.07804 \n", "[47]\tvalidation-rmse:7.04397 \n", "[48]\tvalidation-rmse:7.01157 \n", "[49]\tvalidation-rmse:6.98199 \n", "[50]\tvalidation-rmse:6.95366 \n", "[51]\tvalidation-rmse:6.92777 \n", "[52]\tvalidation-rmse:6.90384 \n", "[53]\tvalidation-rmse:6.88167 \n", "[54]\tvalidation-rmse:6.86027 \n", "[55]\tvalidation-rmse:6.84091 \n", "[56]\tvalidation-rmse:6.82232 \n", "[57]\tvalidation-rmse:6.80544 \n", "[58]\tvalidation-rmse:6.78930 \n", "[59]\tvalidation-rmse:6.77421 \n", "[60]\tvalidation-rmse:6.75970 \n", "[61]\tvalidation-rmse:6.74608 \n", "[62]\tvalidation-rmse:6.73401 \n", "[63]\tvalidation-rmse:6.72255 \n", "[64]\tvalidation-rmse:6.71129 \n", "[65]\tvalidation-rmse:6.70158 \n", "[66]\tvalidation-rmse:6.69182 \n", "[67]\tvalidation-rmse:6.68281 \n", "[68]\tvalidation-rmse:6.67454 \n", "[69]\tvalidation-rmse:6.66647 \n", "[70]\tvalidation-rmse:6.65853 \n", "[71]\tvalidation-rmse:6.65072 \n", "[72]\tvalidation-rmse:6.64353 \n", "[73]\tvalidation-rmse:6.63674 \n", "[74]\tvalidation-rmse:6.63026 \n", "[75]\tvalidation-rmse:6.62423 \n", "[76]\tvalidation-rmse:6.61879 \n", "[77]\tvalidation-rmse:6.61336 \n", "[78]\tvalidation-rmse:6.60815 \n", "[79]\tvalidation-rmse:6.60338 \n", "[80]\tvalidation-rmse:6.59918 \n", "[81]\tvalidation-rmse:6.59456 \n", "[82]\tvalidation-rmse:6.59046 \n", "[83]\tvalidation-rmse:6.58644 \n", "[84]\tvalidation-rmse:6.58273 \n", "[85]\tvalidation-rmse:6.57921 \n", "[86]\tvalidation-rmse:6.57579 \n", "[87]\tvalidation-rmse:6.57248 \n", "[88]\tvalidation-rmse:6.56937 \n", "[89]\tvalidation-rmse:6.56641 \n", "[90]\tvalidation-rmse:6.56376 \n", "[91]\tvalidation-rmse:6.56128 \n", "[92]\tvalidation-rmse:6.55883 \n", "[93]\tvalidation-rmse:6.55666 \n", "[94]\tvalidation-rmse:6.55437 \n", "[95]\tvalidation-rmse:6.55228 \n", "[96]\tvalidation-rmse:6.55027 \n", "[97]\tvalidation-rmse:6.54810 \n", "[98]\tvalidation-rmse:6.54616 \n", "[99]\tvalidation-rmse:6.54451 \n", "[100]\tvalidation-rmse:6.54269 \n", "[101]\tvalidation-rmse:6.54116 \n", "[102]\tvalidation-rmse:6.53953 \n", "[103]\tvalidation-rmse:6.53797 \n", "[104]\tvalidation-rmse:6.53656 \n", "[105]\tvalidation-rmse:6.53510 \n", "[106]\tvalidation-rmse:6.53382 \n", "[107]\tvalidation-rmse:6.53265 \n", "[108]\tvalidation-rmse:6.53170 \n", "[109]\tvalidation-rmse:6.53066 \n", "[110]\tvalidation-rmse:6.52976 \n", "[111]\tvalidation-rmse:6.52863 \n", "[112]\tvalidation-rmse:6.52781 \n", "[113]\tvalidation-rmse:6.52683 \n", "[114]\tvalidation-rmse:6.52589 \n", "[115]\tvalidation-rmse:6.52488 \n", "[116]\tvalidation-rmse:6.52406 \n", "[117]\tvalidation-rmse:6.52320 \n", "[118]\tvalidation-rmse:6.52248 \n", "[119]\tvalidation-rmse:6.52141 \n", "[120]\tvalidation-rmse:6.52075 \n", "[121]\tvalidation-rmse:6.51978 \n", "[122]\tvalidation-rmse:6.51897 \n", "[123]\tvalidation-rmse:6.51833 \n", "[124]\tvalidation-rmse:6.51764 \n", "[125]\tvalidation-rmse:6.51713 \n", "[126]\tvalidation-rmse:6.51655 \n", "[127]\tvalidation-rmse:6.51592 \n", "[128]\tvalidation-rmse:6.51506 \n", "[129]\tvalidation-rmse:6.51433 \n", "[130]\tvalidation-rmse:6.51366 \n", "[131]\tvalidation-rmse:6.51305 \n", "[132]\tvalidation-rmse:6.51248 \n", "[133]\tvalidation-rmse:6.51195 \n", "[134]\tvalidation-rmse:6.51126 \n", "[135]\tvalidation-rmse:6.51092 \n", "[136]\tvalidation-rmse:6.51036 \n", "[137]\tvalidation-rmse:6.50985 \n", "[138]\tvalidation-rmse:6.50941 \n", "[139]\tvalidation-rmse:6.50896 \n", "[140]\tvalidation-rmse:6.50838 \n", "[141]\tvalidation-rmse:6.50789 \n", "[142]\tvalidation-rmse:6.50729 \n", "[143]\tvalidation-rmse:6.50691 \n", "[144]\tvalidation-rmse:6.50656 \n", "[145]\tvalidation-rmse:6.50611 \n", "[146]\tvalidation-rmse:6.50582 \n", "[147]\tvalidation-rmse:6.50542 \n", "[148]\tvalidation-rmse:6.50508 \n", "[149]\tvalidation-rmse:6.50461 \n", "[150]\tvalidation-rmse:6.50420 \n", "[151]\tvalidation-rmse:6.50383 \n", "[152]\tvalidation-rmse:6.50354 \n", "[153]\tvalidation-rmse:6.50299 \n", "[154]\tvalidation-rmse:6.50250 \n", "[155]\tvalidation-rmse:6.50203 \n", "[156]\tvalidation-rmse:6.50165 \n", "[157]\tvalidation-rmse:6.50136 \n", "[158]\tvalidation-rmse:6.50095 \n", "[159]\tvalidation-rmse:6.50073 \n", "[160]\tvalidation-rmse:6.50039 \n", "[161]\tvalidation-rmse:6.50019 \n", "[162]\tvalidation-rmse:6.49986 \n", "[163]\tvalidation-rmse:6.49960 \n", "[164]\tvalidation-rmse:6.49921 \n", "[165]\tvalidation-rmse:6.49891 \n", "[166]\tvalidation-rmse:6.49851 \n", "[167]\tvalidation-rmse:6.49807 \n", "[168]\tvalidation-rmse:6.49771 \n", "[169]\tvalidation-rmse:6.49747 \n", "[170]\tvalidation-rmse:6.49733 \n", "[171]\tvalidation-rmse:6.49694 \n", "[172]\tvalidation-rmse:6.49669 \n", "[173]\tvalidation-rmse:6.49638 \n", "[174]\tvalidation-rmse:6.49622 \n", "[175]\tvalidation-rmse:6.49594 \n", "[176]\tvalidation-rmse:6.49575 \n", "[177]\tvalidation-rmse:6.49540 \n", "[178]\tvalidation-rmse:6.49513 \n", "[179]\tvalidation-rmse:6.49487 \n", "[180]\tvalidation-rmse:6.49466 \n", "[181]\tvalidation-rmse:6.49427 \n", "[182]\tvalidation-rmse:6.49389 \n", "[183]\tvalidation-rmse:6.49367 \n", "[184]\tvalidation-rmse:6.49335 \n", "[185]\tvalidation-rmse:6.49294 \n", "[186]\tvalidation-rmse:6.49278 \n", "[187]\tvalidation-rmse:6.49264 \n", "[188]\tvalidation-rmse:6.49246 \n", "[189]\tvalidation-rmse:6.49212 \n", "[190]\tvalidation-rmse:6.49198 \n", "[191]\tvalidation-rmse:6.49174 \n", "[192]\tvalidation-rmse:6.49156 \n", "[193]\tvalidation-rmse:6.49122 \n", "[194]\tvalidation-rmse:6.49094 \n", "[195]\tvalidation-rmse:6.49064 \n", "[196]\tvalidation-rmse:6.49044 \n", "[197]\tvalidation-rmse:6.49024 \n", "[198]\tvalidation-rmse:6.48995 \n", "[199]\tvalidation-rmse:6.48977 \n", "[200]\tvalidation-rmse:6.48962 \n", "[201]\tvalidation-rmse:6.48930 \n", "[202]\tvalidation-rmse:6.48913 \n", "[203]\tvalidation-rmse:6.48886 \n", "[204]\tvalidation-rmse:6.48874 \n", "[205]\tvalidation-rmse:6.48856 \n", "[206]\tvalidation-rmse:6.48845 \n", "[207]\tvalidation-rmse:6.48830 \n", "[208]\tvalidation-rmse:6.48804 \n", "[209]\tvalidation-rmse:6.48781 \n", "[210]\tvalidation-rmse:6.48761 \n", "[211]\tvalidation-rmse:6.48741 \n", "[212]\tvalidation-rmse:6.48725 \n", "[213]\tvalidation-rmse:6.48698 \n", "[214]\tvalidation-rmse:6.48679 \n", "[215]\tvalidation-rmse:6.48649 \n", "[216]\tvalidation-rmse:6.48629 \n", "[217]\tvalidation-rmse:6.48613 \n", "[218]\tvalidation-rmse:6.48591 \n", "[219]\tvalidation-rmse:6.48569 \n", "[220]\tvalidation-rmse:6.48529 \n", "[221]\tvalidation-rmse:6.48508 \n", "[222]\tvalidation-rmse:6.48496 \n", "[223]\tvalidation-rmse:6.48485 \n", "[224]\tvalidation-rmse:6.48461 \n", "[225]\tvalidation-rmse:6.48450 \n", "[226]\tvalidation-rmse:6.48428 \n", "[227]\tvalidation-rmse:6.48418 \n", "[228]\tvalidation-rmse:6.48402 \n", "[229]\tvalidation-rmse:6.48382 \n", "[230]\tvalidation-rmse:6.48368 \n", "[231]\tvalidation-rmse:6.48353 \n", "[232]\tvalidation-rmse:6.48347 \n", "[233]\tvalidation-rmse:6.48329 \n", "[234]\tvalidation-rmse:6.48306 \n", "[235]\tvalidation-rmse:6.48290 \n", "[236]\tvalidation-rmse:6.48255 \n", "[237]\tvalidation-rmse:6.48241 \n", "[238]\tvalidation-rmse:6.48222 \n", "[239]\tvalidation-rmse:6.48204 \n", "[240]\tvalidation-rmse:6.48186 \n", "[241]\tvalidation-rmse:6.48172 \n", "[242]\tvalidation-rmse:6.48162 \n", "[243]\tvalidation-rmse:6.48144 \n", "[244]\tvalidation-rmse:6.48136 \n", "[245]\tvalidation-rmse:6.48113 \n", "[246]\tvalidation-rmse:6.48105 \n", "[247]\tvalidation-rmse:6.48086 \n", "[248]\tvalidation-rmse:6.48070 \n", "[249]\tvalidation-rmse:6.48052 \n", "[250]\tvalidation-rmse:6.48042 \n", "[251]\tvalidation-rmse:6.48033 \n", "[252]\tvalidation-rmse:6.48021 \n", "[253]\tvalidation-rmse:6.48003 \n", "[254]\tvalidation-rmse:6.47980 \n", "[255]\tvalidation-rmse:6.47972 \n", "[256]\tvalidation-rmse:6.47959 \n", "[257]\tvalidation-rmse:6.47933 \n", "[258]\tvalidation-rmse:6.47921 \n", "[259]\tvalidation-rmse:6.47888 \n", "[260]\tvalidation-rmse:6.47872 \n", "[261]\tvalidation-rmse:6.47852 \n", "[262]\tvalidation-rmse:6.47812 \n", "[263]\tvalidation-rmse:6.47802 \n", "[264]\tvalidation-rmse:6.47789 \n", "[265]\tvalidation-rmse:6.47775 \n", "[266]\tvalidation-rmse:6.47755 \n", "[267]\tvalidation-rmse:6.47745 \n", "[268]\tvalidation-rmse:6.47741 \n", "[269]\tvalidation-rmse:6.47711 \n", "[270]\tvalidation-rmse:6.47697 \n", "[271]\tvalidation-rmse:6.47684 \n", "[272]\tvalidation-rmse:6.47675 \n", "[273]\tvalidation-rmse:6.47663 \n", "[274]\tvalidation-rmse:6.47644 \n", "[275]\tvalidation-rmse:6.47637 \n", "[276]\tvalidation-rmse:6.47632 \n", "[277]\tvalidation-rmse:6.47620 \n", "[278]\tvalidation-rmse:6.47603 \n", "[279]\tvalidation-rmse:6.47588 \n", "[280]\tvalidation-rmse:6.47576 \n", "[281]\tvalidation-rmse:6.47559 \n", "[282]\tvalidation-rmse:6.47532 \n", "[283]\tvalidation-rmse:6.47510 \n", "[284]\tvalidation-rmse:6.47480 \n", "[285]\tvalidation-rmse:6.47460 \n", "[286]\tvalidation-rmse:6.47445 \n", "[287]\tvalidation-rmse:6.47422 \n", "[288]\tvalidation-rmse:6.47420 \n", "[289]\tvalidation-rmse:6.47402 \n", "[290]\tvalidation-rmse:6.47395 \n", "[291]\tvalidation-rmse:6.47385 \n", "[292]\tvalidation-rmse:6.47373 \n", "[293]\tvalidation-rmse:6.47362 \n", "[294]\tvalidation-rmse:6.47339 \n", "[295]\tvalidation-rmse:6.47327 \n", "[296]\tvalidation-rmse:6.47318 \n", "[297]\tvalidation-rmse:6.47307 \n", "[298]\tvalidation-rmse:6.47287 \n", "[299]\tvalidation-rmse:6.47277 \n", "[300]\tvalidation-rmse:6.47268 \n", "[301]\tvalidation-rmse:6.47248 \n", "[302]\tvalidation-rmse:6.47239 \n", "[303]\tvalidation-rmse:6.47234 \n", "[304]\tvalidation-rmse:6.47212 \n", "[305]\tvalidation-rmse:6.47193 \n", "[306]\tvalidation-rmse:6.47169 \n", "[307]\tvalidation-rmse:6.47159 \n", "[308]\tvalidation-rmse:6.47137 \n", "[309]\tvalidation-rmse:6.47118 \n", "[310]\tvalidation-rmse:6.47108 \n", "[311]\tvalidation-rmse:6.47094 \n", "[312]\tvalidation-rmse:6.47094 \n", "[313]\tvalidation-rmse:6.47074 \n", "[314]\tvalidation-rmse:6.47062 \n", "[315]\tvalidation-rmse:6.47044 \n", "[316]\tvalidation-rmse:6.47042 \n", "[317]\tvalidation-rmse:6.47034 \n", "[318]\tvalidation-rmse:6.47022 \n", "[319]\tvalidation-rmse:6.47005 \n", "[320]\tvalidation-rmse:6.46983 \n", "[321]\tvalidation-rmse:6.46975 \n", "[322]\tvalidation-rmse:6.46964 \n", "[323]\tvalidation-rmse:6.46953 \n", "[324]\tvalidation-rmse:6.46940 \n", "[325]\tvalidation-rmse:6.46924 \n", "[326]\tvalidation-rmse:6.46914 \n", "[327]\tvalidation-rmse:6.46909 \n", "[328]\tvalidation-rmse:6.46902 \n", "[329]\tvalidation-rmse:6.46889 \n", "[330]\tvalidation-rmse:6.46882 \n", "[331]\tvalidation-rmse:6.46874 \n", "[332]\tvalidation-rmse:6.46865 \n", "[333]\tvalidation-rmse:6.46852 \n", "[334]\tvalidation-rmse:6.46836 \n", "[335]\tvalidation-rmse:6.46803 \n", "[336]\tvalidation-rmse:6.46790 \n", "[337]\tvalidation-rmse:6.46787 \n", "[338]\tvalidation-rmse:6.46772 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46759 \n", "[341]\tvalidation-rmse:6.46752 \n", "[342]\tvalidation-rmse:6.46742 \n", "[343]\tvalidation-rmse:6.46726 \n", "[344]\tvalidation-rmse:6.46713 \n", "[345]\tvalidation-rmse:6.46705 \n", "[346]\tvalidation-rmse:6.46688 \n", "[347]\tvalidation-rmse:6.46676 \n", "[348]\tvalidation-rmse:6.46667 \n", "[349]\tvalidation-rmse:6.46652 \n", "[350]\tvalidation-rmse:6.46642 \n", "[351]\tvalidation-rmse:6.46638 \n", "[352]\tvalidation-rmse:6.46624 \n", "[353]\tvalidation-rmse:6.46611 \n", "[354]\tvalidation-rmse:6.46604 \n", "[355]\tvalidation-rmse:6.46594 \n", "[356]\tvalidation-rmse:6.46594 \n", "[357]\tvalidation-rmse:6.46589 \n", "[358]\tvalidation-rmse:6.46585 \n", "[359]\tvalidation-rmse:6.46580 \n", "[360]\tvalidation-rmse:6.46569 \n", "[361]\tvalidation-rmse:6.46565 \n", "[362]\tvalidation-rmse:6.46557 \n", "[363]\tvalidation-rmse:6.46543 \n", "[364]\tvalidation-rmse:6.46524 \n", "[365]\tvalidation-rmse:6.46503 \n", "[366]\tvalidation-rmse:6.46491 \n", "[367]\tvalidation-rmse:6.46487 \n", "[368]\tvalidation-rmse:6.46480 \n", "[369]\tvalidation-rmse:6.46468 \n", "[370]\tvalidation-rmse:6.46457 \n", "[371]\tvalidation-rmse:6.46442 \n", "[372]\tvalidation-rmse:6.46434 \n", "[373]\tvalidation-rmse:6.46428 \n", "[374]\tvalidation-rmse:6.46422 \n", "[375]\tvalidation-rmse:6.46412 \n", "[376]\tvalidation-rmse:6.46402 \n", "[377]\tvalidation-rmse:6.46392 \n", "[378]\tvalidation-rmse:6.46373 \n", "[379]\tvalidation-rmse:6.46364 \n", "[380]\tvalidation-rmse:6.46350 \n", "[381]\tvalidation-rmse:6.46332 \n", "[382]\tvalidation-rmse:6.46329 \n", "[383]\tvalidation-rmse:6.46316 \n", "[384]\tvalidation-rmse:6.46303 \n", "[385]\tvalidation-rmse:6.46295 \n", "[386]\tvalidation-rmse:6.46279 \n", "[387]\tvalidation-rmse:6.46271 \n", "[388]\tvalidation-rmse:6.46265 \n", "[389]\tvalidation-rmse:6.46260 \n", "[390]\tvalidation-rmse:6.46254 \n", "[391]\tvalidation-rmse:6.46247 \n", "[392]\tvalidation-rmse:6.46239 \n", "[393]\tvalidation-rmse:6.46234 \n", "[394]\tvalidation-rmse:6.46224 \n", "[395]\tvalidation-rmse:6.46217 \n", "[396]\tvalidation-rmse:6.46193 \n", "[397]\tvalidation-rmse:6.46186 \n", "[398]\tvalidation-rmse:6.46179 \n", "[399]\tvalidation-rmse:6.46168 \n", "[400]\tvalidation-rmse:6.46160 \n", "[401]\tvalidation-rmse:6.46145 \n", "[402]\tvalidation-rmse:6.46129 \n", "[403]\tvalidation-rmse:6.46123 \n", "[404]\tvalidation-rmse:6.46127 \n", "[405]\tvalidation-rmse:6.46117 \n", "[406]\tvalidation-rmse:6.46119 \n", "[407]\tvalidation-rmse:6.46110 \n", "[408]\tvalidation-rmse:6.46102 \n", "[409]\tvalidation-rmse:6.46097 \n", "[410]\tvalidation-rmse:6.46080 \n", "[411]\tvalidation-rmse:6.46076 \n", "[412]\tvalidation-rmse:6.46070 \n", "[413]\tvalidation-rmse:6.46046 \n", "[414]\tvalidation-rmse:6.46039 \n", "[415]\tvalidation-rmse:6.46031 \n", "[416]\tvalidation-rmse:6.46027 \n", "[417]\tvalidation-rmse:6.46013 \n", "[418]\tvalidation-rmse:6.46007 \n", "[419]\tvalidation-rmse:6.46001 \n", "[420]\tvalidation-rmse:6.45993 \n", "[421]\tvalidation-rmse:6.45985 \n", "[422]\tvalidation-rmse:6.45971 \n", "[423]\tvalidation-rmse:6.45970 \n", "[424]\tvalidation-rmse:6.45961 \n", "[425]\tvalidation-rmse:6.45950 \n", "[426]\tvalidation-rmse:6.45946 \n", "[427]\tvalidation-rmse:6.45939 \n", "[428]\tvalidation-rmse:6.45940 \n", "[429]\tvalidation-rmse:6.45938 \n", "[430]\tvalidation-rmse:6.45931 \n", "[431]\tvalidation-rmse:6.45930 \n", "[432]\tvalidation-rmse:6.45931 \n", "[433]\tvalidation-rmse:6.45923 \n", "[434]\tvalidation-rmse:6.45914 \n", "[435]\tvalidation-rmse:6.45905 \n", "[436]\tvalidation-rmse:6.45895 \n", "[437]\tvalidation-rmse:6.45893 \n", "[438]\tvalidation-rmse:6.45874 \n", "[439]\tvalidation-rmse:6.45868 \n", "[440]\tvalidation-rmse:6.45859 \n", "[441]\tvalidation-rmse:6.45857 \n", "[442]\tvalidation-rmse:6.45838 \n", "[443]\tvalidation-rmse:6.45827 \n", "[444]\tvalidation-rmse:6.45808 \n", "[445]\tvalidation-rmse:6.45797 \n", "[446]\tvalidation-rmse:6.45793 \n", "[447]\tvalidation-rmse:6.45783 \n", "[448]\tvalidation-rmse:6.45778 \n", "[449]\tvalidation-rmse:6.45765 \n", "[450]\tvalidation-rmse:6.45754 \n", "[451]\tvalidation-rmse:6.45753 \n", "[452]\tvalidation-rmse:6.45742 \n", "[453]\tvalidation-rmse:6.45733 \n", "[454]\tvalidation-rmse:6.45719 \n", "[455]\tvalidation-rmse:6.45698 \n", "[456]\tvalidation-rmse:6.45694 \n", "[457]\tvalidation-rmse:6.45692 \n", "[458]\tvalidation-rmse:6.45681 \n", "[459]\tvalidation-rmse:6.45673 \n", "[460]\tvalidation-rmse:6.45667 \n", "[461]\tvalidation-rmse:6.45668 \n", "[462]\tvalidation-rmse:6.45664 \n", "[463]\tvalidation-rmse:6.45659 \n", "[464]\tvalidation-rmse:6.45661 \n", "[465]\tvalidation-rmse:6.45657 \n", "[466]\tvalidation-rmse:6.45642 \n", "[467]\tvalidation-rmse:6.45642 \n", "[468]\tvalidation-rmse:6.45645 \n", "[469]\tvalidation-rmse:6.45641 \n", "[470]\tvalidation-rmse:6.45631 \n", "[471]\tvalidation-rmse:6.45632 \n", "[472]\tvalidation-rmse:6.45625 \n", "[473]\tvalidation-rmse:6.45620 \n", "[474]\tvalidation-rmse:6.45619 \n", "[475]\tvalidation-rmse:6.45609 \n", "[476]\tvalidation-rmse:6.45610 \n", "[477]\tvalidation-rmse:6.45604 \n", "[478]\tvalidation-rmse:6.45585 \n", "[479]\tvalidation-rmse:6.45588 \n", "[480]\tvalidation-rmse:6.45575 \n", "[481]\tvalidation-rmse:6.45562 \n", "[482]\tvalidation-rmse:6.45549 \n", "[483]\tvalidation-rmse:6.45544 \n", "[484]\tvalidation-rmse:6.45542 \n", "[485]\tvalidation-rmse:6.45536 \n", "[486]\tvalidation-rmse:6.45535 \n", "[487]\tvalidation-rmse:6.45531 \n", "[488]\tvalidation-rmse:6.45523 \n", "[489]\tvalidation-rmse:6.45518 \n", "[490]\tvalidation-rmse:6.45510 \n", "[491]\tvalidation-rmse:6.45502 \n", "[492]\tvalidation-rmse:6.45492 \n", "[493]\tvalidation-rmse:6.45486 \n", "[494]\tvalidation-rmse:6.45482 \n", "[495]\tvalidation-rmse:6.45471 \n", "[496]\tvalidation-rmse:6.45465 \n", "[497]\tvalidation-rmse:6.45453 \n", "[498]\tvalidation-rmse:6.45445 \n", "[499]\tvalidation-rmse:6.45440 \n", "[500]\tvalidation-rmse:6.45438 \n", "[501]\tvalidation-rmse:6.45431 \n", "[502]\tvalidation-rmse:6.45418 \n", "[503]\tvalidation-rmse:6.45413 \n", "[504]\tvalidation-rmse:6.45417 \n", "[505]\tvalidation-rmse:6.45418 \n", "[506]\tvalidation-rmse:6.45409 \n", "[507]\tvalidation-rmse:6.45405 \n", "[508]\tvalidation-rmse:6.45404 \n", "[509]\tvalidation-rmse:6.45406 \n", "[510]\tvalidation-rmse:6.45400 \n", "[511]\tvalidation-rmse:6.45401 \n", "[512]\tvalidation-rmse:6.45400 \n", "[513]\tvalidation-rmse:6.45396 \n", "[514]\tvalidation-rmse:6.45391 \n", "[515]\tvalidation-rmse:6.45380 \n", "[516]\tvalidation-rmse:6.45382 \n", "[517]\tvalidation-rmse:6.45370 \n", "[518]\tvalidation-rmse:6.45364 \n", "[519]\tvalidation-rmse:6.45354 \n", "[520]\tvalidation-rmse:6.45349 \n", "[521]\tvalidation-rmse:6.45335 \n", "[522]\tvalidation-rmse:6.45321 \n", "[523]\tvalidation-rmse:6.45310 \n", "[524]\tvalidation-rmse:6.45293 \n", "[525]\tvalidation-rmse:6.45288 \n", "[526]\tvalidation-rmse:6.45262 \n", "[527]\tvalidation-rmse:6.45251 \n", "[528]\tvalidation-rmse:6.45244 \n", "[529]\tvalidation-rmse:6.45242 \n", "[530]\tvalidation-rmse:6.45236 \n", "[531]\tvalidation-rmse:6.45226 \n", "[532]\tvalidation-rmse:6.45222 \n", "[533]\tvalidation-rmse:6.45222 \n", "[534]\tvalidation-rmse:6.45202 \n", "[535]\tvalidation-rmse:6.45209 \n", "[536]\tvalidation-rmse:6.45208 \n", "[537]\tvalidation-rmse:6.45205 \n", "[538]\tvalidation-rmse:6.45196 \n", "[539]\tvalidation-rmse:6.45191 \n", "[540]\tvalidation-rmse:6.45168 \n", "[541]\tvalidation-rmse:6.45168 \n", "[542]\tvalidation-rmse:6.45162 \n", "[543]\tvalidation-rmse:6.45158 \n", "[544]\tvalidation-rmse:6.45155 \n", "[545]\tvalidation-rmse:6.45152 \n", "[546]\tvalidation-rmse:6.45147 \n", "[547]\tvalidation-rmse:6.45145 \n", "[548]\tvalidation-rmse:6.45141 \n", "[549]\tvalidation-rmse:6.45139 \n", "[550]\tvalidation-rmse:6.45138 \n", "[551]\tvalidation-rmse:6.45129 \n", "[552]\tvalidation-rmse:6.45112 \n", "[553]\tvalidation-rmse:6.45109 \n", "[554]\tvalidation-rmse:6.45101 \n", "[555]\tvalidation-rmse:6.45093 \n", "[556]\tvalidation-rmse:6.45093 \n", "[557]\tvalidation-rmse:6.45080 \n", "[558]\tvalidation-rmse:6.45082 \n", "[559]\tvalidation-rmse:6.45075 \n", "[560]\tvalidation-rmse:6.45065 \n", "[561]\tvalidation-rmse:6.45040 \n", "[562]\tvalidation-rmse:6.45035 \n", "[563]\tvalidation-rmse:6.45041 \n", "[564]\tvalidation-rmse:6.45039 \n", "[565]\tvalidation-rmse:6.45029 \n", "[566]\tvalidation-rmse:6.45024 \n", "[567]\tvalidation-rmse:6.45009 \n", "[568]\tvalidation-rmse:6.45004 \n", "[569]\tvalidation-rmse:6.44982 \n", "[570]\tvalidation-rmse:6.44981 \n", "[571]\tvalidation-rmse:6.44971 \n", "[572]\tvalidation-rmse:6.44968 \n", "[573]\tvalidation-rmse:6.44969 \n", "[574]\tvalidation-rmse:6.44956 \n", "[575]\tvalidation-rmse:6.44955 \n", "[576]\tvalidation-rmse:6.44949 \n", "[577]\tvalidation-rmse:6.44941 \n", "[578]\tvalidation-rmse:6.44933 \n", "[579]\tvalidation-rmse:6.44930 \n", "[580]\tvalidation-rmse:6.44924 \n", "[581]\tvalidation-rmse:6.44920 \n", "[582]\tvalidation-rmse:6.44929 \n", "[583]\tvalidation-rmse:6.44926 \n", "[584]\tvalidation-rmse:6.44922 \n", "[585]\tvalidation-rmse:6.44918 \n", "[586]\tvalidation-rmse:6.44922 \n", "[587]\tvalidation-rmse:6.44921 \n", "[588]\tvalidation-rmse:6.44920 \n", "[589]\tvalidation-rmse:6.44909 \n", "[590]\tvalidation-rmse:6.44905 \n", "[591]\tvalidation-rmse:6.44904 \n", "[592]\tvalidation-rmse:6.44900 \n", "[593]\tvalidation-rmse:6.44894 \n", "[594]\tvalidation-rmse:6.44889 \n", "[595]\tvalidation-rmse:6.44881 \n", "[596]\tvalidation-rmse:6.44880 \n", "[597]\tvalidation-rmse:6.44877 \n", "[598]\tvalidation-rmse:6.44877 \n", "[599]\tvalidation-rmse:6.44877 \n", "[600]\tvalidation-rmse:6.44874 \n", "[601]\tvalidation-rmse:6.44870 \n", "[602]\tvalidation-rmse:6.44871 \n", "[603]\tvalidation-rmse:6.44856 \n", "[604]\tvalidation-rmse:6.44855 \n", "[605]\tvalidation-rmse:6.44855 \n", "[606]\tvalidation-rmse:6.44855 \n", "[607]\tvalidation-rmse:6.44844 \n", "[608]\tvalidation-rmse:6.44839 \n", "[609]\tvalidation-rmse:6.44841 \n", "[610]\tvalidation-rmse:6.44828 \n", "[611]\tvalidation-rmse:6.44818 \n", "[612]\tvalidation-rmse:6.44815 \n", "[613]\tvalidation-rmse:6.44818 \n", "[614]\tvalidation-rmse:6.44822 \n", "[615]\tvalidation-rmse:6.44822 \n", "[616]\tvalidation-rmse:6.44826 \n", "[617]\tvalidation-rmse:6.44822 \n", "[618]\tvalidation-rmse:6.44817 \n", "[619]\tvalidation-rmse:6.44809 \n", "[620]\tvalidation-rmse:6.44795 \n", "[621]\tvalidation-rmse:6.44787 \n", "[622]\tvalidation-rmse:6.44776 \n", "[623]\tvalidation-rmse:6.44767 \n", "[624]\tvalidation-rmse:6.44767 \n", "[625]\tvalidation-rmse:6.44771 \n", "[626]\tvalidation-rmse:6.44772 \n", "[627]\tvalidation-rmse:6.44776 \n", "[628]\tvalidation-rmse:6.44779 \n", "[629]\tvalidation-rmse:6.44775 \n", "[630]\tvalidation-rmse:6.44772 \n", "[631]\tvalidation-rmse:6.44761 \n", "[632]\tvalidation-rmse:6.44758 \n", "[633]\tvalidation-rmse:6.44759 \n", "[634]\tvalidation-rmse:6.44759 \n", "[635]\tvalidation-rmse:6.44754 \n", "[636]\tvalidation-rmse:6.44749 \n", "[637]\tvalidation-rmse:6.44740 \n", "[638]\tvalidation-rmse:6.44741 \n", "[639]\tvalidation-rmse:6.44740 \n", "[640]\tvalidation-rmse:6.44742 \n", "[641]\tvalidation-rmse:6.44747 \n", "[642]\tvalidation-rmse:6.44743 \n", "[643]\tvalidation-rmse:6.44738 \n", "[644]\tvalidation-rmse:6.44732 \n", "[645]\tvalidation-rmse:6.44729 \n", "[646]\tvalidation-rmse:6.44727 \n", "[647]\tvalidation-rmse:6.44729 \n", "[648]\tvalidation-rmse:6.44727 \n", "[649]\tvalidation-rmse:6.44727 \n", "[650]\tvalidation-rmse:6.44723 \n", "[651]\tvalidation-rmse:6.44719 \n", "[652]\tvalidation-rmse:6.44713 \n", "[653]\tvalidation-rmse:6.44709 \n", "[654]\tvalidation-rmse:6.44705 \n", "[655]\tvalidation-rmse:6.44699 \n", "[656]\tvalidation-rmse:6.44696 \n", "[657]\tvalidation-rmse:6.44684 \n", "[658]\tvalidation-rmse:6.44678 \n", "[659]\tvalidation-rmse:6.44675 \n", "[660]\tvalidation-rmse:6.44677 \n", "[661]\tvalidation-rmse:6.44670 \n", "[662]\tvalidation-rmse:6.44674 \n", "[663]\tvalidation-rmse:6.44675 \n", "[664]\tvalidation-rmse:6.44673 \n", "[665]\tvalidation-rmse:6.44668 \n", "[666]\tvalidation-rmse:6.44657 \n", "[667]\tvalidation-rmse:6.44650 \n", "[668]\tvalidation-rmse:6.44645 \n", "[669]\tvalidation-rmse:6.44632 \n", "[670]\tvalidation-rmse:6.44625 \n", "[671]\tvalidation-rmse:6.44621 \n", "[672]\tvalidation-rmse:6.44616 \n", "[673]\tvalidation-rmse:6.44607 \n", "[674]\tvalidation-rmse:6.44597 \n", "[675]\tvalidation-rmse:6.44593 \n", "[676]\tvalidation-rmse:6.44587 \n", "[677]\tvalidation-rmse:6.44572 \n", "[678]\tvalidation-rmse:6.44568 \n", "[679]\tvalidation-rmse:6.44570 \n", "[680]\tvalidation-rmse:6.44576 \n", "[681]\tvalidation-rmse:6.44583 \n", "[682]\tvalidation-rmse:6.44579 \n", "[683]\tvalidation-rmse:6.44577 \n", "[684]\tvalidation-rmse:6.44580 \n", "[685]\tvalidation-rmse:6.44580 \n", "[686]\tvalidation-rmse:6.44578 \n", "[687]\tvalidation-rmse:6.44571 \n", "[688]\tvalidation-rmse:6.44568 \n", "[689]\tvalidation-rmse:6.44560 \n", "[690]\tvalidation-rmse:6.44560 \n", "[691]\tvalidation-rmse:6.44550 \n", "[692]\tvalidation-rmse:6.44551 \n", "[693]\tvalidation-rmse:6.44550 \n", "[694]\tvalidation-rmse:6.44541 \n", "[695]\tvalidation-rmse:6.44545 \n", "[696]\tvalidation-rmse:6.44542 \n", "[697]\tvalidation-rmse:6.44538 \n", "[698]\tvalidation-rmse:6.44532 \n", "[699]\tvalidation-rmse:6.44529 \n", "[700]\tvalidation-rmse:6.44531 \n", "[701]\tvalidation-rmse:6.44526 \n", "[702]\tvalidation-rmse:6.44523 \n", "[703]\tvalidation-rmse:6.44516 \n", "[704]\tvalidation-rmse:6.44521 \n", "[705]\tvalidation-rmse:6.44521 \n", "[706]\tvalidation-rmse:6.44513 \n", "[707]\tvalidation-rmse:6.44511 \n", "[708]\tvalidation-rmse:6.44507 \n", "[709]\tvalidation-rmse:6.44502 \n", "[710]\tvalidation-rmse:6.44496 \n", "[711]\tvalidation-rmse:6.44492 \n", "[712]\tvalidation-rmse:6.44481 \n", "[713]\tvalidation-rmse:6.44489 \n", "[714]\tvalidation-rmse:6.44489 \n", "[715]\tvalidation-rmse:6.44490 \n", "[716]\tvalidation-rmse:6.44491 \n", "[717]\tvalidation-rmse:6.44490 \n", "[718]\tvalidation-rmse:6.44480 \n", "[719]\tvalidation-rmse:6.44472 \n", "[720]\tvalidation-rmse:6.44468 \n", "[721]\tvalidation-rmse:6.44465 \n", "[722]\tvalidation-rmse:6.44466 \n", "[723]\tvalidation-rmse:6.44463 \n", "[724]\tvalidation-rmse:6.44462 \n", "[725]\tvalidation-rmse:6.44465 \n", "[726]\tvalidation-rmse:6.44461 \n", "[727]\tvalidation-rmse:6.44459 \n", "[728]\tvalidation-rmse:6.44457 \n", "[729]\tvalidation-rmse:6.44453 \n", "[730]\tvalidation-rmse:6.44441 \n", "[731]\tvalidation-rmse:6.44433 \n", "[732]\tvalidation-rmse:6.44437 \n", "[733]\tvalidation-rmse:6.44435 \n", "[734]\tvalidation-rmse:6.44454 \n", "[735]\tvalidation-rmse:6.44457 \n", "[736]\tvalidation-rmse:6.44459 \n", "[737]\tvalidation-rmse:6.44461 \n", "[738]\tvalidation-rmse:6.44454 \n", "[739]\tvalidation-rmse:6.44455 \n", "[740]\tvalidation-rmse:6.44451 \n", "[741]\tvalidation-rmse:6.44453 \n", "[742]\tvalidation-rmse:6.44451 \n", "[743]\tvalidation-rmse:6.44435 \n", "[744]\tvalidation-rmse:6.44432 \n", "[745]\tvalidation-rmse:6.44433 \n", "[746]\tvalidation-rmse:6.44432 \n", "[747]\tvalidation-rmse:6.44428 \n", "[748]\tvalidation-rmse:6.44430 \n", "[749]\tvalidation-rmse:6.44428 \n", "[750]\tvalidation-rmse:6.44423 \n", "[751]\tvalidation-rmse:6.44431 \n", "[752]\tvalidation-rmse:6.44438 \n", "[753]\tvalidation-rmse:6.44440 \n", "[754]\tvalidation-rmse:6.44425 \n", "[755]\tvalidation-rmse:6.44424 \n", "[756]\tvalidation-rmse:6.44427 \n", "[757]\tvalidation-rmse:6.44426 \n", "[758]\tvalidation-rmse:6.44425 \n", "[759]\tvalidation-rmse:6.44422 \n", "[760]\tvalidation-rmse:6.44421 \n", "[761]\tvalidation-rmse:6.44419 \n", "[762]\tvalidation-rmse:6.44410 \n", "[763]\tvalidation-rmse:6.44410 \n", "[764]\tvalidation-rmse:6.44409 \n", "[765]\tvalidation-rmse:6.44410 \n", "[766]\tvalidation-rmse:6.44403 \n", "[767]\tvalidation-rmse:6.44401 \n", "[768]\tvalidation-rmse:6.44397 \n", "[769]\tvalidation-rmse:6.44390 \n", "[770]\tvalidation-rmse:6.44387 \n", "[771]\tvalidation-rmse:6.44381 \n", "[772]\tvalidation-rmse:6.44376 \n", "[773]\tvalidation-rmse:6.44372 \n", "[774]\tvalidation-rmse:6.44373 \n", "[775]\tvalidation-rmse:6.44371 \n", "[776]\tvalidation-rmse:6.44366 \n", "[777]\tvalidation-rmse:6.44364 \n", "[778]\tvalidation-rmse:6.44367 \n", "[779]\tvalidation-rmse:6.44367 \n", "[780]\tvalidation-rmse:6.44367 \n", "[781]\tvalidation-rmse:6.44370 \n", "[782]\tvalidation-rmse:6.44361 \n", "[783]\tvalidation-rmse:6.44357 \n", "[784]\tvalidation-rmse:6.44352 \n", "[785]\tvalidation-rmse:6.44347 \n", "[786]\tvalidation-rmse:6.44333 \n", "[787]\tvalidation-rmse:6.44336 \n", "[788]\tvalidation-rmse:6.44334 \n", "[789]\tvalidation-rmse:6.44332 \n", "[790]\tvalidation-rmse:6.44333 \n", "[791]\tvalidation-rmse:6.44328 \n", "[792]\tvalidation-rmse:6.44328 \n", "[793]\tvalidation-rmse:6.44323 \n", "[794]\tvalidation-rmse:6.44316 \n", "[795]\tvalidation-rmse:6.44320 \n", "[796]\tvalidation-rmse:6.44310 \n", "[797]\tvalidation-rmse:6.44306 \n", "[798]\tvalidation-rmse:6.44303 \n", "[799]\tvalidation-rmse:6.44300 \n", "[800]\tvalidation-rmse:6.44295 \n", "[801]\tvalidation-rmse:6.44301 \n", "[802]\tvalidation-rmse:6.44299 \n", "[803]\tvalidation-rmse:6.44297 \n", "[804]\tvalidation-rmse:6.44292 \n", "[805]\tvalidation-rmse:6.44291 \n", "[806]\tvalidation-rmse:6.44293 \n", "[807]\tvalidation-rmse:6.44286 \n", "[808]\tvalidation-rmse:6.44273 \n", "[809]\tvalidation-rmse:6.44278 \n", "[810]\tvalidation-rmse:6.44275 \n", "[811]\tvalidation-rmse:6.44266 \n", "[812]\tvalidation-rmse:6.44271 \n", "[813]\tvalidation-rmse:6.44274 \n", "[814]\tvalidation-rmse:6.44274 \n", "[815]\tvalidation-rmse:6.44271 \n", "[816]\tvalidation-rmse:6.44265 \n", "[817]\tvalidation-rmse:6.44263 \n", "[818]\tvalidation-rmse:6.44261 \n", "[819]\tvalidation-rmse:6.44262 \n", "[820]\tvalidation-rmse:6.44257 \n", "[821]\tvalidation-rmse:6.44257 \n", "[822]\tvalidation-rmse:6.44250 \n", "[823]\tvalidation-rmse:6.44254 \n", "[824]\tvalidation-rmse:6.44251 \n", "[825]\tvalidation-rmse:6.44257 \n", "[826]\tvalidation-rmse:6.44261 \n", "[827]\tvalidation-rmse:6.44257 \n", "[828]\tvalidation-rmse:6.44259 \n", "[829]\tvalidation-rmse:6.44255 \n", "[830]\tvalidation-rmse:6.44260 \n", "[831]\tvalidation-rmse:6.44251 \n", "[832]\tvalidation-rmse:6.44248 \n", "[833]\tvalidation-rmse:6.44249 \n", "[834]\tvalidation-rmse:6.44236 \n", "[835]\tvalidation-rmse:6.44237 \n", "[836]\tvalidation-rmse:6.44233 \n", "[837]\tvalidation-rmse:6.44231 \n", "[838]\tvalidation-rmse:6.44214 \n", "[839]\tvalidation-rmse:6.44216 \n", "[840]\tvalidation-rmse:6.44219 \n", "[841]\tvalidation-rmse:6.44215 \n", "[842]\tvalidation-rmse:6.44214 \n", "[843]\tvalidation-rmse:6.44198 \n", "[844]\tvalidation-rmse:6.44197 \n", "[845]\tvalidation-rmse:6.44197 \n", "[846]\tvalidation-rmse:6.44193 \n", "[847]\tvalidation-rmse:6.44180 \n", "[848]\tvalidation-rmse:6.44178 \n", "[849]\tvalidation-rmse:6.44183 \n", "[850]\tvalidation-rmse:6.44182 \n", "[851]\tvalidation-rmse:6.44182 \n", "[852]\tvalidation-rmse:6.44182 \n", "[853]\tvalidation-rmse:6.44183 \n", "[854]\tvalidation-rmse:6.44189 \n", "[855]\tvalidation-rmse:6.44190 \n", "[856]\tvalidation-rmse:6.44193 \n", "[857]\tvalidation-rmse:6.44189 \n", "[858]\tvalidation-rmse:6.44187 \n", "[859]\tvalidation-rmse:6.44183 \n", "[860]\tvalidation-rmse:6.44165 \n", "[861]\tvalidation-rmse:6.44161 \n", "[862]\tvalidation-rmse:6.44154 \n", "[863]\tvalidation-rmse:6.44147 \n", "[864]\tvalidation-rmse:6.44160 \n", "[865]\tvalidation-rmse:6.44163 \n", "[866]\tvalidation-rmse:6.44162 \n", "[867]\tvalidation-rmse:6.44154 \n", "[868]\tvalidation-rmse:6.44156 \n", "[869]\tvalidation-rmse:6.44174 \n", "[870]\tvalidation-rmse:6.44185 \n", "[871]\tvalidation-rmse:6.44185 \n", "[872]\tvalidation-rmse:6.44189 \n", "[873]\tvalidation-rmse:6.44188 \n", "[874]\tvalidation-rmse:6.44183 \n", "[875]\tvalidation-rmse:6.44182 \n", "[876]\tvalidation-rmse:6.44181 \n", "[877]\tvalidation-rmse:6.44172 \n", "[878]\tvalidation-rmse:6.44170 \n", "[879]\tvalidation-rmse:6.44167 \n", "[880]\tvalidation-rmse:6.44166 \n", "[881]\tvalidation-rmse:6.44162 \n", "[882]\tvalidation-rmse:6.44160 \n", "[883]\tvalidation-rmse:6.44160 \n", "[884]\tvalidation-rmse:6.44155 \n", "[885]\tvalidation-rmse:6.44148 \n", "[886]\tvalidation-rmse:6.44146 \n", "[887]\tvalidation-rmse:6.44146 \n", "[888]\tvalidation-rmse:6.44143 \n", "[889]\tvalidation-rmse:6.44133 \n", "[890]\tvalidation-rmse:6.44124 \n", "[891]\tvalidation-rmse:6.44121 \n", "[892]\tvalidation-rmse:6.44120 \n", "[893]\tvalidation-rmse:6.44117 \n", "[894]\tvalidation-rmse:6.44116 \n", "[895]\tvalidation-rmse:6.44115 \n", "[896]\tvalidation-rmse:6.44100 \n", "[897]\tvalidation-rmse:6.44098 \n", "[898]\tvalidation-rmse:6.44097 \n", "[899]\tvalidation-rmse:6.44097 \n", "[900]\tvalidation-rmse:6.44094 \n", "[901]\tvalidation-rmse:6.44087 \n", "[902]\tvalidation-rmse:6.44096 \n", "[903]\tvalidation-rmse:6.44121 \n", "[904]\tvalidation-rmse:6.44151 \n", "[905]\tvalidation-rmse:6.44178 \n", "[906]\tvalidation-rmse:6.44179 \n", "[907]\tvalidation-rmse:6.44190 \n", "[908]\tvalidation-rmse:6.44191 \n", "[909]\tvalidation-rmse:6.44190 \n", "[910]\tvalidation-rmse:6.44201 \n", "[911]\tvalidation-rmse:6.44198 \n", "[912]\tvalidation-rmse:6.44201 \n", "[913]\tvalidation-rmse:6.44197 \n", "[914]\tvalidation-rmse:6.44193 \n", "[915]\tvalidation-rmse:6.44186 \n", "[916]\tvalidation-rmse:6.44180 \n", "[917]\tvalidation-rmse:6.44171 \n", "[918]\tvalidation-rmse:6.44170 \n", "[919]\tvalidation-rmse:6.44164 \n", "[920]\tvalidation-rmse:6.44165 \n", "[921]\tvalidation-rmse:6.44163 \n", "[922]\tvalidation-rmse:6.44169 \n", "[923]\tvalidation-rmse:6.44164 \n", "[924]\tvalidation-rmse:6.44160 \n", "[925]\tvalidation-rmse:6.44158 \n", "[926]\tvalidation-rmse:6.44155 \n", "[927]\tvalidation-rmse:6.44152 \n", "[928]\tvalidation-rmse:6.44143 \n", "[929]\tvalidation-rmse:6.44140 \n", "[930]\tvalidation-rmse:6.44141 \n", "[931]\tvalidation-rmse:6.44143 \n", "[932]\tvalidation-rmse:6.44145 \n", "[933]\tvalidation-rmse:6.44140 \n", "[934]\tvalidation-rmse:6.44140 \n", "[935]\tvalidation-rmse:6.44136 \n", "[936]\tvalidation-rmse:6.44142 \n", "[937]\tvalidation-rmse:6.44139 \n", "[938]\tvalidation-rmse:6.44136 \n", "[939]\tvalidation-rmse:6.44129 \n", "[940]\tvalidation-rmse:6.44130 \n", "[941]\tvalidation-rmse:6.44123 \n", "[942]\tvalidation-rmse:6.44123 \n", "[943]\tvalidation-rmse:6.44115 \n", "[944]\tvalidation-rmse:6.44119 \n", "[945]\tvalidation-rmse:6.44120 \n", "[946]\tvalidation-rmse:6.44122 \n", "[947]\tvalidation-rmse:6.44117 \n", "[948]\tvalidation-rmse:6.44123 \n", "[949]\tvalidation-rmse:6.44122 \n", "[950]\tvalidation-rmse:6.44122 \n", "[951]\tvalidation-rmse:6.44124 \n", "[12:46:29] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.01936 \n", "[1]\tvalidation-rmse:7.85375 \n", "[2]\tvalidation-rmse:6.98308 \n", "[3]\tvalidation-rmse:6.71768 \n", "[4]\tvalidation-rmse:6.62596 \n", "[5]\tvalidation-rmse:6.58734 \n", "[6]\tvalidation-rmse:6.57090 \n", "[7]\tvalidation-rmse:6.56007 \n", "[8]\tvalidation-rmse:6.55186 \n", "[9]\tvalidation-rmse:6.54650 \n", "[10]\tvalidation-rmse:6.54225 \n", "[11]\tvalidation-rmse:6.53798 \n", "[12]\tvalidation-rmse:6.54011 \n", "[13]\tvalidation-rmse:6.53474 \n", "[14]\tvalidation-rmse:6.53172 \n", "[15]\tvalidation-rmse:6.52646 \n", "[16]\tvalidation-rmse:6.52439 \n", "[17]\tvalidation-rmse:6.52059 \n", "[18]\tvalidation-rmse:6.51834 \n", "[19]\tvalidation-rmse:6.51896 \n", "[20]\tvalidation-rmse:6.51959 \n", "[21]\tvalidation-rmse:6.51853 \n", "[22]\tvalidation-rmse:6.51442 \n", "[23]\tvalidation-rmse:6.51193 \n", "[24]\tvalidation-rmse:6.50966 \n", "[25]\tvalidation-rmse:6.50688 \n", "[26]\tvalidation-rmse:6.50601 \n", "[27]\tvalidation-rmse:6.50088 \n", "[28]\tvalidation-rmse:6.49820 \n", "[29]\tvalidation-rmse:6.49671 \n", "[30]\tvalidation-rmse:6.49527 \n", "[31]\tvalidation-rmse:6.49074 \n", "[32]\tvalidation-rmse:6.48881 \n", "[33]\tvalidation-rmse:6.48677 \n", "[34]\tvalidation-rmse:6.48365 \n", "[35]\tvalidation-rmse:6.48278 \n", "[36]\tvalidation-rmse:6.48161 \n", "[37]\tvalidation-rmse:6.48015 \n", "[38]\tvalidation-rmse:6.47940 \n", "[39]\tvalidation-rmse:6.47747 \n", "[40]\tvalidation-rmse:6.47542 \n", "[41]\tvalidation-rmse:6.47413 \n", "[42]\tvalidation-rmse:6.47472 \n", "[43]\tvalidation-rmse:6.47192 \n", "[44]\tvalidation-rmse:6.47390 \n", "[45]\tvalidation-rmse:6.47423 \n", "[46]\tvalidation-rmse:6.47237 \n", "[47]\tvalidation-rmse:6.47198 \n", "[48]\tvalidation-rmse:6.47095 \n", "[49]\tvalidation-rmse:6.46934 \n", "[50]\tvalidation-rmse:6.46811 \n", "[51]\tvalidation-rmse:6.46955 \n", "[52]\tvalidation-rmse:6.46967 \n", "[53]\tvalidation-rmse:6.46713 \n", "[54]\tvalidation-rmse:6.46502 \n", "[55]\tvalidation-rmse:6.46374 \n", "[56]\tvalidation-rmse:6.46514 \n", "[57]\tvalidation-rmse:6.46389 \n", "[58]\tvalidation-rmse:6.46451 \n", "[59]\tvalidation-rmse:6.46484 \n", "[60]\tvalidation-rmse:6.46480 \n", "[61]\tvalidation-rmse:6.46369 \n", "[62]\tvalidation-rmse:6.46289 \n", "[63]\tvalidation-rmse:6.46469 \n", "[64]\tvalidation-rmse:6.46370 \n", "[65]\tvalidation-rmse:6.46268 \n", "[66]\tvalidation-rmse:6.46346 \n", "[67]\tvalidation-rmse:6.46261 \n", "[68]\tvalidation-rmse:6.46258 \n", "[69]\tvalidation-rmse:6.46212 \n", "[70]\tvalidation-rmse:6.46296 \n", "[71]\tvalidation-rmse:6.46447 \n", "[72]\tvalidation-rmse:6.46544 \n", "[73]\tvalidation-rmse:6.46538 \n", "[74]\tvalidation-rmse:6.46450 \n", "[75]\tvalidation-rmse:6.46404 \n", "[76]\tvalidation-rmse:6.46388 \n", "[77]\tvalidation-rmse:6.46428 \n", "[78]\tvalidation-rmse:6.46494 \n", "[79]\tvalidation-rmse:6.46426 \n", "[80]\tvalidation-rmse:6.46490 \n", "[81]\tvalidation-rmse:6.46594 \n", "[82]\tvalidation-rmse:6.46655 \n", "[83]\tvalidation-rmse:6.46640 \n", "[84]\tvalidation-rmse:6.46847 \n", "[85]\tvalidation-rmse:6.47315 \n", "[86]\tvalidation-rmse:6.47027 \n", "[87]\tvalidation-rmse:6.47055 \n", "[88]\tvalidation-rmse:6.47001 \n", "[89]\tvalidation-rmse:6.47013 \n", "[90]\tvalidation-rmse:6.47069 \n", "[91]\tvalidation-rmse:6.47058 \n", "[92]\tvalidation-rmse:6.47060 \n", "[93]\tvalidation-rmse:6.47113 \n", "[94]\tvalidation-rmse:6.47111 \n", "[95]\tvalidation-rmse:6.47101 \n", "[96]\tvalidation-rmse:6.47255 \n", "[97]\tvalidation-rmse:6.47275 \n", "[98]\tvalidation-rmse:6.47378 \n", "[99]\tvalidation-rmse:6.47446 \n", "[100]\tvalidation-rmse:6.47642 \n", "[101]\tvalidation-rmse:6.47674 \n", "[102]\tvalidation-rmse:6.47519 \n", "[103]\tvalidation-rmse:6.47431 \n", "[104]\tvalidation-rmse:6.47395 \n", "[105]\tvalidation-rmse:6.47683 \n", "[106]\tvalidation-rmse:6.47743 \n", "[107]\tvalidation-rmse:6.47833 \n", "[108]\tvalidation-rmse:6.47867 \n", "[109]\tvalidation-rmse:6.47908 \n", "[110]\tvalidation-rmse:6.47965 \n", "[111]\tvalidation-rmse:6.48030 \n", "[112]\tvalidation-rmse:6.47999 \n", "[113]\tvalidation-rmse:6.48005 \n", "[114]\tvalidation-rmse:6.47975 \n", "[115]\tvalidation-rmse:6.47971 \n", "[116]\tvalidation-rmse:6.48081 \n", "[117]\tvalidation-rmse:6.48051 \n", "[118]\tvalidation-rmse:6.48054 \n", "[12:46:54] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.02404 \n", "[1]\tvalidation-rmse:18.93941 \n", "[2]\tvalidation-rmse:17.93192 \n", "[3]\tvalidation-rmse:16.99863 \n", "[4]\tvalidation-rmse:16.13336 \n", "[5]\tvalidation-rmse:15.33284 \n", "[6]\tvalidation-rmse:14.59177 \n", "[7]\tvalidation-rmse:13.90754 \n", "[8]\tvalidation-rmse:13.27680 \n", "[9]\tvalidation-rmse:12.69652 \n", "[10]\tvalidation-rmse:12.16204 \n", "[11]\tvalidation-rmse:11.66889 \n", "[12]\tvalidation-rmse:11.21597 \n", "[13]\tvalidation-rmse:10.80118 \n", "[14]\tvalidation-rmse:10.42078 \n", "[15]\tvalidation-rmse:10.07307 \n", "[16]\tvalidation-rmse:9.75427 \n", "[17]\tvalidation-rmse:9.46394 \n", "[18]\tvalidation-rmse:9.19898 \n", "[19]\tvalidation-rmse:8.95728 \n", "[20]\tvalidation-rmse:8.73820 \n", "[21]\tvalidation-rmse:8.53869 \n", "[22]\tvalidation-rmse:8.35675 \n", "[23]\tvalidation-rmse:8.19146 \n", "[24]\tvalidation-rmse:8.04182 \n", "[25]\tvalidation-rmse:7.90477 \n", "[26]\tvalidation-rmse:7.78090 \n", "[27]\tvalidation-rmse:7.66832 \n", "[28]\tvalidation-rmse:7.56665 \n", "[29]\tvalidation-rmse:7.47554 \n", "[30]\tvalidation-rmse:7.39255 \n", "[31]\tvalidation-rmse:7.31661 \n", "[32]\tvalidation-rmse:7.24828 \n", "[33]\tvalidation-rmse:7.18584 \n", "[34]\tvalidation-rmse:7.13044 \n", "[35]\tvalidation-rmse:7.07808 \n", "[36]\tvalidation-rmse:7.03137 \n", "[37]\tvalidation-rmse:6.98827 \n", "[38]\tvalidation-rmse:6.94832 \n", "[39]\tvalidation-rmse:6.91265 \n", "[40]\tvalidation-rmse:6.88081 \n", "[41]\tvalidation-rmse:6.85111 \n", "[42]\tvalidation-rmse:6.82402 \n", "[43]\tvalidation-rmse:6.79974 \n", "[44]\tvalidation-rmse:6.77698 \n", "[45]\tvalidation-rmse:6.75574 \n", "[46]\tvalidation-rmse:6.73603 \n", "[47]\tvalidation-rmse:6.71780 \n", "[48]\tvalidation-rmse:6.70136 \n", "[49]\tvalidation-rmse:6.68564 \n", "[50]\tvalidation-rmse:6.67056 \n", "[51]\tvalidation-rmse:6.65768 \n", "[52]\tvalidation-rmse:6.64561 \n", "[53]\tvalidation-rmse:6.63454 \n", "[54]\tvalidation-rmse:6.62449 \n", "[55]\tvalidation-rmse:6.61471 \n", "[56]\tvalidation-rmse:6.60561 \n", "[57]\tvalidation-rmse:6.59717 \n", "[58]\tvalidation-rmse:6.58930 \n", "[59]\tvalidation-rmse:6.58199 \n", "[60]\tvalidation-rmse:6.57524 \n", "[61]\tvalidation-rmse:6.56924 \n", "[62]\tvalidation-rmse:6.56281 \n", "[63]\tvalidation-rmse:6.55719 \n", "[64]\tvalidation-rmse:6.55181 \n", "[65]\tvalidation-rmse:6.54716 \n", "[66]\tvalidation-rmse:6.54306 \n", "[67]\tvalidation-rmse:6.53865 \n", "[68]\tvalidation-rmse:6.53502 \n", "[69]\tvalidation-rmse:6.53160 \n", "[70]\tvalidation-rmse:6.52826 \n", "[71]\tvalidation-rmse:6.52535 \n", "[72]\tvalidation-rmse:6.52264 \n", "[73]\tvalidation-rmse:6.51965 \n", "[74]\tvalidation-rmse:6.51740 \n", "[75]\tvalidation-rmse:6.51539 \n", "[76]\tvalidation-rmse:6.51337 \n", "[77]\tvalidation-rmse:6.51150 \n", "[78]\tvalidation-rmse:6.50952 \n", "[79]\tvalidation-rmse:6.50760 \n", "[80]\tvalidation-rmse:6.50608 \n", "[81]\tvalidation-rmse:6.50455 \n", "[82]\tvalidation-rmse:6.50313 \n", "[83]\tvalidation-rmse:6.50146 \n", "[84]\tvalidation-rmse:6.50021 \n", "[85]\tvalidation-rmse:6.49906 \n", "[86]\tvalidation-rmse:6.49782 \n", "[87]\tvalidation-rmse:6.49650 \n", "[88]\tvalidation-rmse:6.49548 \n", "[89]\tvalidation-rmse:6.49432 \n", "[90]\tvalidation-rmse:6.49333 \n", "[91]\tvalidation-rmse:6.49242 \n", "[92]\tvalidation-rmse:6.49139 \n", "[93]\tvalidation-rmse:6.49046 \n", "[94]\tvalidation-rmse:6.48977 \n", "[95]\tvalidation-rmse:6.48908 \n", "[96]\tvalidation-rmse:6.48822 \n", "[97]\tvalidation-rmse:6.48758 \n", "[98]\tvalidation-rmse:6.48661 \n", "[99]\tvalidation-rmse:6.48575 \n", "[100]\tvalidation-rmse:6.48497 \n", "[101]\tvalidation-rmse:6.48439 \n", "[102]\tvalidation-rmse:6.48362 \n", "[103]\tvalidation-rmse:6.48290 \n", "[104]\tvalidation-rmse:6.48226 \n", "[105]\tvalidation-rmse:6.48170 \n", "[106]\tvalidation-rmse:6.48104 \n", "[107]\tvalidation-rmse:6.48039 \n", "[108]\tvalidation-rmse:6.47998 \n", "[109]\tvalidation-rmse:6.47957 \n", "[110]\tvalidation-rmse:6.47898 \n", "[111]\tvalidation-rmse:6.47807 \n", "[112]\tvalidation-rmse:6.47738 \n", "[113]\tvalidation-rmse:6.47678 \n", "[114]\tvalidation-rmse:6.47621 \n", "[115]\tvalidation-rmse:6.47566 \n", "[116]\tvalidation-rmse:6.47502 \n", "[117]\tvalidation-rmse:6.47457 \n", "[118]\tvalidation-rmse:6.47410 \n", "[119]\tvalidation-rmse:6.47362 \n", "[120]\tvalidation-rmse:6.47308 \n", "[121]\tvalidation-rmse:6.47268 \n", "[122]\tvalidation-rmse:6.47220 \n", "[123]\tvalidation-rmse:6.47184 \n", "[124]\tvalidation-rmse:6.47145 \n", "[125]\tvalidation-rmse:6.47100 \n", "[126]\tvalidation-rmse:6.47055 \n", "[127]\tvalidation-rmse:6.47005 \n", "[128]\tvalidation-rmse:6.46953 \n", "[129]\tvalidation-rmse:6.46920 \n", "[130]\tvalidation-rmse:6.46862 \n", "[131]\tvalidation-rmse:6.46840 \n", "[132]\tvalidation-rmse:6.46796 \n", "[133]\tvalidation-rmse:6.46774 \n", "[134]\tvalidation-rmse:6.46723 \n", "[135]\tvalidation-rmse:6.46680 \n", "[136]\tvalidation-rmse:6.46647 \n", "[137]\tvalidation-rmse:6.46623 \n", "[138]\tvalidation-rmse:6.46571 \n", "[139]\tvalidation-rmse:6.46537 \n", "[140]\tvalidation-rmse:6.46496 \n", "[141]\tvalidation-rmse:6.46467 \n", "[142]\tvalidation-rmse:6.46458 \n", "[143]\tvalidation-rmse:6.46412 \n", "[144]\tvalidation-rmse:6.46377 \n", "[145]\tvalidation-rmse:6.46345 \n", "[146]\tvalidation-rmse:6.46302 \n", "[147]\tvalidation-rmse:6.46281 \n", "[148]\tvalidation-rmse:6.46243 \n", "[149]\tvalidation-rmse:6.46227 \n", "[150]\tvalidation-rmse:6.46181 \n", "[151]\tvalidation-rmse:6.46165 \n", "[152]\tvalidation-rmse:6.46128 \n", "[153]\tvalidation-rmse:6.46100 \n", "[154]\tvalidation-rmse:6.46065 \n", "[155]\tvalidation-rmse:6.46048 \n", "[156]\tvalidation-rmse:6.46029 \n", "[157]\tvalidation-rmse:6.46001 \n", "[158]\tvalidation-rmse:6.45954 \n", "[159]\tvalidation-rmse:6.45918 \n", "[160]\tvalidation-rmse:6.45897 \n", "[161]\tvalidation-rmse:6.45874 \n", "[162]\tvalidation-rmse:6.45848 \n", "[163]\tvalidation-rmse:6.45828 \n", "[164]\tvalidation-rmse:6.45802 \n", "[165]\tvalidation-rmse:6.45778 \n", "[166]\tvalidation-rmse:6.45761 \n", "[167]\tvalidation-rmse:6.45712 \n", "[168]\tvalidation-rmse:6.45699 \n", "[169]\tvalidation-rmse:6.45664 \n", "[170]\tvalidation-rmse:6.45660 \n", "[171]\tvalidation-rmse:6.45627 \n", "[172]\tvalidation-rmse:6.45610 \n", "[173]\tvalidation-rmse:6.45578 \n", "[174]\tvalidation-rmse:6.45564 \n", "[175]\tvalidation-rmse:6.45526 \n", "[176]\tvalidation-rmse:6.45501 \n", "[177]\tvalidation-rmse:6.45489 \n", "[178]\tvalidation-rmse:6.45469 \n", "[179]\tvalidation-rmse:6.45434 \n", "[180]\tvalidation-rmse:6.45408 \n", "[181]\tvalidation-rmse:6.45400 \n", "[182]\tvalidation-rmse:6.45377 \n", "[183]\tvalidation-rmse:6.45358 \n", "[184]\tvalidation-rmse:6.45343 \n", "[185]\tvalidation-rmse:6.45311 \n", "[186]\tvalidation-rmse:6.45285 \n", "[187]\tvalidation-rmse:6.45263 \n", "[188]\tvalidation-rmse:6.45253 \n", "[189]\tvalidation-rmse:6.45256 \n", "[190]\tvalidation-rmse:6.45210 \n", "[191]\tvalidation-rmse:6.45196 \n", "[192]\tvalidation-rmse:6.45168 \n", "[193]\tvalidation-rmse:6.45166 \n", "[194]\tvalidation-rmse:6.45136 \n", "[195]\tvalidation-rmse:6.45108 \n", "[196]\tvalidation-rmse:6.45080 \n", "[197]\tvalidation-rmse:6.45058 \n", "[198]\tvalidation-rmse:6.45040 \n", "[199]\tvalidation-rmse:6.45004 \n", "[200]\tvalidation-rmse:6.44992 \n", "[201]\tvalidation-rmse:6.44981 \n", "[202]\tvalidation-rmse:6.44957 \n", "[203]\tvalidation-rmse:6.44923 \n", "[204]\tvalidation-rmse:6.44920 \n", "[205]\tvalidation-rmse:6.44891 \n", "[206]\tvalidation-rmse:6.44871 \n", "[207]\tvalidation-rmse:6.44865 \n", "[208]\tvalidation-rmse:6.44840 \n", "[209]\tvalidation-rmse:6.44831 \n", "[210]\tvalidation-rmse:6.44824 \n", "[211]\tvalidation-rmse:6.44799 \n", "[212]\tvalidation-rmse:6.44792 \n", "[213]\tvalidation-rmse:6.44781 \n", "[214]\tvalidation-rmse:6.44780 \n", "[215]\tvalidation-rmse:6.44744 \n", "[216]\tvalidation-rmse:6.44744 \n", "[217]\tvalidation-rmse:6.44733 \n", "[218]\tvalidation-rmse:6.44699 \n", "[219]\tvalidation-rmse:6.44669 \n", "[220]\tvalidation-rmse:6.44642 \n", "[221]\tvalidation-rmse:6.44628 \n", "[222]\tvalidation-rmse:6.44611 \n", "[223]\tvalidation-rmse:6.44594 \n", "[224]\tvalidation-rmse:6.44576 \n", "[225]\tvalidation-rmse:6.44569 \n", "[226]\tvalidation-rmse:6.44547 \n", "[227]\tvalidation-rmse:6.44524 \n", "[228]\tvalidation-rmse:6.44514 \n", "[229]\tvalidation-rmse:6.44510 \n", "[230]\tvalidation-rmse:6.44489 \n", "[231]\tvalidation-rmse:6.44470 \n", "[232]\tvalidation-rmse:6.44461 \n", "[233]\tvalidation-rmse:6.44439 \n", "[234]\tvalidation-rmse:6.44425 \n", "[235]\tvalidation-rmse:6.44404 \n", "[236]\tvalidation-rmse:6.44387 \n", "[237]\tvalidation-rmse:6.44381 \n", "[238]\tvalidation-rmse:6.44382 \n", "[239]\tvalidation-rmse:6.44369 \n", "[240]\tvalidation-rmse:6.44360 \n", "[241]\tvalidation-rmse:6.44349 \n", "[242]\tvalidation-rmse:6.44351 \n", "[243]\tvalidation-rmse:6.44346 \n", "[244]\tvalidation-rmse:6.44313 \n", "[245]\tvalidation-rmse:6.44279 \n", "[246]\tvalidation-rmse:6.44251 \n", "[247]\tvalidation-rmse:6.44232 \n", "[248]\tvalidation-rmse:6.44206 \n", "[249]\tvalidation-rmse:6.44197 \n", "[250]\tvalidation-rmse:6.44175 \n", "[251]\tvalidation-rmse:6.44171 \n", "[252]\tvalidation-rmse:6.44163 \n", "[253]\tvalidation-rmse:6.44155 \n", "[254]\tvalidation-rmse:6.44151 \n", "[255]\tvalidation-rmse:6.44111 \n", "[256]\tvalidation-rmse:6.44114 \n", "[257]\tvalidation-rmse:6.44104 \n", "[258]\tvalidation-rmse:6.44087 \n", "[259]\tvalidation-rmse:6.44096 \n", "[260]\tvalidation-rmse:6.44085 \n", "[261]\tvalidation-rmse:6.44066 \n", "[262]\tvalidation-rmse:6.44043 \n", "[263]\tvalidation-rmse:6.44012 \n", "[264]\tvalidation-rmse:6.44014 \n", "[265]\tvalidation-rmse:6.44026 \n", "[266]\tvalidation-rmse:6.44004 \n", "[267]\tvalidation-rmse:6.44001 \n", "[268]\tvalidation-rmse:6.43968 \n", "[269]\tvalidation-rmse:6.43966 \n", "[270]\tvalidation-rmse:6.43961 \n", "[271]\tvalidation-rmse:6.43940 \n", "[272]\tvalidation-rmse:6.43915 \n", "[273]\tvalidation-rmse:6.43908 \n", "[274]\tvalidation-rmse:6.43871 \n", "[275]\tvalidation-rmse:6.43872 \n", "[276]\tvalidation-rmse:6.43864 \n", "[277]\tvalidation-rmse:6.43853 \n", "[278]\tvalidation-rmse:6.43843 \n", "[279]\tvalidation-rmse:6.43812 \n", "[280]\tvalidation-rmse:6.43798 \n", "[281]\tvalidation-rmse:6.43788 \n", "[282]\tvalidation-rmse:6.43779 \n", "[283]\tvalidation-rmse:6.43764 \n", "[284]\tvalidation-rmse:6.43758 \n", "[285]\tvalidation-rmse:6.43733 \n", "[286]\tvalidation-rmse:6.43729 \n", "[287]\tvalidation-rmse:6.43719 \n", "[288]\tvalidation-rmse:6.43710 \n", "[289]\tvalidation-rmse:6.43665 \n", "[290]\tvalidation-rmse:6.43653 \n", "[291]\tvalidation-rmse:6.43660 \n", "[292]\tvalidation-rmse:6.43657 \n", "[293]\tvalidation-rmse:6.43625 \n", "[294]\tvalidation-rmse:6.43628 \n", "[295]\tvalidation-rmse:6.43612 \n", "[296]\tvalidation-rmse:6.43608 \n", "[297]\tvalidation-rmse:6.43575 \n", "[298]\tvalidation-rmse:6.43550 \n", "[299]\tvalidation-rmse:6.43546 \n", "[300]\tvalidation-rmse:6.43539 \n", "[301]\tvalidation-rmse:6.43526 \n", "[302]\tvalidation-rmse:6.43519 \n", "[303]\tvalidation-rmse:6.43506 \n", "[304]\tvalidation-rmse:6.43490 \n", "[305]\tvalidation-rmse:6.43498 \n", "[306]\tvalidation-rmse:6.43506 \n", "[307]\tvalidation-rmse:6.43505 \n", "[308]\tvalidation-rmse:6.43514 \n", "[309]\tvalidation-rmse:6.43513 \n", "[310]\tvalidation-rmse:6.43508 \n", "[311]\tvalidation-rmse:6.43497 \n", "[312]\tvalidation-rmse:6.43485 \n", "[313]\tvalidation-rmse:6.43462 \n", "[314]\tvalidation-rmse:6.43454 \n", "[315]\tvalidation-rmse:6.43450 \n", "[316]\tvalidation-rmse:6.43432 \n", "[317]\tvalidation-rmse:6.43437 \n", "[318]\tvalidation-rmse:6.43403 \n", "[319]\tvalidation-rmse:6.43398 \n", "[320]\tvalidation-rmse:6.43396 \n", "[321]\tvalidation-rmse:6.43383 \n", "[322]\tvalidation-rmse:6.43382 \n", "[323]\tvalidation-rmse:6.43361 \n", "[324]\tvalidation-rmse:6.43361 \n", "[325]\tvalidation-rmse:6.43342 \n", "[326]\tvalidation-rmse:6.43335 \n", "[327]\tvalidation-rmse:6.43322 \n", "[328]\tvalidation-rmse:6.43326 \n", "[329]\tvalidation-rmse:6.43353 \n", "[330]\tvalidation-rmse:6.43350 \n", "[331]\tvalidation-rmse:6.43347 \n", "[332]\tvalidation-rmse:6.43340 \n", "[333]\tvalidation-rmse:6.43341 \n", "[334]\tvalidation-rmse:6.43334 \n", "[335]\tvalidation-rmse:6.43320 \n", "[336]\tvalidation-rmse:6.43304 \n", "[337]\tvalidation-rmse:6.43304 \n", "[338]\tvalidation-rmse:6.43303 \n", "[339]\tvalidation-rmse:6.43295 \n", "[340]\tvalidation-rmse:6.43282 \n", "[341]\tvalidation-rmse:6.43275 \n", "[342]\tvalidation-rmse:6.43265 \n", "[343]\tvalidation-rmse:6.43232 \n", "[344]\tvalidation-rmse:6.43243 \n", "[345]\tvalidation-rmse:6.43239 \n", "[346]\tvalidation-rmse:6.43239 \n", "[347]\tvalidation-rmse:6.43238 \n", "[348]\tvalidation-rmse:6.43241 \n", "[349]\tvalidation-rmse:6.43255 \n", "[350]\tvalidation-rmse:6.43248 \n", "[351]\tvalidation-rmse:6.43246 \n", "[352]\tvalidation-rmse:6.43248 \n", "[353]\tvalidation-rmse:6.43237 \n", "[354]\tvalidation-rmse:6.43229 \n", "[355]\tvalidation-rmse:6.43228 \n", "[356]\tvalidation-rmse:6.43218 \n", "[357]\tvalidation-rmse:6.43208 \n", "[358]\tvalidation-rmse:6.43201 \n", "[359]\tvalidation-rmse:6.43183 \n", "[360]\tvalidation-rmse:6.43177 \n", "[361]\tvalidation-rmse:6.43160 \n", "[362]\tvalidation-rmse:6.43151 \n", "[363]\tvalidation-rmse:6.43152 \n", "[364]\tvalidation-rmse:6.43145 \n", "[365]\tvalidation-rmse:6.43144 \n", "[366]\tvalidation-rmse:6.43125 \n", "[367]\tvalidation-rmse:6.43134 \n", "[368]\tvalidation-rmse:6.43129 \n", "[369]\tvalidation-rmse:6.43116 \n", "[370]\tvalidation-rmse:6.43117 \n", "[371]\tvalidation-rmse:6.43122 \n", "[372]\tvalidation-rmse:6.43108 \n", "[373]\tvalidation-rmse:6.43103 \n", "[374]\tvalidation-rmse:6.43086 \n", "[375]\tvalidation-rmse:6.43083 \n", "[376]\tvalidation-rmse:6.43083 \n", "[377]\tvalidation-rmse:6.43099 \n", "[378]\tvalidation-rmse:6.43098 \n", "[379]\tvalidation-rmse:6.43098 \n", "[380]\tvalidation-rmse:6.43089 \n", "[381]\tvalidation-rmse:6.43097 \n", "[382]\tvalidation-rmse:6.43084 \n", "[383]\tvalidation-rmse:6.43079 \n", "[384]\tvalidation-rmse:6.43069 \n", "[385]\tvalidation-rmse:6.43075 \n", "[386]\tvalidation-rmse:6.43059 \n", "[387]\tvalidation-rmse:6.43064 \n", "[388]\tvalidation-rmse:6.43051 \n", "[389]\tvalidation-rmse:6.43037 \n", "[390]\tvalidation-rmse:6.43024 \n", "[391]\tvalidation-rmse:6.43031 \n", "[392]\tvalidation-rmse:6.43027 \n", "[393]\tvalidation-rmse:6.43008 \n", "[394]\tvalidation-rmse:6.43009 \n", "[395]\tvalidation-rmse:6.43012 \n", "[396]\tvalidation-rmse:6.43010 \n", "[397]\tvalidation-rmse:6.42971 \n", "[398]\tvalidation-rmse:6.42971 \n", "[399]\tvalidation-rmse:6.42967 \n", "[400]\tvalidation-rmse:6.42968 \n", "[401]\tvalidation-rmse:6.42966 \n", "[402]\tvalidation-rmse:6.42960 \n", "[403]\tvalidation-rmse:6.42950 \n", "[404]\tvalidation-rmse:6.42946 \n", "[405]\tvalidation-rmse:6.42949 \n", "[406]\tvalidation-rmse:6.42946 \n", "[407]\tvalidation-rmse:6.42948 \n", "[408]\tvalidation-rmse:6.42930 \n", "[409]\tvalidation-rmse:6.42950 \n", "[410]\tvalidation-rmse:6.42976 \n", "[411]\tvalidation-rmse:6.42970 \n", "[412]\tvalidation-rmse:6.42951 \n", "[413]\tvalidation-rmse:6.42939 \n", "[414]\tvalidation-rmse:6.42928 \n", "[415]\tvalidation-rmse:6.42931 \n", "[416]\tvalidation-rmse:6.42927 \n", "[417]\tvalidation-rmse:6.42906 \n", "[418]\tvalidation-rmse:6.42896 \n", "[419]\tvalidation-rmse:6.42907 \n", "[420]\tvalidation-rmse:6.42891 \n", "[421]\tvalidation-rmse:6.42889 \n", "[422]\tvalidation-rmse:6.42882 \n", "[423]\tvalidation-rmse:6.42882 \n", "[424]\tvalidation-rmse:6.42902 \n", "[425]\tvalidation-rmse:6.42909 \n", "[426]\tvalidation-rmse:6.42932 \n", "[427]\tvalidation-rmse:6.42924 \n", "[428]\tvalidation-rmse:6.42916 \n", "[429]\tvalidation-rmse:6.42918 \n", "[430]\tvalidation-rmse:6.42909 \n", "[431]\tvalidation-rmse:6.42902 \n", "[432]\tvalidation-rmse:6.42890 \n", "[433]\tvalidation-rmse:6.42880 \n", "[434]\tvalidation-rmse:6.42871 \n", "[435]\tvalidation-rmse:6.42871 \n", "[436]\tvalidation-rmse:6.42864 \n", "[437]\tvalidation-rmse:6.42884 \n", "[438]\tvalidation-rmse:6.42880 \n", "[439]\tvalidation-rmse:6.42884 \n", "[440]\tvalidation-rmse:6.42863 \n", "[441]\tvalidation-rmse:6.42853 \n", "[442]\tvalidation-rmse:6.42851 \n", "[443]\tvalidation-rmse:6.42853 \n", "[444]\tvalidation-rmse:6.42824 \n", "[445]\tvalidation-rmse:6.42817 \n", "[446]\tvalidation-rmse:6.42796 \n", "[447]\tvalidation-rmse:6.42795 \n", "[448]\tvalidation-rmse:6.42756 \n", "[449]\tvalidation-rmse:6.42756 \n", "[450]\tvalidation-rmse:6.42722 \n", "[451]\tvalidation-rmse:6.42716 \n", "[452]\tvalidation-rmse:6.42715 \n", "[453]\tvalidation-rmse:6.42740 \n", "[454]\tvalidation-rmse:6.42746 \n", "[455]\tvalidation-rmse:6.42750 \n", "[456]\tvalidation-rmse:6.42762 \n", "[457]\tvalidation-rmse:6.42775 \n", "[458]\tvalidation-rmse:6.42763 \n", "[459]\tvalidation-rmse:6.42764 \n", "[460]\tvalidation-rmse:6.42761 \n", "[461]\tvalidation-rmse:6.42746 \n", "[462]\tvalidation-rmse:6.42744 \n", "[463]\tvalidation-rmse:6.42740 \n", "[464]\tvalidation-rmse:6.42739 \n", "[465]\tvalidation-rmse:6.42739 \n", "[466]\tvalidation-rmse:6.42707 \n", "[467]\tvalidation-rmse:6.42711 \n", "[468]\tvalidation-rmse:6.42736 \n", "[469]\tvalidation-rmse:6.42732 \n", "[470]\tvalidation-rmse:6.42730 \n", "[471]\tvalidation-rmse:6.42722 \n", "[472]\tvalidation-rmse:6.42711 \n", "[473]\tvalidation-rmse:6.42714 \n", "[474]\tvalidation-rmse:6.42708 \n", "[475]\tvalidation-rmse:6.42700 \n", "[476]\tvalidation-rmse:6.42689 \n", "[477]\tvalidation-rmse:6.42699 \n", "[478]\tvalidation-rmse:6.42692 \n", "[479]\tvalidation-rmse:6.42688 \n", "[480]\tvalidation-rmse:6.42696 \n", "[481]\tvalidation-rmse:6.42700 \n", "[482]\tvalidation-rmse:6.42700 \n", "[483]\tvalidation-rmse:6.42706 \n", "[484]\tvalidation-rmse:6.42687 \n", "[485]\tvalidation-rmse:6.42678 \n", "[486]\tvalidation-rmse:6.42658 \n", "[487]\tvalidation-rmse:6.42662 \n", "[488]\tvalidation-rmse:6.42681 \n", "[489]\tvalidation-rmse:6.42676 \n", "[490]\tvalidation-rmse:6.42679 \n", "[491]\tvalidation-rmse:6.42674 \n", "[492]\tvalidation-rmse:6.42684 \n", "[493]\tvalidation-rmse:6.42722 \n", "[494]\tvalidation-rmse:6.42739 \n", "[495]\tvalidation-rmse:6.42741 \n", "[496]\tvalidation-rmse:6.42730 \n", "[497]\tvalidation-rmse:6.42713 \n", "[498]\tvalidation-rmse:6.42721 \n", "[499]\tvalidation-rmse:6.42719 \n", "[500]\tvalidation-rmse:6.42724 \n", "[501]\tvalidation-rmse:6.42712 \n", "[502]\tvalidation-rmse:6.42701 \n", "[503]\tvalidation-rmse:6.42696 \n", "[504]\tvalidation-rmse:6.42682 \n", "[505]\tvalidation-rmse:6.42687 \n", "[506]\tvalidation-rmse:6.42683 \n", "[507]\tvalidation-rmse:6.42681 \n", "[508]\tvalidation-rmse:6.42684 \n", "[509]\tvalidation-rmse:6.42675 \n", "[510]\tvalidation-rmse:6.42669 \n", "[511]\tvalidation-rmse:6.42667 \n", "[512]\tvalidation-rmse:6.42655 \n", "[513]\tvalidation-rmse:6.42655 \n", "[514]\tvalidation-rmse:6.42654 \n", "[515]\tvalidation-rmse:6.42662 \n", "[516]\tvalidation-rmse:6.42664 \n", "[517]\tvalidation-rmse:6.42673 \n", "[518]\tvalidation-rmse:6.42686 \n", "[519]\tvalidation-rmse:6.42679 \n", "[520]\tvalidation-rmse:6.42671 \n", "[521]\tvalidation-rmse:6.42685 \n", "[522]\tvalidation-rmse:6.42721 \n", "[523]\tvalidation-rmse:6.42716 \n", "[524]\tvalidation-rmse:6.42716 \n", "[525]\tvalidation-rmse:6.42699 \n", "[526]\tvalidation-rmse:6.42697 \n", "[527]\tvalidation-rmse:6.42703 \n", "[528]\tvalidation-rmse:6.42712 \n", "[529]\tvalidation-rmse:6.42740 \n", "[530]\tvalidation-rmse:6.42749 \n", "[531]\tvalidation-rmse:6.42736 \n", "[532]\tvalidation-rmse:6.42730 \n", "[533]\tvalidation-rmse:6.42736 \n", "[534]\tvalidation-rmse:6.42737 \n", "[535]\tvalidation-rmse:6.42728 \n", "[536]\tvalidation-rmse:6.42729 \n", "[537]\tvalidation-rmse:6.42730 \n", "[538]\tvalidation-rmse:6.42729 \n", "[539]\tvalidation-rmse:6.42729 \n", "[540]\tvalidation-rmse:6.42727 \n", "[541]\tvalidation-rmse:6.42711 \n", "[542]\tvalidation-rmse:6.42721 \n", "[543]\tvalidation-rmse:6.42711 \n", "[544]\tvalidation-rmse:6.42751 \n", "[545]\tvalidation-rmse:6.42756 \n", "[546]\tvalidation-rmse:6.42746 \n", "[547]\tvalidation-rmse:6.42748 \n", "[548]\tvalidation-rmse:6.42750 \n", "[549]\tvalidation-rmse:6.42753 \n", "[550]\tvalidation-rmse:6.42766 \n", "[551]\tvalidation-rmse:6.42763 \n", "[552]\tvalidation-rmse:6.42755 \n", "[553]\tvalidation-rmse:6.42760 \n", "[554]\tvalidation-rmse:6.42756 \n", "[555]\tvalidation-rmse:6.42758 \n", "[556]\tvalidation-rmse:6.42764 \n", "[557]\tvalidation-rmse:6.42800 \n", "[558]\tvalidation-rmse:6.42802 \n", "[559]\tvalidation-rmse:6.42799 \n", "[560]\tvalidation-rmse:6.42787 \n", "[561]\tvalidation-rmse:6.42779 \n", "[562]\tvalidation-rmse:6.42789 \n", "[563]\tvalidation-rmse:6.42790 \n", "[12:49:30] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:9.30271 \n", "[1]\tvalidation-rmse:7.15139 \n", "[2]\tvalidation-rmse:6.78544 \n", "[3]\tvalidation-rmse:6.71313 \n", "[4]\tvalidation-rmse:6.68968 \n", "[5]\tvalidation-rmse:6.68068 \n", "[6]\tvalidation-rmse:6.67247 \n", "[7]\tvalidation-rmse:6.66346 \n", "[8]\tvalidation-rmse:6.65769 \n", "[9]\tvalidation-rmse:6.65338 \n", "[10]\tvalidation-rmse:6.64790 \n", "[11]\tvalidation-rmse:6.64374 \n", "[12]\tvalidation-rmse:6.64142 \n", "[13]\tvalidation-rmse:6.63667 \n", "[14]\tvalidation-rmse:6.63482 \n", "[15]\tvalidation-rmse:6.63062 \n", "[16]\tvalidation-rmse:6.62922 \n", "[17]\tvalidation-rmse:6.62573 \n", "[18]\tvalidation-rmse:6.62108 \n", "[19]\tvalidation-rmse:6.61561 \n", "[20]\tvalidation-rmse:6.61318 \n", "[21]\tvalidation-rmse:6.60789 \n", "[22]\tvalidation-rmse:6.60389 \n", "[23]\tvalidation-rmse:6.60298 \n", "[24]\tvalidation-rmse:6.59823 \n", "[25]\tvalidation-rmse:6.59616 \n", "[26]\tvalidation-rmse:6.59159 \n", "[27]\tvalidation-rmse:6.58932 \n", "[28]\tvalidation-rmse:6.58771 \n", "[29]\tvalidation-rmse:6.58705 \n", "[30]\tvalidation-rmse:6.58177 \n", "[31]\tvalidation-rmse:6.57890 \n", "[32]\tvalidation-rmse:6.57604 \n", "[33]\tvalidation-rmse:6.57452 \n", "[34]\tvalidation-rmse:6.57502 \n", "[35]\tvalidation-rmse:6.57480 \n", "[36]\tvalidation-rmse:6.57329 \n", "[37]\tvalidation-rmse:6.57152 \n", "[38]\tvalidation-rmse:6.56925 \n", "[39]\tvalidation-rmse:6.56893 \n", "[40]\tvalidation-rmse:6.56701 \n", "[41]\tvalidation-rmse:6.56481 \n", "[42]\tvalidation-rmse:6.56245 \n", "[43]\tvalidation-rmse:6.56050 \n", "[44]\tvalidation-rmse:6.55749 \n", "[45]\tvalidation-rmse:6.55668 \n", "[46]\tvalidation-rmse:6.55543 \n", "[47]\tvalidation-rmse:6.55124 \n", "[48]\tvalidation-rmse:6.55226 \n", "[49]\tvalidation-rmse:6.55106 \n", "[50]\tvalidation-rmse:6.54917 \n", "[51]\tvalidation-rmse:6.54743 \n", "[52]\tvalidation-rmse:6.54613 \n", "[53]\tvalidation-rmse:6.54425 \n", "[54]\tvalidation-rmse:6.54188 \n", "[55]\tvalidation-rmse:6.54251 \n", "[56]\tvalidation-rmse:6.54060 \n", "[57]\tvalidation-rmse:6.53939 \n", "[58]\tvalidation-rmse:6.53740 \n", "[59]\tvalidation-rmse:6.53543 \n", "[60]\tvalidation-rmse:6.53460 \n", "[61]\tvalidation-rmse:6.53311 \n", "[62]\tvalidation-rmse:6.53151 \n", "[63]\tvalidation-rmse:6.52768 \n", "[64]\tvalidation-rmse:6.52554 \n", "[65]\tvalidation-rmse:6.52228 \n", "[66]\tvalidation-rmse:6.52066 \n", "[67]\tvalidation-rmse:6.51883 \n", "[68]\tvalidation-rmse:6.51316 \n", "[69]\tvalidation-rmse:6.51107 \n", "[70]\tvalidation-rmse:6.50853 \n", "[71]\tvalidation-rmse:6.50574 \n", "[72]\tvalidation-rmse:6.50394 \n", "[73]\tvalidation-rmse:6.50273 \n", "[74]\tvalidation-rmse:6.50156 \n", "[75]\tvalidation-rmse:6.50289 \n", "[76]\tvalidation-rmse:6.50244 \n", "[77]\tvalidation-rmse:6.50060 \n", "[78]\tvalidation-rmse:6.50003 \n", "[79]\tvalidation-rmse:6.49847 \n", "[80]\tvalidation-rmse:6.49489 \n", "[81]\tvalidation-rmse:6.49547 \n", "[82]\tvalidation-rmse:6.49474 \n", "[83]\tvalidation-rmse:6.49360 \n", "[84]\tvalidation-rmse:6.49265 \n", "[85]\tvalidation-rmse:6.49104 \n", "[86]\tvalidation-rmse:6.48859 \n", "[87]\tvalidation-rmse:6.48689 \n", "[88]\tvalidation-rmse:6.48512 \n", "[89]\tvalidation-rmse:6.48460 \n", "[90]\tvalidation-rmse:6.48327 \n", "[91]\tvalidation-rmse:6.48293 \n", "[92]\tvalidation-rmse:6.48067 \n", "[93]\tvalidation-rmse:6.47946 \n", "[94]\tvalidation-rmse:6.47823 \n", "[95]\tvalidation-rmse:6.47694 \n", "[96]\tvalidation-rmse:6.47472 \n", "[97]\tvalidation-rmse:6.47429 \n", "[98]\tvalidation-rmse:6.47295 \n", "[99]\tvalidation-rmse:6.47216 \n", "[100]\tvalidation-rmse:6.47092 \n", "[101]\tvalidation-rmse:6.46990 \n", "[102]\tvalidation-rmse:6.46828 \n", "[103]\tvalidation-rmse:6.46772 \n", "[104]\tvalidation-rmse:6.46671 \n", "[105]\tvalidation-rmse:6.46567 \n", "[106]\tvalidation-rmse:6.46588 \n", "[107]\tvalidation-rmse:6.46441 \n", "[108]\tvalidation-rmse:6.46296 \n", "[109]\tvalidation-rmse:6.46237 \n", "[110]\tvalidation-rmse:6.46185 \n", "[111]\tvalidation-rmse:6.46148 \n", "[112]\tvalidation-rmse:6.45976 \n", "[113]\tvalidation-rmse:6.45871 \n", "[114]\tvalidation-rmse:6.45798 \n", "[115]\tvalidation-rmse:6.45558 \n", "[116]\tvalidation-rmse:6.45285 \n", "[117]\tvalidation-rmse:6.45221 \n", "[118]\tvalidation-rmse:6.45016 \n", "[119]\tvalidation-rmse:6.44925 \n", "[120]\tvalidation-rmse:6.44850 \n", "[121]\tvalidation-rmse:6.44720 \n", "[122]\tvalidation-rmse:6.44541 \n", "[123]\tvalidation-rmse:6.44450 \n", "[124]\tvalidation-rmse:6.44341 \n", "[125]\tvalidation-rmse:6.44284 \n", "[126]\tvalidation-rmse:6.44329 \n", "[127]\tvalidation-rmse:6.44250 \n", "[128]\tvalidation-rmse:6.44079 \n", "[129]\tvalidation-rmse:6.44127 \n", "[130]\tvalidation-rmse:6.43985 \n", "[131]\tvalidation-rmse:6.43843 \n", "[132]\tvalidation-rmse:6.43792 \n", "[133]\tvalidation-rmse:6.43758 \n", "[134]\tvalidation-rmse:6.43599 \n", "[135]\tvalidation-rmse:6.43510 \n", "[136]\tvalidation-rmse:6.43429 \n", "[137]\tvalidation-rmse:6.43327 \n", "[138]\tvalidation-rmse:6.43304 \n", "[139]\tvalidation-rmse:6.43178 \n", "[140]\tvalidation-rmse:6.42977 \n", "[141]\tvalidation-rmse:6.42895 \n", "[142]\tvalidation-rmse:6.42821 \n", "[143]\tvalidation-rmse:6.42734 \n", "[144]\tvalidation-rmse:6.42571 \n", "[145]\tvalidation-rmse:6.42471 \n", "[146]\tvalidation-rmse:6.42002 \n", "[147]\tvalidation-rmse:6.41934 \n", "[148]\tvalidation-rmse:6.41793 \n", "[149]\tvalidation-rmse:6.41814 \n", "[150]\tvalidation-rmse:6.41763 \n", "[151]\tvalidation-rmse:6.41716 \n", "[152]\tvalidation-rmse:6.41597 \n", "[153]\tvalidation-rmse:6.41546 \n", "[154]\tvalidation-rmse:6.41502 \n", "[155]\tvalidation-rmse:6.41463 \n", "[156]\tvalidation-rmse:6.41423 \n", "[157]\tvalidation-rmse:6.41370 \n", "[158]\tvalidation-rmse:6.41235 \n", "[159]\tvalidation-rmse:6.41252 \n", "[160]\tvalidation-rmse:6.41205 \n", "[161]\tvalidation-rmse:6.41075 \n", "[162]\tvalidation-rmse:6.41024 \n", "[163]\tvalidation-rmse:6.41038 \n", "[164]\tvalidation-rmse:6.41017 \n", "[165]\tvalidation-rmse:6.40982 \n", "[166]\tvalidation-rmse:6.40876 \n", "[167]\tvalidation-rmse:6.40888 \n", "[168]\tvalidation-rmse:6.40845 \n", "[169]\tvalidation-rmse:6.40770 \n", "[170]\tvalidation-rmse:6.40746 \n", "[171]\tvalidation-rmse:6.40689 \n", "[172]\tvalidation-rmse:6.40520 \n", "[173]\tvalidation-rmse:6.40459 \n", "[174]\tvalidation-rmse:6.40382 \n", "[175]\tvalidation-rmse:6.40366 \n", "[176]\tvalidation-rmse:6.40505 \n", "[177]\tvalidation-rmse:6.40476 \n", "[178]\tvalidation-rmse:6.40430 \n", "[179]\tvalidation-rmse:6.40371 \n", "[180]\tvalidation-rmse:6.40407 \n", "[181]\tvalidation-rmse:6.40374 \n", "[182]\tvalidation-rmse:6.40331 \n", "[183]\tvalidation-rmse:6.40253 \n", "[184]\tvalidation-rmse:6.40217 \n", "[185]\tvalidation-rmse:6.40101 \n", "[186]\tvalidation-rmse:6.40055 \n", "[187]\tvalidation-rmse:6.39986 \n", "[188]\tvalidation-rmse:6.39842 \n", "[189]\tvalidation-rmse:6.39855 \n", "[190]\tvalidation-rmse:6.39849 \n", "[191]\tvalidation-rmse:6.40017 \n", "[192]\tvalidation-rmse:6.39842 \n", "[193]\tvalidation-rmse:6.39734 \n", "[194]\tvalidation-rmse:6.39611 \n", "[195]\tvalidation-rmse:6.39431 \n", "[196]\tvalidation-rmse:6.39430 \n", "[197]\tvalidation-rmse:6.39244 \n", "[198]\tvalidation-rmse:6.39182 \n", "[199]\tvalidation-rmse:6.39021 \n", "[200]\tvalidation-rmse:6.39163 \n", "[201]\tvalidation-rmse:6.39176 \n", "[202]\tvalidation-rmse:6.39120 \n", "[203]\tvalidation-rmse:6.39159 \n", "[204]\tvalidation-rmse:6.39056 \n", "[205]\tvalidation-rmse:6.39162 \n", "[206]\tvalidation-rmse:6.39119 \n", "[207]\tvalidation-rmse:6.39073 \n", "[208]\tvalidation-rmse:6.38805 \n", "[209]\tvalidation-rmse:6.38681 \n", "[210]\tvalidation-rmse:6.38687 \n", "[211]\tvalidation-rmse:6.38657 \n", "[212]\tvalidation-rmse:6.38546 \n", "[213]\tvalidation-rmse:6.38517 \n", "[214]\tvalidation-rmse:6.38568 \n", "[215]\tvalidation-rmse:6.38573 \n", "[216]\tvalidation-rmse:6.38506 \n", "[217]\tvalidation-rmse:6.38485 \n", "[218]\tvalidation-rmse:6.38392 \n", "[219]\tvalidation-rmse:6.38400 \n", "[220]\tvalidation-rmse:6.38271 \n", "[221]\tvalidation-rmse:6.38219 \n", "[222]\tvalidation-rmse:6.38163 \n", "[223]\tvalidation-rmse:6.38249 \n", "[224]\tvalidation-rmse:6.38257 \n", "[225]\tvalidation-rmse:6.38276 \n", "[226]\tvalidation-rmse:6.38286 \n", "[227]\tvalidation-rmse:6.38266 \n", "[228]\tvalidation-rmse:6.38268 \n", "[229]\tvalidation-rmse:6.38204 \n", "[230]\tvalidation-rmse:6.38179 \n", "[231]\tvalidation-rmse:6.38187 \n", "[232]\tvalidation-rmse:6.38140 \n", "[233]\tvalidation-rmse:6.38104 \n", "[234]\tvalidation-rmse:6.37957 \n", "[235]\tvalidation-rmse:6.37896 \n", "[236]\tvalidation-rmse:6.37807 \n", "[237]\tvalidation-rmse:6.37824 \n", "[238]\tvalidation-rmse:6.37746 \n", "[239]\tvalidation-rmse:6.37679 \n", "[240]\tvalidation-rmse:6.37630 \n", "[241]\tvalidation-rmse:6.37600 \n", "[242]\tvalidation-rmse:6.37602 \n", "[243]\tvalidation-rmse:6.37577 \n", "[244]\tvalidation-rmse:6.37510 \n", "[245]\tvalidation-rmse:6.37461 \n", "[246]\tvalidation-rmse:6.37341 \n", "[247]\tvalidation-rmse:6.37316 \n", "[248]\tvalidation-rmse:6.37234 \n", "[249]\tvalidation-rmse:6.37178 \n", "[250]\tvalidation-rmse:6.37113 \n", "[251]\tvalidation-rmse:6.37025 \n", "[252]\tvalidation-rmse:6.36878 \n", "[253]\tvalidation-rmse:6.36877 \n", "[254]\tvalidation-rmse:6.36820 \n", "[255]\tvalidation-rmse:6.36832 \n", "[256]\tvalidation-rmse:6.36780 \n", "[257]\tvalidation-rmse:6.36773 \n", "[258]\tvalidation-rmse:6.36856 \n", "[259]\tvalidation-rmse:6.36788 \n", "[260]\tvalidation-rmse:6.36766 \n", "[261]\tvalidation-rmse:6.36810 \n", "[262]\tvalidation-rmse:6.36803 \n", "[263]\tvalidation-rmse:6.36777 \n", "[264]\tvalidation-rmse:6.36739 \n", "[265]\tvalidation-rmse:6.36690 \n", "[266]\tvalidation-rmse:6.36550 \n", "[267]\tvalidation-rmse:6.36611 \n", "[268]\tvalidation-rmse:6.36562 \n", "[269]\tvalidation-rmse:6.36511 \n", "[270]\tvalidation-rmse:6.36491 \n", "[271]\tvalidation-rmse:6.36440 \n", "[272]\tvalidation-rmse:6.36304 \n", "[273]\tvalidation-rmse:6.36201 \n", "[274]\tvalidation-rmse:6.36145 \n", "[275]\tvalidation-rmse:6.36059 \n", "[276]\tvalidation-rmse:6.36024 \n", "[277]\tvalidation-rmse:6.35989 \n", "[278]\tvalidation-rmse:6.36027 \n", "[279]\tvalidation-rmse:6.36084 \n", "[280]\tvalidation-rmse:6.36012 \n", "[281]\tvalidation-rmse:6.36024 \n", "[282]\tvalidation-rmse:6.35986 \n", "[283]\tvalidation-rmse:6.35938 \n", "[284]\tvalidation-rmse:6.35891 \n", "[285]\tvalidation-rmse:6.35823 \n", "[286]\tvalidation-rmse:6.35821 \n", "[287]\tvalidation-rmse:6.35824 \n", "[288]\tvalidation-rmse:6.35825 \n", "[289]\tvalidation-rmse:6.35789 \n", "[290]\tvalidation-rmse:6.35756 \n", "[291]\tvalidation-rmse:6.35725 \n", "[292]\tvalidation-rmse:6.35765 \n", "[293]\tvalidation-rmse:6.35657 \n", "[294]\tvalidation-rmse:6.35429 \n", "[295]\tvalidation-rmse:6.35744 \n", "[296]\tvalidation-rmse:6.35725 \n", "[297]\tvalidation-rmse:6.35769 \n", "[298]\tvalidation-rmse:6.35700 \n", "[299]\tvalidation-rmse:6.35658 \n", "[300]\tvalidation-rmse:6.35575 \n", "[301]\tvalidation-rmse:6.35586 \n", "[302]\tvalidation-rmse:6.35513 \n", "[303]\tvalidation-rmse:6.35496 \n", "[304]\tvalidation-rmse:6.35515 \n", "[305]\tvalidation-rmse:6.35500 \n", "[306]\tvalidation-rmse:6.35442 \n", "[307]\tvalidation-rmse:6.35378 \n", "[308]\tvalidation-rmse:6.35441 \n", "[309]\tvalidation-rmse:6.35405 \n", "[310]\tvalidation-rmse:6.35384 \n", "[311]\tvalidation-rmse:6.35370 \n", "[312]\tvalidation-rmse:6.35378 \n", "[313]\tvalidation-rmse:6.35350 \n", "[314]\tvalidation-rmse:6.35254 \n", "[315]\tvalidation-rmse:6.35211 \n", "[316]\tvalidation-rmse:6.35198 \n", "[317]\tvalidation-rmse:6.35204 \n", "[318]\tvalidation-rmse:6.35143 \n", "[319]\tvalidation-rmse:6.35066 \n", "[320]\tvalidation-rmse:6.35068 \n", "[321]\tvalidation-rmse:6.35009 \n", "[322]\tvalidation-rmse:6.35006 \n", "[323]\tvalidation-rmse:6.35005 \n", "[324]\tvalidation-rmse:6.34990 \n", "[325]\tvalidation-rmse:6.35038 \n", "[326]\tvalidation-rmse:6.35084 \n", "[327]\tvalidation-rmse:6.35062 \n", "[328]\tvalidation-rmse:6.35000 \n", "[329]\tvalidation-rmse:6.35006 \n", "[330]\tvalidation-rmse:6.34959 \n", "[331]\tvalidation-rmse:6.34904 \n", "[332]\tvalidation-rmse:6.34936 \n", "[333]\tvalidation-rmse:6.34815 \n", "[334]\tvalidation-rmse:6.34831 \n", "[335]\tvalidation-rmse:6.34858 \n", "[336]\tvalidation-rmse:6.34871 \n", "[337]\tvalidation-rmse:6.34847 \n", "[338]\tvalidation-rmse:6.34754 \n", "[339]\tvalidation-rmse:6.34663 \n", "[340]\tvalidation-rmse:6.34679 \n", "[341]\tvalidation-rmse:6.34647 \n", "[342]\tvalidation-rmse:6.34626 \n", "[343]\tvalidation-rmse:6.34662 \n", "[344]\tvalidation-rmse:6.34673 \n", "[345]\tvalidation-rmse:6.34581 \n", "[346]\tvalidation-rmse:6.34650 \n", "[347]\tvalidation-rmse:6.34632 \n", "[348]\tvalidation-rmse:6.34587 \n", "[349]\tvalidation-rmse:6.34596 \n", "[350]\tvalidation-rmse:6.34646 \n", "[351]\tvalidation-rmse:6.34638 \n", "[352]\tvalidation-rmse:6.34609 \n", "[353]\tvalidation-rmse:6.34632 \n", "[354]\tvalidation-rmse:6.34557 \n", "[355]\tvalidation-rmse:6.34605 \n", "[356]\tvalidation-rmse:6.34559 \n", "[357]\tvalidation-rmse:6.34466 \n", "[358]\tvalidation-rmse:6.34407 \n", "[359]\tvalidation-rmse:6.34440 \n", "[360]\tvalidation-rmse:6.34352 \n", "[361]\tvalidation-rmse:6.34316 \n", "[362]\tvalidation-rmse:6.34319 \n", "[363]\tvalidation-rmse:6.34214 \n", "[364]\tvalidation-rmse:6.34298 \n", "[365]\tvalidation-rmse:6.34314 \n", "[366]\tvalidation-rmse:6.34367 \n", "[367]\tvalidation-rmse:6.34427 \n", "[368]\tvalidation-rmse:6.34404 \n", "[369]\tvalidation-rmse:6.34335 \n", "[370]\tvalidation-rmse:6.34382 \n", "[371]\tvalidation-rmse:6.34359 \n", "[372]\tvalidation-rmse:6.34354 \n", "[373]\tvalidation-rmse:6.34354 \n", "[374]\tvalidation-rmse:6.34349 \n", "[375]\tvalidation-rmse:6.34357 \n", "[376]\tvalidation-rmse:6.34411 \n", "[377]\tvalidation-rmse:6.34414 \n", "[378]\tvalidation-rmse:6.34420 \n", "[379]\tvalidation-rmse:6.34342 \n", "[380]\tvalidation-rmse:6.34372 \n", "[381]\tvalidation-rmse:6.34339 \n", "[382]\tvalidation-rmse:6.34328 \n", "[383]\tvalidation-rmse:6.34313 \n", "[384]\tvalidation-rmse:6.34272 \n", "[385]\tvalidation-rmse:6.34261 \n", "[386]\tvalidation-rmse:6.34257 \n", "[387]\tvalidation-rmse:6.34312 \n", "[388]\tvalidation-rmse:6.34343 \n", "[389]\tvalidation-rmse:6.34138 \n", "[390]\tvalidation-rmse:6.34104 \n", "[391]\tvalidation-rmse:6.34142 \n", "[392]\tvalidation-rmse:6.34131 \n", "[393]\tvalidation-rmse:6.34193 \n", "[394]\tvalidation-rmse:6.34105 \n", "[395]\tvalidation-rmse:6.34128 \n", "[396]\tvalidation-rmse:6.34027 \n", "[397]\tvalidation-rmse:6.34023 \n", "[398]\tvalidation-rmse:6.34001 \n", "[399]\tvalidation-rmse:6.34004 \n", "[400]\tvalidation-rmse:6.34013 \n", "[401]\tvalidation-rmse:6.33976 \n", "[402]\tvalidation-rmse:6.33946 \n", "[403]\tvalidation-rmse:6.33939 \n", "[404]\tvalidation-rmse:6.33909 \n", "[405]\tvalidation-rmse:6.33857 \n", "[406]\tvalidation-rmse:6.33921 \n", "[407]\tvalidation-rmse:6.33911 \n", "[408]\tvalidation-rmse:6.33825 \n", "[409]\tvalidation-rmse:6.33854 \n", "[410]\tvalidation-rmse:6.33806 \n", "[411]\tvalidation-rmse:6.33856 \n", "[412]\tvalidation-rmse:6.33831 \n", "[413]\tvalidation-rmse:6.33894 \n", "[414]\tvalidation-rmse:6.33877 \n", "[415]\tvalidation-rmse:6.33833 \n", "[416]\tvalidation-rmse:6.33799 \n", "[417]\tvalidation-rmse:6.33790 \n", "[418]\tvalidation-rmse:6.33811 \n", "[419]\tvalidation-rmse:6.33767 \n", "[420]\tvalidation-rmse:6.33842 \n", "[421]\tvalidation-rmse:6.33810 \n", "[422]\tvalidation-rmse:6.33766 \n", "[423]\tvalidation-rmse:6.33754 \n", "[424]\tvalidation-rmse:6.33818 \n", "[425]\tvalidation-rmse:6.33689 \n", "[426]\tvalidation-rmse:6.33650 \n", "[427]\tvalidation-rmse:6.33608 \n", "[428]\tvalidation-rmse:6.33524 \n", "[429]\tvalidation-rmse:6.33278 \n", "[430]\tvalidation-rmse:6.33283 \n", "[431]\tvalidation-rmse:6.33258 \n", "[432]\tvalidation-rmse:6.33233 \n", "[433]\tvalidation-rmse:6.33290 \n", "[434]\tvalidation-rmse:6.33209 \n", "[435]\tvalidation-rmse:6.33193 \n", "[436]\tvalidation-rmse:6.33193 \n", "[437]\tvalidation-rmse:6.33196 \n", "[438]\tvalidation-rmse:6.33100 \n", "[439]\tvalidation-rmse:6.33119 \n", "[440]\tvalidation-rmse:6.33127 \n", "[441]\tvalidation-rmse:6.33108 \n", "[442]\tvalidation-rmse:6.33125 \n", "[443]\tvalidation-rmse:6.33017 \n", "[444]\tvalidation-rmse:6.33028 \n", "[445]\tvalidation-rmse:6.33034 \n", "[446]\tvalidation-rmse:6.33009 \n", "[447]\tvalidation-rmse:6.32978 \n", "[448]\tvalidation-rmse:6.32977 \n", "[449]\tvalidation-rmse:6.32949 \n", "[450]\tvalidation-rmse:6.32930 \n", "[451]\tvalidation-rmse:6.32942 \n", "[452]\tvalidation-rmse:6.32914 \n", "[453]\tvalidation-rmse:6.32912 \n", "[454]\tvalidation-rmse:6.32869 \n", "[455]\tvalidation-rmse:6.32930 \n", "[456]\tvalidation-rmse:6.32888 \n", "[457]\tvalidation-rmse:6.32934 \n", "[458]\tvalidation-rmse:6.32908 \n", "[459]\tvalidation-rmse:6.32954 \n", "[460]\tvalidation-rmse:6.32839 \n", "[461]\tvalidation-rmse:6.32830 \n", "[462]\tvalidation-rmse:6.32778 \n", "[463]\tvalidation-rmse:6.32791 \n", "[464]\tvalidation-rmse:6.32808 \n", "[465]\tvalidation-rmse:6.32796 \n", "[466]\tvalidation-rmse:6.32759 \n", "[467]\tvalidation-rmse:6.32763 \n", "[468]\tvalidation-rmse:6.32738 \n", "[469]\tvalidation-rmse:6.32700 \n", "[470]\tvalidation-rmse:6.32636 \n", "[471]\tvalidation-rmse:6.32601 \n", "[472]\tvalidation-rmse:6.32577 \n", "[473]\tvalidation-rmse:6.32600 \n", "[474]\tvalidation-rmse:6.32560 \n", "[475]\tvalidation-rmse:6.32579 \n", "[476]\tvalidation-rmse:6.32563 \n", "[477]\tvalidation-rmse:6.32482 \n", "[478]\tvalidation-rmse:6.32507 \n", "[479]\tvalidation-rmse:6.32517 \n", "[480]\tvalidation-rmse:6.32497 \n", "[481]\tvalidation-rmse:6.32533 \n", "[482]\tvalidation-rmse:6.32504 \n", "[483]\tvalidation-rmse:6.32456 \n", "[484]\tvalidation-rmse:6.32427 \n", "[485]\tvalidation-rmse:6.32403 \n", "[486]\tvalidation-rmse:6.32313 \n", "[487]\tvalidation-rmse:6.32339 \n", "[488]\tvalidation-rmse:6.32379 \n", "[489]\tvalidation-rmse:6.32403 \n", "[490]\tvalidation-rmse:6.32383 \n", "[491]\tvalidation-rmse:6.32310 \n", "[492]\tvalidation-rmse:6.32300 \n", "[493]\tvalidation-rmse:6.32308 \n", "[494]\tvalidation-rmse:6.32259 \n", "[495]\tvalidation-rmse:6.32247 \n", "[496]\tvalidation-rmse:6.32246 \n", "[497]\tvalidation-rmse:6.32217 \n", "[498]\tvalidation-rmse:6.32187 \n", "[499]\tvalidation-rmse:6.32326 \n", "[500]\tvalidation-rmse:6.32329 \n", "[501]\tvalidation-rmse:6.32298 \n", "[502]\tvalidation-rmse:6.32320 \n", "[503]\tvalidation-rmse:6.32324 \n", "[504]\tvalidation-rmse:6.32320 \n", "[505]\tvalidation-rmse:6.32147 \n", "[506]\tvalidation-rmse:6.32068 \n", "[507]\tvalidation-rmse:6.32090 \n", "[508]\tvalidation-rmse:6.32139 \n", "[509]\tvalidation-rmse:6.32093 \n", "[510]\tvalidation-rmse:6.32108 \n", "[511]\tvalidation-rmse:6.32136 \n", "[512]\tvalidation-rmse:6.32107 \n", "[513]\tvalidation-rmse:6.32063 \n", "[514]\tvalidation-rmse:6.32027 \n", "[515]\tvalidation-rmse:6.32022 \n", "[516]\tvalidation-rmse:6.31968 \n", "[517]\tvalidation-rmse:6.31952 \n", "[518]\tvalidation-rmse:6.31953 \n", "[519]\tvalidation-rmse:6.31942 \n", "[520]\tvalidation-rmse:6.31919 \n", "[521]\tvalidation-rmse:6.31965 \n", "[522]\tvalidation-rmse:6.31954 \n", "[523]\tvalidation-rmse:6.31928 \n", "[524]\tvalidation-rmse:6.31939 \n", "[525]\tvalidation-rmse:6.31947 \n", "[526]\tvalidation-rmse:6.31916 \n", "[527]\tvalidation-rmse:6.31928 \n", "[528]\tvalidation-rmse:6.31900 \n", "[529]\tvalidation-rmse:6.31818 \n", "[530]\tvalidation-rmse:6.31814 \n", "[531]\tvalidation-rmse:6.31839 \n", "[532]\tvalidation-rmse:6.31763 \n", "[533]\tvalidation-rmse:6.31783 \n", "[534]\tvalidation-rmse:6.31812 \n", "[535]\tvalidation-rmse:6.31798 \n", "[536]\tvalidation-rmse:6.31768 \n", "[537]\tvalidation-rmse:6.31774 \n", "[538]\tvalidation-rmse:6.31779 \n", "[539]\tvalidation-rmse:6.31787 \n", "[540]\tvalidation-rmse:6.31786 \n", "[541]\tvalidation-rmse:6.31770 \n", "[542]\tvalidation-rmse:6.31767 \n", "[543]\tvalidation-rmse:6.31724 \n", "[544]\tvalidation-rmse:6.31726 \n", "[545]\tvalidation-rmse:6.31728 \n", "[546]\tvalidation-rmse:6.31744 \n", "[547]\tvalidation-rmse:6.31709 \n", "[548]\tvalidation-rmse:6.31724 \n", "[549]\tvalidation-rmse:6.31693 \n", "[550]\tvalidation-rmse:6.31692 \n", "[551]\tvalidation-rmse:6.31705 \n", "[552]\tvalidation-rmse:6.31781 \n", "[553]\tvalidation-rmse:6.31794 \n", "[554]\tvalidation-rmse:6.31740 \n", "[555]\tvalidation-rmse:6.31804 \n", "[556]\tvalidation-rmse:6.31783 \n", "[557]\tvalidation-rmse:6.31716 \n", "[558]\tvalidation-rmse:6.31695 \n", "[559]\tvalidation-rmse:6.31699 \n", "[560]\tvalidation-rmse:6.31706 \n", "[561]\tvalidation-rmse:6.31706 \n", "[562]\tvalidation-rmse:6.31599 \n", "[563]\tvalidation-rmse:6.31647 \n", "[564]\tvalidation-rmse:6.31660 \n", "[565]\tvalidation-rmse:6.31658 \n", "[566]\tvalidation-rmse:6.31715 \n", "[567]\tvalidation-rmse:6.31751 \n", "[568]\tvalidation-rmse:6.31754 \n", "[569]\tvalidation-rmse:6.31737 \n", "[570]\tvalidation-rmse:6.31700 \n", "[571]\tvalidation-rmse:6.31597 \n", "[572]\tvalidation-rmse:6.31591 \n", "[573]\tvalidation-rmse:6.31570 \n", "[574]\tvalidation-rmse:6.31570 \n", "[575]\tvalidation-rmse:6.31627 \n", "[576]\tvalidation-rmse:6.31630 \n", "[577]\tvalidation-rmse:6.31611 \n", "[578]\tvalidation-rmse:6.31627 \n", "[579]\tvalidation-rmse:6.31636 \n", "[580]\tvalidation-rmse:6.31640 \n", "[581]\tvalidation-rmse:6.31619 \n", "[582]\tvalidation-rmse:6.31666 \n", "[583]\tvalidation-rmse:6.31708 \n", "[584]\tvalidation-rmse:6.31726 \n", "[585]\tvalidation-rmse:6.31749 \n", "[586]\tvalidation-rmse:6.31723 \n", "[587]\tvalidation-rmse:6.31676 \n", "[588]\tvalidation-rmse:6.31646 \n", "[589]\tvalidation-rmse:6.31630 \n", "[590]\tvalidation-rmse:6.31657 \n", "[591]\tvalidation-rmse:6.31614 \n", "[592]\tvalidation-rmse:6.31595 \n", "[593]\tvalidation-rmse:6.31619 \n", "[594]\tvalidation-rmse:6.31629 \n", "[595]\tvalidation-rmse:6.31634 \n", "[596]\tvalidation-rmse:6.31791 \n", "[597]\tvalidation-rmse:6.31810 \n", "[598]\tvalidation-rmse:6.31730 \n", "[599]\tvalidation-rmse:6.31776 \n", "[600]\tvalidation-rmse:6.31800 \n", "[601]\tvalidation-rmse:6.31832 \n", "[602]\tvalidation-rmse:6.31827 \n", "[603]\tvalidation-rmse:6.31903 \n", "[604]\tvalidation-rmse:6.31917 \n", "[605]\tvalidation-rmse:6.31918 \n", "[606]\tvalidation-rmse:6.31908 \n", "[607]\tvalidation-rmse:6.31912 \n", "[608]\tvalidation-rmse:6.31923 \n", "[609]\tvalidation-rmse:6.31960 \n", "[610]\tvalidation-rmse:6.32004 \n", "[611]\tvalidation-rmse:6.32009 \n", "[612]\tvalidation-rmse:6.32001 \n", "[613]\tvalidation-rmse:6.32042 \n", "[614]\tvalidation-rmse:6.32046 \n", "[615]\tvalidation-rmse:6.32032 \n", "[616]\tvalidation-rmse:6.32054 \n", "[617]\tvalidation-rmse:6.32041 \n", "[618]\tvalidation-rmse:6.32097 \n", "[619]\tvalidation-rmse:6.32132 \n", "[620]\tvalidation-rmse:6.32137 \n", "[621]\tvalidation-rmse:6.32175 \n", "[622]\tvalidation-rmse:6.32172 \n", "[12:49:49] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.21742 \n", "[1]\tvalidation-rmse:8.58470 \n", "[2]\tvalidation-rmse:7.28742 \n", "[3]\tvalidation-rmse:6.83830 \n", "[4]\tvalidation-rmse:6.65775 \n", "[5]\tvalidation-rmse:6.57839 \n", "[6]\tvalidation-rmse:6.53644 \n", "[7]\tvalidation-rmse:6.51776 \n", "[8]\tvalidation-rmse:6.50818 \n", "[9]\tvalidation-rmse:6.50172 \n", "[10]\tvalidation-rmse:6.49650 \n", "[11]\tvalidation-rmse:6.48956 \n", "[12]\tvalidation-rmse:6.48298 \n", "[13]\tvalidation-rmse:6.47936 \n", "[14]\tvalidation-rmse:6.47461 \n", "[15]\tvalidation-rmse:6.47099 \n", "[16]\tvalidation-rmse:6.46963 \n", "[17]\tvalidation-rmse:6.46611 \n", "[18]\tvalidation-rmse:6.46395 \n", "[19]\tvalidation-rmse:6.46219 \n", "[20]\tvalidation-rmse:6.46039 \n", "[21]\tvalidation-rmse:6.45928 \n", "[22]\tvalidation-rmse:6.45708 \n", "[23]\tvalidation-rmse:6.45498 \n", "[24]\tvalidation-rmse:6.45193 \n", "[25]\tvalidation-rmse:6.45074 \n", "[26]\tvalidation-rmse:6.45006 \n", "[27]\tvalidation-rmse:6.44820 \n", "[28]\tvalidation-rmse:6.44685 \n", "[29]\tvalidation-rmse:6.44605 \n", "[30]\tvalidation-rmse:6.44601 \n", "[31]\tvalidation-rmse:6.44575 \n", "[32]\tvalidation-rmse:6.44521 \n", "[33]\tvalidation-rmse:6.44508 \n", "[34]\tvalidation-rmse:6.44442 \n", "[35]\tvalidation-rmse:6.44042 \n", "[36]\tvalidation-rmse:6.43907 \n", "[37]\tvalidation-rmse:6.43778 \n", "[38]\tvalidation-rmse:6.43810 \n", "[39]\tvalidation-rmse:6.43692 \n", "[40]\tvalidation-rmse:6.43787 \n", "[41]\tvalidation-rmse:6.43763 \n", "[42]\tvalidation-rmse:6.43685 \n", "[43]\tvalidation-rmse:6.43500 \n", "[44]\tvalidation-rmse:6.43524 \n", "[45]\tvalidation-rmse:6.43659 \n", "[46]\tvalidation-rmse:6.43649 \n", "[47]\tvalidation-rmse:6.43526 \n", "[48]\tvalidation-rmse:6.43444 \n", "[49]\tvalidation-rmse:6.43408 \n", "[50]\tvalidation-rmse:6.43549 \n", "[51]\tvalidation-rmse:6.43433 \n", "[52]\tvalidation-rmse:6.43382 \n", "[53]\tvalidation-rmse:6.43483 \n", "[54]\tvalidation-rmse:6.43622 \n", "[55]\tvalidation-rmse:6.43480 \n", "[56]\tvalidation-rmse:6.43554 \n", "[57]\tvalidation-rmse:6.43617 \n", "[58]\tvalidation-rmse:6.43620 \n", "[59]\tvalidation-rmse:6.43672 \n", "[60]\tvalidation-rmse:6.43750 \n", "[61]\tvalidation-rmse:6.43719 \n", "[62]\tvalidation-rmse:6.43943 \n", "[63]\tvalidation-rmse:6.43935 \n", "[64]\tvalidation-rmse:6.43923 \n", "[65]\tvalidation-rmse:6.43890 \n", "[66]\tvalidation-rmse:6.43983 \n", "[67]\tvalidation-rmse:6.43956 \n", "[68]\tvalidation-rmse:6.44110 \n", "[69]\tvalidation-rmse:6.44172 \n", "[70]\tvalidation-rmse:6.44489 \n", "[71]\tvalidation-rmse:6.44672 \n", "[72]\tvalidation-rmse:6.44677 \n", "[73]\tvalidation-rmse:6.44787 \n", "[74]\tvalidation-rmse:6.44876 \n", "[75]\tvalidation-rmse:6.44941 \n", "[76]\tvalidation-rmse:6.45038 \n", "[77]\tvalidation-rmse:6.45040 \n", "[78]\tvalidation-rmse:6.45138 \n", "[79]\tvalidation-rmse:6.45111 \n", "[80]\tvalidation-rmse:6.44981 \n", "[81]\tvalidation-rmse:6.45016 \n", "[82]\tvalidation-rmse:6.44978 \n", "[83]\tvalidation-rmse:6.45023 \n", "[84]\tvalidation-rmse:6.45107 \n", "[85]\tvalidation-rmse:6.45219 \n", "[86]\tvalidation-rmse:6.45215 \n", "[87]\tvalidation-rmse:6.45548 \n", "[88]\tvalidation-rmse:6.45677 \n", "[89]\tvalidation-rmse:6.45709 \n", "[90]\tvalidation-rmse:6.45835 \n", "[91]\tvalidation-rmse:6.45849 \n", "[92]\tvalidation-rmse:6.46092 \n", "[93]\tvalidation-rmse:6.46091 \n", "[94]\tvalidation-rmse:6.46120 \n", "[95]\tvalidation-rmse:6.46069 \n", "[96]\tvalidation-rmse:6.46062 \n", "[97]\tvalidation-rmse:6.46116 \n", "[98]\tvalidation-rmse:6.46202 \n", "[99]\tvalidation-rmse:6.46131 \n", "[100]\tvalidation-rmse:6.46084 \n", "[101]\tvalidation-rmse:6.46148 \n", "[12:50:25] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.95977 \n", "[1]\tvalidation-rmse:18.82241 \n", "[2]\tvalidation-rmse:17.77106 \n", "[3]\tvalidation-rmse:16.80110 \n", "[4]\tvalidation-rmse:15.90780 \n", "[5]\tvalidation-rmse:15.08661 \n", "[6]\tvalidation-rmse:14.33073 \n", "[7]\tvalidation-rmse:13.63435 \n", "[8]\tvalidation-rmse:12.99986 \n", "[9]\tvalidation-rmse:12.41287 \n", "[10]\tvalidation-rmse:11.87931 \n", "[11]\tvalidation-rmse:11.38960 \n", "[12]\tvalidation-rmse:10.94480 \n", "[13]\tvalidation-rmse:10.53626 \n", "[14]\tvalidation-rmse:10.16743 \n", "[15]\tvalidation-rmse:9.83092 \n", "[16]\tvalidation-rmse:9.52314 \n", "[17]\tvalidation-rmse:9.24688 \n", "[18]\tvalidation-rmse:8.99610 \n", "[19]\tvalidation-rmse:8.76825 \n", "[20]\tvalidation-rmse:8.56071 \n", "[21]\tvalidation-rmse:8.37566 \n", "[22]\tvalidation-rmse:8.20665 \n", "[23]\tvalidation-rmse:8.05413 \n", "[24]\tvalidation-rmse:7.91750 \n", "[25]\tvalidation-rmse:7.79350 \n", "[26]\tvalidation-rmse:7.68009 \n", "[27]\tvalidation-rmse:7.57945 \n", "[28]\tvalidation-rmse:7.48799 \n", "[29]\tvalidation-rmse:7.40583 \n", "[30]\tvalidation-rmse:7.32957 \n", "[31]\tvalidation-rmse:7.26208 \n", "[32]\tvalidation-rmse:7.20131 \n", "[33]\tvalidation-rmse:7.14401 \n", "[34]\tvalidation-rmse:7.09505 \n", "[35]\tvalidation-rmse:7.04886 \n", "[36]\tvalidation-rmse:7.00796 \n", "[37]\tvalidation-rmse:6.97064 \n", "[38]\tvalidation-rmse:6.93575 \n", "[39]\tvalidation-rmse:6.90474 \n", "[40]\tvalidation-rmse:6.87691 \n", "[41]\tvalidation-rmse:6.85117 \n", "[42]\tvalidation-rmse:6.82637 \n", "[43]\tvalidation-rmse:6.80509 \n", "[44]\tvalidation-rmse:6.78564 \n", "[45]\tvalidation-rmse:6.76721 \n", "[46]\tvalidation-rmse:6.75102 \n", "[47]\tvalidation-rmse:6.73566 \n", "[48]\tvalidation-rmse:6.72139 \n", "[49]\tvalidation-rmse:6.70802 \n", "[50]\tvalidation-rmse:6.69609 \n", "[51]\tvalidation-rmse:6.68565 \n", "[52]\tvalidation-rmse:6.67540 \n", "[53]\tvalidation-rmse:6.66667 \n", "[54]\tvalidation-rmse:6.65854 \n", "[55]\tvalidation-rmse:6.65036 \n", "[56]\tvalidation-rmse:6.64354 \n", "[57]\tvalidation-rmse:6.63715 \n", "[58]\tvalidation-rmse:6.63062 \n", "[59]\tvalidation-rmse:6.62449 \n", "[60]\tvalidation-rmse:6.61895 \n", "[61]\tvalidation-rmse:6.61396 \n", "[62]\tvalidation-rmse:6.60927 \n", "[63]\tvalidation-rmse:6.60493 \n", "[64]\tvalidation-rmse:6.60109 \n", "[65]\tvalidation-rmse:6.59685 \n", "[66]\tvalidation-rmse:6.59357 \n", "[67]\tvalidation-rmse:6.58998 \n", "[68]\tvalidation-rmse:6.58684 \n", "[69]\tvalidation-rmse:6.58380 \n", "[70]\tvalidation-rmse:6.58106 \n", "[71]\tvalidation-rmse:6.57870 \n", "[72]\tvalidation-rmse:6.57656 \n", "[73]\tvalidation-rmse:6.57439 \n", "[74]\tvalidation-rmse:6.57275 \n", "[75]\tvalidation-rmse:6.57100 \n", "[76]\tvalidation-rmse:6.56911 \n", "[77]\tvalidation-rmse:6.56698 \n", "[78]\tvalidation-rmse:6.56514 \n", "[79]\tvalidation-rmse:6.56327 \n", "[80]\tvalidation-rmse:6.56211 \n", "[81]\tvalidation-rmse:6.56075 \n", "[82]\tvalidation-rmse:6.55938 \n", "[83]\tvalidation-rmse:6.55784 \n", "[84]\tvalidation-rmse:6.55622 \n", "[85]\tvalidation-rmse:6.55505 \n", "[86]\tvalidation-rmse:6.55401 \n", "[87]\tvalidation-rmse:6.55320 \n", "[88]\tvalidation-rmse:6.55229 \n", "[89]\tvalidation-rmse:6.55164 \n", "[90]\tvalidation-rmse:6.55027 \n", "[91]\tvalidation-rmse:6.54934 \n", "[92]\tvalidation-rmse:6.54843 \n", "[93]\tvalidation-rmse:6.54707 \n", "[94]\tvalidation-rmse:6.54643 \n", "[95]\tvalidation-rmse:6.54564 \n", "[96]\tvalidation-rmse:6.54449 \n", "[97]\tvalidation-rmse:6.54368 \n", "[98]\tvalidation-rmse:6.54273 \n", "[99]\tvalidation-rmse:6.54199 \n", "[100]\tvalidation-rmse:6.54134 \n", "[101]\tvalidation-rmse:6.54086 \n", "[102]\tvalidation-rmse:6.54010 \n", "[103]\tvalidation-rmse:6.53890 \n", "[104]\tvalidation-rmse:6.53837 \n", "[105]\tvalidation-rmse:6.53752 \n", "[106]\tvalidation-rmse:6.53664 \n", "[107]\tvalidation-rmse:6.53619 \n", "[108]\tvalidation-rmse:6.53562 \n", "[109]\tvalidation-rmse:6.53522 \n", "[110]\tvalidation-rmse:6.53491 \n", "[111]\tvalidation-rmse:6.53449 \n", "[112]\tvalidation-rmse:6.53407 \n", "[113]\tvalidation-rmse:6.53320 \n", "[114]\tvalidation-rmse:6.53293 \n", "[115]\tvalidation-rmse:6.53244 \n", "[116]\tvalidation-rmse:6.53176 \n", "[117]\tvalidation-rmse:6.53131 \n", "[118]\tvalidation-rmse:6.53075 \n", "[119]\tvalidation-rmse:6.53009 \n", "[120]\tvalidation-rmse:6.52966 \n", "[121]\tvalidation-rmse:6.52922 \n", "[122]\tvalidation-rmse:6.52849 \n", "[123]\tvalidation-rmse:6.52812 \n", "[124]\tvalidation-rmse:6.52751 \n", "[125]\tvalidation-rmse:6.52702 \n", "[126]\tvalidation-rmse:6.52652 \n", "[127]\tvalidation-rmse:6.52585 \n", "[128]\tvalidation-rmse:6.52536 \n", "[129]\tvalidation-rmse:6.52517 \n", "[130]\tvalidation-rmse:6.52494 \n", "[131]\tvalidation-rmse:6.52414 \n", "[132]\tvalidation-rmse:6.52380 \n", "[133]\tvalidation-rmse:6.52328 \n", "[134]\tvalidation-rmse:6.52255 \n", "[135]\tvalidation-rmse:6.52218 \n", "[136]\tvalidation-rmse:6.52183 \n", "[137]\tvalidation-rmse:6.52140 \n", "[138]\tvalidation-rmse:6.52085 \n", "[139]\tvalidation-rmse:6.52050 \n", "[140]\tvalidation-rmse:6.52022 \n", "[141]\tvalidation-rmse:6.51994 \n", "[142]\tvalidation-rmse:6.51964 \n", "[143]\tvalidation-rmse:6.51943 \n", "[144]\tvalidation-rmse:6.51919 \n", "[145]\tvalidation-rmse:6.51880 \n", "[146]\tvalidation-rmse:6.51843 \n", "[147]\tvalidation-rmse:6.51822 \n", "[148]\tvalidation-rmse:6.51794 \n", "[149]\tvalidation-rmse:6.51752 \n", "[150]\tvalidation-rmse:6.51689 \n", "[151]\tvalidation-rmse:6.51656 \n", "[152]\tvalidation-rmse:6.51626 \n", "[153]\tvalidation-rmse:6.51573 \n", "[154]\tvalidation-rmse:6.51525 \n", "[155]\tvalidation-rmse:6.51490 \n", "[156]\tvalidation-rmse:6.51474 \n", "[157]\tvalidation-rmse:6.51438 \n", "[158]\tvalidation-rmse:6.51408 \n", "[159]\tvalidation-rmse:6.51377 \n", "[160]\tvalidation-rmse:6.51353 \n", "[161]\tvalidation-rmse:6.51323 \n", "[162]\tvalidation-rmse:6.51289 \n", "[163]\tvalidation-rmse:6.51257 \n", "[164]\tvalidation-rmse:6.51184 \n", "[165]\tvalidation-rmse:6.51160 \n", "[166]\tvalidation-rmse:6.51120 \n", "[167]\tvalidation-rmse:6.51073 \n", "[168]\tvalidation-rmse:6.51043 \n", "[169]\tvalidation-rmse:6.50998 \n", "[170]\tvalidation-rmse:6.50978 \n", "[171]\tvalidation-rmse:6.50935 \n", "[172]\tvalidation-rmse:6.50875 \n", "[173]\tvalidation-rmse:6.50851 \n", "[174]\tvalidation-rmse:6.50815 \n", "[175]\tvalidation-rmse:6.50751 \n", "[176]\tvalidation-rmse:6.50710 \n", "[177]\tvalidation-rmse:6.50661 \n", "[178]\tvalidation-rmse:6.50632 \n", "[179]\tvalidation-rmse:6.50612 \n", "[180]\tvalidation-rmse:6.50563 \n", "[181]\tvalidation-rmse:6.50533 \n", "[182]\tvalidation-rmse:6.50482 \n", "[183]\tvalidation-rmse:6.50455 \n", "[184]\tvalidation-rmse:6.50435 \n", "[185]\tvalidation-rmse:6.50412 \n", "[186]\tvalidation-rmse:6.50339 \n", "[187]\tvalidation-rmse:6.50325 \n", "[188]\tvalidation-rmse:6.50321 \n", "[189]\tvalidation-rmse:6.50292 \n", "[190]\tvalidation-rmse:6.50272 \n", "[191]\tvalidation-rmse:6.50237 \n", "[192]\tvalidation-rmse:6.50219 \n", "[193]\tvalidation-rmse:6.50205 \n", "[194]\tvalidation-rmse:6.50173 \n", "[195]\tvalidation-rmse:6.50151 \n", "[196]\tvalidation-rmse:6.50110 \n", "[197]\tvalidation-rmse:6.50069 \n", "[198]\tvalidation-rmse:6.50050 \n", "[199]\tvalidation-rmse:6.50022 \n", "[200]\tvalidation-rmse:6.49960 \n", "[201]\tvalidation-rmse:6.49918 \n", "[202]\tvalidation-rmse:6.49884 \n", "[203]\tvalidation-rmse:6.49879 \n", "[204]\tvalidation-rmse:6.49861 \n", "[205]\tvalidation-rmse:6.49840 \n", "[206]\tvalidation-rmse:6.49796 \n", "[207]\tvalidation-rmse:6.49761 \n", "[208]\tvalidation-rmse:6.49731 \n", "[209]\tvalidation-rmse:6.49733 \n", "[210]\tvalidation-rmse:6.49686 \n", "[211]\tvalidation-rmse:6.49676 \n", "[212]\tvalidation-rmse:6.49631 \n", "[213]\tvalidation-rmse:6.49596 \n", "[214]\tvalidation-rmse:6.49591 \n", "[215]\tvalidation-rmse:6.49559 \n", "[216]\tvalidation-rmse:6.49514 \n", "[217]\tvalidation-rmse:6.49488 \n", "[218]\tvalidation-rmse:6.49457 \n", "[219]\tvalidation-rmse:6.49436 \n", "[220]\tvalidation-rmse:6.49410 \n", "[221]\tvalidation-rmse:6.49384 \n", "[222]\tvalidation-rmse:6.49358 \n", "[223]\tvalidation-rmse:6.49335 \n", "[224]\tvalidation-rmse:6.49302 \n", "[225]\tvalidation-rmse:6.49286 \n", "[226]\tvalidation-rmse:6.49260 \n", "[227]\tvalidation-rmse:6.49207 \n", "[228]\tvalidation-rmse:6.49163 \n", "[229]\tvalidation-rmse:6.49139 \n", "[230]\tvalidation-rmse:6.49106 \n", "[231]\tvalidation-rmse:6.49078 \n", "[232]\tvalidation-rmse:6.49042 \n", "[233]\tvalidation-rmse:6.49010 \n", "[234]\tvalidation-rmse:6.48957 \n", "[235]\tvalidation-rmse:6.48956 \n", "[236]\tvalidation-rmse:6.48911 \n", "[237]\tvalidation-rmse:6.48877 \n", "[238]\tvalidation-rmse:6.48846 \n", "[239]\tvalidation-rmse:6.48819 \n", "[240]\tvalidation-rmse:6.48809 \n", "[241]\tvalidation-rmse:6.48790 \n", "[242]\tvalidation-rmse:6.48766 \n", "[243]\tvalidation-rmse:6.48758 \n", "[244]\tvalidation-rmse:6.48736 \n", "[245]\tvalidation-rmse:6.48735 \n", "[246]\tvalidation-rmse:6.48722 \n", "[247]\tvalidation-rmse:6.48711 \n", "[248]\tvalidation-rmse:6.48690 \n", "[249]\tvalidation-rmse:6.48670 \n", "[250]\tvalidation-rmse:6.48652 \n", "[251]\tvalidation-rmse:6.48636 \n", "[252]\tvalidation-rmse:6.48615 \n", "[253]\tvalidation-rmse:6.48598 \n", "[254]\tvalidation-rmse:6.48570 \n", "[255]\tvalidation-rmse:6.48528 \n", "[256]\tvalidation-rmse:6.48513 \n", "[257]\tvalidation-rmse:6.48470 \n", "[258]\tvalidation-rmse:6.48446 \n", "[259]\tvalidation-rmse:6.48412 \n", "[260]\tvalidation-rmse:6.48401 \n", "[261]\tvalidation-rmse:6.48366 \n", "[262]\tvalidation-rmse:6.48349 \n", "[263]\tvalidation-rmse:6.48331 \n", "[264]\tvalidation-rmse:6.48299 \n", "[265]\tvalidation-rmse:6.48290 \n", "[266]\tvalidation-rmse:6.48276 \n", "[267]\tvalidation-rmse:6.48250 \n", "[268]\tvalidation-rmse:6.48243 \n", "[269]\tvalidation-rmse:6.48208 \n", "[270]\tvalidation-rmse:6.48186 \n", "[271]\tvalidation-rmse:6.48156 \n", "[272]\tvalidation-rmse:6.48134 \n", "[273]\tvalidation-rmse:6.48110 \n", "[274]\tvalidation-rmse:6.48081 \n", "[275]\tvalidation-rmse:6.48058 \n", "[276]\tvalidation-rmse:6.48046 \n", "[277]\tvalidation-rmse:6.48048 \n", "[278]\tvalidation-rmse:6.48027 \n", "[279]\tvalidation-rmse:6.47998 \n", "[280]\tvalidation-rmse:6.47976 \n", "[281]\tvalidation-rmse:6.47959 \n", "[282]\tvalidation-rmse:6.47934 \n", "[283]\tvalidation-rmse:6.47902 \n", "[284]\tvalidation-rmse:6.47864 \n", "[285]\tvalidation-rmse:6.47837 \n", "[286]\tvalidation-rmse:6.47817 \n", "[287]\tvalidation-rmse:6.47791 \n", "[288]\tvalidation-rmse:6.47740 \n", "[289]\tvalidation-rmse:6.47727 \n", "[290]\tvalidation-rmse:6.47698 \n", "[291]\tvalidation-rmse:6.47667 \n", "[292]\tvalidation-rmse:6.47651 \n", "[293]\tvalidation-rmse:6.47644 \n", "[294]\tvalidation-rmse:6.47623 \n", "[295]\tvalidation-rmse:6.47594 \n", "[296]\tvalidation-rmse:6.47536 \n", "[297]\tvalidation-rmse:6.47505 \n", "[298]\tvalidation-rmse:6.47479 \n", "[299]\tvalidation-rmse:6.47449 \n", "[300]\tvalidation-rmse:6.47403 \n", "[301]\tvalidation-rmse:6.47383 \n", "[302]\tvalidation-rmse:6.47354 \n", "[303]\tvalidation-rmse:6.47320 \n", "[304]\tvalidation-rmse:6.47318 \n", "[305]\tvalidation-rmse:6.47302 \n", "[306]\tvalidation-rmse:6.47274 \n", "[307]\tvalidation-rmse:6.47279 \n", "[308]\tvalidation-rmse:6.47249 \n", "[309]\tvalidation-rmse:6.47222 \n", "[310]\tvalidation-rmse:6.47203 \n", "[311]\tvalidation-rmse:6.47193 \n", "[312]\tvalidation-rmse:6.47174 \n", "[313]\tvalidation-rmse:6.47163 \n", "[314]\tvalidation-rmse:6.47176 \n", "[315]\tvalidation-rmse:6.47150 \n", "[316]\tvalidation-rmse:6.47137 \n", "[317]\tvalidation-rmse:6.47136 \n", "[318]\tvalidation-rmse:6.47109 \n", "[319]\tvalidation-rmse:6.47095 \n", "[320]\tvalidation-rmse:6.47081 \n", "[321]\tvalidation-rmse:6.47056 \n", "[322]\tvalidation-rmse:6.47040 \n", "[323]\tvalidation-rmse:6.47031 \n", "[324]\tvalidation-rmse:6.47007 \n", "[325]\tvalidation-rmse:6.46987 \n", "[326]\tvalidation-rmse:6.46950 \n", "[327]\tvalidation-rmse:6.46933 \n", "[328]\tvalidation-rmse:6.46943 \n", "[329]\tvalidation-rmse:6.46925 \n", "[330]\tvalidation-rmse:6.46903 \n", "[331]\tvalidation-rmse:6.46888 \n", "[332]\tvalidation-rmse:6.46873 \n", "[333]\tvalidation-rmse:6.46844 \n", "[334]\tvalidation-rmse:6.46820 \n", "[335]\tvalidation-rmse:6.46826 \n", "[336]\tvalidation-rmse:6.46801 \n", "[337]\tvalidation-rmse:6.46782 \n", "[338]\tvalidation-rmse:6.46759 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46678 \n", "[341]\tvalidation-rmse:6.46653 \n", "[342]\tvalidation-rmse:6.46627 \n", "[343]\tvalidation-rmse:6.46626 \n", "[344]\tvalidation-rmse:6.46603 \n", "[345]\tvalidation-rmse:6.46592 \n", "[346]\tvalidation-rmse:6.46559 \n", "[347]\tvalidation-rmse:6.46536 \n", "[348]\tvalidation-rmse:6.46510 \n", "[349]\tvalidation-rmse:6.46502 \n", "[350]\tvalidation-rmse:6.46473 \n", "[351]\tvalidation-rmse:6.46451 \n", "[352]\tvalidation-rmse:6.46432 \n", "[353]\tvalidation-rmse:6.46422 \n", "[354]\tvalidation-rmse:6.46408 \n", "[355]\tvalidation-rmse:6.46397 \n", "[356]\tvalidation-rmse:6.46388 \n", "[357]\tvalidation-rmse:6.46389 \n", "[358]\tvalidation-rmse:6.46363 \n", "[359]\tvalidation-rmse:6.46335 \n", "[360]\tvalidation-rmse:6.46312 \n", "[361]\tvalidation-rmse:6.46278 \n", "[362]\tvalidation-rmse:6.46259 \n", "[363]\tvalidation-rmse:6.46240 \n", "[364]\tvalidation-rmse:6.46230 \n", "[365]\tvalidation-rmse:6.46211 \n", "[366]\tvalidation-rmse:6.46172 \n", "[367]\tvalidation-rmse:6.46149 \n", "[368]\tvalidation-rmse:6.46133 \n", "[369]\tvalidation-rmse:6.46092 \n", "[370]\tvalidation-rmse:6.46085 \n", "[371]\tvalidation-rmse:6.46056 \n", "[372]\tvalidation-rmse:6.46031 \n", "[373]\tvalidation-rmse:6.46010 \n", "[374]\tvalidation-rmse:6.45976 \n", "[375]\tvalidation-rmse:6.45969 \n", "[376]\tvalidation-rmse:6.45945 \n", "[377]\tvalidation-rmse:6.45917 \n", "[378]\tvalidation-rmse:6.45904 \n", "[379]\tvalidation-rmse:6.45898 \n", "[380]\tvalidation-rmse:6.45877 \n", "[381]\tvalidation-rmse:6.45852 \n", "[382]\tvalidation-rmse:6.45827 \n", "[383]\tvalidation-rmse:6.45801 \n", "[384]\tvalidation-rmse:6.45798 \n", "[385]\tvalidation-rmse:6.45796 \n", "[386]\tvalidation-rmse:6.45768 \n", "[387]\tvalidation-rmse:6.45749 \n", "[388]\tvalidation-rmse:6.45732 \n", "[389]\tvalidation-rmse:6.45712 \n", "[390]\tvalidation-rmse:6.45672 \n", "[391]\tvalidation-rmse:6.45663 \n", "[392]\tvalidation-rmse:6.45650 \n", "[393]\tvalidation-rmse:6.45639 \n", "[394]\tvalidation-rmse:6.45632 \n", "[395]\tvalidation-rmse:6.45635 \n", "[396]\tvalidation-rmse:6.45631 \n", "[397]\tvalidation-rmse:6.45609 \n", "[398]\tvalidation-rmse:6.45594 \n", "[399]\tvalidation-rmse:6.45577 \n", "[400]\tvalidation-rmse:6.45581 \n", "[401]\tvalidation-rmse:6.45573 \n", "[402]\tvalidation-rmse:6.45568 \n", "[403]\tvalidation-rmse:6.45561 \n", "[404]\tvalidation-rmse:6.45549 \n", "[405]\tvalidation-rmse:6.45528 \n", "[406]\tvalidation-rmse:6.45503 \n", "[407]\tvalidation-rmse:6.45483 \n", "[408]\tvalidation-rmse:6.45473 \n", "[409]\tvalidation-rmse:6.45466 \n", "[410]\tvalidation-rmse:6.45438 \n", "[411]\tvalidation-rmse:6.45418 \n", "[412]\tvalidation-rmse:6.45415 \n", "[413]\tvalidation-rmse:6.45389 \n", "[414]\tvalidation-rmse:6.45362 \n", "[415]\tvalidation-rmse:6.45365 \n", "[416]\tvalidation-rmse:6.45348 \n", "[417]\tvalidation-rmse:6.45362 \n", "[418]\tvalidation-rmse:6.45339 \n", "[419]\tvalidation-rmse:6.45326 \n", "[420]\tvalidation-rmse:6.45324 \n", "[421]\tvalidation-rmse:6.45314 \n", "[422]\tvalidation-rmse:6.45302 \n", "[423]\tvalidation-rmse:6.45322 \n", "[424]\tvalidation-rmse:6.45260 \n", "[425]\tvalidation-rmse:6.45242 \n", "[426]\tvalidation-rmse:6.45238 \n", "[427]\tvalidation-rmse:6.45227 \n", "[428]\tvalidation-rmse:6.45211 \n", "[429]\tvalidation-rmse:6.45190 \n", "[430]\tvalidation-rmse:6.45174 \n", "[431]\tvalidation-rmse:6.45159 \n", "[432]\tvalidation-rmse:6.45143 \n", "[433]\tvalidation-rmse:6.45131 \n", "[434]\tvalidation-rmse:6.45121 \n", "[435]\tvalidation-rmse:6.45104 \n", "[436]\tvalidation-rmse:6.45078 \n", "[437]\tvalidation-rmse:6.45059 \n", "[438]\tvalidation-rmse:6.45057 \n", "[439]\tvalidation-rmse:6.45051 \n", "[440]\tvalidation-rmse:6.45035 \n", "[441]\tvalidation-rmse:6.45028 \n", "[442]\tvalidation-rmse:6.45003 \n", "[443]\tvalidation-rmse:6.44988 \n", "[444]\tvalidation-rmse:6.44970 \n", "[445]\tvalidation-rmse:6.44953 \n", "[446]\tvalidation-rmse:6.44923 \n", "[447]\tvalidation-rmse:6.44920 \n", "[448]\tvalidation-rmse:6.44893 \n", "[449]\tvalidation-rmse:6.44892 \n", "[450]\tvalidation-rmse:6.44880 \n", "[451]\tvalidation-rmse:6.44869 \n", "[452]\tvalidation-rmse:6.44849 \n", "[453]\tvalidation-rmse:6.44828 \n", "[454]\tvalidation-rmse:6.44818 \n", "[455]\tvalidation-rmse:6.44815 \n", "[456]\tvalidation-rmse:6.44807 \n", "[457]\tvalidation-rmse:6.44779 \n", "[458]\tvalidation-rmse:6.44766 \n", "[459]\tvalidation-rmse:6.44745 \n", "[460]\tvalidation-rmse:6.44718 \n", "[461]\tvalidation-rmse:6.44708 \n", "[462]\tvalidation-rmse:6.44663 \n", "[463]\tvalidation-rmse:6.44645 \n", "[464]\tvalidation-rmse:6.44644 \n", "[465]\tvalidation-rmse:6.44630 \n", "[466]\tvalidation-rmse:6.44620 \n", "[467]\tvalidation-rmse:6.44611 \n", "[468]\tvalidation-rmse:6.44599 \n", "[469]\tvalidation-rmse:6.44581 \n", "[470]\tvalidation-rmse:6.44568 \n", "[471]\tvalidation-rmse:6.44552 \n", "[472]\tvalidation-rmse:6.44538 \n", "[473]\tvalidation-rmse:6.44548 \n", "[474]\tvalidation-rmse:6.44530 \n", "[475]\tvalidation-rmse:6.44514 \n", "[476]\tvalidation-rmse:6.44518 \n", "[477]\tvalidation-rmse:6.44513 \n", "[478]\tvalidation-rmse:6.44488 \n", "[479]\tvalidation-rmse:6.44462 \n", "[480]\tvalidation-rmse:6.44450 \n", "[481]\tvalidation-rmse:6.44443 \n", "[482]\tvalidation-rmse:6.44460 \n", "[483]\tvalidation-rmse:6.44432 \n", "[484]\tvalidation-rmse:6.44416 \n", "[485]\tvalidation-rmse:6.44399 \n", "[486]\tvalidation-rmse:6.44370 \n", "[487]\tvalidation-rmse:6.44369 \n", "[488]\tvalidation-rmse:6.44344 \n", "[489]\tvalidation-rmse:6.44330 \n", "[490]\tvalidation-rmse:6.44309 \n", "[491]\tvalidation-rmse:6.44296 \n", "[492]\tvalidation-rmse:6.44290 \n", "[493]\tvalidation-rmse:6.44271 \n", "[494]\tvalidation-rmse:6.44259 \n", "[495]\tvalidation-rmse:6.44247 \n", "[496]\tvalidation-rmse:6.44247 \n", "[497]\tvalidation-rmse:6.44250 \n", "[498]\tvalidation-rmse:6.44239 \n", "[499]\tvalidation-rmse:6.44233 \n", "[500]\tvalidation-rmse:6.44215 \n", "[501]\tvalidation-rmse:6.44199 \n", "[502]\tvalidation-rmse:6.44180 \n", "[503]\tvalidation-rmse:6.44173 \n", "[504]\tvalidation-rmse:6.44159 \n", "[505]\tvalidation-rmse:6.44155 \n", "[506]\tvalidation-rmse:6.44142 \n", "[507]\tvalidation-rmse:6.44143 \n", "[508]\tvalidation-rmse:6.44125 \n", "[509]\tvalidation-rmse:6.44109 \n", "[510]\tvalidation-rmse:6.44091 \n", "[511]\tvalidation-rmse:6.44075 \n", "[512]\tvalidation-rmse:6.44011 \n", "[513]\tvalidation-rmse:6.43992 \n", "[514]\tvalidation-rmse:6.43996 \n", "[515]\tvalidation-rmse:6.43992 \n", "[516]\tvalidation-rmse:6.43976 \n", "[517]\tvalidation-rmse:6.43955 \n", "[518]\tvalidation-rmse:6.43944 \n", "[519]\tvalidation-rmse:6.43959 \n", "[520]\tvalidation-rmse:6.43941 \n", "[521]\tvalidation-rmse:6.43922 \n", "[522]\tvalidation-rmse:6.43891 \n", "[523]\tvalidation-rmse:6.43891 \n", "[524]\tvalidation-rmse:6.43886 \n", "[525]\tvalidation-rmse:6.43885 \n", "[526]\tvalidation-rmse:6.43884 \n", "[527]\tvalidation-rmse:6.43871 \n", "[528]\tvalidation-rmse:6.43852 \n", "[529]\tvalidation-rmse:6.43829 \n", "[530]\tvalidation-rmse:6.43819 \n", "[531]\tvalidation-rmse:6.43803 \n", "[532]\tvalidation-rmse:6.43802 \n", "[533]\tvalidation-rmse:6.43796 \n", "[534]\tvalidation-rmse:6.43793 \n", "[535]\tvalidation-rmse:6.43790 \n", "[536]\tvalidation-rmse:6.43791 \n", "[537]\tvalidation-rmse:6.43777 \n", "[538]\tvalidation-rmse:6.43770 \n", "[539]\tvalidation-rmse:6.43764 \n", "[540]\tvalidation-rmse:6.43765 \n", "[541]\tvalidation-rmse:6.43763 \n", "[542]\tvalidation-rmse:6.43755 \n", "[543]\tvalidation-rmse:6.43740 \n", "[544]\tvalidation-rmse:6.43721 \n", "[545]\tvalidation-rmse:6.43704 \n", "[546]\tvalidation-rmse:6.43679 \n", "[547]\tvalidation-rmse:6.43666 \n", "[548]\tvalidation-rmse:6.43656 \n", "[549]\tvalidation-rmse:6.43647 \n", "[550]\tvalidation-rmse:6.43622 \n", "[551]\tvalidation-rmse:6.43622 \n", "[552]\tvalidation-rmse:6.43592 \n", "[553]\tvalidation-rmse:6.43577 \n", "[554]\tvalidation-rmse:6.43558 \n", "[555]\tvalidation-rmse:6.43546 \n", "[556]\tvalidation-rmse:6.43538 \n", "[557]\tvalidation-rmse:6.43521 \n", "[558]\tvalidation-rmse:6.43508 \n", "[559]\tvalidation-rmse:6.43502 \n", "[560]\tvalidation-rmse:6.43496 \n", "[561]\tvalidation-rmse:6.43484 \n", "[562]\tvalidation-rmse:6.43475 \n", "[563]\tvalidation-rmse:6.43467 \n", "[564]\tvalidation-rmse:6.43457 \n", "[565]\tvalidation-rmse:6.43422 \n", "[566]\tvalidation-rmse:6.43414 \n", "[567]\tvalidation-rmse:6.43406 \n", "[568]\tvalidation-rmse:6.43410 \n", "[569]\tvalidation-rmse:6.43389 \n", "[570]\tvalidation-rmse:6.43381 \n", "[571]\tvalidation-rmse:6.43346 \n", "[572]\tvalidation-rmse:6.43332 \n", "[573]\tvalidation-rmse:6.43325 \n", "[574]\tvalidation-rmse:6.43311 \n", "[575]\tvalidation-rmse:6.43307 \n", "[576]\tvalidation-rmse:6.43285 \n", "[577]\tvalidation-rmse:6.43283 \n", "[578]\tvalidation-rmse:6.43264 \n", "[579]\tvalidation-rmse:6.43263 \n", "[580]\tvalidation-rmse:6.43242 \n", "[581]\tvalidation-rmse:6.43222 \n", "[582]\tvalidation-rmse:6.43216 \n", "[583]\tvalidation-rmse:6.43212 \n", "[584]\tvalidation-rmse:6.43202 \n", "[585]\tvalidation-rmse:6.43217 \n", "[586]\tvalidation-rmse:6.43222 \n", "[587]\tvalidation-rmse:6.43212 \n", "[588]\tvalidation-rmse:6.43190 \n", "[589]\tvalidation-rmse:6.43174 \n", "[590]\tvalidation-rmse:6.43139 \n", "[591]\tvalidation-rmse:6.43135 \n", "[592]\tvalidation-rmse:6.43139 \n", "[593]\tvalidation-rmse:6.43121 \n", "[594]\tvalidation-rmse:6.43088 \n", "[595]\tvalidation-rmse:6.43072 \n", "[596]\tvalidation-rmse:6.43047 \n", "[597]\tvalidation-rmse:6.43041 \n", "[598]\tvalidation-rmse:6.43032 \n", "[599]\tvalidation-rmse:6.43027 \n", "[600]\tvalidation-rmse:6.43007 \n", "[601]\tvalidation-rmse:6.43001 \n", "[602]\tvalidation-rmse:6.42985 \n", "[603]\tvalidation-rmse:6.42970 \n", "[604]\tvalidation-rmse:6.42964 \n", "[605]\tvalidation-rmse:6.42954 \n", "[606]\tvalidation-rmse:6.42945 \n", "[607]\tvalidation-rmse:6.42930 \n", "[608]\tvalidation-rmse:6.42916 \n", "[609]\tvalidation-rmse:6.42919 \n", "[610]\tvalidation-rmse:6.42906 \n", "[611]\tvalidation-rmse:6.42910 \n", "[612]\tvalidation-rmse:6.42906 \n", "[613]\tvalidation-rmse:6.42912 \n", "[614]\tvalidation-rmse:6.42924 \n", "[615]\tvalidation-rmse:6.42884 \n", "[616]\tvalidation-rmse:6.42874 \n", "[617]\tvalidation-rmse:6.42867 \n", "[618]\tvalidation-rmse:6.42854 \n", "[619]\tvalidation-rmse:6.42849 \n", "[620]\tvalidation-rmse:6.42844 \n", "[621]\tvalidation-rmse:6.42850 \n", "[622]\tvalidation-rmse:6.42826 \n", "[623]\tvalidation-rmse:6.42813 \n", "[624]\tvalidation-rmse:6.42812 \n", "[625]\tvalidation-rmse:6.42803 \n", "[626]\tvalidation-rmse:6.42809 \n", "[627]\tvalidation-rmse:6.42806 \n", "[628]\tvalidation-rmse:6.42802 \n", "[629]\tvalidation-rmse:6.42799 \n", "[630]\tvalidation-rmse:6.42789 \n", "[631]\tvalidation-rmse:6.42758 \n", "[632]\tvalidation-rmse:6.42736 \n", "[633]\tvalidation-rmse:6.42744 \n", "[634]\tvalidation-rmse:6.42736 \n", "[635]\tvalidation-rmse:6.42738 \n", "[636]\tvalidation-rmse:6.42726 \n", "[637]\tvalidation-rmse:6.42713 \n", "[638]\tvalidation-rmse:6.42690 \n", "[639]\tvalidation-rmse:6.42693 \n", "[640]\tvalidation-rmse:6.42667 \n", "[641]\tvalidation-rmse:6.42642 \n", "[642]\tvalidation-rmse:6.42639 \n", "[643]\tvalidation-rmse:6.42631 \n", "[644]\tvalidation-rmse:6.42618 \n", "[645]\tvalidation-rmse:6.42616 \n", "[646]\tvalidation-rmse:6.42612 \n", "[647]\tvalidation-rmse:6.42603 \n", "[648]\tvalidation-rmse:6.42590 \n", "[649]\tvalidation-rmse:6.42578 \n", "[650]\tvalidation-rmse:6.42574 \n", "[651]\tvalidation-rmse:6.42560 \n", "[652]\tvalidation-rmse:6.42550 \n", "[653]\tvalidation-rmse:6.42561 \n", "[654]\tvalidation-rmse:6.42552 \n", "[655]\tvalidation-rmse:6.42542 \n", "[656]\tvalidation-rmse:6.42521 \n", "[657]\tvalidation-rmse:6.42510 \n", "[658]\tvalidation-rmse:6.42503 \n", "[659]\tvalidation-rmse:6.42510 \n", "[660]\tvalidation-rmse:6.42514 \n", "[661]\tvalidation-rmse:6.42516 \n", "[662]\tvalidation-rmse:6.42507 \n", "[663]\tvalidation-rmse:6.42511 \n", "[664]\tvalidation-rmse:6.42495 \n", "[665]\tvalidation-rmse:6.42478 \n", "[666]\tvalidation-rmse:6.42463 \n", "[667]\tvalidation-rmse:6.42450 \n", "[668]\tvalidation-rmse:6.42442 \n", "[669]\tvalidation-rmse:6.42430 \n", "[670]\tvalidation-rmse:6.42436 \n", "[671]\tvalidation-rmse:6.42437 \n", "[672]\tvalidation-rmse:6.42412 \n", "[673]\tvalidation-rmse:6.42397 \n", "[674]\tvalidation-rmse:6.42391 \n", "[675]\tvalidation-rmse:6.42383 \n", "[676]\tvalidation-rmse:6.42387 \n", "[677]\tvalidation-rmse:6.42398 \n", "[678]\tvalidation-rmse:6.42413 \n", "[679]\tvalidation-rmse:6.42412 \n", "[680]\tvalidation-rmse:6.42395 \n", "[681]\tvalidation-rmse:6.42373 \n", "[682]\tvalidation-rmse:6.42367 \n", "[683]\tvalidation-rmse:6.42356 \n", "[684]\tvalidation-rmse:6.42343 \n", "[685]\tvalidation-rmse:6.42326 \n", "[686]\tvalidation-rmse:6.42313 \n", "[687]\tvalidation-rmse:6.42310 \n", "[688]\tvalidation-rmse:6.42290 \n", "[689]\tvalidation-rmse:6.42288 \n", "[690]\tvalidation-rmse:6.42286 \n", "[691]\tvalidation-rmse:6.42274 \n", "[692]\tvalidation-rmse:6.42264 \n", "[693]\tvalidation-rmse:6.42250 \n", "[694]\tvalidation-rmse:6.42247 \n", "[695]\tvalidation-rmse:6.42241 \n", "[696]\tvalidation-rmse:6.42239 \n", "[697]\tvalidation-rmse:6.42236 \n", "[698]\tvalidation-rmse:6.42220 \n", "[699]\tvalidation-rmse:6.42207 \n", "[700]\tvalidation-rmse:6.42185 \n", "[701]\tvalidation-rmse:6.42177 \n", "[702]\tvalidation-rmse:6.42163 \n", "[703]\tvalidation-rmse:6.42146 \n", "[704]\tvalidation-rmse:6.42136 \n", "[705]\tvalidation-rmse:6.42119 \n", "[706]\tvalidation-rmse:6.42105 \n", "[707]\tvalidation-rmse:6.42103 \n", "[708]\tvalidation-rmse:6.42097 \n", "[709]\tvalidation-rmse:6.42084 \n", "[710]\tvalidation-rmse:6.42075 \n", "[711]\tvalidation-rmse:6.42080 \n", "[712]\tvalidation-rmse:6.42076 \n", "[713]\tvalidation-rmse:6.42073 \n", "[714]\tvalidation-rmse:6.42059 \n", "[715]\tvalidation-rmse:6.42053 \n", "[716]\tvalidation-rmse:6.42043 \n", "[717]\tvalidation-rmse:6.42028 \n", "[718]\tvalidation-rmse:6.42023 \n", "[719]\tvalidation-rmse:6.42017 \n", "[720]\tvalidation-rmse:6.42005 \n", "[721]\tvalidation-rmse:6.41998 \n", "[722]\tvalidation-rmse:6.41987 \n", "[723]\tvalidation-rmse:6.42005 \n", "[724]\tvalidation-rmse:6.41961 \n", "[725]\tvalidation-rmse:6.41963 \n", "[726]\tvalidation-rmse:6.41949 \n", "[727]\tvalidation-rmse:6.41943 \n", "[728]\tvalidation-rmse:6.41957 \n", "[729]\tvalidation-rmse:6.41936 \n", "[730]\tvalidation-rmse:6.41931 \n", "[731]\tvalidation-rmse:6.41932 \n", "[732]\tvalidation-rmse:6.41912 \n", "[733]\tvalidation-rmse:6.41911 \n", "[734]\tvalidation-rmse:6.41919 \n", "[735]\tvalidation-rmse:6.41914 \n", "[736]\tvalidation-rmse:6.41898 \n", "[737]\tvalidation-rmse:6.41901 \n", "[738]\tvalidation-rmse:6.41903 \n", "[739]\tvalidation-rmse:6.41894 \n", "[740]\tvalidation-rmse:6.41879 \n", "[741]\tvalidation-rmse:6.41855 \n", "[742]\tvalidation-rmse:6.41852 \n", "[743]\tvalidation-rmse:6.41846 \n", "[744]\tvalidation-rmse:6.41837 \n", "[745]\tvalidation-rmse:6.41828 \n", "[746]\tvalidation-rmse:6.41822 \n", "[747]\tvalidation-rmse:6.41808 \n", "[748]\tvalidation-rmse:6.41791 \n", "[749]\tvalidation-rmse:6.41782 \n", "[750]\tvalidation-rmse:6.41776 \n", "[751]\tvalidation-rmse:6.41763 \n", "[752]\tvalidation-rmse:6.41752 \n", "[753]\tvalidation-rmse:6.41750 \n", "[754]\tvalidation-rmse:6.41758 \n", "[755]\tvalidation-rmse:6.41758 \n", "[756]\tvalidation-rmse:6.41762 \n", "[757]\tvalidation-rmse:6.41765 \n", "[758]\tvalidation-rmse:6.41761 \n", "[759]\tvalidation-rmse:6.41764 \n", "[760]\tvalidation-rmse:6.41765 \n", "[761]\tvalidation-rmse:6.41756 \n", "[762]\tvalidation-rmse:6.41753 \n", "[763]\tvalidation-rmse:6.41757 \n", "[764]\tvalidation-rmse:6.41746 \n", "[765]\tvalidation-rmse:6.41736 \n", "[766]\tvalidation-rmse:6.41724 \n", "[767]\tvalidation-rmse:6.41718 \n", "[768]\tvalidation-rmse:6.41687 \n", "[769]\tvalidation-rmse:6.41679 \n", "[770]\tvalidation-rmse:6.41663 \n", "[771]\tvalidation-rmse:6.41670 \n", "[772]\tvalidation-rmse:6.41664 \n", "[773]\tvalidation-rmse:6.41651 \n", "[774]\tvalidation-rmse:6.41647 \n", "[775]\tvalidation-rmse:6.41633 \n", "[776]\tvalidation-rmse:6.41627 \n", "[777]\tvalidation-rmse:6.41610 \n", "[778]\tvalidation-rmse:6.41572 \n", "[779]\tvalidation-rmse:6.41576 \n", "[780]\tvalidation-rmse:6.41557 \n", "[781]\tvalidation-rmse:6.41545 \n", "[782]\tvalidation-rmse:6.41531 \n", "[783]\tvalidation-rmse:6.41533 \n", "[784]\tvalidation-rmse:6.41524 \n", "[785]\tvalidation-rmse:6.41522 \n", "[786]\tvalidation-rmse:6.41507 \n", "[787]\tvalidation-rmse:6.41495 \n", "[788]\tvalidation-rmse:6.41485 \n", "[789]\tvalidation-rmse:6.41484 \n", "[790]\tvalidation-rmse:6.41480 \n", "[791]\tvalidation-rmse:6.41477 \n", "[792]\tvalidation-rmse:6.41474 \n", "[793]\tvalidation-rmse:6.41471 \n", "[794]\tvalidation-rmse:6.41474 \n", "[795]\tvalidation-rmse:6.41473 \n", "[796]\tvalidation-rmse:6.41458 \n", "[797]\tvalidation-rmse:6.41453 \n", "[798]\tvalidation-rmse:6.41441 \n", "[799]\tvalidation-rmse:6.41435 \n", "[800]\tvalidation-rmse:6.41430 \n", "[801]\tvalidation-rmse:6.41403 \n", "[802]\tvalidation-rmse:6.41396 \n", "[803]\tvalidation-rmse:6.41379 \n", "[804]\tvalidation-rmse:6.41378 \n", "[805]\tvalidation-rmse:6.41378 \n", "[806]\tvalidation-rmse:6.41362 \n", "[807]\tvalidation-rmse:6.41359 \n", "[808]\tvalidation-rmse:6.41354 \n", "[809]\tvalidation-rmse:6.41354 \n", "[810]\tvalidation-rmse:6.41345 \n", "[811]\tvalidation-rmse:6.41323 \n", "[812]\tvalidation-rmse:6.41307 \n", "[813]\tvalidation-rmse:6.41298 \n", "[814]\tvalidation-rmse:6.41305 \n", "[815]\tvalidation-rmse:6.41304 \n", "[816]\tvalidation-rmse:6.41299 \n", "[817]\tvalidation-rmse:6.41285 \n", "[818]\tvalidation-rmse:6.41275 \n", "[819]\tvalidation-rmse:6.41267 \n", "[820]\tvalidation-rmse:6.41274 \n", "[821]\tvalidation-rmse:6.41262 \n", "[822]\tvalidation-rmse:6.41247 \n", "[823]\tvalidation-rmse:6.41234 \n", "[824]\tvalidation-rmse:6.41230 \n", "[825]\tvalidation-rmse:6.41216 \n", "[826]\tvalidation-rmse:6.41212 \n", "[827]\tvalidation-rmse:6.41200 \n", "[828]\tvalidation-rmse:6.41184 \n", "[829]\tvalidation-rmse:6.41168 \n", "[830]\tvalidation-rmse:6.41165 \n", "[831]\tvalidation-rmse:6.41161 \n", "[832]\tvalidation-rmse:6.41150 \n", "[833]\tvalidation-rmse:6.41131 \n", "[834]\tvalidation-rmse:6.41132 \n", "[835]\tvalidation-rmse:6.41139 \n", "[836]\tvalidation-rmse:6.41136 \n", "[837]\tvalidation-rmse:6.41136 \n", "[838]\tvalidation-rmse:6.41129 \n", "[839]\tvalidation-rmse:6.41112 \n", "[840]\tvalidation-rmse:6.41094 \n", "[841]\tvalidation-rmse:6.41087 \n", "[842]\tvalidation-rmse:6.41079 \n", "[843]\tvalidation-rmse:6.41073 \n", "[844]\tvalidation-rmse:6.41075 \n", "[845]\tvalidation-rmse:6.41082 \n", "[846]\tvalidation-rmse:6.41076 \n", "[847]\tvalidation-rmse:6.41064 \n", "[848]\tvalidation-rmse:6.41054 \n", "[849]\tvalidation-rmse:6.41096 \n", "[850]\tvalidation-rmse:6.41077 \n", "[851]\tvalidation-rmse:6.41075 \n", "[852]\tvalidation-rmse:6.41059 \n", "[853]\tvalidation-rmse:6.41060 \n", "[854]\tvalidation-rmse:6.41050 \n", "[855]\tvalidation-rmse:6.41052 \n", "[856]\tvalidation-rmse:6.41050 \n", "[857]\tvalidation-rmse:6.41034 \n", "[858]\tvalidation-rmse:6.41041 \n", "[859]\tvalidation-rmse:6.41028 \n", "[860]\tvalidation-rmse:6.41025 \n", "[861]\tvalidation-rmse:6.41015 \n", "[862]\tvalidation-rmse:6.41003 \n", "[863]\tvalidation-rmse:6.41012 \n", "[864]\tvalidation-rmse:6.41003 \n", "[865]\tvalidation-rmse:6.40980 \n", "[866]\tvalidation-rmse:6.40974 \n", "[867]\tvalidation-rmse:6.40971 \n", "[868]\tvalidation-rmse:6.40982 \n", "[869]\tvalidation-rmse:6.40981 \n", "[870]\tvalidation-rmse:6.40970 \n", "[871]\tvalidation-rmse:6.40961 \n", "[872]\tvalidation-rmse:6.40958 \n", "[873]\tvalidation-rmse:6.40942 \n", "[874]\tvalidation-rmse:6.40927 \n", "[875]\tvalidation-rmse:6.40924 \n", "[876]\tvalidation-rmse:6.40911 \n", "[877]\tvalidation-rmse:6.40906 \n", "[878]\tvalidation-rmse:6.40903 \n", "[879]\tvalidation-rmse:6.40891 \n", "[880]\tvalidation-rmse:6.40884 \n", "[881]\tvalidation-rmse:6.40869 \n", "[882]\tvalidation-rmse:6.40853 \n", "[883]\tvalidation-rmse:6.40854 \n", "[884]\tvalidation-rmse:6.40854 \n", "[885]\tvalidation-rmse:6.40847 \n", "[886]\tvalidation-rmse:6.40843 \n", "[887]\tvalidation-rmse:6.40861 \n", "[888]\tvalidation-rmse:6.40872 \n", "[889]\tvalidation-rmse:6.40874 \n", "[890]\tvalidation-rmse:6.40881 \n", "[891]\tvalidation-rmse:6.40871 \n", "[892]\tvalidation-rmse:6.40870 \n", "[893]\tvalidation-rmse:6.40863 \n", "[894]\tvalidation-rmse:6.40862 \n", "[895]\tvalidation-rmse:6.40858 \n", "[896]\tvalidation-rmse:6.40859 \n", "[897]\tvalidation-rmse:6.40842 \n", "[898]\tvalidation-rmse:6.40830 \n", "[899]\tvalidation-rmse:6.40836 \n", "[900]\tvalidation-rmse:6.40827 \n", "[901]\tvalidation-rmse:6.40831 \n", "[902]\tvalidation-rmse:6.40819 \n", "[903]\tvalidation-rmse:6.40807 \n", "[904]\tvalidation-rmse:6.40814 \n", "[905]\tvalidation-rmse:6.40820 \n", "[906]\tvalidation-rmse:6.40819 \n", "[907]\tvalidation-rmse:6.40800 \n", "[908]\tvalidation-rmse:6.40798 \n", "[909]\tvalidation-rmse:6.40801 \n", "[910]\tvalidation-rmse:6.40790 \n", "[911]\tvalidation-rmse:6.40794 \n", "[912]\tvalidation-rmse:6.40786 \n", "[913]\tvalidation-rmse:6.40793 \n", "[914]\tvalidation-rmse:6.40797 \n", "[915]\tvalidation-rmse:6.40796 \n", "[916]\tvalidation-rmse:6.40802 \n", "[917]\tvalidation-rmse:6.40812 \n", "[918]\tvalidation-rmse:6.40807 \n", "[919]\tvalidation-rmse:6.40812 \n", "[920]\tvalidation-rmse:6.40817 \n", "[921]\tvalidation-rmse:6.40808 \n", "[922]\tvalidation-rmse:6.40806 \n", "[923]\tvalidation-rmse:6.40794 \n", "[924]\tvalidation-rmse:6.40789 \n", "[925]\tvalidation-rmse:6.40787 \n", "[926]\tvalidation-rmse:6.40790 \n", "[927]\tvalidation-rmse:6.40787 \n", "[928]\tvalidation-rmse:6.40796 \n", "[929]\tvalidation-rmse:6.40786 \n", "[930]\tvalidation-rmse:6.40779 \n", "[931]\tvalidation-rmse:6.40784 \n", "[932]\tvalidation-rmse:6.40772 \n", "[933]\tvalidation-rmse:6.40752 \n", "[934]\tvalidation-rmse:6.40739 \n", "[935]\tvalidation-rmse:6.40757 \n", "[936]\tvalidation-rmse:6.40768 \n", "[937]\tvalidation-rmse:6.40757 \n", "[938]\tvalidation-rmse:6.40734 \n", "[939]\tvalidation-rmse:6.40725 \n", "[940]\tvalidation-rmse:6.40726 \n", "[941]\tvalidation-rmse:6.40713 \n", "[942]\tvalidation-rmse:6.40707 \n", "[943]\tvalidation-rmse:6.40690 \n", "[944]\tvalidation-rmse:6.40694 \n", "[945]\tvalidation-rmse:6.40685 \n", "[946]\tvalidation-rmse:6.40675 \n", "[947]\tvalidation-rmse:6.40660 \n", "[948]\tvalidation-rmse:6.40652 \n", "[949]\tvalidation-rmse:6.40641 \n", "[950]\tvalidation-rmse:6.40638 \n", "[951]\tvalidation-rmse:6.40628 \n", "[952]\tvalidation-rmse:6.40622 \n", "[953]\tvalidation-rmse:6.40620 \n", "[954]\tvalidation-rmse:6.40611 \n", "[955]\tvalidation-rmse:6.40618 \n", "[956]\tvalidation-rmse:6.40622 \n", "[957]\tvalidation-rmse:6.40628 \n", "[958]\tvalidation-rmse:6.40621 \n", "[959]\tvalidation-rmse:6.40620 \n", "[960]\tvalidation-rmse:6.40607 \n", "[961]\tvalidation-rmse:6.40599 \n", "[962]\tvalidation-rmse:6.40590 \n", "[963]\tvalidation-rmse:6.40590 \n", "[964]\tvalidation-rmse:6.40582 \n", "[965]\tvalidation-rmse:6.40567 \n", "[966]\tvalidation-rmse:6.40549 \n", "[967]\tvalidation-rmse:6.40542 \n", "[968]\tvalidation-rmse:6.40532 \n", "[969]\tvalidation-rmse:6.40547 \n", "[970]\tvalidation-rmse:6.40530 \n", "[971]\tvalidation-rmse:6.40515 \n", "[972]\tvalidation-rmse:6.40511 \n", "[973]\tvalidation-rmse:6.40507 \n", "[974]\tvalidation-rmse:6.40511 \n", "[975]\tvalidation-rmse:6.40496 \n", "[976]\tvalidation-rmse:6.40491 \n", "[977]\tvalidation-rmse:6.40479 \n", "[978]\tvalidation-rmse:6.40474 \n", "[979]\tvalidation-rmse:6.40467 \n", "[980]\tvalidation-rmse:6.40461 \n", "[981]\tvalidation-rmse:6.40446 \n", "[982]\tvalidation-rmse:6.40448 \n", "[983]\tvalidation-rmse:6.40444 \n", "[984]\tvalidation-rmse:6.40437 \n", "[985]\tvalidation-rmse:6.40429 \n", "[986]\tvalidation-rmse:6.40416 \n", "[987]\tvalidation-rmse:6.40405 \n", "[988]\tvalidation-rmse:6.40407 \n", "[989]\tvalidation-rmse:6.40392 \n", "[990]\tvalidation-rmse:6.40387 \n", "[991]\tvalidation-rmse:6.40381 \n", "[992]\tvalidation-rmse:6.40376 \n", "[993]\tvalidation-rmse:6.40371 \n", "[994]\tvalidation-rmse:6.40376 \n", "[995]\tvalidation-rmse:6.40368 \n", "[996]\tvalidation-rmse:6.40364 \n", "[997]\tvalidation-rmse:6.40373 \n", "[998]\tvalidation-rmse:6.40378 \n", "[999]\tvalidation-rmse:6.40377 \n", "[12:52:36] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:17.94108 \n", "[1]\tvalidation-rmse:15.35056 \n", "[2]\tvalidation-rmse:13.30333 \n", "[3]\tvalidation-rmse:11.70191 \n", "[4]\tvalidation-rmse:10.46186 \n", "[5]\tvalidation-rmse:9.51512 \n", "[6]\tvalidation-rmse:8.79783 \n", "[7]\tvalidation-rmse:8.26185 \n", "[8]\tvalidation-rmse:7.86080 \n", "[9]\tvalidation-rmse:7.55922 \n", "[10]\tvalidation-rmse:7.33751 \n", "[11]\tvalidation-rmse:7.16949 \n", "[12]\tvalidation-rmse:7.04291 \n", "[13]\tvalidation-rmse:6.94846 \n", "[14]\tvalidation-rmse:6.87611 \n", "[15]\tvalidation-rmse:6.82031 \n", "[16]\tvalidation-rmse:6.77759 \n", "[17]\tvalidation-rmse:6.74460 \n", "[18]\tvalidation-rmse:6.71862 \n", "[19]\tvalidation-rmse:6.69631 \n", "[20]\tvalidation-rmse:6.68054 \n", "[21]\tvalidation-rmse:6.66439 \n", "[22]\tvalidation-rmse:6.65130 \n", "[23]\tvalidation-rmse:6.64139 \n", "[24]\tvalidation-rmse:6.63414 \n", "[25]\tvalidation-rmse:6.62747 \n", "[26]\tvalidation-rmse:6.62146 \n", "[27]\tvalidation-rmse:6.61619 \n", "[28]\tvalidation-rmse:6.61236 \n", "[29]\tvalidation-rmse:6.60878 \n", "[30]\tvalidation-rmse:6.60620 \n", "[31]\tvalidation-rmse:6.60375 \n", "[32]\tvalidation-rmse:6.60168 \n", "[33]\tvalidation-rmse:6.59983 \n", "[34]\tvalidation-rmse:6.59726 \n", "[35]\tvalidation-rmse:6.59536 \n", "[36]\tvalidation-rmse:6.59404 \n", "[37]\tvalidation-rmse:6.59236 \n", "[38]\tvalidation-rmse:6.58979 \n", "[39]\tvalidation-rmse:6.58934 \n", "[40]\tvalidation-rmse:6.58847 \n", "[41]\tvalidation-rmse:6.58655 \n", "[42]\tvalidation-rmse:6.58605 \n", "[43]\tvalidation-rmse:6.58447 \n", "[44]\tvalidation-rmse:6.58387 \n", "[45]\tvalidation-rmse:6.58373 \n", "[46]\tvalidation-rmse:6.58309 \n", "[47]\tvalidation-rmse:6.58226 \n", "[48]\tvalidation-rmse:6.58192 \n", "[49]\tvalidation-rmse:6.58111 \n", "[50]\tvalidation-rmse:6.58036 \n", "[51]\tvalidation-rmse:6.58006 \n", "[52]\tvalidation-rmse:6.57954 \n", "[53]\tvalidation-rmse:6.57922 \n", "[54]\tvalidation-rmse:6.57939 \n", "[55]\tvalidation-rmse:6.57887 \n", "[56]\tvalidation-rmse:6.57852 \n", "[57]\tvalidation-rmse:6.57828 \n", "[58]\tvalidation-rmse:6.57819 \n", "[59]\tvalidation-rmse:6.57798 \n", "[60]\tvalidation-rmse:6.57761 \n", "[61]\tvalidation-rmse:6.57718 \n", "[62]\tvalidation-rmse:6.57737 \n", "[63]\tvalidation-rmse:6.57693 \n", "[64]\tvalidation-rmse:6.57667 \n", "[65]\tvalidation-rmse:6.57668 \n", "[66]\tvalidation-rmse:6.57655 \n", "[67]\tvalidation-rmse:6.57592 \n", "[68]\tvalidation-rmse:6.57586 \n", "[69]\tvalidation-rmse:6.57580 \n", "[70]\tvalidation-rmse:6.57557 \n", "[71]\tvalidation-rmse:6.57503 \n", "[72]\tvalidation-rmse:6.57480 \n", "[73]\tvalidation-rmse:6.57451 \n", "[74]\tvalidation-rmse:6.57444 \n", "[75]\tvalidation-rmse:6.57416 \n", "[76]\tvalidation-rmse:6.57395 \n", "[77]\tvalidation-rmse:6.57409 \n", "[78]\tvalidation-rmse:6.57386 \n", "[79]\tvalidation-rmse:6.57376 \n", "[80]\tvalidation-rmse:6.57371 \n", "[81]\tvalidation-rmse:6.57396 \n", "[82]\tvalidation-rmse:6.57394 \n", "[83]\tvalidation-rmse:6.57384 \n", "[84]\tvalidation-rmse:6.57330 \n", "[85]\tvalidation-rmse:6.57341 \n", "[86]\tvalidation-rmse:6.57348 \n", "[87]\tvalidation-rmse:6.57336 \n", "[88]\tvalidation-rmse:6.57301 \n", "[89]\tvalidation-rmse:6.57328 \n", "[90]\tvalidation-rmse:6.57317 \n", "[91]\tvalidation-rmse:6.57330 \n", "[92]\tvalidation-rmse:6.57307 \n", "[93]\tvalidation-rmse:6.57308 \n", "[94]\tvalidation-rmse:6.57300 \n", "[95]\tvalidation-rmse:6.57312 \n", "[96]\tvalidation-rmse:6.57313 \n", "[97]\tvalidation-rmse:6.57338 \n", "[98]\tvalidation-rmse:6.57325 \n", "[99]\tvalidation-rmse:6.57339 \n", "[100]\tvalidation-rmse:6.57365 \n", "[101]\tvalidation-rmse:6.57373 \n", "[102]\tvalidation-rmse:6.57351 \n", "[103]\tvalidation-rmse:6.57366 \n", "[104]\tvalidation-rmse:6.57364 \n", "[105]\tvalidation-rmse:6.57370 \n", "[106]\tvalidation-rmse:6.57341 \n", "[107]\tvalidation-rmse:6.57337 \n", "[108]\tvalidation-rmse:6.57306 \n", "[109]\tvalidation-rmse:6.57296 \n", "[110]\tvalidation-rmse:6.57288 \n", "[111]\tvalidation-rmse:6.57306 \n", "[112]\tvalidation-rmse:6.57291 \n", "[113]\tvalidation-rmse:6.57278 \n", "[114]\tvalidation-rmse:6.57330 \n", "[115]\tvalidation-rmse:6.57340 \n", "[116]\tvalidation-rmse:6.57348 \n", "[117]\tvalidation-rmse:6.57357 \n", "[118]\tvalidation-rmse:6.57343 \n", "[119]\tvalidation-rmse:6.57337 \n", "[120]\tvalidation-rmse:6.57481 \n", "[121]\tvalidation-rmse:6.57492 \n", "[122]\tvalidation-rmse:6.57491 \n", "[123]\tvalidation-rmse:6.57608 \n", "[124]\tvalidation-rmse:6.57611 \n", "[125]\tvalidation-rmse:6.57599 \n", "[126]\tvalidation-rmse:6.57585 \n", "[127]\tvalidation-rmse:6.57588 \n", "[128]\tvalidation-rmse:6.57638 \n", "[129]\tvalidation-rmse:6.57663 \n", "[130]\tvalidation-rmse:6.57724 \n", "[131]\tvalidation-rmse:6.57719 \n", "[132]\tvalidation-rmse:6.57766 \n", "[133]\tvalidation-rmse:6.57792 \n", "[134]\tvalidation-rmse:6.57794 \n", "[135]\tvalidation-rmse:6.57771 \n", "[136]\tvalidation-rmse:6.57767 \n", "[137]\tvalidation-rmse:6.57765 \n", "[138]\tvalidation-rmse:6.57737 \n", "[139]\tvalidation-rmse:6.57765 \n", "[140]\tvalidation-rmse:6.57785 \n", "[141]\tvalidation-rmse:6.57771 \n", "[142]\tvalidation-rmse:6.57790 \n", "[143]\tvalidation-rmse:6.57790 \n", "[144]\tvalidation-rmse:6.57799 \n", "[145]\tvalidation-rmse:6.57785 \n", "[146]\tvalidation-rmse:6.57788 \n", "[147]\tvalidation-rmse:6.57806 \n", "[148]\tvalidation-rmse:6.57785 \n", "[149]\tvalidation-rmse:6.57797 \n", "[150]\tvalidation-rmse:6.57810 \n", "[151]\tvalidation-rmse:6.57798 \n", "[152]\tvalidation-rmse:6.57789 \n", "[153]\tvalidation-rmse:6.57765 \n", "[154]\tvalidation-rmse:6.57758 \n", "[155]\tvalidation-rmse:6.57762 \n", "[156]\tvalidation-rmse:6.57775 \n", "[157]\tvalidation-rmse:6.57782 \n", "[158]\tvalidation-rmse:6.57752 \n", "[159]\tvalidation-rmse:6.57786 \n", "[160]\tvalidation-rmse:6.57755 \n", "[161]\tvalidation-rmse:6.57759 \n", "[162]\tvalidation-rmse:6.57766 \n", "[12:53:21] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.25579 \n", "[1]\tvalidation-rmse:17.55159 \n", "[2]\tvalidation-rmse:16.05608 \n", "[3]\tvalidation-rmse:14.74722 \n", "[4]\tvalidation-rmse:13.60444 \n", "[5]\tvalidation-rmse:12.61101 \n", "[6]\tvalidation-rmse:11.74958 \n", "[7]\tvalidation-rmse:11.00629 \n", "[8]\tvalidation-rmse:10.36656 \n", "[9]\tvalidation-rmse:9.81799 \n", "[10]\tvalidation-rmse:9.34750 \n", "[11]\tvalidation-rmse:8.94800 \n", "[12]\tvalidation-rmse:8.60891 \n", "[13]\tvalidation-rmse:8.32142 \n", "[14]\tvalidation-rmse:8.07884 \n", "[15]\tvalidation-rmse:7.87275 \n", "[16]\tvalidation-rmse:7.69898 \n", "[17]\tvalidation-rmse:7.55054 \n", "[18]\tvalidation-rmse:7.42583 \n", "[19]\tvalidation-rmse:7.31965 \n", "[20]\tvalidation-rmse:7.23054 \n", "[21]\tvalidation-rmse:7.15510 \n", "[22]\tvalidation-rmse:7.09130 \n", "[23]\tvalidation-rmse:7.03673 \n", "[24]\tvalidation-rmse:6.98919 \n", "[25]\tvalidation-rmse:6.94829 \n", "[26]\tvalidation-rmse:6.91340 \n", "[27]\tvalidation-rmse:6.88201 \n", "[28]\tvalidation-rmse:6.85475 \n", "[29]\tvalidation-rmse:6.83227 \n", "[30]\tvalidation-rmse:6.81223 \n", "[31]\tvalidation-rmse:6.79430 \n", "[32]\tvalidation-rmse:6.77975 \n", "[33]\tvalidation-rmse:6.76632 \n", "[34]\tvalidation-rmse:6.75432 \n", "[35]\tvalidation-rmse:6.74362 \n", "[36]\tvalidation-rmse:6.73448 \n", "[37]\tvalidation-rmse:6.72633 \n", "[38]\tvalidation-rmse:6.71950 \n", "[39]\tvalidation-rmse:6.71268 \n", "[40]\tvalidation-rmse:6.70673 \n", "[41]\tvalidation-rmse:6.70168 \n", "[42]\tvalidation-rmse:6.69643 \n", "[43]\tvalidation-rmse:6.69182 \n", "[44]\tvalidation-rmse:6.68765 \n", "[45]\tvalidation-rmse:6.68435 \n", "[46]\tvalidation-rmse:6.68143 \n", "[47]\tvalidation-rmse:6.67812 \n", "[48]\tvalidation-rmse:6.67592 \n", "[49]\tvalidation-rmse:6.67364 \n", "[50]\tvalidation-rmse:6.67115 \n", "[51]\tvalidation-rmse:6.66912 \n", "[52]\tvalidation-rmse:6.66720 \n", "[53]\tvalidation-rmse:6.66570 \n", "[54]\tvalidation-rmse:6.66455 \n", "[55]\tvalidation-rmse:6.66322 \n", "[56]\tvalidation-rmse:6.66211 \n", "[57]\tvalidation-rmse:6.66127 \n", "[58]\tvalidation-rmse:6.66037 \n", "[59]\tvalidation-rmse:6.65954 \n", "[60]\tvalidation-rmse:6.65891 \n", "[61]\tvalidation-rmse:6.65830 \n", "[62]\tvalidation-rmse:6.65762 \n", "[63]\tvalidation-rmse:6.65694 \n", "[64]\tvalidation-rmse:6.65633 \n", "[65]\tvalidation-rmse:6.65555 \n", "[66]\tvalidation-rmse:6.65522 \n", "[67]\tvalidation-rmse:6.65477 \n", "[68]\tvalidation-rmse:6.65445 \n", "[69]\tvalidation-rmse:6.65396 \n", "[70]\tvalidation-rmse:6.65321 \n", "[71]\tvalidation-rmse:6.65289 \n", "[72]\tvalidation-rmse:6.65244 \n", "[73]\tvalidation-rmse:6.65204 \n", "[74]\tvalidation-rmse:6.65174 \n", "[75]\tvalidation-rmse:6.65141 \n", "[76]\tvalidation-rmse:6.65090 \n", "[77]\tvalidation-rmse:6.65042 \n", "[78]\tvalidation-rmse:6.65020 \n", "[79]\tvalidation-rmse:6.65011 \n", "[80]\tvalidation-rmse:6.64978 \n", "[81]\tvalidation-rmse:6.64944 \n", "[82]\tvalidation-rmse:6.64946 \n", "[83]\tvalidation-rmse:6.64925 \n", "[84]\tvalidation-rmse:6.64914 \n", "[85]\tvalidation-rmse:6.64898 \n", "[86]\tvalidation-rmse:6.64895 \n", "[87]\tvalidation-rmse:6.64867 \n", "[88]\tvalidation-rmse:6.64842 \n", "[89]\tvalidation-rmse:6.64845 \n", "[90]\tvalidation-rmse:6.64845 \n", "[91]\tvalidation-rmse:6.64817 \n", "[92]\tvalidation-rmse:6.64796 \n", "[93]\tvalidation-rmse:6.64776 \n", "[94]\tvalidation-rmse:6.64755 \n", "[95]\tvalidation-rmse:6.64751 \n", "[96]\tvalidation-rmse:6.64709 \n", "[97]\tvalidation-rmse:6.64706 \n", "[98]\tvalidation-rmse:6.64700 \n", "[99]\tvalidation-rmse:6.64682 \n", "[100]\tvalidation-rmse:6.64675 \n", "[101]\tvalidation-rmse:6.64668 \n", "[102]\tvalidation-rmse:6.64642 \n", "[103]\tvalidation-rmse:6.64626 \n", "[104]\tvalidation-rmse:6.64635 \n", "[105]\tvalidation-rmse:6.64614 \n", "[106]\tvalidation-rmse:6.64608 \n", "[107]\tvalidation-rmse:6.64573 \n", "[108]\tvalidation-rmse:6.64547 \n", "[109]\tvalidation-rmse:6.64557 \n", "[110]\tvalidation-rmse:6.64549 \n", "[111]\tvalidation-rmse:6.64560 \n", "[112]\tvalidation-rmse:6.64562 \n", "[113]\tvalidation-rmse:6.64555 \n", "[114]\tvalidation-rmse:6.64565 \n", "[115]\tvalidation-rmse:6.64543 \n", "[116]\tvalidation-rmse:6.64523 \n", "[117]\tvalidation-rmse:6.64521 \n", "[118]\tvalidation-rmse:6.64491 \n", "[119]\tvalidation-rmse:6.64486 \n", "[120]\tvalidation-rmse:6.64487 \n", "[121]\tvalidation-rmse:6.64481 \n", "[122]\tvalidation-rmse:6.64477 \n", "[123]\tvalidation-rmse:6.64456 \n", "[124]\tvalidation-rmse:6.64445 \n", "[125]\tvalidation-rmse:6.64431 \n", "[126]\tvalidation-rmse:6.64418 \n", "[127]\tvalidation-rmse:6.64410 \n", "[128]\tvalidation-rmse:6.64402 \n", "[129]\tvalidation-rmse:6.64377 \n", "[130]\tvalidation-rmse:6.64378 \n", "[131]\tvalidation-rmse:6.64381 \n", "[132]\tvalidation-rmse:6.64364 \n", "[133]\tvalidation-rmse:6.64366 \n", "[134]\tvalidation-rmse:6.64328 \n", "[135]\tvalidation-rmse:6.64335 \n", "[136]\tvalidation-rmse:6.64354 \n", "[137]\tvalidation-rmse:6.64354 \n", "[138]\tvalidation-rmse:6.64351 \n", "[139]\tvalidation-rmse:6.64336 \n", "[140]\tvalidation-rmse:6.64375 \n", "[141]\tvalidation-rmse:6.64392 \n", "[142]\tvalidation-rmse:6.64387 \n", "[143]\tvalidation-rmse:6.64378 \n", "[144]\tvalidation-rmse:6.64384 \n", "[145]\tvalidation-rmse:6.64383 \n", "[146]\tvalidation-rmse:6.64396 \n", "[147]\tvalidation-rmse:6.64370 \n", "[148]\tvalidation-rmse:6.64342 \n", "[149]\tvalidation-rmse:6.64349 \n", "[150]\tvalidation-rmse:6.64356 \n", "[151]\tvalidation-rmse:6.64353 \n", "[152]\tvalidation-rmse:6.64347 \n", "[153]\tvalidation-rmse:6.64349 \n", "[154]\tvalidation-rmse:6.64328 \n", "[155]\tvalidation-rmse:6.64327 \n", "[156]\tvalidation-rmse:6.64336 \n", "[157]\tvalidation-rmse:6.64316 \n", "[158]\tvalidation-rmse:6.64322 \n", "[159]\tvalidation-rmse:6.64325 \n", "[160]\tvalidation-rmse:6.64316 \n", "[161]\tvalidation-rmse:6.64322 \n", "[162]\tvalidation-rmse:6.64317 \n", "[163]\tvalidation-rmse:6.64310 \n", "[164]\tvalidation-rmse:6.64290 \n", "[165]\tvalidation-rmse:6.64305 \n", "[166]\tvalidation-rmse:6.64296 \n", "[167]\tvalidation-rmse:6.64277 \n", "[168]\tvalidation-rmse:6.64272 \n", "[169]\tvalidation-rmse:6.64250 \n", "[170]\tvalidation-rmse:6.64238 \n", "[171]\tvalidation-rmse:6.64222 \n", "[172]\tvalidation-rmse:6.64205 \n", "[173]\tvalidation-rmse:6.64153 \n", "[174]\tvalidation-rmse:6.64147 \n", "[175]\tvalidation-rmse:6.64132 \n", "[176]\tvalidation-rmse:6.64133 \n", "[177]\tvalidation-rmse:6.64133 \n", "[178]\tvalidation-rmse:6.64129 \n", "[179]\tvalidation-rmse:6.64119 \n", "[180]\tvalidation-rmse:6.64122 \n", "[181]\tvalidation-rmse:6.64120 \n", "[182]\tvalidation-rmse:6.64113 \n", "[183]\tvalidation-rmse:6.64109 \n", "[184]\tvalidation-rmse:6.64109 \n", "[185]\tvalidation-rmse:6.64102 \n", "[186]\tvalidation-rmse:6.64083 \n", "[187]\tvalidation-rmse:6.64070 \n", "[188]\tvalidation-rmse:6.64084 \n", "[189]\tvalidation-rmse:6.64071 \n", "[190]\tvalidation-rmse:6.64068 \n", "[191]\tvalidation-rmse:6.64065 \n", "[192]\tvalidation-rmse:6.64067 \n", "[193]\tvalidation-rmse:6.64055 \n", "[194]\tvalidation-rmse:6.64054 \n", "[195]\tvalidation-rmse:6.64053 \n", "[196]\tvalidation-rmse:6.64080 \n", "[197]\tvalidation-rmse:6.64072 \n", "[198]\tvalidation-rmse:6.64095 \n", "[199]\tvalidation-rmse:6.64087 \n", "[200]\tvalidation-rmse:6.64082 \n", "[201]\tvalidation-rmse:6.64079 \n", "[202]\tvalidation-rmse:6.64096 \n", "[203]\tvalidation-rmse:6.64088 \n", "[204]\tvalidation-rmse:6.64072 \n", "[205]\tvalidation-rmse:6.64069 \n", "[206]\tvalidation-rmse:6.64064 \n", "[207]\tvalidation-rmse:6.64061 \n", "[208]\tvalidation-rmse:6.64085 \n", "[209]\tvalidation-rmse:6.64084 \n", "[210]\tvalidation-rmse:6.64084 \n", "[211]\tvalidation-rmse:6.64090 \n", "[212]\tvalidation-rmse:6.64067 \n", "[213]\tvalidation-rmse:6.64056 \n", "[214]\tvalidation-rmse:6.64049 \n", "[215]\tvalidation-rmse:6.64057 \n", "[216]\tvalidation-rmse:6.64048 \n", "[217]\tvalidation-rmse:6.64041 \n", "[218]\tvalidation-rmse:6.64036 \n", "[219]\tvalidation-rmse:6.64031 \n", "[220]\tvalidation-rmse:6.64026 \n", "[221]\tvalidation-rmse:6.64029 \n", "[222]\tvalidation-rmse:6.64027 \n", "[223]\tvalidation-rmse:6.64008 \n", "[224]\tvalidation-rmse:6.63994 \n", "[225]\tvalidation-rmse:6.63988 \n", "[226]\tvalidation-rmse:6.63968 \n", "[227]\tvalidation-rmse:6.63977 \n", "[228]\tvalidation-rmse:6.63978 \n", "[229]\tvalidation-rmse:6.63966 \n", "[230]\tvalidation-rmse:6.63970 \n", "[231]\tvalidation-rmse:6.64013 \n", "[232]\tvalidation-rmse:6.64007 \n", "[233]\tvalidation-rmse:6.63989 \n", "[234]\tvalidation-rmse:6.63995 \n", "[235]\tvalidation-rmse:6.63987 \n", "[236]\tvalidation-rmse:6.63989 \n", "[237]\tvalidation-rmse:6.63992 \n", "[238]\tvalidation-rmse:6.63982 \n", "[239]\tvalidation-rmse:6.63987 \n", "[240]\tvalidation-rmse:6.64016 \n", "[241]\tvalidation-rmse:6.64018 \n", "[242]\tvalidation-rmse:6.64022 \n", "[243]\tvalidation-rmse:6.64043 \n", "[244]\tvalidation-rmse:6.64029 \n", "[245]\tvalidation-rmse:6.64018 \n", "[246]\tvalidation-rmse:6.64017 \n", "[247]\tvalidation-rmse:6.64006 \n", "[248]\tvalidation-rmse:6.64013 \n", "[249]\tvalidation-rmse:6.64016 \n", "[250]\tvalidation-rmse:6.64010 \n", "[251]\tvalidation-rmse:6.64008 \n", "[252]\tvalidation-rmse:6.64005 \n", "[253]\tvalidation-rmse:6.64005 \n", "[254]\tvalidation-rmse:6.64005 \n", "[255]\tvalidation-rmse:6.63996 \n", "[256]\tvalidation-rmse:6.63992 \n", "[257]\tvalidation-rmse:6.63990 \n", "[258]\tvalidation-rmse:6.63982 \n", "[259]\tvalidation-rmse:6.63992 \n", "[260]\tvalidation-rmse:6.63988 \n", "[261]\tvalidation-rmse:6.63985 \n", "[262]\tvalidation-rmse:6.63992 \n", "[263]\tvalidation-rmse:6.64008 \n", "[264]\tvalidation-rmse:6.64028 \n", "[265]\tvalidation-rmse:6.64038 \n", "[266]\tvalidation-rmse:6.64035 \n", "[267]\tvalidation-rmse:6.64031 \n", "[268]\tvalidation-rmse:6.64032 \n", "[269]\tvalidation-rmse:6.64068 \n", "[270]\tvalidation-rmse:6.64071 \n", "[271]\tvalidation-rmse:6.64073 \n", "[272]\tvalidation-rmse:6.64075 \n", "[273]\tvalidation-rmse:6.64062 \n", "[274]\tvalidation-rmse:6.64071 \n", "[275]\tvalidation-rmse:6.64061 \n", "[276]\tvalidation-rmse:6.64058 \n", "[277]\tvalidation-rmse:6.64058 \n", "[278]\tvalidation-rmse:6.64048 \n", "[279]\tvalidation-rmse:6.64046 \n", "[12:54:32] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.08757 \n", "[1]\tvalidation-rmse:19.05759 \n", "[2]\tvalidation-rmse:18.09836 \n", "[3]\tvalidation-rmse:17.20561 \n", "[4]\tvalidation-rmse:16.37527 \n", "[5]\tvalidation-rmse:15.60380 \n", "[6]\tvalidation-rmse:14.88839 \n", "[7]\tvalidation-rmse:14.22457 \n", "[8]\tvalidation-rmse:13.60948 \n", "[9]\tvalidation-rmse:13.04061 \n", "[10]\tvalidation-rmse:12.51467 \n", "[11]\tvalidation-rmse:12.02853 \n", "[12]\tvalidation-rmse:11.58042 \n", "[13]\tvalidation-rmse:11.16732 \n", "[14]\tvalidation-rmse:10.78718 \n", "[15]\tvalidation-rmse:10.43706 \n", "[16]\tvalidation-rmse:10.11592 \n", "[17]\tvalidation-rmse:9.82086 \n", "[18]\tvalidation-rmse:9.55012 \n", "[19]\tvalidation-rmse:9.30302 \n", "[20]\tvalidation-rmse:9.07669 \n", "[21]\tvalidation-rmse:8.86985 \n", "[22]\tvalidation-rmse:8.68058 \n", "[23]\tvalidation-rmse:8.50784 \n", "[24]\tvalidation-rmse:8.35066 \n", "[25]\tvalidation-rmse:8.20728 \n", "[26]\tvalidation-rmse:8.07642 \n", "[27]\tvalidation-rmse:7.95787 \n", "[28]\tvalidation-rmse:7.84961 \n", "[29]\tvalidation-rmse:7.75074 \n", "[30]\tvalidation-rmse:7.66102 \n", "[31]\tvalidation-rmse:7.57908 \n", "[32]\tvalidation-rmse:7.50446 \n", "[33]\tvalidation-rmse:7.43640 \n", "[34]\tvalidation-rmse:7.37433 \n", "[35]\tvalidation-rmse:7.31726 \n", "[36]\tvalidation-rmse:7.26551 \n", "[37]\tvalidation-rmse:7.21854 \n", "[38]\tvalidation-rmse:7.17533 \n", "[39]\tvalidation-rmse:7.13570 \n", "[40]\tvalidation-rmse:7.09975 \n", "[41]\tvalidation-rmse:7.06664 \n", "[42]\tvalidation-rmse:7.03650 \n", "[43]\tvalidation-rmse:7.00868 \n", "[44]\tvalidation-rmse:6.98289 \n", "[45]\tvalidation-rmse:6.95919 \n", "[46]\tvalidation-rmse:6.93718 \n", "[47]\tvalidation-rmse:6.91736 \n", "[48]\tvalidation-rmse:6.89893 \n", "[49]\tvalidation-rmse:6.88192 \n", "[50]\tvalidation-rmse:6.86599 \n", "[51]\tvalidation-rmse:6.85125 \n", "[52]\tvalidation-rmse:6.83759 \n", "[53]\tvalidation-rmse:6.82519 \n", "[54]\tvalidation-rmse:6.81378 \n", "[55]\tvalidation-rmse:6.80277 \n", "[56]\tvalidation-rmse:6.79288 \n", "[57]\tvalidation-rmse:6.78364 \n", "[58]\tvalidation-rmse:6.77507 \n", "[59]\tvalidation-rmse:6.76696 \n", "[60]\tvalidation-rmse:6.75940 \n", "[61]\tvalidation-rmse:6.75266 \n", "[62]\tvalidation-rmse:6.74624 \n", "[63]\tvalidation-rmse:6.74047 \n", "[64]\tvalidation-rmse:6.73484 \n", "[65]\tvalidation-rmse:6.72966 \n", "[66]\tvalidation-rmse:6.72477 \n", "[67]\tvalidation-rmse:6.72000 \n", "[68]\tvalidation-rmse:6.71564 \n", "[69]\tvalidation-rmse:6.71141 \n", "[70]\tvalidation-rmse:6.70758 \n", "[71]\tvalidation-rmse:6.70403 \n", "[72]\tvalidation-rmse:6.70077 \n", "[73]\tvalidation-rmse:6.69776 \n", "[74]\tvalidation-rmse:6.69496 \n", "[75]\tvalidation-rmse:6.69206 \n", "[76]\tvalidation-rmse:6.68949 \n", "[77]\tvalidation-rmse:6.68709 \n", "[78]\tvalidation-rmse:6.68493 \n", "[79]\tvalidation-rmse:6.68273 \n", "[80]\tvalidation-rmse:6.68074 \n", "[81]\tvalidation-rmse:6.67872 \n", "[82]\tvalidation-rmse:6.67710 \n", "[83]\tvalidation-rmse:6.67555 \n", "[84]\tvalidation-rmse:6.67398 \n", "[85]\tvalidation-rmse:6.67262 \n", "[86]\tvalidation-rmse:6.67134 \n", "[87]\tvalidation-rmse:6.66992 \n", "[88]\tvalidation-rmse:6.66876 \n", "[89]\tvalidation-rmse:6.66746 \n", "[90]\tvalidation-rmse:6.66654 \n", "[91]\tvalidation-rmse:6.66532 \n", "[92]\tvalidation-rmse:6.66442 \n", "[93]\tvalidation-rmse:6.66335 \n", "[94]\tvalidation-rmse:6.66226 \n", "[95]\tvalidation-rmse:6.66135 \n", "[96]\tvalidation-rmse:6.66064 \n", "[97]\tvalidation-rmse:6.65992 \n", "[98]\tvalidation-rmse:6.65908 \n", "[99]\tvalidation-rmse:6.65839 \n", "[100]\tvalidation-rmse:6.65775 \n", "[101]\tvalidation-rmse:6.65702 \n", "[102]\tvalidation-rmse:6.65623 \n", "[103]\tvalidation-rmse:6.65559 \n", "[104]\tvalidation-rmse:6.65514 \n", "[105]\tvalidation-rmse:6.65465 \n", "[106]\tvalidation-rmse:6.65418 \n", "[107]\tvalidation-rmse:6.65365 \n", "[108]\tvalidation-rmse:6.65330 \n", "[109]\tvalidation-rmse:6.65275 \n", "[110]\tvalidation-rmse:6.65236 \n", "[111]\tvalidation-rmse:6.65180 \n", "[112]\tvalidation-rmse:6.65131 \n", "[113]\tvalidation-rmse:6.65086 \n", "[114]\tvalidation-rmse:6.65035 \n", "[115]\tvalidation-rmse:6.64999 \n", "[116]\tvalidation-rmse:6.64970 \n", "[117]\tvalidation-rmse:6.64946 \n", "[118]\tvalidation-rmse:6.64908 \n", "[119]\tvalidation-rmse:6.64880 \n", "[120]\tvalidation-rmse:6.64850 \n", "[121]\tvalidation-rmse:6.64816 \n", "[122]\tvalidation-rmse:6.64785 \n", "[123]\tvalidation-rmse:6.64754 \n", "[124]\tvalidation-rmse:6.64720 \n", "[125]\tvalidation-rmse:6.64696 \n", "[126]\tvalidation-rmse:6.64663 \n", "[127]\tvalidation-rmse:6.64636 \n", "[128]\tvalidation-rmse:6.64619 \n", "[129]\tvalidation-rmse:6.64601 \n", "[130]\tvalidation-rmse:6.64573 \n", "[131]\tvalidation-rmse:6.64549 \n", "[132]\tvalidation-rmse:6.64522 \n", "[133]\tvalidation-rmse:6.64480 \n", "[134]\tvalidation-rmse:6.64450 \n", "[135]\tvalidation-rmse:6.64429 \n", "[136]\tvalidation-rmse:6.64404 \n", "[137]\tvalidation-rmse:6.64377 \n", "[138]\tvalidation-rmse:6.64356 \n", "[139]\tvalidation-rmse:6.64328 \n", "[140]\tvalidation-rmse:6.64303 \n", "[141]\tvalidation-rmse:6.64281 \n", "[142]\tvalidation-rmse:6.64270 \n", "[143]\tvalidation-rmse:6.64255 \n", "[144]\tvalidation-rmse:6.64233 \n", "[145]\tvalidation-rmse:6.64216 \n", "[146]\tvalidation-rmse:6.64196 \n", "[147]\tvalidation-rmse:6.64175 \n", "[148]\tvalidation-rmse:6.64159 \n", "[149]\tvalidation-rmse:6.64142 \n", "[150]\tvalidation-rmse:6.64122 \n", "[151]\tvalidation-rmse:6.64105 \n", "[152]\tvalidation-rmse:6.64086 \n", "[153]\tvalidation-rmse:6.64075 \n", "[154]\tvalidation-rmse:6.64050 \n", "[155]\tvalidation-rmse:6.64029 \n", "[156]\tvalidation-rmse:6.64013 \n", "[157]\tvalidation-rmse:6.63995 \n", "[158]\tvalidation-rmse:6.63980 \n", "[159]\tvalidation-rmse:6.63975 \n", "[160]\tvalidation-rmse:6.63959 \n", "[161]\tvalidation-rmse:6.63940 \n", "[162]\tvalidation-rmse:6.63919 \n", "[163]\tvalidation-rmse:6.63906 \n", "[164]\tvalidation-rmse:6.63893 \n", "[165]\tvalidation-rmse:6.63880 \n", "[166]\tvalidation-rmse:6.63860 \n", "[167]\tvalidation-rmse:6.63828 \n", "[168]\tvalidation-rmse:6.63814 \n", "[169]\tvalidation-rmse:6.63806 \n", "[170]\tvalidation-rmse:6.63791 \n", "[171]\tvalidation-rmse:6.63770 \n", "[172]\tvalidation-rmse:6.63758 \n", "[173]\tvalidation-rmse:6.63719 \n", "[174]\tvalidation-rmse:6.63701 \n", "[175]\tvalidation-rmse:6.63679 \n", "[176]\tvalidation-rmse:6.63669 \n", "[177]\tvalidation-rmse:6.63657 \n", "[178]\tvalidation-rmse:6.63654 \n", "[179]\tvalidation-rmse:6.63636 \n", "[180]\tvalidation-rmse:6.63628 \n", "[181]\tvalidation-rmse:6.63613 \n", "[182]\tvalidation-rmse:6.63595 \n", "[183]\tvalidation-rmse:6.63580 \n", "[184]\tvalidation-rmse:6.63561 \n", "[185]\tvalidation-rmse:6.63552 \n", "[186]\tvalidation-rmse:6.63537 \n", "[187]\tvalidation-rmse:6.63524 \n", "[188]\tvalidation-rmse:6.63514 \n", "[189]\tvalidation-rmse:6.63502 \n", "[190]\tvalidation-rmse:6.63487 \n", "[191]\tvalidation-rmse:6.63469 \n", "[192]\tvalidation-rmse:6.63458 \n", "[193]\tvalidation-rmse:6.63442 \n", "[194]\tvalidation-rmse:6.63430 \n", "[195]\tvalidation-rmse:6.63424 \n", "[196]\tvalidation-rmse:6.63408 \n", "[197]\tvalidation-rmse:6.63389 \n", "[198]\tvalidation-rmse:6.63384 \n", "[199]\tvalidation-rmse:6.63381 \n", "[200]\tvalidation-rmse:6.63361 \n", "[201]\tvalidation-rmse:6.63351 \n", "[202]\tvalidation-rmse:6.63334 \n", "[203]\tvalidation-rmse:6.63319 \n", "[204]\tvalidation-rmse:6.63309 \n", "[205]\tvalidation-rmse:6.63301 \n", "[206]\tvalidation-rmse:6.63287 \n", "[207]\tvalidation-rmse:6.63216 \n", "[208]\tvalidation-rmse:6.63199 \n", "[209]\tvalidation-rmse:6.63187 \n", "[210]\tvalidation-rmse:6.63176 \n", "[211]\tvalidation-rmse:6.63166 \n", "[212]\tvalidation-rmse:6.63135 \n", "[213]\tvalidation-rmse:6.63115 \n", "[214]\tvalidation-rmse:6.63104 \n", "[215]\tvalidation-rmse:6.63076 \n", "[216]\tvalidation-rmse:6.63068 \n", "[217]\tvalidation-rmse:6.63060 \n", "[218]\tvalidation-rmse:6.63044 \n", "[219]\tvalidation-rmse:6.63041 \n", "[220]\tvalidation-rmse:6.63017 \n", "[221]\tvalidation-rmse:6.63005 \n", "[222]\tvalidation-rmse:6.63000 \n", "[223]\tvalidation-rmse:6.62990 \n", "[224]\tvalidation-rmse:6.62985 \n", "[225]\tvalidation-rmse:6.62976 \n", "[226]\tvalidation-rmse:6.62968 \n", "[227]\tvalidation-rmse:6.62954 \n", "[228]\tvalidation-rmse:6.62945 \n", "[229]\tvalidation-rmse:6.62940 \n", "[230]\tvalidation-rmse:6.62884 \n", "[231]\tvalidation-rmse:6.62871 \n", "[232]\tvalidation-rmse:6.62862 \n", "[233]\tvalidation-rmse:6.62853 \n", "[234]\tvalidation-rmse:6.62843 \n", "[235]\tvalidation-rmse:6.62832 \n", "[236]\tvalidation-rmse:6.62805 \n", "[237]\tvalidation-rmse:6.62794 \n", "[238]\tvalidation-rmse:6.62789 \n", "[239]\tvalidation-rmse:6.62785 \n", "[240]\tvalidation-rmse:6.62776 \n", "[241]\tvalidation-rmse:6.62765 \n", "[242]\tvalidation-rmse:6.62748 \n", "[243]\tvalidation-rmse:6.62735 \n", "[244]\tvalidation-rmse:6.62723 \n", "[245]\tvalidation-rmse:6.62720 \n", "[246]\tvalidation-rmse:6.62713 \n", "[247]\tvalidation-rmse:6.62706 \n", "[248]\tvalidation-rmse:6.62700 \n", "[249]\tvalidation-rmse:6.62696 \n", "[250]\tvalidation-rmse:6.62682 \n", "[251]\tvalidation-rmse:6.62672 \n", "[252]\tvalidation-rmse:6.62620 \n", "[253]\tvalidation-rmse:6.62608 \n", "[254]\tvalidation-rmse:6.62593 \n", "[255]\tvalidation-rmse:6.62585 \n", "[256]\tvalidation-rmse:6.62577 \n", "[257]\tvalidation-rmse:6.62571 \n", "[258]\tvalidation-rmse:6.62563 \n", "[259]\tvalidation-rmse:6.62557 \n", "[260]\tvalidation-rmse:6.62551 \n", "[261]\tvalidation-rmse:6.62539 \n", "[262]\tvalidation-rmse:6.62533 \n", "[263]\tvalidation-rmse:6.62527 \n", "[264]\tvalidation-rmse:6.62507 \n", "[265]\tvalidation-rmse:6.62494 \n", "[266]\tvalidation-rmse:6.62487 \n", "[267]\tvalidation-rmse:6.62482 \n", "[268]\tvalidation-rmse:6.62480 \n", "[269]\tvalidation-rmse:6.62471 \n", "[270]\tvalidation-rmse:6.62450 \n", "[271]\tvalidation-rmse:6.62446 \n", "[272]\tvalidation-rmse:6.62445 \n", "[273]\tvalidation-rmse:6.62428 \n", "[274]\tvalidation-rmse:6.62418 \n", "[275]\tvalidation-rmse:6.62414 \n", "[276]\tvalidation-rmse:6.62409 \n", "[277]\tvalidation-rmse:6.62397 \n", "[278]\tvalidation-rmse:6.62392 \n", "[279]\tvalidation-rmse:6.62384 \n", "[280]\tvalidation-rmse:6.62372 \n", "[281]\tvalidation-rmse:6.62361 \n", "[282]\tvalidation-rmse:6.62358 \n", "[283]\tvalidation-rmse:6.62355 \n", "[284]\tvalidation-rmse:6.62343 \n", "[285]\tvalidation-rmse:6.62340 \n", "[286]\tvalidation-rmse:6.62330 \n", "[287]\tvalidation-rmse:6.62322 \n", "[288]\tvalidation-rmse:6.62315 \n", "[289]\tvalidation-rmse:6.62310 \n", "[290]\tvalidation-rmse:6.62303 \n", "[291]\tvalidation-rmse:6.62274 \n", "[292]\tvalidation-rmse:6.62246 \n", "[293]\tvalidation-rmse:6.62242 \n", "[294]\tvalidation-rmse:6.62239 \n", "[295]\tvalidation-rmse:6.62234 \n", "[296]\tvalidation-rmse:6.62230 \n", "[297]\tvalidation-rmse:6.62213 \n", "[298]\tvalidation-rmse:6.62208 \n", "[299]\tvalidation-rmse:6.62203 \n", "[300]\tvalidation-rmse:6.62195 \n", "[301]\tvalidation-rmse:6.62191 \n", "[302]\tvalidation-rmse:6.62181 \n", "[303]\tvalidation-rmse:6.62173 \n", "[304]\tvalidation-rmse:6.62170 \n", "[305]\tvalidation-rmse:6.62170 \n", "[306]\tvalidation-rmse:6.62160 \n", "[307]\tvalidation-rmse:6.62152 \n", "[308]\tvalidation-rmse:6.62145 \n", "[309]\tvalidation-rmse:6.62133 \n", "[310]\tvalidation-rmse:6.62129 \n", "[311]\tvalidation-rmse:6.62123 \n", "[312]\tvalidation-rmse:6.62117 \n", "[313]\tvalidation-rmse:6.62094 \n", "[314]\tvalidation-rmse:6.62056 \n", "[315]\tvalidation-rmse:6.62053 \n", "[316]\tvalidation-rmse:6.62042 \n", "[317]\tvalidation-rmse:6.62037 \n", "[318]\tvalidation-rmse:6.62034 \n", "[319]\tvalidation-rmse:6.62029 \n", "[320]\tvalidation-rmse:6.62017 \n", "[321]\tvalidation-rmse:6.62013 \n", "[322]\tvalidation-rmse:6.62003 \n", "[323]\tvalidation-rmse:6.61999 \n", "[324]\tvalidation-rmse:6.61993 \n", "[325]\tvalidation-rmse:6.61992 \n", "[326]\tvalidation-rmse:6.61986 \n", "[327]\tvalidation-rmse:6.61982 \n", "[328]\tvalidation-rmse:6.61954 \n", "[329]\tvalidation-rmse:6.61954 \n", "[330]\tvalidation-rmse:6.61913 \n", "[331]\tvalidation-rmse:6.61909 \n", "[332]\tvalidation-rmse:6.61902 \n", "[333]\tvalidation-rmse:6.61878 \n", "[334]\tvalidation-rmse:6.61863 \n", "[335]\tvalidation-rmse:6.61856 \n", "[336]\tvalidation-rmse:6.61856 \n", "[337]\tvalidation-rmse:6.61851 \n", "[338]\tvalidation-rmse:6.61846 \n", "[339]\tvalidation-rmse:6.61841 \n", "[340]\tvalidation-rmse:6.61836 \n", "[341]\tvalidation-rmse:6.61828 \n", "[342]\tvalidation-rmse:6.61820 \n", "[343]\tvalidation-rmse:6.61816 \n", "[344]\tvalidation-rmse:6.61808 \n", "[345]\tvalidation-rmse:6.61799 \n", "[346]\tvalidation-rmse:6.61788 \n", "[347]\tvalidation-rmse:6.61787 \n", "[348]\tvalidation-rmse:6.61783 \n", "[349]\tvalidation-rmse:6.61774 \n", "[350]\tvalidation-rmse:6.61767 \n", "[351]\tvalidation-rmse:6.61766 \n", "[352]\tvalidation-rmse:6.61756 \n", "[353]\tvalidation-rmse:6.61751 \n", "[354]\tvalidation-rmse:6.61745 \n", "[355]\tvalidation-rmse:6.61723 \n", "[356]\tvalidation-rmse:6.61687 \n", "[357]\tvalidation-rmse:6.61654 \n", "[358]\tvalidation-rmse:6.61624 \n", "[359]\tvalidation-rmse:6.61622 \n", "[360]\tvalidation-rmse:6.61604 \n", "[361]\tvalidation-rmse:6.61597 \n", "[362]\tvalidation-rmse:6.61590 \n", "[363]\tvalidation-rmse:6.61580 \n", "[364]\tvalidation-rmse:6.61564 \n", "[365]\tvalidation-rmse:6.61566 \n", "[366]\tvalidation-rmse:6.61562 \n", "[367]\tvalidation-rmse:6.61557 \n", "[368]\tvalidation-rmse:6.61555 \n", "[369]\tvalidation-rmse:6.61539 \n", "[370]\tvalidation-rmse:6.61519 \n", "[371]\tvalidation-rmse:6.61506 \n", "[372]\tvalidation-rmse:6.61492 \n", "[373]\tvalidation-rmse:6.61487 \n", "[374]\tvalidation-rmse:6.61485 \n", "[375]\tvalidation-rmse:6.61476 \n", "[376]\tvalidation-rmse:6.61470 \n", "[377]\tvalidation-rmse:6.61467 \n", "[378]\tvalidation-rmse:6.61457 \n", "[379]\tvalidation-rmse:6.61454 \n", "[380]\tvalidation-rmse:6.61455 \n", "[381]\tvalidation-rmse:6.61452 \n", "[382]\tvalidation-rmse:6.61449 \n", "[383]\tvalidation-rmse:6.61436 \n", "[384]\tvalidation-rmse:6.61431 \n", "[385]\tvalidation-rmse:6.61425 \n", "[386]\tvalidation-rmse:6.61415 \n", "[387]\tvalidation-rmse:6.61393 \n", "[388]\tvalidation-rmse:6.61389 \n", "[389]\tvalidation-rmse:6.61387 \n", "[390]\tvalidation-rmse:6.61374 \n", "[391]\tvalidation-rmse:6.61359 \n", "[392]\tvalidation-rmse:6.61348 \n", "[393]\tvalidation-rmse:6.61333 \n", "[394]\tvalidation-rmse:6.61322 \n", "[395]\tvalidation-rmse:6.61310 \n", "[396]\tvalidation-rmse:6.61287 \n", "[397]\tvalidation-rmse:6.61278 \n", "[398]\tvalidation-rmse:6.61259 \n", "[399]\tvalidation-rmse:6.61247 \n", "[400]\tvalidation-rmse:6.61238 \n", "[401]\tvalidation-rmse:6.61228 \n", "[402]\tvalidation-rmse:6.61220 \n", "[403]\tvalidation-rmse:6.61200 \n", "[404]\tvalidation-rmse:6.61196 \n", "[405]\tvalidation-rmse:6.61188 \n", "[406]\tvalidation-rmse:6.61184 \n", "[407]\tvalidation-rmse:6.61174 \n", "[408]\tvalidation-rmse:6.61167 \n", "[409]\tvalidation-rmse:6.61160 \n", "[410]\tvalidation-rmse:6.61149 \n", "[411]\tvalidation-rmse:6.61132 \n", "[412]\tvalidation-rmse:6.61114 \n", "[413]\tvalidation-rmse:6.61112 \n", "[414]\tvalidation-rmse:6.61104 \n", "[415]\tvalidation-rmse:6.61094 \n", "[416]\tvalidation-rmse:6.61083 \n", "[417]\tvalidation-rmse:6.61075 \n", "[418]\tvalidation-rmse:6.61063 \n", "[419]\tvalidation-rmse:6.61063 \n", "[420]\tvalidation-rmse:6.61053 \n", "[421]\tvalidation-rmse:6.61047 \n", "[422]\tvalidation-rmse:6.61041 \n", "[423]\tvalidation-rmse:6.61037 \n", "[424]\tvalidation-rmse:6.61035 \n", "[425]\tvalidation-rmse:6.61015 \n", "[426]\tvalidation-rmse:6.61011 \n", "[427]\tvalidation-rmse:6.61009 \n", "[428]\tvalidation-rmse:6.61004 \n", "[429]\tvalidation-rmse:6.61004 \n", "[430]\tvalidation-rmse:6.60994 \n", "[431]\tvalidation-rmse:6.60994 \n", "[432]\tvalidation-rmse:6.60985 \n", "[433]\tvalidation-rmse:6.60978 \n", "[434]\tvalidation-rmse:6.60965 \n", "[435]\tvalidation-rmse:6.60960 \n", "[436]\tvalidation-rmse:6.60957 \n", "[437]\tvalidation-rmse:6.60952 \n", "[438]\tvalidation-rmse:6.60948 \n", "[439]\tvalidation-rmse:6.60943 \n", "[440]\tvalidation-rmse:6.60942 \n", "[441]\tvalidation-rmse:6.60935 \n", "[442]\tvalidation-rmse:6.60935 \n", "[443]\tvalidation-rmse:6.60925 \n", "[444]\tvalidation-rmse:6.60917 \n", "[445]\tvalidation-rmse:6.60919 \n", "[446]\tvalidation-rmse:6.60910 \n", "[447]\tvalidation-rmse:6.60911 \n", "[448]\tvalidation-rmse:6.60903 \n", "[449]\tvalidation-rmse:6.60896 \n", "[450]\tvalidation-rmse:6.60887 \n", "[451]\tvalidation-rmse:6.60880 \n", "[452]\tvalidation-rmse:6.60880 \n", "[453]\tvalidation-rmse:6.60872 \n", "[454]\tvalidation-rmse:6.60864 \n", "[455]\tvalidation-rmse:6.60865 \n", "[456]\tvalidation-rmse:6.60859 \n", "[457]\tvalidation-rmse:6.60849 \n", "[458]\tvalidation-rmse:6.60842 \n", "[459]\tvalidation-rmse:6.60838 \n", "[460]\tvalidation-rmse:6.60839 \n", "[461]\tvalidation-rmse:6.60834 \n", "[462]\tvalidation-rmse:6.60827 \n", "[463]\tvalidation-rmse:6.60821 \n", "[464]\tvalidation-rmse:6.60815 \n", "[465]\tvalidation-rmse:6.60813 \n", "[466]\tvalidation-rmse:6.60807 \n", "[467]\tvalidation-rmse:6.60805 \n", "[468]\tvalidation-rmse:6.60796 \n", "[469]\tvalidation-rmse:6.60794 \n", "[470]\tvalidation-rmse:6.60787 \n", "[471]\tvalidation-rmse:6.60778 \n", "[472]\tvalidation-rmse:6.60777 \n", "[473]\tvalidation-rmse:6.60772 \n", "[474]\tvalidation-rmse:6.60770 \n", "[475]\tvalidation-rmse:6.60763 \n", "[476]\tvalidation-rmse:6.60750 \n", "[477]\tvalidation-rmse:6.60746 \n", "[478]\tvalidation-rmse:6.60743 \n", "[479]\tvalidation-rmse:6.60736 \n", "[480]\tvalidation-rmse:6.60736 \n", "[481]\tvalidation-rmse:6.60730 \n", "[482]\tvalidation-rmse:6.60724 \n", "[483]\tvalidation-rmse:6.60721 \n", "[484]\tvalidation-rmse:6.60714 \n", "[485]\tvalidation-rmse:6.60706 \n", "[486]\tvalidation-rmse:6.60707 \n", "[487]\tvalidation-rmse:6.60700 \n", "[488]\tvalidation-rmse:6.60695 \n", "[489]\tvalidation-rmse:6.60688 \n", "[490]\tvalidation-rmse:6.60681 \n", "[491]\tvalidation-rmse:6.60680 \n", "[492]\tvalidation-rmse:6.60672 \n", "[493]\tvalidation-rmse:6.60675 \n", "[494]\tvalidation-rmse:6.60669 \n", "[495]\tvalidation-rmse:6.60669 \n", "[496]\tvalidation-rmse:6.60664 \n", "[497]\tvalidation-rmse:6.60665 \n", "[498]\tvalidation-rmse:6.60656 \n", "[499]\tvalidation-rmse:6.60651 \n", "[500]\tvalidation-rmse:6.60649 \n", "[501]\tvalidation-rmse:6.60644 \n", "[502]\tvalidation-rmse:6.60643 \n", "[503]\tvalidation-rmse:6.60635 \n", "[504]\tvalidation-rmse:6.60636 \n", "[505]\tvalidation-rmse:6.60628 \n", "[506]\tvalidation-rmse:6.60631 \n", "[507]\tvalidation-rmse:6.60631 \n", "[508]\tvalidation-rmse:6.60624 \n", "[509]\tvalidation-rmse:6.60616 \n", "[510]\tvalidation-rmse:6.60609 \n", "[511]\tvalidation-rmse:6.60604 \n", "[512]\tvalidation-rmse:6.60595 \n", "[513]\tvalidation-rmse:6.60596 \n", "[514]\tvalidation-rmse:6.60590 \n", "[515]\tvalidation-rmse:6.60589 \n", "[516]\tvalidation-rmse:6.60582 \n", "[517]\tvalidation-rmse:6.60582 \n", "[518]\tvalidation-rmse:6.60577 \n", "[519]\tvalidation-rmse:6.60575 \n", "[520]\tvalidation-rmse:6.60571 \n", "[521]\tvalidation-rmse:6.60571 \n", "[522]\tvalidation-rmse:6.60570 \n", "[523]\tvalidation-rmse:6.60564 \n", "[524]\tvalidation-rmse:6.60562 \n", "[525]\tvalidation-rmse:6.60553 \n", "[526]\tvalidation-rmse:6.60552 \n", "[527]\tvalidation-rmse:6.60547 \n", "[528]\tvalidation-rmse:6.60547 \n", "[529]\tvalidation-rmse:6.60542 \n", "[530]\tvalidation-rmse:6.60543 \n", "[531]\tvalidation-rmse:6.60538 \n", "[532]\tvalidation-rmse:6.60533 \n", "[533]\tvalidation-rmse:6.60529 \n", "[534]\tvalidation-rmse:6.60524 \n", "[535]\tvalidation-rmse:6.60522 \n", "[536]\tvalidation-rmse:6.60511 \n", "[537]\tvalidation-rmse:6.60509 \n", "[538]\tvalidation-rmse:6.60500 \n", "[539]\tvalidation-rmse:6.60493 \n", "[540]\tvalidation-rmse:6.60491 \n", "[541]\tvalidation-rmse:6.60494 \n", "[542]\tvalidation-rmse:6.60487 \n", "[543]\tvalidation-rmse:6.60488 \n", "[544]\tvalidation-rmse:6.60482 \n", "[545]\tvalidation-rmse:6.60476 \n", "[546]\tvalidation-rmse:6.60480 \n", "[547]\tvalidation-rmse:6.60476 \n", "[548]\tvalidation-rmse:6.60462 \n", "[549]\tvalidation-rmse:6.60456 \n", "[550]\tvalidation-rmse:6.60455 \n", "[551]\tvalidation-rmse:6.60452 \n", "[552]\tvalidation-rmse:6.60450 \n", "[553]\tvalidation-rmse:6.60445 \n", "[554]\tvalidation-rmse:6.60434 \n", "[555]\tvalidation-rmse:6.60426 \n", "[556]\tvalidation-rmse:6.60417 \n", "[557]\tvalidation-rmse:6.60409 \n", "[558]\tvalidation-rmse:6.60406 \n", "[559]\tvalidation-rmse:6.60404 \n", "[560]\tvalidation-rmse:6.60404 \n", "[561]\tvalidation-rmse:6.60399 \n", "[562]\tvalidation-rmse:6.60395 \n", "[563]\tvalidation-rmse:6.60398 \n", "[564]\tvalidation-rmse:6.60391 \n", "[565]\tvalidation-rmse:6.60393 \n", "[566]\tvalidation-rmse:6.60386 \n", "[567]\tvalidation-rmse:6.60386 \n", "[568]\tvalidation-rmse:6.60381 \n", "[569]\tvalidation-rmse:6.60379 \n", "[570]\tvalidation-rmse:6.60375 \n", "[571]\tvalidation-rmse:6.60375 \n", "[572]\tvalidation-rmse:6.60361 \n", "[573]\tvalidation-rmse:6.60348 \n", "[574]\tvalidation-rmse:6.60341 \n", "[575]\tvalidation-rmse:6.60339 \n", "[576]\tvalidation-rmse:6.60336 \n", "[577]\tvalidation-rmse:6.60333 \n", "[578]\tvalidation-rmse:6.60328 \n", "[579]\tvalidation-rmse:6.60328 \n", "[580]\tvalidation-rmse:6.60327 \n", "[581]\tvalidation-rmse:6.60312 \n", "[582]\tvalidation-rmse:6.60303 \n", "[583]\tvalidation-rmse:6.60296 \n", "[584]\tvalidation-rmse:6.60296 \n", "[585]\tvalidation-rmse:6.60280 \n", "[586]\tvalidation-rmse:6.60273 \n", "[587]\tvalidation-rmse:6.60270 \n", "[588]\tvalidation-rmse:6.60262 \n", "[589]\tvalidation-rmse:6.60255 \n", "[590]\tvalidation-rmse:6.60253 \n", "[591]\tvalidation-rmse:6.60241 \n", "[592]\tvalidation-rmse:6.60231 \n", "[593]\tvalidation-rmse:6.60224 \n", "[594]\tvalidation-rmse:6.60214 \n", "[595]\tvalidation-rmse:6.60204 \n", "[596]\tvalidation-rmse:6.60198 \n", "[597]\tvalidation-rmse:6.60186 \n", "[598]\tvalidation-rmse:6.60181 \n", "[599]\tvalidation-rmse:6.60177 \n", "[600]\tvalidation-rmse:6.60170 \n", "[601]\tvalidation-rmse:6.60163 \n", "[602]\tvalidation-rmse:6.60156 \n", "[603]\tvalidation-rmse:6.60152 \n", "[604]\tvalidation-rmse:6.60149 \n", "[605]\tvalidation-rmse:6.60143 \n", "[606]\tvalidation-rmse:6.60137 \n", "[607]\tvalidation-rmse:6.60133 \n", "[608]\tvalidation-rmse:6.60132 \n", "[609]\tvalidation-rmse:6.60116 \n", "[610]\tvalidation-rmse:6.60110 \n", "[611]\tvalidation-rmse:6.60108 \n", "[612]\tvalidation-rmse:6.60105 \n", "[613]\tvalidation-rmse:6.60103 \n", "[614]\tvalidation-rmse:6.60099 \n", "[615]\tvalidation-rmse:6.60094 \n", "[616]\tvalidation-rmse:6.60082 \n", "[617]\tvalidation-rmse:6.60079 \n", "[618]\tvalidation-rmse:6.60071 \n", "[619]\tvalidation-rmse:6.60063 \n", "[620]\tvalidation-rmse:6.60059 \n", "[621]\tvalidation-rmse:6.60055 \n", "[622]\tvalidation-rmse:6.60050 \n", "[623]\tvalidation-rmse:6.60047 \n", "[624]\tvalidation-rmse:6.60040 \n", "[625]\tvalidation-rmse:6.60041 \n", "[626]\tvalidation-rmse:6.60038 \n", "[627]\tvalidation-rmse:6.60031 \n", "[628]\tvalidation-rmse:6.60027 \n", "[629]\tvalidation-rmse:6.60020 \n", "[630]\tvalidation-rmse:6.60018 \n", "[631]\tvalidation-rmse:6.60014 \n", "[632]\tvalidation-rmse:6.60005 \n", "[633]\tvalidation-rmse:6.60000 \n", "[634]\tvalidation-rmse:6.59997 \n", "[635]\tvalidation-rmse:6.59994 \n", "[636]\tvalidation-rmse:6.59988 \n", "[637]\tvalidation-rmse:6.59984 \n", "[638]\tvalidation-rmse:6.59979 \n", "[639]\tvalidation-rmse:6.59978 \n", "[640]\tvalidation-rmse:6.59975 \n", "[641]\tvalidation-rmse:6.59970 \n", "[642]\tvalidation-rmse:6.59966 \n", "[643]\tvalidation-rmse:6.59961 \n", "[644]\tvalidation-rmse:6.59960 \n", "[645]\tvalidation-rmse:6.59956 \n", "[646]\tvalidation-rmse:6.59953 \n", "[647]\tvalidation-rmse:6.59954 \n", "[648]\tvalidation-rmse:6.59950 \n", "[649]\tvalidation-rmse:6.59943 \n", "[650]\tvalidation-rmse:6.59938 \n", "[651]\tvalidation-rmse:6.59934 \n", "[652]\tvalidation-rmse:6.59928 \n", "[653]\tvalidation-rmse:6.59926 \n", "[654]\tvalidation-rmse:6.59923 \n", "[655]\tvalidation-rmse:6.59923 \n", "[656]\tvalidation-rmse:6.59919 \n", "[657]\tvalidation-rmse:6.59912 \n", "[658]\tvalidation-rmse:6.59910 \n", "[659]\tvalidation-rmse:6.59901 \n", "[660]\tvalidation-rmse:6.59897 \n", "[661]\tvalidation-rmse:6.59893 \n", "[662]\tvalidation-rmse:6.59886 \n", "[663]\tvalidation-rmse:6.59884 \n", "[664]\tvalidation-rmse:6.59886 \n", "[665]\tvalidation-rmse:6.59886 \n", "[666]\tvalidation-rmse:6.59882 \n", "[667]\tvalidation-rmse:6.59885 \n", "[668]\tvalidation-rmse:6.59882 \n", "[669]\tvalidation-rmse:6.59877 \n", "[670]\tvalidation-rmse:6.59872 \n", "[671]\tvalidation-rmse:6.59870 \n", "[672]\tvalidation-rmse:6.59868 \n", "[673]\tvalidation-rmse:6.59864 \n", "[674]\tvalidation-rmse:6.59857 \n", "[675]\tvalidation-rmse:6.59857 \n", "[676]\tvalidation-rmse:6.59853 \n", "[677]\tvalidation-rmse:6.59849 \n", "[678]\tvalidation-rmse:6.59849 \n", "[679]\tvalidation-rmse:6.59844 \n", "[680]\tvalidation-rmse:6.59843 \n", "[681]\tvalidation-rmse:6.59840 \n", "[682]\tvalidation-rmse:6.59836 \n", "[683]\tvalidation-rmse:6.59831 \n", "[684]\tvalidation-rmse:6.59829 \n", "[685]\tvalidation-rmse:6.59825 \n", "[686]\tvalidation-rmse:6.59825 \n", "[687]\tvalidation-rmse:6.59823 \n", "[688]\tvalidation-rmse:6.59827 \n", "[689]\tvalidation-rmse:6.59816 \n", "[690]\tvalidation-rmse:6.59812 \n", "[691]\tvalidation-rmse:6.59807 \n", "[692]\tvalidation-rmse:6.59800 \n", "[693]\tvalidation-rmse:6.59795 \n", "[694]\tvalidation-rmse:6.59791 \n", "[695]\tvalidation-rmse:6.59788 \n", "[696]\tvalidation-rmse:6.59791 \n", "[697]\tvalidation-rmse:6.59786 \n", "[698]\tvalidation-rmse:6.59776 \n", "[699]\tvalidation-rmse:6.59772 \n", "[700]\tvalidation-rmse:6.59767 \n", "[701]\tvalidation-rmse:6.59762 \n", "[702]\tvalidation-rmse:6.59757 \n", "[703]\tvalidation-rmse:6.59758 \n", "[704]\tvalidation-rmse:6.59753 \n", "[705]\tvalidation-rmse:6.59752 \n", "[706]\tvalidation-rmse:6.59749 \n", "[707]\tvalidation-rmse:6.59745 \n", "[708]\tvalidation-rmse:6.59739 \n", "[709]\tvalidation-rmse:6.59736 \n", "[710]\tvalidation-rmse:6.59736 \n", "[711]\tvalidation-rmse:6.59733 \n", "[712]\tvalidation-rmse:6.59732 \n", "[713]\tvalidation-rmse:6.59729 \n", "[714]\tvalidation-rmse:6.59726 \n", "[715]\tvalidation-rmse:6.59724 \n", "[716]\tvalidation-rmse:6.59726 \n", "[717]\tvalidation-rmse:6.59721 \n", "[718]\tvalidation-rmse:6.59716 \n", "[719]\tvalidation-rmse:6.59716 \n", "[720]\tvalidation-rmse:6.59712 \n", "[721]\tvalidation-rmse:6.59706 \n", "[722]\tvalidation-rmse:6.59701 \n", "[723]\tvalidation-rmse:6.59700 \n", "[724]\tvalidation-rmse:6.59698 \n", "[725]\tvalidation-rmse:6.59697 \n", "[726]\tvalidation-rmse:6.59693 \n", "[727]\tvalidation-rmse:6.59695 \n", "[728]\tvalidation-rmse:6.59694 \n", "[729]\tvalidation-rmse:6.59694 \n", "[730]\tvalidation-rmse:6.59691 \n", "[731]\tvalidation-rmse:6.59679 \n", "[732]\tvalidation-rmse:6.59672 \n", "[733]\tvalidation-rmse:6.59669 \n", "[734]\tvalidation-rmse:6.59667 \n", "[735]\tvalidation-rmse:6.59664 \n", "[736]\tvalidation-rmse:6.59662 \n", "[737]\tvalidation-rmse:6.59663 \n", "[738]\tvalidation-rmse:6.59658 \n", "[739]\tvalidation-rmse:6.59658 \n", "[740]\tvalidation-rmse:6.59657 \n", "[741]\tvalidation-rmse:6.59661 \n", "[742]\tvalidation-rmse:6.59657 \n", "[743]\tvalidation-rmse:6.59659 \n", "[744]\tvalidation-rmse:6.59658 \n", "[745]\tvalidation-rmse:6.59657 \n", "[746]\tvalidation-rmse:6.59654 \n", "[747]\tvalidation-rmse:6.59656 \n", "[748]\tvalidation-rmse:6.59650 \n", "[749]\tvalidation-rmse:6.59646 \n", "[750]\tvalidation-rmse:6.59646 \n", "[751]\tvalidation-rmse:6.59640 \n", "[752]\tvalidation-rmse:6.59648 \n", "[753]\tvalidation-rmse:6.59643 \n", "[754]\tvalidation-rmse:6.59638 \n", "[755]\tvalidation-rmse:6.59637 \n", "[756]\tvalidation-rmse:6.59632 \n", "[757]\tvalidation-rmse:6.59635 \n", "[758]\tvalidation-rmse:6.59636 \n", "[759]\tvalidation-rmse:6.59620 \n", "[760]\tvalidation-rmse:6.59620 \n", "[761]\tvalidation-rmse:6.59617 \n", "[762]\tvalidation-rmse:6.59619 \n", "[763]\tvalidation-rmse:6.59616 \n", "[764]\tvalidation-rmse:6.59614 \n", "[765]\tvalidation-rmse:6.59614 \n", "[766]\tvalidation-rmse:6.59613 \n", "[767]\tvalidation-rmse:6.59612 \n", "[768]\tvalidation-rmse:6.59612 \n", "[769]\tvalidation-rmse:6.59608 \n", "[770]\tvalidation-rmse:6.59606 \n", "[771]\tvalidation-rmse:6.59605 \n", "[772]\tvalidation-rmse:6.59605 \n", "[773]\tvalidation-rmse:6.59604 \n", "[774]\tvalidation-rmse:6.59604 \n", "[775]\tvalidation-rmse:6.59603 \n", "[776]\tvalidation-rmse:6.59601 \n", "[777]\tvalidation-rmse:6.59601 \n", "[778]\tvalidation-rmse:6.59599 \n", "[779]\tvalidation-rmse:6.59598 \n", "[780]\tvalidation-rmse:6.59593 \n", "[781]\tvalidation-rmse:6.59590 \n", "[782]\tvalidation-rmse:6.59588 \n", "[783]\tvalidation-rmse:6.59584 \n", "[784]\tvalidation-rmse:6.59583 \n", "[785]\tvalidation-rmse:6.59581 \n", "[786]\tvalidation-rmse:6.59585 \n", "[787]\tvalidation-rmse:6.59580 \n", "[788]\tvalidation-rmse:6.59575 \n", "[789]\tvalidation-rmse:6.59566 \n", "[790]\tvalidation-rmse:6.59568 \n", "[791]\tvalidation-rmse:6.59568 \n", "[792]\tvalidation-rmse:6.59564 \n", "[793]\tvalidation-rmse:6.59564 \n", "[794]\tvalidation-rmse:6.59560 \n", "[795]\tvalidation-rmse:6.59557 \n", "[796]\tvalidation-rmse:6.59557 \n", "[797]\tvalidation-rmse:6.59532 \n", "[798]\tvalidation-rmse:6.59527 \n", "[799]\tvalidation-rmse:6.59528 \n", "[800]\tvalidation-rmse:6.59528 \n", "[801]\tvalidation-rmse:6.59524 \n", "[802]\tvalidation-rmse:6.59523 \n", "[803]\tvalidation-rmse:6.59524 \n", "[804]\tvalidation-rmse:6.59521 \n", "[805]\tvalidation-rmse:6.59519 \n", "[806]\tvalidation-rmse:6.59517 \n", "[807]\tvalidation-rmse:6.59514 \n", "[808]\tvalidation-rmse:6.59512 \n", "[809]\tvalidation-rmse:6.59513 \n", "[810]\tvalidation-rmse:6.59512 \n", "[811]\tvalidation-rmse:6.59509 \n", "[812]\tvalidation-rmse:6.59510 \n", "[813]\tvalidation-rmse:6.59509 \n", "[814]\tvalidation-rmse:6.59505 \n", "[815]\tvalidation-rmse:6.59504 \n", "[816]\tvalidation-rmse:6.59500 \n", "[817]\tvalidation-rmse:6.59497 \n", "[818]\tvalidation-rmse:6.59494 \n", "[819]\tvalidation-rmse:6.59495 \n", "[820]\tvalidation-rmse:6.59490 \n", "[821]\tvalidation-rmse:6.59490 \n", "[822]\tvalidation-rmse:6.59487 \n", "[823]\tvalidation-rmse:6.59475 \n", "[824]\tvalidation-rmse:6.59473 \n", "[825]\tvalidation-rmse:6.59470 \n", "[826]\tvalidation-rmse:6.59462 \n", "[827]\tvalidation-rmse:6.59453 \n", "[828]\tvalidation-rmse:6.59451 \n", "[829]\tvalidation-rmse:6.59446 \n", "[830]\tvalidation-rmse:6.59442 \n", "[831]\tvalidation-rmse:6.59442 \n", "[832]\tvalidation-rmse:6.59439 \n", "[833]\tvalidation-rmse:6.59437 \n", "[834]\tvalidation-rmse:6.59437 \n", "[835]\tvalidation-rmse:6.59434 \n", "[836]\tvalidation-rmse:6.59435 \n", "[837]\tvalidation-rmse:6.59433 \n", "[838]\tvalidation-rmse:6.59432 \n", "[839]\tvalidation-rmse:6.59431 \n", "[840]\tvalidation-rmse:6.59433 \n", "[841]\tvalidation-rmse:6.59427 \n", "[842]\tvalidation-rmse:6.59428 \n", "[843]\tvalidation-rmse:6.59425 \n", "[844]\tvalidation-rmse:6.59425 \n", "[845]\tvalidation-rmse:6.59424 \n", "[846]\tvalidation-rmse:6.59422 \n", "[847]\tvalidation-rmse:6.59419 \n", "[848]\tvalidation-rmse:6.59420 \n", "[849]\tvalidation-rmse:6.59409 \n", "[850]\tvalidation-rmse:6.59409 \n", "[851]\tvalidation-rmse:6.59408 \n", "[852]\tvalidation-rmse:6.59397 \n", "[853]\tvalidation-rmse:6.59399 \n", "[854]\tvalidation-rmse:6.59401 \n", "[855]\tvalidation-rmse:6.59399 \n", "[856]\tvalidation-rmse:6.59395 \n", "[857]\tvalidation-rmse:6.59394 \n", "[858]\tvalidation-rmse:6.59391 \n", "[859]\tvalidation-rmse:6.59387 \n", "[860]\tvalidation-rmse:6.59388 \n", "[861]\tvalidation-rmse:6.59386 \n", "[862]\tvalidation-rmse:6.59383 \n", "[863]\tvalidation-rmse:6.59382 \n", "[864]\tvalidation-rmse:6.59381 \n", "[865]\tvalidation-rmse:6.59379 \n", "[866]\tvalidation-rmse:6.59376 \n", "[867]\tvalidation-rmse:6.59374 \n", "[868]\tvalidation-rmse:6.59374 \n", "[869]\tvalidation-rmse:6.59367 \n", "[870]\tvalidation-rmse:6.59359 \n", "[871]\tvalidation-rmse:6.59356 \n", "[872]\tvalidation-rmse:6.59353 \n", "[873]\tvalidation-rmse:6.59350 \n", "[874]\tvalidation-rmse:6.59354 \n", "[875]\tvalidation-rmse:6.59356 \n", "[876]\tvalidation-rmse:6.59353 \n", "[877]\tvalidation-rmse:6.59352 \n", "[878]\tvalidation-rmse:6.59350 \n", "[879]\tvalidation-rmse:6.59353 \n", "[880]\tvalidation-rmse:6.59348 \n", "[881]\tvalidation-rmse:6.59345 \n", "[882]\tvalidation-rmse:6.59342 \n", "[883]\tvalidation-rmse:6.59341 \n", "[884]\tvalidation-rmse:6.59341 \n", "[885]\tvalidation-rmse:6.59334 \n", "[886]\tvalidation-rmse:6.59331 \n", "[887]\tvalidation-rmse:6.59328 \n", "[888]\tvalidation-rmse:6.59328 \n", "[889]\tvalidation-rmse:6.59324 \n", "[890]\tvalidation-rmse:6.59327 \n", "[891]\tvalidation-rmse:6.59312 \n", "[892]\tvalidation-rmse:6.59309 \n", "[893]\tvalidation-rmse:6.59309 \n", "[894]\tvalidation-rmse:6.59305 \n", "[895]\tvalidation-rmse:6.59305 \n", "[896]\tvalidation-rmse:6.59305 \n", "[897]\tvalidation-rmse:6.59308 \n", "[898]\tvalidation-rmse:6.59298 \n", "[899]\tvalidation-rmse:6.59298 \n", "[900]\tvalidation-rmse:6.59295 \n", "[901]\tvalidation-rmse:6.59281 \n", "[902]\tvalidation-rmse:6.59274 \n", "[903]\tvalidation-rmse:6.59277 \n", "[904]\tvalidation-rmse:6.59268 \n", "[905]\tvalidation-rmse:6.59271 \n", "[906]\tvalidation-rmse:6.59263 \n", "[907]\tvalidation-rmse:6.59262 \n", "[908]\tvalidation-rmse:6.59262 \n", "[909]\tvalidation-rmse:6.59261 \n", "[910]\tvalidation-rmse:6.59247 \n", "[911]\tvalidation-rmse:6.59248 \n", "[912]\tvalidation-rmse:6.59251 \n", "[913]\tvalidation-rmse:6.59251 \n", "[914]\tvalidation-rmse:6.59246 \n", "[915]\tvalidation-rmse:6.59247 \n", "[916]\tvalidation-rmse:6.59242 \n", "[917]\tvalidation-rmse:6.59232 \n", "[918]\tvalidation-rmse:6.59222 \n", "[919]\tvalidation-rmse:6.59214 \n", "[920]\tvalidation-rmse:6.59212 \n", "[921]\tvalidation-rmse:6.59210 \n", "[922]\tvalidation-rmse:6.59199 \n", "[923]\tvalidation-rmse:6.59207 \n", "[924]\tvalidation-rmse:6.59194 \n", "[925]\tvalidation-rmse:6.59192 \n", "[926]\tvalidation-rmse:6.59175 \n", "[927]\tvalidation-rmse:6.59175 \n", "[928]\tvalidation-rmse:6.59174 \n", "[929]\tvalidation-rmse:6.59166 \n", "[930]\tvalidation-rmse:6.59168 \n", "[931]\tvalidation-rmse:6.59166 \n", "[932]\tvalidation-rmse:6.59155 \n", "[933]\tvalidation-rmse:6.59154 \n", "[934]\tvalidation-rmse:6.59155 \n", "[935]\tvalidation-rmse:6.59156 \n", "[936]\tvalidation-rmse:6.59154 \n", "[937]\tvalidation-rmse:6.59154 \n", "[938]\tvalidation-rmse:6.59153 \n", "[939]\tvalidation-rmse:6.59151 \n", "[940]\tvalidation-rmse:6.59152 \n", "[941]\tvalidation-rmse:6.59148 \n", "[942]\tvalidation-rmse:6.59145 \n", "[943]\tvalidation-rmse:6.59142 \n", "[944]\tvalidation-rmse:6.59147 \n", "[945]\tvalidation-rmse:6.59132 \n", "[946]\tvalidation-rmse:6.59132 \n", "[947]\tvalidation-rmse:6.59131 \n", "[948]\tvalidation-rmse:6.59131 \n", "[949]\tvalidation-rmse:6.59129 \n", "[950]\tvalidation-rmse:6.59124 \n", "[951]\tvalidation-rmse:6.59125 \n", "[952]\tvalidation-rmse:6.59122 \n", "[953]\tvalidation-rmse:6.59124 \n", "[954]\tvalidation-rmse:6.59124 \n", "[955]\tvalidation-rmse:6.59123 \n", "[956]\tvalidation-rmse:6.59122 \n", "[957]\tvalidation-rmse:6.59119 \n", "[958]\tvalidation-rmse:6.59116 \n", "[959]\tvalidation-rmse:6.59113 \n", "[960]\tvalidation-rmse:6.59113 \n", "[961]\tvalidation-rmse:6.59113 \n", "[962]\tvalidation-rmse:6.59114 \n", "[963]\tvalidation-rmse:6.59111 \n", "[964]\tvalidation-rmse:6.59111 \n", "[965]\tvalidation-rmse:6.59109 \n", "[966]\tvalidation-rmse:6.59111 \n", "[967]\tvalidation-rmse:6.59107 \n", "[968]\tvalidation-rmse:6.59108 \n", "[969]\tvalidation-rmse:6.59104 \n", "[970]\tvalidation-rmse:6.59102 \n", "[971]\tvalidation-rmse:6.59100 \n", "[972]\tvalidation-rmse:6.59089 \n", "[973]\tvalidation-rmse:6.59088 \n", "[974]\tvalidation-rmse:6.59091 \n", "[975]\tvalidation-rmse:6.59090 \n", "[976]\tvalidation-rmse:6.59081 \n", "[977]\tvalidation-rmse:6.59086 \n", "[978]\tvalidation-rmse:6.59081 \n", "[979]\tvalidation-rmse:6.59086 \n", "[980]\tvalidation-rmse:6.59085 \n", "[981]\tvalidation-rmse:6.59082 \n", "[982]\tvalidation-rmse:6.59082 \n", "[983]\tvalidation-rmse:6.59081 \n", "[984]\tvalidation-rmse:6.59079 \n", "[985]\tvalidation-rmse:6.59077 \n", "[986]\tvalidation-rmse:6.59071 \n", "[987]\tvalidation-rmse:6.59070 \n", "[988]\tvalidation-rmse:6.59070 \n", "[989]\tvalidation-rmse:6.59070 \n", "[990]\tvalidation-rmse:6.59068 \n", "[991]\tvalidation-rmse:6.59066 \n", "[992]\tvalidation-rmse:6.59065 \n", "[993]\tvalidation-rmse:6.59064 \n", "[994]\tvalidation-rmse:6.59065 \n", "[995]\tvalidation-rmse:6.59066 \n", "[996]\tvalidation-rmse:6.59063 \n", "[997]\tvalidation-rmse:6.59062 \n", "[998]\tvalidation-rmse:6.59057 \n", "[999]\tvalidation-rmse:6.59055 \n", "[12:55:50] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:7.94999 \n", "[1]\tvalidation-rmse:6.66505 \n", "[2]\tvalidation-rmse:6.51208 \n", "[3]\tvalidation-rmse:6.49198 \n", "[4]\tvalidation-rmse:6.47869 \n", "[5]\tvalidation-rmse:6.46969 \n", "[6]\tvalidation-rmse:6.45923 \n", "[7]\tvalidation-rmse:6.44862 \n", "[8]\tvalidation-rmse:6.44191 \n", "[9]\tvalidation-rmse:6.43372 \n", "[10]\tvalidation-rmse:6.42872 \n", "[11]\tvalidation-rmse:6.41933 \n", "[12]\tvalidation-rmse:6.40998 \n", "[13]\tvalidation-rmse:6.40807 \n", "[14]\tvalidation-rmse:6.40168 \n", "[15]\tvalidation-rmse:6.39808 \n", "[16]\tvalidation-rmse:6.39353 \n", "[17]\tvalidation-rmse:6.39163 \n", "[18]\tvalidation-rmse:6.38800 \n", "[19]\tvalidation-rmse:6.38631 \n", "[20]\tvalidation-rmse:6.38182 \n", "[21]\tvalidation-rmse:6.37997 \n", "[22]\tvalidation-rmse:6.37545 \n", "[23]\tvalidation-rmse:6.37345 \n", "[24]\tvalidation-rmse:6.37131 \n", "[25]\tvalidation-rmse:6.36773 \n", "[26]\tvalidation-rmse:6.36801 \n", "[27]\tvalidation-rmse:6.36636 \n", "[28]\tvalidation-rmse:6.36504 \n", "[29]\tvalidation-rmse:6.36354 \n", "[30]\tvalidation-rmse:6.36220 \n", "[31]\tvalidation-rmse:6.36060 \n", "[32]\tvalidation-rmse:6.35946 \n", "[33]\tvalidation-rmse:6.35664 \n", "[34]\tvalidation-rmse:6.35519 \n", "[35]\tvalidation-rmse:6.35318 \n", "[36]\tvalidation-rmse:6.34908 \n", "[37]\tvalidation-rmse:6.34733 \n", "[38]\tvalidation-rmse:6.34574 \n", "[39]\tvalidation-rmse:6.34358 \n", "[40]\tvalidation-rmse:6.34305 \n", "[41]\tvalidation-rmse:6.34277 \n", "[42]\tvalidation-rmse:6.34077 \n", "[43]\tvalidation-rmse:6.33846 \n", "[44]\tvalidation-rmse:6.34654 \n", "[45]\tvalidation-rmse:6.34720 \n", "[46]\tvalidation-rmse:6.34523 \n", "[47]\tvalidation-rmse:6.34598 \n", "[48]\tvalidation-rmse:6.34558 \n", "[49]\tvalidation-rmse:6.34492 \n", "[50]\tvalidation-rmse:6.34528 \n", "[51]\tvalidation-rmse:6.34436 \n", "[52]\tvalidation-rmse:6.34400 \n", "[53]\tvalidation-rmse:6.34258 \n", "[54]\tvalidation-rmse:6.34259 \n", "[55]\tvalidation-rmse:6.34310 \n", "[56]\tvalidation-rmse:6.34271 \n", "[57]\tvalidation-rmse:6.34365 \n", "[58]\tvalidation-rmse:6.34363 \n", "[59]\tvalidation-rmse:6.34370 \n", "[60]\tvalidation-rmse:6.34441 \n", "[61]\tvalidation-rmse:6.34450 \n", "[62]\tvalidation-rmse:6.34563 \n", "[63]\tvalidation-rmse:6.34507 \n", "[64]\tvalidation-rmse:6.34467 \n", "[65]\tvalidation-rmse:6.34943 \n", "[66]\tvalidation-rmse:6.35302 \n", "[67]\tvalidation-rmse:6.35254 \n", "[68]\tvalidation-rmse:6.35299 \n", "[69]\tvalidation-rmse:6.35342 \n", "[70]\tvalidation-rmse:6.35833 \n", "[71]\tvalidation-rmse:6.35778 \n", "[72]\tvalidation-rmse:6.35878 \n", "[73]\tvalidation-rmse:6.36046 \n", "[74]\tvalidation-rmse:6.36036 \n", "[75]\tvalidation-rmse:6.36086 \n", "[76]\tvalidation-rmse:6.36137 \n", "[77]\tvalidation-rmse:6.36148 \n", "[78]\tvalidation-rmse:6.35999 \n", "[79]\tvalidation-rmse:6.36180 \n", "[80]\tvalidation-rmse:6.36185 \n", "[81]\tvalidation-rmse:6.36225 \n", "[82]\tvalidation-rmse:6.36401 \n", "[83]\tvalidation-rmse:6.36304 \n", "[84]\tvalidation-rmse:6.36272 \n", "[85]\tvalidation-rmse:6.36578 \n", "[86]\tvalidation-rmse:6.36743 \n", "[87]\tvalidation-rmse:6.36803 \n", "[88]\tvalidation-rmse:6.36723 \n", "[89]\tvalidation-rmse:6.36825 \n", "[90]\tvalidation-rmse:6.36886 \n", "[91]\tvalidation-rmse:6.36812 \n", "[92]\tvalidation-rmse:6.37044 \n", "[93]\tvalidation-rmse:6.37256 \n", "[12:56:10] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:10.64481 \n", "[1]\tvalidation-rmse:7.64485 \n", "[2]\tvalidation-rmse:6.90495 \n", "[3]\tvalidation-rmse:6.69288 \n", "[4]\tvalidation-rmse:6.62681 \n", "[5]\tvalidation-rmse:6.59206 \n", "[6]\tvalidation-rmse:6.57508 \n", "[7]\tvalidation-rmse:6.56611 \n", "[8]\tvalidation-rmse:6.55936 \n", "[9]\tvalidation-rmse:6.55532 \n", "[10]\tvalidation-rmse:6.55041 \n", "[11]\tvalidation-rmse:6.54803 \n", "[12]\tvalidation-rmse:6.54640 \n", "[13]\tvalidation-rmse:6.54392 \n", "[14]\tvalidation-rmse:6.54173 \n", "[15]\tvalidation-rmse:6.54067 \n", "[16]\tvalidation-rmse:6.53834 \n", "[17]\tvalidation-rmse:6.53847 \n", "[18]\tvalidation-rmse:6.53800 \n", "[19]\tvalidation-rmse:6.53789 \n", "[20]\tvalidation-rmse:6.53673 \n", "[21]\tvalidation-rmse:6.53516 \n", "[22]\tvalidation-rmse:6.53412 \n", "[23]\tvalidation-rmse:6.53367 \n", "[24]\tvalidation-rmse:6.53404 \n", "[25]\tvalidation-rmse:6.53348 \n", "[26]\tvalidation-rmse:6.53196 \n", "[27]\tvalidation-rmse:6.53243 \n", "[28]\tvalidation-rmse:6.53148 \n", "[29]\tvalidation-rmse:6.53113 \n", "[30]\tvalidation-rmse:6.53006 \n", "[31]\tvalidation-rmse:6.53090 \n", "[32]\tvalidation-rmse:6.53054 \n", "[33]\tvalidation-rmse:6.53009 \n", "[34]\tvalidation-rmse:6.52972 \n", "[35]\tvalidation-rmse:6.52924 \n", "[36]\tvalidation-rmse:6.52903 \n", "[37]\tvalidation-rmse:6.52863 \n", "[38]\tvalidation-rmse:6.52801 \n", "[39]\tvalidation-rmse:6.52808 \n", "[40]\tvalidation-rmse:6.52828 \n", "[41]\tvalidation-rmse:6.52731 \n", "[42]\tvalidation-rmse:6.52783 \n", "[43]\tvalidation-rmse:6.52872 \n", "[44]\tvalidation-rmse:6.52963 \n", "[45]\tvalidation-rmse:6.52899 \n", "[46]\tvalidation-rmse:6.53073 \n", "[47]\tvalidation-rmse:6.52950 \n", "[48]\tvalidation-rmse:6.53035 \n", "[49]\tvalidation-rmse:6.53058 \n", "[50]\tvalidation-rmse:6.53122 \n", "[51]\tvalidation-rmse:6.53192 \n", "[52]\tvalidation-rmse:6.53104 \n", "[53]\tvalidation-rmse:6.53145 \n", "[54]\tvalidation-rmse:6.53271 \n", "[55]\tvalidation-rmse:6.53334 \n", "[56]\tvalidation-rmse:6.53331 \n", "[57]\tvalidation-rmse:6.53292 \n", "[58]\tvalidation-rmse:6.53320 \n", "[59]\tvalidation-rmse:6.53360 \n", "[60]\tvalidation-rmse:6.53470 \n", "[61]\tvalidation-rmse:6.53684 \n", "[62]\tvalidation-rmse:6.53724 \n", "[63]\tvalidation-rmse:6.53771 \n", "[64]\tvalidation-rmse:6.53771 \n", "[65]\tvalidation-rmse:6.53707 \n", "[66]\tvalidation-rmse:6.53710 \n", "[67]\tvalidation-rmse:6.53764 \n", "[68]\tvalidation-rmse:6.53782 \n", "[69]\tvalidation-rmse:6.54225 \n", "[70]\tvalidation-rmse:6.54279 \n", "[71]\tvalidation-rmse:6.54347 \n", "[72]\tvalidation-rmse:6.54594 \n", "[73]\tvalidation-rmse:6.54586 \n", "[74]\tvalidation-rmse:6.54631 \n", "[75]\tvalidation-rmse:6.54722 \n", "[76]\tvalidation-rmse:6.54778 \n", "[77]\tvalidation-rmse:6.54802 \n", "[78]\tvalidation-rmse:6.54803 \n", "[79]\tvalidation-rmse:6.54922 \n", "[80]\tvalidation-rmse:6.54988 \n", "[81]\tvalidation-rmse:6.55017 \n", "[82]\tvalidation-rmse:6.55089 \n", "[83]\tvalidation-rmse:6.55261 \n", "[84]\tvalidation-rmse:6.55250 \n", "[85]\tvalidation-rmse:6.55257 \n", "[86]\tvalidation-rmse:6.55263 \n", "[87]\tvalidation-rmse:6.55446 \n", "[88]\tvalidation-rmse:6.55437 \n", "[89]\tvalidation-rmse:6.55435 \n", "[90]\tvalidation-rmse:6.55521 \n", "[91]\tvalidation-rmse:6.55597 \n", "[12:56:38] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.03354 \n", "[1]\tvalidation-rmse:8.52700 \n", "[2]\tvalidation-rmse:7.33946 \n", "[3]\tvalidation-rmse:6.94272 \n", "[4]\tvalidation-rmse:6.79021 \n", "[5]\tvalidation-rmse:6.72366 \n", "[6]\tvalidation-rmse:6.69201 \n", "[7]\tvalidation-rmse:6.67523 \n", "[8]\tvalidation-rmse:6.66677 \n", "[9]\tvalidation-rmse:6.66270 \n", "[10]\tvalidation-rmse:6.65757 \n", "[11]\tvalidation-rmse:6.65530 \n", "[12]\tvalidation-rmse:6.65331 \n", "[13]\tvalidation-rmse:6.65262 \n", "[14]\tvalidation-rmse:6.65035 \n", "[15]\tvalidation-rmse:6.65039 \n", "[16]\tvalidation-rmse:6.64985 \n", "[17]\tvalidation-rmse:6.64910 \n", "[18]\tvalidation-rmse:6.64815 \n", "[19]\tvalidation-rmse:6.64793 \n", "[20]\tvalidation-rmse:6.64728 \n", "[21]\tvalidation-rmse:6.64619 \n", "[22]\tvalidation-rmse:6.64553 \n", "[23]\tvalidation-rmse:6.64453 \n", "[24]\tvalidation-rmse:6.64315 \n", "[25]\tvalidation-rmse:6.64343 \n", "[26]\tvalidation-rmse:6.64214 \n", "[27]\tvalidation-rmse:6.64246 \n", "[28]\tvalidation-rmse:6.64070 \n", "[29]\tvalidation-rmse:6.64053 \n", "[30]\tvalidation-rmse:6.64135 \n", "[31]\tvalidation-rmse:6.64136 \n", "[32]\tvalidation-rmse:6.64292 \n", "[33]\tvalidation-rmse:6.64347 \n", "[34]\tvalidation-rmse:6.64399 \n", "[35]\tvalidation-rmse:6.64377 \n", "[36]\tvalidation-rmse:6.64454 \n", "[37]\tvalidation-rmse:6.64379 \n", "[38]\tvalidation-rmse:6.64488 \n", "[39]\tvalidation-rmse:6.64694 \n", "[40]\tvalidation-rmse:6.64707 \n", "[41]\tvalidation-rmse:6.64918 \n", "[42]\tvalidation-rmse:6.65053 \n", "[43]\tvalidation-rmse:6.65122 \n", "[44]\tvalidation-rmse:6.65037 \n", "[45]\tvalidation-rmse:6.65063 \n", "[46]\tvalidation-rmse:6.65130 \n", "[47]\tvalidation-rmse:6.65080 \n", "[48]\tvalidation-rmse:6.65066 \n", "[49]\tvalidation-rmse:6.65103 \n", "[50]\tvalidation-rmse:6.65142 \n", "[51]\tvalidation-rmse:6.65291 \n", "[52]\tvalidation-rmse:6.65287 \n", "[53]\tvalidation-rmse:6.65262 \n", "[54]\tvalidation-rmse:6.65313 \n", "[55]\tvalidation-rmse:6.65271 \n", "[56]\tvalidation-rmse:6.65449 \n", "[57]\tvalidation-rmse:6.65432 \n", "[58]\tvalidation-rmse:6.65530 \n", "[59]\tvalidation-rmse:6.65498 \n", "[60]\tvalidation-rmse:6.65492 \n", "[61]\tvalidation-rmse:6.65501 \n", "[62]\tvalidation-rmse:6.65459 \n", "[63]\tvalidation-rmse:6.65511 \n", "[64]\tvalidation-rmse:6.65514 \n", "[65]\tvalidation-rmse:6.65566 \n", "[66]\tvalidation-rmse:6.65552 \n", "[67]\tvalidation-rmse:6.65555 \n", "[68]\tvalidation-rmse:6.65657 \n", "[69]\tvalidation-rmse:6.65637 \n", "[70]\tvalidation-rmse:6.65691 \n", "[71]\tvalidation-rmse:6.65731 \n", "[72]\tvalidation-rmse:6.65695 \n", "[73]\tvalidation-rmse:6.65791 \n", "[74]\tvalidation-rmse:6.65822 \n", "[75]\tvalidation-rmse:6.65778 \n", "[76]\tvalidation-rmse:6.65749 \n", "[77]\tvalidation-rmse:6.65737 \n", "[78]\tvalidation-rmse:6.65779 \n", "[79]\tvalidation-rmse:6.65763 \n", "[12:57:04] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:6.80989 \n", "[1]\tvalidation-rmse:6.70418 \n", "[2]\tvalidation-rmse:6.67275 \n", "[3]\tvalidation-rmse:6.65733 \n", "[4]\tvalidation-rmse:6.64064 \n", "[5]\tvalidation-rmse:6.63494 \n", "[6]\tvalidation-rmse:6.63649 \n", "[7]\tvalidation-rmse:6.62836 \n", "[8]\tvalidation-rmse:6.62406 \n", "[9]\tvalidation-rmse:6.61550 \n", "[10]\tvalidation-rmse:6.61334 \n", "[11]\tvalidation-rmse:6.61281 \n", "[12]\tvalidation-rmse:6.60964 \n", "[13]\tvalidation-rmse:6.60956 \n", "[14]\tvalidation-rmse:6.60787 \n", "[15]\tvalidation-rmse:6.60701 \n", "[16]\tvalidation-rmse:6.60575 \n", "[17]\tvalidation-rmse:6.60646 \n", "[18]\tvalidation-rmse:6.60317 \n", "[19]\tvalidation-rmse:6.60425 \n", "[20]\tvalidation-rmse:6.60630 \n", "[21]\tvalidation-rmse:6.60418 \n", "[22]\tvalidation-rmse:6.60286 \n", "[23]\tvalidation-rmse:6.60203 \n", "[24]\tvalidation-rmse:6.60279 \n", "[25]\tvalidation-rmse:6.60278 \n", "[26]\tvalidation-rmse:6.60153 \n", "[27]\tvalidation-rmse:6.60786 \n", "[28]\tvalidation-rmse:6.60726 \n", "[29]\tvalidation-rmse:6.61617 \n", "[30]\tvalidation-rmse:6.61597 \n", "[31]\tvalidation-rmse:6.61643 \n", "[32]\tvalidation-rmse:6.61416 \n", "[33]\tvalidation-rmse:6.61543 \n", "[34]\tvalidation-rmse:6.61535 \n", "[35]\tvalidation-rmse:6.61594 \n", "[36]\tvalidation-rmse:6.61374 \n", "[37]\tvalidation-rmse:6.61401 \n", "[38]\tvalidation-rmse:6.61224 \n", "[39]\tvalidation-rmse:6.61305 \n", "[40]\tvalidation-rmse:6.61343 \n", "[41]\tvalidation-rmse:6.61390 \n", "[42]\tvalidation-rmse:6.61557 \n", "[43]\tvalidation-rmse:6.61621 \n", "[44]\tvalidation-rmse:6.61631 \n", "[45]\tvalidation-rmse:6.61738 \n", "[46]\tvalidation-rmse:6.61950 \n", "[47]\tvalidation-rmse:6.61979 \n", "[48]\tvalidation-rmse:6.62065 \n", "[49]\tvalidation-rmse:6.62318 \n", "[50]\tvalidation-rmse:6.62296 \n", "[51]\tvalidation-rmse:6.62230 \n", "[52]\tvalidation-rmse:6.62222 \n", "[53]\tvalidation-rmse:6.62211 \n", "[54]\tvalidation-rmse:6.62136 \n", "[55]\tvalidation-rmse:6.62277 \n", "[56]\tvalidation-rmse:6.62317 \n", "[57]\tvalidation-rmse:6.62356 \n", "[58]\tvalidation-rmse:6.62406 \n", "[59]\tvalidation-rmse:6.62626 \n", "[60]\tvalidation-rmse:6.62628 \n", "[61]\tvalidation-rmse:6.62664 \n", "[62]\tvalidation-rmse:6.62751 \n", "[63]\tvalidation-rmse:6.62776 \n", "[64]\tvalidation-rmse:6.62699 \n", "[65]\tvalidation-rmse:6.62683 \n", "[66]\tvalidation-rmse:6.62689 \n", "[67]\tvalidation-rmse:6.62938 \n", "[68]\tvalidation-rmse:6.62989 \n", "[69]\tvalidation-rmse:6.63032 \n", "[70]\tvalidation-rmse:6.63106 \n", "[71]\tvalidation-rmse:6.63095 \n", "[72]\tvalidation-rmse:6.63214 \n", "[73]\tvalidation-rmse:6.63168 \n", "[74]\tvalidation-rmse:6.63180 \n", "[75]\tvalidation-rmse:6.63249 \n", "[76]\tvalidation-rmse:6.63311 \n", "[12:57:23] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:18.73838 \n", "[1]\tvalidation-rmse:16.65480 \n", "[2]\tvalidation-rmse:14.89445 \n", "[3]\tvalidation-rmse:13.41476 \n", "[4]\tvalidation-rmse:12.17492 \n", "[5]\tvalidation-rmse:11.14544 \n", "[6]\tvalidation-rmse:10.29238 \n", "[7]\tvalidation-rmse:9.59132 \n", "[8]\tvalidation-rmse:9.01886 \n", "[9]\tvalidation-rmse:8.55327 \n", "[10]\tvalidation-rmse:8.17608 \n", "[11]\tvalidation-rmse:7.87159 \n", "[12]\tvalidation-rmse:7.62357 \n", "[13]\tvalidation-rmse:7.42538 \n", "[14]\tvalidation-rmse:7.26560 \n", "[15]\tvalidation-rmse:7.13530 \n", "[16]\tvalidation-rmse:7.02884 \n", "[17]\tvalidation-rmse:6.94293 \n", "[18]\tvalidation-rmse:6.87393 \n", "[19]\tvalidation-rmse:6.81595 \n", "[20]\tvalidation-rmse:6.76813 \n", "[21]\tvalidation-rmse:6.72832 \n", "[22]\tvalidation-rmse:6.69469 \n", "[23]\tvalidation-rmse:6.66751 \n", "[24]\tvalidation-rmse:6.64510 \n", "[25]\tvalidation-rmse:6.62421 \n", "[26]\tvalidation-rmse:6.60612 \n", "[27]\tvalidation-rmse:6.59131 \n", "[28]\tvalidation-rmse:6.57727 \n", "[29]\tvalidation-rmse:6.56610 \n", "[30]\tvalidation-rmse:6.55680 \n", "[31]\tvalidation-rmse:6.54856 \n", "[32]\tvalidation-rmse:6.54149 \n", "[33]\tvalidation-rmse:6.53441 \n", "[34]\tvalidation-rmse:6.52821 \n", "[35]\tvalidation-rmse:6.52279 \n", "[36]\tvalidation-rmse:6.51852 \n", "[37]\tvalidation-rmse:6.51444 \n", "[38]\tvalidation-rmse:6.51039 \n", "[39]\tvalidation-rmse:6.50722 \n", "[40]\tvalidation-rmse:6.50486 \n", "[41]\tvalidation-rmse:6.50207 \n", "[42]\tvalidation-rmse:6.49963 \n", "[43]\tvalidation-rmse:6.49770 \n", "[44]\tvalidation-rmse:6.49520 \n", "[45]\tvalidation-rmse:6.49358 \n", "[46]\tvalidation-rmse:6.49213 \n", "[47]\tvalidation-rmse:6.49036 \n", "[48]\tvalidation-rmse:6.48902 \n", "[49]\tvalidation-rmse:6.48810 \n", "[50]\tvalidation-rmse:6.48679 \n", "[51]\tvalidation-rmse:6.48578 \n", "[52]\tvalidation-rmse:6.48438 \n", "[53]\tvalidation-rmse:6.48292 \n", "[54]\tvalidation-rmse:6.48182 \n", "[55]\tvalidation-rmse:6.48063 \n", "[56]\tvalidation-rmse:6.47937 \n", "[57]\tvalidation-rmse:6.47871 \n", "[58]\tvalidation-rmse:6.47725 \n", "[59]\tvalidation-rmse:6.47626 \n", "[60]\tvalidation-rmse:6.47554 \n", "[61]\tvalidation-rmse:6.47475 \n", "[62]\tvalidation-rmse:6.47407 \n", "[63]\tvalidation-rmse:6.47324 \n", "[64]\tvalidation-rmse:6.47261 \n", "[65]\tvalidation-rmse:6.47196 \n", "[66]\tvalidation-rmse:6.47103 \n", "[67]\tvalidation-rmse:6.46959 \n", "[68]\tvalidation-rmse:6.46887 \n", "[69]\tvalidation-rmse:6.46844 \n", "[70]\tvalidation-rmse:6.46777 \n", "[71]\tvalidation-rmse:6.46721 \n", "[72]\tvalidation-rmse:6.46646 \n", "[73]\tvalidation-rmse:6.46620 \n", "[74]\tvalidation-rmse:6.46522 \n", "[75]\tvalidation-rmse:6.46483 \n", "[76]\tvalidation-rmse:6.46450 \n", "[77]\tvalidation-rmse:6.46408 \n", "[78]\tvalidation-rmse:6.46375 \n", "[79]\tvalidation-rmse:6.46302 \n", "[80]\tvalidation-rmse:6.46270 \n", "[81]\tvalidation-rmse:6.46216 \n", "[82]\tvalidation-rmse:6.46171 \n", "[83]\tvalidation-rmse:6.46138 \n", "[84]\tvalidation-rmse:6.46088 \n", "[85]\tvalidation-rmse:6.46040 \n", "[86]\tvalidation-rmse:6.45953 \n", "[87]\tvalidation-rmse:6.45914 \n", "[88]\tvalidation-rmse:6.45851 \n", "[89]\tvalidation-rmse:6.45800 \n", "[90]\tvalidation-rmse:6.45773 \n", "[91]\tvalidation-rmse:6.45723 \n", "[92]\tvalidation-rmse:6.45688 \n", "[93]\tvalidation-rmse:6.45640 \n", "[94]\tvalidation-rmse:6.45601 \n", "[95]\tvalidation-rmse:6.45548 \n", "[96]\tvalidation-rmse:6.45517 \n", "[97]\tvalidation-rmse:6.45464 \n", "[98]\tvalidation-rmse:6.45432 \n", "[99]\tvalidation-rmse:6.45395 \n", "[100]\tvalidation-rmse:6.45367 \n", "[101]\tvalidation-rmse:6.45335 \n", "[102]\tvalidation-rmse:6.45306 \n", "[103]\tvalidation-rmse:6.45264 \n", "[104]\tvalidation-rmse:6.45245 \n", "[105]\tvalidation-rmse:6.45213 \n", "[106]\tvalidation-rmse:6.45175 \n", "[107]\tvalidation-rmse:6.45125 \n", "[108]\tvalidation-rmse:6.45056 \n", "[109]\tvalidation-rmse:6.45027 \n", "[110]\tvalidation-rmse:6.44996 \n", "[111]\tvalidation-rmse:6.44952 \n", "[112]\tvalidation-rmse:6.44922 \n", "[113]\tvalidation-rmse:6.44875 \n", "[114]\tvalidation-rmse:6.44842 \n", "[115]\tvalidation-rmse:6.44823 \n", "[116]\tvalidation-rmse:6.44805 \n", "[117]\tvalidation-rmse:6.44793 \n", "[118]\tvalidation-rmse:6.44744 \n", "[119]\tvalidation-rmse:6.44733 \n", "[120]\tvalidation-rmse:6.44701 \n", "[121]\tvalidation-rmse:6.44674 \n", "[122]\tvalidation-rmse:6.44662 \n", "[123]\tvalidation-rmse:6.44634 \n", "[124]\tvalidation-rmse:6.44561 \n", "[125]\tvalidation-rmse:6.44535 \n", "[126]\tvalidation-rmse:6.44507 \n", "[127]\tvalidation-rmse:6.44485 \n", "[128]\tvalidation-rmse:6.44469 \n", "[129]\tvalidation-rmse:6.44419 \n", "[130]\tvalidation-rmse:6.44422 \n", "[131]\tvalidation-rmse:6.44392 \n", "[132]\tvalidation-rmse:6.44382 \n", "[133]\tvalidation-rmse:6.44351 \n", "[134]\tvalidation-rmse:6.44324 \n", "[135]\tvalidation-rmse:6.44319 \n", "[136]\tvalidation-rmse:6.44270 \n", "[137]\tvalidation-rmse:6.44230 \n", "[138]\tvalidation-rmse:6.44194 \n", "[139]\tvalidation-rmse:6.44170 \n", "[140]\tvalidation-rmse:6.44152 \n", "[141]\tvalidation-rmse:6.44074 \n", "[142]\tvalidation-rmse:6.44025 \n", "[143]\tvalidation-rmse:6.44009 \n", "[144]\tvalidation-rmse:6.43981 \n", "[145]\tvalidation-rmse:6.43973 \n", "[146]\tvalidation-rmse:6.43976 \n", "[147]\tvalidation-rmse:6.43968 \n", "[148]\tvalidation-rmse:6.43948 \n", "[149]\tvalidation-rmse:6.43901 \n", "[150]\tvalidation-rmse:6.43870 \n", "[151]\tvalidation-rmse:6.43863 \n", "[152]\tvalidation-rmse:6.43852 \n", "[153]\tvalidation-rmse:6.43827 \n", "[154]\tvalidation-rmse:6.43767 \n", "[155]\tvalidation-rmse:6.43750 \n", "[156]\tvalidation-rmse:6.43749 \n", "[157]\tvalidation-rmse:6.43735 \n", "[158]\tvalidation-rmse:6.43712 \n", "[159]\tvalidation-rmse:6.43692 \n", "[160]\tvalidation-rmse:6.43668 \n", "[161]\tvalidation-rmse:6.43658 \n", "[162]\tvalidation-rmse:6.43625 \n", "[163]\tvalidation-rmse:6.43626 \n", "[164]\tvalidation-rmse:6.43611 \n", "[165]\tvalidation-rmse:6.43558 \n", "[166]\tvalidation-rmse:6.43532 \n", "[167]\tvalidation-rmse:6.43516 \n", "[168]\tvalidation-rmse:6.43506 \n", "[169]\tvalidation-rmse:6.43467 \n", "[170]\tvalidation-rmse:6.43465 \n", "[171]\tvalidation-rmse:6.43455 \n", "[172]\tvalidation-rmse:6.43470 \n", "[173]\tvalidation-rmse:6.43469 \n", "[174]\tvalidation-rmse:6.43443 \n", "[175]\tvalidation-rmse:6.43362 \n", "[176]\tvalidation-rmse:6.43340 \n", "[177]\tvalidation-rmse:6.43282 \n", "[178]\tvalidation-rmse:6.43255 \n", "[179]\tvalidation-rmse:6.43231 \n", "[180]\tvalidation-rmse:6.43199 \n", "[181]\tvalidation-rmse:6.43192 \n", "[182]\tvalidation-rmse:6.43189 \n", "[183]\tvalidation-rmse:6.43150 \n", "[184]\tvalidation-rmse:6.43154 \n", "[185]\tvalidation-rmse:6.43142 \n", "[186]\tvalidation-rmse:6.43093 \n", "[187]\tvalidation-rmse:6.43053 \n", "[188]\tvalidation-rmse:6.43043 \n", "[189]\tvalidation-rmse:6.43031 \n", "[190]\tvalidation-rmse:6.43011 \n", "[191]\tvalidation-rmse:6.42992 \n", "[192]\tvalidation-rmse:6.42976 \n", "[193]\tvalidation-rmse:6.42975 \n", "[194]\tvalidation-rmse:6.42945 \n", "[195]\tvalidation-rmse:6.42937 \n", "[196]\tvalidation-rmse:6.42961 \n", "[197]\tvalidation-rmse:6.42964 \n", "[198]\tvalidation-rmse:6.42966 \n", "[199]\tvalidation-rmse:6.42953 \n", "[200]\tvalidation-rmse:6.42946 \n", "[201]\tvalidation-rmse:6.42944 \n", "[202]\tvalidation-rmse:6.42954 \n", "[203]\tvalidation-rmse:6.42948 \n", "[204]\tvalidation-rmse:6.42943 \n", "[205]\tvalidation-rmse:6.42911 \n", "[206]\tvalidation-rmse:6.42880 \n", "[207]\tvalidation-rmse:6.42873 \n", "[208]\tvalidation-rmse:6.42899 \n", "[209]\tvalidation-rmse:6.42905 \n", "[210]\tvalidation-rmse:6.42879 \n", "[211]\tvalidation-rmse:6.42853 \n", "[212]\tvalidation-rmse:6.42835 \n", "[213]\tvalidation-rmse:6.42820 \n", "[214]\tvalidation-rmse:6.42776 \n", "[215]\tvalidation-rmse:6.42751 \n", "[216]\tvalidation-rmse:6.42715 \n", "[217]\tvalidation-rmse:6.42716 \n", "[218]\tvalidation-rmse:6.42713 \n", "[219]\tvalidation-rmse:6.42694 \n", "[220]\tvalidation-rmse:6.42687 \n", "[221]\tvalidation-rmse:6.42674 \n", "[222]\tvalidation-rmse:6.42674 \n", "[223]\tvalidation-rmse:6.42699 \n", "[224]\tvalidation-rmse:6.42720 \n", "[225]\tvalidation-rmse:6.42819 \n", "[226]\tvalidation-rmse:6.42811 \n", "[227]\tvalidation-rmse:6.42801 \n", "[228]\tvalidation-rmse:6.42788 \n", "[229]\tvalidation-rmse:6.42791 \n", "[230]\tvalidation-rmse:6.42788 \n", "[231]\tvalidation-rmse:6.42771 \n", "[232]\tvalidation-rmse:6.42758 \n", "[233]\tvalidation-rmse:6.42739 \n", "[234]\tvalidation-rmse:6.42713 \n", "[235]\tvalidation-rmse:6.42723 \n", "[236]\tvalidation-rmse:6.42726 \n", "[237]\tvalidation-rmse:6.42711 \n", "[238]\tvalidation-rmse:6.42687 \n", "[239]\tvalidation-rmse:6.42673 \n", "[240]\tvalidation-rmse:6.42656 \n", "[241]\tvalidation-rmse:6.42629 \n", "[242]\tvalidation-rmse:6.42636 \n", "[243]\tvalidation-rmse:6.42608 \n", "[244]\tvalidation-rmse:6.42595 \n", "[245]\tvalidation-rmse:6.42610 \n", "[246]\tvalidation-rmse:6.42587 \n", "[247]\tvalidation-rmse:6.42588 \n", "[248]\tvalidation-rmse:6.42595 \n", "[249]\tvalidation-rmse:6.42591 \n", "[250]\tvalidation-rmse:6.42588 \n", "[251]\tvalidation-rmse:6.42575 \n", "[252]\tvalidation-rmse:6.42579 \n", "[253]\tvalidation-rmse:6.42557 \n", "[254]\tvalidation-rmse:6.42537 \n", "[255]\tvalidation-rmse:6.42558 \n", "[256]\tvalidation-rmse:6.42567 \n", "[257]\tvalidation-rmse:6.42524 \n", "[258]\tvalidation-rmse:6.42493 \n", "[259]\tvalidation-rmse:6.42489 \n", "[260]\tvalidation-rmse:6.42475 \n", "[261]\tvalidation-rmse:6.42487 \n", "[262]\tvalidation-rmse:6.42475 \n", "[263]\tvalidation-rmse:6.42469 \n", "[264]\tvalidation-rmse:6.42439 \n", "[265]\tvalidation-rmse:6.42438 \n", "[266]\tvalidation-rmse:6.42448 \n", "[267]\tvalidation-rmse:6.42439 \n", "[268]\tvalidation-rmse:6.42431 \n", "[269]\tvalidation-rmse:6.42407 \n", "[270]\tvalidation-rmse:6.42388 \n", "[271]\tvalidation-rmse:6.42394 \n", "[272]\tvalidation-rmse:6.42393 \n", "[273]\tvalidation-rmse:6.42388 \n", "[274]\tvalidation-rmse:6.42372 \n", "[275]\tvalidation-rmse:6.42387 \n", "[276]\tvalidation-rmse:6.42388 \n", "[277]\tvalidation-rmse:6.42398 \n", "[278]\tvalidation-rmse:6.42408 \n", "[279]\tvalidation-rmse:6.42404 \n", "[280]\tvalidation-rmse:6.42379 \n", "[281]\tvalidation-rmse:6.42386 \n", "[282]\tvalidation-rmse:6.42374 \n", "[283]\tvalidation-rmse:6.42376 \n", "[284]\tvalidation-rmse:6.42366 \n", "[285]\tvalidation-rmse:6.42358 \n", "[286]\tvalidation-rmse:6.42347 \n", "[287]\tvalidation-rmse:6.42341 \n", "[288]\tvalidation-rmse:6.42331 \n", "[289]\tvalidation-rmse:6.42342 \n", "[290]\tvalidation-rmse:6.42326 \n", "[291]\tvalidation-rmse:6.42291 \n", "[292]\tvalidation-rmse:6.42282 \n", "[293]\tvalidation-rmse:6.42292 \n", "[294]\tvalidation-rmse:6.42283 \n", "[295]\tvalidation-rmse:6.42267 \n", "[296]\tvalidation-rmse:6.42255 \n", "[297]\tvalidation-rmse:6.42252 \n", "[298]\tvalidation-rmse:6.42229 \n", "[299]\tvalidation-rmse:6.42232 \n", "[300]\tvalidation-rmse:6.42235 \n", "[301]\tvalidation-rmse:6.42243 \n", "[302]\tvalidation-rmse:6.42242 \n", "[303]\tvalidation-rmse:6.42240 \n", "[304]\tvalidation-rmse:6.42237 \n", "[305]\tvalidation-rmse:6.42239 \n", "[306]\tvalidation-rmse:6.42233 \n", "[307]\tvalidation-rmse:6.42231 \n", "[308]\tvalidation-rmse:6.42233 \n", "[309]\tvalidation-rmse:6.42226 \n", "[310]\tvalidation-rmse:6.42238 \n", "[311]\tvalidation-rmse:6.42258 \n", "[312]\tvalidation-rmse:6.42253 \n", "[313]\tvalidation-rmse:6.42237 \n", "[314]\tvalidation-rmse:6.42288 \n", "[315]\tvalidation-rmse:6.42347 \n", "[316]\tvalidation-rmse:6.42361 \n", "[317]\tvalidation-rmse:6.42365 \n", "[318]\tvalidation-rmse:6.42362 \n", "[319]\tvalidation-rmse:6.42348 \n", "[320]\tvalidation-rmse:6.42355 \n", "[321]\tvalidation-rmse:6.42350 \n", "[322]\tvalidation-rmse:6.42345 \n", "[323]\tvalidation-rmse:6.42358 \n", "[324]\tvalidation-rmse:6.42357 \n", "[325]\tvalidation-rmse:6.42332 \n", "[326]\tvalidation-rmse:6.42339 \n", "[327]\tvalidation-rmse:6.42336 \n", "[328]\tvalidation-rmse:6.42311 \n", "[329]\tvalidation-rmse:6.42297 \n", "[330]\tvalidation-rmse:6.42290 \n", "[331]\tvalidation-rmse:6.42289 \n", "[332]\tvalidation-rmse:6.42284 \n", "[333]\tvalidation-rmse:6.42272 \n", "[334]\tvalidation-rmse:6.42280 \n", "[335]\tvalidation-rmse:6.42424 \n", "[336]\tvalidation-rmse:6.42436 \n", "[337]\tvalidation-rmse:6.42425 \n", "[338]\tvalidation-rmse:6.42440 \n", "[339]\tvalidation-rmse:6.42440 \n", "[340]\tvalidation-rmse:6.42434 \n", "[341]\tvalidation-rmse:6.42425 \n", "[342]\tvalidation-rmse:6.42371 \n", "[343]\tvalidation-rmse:6.42372 \n", "[344]\tvalidation-rmse:6.42373 \n", "[345]\tvalidation-rmse:6.42331 \n", "[346]\tvalidation-rmse:6.42321 \n", "[347]\tvalidation-rmse:6.42327 \n", "[348]\tvalidation-rmse:6.42325 \n", "[349]\tvalidation-rmse:6.42322 \n", "[350]\tvalidation-rmse:6.42319 \n", "[351]\tvalidation-rmse:6.42309 \n", "[352]\tvalidation-rmse:6.42280 \n", "[353]\tvalidation-rmse:6.42279 \n", "[354]\tvalidation-rmse:6.42292 \n", "[355]\tvalidation-rmse:6.42281 \n", "[356]\tvalidation-rmse:6.42280 \n", "[357]\tvalidation-rmse:6.42267 \n", "[358]\tvalidation-rmse:6.42251 \n", "[359]\tvalidation-rmse:6.42227 \n", "[12:58:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:16.46234 \n", "[1]\tvalidation-rmse:13.14594 \n", "[2]\tvalidation-rmse:10.87019 \n", "[3]\tvalidation-rmse:9.34545 \n", "[4]\tvalidation-rmse:8.34395 \n", "[5]\tvalidation-rmse:7.70253 \n", "[6]\tvalidation-rmse:7.28939 \n", "[7]\tvalidation-rmse:7.02685 \n", "[8]\tvalidation-rmse:6.85399 \n", "[9]\tvalidation-rmse:6.74153 \n", "[10]\tvalidation-rmse:6.66233 \n", "[11]\tvalidation-rmse:6.60783 \n", "[12]\tvalidation-rmse:6.56779 \n", "[13]\tvalidation-rmse:6.53906 \n", "[14]\tvalidation-rmse:6.51751 \n", "[15]\tvalidation-rmse:6.50278 \n", "[16]\tvalidation-rmse:6.49343 \n", "[17]\tvalidation-rmse:6.48424 \n", "[18]\tvalidation-rmse:6.47904 \n", "[19]\tvalidation-rmse:6.47403 \n", "[20]\tvalidation-rmse:6.46991 \n", "[21]\tvalidation-rmse:6.46657 \n", "[22]\tvalidation-rmse:6.46344 \n", "[23]\tvalidation-rmse:6.46028 \n", "[24]\tvalidation-rmse:6.45578 \n", "[25]\tvalidation-rmse:6.45352 \n", "[26]\tvalidation-rmse:6.45079 \n", "[27]\tvalidation-rmse:6.44839 \n", "[28]\tvalidation-rmse:6.44479 \n", "[29]\tvalidation-rmse:6.44292 \n", "[30]\tvalidation-rmse:6.44095 \n", "[31]\tvalidation-rmse:6.43742 \n", "[32]\tvalidation-rmse:6.43548 \n", "[33]\tvalidation-rmse:6.43346 \n", "[34]\tvalidation-rmse:6.43236 \n", "[35]\tvalidation-rmse:6.43076 \n", "[36]\tvalidation-rmse:6.42917 \n", "[37]\tvalidation-rmse:6.42837 \n", "[38]\tvalidation-rmse:6.42719 \n", "[39]\tvalidation-rmse:6.42574 \n", "[40]\tvalidation-rmse:6.42426 \n", "[41]\tvalidation-rmse:6.42287 \n", "[42]\tvalidation-rmse:6.42075 \n", "[43]\tvalidation-rmse:6.41950 \n", "[44]\tvalidation-rmse:6.41768 \n", "[45]\tvalidation-rmse:6.41618 \n", "[46]\tvalidation-rmse:6.41494 \n", "[47]\tvalidation-rmse:6.41329 \n", "[48]\tvalidation-rmse:6.41222 \n", "[49]\tvalidation-rmse:6.40964 \n", "[50]\tvalidation-rmse:6.40776 \n", "[51]\tvalidation-rmse:6.40689 \n", "[52]\tvalidation-rmse:6.40570 \n", "[53]\tvalidation-rmse:6.40467 \n", "[54]\tvalidation-rmse:6.40364 \n", "[55]\tvalidation-rmse:6.40265 \n", "[56]\tvalidation-rmse:6.40179 \n", "[57]\tvalidation-rmse:6.40090 \n", "[58]\tvalidation-rmse:6.40023 \n", "[59]\tvalidation-rmse:6.39953 \n", "[60]\tvalidation-rmse:6.39831 \n", "[61]\tvalidation-rmse:6.39715 \n", "[62]\tvalidation-rmse:6.39644 \n", "[63]\tvalidation-rmse:6.39541 \n", "[64]\tvalidation-rmse:6.39456 \n", "[65]\tvalidation-rmse:6.39325 \n", "[66]\tvalidation-rmse:6.39243 \n", "[67]\tvalidation-rmse:6.39199 \n", "[68]\tvalidation-rmse:6.39141 \n", "[69]\tvalidation-rmse:6.39062 \n", "[70]\tvalidation-rmse:6.39044 \n", "[71]\tvalidation-rmse:6.38959 \n", "[72]\tvalidation-rmse:6.38887 \n", "[73]\tvalidation-rmse:6.38834 \n", "[74]\tvalidation-rmse:6.38801 \n", "[75]\tvalidation-rmse:6.38721 \n", "[76]\tvalidation-rmse:6.38685 \n", "[77]\tvalidation-rmse:6.38587 \n", "[78]\tvalidation-rmse:6.38548 \n", "[79]\tvalidation-rmse:6.38446 \n", "[80]\tvalidation-rmse:6.38390 \n", "[81]\tvalidation-rmse:6.38288 \n", "[82]\tvalidation-rmse:6.38212 \n", "[83]\tvalidation-rmse:6.38120 \n", "[84]\tvalidation-rmse:6.38030 \n", "[85]\tvalidation-rmse:6.37994 \n", "[86]\tvalidation-rmse:6.37931 \n", "[87]\tvalidation-rmse:6.37870 \n", "[88]\tvalidation-rmse:6.37757 \n", "[89]\tvalidation-rmse:6.37698 \n", "[90]\tvalidation-rmse:6.37691 \n", "[91]\tvalidation-rmse:6.37611 \n", "[92]\tvalidation-rmse:6.37560 \n", "[93]\tvalidation-rmse:6.37431 \n", "[94]\tvalidation-rmse:6.37403 \n", "[95]\tvalidation-rmse:6.37359 \n", "[96]\tvalidation-rmse:6.37321 \n", "[97]\tvalidation-rmse:6.37261 \n", "[98]\tvalidation-rmse:6.37150 \n", "[99]\tvalidation-rmse:6.37102 \n", "[100]\tvalidation-rmse:6.37071 \n", "[101]\tvalidation-rmse:6.37048 \n", "[102]\tvalidation-rmse:6.36955 \n", "[103]\tvalidation-rmse:6.36913 \n", "[104]\tvalidation-rmse:6.36899 \n", "[105]\tvalidation-rmse:6.36871 \n", "[106]\tvalidation-rmse:6.36835 \n", "[107]\tvalidation-rmse:6.36756 \n", "[108]\tvalidation-rmse:6.36714 \n", "[109]\tvalidation-rmse:6.36675 \n", "[110]\tvalidation-rmse:6.36599 \n", "[111]\tvalidation-rmse:6.36569 \n", "[112]\tvalidation-rmse:6.36580 \n", "[113]\tvalidation-rmse:6.36560 \n", "[114]\tvalidation-rmse:6.36537 \n", "[115]\tvalidation-rmse:6.36469 \n", "[116]\tvalidation-rmse:6.36465 \n", "[117]\tvalidation-rmse:6.36409 \n", "[118]\tvalidation-rmse:6.36425 \n", "[119]\tvalidation-rmse:6.36407 \n", "[120]\tvalidation-rmse:6.36397 \n", "[121]\tvalidation-rmse:6.36341 \n", "[122]\tvalidation-rmse:6.36327 \n", "[123]\tvalidation-rmse:6.36298 \n", "[124]\tvalidation-rmse:6.36303 \n", "[125]\tvalidation-rmse:6.36290 \n", "[126]\tvalidation-rmse:6.36291 \n", "[127]\tvalidation-rmse:6.36303 \n", "[128]\tvalidation-rmse:6.36251 \n", "[129]\tvalidation-rmse:6.36211 \n", "[130]\tvalidation-rmse:6.36135 \n", "[131]\tvalidation-rmse:6.36147 \n", "[132]\tvalidation-rmse:6.36129 \n", "[133]\tvalidation-rmse:6.36063 \n", "[134]\tvalidation-rmse:6.36061 \n", "[135]\tvalidation-rmse:6.36046 \n", "[136]\tvalidation-rmse:6.35988 \n", "[137]\tvalidation-rmse:6.35905 \n", "[138]\tvalidation-rmse:6.35841 \n", "[139]\tvalidation-rmse:6.35812 \n", "[140]\tvalidation-rmse:6.35779 \n", "[141]\tvalidation-rmse:6.35783 \n", "[142]\tvalidation-rmse:6.35762 \n", "[143]\tvalidation-rmse:6.35715 \n", "[144]\tvalidation-rmse:6.35698 \n", "[145]\tvalidation-rmse:6.35623 \n", "[146]\tvalidation-rmse:6.35617 \n", "[147]\tvalidation-rmse:6.35580 \n", "[148]\tvalidation-rmse:6.35564 \n", "[149]\tvalidation-rmse:6.35578 \n", "[150]\tvalidation-rmse:6.35539 \n", "[151]\tvalidation-rmse:6.35525 \n", "[152]\tvalidation-rmse:6.35496 \n", "[153]\tvalidation-rmse:6.35474 \n", "[154]\tvalidation-rmse:6.35418 \n", "[155]\tvalidation-rmse:6.35383 \n", "[156]\tvalidation-rmse:6.35354 \n", "[157]\tvalidation-rmse:6.35324 \n", "[158]\tvalidation-rmse:6.35263 \n", "[159]\tvalidation-rmse:6.35313 \n", "[160]\tvalidation-rmse:6.35303 \n", "[161]\tvalidation-rmse:6.35294 \n", "[162]\tvalidation-rmse:6.35265 \n", "[163]\tvalidation-rmse:6.35241 \n", "[164]\tvalidation-rmse:6.35211 \n", "[165]\tvalidation-rmse:6.35218 \n", "[166]\tvalidation-rmse:6.35195 \n", "[167]\tvalidation-rmse:6.35194 \n", "[168]\tvalidation-rmse:6.35211 \n", "[169]\tvalidation-rmse:6.35186 \n", "[170]\tvalidation-rmse:6.35161 \n", "[171]\tvalidation-rmse:6.35155 \n", "[172]\tvalidation-rmse:6.35141 \n", "[173]\tvalidation-rmse:6.35184 \n", "[174]\tvalidation-rmse:6.35186 \n", "[175]\tvalidation-rmse:6.35153 \n", "[176]\tvalidation-rmse:6.35138 \n", "[177]\tvalidation-rmse:6.35120 \n", "[178]\tvalidation-rmse:6.35108 \n", "[179]\tvalidation-rmse:6.35180 \n", "[180]\tvalidation-rmse:6.35091 \n", "[181]\tvalidation-rmse:6.35102 \n", "[182]\tvalidation-rmse:6.35047 \n", "[183]\tvalidation-rmse:6.35022 \n", "[184]\tvalidation-rmse:6.35041 \n", "[185]\tvalidation-rmse:6.35042 \n", "[186]\tvalidation-rmse:6.35134 \n", "[187]\tvalidation-rmse:6.35118 \n", "[188]\tvalidation-rmse:6.35105 \n", "[189]\tvalidation-rmse:6.35130 \n", "[190]\tvalidation-rmse:6.35163 \n", "[191]\tvalidation-rmse:6.35112 \n", "[192]\tvalidation-rmse:6.35091 \n", "[193]\tvalidation-rmse:6.35054 \n", "[194]\tvalidation-rmse:6.35048 \n", "[195]\tvalidation-rmse:6.35045 \n", "[196]\tvalidation-rmse:6.35022 \n", "[197]\tvalidation-rmse:6.35012 \n", "[198]\tvalidation-rmse:6.34985 \n", "[199]\tvalidation-rmse:6.34963 \n", "[200]\tvalidation-rmse:6.34955 \n", "[201]\tvalidation-rmse:6.34941 \n", "[202]\tvalidation-rmse:6.35006 \n", "[203]\tvalidation-rmse:6.34976 \n", "[204]\tvalidation-rmse:6.34979 \n", "[205]\tvalidation-rmse:6.34970 \n", "[206]\tvalidation-rmse:6.34905 \n", "[207]\tvalidation-rmse:6.34851 \n", "[208]\tvalidation-rmse:6.34837 \n", "[209]\tvalidation-rmse:6.34796 \n", "[210]\tvalidation-rmse:6.34767 \n", "[211]\tvalidation-rmse:6.34822 \n", "[212]\tvalidation-rmse:6.34828 \n", "[213]\tvalidation-rmse:6.34813 \n", "[214]\tvalidation-rmse:6.34765 \n", "[215]\tvalidation-rmse:6.34735 \n", "[216]\tvalidation-rmse:6.34749 \n", "[217]\tvalidation-rmse:6.34741 \n", "[218]\tvalidation-rmse:6.34705 \n", "[219]\tvalidation-rmse:6.34728 \n", "[220]\tvalidation-rmse:6.34658 \n", "[221]\tvalidation-rmse:6.34660 \n", "[222]\tvalidation-rmse:6.34643 \n", "[223]\tvalidation-rmse:6.34623 \n", "[224]\tvalidation-rmse:6.34628 \n", "[225]\tvalidation-rmse:6.34643 \n", "[226]\tvalidation-rmse:6.34645 \n", "[227]\tvalidation-rmse:6.34609 \n", "[228]\tvalidation-rmse:6.34722 \n", "[229]\tvalidation-rmse:6.34778 \n", "[230]\tvalidation-rmse:6.34811 \n", "[231]\tvalidation-rmse:6.34802 \n", "[232]\tvalidation-rmse:6.34806 \n", "[233]\tvalidation-rmse:6.34857 \n", "[234]\tvalidation-rmse:6.34849 \n", "[235]\tvalidation-rmse:6.34898 \n", "[236]\tvalidation-rmse:6.34892 \n", "[237]\tvalidation-rmse:6.34917 \n", "[238]\tvalidation-rmse:6.34890 \n", "[239]\tvalidation-rmse:6.34908 \n", "[240]\tvalidation-rmse:6.34910 \n", "[241]\tvalidation-rmse:6.34889 \n", "[242]\tvalidation-rmse:6.34863 \n", "[243]\tvalidation-rmse:6.34906 \n", "[244]\tvalidation-rmse:6.34905 \n", "[245]\tvalidation-rmse:6.34768 \n", "[246]\tvalidation-rmse:6.34783 \n", "[247]\tvalidation-rmse:6.34748 \n", "[248]\tvalidation-rmse:6.34695 \n", "[249]\tvalidation-rmse:6.34686 \n", "[250]\tvalidation-rmse:6.34656 \n", "[251]\tvalidation-rmse:6.34733 \n", "[252]\tvalidation-rmse:6.34744 \n", "[253]\tvalidation-rmse:6.34705 \n", "[254]\tvalidation-rmse:6.34699 \n", "[255]\tvalidation-rmse:6.34751 \n", "[256]\tvalidation-rmse:6.34759 \n", "[257]\tvalidation-rmse:6.34818 \n", "[258]\tvalidation-rmse:6.34826 \n", "[259]\tvalidation-rmse:6.34826 \n", "[260]\tvalidation-rmse:6.34822 \n", "[261]\tvalidation-rmse:6.34782 \n", "[262]\tvalidation-rmse:6.34823 \n", "[263]\tvalidation-rmse:6.34821 \n", "[264]\tvalidation-rmse:6.34830 \n", "[265]\tvalidation-rmse:6.34807 \n", "[266]\tvalidation-rmse:6.34818 \n", "[267]\tvalidation-rmse:6.34769 \n", "[268]\tvalidation-rmse:6.34773 \n", "[269]\tvalidation-rmse:6.34860 \n", "[270]\tvalidation-rmse:6.34892 \n", "[271]\tvalidation-rmse:6.34909 \n", "[272]\tvalidation-rmse:6.34900 \n", "[273]\tvalidation-rmse:6.34908 \n", "[274]\tvalidation-rmse:6.34934 \n", "[275]\tvalidation-rmse:6.34922 \n", "[276]\tvalidation-rmse:6.34929 \n", "[277]\tvalidation-rmse:6.34923 \n", "[12:59:14] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.97830 \n", "[1]\tvalidation-rmse:18.85403 \n", "[2]\tvalidation-rmse:17.81426 \n", "[3]\tvalidation-rmse:16.85295 \n", "[4]\tvalidation-rmse:15.96583 \n", "[5]\tvalidation-rmse:15.14800 \n", "[6]\tvalidation-rmse:14.39458 \n", "[7]\tvalidation-rmse:13.70131 \n", "[8]\tvalidation-rmse:13.06374 \n", "[9]\tvalidation-rmse:12.47844 \n", "[10]\tvalidation-rmse:11.94142 \n", "[11]\tvalidation-rmse:11.45032 \n", "[12]\tvalidation-rmse:11.00120 \n", "[13]\tvalidation-rmse:10.59083 \n", "[14]\tvalidation-rmse:10.21610 \n", "[15]\tvalidation-rmse:9.87506 \n", "[16]\tvalidation-rmse:9.56434 \n", "[17]\tvalidation-rmse:9.28272 \n", "[18]\tvalidation-rmse:9.02637 \n", "[19]\tvalidation-rmse:8.79552 \n", "[20]\tvalidation-rmse:8.58521 \n", "[21]\tvalidation-rmse:8.39580 \n", "[22]\tvalidation-rmse:8.22467 \n", "[23]\tvalidation-rmse:8.07005 \n", "[24]\tvalidation-rmse:7.93051 \n", "[25]\tvalidation-rmse:7.80410 \n", "[26]\tvalidation-rmse:7.69007 \n", "[27]\tvalidation-rmse:7.58661 \n", "[28]\tvalidation-rmse:7.49301 \n", "[29]\tvalidation-rmse:7.40887 \n", "[30]\tvalidation-rmse:7.33305 \n", "[31]\tvalidation-rmse:7.26438 \n", "[32]\tvalidation-rmse:7.20196 \n", "[33]\tvalidation-rmse:7.14575 \n", "[34]\tvalidation-rmse:7.09517 \n", "[35]\tvalidation-rmse:7.04865 \n", "[36]\tvalidation-rmse:7.00649 \n", "[37]\tvalidation-rmse:6.96806 \n", "[38]\tvalidation-rmse:6.93358 \n", "[39]\tvalidation-rmse:6.90165 \n", "[40]\tvalidation-rmse:6.87254 \n", "[41]\tvalidation-rmse:6.84669 \n", "[42]\tvalidation-rmse:6.82293 \n", "[43]\tvalidation-rmse:6.80033 \n", "[44]\tvalidation-rmse:6.78015 \n", "[45]\tvalidation-rmse:6.76149 \n", "[46]\tvalidation-rmse:6.74500 \n", "[47]\tvalidation-rmse:6.73008 \n", "[48]\tvalidation-rmse:6.71570 \n", "[49]\tvalidation-rmse:6.70346 \n", "[50]\tvalidation-rmse:6.69159 \n", "[51]\tvalidation-rmse:6.68082 \n", "[52]\tvalidation-rmse:6.67070 \n", "[53]\tvalidation-rmse:6.66193 \n", "[54]\tvalidation-rmse:6.65374 \n", "[55]\tvalidation-rmse:6.64536 \n", "[56]\tvalidation-rmse:6.63817 \n", "[57]\tvalidation-rmse:6.63138 \n", "[58]\tvalidation-rmse:6.62488 \n", "[59]\tvalidation-rmse:6.61897 \n", "[60]\tvalidation-rmse:6.61347 \n", "[61]\tvalidation-rmse:6.60860 \n", "[62]\tvalidation-rmse:6.60371 \n", "[63]\tvalidation-rmse:6.59894 \n", "[64]\tvalidation-rmse:6.59438 \n", "[65]\tvalidation-rmse:6.59013 \n", "[66]\tvalidation-rmse:6.58568 \n", "[67]\tvalidation-rmse:6.58179 \n", "[68]\tvalidation-rmse:6.57806 \n", "[69]\tvalidation-rmse:6.57506 \n", "[70]\tvalidation-rmse:6.57175 \n", "[71]\tvalidation-rmse:6.56876 \n", "[72]\tvalidation-rmse:6.56586 \n", "[73]\tvalidation-rmse:6.56314 \n", "[74]\tvalidation-rmse:6.56051 \n", "[75]\tvalidation-rmse:6.55814 \n", "[76]\tvalidation-rmse:6.55577 \n", "[77]\tvalidation-rmse:6.55299 \n", "[78]\tvalidation-rmse:6.55090 \n", "[79]\tvalidation-rmse:6.54858 \n", "[80]\tvalidation-rmse:6.54691 \n", "[81]\tvalidation-rmse:6.54539 \n", "[82]\tvalidation-rmse:6.54393 \n", "[83]\tvalidation-rmse:6.54248 \n", "[84]\tvalidation-rmse:6.54157 \n", "[85]\tvalidation-rmse:6.54034 \n", "[86]\tvalidation-rmse:6.53931 \n", "[87]\tvalidation-rmse:6.53832 \n", "[88]\tvalidation-rmse:6.53682 \n", "[89]\tvalidation-rmse:6.53565 \n", "[90]\tvalidation-rmse:6.53431 \n", "[91]\tvalidation-rmse:6.53339 \n", "[92]\tvalidation-rmse:6.53235 \n", "[93]\tvalidation-rmse:6.53139 \n", "[94]\tvalidation-rmse:6.53045 \n", "[95]\tvalidation-rmse:6.52969 \n", "[96]\tvalidation-rmse:6.52886 \n", "[97]\tvalidation-rmse:6.52828 \n", "[98]\tvalidation-rmse:6.52766 \n", "[99]\tvalidation-rmse:6.52664 \n", "[100]\tvalidation-rmse:6.52575 \n", "[101]\tvalidation-rmse:6.52503 \n", "[102]\tvalidation-rmse:6.52449 \n", "[103]\tvalidation-rmse:6.52379 \n", "[104]\tvalidation-rmse:6.52305 \n", "[105]\tvalidation-rmse:6.52237 \n", "[106]\tvalidation-rmse:6.52192 \n", "[107]\tvalidation-rmse:6.52133 \n", "[108]\tvalidation-rmse:6.52072 \n", "[109]\tvalidation-rmse:6.51999 \n", "[110]\tvalidation-rmse:6.51966 \n", "[111]\tvalidation-rmse:6.51926 \n", "[112]\tvalidation-rmse:6.51894 \n", "[113]\tvalidation-rmse:6.51831 \n", "[114]\tvalidation-rmse:6.51801 \n", "[115]\tvalidation-rmse:6.51752 \n", "[116]\tvalidation-rmse:6.51721 \n", "[117]\tvalidation-rmse:6.51686 \n", "[118]\tvalidation-rmse:6.51641 \n", "[119]\tvalidation-rmse:6.51582 \n", "[120]\tvalidation-rmse:6.51557 \n", "[121]\tvalidation-rmse:6.51517 \n", "[122]\tvalidation-rmse:6.51492 \n", "[123]\tvalidation-rmse:6.51434 \n", "[124]\tvalidation-rmse:6.51408 \n", "[125]\tvalidation-rmse:6.51370 \n", "[126]\tvalidation-rmse:6.51347 \n", "[127]\tvalidation-rmse:6.51318 \n", "[128]\tvalidation-rmse:6.51300 \n", "[129]\tvalidation-rmse:6.51269 \n", "[130]\tvalidation-rmse:6.51235 \n", "[131]\tvalidation-rmse:6.51195 \n", "[132]\tvalidation-rmse:6.51177 \n", "[133]\tvalidation-rmse:6.51141 \n", "[134]\tvalidation-rmse:6.51116 \n", "[135]\tvalidation-rmse:6.51098 \n", "[136]\tvalidation-rmse:6.51062 \n", "[137]\tvalidation-rmse:6.51035 \n", "[138]\tvalidation-rmse:6.50990 \n", "[139]\tvalidation-rmse:6.50966 \n", "[140]\tvalidation-rmse:6.50935 \n", "[141]\tvalidation-rmse:6.50923 \n", "[142]\tvalidation-rmse:6.50895 \n", "[143]\tvalidation-rmse:6.50885 \n", "[144]\tvalidation-rmse:6.50859 \n", "[145]\tvalidation-rmse:6.50840 \n", "[146]\tvalidation-rmse:6.50825 \n", "[147]\tvalidation-rmse:6.50789 \n", "[148]\tvalidation-rmse:6.50767 \n", "[149]\tvalidation-rmse:6.50736 \n", "[150]\tvalidation-rmse:6.50718 \n", "[151]\tvalidation-rmse:6.50703 \n", "[152]\tvalidation-rmse:6.50681 \n", "[153]\tvalidation-rmse:6.50652 \n", "[154]\tvalidation-rmse:6.50612 \n", "[155]\tvalidation-rmse:6.50595 \n", "[156]\tvalidation-rmse:6.50580 \n", "[157]\tvalidation-rmse:6.50554 \n", "[158]\tvalidation-rmse:6.50533 \n", "[159]\tvalidation-rmse:6.50513 \n", "[160]\tvalidation-rmse:6.50495 \n", "[161]\tvalidation-rmse:6.50456 \n", "[162]\tvalidation-rmse:6.50441 \n", "[163]\tvalidation-rmse:6.50432 \n", "[164]\tvalidation-rmse:6.50405 \n", "[165]\tvalidation-rmse:6.50379 \n", "[166]\tvalidation-rmse:6.50354 \n", "[167]\tvalidation-rmse:6.50323 \n", "[168]\tvalidation-rmse:6.50307 \n", "[169]\tvalidation-rmse:6.50281 \n", "[170]\tvalidation-rmse:6.50258 \n", "[171]\tvalidation-rmse:6.50241 \n", "[172]\tvalidation-rmse:6.50225 \n", "[173]\tvalidation-rmse:6.50204 \n", "[174]\tvalidation-rmse:6.50169 \n", "[175]\tvalidation-rmse:6.50121 \n", "[176]\tvalidation-rmse:6.50112 \n", "[177]\tvalidation-rmse:6.50094 \n", "[178]\tvalidation-rmse:6.50074 \n", "[179]\tvalidation-rmse:6.50066 \n", "[180]\tvalidation-rmse:6.50037 \n", "[181]\tvalidation-rmse:6.50027 \n", "[182]\tvalidation-rmse:6.50002 \n", "[183]\tvalidation-rmse:6.49983 \n", "[184]\tvalidation-rmse:6.49969 \n", "[185]\tvalidation-rmse:6.49942 \n", "[186]\tvalidation-rmse:6.49929 \n", "[187]\tvalidation-rmse:6.49903 \n", "[188]\tvalidation-rmse:6.49893 \n", "[189]\tvalidation-rmse:6.49868 \n", "[190]\tvalidation-rmse:6.49845 \n", "[191]\tvalidation-rmse:6.49835 \n", "[192]\tvalidation-rmse:6.49798 \n", "[193]\tvalidation-rmse:6.49768 \n", "[194]\tvalidation-rmse:6.49744 \n", "[195]\tvalidation-rmse:6.49719 \n", "[196]\tvalidation-rmse:6.49710 \n", "[197]\tvalidation-rmse:6.49691 \n", "[198]\tvalidation-rmse:6.49659 \n", "[199]\tvalidation-rmse:6.49657 \n", "[200]\tvalidation-rmse:6.49644 \n", "[201]\tvalidation-rmse:6.49632 \n", "[202]\tvalidation-rmse:6.49605 \n", "[203]\tvalidation-rmse:6.49588 \n", "[204]\tvalidation-rmse:6.49564 \n", "[205]\tvalidation-rmse:6.49548 \n", "[206]\tvalidation-rmse:6.49529 \n", "[207]\tvalidation-rmse:6.49523 \n", "[208]\tvalidation-rmse:6.49509 \n", "[209]\tvalidation-rmse:6.49505 \n", "[210]\tvalidation-rmse:6.49483 \n", "[211]\tvalidation-rmse:6.49465 \n", "[212]\tvalidation-rmse:6.49440 \n", "[213]\tvalidation-rmse:6.49414 \n", "[214]\tvalidation-rmse:6.49389 \n", "[215]\tvalidation-rmse:6.49386 \n", "[216]\tvalidation-rmse:6.49368 \n", "[217]\tvalidation-rmse:6.49361 \n", "[218]\tvalidation-rmse:6.49343 \n", "[219]\tvalidation-rmse:6.49331 \n", "[220]\tvalidation-rmse:6.49324 \n", "[221]\tvalidation-rmse:6.49310 \n", "[222]\tvalidation-rmse:6.49297 \n", "[223]\tvalidation-rmse:6.49283 \n", "[224]\tvalidation-rmse:6.49272 \n", "[225]\tvalidation-rmse:6.49262 \n", "[226]\tvalidation-rmse:6.49241 \n", "[227]\tvalidation-rmse:6.49204 \n", "[228]\tvalidation-rmse:6.49188 \n", "[229]\tvalidation-rmse:6.49175 \n", "[230]\tvalidation-rmse:6.49162 \n", "[231]\tvalidation-rmse:6.49155 \n", "[232]\tvalidation-rmse:6.49145 \n", "[233]\tvalidation-rmse:6.49127 \n", "[234]\tvalidation-rmse:6.49114 \n", "[235]\tvalidation-rmse:6.49096 \n", "[236]\tvalidation-rmse:6.49065 \n", "[237]\tvalidation-rmse:6.49051 \n", "[238]\tvalidation-rmse:6.49040 \n", "[239]\tvalidation-rmse:6.49001 \n", "[240]\tvalidation-rmse:6.48989 \n", "[241]\tvalidation-rmse:6.48965 \n", "[242]\tvalidation-rmse:6.48957 \n", "[243]\tvalidation-rmse:6.48955 \n", "[244]\tvalidation-rmse:6.48944 \n", "[245]\tvalidation-rmse:6.48935 \n", "[246]\tvalidation-rmse:6.48916 \n", "[247]\tvalidation-rmse:6.48910 \n", "[248]\tvalidation-rmse:6.48907 \n", "[249]\tvalidation-rmse:6.48901 \n", "[250]\tvalidation-rmse:6.48899 \n", "[251]\tvalidation-rmse:6.48881 \n", "[252]\tvalidation-rmse:6.48855 \n", "[253]\tvalidation-rmse:6.48837 \n", "[254]\tvalidation-rmse:6.48810 \n", "[255]\tvalidation-rmse:6.48785 \n", "[256]\tvalidation-rmse:6.48774 \n", "[257]\tvalidation-rmse:6.48760 \n", "[258]\tvalidation-rmse:6.48763 \n", "[259]\tvalidation-rmse:6.48757 \n", "[260]\tvalidation-rmse:6.48745 \n", "[261]\tvalidation-rmse:6.48735 \n", "[262]\tvalidation-rmse:6.48730 \n", "[263]\tvalidation-rmse:6.48730 \n", "[264]\tvalidation-rmse:6.48719 \n", "[265]\tvalidation-rmse:6.48685 \n", "[266]\tvalidation-rmse:6.48664 \n", "[267]\tvalidation-rmse:6.48655 \n", "[268]\tvalidation-rmse:6.48649 \n", "[269]\tvalidation-rmse:6.48643 \n", "[270]\tvalidation-rmse:6.48637 \n", "[271]\tvalidation-rmse:6.48626 \n", "[272]\tvalidation-rmse:6.48619 \n", "[273]\tvalidation-rmse:6.48611 \n", "[274]\tvalidation-rmse:6.48599 \n", "[275]\tvalidation-rmse:6.48593 \n", "[276]\tvalidation-rmse:6.48581 \n", "[277]\tvalidation-rmse:6.48563 \n", "[278]\tvalidation-rmse:6.48555 \n", "[279]\tvalidation-rmse:6.48553 \n", "[280]\tvalidation-rmse:6.48536 \n", "[281]\tvalidation-rmse:6.48529 \n", "[282]\tvalidation-rmse:6.48517 \n", "[283]\tvalidation-rmse:6.48508 \n", "[284]\tvalidation-rmse:6.48496 \n", "[285]\tvalidation-rmse:6.48479 \n", "[286]\tvalidation-rmse:6.48472 \n", "[287]\tvalidation-rmse:6.48461 \n", "[288]\tvalidation-rmse:6.48458 \n", "[289]\tvalidation-rmse:6.48446 \n", "[290]\tvalidation-rmse:6.48446 \n", "[291]\tvalidation-rmse:6.48417 \n", "[292]\tvalidation-rmse:6.48394 \n", "[293]\tvalidation-rmse:6.48388 \n", "[294]\tvalidation-rmse:6.48369 \n", "[295]\tvalidation-rmse:6.48365 \n", "[296]\tvalidation-rmse:6.48353 \n", "[297]\tvalidation-rmse:6.48353 \n", "[298]\tvalidation-rmse:6.48341 \n", "[299]\tvalidation-rmse:6.48333 \n", "[300]\tvalidation-rmse:6.48320 \n", "[301]\tvalidation-rmse:6.48301 \n", "[302]\tvalidation-rmse:6.48290 \n", "[303]\tvalidation-rmse:6.48276 \n", "[304]\tvalidation-rmse:6.48278 \n", "[305]\tvalidation-rmse:6.48265 \n", "[306]\tvalidation-rmse:6.48262 \n", "[307]\tvalidation-rmse:6.48258 \n", "[308]\tvalidation-rmse:6.48247 \n", "[309]\tvalidation-rmse:6.48234 \n", "[310]\tvalidation-rmse:6.48218 \n", "[311]\tvalidation-rmse:6.48208 \n", "[312]\tvalidation-rmse:6.48187 \n", "[313]\tvalidation-rmse:6.48181 \n", "[314]\tvalidation-rmse:6.48177 \n", "[315]\tvalidation-rmse:6.48174 \n", "[316]\tvalidation-rmse:6.48168 \n", "[317]\tvalidation-rmse:6.48160 \n", "[318]\tvalidation-rmse:6.48155 \n", "[319]\tvalidation-rmse:6.48152 \n", "[320]\tvalidation-rmse:6.48117 \n", "[321]\tvalidation-rmse:6.48123 \n", "[322]\tvalidation-rmse:6.48112 \n", "[323]\tvalidation-rmse:6.48098 \n", "[324]\tvalidation-rmse:6.48094 \n", "[325]\tvalidation-rmse:6.48083 \n", "[326]\tvalidation-rmse:6.48071 \n", "[327]\tvalidation-rmse:6.48060 \n", "[328]\tvalidation-rmse:6.48049 \n", "[329]\tvalidation-rmse:6.48054 \n", "[330]\tvalidation-rmse:6.48040 \n", "[331]\tvalidation-rmse:6.48026 \n", "[332]\tvalidation-rmse:6.48019 \n", "[333]\tvalidation-rmse:6.48015 \n", "[334]\tvalidation-rmse:6.48008 \n", "[335]\tvalidation-rmse:6.47998 \n", "[336]\tvalidation-rmse:6.47986 \n", "[337]\tvalidation-rmse:6.47987 \n", "[338]\tvalidation-rmse:6.47969 \n", "[339]\tvalidation-rmse:6.47963 \n", "[340]\tvalidation-rmse:6.47954 \n", "[341]\tvalidation-rmse:6.47947 \n", "[342]\tvalidation-rmse:6.47936 \n", "[343]\tvalidation-rmse:6.47929 \n", "[344]\tvalidation-rmse:6.47917 \n", "[345]\tvalidation-rmse:6.47908 \n", "[346]\tvalidation-rmse:6.47890 \n", "[347]\tvalidation-rmse:6.47878 \n", "[348]\tvalidation-rmse:6.47876 \n", "[349]\tvalidation-rmse:6.47870 \n", "[350]\tvalidation-rmse:6.47864 \n", "[351]\tvalidation-rmse:6.47859 \n", "[352]\tvalidation-rmse:6.47848 \n", "[353]\tvalidation-rmse:6.47838 \n", "[354]\tvalidation-rmse:6.47827 \n", "[355]\tvalidation-rmse:6.47822 \n", "[356]\tvalidation-rmse:6.47816 \n", "[357]\tvalidation-rmse:6.47816 \n", "[358]\tvalidation-rmse:6.47814 \n", "[359]\tvalidation-rmse:6.47811 \n", "[360]\tvalidation-rmse:6.47808 \n", "[361]\tvalidation-rmse:6.47804 \n", "[362]\tvalidation-rmse:6.47778 \n", "[363]\tvalidation-rmse:6.47765 \n", "[364]\tvalidation-rmse:6.47764 \n", "[365]\tvalidation-rmse:6.47767 \n", "[366]\tvalidation-rmse:6.47763 \n", "[367]\tvalidation-rmse:6.47762 \n", "[368]\tvalidation-rmse:6.47755 \n", "[369]\tvalidation-rmse:6.47747 \n", "[370]\tvalidation-rmse:6.47744 \n", "[371]\tvalidation-rmse:6.47735 \n", "[372]\tvalidation-rmse:6.47719 \n", "[373]\tvalidation-rmse:6.47716 \n", "[374]\tvalidation-rmse:6.47707 \n", "[375]\tvalidation-rmse:6.47704 \n", "[376]\tvalidation-rmse:6.47688 \n", "[377]\tvalidation-rmse:6.47673 \n", "[378]\tvalidation-rmse:6.47673 \n", "[379]\tvalidation-rmse:6.47659 \n", "[380]\tvalidation-rmse:6.47645 \n", "[381]\tvalidation-rmse:6.47619 \n", "[382]\tvalidation-rmse:6.47604 \n", "[383]\tvalidation-rmse:6.47601 \n", "[384]\tvalidation-rmse:6.47581 \n", "[385]\tvalidation-rmse:6.47581 \n", "[386]\tvalidation-rmse:6.47580 \n", "[387]\tvalidation-rmse:6.47568 \n", "[388]\tvalidation-rmse:6.47615 \n", "[389]\tvalidation-rmse:6.47622 \n", "[390]\tvalidation-rmse:6.47617 \n", "[391]\tvalidation-rmse:6.47586 \n", "[392]\tvalidation-rmse:6.47587 \n", "[393]\tvalidation-rmse:6.47576 \n", "[394]\tvalidation-rmse:6.47570 \n", "[395]\tvalidation-rmse:6.47565 \n", "[396]\tvalidation-rmse:6.47552 \n", "[397]\tvalidation-rmse:6.47545 \n", "[398]\tvalidation-rmse:6.47544 \n", "[399]\tvalidation-rmse:6.47544 \n", "[400]\tvalidation-rmse:6.47529 \n", "[401]\tvalidation-rmse:6.47537 \n", "[402]\tvalidation-rmse:6.47532 \n", "[403]\tvalidation-rmse:6.47529 \n", "[404]\tvalidation-rmse:6.47524 \n", "[405]\tvalidation-rmse:6.47522 \n", "[406]\tvalidation-rmse:6.47501 \n", "[407]\tvalidation-rmse:6.47495 \n", "[408]\tvalidation-rmse:6.47474 \n", "[409]\tvalidation-rmse:6.47467 \n", "[410]\tvalidation-rmse:6.47462 \n", "[411]\tvalidation-rmse:6.47460 \n", "[412]\tvalidation-rmse:6.47457 \n", "[413]\tvalidation-rmse:6.47457 \n", "[414]\tvalidation-rmse:6.47461 \n", "[415]\tvalidation-rmse:6.47453 \n", "[416]\tvalidation-rmse:6.47446 \n", "[417]\tvalidation-rmse:6.47444 \n", "[418]\tvalidation-rmse:6.47439 \n", "[419]\tvalidation-rmse:6.47433 \n", "[420]\tvalidation-rmse:6.47418 \n", "[421]\tvalidation-rmse:6.47414 \n", "[422]\tvalidation-rmse:6.47417 \n", "[423]\tvalidation-rmse:6.47404 \n", "[424]\tvalidation-rmse:6.47401 \n", "[425]\tvalidation-rmse:6.47392 \n", "[426]\tvalidation-rmse:6.47393 \n", "[427]\tvalidation-rmse:6.47387 \n", "[428]\tvalidation-rmse:6.47373 \n", "[429]\tvalidation-rmse:6.47371 \n", "[430]\tvalidation-rmse:6.47366 \n", "[431]\tvalidation-rmse:6.47421 \n", "[432]\tvalidation-rmse:6.47422 \n", "[433]\tvalidation-rmse:6.47441 \n", "[434]\tvalidation-rmse:6.47445 \n", "[435]\tvalidation-rmse:6.47443 \n", "[436]\tvalidation-rmse:6.47442 \n", "[437]\tvalidation-rmse:6.47436 \n", "[438]\tvalidation-rmse:6.47426 \n", "[439]\tvalidation-rmse:6.47424 \n", "[440]\tvalidation-rmse:6.47421 \n", "[441]\tvalidation-rmse:6.47416 \n", "[442]\tvalidation-rmse:6.47418 \n", "[443]\tvalidation-rmse:6.47416 \n", "[444]\tvalidation-rmse:6.47412 \n", "[445]\tvalidation-rmse:6.47410 \n", "[446]\tvalidation-rmse:6.47407 \n", "[447]\tvalidation-rmse:6.47401 \n", "[448]\tvalidation-rmse:6.47404 \n", "[449]\tvalidation-rmse:6.47390 \n", "[450]\tvalidation-rmse:6.47384 \n", "[451]\tvalidation-rmse:6.47382 \n", "[452]\tvalidation-rmse:6.47382 \n", "[453]\tvalidation-rmse:6.47377 \n", "[454]\tvalidation-rmse:6.47379 \n", "[455]\tvalidation-rmse:6.47376 \n", "[456]\tvalidation-rmse:6.47370 \n", "[457]\tvalidation-rmse:6.47364 \n", "[458]\tvalidation-rmse:6.47358 \n", "[459]\tvalidation-rmse:6.47355 \n", "[460]\tvalidation-rmse:6.47356 \n", "[461]\tvalidation-rmse:6.47354 \n", "[462]\tvalidation-rmse:6.47355 \n", "[463]\tvalidation-rmse:6.47351 \n", "[464]\tvalidation-rmse:6.47354 \n", "[465]\tvalidation-rmse:6.47349 \n", "[466]\tvalidation-rmse:6.47347 \n", "[467]\tvalidation-rmse:6.47347 \n", "[468]\tvalidation-rmse:6.47349 \n", "[469]\tvalidation-rmse:6.47344 \n", "[470]\tvalidation-rmse:6.47324 \n", "[471]\tvalidation-rmse:6.47309 \n", "[472]\tvalidation-rmse:6.47307 \n", "[473]\tvalidation-rmse:6.47308 \n", "[474]\tvalidation-rmse:6.47289 \n", "[475]\tvalidation-rmse:6.47287 \n", "[476]\tvalidation-rmse:6.47290 \n", "[477]\tvalidation-rmse:6.47287 \n", "[478]\tvalidation-rmse:6.47283 \n", "[479]\tvalidation-rmse:6.47280 \n", "[480]\tvalidation-rmse:6.47281 \n", "[481]\tvalidation-rmse:6.47279 \n", "[482]\tvalidation-rmse:6.47275 \n", "[483]\tvalidation-rmse:6.47270 \n", "[484]\tvalidation-rmse:6.47266 \n", "[485]\tvalidation-rmse:6.47264 \n", "[486]\tvalidation-rmse:6.47258 \n", "[487]\tvalidation-rmse:6.47248 \n", "[488]\tvalidation-rmse:6.47246 \n", "[489]\tvalidation-rmse:6.47244 \n", "[490]\tvalidation-rmse:6.47232 \n", "[491]\tvalidation-rmse:6.47229 \n", "[492]\tvalidation-rmse:6.47227 \n", "[493]\tvalidation-rmse:6.47226 \n", "[494]\tvalidation-rmse:6.47220 \n", "[495]\tvalidation-rmse:6.47211 \n", "[496]\tvalidation-rmse:6.47203 \n", "[497]\tvalidation-rmse:6.47197 \n", "[498]\tvalidation-rmse:6.47195 \n", "[499]\tvalidation-rmse:6.47184 \n", "[500]\tvalidation-rmse:6.47177 \n", "[501]\tvalidation-rmse:6.47177 \n", "[502]\tvalidation-rmse:6.47174 \n", "[503]\tvalidation-rmse:6.47211 \n", "[504]\tvalidation-rmse:6.47213 \n", "[505]\tvalidation-rmse:6.47213 \n", "[506]\tvalidation-rmse:6.47208 \n", "[507]\tvalidation-rmse:6.47201 \n", "[508]\tvalidation-rmse:6.47203 \n", "[509]\tvalidation-rmse:6.47206 \n", "[510]\tvalidation-rmse:6.47201 \n", "[511]\tvalidation-rmse:6.47202 \n", "[512]\tvalidation-rmse:6.47197 \n", "[513]\tvalidation-rmse:6.47196 \n", "[514]\tvalidation-rmse:6.47185 \n", "[515]\tvalidation-rmse:6.47186 \n", "[516]\tvalidation-rmse:6.47185 \n", "[517]\tvalidation-rmse:6.47176 \n", "[518]\tvalidation-rmse:6.47175 \n", "[519]\tvalidation-rmse:6.47173 \n", "[520]\tvalidation-rmse:6.47164 \n", "[521]\tvalidation-rmse:6.47159 \n", "[522]\tvalidation-rmse:6.47157 \n", "[523]\tvalidation-rmse:6.47172 \n", "[524]\tvalidation-rmse:6.47182 \n", "[525]\tvalidation-rmse:6.47191 \n", "[526]\tvalidation-rmse:6.47191 \n", "[527]\tvalidation-rmse:6.47194 \n", "[528]\tvalidation-rmse:6.47190 \n", "[529]\tvalidation-rmse:6.47191 \n", "[530]\tvalidation-rmse:6.47185 \n", "[531]\tvalidation-rmse:6.47190 \n", "[532]\tvalidation-rmse:6.47186 \n", "[533]\tvalidation-rmse:6.47186 \n", "[534]\tvalidation-rmse:6.47179 \n", "[535]\tvalidation-rmse:6.47177 \n", "[536]\tvalidation-rmse:6.47174 \n", "[537]\tvalidation-rmse:6.47175 \n", "[538]\tvalidation-rmse:6.47177 \n", "[539]\tvalidation-rmse:6.47168 \n", "[540]\tvalidation-rmse:6.47166 \n", "[541]\tvalidation-rmse:6.47159 \n", "[542]\tvalidation-rmse:6.47155 \n", "[543]\tvalidation-rmse:6.47152 \n", "[544]\tvalidation-rmse:6.47147 \n", "[545]\tvalidation-rmse:6.47139 \n", "[546]\tvalidation-rmse:6.47133 \n", "[547]\tvalidation-rmse:6.47124 \n", "[548]\tvalidation-rmse:6.47120 \n", "[549]\tvalidation-rmse:6.47115 \n", "[550]\tvalidation-rmse:6.47118 \n", "[551]\tvalidation-rmse:6.47110 \n", "[552]\tvalidation-rmse:6.47112 \n", "[553]\tvalidation-rmse:6.47112 \n", "[554]\tvalidation-rmse:6.47105 \n", "[555]\tvalidation-rmse:6.47101 \n", "[556]\tvalidation-rmse:6.47101 \n", "[557]\tvalidation-rmse:6.47087 \n", "[558]\tvalidation-rmse:6.47088 \n", "[559]\tvalidation-rmse:6.47087 \n", "[560]\tvalidation-rmse:6.47086 \n", "[561]\tvalidation-rmse:6.47087 \n", "[562]\tvalidation-rmse:6.47091 \n", "[563]\tvalidation-rmse:6.47091 \n", "[564]\tvalidation-rmse:6.47079 \n", "[565]\tvalidation-rmse:6.47074 \n", "[566]\tvalidation-rmse:6.47067 \n", "[567]\tvalidation-rmse:6.47065 \n", "[568]\tvalidation-rmse:6.47053 \n", "[569]\tvalidation-rmse:6.47050 \n", "[570]\tvalidation-rmse:6.47041 \n", "[571]\tvalidation-rmse:6.47034 \n", "[572]\tvalidation-rmse:6.47028 \n", "[573]\tvalidation-rmse:6.47027 \n", "[574]\tvalidation-rmse:6.47021 \n", "[575]\tvalidation-rmse:6.47021 \n", "[576]\tvalidation-rmse:6.47017 \n", "[577]\tvalidation-rmse:6.47019 \n", "[578]\tvalidation-rmse:6.47019 \n", "[579]\tvalidation-rmse:6.47019 \n", "[580]\tvalidation-rmse:6.47022 \n", "[581]\tvalidation-rmse:6.47024 \n", "[582]\tvalidation-rmse:6.47026 \n", "[583]\tvalidation-rmse:6.47022 \n", "[584]\tvalidation-rmse:6.47025 \n", "[585]\tvalidation-rmse:6.47030 \n", "[586]\tvalidation-rmse:6.47024 \n", "[587]\tvalidation-rmse:6.47020 \n", "[588]\tvalidation-rmse:6.47015 \n", "[589]\tvalidation-rmse:6.47012 \n", "[590]\tvalidation-rmse:6.47013 \n", "[591]\tvalidation-rmse:6.47008 \n", "[592]\tvalidation-rmse:6.47010 \n", "[593]\tvalidation-rmse:6.47007 \n", "[594]\tvalidation-rmse:6.47015 \n", "[595]\tvalidation-rmse:6.47015 \n", "[596]\tvalidation-rmse:6.47008 \n", "[597]\tvalidation-rmse:6.47004 \n", "[598]\tvalidation-rmse:6.47003 \n", "[599]\tvalidation-rmse:6.47001 \n", "[600]\tvalidation-rmse:6.46995 \n", "[601]\tvalidation-rmse:6.46989 \n", "[602]\tvalidation-rmse:6.46991 \n", "[603]\tvalidation-rmse:6.46993 \n", "[604]\tvalidation-rmse:6.46989 \n", "[605]\tvalidation-rmse:6.46983 \n", "[606]\tvalidation-rmse:6.46982 \n", "[607]\tvalidation-rmse:6.46979 \n", "[608]\tvalidation-rmse:6.46986 \n", "[609]\tvalidation-rmse:6.46990 \n", "[610]\tvalidation-rmse:6.46988 \n", "[611]\tvalidation-rmse:6.46981 \n", "[612]\tvalidation-rmse:6.46998 \n", "[613]\tvalidation-rmse:6.47002 \n", "[614]\tvalidation-rmse:6.47007 \n", "[615]\tvalidation-rmse:6.47008 \n", "[616]\tvalidation-rmse:6.47004 \n", "[617]\tvalidation-rmse:6.47001 \n", "[618]\tvalidation-rmse:6.47002 \n", "[619]\tvalidation-rmse:6.46994 \n", "[620]\tvalidation-rmse:6.46987 \n", "[621]\tvalidation-rmse:6.46980 \n", "[622]\tvalidation-rmse:6.46974 \n", "[623]\tvalidation-rmse:6.46969 \n", "[624]\tvalidation-rmse:6.46965 \n", "[625]\tvalidation-rmse:6.46960 \n", "[626]\tvalidation-rmse:6.46960 \n", "[627]\tvalidation-rmse:6.46961 \n", "[628]\tvalidation-rmse:6.46961 \n", "[629]\tvalidation-rmse:6.46964 \n", "[630]\tvalidation-rmse:6.46962 \n", "[631]\tvalidation-rmse:6.46956 \n", "[632]\tvalidation-rmse:6.46963 \n", "[633]\tvalidation-rmse:6.46967 \n", "[634]\tvalidation-rmse:6.46967 \n", "[635]\tvalidation-rmse:6.46972 \n", "[636]\tvalidation-rmse:6.46971 \n", "[637]\tvalidation-rmse:6.46962 \n", "[638]\tvalidation-rmse:6.46962 \n", "[639]\tvalidation-rmse:6.46958 \n", "[640]\tvalidation-rmse:6.46950 \n", "[641]\tvalidation-rmse:6.46954 \n", "[642]\tvalidation-rmse:6.46949 \n", "[643]\tvalidation-rmse:6.46938 \n", "[644]\tvalidation-rmse:6.46940 \n", "[645]\tvalidation-rmse:6.46940 \n", "[646]\tvalidation-rmse:6.46942 \n", "[647]\tvalidation-rmse:6.46946 \n", "[648]\tvalidation-rmse:6.46941 \n", "[649]\tvalidation-rmse:6.46941 \n", "[650]\tvalidation-rmse:6.46943 \n", "[651]\tvalidation-rmse:6.46947 \n", "[652]\tvalidation-rmse:6.46944 \n", "[653]\tvalidation-rmse:6.46945 \n", "[654]\tvalidation-rmse:6.46954 \n", "[655]\tvalidation-rmse:6.46951 \n", "[656]\tvalidation-rmse:6.46954 \n", "[657]\tvalidation-rmse:6.46956 \n", "[658]\tvalidation-rmse:6.46960 \n", "[659]\tvalidation-rmse:6.46960 \n", "[660]\tvalidation-rmse:6.46965 \n", "[661]\tvalidation-rmse:6.46977 \n", "[662]\tvalidation-rmse:6.46981 \n", "[663]\tvalidation-rmse:6.46994 \n", "[664]\tvalidation-rmse:6.46988 \n", "[665]\tvalidation-rmse:6.46983 \n", "[666]\tvalidation-rmse:6.46975 \n", "[667]\tvalidation-rmse:6.46963 \n", "[668]\tvalidation-rmse:6.46966 \n", "[669]\tvalidation-rmse:6.46958 \n", "[670]\tvalidation-rmse:6.46959 \n", "[671]\tvalidation-rmse:6.46958 \n", "[672]\tvalidation-rmse:6.46959 \n", "[673]\tvalidation-rmse:6.46957 \n", "[674]\tvalidation-rmse:6.46964 \n", "[675]\tvalidation-rmse:6.46962 \n", "[676]\tvalidation-rmse:6.46952 \n", "[677]\tvalidation-rmse:6.46953 \n", "[678]\tvalidation-rmse:6.46947 \n", "[679]\tvalidation-rmse:6.46941 \n", "[680]\tvalidation-rmse:6.46951 \n", "[681]\tvalidation-rmse:6.46953 \n", "[682]\tvalidation-rmse:6.46953 \n", "[683]\tvalidation-rmse:6.46947 \n", "[684]\tvalidation-rmse:6.46948 \n", "[685]\tvalidation-rmse:6.46944 \n", "[686]\tvalidation-rmse:6.46929 \n", "[687]\tvalidation-rmse:6.46949 \n", "[688]\tvalidation-rmse:6.46951 \n", "[689]\tvalidation-rmse:6.46952 \n", "[690]\tvalidation-rmse:6.46957 \n", "[691]\tvalidation-rmse:6.46956 \n", "[692]\tvalidation-rmse:6.46962 \n", "[693]\tvalidation-rmse:6.46957 \n", "[694]\tvalidation-rmse:6.46957 \n", "[695]\tvalidation-rmse:6.46960 \n", "[696]\tvalidation-rmse:6.46955 \n", "[697]\tvalidation-rmse:6.46956 \n", "[698]\tvalidation-rmse:6.46953 \n", "[699]\tvalidation-rmse:6.46954 \n", "[700]\tvalidation-rmse:6.46958 \n", "[701]\tvalidation-rmse:6.46961 \n", "[702]\tvalidation-rmse:6.46966 \n", "[703]\tvalidation-rmse:6.46971 \n", "[704]\tvalidation-rmse:6.46969 \n", "[705]\tvalidation-rmse:6.46969 \n", "[706]\tvalidation-rmse:6.46966 \n", "[707]\tvalidation-rmse:6.46963 \n", "[708]\tvalidation-rmse:6.46965 \n", "[709]\tvalidation-rmse:6.46959 \n", "[710]\tvalidation-rmse:6.46965 \n", "[711]\tvalidation-rmse:6.46963 \n", "[712]\tvalidation-rmse:6.46960 \n", "[713]\tvalidation-rmse:6.46946 \n", "[714]\tvalidation-rmse:6.46950 \n", "[715]\tvalidation-rmse:6.46953 \n", "[716]\tvalidation-rmse:6.47009 \n", "[717]\tvalidation-rmse:6.47049 \n", "[718]\tvalidation-rmse:6.47060 \n", "[719]\tvalidation-rmse:6.47058 \n", "[720]\tvalidation-rmse:6.47056 \n", "[721]\tvalidation-rmse:6.47059 \n", "[722]\tvalidation-rmse:6.47061 \n", "[723]\tvalidation-rmse:6.47063 \n", "[724]\tvalidation-rmse:6.47067 \n", "[725]\tvalidation-rmse:6.47065 \n", "[726]\tvalidation-rmse:6.47056 \n", "[727]\tvalidation-rmse:6.47060 \n", "[728]\tvalidation-rmse:6.47068 \n", "[729]\tvalidation-rmse:6.47065 \n", "[730]\tvalidation-rmse:6.47061 \n", "[731]\tvalidation-rmse:6.47060 \n", "[732]\tvalidation-rmse:6.47059 \n", "[733]\tvalidation-rmse:6.47050 \n", "[734]\tvalidation-rmse:6.47049 \n", "[735]\tvalidation-rmse:6.47057 \n", " 36%|███▌ | 18/50 [23:33<23:33, 44.17s/trial, best loss: 6.321673211235433]" ] } ], "source": [ "search_space = {\n", " 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)),\n", " 'learning_rate': hp.loguniform('learning_rate', -3, 0),\n", " 'reg_alpha': hp.loguniform('reg_alpha', -5, -1),\n", " 'reg_lambda': hp.loguniform('reg_lambda', -6, -1),\n", " 'min_child_weight': hp.loguniform('min_child_weight', -1, 3),\n", " 'objective': 'reg:linear',\n", " 'seed': 42\n", "}\n", "\n", "best_result = fmin(\n", " fn=objective,\n", " space=search_space,\n", " algo=tpe.suggest,\n", " max_evals=50,\n", " trials=Trials()\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "fc4d5283", "metadata": {}, "outputs": [], "source": [ "mlflow.xgboost.autolog(disable=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "0e8cd729", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[11:40:58] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.48425\n", "[1]\tvalidation-rmse:17.95634\n", "[2]\tvalidation-rmse:16.59114\n", "[3]\tvalidation-rmse:15.37412\n", "[4]\tvalidation-rmse:14.29011\n", "[5]\tvalidation-rmse:13.32800\n", "[6]\tvalidation-rmse:12.47570\n", "[7]\tvalidation-rmse:11.72140\n", "[8]\tvalidation-rmse:11.05888\n", "[9]\tvalidation-rmse:10.47583\n", "[10]\tvalidation-rmse:9.96483\n", "[11]\tvalidation-rmse:9.51784\n", "[12]\tvalidation-rmse:9.12620\n", "[13]\tvalidation-rmse:8.78522\n", "[14]\tvalidation-rmse:8.49037\n", "[15]\tvalidation-rmse:8.23332\n", "[16]\tvalidation-rmse:8.01179\n", "[17]\tvalidation-rmse:7.81822\n", "[18]\tvalidation-rmse:7.65209\n", "[19]\tvalidation-rmse:7.50743\n", "[20]\tvalidation-rmse:7.38235\n", "[21]\tvalidation-rmse:7.27382\n", "[22]\tvalidation-rmse:7.17865\n", "[23]\tvalidation-rmse:7.09606\n", "[24]\tvalidation-rmse:7.02481\n", "[25]\tvalidation-rmse:6.96336\n", "[26]\tvalidation-rmse:6.91001\n", "[27]\tvalidation-rmse:6.86273\n", "[28]\tvalidation-rmse:6.82111\n", "[29]\tvalidation-rmse:6.78450\n", "[30]\tvalidation-rmse:6.75253\n", "[31]\tvalidation-rmse:6.72379\n", "[32]\tvalidation-rmse:6.69828\n", "[33]\tvalidation-rmse:6.67533\n", "[34]\tvalidation-rmse:6.65594\n", "[35]\tvalidation-rmse:6.63823\n", "[36]\tvalidation-rmse:6.62237\n", "[37]\tvalidation-rmse:6.60869\n", "[38]\tvalidation-rmse:6.59673\n", "[39]\tvalidation-rmse:6.58612\n", "[40]\tvalidation-rmse:6.57635\n", "[41]\tvalidation-rmse:6.56725\n", "[42]\tvalidation-rmse:6.55951\n", "[43]\tvalidation-rmse:6.55213\n", "[44]\tvalidation-rmse:6.54590\n", "[45]\tvalidation-rmse:6.53959\n", "[46]\tvalidation-rmse:6.53464\n", "[47]\tvalidation-rmse:6.53019\n", "[48]\tvalidation-rmse:6.52650\n", "[49]\tvalidation-rmse:6.52243\n", "[50]\tvalidation-rmse:6.51983\n", "[51]\tvalidation-rmse:6.51696\n", "[52]\tvalidation-rmse:6.51425\n", "[53]\tvalidation-rmse:6.51218\n", "[54]\tvalidation-rmse:6.50939\n", "[55]\tvalidation-rmse:6.50728\n", "[56]\tvalidation-rmse:6.50533\n", "[57]\tvalidation-rmse:6.50282\n", "[58]\tvalidation-rmse:6.50099\n", "[59]\tvalidation-rmse:6.49892\n", "[60]\tvalidation-rmse:6.49719\n", "[61]\tvalidation-rmse:6.49492\n", "[62]\tvalidation-rmse:6.49347\n", "[63]\tvalidation-rmse:6.49178\n", "[64]\tvalidation-rmse:6.49026\n", "[65]\tvalidation-rmse:6.48871\n", "[66]\tvalidation-rmse:6.48779\n", "[67]\tvalidation-rmse:6.48643\n", "[68]\tvalidation-rmse:6.48508\n", "[69]\tvalidation-rmse:6.48346\n", "[70]\tvalidation-rmse:6.48224\n", "[71]\tvalidation-rmse:6.48140\n", "[72]\tvalidation-rmse:6.48045\n", "[73]\tvalidation-rmse:6.47899\n", "[74]\tvalidation-rmse:6.47849\n", "[75]\tvalidation-rmse:6.47771\n", "[76]\tvalidation-rmse:6.47630\n", "[77]\tvalidation-rmse:6.47578\n", "[78]\tvalidation-rmse:6.47497\n", "[79]\tvalidation-rmse:6.47406\n", "[80]\tvalidation-rmse:6.47340\n", "[81]\tvalidation-rmse:6.47235\n", "[82]\tvalidation-rmse:6.47127\n", "[83]\tvalidation-rmse:6.47046\n", "[84]\tvalidation-rmse:6.46950\n", "[85]\tvalidation-rmse:6.46858\n", "[86]\tvalidation-rmse:6.46750\n", "[87]\tvalidation-rmse:6.46680\n", "[88]\tvalidation-rmse:6.46649\n", "[89]\tvalidation-rmse:6.46569\n", "[90]\tvalidation-rmse:6.46511\n", "[91]\tvalidation-rmse:6.46452\n", "[92]\tvalidation-rmse:6.46346\n", "[93]\tvalidation-rmse:6.46263\n", "[94]\tvalidation-rmse:6.46173\n", "[95]\tvalidation-rmse:6.46134\n", "[96]\tvalidation-rmse:6.46066\n", "[97]\tvalidation-rmse:6.46005\n", "[98]\tvalidation-rmse:6.45936\n", "[99]\tvalidation-rmse:6.45918\n", "[100]\tvalidation-rmse:6.45835\n", "[101]\tvalidation-rmse:6.45781\n", "[102]\tvalidation-rmse:6.45731\n", "[103]\tvalidation-rmse:6.45657\n", "[104]\tvalidation-rmse:6.45587\n", "[105]\tvalidation-rmse:6.45561\n", "[106]\tvalidation-rmse:6.45500\n", "[107]\tvalidation-rmse:6.45398\n", "[108]\tvalidation-rmse:6.45347\n", "[109]\tvalidation-rmse:6.45267\n", "[110]\tvalidation-rmse:6.45200\n", "[111]\tvalidation-rmse:6.45156\n", "[112]\tvalidation-rmse:6.45112\n", "[113]\tvalidation-rmse:6.45018\n", "[114]\tvalidation-rmse:6.44976\n", "[115]\tvalidation-rmse:6.44900\n", "[116]\tvalidation-rmse:6.44842\n", "[117]\tvalidation-rmse:6.44762\n", "[118]\tvalidation-rmse:6.44738\n", "[119]\tvalidation-rmse:6.44711\n", "[120]\tvalidation-rmse:6.44638\n", "[121]\tvalidation-rmse:6.44598\n", "[122]\tvalidation-rmse:6.44529\n", "[123]\tvalidation-rmse:6.44480\n", "[124]\tvalidation-rmse:6.44425\n", "[125]\tvalidation-rmse:6.44323\n", "[126]\tvalidation-rmse:6.44282\n", "[127]\tvalidation-rmse:6.44198\n", "[128]\tvalidation-rmse:6.44140\n", "[129]\tvalidation-rmse:6.44101\n", "[130]\tvalidation-rmse:6.44053\n", "[131]\tvalidation-rmse:6.43959\n", "[132]\tvalidation-rmse:6.43899\n", "[133]\tvalidation-rmse:6.43901\n", "[134]\tvalidation-rmse:6.43821\n", "[135]\tvalidation-rmse:6.43787\n", "[136]\tvalidation-rmse:6.43767\n", "[137]\tvalidation-rmse:6.43717\n", "[138]\tvalidation-rmse:6.43644\n", "[139]\tvalidation-rmse:6.43608\n", "[140]\tvalidation-rmse:6.43571\n", "[141]\tvalidation-rmse:6.43506\n", "[142]\tvalidation-rmse:6.43461\n", "[143]\tvalidation-rmse:6.43386\n", "[144]\tvalidation-rmse:6.43347\n", "[145]\tvalidation-rmse:6.43294\n", "[146]\tvalidation-rmse:6.43230\n", "[147]\tvalidation-rmse:6.43166\n", "[148]\tvalidation-rmse:6.43117\n", "[149]\tvalidation-rmse:6.43067\n", "[150]\tvalidation-rmse:6.43030\n", "[151]\tvalidation-rmse:6.42977\n", "[152]\tvalidation-rmse:6.42925\n", "[153]\tvalidation-rmse:6.42872\n", "[154]\tvalidation-rmse:6.42834\n", "[155]\tvalidation-rmse:6.42751\n", "[156]\tvalidation-rmse:6.42705\n", "[157]\tvalidation-rmse:6.42655\n", "[158]\tvalidation-rmse:6.42641\n", "[159]\tvalidation-rmse:6.42602\n", "[160]\tvalidation-rmse:6.42575\n", "[161]\tvalidation-rmse:6.42527\n", "[162]\tvalidation-rmse:6.42492\n", "[163]\tvalidation-rmse:6.42432\n", "[164]\tvalidation-rmse:6.42380\n", "[165]\tvalidation-rmse:6.42329\n", "[166]\tvalidation-rmse:6.42299\n", "[167]\tvalidation-rmse:6.42238\n", "[168]\tvalidation-rmse:6.42203\n", "[169]\tvalidation-rmse:6.42129\n", "[170]\tvalidation-rmse:6.42097\n", "[171]\tvalidation-rmse:6.42056\n", "[172]\tvalidation-rmse:6.42016\n", "[173]\tvalidation-rmse:6.41957\n", "[174]\tvalidation-rmse:6.41916\n", "[175]\tvalidation-rmse:6.41878\n", "[176]\tvalidation-rmse:6.41825\n", "[177]\tvalidation-rmse:6.41814\n", "[178]\tvalidation-rmse:6.41773\n", "[179]\tvalidation-rmse:6.41717\n", "[180]\tvalidation-rmse:6.41681\n", "[181]\tvalidation-rmse:6.41642\n", "[182]\tvalidation-rmse:6.41612\n", "[183]\tvalidation-rmse:6.41553\n", "[184]\tvalidation-rmse:6.41534\n", "[185]\tvalidation-rmse:6.41499\n", "[186]\tvalidation-rmse:6.41474\n", "[187]\tvalidation-rmse:6.41433\n", "[188]\tvalidation-rmse:6.41400\n", "[189]\tvalidation-rmse:6.41337\n", "[190]\tvalidation-rmse:6.41303\n", "[191]\tvalidation-rmse:6.41268\n", "[192]\tvalidation-rmse:6.41231\n", "[193]\tvalidation-rmse:6.41194\n", "[194]\tvalidation-rmse:6.41151\n", "[195]\tvalidation-rmse:6.41114\n", "[196]\tvalidation-rmse:6.41079\n", "[197]\tvalidation-rmse:6.41052\n", "[198]\tvalidation-rmse:6.41007\n", "[199]\tvalidation-rmse:6.40992\n", "[200]\tvalidation-rmse:6.40956\n", "[201]\tvalidation-rmse:6.40909\n", "[202]\tvalidation-rmse:6.40863\n", "[203]\tvalidation-rmse:6.40831\n", "[204]\tvalidation-rmse:6.40787\n", "[205]\tvalidation-rmse:6.40747\n", "[206]\tvalidation-rmse:6.40700\n", "[207]\tvalidation-rmse:6.40670\n", "[208]\tvalidation-rmse:6.40645\n", "[209]\tvalidation-rmse:6.40634\n", "[210]\tvalidation-rmse:6.40602\n", "[211]\tvalidation-rmse:6.40582\n", "[212]\tvalidation-rmse:6.40544\n", "[213]\tvalidation-rmse:6.40531\n", "[214]\tvalidation-rmse:6.40478\n", "[215]\tvalidation-rmse:6.40440\n", "[216]\tvalidation-rmse:6.40421\n", "[217]\tvalidation-rmse:6.40378\n", "[218]\tvalidation-rmse:6.40336\n", "[219]\tvalidation-rmse:6.40309\n", "[220]\tvalidation-rmse:6.40257\n", "[221]\tvalidation-rmse:6.40214\n", "[222]\tvalidation-rmse:6.40190\n", "[223]\tvalidation-rmse:6.40140\n", "[224]\tvalidation-rmse:6.40096\n", "[225]\tvalidation-rmse:6.40073\n", "[226]\tvalidation-rmse:6.40039\n", "[227]\tvalidation-rmse:6.40008\n", "[228]\tvalidation-rmse:6.39980\n", "[229]\tvalidation-rmse:6.39959\n", "[230]\tvalidation-rmse:6.39915\n", "[231]\tvalidation-rmse:6.39874\n", "[232]\tvalidation-rmse:6.39853\n", "[233]\tvalidation-rmse:6.39811\n", "[234]\tvalidation-rmse:6.39816\n", "[235]\tvalidation-rmse:6.39778\n", "[236]\tvalidation-rmse:6.39731\n", "[237]\tvalidation-rmse:6.39706\n", "[238]\tvalidation-rmse:6.39680\n", "[239]\tvalidation-rmse:6.39668\n", "[240]\tvalidation-rmse:6.39620\n", "[241]\tvalidation-rmse:6.39588\n", "[242]\tvalidation-rmse:6.39569\n", "[243]\tvalidation-rmse:6.39555\n", "[244]\tvalidation-rmse:6.39537\n", "[245]\tvalidation-rmse:6.39505\n", "[246]\tvalidation-rmse:6.39490\n", "[247]\tvalidation-rmse:6.39435\n", "[248]\tvalidation-rmse:6.39392\n", "[249]\tvalidation-rmse:6.39374\n", "[250]\tvalidation-rmse:6.39338\n", "[251]\tvalidation-rmse:6.39298\n", "[252]\tvalidation-rmse:6.39281\n", "[253]\tvalidation-rmse:6.39263\n", "[254]\tvalidation-rmse:6.39238\n", "[255]\tvalidation-rmse:6.39207\n", "[256]\tvalidation-rmse:6.39173\n", "[257]\tvalidation-rmse:6.39155\n", "[258]\tvalidation-rmse:6.39141\n", "[259]\tvalidation-rmse:6.39115\n", "[260]\tvalidation-rmse:6.39095\n", "[261]\tvalidation-rmse:6.39069\n", "[262]\tvalidation-rmse:6.39050\n", "[263]\tvalidation-rmse:6.39016\n", "[264]\tvalidation-rmse:6.38974\n", "[265]\tvalidation-rmse:6.38962\n", "[266]\tvalidation-rmse:6.38921\n", "[267]\tvalidation-rmse:6.38887\n", "[268]\tvalidation-rmse:6.38838\n", "[269]\tvalidation-rmse:6.38814\n", "[270]\tvalidation-rmse:6.38786\n", "[271]\tvalidation-rmse:6.38755\n", "[272]\tvalidation-rmse:6.38727\n", "[273]\tvalidation-rmse:6.38673\n", "[274]\tvalidation-rmse:6.38660\n", "[275]\tvalidation-rmse:6.38649\n", "[276]\tvalidation-rmse:6.38615\n", "[277]\tvalidation-rmse:6.38595\n", "[278]\tvalidation-rmse:6.38585\n", "[279]\tvalidation-rmse:6.38558\n", "[280]\tvalidation-rmse:6.38529\n", "[281]\tvalidation-rmse:6.38510\n", "[282]\tvalidation-rmse:6.38480\n", "[283]\tvalidation-rmse:6.38455\n", "[284]\tvalidation-rmse:6.38429\n", "[285]\tvalidation-rmse:6.38410\n", "[286]\tvalidation-rmse:6.38377\n", "[287]\tvalidation-rmse:6.38341\n", "[288]\tvalidation-rmse:6.38321\n", "[289]\tvalidation-rmse:6.38288\n", "[290]\tvalidation-rmse:6.38241\n", "[291]\tvalidation-rmse:6.38218\n", "[292]\tvalidation-rmse:6.38187\n", "[293]\tvalidation-rmse:6.38155\n", "[294]\tvalidation-rmse:6.38099\n", "[295]\tvalidation-rmse:6.38073\n", "[296]\tvalidation-rmse:6.38059\n", "[297]\tvalidation-rmse:6.38034\n", "[298]\tvalidation-rmse:6.38019\n", "[299]\tvalidation-rmse:6.38001\n", "[300]\tvalidation-rmse:6.37986\n", "[301]\tvalidation-rmse:6.37969\n", "[302]\tvalidation-rmse:6.37924\n", "[303]\tvalidation-rmse:6.37890\n", "[304]\tvalidation-rmse:6.37895\n", "[305]\tvalidation-rmse:6.37869\n", "[306]\tvalidation-rmse:6.37842\n", "[307]\tvalidation-rmse:6.37816\n", "[308]\tvalidation-rmse:6.37811\n", "[309]\tvalidation-rmse:6.37783\n", "[310]\tvalidation-rmse:6.37772\n", "[311]\tvalidation-rmse:6.37743\n", "[312]\tvalidation-rmse:6.37729\n", "[313]\tvalidation-rmse:6.37705\n", "[314]\tvalidation-rmse:6.37677\n", "[315]\tvalidation-rmse:6.37649\n", "[316]\tvalidation-rmse:6.37631\n", "[317]\tvalidation-rmse:6.37607\n", "[318]\tvalidation-rmse:6.37611\n", "[319]\tvalidation-rmse:6.37608\n", "[320]\tvalidation-rmse:6.37587\n", "[321]\tvalidation-rmse:6.37530\n", "[322]\tvalidation-rmse:6.37512\n", "[323]\tvalidation-rmse:6.37506\n", "[324]\tvalidation-rmse:6.37484\n", "[325]\tvalidation-rmse:6.37454\n", "[326]\tvalidation-rmse:6.37430\n", "[327]\tvalidation-rmse:6.37402\n", "[328]\tvalidation-rmse:6.37381\n", "[329]\tvalidation-rmse:6.37348\n", "[330]\tvalidation-rmse:6.37324\n", "[331]\tvalidation-rmse:6.37311\n", "[332]\tvalidation-rmse:6.37297\n", "[333]\tvalidation-rmse:6.37277\n", "[334]\tvalidation-rmse:6.37257\n", "[335]\tvalidation-rmse:6.37230\n", "[336]\tvalidation-rmse:6.37213\n", "[337]\tvalidation-rmse:6.37191\n", "[338]\tvalidation-rmse:6.37165\n", "[339]\tvalidation-rmse:6.37154\n", "[340]\tvalidation-rmse:6.37124\n", "[341]\tvalidation-rmse:6.37103\n", "[342]\tvalidation-rmse:6.37061\n", "[343]\tvalidation-rmse:6.37043\n", "[344]\tvalidation-rmse:6.37031\n", "[345]\tvalidation-rmse:6.37003\n", "[346]\tvalidation-rmse:6.36971\n", "[347]\tvalidation-rmse:6.36955\n", "[348]\tvalidation-rmse:6.36942\n", "[349]\tvalidation-rmse:6.36912\n", "[350]\tvalidation-rmse:6.36894\n", "[351]\tvalidation-rmse:6.36858\n", "[352]\tvalidation-rmse:6.36840\n", "[353]\tvalidation-rmse:6.36804\n", "[354]\tvalidation-rmse:6.36803\n", "[355]\tvalidation-rmse:6.36783\n", "[356]\tvalidation-rmse:6.36776\n", "[357]\tvalidation-rmse:6.36764\n", "[358]\tvalidation-rmse:6.36762\n", "[359]\tvalidation-rmse:6.36744\n", "[360]\tvalidation-rmse:6.36724\n", "[361]\tvalidation-rmse:6.36704\n", "[362]\tvalidation-rmse:6.36685\n", "[363]\tvalidation-rmse:6.36665\n", "[364]\tvalidation-rmse:6.36641\n", "[365]\tvalidation-rmse:6.36637\n", "[366]\tvalidation-rmse:6.36607\n", "[367]\tvalidation-rmse:6.36587\n", "[368]\tvalidation-rmse:6.36567\n", "[369]\tvalidation-rmse:6.36541\n", "[370]\tvalidation-rmse:6.36523\n", "[371]\tvalidation-rmse:6.36505\n", "[372]\tvalidation-rmse:6.36473\n", "[373]\tvalidation-rmse:6.36452\n", "[374]\tvalidation-rmse:6.36396\n", "[375]\tvalidation-rmse:6.36372\n", "[376]\tvalidation-rmse:6.36350\n", "[377]\tvalidation-rmse:6.36332\n", "[378]\tvalidation-rmse:6.36308\n", "[379]\tvalidation-rmse:6.36287\n", "[380]\tvalidation-rmse:6.36263\n", "[381]\tvalidation-rmse:6.36248\n", "[382]\tvalidation-rmse:6.36231\n", "[383]\tvalidation-rmse:6.36206\n", "[384]\tvalidation-rmse:6.36214\n", "[385]\tvalidation-rmse:6.36212\n", "[386]\tvalidation-rmse:6.36183\n", "[387]\tvalidation-rmse:6.36132\n", "[388]\tvalidation-rmse:6.36115\n", "[389]\tvalidation-rmse:6.36116\n", "[390]\tvalidation-rmse:6.36061\n", "[391]\tvalidation-rmse:6.36054\n", "[392]\tvalidation-rmse:6.36047\n", "[393]\tvalidation-rmse:6.36021\n", "[394]\tvalidation-rmse:6.36019\n", "[395]\tvalidation-rmse:6.36027\n", "[396]\tvalidation-rmse:6.36014\n", "[397]\tvalidation-rmse:6.35992\n", "[398]\tvalidation-rmse:6.35962\n", "[399]\tvalidation-rmse:6.35944\n", "[400]\tvalidation-rmse:6.35921\n", "[401]\tvalidation-rmse:6.35872\n", "[402]\tvalidation-rmse:6.35841\n", "[403]\tvalidation-rmse:6.35808\n", "[404]\tvalidation-rmse:6.35819\n", "[405]\tvalidation-rmse:6.35802\n", "[406]\tvalidation-rmse:6.35802\n", "[407]\tvalidation-rmse:6.35791\n", "[408]\tvalidation-rmse:6.35773\n", "[409]\tvalidation-rmse:6.35767\n", "[410]\tvalidation-rmse:6.35738\n", "[411]\tvalidation-rmse:6.35727\n", "[412]\tvalidation-rmse:6.35691\n", "[413]\tvalidation-rmse:6.35679\n", "[414]\tvalidation-rmse:6.35674\n", "[415]\tvalidation-rmse:6.35645\n", "[416]\tvalidation-rmse:6.35627\n", "[417]\tvalidation-rmse:6.35604\n", "[418]\tvalidation-rmse:6.35583\n", "[419]\tvalidation-rmse:6.35568\n", "[420]\tvalidation-rmse:6.35537\n", "[421]\tvalidation-rmse:6.35517\n", "[422]\tvalidation-rmse:6.35501\n", "[423]\tvalidation-rmse:6.35494\n", "[424]\tvalidation-rmse:6.35493\n", "[425]\tvalidation-rmse:6.35484\n", "[426]\tvalidation-rmse:6.35466\n", "[427]\tvalidation-rmse:6.35450\n", "[428]\tvalidation-rmse:6.35439\n", "[429]\tvalidation-rmse:6.35428\n", "[430]\tvalidation-rmse:6.35407\n", "[431]\tvalidation-rmse:6.35404\n", "[432]\tvalidation-rmse:6.35378\n", "[433]\tvalidation-rmse:6.35372\n", "[434]\tvalidation-rmse:6.35329\n", "[435]\tvalidation-rmse:6.35308\n", "[436]\tvalidation-rmse:6.35290\n", "[437]\tvalidation-rmse:6.35275\n", "[438]\tvalidation-rmse:6.35250\n", "[439]\tvalidation-rmse:6.35226\n", "[440]\tvalidation-rmse:6.35212\n", "[441]\tvalidation-rmse:6.35214\n", "[442]\tvalidation-rmse:6.35182\n", "[443]\tvalidation-rmse:6.35178\n", "[444]\tvalidation-rmse:6.35177\n", "[445]\tvalidation-rmse:6.35154\n", "[446]\tvalidation-rmse:6.35140\n", "[447]\tvalidation-rmse:6.35129\n", "[448]\tvalidation-rmse:6.35133\n", "[449]\tvalidation-rmse:6.35111\n", "[450]\tvalidation-rmse:6.35098\n", "[451]\tvalidation-rmse:6.35082\n", "[452]\tvalidation-rmse:6.35065\n", "[453]\tvalidation-rmse:6.35056\n", "[454]\tvalidation-rmse:6.35051\n", "[455]\tvalidation-rmse:6.35033\n", "[456]\tvalidation-rmse:6.35020\n", "[457]\tvalidation-rmse:6.34994\n", "[458]\tvalidation-rmse:6.34976\n", "[459]\tvalidation-rmse:6.34979\n", "[460]\tvalidation-rmse:6.34971\n", "[461]\tvalidation-rmse:6.34956\n", "[462]\tvalidation-rmse:6.34961\n", "[463]\tvalidation-rmse:6.34934\n", "[464]\tvalidation-rmse:6.34912\n", "[465]\tvalidation-rmse:6.34890\n", "[466]\tvalidation-rmse:6.34872\n", "[467]\tvalidation-rmse:6.34854\n", "[468]\tvalidation-rmse:6.34831\n", "[469]\tvalidation-rmse:6.34805\n", "[470]\tvalidation-rmse:6.34763\n", "[471]\tvalidation-rmse:6.34753\n", "[472]\tvalidation-rmse:6.34731\n", "[473]\tvalidation-rmse:6.34715\n", "[474]\tvalidation-rmse:6.34699\n", "[475]\tvalidation-rmse:6.34684\n", "[476]\tvalidation-rmse:6.34679\n", "[477]\tvalidation-rmse:6.34682\n", "[478]\tvalidation-rmse:6.34658\n", "[479]\tvalidation-rmse:6.34625\n", "[480]\tvalidation-rmse:6.34618\n", "[481]\tvalidation-rmse:6.34608\n", "[482]\tvalidation-rmse:6.34589\n", "[483]\tvalidation-rmse:6.34588\n", "[484]\tvalidation-rmse:6.34570\n", "[485]\tvalidation-rmse:6.34541\n", "[486]\tvalidation-rmse:6.34537\n", "[487]\tvalidation-rmse:6.34472\n", "[488]\tvalidation-rmse:6.34472\n", "[489]\tvalidation-rmse:6.34462\n", "[490]\tvalidation-rmse:6.34436\n", "[491]\tvalidation-rmse:6.34427\n", "[492]\tvalidation-rmse:6.34432\n", "[493]\tvalidation-rmse:6.34416\n", "[494]\tvalidation-rmse:6.34416\n", "[495]\tvalidation-rmse:6.34394\n", "[496]\tvalidation-rmse:6.34379\n", "[497]\tvalidation-rmse:6.34366\n", "[498]\tvalidation-rmse:6.34359\n", "[499]\tvalidation-rmse:6.34364\n", "[500]\tvalidation-rmse:6.34317\n", "[501]\tvalidation-rmse:6.34308\n", "[502]\tvalidation-rmse:6.34282\n", "[503]\tvalidation-rmse:6.34274\n", "[504]\tvalidation-rmse:6.34261\n", "[505]\tvalidation-rmse:6.34252\n", "[506]\tvalidation-rmse:6.34228\n", "[507]\tvalidation-rmse:6.34228\n", "[508]\tvalidation-rmse:6.34226\n", "[509]\tvalidation-rmse:6.34220\n", "[510]\tvalidation-rmse:6.34206\n", "[511]\tvalidation-rmse:6.34190\n", "[512]\tvalidation-rmse:6.34174\n", "[513]\tvalidation-rmse:6.34137\n", "[514]\tvalidation-rmse:6.34128\n", "[515]\tvalidation-rmse:6.34121\n", "[516]\tvalidation-rmse:6.34110\n", "[517]\tvalidation-rmse:6.34090\n", "[518]\tvalidation-rmse:6.34064\n", "[519]\tvalidation-rmse:6.34045\n", "[520]\tvalidation-rmse:6.34029\n", "[521]\tvalidation-rmse:6.34022\n", "[522]\tvalidation-rmse:6.34006\n", "[523]\tvalidation-rmse:6.33990\n", "[524]\tvalidation-rmse:6.33967\n", "[525]\tvalidation-rmse:6.33965\n", "[526]\tvalidation-rmse:6.33959\n", "[527]\tvalidation-rmse:6.33950\n", "[528]\tvalidation-rmse:6.33934\n", "[529]\tvalidation-rmse:6.33925\n", "[530]\tvalidation-rmse:6.33925\n", "[531]\tvalidation-rmse:6.33922\n", "[532]\tvalidation-rmse:6.33908\n", "[533]\tvalidation-rmse:6.33889\n", "[534]\tvalidation-rmse:6.33886\n", "[535]\tvalidation-rmse:6.33875\n", "[536]\tvalidation-rmse:6.33861\n", "[537]\tvalidation-rmse:6.33832\n", "[538]\tvalidation-rmse:6.33797\n", "[539]\tvalidation-rmse:6.33794\n", "[540]\tvalidation-rmse:6.33782\n", "[541]\tvalidation-rmse:6.33770\n", "[542]\tvalidation-rmse:6.33752\n", "[543]\tvalidation-rmse:6.33739\n", "[544]\tvalidation-rmse:6.33730\n", "[545]\tvalidation-rmse:6.33707\n", "[546]\tvalidation-rmse:6.33694\n", "[547]\tvalidation-rmse:6.33680\n", "[548]\tvalidation-rmse:6.33659\n", "[549]\tvalidation-rmse:6.33672\n", "[550]\tvalidation-rmse:6.33653\n", "[551]\tvalidation-rmse:6.33657\n", "[552]\tvalidation-rmse:6.33651\n", "[553]\tvalidation-rmse:6.33631\n", "[554]\tvalidation-rmse:6.33623\n", "[555]\tvalidation-rmse:6.33601\n", "[556]\tvalidation-rmse:6.33609\n", "[557]\tvalidation-rmse:6.33599\n", "[558]\tvalidation-rmse:6.33582\n", "[559]\tvalidation-rmse:6.33582\n", "[560]\tvalidation-rmse:6.33561\n", "[561]\tvalidation-rmse:6.33555\n", "[562]\tvalidation-rmse:6.33554\n", "[563]\tvalidation-rmse:6.33540\n", "[564]\tvalidation-rmse:6.33525\n", "[565]\tvalidation-rmse:6.33519\n", "[566]\tvalidation-rmse:6.33517\n", "[567]\tvalidation-rmse:6.33522\n", "[568]\tvalidation-rmse:6.33518\n", "[569]\tvalidation-rmse:6.33510\n", "[570]\tvalidation-rmse:6.33491\n", "[571]\tvalidation-rmse:6.33472\n", "[572]\tvalidation-rmse:6.33458\n", "[573]\tvalidation-rmse:6.33443\n", "[574]\tvalidation-rmse:6.33427\n", "[575]\tvalidation-rmse:6.33401\n", "[576]\tvalidation-rmse:6.33395\n", "[577]\tvalidation-rmse:6.33392\n", "[578]\tvalidation-rmse:6.33378\n", "[579]\tvalidation-rmse:6.33362\n", "[580]\tvalidation-rmse:6.33322\n", "[581]\tvalidation-rmse:6.33312\n", "[582]\tvalidation-rmse:6.33298\n", "[583]\tvalidation-rmse:6.33288\n", "[584]\tvalidation-rmse:6.33279\n", "[585]\tvalidation-rmse:6.33271\n", "[586]\tvalidation-rmse:6.33261\n", "[587]\tvalidation-rmse:6.33248\n", "[588]\tvalidation-rmse:6.33243\n", "[589]\tvalidation-rmse:6.33233\n", "[590]\tvalidation-rmse:6.33220\n", "[591]\tvalidation-rmse:6.33225\n", "[592]\tvalidation-rmse:6.33206\n", "[593]\tvalidation-rmse:6.33196\n", "[594]\tvalidation-rmse:6.33162\n", "[595]\tvalidation-rmse:6.33156\n", "[596]\tvalidation-rmse:6.33168\n", "[597]\tvalidation-rmse:6.33147\n", "[598]\tvalidation-rmse:6.33136\n", "[599]\tvalidation-rmse:6.33130\n", "[600]\tvalidation-rmse:6.33126\n", "[601]\tvalidation-rmse:6.33116\n", "[602]\tvalidation-rmse:6.33107\n", "[603]\tvalidation-rmse:6.33093\n", "[604]\tvalidation-rmse:6.33082\n", "[605]\tvalidation-rmse:6.33088\n", "[606]\tvalidation-rmse:6.33082\n", "[607]\tvalidation-rmse:6.33074\n", "[608]\tvalidation-rmse:6.33069\n", "[609]\tvalidation-rmse:6.33065\n", "[610]\tvalidation-rmse:6.33053\n", "[611]\tvalidation-rmse:6.33047\n", "[612]\tvalidation-rmse:6.33048\n", "[613]\tvalidation-rmse:6.33042\n", "[614]\tvalidation-rmse:6.33046\n", "[615]\tvalidation-rmse:6.33046\n", "[616]\tvalidation-rmse:6.33024\n", "[617]\tvalidation-rmse:6.33020\n", "[618]\tvalidation-rmse:6.33003\n", "[619]\tvalidation-rmse:6.32991\n", "[620]\tvalidation-rmse:6.32981\n", "[621]\tvalidation-rmse:6.32971\n", "[622]\tvalidation-rmse:6.32958\n", "[623]\tvalidation-rmse:6.32947\n", "[624]\tvalidation-rmse:6.32937\n", "[625]\tvalidation-rmse:6.32929\n", "[626]\tvalidation-rmse:6.32923\n", "[627]\tvalidation-rmse:6.32900\n", "[628]\tvalidation-rmse:6.32882\n", "[629]\tvalidation-rmse:6.32867\n", "[630]\tvalidation-rmse:6.32856\n", "[631]\tvalidation-rmse:6.32842\n", "[632]\tvalidation-rmse:6.32832\n", "[633]\tvalidation-rmse:6.32810\n", "[634]\tvalidation-rmse:6.32814\n", "[635]\tvalidation-rmse:6.32801\n", "[636]\tvalidation-rmse:6.32790\n", "[637]\tvalidation-rmse:6.32781\n", "[638]\tvalidation-rmse:6.32774\n", "[639]\tvalidation-rmse:6.32761\n", "[640]\tvalidation-rmse:6.32758\n", "[641]\tvalidation-rmse:6.32737\n", "[642]\tvalidation-rmse:6.32715\n", "[643]\tvalidation-rmse:6.32706\n", "[644]\tvalidation-rmse:6.32696\n", "[645]\tvalidation-rmse:6.32696\n", "[646]\tvalidation-rmse:6.32686\n", "[647]\tvalidation-rmse:6.32685\n", "[648]\tvalidation-rmse:6.32672\n", "[649]\tvalidation-rmse:6.32671\n", "[650]\tvalidation-rmse:6.32658\n", "[651]\tvalidation-rmse:6.32669\n", "[652]\tvalidation-rmse:6.32636\n", "[653]\tvalidation-rmse:6.32621\n", "[654]\tvalidation-rmse:6.32593\n", "[655]\tvalidation-rmse:6.32580\n", "[656]\tvalidation-rmse:6.32567\n", "[657]\tvalidation-rmse:6.32573\n", "[658]\tvalidation-rmse:6.32562\n", "[659]\tvalidation-rmse:6.32563\n", "[660]\tvalidation-rmse:6.32540\n", "[661]\tvalidation-rmse:6.32547\n", "[662]\tvalidation-rmse:6.32535\n", "[663]\tvalidation-rmse:6.32540\n", "[664]\tvalidation-rmse:6.32526\n", "[665]\tvalidation-rmse:6.32517\n", "[666]\tvalidation-rmse:6.32512\n", "[667]\tvalidation-rmse:6.32507\n", "[668]\tvalidation-rmse:6.32504\n", "[669]\tvalidation-rmse:6.32511\n", "[670]\tvalidation-rmse:6.32492\n", "[671]\tvalidation-rmse:6.32479\n", "[672]\tvalidation-rmse:6.32472\n", "[673]\tvalidation-rmse:6.32461\n", "[674]\tvalidation-rmse:6.32423\n", "[675]\tvalidation-rmse:6.32426\n", "[676]\tvalidation-rmse:6.32416\n", "[677]\tvalidation-rmse:6.32405\n", "[678]\tvalidation-rmse:6.32411\n", "[679]\tvalidation-rmse:6.32404\n", "[680]\tvalidation-rmse:6.32398\n", "[681]\tvalidation-rmse:6.32386\n", "[682]\tvalidation-rmse:6.32366\n", "[683]\tvalidation-rmse:6.32354\n", "[684]\tvalidation-rmse:6.32353\n", "[685]\tvalidation-rmse:6.32335\n", "[686]\tvalidation-rmse:6.32323\n", "[687]\tvalidation-rmse:6.32323\n", "[688]\tvalidation-rmse:6.32329\n", "[689]\tvalidation-rmse:6.32316\n", "[690]\tvalidation-rmse:6.32317\n", "[691]\tvalidation-rmse:6.32309\n", "[692]\tvalidation-rmse:6.32297\n", "[693]\tvalidation-rmse:6.32285\n", "[694]\tvalidation-rmse:6.32286\n", "[695]\tvalidation-rmse:6.32272\n", "[696]\tvalidation-rmse:6.32262\n", "[697]\tvalidation-rmse:6.32253\n", "[698]\tvalidation-rmse:6.32250\n", "[699]\tvalidation-rmse:6.32242\n", "[700]\tvalidation-rmse:6.32235\n", "[701]\tvalidation-rmse:6.32225\n", "[702]\tvalidation-rmse:6.32213\n", "[703]\tvalidation-rmse:6.32189\n", "[704]\tvalidation-rmse:6.32180\n", "[705]\tvalidation-rmse:6.32164\n", "[706]\tvalidation-rmse:6.32147\n", "[707]\tvalidation-rmse:6.32138\n", "[708]\tvalidation-rmse:6.32127\n", "[709]\tvalidation-rmse:6.32115\n", "[710]\tvalidation-rmse:6.32098\n", "[711]\tvalidation-rmse:6.32092\n", "[712]\tvalidation-rmse:6.32091\n", "[713]\tvalidation-rmse:6.32086\n", "[714]\tvalidation-rmse:6.32074\n", "[715]\tvalidation-rmse:6.32049\n", "[716]\tvalidation-rmse:6.32045\n", "[717]\tvalidation-rmse:6.32040\n", "[718]\tvalidation-rmse:6.32035\n", "[719]\tvalidation-rmse:6.32034\n", "[720]\tvalidation-rmse:6.32033\n", "[721]\tvalidation-rmse:6.32039\n", "[722]\tvalidation-rmse:6.32011\n", "[723]\tvalidation-rmse:6.32003\n", "[724]\tvalidation-rmse:6.31998\n", "[725]\tvalidation-rmse:6.31989\n", "[726]\tvalidation-rmse:6.31984\n", "[727]\tvalidation-rmse:6.31982\n", "[728]\tvalidation-rmse:6.31982\n", "[729]\tvalidation-rmse:6.31957\n", "[730]\tvalidation-rmse:6.31946\n", "[731]\tvalidation-rmse:6.31952\n", "[732]\tvalidation-rmse:6.31942\n", "[733]\tvalidation-rmse:6.31935\n", "[734]\tvalidation-rmse:6.31928\n", "[735]\tvalidation-rmse:6.31909\n", "[736]\tvalidation-rmse:6.31903\n", "[737]\tvalidation-rmse:6.31903\n", "[738]\tvalidation-rmse:6.31895\n", "[739]\tvalidation-rmse:6.31879\n", "[740]\tvalidation-rmse:6.31878\n", "[741]\tvalidation-rmse:6.31856\n", "[742]\tvalidation-rmse:6.31826\n", "[743]\tvalidation-rmse:6.31824\n", "[744]\tvalidation-rmse:6.31824\n", "[745]\tvalidation-rmse:6.31816\n", "[746]\tvalidation-rmse:6.31825\n", "[747]\tvalidation-rmse:6.31809\n", "[748]\tvalidation-rmse:6.31785\n", "[749]\tvalidation-rmse:6.31777\n", "[750]\tvalidation-rmse:6.31764\n", "[751]\tvalidation-rmse:6.31746\n", "[752]\tvalidation-rmse:6.31749\n", "[753]\tvalidation-rmse:6.31734\n", "[754]\tvalidation-rmse:6.31728\n", "[755]\tvalidation-rmse:6.31728\n", "[756]\tvalidation-rmse:6.31711\n", "[757]\tvalidation-rmse:6.31703\n", "[758]\tvalidation-rmse:6.31689\n", "[759]\tvalidation-rmse:6.31687\n", "[760]\tvalidation-rmse:6.31687\n", "[761]\tvalidation-rmse:6.31676\n", "[762]\tvalidation-rmse:6.31672\n", "[763]\tvalidation-rmse:6.31675\n", "[764]\tvalidation-rmse:6.31681\n", "[765]\tvalidation-rmse:6.31674\n", "[766]\tvalidation-rmse:6.31657\n", "[767]\tvalidation-rmse:6.31652\n", "[768]\tvalidation-rmse:6.31651\n", "[769]\tvalidation-rmse:6.31654\n", "[770]\tvalidation-rmse:6.31642\n", "[771]\tvalidation-rmse:6.31625\n", "[772]\tvalidation-rmse:6.31620\n", "[773]\tvalidation-rmse:6.31607\n", "[774]\tvalidation-rmse:6.31611\n", "[775]\tvalidation-rmse:6.31609\n", "[776]\tvalidation-rmse:6.31606\n", "[777]\tvalidation-rmse:6.31605\n", "[778]\tvalidation-rmse:6.31593\n", "[779]\tvalidation-rmse:6.31596\n", "[780]\tvalidation-rmse:6.31588\n", "[781]\tvalidation-rmse:6.31578\n", "[782]\tvalidation-rmse:6.31580\n", "[783]\tvalidation-rmse:6.31577\n", "[784]\tvalidation-rmse:6.31584\n", "[785]\tvalidation-rmse:6.31580\n", "[786]\tvalidation-rmse:6.31578\n", "[787]\tvalidation-rmse:6.31578\n", "[788]\tvalidation-rmse:6.31569\n", "[789]\tvalidation-rmse:6.31562\n", "[790]\tvalidation-rmse:6.31562\n", "[791]\tvalidation-rmse:6.31550\n", "[792]\tvalidation-rmse:6.31538\n", "[793]\tvalidation-rmse:6.31527\n", "[794]\tvalidation-rmse:6.31519\n", "[795]\tvalidation-rmse:6.31519\n", "[796]\tvalidation-rmse:6.31516\n", "[797]\tvalidation-rmse:6.31509\n", "[798]\tvalidation-rmse:6.31505\n", "[799]\tvalidation-rmse:6.31505\n", "[800]\tvalidation-rmse:6.31504\n", "[801]\tvalidation-rmse:6.31493\n", "[802]\tvalidation-rmse:6.31492\n", "[803]\tvalidation-rmse:6.31482\n", "[804]\tvalidation-rmse:6.31462\n", "[805]\tvalidation-rmse:6.31462\n", "[806]\tvalidation-rmse:6.31457\n", "[807]\tvalidation-rmse:6.31451\n", "[808]\tvalidation-rmse:6.31460\n", "[809]\tvalidation-rmse:6.31450\n", "[810]\tvalidation-rmse:6.31440\n", "[811]\tvalidation-rmse:6.31399\n", "[812]\tvalidation-rmse:6.31386\n", "[813]\tvalidation-rmse:6.31385\n", "[814]\tvalidation-rmse:6.31385\n", "[815]\tvalidation-rmse:6.31380\n", "[816]\tvalidation-rmse:6.31375\n", "[817]\tvalidation-rmse:6.31369\n", "[818]\tvalidation-rmse:6.31366\n", "[819]\tvalidation-rmse:6.31363\n", "[820]\tvalidation-rmse:6.31342\n", "[821]\tvalidation-rmse:6.31328\n", "[822]\tvalidation-rmse:6.31317\n", "[823]\tvalidation-rmse:6.31322\n", "[824]\tvalidation-rmse:6.31317\n", "[825]\tvalidation-rmse:6.31318\n", "[826]\tvalidation-rmse:6.31317\n", "[827]\tvalidation-rmse:6.31317\n", "[828]\tvalidation-rmse:6.31309\n", "[829]\tvalidation-rmse:6.31290\n", "[830]\tvalidation-rmse:6.31278\n", "[831]\tvalidation-rmse:6.31271\n", "[832]\tvalidation-rmse:6.31266\n", "[833]\tvalidation-rmse:6.31270\n", "[834]\tvalidation-rmse:6.31273\n", "[835]\tvalidation-rmse:6.31271\n", "[836]\tvalidation-rmse:6.31268\n", "[837]\tvalidation-rmse:6.31260\n", "[838]\tvalidation-rmse:6.31253\n", "[839]\tvalidation-rmse:6.31239\n", "[840]\tvalidation-rmse:6.31230\n", "[841]\tvalidation-rmse:6.31227\n", "[842]\tvalidation-rmse:6.31215\n", "[843]\tvalidation-rmse:6.31216\n", "[844]\tvalidation-rmse:6.31220\n", "[845]\tvalidation-rmse:6.31214\n", "[846]\tvalidation-rmse:6.31200\n", "[847]\tvalidation-rmse:6.31178\n", "[848]\tvalidation-rmse:6.31167\n", "[849]\tvalidation-rmse:6.31149\n", "[850]\tvalidation-rmse:6.31131\n", "[851]\tvalidation-rmse:6.31137\n", "[852]\tvalidation-rmse:6.31137\n", "[853]\tvalidation-rmse:6.31140\n", "[854]\tvalidation-rmse:6.31131\n", "[855]\tvalidation-rmse:6.31122\n", "[856]\tvalidation-rmse:6.31085\n", "[857]\tvalidation-rmse:6.31078\n", "[858]\tvalidation-rmse:6.31097\n", "[859]\tvalidation-rmse:6.31099\n", "[860]\tvalidation-rmse:6.31095\n", "[861]\tvalidation-rmse:6.31070\n", "[862]\tvalidation-rmse:6.31047\n", "[863]\tvalidation-rmse:6.31043\n", "[864]\tvalidation-rmse:6.31033\n", "[865]\tvalidation-rmse:6.31020\n", "[866]\tvalidation-rmse:6.31011\n", "[867]\tvalidation-rmse:6.31008\n", "[868]\tvalidation-rmse:6.31002\n", "[869]\tvalidation-rmse:6.30995\n", "[870]\tvalidation-rmse:6.30987\n", "[871]\tvalidation-rmse:6.30997\n", "[872]\tvalidation-rmse:6.30987\n", "[873]\tvalidation-rmse:6.30980\n", "[874]\tvalidation-rmse:6.30973\n", "[875]\tvalidation-rmse:6.30972\n", "[876]\tvalidation-rmse:6.30968\n", "[877]\tvalidation-rmse:6.30949\n", "[878]\tvalidation-rmse:6.30944\n", "[879]\tvalidation-rmse:6.30935\n", "[880]\tvalidation-rmse:6.30874\n", "[881]\tvalidation-rmse:6.30878\n", "[882]\tvalidation-rmse:6.30872\n", "[883]\tvalidation-rmse:6.30863\n", "[884]\tvalidation-rmse:6.30866\n", "[885]\tvalidation-rmse:6.30861\n", "[886]\tvalidation-rmse:6.30857\n", "[887]\tvalidation-rmse:6.30841\n", "[888]\tvalidation-rmse:6.30834\n", "[889]\tvalidation-rmse:6.30829\n", "[890]\tvalidation-rmse:6.30821\n", "[891]\tvalidation-rmse:6.30811\n", "[892]\tvalidation-rmse:6.30818\n", "[893]\tvalidation-rmse:6.30817\n", "[894]\tvalidation-rmse:6.30813\n", "[895]\tvalidation-rmse:6.30801\n", "[896]\tvalidation-rmse:6.30797\n", "[897]\tvalidation-rmse:6.30800\n", "[898]\tvalidation-rmse:6.30800\n", "[899]\tvalidation-rmse:6.30791\n", "[900]\tvalidation-rmse:6.30796\n", "[901]\tvalidation-rmse:6.30791\n", "[902]\tvalidation-rmse:6.30760\n", "[903]\tvalidation-rmse:6.30756\n", "[904]\tvalidation-rmse:6.30752\n", "[905]\tvalidation-rmse:6.30746\n", "[906]\tvalidation-rmse:6.30742\n", "[907]\tvalidation-rmse:6.30734\n", "[908]\tvalidation-rmse:6.30724\n", "[909]\tvalidation-rmse:6.30714\n", "[910]\tvalidation-rmse:6.30712\n", "[911]\tvalidation-rmse:6.30715\n", "[912]\tvalidation-rmse:6.30709\n", "[913]\tvalidation-rmse:6.30718\n", "[914]\tvalidation-rmse:6.30721\n", "[915]\tvalidation-rmse:6.30722\n", "[916]\tvalidation-rmse:6.30723\n", "[917]\tvalidation-rmse:6.30718\n", "[918]\tvalidation-rmse:6.30709\n", "[919]\tvalidation-rmse:6.30688\n", "[920]\tvalidation-rmse:6.30691\n", "[921]\tvalidation-rmse:6.30683\n", "[922]\tvalidation-rmse:6.30667\n", "[923]\tvalidation-rmse:6.30660\n", "[924]\tvalidation-rmse:6.30665\n", "[925]\tvalidation-rmse:6.30641\n", "[926]\tvalidation-rmse:6.30624\n", "[927]\tvalidation-rmse:6.30625\n", "[928]\tvalidation-rmse:6.30617\n", "[929]\tvalidation-rmse:6.30613\n", "[930]\tvalidation-rmse:6.30627\n", "[931]\tvalidation-rmse:6.30610\n", "[932]\tvalidation-rmse:6.30612\n", "[933]\tvalidation-rmse:6.30606\n", "[934]\tvalidation-rmse:6.30607\n", "[935]\tvalidation-rmse:6.30596\n", "[936]\tvalidation-rmse:6.30597\n", "[937]\tvalidation-rmse:6.30603\n", "[938]\tvalidation-rmse:6.30606\n", "[939]\tvalidation-rmse:6.30587\n", "[940]\tvalidation-rmse:6.30576\n", "[941]\tvalidation-rmse:6.30545\n", "[942]\tvalidation-rmse:6.30536\n", "[943]\tvalidation-rmse:6.30521\n", "[944]\tvalidation-rmse:6.30519\n", "[945]\tvalidation-rmse:6.30513\n", "[946]\tvalidation-rmse:6.30508\n", "[947]\tvalidation-rmse:6.30497\n", "[948]\tvalidation-rmse:6.30495\n", "[949]\tvalidation-rmse:6.30499\n", "[950]\tvalidation-rmse:6.30494\n", "[951]\tvalidation-rmse:6.30492\n", "[952]\tvalidation-rmse:6.30498\n", "[953]\tvalidation-rmse:6.30483\n", "[954]\tvalidation-rmse:6.30486\n", "[955]\tvalidation-rmse:6.30495\n", "[956]\tvalidation-rmse:6.30500\n", "[957]\tvalidation-rmse:6.30516\n", "[958]\tvalidation-rmse:6.30518\n", "[959]\tvalidation-rmse:6.30519\n", "[960]\tvalidation-rmse:6.30516\n", "[961]\tvalidation-rmse:6.30515\n", "[962]\tvalidation-rmse:6.30517\n", "[963]\tvalidation-rmse:6.30516\n", "[964]\tvalidation-rmse:6.30516\n", "[965]\tvalidation-rmse:6.30513\n", "[966]\tvalidation-rmse:6.30518\n", "[967]\tvalidation-rmse:6.30510\n", "[968]\tvalidation-rmse:6.30517\n", "[969]\tvalidation-rmse:6.30511\n", "[970]\tvalidation-rmse:6.30513\n", "[971]\tvalidation-rmse:6.30513\n", "[972]\tvalidation-rmse:6.30510\n", "[973]\tvalidation-rmse:6.30508\n", "[974]\tvalidation-rmse:6.30504\n", "[975]\tvalidation-rmse:6.30485\n", "[976]\tvalidation-rmse:6.30485\n", "[977]\tvalidation-rmse:6.30472\n", "[978]\tvalidation-rmse:6.30462\n", "[979]\tvalidation-rmse:6.30468\n", "[980]\tvalidation-rmse:6.30474\n", "[981]\tvalidation-rmse:6.30474\n", "[982]\tvalidation-rmse:6.30483\n", "[983]\tvalidation-rmse:6.30475\n", "[984]\tvalidation-rmse:6.30474\n", "[985]\tvalidation-rmse:6.30472\n", "[986]\tvalidation-rmse:6.30472\n", "[987]\tvalidation-rmse:6.30470\n", "[988]\tvalidation-rmse:6.30461\n", "[989]\tvalidation-rmse:6.30449\n", "[990]\tvalidation-rmse:6.30449\n", "[991]\tvalidation-rmse:6.30438\n", "[992]\tvalidation-rmse:6.30438\n", "[993]\tvalidation-rmse:6.30429\n", "[994]\tvalidation-rmse:6.30429\n", "[995]\tvalidation-rmse:6.30412\n", "[996]\tvalidation-rmse:6.30410\n", "[997]\tvalidation-rmse:6.30407\n", "[998]\tvalidation-rmse:6.30405\n", "[999]\tvalidation-rmse:6.30398\n" ] } ], "source": [ "with mlflow.start_run():\n", " \n", " train = xgb.DMatrix(X_train, label=y_train)\n", " valid = xgb.DMatrix(X_val, label=y_val)\n", "\n", " best_params = {\n", " 'learning_rate': 0.09585355369315604,\n", " 'max_depth': 30,\n", " 'min_child_weight': 1.060597050922164,\n", " 'objective': 'reg:linear',\n", " 'reg_alpha': 0.018060244040060163,\n", " 'reg_lambda': 0.011658731377413597,\n", " 'seed': 42\n", " }\n", "\n", " mlflow.log_params(best_params)\n", "\n", " booster = xgb.train(\n", " params=best_params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", "\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " with open(\"models/preprocessor.b\", \"wb\") as f_out:\n", " pickle.dump(dv, f_out)\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlflow.xgboost.log_model(booster, artifact_path=\"models_mlflow\")" ] }, { "cell_type": "code", "execution_count": 23, "id": "87614b82", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/cristian.martinez/miniconda3/envs/exp-tracking-env/lib/python3.9/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor\n", "from sklearn.svm import LinearSVR\n", "\n", "mlflow.sklearn.autolog()\n", "\n", "for model_class in (RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor, LinearSVR):\n", "\n", " with mlflow.start_run():\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlmodel = model_class()\n", " mlmodel.fit(X_train, y_train)\n", "\n", " y_pred = mlmodel.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", " " ] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.3/duration_prediction_original.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "55a306f4", "metadata": {}, "source": [ "Originally `duration-prediction.ipynb` from Module 2." ] }, { "cell_type": "code", "execution_count": 1, "id": "b2bd82d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.9.12\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": 2, "id": "41062d8a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 3, "id": "c984c564", "metadata": {}, "outputs": [], "source": [ "import pickle" ] }, { "cell_type": "code", "execution_count": 4, "id": "4add538c", "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "id": "8b135c2b", "metadata": {}, "outputs": [], "source": [ "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.linear_model import Lasso\n", "from sklearn.linear_model import Ridge\n", "\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 44, "id": "1464985f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import mlflow\n", "\n", "\n", "mlflow.set_tracking_uri(\"sqlite:///mlflow.db\")\n", "mlflow.set_experiment(\"nyc-taxi-experiment\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "f9e6479e", "metadata": {}, "outputs": [], "source": [ "def read_dataframe(filename):\n", " df = pd.read_csv(filename)\n", "\n", " df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime)\n", " df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime)\n", "\n", " df['duration'] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime\n", " df.duration = df.duration.apply(lambda td: td.total_seconds() / 60)\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)]\n", "\n", " categorical = ['PULocationID', 'DOLocationID']\n", " df[categorical] = df[categorical].astype(str)\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 8, "id": "8029eba0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/42/f9s_rgk15078ym2w50_xtc180000gq/T/ipykernel_4832/3970424726.py:2: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", " df = pd.read_csv(filename)\n" ] } ], "source": [ "df_train = read_dataframe('./data/green_tripdata_2021-01.csv')\n", "df_val = read_dataframe('./data/green_tripdata_2021-02.csv')" ] }, { "cell_type": "code", "execution_count": 9, "id": "f6f2f0eb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(73908, 61921)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df_train), len(df_val)" ] }, { "cell_type": "code", "execution_count": 10, "id": "951d51ef", "metadata": {}, "outputs": [], "source": [ "df_train['PU_DO'] = df_train['PULocationID'] + '_' + df_train['DOLocationID']\n", "df_val['PU_DO'] = df_val['PULocationID'] + '_' + df_val['DOLocationID']" ] }, { "cell_type": "code", "execution_count": 11, "id": "c5cbfc25", "metadata": {}, "outputs": [], "source": [ "categorical = ['PU_DO'] #'PULocationID', 'DOLocationID']\n", "numerical = ['trip_distance']\n", "\n", "dv = DictVectorizer()\n", "\n", "train_dicts = df_train[categorical + numerical].to_dict(orient='records')\n", "X_train = dv.fit_transform(train_dicts)\n", "\n", "val_dicts = df_val[categorical + numerical].to_dict(orient='records')\n", "X_val = dv.transform(val_dicts)" ] }, { "cell_type": "code", "execution_count": 12, "id": "1e9fb68b", "metadata": {}, "outputs": [], "source": [ "target = 'duration'\n", "y_train = df_train[target].values\n", "y_val = df_val[target].values" ] }, { "cell_type": "code", "execution_count": 13, "id": "429e2394", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7.758715210382775" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_val)\n", "\n", "mean_squared_error(y_val, y_pred, squared=False)" ] }, { "cell_type": "code", "execution_count": 14, "id": "22bf6f8b", "metadata": {}, "outputs": [], "source": [ "with open('models/lin_reg.bin', 'wb') as f_out:\n", " pickle.dump((dv, lr), f_out)" ] }, { "cell_type": "code", "execution_count": 47, "id": "a4999b94", "metadata": {}, "outputs": [], "source": [ "with mlflow.start_run():\n", "\n", " mlflow.set_tag(\"developer\", \"cristian\")\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", "\n", " alpha = 0.1\n", " mlflow.log_param(\"alpha\", alpha)\n", " lr = Lasso(alpha)\n", " lr.fit(X_train, y_train)\n", "\n", " y_pred = lr.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " mlflow.log_artifact(local_path=\"models/lin_reg.bin\", artifact_path=\"models_pickle\")" ] }, { "cell_type": "code", "execution_count": null, "id": "47b0eb9b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 15, "id": "5f56e97b", "metadata": {}, "outputs": [], "source": [ "import xgboost as xgb" ] }, { "cell_type": "code", "execution_count": 16, "id": "907dc6a2", "metadata": {}, "outputs": [], "source": [ "from hyperopt import fmin, tpe, hp, STATUS_OK, Trials\n", "from hyperopt.pyll import scope" ] }, { "cell_type": "code", "execution_count": 17, "id": "091ab328", "metadata": {}, "outputs": [], "source": [ "train = xgb.DMatrix(X_train, label=y_train)\n", "valid = xgb.DMatrix(X_val, label=y_val)" ] }, { "cell_type": "code", "execution_count": 23, "id": "c2d84b26", "metadata": {}, "outputs": [], "source": [ "def objective(params):\n", " with mlflow.start_run():\n", " mlflow.set_tag(\"model\", \"xgboost\")\n", " mlflow.log_params(params)\n", " booster = xgb.train(\n", " params=params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " return {'loss': rmse, 'status': STATUS_OK}" ] }, { "cell_type": "code", "execution_count": 24, "id": "6b1f77f5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[12:38:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.27920 \n", "[1]\tvalidation-rmse:8.01759 \n", "[2]\tvalidation-rmse:7.08526 \n", "[3]\tvalidation-rmse:6.80494 \n", "[4]\tvalidation-rmse:6.70455 \n", "[5]\tvalidation-rmse:6.66392 \n", "[6]\tvalidation-rmse:6.64210 \n", "[7]\tvalidation-rmse:6.63159 \n", "[8]\tvalidation-rmse:6.62676 \n", "[9]\tvalidation-rmse:6.62346 \n", "[10]\tvalidation-rmse:6.62027 \n", "[11]\tvalidation-rmse:6.61790 \n", "[12]\tvalidation-rmse:6.61591 \n", "[13]\tvalidation-rmse:6.61457 \n", "[14]\tvalidation-rmse:6.61208 \n", "[15]\tvalidation-rmse:6.60727 \n", "[16]\tvalidation-rmse:6.60534 \n", "[17]\tvalidation-rmse:6.60406 \n", "[18]\tvalidation-rmse:6.60130 \n", "[19]\tvalidation-rmse:6.60099 \n", "[20]\tvalidation-rmse:6.59977 \n", "[21]\tvalidation-rmse:6.59743 \n", "[22]\tvalidation-rmse:6.59615 \n", "[23]\tvalidation-rmse:6.59525 \n", "[24]\tvalidation-rmse:6.59426 \n", "[25]\tvalidation-rmse:6.59344 \n", "[26]\tvalidation-rmse:6.59256 \n", "[27]\tvalidation-rmse:6.59171 \n", "[28]\tvalidation-rmse:6.59147 \n", "[29]\tvalidation-rmse:6.58954 \n", "[30]\tvalidation-rmse:6.58971 \n", "[31]\tvalidation-rmse:6.58914 \n", "[32]\tvalidation-rmse:6.58899 \n", "[33]\tvalidation-rmse:6.58854 \n", "[34]\tvalidation-rmse:6.58800 \n", "[35]\tvalidation-rmse:6.58843 \n", "[36]\tvalidation-rmse:6.58843 \n", "[37]\tvalidation-rmse:6.58830 \n", "[38]\tvalidation-rmse:6.58821 \n", "[39]\tvalidation-rmse:6.58807 \n", "[40]\tvalidation-rmse:6.58789 \n", "[41]\tvalidation-rmse:6.58760 \n", "[42]\tvalidation-rmse:6.58753 \n", "[43]\tvalidation-rmse:6.58801 \n", "[44]\tvalidation-rmse:6.58824 \n", "[45]\tvalidation-rmse:6.58705 \n", "[46]\tvalidation-rmse:6.58718 \n", "[47]\tvalidation-rmse:6.58745 \n", "[48]\tvalidation-rmse:6.58593 \n", "[49]\tvalidation-rmse:6.58587 \n", "[50]\tvalidation-rmse:6.58564 \n", "[51]\tvalidation-rmse:6.58451 \n", "[52]\tvalidation-rmse:6.58450 \n", "[53]\tvalidation-rmse:6.58429 \n", "[54]\tvalidation-rmse:6.58450 \n", "[55]\tvalidation-rmse:6.58429 \n", "[56]\tvalidation-rmse:6.58379 \n", "[57]\tvalidation-rmse:6.58365 \n", "[58]\tvalidation-rmse:6.58416 \n", "[59]\tvalidation-rmse:6.58427 \n", "[60]\tvalidation-rmse:6.58358 \n", "[61]\tvalidation-rmse:6.58404 \n", "[62]\tvalidation-rmse:6.58352 \n", "[63]\tvalidation-rmse:6.58314 \n", "[64]\tvalidation-rmse:6.58317 \n", "[65]\tvalidation-rmse:6.58325 \n", "[66]\tvalidation-rmse:6.58308 \n", "[67]\tvalidation-rmse:6.58327 \n", "[68]\tvalidation-rmse:6.58338 \n", "[69]\tvalidation-rmse:6.58339 \n", "[70]\tvalidation-rmse:6.58306 \n", "[71]\tvalidation-rmse:6.58300 \n", "[72]\tvalidation-rmse:6.58322 \n", "[73]\tvalidation-rmse:6.58246 \n", "[74]\tvalidation-rmse:6.58218 \n", "[75]\tvalidation-rmse:6.58220 \n", "[76]\tvalidation-rmse:6.58216 \n", "[77]\tvalidation-rmse:6.58211 \n", "[78]\tvalidation-rmse:6.58200 \n", "[79]\tvalidation-rmse:6.58218 \n", "[80]\tvalidation-rmse:6.58266 \n", "[81]\tvalidation-rmse:6.58407 \n", "[82]\tvalidation-rmse:6.58394 \n", "[83]\tvalidation-rmse:6.58766 \n", "[84]\tvalidation-rmse:6.58808 \n", "[85]\tvalidation-rmse:6.58788 \n", "[86]\tvalidation-rmse:6.58806 \n", "[87]\tvalidation-rmse:6.58781 \n", "[88]\tvalidation-rmse:6.58830 \n", "[89]\tvalidation-rmse:6.58842 \n", "[90]\tvalidation-rmse:6.58867 \n", "[91]\tvalidation-rmse:6.58835 \n", "[92]\tvalidation-rmse:6.58843 \n", "[93]\tvalidation-rmse:6.58829 \n", "[94]\tvalidation-rmse:6.58857 \n", "[95]\tvalidation-rmse:6.58837 \n", "[96]\tvalidation-rmse:6.58828 \n", "[97]\tvalidation-rmse:6.58856 \n", "[98]\tvalidation-rmse:6.58840 \n", "[99]\tvalidation-rmse:6.58855 \n", "[100]\tvalidation-rmse:6.58857 \n", "[101]\tvalidation-rmse:6.58902 \n", "[102]\tvalidation-rmse:6.58965 \n", "[103]\tvalidation-rmse:6.59053 \n", "[104]\tvalidation-rmse:6.59091 \n", "[105]\tvalidation-rmse:6.59235 \n", "[106]\tvalidation-rmse:6.59203 \n", "[107]\tvalidation-rmse:6.59191 \n", "[108]\tvalidation-rmse:6.59157 \n", "[109]\tvalidation-rmse:6.59161 \n", "[110]\tvalidation-rmse:6.59208 \n", "[111]\tvalidation-rmse:6.59198 \n", "[112]\tvalidation-rmse:6.59159 \n", "[113]\tvalidation-rmse:6.59122 \n", "[114]\tvalidation-rmse:6.59135 \n", "[115]\tvalidation-rmse:6.59117 \n", "[116]\tvalidation-rmse:6.59120 \n", "[117]\tvalidation-rmse:6.59102 \n", "[118]\tvalidation-rmse:6.59076 \n", "[119]\tvalidation-rmse:6.59063 \n", "[120]\tvalidation-rmse:6.59097 \n", "[121]\tvalidation-rmse:6.59099 \n", "[122]\tvalidation-rmse:6.59098 \n", "[123]\tvalidation-rmse:6.59092 \n", "[124]\tvalidation-rmse:6.59113 \n", "[125]\tvalidation-rmse:6.59149 \n", "[126]\tvalidation-rmse:6.59154 \n", "[127]\tvalidation-rmse:6.59138 \n", "[128]\tvalidation-rmse:6.59115 \n", "[12:38:33] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.25179 \n", "[1]\tvalidation-rmse:19.36542 \n", "[2]\tvalidation-rmse:18.53081 \n", "[3]\tvalidation-rmse:17.74354 \n", "[4]\tvalidation-rmse:17.00251 \n", "[5]\tvalidation-rmse:16.30619 \n", "[6]\tvalidation-rmse:15.65125 \n", "[7]\tvalidation-rmse:15.03645 \n", "[8]\tvalidation-rmse:14.45918 \n", "[9]\tvalidation-rmse:13.91665 \n", "[10]\tvalidation-rmse:13.40839 \n", "[11]\tvalidation-rmse:12.93222 \n", "[12]\tvalidation-rmse:12.48605 \n", "[13]\tvalidation-rmse:12.06667 \n", "[14]\tvalidation-rmse:11.67720 \n", "[15]\tvalidation-rmse:11.31099 \n", "[16]\tvalidation-rmse:10.97043 \n", "[17]\tvalidation-rmse:10.65298 \n", "[18]\tvalidation-rmse:10.35607 \n", "[19]\tvalidation-rmse:10.07940 \n", "[20]\tvalidation-rmse:9.82233 \n", "[21]\tvalidation-rmse:9.58395 \n", "[22]\tvalidation-rmse:9.36035 \n", "[23]\tvalidation-rmse:9.15318 \n", "[24]\tvalidation-rmse:8.96136 \n", "[25]\tvalidation-rmse:8.78314 \n", "[26]\tvalidation-rmse:8.61892 \n", "[27]\tvalidation-rmse:8.46559 \n", "[28]\tvalidation-rmse:8.32417 \n", "[29]\tvalidation-rmse:8.19099 \n", "[30]\tvalidation-rmse:8.06830 \n", "[31]\tvalidation-rmse:7.95539 \n", "[32]\tvalidation-rmse:7.85188 \n", "[33]\tvalidation-rmse:7.75502 \n", "[34]\tvalidation-rmse:7.66505 \n", "[35]\tvalidation-rmse:7.58240 \n", "[36]\tvalidation-rmse:7.50501 \n", "[37]\tvalidation-rmse:7.43425 \n", "[38]\tvalidation-rmse:7.36901 \n", "[39]\tvalidation-rmse:7.30826 \n", "[40]\tvalidation-rmse:7.25269 \n", "[41]\tvalidation-rmse:7.20014 \n", "[42]\tvalidation-rmse:7.15171 \n", "[43]\tvalidation-rmse:7.10687 \n", "[44]\tvalidation-rmse:7.06611 \n", "[45]\tvalidation-rmse:7.02806 \n", "[46]\tvalidation-rmse:6.99265 \n", "[47]\tvalidation-rmse:6.95892 \n", "[48]\tvalidation-rmse:6.92809 \n", "[49]\tvalidation-rmse:6.89924 \n", "[50]\tvalidation-rmse:6.87288 \n", "[51]\tvalidation-rmse:6.84795 \n", "[52]\tvalidation-rmse:6.82460 \n", "[53]\tvalidation-rmse:6.80294 \n", "[54]\tvalidation-rmse:6.78241 \n", "[55]\tvalidation-rmse:6.76295 \n", "[56]\tvalidation-rmse:6.74590 \n", "[57]\tvalidation-rmse:6.72979 \n", "[58]\tvalidation-rmse:6.71470 \n", "[59]\tvalidation-rmse:6.70015 \n", "[60]\tvalidation-rmse:6.68690 \n", "[61]\tvalidation-rmse:6.67426 \n", "[62]\tvalidation-rmse:6.66181 \n", "[63]\tvalidation-rmse:6.65059 \n", "[64]\tvalidation-rmse:6.63985 \n", "[65]\tvalidation-rmse:6.62990 \n", "[66]\tvalidation-rmse:6.62034 \n", "[67]\tvalidation-rmse:6.61137 \n", "[68]\tvalidation-rmse:6.60324 \n", "[69]\tvalidation-rmse:6.59522 \n", "[70]\tvalidation-rmse:6.58749 \n", "[71]\tvalidation-rmse:6.58042 \n", "[72]\tvalidation-rmse:6.57371 \n", "[73]\tvalidation-rmse:6.56754 \n", "[74]\tvalidation-rmse:6.56178 \n", "[75]\tvalidation-rmse:6.55569 \n", "[76]\tvalidation-rmse:6.55086 \n", "[77]\tvalidation-rmse:6.54554 \n", "[78]\tvalidation-rmse:6.54087 \n", "[79]\tvalidation-rmse:6.53628 \n", "[80]\tvalidation-rmse:6.53199 \n", "[81]\tvalidation-rmse:6.52792 \n", "[82]\tvalidation-rmse:6.52447 \n", "[83]\tvalidation-rmse:6.52091 \n", "[84]\tvalidation-rmse:6.51810 \n", "[85]\tvalidation-rmse:6.51494 \n", "[86]\tvalidation-rmse:6.51163 \n", "[87]\tvalidation-rmse:6.50891 \n", "[88]\tvalidation-rmse:6.50658 \n", "[89]\tvalidation-rmse:6.50427 \n", "[90]\tvalidation-rmse:6.50226 \n", "[91]\tvalidation-rmse:6.49986 \n", "[92]\tvalidation-rmse:6.49808 \n", "[93]\tvalidation-rmse:6.49611 \n", "[94]\tvalidation-rmse:6.49413 \n", "[95]\tvalidation-rmse:6.49235 \n", "[96]\tvalidation-rmse:6.49057 \n", "[97]\tvalidation-rmse:6.48907 \n", "[98]\tvalidation-rmse:6.48752 \n", "[99]\tvalidation-rmse:6.48619 \n", "[100]\tvalidation-rmse:6.48484 \n", "[101]\tvalidation-rmse:6.48354 \n", "[102]\tvalidation-rmse:6.48240 \n", "[103]\tvalidation-rmse:6.48114 \n", "[104]\tvalidation-rmse:6.48014 \n", "[105]\tvalidation-rmse:6.47892 \n", "[106]\tvalidation-rmse:6.47794 \n", "[107]\tvalidation-rmse:6.47678 \n", "[108]\tvalidation-rmse:6.47583 \n", "[109]\tvalidation-rmse:6.47496 \n", "[110]\tvalidation-rmse:6.47400 \n", "[111]\tvalidation-rmse:6.47329 \n", "[112]\tvalidation-rmse:6.47217 \n", "[113]\tvalidation-rmse:6.47119 \n", "[114]\tvalidation-rmse:6.47028 \n", "[115]\tvalidation-rmse:6.46962 \n", "[116]\tvalidation-rmse:6.46903 \n", "[117]\tvalidation-rmse:6.46802 \n", "[118]\tvalidation-rmse:6.46745 \n", "[119]\tvalidation-rmse:6.46670 \n", "[120]\tvalidation-rmse:6.46586 \n", "[121]\tvalidation-rmse:6.46499 \n", "[122]\tvalidation-rmse:6.46439 \n", "[123]\tvalidation-rmse:6.46347 \n", "[124]\tvalidation-rmse:6.46272 \n", "[125]\tvalidation-rmse:6.46183 \n", "[126]\tvalidation-rmse:6.46088 \n", "[127]\tvalidation-rmse:6.46006 \n", "[128]\tvalidation-rmse:6.45929 \n", "[129]\tvalidation-rmse:6.45859 \n", "[130]\tvalidation-rmse:6.45807 \n", "[131]\tvalidation-rmse:6.45737 \n", "[132]\tvalidation-rmse:6.45700 \n", "[133]\tvalidation-rmse:6.45650 \n", "[134]\tvalidation-rmse:6.45598 \n", "[135]\tvalidation-rmse:6.45556 \n", "[136]\tvalidation-rmse:6.45514 \n", "[137]\tvalidation-rmse:6.45463 \n", "[138]\tvalidation-rmse:6.45426 \n", "[139]\tvalidation-rmse:6.45381 \n", "[140]\tvalidation-rmse:6.45300 \n", "[141]\tvalidation-rmse:6.45255 \n", "[142]\tvalidation-rmse:6.45177 \n", "[143]\tvalidation-rmse:6.45140 \n", "[144]\tvalidation-rmse:6.45080 \n", "[145]\tvalidation-rmse:6.45042 \n", "[146]\tvalidation-rmse:6.44977 \n", "[147]\tvalidation-rmse:6.44933 \n", "[148]\tvalidation-rmse:6.44894 \n", "[149]\tvalidation-rmse:6.44866 \n", "[150]\tvalidation-rmse:6.44828 \n", "[151]\tvalidation-rmse:6.44777 \n", "[152]\tvalidation-rmse:6.44722 \n", "[153]\tvalidation-rmse:6.44681 \n", "[154]\tvalidation-rmse:6.44645 \n", "[155]\tvalidation-rmse:6.44628 \n", "[156]\tvalidation-rmse:6.44598 \n", "[157]\tvalidation-rmse:6.44543 \n", "[158]\tvalidation-rmse:6.44503 \n", "[159]\tvalidation-rmse:6.44431 \n", "[160]\tvalidation-rmse:6.44401 \n", "[161]\tvalidation-rmse:6.44353 \n", "[162]\tvalidation-rmse:6.44325 \n", "[163]\tvalidation-rmse:6.44270 \n", "[164]\tvalidation-rmse:6.44252 \n", "[165]\tvalidation-rmse:6.44223 \n", "[166]\tvalidation-rmse:6.44168 \n", "[167]\tvalidation-rmse:6.44116 \n", "[168]\tvalidation-rmse:6.44102 \n", "[169]\tvalidation-rmse:6.44082 \n", "[170]\tvalidation-rmse:6.44024 \n", "[171]\tvalidation-rmse:6.43970 \n", "[172]\tvalidation-rmse:6.43954 \n", "[173]\tvalidation-rmse:6.43922 \n", "[174]\tvalidation-rmse:6.43901 \n", "[175]\tvalidation-rmse:6.43870 \n", "[176]\tvalidation-rmse:6.43837 \n", "[177]\tvalidation-rmse:6.43793 \n", "[178]\tvalidation-rmse:6.43753 \n", "[179]\tvalidation-rmse:6.43693 \n", "[180]\tvalidation-rmse:6.43678 \n", "[181]\tvalidation-rmse:6.43632 \n", "[182]\tvalidation-rmse:6.43606 \n", "[183]\tvalidation-rmse:6.43566 \n", "[184]\tvalidation-rmse:6.43550 \n", "[185]\tvalidation-rmse:6.43513 \n", "[186]\tvalidation-rmse:6.43489 \n", "[187]\tvalidation-rmse:6.43469 \n", "[188]\tvalidation-rmse:6.43447 \n", "[189]\tvalidation-rmse:6.43426 \n", "[190]\tvalidation-rmse:6.43402 \n", "[191]\tvalidation-rmse:6.43357 \n", "[192]\tvalidation-rmse:6.43319 \n", "[193]\tvalidation-rmse:6.43305 \n", "[194]\tvalidation-rmse:6.43278 \n", "[195]\tvalidation-rmse:6.43269 \n", "[196]\tvalidation-rmse:6.43246 \n", "[197]\tvalidation-rmse:6.43207 \n", "[198]\tvalidation-rmse:6.43179 \n", "[199]\tvalidation-rmse:6.43138 \n", "[200]\tvalidation-rmse:6.43120 \n", "[201]\tvalidation-rmse:6.43070 \n", "[202]\tvalidation-rmse:6.43048 \n", "[203]\tvalidation-rmse:6.43003 \n", "[204]\tvalidation-rmse:6.42985 \n", "[205]\tvalidation-rmse:6.42947 \n", "[206]\tvalidation-rmse:6.42934 \n", "[207]\tvalidation-rmse:6.42918 \n", "[208]\tvalidation-rmse:6.42887 \n", "[209]\tvalidation-rmse:6.42867 \n", "[210]\tvalidation-rmse:6.42851 \n", "[211]\tvalidation-rmse:6.42833 \n", "[212]\tvalidation-rmse:6.42802 \n", "[213]\tvalidation-rmse:6.42771 \n", "[214]\tvalidation-rmse:6.42739 \n", "[215]\tvalidation-rmse:6.42718 \n", "[216]\tvalidation-rmse:6.42701 \n", "[217]\tvalidation-rmse:6.42684 \n", "[218]\tvalidation-rmse:6.42678 \n", "[219]\tvalidation-rmse:6.42660 \n", "[220]\tvalidation-rmse:6.42630 \n", "[221]\tvalidation-rmse:6.42603 \n", "[222]\tvalidation-rmse:6.42559 \n", "[223]\tvalidation-rmse:6.42535 \n", "[224]\tvalidation-rmse:6.42497 \n", "[225]\tvalidation-rmse:6.42489 \n", "[226]\tvalidation-rmse:6.42451 \n", "[227]\tvalidation-rmse:6.42431 \n", "[228]\tvalidation-rmse:6.42396 \n", "[229]\tvalidation-rmse:6.42365 \n", "[230]\tvalidation-rmse:6.42332 \n", "[231]\tvalidation-rmse:6.42315 \n", "[232]\tvalidation-rmse:6.42310 \n", "[233]\tvalidation-rmse:6.42275 \n", "[234]\tvalidation-rmse:6.42239 \n", "[235]\tvalidation-rmse:6.42223 \n", "[236]\tvalidation-rmse:6.42207 \n", "[237]\tvalidation-rmse:6.42190 \n", "[238]\tvalidation-rmse:6.42157 \n", "[239]\tvalidation-rmse:6.42130 \n", "[240]\tvalidation-rmse:6.42111 \n", "[241]\tvalidation-rmse:6.42096 \n", "[242]\tvalidation-rmse:6.42082 \n", "[243]\tvalidation-rmse:6.42057 \n", "[244]\tvalidation-rmse:6.42051 \n", "[245]\tvalidation-rmse:6.42033 \n", "[246]\tvalidation-rmse:6.42021 \n", "[247]\tvalidation-rmse:6.41994 \n", "[248]\tvalidation-rmse:6.41961 \n", "[249]\tvalidation-rmse:6.41945 \n", "[250]\tvalidation-rmse:6.41913 \n", "[251]\tvalidation-rmse:6.41906 \n", "[252]\tvalidation-rmse:6.41865 \n", "[253]\tvalidation-rmse:6.41845 \n", "[254]\tvalidation-rmse:6.41813 \n", "[255]\tvalidation-rmse:6.41790 \n", "[256]\tvalidation-rmse:6.41768 \n", "[257]\tvalidation-rmse:6.41755 \n", "[258]\tvalidation-rmse:6.41720 \n", "[259]\tvalidation-rmse:6.41716 \n", "[260]\tvalidation-rmse:6.41706 \n", "[261]\tvalidation-rmse:6.41682 \n", "[262]\tvalidation-rmse:6.41660 \n", "[263]\tvalidation-rmse:6.41633 \n", "[264]\tvalidation-rmse:6.41619 \n", "[265]\tvalidation-rmse:6.41606 \n", "[266]\tvalidation-rmse:6.41568 \n", "[267]\tvalidation-rmse:6.41557 \n", "[268]\tvalidation-rmse:6.41549 \n", "[269]\tvalidation-rmse:6.41538 \n", "[270]\tvalidation-rmse:6.41524 \n", "[271]\tvalidation-rmse:6.41505 \n", "[272]\tvalidation-rmse:6.41499 \n", "[273]\tvalidation-rmse:6.41485 \n", "[274]\tvalidation-rmse:6.41477 \n", "[275]\tvalidation-rmse:6.41451 \n", "[276]\tvalidation-rmse:6.41439 \n", "[277]\tvalidation-rmse:6.41425 \n", "[278]\tvalidation-rmse:6.41391 \n", "[279]\tvalidation-rmse:6.41386 \n", "[280]\tvalidation-rmse:6.41360 \n", "[281]\tvalidation-rmse:6.41344 \n", "[282]\tvalidation-rmse:6.41312 \n", "[283]\tvalidation-rmse:6.41300 \n", "[284]\tvalidation-rmse:6.41274 \n", "[285]\tvalidation-rmse:6.41269 \n", "[286]\tvalidation-rmse:6.41243 \n", "[287]\tvalidation-rmse:6.41239 \n", "[288]\tvalidation-rmse:6.41217 \n", "[289]\tvalidation-rmse:6.41196 \n", "[290]\tvalidation-rmse:6.41191 \n", "[291]\tvalidation-rmse:6.41189 \n", "[292]\tvalidation-rmse:6.41174 \n", "[293]\tvalidation-rmse:6.41153 \n", "[294]\tvalidation-rmse:6.41135 \n", "[295]\tvalidation-rmse:6.41101 \n", "[296]\tvalidation-rmse:6.41083 \n", "[297]\tvalidation-rmse:6.41070 \n", "[298]\tvalidation-rmse:6.41052 \n", "[299]\tvalidation-rmse:6.41040 \n", "[300]\tvalidation-rmse:6.41026 \n", "[301]\tvalidation-rmse:6.41014 \n", "[302]\tvalidation-rmse:6.41004 \n", "[303]\tvalidation-rmse:6.40998 \n", "[304]\tvalidation-rmse:6.40992 \n", "[305]\tvalidation-rmse:6.40983 \n", "[306]\tvalidation-rmse:6.40954 \n", "[307]\tvalidation-rmse:6.40945 \n", "[308]\tvalidation-rmse:6.40939 \n", "[309]\tvalidation-rmse:6.40915 \n", "[310]\tvalidation-rmse:6.40908 \n", "[311]\tvalidation-rmse:6.40875 \n", "[312]\tvalidation-rmse:6.40861 \n", "[313]\tvalidation-rmse:6.40833 \n", "[314]\tvalidation-rmse:6.40821 \n", "[315]\tvalidation-rmse:6.40791 \n", "[316]\tvalidation-rmse:6.40791 \n", "[317]\tvalidation-rmse:6.40769 \n", "[318]\tvalidation-rmse:6.40764 \n", "[319]\tvalidation-rmse:6.40738 \n", "[320]\tvalidation-rmse:6.40728 \n", "[321]\tvalidation-rmse:6.40702 \n", "[322]\tvalidation-rmse:6.40682 \n", "[323]\tvalidation-rmse:6.40679 \n", "[324]\tvalidation-rmse:6.40667 \n", "[325]\tvalidation-rmse:6.40658 \n", "[326]\tvalidation-rmse:6.40644 \n", "[327]\tvalidation-rmse:6.40631 \n", "[328]\tvalidation-rmse:6.40608 \n", "[329]\tvalidation-rmse:6.40593 \n", "[330]\tvalidation-rmse:6.40580 \n", "[331]\tvalidation-rmse:6.40567 \n", "[332]\tvalidation-rmse:6.40541 \n", "[333]\tvalidation-rmse:6.40534 \n", "[334]\tvalidation-rmse:6.40523 \n", "[335]\tvalidation-rmse:6.40509 \n", "[336]\tvalidation-rmse:6.40509 \n", "[337]\tvalidation-rmse:6.40497 \n", "[338]\tvalidation-rmse:6.40482 \n", "[339]\tvalidation-rmse:6.40468 \n", "[340]\tvalidation-rmse:6.40461 \n", "[341]\tvalidation-rmse:6.40454 \n", "[342]\tvalidation-rmse:6.40438 \n", "[343]\tvalidation-rmse:6.40432 \n", "[344]\tvalidation-rmse:6.40424 \n", "[345]\tvalidation-rmse:6.40416 \n", "[346]\tvalidation-rmse:6.40388 \n", "[347]\tvalidation-rmse:6.40373 \n", "[348]\tvalidation-rmse:6.40354 \n", "[349]\tvalidation-rmse:6.40331 \n", "[350]\tvalidation-rmse:6.40327 \n", "[351]\tvalidation-rmse:6.40299 \n", "[352]\tvalidation-rmse:6.40305 \n", "[353]\tvalidation-rmse:6.40281 \n", "[354]\tvalidation-rmse:6.40267 \n", "[355]\tvalidation-rmse:6.40244 \n", "[356]\tvalidation-rmse:6.40228 \n", "[357]\tvalidation-rmse:6.40201 \n", "[358]\tvalidation-rmse:6.40182 \n", "[359]\tvalidation-rmse:6.40182 \n", "[360]\tvalidation-rmse:6.40173 \n", "[361]\tvalidation-rmse:6.40164 \n", "[362]\tvalidation-rmse:6.40161 \n", "[363]\tvalidation-rmse:6.40139 \n", "[364]\tvalidation-rmse:6.40121 \n", "[365]\tvalidation-rmse:6.40107 \n", "[366]\tvalidation-rmse:6.40097 \n", "[367]\tvalidation-rmse:6.40096 \n", "[368]\tvalidation-rmse:6.40076 \n", "[369]\tvalidation-rmse:6.40066 \n", "[370]\tvalidation-rmse:6.40054 \n", "[371]\tvalidation-rmse:6.40037 \n", "[372]\tvalidation-rmse:6.40020 \n", "[373]\tvalidation-rmse:6.40002 \n", "[374]\tvalidation-rmse:6.39997 \n", "[375]\tvalidation-rmse:6.40006 \n", "[376]\tvalidation-rmse:6.39993 \n", "[377]\tvalidation-rmse:6.39979 \n", "[378]\tvalidation-rmse:6.39976 \n", "[379]\tvalidation-rmse:6.39968 \n", "[380]\tvalidation-rmse:6.39957 \n", "[381]\tvalidation-rmse:6.39946 \n", "[382]\tvalidation-rmse:6.39943 \n", "[383]\tvalidation-rmse:6.39932 \n", "[384]\tvalidation-rmse:6.39920 \n", "[385]\tvalidation-rmse:6.39909 \n", "[386]\tvalidation-rmse:6.39884 \n", "[387]\tvalidation-rmse:6.39877 \n", "[388]\tvalidation-rmse:6.39873 \n", "[389]\tvalidation-rmse:6.39856 \n", "[390]\tvalidation-rmse:6.39845 \n", "[391]\tvalidation-rmse:6.39822 \n", "[392]\tvalidation-rmse:6.39810 \n", "[393]\tvalidation-rmse:6.39777 \n", "[394]\tvalidation-rmse:6.39767 \n", "[395]\tvalidation-rmse:6.39751 \n", "[396]\tvalidation-rmse:6.39737 \n", "[397]\tvalidation-rmse:6.39713 \n", "[398]\tvalidation-rmse:6.39694 \n", "[399]\tvalidation-rmse:6.39692 \n", "[400]\tvalidation-rmse:6.39689 \n", "[401]\tvalidation-rmse:6.39681 \n", "[402]\tvalidation-rmse:6.39665 \n", "[403]\tvalidation-rmse:6.39661 \n", "[404]\tvalidation-rmse:6.39650 \n", "[405]\tvalidation-rmse:6.39641 \n", "[406]\tvalidation-rmse:6.39631 \n", "[407]\tvalidation-rmse:6.39617 \n", "[408]\tvalidation-rmse:6.39610 \n", "[409]\tvalidation-rmse:6.39601 \n", "[410]\tvalidation-rmse:6.39589 \n", "[411]\tvalidation-rmse:6.39587 \n", "[412]\tvalidation-rmse:6.39568 \n", "[413]\tvalidation-rmse:6.39555 \n", "[414]\tvalidation-rmse:6.39542 \n", "[415]\tvalidation-rmse:6.39538 \n", "[416]\tvalidation-rmse:6.39542 \n", "[417]\tvalidation-rmse:6.39531 \n", "[418]\tvalidation-rmse:6.39522 \n", "[419]\tvalidation-rmse:6.39521 \n", "[420]\tvalidation-rmse:6.39512 \n", "[421]\tvalidation-rmse:6.39506 \n", "[422]\tvalidation-rmse:6.39501 \n", "[423]\tvalidation-rmse:6.39493 \n", "[424]\tvalidation-rmse:6.39483 \n", "[425]\tvalidation-rmse:6.39471 \n", "[426]\tvalidation-rmse:6.39447 \n", "[427]\tvalidation-rmse:6.39440 \n", "[428]\tvalidation-rmse:6.39431 \n", "[429]\tvalidation-rmse:6.39423 \n", "[430]\tvalidation-rmse:6.39416 \n", "[431]\tvalidation-rmse:6.39395 \n", "[432]\tvalidation-rmse:6.39385 \n", "[433]\tvalidation-rmse:6.39371 \n", "[434]\tvalidation-rmse:6.39357 \n", "[435]\tvalidation-rmse:6.39337 \n", "[436]\tvalidation-rmse:6.39323 \n", "[437]\tvalidation-rmse:6.39301 \n", "[438]\tvalidation-rmse:6.39298 \n", "[439]\tvalidation-rmse:6.39285 \n", "[440]\tvalidation-rmse:6.39273 \n", "[441]\tvalidation-rmse:6.39276 \n", "[442]\tvalidation-rmse:6.39259 \n", "[443]\tvalidation-rmse:6.39250 \n", "[444]\tvalidation-rmse:6.39250 \n", "[445]\tvalidation-rmse:6.39238 \n", "[446]\tvalidation-rmse:6.39222 \n", "[447]\tvalidation-rmse:6.39214 \n", "[448]\tvalidation-rmse:6.39204 \n", "[449]\tvalidation-rmse:6.39162 \n", "[450]\tvalidation-rmse:6.39159 \n", "[451]\tvalidation-rmse:6.39148 \n", "[452]\tvalidation-rmse:6.39145 \n", "[453]\tvalidation-rmse:6.39138 \n", "[454]\tvalidation-rmse:6.39125 \n", "[455]\tvalidation-rmse:6.39107 \n", "[456]\tvalidation-rmse:6.39102 \n", "[457]\tvalidation-rmse:6.39105 \n", "[458]\tvalidation-rmse:6.39109 \n", "[459]\tvalidation-rmse:6.39094 \n", "[460]\tvalidation-rmse:6.39085 \n", "[461]\tvalidation-rmse:6.39079 \n", "[462]\tvalidation-rmse:6.39085 \n", "[463]\tvalidation-rmse:6.39083 \n", "[464]\tvalidation-rmse:6.39031 \n", "[465]\tvalidation-rmse:6.39019 \n", "[466]\tvalidation-rmse:6.39015 \n", "[467]\tvalidation-rmse:6.38991 \n", "[468]\tvalidation-rmse:6.38973 \n", "[469]\tvalidation-rmse:6.38968 \n", "[470]\tvalidation-rmse:6.38968 \n", "[471]\tvalidation-rmse:6.38960 \n", "[472]\tvalidation-rmse:6.38949 \n", "[473]\tvalidation-rmse:6.38926 \n", "[474]\tvalidation-rmse:6.38918 \n", "[475]\tvalidation-rmse:6.38909 \n", "[476]\tvalidation-rmse:6.38898 \n", "[477]\tvalidation-rmse:6.38885 \n", "[478]\tvalidation-rmse:6.38879 \n", "[479]\tvalidation-rmse:6.38871 \n", "[480]\tvalidation-rmse:6.38855 \n", "[481]\tvalidation-rmse:6.38840 \n", "[482]\tvalidation-rmse:6.38840 \n", "[483]\tvalidation-rmse:6.38818 \n", "[484]\tvalidation-rmse:6.38806 \n", "[485]\tvalidation-rmse:6.38810 \n", "[486]\tvalidation-rmse:6.38790 \n", "[487]\tvalidation-rmse:6.38786 \n", "[488]\tvalidation-rmse:6.38776 \n", "[489]\tvalidation-rmse:6.38768 \n", "[490]\tvalidation-rmse:6.38746 \n", "[491]\tvalidation-rmse:6.38736 \n", "[492]\tvalidation-rmse:6.38732 \n", "[493]\tvalidation-rmse:6.38737 \n", "[494]\tvalidation-rmse:6.38731 \n", "[495]\tvalidation-rmse:6.38725 \n", "[496]\tvalidation-rmse:6.38710 \n", "[497]\tvalidation-rmse:6.38703 \n", "[498]\tvalidation-rmse:6.38685 \n", "[499]\tvalidation-rmse:6.38689 \n", "[500]\tvalidation-rmse:6.38665 \n", "[501]\tvalidation-rmse:6.38662 \n", "[502]\tvalidation-rmse:6.38650 \n", "[503]\tvalidation-rmse:6.38640 \n", "[504]\tvalidation-rmse:6.38618 \n", "[505]\tvalidation-rmse:6.38605 \n", "[506]\tvalidation-rmse:6.38595 \n", "[507]\tvalidation-rmse:6.38586 \n", "[508]\tvalidation-rmse:6.38584 \n", "[509]\tvalidation-rmse:6.38583 \n", "[510]\tvalidation-rmse:6.38583 \n", "[511]\tvalidation-rmse:6.38568 \n", "[512]\tvalidation-rmse:6.38569 \n", "[513]\tvalidation-rmse:6.38558 \n", "[514]\tvalidation-rmse:6.38548 \n", "[515]\tvalidation-rmse:6.38534 \n", "[516]\tvalidation-rmse:6.38546 \n", "[517]\tvalidation-rmse:6.38541 \n", "[518]\tvalidation-rmse:6.38528 \n", "[519]\tvalidation-rmse:6.38518 \n", "[520]\tvalidation-rmse:6.38502 \n", "[521]\tvalidation-rmse:6.38501 \n", "[522]\tvalidation-rmse:6.38494 \n", "[523]\tvalidation-rmse:6.38478 \n", "[524]\tvalidation-rmse:6.38473 \n", "[525]\tvalidation-rmse:6.38466 \n", "[526]\tvalidation-rmse:6.38466 \n", "[527]\tvalidation-rmse:6.38454 \n", "[528]\tvalidation-rmse:6.38459 \n", "[529]\tvalidation-rmse:6.38454 \n", "[530]\tvalidation-rmse:6.38454 \n", "[531]\tvalidation-rmse:6.38452 \n", "[532]\tvalidation-rmse:6.38447 \n", "[533]\tvalidation-rmse:6.38443 \n", "[534]\tvalidation-rmse:6.38435 \n", "[535]\tvalidation-rmse:6.38432 \n", "[536]\tvalidation-rmse:6.38435 \n", "[537]\tvalidation-rmse:6.38432 \n", "[538]\tvalidation-rmse:6.38412 \n", "[539]\tvalidation-rmse:6.38403 \n", "[540]\tvalidation-rmse:6.38392 \n", "[541]\tvalidation-rmse:6.38387 \n", "[542]\tvalidation-rmse:6.38389 \n", "[543]\tvalidation-rmse:6.38372 \n", "[544]\tvalidation-rmse:6.38362 \n", "[545]\tvalidation-rmse:6.38368 \n", "[546]\tvalidation-rmse:6.38354 \n", "[547]\tvalidation-rmse:6.38340 \n", "[548]\tvalidation-rmse:6.38334 \n", "[549]\tvalidation-rmse:6.38320 \n", "[550]\tvalidation-rmse:6.38315 \n", "[551]\tvalidation-rmse:6.38318 \n", "[552]\tvalidation-rmse:6.38303 \n", "[553]\tvalidation-rmse:6.38290 \n", "[554]\tvalidation-rmse:6.38278 \n", "[555]\tvalidation-rmse:6.38277 \n", "[556]\tvalidation-rmse:6.38246 \n", "[557]\tvalidation-rmse:6.38238 \n", "[558]\tvalidation-rmse:6.38224 \n", "[559]\tvalidation-rmse:6.38230 \n", "[560]\tvalidation-rmse:6.38220 \n", "[561]\tvalidation-rmse:6.38216 \n", "[562]\tvalidation-rmse:6.38219 \n", "[563]\tvalidation-rmse:6.38209 \n", "[564]\tvalidation-rmse:6.38211 \n", "[565]\tvalidation-rmse:6.38199 \n", "[566]\tvalidation-rmse:6.38183 \n", "[567]\tvalidation-rmse:6.38179 \n", "[568]\tvalidation-rmse:6.38170 \n", "[569]\tvalidation-rmse:6.38170 \n", "[570]\tvalidation-rmse:6.38173 \n", "[571]\tvalidation-rmse:6.38162 \n", "[572]\tvalidation-rmse:6.38155 \n", "[573]\tvalidation-rmse:6.38141 \n", "[574]\tvalidation-rmse:6.38135 \n", "[575]\tvalidation-rmse:6.38133 \n", "[576]\tvalidation-rmse:6.38123 \n", "[577]\tvalidation-rmse:6.38115 \n", "[578]\tvalidation-rmse:6.38097 \n", "[579]\tvalidation-rmse:6.38098 \n", "[580]\tvalidation-rmse:6.38103 \n", "[581]\tvalidation-rmse:6.38096 \n", "[582]\tvalidation-rmse:6.38096 \n", "[583]\tvalidation-rmse:6.38092 \n", "[584]\tvalidation-rmse:6.38086 \n", "[585]\tvalidation-rmse:6.38082 \n", "[586]\tvalidation-rmse:6.38072 \n", "[587]\tvalidation-rmse:6.38068 \n", "[588]\tvalidation-rmse:6.38064 \n", "[589]\tvalidation-rmse:6.38056 \n", "[590]\tvalidation-rmse:6.38051 \n", "[591]\tvalidation-rmse:6.38045 \n", "[592]\tvalidation-rmse:6.38039 \n", "[593]\tvalidation-rmse:6.38035 \n", "[594]\tvalidation-rmse:6.38027 \n", "[595]\tvalidation-rmse:6.38020 \n", "[596]\tvalidation-rmse:6.38008 \n", "[597]\tvalidation-rmse:6.38001 \n", "[598]\tvalidation-rmse:6.37997 \n", "[599]\tvalidation-rmse:6.37995 \n", "[600]\tvalidation-rmse:6.37993 \n", "[601]\tvalidation-rmse:6.37991 \n", "[602]\tvalidation-rmse:6.37983 \n", "[603]\tvalidation-rmse:6.37969 \n", "[604]\tvalidation-rmse:6.37967 \n", "[605]\tvalidation-rmse:6.37960 \n", "[606]\tvalidation-rmse:6.37955 \n", "[607]\tvalidation-rmse:6.37958 \n", "[608]\tvalidation-rmse:6.37960 \n", "[609]\tvalidation-rmse:6.37949 \n", "[610]\tvalidation-rmse:6.37953 \n", "[611]\tvalidation-rmse:6.37957 \n", "[612]\tvalidation-rmse:6.37951 \n", "[613]\tvalidation-rmse:6.37940 \n", "[614]\tvalidation-rmse:6.37928 \n", "[615]\tvalidation-rmse:6.37927 \n", "[616]\tvalidation-rmse:6.37917 \n", "[617]\tvalidation-rmse:6.37908 \n", "[618]\tvalidation-rmse:6.37900 \n", "[619]\tvalidation-rmse:6.37902 \n", "[620]\tvalidation-rmse:6.37911 \n", "[621]\tvalidation-rmse:6.37904 \n", "[622]\tvalidation-rmse:6.37901 \n", "[623]\tvalidation-rmse:6.37914 \n", "[624]\tvalidation-rmse:6.37912 \n", "[625]\tvalidation-rmse:6.37906 \n", "[626]\tvalidation-rmse:6.37903 \n", "[627]\tvalidation-rmse:6.37899 \n", "[628]\tvalidation-rmse:6.37903 \n", "[629]\tvalidation-rmse:6.37893 \n", "[630]\tvalidation-rmse:6.37896 \n", "[631]\tvalidation-rmse:6.37894 \n", "[632]\tvalidation-rmse:6.37876 \n", "[633]\tvalidation-rmse:6.37871 \n", "[634]\tvalidation-rmse:6.37869 \n", "[635]\tvalidation-rmse:6.37869 \n", "[636]\tvalidation-rmse:6.37864 \n", "[637]\tvalidation-rmse:6.37867 \n", "[638]\tvalidation-rmse:6.37861 \n", "[639]\tvalidation-rmse:6.37859 \n", "[640]\tvalidation-rmse:6.37852 \n", "[641]\tvalidation-rmse:6.37846 \n", "[642]\tvalidation-rmse:6.37833 \n", "[643]\tvalidation-rmse:6.37835 \n", "[644]\tvalidation-rmse:6.37828 \n", "[645]\tvalidation-rmse:6.37819 \n", "[646]\tvalidation-rmse:6.37805 \n", "[647]\tvalidation-rmse:6.37800 \n", "[648]\tvalidation-rmse:6.37791 \n", "[649]\tvalidation-rmse:6.37776 \n", "[650]\tvalidation-rmse:6.37772 \n", "[651]\tvalidation-rmse:6.37754 \n", "[652]\tvalidation-rmse:6.37743 \n", "[653]\tvalidation-rmse:6.37743 \n", "[654]\tvalidation-rmse:6.37742 \n", "[655]\tvalidation-rmse:6.37725 \n", "[656]\tvalidation-rmse:6.37715 \n", "[657]\tvalidation-rmse:6.37712 \n", "[658]\tvalidation-rmse:6.37703 \n", "[659]\tvalidation-rmse:6.37709 \n", "[660]\tvalidation-rmse:6.37701 \n", "[661]\tvalidation-rmse:6.37698 \n", "[662]\tvalidation-rmse:6.37689 \n", "[663]\tvalidation-rmse:6.37689 \n", "[664]\tvalidation-rmse:6.37693 \n", "[665]\tvalidation-rmse:6.37689 \n", "[666]\tvalidation-rmse:6.37692 \n", "[667]\tvalidation-rmse:6.37693 \n", "[668]\tvalidation-rmse:6.37681 \n", "[669]\tvalidation-rmse:6.37675 \n", "[670]\tvalidation-rmse:6.37661 \n", "[671]\tvalidation-rmse:6.37658 \n", "[672]\tvalidation-rmse:6.37651 \n", "[673]\tvalidation-rmse:6.37645 \n", "[674]\tvalidation-rmse:6.37638 \n", "[675]\tvalidation-rmse:6.37640 \n", "[676]\tvalidation-rmse:6.37650 \n", "[677]\tvalidation-rmse:6.37652 \n", "[678]\tvalidation-rmse:6.37652 \n", "[679]\tvalidation-rmse:6.37650 \n", "[680]\tvalidation-rmse:6.37652 \n", "[681]\tvalidation-rmse:6.37649 \n", "[682]\tvalidation-rmse:6.37646 \n", "[683]\tvalidation-rmse:6.37653 \n", "[684]\tvalidation-rmse:6.37658 \n", "[685]\tvalidation-rmse:6.37649 \n", "[686]\tvalidation-rmse:6.37647 \n", "[687]\tvalidation-rmse:6.37647 \n", "[688]\tvalidation-rmse:6.37645 \n", "[689]\tvalidation-rmse:6.37638 \n", "[690]\tvalidation-rmse:6.37638 \n", "[691]\tvalidation-rmse:6.37626 \n", "[692]\tvalidation-rmse:6.37622 \n", "[693]\tvalidation-rmse:6.37610 \n", "[694]\tvalidation-rmse:6.37603 \n", "[695]\tvalidation-rmse:6.37585 \n", "[696]\tvalidation-rmse:6.37580 \n", "[697]\tvalidation-rmse:6.37579 \n", "[698]\tvalidation-rmse:6.37581 \n", "[699]\tvalidation-rmse:6.37583 \n", "[700]\tvalidation-rmse:6.37573 \n", "[701]\tvalidation-rmse:6.37569 \n", "[702]\tvalidation-rmse:6.37578 \n", "[703]\tvalidation-rmse:6.37588 \n", "[704]\tvalidation-rmse:6.37588 \n", "[705]\tvalidation-rmse:6.37579 \n", "[706]\tvalidation-rmse:6.37576 \n", "[707]\tvalidation-rmse:6.37575 \n", "[708]\tvalidation-rmse:6.37574 \n", "[709]\tvalidation-rmse:6.37566 \n", "[710]\tvalidation-rmse:6.37558 \n", "[711]\tvalidation-rmse:6.37553 \n", "[712]\tvalidation-rmse:6.37548 \n", "[713]\tvalidation-rmse:6.37547 \n", "[714]\tvalidation-rmse:6.37542 \n", "[715]\tvalidation-rmse:6.37538 \n", "[716]\tvalidation-rmse:6.37539 \n", "[717]\tvalidation-rmse:6.37536 \n", "[718]\tvalidation-rmse:6.37535 \n", "[719]\tvalidation-rmse:6.37527 \n", "[720]\tvalidation-rmse:6.37530 \n", "[721]\tvalidation-rmse:6.37524 \n", "[722]\tvalidation-rmse:6.37522 \n", "[723]\tvalidation-rmse:6.37520 \n", "[724]\tvalidation-rmse:6.37518 \n", "[725]\tvalidation-rmse:6.37510 \n", "[726]\tvalidation-rmse:6.37520 \n", "[727]\tvalidation-rmse:6.37517 \n", "[728]\tvalidation-rmse:6.37518 \n", "[729]\tvalidation-rmse:6.37518 \n", "[730]\tvalidation-rmse:6.37518 \n", "[731]\tvalidation-rmse:6.37516 \n", "[732]\tvalidation-rmse:6.37509 \n", "[733]\tvalidation-rmse:6.37507 \n", "[734]\tvalidation-rmse:6.37501 \n", "[735]\tvalidation-rmse:6.37505 \n", "[736]\tvalidation-rmse:6.37504 \n", "[737]\tvalidation-rmse:6.37499 \n", "[738]\tvalidation-rmse:6.37516 \n", "[739]\tvalidation-rmse:6.37517 \n", "[740]\tvalidation-rmse:6.37511 \n", "[741]\tvalidation-rmse:6.37516 \n", "[742]\tvalidation-rmse:6.37516 \n", "[743]\tvalidation-rmse:6.37512 \n", "[744]\tvalidation-rmse:6.37511 \n", "[745]\tvalidation-rmse:6.37517 \n", "[746]\tvalidation-rmse:6.37512 \n", "[747]\tvalidation-rmse:6.37511 \n", "[748]\tvalidation-rmse:6.37504 \n", "[749]\tvalidation-rmse:6.37502 \n", "[750]\tvalidation-rmse:6.37489 \n", "[751]\tvalidation-rmse:6.37492 \n", "[752]\tvalidation-rmse:6.37489 \n", "[753]\tvalidation-rmse:6.37491 \n", "[754]\tvalidation-rmse:6.37485 \n", "[755]\tvalidation-rmse:6.37486 \n", "[756]\tvalidation-rmse:6.37486 \n", "[757]\tvalidation-rmse:6.37476 \n", "[758]\tvalidation-rmse:6.37470 \n", "[759]\tvalidation-rmse:6.37463 \n", "[760]\tvalidation-rmse:6.37459 \n", "[761]\tvalidation-rmse:6.37454 \n", "[762]\tvalidation-rmse:6.37451 \n", "[763]\tvalidation-rmse:6.37451 \n", "[764]\tvalidation-rmse:6.37449 \n", "[765]\tvalidation-rmse:6.37448 \n", "[766]\tvalidation-rmse:6.37471 \n", "[767]\tvalidation-rmse:6.37469 \n", "[768]\tvalidation-rmse:6.37460 \n", "[769]\tvalidation-rmse:6.37446 \n", "[770]\tvalidation-rmse:6.37440 \n", "[771]\tvalidation-rmse:6.37446 \n", "[772]\tvalidation-rmse:6.37437 \n", "[773]\tvalidation-rmse:6.37434 \n", "[774]\tvalidation-rmse:6.37423 \n", "[775]\tvalidation-rmse:6.37428 \n", "[776]\tvalidation-rmse:6.37426 \n", "[777]\tvalidation-rmse:6.37426 \n", "[778]\tvalidation-rmse:6.37417 \n", "[779]\tvalidation-rmse:6.37411 \n", "[780]\tvalidation-rmse:6.37404 \n", "[781]\tvalidation-rmse:6.37402 \n", "[782]\tvalidation-rmse:6.37409 \n", "[783]\tvalidation-rmse:6.37427 \n", "[784]\tvalidation-rmse:6.37428 \n", "[785]\tvalidation-rmse:6.37441 \n", "[786]\tvalidation-rmse:6.37450 \n", "[787]\tvalidation-rmse:6.37452 \n", "[788]\tvalidation-rmse:6.37454 \n", "[789]\tvalidation-rmse:6.37456 \n", "[790]\tvalidation-rmse:6.37442 \n", "[791]\tvalidation-rmse:6.37442 \n", "[792]\tvalidation-rmse:6.37438 \n", "[793]\tvalidation-rmse:6.37431 \n", "[794]\tvalidation-rmse:6.37441 \n", "[795]\tvalidation-rmse:6.37460 \n", "[796]\tvalidation-rmse:6.37457 \n", "[797]\tvalidation-rmse:6.37452 \n", "[798]\tvalidation-rmse:6.37448 \n", "[799]\tvalidation-rmse:6.37441 \n", "[800]\tvalidation-rmse:6.37434 \n", "[801]\tvalidation-rmse:6.37425 \n", "[802]\tvalidation-rmse:6.37425 \n", "[803]\tvalidation-rmse:6.37424 \n", "[804]\tvalidation-rmse:6.37411 \n", "[805]\tvalidation-rmse:6.37415 \n", "[806]\tvalidation-rmse:6.37422 \n", "[807]\tvalidation-rmse:6.37432 \n", "[808]\tvalidation-rmse:6.37434 \n", "[809]\tvalidation-rmse:6.37434 \n", "[810]\tvalidation-rmse:6.37434 \n", "[811]\tvalidation-rmse:6.37419 \n", "[812]\tvalidation-rmse:6.37407 \n", "[813]\tvalidation-rmse:6.37399 \n", "[814]\tvalidation-rmse:6.37402 \n", "[815]\tvalidation-rmse:6.37404 \n", "[816]\tvalidation-rmse:6.37401 \n", "[817]\tvalidation-rmse:6.37399 \n", "[818]\tvalidation-rmse:6.37400 \n", "[819]\tvalidation-rmse:6.37396 \n", "[820]\tvalidation-rmse:6.37386 \n", "[821]\tvalidation-rmse:6.37381 \n", "[822]\tvalidation-rmse:6.37380 \n", "[823]\tvalidation-rmse:6.37378 \n", "[824]\tvalidation-rmse:6.37367 \n", "[825]\tvalidation-rmse:6.37360 \n", "[826]\tvalidation-rmse:6.37352 \n", "[827]\tvalidation-rmse:6.37346 \n", "[828]\tvalidation-rmse:6.37349 \n", "[829]\tvalidation-rmse:6.37344 \n", "[830]\tvalidation-rmse:6.37361 \n", "[831]\tvalidation-rmse:6.37359 \n", "[832]\tvalidation-rmse:6.37350 \n", "[833]\tvalidation-rmse:6.37344 \n", "[834]\tvalidation-rmse:6.37344 \n", "[835]\tvalidation-rmse:6.37340 \n", "[836]\tvalidation-rmse:6.37338 \n", "[837]\tvalidation-rmse:6.37337 \n", "[838]\tvalidation-rmse:6.37331 \n", "[839]\tvalidation-rmse:6.37352 \n", "[840]\tvalidation-rmse:6.37347 \n", "[841]\tvalidation-rmse:6.37344 \n", "[842]\tvalidation-rmse:6.37334 \n", "[843]\tvalidation-rmse:6.37337 \n", "[844]\tvalidation-rmse:6.37340 \n", "[845]\tvalidation-rmse:6.37353 \n", "[846]\tvalidation-rmse:6.37352 \n", "[847]\tvalidation-rmse:6.37354 \n", "[848]\tvalidation-rmse:6.37351 \n", "[849]\tvalidation-rmse:6.37351 \n", "[850]\tvalidation-rmse:6.37349 \n", "[851]\tvalidation-rmse:6.37345 \n", "[852]\tvalidation-rmse:6.37343 \n", "[853]\tvalidation-rmse:6.37339 \n", "[854]\tvalidation-rmse:6.37341 \n", "[855]\tvalidation-rmse:6.37331 \n", "[856]\tvalidation-rmse:6.37333 \n", "[857]\tvalidation-rmse:6.37325 \n", "[858]\tvalidation-rmse:6.37328 \n", "[859]\tvalidation-rmse:6.37324 \n", "[860]\tvalidation-rmse:6.37324 \n", "[861]\tvalidation-rmse:6.37335 \n", "[862]\tvalidation-rmse:6.37354 \n", "[863]\tvalidation-rmse:6.37381 \n", "[864]\tvalidation-rmse:6.37390 \n", "[865]\tvalidation-rmse:6.37399 \n", "[866]\tvalidation-rmse:6.37395 \n", "[867]\tvalidation-rmse:6.37392 \n", "[868]\tvalidation-rmse:6.37394 \n", "[869]\tvalidation-rmse:6.37393 \n", "[870]\tvalidation-rmse:6.37395 \n", "[871]\tvalidation-rmse:6.37399 \n", "[872]\tvalidation-rmse:6.37397 \n", "[873]\tvalidation-rmse:6.37402 \n", "[874]\tvalidation-rmse:6.37400 \n", "[875]\tvalidation-rmse:6.37427 \n", "[876]\tvalidation-rmse:6.37426 \n", "[877]\tvalidation-rmse:6.37429 \n", "[878]\tvalidation-rmse:6.37429 \n", "[879]\tvalidation-rmse:6.37419 \n", "[880]\tvalidation-rmse:6.37433 \n", "[881]\tvalidation-rmse:6.37432 \n", "[882]\tvalidation-rmse:6.37429 \n", "[883]\tvalidation-rmse:6.37432 \n", "[884]\tvalidation-rmse:6.37421 \n", "[885]\tvalidation-rmse:6.37415 \n", "[886]\tvalidation-rmse:6.37413 \n", "[887]\tvalidation-rmse:6.37408 \n", "[888]\tvalidation-rmse:6.37404 \n", "[889]\tvalidation-rmse:6.37397 \n", "[890]\tvalidation-rmse:6.37398 \n", "[891]\tvalidation-rmse:6.37401 \n", "[892]\tvalidation-rmse:6.37399 \n", "[893]\tvalidation-rmse:6.37390 \n", "[894]\tvalidation-rmse:6.37387 \n", "[895]\tvalidation-rmse:6.37386 \n", "[896]\tvalidation-rmse:6.37382 \n", "[897]\tvalidation-rmse:6.37379 \n", "[898]\tvalidation-rmse:6.37373 \n", "[899]\tvalidation-rmse:6.37369 \n", "[900]\tvalidation-rmse:6.37362 \n", "[901]\tvalidation-rmse:6.37367 \n", "[902]\tvalidation-rmse:6.37352 \n", "[903]\tvalidation-rmse:6.37354 \n", "[904]\tvalidation-rmse:6.37336 \n", "[905]\tvalidation-rmse:6.37332 \n", "[906]\tvalidation-rmse:6.37328 \n", "[907]\tvalidation-rmse:6.37329 \n", "[908]\tvalidation-rmse:6.37321 \n", "[909]\tvalidation-rmse:6.37319 \n", "[910]\tvalidation-rmse:6.37318 \n", "[911]\tvalidation-rmse:6.37343 \n", "[912]\tvalidation-rmse:6.37349 \n", "[913]\tvalidation-rmse:6.37351 \n", "[914]\tvalidation-rmse:6.37354 \n", "[915]\tvalidation-rmse:6.37353 \n", "[916]\tvalidation-rmse:6.37350 \n", "[917]\tvalidation-rmse:6.37363 \n", "[918]\tvalidation-rmse:6.37363 \n", "[919]\tvalidation-rmse:6.37389 \n", "[920]\tvalidation-rmse:6.37380 \n", "[921]\tvalidation-rmse:6.37379 \n", "[922]\tvalidation-rmse:6.37384 \n", "[923]\tvalidation-rmse:6.37374 \n", "[924]\tvalidation-rmse:6.37378 \n", "[925]\tvalidation-rmse:6.37382 \n", "[926]\tvalidation-rmse:6.37381 \n", "[927]\tvalidation-rmse:6.37374 \n", "[928]\tvalidation-rmse:6.37375 \n", "[929]\tvalidation-rmse:6.37370 \n", "[930]\tvalidation-rmse:6.37364 \n", "[931]\tvalidation-rmse:6.37373 \n", "[932]\tvalidation-rmse:6.37372 \n", "[933]\tvalidation-rmse:6.37372 \n", "[934]\tvalidation-rmse:6.37356 \n", "[935]\tvalidation-rmse:6.37350 \n", "[936]\tvalidation-rmse:6.37347 \n", "[937]\tvalidation-rmse:6.37347 \n", "[938]\tvalidation-rmse:6.37335 \n", "[939]\tvalidation-rmse:6.37338 \n", "[940]\tvalidation-rmse:6.37341 \n", "[941]\tvalidation-rmse:6.37339 \n", "[942]\tvalidation-rmse:6.37348 \n", "[943]\tvalidation-rmse:6.37347 \n", "[944]\tvalidation-rmse:6.37350 \n", "[945]\tvalidation-rmse:6.37362 \n", "[946]\tvalidation-rmse:6.37352 \n", "[947]\tvalidation-rmse:6.37355 \n", "[948]\tvalidation-rmse:6.37360 \n", "[949]\tvalidation-rmse:6.37354 \n", "[950]\tvalidation-rmse:6.37355 \n", "[951]\tvalidation-rmse:6.37348 \n", "[952]\tvalidation-rmse:6.37345 \n", "[953]\tvalidation-rmse:6.37347 \n", "[954]\tvalidation-rmse:6.37348 \n", "[955]\tvalidation-rmse:6.37345 \n", "[956]\tvalidation-rmse:6.37343 \n", "[957]\tvalidation-rmse:6.37362 \n", "[958]\tvalidation-rmse:6.37361 \n", "[959]\tvalidation-rmse:6.37364 \n", "[12:43:06] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.55573 \n", "[1]\tvalidation-rmse:18.08340 \n", "[2]\tvalidation-rmse:16.76415 \n", "[3]\tvalidation-rmse:15.58150 \n", "[4]\tvalidation-rmse:14.52593 \n", "[5]\tvalidation-rmse:13.58520 \n", "[6]\tvalidation-rmse:12.74715 \n", "[7]\tvalidation-rmse:12.00336 \n", "[8]\tvalidation-rmse:11.34568 \n", "[9]\tvalidation-rmse:10.76410 \n", "[10]\tvalidation-rmse:10.25369 \n", "[11]\tvalidation-rmse:9.80442 \n", "[12]\tvalidation-rmse:9.41014 \n", "[13]\tvalidation-rmse:9.06520 \n", "[14]\tvalidation-rmse:8.76445 \n", "[15]\tvalidation-rmse:8.50223 \n", "[16]\tvalidation-rmse:8.27392 \n", "[17]\tvalidation-rmse:8.07620 \n", "[18]\tvalidation-rmse:7.90389 \n", "[19]\tvalidation-rmse:7.75426 \n", "[20]\tvalidation-rmse:7.62363 \n", "[21]\tvalidation-rmse:7.51117 \n", "[22]\tvalidation-rmse:7.41330 \n", "[23]\tvalidation-rmse:7.32761 \n", "[24]\tvalidation-rmse:7.25395 \n", "[25]\tvalidation-rmse:7.18943 \n", "[26]\tvalidation-rmse:7.13277 \n", "[27]\tvalidation-rmse:7.08359 \n", "[28]\tvalidation-rmse:7.04075 \n", "[29]\tvalidation-rmse:7.00289 \n", "[30]\tvalidation-rmse:6.97012 \n", "[31]\tvalidation-rmse:6.94004 \n", "[32]\tvalidation-rmse:6.91411 \n", "[33]\tvalidation-rmse:6.89125 \n", "[34]\tvalidation-rmse:6.87076 \n", "[35]\tvalidation-rmse:6.85254 \n", "[36]\tvalidation-rmse:6.83721 \n", "[37]\tvalidation-rmse:6.82334 \n", "[38]\tvalidation-rmse:6.81035 \n", "[39]\tvalidation-rmse:6.79856 \n", "[40]\tvalidation-rmse:6.78916 \n", "[41]\tvalidation-rmse:6.77952 \n", "[42]\tvalidation-rmse:6.77186 \n", "[43]\tvalidation-rmse:6.76432 \n", "[44]\tvalidation-rmse:6.75814 \n", "[45]\tvalidation-rmse:6.75243 \n", "[46]\tvalidation-rmse:6.74604 \n", "[47]\tvalidation-rmse:6.74150 \n", "[48]\tvalidation-rmse:6.73749 \n", "[49]\tvalidation-rmse:6.73269 \n", "[50]\tvalidation-rmse:6.72941 \n", "[51]\tvalidation-rmse:6.72650 \n", "[52]\tvalidation-rmse:6.72347 \n", "[53]\tvalidation-rmse:6.72109 \n", "[54]\tvalidation-rmse:6.71855 \n", "[55]\tvalidation-rmse:6.71600 \n", "[56]\tvalidation-rmse:6.71417 \n", "[57]\tvalidation-rmse:6.71242 \n", "[58]\tvalidation-rmse:6.70960 \n", "[59]\tvalidation-rmse:6.70811 \n", "[60]\tvalidation-rmse:6.70656 \n", "[61]\tvalidation-rmse:6.70534 \n", "[62]\tvalidation-rmse:6.70380 \n", "[63]\tvalidation-rmse:6.70224 \n", "[64]\tvalidation-rmse:6.70069 \n", "[65]\tvalidation-rmse:6.69958 \n", "[66]\tvalidation-rmse:6.69860 \n", "[67]\tvalidation-rmse:6.69701 \n", "[68]\tvalidation-rmse:6.69596 \n", "[69]\tvalidation-rmse:6.69505 \n", "[70]\tvalidation-rmse:6.69423 \n", "[71]\tvalidation-rmse:6.69317 \n", "[72]\tvalidation-rmse:6.69177 \n", "[73]\tvalidation-rmse:6.69012 \n", "[74]\tvalidation-rmse:6.68947 \n", "[75]\tvalidation-rmse:6.68876 \n", "[76]\tvalidation-rmse:6.68816 \n", "[77]\tvalidation-rmse:6.68750 \n", "[78]\tvalidation-rmse:6.68677 \n", "[79]\tvalidation-rmse:6.68624 \n", "[80]\tvalidation-rmse:6.68539 \n", "[81]\tvalidation-rmse:6.68499 \n", "[82]\tvalidation-rmse:6.68442 \n", "[83]\tvalidation-rmse:6.68370 \n", "[84]\tvalidation-rmse:6.68272 \n", "[85]\tvalidation-rmse:6.68079 \n", "[86]\tvalidation-rmse:6.67992 \n", "[87]\tvalidation-rmse:6.67959 \n", "[88]\tvalidation-rmse:6.67854 \n", "[89]\tvalidation-rmse:6.67770 \n", "[90]\tvalidation-rmse:6.67727 \n", "[91]\tvalidation-rmse:6.67647 \n", "[92]\tvalidation-rmse:6.67576 \n", "[93]\tvalidation-rmse:6.67516 \n", "[94]\tvalidation-rmse:6.67482 \n", "[95]\tvalidation-rmse:6.67427 \n", "[96]\tvalidation-rmse:6.67340 \n", "[97]\tvalidation-rmse:6.67317 \n", "[98]\tvalidation-rmse:6.67268 \n", "[99]\tvalidation-rmse:6.67193 \n", "[100]\tvalidation-rmse:6.67148 \n", "[101]\tvalidation-rmse:6.67110 \n", "[102]\tvalidation-rmse:6.67053 \n", "[103]\tvalidation-rmse:6.67006 \n", "[104]\tvalidation-rmse:6.66968 \n", "[105]\tvalidation-rmse:6.66910 \n", "[106]\tvalidation-rmse:6.66891 \n", "[107]\tvalidation-rmse:6.66852 \n", "[108]\tvalidation-rmse:6.66809 \n", "[109]\tvalidation-rmse:6.66780 \n", "[110]\tvalidation-rmse:6.66748 \n", "[111]\tvalidation-rmse:6.66699 \n", "[112]\tvalidation-rmse:6.66616 \n", "[113]\tvalidation-rmse:6.66566 \n", "[114]\tvalidation-rmse:6.66518 \n", "[115]\tvalidation-rmse:6.66468 \n", "[116]\tvalidation-rmse:6.66413 \n", "[117]\tvalidation-rmse:6.66354 \n", "[118]\tvalidation-rmse:6.66248 \n", "[119]\tvalidation-rmse:6.66207 \n", "[120]\tvalidation-rmse:6.66187 \n", "[121]\tvalidation-rmse:6.66139 \n", "[122]\tvalidation-rmse:6.66071 \n", "[123]\tvalidation-rmse:6.66048 \n", "[124]\tvalidation-rmse:6.65975 \n", "[125]\tvalidation-rmse:6.65930 \n", "[126]\tvalidation-rmse:6.65865 \n", "[127]\tvalidation-rmse:6.65821 \n", "[128]\tvalidation-rmse:6.65782 \n", "[129]\tvalidation-rmse:6.65758 \n", "[130]\tvalidation-rmse:6.65727 \n", "[131]\tvalidation-rmse:6.65691 \n", "[132]\tvalidation-rmse:6.65678 \n", "[133]\tvalidation-rmse:6.65607 \n", "[134]\tvalidation-rmse:6.65562 \n", "[135]\tvalidation-rmse:6.65530 \n", "[136]\tvalidation-rmse:6.65475 \n", "[137]\tvalidation-rmse:6.65434 \n", "[138]\tvalidation-rmse:6.65370 \n", "[139]\tvalidation-rmse:6.65330 \n", "[140]\tvalidation-rmse:6.65288 \n", "[141]\tvalidation-rmse:6.65234 \n", "[142]\tvalidation-rmse:6.65177 \n", "[143]\tvalidation-rmse:6.65150 \n", "[144]\tvalidation-rmse:6.65119 \n", "[145]\tvalidation-rmse:6.65065 \n", "[146]\tvalidation-rmse:6.65045 \n", "[147]\tvalidation-rmse:6.65015 \n", "[148]\tvalidation-rmse:6.64981 \n", "[149]\tvalidation-rmse:6.64964 \n", "[150]\tvalidation-rmse:6.64933 \n", "[151]\tvalidation-rmse:6.64894 \n", "[152]\tvalidation-rmse:6.64868 \n", "[153]\tvalidation-rmse:6.64818 \n", "[154]\tvalidation-rmse:6.64801 \n", "[155]\tvalidation-rmse:6.64763 \n", "[156]\tvalidation-rmse:6.64728 \n", "[157]\tvalidation-rmse:6.64680 \n", "[158]\tvalidation-rmse:6.64622 \n", "[159]\tvalidation-rmse:6.64585 \n", "[160]\tvalidation-rmse:6.64558 \n", "[161]\tvalidation-rmse:6.64524 \n", "[162]\tvalidation-rmse:6.64498 \n", "[163]\tvalidation-rmse:6.64461 \n", "[164]\tvalidation-rmse:6.64407 \n", "[165]\tvalidation-rmse:6.64371 \n", "[166]\tvalidation-rmse:6.64361 \n", "[167]\tvalidation-rmse:6.64351 \n", "[168]\tvalidation-rmse:6.64291 \n", "[169]\tvalidation-rmse:6.64236 \n", "[170]\tvalidation-rmse:6.64215 \n", "[171]\tvalidation-rmse:6.64158 \n", "[172]\tvalidation-rmse:6.64108 \n", "[173]\tvalidation-rmse:6.64088 \n", "[174]\tvalidation-rmse:6.64020 \n", "[175]\tvalidation-rmse:6.63994 \n", "[176]\tvalidation-rmse:6.63978 \n", "[177]\tvalidation-rmse:6.63954 \n", "[178]\tvalidation-rmse:6.63898 \n", "[179]\tvalidation-rmse:6.63871 \n", "[180]\tvalidation-rmse:6.63840 \n", "[181]\tvalidation-rmse:6.63806 \n", "[182]\tvalidation-rmse:6.63795 \n", "[183]\tvalidation-rmse:6.63764 \n", "[184]\tvalidation-rmse:6.63722 \n", "[185]\tvalidation-rmse:6.63692 \n", "[186]\tvalidation-rmse:6.63672 \n", "[187]\tvalidation-rmse:6.63624 \n", "[188]\tvalidation-rmse:6.63600 \n", "[189]\tvalidation-rmse:6.63558 \n", "[190]\tvalidation-rmse:6.63501 \n", "[191]\tvalidation-rmse:6.63458 \n", "[192]\tvalidation-rmse:6.63434 \n", "[193]\tvalidation-rmse:6.63354 \n", "[194]\tvalidation-rmse:6.63321 \n", "[195]\tvalidation-rmse:6.63278 \n", "[196]\tvalidation-rmse:6.63200 \n", "[197]\tvalidation-rmse:6.63170 \n", "[198]\tvalidation-rmse:6.63128 \n", "[199]\tvalidation-rmse:6.63114 \n", "[200]\tvalidation-rmse:6.63104 \n", "[201]\tvalidation-rmse:6.63075 \n", "[202]\tvalidation-rmse:6.63040 \n", "[203]\tvalidation-rmse:6.63018 \n", "[204]\tvalidation-rmse:6.62970 \n", "[205]\tvalidation-rmse:6.62972 \n", "[206]\tvalidation-rmse:6.62931 \n", "[207]\tvalidation-rmse:6.62910 \n", "[208]\tvalidation-rmse:6.62886 \n", "[209]\tvalidation-rmse:6.62851 \n", "[210]\tvalidation-rmse:6.62817 \n", "[211]\tvalidation-rmse:6.62802 \n", "[212]\tvalidation-rmse:6.62782 \n", "[213]\tvalidation-rmse:6.62771 \n", "[214]\tvalidation-rmse:6.62722 \n", "[215]\tvalidation-rmse:6.62693 \n", "[216]\tvalidation-rmse:6.62665 \n", "[217]\tvalidation-rmse:6.62621 \n", "[218]\tvalidation-rmse:6.62594 \n", "[219]\tvalidation-rmse:6.62561 \n", "[220]\tvalidation-rmse:6.62509 \n", "[221]\tvalidation-rmse:6.62479 \n", "[222]\tvalidation-rmse:6.62439 \n", "[223]\tvalidation-rmse:6.62410 \n", "[224]\tvalidation-rmse:6.62391 \n", "[225]\tvalidation-rmse:6.62372 \n", "[226]\tvalidation-rmse:6.62360 \n", "[227]\tvalidation-rmse:6.62338 \n", "[228]\tvalidation-rmse:6.62289 \n", "[229]\tvalidation-rmse:6.62228 \n", "[230]\tvalidation-rmse:6.62220 \n", "[231]\tvalidation-rmse:6.62198 \n", "[232]\tvalidation-rmse:6.62164 \n", "[233]\tvalidation-rmse:6.62122 \n", "[234]\tvalidation-rmse:6.62096 \n", "[235]\tvalidation-rmse:6.62070 \n", "[236]\tvalidation-rmse:6.62052 \n", "[237]\tvalidation-rmse:6.62005 \n", "[238]\tvalidation-rmse:6.61955 \n", "[239]\tvalidation-rmse:6.61941 \n", "[240]\tvalidation-rmse:6.61909 \n", "[241]\tvalidation-rmse:6.61872 \n", "[242]\tvalidation-rmse:6.61830 \n", "[243]\tvalidation-rmse:6.61795 \n", "[244]\tvalidation-rmse:6.61776 \n", "[245]\tvalidation-rmse:6.61746 \n", "[246]\tvalidation-rmse:6.61719 \n", "[247]\tvalidation-rmse:6.61694 \n", "[248]\tvalidation-rmse:6.61678 \n", "[249]\tvalidation-rmse:6.61649 \n", "[250]\tvalidation-rmse:6.61633 \n", "[251]\tvalidation-rmse:6.61595 \n", "[252]\tvalidation-rmse:6.61566 \n", "[253]\tvalidation-rmse:6.61551 \n", "[254]\tvalidation-rmse:6.61541 \n", "[255]\tvalidation-rmse:6.61523 \n", "[256]\tvalidation-rmse:6.61480 \n", "[257]\tvalidation-rmse:6.61458 \n", "[258]\tvalidation-rmse:6.61429 \n", "[259]\tvalidation-rmse:6.61409 \n", "[260]\tvalidation-rmse:6.61386 \n", "[261]\tvalidation-rmse:6.61352 \n", "[262]\tvalidation-rmse:6.61336 \n", "[263]\tvalidation-rmse:6.61298 \n", "[264]\tvalidation-rmse:6.61279 \n", "[265]\tvalidation-rmse:6.61240 \n", "[266]\tvalidation-rmse:6.61195 \n", "[267]\tvalidation-rmse:6.61125 \n", "[268]\tvalidation-rmse:6.61089 \n", "[269]\tvalidation-rmse:6.61066 \n", "[270]\tvalidation-rmse:6.61045 \n", "[271]\tvalidation-rmse:6.61003 \n", "[272]\tvalidation-rmse:6.60979 \n", "[273]\tvalidation-rmse:6.60960 \n", "[274]\tvalidation-rmse:6.60942 \n", "[275]\tvalidation-rmse:6.60908 \n", "[276]\tvalidation-rmse:6.60891 \n", "[277]\tvalidation-rmse:6.60813 \n", "[278]\tvalidation-rmse:6.60791 \n", "[279]\tvalidation-rmse:6.60766 \n", "[280]\tvalidation-rmse:6.60752 \n", "[281]\tvalidation-rmse:6.60729 \n", "[282]\tvalidation-rmse:6.60731 \n", "[283]\tvalidation-rmse:6.60697 \n", "[284]\tvalidation-rmse:6.60670 \n", "[285]\tvalidation-rmse:6.60644 \n", "[286]\tvalidation-rmse:6.60617 \n", "[287]\tvalidation-rmse:6.60611 \n", "[288]\tvalidation-rmse:6.60588 \n", "[289]\tvalidation-rmse:6.60578 \n", "[290]\tvalidation-rmse:6.60559 \n", "[291]\tvalidation-rmse:6.60541 \n", "[292]\tvalidation-rmse:6.60526 \n", "[293]\tvalidation-rmse:6.60510 \n", "[294]\tvalidation-rmse:6.60471 \n", "[295]\tvalidation-rmse:6.60445 \n", "[296]\tvalidation-rmse:6.60413 \n", "[297]\tvalidation-rmse:6.60371 \n", "[298]\tvalidation-rmse:6.60364 \n", "[299]\tvalidation-rmse:6.60321 \n", "[300]\tvalidation-rmse:6.60284 \n", "[301]\tvalidation-rmse:6.60234 \n", "[302]\tvalidation-rmse:6.60208 \n", "[303]\tvalidation-rmse:6.60165 \n", "[304]\tvalidation-rmse:6.60146 \n", "[305]\tvalidation-rmse:6.60120 \n", "[306]\tvalidation-rmse:6.60097 \n", "[307]\tvalidation-rmse:6.60077 \n", "[308]\tvalidation-rmse:6.60052 \n", "[309]\tvalidation-rmse:6.60020 \n", "[310]\tvalidation-rmse:6.60007 \n", "[311]\tvalidation-rmse:6.59973 \n", "[312]\tvalidation-rmse:6.59942 \n", "[313]\tvalidation-rmse:6.59904 \n", "[314]\tvalidation-rmse:6.59900 \n", "[315]\tvalidation-rmse:6.59885 \n", "[316]\tvalidation-rmse:6.59872 \n", "[317]\tvalidation-rmse:6.59808 \n", "[318]\tvalidation-rmse:6.59777 \n", "[319]\tvalidation-rmse:6.59735 \n", "[320]\tvalidation-rmse:6.59713 \n", "[321]\tvalidation-rmse:6.59682 \n", "[322]\tvalidation-rmse:6.59668 \n", "[323]\tvalidation-rmse:6.59635 \n", "[324]\tvalidation-rmse:6.59588 \n", "[325]\tvalidation-rmse:6.59562 \n", "[326]\tvalidation-rmse:6.59552 \n", "[327]\tvalidation-rmse:6.59517 \n", "[328]\tvalidation-rmse:6.59479 \n", "[329]\tvalidation-rmse:6.59444 \n", "[330]\tvalidation-rmse:6.59427 \n", "[331]\tvalidation-rmse:6.59406 \n", "[332]\tvalidation-rmse:6.59395 \n", "[333]\tvalidation-rmse:6.59362 \n", "[334]\tvalidation-rmse:6.59325 \n", "[335]\tvalidation-rmse:6.59312 \n", "[336]\tvalidation-rmse:6.59290 \n", "[337]\tvalidation-rmse:6.59294 \n", "[338]\tvalidation-rmse:6.59266 \n", "[339]\tvalidation-rmse:6.59246 \n", "[340]\tvalidation-rmse:6.59233 \n", "[341]\tvalidation-rmse:6.59194 \n", "[342]\tvalidation-rmse:6.59159 \n", "[343]\tvalidation-rmse:6.59150 \n", "[344]\tvalidation-rmse:6.59120 \n", "[345]\tvalidation-rmse:6.59099 \n", "[346]\tvalidation-rmse:6.59091 \n", "[347]\tvalidation-rmse:6.59078 \n", "[348]\tvalidation-rmse:6.59063 \n", "[349]\tvalidation-rmse:6.59054 \n", "[350]\tvalidation-rmse:6.59037 \n", "[351]\tvalidation-rmse:6.59015 \n", "[352]\tvalidation-rmse:6.58980 \n", "[353]\tvalidation-rmse:6.58951 \n", "[354]\tvalidation-rmse:6.58935 \n", "[355]\tvalidation-rmse:6.58897 \n", "[356]\tvalidation-rmse:6.58870 \n", "[357]\tvalidation-rmse:6.58857 \n", "[358]\tvalidation-rmse:6.58836 \n", "[359]\tvalidation-rmse:6.58808 \n", "[360]\tvalidation-rmse:6.58788 \n", "[361]\tvalidation-rmse:6.58755 \n", "[362]\tvalidation-rmse:6.58730 \n", "[363]\tvalidation-rmse:6.58708 \n", "[364]\tvalidation-rmse:6.58683 \n", "[365]\tvalidation-rmse:6.58665 \n", "[366]\tvalidation-rmse:6.58622 \n", "[367]\tvalidation-rmse:6.58591 \n", "[368]\tvalidation-rmse:6.58578 \n", "[369]\tvalidation-rmse:6.58561 \n", "[370]\tvalidation-rmse:6.58536 \n", "[371]\tvalidation-rmse:6.58521 \n", "[372]\tvalidation-rmse:6.58509 \n", "[373]\tvalidation-rmse:6.58492 \n", "[374]\tvalidation-rmse:6.58471 \n", "[375]\tvalidation-rmse:6.58449 \n", "[376]\tvalidation-rmse:6.58435 \n", "[377]\tvalidation-rmse:6.58399 \n", "[378]\tvalidation-rmse:6.58362 \n", "[379]\tvalidation-rmse:6.58356 \n", "[380]\tvalidation-rmse:6.58341 \n", "[381]\tvalidation-rmse:6.58318 \n", "[382]\tvalidation-rmse:6.58297 \n", "[383]\tvalidation-rmse:6.58273 \n", "[384]\tvalidation-rmse:6.58257 \n", "[385]\tvalidation-rmse:6.58235 \n", "[386]\tvalidation-rmse:6.58226 \n", "[387]\tvalidation-rmse:6.58218 \n", "[388]\tvalidation-rmse:6.58215 \n", "[389]\tvalidation-rmse:6.58190 \n", "[390]\tvalidation-rmse:6.58171 \n", "[391]\tvalidation-rmse:6.58165 \n", "[392]\tvalidation-rmse:6.58155 \n", "[393]\tvalidation-rmse:6.58138 \n", "[394]\tvalidation-rmse:6.58127 \n", "[395]\tvalidation-rmse:6.58104 \n", "[396]\tvalidation-rmse:6.58078 \n", "[397]\tvalidation-rmse:6.58052 \n", "[398]\tvalidation-rmse:6.58033 \n", "[399]\tvalidation-rmse:6.58017 \n", "[400]\tvalidation-rmse:6.57997 \n", "[401]\tvalidation-rmse:6.57986 \n", "[402]\tvalidation-rmse:6.57974 \n", "[403]\tvalidation-rmse:6.57945 \n", "[404]\tvalidation-rmse:6.57904 \n", "[405]\tvalidation-rmse:6.57880 \n", "[406]\tvalidation-rmse:6.57838 \n", "[407]\tvalidation-rmse:6.57804 \n", "[408]\tvalidation-rmse:6.57784 \n", "[409]\tvalidation-rmse:6.57753 \n", "[410]\tvalidation-rmse:6.57728 \n", "[411]\tvalidation-rmse:6.57720 \n", "[412]\tvalidation-rmse:6.57707 \n", "[413]\tvalidation-rmse:6.57681 \n", "[414]\tvalidation-rmse:6.57680 \n", "[415]\tvalidation-rmse:6.57665 \n", "[416]\tvalidation-rmse:6.57641 \n", "[417]\tvalidation-rmse:6.57626 \n", "[418]\tvalidation-rmse:6.57599 \n", "[419]\tvalidation-rmse:6.57567 \n", "[420]\tvalidation-rmse:6.57482 \n", "[421]\tvalidation-rmse:6.57447 \n", "[422]\tvalidation-rmse:6.57444 \n", "[423]\tvalidation-rmse:6.57404 \n", "[424]\tvalidation-rmse:6.57363 \n", "[425]\tvalidation-rmse:6.57346 \n", "[426]\tvalidation-rmse:6.57326 \n", "[427]\tvalidation-rmse:6.57287 \n", "[428]\tvalidation-rmse:6.57255 \n", "[429]\tvalidation-rmse:6.57248 \n", "[430]\tvalidation-rmse:6.57226 \n", "[431]\tvalidation-rmse:6.57193 \n", "[432]\tvalidation-rmse:6.57179 \n", "[433]\tvalidation-rmse:6.57157 \n", "[434]\tvalidation-rmse:6.57146 \n", "[435]\tvalidation-rmse:6.57109 \n", "[436]\tvalidation-rmse:6.57067 \n", "[437]\tvalidation-rmse:6.57029 \n", "[438]\tvalidation-rmse:6.57011 \n", "[439]\tvalidation-rmse:6.56974 \n", "[440]\tvalidation-rmse:6.56964 \n", "[441]\tvalidation-rmse:6.56935 \n", "[442]\tvalidation-rmse:6.56911 \n", "[443]\tvalidation-rmse:6.56897 \n", "[444]\tvalidation-rmse:6.56889 \n", "[445]\tvalidation-rmse:6.56869 \n", "[446]\tvalidation-rmse:6.56858 \n", "[447]\tvalidation-rmse:6.56854 \n", "[448]\tvalidation-rmse:6.56826 \n", "[449]\tvalidation-rmse:6.56814 \n", "[450]\tvalidation-rmse:6.56800 \n", "[451]\tvalidation-rmse:6.56787 \n", "[452]\tvalidation-rmse:6.56776 \n", "[453]\tvalidation-rmse:6.56755 \n", "[454]\tvalidation-rmse:6.56732 \n", "[455]\tvalidation-rmse:6.56720 \n", "[456]\tvalidation-rmse:6.56701 \n", "[457]\tvalidation-rmse:6.56704 \n", "[458]\tvalidation-rmse:6.56677 \n", "[459]\tvalidation-rmse:6.56669 \n", "[460]\tvalidation-rmse:6.56601 \n", "[461]\tvalidation-rmse:6.56580 \n", "[462]\tvalidation-rmse:6.56562 \n", "[463]\tvalidation-rmse:6.56546 \n", "[464]\tvalidation-rmse:6.56516 \n", "[465]\tvalidation-rmse:6.56510 \n", "[466]\tvalidation-rmse:6.56489 \n", "[467]\tvalidation-rmse:6.56471 \n", "[468]\tvalidation-rmse:6.56455 \n", "[469]\tvalidation-rmse:6.56430 \n", "[470]\tvalidation-rmse:6.56408 \n", "[471]\tvalidation-rmse:6.56375 \n", "[472]\tvalidation-rmse:6.56342 \n", "[473]\tvalidation-rmse:6.56324 \n", "[474]\tvalidation-rmse:6.56312 \n", "[475]\tvalidation-rmse:6.56290 \n", "[476]\tvalidation-rmse:6.56275 \n", "[477]\tvalidation-rmse:6.56270 \n", "[478]\tvalidation-rmse:6.56243 \n", "[479]\tvalidation-rmse:6.56227 \n", "[480]\tvalidation-rmse:6.56207 \n", "[481]\tvalidation-rmse:6.56183 \n", "[482]\tvalidation-rmse:6.56160 \n", "[483]\tvalidation-rmse:6.56146 \n", "[484]\tvalidation-rmse:6.56122 \n", "[485]\tvalidation-rmse:6.56096 \n", "[486]\tvalidation-rmse:6.56083 \n", "[487]\tvalidation-rmse:6.56054 \n", "[488]\tvalidation-rmse:6.56041 \n", "[489]\tvalidation-rmse:6.56026 \n", "[490]\tvalidation-rmse:6.56013 \n", "[491]\tvalidation-rmse:6.55992 \n", "[492]\tvalidation-rmse:6.55980 \n", "[493]\tvalidation-rmse:6.55973 \n", "[494]\tvalidation-rmse:6.55955 \n", "[495]\tvalidation-rmse:6.55938 \n", "[496]\tvalidation-rmse:6.55920 \n", "[497]\tvalidation-rmse:6.55913 \n", "[498]\tvalidation-rmse:6.55887 \n", "[499]\tvalidation-rmse:6.55893 \n", "[500]\tvalidation-rmse:6.55878 \n", "[501]\tvalidation-rmse:6.55846 \n", "[502]\tvalidation-rmse:6.55816 \n", "[503]\tvalidation-rmse:6.55798 \n", "[504]\tvalidation-rmse:6.55779 \n", "[505]\tvalidation-rmse:6.55758 \n", "[506]\tvalidation-rmse:6.55744 \n", "[507]\tvalidation-rmse:6.55730 \n", "[508]\tvalidation-rmse:6.55720 \n", "[509]\tvalidation-rmse:6.55711 \n", "[510]\tvalidation-rmse:6.55704 \n", "[511]\tvalidation-rmse:6.55687 \n", "[512]\tvalidation-rmse:6.55683 \n", "[513]\tvalidation-rmse:6.55673 \n", "[514]\tvalidation-rmse:6.55663 \n", "[515]\tvalidation-rmse:6.55648 \n", "[516]\tvalidation-rmse:6.55632 \n", "[517]\tvalidation-rmse:6.55623 \n", "[518]\tvalidation-rmse:6.55601 \n", "[519]\tvalidation-rmse:6.55575 \n", "[520]\tvalidation-rmse:6.55563 \n", "[521]\tvalidation-rmse:6.55542 \n", "[522]\tvalidation-rmse:6.55531 \n", "[523]\tvalidation-rmse:6.55515 \n", "[524]\tvalidation-rmse:6.55499 \n", "[525]\tvalidation-rmse:6.55486 \n", "[526]\tvalidation-rmse:6.55472 \n", "[527]\tvalidation-rmse:6.55447 \n", "[528]\tvalidation-rmse:6.55437 \n", "[529]\tvalidation-rmse:6.55414 \n", "[530]\tvalidation-rmse:6.55390 \n", "[531]\tvalidation-rmse:6.55365 \n", "[532]\tvalidation-rmse:6.55334 \n", "[533]\tvalidation-rmse:6.55317 \n", "[534]\tvalidation-rmse:6.55295 \n", "[535]\tvalidation-rmse:6.55259 \n", "[536]\tvalidation-rmse:6.55224 \n", "[537]\tvalidation-rmse:6.55209 \n", "[538]\tvalidation-rmse:6.55201 \n", "[539]\tvalidation-rmse:6.55181 \n", "[540]\tvalidation-rmse:6.55171 \n", "[541]\tvalidation-rmse:6.55154 \n", "[542]\tvalidation-rmse:6.55152 \n", "[543]\tvalidation-rmse:6.55135 \n", "[544]\tvalidation-rmse:6.55142 \n", "[545]\tvalidation-rmse:6.55124 \n", "[546]\tvalidation-rmse:6.55109 \n", "[547]\tvalidation-rmse:6.55092 \n", "[548]\tvalidation-rmse:6.55060 \n", "[549]\tvalidation-rmse:6.55034 \n", "[550]\tvalidation-rmse:6.55019 \n", "[551]\tvalidation-rmse:6.54994 \n", "[552]\tvalidation-rmse:6.54964 \n", "[553]\tvalidation-rmse:6.54952 \n", "[554]\tvalidation-rmse:6.54926 \n", "[555]\tvalidation-rmse:6.54899 \n", "[556]\tvalidation-rmse:6.54886 \n", "[557]\tvalidation-rmse:6.54864 \n", "[558]\tvalidation-rmse:6.54830 \n", "[559]\tvalidation-rmse:6.54819 \n", "[560]\tvalidation-rmse:6.54802 \n", "[561]\tvalidation-rmse:6.54796 \n", "[562]\tvalidation-rmse:6.54775 \n", "[563]\tvalidation-rmse:6.54754 \n", "[564]\tvalidation-rmse:6.54741 \n", "[565]\tvalidation-rmse:6.54722 \n", "[566]\tvalidation-rmse:6.54704 \n", "[567]\tvalidation-rmse:6.54686 \n", "[568]\tvalidation-rmse:6.54665 \n", "[569]\tvalidation-rmse:6.54653 \n", "[570]\tvalidation-rmse:6.54638 \n", "[571]\tvalidation-rmse:6.54614 \n", "[572]\tvalidation-rmse:6.54589 \n", "[573]\tvalidation-rmse:6.54570 \n", "[574]\tvalidation-rmse:6.54538 \n", "[575]\tvalidation-rmse:6.54521 \n", "[576]\tvalidation-rmse:6.54499 \n", "[577]\tvalidation-rmse:6.54472 \n", "[578]\tvalidation-rmse:6.54458 \n", "[579]\tvalidation-rmse:6.54449 \n", "[580]\tvalidation-rmse:6.54430 \n", "[581]\tvalidation-rmse:6.54425 \n", "[582]\tvalidation-rmse:6.54402 \n", "[583]\tvalidation-rmse:6.54392 \n", "[584]\tvalidation-rmse:6.54381 \n", "[585]\tvalidation-rmse:6.54366 \n", "[586]\tvalidation-rmse:6.54342 \n", "[587]\tvalidation-rmse:6.54337 \n", "[588]\tvalidation-rmse:6.54319 \n", "[589]\tvalidation-rmse:6.54271 \n", "[590]\tvalidation-rmse:6.54195 \n", "[591]\tvalidation-rmse:6.54182 \n", "[592]\tvalidation-rmse:6.54178 \n", "[593]\tvalidation-rmse:6.54171 \n", "[594]\tvalidation-rmse:6.54166 \n", "[595]\tvalidation-rmse:6.54152 \n", "[596]\tvalidation-rmse:6.54149 \n", "[597]\tvalidation-rmse:6.54135 \n", "[598]\tvalidation-rmse:6.54113 \n", "[599]\tvalidation-rmse:6.54104 \n", "[600]\tvalidation-rmse:6.54084 \n", "[601]\tvalidation-rmse:6.54050 \n", "[602]\tvalidation-rmse:6.54029 \n", "[603]\tvalidation-rmse:6.54013 \n", "[604]\tvalidation-rmse:6.54000 \n", "[605]\tvalidation-rmse:6.53934 \n", "[606]\tvalidation-rmse:6.53913 \n", "[607]\tvalidation-rmse:6.53896 \n", "[608]\tvalidation-rmse:6.53879 \n", "[609]\tvalidation-rmse:6.53856 \n", "[610]\tvalidation-rmse:6.53831 \n", "[611]\tvalidation-rmse:6.53814 \n", "[612]\tvalidation-rmse:6.53791 \n", "[613]\tvalidation-rmse:6.53776 \n", "[614]\tvalidation-rmse:6.53758 \n", "[615]\tvalidation-rmse:6.53751 \n", "[616]\tvalidation-rmse:6.53738 \n", "[617]\tvalidation-rmse:6.53725 \n", "[618]\tvalidation-rmse:6.53713 \n", "[619]\tvalidation-rmse:6.53700 \n", "[620]\tvalidation-rmse:6.53686 \n", "[621]\tvalidation-rmse:6.53663 \n", "[622]\tvalidation-rmse:6.53639 \n", "[623]\tvalidation-rmse:6.53622 \n", "[624]\tvalidation-rmse:6.53606 \n", "[625]\tvalidation-rmse:6.53588 \n", "[626]\tvalidation-rmse:6.53573 \n", "[627]\tvalidation-rmse:6.53555 \n", "[628]\tvalidation-rmse:6.53541 \n", "[629]\tvalidation-rmse:6.53522 \n", "[630]\tvalidation-rmse:6.53499 \n", "[631]\tvalidation-rmse:6.53486 \n", "[632]\tvalidation-rmse:6.53470 \n", "[633]\tvalidation-rmse:6.53455 \n", "[634]\tvalidation-rmse:6.53455 \n", "[635]\tvalidation-rmse:6.53443 \n", "[636]\tvalidation-rmse:6.53438 \n", "[637]\tvalidation-rmse:6.53432 \n", "[638]\tvalidation-rmse:6.53425 \n", "[639]\tvalidation-rmse:6.53396 \n", "[640]\tvalidation-rmse:6.53375 \n", "[641]\tvalidation-rmse:6.53376 \n", "[642]\tvalidation-rmse:6.53338 \n", "[643]\tvalidation-rmse:6.53333 \n", "[644]\tvalidation-rmse:6.53318 \n", "[645]\tvalidation-rmse:6.53307 \n", "[646]\tvalidation-rmse:6.53298 \n", "[647]\tvalidation-rmse:6.53282 \n", "[648]\tvalidation-rmse:6.53239 \n", "[649]\tvalidation-rmse:6.53229 \n", "[650]\tvalidation-rmse:6.53200 \n", "[651]\tvalidation-rmse:6.53193 \n", "[652]\tvalidation-rmse:6.53135 \n", "[653]\tvalidation-rmse:6.53130 \n", "[654]\tvalidation-rmse:6.53118 \n", "[655]\tvalidation-rmse:6.53115 \n", "[656]\tvalidation-rmse:6.53106 \n", "[657]\tvalidation-rmse:6.53096 \n", "[658]\tvalidation-rmse:6.53076 \n", "[659]\tvalidation-rmse:6.53068 \n", "[660]\tvalidation-rmse:6.53062 \n", "[661]\tvalidation-rmse:6.53051 \n", "[662]\tvalidation-rmse:6.53044 \n", "[663]\tvalidation-rmse:6.53032 \n", "[664]\tvalidation-rmse:6.53023 \n", "[665]\tvalidation-rmse:6.53009 \n", "[666]\tvalidation-rmse:6.53003 \n", "[667]\tvalidation-rmse:6.52977 \n", "[668]\tvalidation-rmse:6.52959 \n", "[669]\tvalidation-rmse:6.52945 \n", "[670]\tvalidation-rmse:6.52938 \n", "[671]\tvalidation-rmse:6.52921 \n", "[672]\tvalidation-rmse:6.52904 \n", "[673]\tvalidation-rmse:6.52902 \n", "[674]\tvalidation-rmse:6.52902 \n", "[675]\tvalidation-rmse:6.52903 \n", "[676]\tvalidation-rmse:6.52893 \n", "[677]\tvalidation-rmse:6.52880 \n", "[678]\tvalidation-rmse:6.52869 \n", "[679]\tvalidation-rmse:6.52828 \n", "[680]\tvalidation-rmse:6.52808 \n", "[681]\tvalidation-rmse:6.52792 \n", "[682]\tvalidation-rmse:6.52771 \n", "[683]\tvalidation-rmse:6.52753 \n", "[684]\tvalidation-rmse:6.52725 \n", "[685]\tvalidation-rmse:6.52706 \n", "[686]\tvalidation-rmse:6.52679 \n", "[687]\tvalidation-rmse:6.52667 \n", "[688]\tvalidation-rmse:6.52658 \n", "[689]\tvalidation-rmse:6.52656 \n", "[690]\tvalidation-rmse:6.52638 \n", "[691]\tvalidation-rmse:6.52634 \n", "[692]\tvalidation-rmse:6.52629 \n", "[693]\tvalidation-rmse:6.52617 \n", "[694]\tvalidation-rmse:6.52598 \n", "[695]\tvalidation-rmse:6.52570 \n", "[696]\tvalidation-rmse:6.52563 \n", "[697]\tvalidation-rmse:6.52557 \n", "[698]\tvalidation-rmse:6.52551 \n", "[699]\tvalidation-rmse:6.52539 \n", "[700]\tvalidation-rmse:6.52517 \n", "[701]\tvalidation-rmse:6.52501 \n", "[702]\tvalidation-rmse:6.52488 \n", "[703]\tvalidation-rmse:6.52462 \n", "[704]\tvalidation-rmse:6.52428 \n", "[705]\tvalidation-rmse:6.52424 \n", "[706]\tvalidation-rmse:6.52407 \n", "[707]\tvalidation-rmse:6.52387 \n", "[708]\tvalidation-rmse:6.52386 \n", "[709]\tvalidation-rmse:6.52383 \n", "[710]\tvalidation-rmse:6.52349 \n", "[711]\tvalidation-rmse:6.52327 \n", "[712]\tvalidation-rmse:6.52318 \n", "[713]\tvalidation-rmse:6.52313 \n", "[714]\tvalidation-rmse:6.52310 \n", "[715]\tvalidation-rmse:6.52298 \n", "[716]\tvalidation-rmse:6.52281 \n", "[717]\tvalidation-rmse:6.52240 \n", "[718]\tvalidation-rmse:6.52232 \n", "[719]\tvalidation-rmse:6.52213 \n", "[720]\tvalidation-rmse:6.52189 \n", "[721]\tvalidation-rmse:6.52174 \n", "[722]\tvalidation-rmse:6.52161 \n", "[723]\tvalidation-rmse:6.52148 \n", "[724]\tvalidation-rmse:6.52132 \n", "[725]\tvalidation-rmse:6.52120 \n", "[726]\tvalidation-rmse:6.52097 \n", "[727]\tvalidation-rmse:6.52080 \n", "[728]\tvalidation-rmse:6.52054 \n", "[729]\tvalidation-rmse:6.52043 \n", "[730]\tvalidation-rmse:6.52042 \n", "[731]\tvalidation-rmse:6.52020 \n", "[732]\tvalidation-rmse:6.52003 \n", "[733]\tvalidation-rmse:6.51975 \n", "[734]\tvalidation-rmse:6.51972 \n", "[735]\tvalidation-rmse:6.51952 \n", "[736]\tvalidation-rmse:6.51937 \n", "[737]\tvalidation-rmse:6.51917 \n", "[738]\tvalidation-rmse:6.51914 \n", "[739]\tvalidation-rmse:6.51899 \n", "[740]\tvalidation-rmse:6.51887 \n", "[741]\tvalidation-rmse:6.51873 \n", "[742]\tvalidation-rmse:6.51856 \n", "[743]\tvalidation-rmse:6.51835 \n", "[744]\tvalidation-rmse:6.51824 \n", "[745]\tvalidation-rmse:6.51822 \n", "[746]\tvalidation-rmse:6.51820 \n", "[747]\tvalidation-rmse:6.51812 \n", "[748]\tvalidation-rmse:6.51801 \n", "[749]\tvalidation-rmse:6.51804 \n", "[750]\tvalidation-rmse:6.51783 \n", "[751]\tvalidation-rmse:6.51781 \n", "[752]\tvalidation-rmse:6.51777 \n", "[753]\tvalidation-rmse:6.51763 \n", "[754]\tvalidation-rmse:6.51755 \n", "[755]\tvalidation-rmse:6.51751 \n", "[756]\tvalidation-rmse:6.51735 \n", "[757]\tvalidation-rmse:6.51720 \n", "[758]\tvalidation-rmse:6.51716 \n", "[759]\tvalidation-rmse:6.51705 \n", "[760]\tvalidation-rmse:6.51686 \n", "[761]\tvalidation-rmse:6.51670 \n", "[762]\tvalidation-rmse:6.51657 \n", "[763]\tvalidation-rmse:6.51635 \n", "[764]\tvalidation-rmse:6.51619 \n", "[765]\tvalidation-rmse:6.51600 \n", "[766]\tvalidation-rmse:6.51582 \n", "[767]\tvalidation-rmse:6.51553 \n", "[768]\tvalidation-rmse:6.51532 \n", "[769]\tvalidation-rmse:6.51520 \n", "[770]\tvalidation-rmse:6.51502 \n", "[771]\tvalidation-rmse:6.51482 \n", "[772]\tvalidation-rmse:6.51458 \n", "[773]\tvalidation-rmse:6.51442 \n", "[774]\tvalidation-rmse:6.51422 \n", "[775]\tvalidation-rmse:6.51416 \n", "[776]\tvalidation-rmse:6.51401 \n", "[777]\tvalidation-rmse:6.51393 \n", "[778]\tvalidation-rmse:6.51389 \n", "[779]\tvalidation-rmse:6.51386 \n", "[780]\tvalidation-rmse:6.51381 \n", "[781]\tvalidation-rmse:6.51371 \n", "[782]\tvalidation-rmse:6.51348 \n", "[783]\tvalidation-rmse:6.51334 \n", "[784]\tvalidation-rmse:6.51315 \n", "[785]\tvalidation-rmse:6.51302 \n", "[786]\tvalidation-rmse:6.51291 \n", "[787]\tvalidation-rmse:6.51281 \n", "[788]\tvalidation-rmse:6.51268 \n", "[789]\tvalidation-rmse:6.51258 \n", "[790]\tvalidation-rmse:6.51239 \n", "[791]\tvalidation-rmse:6.51230 \n", "[792]\tvalidation-rmse:6.51209 \n", "[793]\tvalidation-rmse:6.51194 \n", "[794]\tvalidation-rmse:6.51192 \n", "[795]\tvalidation-rmse:6.51172 \n", "[796]\tvalidation-rmse:6.51133 \n", "[797]\tvalidation-rmse:6.51119 \n", "[798]\tvalidation-rmse:6.51111 \n", "[799]\tvalidation-rmse:6.51099 \n", "[800]\tvalidation-rmse:6.51094 \n", "[801]\tvalidation-rmse:6.51080 \n", "[802]\tvalidation-rmse:6.51063 \n", "[803]\tvalidation-rmse:6.51053 \n", "[804]\tvalidation-rmse:6.51040 \n", "[805]\tvalidation-rmse:6.51007 \n", "[806]\tvalidation-rmse:6.50995 \n", "[807]\tvalidation-rmse:6.50982 \n", "[808]\tvalidation-rmse:6.50973 \n", "[809]\tvalidation-rmse:6.50962 \n", "[810]\tvalidation-rmse:6.50941 \n", "[811]\tvalidation-rmse:6.50930 \n", "[812]\tvalidation-rmse:6.50923 \n", "[813]\tvalidation-rmse:6.50907 \n", "[814]\tvalidation-rmse:6.50900 \n", "[815]\tvalidation-rmse:6.50890 \n", "[816]\tvalidation-rmse:6.50866 \n", "[817]\tvalidation-rmse:6.50856 \n", "[818]\tvalidation-rmse:6.50848 \n", "[819]\tvalidation-rmse:6.50841 \n", "[820]\tvalidation-rmse:6.50832 \n", "[821]\tvalidation-rmse:6.50825 \n", "[822]\tvalidation-rmse:6.50819 \n", "[823]\tvalidation-rmse:6.50804 \n", "[824]\tvalidation-rmse:6.50789 \n", "[825]\tvalidation-rmse:6.50783 \n", "[826]\tvalidation-rmse:6.50768 \n", "[827]\tvalidation-rmse:6.50762 \n", "[828]\tvalidation-rmse:6.50759 \n", "[829]\tvalidation-rmse:6.50748 \n", "[830]\tvalidation-rmse:6.50744 \n", "[831]\tvalidation-rmse:6.50731 \n", "[832]\tvalidation-rmse:6.50723 \n", "[833]\tvalidation-rmse:6.50712 \n", "[834]\tvalidation-rmse:6.50701 \n", "[835]\tvalidation-rmse:6.50675 \n", "[836]\tvalidation-rmse:6.50672 \n", "[837]\tvalidation-rmse:6.50654 \n", "[838]\tvalidation-rmse:6.50645 \n", "[839]\tvalidation-rmse:6.50632 \n", "[840]\tvalidation-rmse:6.50629 \n", "[841]\tvalidation-rmse:6.50618 \n", "[842]\tvalidation-rmse:6.50601 \n", "[843]\tvalidation-rmse:6.50597 \n", "[844]\tvalidation-rmse:6.50590 \n", "[845]\tvalidation-rmse:6.50585 \n", "[846]\tvalidation-rmse:6.50583 \n", "[847]\tvalidation-rmse:6.50581 \n", "[848]\tvalidation-rmse:6.50508 \n", "[849]\tvalidation-rmse:6.50500 \n", "[850]\tvalidation-rmse:6.50487 \n", "[851]\tvalidation-rmse:6.50481 \n", "[852]\tvalidation-rmse:6.50477 \n", "[853]\tvalidation-rmse:6.50454 \n", "[854]\tvalidation-rmse:6.50442 \n", "[855]\tvalidation-rmse:6.50436 \n", "[856]\tvalidation-rmse:6.50420 \n", "[857]\tvalidation-rmse:6.50391 \n", "[858]\tvalidation-rmse:6.50374 \n", "[859]\tvalidation-rmse:6.50372 \n", "[860]\tvalidation-rmse:6.50355 \n", "[861]\tvalidation-rmse:6.50340 \n", "[862]\tvalidation-rmse:6.50328 \n", "[863]\tvalidation-rmse:6.50325 \n", "[864]\tvalidation-rmse:6.50305 \n", "[865]\tvalidation-rmse:6.50286 \n", "[866]\tvalidation-rmse:6.50285 \n", "[867]\tvalidation-rmse:6.50276 \n", "[868]\tvalidation-rmse:6.50258 \n", "[869]\tvalidation-rmse:6.50243 \n", "[870]\tvalidation-rmse:6.50233 \n", "[871]\tvalidation-rmse:6.50227 \n", "[872]\tvalidation-rmse:6.50217 \n", "[873]\tvalidation-rmse:6.50199 \n", "[874]\tvalidation-rmse:6.50194 \n", "[875]\tvalidation-rmse:6.50190 \n", "[876]\tvalidation-rmse:6.50181 \n", "[877]\tvalidation-rmse:6.50171 \n", "[878]\tvalidation-rmse:6.50164 \n", "[879]\tvalidation-rmse:6.50147 \n", "[880]\tvalidation-rmse:6.50138 \n", "[881]\tvalidation-rmse:6.50125 \n", "[882]\tvalidation-rmse:6.50110 \n", "[883]\tvalidation-rmse:6.50093 \n", "[884]\tvalidation-rmse:6.50073 \n", "[885]\tvalidation-rmse:6.50053 \n", "[886]\tvalidation-rmse:6.50035 \n", "[887]\tvalidation-rmse:6.50041 \n", "[888]\tvalidation-rmse:6.50035 \n", "[889]\tvalidation-rmse:6.50022 \n", "[890]\tvalidation-rmse:6.50013 \n", "[891]\tvalidation-rmse:6.50010 \n", "[892]\tvalidation-rmse:6.50004 \n", "[893]\tvalidation-rmse:6.49988 \n", "[894]\tvalidation-rmse:6.49991 \n", "[895]\tvalidation-rmse:6.49960 \n", "[896]\tvalidation-rmse:6.49941 \n", "[897]\tvalidation-rmse:6.49918 \n", "[898]\tvalidation-rmse:6.49907 \n", "[899]\tvalidation-rmse:6.49909 \n", "[900]\tvalidation-rmse:6.49902 \n", "[901]\tvalidation-rmse:6.49888 \n", "[902]\tvalidation-rmse:6.49867 \n", "[903]\tvalidation-rmse:6.49863 \n", "[904]\tvalidation-rmse:6.49841 \n", "[905]\tvalidation-rmse:6.49831 \n", "[906]\tvalidation-rmse:6.49802 \n", "[907]\tvalidation-rmse:6.49790 \n", "[908]\tvalidation-rmse:6.49774 \n", "[909]\tvalidation-rmse:6.49765 \n", "[910]\tvalidation-rmse:6.49748 \n", "[911]\tvalidation-rmse:6.49735 \n", "[912]\tvalidation-rmse:6.49717 \n", "[913]\tvalidation-rmse:6.49709 \n", "[914]\tvalidation-rmse:6.49701 \n", "[915]\tvalidation-rmse:6.49690 \n", "[916]\tvalidation-rmse:6.49670 \n", "[917]\tvalidation-rmse:6.49657 \n", "[918]\tvalidation-rmse:6.49647 \n", "[919]\tvalidation-rmse:6.49641 \n", "[920]\tvalidation-rmse:6.49639 \n", "[921]\tvalidation-rmse:6.49638 \n", "[922]\tvalidation-rmse:6.49630 \n", "[923]\tvalidation-rmse:6.49621 \n", "[924]\tvalidation-rmse:6.49604 \n", "[925]\tvalidation-rmse:6.49593 \n", "[926]\tvalidation-rmse:6.49582 \n", "[927]\tvalidation-rmse:6.49571 \n", "[928]\tvalidation-rmse:6.49546 \n", "[929]\tvalidation-rmse:6.49537 \n", "[930]\tvalidation-rmse:6.49527 \n", "[931]\tvalidation-rmse:6.49519 \n", "[932]\tvalidation-rmse:6.49524 \n", "[933]\tvalidation-rmse:6.49513 \n", "[934]\tvalidation-rmse:6.49508 \n", "[935]\tvalidation-rmse:6.49505 \n", "[936]\tvalidation-rmse:6.49497 \n", "[937]\tvalidation-rmse:6.49487 \n", "[938]\tvalidation-rmse:6.49468 \n", "[939]\tvalidation-rmse:6.49464 \n", "[940]\tvalidation-rmse:6.49454 \n", "[941]\tvalidation-rmse:6.49445 \n", "[942]\tvalidation-rmse:6.49434 \n", "[943]\tvalidation-rmse:6.49420 \n", "[944]\tvalidation-rmse:6.49411 \n", "[945]\tvalidation-rmse:6.49399 \n", "[946]\tvalidation-rmse:6.49390 \n", "[947]\tvalidation-rmse:6.49377 \n", "[948]\tvalidation-rmse:6.49365 \n", "[949]\tvalidation-rmse:6.49347 \n", "[950]\tvalidation-rmse:6.49340 \n", "[951]\tvalidation-rmse:6.49331 \n", "[952]\tvalidation-rmse:6.49314 \n", "[953]\tvalidation-rmse:6.49303 \n", "[954]\tvalidation-rmse:6.49281 \n", "[955]\tvalidation-rmse:6.49266 \n", "[956]\tvalidation-rmse:6.49252 \n", "[957]\tvalidation-rmse:6.49235 \n", "[958]\tvalidation-rmse:6.49222 \n", "[959]\tvalidation-rmse:6.49214 \n", "[960]\tvalidation-rmse:6.49208 \n", "[961]\tvalidation-rmse:6.49196 \n", "[962]\tvalidation-rmse:6.49180 \n", "[963]\tvalidation-rmse:6.49167 \n", "[964]\tvalidation-rmse:6.49160 \n", "[965]\tvalidation-rmse:6.49153 \n", "[966]\tvalidation-rmse:6.49134 \n", "[967]\tvalidation-rmse:6.49120 \n", "[968]\tvalidation-rmse:6.49117 \n", "[969]\tvalidation-rmse:6.49101 \n", "[970]\tvalidation-rmse:6.49092 \n", "[971]\tvalidation-rmse:6.49041 \n", "[972]\tvalidation-rmse:6.49033 \n", "[973]\tvalidation-rmse:6.49021 \n", "[974]\tvalidation-rmse:6.49010 \n", "[975]\tvalidation-rmse:6.49002 \n", "[976]\tvalidation-rmse:6.48994 \n", "[977]\tvalidation-rmse:6.48975 \n", "[978]\tvalidation-rmse:6.48962 \n", "[979]\tvalidation-rmse:6.48947 \n", "[980]\tvalidation-rmse:6.48935 \n", "[981]\tvalidation-rmse:6.48925 \n", "[982]\tvalidation-rmse:6.48917 \n", "[983]\tvalidation-rmse:6.48903 \n", "[984]\tvalidation-rmse:6.48886 \n", "[985]\tvalidation-rmse:6.48880 \n", "[986]\tvalidation-rmse:6.48870 \n", "[987]\tvalidation-rmse:6.48861 \n", "[988]\tvalidation-rmse:6.48841 \n", "[989]\tvalidation-rmse:6.48828 \n", "[990]\tvalidation-rmse:6.48829 \n", "[991]\tvalidation-rmse:6.48831 \n", "[992]\tvalidation-rmse:6.48823 \n", "[993]\tvalidation-rmse:6.48819 \n", "[994]\tvalidation-rmse:6.48802 \n", "[995]\tvalidation-rmse:6.48787 \n", "[996]\tvalidation-rmse:6.48770 \n", "[997]\tvalidation-rmse:6.48762 \n", "[998]\tvalidation-rmse:6.48755 \n", "[999]\tvalidation-rmse:6.48747 \n", "[12:43:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.27313 \n", "[1]\tvalidation-rmse:19.40488 \n", "[2]\tvalidation-rmse:18.58579 \n", "[3]\tvalidation-rmse:17.81300 \n", "[4]\tvalidation-rmse:17.08508 \n", "[5]\tvalidation-rmse:16.39874 \n", "[6]\tvalidation-rmse:15.75340 \n", "[7]\tvalidation-rmse:15.14597 \n", "[8]\tvalidation-rmse:14.57482 \n", "[9]\tvalidation-rmse:14.03799 \n", "[10]\tvalidation-rmse:13.53397 \n", "[11]\tvalidation-rmse:13.06106 \n", "[12]\tvalidation-rmse:12.61785 \n", "[13]\tvalidation-rmse:12.20171 \n", "[14]\tvalidation-rmse:11.81171 \n", "[15]\tvalidation-rmse:11.44796 \n", "[16]\tvalidation-rmse:11.10688 \n", "[17]\tvalidation-rmse:10.78859 \n", "[18]\tvalidation-rmse:10.49088 \n", "[19]\tvalidation-rmse:10.21358 \n", "[20]\tvalidation-rmse:9.95521 \n", "[21]\tvalidation-rmse:9.71441 \n", "[22]\tvalidation-rmse:9.49008 \n", "[23]\tvalidation-rmse:9.28111 \n", "[24]\tvalidation-rmse:9.08703 \n", "[25]\tvalidation-rmse:8.90693 \n", "[26]\tvalidation-rmse:8.73977 \n", "[27]\tvalidation-rmse:8.58459 \n", "[28]\tvalidation-rmse:8.44067 \n", "[29]\tvalidation-rmse:8.30663 \n", "[30]\tvalidation-rmse:8.18223 \n", "[31]\tvalidation-rmse:8.06671 \n", "[32]\tvalidation-rmse:7.95996 \n", "[33]\tvalidation-rmse:7.86115 \n", "[34]\tvalidation-rmse:7.77032 \n", "[35]\tvalidation-rmse:7.68531 \n", "[36]\tvalidation-rmse:7.60676 \n", "[37]\tvalidation-rmse:7.53416 \n", "[38]\tvalidation-rmse:7.46729 \n", "[39]\tvalidation-rmse:7.40431 \n", "[40]\tvalidation-rmse:7.34677 \n", "[41]\tvalidation-rmse:7.29297 \n", "[42]\tvalidation-rmse:7.24322 \n", "[43]\tvalidation-rmse:7.19723 \n", "[44]\tvalidation-rmse:7.15458 \n", "[45]\tvalidation-rmse:7.11451 \n", "[46]\tvalidation-rmse:7.07804 \n", "[47]\tvalidation-rmse:7.04397 \n", "[48]\tvalidation-rmse:7.01157 \n", "[49]\tvalidation-rmse:6.98199 \n", "[50]\tvalidation-rmse:6.95366 \n", "[51]\tvalidation-rmse:6.92777 \n", "[52]\tvalidation-rmse:6.90384 \n", "[53]\tvalidation-rmse:6.88167 \n", "[54]\tvalidation-rmse:6.86027 \n", "[55]\tvalidation-rmse:6.84091 \n", "[56]\tvalidation-rmse:6.82232 \n", "[57]\tvalidation-rmse:6.80544 \n", "[58]\tvalidation-rmse:6.78930 \n", "[59]\tvalidation-rmse:6.77421 \n", "[60]\tvalidation-rmse:6.75970 \n", "[61]\tvalidation-rmse:6.74608 \n", "[62]\tvalidation-rmse:6.73401 \n", "[63]\tvalidation-rmse:6.72255 \n", "[64]\tvalidation-rmse:6.71129 \n", "[65]\tvalidation-rmse:6.70158 \n", "[66]\tvalidation-rmse:6.69182 \n", "[67]\tvalidation-rmse:6.68281 \n", "[68]\tvalidation-rmse:6.67454 \n", "[69]\tvalidation-rmse:6.66647 \n", "[70]\tvalidation-rmse:6.65853 \n", "[71]\tvalidation-rmse:6.65072 \n", "[72]\tvalidation-rmse:6.64353 \n", "[73]\tvalidation-rmse:6.63674 \n", "[74]\tvalidation-rmse:6.63026 \n", "[75]\tvalidation-rmse:6.62423 \n", "[76]\tvalidation-rmse:6.61879 \n", "[77]\tvalidation-rmse:6.61336 \n", "[78]\tvalidation-rmse:6.60815 \n", "[79]\tvalidation-rmse:6.60338 \n", "[80]\tvalidation-rmse:6.59918 \n", "[81]\tvalidation-rmse:6.59456 \n", "[82]\tvalidation-rmse:6.59046 \n", "[83]\tvalidation-rmse:6.58644 \n", "[84]\tvalidation-rmse:6.58273 \n", "[85]\tvalidation-rmse:6.57921 \n", "[86]\tvalidation-rmse:6.57579 \n", "[87]\tvalidation-rmse:6.57248 \n", "[88]\tvalidation-rmse:6.56937 \n", "[89]\tvalidation-rmse:6.56641 \n", "[90]\tvalidation-rmse:6.56376 \n", "[91]\tvalidation-rmse:6.56128 \n", "[92]\tvalidation-rmse:6.55883 \n", "[93]\tvalidation-rmse:6.55666 \n", "[94]\tvalidation-rmse:6.55437 \n", "[95]\tvalidation-rmse:6.55228 \n", "[96]\tvalidation-rmse:6.55027 \n", "[97]\tvalidation-rmse:6.54810 \n", "[98]\tvalidation-rmse:6.54616 \n", "[99]\tvalidation-rmse:6.54451 \n", "[100]\tvalidation-rmse:6.54269 \n", "[101]\tvalidation-rmse:6.54116 \n", "[102]\tvalidation-rmse:6.53953 \n", "[103]\tvalidation-rmse:6.53797 \n", "[104]\tvalidation-rmse:6.53656 \n", "[105]\tvalidation-rmse:6.53510 \n", "[106]\tvalidation-rmse:6.53382 \n", "[107]\tvalidation-rmse:6.53265 \n", "[108]\tvalidation-rmse:6.53170 \n", "[109]\tvalidation-rmse:6.53066 \n", "[110]\tvalidation-rmse:6.52976 \n", "[111]\tvalidation-rmse:6.52863 \n", "[112]\tvalidation-rmse:6.52781 \n", "[113]\tvalidation-rmse:6.52683 \n", "[114]\tvalidation-rmse:6.52589 \n", "[115]\tvalidation-rmse:6.52488 \n", "[116]\tvalidation-rmse:6.52406 \n", "[117]\tvalidation-rmse:6.52320 \n", "[118]\tvalidation-rmse:6.52248 \n", "[119]\tvalidation-rmse:6.52141 \n", "[120]\tvalidation-rmse:6.52075 \n", "[121]\tvalidation-rmse:6.51978 \n", "[122]\tvalidation-rmse:6.51897 \n", "[123]\tvalidation-rmse:6.51833 \n", "[124]\tvalidation-rmse:6.51764 \n", "[125]\tvalidation-rmse:6.51713 \n", "[126]\tvalidation-rmse:6.51655 \n", "[127]\tvalidation-rmse:6.51592 \n", "[128]\tvalidation-rmse:6.51506 \n", "[129]\tvalidation-rmse:6.51433 \n", "[130]\tvalidation-rmse:6.51366 \n", "[131]\tvalidation-rmse:6.51305 \n", "[132]\tvalidation-rmse:6.51248 \n", "[133]\tvalidation-rmse:6.51195 \n", "[134]\tvalidation-rmse:6.51126 \n", "[135]\tvalidation-rmse:6.51092 \n", "[136]\tvalidation-rmse:6.51036 \n", "[137]\tvalidation-rmse:6.50985 \n", "[138]\tvalidation-rmse:6.50941 \n", "[139]\tvalidation-rmse:6.50896 \n", "[140]\tvalidation-rmse:6.50838 \n", "[141]\tvalidation-rmse:6.50789 \n", "[142]\tvalidation-rmse:6.50729 \n", "[143]\tvalidation-rmse:6.50691 \n", "[144]\tvalidation-rmse:6.50656 \n", "[145]\tvalidation-rmse:6.50611 \n", "[146]\tvalidation-rmse:6.50582 \n", "[147]\tvalidation-rmse:6.50542 \n", "[148]\tvalidation-rmse:6.50508 \n", "[149]\tvalidation-rmse:6.50461 \n", "[150]\tvalidation-rmse:6.50420 \n", "[151]\tvalidation-rmse:6.50383 \n", "[152]\tvalidation-rmse:6.50354 \n", "[153]\tvalidation-rmse:6.50299 \n", "[154]\tvalidation-rmse:6.50250 \n", "[155]\tvalidation-rmse:6.50203 \n", "[156]\tvalidation-rmse:6.50165 \n", "[157]\tvalidation-rmse:6.50136 \n", "[158]\tvalidation-rmse:6.50095 \n", "[159]\tvalidation-rmse:6.50073 \n", "[160]\tvalidation-rmse:6.50039 \n", "[161]\tvalidation-rmse:6.50019 \n", "[162]\tvalidation-rmse:6.49986 \n", "[163]\tvalidation-rmse:6.49960 \n", "[164]\tvalidation-rmse:6.49921 \n", "[165]\tvalidation-rmse:6.49891 \n", "[166]\tvalidation-rmse:6.49851 \n", "[167]\tvalidation-rmse:6.49807 \n", "[168]\tvalidation-rmse:6.49771 \n", "[169]\tvalidation-rmse:6.49747 \n", "[170]\tvalidation-rmse:6.49733 \n", "[171]\tvalidation-rmse:6.49694 \n", "[172]\tvalidation-rmse:6.49669 \n", "[173]\tvalidation-rmse:6.49638 \n", "[174]\tvalidation-rmse:6.49622 \n", "[175]\tvalidation-rmse:6.49594 \n", "[176]\tvalidation-rmse:6.49575 \n", "[177]\tvalidation-rmse:6.49540 \n", "[178]\tvalidation-rmse:6.49513 \n", "[179]\tvalidation-rmse:6.49487 \n", "[180]\tvalidation-rmse:6.49466 \n", "[181]\tvalidation-rmse:6.49427 \n", "[182]\tvalidation-rmse:6.49389 \n", "[183]\tvalidation-rmse:6.49367 \n", "[184]\tvalidation-rmse:6.49335 \n", "[185]\tvalidation-rmse:6.49294 \n", "[186]\tvalidation-rmse:6.49278 \n", "[187]\tvalidation-rmse:6.49264 \n", "[188]\tvalidation-rmse:6.49246 \n", "[189]\tvalidation-rmse:6.49212 \n", "[190]\tvalidation-rmse:6.49198 \n", "[191]\tvalidation-rmse:6.49174 \n", "[192]\tvalidation-rmse:6.49156 \n", "[193]\tvalidation-rmse:6.49122 \n", "[194]\tvalidation-rmse:6.49094 \n", "[195]\tvalidation-rmse:6.49064 \n", "[196]\tvalidation-rmse:6.49044 \n", "[197]\tvalidation-rmse:6.49024 \n", "[198]\tvalidation-rmse:6.48995 \n", "[199]\tvalidation-rmse:6.48977 \n", "[200]\tvalidation-rmse:6.48962 \n", "[201]\tvalidation-rmse:6.48930 \n", "[202]\tvalidation-rmse:6.48913 \n", "[203]\tvalidation-rmse:6.48886 \n", "[204]\tvalidation-rmse:6.48874 \n", "[205]\tvalidation-rmse:6.48856 \n", "[206]\tvalidation-rmse:6.48845 \n", "[207]\tvalidation-rmse:6.48830 \n", "[208]\tvalidation-rmse:6.48804 \n", "[209]\tvalidation-rmse:6.48781 \n", "[210]\tvalidation-rmse:6.48761 \n", "[211]\tvalidation-rmse:6.48741 \n", "[212]\tvalidation-rmse:6.48725 \n", "[213]\tvalidation-rmse:6.48698 \n", "[214]\tvalidation-rmse:6.48679 \n", "[215]\tvalidation-rmse:6.48649 \n", "[216]\tvalidation-rmse:6.48629 \n", "[217]\tvalidation-rmse:6.48613 \n", "[218]\tvalidation-rmse:6.48591 \n", "[219]\tvalidation-rmse:6.48569 \n", "[220]\tvalidation-rmse:6.48529 \n", "[221]\tvalidation-rmse:6.48508 \n", "[222]\tvalidation-rmse:6.48496 \n", "[223]\tvalidation-rmse:6.48485 \n", "[224]\tvalidation-rmse:6.48461 \n", "[225]\tvalidation-rmse:6.48450 \n", "[226]\tvalidation-rmse:6.48428 \n", "[227]\tvalidation-rmse:6.48418 \n", "[228]\tvalidation-rmse:6.48402 \n", "[229]\tvalidation-rmse:6.48382 \n", "[230]\tvalidation-rmse:6.48368 \n", "[231]\tvalidation-rmse:6.48353 \n", "[232]\tvalidation-rmse:6.48347 \n", "[233]\tvalidation-rmse:6.48329 \n", "[234]\tvalidation-rmse:6.48306 \n", "[235]\tvalidation-rmse:6.48290 \n", "[236]\tvalidation-rmse:6.48255 \n", "[237]\tvalidation-rmse:6.48241 \n", "[238]\tvalidation-rmse:6.48222 \n", "[239]\tvalidation-rmse:6.48204 \n", "[240]\tvalidation-rmse:6.48186 \n", "[241]\tvalidation-rmse:6.48172 \n", "[242]\tvalidation-rmse:6.48162 \n", "[243]\tvalidation-rmse:6.48144 \n", "[244]\tvalidation-rmse:6.48136 \n", "[245]\tvalidation-rmse:6.48113 \n", "[246]\tvalidation-rmse:6.48105 \n", "[247]\tvalidation-rmse:6.48086 \n", "[248]\tvalidation-rmse:6.48070 \n", "[249]\tvalidation-rmse:6.48052 \n", "[250]\tvalidation-rmse:6.48042 \n", "[251]\tvalidation-rmse:6.48033 \n", "[252]\tvalidation-rmse:6.48021 \n", "[253]\tvalidation-rmse:6.48003 \n", "[254]\tvalidation-rmse:6.47980 \n", "[255]\tvalidation-rmse:6.47972 \n", "[256]\tvalidation-rmse:6.47959 \n", "[257]\tvalidation-rmse:6.47933 \n", "[258]\tvalidation-rmse:6.47921 \n", "[259]\tvalidation-rmse:6.47888 \n", "[260]\tvalidation-rmse:6.47872 \n", "[261]\tvalidation-rmse:6.47852 \n", "[262]\tvalidation-rmse:6.47812 \n", "[263]\tvalidation-rmse:6.47802 \n", "[264]\tvalidation-rmse:6.47789 \n", "[265]\tvalidation-rmse:6.47775 \n", "[266]\tvalidation-rmse:6.47755 \n", "[267]\tvalidation-rmse:6.47745 \n", "[268]\tvalidation-rmse:6.47741 \n", "[269]\tvalidation-rmse:6.47711 \n", "[270]\tvalidation-rmse:6.47697 \n", "[271]\tvalidation-rmse:6.47684 \n", "[272]\tvalidation-rmse:6.47675 \n", "[273]\tvalidation-rmse:6.47663 \n", "[274]\tvalidation-rmse:6.47644 \n", "[275]\tvalidation-rmse:6.47637 \n", "[276]\tvalidation-rmse:6.47632 \n", "[277]\tvalidation-rmse:6.47620 \n", "[278]\tvalidation-rmse:6.47603 \n", "[279]\tvalidation-rmse:6.47588 \n", "[280]\tvalidation-rmse:6.47576 \n", "[281]\tvalidation-rmse:6.47559 \n", "[282]\tvalidation-rmse:6.47532 \n", "[283]\tvalidation-rmse:6.47510 \n", "[284]\tvalidation-rmse:6.47480 \n", "[285]\tvalidation-rmse:6.47460 \n", "[286]\tvalidation-rmse:6.47445 \n", "[287]\tvalidation-rmse:6.47422 \n", "[288]\tvalidation-rmse:6.47420 \n", "[289]\tvalidation-rmse:6.47402 \n", "[290]\tvalidation-rmse:6.47395 \n", "[291]\tvalidation-rmse:6.47385 \n", "[292]\tvalidation-rmse:6.47373 \n", "[293]\tvalidation-rmse:6.47362 \n", "[294]\tvalidation-rmse:6.47339 \n", "[295]\tvalidation-rmse:6.47327 \n", "[296]\tvalidation-rmse:6.47318 \n", "[297]\tvalidation-rmse:6.47307 \n", "[298]\tvalidation-rmse:6.47287 \n", "[299]\tvalidation-rmse:6.47277 \n", "[300]\tvalidation-rmse:6.47268 \n", "[301]\tvalidation-rmse:6.47248 \n", "[302]\tvalidation-rmse:6.47239 \n", "[303]\tvalidation-rmse:6.47234 \n", "[304]\tvalidation-rmse:6.47212 \n", "[305]\tvalidation-rmse:6.47193 \n", "[306]\tvalidation-rmse:6.47169 \n", "[307]\tvalidation-rmse:6.47159 \n", "[308]\tvalidation-rmse:6.47137 \n", "[309]\tvalidation-rmse:6.47118 \n", "[310]\tvalidation-rmse:6.47108 \n", "[311]\tvalidation-rmse:6.47094 \n", "[312]\tvalidation-rmse:6.47094 \n", "[313]\tvalidation-rmse:6.47074 \n", "[314]\tvalidation-rmse:6.47062 \n", "[315]\tvalidation-rmse:6.47044 \n", "[316]\tvalidation-rmse:6.47042 \n", "[317]\tvalidation-rmse:6.47034 \n", "[318]\tvalidation-rmse:6.47022 \n", "[319]\tvalidation-rmse:6.47005 \n", "[320]\tvalidation-rmse:6.46983 \n", "[321]\tvalidation-rmse:6.46975 \n", "[322]\tvalidation-rmse:6.46964 \n", "[323]\tvalidation-rmse:6.46953 \n", "[324]\tvalidation-rmse:6.46940 \n", "[325]\tvalidation-rmse:6.46924 \n", "[326]\tvalidation-rmse:6.46914 \n", "[327]\tvalidation-rmse:6.46909 \n", "[328]\tvalidation-rmse:6.46902 \n", "[329]\tvalidation-rmse:6.46889 \n", "[330]\tvalidation-rmse:6.46882 \n", "[331]\tvalidation-rmse:6.46874 \n", "[332]\tvalidation-rmse:6.46865 \n", "[333]\tvalidation-rmse:6.46852 \n", "[334]\tvalidation-rmse:6.46836 \n", "[335]\tvalidation-rmse:6.46803 \n", "[336]\tvalidation-rmse:6.46790 \n", "[337]\tvalidation-rmse:6.46787 \n", "[338]\tvalidation-rmse:6.46772 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46759 \n", "[341]\tvalidation-rmse:6.46752 \n", "[342]\tvalidation-rmse:6.46742 \n", "[343]\tvalidation-rmse:6.46726 \n", "[344]\tvalidation-rmse:6.46713 \n", "[345]\tvalidation-rmse:6.46705 \n", "[346]\tvalidation-rmse:6.46688 \n", "[347]\tvalidation-rmse:6.46676 \n", "[348]\tvalidation-rmse:6.46667 \n", "[349]\tvalidation-rmse:6.46652 \n", "[350]\tvalidation-rmse:6.46642 \n", "[351]\tvalidation-rmse:6.46638 \n", "[352]\tvalidation-rmse:6.46624 \n", "[353]\tvalidation-rmse:6.46611 \n", "[354]\tvalidation-rmse:6.46604 \n", "[355]\tvalidation-rmse:6.46594 \n", "[356]\tvalidation-rmse:6.46594 \n", "[357]\tvalidation-rmse:6.46589 \n", "[358]\tvalidation-rmse:6.46585 \n", "[359]\tvalidation-rmse:6.46580 \n", "[360]\tvalidation-rmse:6.46569 \n", "[361]\tvalidation-rmse:6.46565 \n", "[362]\tvalidation-rmse:6.46557 \n", "[363]\tvalidation-rmse:6.46543 \n", "[364]\tvalidation-rmse:6.46524 \n", "[365]\tvalidation-rmse:6.46503 \n", "[366]\tvalidation-rmse:6.46491 \n", "[367]\tvalidation-rmse:6.46487 \n", "[368]\tvalidation-rmse:6.46480 \n", "[369]\tvalidation-rmse:6.46468 \n", "[370]\tvalidation-rmse:6.46457 \n", "[371]\tvalidation-rmse:6.46442 \n", "[372]\tvalidation-rmse:6.46434 \n", "[373]\tvalidation-rmse:6.46428 \n", "[374]\tvalidation-rmse:6.46422 \n", "[375]\tvalidation-rmse:6.46412 \n", "[376]\tvalidation-rmse:6.46402 \n", "[377]\tvalidation-rmse:6.46392 \n", "[378]\tvalidation-rmse:6.46373 \n", "[379]\tvalidation-rmse:6.46364 \n", "[380]\tvalidation-rmse:6.46350 \n", "[381]\tvalidation-rmse:6.46332 \n", "[382]\tvalidation-rmse:6.46329 \n", "[383]\tvalidation-rmse:6.46316 \n", "[384]\tvalidation-rmse:6.46303 \n", "[385]\tvalidation-rmse:6.46295 \n", "[386]\tvalidation-rmse:6.46279 \n", "[387]\tvalidation-rmse:6.46271 \n", "[388]\tvalidation-rmse:6.46265 \n", "[389]\tvalidation-rmse:6.46260 \n", "[390]\tvalidation-rmse:6.46254 \n", "[391]\tvalidation-rmse:6.46247 \n", "[392]\tvalidation-rmse:6.46239 \n", "[393]\tvalidation-rmse:6.46234 \n", "[394]\tvalidation-rmse:6.46224 \n", "[395]\tvalidation-rmse:6.46217 \n", "[396]\tvalidation-rmse:6.46193 \n", "[397]\tvalidation-rmse:6.46186 \n", "[398]\tvalidation-rmse:6.46179 \n", "[399]\tvalidation-rmse:6.46168 \n", "[400]\tvalidation-rmse:6.46160 \n", "[401]\tvalidation-rmse:6.46145 \n", "[402]\tvalidation-rmse:6.46129 \n", "[403]\tvalidation-rmse:6.46123 \n", "[404]\tvalidation-rmse:6.46127 \n", "[405]\tvalidation-rmse:6.46117 \n", "[406]\tvalidation-rmse:6.46119 \n", "[407]\tvalidation-rmse:6.46110 \n", "[408]\tvalidation-rmse:6.46102 \n", "[409]\tvalidation-rmse:6.46097 \n", "[410]\tvalidation-rmse:6.46080 \n", "[411]\tvalidation-rmse:6.46076 \n", "[412]\tvalidation-rmse:6.46070 \n", "[413]\tvalidation-rmse:6.46046 \n", "[414]\tvalidation-rmse:6.46039 \n", "[415]\tvalidation-rmse:6.46031 \n", "[416]\tvalidation-rmse:6.46027 \n", "[417]\tvalidation-rmse:6.46013 \n", "[418]\tvalidation-rmse:6.46007 \n", "[419]\tvalidation-rmse:6.46001 \n", "[420]\tvalidation-rmse:6.45993 \n", "[421]\tvalidation-rmse:6.45985 \n", "[422]\tvalidation-rmse:6.45971 \n", "[423]\tvalidation-rmse:6.45970 \n", "[424]\tvalidation-rmse:6.45961 \n", "[425]\tvalidation-rmse:6.45950 \n", "[426]\tvalidation-rmse:6.45946 \n", "[427]\tvalidation-rmse:6.45939 \n", "[428]\tvalidation-rmse:6.45940 \n", "[429]\tvalidation-rmse:6.45938 \n", "[430]\tvalidation-rmse:6.45931 \n", "[431]\tvalidation-rmse:6.45930 \n", "[432]\tvalidation-rmse:6.45931 \n", "[433]\tvalidation-rmse:6.45923 \n", "[434]\tvalidation-rmse:6.45914 \n", "[435]\tvalidation-rmse:6.45905 \n", "[436]\tvalidation-rmse:6.45895 \n", "[437]\tvalidation-rmse:6.45893 \n", "[438]\tvalidation-rmse:6.45874 \n", "[439]\tvalidation-rmse:6.45868 \n", "[440]\tvalidation-rmse:6.45859 \n", "[441]\tvalidation-rmse:6.45857 \n", "[442]\tvalidation-rmse:6.45838 \n", "[443]\tvalidation-rmse:6.45827 \n", "[444]\tvalidation-rmse:6.45808 \n", "[445]\tvalidation-rmse:6.45797 \n", "[446]\tvalidation-rmse:6.45793 \n", "[447]\tvalidation-rmse:6.45783 \n", "[448]\tvalidation-rmse:6.45778 \n", "[449]\tvalidation-rmse:6.45765 \n", "[450]\tvalidation-rmse:6.45754 \n", "[451]\tvalidation-rmse:6.45753 \n", "[452]\tvalidation-rmse:6.45742 \n", "[453]\tvalidation-rmse:6.45733 \n", "[454]\tvalidation-rmse:6.45719 \n", "[455]\tvalidation-rmse:6.45698 \n", "[456]\tvalidation-rmse:6.45694 \n", "[457]\tvalidation-rmse:6.45692 \n", "[458]\tvalidation-rmse:6.45681 \n", "[459]\tvalidation-rmse:6.45673 \n", "[460]\tvalidation-rmse:6.45667 \n", "[461]\tvalidation-rmse:6.45668 \n", "[462]\tvalidation-rmse:6.45664 \n", "[463]\tvalidation-rmse:6.45659 \n", "[464]\tvalidation-rmse:6.45661 \n", "[465]\tvalidation-rmse:6.45657 \n", "[466]\tvalidation-rmse:6.45642 \n", "[467]\tvalidation-rmse:6.45642 \n", "[468]\tvalidation-rmse:6.45645 \n", "[469]\tvalidation-rmse:6.45641 \n", "[470]\tvalidation-rmse:6.45631 \n", "[471]\tvalidation-rmse:6.45632 \n", "[472]\tvalidation-rmse:6.45625 \n", "[473]\tvalidation-rmse:6.45620 \n", "[474]\tvalidation-rmse:6.45619 \n", "[475]\tvalidation-rmse:6.45609 \n", "[476]\tvalidation-rmse:6.45610 \n", "[477]\tvalidation-rmse:6.45604 \n", "[478]\tvalidation-rmse:6.45585 \n", "[479]\tvalidation-rmse:6.45588 \n", "[480]\tvalidation-rmse:6.45575 \n", "[481]\tvalidation-rmse:6.45562 \n", "[482]\tvalidation-rmse:6.45549 \n", "[483]\tvalidation-rmse:6.45544 \n", "[484]\tvalidation-rmse:6.45542 \n", "[485]\tvalidation-rmse:6.45536 \n", "[486]\tvalidation-rmse:6.45535 \n", "[487]\tvalidation-rmse:6.45531 \n", "[488]\tvalidation-rmse:6.45523 \n", "[489]\tvalidation-rmse:6.45518 \n", "[490]\tvalidation-rmse:6.45510 \n", "[491]\tvalidation-rmse:6.45502 \n", "[492]\tvalidation-rmse:6.45492 \n", "[493]\tvalidation-rmse:6.45486 \n", "[494]\tvalidation-rmse:6.45482 \n", "[495]\tvalidation-rmse:6.45471 \n", "[496]\tvalidation-rmse:6.45465 \n", "[497]\tvalidation-rmse:6.45453 \n", "[498]\tvalidation-rmse:6.45445 \n", "[499]\tvalidation-rmse:6.45440 \n", "[500]\tvalidation-rmse:6.45438 \n", "[501]\tvalidation-rmse:6.45431 \n", "[502]\tvalidation-rmse:6.45418 \n", "[503]\tvalidation-rmse:6.45413 \n", "[504]\tvalidation-rmse:6.45417 \n", "[505]\tvalidation-rmse:6.45418 \n", "[506]\tvalidation-rmse:6.45409 \n", "[507]\tvalidation-rmse:6.45405 \n", "[508]\tvalidation-rmse:6.45404 \n", "[509]\tvalidation-rmse:6.45406 \n", "[510]\tvalidation-rmse:6.45400 \n", "[511]\tvalidation-rmse:6.45401 \n", "[512]\tvalidation-rmse:6.45400 \n", "[513]\tvalidation-rmse:6.45396 \n", "[514]\tvalidation-rmse:6.45391 \n", "[515]\tvalidation-rmse:6.45380 \n", "[516]\tvalidation-rmse:6.45382 \n", "[517]\tvalidation-rmse:6.45370 \n", "[518]\tvalidation-rmse:6.45364 \n", "[519]\tvalidation-rmse:6.45354 \n", "[520]\tvalidation-rmse:6.45349 \n", "[521]\tvalidation-rmse:6.45335 \n", "[522]\tvalidation-rmse:6.45321 \n", "[523]\tvalidation-rmse:6.45310 \n", "[524]\tvalidation-rmse:6.45293 \n", "[525]\tvalidation-rmse:6.45288 \n", "[526]\tvalidation-rmse:6.45262 \n", "[527]\tvalidation-rmse:6.45251 \n", "[528]\tvalidation-rmse:6.45244 \n", "[529]\tvalidation-rmse:6.45242 \n", "[530]\tvalidation-rmse:6.45236 \n", "[531]\tvalidation-rmse:6.45226 \n", "[532]\tvalidation-rmse:6.45222 \n", "[533]\tvalidation-rmse:6.45222 \n", "[534]\tvalidation-rmse:6.45202 \n", "[535]\tvalidation-rmse:6.45209 \n", "[536]\tvalidation-rmse:6.45208 \n", "[537]\tvalidation-rmse:6.45205 \n", "[538]\tvalidation-rmse:6.45196 \n", "[539]\tvalidation-rmse:6.45191 \n", "[540]\tvalidation-rmse:6.45168 \n", "[541]\tvalidation-rmse:6.45168 \n", "[542]\tvalidation-rmse:6.45162 \n", "[543]\tvalidation-rmse:6.45158 \n", "[544]\tvalidation-rmse:6.45155 \n", "[545]\tvalidation-rmse:6.45152 \n", "[546]\tvalidation-rmse:6.45147 \n", "[547]\tvalidation-rmse:6.45145 \n", "[548]\tvalidation-rmse:6.45141 \n", "[549]\tvalidation-rmse:6.45139 \n", "[550]\tvalidation-rmse:6.45138 \n", "[551]\tvalidation-rmse:6.45129 \n", "[552]\tvalidation-rmse:6.45112 \n", "[553]\tvalidation-rmse:6.45109 \n", "[554]\tvalidation-rmse:6.45101 \n", "[555]\tvalidation-rmse:6.45093 \n", "[556]\tvalidation-rmse:6.45093 \n", "[557]\tvalidation-rmse:6.45080 \n", "[558]\tvalidation-rmse:6.45082 \n", "[559]\tvalidation-rmse:6.45075 \n", "[560]\tvalidation-rmse:6.45065 \n", "[561]\tvalidation-rmse:6.45040 \n", "[562]\tvalidation-rmse:6.45035 \n", "[563]\tvalidation-rmse:6.45041 \n", "[564]\tvalidation-rmse:6.45039 \n", "[565]\tvalidation-rmse:6.45029 \n", "[566]\tvalidation-rmse:6.45024 \n", "[567]\tvalidation-rmse:6.45009 \n", "[568]\tvalidation-rmse:6.45004 \n", "[569]\tvalidation-rmse:6.44982 \n", "[570]\tvalidation-rmse:6.44981 \n", "[571]\tvalidation-rmse:6.44971 \n", "[572]\tvalidation-rmse:6.44968 \n", "[573]\tvalidation-rmse:6.44969 \n", "[574]\tvalidation-rmse:6.44956 \n", "[575]\tvalidation-rmse:6.44955 \n", "[576]\tvalidation-rmse:6.44949 \n", "[577]\tvalidation-rmse:6.44941 \n", "[578]\tvalidation-rmse:6.44933 \n", "[579]\tvalidation-rmse:6.44930 \n", "[580]\tvalidation-rmse:6.44924 \n", "[581]\tvalidation-rmse:6.44920 \n", "[582]\tvalidation-rmse:6.44929 \n", "[583]\tvalidation-rmse:6.44926 \n", "[584]\tvalidation-rmse:6.44922 \n", "[585]\tvalidation-rmse:6.44918 \n", "[586]\tvalidation-rmse:6.44922 \n", "[587]\tvalidation-rmse:6.44921 \n", "[588]\tvalidation-rmse:6.44920 \n", "[589]\tvalidation-rmse:6.44909 \n", "[590]\tvalidation-rmse:6.44905 \n", "[591]\tvalidation-rmse:6.44904 \n", "[592]\tvalidation-rmse:6.44900 \n", "[593]\tvalidation-rmse:6.44894 \n", "[594]\tvalidation-rmse:6.44889 \n", "[595]\tvalidation-rmse:6.44881 \n", "[596]\tvalidation-rmse:6.44880 \n", "[597]\tvalidation-rmse:6.44877 \n", "[598]\tvalidation-rmse:6.44877 \n", "[599]\tvalidation-rmse:6.44877 \n", "[600]\tvalidation-rmse:6.44874 \n", "[601]\tvalidation-rmse:6.44870 \n", "[602]\tvalidation-rmse:6.44871 \n", "[603]\tvalidation-rmse:6.44856 \n", "[604]\tvalidation-rmse:6.44855 \n", "[605]\tvalidation-rmse:6.44855 \n", "[606]\tvalidation-rmse:6.44855 \n", "[607]\tvalidation-rmse:6.44844 \n", "[608]\tvalidation-rmse:6.44839 \n", "[609]\tvalidation-rmse:6.44841 \n", "[610]\tvalidation-rmse:6.44828 \n", "[611]\tvalidation-rmse:6.44818 \n", "[612]\tvalidation-rmse:6.44815 \n", "[613]\tvalidation-rmse:6.44818 \n", "[614]\tvalidation-rmse:6.44822 \n", "[615]\tvalidation-rmse:6.44822 \n", "[616]\tvalidation-rmse:6.44826 \n", "[617]\tvalidation-rmse:6.44822 \n", "[618]\tvalidation-rmse:6.44817 \n", "[619]\tvalidation-rmse:6.44809 \n", "[620]\tvalidation-rmse:6.44795 \n", "[621]\tvalidation-rmse:6.44787 \n", "[622]\tvalidation-rmse:6.44776 \n", "[623]\tvalidation-rmse:6.44767 \n", "[624]\tvalidation-rmse:6.44767 \n", "[625]\tvalidation-rmse:6.44771 \n", "[626]\tvalidation-rmse:6.44772 \n", "[627]\tvalidation-rmse:6.44776 \n", "[628]\tvalidation-rmse:6.44779 \n", "[629]\tvalidation-rmse:6.44775 \n", "[630]\tvalidation-rmse:6.44772 \n", "[631]\tvalidation-rmse:6.44761 \n", "[632]\tvalidation-rmse:6.44758 \n", "[633]\tvalidation-rmse:6.44759 \n", "[634]\tvalidation-rmse:6.44759 \n", "[635]\tvalidation-rmse:6.44754 \n", "[636]\tvalidation-rmse:6.44749 \n", "[637]\tvalidation-rmse:6.44740 \n", "[638]\tvalidation-rmse:6.44741 \n", "[639]\tvalidation-rmse:6.44740 \n", "[640]\tvalidation-rmse:6.44742 \n", "[641]\tvalidation-rmse:6.44747 \n", "[642]\tvalidation-rmse:6.44743 \n", "[643]\tvalidation-rmse:6.44738 \n", "[644]\tvalidation-rmse:6.44732 \n", "[645]\tvalidation-rmse:6.44729 \n", "[646]\tvalidation-rmse:6.44727 \n", "[647]\tvalidation-rmse:6.44729 \n", "[648]\tvalidation-rmse:6.44727 \n", "[649]\tvalidation-rmse:6.44727 \n", "[650]\tvalidation-rmse:6.44723 \n", "[651]\tvalidation-rmse:6.44719 \n", "[652]\tvalidation-rmse:6.44713 \n", "[653]\tvalidation-rmse:6.44709 \n", "[654]\tvalidation-rmse:6.44705 \n", "[655]\tvalidation-rmse:6.44699 \n", "[656]\tvalidation-rmse:6.44696 \n", "[657]\tvalidation-rmse:6.44684 \n", "[658]\tvalidation-rmse:6.44678 \n", "[659]\tvalidation-rmse:6.44675 \n", "[660]\tvalidation-rmse:6.44677 \n", "[661]\tvalidation-rmse:6.44670 \n", "[662]\tvalidation-rmse:6.44674 \n", "[663]\tvalidation-rmse:6.44675 \n", "[664]\tvalidation-rmse:6.44673 \n", "[665]\tvalidation-rmse:6.44668 \n", "[666]\tvalidation-rmse:6.44657 \n", "[667]\tvalidation-rmse:6.44650 \n", "[668]\tvalidation-rmse:6.44645 \n", "[669]\tvalidation-rmse:6.44632 \n", "[670]\tvalidation-rmse:6.44625 \n", "[671]\tvalidation-rmse:6.44621 \n", "[672]\tvalidation-rmse:6.44616 \n", "[673]\tvalidation-rmse:6.44607 \n", "[674]\tvalidation-rmse:6.44597 \n", "[675]\tvalidation-rmse:6.44593 \n", "[676]\tvalidation-rmse:6.44587 \n", "[677]\tvalidation-rmse:6.44572 \n", "[678]\tvalidation-rmse:6.44568 \n", "[679]\tvalidation-rmse:6.44570 \n", "[680]\tvalidation-rmse:6.44576 \n", "[681]\tvalidation-rmse:6.44583 \n", "[682]\tvalidation-rmse:6.44579 \n", "[683]\tvalidation-rmse:6.44577 \n", "[684]\tvalidation-rmse:6.44580 \n", "[685]\tvalidation-rmse:6.44580 \n", "[686]\tvalidation-rmse:6.44578 \n", "[687]\tvalidation-rmse:6.44571 \n", "[688]\tvalidation-rmse:6.44568 \n", "[689]\tvalidation-rmse:6.44560 \n", "[690]\tvalidation-rmse:6.44560 \n", "[691]\tvalidation-rmse:6.44550 \n", "[692]\tvalidation-rmse:6.44551 \n", "[693]\tvalidation-rmse:6.44550 \n", "[694]\tvalidation-rmse:6.44541 \n", "[695]\tvalidation-rmse:6.44545 \n", "[696]\tvalidation-rmse:6.44542 \n", "[697]\tvalidation-rmse:6.44538 \n", "[698]\tvalidation-rmse:6.44532 \n", "[699]\tvalidation-rmse:6.44529 \n", "[700]\tvalidation-rmse:6.44531 \n", "[701]\tvalidation-rmse:6.44526 \n", "[702]\tvalidation-rmse:6.44523 \n", "[703]\tvalidation-rmse:6.44516 \n", "[704]\tvalidation-rmse:6.44521 \n", "[705]\tvalidation-rmse:6.44521 \n", "[706]\tvalidation-rmse:6.44513 \n", "[707]\tvalidation-rmse:6.44511 \n", "[708]\tvalidation-rmse:6.44507 \n", "[709]\tvalidation-rmse:6.44502 \n", "[710]\tvalidation-rmse:6.44496 \n", "[711]\tvalidation-rmse:6.44492 \n", "[712]\tvalidation-rmse:6.44481 \n", "[713]\tvalidation-rmse:6.44489 \n", "[714]\tvalidation-rmse:6.44489 \n", "[715]\tvalidation-rmse:6.44490 \n", "[716]\tvalidation-rmse:6.44491 \n", "[717]\tvalidation-rmse:6.44490 \n", "[718]\tvalidation-rmse:6.44480 \n", "[719]\tvalidation-rmse:6.44472 \n", "[720]\tvalidation-rmse:6.44468 \n", "[721]\tvalidation-rmse:6.44465 \n", "[722]\tvalidation-rmse:6.44466 \n", "[723]\tvalidation-rmse:6.44463 \n", "[724]\tvalidation-rmse:6.44462 \n", "[725]\tvalidation-rmse:6.44465 \n", "[726]\tvalidation-rmse:6.44461 \n", "[727]\tvalidation-rmse:6.44459 \n", "[728]\tvalidation-rmse:6.44457 \n", "[729]\tvalidation-rmse:6.44453 \n", "[730]\tvalidation-rmse:6.44441 \n", "[731]\tvalidation-rmse:6.44433 \n", "[732]\tvalidation-rmse:6.44437 \n", "[733]\tvalidation-rmse:6.44435 \n", "[734]\tvalidation-rmse:6.44454 \n", "[735]\tvalidation-rmse:6.44457 \n", "[736]\tvalidation-rmse:6.44459 \n", "[737]\tvalidation-rmse:6.44461 \n", "[738]\tvalidation-rmse:6.44454 \n", "[739]\tvalidation-rmse:6.44455 \n", "[740]\tvalidation-rmse:6.44451 \n", "[741]\tvalidation-rmse:6.44453 \n", "[742]\tvalidation-rmse:6.44451 \n", "[743]\tvalidation-rmse:6.44435 \n", "[744]\tvalidation-rmse:6.44432 \n", "[745]\tvalidation-rmse:6.44433 \n", "[746]\tvalidation-rmse:6.44432 \n", "[747]\tvalidation-rmse:6.44428 \n", "[748]\tvalidation-rmse:6.44430 \n", "[749]\tvalidation-rmse:6.44428 \n", "[750]\tvalidation-rmse:6.44423 \n", "[751]\tvalidation-rmse:6.44431 \n", "[752]\tvalidation-rmse:6.44438 \n", "[753]\tvalidation-rmse:6.44440 \n", "[754]\tvalidation-rmse:6.44425 \n", "[755]\tvalidation-rmse:6.44424 \n", "[756]\tvalidation-rmse:6.44427 \n", "[757]\tvalidation-rmse:6.44426 \n", "[758]\tvalidation-rmse:6.44425 \n", "[759]\tvalidation-rmse:6.44422 \n", "[760]\tvalidation-rmse:6.44421 \n", "[761]\tvalidation-rmse:6.44419 \n", "[762]\tvalidation-rmse:6.44410 \n", "[763]\tvalidation-rmse:6.44410 \n", "[764]\tvalidation-rmse:6.44409 \n", "[765]\tvalidation-rmse:6.44410 \n", "[766]\tvalidation-rmse:6.44403 \n", "[767]\tvalidation-rmse:6.44401 \n", "[768]\tvalidation-rmse:6.44397 \n", "[769]\tvalidation-rmse:6.44390 \n", "[770]\tvalidation-rmse:6.44387 \n", "[771]\tvalidation-rmse:6.44381 \n", "[772]\tvalidation-rmse:6.44376 \n", "[773]\tvalidation-rmse:6.44372 \n", "[774]\tvalidation-rmse:6.44373 \n", "[775]\tvalidation-rmse:6.44371 \n", "[776]\tvalidation-rmse:6.44366 \n", "[777]\tvalidation-rmse:6.44364 \n", "[778]\tvalidation-rmse:6.44367 \n", "[779]\tvalidation-rmse:6.44367 \n", "[780]\tvalidation-rmse:6.44367 \n", "[781]\tvalidation-rmse:6.44370 \n", "[782]\tvalidation-rmse:6.44361 \n", "[783]\tvalidation-rmse:6.44357 \n", "[784]\tvalidation-rmse:6.44352 \n", "[785]\tvalidation-rmse:6.44347 \n", "[786]\tvalidation-rmse:6.44333 \n", "[787]\tvalidation-rmse:6.44336 \n", "[788]\tvalidation-rmse:6.44334 \n", "[789]\tvalidation-rmse:6.44332 \n", "[790]\tvalidation-rmse:6.44333 \n", "[791]\tvalidation-rmse:6.44328 \n", "[792]\tvalidation-rmse:6.44328 \n", "[793]\tvalidation-rmse:6.44323 \n", "[794]\tvalidation-rmse:6.44316 \n", "[795]\tvalidation-rmse:6.44320 \n", "[796]\tvalidation-rmse:6.44310 \n", "[797]\tvalidation-rmse:6.44306 \n", "[798]\tvalidation-rmse:6.44303 \n", "[799]\tvalidation-rmse:6.44300 \n", "[800]\tvalidation-rmse:6.44295 \n", "[801]\tvalidation-rmse:6.44301 \n", "[802]\tvalidation-rmse:6.44299 \n", "[803]\tvalidation-rmse:6.44297 \n", "[804]\tvalidation-rmse:6.44292 \n", "[805]\tvalidation-rmse:6.44291 \n", "[806]\tvalidation-rmse:6.44293 \n", "[807]\tvalidation-rmse:6.44286 \n", "[808]\tvalidation-rmse:6.44273 \n", "[809]\tvalidation-rmse:6.44278 \n", "[810]\tvalidation-rmse:6.44275 \n", "[811]\tvalidation-rmse:6.44266 \n", "[812]\tvalidation-rmse:6.44271 \n", "[813]\tvalidation-rmse:6.44274 \n", "[814]\tvalidation-rmse:6.44274 \n", "[815]\tvalidation-rmse:6.44271 \n", "[816]\tvalidation-rmse:6.44265 \n", "[817]\tvalidation-rmse:6.44263 \n", "[818]\tvalidation-rmse:6.44261 \n", "[819]\tvalidation-rmse:6.44262 \n", "[820]\tvalidation-rmse:6.44257 \n", "[821]\tvalidation-rmse:6.44257 \n", "[822]\tvalidation-rmse:6.44250 \n", "[823]\tvalidation-rmse:6.44254 \n", "[824]\tvalidation-rmse:6.44251 \n", "[825]\tvalidation-rmse:6.44257 \n", "[826]\tvalidation-rmse:6.44261 \n", "[827]\tvalidation-rmse:6.44257 \n", "[828]\tvalidation-rmse:6.44259 \n", "[829]\tvalidation-rmse:6.44255 \n", "[830]\tvalidation-rmse:6.44260 \n", "[831]\tvalidation-rmse:6.44251 \n", "[832]\tvalidation-rmse:6.44248 \n", "[833]\tvalidation-rmse:6.44249 \n", "[834]\tvalidation-rmse:6.44236 \n", "[835]\tvalidation-rmse:6.44237 \n", "[836]\tvalidation-rmse:6.44233 \n", "[837]\tvalidation-rmse:6.44231 \n", "[838]\tvalidation-rmse:6.44214 \n", "[839]\tvalidation-rmse:6.44216 \n", "[840]\tvalidation-rmse:6.44219 \n", "[841]\tvalidation-rmse:6.44215 \n", "[842]\tvalidation-rmse:6.44214 \n", "[843]\tvalidation-rmse:6.44198 \n", "[844]\tvalidation-rmse:6.44197 \n", "[845]\tvalidation-rmse:6.44197 \n", "[846]\tvalidation-rmse:6.44193 \n", "[847]\tvalidation-rmse:6.44180 \n", "[848]\tvalidation-rmse:6.44178 \n", "[849]\tvalidation-rmse:6.44183 \n", "[850]\tvalidation-rmse:6.44182 \n", "[851]\tvalidation-rmse:6.44182 \n", "[852]\tvalidation-rmse:6.44182 \n", "[853]\tvalidation-rmse:6.44183 \n", "[854]\tvalidation-rmse:6.44189 \n", "[855]\tvalidation-rmse:6.44190 \n", "[856]\tvalidation-rmse:6.44193 \n", "[857]\tvalidation-rmse:6.44189 \n", "[858]\tvalidation-rmse:6.44187 \n", "[859]\tvalidation-rmse:6.44183 \n", "[860]\tvalidation-rmse:6.44165 \n", "[861]\tvalidation-rmse:6.44161 \n", "[862]\tvalidation-rmse:6.44154 \n", "[863]\tvalidation-rmse:6.44147 \n", "[864]\tvalidation-rmse:6.44160 \n", "[865]\tvalidation-rmse:6.44163 \n", "[866]\tvalidation-rmse:6.44162 \n", "[867]\tvalidation-rmse:6.44154 \n", "[868]\tvalidation-rmse:6.44156 \n", "[869]\tvalidation-rmse:6.44174 \n", "[870]\tvalidation-rmse:6.44185 \n", "[871]\tvalidation-rmse:6.44185 \n", "[872]\tvalidation-rmse:6.44189 \n", "[873]\tvalidation-rmse:6.44188 \n", "[874]\tvalidation-rmse:6.44183 \n", "[875]\tvalidation-rmse:6.44182 \n", "[876]\tvalidation-rmse:6.44181 \n", "[877]\tvalidation-rmse:6.44172 \n", "[878]\tvalidation-rmse:6.44170 \n", "[879]\tvalidation-rmse:6.44167 \n", "[880]\tvalidation-rmse:6.44166 \n", "[881]\tvalidation-rmse:6.44162 \n", "[882]\tvalidation-rmse:6.44160 \n", "[883]\tvalidation-rmse:6.44160 \n", "[884]\tvalidation-rmse:6.44155 \n", "[885]\tvalidation-rmse:6.44148 \n", "[886]\tvalidation-rmse:6.44146 \n", "[887]\tvalidation-rmse:6.44146 \n", "[888]\tvalidation-rmse:6.44143 \n", "[889]\tvalidation-rmse:6.44133 \n", "[890]\tvalidation-rmse:6.44124 \n", "[891]\tvalidation-rmse:6.44121 \n", "[892]\tvalidation-rmse:6.44120 \n", "[893]\tvalidation-rmse:6.44117 \n", "[894]\tvalidation-rmse:6.44116 \n", "[895]\tvalidation-rmse:6.44115 \n", "[896]\tvalidation-rmse:6.44100 \n", "[897]\tvalidation-rmse:6.44098 \n", "[898]\tvalidation-rmse:6.44097 \n", "[899]\tvalidation-rmse:6.44097 \n", "[900]\tvalidation-rmse:6.44094 \n", "[901]\tvalidation-rmse:6.44087 \n", "[902]\tvalidation-rmse:6.44096 \n", "[903]\tvalidation-rmse:6.44121 \n", "[904]\tvalidation-rmse:6.44151 \n", "[905]\tvalidation-rmse:6.44178 \n", "[906]\tvalidation-rmse:6.44179 \n", "[907]\tvalidation-rmse:6.44190 \n", "[908]\tvalidation-rmse:6.44191 \n", "[909]\tvalidation-rmse:6.44190 \n", "[910]\tvalidation-rmse:6.44201 \n", "[911]\tvalidation-rmse:6.44198 \n", "[912]\tvalidation-rmse:6.44201 \n", "[913]\tvalidation-rmse:6.44197 \n", "[914]\tvalidation-rmse:6.44193 \n", "[915]\tvalidation-rmse:6.44186 \n", "[916]\tvalidation-rmse:6.44180 \n", "[917]\tvalidation-rmse:6.44171 \n", "[918]\tvalidation-rmse:6.44170 \n", "[919]\tvalidation-rmse:6.44164 \n", "[920]\tvalidation-rmse:6.44165 \n", "[921]\tvalidation-rmse:6.44163 \n", "[922]\tvalidation-rmse:6.44169 \n", "[923]\tvalidation-rmse:6.44164 \n", "[924]\tvalidation-rmse:6.44160 \n", "[925]\tvalidation-rmse:6.44158 \n", "[926]\tvalidation-rmse:6.44155 \n", "[927]\tvalidation-rmse:6.44152 \n", "[928]\tvalidation-rmse:6.44143 \n", "[929]\tvalidation-rmse:6.44140 \n", "[930]\tvalidation-rmse:6.44141 \n", "[931]\tvalidation-rmse:6.44143 \n", "[932]\tvalidation-rmse:6.44145 \n", "[933]\tvalidation-rmse:6.44140 \n", "[934]\tvalidation-rmse:6.44140 \n", "[935]\tvalidation-rmse:6.44136 \n", "[936]\tvalidation-rmse:6.44142 \n", "[937]\tvalidation-rmse:6.44139 \n", "[938]\tvalidation-rmse:6.44136 \n", "[939]\tvalidation-rmse:6.44129 \n", "[940]\tvalidation-rmse:6.44130 \n", "[941]\tvalidation-rmse:6.44123 \n", "[942]\tvalidation-rmse:6.44123 \n", "[943]\tvalidation-rmse:6.44115 \n", "[944]\tvalidation-rmse:6.44119 \n", "[945]\tvalidation-rmse:6.44120 \n", "[946]\tvalidation-rmse:6.44122 \n", "[947]\tvalidation-rmse:6.44117 \n", "[948]\tvalidation-rmse:6.44123 \n", "[949]\tvalidation-rmse:6.44122 \n", "[950]\tvalidation-rmse:6.44122 \n", "[951]\tvalidation-rmse:6.44124 \n", "[12:46:29] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:11.01936 \n", "[1]\tvalidation-rmse:7.85375 \n", "[2]\tvalidation-rmse:6.98308 \n", "[3]\tvalidation-rmse:6.71768 \n", "[4]\tvalidation-rmse:6.62596 \n", "[5]\tvalidation-rmse:6.58734 \n", "[6]\tvalidation-rmse:6.57090 \n", "[7]\tvalidation-rmse:6.56007 \n", "[8]\tvalidation-rmse:6.55186 \n", "[9]\tvalidation-rmse:6.54650 \n", "[10]\tvalidation-rmse:6.54225 \n", "[11]\tvalidation-rmse:6.53798 \n", "[12]\tvalidation-rmse:6.54011 \n", "[13]\tvalidation-rmse:6.53474 \n", "[14]\tvalidation-rmse:6.53172 \n", "[15]\tvalidation-rmse:6.52646 \n", "[16]\tvalidation-rmse:6.52439 \n", "[17]\tvalidation-rmse:6.52059 \n", "[18]\tvalidation-rmse:6.51834 \n", "[19]\tvalidation-rmse:6.51896 \n", "[20]\tvalidation-rmse:6.51959 \n", "[21]\tvalidation-rmse:6.51853 \n", "[22]\tvalidation-rmse:6.51442 \n", "[23]\tvalidation-rmse:6.51193 \n", "[24]\tvalidation-rmse:6.50966 \n", "[25]\tvalidation-rmse:6.50688 \n", "[26]\tvalidation-rmse:6.50601 \n", "[27]\tvalidation-rmse:6.50088 \n", "[28]\tvalidation-rmse:6.49820 \n", "[29]\tvalidation-rmse:6.49671 \n", "[30]\tvalidation-rmse:6.49527 \n", "[31]\tvalidation-rmse:6.49074 \n", "[32]\tvalidation-rmse:6.48881 \n", "[33]\tvalidation-rmse:6.48677 \n", "[34]\tvalidation-rmse:6.48365 \n", "[35]\tvalidation-rmse:6.48278 \n", "[36]\tvalidation-rmse:6.48161 \n", "[37]\tvalidation-rmse:6.48015 \n", "[38]\tvalidation-rmse:6.47940 \n", "[39]\tvalidation-rmse:6.47747 \n", "[40]\tvalidation-rmse:6.47542 \n", "[41]\tvalidation-rmse:6.47413 \n", "[42]\tvalidation-rmse:6.47472 \n", "[43]\tvalidation-rmse:6.47192 \n", "[44]\tvalidation-rmse:6.47390 \n", "[45]\tvalidation-rmse:6.47423 \n", "[46]\tvalidation-rmse:6.47237 \n", "[47]\tvalidation-rmse:6.47198 \n", "[48]\tvalidation-rmse:6.47095 \n", "[49]\tvalidation-rmse:6.46934 \n", "[50]\tvalidation-rmse:6.46811 \n", "[51]\tvalidation-rmse:6.46955 \n", "[52]\tvalidation-rmse:6.46967 \n", "[53]\tvalidation-rmse:6.46713 \n", "[54]\tvalidation-rmse:6.46502 \n", "[55]\tvalidation-rmse:6.46374 \n", "[56]\tvalidation-rmse:6.46514 \n", "[57]\tvalidation-rmse:6.46389 \n", "[58]\tvalidation-rmse:6.46451 \n", "[59]\tvalidation-rmse:6.46484 \n", "[60]\tvalidation-rmse:6.46480 \n", "[61]\tvalidation-rmse:6.46369 \n", "[62]\tvalidation-rmse:6.46289 \n", "[63]\tvalidation-rmse:6.46469 \n", "[64]\tvalidation-rmse:6.46370 \n", "[65]\tvalidation-rmse:6.46268 \n", "[66]\tvalidation-rmse:6.46346 \n", "[67]\tvalidation-rmse:6.46261 \n", "[68]\tvalidation-rmse:6.46258 \n", "[69]\tvalidation-rmse:6.46212 \n", "[70]\tvalidation-rmse:6.46296 \n", "[71]\tvalidation-rmse:6.46447 \n", "[72]\tvalidation-rmse:6.46544 \n", "[73]\tvalidation-rmse:6.46538 \n", "[74]\tvalidation-rmse:6.46450 \n", "[75]\tvalidation-rmse:6.46404 \n", "[76]\tvalidation-rmse:6.46388 \n", "[77]\tvalidation-rmse:6.46428 \n", "[78]\tvalidation-rmse:6.46494 \n", "[79]\tvalidation-rmse:6.46426 \n", "[80]\tvalidation-rmse:6.46490 \n", "[81]\tvalidation-rmse:6.46594 \n", "[82]\tvalidation-rmse:6.46655 \n", "[83]\tvalidation-rmse:6.46640 \n", "[84]\tvalidation-rmse:6.46847 \n", "[85]\tvalidation-rmse:6.47315 \n", "[86]\tvalidation-rmse:6.47027 \n", "[87]\tvalidation-rmse:6.47055 \n", "[88]\tvalidation-rmse:6.47001 \n", "[89]\tvalidation-rmse:6.47013 \n", "[90]\tvalidation-rmse:6.47069 \n", "[91]\tvalidation-rmse:6.47058 \n", "[92]\tvalidation-rmse:6.47060 \n", "[93]\tvalidation-rmse:6.47113 \n", "[94]\tvalidation-rmse:6.47111 \n", "[95]\tvalidation-rmse:6.47101 \n", "[96]\tvalidation-rmse:6.47255 \n", "[97]\tvalidation-rmse:6.47275 \n", "[98]\tvalidation-rmse:6.47378 \n", "[99]\tvalidation-rmse:6.47446 \n", "[100]\tvalidation-rmse:6.47642 \n", "[101]\tvalidation-rmse:6.47674 \n", "[102]\tvalidation-rmse:6.47519 \n", "[103]\tvalidation-rmse:6.47431 \n", "[104]\tvalidation-rmse:6.47395 \n", "[105]\tvalidation-rmse:6.47683 \n", "[106]\tvalidation-rmse:6.47743 \n", "[107]\tvalidation-rmse:6.47833 \n", "[108]\tvalidation-rmse:6.47867 \n", "[109]\tvalidation-rmse:6.47908 \n", "[110]\tvalidation-rmse:6.47965 \n", "[111]\tvalidation-rmse:6.48030 \n", "[112]\tvalidation-rmse:6.47999 \n", "[113]\tvalidation-rmse:6.48005 \n", "[114]\tvalidation-rmse:6.47975 \n", "[115]\tvalidation-rmse:6.47971 \n", "[116]\tvalidation-rmse:6.48081 \n", "[117]\tvalidation-rmse:6.48051 \n", "[118]\tvalidation-rmse:6.48054 \n", "[12:46:54] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.02404 \n", "[1]\tvalidation-rmse:18.93941 \n", "[2]\tvalidation-rmse:17.93192 \n", "[3]\tvalidation-rmse:16.99863 \n", "[4]\tvalidation-rmse:16.13336 \n", "[5]\tvalidation-rmse:15.33284 \n", "[6]\tvalidation-rmse:14.59177 \n", "[7]\tvalidation-rmse:13.90754 \n", "[8]\tvalidation-rmse:13.27680 \n", "[9]\tvalidation-rmse:12.69652 \n", "[10]\tvalidation-rmse:12.16204 \n", "[11]\tvalidation-rmse:11.66889 \n", "[12]\tvalidation-rmse:11.21597 \n", "[13]\tvalidation-rmse:10.80118 \n", "[14]\tvalidation-rmse:10.42078 \n", "[15]\tvalidation-rmse:10.07307 \n", "[16]\tvalidation-rmse:9.75427 \n", "[17]\tvalidation-rmse:9.46394 \n", "[18]\tvalidation-rmse:9.19898 \n", "[19]\tvalidation-rmse:8.95728 \n", "[20]\tvalidation-rmse:8.73820 \n", "[21]\tvalidation-rmse:8.53869 \n", "[22]\tvalidation-rmse:8.35675 \n", "[23]\tvalidation-rmse:8.19146 \n", "[24]\tvalidation-rmse:8.04182 \n", "[25]\tvalidation-rmse:7.90477 \n", "[26]\tvalidation-rmse:7.78090 \n", "[27]\tvalidation-rmse:7.66832 \n", "[28]\tvalidation-rmse:7.56665 \n", "[29]\tvalidation-rmse:7.47554 \n", "[30]\tvalidation-rmse:7.39255 \n", "[31]\tvalidation-rmse:7.31661 \n", "[32]\tvalidation-rmse:7.24828 \n", "[33]\tvalidation-rmse:7.18584 \n", "[34]\tvalidation-rmse:7.13044 \n", "[35]\tvalidation-rmse:7.07808 \n", "[36]\tvalidation-rmse:7.03137 \n", "[37]\tvalidation-rmse:6.98827 \n", "[38]\tvalidation-rmse:6.94832 \n", "[39]\tvalidation-rmse:6.91265 \n", "[40]\tvalidation-rmse:6.88081 \n", "[41]\tvalidation-rmse:6.85111 \n", "[42]\tvalidation-rmse:6.82402 \n", "[43]\tvalidation-rmse:6.79974 \n", "[44]\tvalidation-rmse:6.77698 \n", "[45]\tvalidation-rmse:6.75574 \n", "[46]\tvalidation-rmse:6.73603 \n", "[47]\tvalidation-rmse:6.71780 \n", "[48]\tvalidation-rmse:6.70136 \n", "[49]\tvalidation-rmse:6.68564 \n", "[50]\tvalidation-rmse:6.67056 \n", "[51]\tvalidation-rmse:6.65768 \n", "[52]\tvalidation-rmse:6.64561 \n", "[53]\tvalidation-rmse:6.63454 \n", "[54]\tvalidation-rmse:6.62449 \n", "[55]\tvalidation-rmse:6.61471 \n", "[56]\tvalidation-rmse:6.60561 \n", "[57]\tvalidation-rmse:6.59717 \n", "[58]\tvalidation-rmse:6.58930 \n", "[59]\tvalidation-rmse:6.58199 \n", "[60]\tvalidation-rmse:6.57524 \n", "[61]\tvalidation-rmse:6.56924 \n", "[62]\tvalidation-rmse:6.56281 \n", "[63]\tvalidation-rmse:6.55719 \n", "[64]\tvalidation-rmse:6.55181 \n", "[65]\tvalidation-rmse:6.54716 \n", "[66]\tvalidation-rmse:6.54306 \n", "[67]\tvalidation-rmse:6.53865 \n", "[68]\tvalidation-rmse:6.53502 \n", "[69]\tvalidation-rmse:6.53160 \n", "[70]\tvalidation-rmse:6.52826 \n", "[71]\tvalidation-rmse:6.52535 \n", "[72]\tvalidation-rmse:6.52264 \n", "[73]\tvalidation-rmse:6.51965 \n", "[74]\tvalidation-rmse:6.51740 \n", "[75]\tvalidation-rmse:6.51539 \n", "[76]\tvalidation-rmse:6.51337 \n", "[77]\tvalidation-rmse:6.51150 \n", "[78]\tvalidation-rmse:6.50952 \n", "[79]\tvalidation-rmse:6.50760 \n", "[80]\tvalidation-rmse:6.50608 \n", "[81]\tvalidation-rmse:6.50455 \n", "[82]\tvalidation-rmse:6.50313 \n", "[83]\tvalidation-rmse:6.50146 \n", "[84]\tvalidation-rmse:6.50021 \n", "[85]\tvalidation-rmse:6.49906 \n", "[86]\tvalidation-rmse:6.49782 \n", "[87]\tvalidation-rmse:6.49650 \n", "[88]\tvalidation-rmse:6.49548 \n", "[89]\tvalidation-rmse:6.49432 \n", "[90]\tvalidation-rmse:6.49333 \n", "[91]\tvalidation-rmse:6.49242 \n", "[92]\tvalidation-rmse:6.49139 \n", "[93]\tvalidation-rmse:6.49046 \n", "[94]\tvalidation-rmse:6.48977 \n", "[95]\tvalidation-rmse:6.48908 \n", "[96]\tvalidation-rmse:6.48822 \n", "[97]\tvalidation-rmse:6.48758 \n", "[98]\tvalidation-rmse:6.48661 \n", "[99]\tvalidation-rmse:6.48575 \n", "[100]\tvalidation-rmse:6.48497 \n", "[101]\tvalidation-rmse:6.48439 \n", "[102]\tvalidation-rmse:6.48362 \n", "[103]\tvalidation-rmse:6.48290 \n", "[104]\tvalidation-rmse:6.48226 \n", "[105]\tvalidation-rmse:6.48170 \n", "[106]\tvalidation-rmse:6.48104 \n", "[107]\tvalidation-rmse:6.48039 \n", "[108]\tvalidation-rmse:6.47998 \n", "[109]\tvalidation-rmse:6.47957 \n", "[110]\tvalidation-rmse:6.47898 \n", "[111]\tvalidation-rmse:6.47807 \n", "[112]\tvalidation-rmse:6.47738 \n", "[113]\tvalidation-rmse:6.47678 \n", "[114]\tvalidation-rmse:6.47621 \n", "[115]\tvalidation-rmse:6.47566 \n", "[116]\tvalidation-rmse:6.47502 \n", "[117]\tvalidation-rmse:6.47457 \n", "[118]\tvalidation-rmse:6.47410 \n", "[119]\tvalidation-rmse:6.47362 \n", "[120]\tvalidation-rmse:6.47308 \n", "[121]\tvalidation-rmse:6.47268 \n", "[122]\tvalidation-rmse:6.47220 \n", "[123]\tvalidation-rmse:6.47184 \n", "[124]\tvalidation-rmse:6.47145 \n", "[125]\tvalidation-rmse:6.47100 \n", "[126]\tvalidation-rmse:6.47055 \n", "[127]\tvalidation-rmse:6.47005 \n", "[128]\tvalidation-rmse:6.46953 \n", "[129]\tvalidation-rmse:6.46920 \n", "[130]\tvalidation-rmse:6.46862 \n", "[131]\tvalidation-rmse:6.46840 \n", "[132]\tvalidation-rmse:6.46796 \n", "[133]\tvalidation-rmse:6.46774 \n", "[134]\tvalidation-rmse:6.46723 \n", "[135]\tvalidation-rmse:6.46680 \n", "[136]\tvalidation-rmse:6.46647 \n", "[137]\tvalidation-rmse:6.46623 \n", "[138]\tvalidation-rmse:6.46571 \n", "[139]\tvalidation-rmse:6.46537 \n", "[140]\tvalidation-rmse:6.46496 \n", "[141]\tvalidation-rmse:6.46467 \n", "[142]\tvalidation-rmse:6.46458 \n", "[143]\tvalidation-rmse:6.46412 \n", "[144]\tvalidation-rmse:6.46377 \n", "[145]\tvalidation-rmse:6.46345 \n", "[146]\tvalidation-rmse:6.46302 \n", "[147]\tvalidation-rmse:6.46281 \n", "[148]\tvalidation-rmse:6.46243 \n", "[149]\tvalidation-rmse:6.46227 \n", "[150]\tvalidation-rmse:6.46181 \n", "[151]\tvalidation-rmse:6.46165 \n", "[152]\tvalidation-rmse:6.46128 \n", "[153]\tvalidation-rmse:6.46100 \n", "[154]\tvalidation-rmse:6.46065 \n", "[155]\tvalidation-rmse:6.46048 \n", "[156]\tvalidation-rmse:6.46029 \n", "[157]\tvalidation-rmse:6.46001 \n", "[158]\tvalidation-rmse:6.45954 \n", "[159]\tvalidation-rmse:6.45918 \n", "[160]\tvalidation-rmse:6.45897 \n", "[161]\tvalidation-rmse:6.45874 \n", "[162]\tvalidation-rmse:6.45848 \n", "[163]\tvalidation-rmse:6.45828 \n", "[164]\tvalidation-rmse:6.45802 \n", "[165]\tvalidation-rmse:6.45778 \n", "[166]\tvalidation-rmse:6.45761 \n", "[167]\tvalidation-rmse:6.45712 \n", "[168]\tvalidation-rmse:6.45699 \n", "[169]\tvalidation-rmse:6.45664 \n", "[170]\tvalidation-rmse:6.45660 \n", "[171]\tvalidation-rmse:6.45627 \n", "[172]\tvalidation-rmse:6.45610 \n", "[173]\tvalidation-rmse:6.45578 \n", "[174]\tvalidation-rmse:6.45564 \n", "[175]\tvalidation-rmse:6.45526 \n", "[176]\tvalidation-rmse:6.45501 \n", "[177]\tvalidation-rmse:6.45489 \n", "[178]\tvalidation-rmse:6.45469 \n", "[179]\tvalidation-rmse:6.45434 \n", "[180]\tvalidation-rmse:6.45408 \n", "[181]\tvalidation-rmse:6.45400 \n", "[182]\tvalidation-rmse:6.45377 \n", "[183]\tvalidation-rmse:6.45358 \n", "[184]\tvalidation-rmse:6.45343 \n", "[185]\tvalidation-rmse:6.45311 \n", "[186]\tvalidation-rmse:6.45285 \n", "[187]\tvalidation-rmse:6.45263 \n", "[188]\tvalidation-rmse:6.45253 \n", "[189]\tvalidation-rmse:6.45256 \n", "[190]\tvalidation-rmse:6.45210 \n", "[191]\tvalidation-rmse:6.45196 \n", "[192]\tvalidation-rmse:6.45168 \n", "[193]\tvalidation-rmse:6.45166 \n", "[194]\tvalidation-rmse:6.45136 \n", "[195]\tvalidation-rmse:6.45108 \n", "[196]\tvalidation-rmse:6.45080 \n", "[197]\tvalidation-rmse:6.45058 \n", "[198]\tvalidation-rmse:6.45040 \n", "[199]\tvalidation-rmse:6.45004 \n", "[200]\tvalidation-rmse:6.44992 \n", "[201]\tvalidation-rmse:6.44981 \n", "[202]\tvalidation-rmse:6.44957 \n", "[203]\tvalidation-rmse:6.44923 \n", "[204]\tvalidation-rmse:6.44920 \n", "[205]\tvalidation-rmse:6.44891 \n", "[206]\tvalidation-rmse:6.44871 \n", "[207]\tvalidation-rmse:6.44865 \n", "[208]\tvalidation-rmse:6.44840 \n", "[209]\tvalidation-rmse:6.44831 \n", "[210]\tvalidation-rmse:6.44824 \n", "[211]\tvalidation-rmse:6.44799 \n", "[212]\tvalidation-rmse:6.44792 \n", "[213]\tvalidation-rmse:6.44781 \n", "[214]\tvalidation-rmse:6.44780 \n", "[215]\tvalidation-rmse:6.44744 \n", "[216]\tvalidation-rmse:6.44744 \n", "[217]\tvalidation-rmse:6.44733 \n", "[218]\tvalidation-rmse:6.44699 \n", "[219]\tvalidation-rmse:6.44669 \n", "[220]\tvalidation-rmse:6.44642 \n", "[221]\tvalidation-rmse:6.44628 \n", "[222]\tvalidation-rmse:6.44611 \n", "[223]\tvalidation-rmse:6.44594 \n", "[224]\tvalidation-rmse:6.44576 \n", "[225]\tvalidation-rmse:6.44569 \n", "[226]\tvalidation-rmse:6.44547 \n", "[227]\tvalidation-rmse:6.44524 \n", "[228]\tvalidation-rmse:6.44514 \n", "[229]\tvalidation-rmse:6.44510 \n", "[230]\tvalidation-rmse:6.44489 \n", "[231]\tvalidation-rmse:6.44470 \n", "[232]\tvalidation-rmse:6.44461 \n", "[233]\tvalidation-rmse:6.44439 \n", "[234]\tvalidation-rmse:6.44425 \n", "[235]\tvalidation-rmse:6.44404 \n", "[236]\tvalidation-rmse:6.44387 \n", "[237]\tvalidation-rmse:6.44381 \n", "[238]\tvalidation-rmse:6.44382 \n", "[239]\tvalidation-rmse:6.44369 \n", "[240]\tvalidation-rmse:6.44360 \n", "[241]\tvalidation-rmse:6.44349 \n", "[242]\tvalidation-rmse:6.44351 \n", "[243]\tvalidation-rmse:6.44346 \n", "[244]\tvalidation-rmse:6.44313 \n", "[245]\tvalidation-rmse:6.44279 \n", "[246]\tvalidation-rmse:6.44251 \n", "[247]\tvalidation-rmse:6.44232 \n", "[248]\tvalidation-rmse:6.44206 \n", "[249]\tvalidation-rmse:6.44197 \n", "[250]\tvalidation-rmse:6.44175 \n", "[251]\tvalidation-rmse:6.44171 \n", "[252]\tvalidation-rmse:6.44163 \n", "[253]\tvalidation-rmse:6.44155 \n", "[254]\tvalidation-rmse:6.44151 \n", "[255]\tvalidation-rmse:6.44111 \n", "[256]\tvalidation-rmse:6.44114 \n", "[257]\tvalidation-rmse:6.44104 \n", "[258]\tvalidation-rmse:6.44087 \n", "[259]\tvalidation-rmse:6.44096 \n", "[260]\tvalidation-rmse:6.44085 \n", "[261]\tvalidation-rmse:6.44066 \n", "[262]\tvalidation-rmse:6.44043 \n", "[263]\tvalidation-rmse:6.44012 \n", "[264]\tvalidation-rmse:6.44014 \n", "[265]\tvalidation-rmse:6.44026 \n", "[266]\tvalidation-rmse:6.44004 \n", "[267]\tvalidation-rmse:6.44001 \n", "[268]\tvalidation-rmse:6.43968 \n", "[269]\tvalidation-rmse:6.43966 \n", "[270]\tvalidation-rmse:6.43961 \n", "[271]\tvalidation-rmse:6.43940 \n", "[272]\tvalidation-rmse:6.43915 \n", "[273]\tvalidation-rmse:6.43908 \n", "[274]\tvalidation-rmse:6.43871 \n", "[275]\tvalidation-rmse:6.43872 \n", "[276]\tvalidation-rmse:6.43864 \n", "[277]\tvalidation-rmse:6.43853 \n", "[278]\tvalidation-rmse:6.43843 \n", "[279]\tvalidation-rmse:6.43812 \n", "[280]\tvalidation-rmse:6.43798 \n", "[281]\tvalidation-rmse:6.43788 \n", "[282]\tvalidation-rmse:6.43779 \n", "[283]\tvalidation-rmse:6.43764 \n", "[284]\tvalidation-rmse:6.43758 \n", "[285]\tvalidation-rmse:6.43733 \n", "[286]\tvalidation-rmse:6.43729 \n", "[287]\tvalidation-rmse:6.43719 \n", "[288]\tvalidation-rmse:6.43710 \n", "[289]\tvalidation-rmse:6.43665 \n", "[290]\tvalidation-rmse:6.43653 \n", "[291]\tvalidation-rmse:6.43660 \n", "[292]\tvalidation-rmse:6.43657 \n", "[293]\tvalidation-rmse:6.43625 \n", "[294]\tvalidation-rmse:6.43628 \n", "[295]\tvalidation-rmse:6.43612 \n", "[296]\tvalidation-rmse:6.43608 \n", "[297]\tvalidation-rmse:6.43575 \n", "[298]\tvalidation-rmse:6.43550 \n", "[299]\tvalidation-rmse:6.43546 \n", "[300]\tvalidation-rmse:6.43539 \n", "[301]\tvalidation-rmse:6.43526 \n", "[302]\tvalidation-rmse:6.43519 \n", "[303]\tvalidation-rmse:6.43506 \n", "[304]\tvalidation-rmse:6.43490 \n", "[305]\tvalidation-rmse:6.43498 \n", "[306]\tvalidation-rmse:6.43506 \n", "[307]\tvalidation-rmse:6.43505 \n", "[308]\tvalidation-rmse:6.43514 \n", "[309]\tvalidation-rmse:6.43513 \n", "[310]\tvalidation-rmse:6.43508 \n", "[311]\tvalidation-rmse:6.43497 \n", "[312]\tvalidation-rmse:6.43485 \n", "[313]\tvalidation-rmse:6.43462 \n", "[314]\tvalidation-rmse:6.43454 \n", "[315]\tvalidation-rmse:6.43450 \n", "[316]\tvalidation-rmse:6.43432 \n", "[317]\tvalidation-rmse:6.43437 \n", "[318]\tvalidation-rmse:6.43403 \n", "[319]\tvalidation-rmse:6.43398 \n", "[320]\tvalidation-rmse:6.43396 \n", "[321]\tvalidation-rmse:6.43383 \n", "[322]\tvalidation-rmse:6.43382 \n", "[323]\tvalidation-rmse:6.43361 \n", "[324]\tvalidation-rmse:6.43361 \n", "[325]\tvalidation-rmse:6.43342 \n", "[326]\tvalidation-rmse:6.43335 \n", "[327]\tvalidation-rmse:6.43322 \n", "[328]\tvalidation-rmse:6.43326 \n", "[329]\tvalidation-rmse:6.43353 \n", "[330]\tvalidation-rmse:6.43350 \n", "[331]\tvalidation-rmse:6.43347 \n", "[332]\tvalidation-rmse:6.43340 \n", "[333]\tvalidation-rmse:6.43341 \n", "[334]\tvalidation-rmse:6.43334 \n", "[335]\tvalidation-rmse:6.43320 \n", "[336]\tvalidation-rmse:6.43304 \n", "[337]\tvalidation-rmse:6.43304 \n", "[338]\tvalidation-rmse:6.43303 \n", "[339]\tvalidation-rmse:6.43295 \n", "[340]\tvalidation-rmse:6.43282 \n", "[341]\tvalidation-rmse:6.43275 \n", "[342]\tvalidation-rmse:6.43265 \n", "[343]\tvalidation-rmse:6.43232 \n", "[344]\tvalidation-rmse:6.43243 \n", "[345]\tvalidation-rmse:6.43239 \n", "[346]\tvalidation-rmse:6.43239 \n", "[347]\tvalidation-rmse:6.43238 \n", "[348]\tvalidation-rmse:6.43241 \n", "[349]\tvalidation-rmse:6.43255 \n", "[350]\tvalidation-rmse:6.43248 \n", "[351]\tvalidation-rmse:6.43246 \n", "[352]\tvalidation-rmse:6.43248 \n", "[353]\tvalidation-rmse:6.43237 \n", "[354]\tvalidation-rmse:6.43229 \n", "[355]\tvalidation-rmse:6.43228 \n", "[356]\tvalidation-rmse:6.43218 \n", "[357]\tvalidation-rmse:6.43208 \n", "[358]\tvalidation-rmse:6.43201 \n", "[359]\tvalidation-rmse:6.43183 \n", "[360]\tvalidation-rmse:6.43177 \n", "[361]\tvalidation-rmse:6.43160 \n", "[362]\tvalidation-rmse:6.43151 \n", "[363]\tvalidation-rmse:6.43152 \n", "[364]\tvalidation-rmse:6.43145 \n", "[365]\tvalidation-rmse:6.43144 \n", "[366]\tvalidation-rmse:6.43125 \n", "[367]\tvalidation-rmse:6.43134 \n", "[368]\tvalidation-rmse:6.43129 \n", "[369]\tvalidation-rmse:6.43116 \n", "[370]\tvalidation-rmse:6.43117 \n", "[371]\tvalidation-rmse:6.43122 \n", "[372]\tvalidation-rmse:6.43108 \n", "[373]\tvalidation-rmse:6.43103 \n", "[374]\tvalidation-rmse:6.43086 \n", "[375]\tvalidation-rmse:6.43083 \n", "[376]\tvalidation-rmse:6.43083 \n", "[377]\tvalidation-rmse:6.43099 \n", "[378]\tvalidation-rmse:6.43098 \n", "[379]\tvalidation-rmse:6.43098 \n", "[380]\tvalidation-rmse:6.43089 \n", "[381]\tvalidation-rmse:6.43097 \n", "[382]\tvalidation-rmse:6.43084 \n", "[383]\tvalidation-rmse:6.43079 \n", "[384]\tvalidation-rmse:6.43069 \n", "[385]\tvalidation-rmse:6.43075 \n", "[386]\tvalidation-rmse:6.43059 \n", "[387]\tvalidation-rmse:6.43064 \n", "[388]\tvalidation-rmse:6.43051 \n", "[389]\tvalidation-rmse:6.43037 \n", "[390]\tvalidation-rmse:6.43024 \n", "[391]\tvalidation-rmse:6.43031 \n", "[392]\tvalidation-rmse:6.43027 \n", "[393]\tvalidation-rmse:6.43008 \n", "[394]\tvalidation-rmse:6.43009 \n", "[395]\tvalidation-rmse:6.43012 \n", "[396]\tvalidation-rmse:6.43010 \n", "[397]\tvalidation-rmse:6.42971 \n", "[398]\tvalidation-rmse:6.42971 \n", "[399]\tvalidation-rmse:6.42967 \n", "[400]\tvalidation-rmse:6.42968 \n", "[401]\tvalidation-rmse:6.42966 \n", "[402]\tvalidation-rmse:6.42960 \n", "[403]\tvalidation-rmse:6.42950 \n", "[404]\tvalidation-rmse:6.42946 \n", "[405]\tvalidation-rmse:6.42949 \n", "[406]\tvalidation-rmse:6.42946 \n", "[407]\tvalidation-rmse:6.42948 \n", "[408]\tvalidation-rmse:6.42930 \n", "[409]\tvalidation-rmse:6.42950 \n", "[410]\tvalidation-rmse:6.42976 \n", "[411]\tvalidation-rmse:6.42970 \n", "[412]\tvalidation-rmse:6.42951 \n", "[413]\tvalidation-rmse:6.42939 \n", "[414]\tvalidation-rmse:6.42928 \n", "[415]\tvalidation-rmse:6.42931 \n", "[416]\tvalidation-rmse:6.42927 \n", "[417]\tvalidation-rmse:6.42906 \n", "[418]\tvalidation-rmse:6.42896 \n", "[419]\tvalidation-rmse:6.42907 \n", "[420]\tvalidation-rmse:6.42891 \n", "[421]\tvalidation-rmse:6.42889 \n", "[422]\tvalidation-rmse:6.42882 \n", "[423]\tvalidation-rmse:6.42882 \n", "[424]\tvalidation-rmse:6.42902 \n", "[425]\tvalidation-rmse:6.42909 \n", "[426]\tvalidation-rmse:6.42932 \n", "[427]\tvalidation-rmse:6.42924 \n", "[428]\tvalidation-rmse:6.42916 \n", "[429]\tvalidation-rmse:6.42918 \n", "[430]\tvalidation-rmse:6.42909 \n", "[431]\tvalidation-rmse:6.42902 \n", "[432]\tvalidation-rmse:6.42890 \n", "[433]\tvalidation-rmse:6.42880 \n", "[434]\tvalidation-rmse:6.42871 \n", "[435]\tvalidation-rmse:6.42871 \n", "[436]\tvalidation-rmse:6.42864 \n", "[437]\tvalidation-rmse:6.42884 \n", "[438]\tvalidation-rmse:6.42880 \n", "[439]\tvalidation-rmse:6.42884 \n", "[440]\tvalidation-rmse:6.42863 \n", "[441]\tvalidation-rmse:6.42853 \n", "[442]\tvalidation-rmse:6.42851 \n", "[443]\tvalidation-rmse:6.42853 \n", "[444]\tvalidation-rmse:6.42824 \n", "[445]\tvalidation-rmse:6.42817 \n", "[446]\tvalidation-rmse:6.42796 \n", "[447]\tvalidation-rmse:6.42795 \n", "[448]\tvalidation-rmse:6.42756 \n", "[449]\tvalidation-rmse:6.42756 \n", "[450]\tvalidation-rmse:6.42722 \n", "[451]\tvalidation-rmse:6.42716 \n", "[452]\tvalidation-rmse:6.42715 \n", "[453]\tvalidation-rmse:6.42740 \n", "[454]\tvalidation-rmse:6.42746 \n", "[455]\tvalidation-rmse:6.42750 \n", "[456]\tvalidation-rmse:6.42762 \n", "[457]\tvalidation-rmse:6.42775 \n", "[458]\tvalidation-rmse:6.42763 \n", "[459]\tvalidation-rmse:6.42764 \n", "[460]\tvalidation-rmse:6.42761 \n", "[461]\tvalidation-rmse:6.42746 \n", "[462]\tvalidation-rmse:6.42744 \n", "[463]\tvalidation-rmse:6.42740 \n", "[464]\tvalidation-rmse:6.42739 \n", "[465]\tvalidation-rmse:6.42739 \n", "[466]\tvalidation-rmse:6.42707 \n", "[467]\tvalidation-rmse:6.42711 \n", "[468]\tvalidation-rmse:6.42736 \n", "[469]\tvalidation-rmse:6.42732 \n", "[470]\tvalidation-rmse:6.42730 \n", "[471]\tvalidation-rmse:6.42722 \n", "[472]\tvalidation-rmse:6.42711 \n", "[473]\tvalidation-rmse:6.42714 \n", "[474]\tvalidation-rmse:6.42708 \n", "[475]\tvalidation-rmse:6.42700 \n", "[476]\tvalidation-rmse:6.42689 \n", "[477]\tvalidation-rmse:6.42699 \n", "[478]\tvalidation-rmse:6.42692 \n", "[479]\tvalidation-rmse:6.42688 \n", "[480]\tvalidation-rmse:6.42696 \n", "[481]\tvalidation-rmse:6.42700 \n", "[482]\tvalidation-rmse:6.42700 \n", "[483]\tvalidation-rmse:6.42706 \n", "[484]\tvalidation-rmse:6.42687 \n", "[485]\tvalidation-rmse:6.42678 \n", "[486]\tvalidation-rmse:6.42658 \n", "[487]\tvalidation-rmse:6.42662 \n", "[488]\tvalidation-rmse:6.42681 \n", "[489]\tvalidation-rmse:6.42676 \n", "[490]\tvalidation-rmse:6.42679 \n", "[491]\tvalidation-rmse:6.42674 \n", "[492]\tvalidation-rmse:6.42684 \n", "[493]\tvalidation-rmse:6.42722 \n", "[494]\tvalidation-rmse:6.42739 \n", "[495]\tvalidation-rmse:6.42741 \n", "[496]\tvalidation-rmse:6.42730 \n", "[497]\tvalidation-rmse:6.42713 \n", "[498]\tvalidation-rmse:6.42721 \n", "[499]\tvalidation-rmse:6.42719 \n", "[500]\tvalidation-rmse:6.42724 \n", "[501]\tvalidation-rmse:6.42712 \n", "[502]\tvalidation-rmse:6.42701 \n", "[503]\tvalidation-rmse:6.42696 \n", "[504]\tvalidation-rmse:6.42682 \n", "[505]\tvalidation-rmse:6.42687 \n", "[506]\tvalidation-rmse:6.42683 \n", "[507]\tvalidation-rmse:6.42681 \n", "[508]\tvalidation-rmse:6.42684 \n", "[509]\tvalidation-rmse:6.42675 \n", "[510]\tvalidation-rmse:6.42669 \n", "[511]\tvalidation-rmse:6.42667 \n", "[512]\tvalidation-rmse:6.42655 \n", "[513]\tvalidation-rmse:6.42655 \n", "[514]\tvalidation-rmse:6.42654 \n", "[515]\tvalidation-rmse:6.42662 \n", "[516]\tvalidation-rmse:6.42664 \n", "[517]\tvalidation-rmse:6.42673 \n", "[518]\tvalidation-rmse:6.42686 \n", "[519]\tvalidation-rmse:6.42679 \n", "[520]\tvalidation-rmse:6.42671 \n", "[521]\tvalidation-rmse:6.42685 \n", "[522]\tvalidation-rmse:6.42721 \n", "[523]\tvalidation-rmse:6.42716 \n", "[524]\tvalidation-rmse:6.42716 \n", "[525]\tvalidation-rmse:6.42699 \n", "[526]\tvalidation-rmse:6.42697 \n", "[527]\tvalidation-rmse:6.42703 \n", "[528]\tvalidation-rmse:6.42712 \n", "[529]\tvalidation-rmse:6.42740 \n", "[530]\tvalidation-rmse:6.42749 \n", "[531]\tvalidation-rmse:6.42736 \n", "[532]\tvalidation-rmse:6.42730 \n", "[533]\tvalidation-rmse:6.42736 \n", "[534]\tvalidation-rmse:6.42737 \n", "[535]\tvalidation-rmse:6.42728 \n", "[536]\tvalidation-rmse:6.42729 \n", "[537]\tvalidation-rmse:6.42730 \n", "[538]\tvalidation-rmse:6.42729 \n", "[539]\tvalidation-rmse:6.42729 \n", "[540]\tvalidation-rmse:6.42727 \n", "[541]\tvalidation-rmse:6.42711 \n", "[542]\tvalidation-rmse:6.42721 \n", "[543]\tvalidation-rmse:6.42711 \n", "[544]\tvalidation-rmse:6.42751 \n", "[545]\tvalidation-rmse:6.42756 \n", "[546]\tvalidation-rmse:6.42746 \n", "[547]\tvalidation-rmse:6.42748 \n", "[548]\tvalidation-rmse:6.42750 \n", "[549]\tvalidation-rmse:6.42753 \n", "[550]\tvalidation-rmse:6.42766 \n", "[551]\tvalidation-rmse:6.42763 \n", "[552]\tvalidation-rmse:6.42755 \n", "[553]\tvalidation-rmse:6.42760 \n", "[554]\tvalidation-rmse:6.42756 \n", "[555]\tvalidation-rmse:6.42758 \n", "[556]\tvalidation-rmse:6.42764 \n", "[557]\tvalidation-rmse:6.42800 \n", "[558]\tvalidation-rmse:6.42802 \n", "[559]\tvalidation-rmse:6.42799 \n", "[560]\tvalidation-rmse:6.42787 \n", "[561]\tvalidation-rmse:6.42779 \n", "[562]\tvalidation-rmse:6.42789 \n", "[563]\tvalidation-rmse:6.42790 \n", "[12:49:30] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:9.30271 \n", "[1]\tvalidation-rmse:7.15139 \n", "[2]\tvalidation-rmse:6.78544 \n", "[3]\tvalidation-rmse:6.71313 \n", "[4]\tvalidation-rmse:6.68968 \n", "[5]\tvalidation-rmse:6.68068 \n", "[6]\tvalidation-rmse:6.67247 \n", "[7]\tvalidation-rmse:6.66346 \n", "[8]\tvalidation-rmse:6.65769 \n", "[9]\tvalidation-rmse:6.65338 \n", "[10]\tvalidation-rmse:6.64790 \n", "[11]\tvalidation-rmse:6.64374 \n", "[12]\tvalidation-rmse:6.64142 \n", "[13]\tvalidation-rmse:6.63667 \n", "[14]\tvalidation-rmse:6.63482 \n", "[15]\tvalidation-rmse:6.63062 \n", "[16]\tvalidation-rmse:6.62922 \n", "[17]\tvalidation-rmse:6.62573 \n", "[18]\tvalidation-rmse:6.62108 \n", "[19]\tvalidation-rmse:6.61561 \n", "[20]\tvalidation-rmse:6.61318 \n", "[21]\tvalidation-rmse:6.60789 \n", "[22]\tvalidation-rmse:6.60389 \n", "[23]\tvalidation-rmse:6.60298 \n", "[24]\tvalidation-rmse:6.59823 \n", "[25]\tvalidation-rmse:6.59616 \n", "[26]\tvalidation-rmse:6.59159 \n", "[27]\tvalidation-rmse:6.58932 \n", "[28]\tvalidation-rmse:6.58771 \n", "[29]\tvalidation-rmse:6.58705 \n", "[30]\tvalidation-rmse:6.58177 \n", "[31]\tvalidation-rmse:6.57890 \n", "[32]\tvalidation-rmse:6.57604 \n", "[33]\tvalidation-rmse:6.57452 \n", "[34]\tvalidation-rmse:6.57502 \n", "[35]\tvalidation-rmse:6.57480 \n", "[36]\tvalidation-rmse:6.57329 \n", "[37]\tvalidation-rmse:6.57152 \n", "[38]\tvalidation-rmse:6.56925 \n", "[39]\tvalidation-rmse:6.56893 \n", "[40]\tvalidation-rmse:6.56701 \n", "[41]\tvalidation-rmse:6.56481 \n", "[42]\tvalidation-rmse:6.56245 \n", "[43]\tvalidation-rmse:6.56050 \n", "[44]\tvalidation-rmse:6.55749 \n", "[45]\tvalidation-rmse:6.55668 \n", "[46]\tvalidation-rmse:6.55543 \n", "[47]\tvalidation-rmse:6.55124 \n", "[48]\tvalidation-rmse:6.55226 \n", "[49]\tvalidation-rmse:6.55106 \n", "[50]\tvalidation-rmse:6.54917 \n", "[51]\tvalidation-rmse:6.54743 \n", "[52]\tvalidation-rmse:6.54613 \n", "[53]\tvalidation-rmse:6.54425 \n", "[54]\tvalidation-rmse:6.54188 \n", "[55]\tvalidation-rmse:6.54251 \n", "[56]\tvalidation-rmse:6.54060 \n", "[57]\tvalidation-rmse:6.53939 \n", "[58]\tvalidation-rmse:6.53740 \n", "[59]\tvalidation-rmse:6.53543 \n", "[60]\tvalidation-rmse:6.53460 \n", "[61]\tvalidation-rmse:6.53311 \n", "[62]\tvalidation-rmse:6.53151 \n", "[63]\tvalidation-rmse:6.52768 \n", "[64]\tvalidation-rmse:6.52554 \n", "[65]\tvalidation-rmse:6.52228 \n", "[66]\tvalidation-rmse:6.52066 \n", "[67]\tvalidation-rmse:6.51883 \n", "[68]\tvalidation-rmse:6.51316 \n", "[69]\tvalidation-rmse:6.51107 \n", "[70]\tvalidation-rmse:6.50853 \n", "[71]\tvalidation-rmse:6.50574 \n", "[72]\tvalidation-rmse:6.50394 \n", "[73]\tvalidation-rmse:6.50273 \n", "[74]\tvalidation-rmse:6.50156 \n", "[75]\tvalidation-rmse:6.50289 \n", "[76]\tvalidation-rmse:6.50244 \n", "[77]\tvalidation-rmse:6.50060 \n", "[78]\tvalidation-rmse:6.50003 \n", "[79]\tvalidation-rmse:6.49847 \n", "[80]\tvalidation-rmse:6.49489 \n", "[81]\tvalidation-rmse:6.49547 \n", "[82]\tvalidation-rmse:6.49474 \n", "[83]\tvalidation-rmse:6.49360 \n", "[84]\tvalidation-rmse:6.49265 \n", "[85]\tvalidation-rmse:6.49104 \n", "[86]\tvalidation-rmse:6.48859 \n", "[87]\tvalidation-rmse:6.48689 \n", "[88]\tvalidation-rmse:6.48512 \n", "[89]\tvalidation-rmse:6.48460 \n", "[90]\tvalidation-rmse:6.48327 \n", "[91]\tvalidation-rmse:6.48293 \n", "[92]\tvalidation-rmse:6.48067 \n", "[93]\tvalidation-rmse:6.47946 \n", "[94]\tvalidation-rmse:6.47823 \n", "[95]\tvalidation-rmse:6.47694 \n", "[96]\tvalidation-rmse:6.47472 \n", "[97]\tvalidation-rmse:6.47429 \n", "[98]\tvalidation-rmse:6.47295 \n", "[99]\tvalidation-rmse:6.47216 \n", "[100]\tvalidation-rmse:6.47092 \n", "[101]\tvalidation-rmse:6.46990 \n", "[102]\tvalidation-rmse:6.46828 \n", "[103]\tvalidation-rmse:6.46772 \n", "[104]\tvalidation-rmse:6.46671 \n", "[105]\tvalidation-rmse:6.46567 \n", "[106]\tvalidation-rmse:6.46588 \n", "[107]\tvalidation-rmse:6.46441 \n", "[108]\tvalidation-rmse:6.46296 \n", "[109]\tvalidation-rmse:6.46237 \n", "[110]\tvalidation-rmse:6.46185 \n", "[111]\tvalidation-rmse:6.46148 \n", "[112]\tvalidation-rmse:6.45976 \n", "[113]\tvalidation-rmse:6.45871 \n", "[114]\tvalidation-rmse:6.45798 \n", "[115]\tvalidation-rmse:6.45558 \n", "[116]\tvalidation-rmse:6.45285 \n", "[117]\tvalidation-rmse:6.45221 \n", "[118]\tvalidation-rmse:6.45016 \n", "[119]\tvalidation-rmse:6.44925 \n", "[120]\tvalidation-rmse:6.44850 \n", "[121]\tvalidation-rmse:6.44720 \n", "[122]\tvalidation-rmse:6.44541 \n", "[123]\tvalidation-rmse:6.44450 \n", "[124]\tvalidation-rmse:6.44341 \n", "[125]\tvalidation-rmse:6.44284 \n", "[126]\tvalidation-rmse:6.44329 \n", "[127]\tvalidation-rmse:6.44250 \n", "[128]\tvalidation-rmse:6.44079 \n", "[129]\tvalidation-rmse:6.44127 \n", "[130]\tvalidation-rmse:6.43985 \n", "[131]\tvalidation-rmse:6.43843 \n", "[132]\tvalidation-rmse:6.43792 \n", "[133]\tvalidation-rmse:6.43758 \n", "[134]\tvalidation-rmse:6.43599 \n", "[135]\tvalidation-rmse:6.43510 \n", "[136]\tvalidation-rmse:6.43429 \n", "[137]\tvalidation-rmse:6.43327 \n", "[138]\tvalidation-rmse:6.43304 \n", "[139]\tvalidation-rmse:6.43178 \n", "[140]\tvalidation-rmse:6.42977 \n", "[141]\tvalidation-rmse:6.42895 \n", "[142]\tvalidation-rmse:6.42821 \n", "[143]\tvalidation-rmse:6.42734 \n", "[144]\tvalidation-rmse:6.42571 \n", "[145]\tvalidation-rmse:6.42471 \n", "[146]\tvalidation-rmse:6.42002 \n", "[147]\tvalidation-rmse:6.41934 \n", "[148]\tvalidation-rmse:6.41793 \n", "[149]\tvalidation-rmse:6.41814 \n", "[150]\tvalidation-rmse:6.41763 \n", "[151]\tvalidation-rmse:6.41716 \n", "[152]\tvalidation-rmse:6.41597 \n", "[153]\tvalidation-rmse:6.41546 \n", "[154]\tvalidation-rmse:6.41502 \n", "[155]\tvalidation-rmse:6.41463 \n", "[156]\tvalidation-rmse:6.41423 \n", "[157]\tvalidation-rmse:6.41370 \n", "[158]\tvalidation-rmse:6.41235 \n", "[159]\tvalidation-rmse:6.41252 \n", "[160]\tvalidation-rmse:6.41205 \n", "[161]\tvalidation-rmse:6.41075 \n", "[162]\tvalidation-rmse:6.41024 \n", "[163]\tvalidation-rmse:6.41038 \n", "[164]\tvalidation-rmse:6.41017 \n", "[165]\tvalidation-rmse:6.40982 \n", "[166]\tvalidation-rmse:6.40876 \n", "[167]\tvalidation-rmse:6.40888 \n", "[168]\tvalidation-rmse:6.40845 \n", "[169]\tvalidation-rmse:6.40770 \n", "[170]\tvalidation-rmse:6.40746 \n", "[171]\tvalidation-rmse:6.40689 \n", "[172]\tvalidation-rmse:6.40520 \n", "[173]\tvalidation-rmse:6.40459 \n", "[174]\tvalidation-rmse:6.40382 \n", "[175]\tvalidation-rmse:6.40366 \n", "[176]\tvalidation-rmse:6.40505 \n", "[177]\tvalidation-rmse:6.40476 \n", "[178]\tvalidation-rmse:6.40430 \n", "[179]\tvalidation-rmse:6.40371 \n", "[180]\tvalidation-rmse:6.40407 \n", "[181]\tvalidation-rmse:6.40374 \n", "[182]\tvalidation-rmse:6.40331 \n", "[183]\tvalidation-rmse:6.40253 \n", "[184]\tvalidation-rmse:6.40217 \n", "[185]\tvalidation-rmse:6.40101 \n", "[186]\tvalidation-rmse:6.40055 \n", "[187]\tvalidation-rmse:6.39986 \n", "[188]\tvalidation-rmse:6.39842 \n", "[189]\tvalidation-rmse:6.39855 \n", "[190]\tvalidation-rmse:6.39849 \n", "[191]\tvalidation-rmse:6.40017 \n", "[192]\tvalidation-rmse:6.39842 \n", "[193]\tvalidation-rmse:6.39734 \n", "[194]\tvalidation-rmse:6.39611 \n", "[195]\tvalidation-rmse:6.39431 \n", "[196]\tvalidation-rmse:6.39430 \n", "[197]\tvalidation-rmse:6.39244 \n", "[198]\tvalidation-rmse:6.39182 \n", "[199]\tvalidation-rmse:6.39021 \n", "[200]\tvalidation-rmse:6.39163 \n", "[201]\tvalidation-rmse:6.39176 \n", "[202]\tvalidation-rmse:6.39120 \n", "[203]\tvalidation-rmse:6.39159 \n", "[204]\tvalidation-rmse:6.39056 \n", "[205]\tvalidation-rmse:6.39162 \n", "[206]\tvalidation-rmse:6.39119 \n", "[207]\tvalidation-rmse:6.39073 \n", "[208]\tvalidation-rmse:6.38805 \n", "[209]\tvalidation-rmse:6.38681 \n", "[210]\tvalidation-rmse:6.38687 \n", "[211]\tvalidation-rmse:6.38657 \n", "[212]\tvalidation-rmse:6.38546 \n", "[213]\tvalidation-rmse:6.38517 \n", "[214]\tvalidation-rmse:6.38568 \n", "[215]\tvalidation-rmse:6.38573 \n", "[216]\tvalidation-rmse:6.38506 \n", "[217]\tvalidation-rmse:6.38485 \n", "[218]\tvalidation-rmse:6.38392 \n", "[219]\tvalidation-rmse:6.38400 \n", "[220]\tvalidation-rmse:6.38271 \n", "[221]\tvalidation-rmse:6.38219 \n", "[222]\tvalidation-rmse:6.38163 \n", "[223]\tvalidation-rmse:6.38249 \n", "[224]\tvalidation-rmse:6.38257 \n", "[225]\tvalidation-rmse:6.38276 \n", "[226]\tvalidation-rmse:6.38286 \n", "[227]\tvalidation-rmse:6.38266 \n", "[228]\tvalidation-rmse:6.38268 \n", "[229]\tvalidation-rmse:6.38204 \n", "[230]\tvalidation-rmse:6.38179 \n", "[231]\tvalidation-rmse:6.38187 \n", "[232]\tvalidation-rmse:6.38140 \n", "[233]\tvalidation-rmse:6.38104 \n", "[234]\tvalidation-rmse:6.37957 \n", "[235]\tvalidation-rmse:6.37896 \n", "[236]\tvalidation-rmse:6.37807 \n", "[237]\tvalidation-rmse:6.37824 \n", "[238]\tvalidation-rmse:6.37746 \n", "[239]\tvalidation-rmse:6.37679 \n", "[240]\tvalidation-rmse:6.37630 \n", "[241]\tvalidation-rmse:6.37600 \n", "[242]\tvalidation-rmse:6.37602 \n", "[243]\tvalidation-rmse:6.37577 \n", "[244]\tvalidation-rmse:6.37510 \n", "[245]\tvalidation-rmse:6.37461 \n", "[246]\tvalidation-rmse:6.37341 \n", "[247]\tvalidation-rmse:6.37316 \n", "[248]\tvalidation-rmse:6.37234 \n", "[249]\tvalidation-rmse:6.37178 \n", "[250]\tvalidation-rmse:6.37113 \n", "[251]\tvalidation-rmse:6.37025 \n", "[252]\tvalidation-rmse:6.36878 \n", "[253]\tvalidation-rmse:6.36877 \n", "[254]\tvalidation-rmse:6.36820 \n", "[255]\tvalidation-rmse:6.36832 \n", "[256]\tvalidation-rmse:6.36780 \n", "[257]\tvalidation-rmse:6.36773 \n", "[258]\tvalidation-rmse:6.36856 \n", "[259]\tvalidation-rmse:6.36788 \n", "[260]\tvalidation-rmse:6.36766 \n", "[261]\tvalidation-rmse:6.36810 \n", "[262]\tvalidation-rmse:6.36803 \n", "[263]\tvalidation-rmse:6.36777 \n", "[264]\tvalidation-rmse:6.36739 \n", "[265]\tvalidation-rmse:6.36690 \n", "[266]\tvalidation-rmse:6.36550 \n", "[267]\tvalidation-rmse:6.36611 \n", "[268]\tvalidation-rmse:6.36562 \n", "[269]\tvalidation-rmse:6.36511 \n", "[270]\tvalidation-rmse:6.36491 \n", "[271]\tvalidation-rmse:6.36440 \n", "[272]\tvalidation-rmse:6.36304 \n", "[273]\tvalidation-rmse:6.36201 \n", "[274]\tvalidation-rmse:6.36145 \n", "[275]\tvalidation-rmse:6.36059 \n", "[276]\tvalidation-rmse:6.36024 \n", "[277]\tvalidation-rmse:6.35989 \n", "[278]\tvalidation-rmse:6.36027 \n", "[279]\tvalidation-rmse:6.36084 \n", "[280]\tvalidation-rmse:6.36012 \n", "[281]\tvalidation-rmse:6.36024 \n", "[282]\tvalidation-rmse:6.35986 \n", "[283]\tvalidation-rmse:6.35938 \n", "[284]\tvalidation-rmse:6.35891 \n", "[285]\tvalidation-rmse:6.35823 \n", "[286]\tvalidation-rmse:6.35821 \n", "[287]\tvalidation-rmse:6.35824 \n", "[288]\tvalidation-rmse:6.35825 \n", "[289]\tvalidation-rmse:6.35789 \n", "[290]\tvalidation-rmse:6.35756 \n", "[291]\tvalidation-rmse:6.35725 \n", "[292]\tvalidation-rmse:6.35765 \n", "[293]\tvalidation-rmse:6.35657 \n", "[294]\tvalidation-rmse:6.35429 \n", "[295]\tvalidation-rmse:6.35744 \n", "[296]\tvalidation-rmse:6.35725 \n", "[297]\tvalidation-rmse:6.35769 \n", "[298]\tvalidation-rmse:6.35700 \n", "[299]\tvalidation-rmse:6.35658 \n", "[300]\tvalidation-rmse:6.35575 \n", "[301]\tvalidation-rmse:6.35586 \n", "[302]\tvalidation-rmse:6.35513 \n", "[303]\tvalidation-rmse:6.35496 \n", "[304]\tvalidation-rmse:6.35515 \n", "[305]\tvalidation-rmse:6.35500 \n", "[306]\tvalidation-rmse:6.35442 \n", "[307]\tvalidation-rmse:6.35378 \n", "[308]\tvalidation-rmse:6.35441 \n", "[309]\tvalidation-rmse:6.35405 \n", "[310]\tvalidation-rmse:6.35384 \n", "[311]\tvalidation-rmse:6.35370 \n", "[312]\tvalidation-rmse:6.35378 \n", "[313]\tvalidation-rmse:6.35350 \n", "[314]\tvalidation-rmse:6.35254 \n", "[315]\tvalidation-rmse:6.35211 \n", "[316]\tvalidation-rmse:6.35198 \n", "[317]\tvalidation-rmse:6.35204 \n", "[318]\tvalidation-rmse:6.35143 \n", "[319]\tvalidation-rmse:6.35066 \n", "[320]\tvalidation-rmse:6.35068 \n", "[321]\tvalidation-rmse:6.35009 \n", "[322]\tvalidation-rmse:6.35006 \n", "[323]\tvalidation-rmse:6.35005 \n", "[324]\tvalidation-rmse:6.34990 \n", "[325]\tvalidation-rmse:6.35038 \n", "[326]\tvalidation-rmse:6.35084 \n", "[327]\tvalidation-rmse:6.35062 \n", "[328]\tvalidation-rmse:6.35000 \n", "[329]\tvalidation-rmse:6.35006 \n", "[330]\tvalidation-rmse:6.34959 \n", "[331]\tvalidation-rmse:6.34904 \n", "[332]\tvalidation-rmse:6.34936 \n", "[333]\tvalidation-rmse:6.34815 \n", "[334]\tvalidation-rmse:6.34831 \n", "[335]\tvalidation-rmse:6.34858 \n", "[336]\tvalidation-rmse:6.34871 \n", "[337]\tvalidation-rmse:6.34847 \n", "[338]\tvalidation-rmse:6.34754 \n", "[339]\tvalidation-rmse:6.34663 \n", "[340]\tvalidation-rmse:6.34679 \n", "[341]\tvalidation-rmse:6.34647 \n", "[342]\tvalidation-rmse:6.34626 \n", "[343]\tvalidation-rmse:6.34662 \n", "[344]\tvalidation-rmse:6.34673 \n", "[345]\tvalidation-rmse:6.34581 \n", "[346]\tvalidation-rmse:6.34650 \n", "[347]\tvalidation-rmse:6.34632 \n", "[348]\tvalidation-rmse:6.34587 \n", "[349]\tvalidation-rmse:6.34596 \n", "[350]\tvalidation-rmse:6.34646 \n", "[351]\tvalidation-rmse:6.34638 \n", "[352]\tvalidation-rmse:6.34609 \n", "[353]\tvalidation-rmse:6.34632 \n", "[354]\tvalidation-rmse:6.34557 \n", "[355]\tvalidation-rmse:6.34605 \n", "[356]\tvalidation-rmse:6.34559 \n", "[357]\tvalidation-rmse:6.34466 \n", "[358]\tvalidation-rmse:6.34407 \n", "[359]\tvalidation-rmse:6.34440 \n", "[360]\tvalidation-rmse:6.34352 \n", "[361]\tvalidation-rmse:6.34316 \n", "[362]\tvalidation-rmse:6.34319 \n", "[363]\tvalidation-rmse:6.34214 \n", "[364]\tvalidation-rmse:6.34298 \n", "[365]\tvalidation-rmse:6.34314 \n", "[366]\tvalidation-rmse:6.34367 \n", "[367]\tvalidation-rmse:6.34427 \n", "[368]\tvalidation-rmse:6.34404 \n", "[369]\tvalidation-rmse:6.34335 \n", "[370]\tvalidation-rmse:6.34382 \n", "[371]\tvalidation-rmse:6.34359 \n", "[372]\tvalidation-rmse:6.34354 \n", "[373]\tvalidation-rmse:6.34354 \n", "[374]\tvalidation-rmse:6.34349 \n", "[375]\tvalidation-rmse:6.34357 \n", "[376]\tvalidation-rmse:6.34411 \n", "[377]\tvalidation-rmse:6.34414 \n", "[378]\tvalidation-rmse:6.34420 \n", "[379]\tvalidation-rmse:6.34342 \n", "[380]\tvalidation-rmse:6.34372 \n", "[381]\tvalidation-rmse:6.34339 \n", "[382]\tvalidation-rmse:6.34328 \n", "[383]\tvalidation-rmse:6.34313 \n", "[384]\tvalidation-rmse:6.34272 \n", "[385]\tvalidation-rmse:6.34261 \n", "[386]\tvalidation-rmse:6.34257 \n", "[387]\tvalidation-rmse:6.34312 \n", "[388]\tvalidation-rmse:6.34343 \n", "[389]\tvalidation-rmse:6.34138 \n", "[390]\tvalidation-rmse:6.34104 \n", "[391]\tvalidation-rmse:6.34142 \n", "[392]\tvalidation-rmse:6.34131 \n", "[393]\tvalidation-rmse:6.34193 \n", "[394]\tvalidation-rmse:6.34105 \n", "[395]\tvalidation-rmse:6.34128 \n", "[396]\tvalidation-rmse:6.34027 \n", "[397]\tvalidation-rmse:6.34023 \n", "[398]\tvalidation-rmse:6.34001 \n", "[399]\tvalidation-rmse:6.34004 \n", "[400]\tvalidation-rmse:6.34013 \n", "[401]\tvalidation-rmse:6.33976 \n", "[402]\tvalidation-rmse:6.33946 \n", "[403]\tvalidation-rmse:6.33939 \n", "[404]\tvalidation-rmse:6.33909 \n", "[405]\tvalidation-rmse:6.33857 \n", "[406]\tvalidation-rmse:6.33921 \n", "[407]\tvalidation-rmse:6.33911 \n", "[408]\tvalidation-rmse:6.33825 \n", "[409]\tvalidation-rmse:6.33854 \n", "[410]\tvalidation-rmse:6.33806 \n", "[411]\tvalidation-rmse:6.33856 \n", "[412]\tvalidation-rmse:6.33831 \n", "[413]\tvalidation-rmse:6.33894 \n", "[414]\tvalidation-rmse:6.33877 \n", "[415]\tvalidation-rmse:6.33833 \n", "[416]\tvalidation-rmse:6.33799 \n", "[417]\tvalidation-rmse:6.33790 \n", "[418]\tvalidation-rmse:6.33811 \n", "[419]\tvalidation-rmse:6.33767 \n", "[420]\tvalidation-rmse:6.33842 \n", "[421]\tvalidation-rmse:6.33810 \n", "[422]\tvalidation-rmse:6.33766 \n", "[423]\tvalidation-rmse:6.33754 \n", "[424]\tvalidation-rmse:6.33818 \n", "[425]\tvalidation-rmse:6.33689 \n", "[426]\tvalidation-rmse:6.33650 \n", "[427]\tvalidation-rmse:6.33608 \n", "[428]\tvalidation-rmse:6.33524 \n", "[429]\tvalidation-rmse:6.33278 \n", "[430]\tvalidation-rmse:6.33283 \n", "[431]\tvalidation-rmse:6.33258 \n", "[432]\tvalidation-rmse:6.33233 \n", "[433]\tvalidation-rmse:6.33290 \n", "[434]\tvalidation-rmse:6.33209 \n", "[435]\tvalidation-rmse:6.33193 \n", "[436]\tvalidation-rmse:6.33193 \n", "[437]\tvalidation-rmse:6.33196 \n", "[438]\tvalidation-rmse:6.33100 \n", "[439]\tvalidation-rmse:6.33119 \n", "[440]\tvalidation-rmse:6.33127 \n", "[441]\tvalidation-rmse:6.33108 \n", "[442]\tvalidation-rmse:6.33125 \n", "[443]\tvalidation-rmse:6.33017 \n", "[444]\tvalidation-rmse:6.33028 \n", "[445]\tvalidation-rmse:6.33034 \n", "[446]\tvalidation-rmse:6.33009 \n", "[447]\tvalidation-rmse:6.32978 \n", "[448]\tvalidation-rmse:6.32977 \n", "[449]\tvalidation-rmse:6.32949 \n", "[450]\tvalidation-rmse:6.32930 \n", "[451]\tvalidation-rmse:6.32942 \n", "[452]\tvalidation-rmse:6.32914 \n", "[453]\tvalidation-rmse:6.32912 \n", "[454]\tvalidation-rmse:6.32869 \n", "[455]\tvalidation-rmse:6.32930 \n", "[456]\tvalidation-rmse:6.32888 \n", "[457]\tvalidation-rmse:6.32934 \n", "[458]\tvalidation-rmse:6.32908 \n", "[459]\tvalidation-rmse:6.32954 \n", "[460]\tvalidation-rmse:6.32839 \n", "[461]\tvalidation-rmse:6.32830 \n", "[462]\tvalidation-rmse:6.32778 \n", "[463]\tvalidation-rmse:6.32791 \n", "[464]\tvalidation-rmse:6.32808 \n", "[465]\tvalidation-rmse:6.32796 \n", "[466]\tvalidation-rmse:6.32759 \n", "[467]\tvalidation-rmse:6.32763 \n", "[468]\tvalidation-rmse:6.32738 \n", "[469]\tvalidation-rmse:6.32700 \n", "[470]\tvalidation-rmse:6.32636 \n", "[471]\tvalidation-rmse:6.32601 \n", "[472]\tvalidation-rmse:6.32577 \n", "[473]\tvalidation-rmse:6.32600 \n", "[474]\tvalidation-rmse:6.32560 \n", "[475]\tvalidation-rmse:6.32579 \n", "[476]\tvalidation-rmse:6.32563 \n", "[477]\tvalidation-rmse:6.32482 \n", "[478]\tvalidation-rmse:6.32507 \n", "[479]\tvalidation-rmse:6.32517 \n", "[480]\tvalidation-rmse:6.32497 \n", "[481]\tvalidation-rmse:6.32533 \n", "[482]\tvalidation-rmse:6.32504 \n", "[483]\tvalidation-rmse:6.32456 \n", "[484]\tvalidation-rmse:6.32427 \n", "[485]\tvalidation-rmse:6.32403 \n", "[486]\tvalidation-rmse:6.32313 \n", "[487]\tvalidation-rmse:6.32339 \n", "[488]\tvalidation-rmse:6.32379 \n", "[489]\tvalidation-rmse:6.32403 \n", "[490]\tvalidation-rmse:6.32383 \n", "[491]\tvalidation-rmse:6.32310 \n", "[492]\tvalidation-rmse:6.32300 \n", "[493]\tvalidation-rmse:6.32308 \n", "[494]\tvalidation-rmse:6.32259 \n", "[495]\tvalidation-rmse:6.32247 \n", "[496]\tvalidation-rmse:6.32246 \n", "[497]\tvalidation-rmse:6.32217 \n", "[498]\tvalidation-rmse:6.32187 \n", "[499]\tvalidation-rmse:6.32326 \n", "[500]\tvalidation-rmse:6.32329 \n", "[501]\tvalidation-rmse:6.32298 \n", "[502]\tvalidation-rmse:6.32320 \n", "[503]\tvalidation-rmse:6.32324 \n", "[504]\tvalidation-rmse:6.32320 \n", "[505]\tvalidation-rmse:6.32147 \n", "[506]\tvalidation-rmse:6.32068 \n", "[507]\tvalidation-rmse:6.32090 \n", "[508]\tvalidation-rmse:6.32139 \n", "[509]\tvalidation-rmse:6.32093 \n", "[510]\tvalidation-rmse:6.32108 \n", "[511]\tvalidation-rmse:6.32136 \n", "[512]\tvalidation-rmse:6.32107 \n", "[513]\tvalidation-rmse:6.32063 \n", "[514]\tvalidation-rmse:6.32027 \n", "[515]\tvalidation-rmse:6.32022 \n", "[516]\tvalidation-rmse:6.31968 \n", "[517]\tvalidation-rmse:6.31952 \n", "[518]\tvalidation-rmse:6.31953 \n", "[519]\tvalidation-rmse:6.31942 \n", "[520]\tvalidation-rmse:6.31919 \n", "[521]\tvalidation-rmse:6.31965 \n", "[522]\tvalidation-rmse:6.31954 \n", "[523]\tvalidation-rmse:6.31928 \n", "[524]\tvalidation-rmse:6.31939 \n", "[525]\tvalidation-rmse:6.31947 \n", "[526]\tvalidation-rmse:6.31916 \n", "[527]\tvalidation-rmse:6.31928 \n", "[528]\tvalidation-rmse:6.31900 \n", "[529]\tvalidation-rmse:6.31818 \n", "[530]\tvalidation-rmse:6.31814 \n", "[531]\tvalidation-rmse:6.31839 \n", "[532]\tvalidation-rmse:6.31763 \n", "[533]\tvalidation-rmse:6.31783 \n", "[534]\tvalidation-rmse:6.31812 \n", "[535]\tvalidation-rmse:6.31798 \n", "[536]\tvalidation-rmse:6.31768 \n", "[537]\tvalidation-rmse:6.31774 \n", "[538]\tvalidation-rmse:6.31779 \n", "[539]\tvalidation-rmse:6.31787 \n", "[540]\tvalidation-rmse:6.31786 \n", "[541]\tvalidation-rmse:6.31770 \n", "[542]\tvalidation-rmse:6.31767 \n", "[543]\tvalidation-rmse:6.31724 \n", "[544]\tvalidation-rmse:6.31726 \n", "[545]\tvalidation-rmse:6.31728 \n", "[546]\tvalidation-rmse:6.31744 \n", "[547]\tvalidation-rmse:6.31709 \n", "[548]\tvalidation-rmse:6.31724 \n", "[549]\tvalidation-rmse:6.31693 \n", "[550]\tvalidation-rmse:6.31692 \n", "[551]\tvalidation-rmse:6.31705 \n", "[552]\tvalidation-rmse:6.31781 \n", "[553]\tvalidation-rmse:6.31794 \n", "[554]\tvalidation-rmse:6.31740 \n", "[555]\tvalidation-rmse:6.31804 \n", "[556]\tvalidation-rmse:6.31783 \n", "[557]\tvalidation-rmse:6.31716 \n", "[558]\tvalidation-rmse:6.31695 \n", "[559]\tvalidation-rmse:6.31699 \n", "[560]\tvalidation-rmse:6.31706 \n", "[561]\tvalidation-rmse:6.31706 \n", "[562]\tvalidation-rmse:6.31599 \n", "[563]\tvalidation-rmse:6.31647 \n", "[564]\tvalidation-rmse:6.31660 \n", "[565]\tvalidation-rmse:6.31658 \n", "[566]\tvalidation-rmse:6.31715 \n", "[567]\tvalidation-rmse:6.31751 \n", "[568]\tvalidation-rmse:6.31754 \n", "[569]\tvalidation-rmse:6.31737 \n", "[570]\tvalidation-rmse:6.31700 \n", "[571]\tvalidation-rmse:6.31597 \n", "[572]\tvalidation-rmse:6.31591 \n", "[573]\tvalidation-rmse:6.31570 \n", "[574]\tvalidation-rmse:6.31570 \n", "[575]\tvalidation-rmse:6.31627 \n", "[576]\tvalidation-rmse:6.31630 \n", "[577]\tvalidation-rmse:6.31611 \n", "[578]\tvalidation-rmse:6.31627 \n", "[579]\tvalidation-rmse:6.31636 \n", "[580]\tvalidation-rmse:6.31640 \n", "[581]\tvalidation-rmse:6.31619 \n", "[582]\tvalidation-rmse:6.31666 \n", "[583]\tvalidation-rmse:6.31708 \n", "[584]\tvalidation-rmse:6.31726 \n", "[585]\tvalidation-rmse:6.31749 \n", "[586]\tvalidation-rmse:6.31723 \n", "[587]\tvalidation-rmse:6.31676 \n", "[588]\tvalidation-rmse:6.31646 \n", "[589]\tvalidation-rmse:6.31630 \n", "[590]\tvalidation-rmse:6.31657 \n", "[591]\tvalidation-rmse:6.31614 \n", "[592]\tvalidation-rmse:6.31595 \n", "[593]\tvalidation-rmse:6.31619 \n", "[594]\tvalidation-rmse:6.31629 \n", "[595]\tvalidation-rmse:6.31634 \n", "[596]\tvalidation-rmse:6.31791 \n", "[597]\tvalidation-rmse:6.31810 \n", "[598]\tvalidation-rmse:6.31730 \n", "[599]\tvalidation-rmse:6.31776 \n", "[600]\tvalidation-rmse:6.31800 \n", "[601]\tvalidation-rmse:6.31832 \n", "[602]\tvalidation-rmse:6.31827 \n", "[603]\tvalidation-rmse:6.31903 \n", "[604]\tvalidation-rmse:6.31917 \n", "[605]\tvalidation-rmse:6.31918 \n", "[606]\tvalidation-rmse:6.31908 \n", "[607]\tvalidation-rmse:6.31912 \n", "[608]\tvalidation-rmse:6.31923 \n", "[609]\tvalidation-rmse:6.31960 \n", "[610]\tvalidation-rmse:6.32004 \n", "[611]\tvalidation-rmse:6.32009 \n", "[612]\tvalidation-rmse:6.32001 \n", "[613]\tvalidation-rmse:6.32042 \n", "[614]\tvalidation-rmse:6.32046 \n", "[615]\tvalidation-rmse:6.32032 \n", "[616]\tvalidation-rmse:6.32054 \n", "[617]\tvalidation-rmse:6.32041 \n", "[618]\tvalidation-rmse:6.32097 \n", "[619]\tvalidation-rmse:6.32132 \n", "[620]\tvalidation-rmse:6.32137 \n", "[621]\tvalidation-rmse:6.32175 \n", "[622]\tvalidation-rmse:6.32172 \n", "[12:49:49] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.21742 \n", "[1]\tvalidation-rmse:8.58470 \n", "[2]\tvalidation-rmse:7.28742 \n", "[3]\tvalidation-rmse:6.83830 \n", "[4]\tvalidation-rmse:6.65775 \n", "[5]\tvalidation-rmse:6.57839 \n", "[6]\tvalidation-rmse:6.53644 \n", "[7]\tvalidation-rmse:6.51776 \n", "[8]\tvalidation-rmse:6.50818 \n", "[9]\tvalidation-rmse:6.50172 \n", "[10]\tvalidation-rmse:6.49650 \n", "[11]\tvalidation-rmse:6.48956 \n", "[12]\tvalidation-rmse:6.48298 \n", "[13]\tvalidation-rmse:6.47936 \n", "[14]\tvalidation-rmse:6.47461 \n", "[15]\tvalidation-rmse:6.47099 \n", "[16]\tvalidation-rmse:6.46963 \n", "[17]\tvalidation-rmse:6.46611 \n", "[18]\tvalidation-rmse:6.46395 \n", "[19]\tvalidation-rmse:6.46219 \n", "[20]\tvalidation-rmse:6.46039 \n", "[21]\tvalidation-rmse:6.45928 \n", "[22]\tvalidation-rmse:6.45708 \n", "[23]\tvalidation-rmse:6.45498 \n", "[24]\tvalidation-rmse:6.45193 \n", "[25]\tvalidation-rmse:6.45074 \n", "[26]\tvalidation-rmse:6.45006 \n", "[27]\tvalidation-rmse:6.44820 \n", "[28]\tvalidation-rmse:6.44685 \n", "[29]\tvalidation-rmse:6.44605 \n", "[30]\tvalidation-rmse:6.44601 \n", "[31]\tvalidation-rmse:6.44575 \n", "[32]\tvalidation-rmse:6.44521 \n", "[33]\tvalidation-rmse:6.44508 \n", "[34]\tvalidation-rmse:6.44442 \n", "[35]\tvalidation-rmse:6.44042 \n", "[36]\tvalidation-rmse:6.43907 \n", "[37]\tvalidation-rmse:6.43778 \n", "[38]\tvalidation-rmse:6.43810 \n", "[39]\tvalidation-rmse:6.43692 \n", "[40]\tvalidation-rmse:6.43787 \n", "[41]\tvalidation-rmse:6.43763 \n", "[42]\tvalidation-rmse:6.43685 \n", "[43]\tvalidation-rmse:6.43500 \n", "[44]\tvalidation-rmse:6.43524 \n", "[45]\tvalidation-rmse:6.43659 \n", "[46]\tvalidation-rmse:6.43649 \n", "[47]\tvalidation-rmse:6.43526 \n", "[48]\tvalidation-rmse:6.43444 \n", "[49]\tvalidation-rmse:6.43408 \n", "[50]\tvalidation-rmse:6.43549 \n", "[51]\tvalidation-rmse:6.43433 \n", "[52]\tvalidation-rmse:6.43382 \n", "[53]\tvalidation-rmse:6.43483 \n", "[54]\tvalidation-rmse:6.43622 \n", "[55]\tvalidation-rmse:6.43480 \n", "[56]\tvalidation-rmse:6.43554 \n", "[57]\tvalidation-rmse:6.43617 \n", "[58]\tvalidation-rmse:6.43620 \n", "[59]\tvalidation-rmse:6.43672 \n", "[60]\tvalidation-rmse:6.43750 \n", "[61]\tvalidation-rmse:6.43719 \n", "[62]\tvalidation-rmse:6.43943 \n", "[63]\tvalidation-rmse:6.43935 \n", "[64]\tvalidation-rmse:6.43923 \n", "[65]\tvalidation-rmse:6.43890 \n", "[66]\tvalidation-rmse:6.43983 \n", "[67]\tvalidation-rmse:6.43956 \n", "[68]\tvalidation-rmse:6.44110 \n", "[69]\tvalidation-rmse:6.44172 \n", "[70]\tvalidation-rmse:6.44489 \n", "[71]\tvalidation-rmse:6.44672 \n", "[72]\tvalidation-rmse:6.44677 \n", "[73]\tvalidation-rmse:6.44787 \n", "[74]\tvalidation-rmse:6.44876 \n", "[75]\tvalidation-rmse:6.44941 \n", "[76]\tvalidation-rmse:6.45038 \n", "[77]\tvalidation-rmse:6.45040 \n", "[78]\tvalidation-rmse:6.45138 \n", "[79]\tvalidation-rmse:6.45111 \n", "[80]\tvalidation-rmse:6.44981 \n", "[81]\tvalidation-rmse:6.45016 \n", "[82]\tvalidation-rmse:6.44978 \n", "[83]\tvalidation-rmse:6.45023 \n", "[84]\tvalidation-rmse:6.45107 \n", "[85]\tvalidation-rmse:6.45219 \n", "[86]\tvalidation-rmse:6.45215 \n", "[87]\tvalidation-rmse:6.45548 \n", "[88]\tvalidation-rmse:6.45677 \n", "[89]\tvalidation-rmse:6.45709 \n", "[90]\tvalidation-rmse:6.45835 \n", "[91]\tvalidation-rmse:6.45849 \n", "[92]\tvalidation-rmse:6.46092 \n", "[93]\tvalidation-rmse:6.46091 \n", "[94]\tvalidation-rmse:6.46120 \n", "[95]\tvalidation-rmse:6.46069 \n", "[96]\tvalidation-rmse:6.46062 \n", "[97]\tvalidation-rmse:6.46116 \n", "[98]\tvalidation-rmse:6.46202 \n", "[99]\tvalidation-rmse:6.46131 \n", "[100]\tvalidation-rmse:6.46084 \n", "[101]\tvalidation-rmse:6.46148 \n", "[12:50:25] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.95977 \n", "[1]\tvalidation-rmse:18.82241 \n", "[2]\tvalidation-rmse:17.77106 \n", "[3]\tvalidation-rmse:16.80110 \n", "[4]\tvalidation-rmse:15.90780 \n", "[5]\tvalidation-rmse:15.08661 \n", "[6]\tvalidation-rmse:14.33073 \n", "[7]\tvalidation-rmse:13.63435 \n", "[8]\tvalidation-rmse:12.99986 \n", "[9]\tvalidation-rmse:12.41287 \n", "[10]\tvalidation-rmse:11.87931 \n", "[11]\tvalidation-rmse:11.38960 \n", "[12]\tvalidation-rmse:10.94480 \n", "[13]\tvalidation-rmse:10.53626 \n", "[14]\tvalidation-rmse:10.16743 \n", "[15]\tvalidation-rmse:9.83092 \n", "[16]\tvalidation-rmse:9.52314 \n", "[17]\tvalidation-rmse:9.24688 \n", "[18]\tvalidation-rmse:8.99610 \n", "[19]\tvalidation-rmse:8.76825 \n", "[20]\tvalidation-rmse:8.56071 \n", "[21]\tvalidation-rmse:8.37566 \n", "[22]\tvalidation-rmse:8.20665 \n", "[23]\tvalidation-rmse:8.05413 \n", "[24]\tvalidation-rmse:7.91750 \n", "[25]\tvalidation-rmse:7.79350 \n", "[26]\tvalidation-rmse:7.68009 \n", "[27]\tvalidation-rmse:7.57945 \n", "[28]\tvalidation-rmse:7.48799 \n", "[29]\tvalidation-rmse:7.40583 \n", "[30]\tvalidation-rmse:7.32957 \n", "[31]\tvalidation-rmse:7.26208 \n", "[32]\tvalidation-rmse:7.20131 \n", "[33]\tvalidation-rmse:7.14401 \n", "[34]\tvalidation-rmse:7.09505 \n", "[35]\tvalidation-rmse:7.04886 \n", "[36]\tvalidation-rmse:7.00796 \n", "[37]\tvalidation-rmse:6.97064 \n", "[38]\tvalidation-rmse:6.93575 \n", "[39]\tvalidation-rmse:6.90474 \n", "[40]\tvalidation-rmse:6.87691 \n", "[41]\tvalidation-rmse:6.85117 \n", "[42]\tvalidation-rmse:6.82637 \n", "[43]\tvalidation-rmse:6.80509 \n", "[44]\tvalidation-rmse:6.78564 \n", "[45]\tvalidation-rmse:6.76721 \n", "[46]\tvalidation-rmse:6.75102 \n", "[47]\tvalidation-rmse:6.73566 \n", "[48]\tvalidation-rmse:6.72139 \n", "[49]\tvalidation-rmse:6.70802 \n", "[50]\tvalidation-rmse:6.69609 \n", "[51]\tvalidation-rmse:6.68565 \n", "[52]\tvalidation-rmse:6.67540 \n", "[53]\tvalidation-rmse:6.66667 \n", "[54]\tvalidation-rmse:6.65854 \n", "[55]\tvalidation-rmse:6.65036 \n", "[56]\tvalidation-rmse:6.64354 \n", "[57]\tvalidation-rmse:6.63715 \n", "[58]\tvalidation-rmse:6.63062 \n", "[59]\tvalidation-rmse:6.62449 \n", "[60]\tvalidation-rmse:6.61895 \n", "[61]\tvalidation-rmse:6.61396 \n", "[62]\tvalidation-rmse:6.60927 \n", "[63]\tvalidation-rmse:6.60493 \n", "[64]\tvalidation-rmse:6.60109 \n", "[65]\tvalidation-rmse:6.59685 \n", "[66]\tvalidation-rmse:6.59357 \n", "[67]\tvalidation-rmse:6.58998 \n", "[68]\tvalidation-rmse:6.58684 \n", "[69]\tvalidation-rmse:6.58380 \n", "[70]\tvalidation-rmse:6.58106 \n", "[71]\tvalidation-rmse:6.57870 \n", "[72]\tvalidation-rmse:6.57656 \n", "[73]\tvalidation-rmse:6.57439 \n", "[74]\tvalidation-rmse:6.57275 \n", "[75]\tvalidation-rmse:6.57100 \n", "[76]\tvalidation-rmse:6.56911 \n", "[77]\tvalidation-rmse:6.56698 \n", "[78]\tvalidation-rmse:6.56514 \n", "[79]\tvalidation-rmse:6.56327 \n", "[80]\tvalidation-rmse:6.56211 \n", "[81]\tvalidation-rmse:6.56075 \n", "[82]\tvalidation-rmse:6.55938 \n", "[83]\tvalidation-rmse:6.55784 \n", "[84]\tvalidation-rmse:6.55622 \n", "[85]\tvalidation-rmse:6.55505 \n", "[86]\tvalidation-rmse:6.55401 \n", "[87]\tvalidation-rmse:6.55320 \n", "[88]\tvalidation-rmse:6.55229 \n", "[89]\tvalidation-rmse:6.55164 \n", "[90]\tvalidation-rmse:6.55027 \n", "[91]\tvalidation-rmse:6.54934 \n", "[92]\tvalidation-rmse:6.54843 \n", "[93]\tvalidation-rmse:6.54707 \n", "[94]\tvalidation-rmse:6.54643 \n", "[95]\tvalidation-rmse:6.54564 \n", "[96]\tvalidation-rmse:6.54449 \n", "[97]\tvalidation-rmse:6.54368 \n", "[98]\tvalidation-rmse:6.54273 \n", "[99]\tvalidation-rmse:6.54199 \n", "[100]\tvalidation-rmse:6.54134 \n", "[101]\tvalidation-rmse:6.54086 \n", "[102]\tvalidation-rmse:6.54010 \n", "[103]\tvalidation-rmse:6.53890 \n", "[104]\tvalidation-rmse:6.53837 \n", "[105]\tvalidation-rmse:6.53752 \n", "[106]\tvalidation-rmse:6.53664 \n", "[107]\tvalidation-rmse:6.53619 \n", "[108]\tvalidation-rmse:6.53562 \n", "[109]\tvalidation-rmse:6.53522 \n", "[110]\tvalidation-rmse:6.53491 \n", "[111]\tvalidation-rmse:6.53449 \n", "[112]\tvalidation-rmse:6.53407 \n", "[113]\tvalidation-rmse:6.53320 \n", "[114]\tvalidation-rmse:6.53293 \n", "[115]\tvalidation-rmse:6.53244 \n", "[116]\tvalidation-rmse:6.53176 \n", "[117]\tvalidation-rmse:6.53131 \n", "[118]\tvalidation-rmse:6.53075 \n", "[119]\tvalidation-rmse:6.53009 \n", "[120]\tvalidation-rmse:6.52966 \n", "[121]\tvalidation-rmse:6.52922 \n", "[122]\tvalidation-rmse:6.52849 \n", "[123]\tvalidation-rmse:6.52812 \n", "[124]\tvalidation-rmse:6.52751 \n", "[125]\tvalidation-rmse:6.52702 \n", "[126]\tvalidation-rmse:6.52652 \n", "[127]\tvalidation-rmse:6.52585 \n", "[128]\tvalidation-rmse:6.52536 \n", "[129]\tvalidation-rmse:6.52517 \n", "[130]\tvalidation-rmse:6.52494 \n", "[131]\tvalidation-rmse:6.52414 \n", "[132]\tvalidation-rmse:6.52380 \n", "[133]\tvalidation-rmse:6.52328 \n", "[134]\tvalidation-rmse:6.52255 \n", "[135]\tvalidation-rmse:6.52218 \n", "[136]\tvalidation-rmse:6.52183 \n", "[137]\tvalidation-rmse:6.52140 \n", "[138]\tvalidation-rmse:6.52085 \n", "[139]\tvalidation-rmse:6.52050 \n", "[140]\tvalidation-rmse:6.52022 \n", "[141]\tvalidation-rmse:6.51994 \n", "[142]\tvalidation-rmse:6.51964 \n", "[143]\tvalidation-rmse:6.51943 \n", "[144]\tvalidation-rmse:6.51919 \n", "[145]\tvalidation-rmse:6.51880 \n", "[146]\tvalidation-rmse:6.51843 \n", "[147]\tvalidation-rmse:6.51822 \n", "[148]\tvalidation-rmse:6.51794 \n", "[149]\tvalidation-rmse:6.51752 \n", "[150]\tvalidation-rmse:6.51689 \n", "[151]\tvalidation-rmse:6.51656 \n", "[152]\tvalidation-rmse:6.51626 \n", "[153]\tvalidation-rmse:6.51573 \n", "[154]\tvalidation-rmse:6.51525 \n", "[155]\tvalidation-rmse:6.51490 \n", "[156]\tvalidation-rmse:6.51474 \n", "[157]\tvalidation-rmse:6.51438 \n", "[158]\tvalidation-rmse:6.51408 \n", "[159]\tvalidation-rmse:6.51377 \n", "[160]\tvalidation-rmse:6.51353 \n", "[161]\tvalidation-rmse:6.51323 \n", "[162]\tvalidation-rmse:6.51289 \n", "[163]\tvalidation-rmse:6.51257 \n", "[164]\tvalidation-rmse:6.51184 \n", "[165]\tvalidation-rmse:6.51160 \n", "[166]\tvalidation-rmse:6.51120 \n", "[167]\tvalidation-rmse:6.51073 \n", "[168]\tvalidation-rmse:6.51043 \n", "[169]\tvalidation-rmse:6.50998 \n", "[170]\tvalidation-rmse:6.50978 \n", "[171]\tvalidation-rmse:6.50935 \n", "[172]\tvalidation-rmse:6.50875 \n", "[173]\tvalidation-rmse:6.50851 \n", "[174]\tvalidation-rmse:6.50815 \n", "[175]\tvalidation-rmse:6.50751 \n", "[176]\tvalidation-rmse:6.50710 \n", "[177]\tvalidation-rmse:6.50661 \n", "[178]\tvalidation-rmse:6.50632 \n", "[179]\tvalidation-rmse:6.50612 \n", "[180]\tvalidation-rmse:6.50563 \n", "[181]\tvalidation-rmse:6.50533 \n", "[182]\tvalidation-rmse:6.50482 \n", "[183]\tvalidation-rmse:6.50455 \n", "[184]\tvalidation-rmse:6.50435 \n", "[185]\tvalidation-rmse:6.50412 \n", "[186]\tvalidation-rmse:6.50339 \n", "[187]\tvalidation-rmse:6.50325 \n", "[188]\tvalidation-rmse:6.50321 \n", "[189]\tvalidation-rmse:6.50292 \n", "[190]\tvalidation-rmse:6.50272 \n", "[191]\tvalidation-rmse:6.50237 \n", "[192]\tvalidation-rmse:6.50219 \n", "[193]\tvalidation-rmse:6.50205 \n", "[194]\tvalidation-rmse:6.50173 \n", "[195]\tvalidation-rmse:6.50151 \n", "[196]\tvalidation-rmse:6.50110 \n", "[197]\tvalidation-rmse:6.50069 \n", "[198]\tvalidation-rmse:6.50050 \n", "[199]\tvalidation-rmse:6.50022 \n", "[200]\tvalidation-rmse:6.49960 \n", "[201]\tvalidation-rmse:6.49918 \n", "[202]\tvalidation-rmse:6.49884 \n", "[203]\tvalidation-rmse:6.49879 \n", "[204]\tvalidation-rmse:6.49861 \n", "[205]\tvalidation-rmse:6.49840 \n", "[206]\tvalidation-rmse:6.49796 \n", "[207]\tvalidation-rmse:6.49761 \n", "[208]\tvalidation-rmse:6.49731 \n", "[209]\tvalidation-rmse:6.49733 \n", "[210]\tvalidation-rmse:6.49686 \n", "[211]\tvalidation-rmse:6.49676 \n", "[212]\tvalidation-rmse:6.49631 \n", "[213]\tvalidation-rmse:6.49596 \n", "[214]\tvalidation-rmse:6.49591 \n", "[215]\tvalidation-rmse:6.49559 \n", "[216]\tvalidation-rmse:6.49514 \n", "[217]\tvalidation-rmse:6.49488 \n", "[218]\tvalidation-rmse:6.49457 \n", "[219]\tvalidation-rmse:6.49436 \n", "[220]\tvalidation-rmse:6.49410 \n", "[221]\tvalidation-rmse:6.49384 \n", "[222]\tvalidation-rmse:6.49358 \n", "[223]\tvalidation-rmse:6.49335 \n", "[224]\tvalidation-rmse:6.49302 \n", "[225]\tvalidation-rmse:6.49286 \n", "[226]\tvalidation-rmse:6.49260 \n", "[227]\tvalidation-rmse:6.49207 \n", "[228]\tvalidation-rmse:6.49163 \n", "[229]\tvalidation-rmse:6.49139 \n", "[230]\tvalidation-rmse:6.49106 \n", "[231]\tvalidation-rmse:6.49078 \n", "[232]\tvalidation-rmse:6.49042 \n", "[233]\tvalidation-rmse:6.49010 \n", "[234]\tvalidation-rmse:6.48957 \n", "[235]\tvalidation-rmse:6.48956 \n", "[236]\tvalidation-rmse:6.48911 \n", "[237]\tvalidation-rmse:6.48877 \n", "[238]\tvalidation-rmse:6.48846 \n", "[239]\tvalidation-rmse:6.48819 \n", "[240]\tvalidation-rmse:6.48809 \n", "[241]\tvalidation-rmse:6.48790 \n", "[242]\tvalidation-rmse:6.48766 \n", "[243]\tvalidation-rmse:6.48758 \n", "[244]\tvalidation-rmse:6.48736 \n", "[245]\tvalidation-rmse:6.48735 \n", "[246]\tvalidation-rmse:6.48722 \n", "[247]\tvalidation-rmse:6.48711 \n", "[248]\tvalidation-rmse:6.48690 \n", "[249]\tvalidation-rmse:6.48670 \n", "[250]\tvalidation-rmse:6.48652 \n", "[251]\tvalidation-rmse:6.48636 \n", "[252]\tvalidation-rmse:6.48615 \n", "[253]\tvalidation-rmse:6.48598 \n", "[254]\tvalidation-rmse:6.48570 \n", "[255]\tvalidation-rmse:6.48528 \n", "[256]\tvalidation-rmse:6.48513 \n", "[257]\tvalidation-rmse:6.48470 \n", "[258]\tvalidation-rmse:6.48446 \n", "[259]\tvalidation-rmse:6.48412 \n", "[260]\tvalidation-rmse:6.48401 \n", "[261]\tvalidation-rmse:6.48366 \n", "[262]\tvalidation-rmse:6.48349 \n", "[263]\tvalidation-rmse:6.48331 \n", "[264]\tvalidation-rmse:6.48299 \n", "[265]\tvalidation-rmse:6.48290 \n", "[266]\tvalidation-rmse:6.48276 \n", "[267]\tvalidation-rmse:6.48250 \n", "[268]\tvalidation-rmse:6.48243 \n", "[269]\tvalidation-rmse:6.48208 \n", "[270]\tvalidation-rmse:6.48186 \n", "[271]\tvalidation-rmse:6.48156 \n", "[272]\tvalidation-rmse:6.48134 \n", "[273]\tvalidation-rmse:6.48110 \n", "[274]\tvalidation-rmse:6.48081 \n", "[275]\tvalidation-rmse:6.48058 \n", "[276]\tvalidation-rmse:6.48046 \n", "[277]\tvalidation-rmse:6.48048 \n", "[278]\tvalidation-rmse:6.48027 \n", "[279]\tvalidation-rmse:6.47998 \n", "[280]\tvalidation-rmse:6.47976 \n", "[281]\tvalidation-rmse:6.47959 \n", "[282]\tvalidation-rmse:6.47934 \n", "[283]\tvalidation-rmse:6.47902 \n", "[284]\tvalidation-rmse:6.47864 \n", "[285]\tvalidation-rmse:6.47837 \n", "[286]\tvalidation-rmse:6.47817 \n", "[287]\tvalidation-rmse:6.47791 \n", "[288]\tvalidation-rmse:6.47740 \n", "[289]\tvalidation-rmse:6.47727 \n", "[290]\tvalidation-rmse:6.47698 \n", "[291]\tvalidation-rmse:6.47667 \n", "[292]\tvalidation-rmse:6.47651 \n", "[293]\tvalidation-rmse:6.47644 \n", "[294]\tvalidation-rmse:6.47623 \n", "[295]\tvalidation-rmse:6.47594 \n", "[296]\tvalidation-rmse:6.47536 \n", "[297]\tvalidation-rmse:6.47505 \n", "[298]\tvalidation-rmse:6.47479 \n", "[299]\tvalidation-rmse:6.47449 \n", "[300]\tvalidation-rmse:6.47403 \n", "[301]\tvalidation-rmse:6.47383 \n", "[302]\tvalidation-rmse:6.47354 \n", "[303]\tvalidation-rmse:6.47320 \n", "[304]\tvalidation-rmse:6.47318 \n", "[305]\tvalidation-rmse:6.47302 \n", "[306]\tvalidation-rmse:6.47274 \n", "[307]\tvalidation-rmse:6.47279 \n", "[308]\tvalidation-rmse:6.47249 \n", "[309]\tvalidation-rmse:6.47222 \n", "[310]\tvalidation-rmse:6.47203 \n", "[311]\tvalidation-rmse:6.47193 \n", "[312]\tvalidation-rmse:6.47174 \n", "[313]\tvalidation-rmse:6.47163 \n", "[314]\tvalidation-rmse:6.47176 \n", "[315]\tvalidation-rmse:6.47150 \n", "[316]\tvalidation-rmse:6.47137 \n", "[317]\tvalidation-rmse:6.47136 \n", "[318]\tvalidation-rmse:6.47109 \n", "[319]\tvalidation-rmse:6.47095 \n", "[320]\tvalidation-rmse:6.47081 \n", "[321]\tvalidation-rmse:6.47056 \n", "[322]\tvalidation-rmse:6.47040 \n", "[323]\tvalidation-rmse:6.47031 \n", "[324]\tvalidation-rmse:6.47007 \n", "[325]\tvalidation-rmse:6.46987 \n", "[326]\tvalidation-rmse:6.46950 \n", "[327]\tvalidation-rmse:6.46933 \n", "[328]\tvalidation-rmse:6.46943 \n", "[329]\tvalidation-rmse:6.46925 \n", "[330]\tvalidation-rmse:6.46903 \n", "[331]\tvalidation-rmse:6.46888 \n", "[332]\tvalidation-rmse:6.46873 \n", "[333]\tvalidation-rmse:6.46844 \n", "[334]\tvalidation-rmse:6.46820 \n", "[335]\tvalidation-rmse:6.46826 \n", "[336]\tvalidation-rmse:6.46801 \n", "[337]\tvalidation-rmse:6.46782 \n", "[338]\tvalidation-rmse:6.46759 \n", "[339]\tvalidation-rmse:6.46763 \n", "[340]\tvalidation-rmse:6.46678 \n", "[341]\tvalidation-rmse:6.46653 \n", "[342]\tvalidation-rmse:6.46627 \n", "[343]\tvalidation-rmse:6.46626 \n", "[344]\tvalidation-rmse:6.46603 \n", "[345]\tvalidation-rmse:6.46592 \n", "[346]\tvalidation-rmse:6.46559 \n", "[347]\tvalidation-rmse:6.46536 \n", "[348]\tvalidation-rmse:6.46510 \n", "[349]\tvalidation-rmse:6.46502 \n", "[350]\tvalidation-rmse:6.46473 \n", "[351]\tvalidation-rmse:6.46451 \n", "[352]\tvalidation-rmse:6.46432 \n", "[353]\tvalidation-rmse:6.46422 \n", "[354]\tvalidation-rmse:6.46408 \n", "[355]\tvalidation-rmse:6.46397 \n", "[356]\tvalidation-rmse:6.46388 \n", "[357]\tvalidation-rmse:6.46389 \n", "[358]\tvalidation-rmse:6.46363 \n", "[359]\tvalidation-rmse:6.46335 \n", "[360]\tvalidation-rmse:6.46312 \n", "[361]\tvalidation-rmse:6.46278 \n", "[362]\tvalidation-rmse:6.46259 \n", "[363]\tvalidation-rmse:6.46240 \n", "[364]\tvalidation-rmse:6.46230 \n", "[365]\tvalidation-rmse:6.46211 \n", "[366]\tvalidation-rmse:6.46172 \n", "[367]\tvalidation-rmse:6.46149 \n", "[368]\tvalidation-rmse:6.46133 \n", "[369]\tvalidation-rmse:6.46092 \n", "[370]\tvalidation-rmse:6.46085 \n", "[371]\tvalidation-rmse:6.46056 \n", "[372]\tvalidation-rmse:6.46031 \n", "[373]\tvalidation-rmse:6.46010 \n", "[374]\tvalidation-rmse:6.45976 \n", "[375]\tvalidation-rmse:6.45969 \n", "[376]\tvalidation-rmse:6.45945 \n", "[377]\tvalidation-rmse:6.45917 \n", "[378]\tvalidation-rmse:6.45904 \n", "[379]\tvalidation-rmse:6.45898 \n", "[380]\tvalidation-rmse:6.45877 \n", "[381]\tvalidation-rmse:6.45852 \n", "[382]\tvalidation-rmse:6.45827 \n", "[383]\tvalidation-rmse:6.45801 \n", "[384]\tvalidation-rmse:6.45798 \n", "[385]\tvalidation-rmse:6.45796 \n", "[386]\tvalidation-rmse:6.45768 \n", "[387]\tvalidation-rmse:6.45749 \n", "[388]\tvalidation-rmse:6.45732 \n", "[389]\tvalidation-rmse:6.45712 \n", "[390]\tvalidation-rmse:6.45672 \n", "[391]\tvalidation-rmse:6.45663 \n", "[392]\tvalidation-rmse:6.45650 \n", "[393]\tvalidation-rmse:6.45639 \n", "[394]\tvalidation-rmse:6.45632 \n", "[395]\tvalidation-rmse:6.45635 \n", "[396]\tvalidation-rmse:6.45631 \n", "[397]\tvalidation-rmse:6.45609 \n", "[398]\tvalidation-rmse:6.45594 \n", "[399]\tvalidation-rmse:6.45577 \n", "[400]\tvalidation-rmse:6.45581 \n", "[401]\tvalidation-rmse:6.45573 \n", "[402]\tvalidation-rmse:6.45568 \n", "[403]\tvalidation-rmse:6.45561 \n", "[404]\tvalidation-rmse:6.45549 \n", "[405]\tvalidation-rmse:6.45528 \n", "[406]\tvalidation-rmse:6.45503 \n", "[407]\tvalidation-rmse:6.45483 \n", "[408]\tvalidation-rmse:6.45473 \n", "[409]\tvalidation-rmse:6.45466 \n", "[410]\tvalidation-rmse:6.45438 \n", "[411]\tvalidation-rmse:6.45418 \n", "[412]\tvalidation-rmse:6.45415 \n", "[413]\tvalidation-rmse:6.45389 \n", "[414]\tvalidation-rmse:6.45362 \n", "[415]\tvalidation-rmse:6.45365 \n", "[416]\tvalidation-rmse:6.45348 \n", "[417]\tvalidation-rmse:6.45362 \n", "[418]\tvalidation-rmse:6.45339 \n", "[419]\tvalidation-rmse:6.45326 \n", "[420]\tvalidation-rmse:6.45324 \n", "[421]\tvalidation-rmse:6.45314 \n", "[422]\tvalidation-rmse:6.45302 \n", "[423]\tvalidation-rmse:6.45322 \n", "[424]\tvalidation-rmse:6.45260 \n", "[425]\tvalidation-rmse:6.45242 \n", "[426]\tvalidation-rmse:6.45238 \n", "[427]\tvalidation-rmse:6.45227 \n", "[428]\tvalidation-rmse:6.45211 \n", "[429]\tvalidation-rmse:6.45190 \n", "[430]\tvalidation-rmse:6.45174 \n", "[431]\tvalidation-rmse:6.45159 \n", "[432]\tvalidation-rmse:6.45143 \n", "[433]\tvalidation-rmse:6.45131 \n", "[434]\tvalidation-rmse:6.45121 \n", "[435]\tvalidation-rmse:6.45104 \n", "[436]\tvalidation-rmse:6.45078 \n", "[437]\tvalidation-rmse:6.45059 \n", "[438]\tvalidation-rmse:6.45057 \n", "[439]\tvalidation-rmse:6.45051 \n", "[440]\tvalidation-rmse:6.45035 \n", "[441]\tvalidation-rmse:6.45028 \n", "[442]\tvalidation-rmse:6.45003 \n", "[443]\tvalidation-rmse:6.44988 \n", "[444]\tvalidation-rmse:6.44970 \n", "[445]\tvalidation-rmse:6.44953 \n", "[446]\tvalidation-rmse:6.44923 \n", "[447]\tvalidation-rmse:6.44920 \n", "[448]\tvalidation-rmse:6.44893 \n", "[449]\tvalidation-rmse:6.44892 \n", "[450]\tvalidation-rmse:6.44880 \n", "[451]\tvalidation-rmse:6.44869 \n", "[452]\tvalidation-rmse:6.44849 \n", "[453]\tvalidation-rmse:6.44828 \n", "[454]\tvalidation-rmse:6.44818 \n", "[455]\tvalidation-rmse:6.44815 \n", "[456]\tvalidation-rmse:6.44807 \n", "[457]\tvalidation-rmse:6.44779 \n", "[458]\tvalidation-rmse:6.44766 \n", "[459]\tvalidation-rmse:6.44745 \n", "[460]\tvalidation-rmse:6.44718 \n", "[461]\tvalidation-rmse:6.44708 \n", "[462]\tvalidation-rmse:6.44663 \n", "[463]\tvalidation-rmse:6.44645 \n", "[464]\tvalidation-rmse:6.44644 \n", "[465]\tvalidation-rmse:6.44630 \n", "[466]\tvalidation-rmse:6.44620 \n", "[467]\tvalidation-rmse:6.44611 \n", "[468]\tvalidation-rmse:6.44599 \n", "[469]\tvalidation-rmse:6.44581 \n", "[470]\tvalidation-rmse:6.44568 \n", "[471]\tvalidation-rmse:6.44552 \n", "[472]\tvalidation-rmse:6.44538 \n", "[473]\tvalidation-rmse:6.44548 \n", "[474]\tvalidation-rmse:6.44530 \n", "[475]\tvalidation-rmse:6.44514 \n", "[476]\tvalidation-rmse:6.44518 \n", "[477]\tvalidation-rmse:6.44513 \n", "[478]\tvalidation-rmse:6.44488 \n", "[479]\tvalidation-rmse:6.44462 \n", "[480]\tvalidation-rmse:6.44450 \n", "[481]\tvalidation-rmse:6.44443 \n", "[482]\tvalidation-rmse:6.44460 \n", "[483]\tvalidation-rmse:6.44432 \n", "[484]\tvalidation-rmse:6.44416 \n", "[485]\tvalidation-rmse:6.44399 \n", "[486]\tvalidation-rmse:6.44370 \n", "[487]\tvalidation-rmse:6.44369 \n", "[488]\tvalidation-rmse:6.44344 \n", "[489]\tvalidation-rmse:6.44330 \n", "[490]\tvalidation-rmse:6.44309 \n", "[491]\tvalidation-rmse:6.44296 \n", "[492]\tvalidation-rmse:6.44290 \n", "[493]\tvalidation-rmse:6.44271 \n", "[494]\tvalidation-rmse:6.44259 \n", "[495]\tvalidation-rmse:6.44247 \n", "[496]\tvalidation-rmse:6.44247 \n", "[497]\tvalidation-rmse:6.44250 \n", "[498]\tvalidation-rmse:6.44239 \n", "[499]\tvalidation-rmse:6.44233 \n", "[500]\tvalidation-rmse:6.44215 \n", "[501]\tvalidation-rmse:6.44199 \n", "[502]\tvalidation-rmse:6.44180 \n", "[503]\tvalidation-rmse:6.44173 \n", "[504]\tvalidation-rmse:6.44159 \n", "[505]\tvalidation-rmse:6.44155 \n", "[506]\tvalidation-rmse:6.44142 \n", "[507]\tvalidation-rmse:6.44143 \n", "[508]\tvalidation-rmse:6.44125 \n", "[509]\tvalidation-rmse:6.44109 \n", "[510]\tvalidation-rmse:6.44091 \n", "[511]\tvalidation-rmse:6.44075 \n", "[512]\tvalidation-rmse:6.44011 \n", "[513]\tvalidation-rmse:6.43992 \n", "[514]\tvalidation-rmse:6.43996 \n", "[515]\tvalidation-rmse:6.43992 \n", "[516]\tvalidation-rmse:6.43976 \n", "[517]\tvalidation-rmse:6.43955 \n", "[518]\tvalidation-rmse:6.43944 \n", "[519]\tvalidation-rmse:6.43959 \n", "[520]\tvalidation-rmse:6.43941 \n", "[521]\tvalidation-rmse:6.43922 \n", "[522]\tvalidation-rmse:6.43891 \n", "[523]\tvalidation-rmse:6.43891 \n", "[524]\tvalidation-rmse:6.43886 \n", "[525]\tvalidation-rmse:6.43885 \n", "[526]\tvalidation-rmse:6.43884 \n", "[527]\tvalidation-rmse:6.43871 \n", "[528]\tvalidation-rmse:6.43852 \n", "[529]\tvalidation-rmse:6.43829 \n", "[530]\tvalidation-rmse:6.43819 \n", "[531]\tvalidation-rmse:6.43803 \n", "[532]\tvalidation-rmse:6.43802 \n", "[533]\tvalidation-rmse:6.43796 \n", "[534]\tvalidation-rmse:6.43793 \n", "[535]\tvalidation-rmse:6.43790 \n", "[536]\tvalidation-rmse:6.43791 \n", "[537]\tvalidation-rmse:6.43777 \n", "[538]\tvalidation-rmse:6.43770 \n", "[539]\tvalidation-rmse:6.43764 \n", "[540]\tvalidation-rmse:6.43765 \n", "[541]\tvalidation-rmse:6.43763 \n", "[542]\tvalidation-rmse:6.43755 \n", "[543]\tvalidation-rmse:6.43740 \n", "[544]\tvalidation-rmse:6.43721 \n", "[545]\tvalidation-rmse:6.43704 \n", "[546]\tvalidation-rmse:6.43679 \n", "[547]\tvalidation-rmse:6.43666 \n", "[548]\tvalidation-rmse:6.43656 \n", "[549]\tvalidation-rmse:6.43647 \n", "[550]\tvalidation-rmse:6.43622 \n", "[551]\tvalidation-rmse:6.43622 \n", "[552]\tvalidation-rmse:6.43592 \n", "[553]\tvalidation-rmse:6.43577 \n", "[554]\tvalidation-rmse:6.43558 \n", "[555]\tvalidation-rmse:6.43546 \n", "[556]\tvalidation-rmse:6.43538 \n", "[557]\tvalidation-rmse:6.43521 \n", "[558]\tvalidation-rmse:6.43508 \n", "[559]\tvalidation-rmse:6.43502 \n", "[560]\tvalidation-rmse:6.43496 \n", "[561]\tvalidation-rmse:6.43484 \n", "[562]\tvalidation-rmse:6.43475 \n", "[563]\tvalidation-rmse:6.43467 \n", "[564]\tvalidation-rmse:6.43457 \n", "[565]\tvalidation-rmse:6.43422 \n", "[566]\tvalidation-rmse:6.43414 \n", "[567]\tvalidation-rmse:6.43406 \n", "[568]\tvalidation-rmse:6.43410 \n", "[569]\tvalidation-rmse:6.43389 \n", "[570]\tvalidation-rmse:6.43381 \n", "[571]\tvalidation-rmse:6.43346 \n", "[572]\tvalidation-rmse:6.43332 \n", "[573]\tvalidation-rmse:6.43325 \n", "[574]\tvalidation-rmse:6.43311 \n", "[575]\tvalidation-rmse:6.43307 \n", "[576]\tvalidation-rmse:6.43285 \n", "[577]\tvalidation-rmse:6.43283 \n", "[578]\tvalidation-rmse:6.43264 \n", "[579]\tvalidation-rmse:6.43263 \n", "[580]\tvalidation-rmse:6.43242 \n", "[581]\tvalidation-rmse:6.43222 \n", "[582]\tvalidation-rmse:6.43216 \n", "[583]\tvalidation-rmse:6.43212 \n", "[584]\tvalidation-rmse:6.43202 \n", "[585]\tvalidation-rmse:6.43217 \n", "[586]\tvalidation-rmse:6.43222 \n", "[587]\tvalidation-rmse:6.43212 \n", "[588]\tvalidation-rmse:6.43190 \n", "[589]\tvalidation-rmse:6.43174 \n", "[590]\tvalidation-rmse:6.43139 \n", "[591]\tvalidation-rmse:6.43135 \n", "[592]\tvalidation-rmse:6.43139 \n", "[593]\tvalidation-rmse:6.43121 \n", "[594]\tvalidation-rmse:6.43088 \n", "[595]\tvalidation-rmse:6.43072 \n", "[596]\tvalidation-rmse:6.43047 \n", "[597]\tvalidation-rmse:6.43041 \n", "[598]\tvalidation-rmse:6.43032 \n", "[599]\tvalidation-rmse:6.43027 \n", "[600]\tvalidation-rmse:6.43007 \n", "[601]\tvalidation-rmse:6.43001 \n", "[602]\tvalidation-rmse:6.42985 \n", "[603]\tvalidation-rmse:6.42970 \n", "[604]\tvalidation-rmse:6.42964 \n", "[605]\tvalidation-rmse:6.42954 \n", "[606]\tvalidation-rmse:6.42945 \n", "[607]\tvalidation-rmse:6.42930 \n", "[608]\tvalidation-rmse:6.42916 \n", "[609]\tvalidation-rmse:6.42919 \n", "[610]\tvalidation-rmse:6.42906 \n", "[611]\tvalidation-rmse:6.42910 \n", "[612]\tvalidation-rmse:6.42906 \n", "[613]\tvalidation-rmse:6.42912 \n", "[614]\tvalidation-rmse:6.42924 \n", "[615]\tvalidation-rmse:6.42884 \n", "[616]\tvalidation-rmse:6.42874 \n", "[617]\tvalidation-rmse:6.42867 \n", "[618]\tvalidation-rmse:6.42854 \n", "[619]\tvalidation-rmse:6.42849 \n", "[620]\tvalidation-rmse:6.42844 \n", "[621]\tvalidation-rmse:6.42850 \n", "[622]\tvalidation-rmse:6.42826 \n", "[623]\tvalidation-rmse:6.42813 \n", "[624]\tvalidation-rmse:6.42812 \n", "[625]\tvalidation-rmse:6.42803 \n", "[626]\tvalidation-rmse:6.42809 \n", "[627]\tvalidation-rmse:6.42806 \n", "[628]\tvalidation-rmse:6.42802 \n", "[629]\tvalidation-rmse:6.42799 \n", "[630]\tvalidation-rmse:6.42789 \n", "[631]\tvalidation-rmse:6.42758 \n", "[632]\tvalidation-rmse:6.42736 \n", "[633]\tvalidation-rmse:6.42744 \n", "[634]\tvalidation-rmse:6.42736 \n", "[635]\tvalidation-rmse:6.42738 \n", "[636]\tvalidation-rmse:6.42726 \n", "[637]\tvalidation-rmse:6.42713 \n", "[638]\tvalidation-rmse:6.42690 \n", "[639]\tvalidation-rmse:6.42693 \n", "[640]\tvalidation-rmse:6.42667 \n", "[641]\tvalidation-rmse:6.42642 \n", "[642]\tvalidation-rmse:6.42639 \n", "[643]\tvalidation-rmse:6.42631 \n", "[644]\tvalidation-rmse:6.42618 \n", "[645]\tvalidation-rmse:6.42616 \n", "[646]\tvalidation-rmse:6.42612 \n", "[647]\tvalidation-rmse:6.42603 \n", "[648]\tvalidation-rmse:6.42590 \n", "[649]\tvalidation-rmse:6.42578 \n", "[650]\tvalidation-rmse:6.42574 \n", "[651]\tvalidation-rmse:6.42560 \n", "[652]\tvalidation-rmse:6.42550 \n", "[653]\tvalidation-rmse:6.42561 \n", "[654]\tvalidation-rmse:6.42552 \n", "[655]\tvalidation-rmse:6.42542 \n", "[656]\tvalidation-rmse:6.42521 \n", "[657]\tvalidation-rmse:6.42510 \n", "[658]\tvalidation-rmse:6.42503 \n", "[659]\tvalidation-rmse:6.42510 \n", "[660]\tvalidation-rmse:6.42514 \n", "[661]\tvalidation-rmse:6.42516 \n", "[662]\tvalidation-rmse:6.42507 \n", "[663]\tvalidation-rmse:6.42511 \n", "[664]\tvalidation-rmse:6.42495 \n", "[665]\tvalidation-rmse:6.42478 \n", "[666]\tvalidation-rmse:6.42463 \n", "[667]\tvalidation-rmse:6.42450 \n", "[668]\tvalidation-rmse:6.42442 \n", "[669]\tvalidation-rmse:6.42430 \n", "[670]\tvalidation-rmse:6.42436 \n", "[671]\tvalidation-rmse:6.42437 \n", "[672]\tvalidation-rmse:6.42412 \n", "[673]\tvalidation-rmse:6.42397 \n", "[674]\tvalidation-rmse:6.42391 \n", "[675]\tvalidation-rmse:6.42383 \n", "[676]\tvalidation-rmse:6.42387 \n", "[677]\tvalidation-rmse:6.42398 \n", "[678]\tvalidation-rmse:6.42413 \n", "[679]\tvalidation-rmse:6.42412 \n", "[680]\tvalidation-rmse:6.42395 \n", "[681]\tvalidation-rmse:6.42373 \n", "[682]\tvalidation-rmse:6.42367 \n", "[683]\tvalidation-rmse:6.42356 \n", "[684]\tvalidation-rmse:6.42343 \n", "[685]\tvalidation-rmse:6.42326 \n", "[686]\tvalidation-rmse:6.42313 \n", "[687]\tvalidation-rmse:6.42310 \n", "[688]\tvalidation-rmse:6.42290 \n", "[689]\tvalidation-rmse:6.42288 \n", "[690]\tvalidation-rmse:6.42286 \n", "[691]\tvalidation-rmse:6.42274 \n", "[692]\tvalidation-rmse:6.42264 \n", "[693]\tvalidation-rmse:6.42250 \n", "[694]\tvalidation-rmse:6.42247 \n", "[695]\tvalidation-rmse:6.42241 \n", "[696]\tvalidation-rmse:6.42239 \n", "[697]\tvalidation-rmse:6.42236 \n", "[698]\tvalidation-rmse:6.42220 \n", "[699]\tvalidation-rmse:6.42207 \n", "[700]\tvalidation-rmse:6.42185 \n", "[701]\tvalidation-rmse:6.42177 \n", "[702]\tvalidation-rmse:6.42163 \n", "[703]\tvalidation-rmse:6.42146 \n", "[704]\tvalidation-rmse:6.42136 \n", "[705]\tvalidation-rmse:6.42119 \n", "[706]\tvalidation-rmse:6.42105 \n", "[707]\tvalidation-rmse:6.42103 \n", "[708]\tvalidation-rmse:6.42097 \n", "[709]\tvalidation-rmse:6.42084 \n", "[710]\tvalidation-rmse:6.42075 \n", "[711]\tvalidation-rmse:6.42080 \n", "[712]\tvalidation-rmse:6.42076 \n", "[713]\tvalidation-rmse:6.42073 \n", "[714]\tvalidation-rmse:6.42059 \n", "[715]\tvalidation-rmse:6.42053 \n", "[716]\tvalidation-rmse:6.42043 \n", "[717]\tvalidation-rmse:6.42028 \n", "[718]\tvalidation-rmse:6.42023 \n", "[719]\tvalidation-rmse:6.42017 \n", "[720]\tvalidation-rmse:6.42005 \n", "[721]\tvalidation-rmse:6.41998 \n", "[722]\tvalidation-rmse:6.41987 \n", "[723]\tvalidation-rmse:6.42005 \n", "[724]\tvalidation-rmse:6.41961 \n", "[725]\tvalidation-rmse:6.41963 \n", "[726]\tvalidation-rmse:6.41949 \n", "[727]\tvalidation-rmse:6.41943 \n", "[728]\tvalidation-rmse:6.41957 \n", "[729]\tvalidation-rmse:6.41936 \n", "[730]\tvalidation-rmse:6.41931 \n", "[731]\tvalidation-rmse:6.41932 \n", "[732]\tvalidation-rmse:6.41912 \n", "[733]\tvalidation-rmse:6.41911 \n", "[734]\tvalidation-rmse:6.41919 \n", "[735]\tvalidation-rmse:6.41914 \n", "[736]\tvalidation-rmse:6.41898 \n", "[737]\tvalidation-rmse:6.41901 \n", "[738]\tvalidation-rmse:6.41903 \n", "[739]\tvalidation-rmse:6.41894 \n", "[740]\tvalidation-rmse:6.41879 \n", "[741]\tvalidation-rmse:6.41855 \n", "[742]\tvalidation-rmse:6.41852 \n", "[743]\tvalidation-rmse:6.41846 \n", "[744]\tvalidation-rmse:6.41837 \n", "[745]\tvalidation-rmse:6.41828 \n", "[746]\tvalidation-rmse:6.41822 \n", "[747]\tvalidation-rmse:6.41808 \n", "[748]\tvalidation-rmse:6.41791 \n", "[749]\tvalidation-rmse:6.41782 \n", "[750]\tvalidation-rmse:6.41776 \n", "[751]\tvalidation-rmse:6.41763 \n", "[752]\tvalidation-rmse:6.41752 \n", "[753]\tvalidation-rmse:6.41750 \n", "[754]\tvalidation-rmse:6.41758 \n", "[755]\tvalidation-rmse:6.41758 \n", "[756]\tvalidation-rmse:6.41762 \n", "[757]\tvalidation-rmse:6.41765 \n", "[758]\tvalidation-rmse:6.41761 \n", "[759]\tvalidation-rmse:6.41764 \n", "[760]\tvalidation-rmse:6.41765 \n", "[761]\tvalidation-rmse:6.41756 \n", "[762]\tvalidation-rmse:6.41753 \n", "[763]\tvalidation-rmse:6.41757 \n", "[764]\tvalidation-rmse:6.41746 \n", "[765]\tvalidation-rmse:6.41736 \n", "[766]\tvalidation-rmse:6.41724 \n", "[767]\tvalidation-rmse:6.41718 \n", "[768]\tvalidation-rmse:6.41687 \n", "[769]\tvalidation-rmse:6.41679 \n", "[770]\tvalidation-rmse:6.41663 \n", "[771]\tvalidation-rmse:6.41670 \n", "[772]\tvalidation-rmse:6.41664 \n", "[773]\tvalidation-rmse:6.41651 \n", "[774]\tvalidation-rmse:6.41647 \n", "[775]\tvalidation-rmse:6.41633 \n", "[776]\tvalidation-rmse:6.41627 \n", "[777]\tvalidation-rmse:6.41610 \n", "[778]\tvalidation-rmse:6.41572 \n", "[779]\tvalidation-rmse:6.41576 \n", "[780]\tvalidation-rmse:6.41557 \n", "[781]\tvalidation-rmse:6.41545 \n", "[782]\tvalidation-rmse:6.41531 \n", "[783]\tvalidation-rmse:6.41533 \n", "[784]\tvalidation-rmse:6.41524 \n", "[785]\tvalidation-rmse:6.41522 \n", "[786]\tvalidation-rmse:6.41507 \n", "[787]\tvalidation-rmse:6.41495 \n", "[788]\tvalidation-rmse:6.41485 \n", "[789]\tvalidation-rmse:6.41484 \n", "[790]\tvalidation-rmse:6.41480 \n", "[791]\tvalidation-rmse:6.41477 \n", "[792]\tvalidation-rmse:6.41474 \n", "[793]\tvalidation-rmse:6.41471 \n", "[794]\tvalidation-rmse:6.41474 \n", "[795]\tvalidation-rmse:6.41473 \n", "[796]\tvalidation-rmse:6.41458 \n", "[797]\tvalidation-rmse:6.41453 \n", "[798]\tvalidation-rmse:6.41441 \n", "[799]\tvalidation-rmse:6.41435 \n", "[800]\tvalidation-rmse:6.41430 \n", "[801]\tvalidation-rmse:6.41403 \n", "[802]\tvalidation-rmse:6.41396 \n", "[803]\tvalidation-rmse:6.41379 \n", "[804]\tvalidation-rmse:6.41378 \n", "[805]\tvalidation-rmse:6.41378 \n", "[806]\tvalidation-rmse:6.41362 \n", "[807]\tvalidation-rmse:6.41359 \n", "[808]\tvalidation-rmse:6.41354 \n", "[809]\tvalidation-rmse:6.41354 \n", "[810]\tvalidation-rmse:6.41345 \n", "[811]\tvalidation-rmse:6.41323 \n", "[812]\tvalidation-rmse:6.41307 \n", "[813]\tvalidation-rmse:6.41298 \n", "[814]\tvalidation-rmse:6.41305 \n", "[815]\tvalidation-rmse:6.41304 \n", "[816]\tvalidation-rmse:6.41299 \n", "[817]\tvalidation-rmse:6.41285 \n", "[818]\tvalidation-rmse:6.41275 \n", "[819]\tvalidation-rmse:6.41267 \n", "[820]\tvalidation-rmse:6.41274 \n", "[821]\tvalidation-rmse:6.41262 \n", "[822]\tvalidation-rmse:6.41247 \n", "[823]\tvalidation-rmse:6.41234 \n", "[824]\tvalidation-rmse:6.41230 \n", "[825]\tvalidation-rmse:6.41216 \n", "[826]\tvalidation-rmse:6.41212 \n", "[827]\tvalidation-rmse:6.41200 \n", "[828]\tvalidation-rmse:6.41184 \n", "[829]\tvalidation-rmse:6.41168 \n", "[830]\tvalidation-rmse:6.41165 \n", "[831]\tvalidation-rmse:6.41161 \n", "[832]\tvalidation-rmse:6.41150 \n", "[833]\tvalidation-rmse:6.41131 \n", "[834]\tvalidation-rmse:6.41132 \n", "[835]\tvalidation-rmse:6.41139 \n", "[836]\tvalidation-rmse:6.41136 \n", "[837]\tvalidation-rmse:6.41136 \n", "[838]\tvalidation-rmse:6.41129 \n", "[839]\tvalidation-rmse:6.41112 \n", "[840]\tvalidation-rmse:6.41094 \n", "[841]\tvalidation-rmse:6.41087 \n", "[842]\tvalidation-rmse:6.41079 \n", "[843]\tvalidation-rmse:6.41073 \n", "[844]\tvalidation-rmse:6.41075 \n", "[845]\tvalidation-rmse:6.41082 \n", "[846]\tvalidation-rmse:6.41076 \n", "[847]\tvalidation-rmse:6.41064 \n", "[848]\tvalidation-rmse:6.41054 \n", "[849]\tvalidation-rmse:6.41096 \n", "[850]\tvalidation-rmse:6.41077 \n", "[851]\tvalidation-rmse:6.41075 \n", "[852]\tvalidation-rmse:6.41059 \n", "[853]\tvalidation-rmse:6.41060 \n", "[854]\tvalidation-rmse:6.41050 \n", "[855]\tvalidation-rmse:6.41052 \n", "[856]\tvalidation-rmse:6.41050 \n", "[857]\tvalidation-rmse:6.41034 \n", "[858]\tvalidation-rmse:6.41041 \n", "[859]\tvalidation-rmse:6.41028 \n", "[860]\tvalidation-rmse:6.41025 \n", "[861]\tvalidation-rmse:6.41015 \n", "[862]\tvalidation-rmse:6.41003 \n", "[863]\tvalidation-rmse:6.41012 \n", "[864]\tvalidation-rmse:6.41003 \n", "[865]\tvalidation-rmse:6.40980 \n", "[866]\tvalidation-rmse:6.40974 \n", "[867]\tvalidation-rmse:6.40971 \n", "[868]\tvalidation-rmse:6.40982 \n", "[869]\tvalidation-rmse:6.40981 \n", "[870]\tvalidation-rmse:6.40970 \n", "[871]\tvalidation-rmse:6.40961 \n", "[872]\tvalidation-rmse:6.40958 \n", "[873]\tvalidation-rmse:6.40942 \n", "[874]\tvalidation-rmse:6.40927 \n", "[875]\tvalidation-rmse:6.40924 \n", "[876]\tvalidation-rmse:6.40911 \n", "[877]\tvalidation-rmse:6.40906 \n", "[878]\tvalidation-rmse:6.40903 \n", "[879]\tvalidation-rmse:6.40891 \n", "[880]\tvalidation-rmse:6.40884 \n", "[881]\tvalidation-rmse:6.40869 \n", "[882]\tvalidation-rmse:6.40853 \n", "[883]\tvalidation-rmse:6.40854 \n", "[884]\tvalidation-rmse:6.40854 \n", "[885]\tvalidation-rmse:6.40847 \n", "[886]\tvalidation-rmse:6.40843 \n", "[887]\tvalidation-rmse:6.40861 \n", "[888]\tvalidation-rmse:6.40872 \n", "[889]\tvalidation-rmse:6.40874 \n", "[890]\tvalidation-rmse:6.40881 \n", "[891]\tvalidation-rmse:6.40871 \n", "[892]\tvalidation-rmse:6.40870 \n", "[893]\tvalidation-rmse:6.40863 \n", "[894]\tvalidation-rmse:6.40862 \n", "[895]\tvalidation-rmse:6.40858 \n", "[896]\tvalidation-rmse:6.40859 \n", "[897]\tvalidation-rmse:6.40842 \n", "[898]\tvalidation-rmse:6.40830 \n", "[899]\tvalidation-rmse:6.40836 \n", "[900]\tvalidation-rmse:6.40827 \n", "[901]\tvalidation-rmse:6.40831 \n", "[902]\tvalidation-rmse:6.40819 \n", "[903]\tvalidation-rmse:6.40807 \n", "[904]\tvalidation-rmse:6.40814 \n", "[905]\tvalidation-rmse:6.40820 \n", "[906]\tvalidation-rmse:6.40819 \n", "[907]\tvalidation-rmse:6.40800 \n", "[908]\tvalidation-rmse:6.40798 \n", "[909]\tvalidation-rmse:6.40801 \n", "[910]\tvalidation-rmse:6.40790 \n", "[911]\tvalidation-rmse:6.40794 \n", "[912]\tvalidation-rmse:6.40786 \n", "[913]\tvalidation-rmse:6.40793 \n", "[914]\tvalidation-rmse:6.40797 \n", "[915]\tvalidation-rmse:6.40796 \n", "[916]\tvalidation-rmse:6.40802 \n", "[917]\tvalidation-rmse:6.40812 \n", "[918]\tvalidation-rmse:6.40807 \n", "[919]\tvalidation-rmse:6.40812 \n", "[920]\tvalidation-rmse:6.40817 \n", "[921]\tvalidation-rmse:6.40808 \n", "[922]\tvalidation-rmse:6.40806 \n", "[923]\tvalidation-rmse:6.40794 \n", "[924]\tvalidation-rmse:6.40789 \n", "[925]\tvalidation-rmse:6.40787 \n", "[926]\tvalidation-rmse:6.40790 \n", "[927]\tvalidation-rmse:6.40787 \n", "[928]\tvalidation-rmse:6.40796 \n", "[929]\tvalidation-rmse:6.40786 \n", "[930]\tvalidation-rmse:6.40779 \n", "[931]\tvalidation-rmse:6.40784 \n", "[932]\tvalidation-rmse:6.40772 \n", "[933]\tvalidation-rmse:6.40752 \n", "[934]\tvalidation-rmse:6.40739 \n", "[935]\tvalidation-rmse:6.40757 \n", "[936]\tvalidation-rmse:6.40768 \n", "[937]\tvalidation-rmse:6.40757 \n", "[938]\tvalidation-rmse:6.40734 \n", "[939]\tvalidation-rmse:6.40725 \n", "[940]\tvalidation-rmse:6.40726 \n", "[941]\tvalidation-rmse:6.40713 \n", "[942]\tvalidation-rmse:6.40707 \n", "[943]\tvalidation-rmse:6.40690 \n", "[944]\tvalidation-rmse:6.40694 \n", "[945]\tvalidation-rmse:6.40685 \n", "[946]\tvalidation-rmse:6.40675 \n", "[947]\tvalidation-rmse:6.40660 \n", "[948]\tvalidation-rmse:6.40652 \n", "[949]\tvalidation-rmse:6.40641 \n", "[950]\tvalidation-rmse:6.40638 \n", "[951]\tvalidation-rmse:6.40628 \n", "[952]\tvalidation-rmse:6.40622 \n", "[953]\tvalidation-rmse:6.40620 \n", "[954]\tvalidation-rmse:6.40611 \n", "[955]\tvalidation-rmse:6.40618 \n", "[956]\tvalidation-rmse:6.40622 \n", "[957]\tvalidation-rmse:6.40628 \n", "[958]\tvalidation-rmse:6.40621 \n", "[959]\tvalidation-rmse:6.40620 \n", "[960]\tvalidation-rmse:6.40607 \n", "[961]\tvalidation-rmse:6.40599 \n", "[962]\tvalidation-rmse:6.40590 \n", "[963]\tvalidation-rmse:6.40590 \n", "[964]\tvalidation-rmse:6.40582 \n", "[965]\tvalidation-rmse:6.40567 \n", "[966]\tvalidation-rmse:6.40549 \n", "[967]\tvalidation-rmse:6.40542 \n", "[968]\tvalidation-rmse:6.40532 \n", "[969]\tvalidation-rmse:6.40547 \n", "[970]\tvalidation-rmse:6.40530 \n", "[971]\tvalidation-rmse:6.40515 \n", "[972]\tvalidation-rmse:6.40511 \n", "[973]\tvalidation-rmse:6.40507 \n", "[974]\tvalidation-rmse:6.40511 \n", "[975]\tvalidation-rmse:6.40496 \n", "[976]\tvalidation-rmse:6.40491 \n", "[977]\tvalidation-rmse:6.40479 \n", "[978]\tvalidation-rmse:6.40474 \n", "[979]\tvalidation-rmse:6.40467 \n", "[980]\tvalidation-rmse:6.40461 \n", "[981]\tvalidation-rmse:6.40446 \n", "[982]\tvalidation-rmse:6.40448 \n", "[983]\tvalidation-rmse:6.40444 \n", "[984]\tvalidation-rmse:6.40437 \n", "[985]\tvalidation-rmse:6.40429 \n", "[986]\tvalidation-rmse:6.40416 \n", "[987]\tvalidation-rmse:6.40405 \n", "[988]\tvalidation-rmse:6.40407 \n", "[989]\tvalidation-rmse:6.40392 \n", "[990]\tvalidation-rmse:6.40387 \n", "[991]\tvalidation-rmse:6.40381 \n", "[992]\tvalidation-rmse:6.40376 \n", "[993]\tvalidation-rmse:6.40371 \n", "[994]\tvalidation-rmse:6.40376 \n", "[995]\tvalidation-rmse:6.40368 \n", "[996]\tvalidation-rmse:6.40364 \n", "[997]\tvalidation-rmse:6.40373 \n", "[998]\tvalidation-rmse:6.40378 \n", "[999]\tvalidation-rmse:6.40377 \n", "[12:52:36] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:17.94108 \n", "[1]\tvalidation-rmse:15.35056 \n", "[2]\tvalidation-rmse:13.30333 \n", "[3]\tvalidation-rmse:11.70191 \n", "[4]\tvalidation-rmse:10.46186 \n", "[5]\tvalidation-rmse:9.51512 \n", "[6]\tvalidation-rmse:8.79783 \n", "[7]\tvalidation-rmse:8.26185 \n", "[8]\tvalidation-rmse:7.86080 \n", "[9]\tvalidation-rmse:7.55922 \n", "[10]\tvalidation-rmse:7.33751 \n", "[11]\tvalidation-rmse:7.16949 \n", "[12]\tvalidation-rmse:7.04291 \n", "[13]\tvalidation-rmse:6.94846 \n", "[14]\tvalidation-rmse:6.87611 \n", "[15]\tvalidation-rmse:6.82031 \n", "[16]\tvalidation-rmse:6.77759 \n", "[17]\tvalidation-rmse:6.74460 \n", "[18]\tvalidation-rmse:6.71862 \n", "[19]\tvalidation-rmse:6.69631 \n", "[20]\tvalidation-rmse:6.68054 \n", "[21]\tvalidation-rmse:6.66439 \n", "[22]\tvalidation-rmse:6.65130 \n", "[23]\tvalidation-rmse:6.64139 \n", "[24]\tvalidation-rmse:6.63414 \n", "[25]\tvalidation-rmse:6.62747 \n", "[26]\tvalidation-rmse:6.62146 \n", "[27]\tvalidation-rmse:6.61619 \n", "[28]\tvalidation-rmse:6.61236 \n", "[29]\tvalidation-rmse:6.60878 \n", "[30]\tvalidation-rmse:6.60620 \n", "[31]\tvalidation-rmse:6.60375 \n", "[32]\tvalidation-rmse:6.60168 \n", "[33]\tvalidation-rmse:6.59983 \n", "[34]\tvalidation-rmse:6.59726 \n", "[35]\tvalidation-rmse:6.59536 \n", "[36]\tvalidation-rmse:6.59404 \n", "[37]\tvalidation-rmse:6.59236 \n", "[38]\tvalidation-rmse:6.58979 \n", "[39]\tvalidation-rmse:6.58934 \n", "[40]\tvalidation-rmse:6.58847 \n", "[41]\tvalidation-rmse:6.58655 \n", "[42]\tvalidation-rmse:6.58605 \n", "[43]\tvalidation-rmse:6.58447 \n", "[44]\tvalidation-rmse:6.58387 \n", "[45]\tvalidation-rmse:6.58373 \n", "[46]\tvalidation-rmse:6.58309 \n", "[47]\tvalidation-rmse:6.58226 \n", "[48]\tvalidation-rmse:6.58192 \n", "[49]\tvalidation-rmse:6.58111 \n", "[50]\tvalidation-rmse:6.58036 \n", "[51]\tvalidation-rmse:6.58006 \n", "[52]\tvalidation-rmse:6.57954 \n", "[53]\tvalidation-rmse:6.57922 \n", "[54]\tvalidation-rmse:6.57939 \n", "[55]\tvalidation-rmse:6.57887 \n", "[56]\tvalidation-rmse:6.57852 \n", "[57]\tvalidation-rmse:6.57828 \n", "[58]\tvalidation-rmse:6.57819 \n", "[59]\tvalidation-rmse:6.57798 \n", "[60]\tvalidation-rmse:6.57761 \n", "[61]\tvalidation-rmse:6.57718 \n", "[62]\tvalidation-rmse:6.57737 \n", "[63]\tvalidation-rmse:6.57693 \n", "[64]\tvalidation-rmse:6.57667 \n", "[65]\tvalidation-rmse:6.57668 \n", "[66]\tvalidation-rmse:6.57655 \n", "[67]\tvalidation-rmse:6.57592 \n", "[68]\tvalidation-rmse:6.57586 \n", "[69]\tvalidation-rmse:6.57580 \n", "[70]\tvalidation-rmse:6.57557 \n", "[71]\tvalidation-rmse:6.57503 \n", "[72]\tvalidation-rmse:6.57480 \n", "[73]\tvalidation-rmse:6.57451 \n", "[74]\tvalidation-rmse:6.57444 \n", "[75]\tvalidation-rmse:6.57416 \n", "[76]\tvalidation-rmse:6.57395 \n", "[77]\tvalidation-rmse:6.57409 \n", "[78]\tvalidation-rmse:6.57386 \n", "[79]\tvalidation-rmse:6.57376 \n", "[80]\tvalidation-rmse:6.57371 \n", "[81]\tvalidation-rmse:6.57396 \n", "[82]\tvalidation-rmse:6.57394 \n", "[83]\tvalidation-rmse:6.57384 \n", "[84]\tvalidation-rmse:6.57330 \n", "[85]\tvalidation-rmse:6.57341 \n", "[86]\tvalidation-rmse:6.57348 \n", "[87]\tvalidation-rmse:6.57336 \n", "[88]\tvalidation-rmse:6.57301 \n", "[89]\tvalidation-rmse:6.57328 \n", "[90]\tvalidation-rmse:6.57317 \n", "[91]\tvalidation-rmse:6.57330 \n", "[92]\tvalidation-rmse:6.57307 \n", "[93]\tvalidation-rmse:6.57308 \n", "[94]\tvalidation-rmse:6.57300 \n", "[95]\tvalidation-rmse:6.57312 \n", "[96]\tvalidation-rmse:6.57313 \n", "[97]\tvalidation-rmse:6.57338 \n", "[98]\tvalidation-rmse:6.57325 \n", "[99]\tvalidation-rmse:6.57339 \n", "[100]\tvalidation-rmse:6.57365 \n", "[101]\tvalidation-rmse:6.57373 \n", "[102]\tvalidation-rmse:6.57351 \n", "[103]\tvalidation-rmse:6.57366 \n", "[104]\tvalidation-rmse:6.57364 \n", "[105]\tvalidation-rmse:6.57370 \n", "[106]\tvalidation-rmse:6.57341 \n", "[107]\tvalidation-rmse:6.57337 \n", "[108]\tvalidation-rmse:6.57306 \n", "[109]\tvalidation-rmse:6.57296 \n", "[110]\tvalidation-rmse:6.57288 \n", "[111]\tvalidation-rmse:6.57306 \n", "[112]\tvalidation-rmse:6.57291 \n", "[113]\tvalidation-rmse:6.57278 \n", "[114]\tvalidation-rmse:6.57330 \n", "[115]\tvalidation-rmse:6.57340 \n", "[116]\tvalidation-rmse:6.57348 \n", "[117]\tvalidation-rmse:6.57357 \n", "[118]\tvalidation-rmse:6.57343 \n", "[119]\tvalidation-rmse:6.57337 \n", "[120]\tvalidation-rmse:6.57481 \n", "[121]\tvalidation-rmse:6.57492 \n", "[122]\tvalidation-rmse:6.57491 \n", "[123]\tvalidation-rmse:6.57608 \n", "[124]\tvalidation-rmse:6.57611 \n", "[125]\tvalidation-rmse:6.57599 \n", "[126]\tvalidation-rmse:6.57585 \n", "[127]\tvalidation-rmse:6.57588 \n", "[128]\tvalidation-rmse:6.57638 \n", "[129]\tvalidation-rmse:6.57663 \n", "[130]\tvalidation-rmse:6.57724 \n", "[131]\tvalidation-rmse:6.57719 \n", "[132]\tvalidation-rmse:6.57766 \n", "[133]\tvalidation-rmse:6.57792 \n", "[134]\tvalidation-rmse:6.57794 \n", "[135]\tvalidation-rmse:6.57771 \n", "[136]\tvalidation-rmse:6.57767 \n", "[137]\tvalidation-rmse:6.57765 \n", "[138]\tvalidation-rmse:6.57737 \n", "[139]\tvalidation-rmse:6.57765 \n", "[140]\tvalidation-rmse:6.57785 \n", "[141]\tvalidation-rmse:6.57771 \n", "[142]\tvalidation-rmse:6.57790 \n", "[143]\tvalidation-rmse:6.57790 \n", "[144]\tvalidation-rmse:6.57799 \n", "[145]\tvalidation-rmse:6.57785 \n", "[146]\tvalidation-rmse:6.57788 \n", "[147]\tvalidation-rmse:6.57806 \n", "[148]\tvalidation-rmse:6.57785 \n", "[149]\tvalidation-rmse:6.57797 \n", "[150]\tvalidation-rmse:6.57810 \n", "[151]\tvalidation-rmse:6.57798 \n", "[152]\tvalidation-rmse:6.57789 \n", "[153]\tvalidation-rmse:6.57765 \n", "[154]\tvalidation-rmse:6.57758 \n", "[155]\tvalidation-rmse:6.57762 \n", "[156]\tvalidation-rmse:6.57775 \n", "[157]\tvalidation-rmse:6.57782 \n", "[158]\tvalidation-rmse:6.57752 \n", "[159]\tvalidation-rmse:6.57786 \n", "[160]\tvalidation-rmse:6.57755 \n", "[161]\tvalidation-rmse:6.57759 \n", "[162]\tvalidation-rmse:6.57766 \n", "[12:53:21] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.25579 \n", "[1]\tvalidation-rmse:17.55159 \n", "[2]\tvalidation-rmse:16.05608 \n", "[3]\tvalidation-rmse:14.74722 \n", "[4]\tvalidation-rmse:13.60444 \n", "[5]\tvalidation-rmse:12.61101 \n", "[6]\tvalidation-rmse:11.74958 \n", "[7]\tvalidation-rmse:11.00629 \n", "[8]\tvalidation-rmse:10.36656 \n", "[9]\tvalidation-rmse:9.81799 \n", "[10]\tvalidation-rmse:9.34750 \n", "[11]\tvalidation-rmse:8.94800 \n", "[12]\tvalidation-rmse:8.60891 \n", "[13]\tvalidation-rmse:8.32142 \n", "[14]\tvalidation-rmse:8.07884 \n", "[15]\tvalidation-rmse:7.87275 \n", "[16]\tvalidation-rmse:7.69898 \n", "[17]\tvalidation-rmse:7.55054 \n", "[18]\tvalidation-rmse:7.42583 \n", "[19]\tvalidation-rmse:7.31965 \n", "[20]\tvalidation-rmse:7.23054 \n", "[21]\tvalidation-rmse:7.15510 \n", "[22]\tvalidation-rmse:7.09130 \n", "[23]\tvalidation-rmse:7.03673 \n", "[24]\tvalidation-rmse:6.98919 \n", "[25]\tvalidation-rmse:6.94829 \n", "[26]\tvalidation-rmse:6.91340 \n", "[27]\tvalidation-rmse:6.88201 \n", "[28]\tvalidation-rmse:6.85475 \n", "[29]\tvalidation-rmse:6.83227 \n", "[30]\tvalidation-rmse:6.81223 \n", "[31]\tvalidation-rmse:6.79430 \n", "[32]\tvalidation-rmse:6.77975 \n", "[33]\tvalidation-rmse:6.76632 \n", "[34]\tvalidation-rmse:6.75432 \n", "[35]\tvalidation-rmse:6.74362 \n", "[36]\tvalidation-rmse:6.73448 \n", "[37]\tvalidation-rmse:6.72633 \n", "[38]\tvalidation-rmse:6.71950 \n", "[39]\tvalidation-rmse:6.71268 \n", "[40]\tvalidation-rmse:6.70673 \n", "[41]\tvalidation-rmse:6.70168 \n", "[42]\tvalidation-rmse:6.69643 \n", "[43]\tvalidation-rmse:6.69182 \n", "[44]\tvalidation-rmse:6.68765 \n", "[45]\tvalidation-rmse:6.68435 \n", "[46]\tvalidation-rmse:6.68143 \n", "[47]\tvalidation-rmse:6.67812 \n", "[48]\tvalidation-rmse:6.67592 \n", "[49]\tvalidation-rmse:6.67364 \n", "[50]\tvalidation-rmse:6.67115 \n", "[51]\tvalidation-rmse:6.66912 \n", "[52]\tvalidation-rmse:6.66720 \n", "[53]\tvalidation-rmse:6.66570 \n", "[54]\tvalidation-rmse:6.66455 \n", "[55]\tvalidation-rmse:6.66322 \n", "[56]\tvalidation-rmse:6.66211 \n", "[57]\tvalidation-rmse:6.66127 \n", "[58]\tvalidation-rmse:6.66037 \n", "[59]\tvalidation-rmse:6.65954 \n", "[60]\tvalidation-rmse:6.65891 \n", "[61]\tvalidation-rmse:6.65830 \n", "[62]\tvalidation-rmse:6.65762 \n", "[63]\tvalidation-rmse:6.65694 \n", "[64]\tvalidation-rmse:6.65633 \n", "[65]\tvalidation-rmse:6.65555 \n", "[66]\tvalidation-rmse:6.65522 \n", "[67]\tvalidation-rmse:6.65477 \n", "[68]\tvalidation-rmse:6.65445 \n", "[69]\tvalidation-rmse:6.65396 \n", "[70]\tvalidation-rmse:6.65321 \n", "[71]\tvalidation-rmse:6.65289 \n", "[72]\tvalidation-rmse:6.65244 \n", "[73]\tvalidation-rmse:6.65204 \n", "[74]\tvalidation-rmse:6.65174 \n", "[75]\tvalidation-rmse:6.65141 \n", "[76]\tvalidation-rmse:6.65090 \n", "[77]\tvalidation-rmse:6.65042 \n", "[78]\tvalidation-rmse:6.65020 \n", "[79]\tvalidation-rmse:6.65011 \n", "[80]\tvalidation-rmse:6.64978 \n", "[81]\tvalidation-rmse:6.64944 \n", "[82]\tvalidation-rmse:6.64946 \n", "[83]\tvalidation-rmse:6.64925 \n", "[84]\tvalidation-rmse:6.64914 \n", "[85]\tvalidation-rmse:6.64898 \n", "[86]\tvalidation-rmse:6.64895 \n", "[87]\tvalidation-rmse:6.64867 \n", "[88]\tvalidation-rmse:6.64842 \n", "[89]\tvalidation-rmse:6.64845 \n", "[90]\tvalidation-rmse:6.64845 \n", "[91]\tvalidation-rmse:6.64817 \n", "[92]\tvalidation-rmse:6.64796 \n", "[93]\tvalidation-rmse:6.64776 \n", "[94]\tvalidation-rmse:6.64755 \n", "[95]\tvalidation-rmse:6.64751 \n", "[96]\tvalidation-rmse:6.64709 \n", "[97]\tvalidation-rmse:6.64706 \n", "[98]\tvalidation-rmse:6.64700 \n", "[99]\tvalidation-rmse:6.64682 \n", "[100]\tvalidation-rmse:6.64675 \n", "[101]\tvalidation-rmse:6.64668 \n", "[102]\tvalidation-rmse:6.64642 \n", "[103]\tvalidation-rmse:6.64626 \n", "[104]\tvalidation-rmse:6.64635 \n", "[105]\tvalidation-rmse:6.64614 \n", "[106]\tvalidation-rmse:6.64608 \n", "[107]\tvalidation-rmse:6.64573 \n", "[108]\tvalidation-rmse:6.64547 \n", "[109]\tvalidation-rmse:6.64557 \n", "[110]\tvalidation-rmse:6.64549 \n", "[111]\tvalidation-rmse:6.64560 \n", "[112]\tvalidation-rmse:6.64562 \n", "[113]\tvalidation-rmse:6.64555 \n", "[114]\tvalidation-rmse:6.64565 \n", "[115]\tvalidation-rmse:6.64543 \n", "[116]\tvalidation-rmse:6.64523 \n", "[117]\tvalidation-rmse:6.64521 \n", "[118]\tvalidation-rmse:6.64491 \n", "[119]\tvalidation-rmse:6.64486 \n", "[120]\tvalidation-rmse:6.64487 \n", "[121]\tvalidation-rmse:6.64481 \n", "[122]\tvalidation-rmse:6.64477 \n", "[123]\tvalidation-rmse:6.64456 \n", "[124]\tvalidation-rmse:6.64445 \n", "[125]\tvalidation-rmse:6.64431 \n", "[126]\tvalidation-rmse:6.64418 \n", "[127]\tvalidation-rmse:6.64410 \n", "[128]\tvalidation-rmse:6.64402 \n", "[129]\tvalidation-rmse:6.64377 \n", "[130]\tvalidation-rmse:6.64378 \n", "[131]\tvalidation-rmse:6.64381 \n", "[132]\tvalidation-rmse:6.64364 \n", "[133]\tvalidation-rmse:6.64366 \n", "[134]\tvalidation-rmse:6.64328 \n", "[135]\tvalidation-rmse:6.64335 \n", "[136]\tvalidation-rmse:6.64354 \n", "[137]\tvalidation-rmse:6.64354 \n", "[138]\tvalidation-rmse:6.64351 \n", "[139]\tvalidation-rmse:6.64336 \n", "[140]\tvalidation-rmse:6.64375 \n", "[141]\tvalidation-rmse:6.64392 \n", "[142]\tvalidation-rmse:6.64387 \n", "[143]\tvalidation-rmse:6.64378 \n", "[144]\tvalidation-rmse:6.64384 \n", "[145]\tvalidation-rmse:6.64383 \n", "[146]\tvalidation-rmse:6.64396 \n", "[147]\tvalidation-rmse:6.64370 \n", "[148]\tvalidation-rmse:6.64342 \n", "[149]\tvalidation-rmse:6.64349 \n", "[150]\tvalidation-rmse:6.64356 \n", "[151]\tvalidation-rmse:6.64353 \n", "[152]\tvalidation-rmse:6.64347 \n", "[153]\tvalidation-rmse:6.64349 \n", "[154]\tvalidation-rmse:6.64328 \n", "[155]\tvalidation-rmse:6.64327 \n", "[156]\tvalidation-rmse:6.64336 \n", "[157]\tvalidation-rmse:6.64316 \n", "[158]\tvalidation-rmse:6.64322 \n", "[159]\tvalidation-rmse:6.64325 \n", "[160]\tvalidation-rmse:6.64316 \n", "[161]\tvalidation-rmse:6.64322 \n", "[162]\tvalidation-rmse:6.64317 \n", "[163]\tvalidation-rmse:6.64310 \n", "[164]\tvalidation-rmse:6.64290 \n", "[165]\tvalidation-rmse:6.64305 \n", "[166]\tvalidation-rmse:6.64296 \n", "[167]\tvalidation-rmse:6.64277 \n", "[168]\tvalidation-rmse:6.64272 \n", "[169]\tvalidation-rmse:6.64250 \n", "[170]\tvalidation-rmse:6.64238 \n", "[171]\tvalidation-rmse:6.64222 \n", "[172]\tvalidation-rmse:6.64205 \n", "[173]\tvalidation-rmse:6.64153 \n", "[174]\tvalidation-rmse:6.64147 \n", "[175]\tvalidation-rmse:6.64132 \n", "[176]\tvalidation-rmse:6.64133 \n", "[177]\tvalidation-rmse:6.64133 \n", "[178]\tvalidation-rmse:6.64129 \n", "[179]\tvalidation-rmse:6.64119 \n", "[180]\tvalidation-rmse:6.64122 \n", "[181]\tvalidation-rmse:6.64120 \n", "[182]\tvalidation-rmse:6.64113 \n", "[183]\tvalidation-rmse:6.64109 \n", "[184]\tvalidation-rmse:6.64109 \n", "[185]\tvalidation-rmse:6.64102 \n", "[186]\tvalidation-rmse:6.64083 \n", "[187]\tvalidation-rmse:6.64070 \n", "[188]\tvalidation-rmse:6.64084 \n", "[189]\tvalidation-rmse:6.64071 \n", "[190]\tvalidation-rmse:6.64068 \n", "[191]\tvalidation-rmse:6.64065 \n", "[192]\tvalidation-rmse:6.64067 \n", "[193]\tvalidation-rmse:6.64055 \n", "[194]\tvalidation-rmse:6.64054 \n", "[195]\tvalidation-rmse:6.64053 \n", "[196]\tvalidation-rmse:6.64080 \n", "[197]\tvalidation-rmse:6.64072 \n", "[198]\tvalidation-rmse:6.64095 \n", "[199]\tvalidation-rmse:6.64087 \n", "[200]\tvalidation-rmse:6.64082 \n", "[201]\tvalidation-rmse:6.64079 \n", "[202]\tvalidation-rmse:6.64096 \n", "[203]\tvalidation-rmse:6.64088 \n", "[204]\tvalidation-rmse:6.64072 \n", "[205]\tvalidation-rmse:6.64069 \n", "[206]\tvalidation-rmse:6.64064 \n", "[207]\tvalidation-rmse:6.64061 \n", "[208]\tvalidation-rmse:6.64085 \n", "[209]\tvalidation-rmse:6.64084 \n", "[210]\tvalidation-rmse:6.64084 \n", "[211]\tvalidation-rmse:6.64090 \n", "[212]\tvalidation-rmse:6.64067 \n", "[213]\tvalidation-rmse:6.64056 \n", "[214]\tvalidation-rmse:6.64049 \n", "[215]\tvalidation-rmse:6.64057 \n", "[216]\tvalidation-rmse:6.64048 \n", "[217]\tvalidation-rmse:6.64041 \n", "[218]\tvalidation-rmse:6.64036 \n", "[219]\tvalidation-rmse:6.64031 \n", "[220]\tvalidation-rmse:6.64026 \n", "[221]\tvalidation-rmse:6.64029 \n", "[222]\tvalidation-rmse:6.64027 \n", "[223]\tvalidation-rmse:6.64008 \n", "[224]\tvalidation-rmse:6.63994 \n", "[225]\tvalidation-rmse:6.63988 \n", "[226]\tvalidation-rmse:6.63968 \n", "[227]\tvalidation-rmse:6.63977 \n", "[228]\tvalidation-rmse:6.63978 \n", "[229]\tvalidation-rmse:6.63966 \n", "[230]\tvalidation-rmse:6.63970 \n", "[231]\tvalidation-rmse:6.64013 \n", "[232]\tvalidation-rmse:6.64007 \n", "[233]\tvalidation-rmse:6.63989 \n", "[234]\tvalidation-rmse:6.63995 \n", "[235]\tvalidation-rmse:6.63987 \n", "[236]\tvalidation-rmse:6.63989 \n", "[237]\tvalidation-rmse:6.63992 \n", "[238]\tvalidation-rmse:6.63982 \n", "[239]\tvalidation-rmse:6.63987 \n", "[240]\tvalidation-rmse:6.64016 \n", "[241]\tvalidation-rmse:6.64018 \n", "[242]\tvalidation-rmse:6.64022 \n", "[243]\tvalidation-rmse:6.64043 \n", "[244]\tvalidation-rmse:6.64029 \n", "[245]\tvalidation-rmse:6.64018 \n", "[246]\tvalidation-rmse:6.64017 \n", "[247]\tvalidation-rmse:6.64006 \n", "[248]\tvalidation-rmse:6.64013 \n", "[249]\tvalidation-rmse:6.64016 \n", "[250]\tvalidation-rmse:6.64010 \n", "[251]\tvalidation-rmse:6.64008 \n", "[252]\tvalidation-rmse:6.64005 \n", "[253]\tvalidation-rmse:6.64005 \n", "[254]\tvalidation-rmse:6.64005 \n", "[255]\tvalidation-rmse:6.63996 \n", "[256]\tvalidation-rmse:6.63992 \n", "[257]\tvalidation-rmse:6.63990 \n", "[258]\tvalidation-rmse:6.63982 \n", "[259]\tvalidation-rmse:6.63992 \n", "[260]\tvalidation-rmse:6.63988 \n", "[261]\tvalidation-rmse:6.63985 \n", "[262]\tvalidation-rmse:6.63992 \n", "[263]\tvalidation-rmse:6.64008 \n", "[264]\tvalidation-rmse:6.64028 \n", "[265]\tvalidation-rmse:6.64038 \n", "[266]\tvalidation-rmse:6.64035 \n", "[267]\tvalidation-rmse:6.64031 \n", "[268]\tvalidation-rmse:6.64032 \n", "[269]\tvalidation-rmse:6.64068 \n", "[270]\tvalidation-rmse:6.64071 \n", "[271]\tvalidation-rmse:6.64073 \n", "[272]\tvalidation-rmse:6.64075 \n", "[273]\tvalidation-rmse:6.64062 \n", "[274]\tvalidation-rmse:6.64071 \n", "[275]\tvalidation-rmse:6.64061 \n", "[276]\tvalidation-rmse:6.64058 \n", "[277]\tvalidation-rmse:6.64058 \n", "[278]\tvalidation-rmse:6.64048 \n", "[279]\tvalidation-rmse:6.64046 \n", "[12:54:32] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:20.08757 \n", "[1]\tvalidation-rmse:19.05759 \n", "[2]\tvalidation-rmse:18.09836 \n", "[3]\tvalidation-rmse:17.20561 \n", "[4]\tvalidation-rmse:16.37527 \n", "[5]\tvalidation-rmse:15.60380 \n", "[6]\tvalidation-rmse:14.88839 \n", "[7]\tvalidation-rmse:14.22457 \n", "[8]\tvalidation-rmse:13.60948 \n", "[9]\tvalidation-rmse:13.04061 \n", "[10]\tvalidation-rmse:12.51467 \n", "[11]\tvalidation-rmse:12.02853 \n", "[12]\tvalidation-rmse:11.58042 \n", "[13]\tvalidation-rmse:11.16732 \n", "[14]\tvalidation-rmse:10.78718 \n", "[15]\tvalidation-rmse:10.43706 \n", "[16]\tvalidation-rmse:10.11592 \n", "[17]\tvalidation-rmse:9.82086 \n", "[18]\tvalidation-rmse:9.55012 \n", "[19]\tvalidation-rmse:9.30302 \n", "[20]\tvalidation-rmse:9.07669 \n", "[21]\tvalidation-rmse:8.86985 \n", "[22]\tvalidation-rmse:8.68058 \n", "[23]\tvalidation-rmse:8.50784 \n", "[24]\tvalidation-rmse:8.35066 \n", "[25]\tvalidation-rmse:8.20728 \n", "[26]\tvalidation-rmse:8.07642 \n", "[27]\tvalidation-rmse:7.95787 \n", "[28]\tvalidation-rmse:7.84961 \n", "[29]\tvalidation-rmse:7.75074 \n", "[30]\tvalidation-rmse:7.66102 \n", "[31]\tvalidation-rmse:7.57908 \n", "[32]\tvalidation-rmse:7.50446 \n", "[33]\tvalidation-rmse:7.43640 \n", "[34]\tvalidation-rmse:7.37433 \n", "[35]\tvalidation-rmse:7.31726 \n", "[36]\tvalidation-rmse:7.26551 \n", "[37]\tvalidation-rmse:7.21854 \n", "[38]\tvalidation-rmse:7.17533 \n", "[39]\tvalidation-rmse:7.13570 \n", "[40]\tvalidation-rmse:7.09975 \n", "[41]\tvalidation-rmse:7.06664 \n", "[42]\tvalidation-rmse:7.03650 \n", "[43]\tvalidation-rmse:7.00868 \n", "[44]\tvalidation-rmse:6.98289 \n", "[45]\tvalidation-rmse:6.95919 \n", "[46]\tvalidation-rmse:6.93718 \n", "[47]\tvalidation-rmse:6.91736 \n", "[48]\tvalidation-rmse:6.89893 \n", "[49]\tvalidation-rmse:6.88192 \n", "[50]\tvalidation-rmse:6.86599 \n", "[51]\tvalidation-rmse:6.85125 \n", "[52]\tvalidation-rmse:6.83759 \n", "[53]\tvalidation-rmse:6.82519 \n", "[54]\tvalidation-rmse:6.81378 \n", "[55]\tvalidation-rmse:6.80277 \n", "[56]\tvalidation-rmse:6.79288 \n", "[57]\tvalidation-rmse:6.78364 \n", "[58]\tvalidation-rmse:6.77507 \n", "[59]\tvalidation-rmse:6.76696 \n", "[60]\tvalidation-rmse:6.75940 \n", "[61]\tvalidation-rmse:6.75266 \n", "[62]\tvalidation-rmse:6.74624 \n", "[63]\tvalidation-rmse:6.74047 \n", "[64]\tvalidation-rmse:6.73484 \n", "[65]\tvalidation-rmse:6.72966 \n", "[66]\tvalidation-rmse:6.72477 \n", "[67]\tvalidation-rmse:6.72000 \n", "[68]\tvalidation-rmse:6.71564 \n", "[69]\tvalidation-rmse:6.71141 \n", "[70]\tvalidation-rmse:6.70758 \n", "[71]\tvalidation-rmse:6.70403 \n", "[72]\tvalidation-rmse:6.70077 \n", "[73]\tvalidation-rmse:6.69776 \n", "[74]\tvalidation-rmse:6.69496 \n", "[75]\tvalidation-rmse:6.69206 \n", "[76]\tvalidation-rmse:6.68949 \n", "[77]\tvalidation-rmse:6.68709 \n", "[78]\tvalidation-rmse:6.68493 \n", "[79]\tvalidation-rmse:6.68273 \n", "[80]\tvalidation-rmse:6.68074 \n", "[81]\tvalidation-rmse:6.67872 \n", "[82]\tvalidation-rmse:6.67710 \n", "[83]\tvalidation-rmse:6.67555 \n", "[84]\tvalidation-rmse:6.67398 \n", "[85]\tvalidation-rmse:6.67262 \n", "[86]\tvalidation-rmse:6.67134 \n", "[87]\tvalidation-rmse:6.66992 \n", "[88]\tvalidation-rmse:6.66876 \n", "[89]\tvalidation-rmse:6.66746 \n", "[90]\tvalidation-rmse:6.66654 \n", "[91]\tvalidation-rmse:6.66532 \n", "[92]\tvalidation-rmse:6.66442 \n", "[93]\tvalidation-rmse:6.66335 \n", "[94]\tvalidation-rmse:6.66226 \n", "[95]\tvalidation-rmse:6.66135 \n", "[96]\tvalidation-rmse:6.66064 \n", "[97]\tvalidation-rmse:6.65992 \n", "[98]\tvalidation-rmse:6.65908 \n", "[99]\tvalidation-rmse:6.65839 \n", "[100]\tvalidation-rmse:6.65775 \n", "[101]\tvalidation-rmse:6.65702 \n", "[102]\tvalidation-rmse:6.65623 \n", "[103]\tvalidation-rmse:6.65559 \n", "[104]\tvalidation-rmse:6.65514 \n", "[105]\tvalidation-rmse:6.65465 \n", "[106]\tvalidation-rmse:6.65418 \n", "[107]\tvalidation-rmse:6.65365 \n", "[108]\tvalidation-rmse:6.65330 \n", "[109]\tvalidation-rmse:6.65275 \n", "[110]\tvalidation-rmse:6.65236 \n", "[111]\tvalidation-rmse:6.65180 \n", "[112]\tvalidation-rmse:6.65131 \n", "[113]\tvalidation-rmse:6.65086 \n", "[114]\tvalidation-rmse:6.65035 \n", "[115]\tvalidation-rmse:6.64999 \n", "[116]\tvalidation-rmse:6.64970 \n", "[117]\tvalidation-rmse:6.64946 \n", "[118]\tvalidation-rmse:6.64908 \n", "[119]\tvalidation-rmse:6.64880 \n", "[120]\tvalidation-rmse:6.64850 \n", "[121]\tvalidation-rmse:6.64816 \n", "[122]\tvalidation-rmse:6.64785 \n", "[123]\tvalidation-rmse:6.64754 \n", "[124]\tvalidation-rmse:6.64720 \n", "[125]\tvalidation-rmse:6.64696 \n", "[126]\tvalidation-rmse:6.64663 \n", "[127]\tvalidation-rmse:6.64636 \n", "[128]\tvalidation-rmse:6.64619 \n", "[129]\tvalidation-rmse:6.64601 \n", "[130]\tvalidation-rmse:6.64573 \n", "[131]\tvalidation-rmse:6.64549 \n", "[132]\tvalidation-rmse:6.64522 \n", "[133]\tvalidation-rmse:6.64480 \n", "[134]\tvalidation-rmse:6.64450 \n", "[135]\tvalidation-rmse:6.64429 \n", "[136]\tvalidation-rmse:6.64404 \n", "[137]\tvalidation-rmse:6.64377 \n", "[138]\tvalidation-rmse:6.64356 \n", "[139]\tvalidation-rmse:6.64328 \n", "[140]\tvalidation-rmse:6.64303 \n", "[141]\tvalidation-rmse:6.64281 \n", "[142]\tvalidation-rmse:6.64270 \n", "[143]\tvalidation-rmse:6.64255 \n", "[144]\tvalidation-rmse:6.64233 \n", "[145]\tvalidation-rmse:6.64216 \n", "[146]\tvalidation-rmse:6.64196 \n", "[147]\tvalidation-rmse:6.64175 \n", "[148]\tvalidation-rmse:6.64159 \n", "[149]\tvalidation-rmse:6.64142 \n", "[150]\tvalidation-rmse:6.64122 \n", "[151]\tvalidation-rmse:6.64105 \n", "[152]\tvalidation-rmse:6.64086 \n", "[153]\tvalidation-rmse:6.64075 \n", "[154]\tvalidation-rmse:6.64050 \n", "[155]\tvalidation-rmse:6.64029 \n", "[156]\tvalidation-rmse:6.64013 \n", "[157]\tvalidation-rmse:6.63995 \n", "[158]\tvalidation-rmse:6.63980 \n", "[159]\tvalidation-rmse:6.63975 \n", "[160]\tvalidation-rmse:6.63959 \n", "[161]\tvalidation-rmse:6.63940 \n", "[162]\tvalidation-rmse:6.63919 \n", "[163]\tvalidation-rmse:6.63906 \n", "[164]\tvalidation-rmse:6.63893 \n", "[165]\tvalidation-rmse:6.63880 \n", "[166]\tvalidation-rmse:6.63860 \n", "[167]\tvalidation-rmse:6.63828 \n", "[168]\tvalidation-rmse:6.63814 \n", "[169]\tvalidation-rmse:6.63806 \n", "[170]\tvalidation-rmse:6.63791 \n", "[171]\tvalidation-rmse:6.63770 \n", "[172]\tvalidation-rmse:6.63758 \n", "[173]\tvalidation-rmse:6.63719 \n", "[174]\tvalidation-rmse:6.63701 \n", "[175]\tvalidation-rmse:6.63679 \n", "[176]\tvalidation-rmse:6.63669 \n", "[177]\tvalidation-rmse:6.63657 \n", "[178]\tvalidation-rmse:6.63654 \n", "[179]\tvalidation-rmse:6.63636 \n", "[180]\tvalidation-rmse:6.63628 \n", "[181]\tvalidation-rmse:6.63613 \n", "[182]\tvalidation-rmse:6.63595 \n", "[183]\tvalidation-rmse:6.63580 \n", "[184]\tvalidation-rmse:6.63561 \n", "[185]\tvalidation-rmse:6.63552 \n", "[186]\tvalidation-rmse:6.63537 \n", "[187]\tvalidation-rmse:6.63524 \n", "[188]\tvalidation-rmse:6.63514 \n", "[189]\tvalidation-rmse:6.63502 \n", "[190]\tvalidation-rmse:6.63487 \n", "[191]\tvalidation-rmse:6.63469 \n", "[192]\tvalidation-rmse:6.63458 \n", "[193]\tvalidation-rmse:6.63442 \n", "[194]\tvalidation-rmse:6.63430 \n", "[195]\tvalidation-rmse:6.63424 \n", "[196]\tvalidation-rmse:6.63408 \n", "[197]\tvalidation-rmse:6.63389 \n", "[198]\tvalidation-rmse:6.63384 \n", "[199]\tvalidation-rmse:6.63381 \n", "[200]\tvalidation-rmse:6.63361 \n", "[201]\tvalidation-rmse:6.63351 \n", "[202]\tvalidation-rmse:6.63334 \n", "[203]\tvalidation-rmse:6.63319 \n", "[204]\tvalidation-rmse:6.63309 \n", "[205]\tvalidation-rmse:6.63301 \n", "[206]\tvalidation-rmse:6.63287 \n", "[207]\tvalidation-rmse:6.63216 \n", "[208]\tvalidation-rmse:6.63199 \n", "[209]\tvalidation-rmse:6.63187 \n", "[210]\tvalidation-rmse:6.63176 \n", "[211]\tvalidation-rmse:6.63166 \n", "[212]\tvalidation-rmse:6.63135 \n", "[213]\tvalidation-rmse:6.63115 \n", "[214]\tvalidation-rmse:6.63104 \n", "[215]\tvalidation-rmse:6.63076 \n", "[216]\tvalidation-rmse:6.63068 \n", "[217]\tvalidation-rmse:6.63060 \n", "[218]\tvalidation-rmse:6.63044 \n", "[219]\tvalidation-rmse:6.63041 \n", "[220]\tvalidation-rmse:6.63017 \n", "[221]\tvalidation-rmse:6.63005 \n", "[222]\tvalidation-rmse:6.63000 \n", "[223]\tvalidation-rmse:6.62990 \n", "[224]\tvalidation-rmse:6.62985 \n", "[225]\tvalidation-rmse:6.62976 \n", "[226]\tvalidation-rmse:6.62968 \n", "[227]\tvalidation-rmse:6.62954 \n", "[228]\tvalidation-rmse:6.62945 \n", "[229]\tvalidation-rmse:6.62940 \n", "[230]\tvalidation-rmse:6.62884 \n", "[231]\tvalidation-rmse:6.62871 \n", "[232]\tvalidation-rmse:6.62862 \n", "[233]\tvalidation-rmse:6.62853 \n", "[234]\tvalidation-rmse:6.62843 \n", "[235]\tvalidation-rmse:6.62832 \n", "[236]\tvalidation-rmse:6.62805 \n", "[237]\tvalidation-rmse:6.62794 \n", "[238]\tvalidation-rmse:6.62789 \n", "[239]\tvalidation-rmse:6.62785 \n", "[240]\tvalidation-rmse:6.62776 \n", "[241]\tvalidation-rmse:6.62765 \n", "[242]\tvalidation-rmse:6.62748 \n", "[243]\tvalidation-rmse:6.62735 \n", "[244]\tvalidation-rmse:6.62723 \n", "[245]\tvalidation-rmse:6.62720 \n", "[246]\tvalidation-rmse:6.62713 \n", "[247]\tvalidation-rmse:6.62706 \n", "[248]\tvalidation-rmse:6.62700 \n", "[249]\tvalidation-rmse:6.62696 \n", "[250]\tvalidation-rmse:6.62682 \n", "[251]\tvalidation-rmse:6.62672 \n", "[252]\tvalidation-rmse:6.62620 \n", "[253]\tvalidation-rmse:6.62608 \n", "[254]\tvalidation-rmse:6.62593 \n", "[255]\tvalidation-rmse:6.62585 \n", "[256]\tvalidation-rmse:6.62577 \n", "[257]\tvalidation-rmse:6.62571 \n", "[258]\tvalidation-rmse:6.62563 \n", "[259]\tvalidation-rmse:6.62557 \n", "[260]\tvalidation-rmse:6.62551 \n", "[261]\tvalidation-rmse:6.62539 \n", "[262]\tvalidation-rmse:6.62533 \n", "[263]\tvalidation-rmse:6.62527 \n", "[264]\tvalidation-rmse:6.62507 \n", "[265]\tvalidation-rmse:6.62494 \n", "[266]\tvalidation-rmse:6.62487 \n", "[267]\tvalidation-rmse:6.62482 \n", "[268]\tvalidation-rmse:6.62480 \n", "[269]\tvalidation-rmse:6.62471 \n", "[270]\tvalidation-rmse:6.62450 \n", "[271]\tvalidation-rmse:6.62446 \n", "[272]\tvalidation-rmse:6.62445 \n", "[273]\tvalidation-rmse:6.62428 \n", "[274]\tvalidation-rmse:6.62418 \n", "[275]\tvalidation-rmse:6.62414 \n", "[276]\tvalidation-rmse:6.62409 \n", "[277]\tvalidation-rmse:6.62397 \n", "[278]\tvalidation-rmse:6.62392 \n", "[279]\tvalidation-rmse:6.62384 \n", "[280]\tvalidation-rmse:6.62372 \n", "[281]\tvalidation-rmse:6.62361 \n", "[282]\tvalidation-rmse:6.62358 \n", "[283]\tvalidation-rmse:6.62355 \n", "[284]\tvalidation-rmse:6.62343 \n", "[285]\tvalidation-rmse:6.62340 \n", "[286]\tvalidation-rmse:6.62330 \n", "[287]\tvalidation-rmse:6.62322 \n", "[288]\tvalidation-rmse:6.62315 \n", "[289]\tvalidation-rmse:6.62310 \n", "[290]\tvalidation-rmse:6.62303 \n", "[291]\tvalidation-rmse:6.62274 \n", "[292]\tvalidation-rmse:6.62246 \n", "[293]\tvalidation-rmse:6.62242 \n", "[294]\tvalidation-rmse:6.62239 \n", "[295]\tvalidation-rmse:6.62234 \n", "[296]\tvalidation-rmse:6.62230 \n", "[297]\tvalidation-rmse:6.62213 \n", "[298]\tvalidation-rmse:6.62208 \n", "[299]\tvalidation-rmse:6.62203 \n", "[300]\tvalidation-rmse:6.62195 \n", "[301]\tvalidation-rmse:6.62191 \n", "[302]\tvalidation-rmse:6.62181 \n", "[303]\tvalidation-rmse:6.62173 \n", "[304]\tvalidation-rmse:6.62170 \n", "[305]\tvalidation-rmse:6.62170 \n", "[306]\tvalidation-rmse:6.62160 \n", "[307]\tvalidation-rmse:6.62152 \n", "[308]\tvalidation-rmse:6.62145 \n", "[309]\tvalidation-rmse:6.62133 \n", "[310]\tvalidation-rmse:6.62129 \n", "[311]\tvalidation-rmse:6.62123 \n", "[312]\tvalidation-rmse:6.62117 \n", "[313]\tvalidation-rmse:6.62094 \n", "[314]\tvalidation-rmse:6.62056 \n", "[315]\tvalidation-rmse:6.62053 \n", "[316]\tvalidation-rmse:6.62042 \n", "[317]\tvalidation-rmse:6.62037 \n", "[318]\tvalidation-rmse:6.62034 \n", "[319]\tvalidation-rmse:6.62029 \n", "[320]\tvalidation-rmse:6.62017 \n", "[321]\tvalidation-rmse:6.62013 \n", "[322]\tvalidation-rmse:6.62003 \n", "[323]\tvalidation-rmse:6.61999 \n", "[324]\tvalidation-rmse:6.61993 \n", "[325]\tvalidation-rmse:6.61992 \n", "[326]\tvalidation-rmse:6.61986 \n", "[327]\tvalidation-rmse:6.61982 \n", "[328]\tvalidation-rmse:6.61954 \n", "[329]\tvalidation-rmse:6.61954 \n", "[330]\tvalidation-rmse:6.61913 \n", "[331]\tvalidation-rmse:6.61909 \n", "[332]\tvalidation-rmse:6.61902 \n", "[333]\tvalidation-rmse:6.61878 \n", "[334]\tvalidation-rmse:6.61863 \n", "[335]\tvalidation-rmse:6.61856 \n", "[336]\tvalidation-rmse:6.61856 \n", "[337]\tvalidation-rmse:6.61851 \n", "[338]\tvalidation-rmse:6.61846 \n", "[339]\tvalidation-rmse:6.61841 \n", "[340]\tvalidation-rmse:6.61836 \n", "[341]\tvalidation-rmse:6.61828 \n", "[342]\tvalidation-rmse:6.61820 \n", "[343]\tvalidation-rmse:6.61816 \n", "[344]\tvalidation-rmse:6.61808 \n", "[345]\tvalidation-rmse:6.61799 \n", "[346]\tvalidation-rmse:6.61788 \n", "[347]\tvalidation-rmse:6.61787 \n", "[348]\tvalidation-rmse:6.61783 \n", "[349]\tvalidation-rmse:6.61774 \n", "[350]\tvalidation-rmse:6.61767 \n", "[351]\tvalidation-rmse:6.61766 \n", "[352]\tvalidation-rmse:6.61756 \n", "[353]\tvalidation-rmse:6.61751 \n", "[354]\tvalidation-rmse:6.61745 \n", "[355]\tvalidation-rmse:6.61723 \n", "[356]\tvalidation-rmse:6.61687 \n", "[357]\tvalidation-rmse:6.61654 \n", "[358]\tvalidation-rmse:6.61624 \n", "[359]\tvalidation-rmse:6.61622 \n", "[360]\tvalidation-rmse:6.61604 \n", "[361]\tvalidation-rmse:6.61597 \n", "[362]\tvalidation-rmse:6.61590 \n", "[363]\tvalidation-rmse:6.61580 \n", "[364]\tvalidation-rmse:6.61564 \n", "[365]\tvalidation-rmse:6.61566 \n", "[366]\tvalidation-rmse:6.61562 \n", "[367]\tvalidation-rmse:6.61557 \n", "[368]\tvalidation-rmse:6.61555 \n", "[369]\tvalidation-rmse:6.61539 \n", "[370]\tvalidation-rmse:6.61519 \n", "[371]\tvalidation-rmse:6.61506 \n", "[372]\tvalidation-rmse:6.61492 \n", "[373]\tvalidation-rmse:6.61487 \n", "[374]\tvalidation-rmse:6.61485 \n", "[375]\tvalidation-rmse:6.61476 \n", "[376]\tvalidation-rmse:6.61470 \n", "[377]\tvalidation-rmse:6.61467 \n", "[378]\tvalidation-rmse:6.61457 \n", "[379]\tvalidation-rmse:6.61454 \n", "[380]\tvalidation-rmse:6.61455 \n", "[381]\tvalidation-rmse:6.61452 \n", "[382]\tvalidation-rmse:6.61449 \n", "[383]\tvalidation-rmse:6.61436 \n", "[384]\tvalidation-rmse:6.61431 \n", "[385]\tvalidation-rmse:6.61425 \n", "[386]\tvalidation-rmse:6.61415 \n", "[387]\tvalidation-rmse:6.61393 \n", "[388]\tvalidation-rmse:6.61389 \n", "[389]\tvalidation-rmse:6.61387 \n", "[390]\tvalidation-rmse:6.61374 \n", "[391]\tvalidation-rmse:6.61359 \n", "[392]\tvalidation-rmse:6.61348 \n", "[393]\tvalidation-rmse:6.61333 \n", "[394]\tvalidation-rmse:6.61322 \n", "[395]\tvalidation-rmse:6.61310 \n", "[396]\tvalidation-rmse:6.61287 \n", "[397]\tvalidation-rmse:6.61278 \n", "[398]\tvalidation-rmse:6.61259 \n", "[399]\tvalidation-rmse:6.61247 \n", "[400]\tvalidation-rmse:6.61238 \n", "[401]\tvalidation-rmse:6.61228 \n", "[402]\tvalidation-rmse:6.61220 \n", "[403]\tvalidation-rmse:6.61200 \n", "[404]\tvalidation-rmse:6.61196 \n", "[405]\tvalidation-rmse:6.61188 \n", "[406]\tvalidation-rmse:6.61184 \n", "[407]\tvalidation-rmse:6.61174 \n", "[408]\tvalidation-rmse:6.61167 \n", "[409]\tvalidation-rmse:6.61160 \n", "[410]\tvalidation-rmse:6.61149 \n", "[411]\tvalidation-rmse:6.61132 \n", "[412]\tvalidation-rmse:6.61114 \n", "[413]\tvalidation-rmse:6.61112 \n", "[414]\tvalidation-rmse:6.61104 \n", "[415]\tvalidation-rmse:6.61094 \n", "[416]\tvalidation-rmse:6.61083 \n", "[417]\tvalidation-rmse:6.61075 \n", "[418]\tvalidation-rmse:6.61063 \n", "[419]\tvalidation-rmse:6.61063 \n", "[420]\tvalidation-rmse:6.61053 \n", "[421]\tvalidation-rmse:6.61047 \n", "[422]\tvalidation-rmse:6.61041 \n", "[423]\tvalidation-rmse:6.61037 \n", "[424]\tvalidation-rmse:6.61035 \n", "[425]\tvalidation-rmse:6.61015 \n", "[426]\tvalidation-rmse:6.61011 \n", "[427]\tvalidation-rmse:6.61009 \n", "[428]\tvalidation-rmse:6.61004 \n", "[429]\tvalidation-rmse:6.61004 \n", "[430]\tvalidation-rmse:6.60994 \n", "[431]\tvalidation-rmse:6.60994 \n", "[432]\tvalidation-rmse:6.60985 \n", "[433]\tvalidation-rmse:6.60978 \n", "[434]\tvalidation-rmse:6.60965 \n", "[435]\tvalidation-rmse:6.60960 \n", "[436]\tvalidation-rmse:6.60957 \n", "[437]\tvalidation-rmse:6.60952 \n", "[438]\tvalidation-rmse:6.60948 \n", "[439]\tvalidation-rmse:6.60943 \n", "[440]\tvalidation-rmse:6.60942 \n", "[441]\tvalidation-rmse:6.60935 \n", "[442]\tvalidation-rmse:6.60935 \n", "[443]\tvalidation-rmse:6.60925 \n", "[444]\tvalidation-rmse:6.60917 \n", "[445]\tvalidation-rmse:6.60919 \n", "[446]\tvalidation-rmse:6.60910 \n", "[447]\tvalidation-rmse:6.60911 \n", "[448]\tvalidation-rmse:6.60903 \n", "[449]\tvalidation-rmse:6.60896 \n", "[450]\tvalidation-rmse:6.60887 \n", "[451]\tvalidation-rmse:6.60880 \n", "[452]\tvalidation-rmse:6.60880 \n", "[453]\tvalidation-rmse:6.60872 \n", "[454]\tvalidation-rmse:6.60864 \n", "[455]\tvalidation-rmse:6.60865 \n", "[456]\tvalidation-rmse:6.60859 \n", "[457]\tvalidation-rmse:6.60849 \n", "[458]\tvalidation-rmse:6.60842 \n", "[459]\tvalidation-rmse:6.60838 \n", "[460]\tvalidation-rmse:6.60839 \n", "[461]\tvalidation-rmse:6.60834 \n", "[462]\tvalidation-rmse:6.60827 \n", "[463]\tvalidation-rmse:6.60821 \n", "[464]\tvalidation-rmse:6.60815 \n", "[465]\tvalidation-rmse:6.60813 \n", "[466]\tvalidation-rmse:6.60807 \n", "[467]\tvalidation-rmse:6.60805 \n", "[468]\tvalidation-rmse:6.60796 \n", "[469]\tvalidation-rmse:6.60794 \n", "[470]\tvalidation-rmse:6.60787 \n", "[471]\tvalidation-rmse:6.60778 \n", "[472]\tvalidation-rmse:6.60777 \n", "[473]\tvalidation-rmse:6.60772 \n", "[474]\tvalidation-rmse:6.60770 \n", "[475]\tvalidation-rmse:6.60763 \n", "[476]\tvalidation-rmse:6.60750 \n", "[477]\tvalidation-rmse:6.60746 \n", "[478]\tvalidation-rmse:6.60743 \n", "[479]\tvalidation-rmse:6.60736 \n", "[480]\tvalidation-rmse:6.60736 \n", "[481]\tvalidation-rmse:6.60730 \n", "[482]\tvalidation-rmse:6.60724 \n", "[483]\tvalidation-rmse:6.60721 \n", "[484]\tvalidation-rmse:6.60714 \n", "[485]\tvalidation-rmse:6.60706 \n", "[486]\tvalidation-rmse:6.60707 \n", "[487]\tvalidation-rmse:6.60700 \n", "[488]\tvalidation-rmse:6.60695 \n", "[489]\tvalidation-rmse:6.60688 \n", "[490]\tvalidation-rmse:6.60681 \n", "[491]\tvalidation-rmse:6.60680 \n", "[492]\tvalidation-rmse:6.60672 \n", "[493]\tvalidation-rmse:6.60675 \n", "[494]\tvalidation-rmse:6.60669 \n", "[495]\tvalidation-rmse:6.60669 \n", "[496]\tvalidation-rmse:6.60664 \n", "[497]\tvalidation-rmse:6.60665 \n", "[498]\tvalidation-rmse:6.60656 \n", "[499]\tvalidation-rmse:6.60651 \n", "[500]\tvalidation-rmse:6.60649 \n", "[501]\tvalidation-rmse:6.60644 \n", "[502]\tvalidation-rmse:6.60643 \n", "[503]\tvalidation-rmse:6.60635 \n", "[504]\tvalidation-rmse:6.60636 \n", "[505]\tvalidation-rmse:6.60628 \n", "[506]\tvalidation-rmse:6.60631 \n", "[507]\tvalidation-rmse:6.60631 \n", "[508]\tvalidation-rmse:6.60624 \n", "[509]\tvalidation-rmse:6.60616 \n", "[510]\tvalidation-rmse:6.60609 \n", "[511]\tvalidation-rmse:6.60604 \n", "[512]\tvalidation-rmse:6.60595 \n", "[513]\tvalidation-rmse:6.60596 \n", "[514]\tvalidation-rmse:6.60590 \n", "[515]\tvalidation-rmse:6.60589 \n", "[516]\tvalidation-rmse:6.60582 \n", "[517]\tvalidation-rmse:6.60582 \n", "[518]\tvalidation-rmse:6.60577 \n", "[519]\tvalidation-rmse:6.60575 \n", "[520]\tvalidation-rmse:6.60571 \n", "[521]\tvalidation-rmse:6.60571 \n", "[522]\tvalidation-rmse:6.60570 \n", "[523]\tvalidation-rmse:6.60564 \n", "[524]\tvalidation-rmse:6.60562 \n", "[525]\tvalidation-rmse:6.60553 \n", "[526]\tvalidation-rmse:6.60552 \n", "[527]\tvalidation-rmse:6.60547 \n", "[528]\tvalidation-rmse:6.60547 \n", "[529]\tvalidation-rmse:6.60542 \n", "[530]\tvalidation-rmse:6.60543 \n", "[531]\tvalidation-rmse:6.60538 \n", "[532]\tvalidation-rmse:6.60533 \n", "[533]\tvalidation-rmse:6.60529 \n", "[534]\tvalidation-rmse:6.60524 \n", "[535]\tvalidation-rmse:6.60522 \n", "[536]\tvalidation-rmse:6.60511 \n", "[537]\tvalidation-rmse:6.60509 \n", "[538]\tvalidation-rmse:6.60500 \n", "[539]\tvalidation-rmse:6.60493 \n", "[540]\tvalidation-rmse:6.60491 \n", "[541]\tvalidation-rmse:6.60494 \n", "[542]\tvalidation-rmse:6.60487 \n", "[543]\tvalidation-rmse:6.60488 \n", "[544]\tvalidation-rmse:6.60482 \n", "[545]\tvalidation-rmse:6.60476 \n", "[546]\tvalidation-rmse:6.60480 \n", "[547]\tvalidation-rmse:6.60476 \n", "[548]\tvalidation-rmse:6.60462 \n", "[549]\tvalidation-rmse:6.60456 \n", "[550]\tvalidation-rmse:6.60455 \n", "[551]\tvalidation-rmse:6.60452 \n", "[552]\tvalidation-rmse:6.60450 \n", "[553]\tvalidation-rmse:6.60445 \n", "[554]\tvalidation-rmse:6.60434 \n", "[555]\tvalidation-rmse:6.60426 \n", "[556]\tvalidation-rmse:6.60417 \n", "[557]\tvalidation-rmse:6.60409 \n", "[558]\tvalidation-rmse:6.60406 \n", "[559]\tvalidation-rmse:6.60404 \n", "[560]\tvalidation-rmse:6.60404 \n", "[561]\tvalidation-rmse:6.60399 \n", "[562]\tvalidation-rmse:6.60395 \n", "[563]\tvalidation-rmse:6.60398 \n", "[564]\tvalidation-rmse:6.60391 \n", "[565]\tvalidation-rmse:6.60393 \n", "[566]\tvalidation-rmse:6.60386 \n", "[567]\tvalidation-rmse:6.60386 \n", "[568]\tvalidation-rmse:6.60381 \n", "[569]\tvalidation-rmse:6.60379 \n", "[570]\tvalidation-rmse:6.60375 \n", "[571]\tvalidation-rmse:6.60375 \n", "[572]\tvalidation-rmse:6.60361 \n", "[573]\tvalidation-rmse:6.60348 \n", "[574]\tvalidation-rmse:6.60341 \n", "[575]\tvalidation-rmse:6.60339 \n", "[576]\tvalidation-rmse:6.60336 \n", "[577]\tvalidation-rmse:6.60333 \n", "[578]\tvalidation-rmse:6.60328 \n", "[579]\tvalidation-rmse:6.60328 \n", "[580]\tvalidation-rmse:6.60327 \n", "[581]\tvalidation-rmse:6.60312 \n", "[582]\tvalidation-rmse:6.60303 \n", "[583]\tvalidation-rmse:6.60296 \n", "[584]\tvalidation-rmse:6.60296 \n", "[585]\tvalidation-rmse:6.60280 \n", "[586]\tvalidation-rmse:6.60273 \n", "[587]\tvalidation-rmse:6.60270 \n", "[588]\tvalidation-rmse:6.60262 \n", "[589]\tvalidation-rmse:6.60255 \n", "[590]\tvalidation-rmse:6.60253 \n", "[591]\tvalidation-rmse:6.60241 \n", "[592]\tvalidation-rmse:6.60231 \n", "[593]\tvalidation-rmse:6.60224 \n", "[594]\tvalidation-rmse:6.60214 \n", "[595]\tvalidation-rmse:6.60204 \n", "[596]\tvalidation-rmse:6.60198 \n", "[597]\tvalidation-rmse:6.60186 \n", "[598]\tvalidation-rmse:6.60181 \n", "[599]\tvalidation-rmse:6.60177 \n", "[600]\tvalidation-rmse:6.60170 \n", "[601]\tvalidation-rmse:6.60163 \n", "[602]\tvalidation-rmse:6.60156 \n", "[603]\tvalidation-rmse:6.60152 \n", "[604]\tvalidation-rmse:6.60149 \n", "[605]\tvalidation-rmse:6.60143 \n", "[606]\tvalidation-rmse:6.60137 \n", "[607]\tvalidation-rmse:6.60133 \n", "[608]\tvalidation-rmse:6.60132 \n", "[609]\tvalidation-rmse:6.60116 \n", "[610]\tvalidation-rmse:6.60110 \n", "[611]\tvalidation-rmse:6.60108 \n", "[612]\tvalidation-rmse:6.60105 \n", "[613]\tvalidation-rmse:6.60103 \n", "[614]\tvalidation-rmse:6.60099 \n", "[615]\tvalidation-rmse:6.60094 \n", "[616]\tvalidation-rmse:6.60082 \n", "[617]\tvalidation-rmse:6.60079 \n", "[618]\tvalidation-rmse:6.60071 \n", "[619]\tvalidation-rmse:6.60063 \n", "[620]\tvalidation-rmse:6.60059 \n", "[621]\tvalidation-rmse:6.60055 \n", "[622]\tvalidation-rmse:6.60050 \n", "[623]\tvalidation-rmse:6.60047 \n", "[624]\tvalidation-rmse:6.60040 \n", "[625]\tvalidation-rmse:6.60041 \n", "[626]\tvalidation-rmse:6.60038 \n", "[627]\tvalidation-rmse:6.60031 \n", "[628]\tvalidation-rmse:6.60027 \n", "[629]\tvalidation-rmse:6.60020 \n", "[630]\tvalidation-rmse:6.60018 \n", "[631]\tvalidation-rmse:6.60014 \n", "[632]\tvalidation-rmse:6.60005 \n", "[633]\tvalidation-rmse:6.60000 \n", "[634]\tvalidation-rmse:6.59997 \n", "[635]\tvalidation-rmse:6.59994 \n", "[636]\tvalidation-rmse:6.59988 \n", "[637]\tvalidation-rmse:6.59984 \n", "[638]\tvalidation-rmse:6.59979 \n", "[639]\tvalidation-rmse:6.59978 \n", "[640]\tvalidation-rmse:6.59975 \n", "[641]\tvalidation-rmse:6.59970 \n", "[642]\tvalidation-rmse:6.59966 \n", "[643]\tvalidation-rmse:6.59961 \n", "[644]\tvalidation-rmse:6.59960 \n", "[645]\tvalidation-rmse:6.59956 \n", "[646]\tvalidation-rmse:6.59953 \n", "[647]\tvalidation-rmse:6.59954 \n", "[648]\tvalidation-rmse:6.59950 \n", "[649]\tvalidation-rmse:6.59943 \n", "[650]\tvalidation-rmse:6.59938 \n", "[651]\tvalidation-rmse:6.59934 \n", "[652]\tvalidation-rmse:6.59928 \n", "[653]\tvalidation-rmse:6.59926 \n", "[654]\tvalidation-rmse:6.59923 \n", "[655]\tvalidation-rmse:6.59923 \n", "[656]\tvalidation-rmse:6.59919 \n", "[657]\tvalidation-rmse:6.59912 \n", "[658]\tvalidation-rmse:6.59910 \n", "[659]\tvalidation-rmse:6.59901 \n", "[660]\tvalidation-rmse:6.59897 \n", "[661]\tvalidation-rmse:6.59893 \n", "[662]\tvalidation-rmse:6.59886 \n", "[663]\tvalidation-rmse:6.59884 \n", "[664]\tvalidation-rmse:6.59886 \n", "[665]\tvalidation-rmse:6.59886 \n", "[666]\tvalidation-rmse:6.59882 \n", "[667]\tvalidation-rmse:6.59885 \n", "[668]\tvalidation-rmse:6.59882 \n", "[669]\tvalidation-rmse:6.59877 \n", "[670]\tvalidation-rmse:6.59872 \n", "[671]\tvalidation-rmse:6.59870 \n", "[672]\tvalidation-rmse:6.59868 \n", "[673]\tvalidation-rmse:6.59864 \n", "[674]\tvalidation-rmse:6.59857 \n", "[675]\tvalidation-rmse:6.59857 \n", "[676]\tvalidation-rmse:6.59853 \n", "[677]\tvalidation-rmse:6.59849 \n", "[678]\tvalidation-rmse:6.59849 \n", "[679]\tvalidation-rmse:6.59844 \n", "[680]\tvalidation-rmse:6.59843 \n", "[681]\tvalidation-rmse:6.59840 \n", "[682]\tvalidation-rmse:6.59836 \n", "[683]\tvalidation-rmse:6.59831 \n", "[684]\tvalidation-rmse:6.59829 \n", "[685]\tvalidation-rmse:6.59825 \n", "[686]\tvalidation-rmse:6.59825 \n", "[687]\tvalidation-rmse:6.59823 \n", "[688]\tvalidation-rmse:6.59827 \n", "[689]\tvalidation-rmse:6.59816 \n", "[690]\tvalidation-rmse:6.59812 \n", "[691]\tvalidation-rmse:6.59807 \n", "[692]\tvalidation-rmse:6.59800 \n", "[693]\tvalidation-rmse:6.59795 \n", "[694]\tvalidation-rmse:6.59791 \n", "[695]\tvalidation-rmse:6.59788 \n", "[696]\tvalidation-rmse:6.59791 \n", "[697]\tvalidation-rmse:6.59786 \n", "[698]\tvalidation-rmse:6.59776 \n", "[699]\tvalidation-rmse:6.59772 \n", "[700]\tvalidation-rmse:6.59767 \n", "[701]\tvalidation-rmse:6.59762 \n", "[702]\tvalidation-rmse:6.59757 \n", "[703]\tvalidation-rmse:6.59758 \n", "[704]\tvalidation-rmse:6.59753 \n", "[705]\tvalidation-rmse:6.59752 \n", "[706]\tvalidation-rmse:6.59749 \n", "[707]\tvalidation-rmse:6.59745 \n", "[708]\tvalidation-rmse:6.59739 \n", "[709]\tvalidation-rmse:6.59736 \n", "[710]\tvalidation-rmse:6.59736 \n", "[711]\tvalidation-rmse:6.59733 \n", "[712]\tvalidation-rmse:6.59732 \n", "[713]\tvalidation-rmse:6.59729 \n", "[714]\tvalidation-rmse:6.59726 \n", "[715]\tvalidation-rmse:6.59724 \n", "[716]\tvalidation-rmse:6.59726 \n", "[717]\tvalidation-rmse:6.59721 \n", "[718]\tvalidation-rmse:6.59716 \n", "[719]\tvalidation-rmse:6.59716 \n", "[720]\tvalidation-rmse:6.59712 \n", "[721]\tvalidation-rmse:6.59706 \n", "[722]\tvalidation-rmse:6.59701 \n", "[723]\tvalidation-rmse:6.59700 \n", "[724]\tvalidation-rmse:6.59698 \n", "[725]\tvalidation-rmse:6.59697 \n", "[726]\tvalidation-rmse:6.59693 \n", "[727]\tvalidation-rmse:6.59695 \n", "[728]\tvalidation-rmse:6.59694 \n", "[729]\tvalidation-rmse:6.59694 \n", "[730]\tvalidation-rmse:6.59691 \n", "[731]\tvalidation-rmse:6.59679 \n", "[732]\tvalidation-rmse:6.59672 \n", "[733]\tvalidation-rmse:6.59669 \n", "[734]\tvalidation-rmse:6.59667 \n", "[735]\tvalidation-rmse:6.59664 \n", "[736]\tvalidation-rmse:6.59662 \n", "[737]\tvalidation-rmse:6.59663 \n", "[738]\tvalidation-rmse:6.59658 \n", "[739]\tvalidation-rmse:6.59658 \n", "[740]\tvalidation-rmse:6.59657 \n", "[741]\tvalidation-rmse:6.59661 \n", "[742]\tvalidation-rmse:6.59657 \n", "[743]\tvalidation-rmse:6.59659 \n", "[744]\tvalidation-rmse:6.59658 \n", "[745]\tvalidation-rmse:6.59657 \n", "[746]\tvalidation-rmse:6.59654 \n", "[747]\tvalidation-rmse:6.59656 \n", "[748]\tvalidation-rmse:6.59650 \n", "[749]\tvalidation-rmse:6.59646 \n", "[750]\tvalidation-rmse:6.59646 \n", "[751]\tvalidation-rmse:6.59640 \n", "[752]\tvalidation-rmse:6.59648 \n", "[753]\tvalidation-rmse:6.59643 \n", "[754]\tvalidation-rmse:6.59638 \n", "[755]\tvalidation-rmse:6.59637 \n", "[756]\tvalidation-rmse:6.59632 \n", "[757]\tvalidation-rmse:6.59635 \n", "[758]\tvalidation-rmse:6.59636 \n", "[759]\tvalidation-rmse:6.59620 \n", "[760]\tvalidation-rmse:6.59620 \n", "[761]\tvalidation-rmse:6.59617 \n", "[762]\tvalidation-rmse:6.59619 \n", "[763]\tvalidation-rmse:6.59616 \n", "[764]\tvalidation-rmse:6.59614 \n", "[765]\tvalidation-rmse:6.59614 \n", "[766]\tvalidation-rmse:6.59613 \n", "[767]\tvalidation-rmse:6.59612 \n", "[768]\tvalidation-rmse:6.59612 \n", "[769]\tvalidation-rmse:6.59608 \n", "[770]\tvalidation-rmse:6.59606 \n", "[771]\tvalidation-rmse:6.59605 \n", "[772]\tvalidation-rmse:6.59605 \n", "[773]\tvalidation-rmse:6.59604 \n", "[774]\tvalidation-rmse:6.59604 \n", "[775]\tvalidation-rmse:6.59603 \n", "[776]\tvalidation-rmse:6.59601 \n", "[777]\tvalidation-rmse:6.59601 \n", "[778]\tvalidation-rmse:6.59599 \n", "[779]\tvalidation-rmse:6.59598 \n", "[780]\tvalidation-rmse:6.59593 \n", "[781]\tvalidation-rmse:6.59590 \n", "[782]\tvalidation-rmse:6.59588 \n", "[783]\tvalidation-rmse:6.59584 \n", "[784]\tvalidation-rmse:6.59583 \n", "[785]\tvalidation-rmse:6.59581 \n", "[786]\tvalidation-rmse:6.59585 \n", "[787]\tvalidation-rmse:6.59580 \n", "[788]\tvalidation-rmse:6.59575 \n", "[789]\tvalidation-rmse:6.59566 \n", "[790]\tvalidation-rmse:6.59568 \n", "[791]\tvalidation-rmse:6.59568 \n", "[792]\tvalidation-rmse:6.59564 \n", "[793]\tvalidation-rmse:6.59564 \n", "[794]\tvalidation-rmse:6.59560 \n", "[795]\tvalidation-rmse:6.59557 \n", "[796]\tvalidation-rmse:6.59557 \n", "[797]\tvalidation-rmse:6.59532 \n", "[798]\tvalidation-rmse:6.59527 \n", "[799]\tvalidation-rmse:6.59528 \n", "[800]\tvalidation-rmse:6.59528 \n", "[801]\tvalidation-rmse:6.59524 \n", "[802]\tvalidation-rmse:6.59523 \n", "[803]\tvalidation-rmse:6.59524 \n", "[804]\tvalidation-rmse:6.59521 \n", "[805]\tvalidation-rmse:6.59519 \n", "[806]\tvalidation-rmse:6.59517 \n", "[807]\tvalidation-rmse:6.59514 \n", "[808]\tvalidation-rmse:6.59512 \n", "[809]\tvalidation-rmse:6.59513 \n", "[810]\tvalidation-rmse:6.59512 \n", "[811]\tvalidation-rmse:6.59509 \n", "[812]\tvalidation-rmse:6.59510 \n", "[813]\tvalidation-rmse:6.59509 \n", "[814]\tvalidation-rmse:6.59505 \n", "[815]\tvalidation-rmse:6.59504 \n", "[816]\tvalidation-rmse:6.59500 \n", "[817]\tvalidation-rmse:6.59497 \n", "[818]\tvalidation-rmse:6.59494 \n", "[819]\tvalidation-rmse:6.59495 \n", "[820]\tvalidation-rmse:6.59490 \n", "[821]\tvalidation-rmse:6.59490 \n", "[822]\tvalidation-rmse:6.59487 \n", "[823]\tvalidation-rmse:6.59475 \n", "[824]\tvalidation-rmse:6.59473 \n", "[825]\tvalidation-rmse:6.59470 \n", "[826]\tvalidation-rmse:6.59462 \n", "[827]\tvalidation-rmse:6.59453 \n", "[828]\tvalidation-rmse:6.59451 \n", "[829]\tvalidation-rmse:6.59446 \n", "[830]\tvalidation-rmse:6.59442 \n", "[831]\tvalidation-rmse:6.59442 \n", "[832]\tvalidation-rmse:6.59439 \n", "[833]\tvalidation-rmse:6.59437 \n", "[834]\tvalidation-rmse:6.59437 \n", "[835]\tvalidation-rmse:6.59434 \n", "[836]\tvalidation-rmse:6.59435 \n", "[837]\tvalidation-rmse:6.59433 \n", "[838]\tvalidation-rmse:6.59432 \n", "[839]\tvalidation-rmse:6.59431 \n", "[840]\tvalidation-rmse:6.59433 \n", "[841]\tvalidation-rmse:6.59427 \n", "[842]\tvalidation-rmse:6.59428 \n", "[843]\tvalidation-rmse:6.59425 \n", "[844]\tvalidation-rmse:6.59425 \n", "[845]\tvalidation-rmse:6.59424 \n", "[846]\tvalidation-rmse:6.59422 \n", "[847]\tvalidation-rmse:6.59419 \n", "[848]\tvalidation-rmse:6.59420 \n", "[849]\tvalidation-rmse:6.59409 \n", "[850]\tvalidation-rmse:6.59409 \n", "[851]\tvalidation-rmse:6.59408 \n", "[852]\tvalidation-rmse:6.59397 \n", "[853]\tvalidation-rmse:6.59399 \n", "[854]\tvalidation-rmse:6.59401 \n", "[855]\tvalidation-rmse:6.59399 \n", "[856]\tvalidation-rmse:6.59395 \n", "[857]\tvalidation-rmse:6.59394 \n", "[858]\tvalidation-rmse:6.59391 \n", "[859]\tvalidation-rmse:6.59387 \n", "[860]\tvalidation-rmse:6.59388 \n", "[861]\tvalidation-rmse:6.59386 \n", "[862]\tvalidation-rmse:6.59383 \n", "[863]\tvalidation-rmse:6.59382 \n", "[864]\tvalidation-rmse:6.59381 \n", "[865]\tvalidation-rmse:6.59379 \n", "[866]\tvalidation-rmse:6.59376 \n", "[867]\tvalidation-rmse:6.59374 \n", "[868]\tvalidation-rmse:6.59374 \n", "[869]\tvalidation-rmse:6.59367 \n", "[870]\tvalidation-rmse:6.59359 \n", "[871]\tvalidation-rmse:6.59356 \n", "[872]\tvalidation-rmse:6.59353 \n", "[873]\tvalidation-rmse:6.59350 \n", "[874]\tvalidation-rmse:6.59354 \n", "[875]\tvalidation-rmse:6.59356 \n", "[876]\tvalidation-rmse:6.59353 \n", "[877]\tvalidation-rmse:6.59352 \n", "[878]\tvalidation-rmse:6.59350 \n", "[879]\tvalidation-rmse:6.59353 \n", "[880]\tvalidation-rmse:6.59348 \n", "[881]\tvalidation-rmse:6.59345 \n", "[882]\tvalidation-rmse:6.59342 \n", "[883]\tvalidation-rmse:6.59341 \n", "[884]\tvalidation-rmse:6.59341 \n", "[885]\tvalidation-rmse:6.59334 \n", "[886]\tvalidation-rmse:6.59331 \n", "[887]\tvalidation-rmse:6.59328 \n", "[888]\tvalidation-rmse:6.59328 \n", "[889]\tvalidation-rmse:6.59324 \n", "[890]\tvalidation-rmse:6.59327 \n", "[891]\tvalidation-rmse:6.59312 \n", "[892]\tvalidation-rmse:6.59309 \n", "[893]\tvalidation-rmse:6.59309 \n", "[894]\tvalidation-rmse:6.59305 \n", "[895]\tvalidation-rmse:6.59305 \n", "[896]\tvalidation-rmse:6.59305 \n", "[897]\tvalidation-rmse:6.59308 \n", "[898]\tvalidation-rmse:6.59298 \n", "[899]\tvalidation-rmse:6.59298 \n", "[900]\tvalidation-rmse:6.59295 \n", "[901]\tvalidation-rmse:6.59281 \n", "[902]\tvalidation-rmse:6.59274 \n", "[903]\tvalidation-rmse:6.59277 \n", "[904]\tvalidation-rmse:6.59268 \n", "[905]\tvalidation-rmse:6.59271 \n", "[906]\tvalidation-rmse:6.59263 \n", "[907]\tvalidation-rmse:6.59262 \n", "[908]\tvalidation-rmse:6.59262 \n", "[909]\tvalidation-rmse:6.59261 \n", "[910]\tvalidation-rmse:6.59247 \n", "[911]\tvalidation-rmse:6.59248 \n", "[912]\tvalidation-rmse:6.59251 \n", "[913]\tvalidation-rmse:6.59251 \n", "[914]\tvalidation-rmse:6.59246 \n", "[915]\tvalidation-rmse:6.59247 \n", "[916]\tvalidation-rmse:6.59242 \n", "[917]\tvalidation-rmse:6.59232 \n", "[918]\tvalidation-rmse:6.59222 \n", "[919]\tvalidation-rmse:6.59214 \n", "[920]\tvalidation-rmse:6.59212 \n", "[921]\tvalidation-rmse:6.59210 \n", "[922]\tvalidation-rmse:6.59199 \n", "[923]\tvalidation-rmse:6.59207 \n", "[924]\tvalidation-rmse:6.59194 \n", "[925]\tvalidation-rmse:6.59192 \n", "[926]\tvalidation-rmse:6.59175 \n", "[927]\tvalidation-rmse:6.59175 \n", "[928]\tvalidation-rmse:6.59174 \n", "[929]\tvalidation-rmse:6.59166 \n", "[930]\tvalidation-rmse:6.59168 \n", "[931]\tvalidation-rmse:6.59166 \n", "[932]\tvalidation-rmse:6.59155 \n", "[933]\tvalidation-rmse:6.59154 \n", "[934]\tvalidation-rmse:6.59155 \n", "[935]\tvalidation-rmse:6.59156 \n", "[936]\tvalidation-rmse:6.59154 \n", "[937]\tvalidation-rmse:6.59154 \n", "[938]\tvalidation-rmse:6.59153 \n", "[939]\tvalidation-rmse:6.59151 \n", "[940]\tvalidation-rmse:6.59152 \n", "[941]\tvalidation-rmse:6.59148 \n", "[942]\tvalidation-rmse:6.59145 \n", "[943]\tvalidation-rmse:6.59142 \n", "[944]\tvalidation-rmse:6.59147 \n", "[945]\tvalidation-rmse:6.59132 \n", "[946]\tvalidation-rmse:6.59132 \n", "[947]\tvalidation-rmse:6.59131 \n", "[948]\tvalidation-rmse:6.59131 \n", "[949]\tvalidation-rmse:6.59129 \n", "[950]\tvalidation-rmse:6.59124 \n", "[951]\tvalidation-rmse:6.59125 \n", "[952]\tvalidation-rmse:6.59122 \n", "[953]\tvalidation-rmse:6.59124 \n", "[954]\tvalidation-rmse:6.59124 \n", "[955]\tvalidation-rmse:6.59123 \n", "[956]\tvalidation-rmse:6.59122 \n", "[957]\tvalidation-rmse:6.59119 \n", "[958]\tvalidation-rmse:6.59116 \n", "[959]\tvalidation-rmse:6.59113 \n", "[960]\tvalidation-rmse:6.59113 \n", "[961]\tvalidation-rmse:6.59113 \n", "[962]\tvalidation-rmse:6.59114 \n", "[963]\tvalidation-rmse:6.59111 \n", "[964]\tvalidation-rmse:6.59111 \n", "[965]\tvalidation-rmse:6.59109 \n", "[966]\tvalidation-rmse:6.59111 \n", "[967]\tvalidation-rmse:6.59107 \n", "[968]\tvalidation-rmse:6.59108 \n", "[969]\tvalidation-rmse:6.59104 \n", "[970]\tvalidation-rmse:6.59102 \n", "[971]\tvalidation-rmse:6.59100 \n", "[972]\tvalidation-rmse:6.59089 \n", "[973]\tvalidation-rmse:6.59088 \n", "[974]\tvalidation-rmse:6.59091 \n", "[975]\tvalidation-rmse:6.59090 \n", "[976]\tvalidation-rmse:6.59081 \n", "[977]\tvalidation-rmse:6.59086 \n", "[978]\tvalidation-rmse:6.59081 \n", "[979]\tvalidation-rmse:6.59086 \n", "[980]\tvalidation-rmse:6.59085 \n", "[981]\tvalidation-rmse:6.59082 \n", "[982]\tvalidation-rmse:6.59082 \n", "[983]\tvalidation-rmse:6.59081 \n", "[984]\tvalidation-rmse:6.59079 \n", "[985]\tvalidation-rmse:6.59077 \n", "[986]\tvalidation-rmse:6.59071 \n", "[987]\tvalidation-rmse:6.59070 \n", "[988]\tvalidation-rmse:6.59070 \n", "[989]\tvalidation-rmse:6.59070 \n", "[990]\tvalidation-rmse:6.59068 \n", "[991]\tvalidation-rmse:6.59066 \n", "[992]\tvalidation-rmse:6.59065 \n", "[993]\tvalidation-rmse:6.59064 \n", "[994]\tvalidation-rmse:6.59065 \n", "[995]\tvalidation-rmse:6.59066 \n", "[996]\tvalidation-rmse:6.59063 \n", "[997]\tvalidation-rmse:6.59062 \n", "[998]\tvalidation-rmse:6.59057 \n", "[999]\tvalidation-rmse:6.59055 \n", "[12:55:50] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:7.94999 \n", "[1]\tvalidation-rmse:6.66505 \n", "[2]\tvalidation-rmse:6.51208 \n", "[3]\tvalidation-rmse:6.49198 \n", "[4]\tvalidation-rmse:6.47869 \n", "[5]\tvalidation-rmse:6.46969 \n", "[6]\tvalidation-rmse:6.45923 \n", "[7]\tvalidation-rmse:6.44862 \n", "[8]\tvalidation-rmse:6.44191 \n", "[9]\tvalidation-rmse:6.43372 \n", "[10]\tvalidation-rmse:6.42872 \n", "[11]\tvalidation-rmse:6.41933 \n", "[12]\tvalidation-rmse:6.40998 \n", "[13]\tvalidation-rmse:6.40807 \n", "[14]\tvalidation-rmse:6.40168 \n", "[15]\tvalidation-rmse:6.39808 \n", "[16]\tvalidation-rmse:6.39353 \n", "[17]\tvalidation-rmse:6.39163 \n", "[18]\tvalidation-rmse:6.38800 \n", "[19]\tvalidation-rmse:6.38631 \n", "[20]\tvalidation-rmse:6.38182 \n", "[21]\tvalidation-rmse:6.37997 \n", "[22]\tvalidation-rmse:6.37545 \n", "[23]\tvalidation-rmse:6.37345 \n", "[24]\tvalidation-rmse:6.37131 \n", "[25]\tvalidation-rmse:6.36773 \n", "[26]\tvalidation-rmse:6.36801 \n", "[27]\tvalidation-rmse:6.36636 \n", "[28]\tvalidation-rmse:6.36504 \n", "[29]\tvalidation-rmse:6.36354 \n", "[30]\tvalidation-rmse:6.36220 \n", "[31]\tvalidation-rmse:6.36060 \n", "[32]\tvalidation-rmse:6.35946 \n", "[33]\tvalidation-rmse:6.35664 \n", "[34]\tvalidation-rmse:6.35519 \n", "[35]\tvalidation-rmse:6.35318 \n", "[36]\tvalidation-rmse:6.34908 \n", "[37]\tvalidation-rmse:6.34733 \n", "[38]\tvalidation-rmse:6.34574 \n", "[39]\tvalidation-rmse:6.34358 \n", "[40]\tvalidation-rmse:6.34305 \n", "[41]\tvalidation-rmse:6.34277 \n", "[42]\tvalidation-rmse:6.34077 \n", "[43]\tvalidation-rmse:6.33846 \n", "[44]\tvalidation-rmse:6.34654 \n", "[45]\tvalidation-rmse:6.34720 \n", "[46]\tvalidation-rmse:6.34523 \n", "[47]\tvalidation-rmse:6.34598 \n", "[48]\tvalidation-rmse:6.34558 \n", "[49]\tvalidation-rmse:6.34492 \n", "[50]\tvalidation-rmse:6.34528 \n", "[51]\tvalidation-rmse:6.34436 \n", "[52]\tvalidation-rmse:6.34400 \n", "[53]\tvalidation-rmse:6.34258 \n", "[54]\tvalidation-rmse:6.34259 \n", "[55]\tvalidation-rmse:6.34310 \n", "[56]\tvalidation-rmse:6.34271 \n", "[57]\tvalidation-rmse:6.34365 \n", "[58]\tvalidation-rmse:6.34363 \n", "[59]\tvalidation-rmse:6.34370 \n", "[60]\tvalidation-rmse:6.34441 \n", "[61]\tvalidation-rmse:6.34450 \n", "[62]\tvalidation-rmse:6.34563 \n", "[63]\tvalidation-rmse:6.34507 \n", "[64]\tvalidation-rmse:6.34467 \n", "[65]\tvalidation-rmse:6.34943 \n", "[66]\tvalidation-rmse:6.35302 \n", "[67]\tvalidation-rmse:6.35254 \n", "[68]\tvalidation-rmse:6.35299 \n", "[69]\tvalidation-rmse:6.35342 \n", "[70]\tvalidation-rmse:6.35833 \n", "[71]\tvalidation-rmse:6.35778 \n", "[72]\tvalidation-rmse:6.35878 \n", "[73]\tvalidation-rmse:6.36046 \n", "[74]\tvalidation-rmse:6.36036 \n", "[75]\tvalidation-rmse:6.36086 \n", "[76]\tvalidation-rmse:6.36137 \n", "[77]\tvalidation-rmse:6.36148 \n", "[78]\tvalidation-rmse:6.35999 \n", "[79]\tvalidation-rmse:6.36180 \n", "[80]\tvalidation-rmse:6.36185 \n", "[81]\tvalidation-rmse:6.36225 \n", "[82]\tvalidation-rmse:6.36401 \n", "[83]\tvalidation-rmse:6.36304 \n", "[84]\tvalidation-rmse:6.36272 \n", "[85]\tvalidation-rmse:6.36578 \n", "[86]\tvalidation-rmse:6.36743 \n", "[87]\tvalidation-rmse:6.36803 \n", "[88]\tvalidation-rmse:6.36723 \n", "[89]\tvalidation-rmse:6.36825 \n", "[90]\tvalidation-rmse:6.36886 \n", "[91]\tvalidation-rmse:6.36812 \n", "[92]\tvalidation-rmse:6.37044 \n", "[93]\tvalidation-rmse:6.37256 \n", "[12:56:10] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:10.64481 \n", "[1]\tvalidation-rmse:7.64485 \n", "[2]\tvalidation-rmse:6.90495 \n", "[3]\tvalidation-rmse:6.69288 \n", "[4]\tvalidation-rmse:6.62681 \n", "[5]\tvalidation-rmse:6.59206 \n", "[6]\tvalidation-rmse:6.57508 \n", "[7]\tvalidation-rmse:6.56611 \n", "[8]\tvalidation-rmse:6.55936 \n", "[9]\tvalidation-rmse:6.55532 \n", "[10]\tvalidation-rmse:6.55041 \n", "[11]\tvalidation-rmse:6.54803 \n", "[12]\tvalidation-rmse:6.54640 \n", "[13]\tvalidation-rmse:6.54392 \n", "[14]\tvalidation-rmse:6.54173 \n", "[15]\tvalidation-rmse:6.54067 \n", "[16]\tvalidation-rmse:6.53834 \n", "[17]\tvalidation-rmse:6.53847 \n", "[18]\tvalidation-rmse:6.53800 \n", "[19]\tvalidation-rmse:6.53789 \n", "[20]\tvalidation-rmse:6.53673 \n", "[21]\tvalidation-rmse:6.53516 \n", "[22]\tvalidation-rmse:6.53412 \n", "[23]\tvalidation-rmse:6.53367 \n", "[24]\tvalidation-rmse:6.53404 \n", "[25]\tvalidation-rmse:6.53348 \n", "[26]\tvalidation-rmse:6.53196 \n", "[27]\tvalidation-rmse:6.53243 \n", "[28]\tvalidation-rmse:6.53148 \n", "[29]\tvalidation-rmse:6.53113 \n", "[30]\tvalidation-rmse:6.53006 \n", "[31]\tvalidation-rmse:6.53090 \n", "[32]\tvalidation-rmse:6.53054 \n", "[33]\tvalidation-rmse:6.53009 \n", "[34]\tvalidation-rmse:6.52972 \n", "[35]\tvalidation-rmse:6.52924 \n", "[36]\tvalidation-rmse:6.52903 \n", "[37]\tvalidation-rmse:6.52863 \n", "[38]\tvalidation-rmse:6.52801 \n", "[39]\tvalidation-rmse:6.52808 \n", "[40]\tvalidation-rmse:6.52828 \n", "[41]\tvalidation-rmse:6.52731 \n", "[42]\tvalidation-rmse:6.52783 \n", "[43]\tvalidation-rmse:6.52872 \n", "[44]\tvalidation-rmse:6.52963 \n", "[45]\tvalidation-rmse:6.52899 \n", "[46]\tvalidation-rmse:6.53073 \n", "[47]\tvalidation-rmse:6.52950 \n", "[48]\tvalidation-rmse:6.53035 \n", "[49]\tvalidation-rmse:6.53058 \n", "[50]\tvalidation-rmse:6.53122 \n", "[51]\tvalidation-rmse:6.53192 \n", "[52]\tvalidation-rmse:6.53104 \n", "[53]\tvalidation-rmse:6.53145 \n", "[54]\tvalidation-rmse:6.53271 \n", "[55]\tvalidation-rmse:6.53334 \n", "[56]\tvalidation-rmse:6.53331 \n", "[57]\tvalidation-rmse:6.53292 \n", "[58]\tvalidation-rmse:6.53320 \n", "[59]\tvalidation-rmse:6.53360 \n", "[60]\tvalidation-rmse:6.53470 \n", "[61]\tvalidation-rmse:6.53684 \n", "[62]\tvalidation-rmse:6.53724 \n", "[63]\tvalidation-rmse:6.53771 \n", "[64]\tvalidation-rmse:6.53771 \n", "[65]\tvalidation-rmse:6.53707 \n", "[66]\tvalidation-rmse:6.53710 \n", "[67]\tvalidation-rmse:6.53764 \n", "[68]\tvalidation-rmse:6.53782 \n", "[69]\tvalidation-rmse:6.54225 \n", "[70]\tvalidation-rmse:6.54279 \n", "[71]\tvalidation-rmse:6.54347 \n", "[72]\tvalidation-rmse:6.54594 \n", "[73]\tvalidation-rmse:6.54586 \n", "[74]\tvalidation-rmse:6.54631 \n", "[75]\tvalidation-rmse:6.54722 \n", "[76]\tvalidation-rmse:6.54778 \n", "[77]\tvalidation-rmse:6.54802 \n", "[78]\tvalidation-rmse:6.54803 \n", "[79]\tvalidation-rmse:6.54922 \n", "[80]\tvalidation-rmse:6.54988 \n", "[81]\tvalidation-rmse:6.55017 \n", "[82]\tvalidation-rmse:6.55089 \n", "[83]\tvalidation-rmse:6.55261 \n", "[84]\tvalidation-rmse:6.55250 \n", "[85]\tvalidation-rmse:6.55257 \n", "[86]\tvalidation-rmse:6.55263 \n", "[87]\tvalidation-rmse:6.55446 \n", "[88]\tvalidation-rmse:6.55437 \n", "[89]\tvalidation-rmse:6.55435 \n", "[90]\tvalidation-rmse:6.55521 \n", "[91]\tvalidation-rmse:6.55597 \n", "[12:56:38] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:12.03354 \n", "[1]\tvalidation-rmse:8.52700 \n", "[2]\tvalidation-rmse:7.33946 \n", "[3]\tvalidation-rmse:6.94272 \n", "[4]\tvalidation-rmse:6.79021 \n", "[5]\tvalidation-rmse:6.72366 \n", "[6]\tvalidation-rmse:6.69201 \n", "[7]\tvalidation-rmse:6.67523 \n", "[8]\tvalidation-rmse:6.66677 \n", "[9]\tvalidation-rmse:6.66270 \n", "[10]\tvalidation-rmse:6.65757 \n", "[11]\tvalidation-rmse:6.65530 \n", "[12]\tvalidation-rmse:6.65331 \n", "[13]\tvalidation-rmse:6.65262 \n", "[14]\tvalidation-rmse:6.65035 \n", "[15]\tvalidation-rmse:6.65039 \n", "[16]\tvalidation-rmse:6.64985 \n", "[17]\tvalidation-rmse:6.64910 \n", "[18]\tvalidation-rmse:6.64815 \n", "[19]\tvalidation-rmse:6.64793 \n", "[20]\tvalidation-rmse:6.64728 \n", "[21]\tvalidation-rmse:6.64619 \n", "[22]\tvalidation-rmse:6.64553 \n", "[23]\tvalidation-rmse:6.64453 \n", "[24]\tvalidation-rmse:6.64315 \n", "[25]\tvalidation-rmse:6.64343 \n", "[26]\tvalidation-rmse:6.64214 \n", "[27]\tvalidation-rmse:6.64246 \n", "[28]\tvalidation-rmse:6.64070 \n", "[29]\tvalidation-rmse:6.64053 \n", "[30]\tvalidation-rmse:6.64135 \n", "[31]\tvalidation-rmse:6.64136 \n", "[32]\tvalidation-rmse:6.64292 \n", "[33]\tvalidation-rmse:6.64347 \n", "[34]\tvalidation-rmse:6.64399 \n", "[35]\tvalidation-rmse:6.64377 \n", "[36]\tvalidation-rmse:6.64454 \n", "[37]\tvalidation-rmse:6.64379 \n", "[38]\tvalidation-rmse:6.64488 \n", "[39]\tvalidation-rmse:6.64694 \n", "[40]\tvalidation-rmse:6.64707 \n", "[41]\tvalidation-rmse:6.64918 \n", "[42]\tvalidation-rmse:6.65053 \n", "[43]\tvalidation-rmse:6.65122 \n", "[44]\tvalidation-rmse:6.65037 \n", "[45]\tvalidation-rmse:6.65063 \n", "[46]\tvalidation-rmse:6.65130 \n", "[47]\tvalidation-rmse:6.65080 \n", "[48]\tvalidation-rmse:6.65066 \n", "[49]\tvalidation-rmse:6.65103 \n", "[50]\tvalidation-rmse:6.65142 \n", "[51]\tvalidation-rmse:6.65291 \n", "[52]\tvalidation-rmse:6.65287 \n", "[53]\tvalidation-rmse:6.65262 \n", "[54]\tvalidation-rmse:6.65313 \n", "[55]\tvalidation-rmse:6.65271 \n", "[56]\tvalidation-rmse:6.65449 \n", "[57]\tvalidation-rmse:6.65432 \n", "[58]\tvalidation-rmse:6.65530 \n", "[59]\tvalidation-rmse:6.65498 \n", "[60]\tvalidation-rmse:6.65492 \n", "[61]\tvalidation-rmse:6.65501 \n", "[62]\tvalidation-rmse:6.65459 \n", "[63]\tvalidation-rmse:6.65511 \n", "[64]\tvalidation-rmse:6.65514 \n", "[65]\tvalidation-rmse:6.65566 \n", "[66]\tvalidation-rmse:6.65552 \n", "[67]\tvalidation-rmse:6.65555 \n", "[68]\tvalidation-rmse:6.65657 \n", "[69]\tvalidation-rmse:6.65637 \n", "[70]\tvalidation-rmse:6.65691 \n", "[71]\tvalidation-rmse:6.65731 \n", "[72]\tvalidation-rmse:6.65695 \n", "[73]\tvalidation-rmse:6.65791 \n", "[74]\tvalidation-rmse:6.65822 \n", "[75]\tvalidation-rmse:6.65778 \n", "[76]\tvalidation-rmse:6.65749 \n", "[77]\tvalidation-rmse:6.65737 \n", "[78]\tvalidation-rmse:6.65779 \n", "[79]\tvalidation-rmse:6.65763 \n", "[12:57:04] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:6.80989 \n", "[1]\tvalidation-rmse:6.70418 \n", "[2]\tvalidation-rmse:6.67275 \n", "[3]\tvalidation-rmse:6.65733 \n", "[4]\tvalidation-rmse:6.64064 \n", "[5]\tvalidation-rmse:6.63494 \n", "[6]\tvalidation-rmse:6.63649 \n", "[7]\tvalidation-rmse:6.62836 \n", "[8]\tvalidation-rmse:6.62406 \n", "[9]\tvalidation-rmse:6.61550 \n", "[10]\tvalidation-rmse:6.61334 \n", "[11]\tvalidation-rmse:6.61281 \n", "[12]\tvalidation-rmse:6.60964 \n", "[13]\tvalidation-rmse:6.60956 \n", "[14]\tvalidation-rmse:6.60787 \n", "[15]\tvalidation-rmse:6.60701 \n", "[16]\tvalidation-rmse:6.60575 \n", "[17]\tvalidation-rmse:6.60646 \n", "[18]\tvalidation-rmse:6.60317 \n", "[19]\tvalidation-rmse:6.60425 \n", "[20]\tvalidation-rmse:6.60630 \n", "[21]\tvalidation-rmse:6.60418 \n", "[22]\tvalidation-rmse:6.60286 \n", "[23]\tvalidation-rmse:6.60203 \n", "[24]\tvalidation-rmse:6.60279 \n", "[25]\tvalidation-rmse:6.60278 \n", "[26]\tvalidation-rmse:6.60153 \n", "[27]\tvalidation-rmse:6.60786 \n", "[28]\tvalidation-rmse:6.60726 \n", "[29]\tvalidation-rmse:6.61617 \n", "[30]\tvalidation-rmse:6.61597 \n", "[31]\tvalidation-rmse:6.61643 \n", "[32]\tvalidation-rmse:6.61416 \n", "[33]\tvalidation-rmse:6.61543 \n", "[34]\tvalidation-rmse:6.61535 \n", "[35]\tvalidation-rmse:6.61594 \n", "[36]\tvalidation-rmse:6.61374 \n", "[37]\tvalidation-rmse:6.61401 \n", "[38]\tvalidation-rmse:6.61224 \n", "[39]\tvalidation-rmse:6.61305 \n", "[40]\tvalidation-rmse:6.61343 \n", "[41]\tvalidation-rmse:6.61390 \n", "[42]\tvalidation-rmse:6.61557 \n", "[43]\tvalidation-rmse:6.61621 \n", "[44]\tvalidation-rmse:6.61631 \n", "[45]\tvalidation-rmse:6.61738 \n", "[46]\tvalidation-rmse:6.61950 \n", "[47]\tvalidation-rmse:6.61979 \n", "[48]\tvalidation-rmse:6.62065 \n", "[49]\tvalidation-rmse:6.62318 \n", "[50]\tvalidation-rmse:6.62296 \n", "[51]\tvalidation-rmse:6.62230 \n", "[52]\tvalidation-rmse:6.62222 \n", "[53]\tvalidation-rmse:6.62211 \n", "[54]\tvalidation-rmse:6.62136 \n", "[55]\tvalidation-rmse:6.62277 \n", "[56]\tvalidation-rmse:6.62317 \n", "[57]\tvalidation-rmse:6.62356 \n", "[58]\tvalidation-rmse:6.62406 \n", "[59]\tvalidation-rmse:6.62626 \n", "[60]\tvalidation-rmse:6.62628 \n", "[61]\tvalidation-rmse:6.62664 \n", "[62]\tvalidation-rmse:6.62751 \n", "[63]\tvalidation-rmse:6.62776 \n", "[64]\tvalidation-rmse:6.62699 \n", "[65]\tvalidation-rmse:6.62683 \n", "[66]\tvalidation-rmse:6.62689 \n", "[67]\tvalidation-rmse:6.62938 \n", "[68]\tvalidation-rmse:6.62989 \n", "[69]\tvalidation-rmse:6.63032 \n", "[70]\tvalidation-rmse:6.63106 \n", "[71]\tvalidation-rmse:6.63095 \n", "[72]\tvalidation-rmse:6.63214 \n", "[73]\tvalidation-rmse:6.63168 \n", "[74]\tvalidation-rmse:6.63180 \n", "[75]\tvalidation-rmse:6.63249 \n", "[76]\tvalidation-rmse:6.63311 \n", "[12:57:23] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:18.73838 \n", "[1]\tvalidation-rmse:16.65480 \n", "[2]\tvalidation-rmse:14.89445 \n", "[3]\tvalidation-rmse:13.41476 \n", "[4]\tvalidation-rmse:12.17492 \n", "[5]\tvalidation-rmse:11.14544 \n", "[6]\tvalidation-rmse:10.29238 \n", "[7]\tvalidation-rmse:9.59132 \n", "[8]\tvalidation-rmse:9.01886 \n", "[9]\tvalidation-rmse:8.55327 \n", "[10]\tvalidation-rmse:8.17608 \n", "[11]\tvalidation-rmse:7.87159 \n", "[12]\tvalidation-rmse:7.62357 \n", "[13]\tvalidation-rmse:7.42538 \n", "[14]\tvalidation-rmse:7.26560 \n", "[15]\tvalidation-rmse:7.13530 \n", "[16]\tvalidation-rmse:7.02884 \n", "[17]\tvalidation-rmse:6.94293 \n", "[18]\tvalidation-rmse:6.87393 \n", "[19]\tvalidation-rmse:6.81595 \n", "[20]\tvalidation-rmse:6.76813 \n", "[21]\tvalidation-rmse:6.72832 \n", "[22]\tvalidation-rmse:6.69469 \n", "[23]\tvalidation-rmse:6.66751 \n", "[24]\tvalidation-rmse:6.64510 \n", "[25]\tvalidation-rmse:6.62421 \n", "[26]\tvalidation-rmse:6.60612 \n", "[27]\tvalidation-rmse:6.59131 \n", "[28]\tvalidation-rmse:6.57727 \n", "[29]\tvalidation-rmse:6.56610 \n", "[30]\tvalidation-rmse:6.55680 \n", "[31]\tvalidation-rmse:6.54856 \n", "[32]\tvalidation-rmse:6.54149 \n", "[33]\tvalidation-rmse:6.53441 \n", "[34]\tvalidation-rmse:6.52821 \n", "[35]\tvalidation-rmse:6.52279 \n", "[36]\tvalidation-rmse:6.51852 \n", "[37]\tvalidation-rmse:6.51444 \n", "[38]\tvalidation-rmse:6.51039 \n", "[39]\tvalidation-rmse:6.50722 \n", "[40]\tvalidation-rmse:6.50486 \n", "[41]\tvalidation-rmse:6.50207 \n", "[42]\tvalidation-rmse:6.49963 \n", "[43]\tvalidation-rmse:6.49770 \n", "[44]\tvalidation-rmse:6.49520 \n", "[45]\tvalidation-rmse:6.49358 \n", "[46]\tvalidation-rmse:6.49213 \n", "[47]\tvalidation-rmse:6.49036 \n", "[48]\tvalidation-rmse:6.48902 \n", "[49]\tvalidation-rmse:6.48810 \n", "[50]\tvalidation-rmse:6.48679 \n", "[51]\tvalidation-rmse:6.48578 \n", "[52]\tvalidation-rmse:6.48438 \n", "[53]\tvalidation-rmse:6.48292 \n", "[54]\tvalidation-rmse:6.48182 \n", "[55]\tvalidation-rmse:6.48063 \n", "[56]\tvalidation-rmse:6.47937 \n", "[57]\tvalidation-rmse:6.47871 \n", "[58]\tvalidation-rmse:6.47725 \n", "[59]\tvalidation-rmse:6.47626 \n", "[60]\tvalidation-rmse:6.47554 \n", "[61]\tvalidation-rmse:6.47475 \n", "[62]\tvalidation-rmse:6.47407 \n", "[63]\tvalidation-rmse:6.47324 \n", "[64]\tvalidation-rmse:6.47261 \n", "[65]\tvalidation-rmse:6.47196 \n", "[66]\tvalidation-rmse:6.47103 \n", "[67]\tvalidation-rmse:6.46959 \n", "[68]\tvalidation-rmse:6.46887 \n", "[69]\tvalidation-rmse:6.46844 \n", "[70]\tvalidation-rmse:6.46777 \n", "[71]\tvalidation-rmse:6.46721 \n", "[72]\tvalidation-rmse:6.46646 \n", "[73]\tvalidation-rmse:6.46620 \n", "[74]\tvalidation-rmse:6.46522 \n", "[75]\tvalidation-rmse:6.46483 \n", "[76]\tvalidation-rmse:6.46450 \n", "[77]\tvalidation-rmse:6.46408 \n", "[78]\tvalidation-rmse:6.46375 \n", "[79]\tvalidation-rmse:6.46302 \n", "[80]\tvalidation-rmse:6.46270 \n", "[81]\tvalidation-rmse:6.46216 \n", "[82]\tvalidation-rmse:6.46171 \n", "[83]\tvalidation-rmse:6.46138 \n", "[84]\tvalidation-rmse:6.46088 \n", "[85]\tvalidation-rmse:6.46040 \n", "[86]\tvalidation-rmse:6.45953 \n", "[87]\tvalidation-rmse:6.45914 \n", "[88]\tvalidation-rmse:6.45851 \n", "[89]\tvalidation-rmse:6.45800 \n", "[90]\tvalidation-rmse:6.45773 \n", "[91]\tvalidation-rmse:6.45723 \n", "[92]\tvalidation-rmse:6.45688 \n", "[93]\tvalidation-rmse:6.45640 \n", "[94]\tvalidation-rmse:6.45601 \n", "[95]\tvalidation-rmse:6.45548 \n", "[96]\tvalidation-rmse:6.45517 \n", "[97]\tvalidation-rmse:6.45464 \n", "[98]\tvalidation-rmse:6.45432 \n", "[99]\tvalidation-rmse:6.45395 \n", "[100]\tvalidation-rmse:6.45367 \n", "[101]\tvalidation-rmse:6.45335 \n", "[102]\tvalidation-rmse:6.45306 \n", "[103]\tvalidation-rmse:6.45264 \n", "[104]\tvalidation-rmse:6.45245 \n", "[105]\tvalidation-rmse:6.45213 \n", "[106]\tvalidation-rmse:6.45175 \n", "[107]\tvalidation-rmse:6.45125 \n", "[108]\tvalidation-rmse:6.45056 \n", "[109]\tvalidation-rmse:6.45027 \n", "[110]\tvalidation-rmse:6.44996 \n", "[111]\tvalidation-rmse:6.44952 \n", "[112]\tvalidation-rmse:6.44922 \n", "[113]\tvalidation-rmse:6.44875 \n", "[114]\tvalidation-rmse:6.44842 \n", "[115]\tvalidation-rmse:6.44823 \n", "[116]\tvalidation-rmse:6.44805 \n", "[117]\tvalidation-rmse:6.44793 \n", "[118]\tvalidation-rmse:6.44744 \n", "[119]\tvalidation-rmse:6.44733 \n", "[120]\tvalidation-rmse:6.44701 \n", "[121]\tvalidation-rmse:6.44674 \n", "[122]\tvalidation-rmse:6.44662 \n", "[123]\tvalidation-rmse:6.44634 \n", "[124]\tvalidation-rmse:6.44561 \n", "[125]\tvalidation-rmse:6.44535 \n", "[126]\tvalidation-rmse:6.44507 \n", "[127]\tvalidation-rmse:6.44485 \n", "[128]\tvalidation-rmse:6.44469 \n", "[129]\tvalidation-rmse:6.44419 \n", "[130]\tvalidation-rmse:6.44422 \n", "[131]\tvalidation-rmse:6.44392 \n", "[132]\tvalidation-rmse:6.44382 \n", "[133]\tvalidation-rmse:6.44351 \n", "[134]\tvalidation-rmse:6.44324 \n", "[135]\tvalidation-rmse:6.44319 \n", "[136]\tvalidation-rmse:6.44270 \n", "[137]\tvalidation-rmse:6.44230 \n", "[138]\tvalidation-rmse:6.44194 \n", "[139]\tvalidation-rmse:6.44170 \n", "[140]\tvalidation-rmse:6.44152 \n", "[141]\tvalidation-rmse:6.44074 \n", "[142]\tvalidation-rmse:6.44025 \n", "[143]\tvalidation-rmse:6.44009 \n", "[144]\tvalidation-rmse:6.43981 \n", "[145]\tvalidation-rmse:6.43973 \n", "[146]\tvalidation-rmse:6.43976 \n", "[147]\tvalidation-rmse:6.43968 \n", "[148]\tvalidation-rmse:6.43948 \n", "[149]\tvalidation-rmse:6.43901 \n", "[150]\tvalidation-rmse:6.43870 \n", "[151]\tvalidation-rmse:6.43863 \n", "[152]\tvalidation-rmse:6.43852 \n", "[153]\tvalidation-rmse:6.43827 \n", "[154]\tvalidation-rmse:6.43767 \n", "[155]\tvalidation-rmse:6.43750 \n", "[156]\tvalidation-rmse:6.43749 \n", "[157]\tvalidation-rmse:6.43735 \n", "[158]\tvalidation-rmse:6.43712 \n", "[159]\tvalidation-rmse:6.43692 \n", "[160]\tvalidation-rmse:6.43668 \n", "[161]\tvalidation-rmse:6.43658 \n", "[162]\tvalidation-rmse:6.43625 \n", "[163]\tvalidation-rmse:6.43626 \n", "[164]\tvalidation-rmse:6.43611 \n", "[165]\tvalidation-rmse:6.43558 \n", "[166]\tvalidation-rmse:6.43532 \n", "[167]\tvalidation-rmse:6.43516 \n", "[168]\tvalidation-rmse:6.43506 \n", "[169]\tvalidation-rmse:6.43467 \n", "[170]\tvalidation-rmse:6.43465 \n", "[171]\tvalidation-rmse:6.43455 \n", "[172]\tvalidation-rmse:6.43470 \n", "[173]\tvalidation-rmse:6.43469 \n", "[174]\tvalidation-rmse:6.43443 \n", "[175]\tvalidation-rmse:6.43362 \n", "[176]\tvalidation-rmse:6.43340 \n", "[177]\tvalidation-rmse:6.43282 \n", "[178]\tvalidation-rmse:6.43255 \n", "[179]\tvalidation-rmse:6.43231 \n", "[180]\tvalidation-rmse:6.43199 \n", "[181]\tvalidation-rmse:6.43192 \n", "[182]\tvalidation-rmse:6.43189 \n", "[183]\tvalidation-rmse:6.43150 \n", "[184]\tvalidation-rmse:6.43154 \n", "[185]\tvalidation-rmse:6.43142 \n", "[186]\tvalidation-rmse:6.43093 \n", "[187]\tvalidation-rmse:6.43053 \n", "[188]\tvalidation-rmse:6.43043 \n", "[189]\tvalidation-rmse:6.43031 \n", "[190]\tvalidation-rmse:6.43011 \n", "[191]\tvalidation-rmse:6.42992 \n", "[192]\tvalidation-rmse:6.42976 \n", "[193]\tvalidation-rmse:6.42975 \n", "[194]\tvalidation-rmse:6.42945 \n", "[195]\tvalidation-rmse:6.42937 \n", "[196]\tvalidation-rmse:6.42961 \n", "[197]\tvalidation-rmse:6.42964 \n", "[198]\tvalidation-rmse:6.42966 \n", "[199]\tvalidation-rmse:6.42953 \n", "[200]\tvalidation-rmse:6.42946 \n", "[201]\tvalidation-rmse:6.42944 \n", "[202]\tvalidation-rmse:6.42954 \n", "[203]\tvalidation-rmse:6.42948 \n", "[204]\tvalidation-rmse:6.42943 \n", "[205]\tvalidation-rmse:6.42911 \n", "[206]\tvalidation-rmse:6.42880 \n", "[207]\tvalidation-rmse:6.42873 \n", "[208]\tvalidation-rmse:6.42899 \n", "[209]\tvalidation-rmse:6.42905 \n", "[210]\tvalidation-rmse:6.42879 \n", "[211]\tvalidation-rmse:6.42853 \n", "[212]\tvalidation-rmse:6.42835 \n", "[213]\tvalidation-rmse:6.42820 \n", "[214]\tvalidation-rmse:6.42776 \n", "[215]\tvalidation-rmse:6.42751 \n", "[216]\tvalidation-rmse:6.42715 \n", "[217]\tvalidation-rmse:6.42716 \n", "[218]\tvalidation-rmse:6.42713 \n", "[219]\tvalidation-rmse:6.42694 \n", "[220]\tvalidation-rmse:6.42687 \n", "[221]\tvalidation-rmse:6.42674 \n", "[222]\tvalidation-rmse:6.42674 \n", "[223]\tvalidation-rmse:6.42699 \n", "[224]\tvalidation-rmse:6.42720 \n", "[225]\tvalidation-rmse:6.42819 \n", "[226]\tvalidation-rmse:6.42811 \n", "[227]\tvalidation-rmse:6.42801 \n", "[228]\tvalidation-rmse:6.42788 \n", "[229]\tvalidation-rmse:6.42791 \n", "[230]\tvalidation-rmse:6.42788 \n", "[231]\tvalidation-rmse:6.42771 \n", "[232]\tvalidation-rmse:6.42758 \n", "[233]\tvalidation-rmse:6.42739 \n", "[234]\tvalidation-rmse:6.42713 \n", "[235]\tvalidation-rmse:6.42723 \n", "[236]\tvalidation-rmse:6.42726 \n", "[237]\tvalidation-rmse:6.42711 \n", "[238]\tvalidation-rmse:6.42687 \n", "[239]\tvalidation-rmse:6.42673 \n", "[240]\tvalidation-rmse:6.42656 \n", "[241]\tvalidation-rmse:6.42629 \n", "[242]\tvalidation-rmse:6.42636 \n", "[243]\tvalidation-rmse:6.42608 \n", "[244]\tvalidation-rmse:6.42595 \n", "[245]\tvalidation-rmse:6.42610 \n", "[246]\tvalidation-rmse:6.42587 \n", "[247]\tvalidation-rmse:6.42588 \n", "[248]\tvalidation-rmse:6.42595 \n", "[249]\tvalidation-rmse:6.42591 \n", "[250]\tvalidation-rmse:6.42588 \n", "[251]\tvalidation-rmse:6.42575 \n", "[252]\tvalidation-rmse:6.42579 \n", "[253]\tvalidation-rmse:6.42557 \n", "[254]\tvalidation-rmse:6.42537 \n", "[255]\tvalidation-rmse:6.42558 \n", "[256]\tvalidation-rmse:6.42567 \n", "[257]\tvalidation-rmse:6.42524 \n", "[258]\tvalidation-rmse:6.42493 \n", "[259]\tvalidation-rmse:6.42489 \n", "[260]\tvalidation-rmse:6.42475 \n", "[261]\tvalidation-rmse:6.42487 \n", "[262]\tvalidation-rmse:6.42475 \n", "[263]\tvalidation-rmse:6.42469 \n", "[264]\tvalidation-rmse:6.42439 \n", "[265]\tvalidation-rmse:6.42438 \n", "[266]\tvalidation-rmse:6.42448 \n", "[267]\tvalidation-rmse:6.42439 \n", "[268]\tvalidation-rmse:6.42431 \n", "[269]\tvalidation-rmse:6.42407 \n", "[270]\tvalidation-rmse:6.42388 \n", "[271]\tvalidation-rmse:6.42394 \n", "[272]\tvalidation-rmse:6.42393 \n", "[273]\tvalidation-rmse:6.42388 \n", "[274]\tvalidation-rmse:6.42372 \n", "[275]\tvalidation-rmse:6.42387 \n", "[276]\tvalidation-rmse:6.42388 \n", "[277]\tvalidation-rmse:6.42398 \n", "[278]\tvalidation-rmse:6.42408 \n", "[279]\tvalidation-rmse:6.42404 \n", "[280]\tvalidation-rmse:6.42379 \n", "[281]\tvalidation-rmse:6.42386 \n", "[282]\tvalidation-rmse:6.42374 \n", "[283]\tvalidation-rmse:6.42376 \n", "[284]\tvalidation-rmse:6.42366 \n", "[285]\tvalidation-rmse:6.42358 \n", "[286]\tvalidation-rmse:6.42347 \n", "[287]\tvalidation-rmse:6.42341 \n", "[288]\tvalidation-rmse:6.42331 \n", "[289]\tvalidation-rmse:6.42342 \n", "[290]\tvalidation-rmse:6.42326 \n", "[291]\tvalidation-rmse:6.42291 \n", "[292]\tvalidation-rmse:6.42282 \n", "[293]\tvalidation-rmse:6.42292 \n", "[294]\tvalidation-rmse:6.42283 \n", "[295]\tvalidation-rmse:6.42267 \n", "[296]\tvalidation-rmse:6.42255 \n", "[297]\tvalidation-rmse:6.42252 \n", "[298]\tvalidation-rmse:6.42229 \n", "[299]\tvalidation-rmse:6.42232 \n", "[300]\tvalidation-rmse:6.42235 \n", "[301]\tvalidation-rmse:6.42243 \n", "[302]\tvalidation-rmse:6.42242 \n", "[303]\tvalidation-rmse:6.42240 \n", "[304]\tvalidation-rmse:6.42237 \n", "[305]\tvalidation-rmse:6.42239 \n", "[306]\tvalidation-rmse:6.42233 \n", "[307]\tvalidation-rmse:6.42231 \n", "[308]\tvalidation-rmse:6.42233 \n", "[309]\tvalidation-rmse:6.42226 \n", "[310]\tvalidation-rmse:6.42238 \n", "[311]\tvalidation-rmse:6.42258 \n", "[312]\tvalidation-rmse:6.42253 \n", "[313]\tvalidation-rmse:6.42237 \n", "[314]\tvalidation-rmse:6.42288 \n", "[315]\tvalidation-rmse:6.42347 \n", "[316]\tvalidation-rmse:6.42361 \n", "[317]\tvalidation-rmse:6.42365 \n", "[318]\tvalidation-rmse:6.42362 \n", "[319]\tvalidation-rmse:6.42348 \n", "[320]\tvalidation-rmse:6.42355 \n", "[321]\tvalidation-rmse:6.42350 \n", "[322]\tvalidation-rmse:6.42345 \n", "[323]\tvalidation-rmse:6.42358 \n", "[324]\tvalidation-rmse:6.42357 \n", "[325]\tvalidation-rmse:6.42332 \n", "[326]\tvalidation-rmse:6.42339 \n", "[327]\tvalidation-rmse:6.42336 \n", "[328]\tvalidation-rmse:6.42311 \n", "[329]\tvalidation-rmse:6.42297 \n", "[330]\tvalidation-rmse:6.42290 \n", "[331]\tvalidation-rmse:6.42289 \n", "[332]\tvalidation-rmse:6.42284 \n", "[333]\tvalidation-rmse:6.42272 \n", "[334]\tvalidation-rmse:6.42280 \n", "[335]\tvalidation-rmse:6.42424 \n", "[336]\tvalidation-rmse:6.42436 \n", "[337]\tvalidation-rmse:6.42425 \n", "[338]\tvalidation-rmse:6.42440 \n", "[339]\tvalidation-rmse:6.42440 \n", "[340]\tvalidation-rmse:6.42434 \n", "[341]\tvalidation-rmse:6.42425 \n", "[342]\tvalidation-rmse:6.42371 \n", "[343]\tvalidation-rmse:6.42372 \n", "[344]\tvalidation-rmse:6.42373 \n", "[345]\tvalidation-rmse:6.42331 \n", "[346]\tvalidation-rmse:6.42321 \n", "[347]\tvalidation-rmse:6.42327 \n", "[348]\tvalidation-rmse:6.42325 \n", "[349]\tvalidation-rmse:6.42322 \n", "[350]\tvalidation-rmse:6.42319 \n", "[351]\tvalidation-rmse:6.42309 \n", "[352]\tvalidation-rmse:6.42280 \n", "[353]\tvalidation-rmse:6.42279 \n", "[354]\tvalidation-rmse:6.42292 \n", "[355]\tvalidation-rmse:6.42281 \n", "[356]\tvalidation-rmse:6.42280 \n", "[357]\tvalidation-rmse:6.42267 \n", "[358]\tvalidation-rmse:6.42251 \n", "[359]\tvalidation-rmse:6.42227 \n", "[12:58:34] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:16.46234 \n", "[1]\tvalidation-rmse:13.14594 \n", "[2]\tvalidation-rmse:10.87019 \n", "[3]\tvalidation-rmse:9.34545 \n", "[4]\tvalidation-rmse:8.34395 \n", "[5]\tvalidation-rmse:7.70253 \n", "[6]\tvalidation-rmse:7.28939 \n", "[7]\tvalidation-rmse:7.02685 \n", "[8]\tvalidation-rmse:6.85399 \n", "[9]\tvalidation-rmse:6.74153 \n", "[10]\tvalidation-rmse:6.66233 \n", "[11]\tvalidation-rmse:6.60783 \n", "[12]\tvalidation-rmse:6.56779 \n", "[13]\tvalidation-rmse:6.53906 \n", "[14]\tvalidation-rmse:6.51751 \n", "[15]\tvalidation-rmse:6.50278 \n", "[16]\tvalidation-rmse:6.49343 \n", "[17]\tvalidation-rmse:6.48424 \n", "[18]\tvalidation-rmse:6.47904 \n", "[19]\tvalidation-rmse:6.47403 \n", "[20]\tvalidation-rmse:6.46991 \n", "[21]\tvalidation-rmse:6.46657 \n", "[22]\tvalidation-rmse:6.46344 \n", "[23]\tvalidation-rmse:6.46028 \n", "[24]\tvalidation-rmse:6.45578 \n", "[25]\tvalidation-rmse:6.45352 \n", "[26]\tvalidation-rmse:6.45079 \n", "[27]\tvalidation-rmse:6.44839 \n", "[28]\tvalidation-rmse:6.44479 \n", "[29]\tvalidation-rmse:6.44292 \n", "[30]\tvalidation-rmse:6.44095 \n", "[31]\tvalidation-rmse:6.43742 \n", "[32]\tvalidation-rmse:6.43548 \n", "[33]\tvalidation-rmse:6.43346 \n", "[34]\tvalidation-rmse:6.43236 \n", "[35]\tvalidation-rmse:6.43076 \n", "[36]\tvalidation-rmse:6.42917 \n", "[37]\tvalidation-rmse:6.42837 \n", "[38]\tvalidation-rmse:6.42719 \n", "[39]\tvalidation-rmse:6.42574 \n", "[40]\tvalidation-rmse:6.42426 \n", "[41]\tvalidation-rmse:6.42287 \n", "[42]\tvalidation-rmse:6.42075 \n", "[43]\tvalidation-rmse:6.41950 \n", "[44]\tvalidation-rmse:6.41768 \n", "[45]\tvalidation-rmse:6.41618 \n", "[46]\tvalidation-rmse:6.41494 \n", "[47]\tvalidation-rmse:6.41329 \n", "[48]\tvalidation-rmse:6.41222 \n", "[49]\tvalidation-rmse:6.40964 \n", "[50]\tvalidation-rmse:6.40776 \n", "[51]\tvalidation-rmse:6.40689 \n", "[52]\tvalidation-rmse:6.40570 \n", "[53]\tvalidation-rmse:6.40467 \n", "[54]\tvalidation-rmse:6.40364 \n", "[55]\tvalidation-rmse:6.40265 \n", "[56]\tvalidation-rmse:6.40179 \n", "[57]\tvalidation-rmse:6.40090 \n", "[58]\tvalidation-rmse:6.40023 \n", "[59]\tvalidation-rmse:6.39953 \n", "[60]\tvalidation-rmse:6.39831 \n", "[61]\tvalidation-rmse:6.39715 \n", "[62]\tvalidation-rmse:6.39644 \n", "[63]\tvalidation-rmse:6.39541 \n", "[64]\tvalidation-rmse:6.39456 \n", "[65]\tvalidation-rmse:6.39325 \n", "[66]\tvalidation-rmse:6.39243 \n", "[67]\tvalidation-rmse:6.39199 \n", "[68]\tvalidation-rmse:6.39141 \n", "[69]\tvalidation-rmse:6.39062 \n", "[70]\tvalidation-rmse:6.39044 \n", "[71]\tvalidation-rmse:6.38959 \n", "[72]\tvalidation-rmse:6.38887 \n", "[73]\tvalidation-rmse:6.38834 \n", "[74]\tvalidation-rmse:6.38801 \n", "[75]\tvalidation-rmse:6.38721 \n", "[76]\tvalidation-rmse:6.38685 \n", "[77]\tvalidation-rmse:6.38587 \n", "[78]\tvalidation-rmse:6.38548 \n", "[79]\tvalidation-rmse:6.38446 \n", "[80]\tvalidation-rmse:6.38390 \n", "[81]\tvalidation-rmse:6.38288 \n", "[82]\tvalidation-rmse:6.38212 \n", "[83]\tvalidation-rmse:6.38120 \n", "[84]\tvalidation-rmse:6.38030 \n", "[85]\tvalidation-rmse:6.37994 \n", "[86]\tvalidation-rmse:6.37931 \n", "[87]\tvalidation-rmse:6.37870 \n", "[88]\tvalidation-rmse:6.37757 \n", "[89]\tvalidation-rmse:6.37698 \n", "[90]\tvalidation-rmse:6.37691 \n", "[91]\tvalidation-rmse:6.37611 \n", "[92]\tvalidation-rmse:6.37560 \n", "[93]\tvalidation-rmse:6.37431 \n", "[94]\tvalidation-rmse:6.37403 \n", "[95]\tvalidation-rmse:6.37359 \n", "[96]\tvalidation-rmse:6.37321 \n", "[97]\tvalidation-rmse:6.37261 \n", "[98]\tvalidation-rmse:6.37150 \n", "[99]\tvalidation-rmse:6.37102 \n", "[100]\tvalidation-rmse:6.37071 \n", "[101]\tvalidation-rmse:6.37048 \n", "[102]\tvalidation-rmse:6.36955 \n", "[103]\tvalidation-rmse:6.36913 \n", "[104]\tvalidation-rmse:6.36899 \n", "[105]\tvalidation-rmse:6.36871 \n", "[106]\tvalidation-rmse:6.36835 \n", "[107]\tvalidation-rmse:6.36756 \n", "[108]\tvalidation-rmse:6.36714 \n", "[109]\tvalidation-rmse:6.36675 \n", "[110]\tvalidation-rmse:6.36599 \n", "[111]\tvalidation-rmse:6.36569 \n", "[112]\tvalidation-rmse:6.36580 \n", "[113]\tvalidation-rmse:6.36560 \n", "[114]\tvalidation-rmse:6.36537 \n", "[115]\tvalidation-rmse:6.36469 \n", "[116]\tvalidation-rmse:6.36465 \n", "[117]\tvalidation-rmse:6.36409 \n", "[118]\tvalidation-rmse:6.36425 \n", "[119]\tvalidation-rmse:6.36407 \n", "[120]\tvalidation-rmse:6.36397 \n", "[121]\tvalidation-rmse:6.36341 \n", "[122]\tvalidation-rmse:6.36327 \n", "[123]\tvalidation-rmse:6.36298 \n", "[124]\tvalidation-rmse:6.36303 \n", "[125]\tvalidation-rmse:6.36290 \n", "[126]\tvalidation-rmse:6.36291 \n", "[127]\tvalidation-rmse:6.36303 \n", "[128]\tvalidation-rmse:6.36251 \n", "[129]\tvalidation-rmse:6.36211 \n", "[130]\tvalidation-rmse:6.36135 \n", "[131]\tvalidation-rmse:6.36147 \n", "[132]\tvalidation-rmse:6.36129 \n", "[133]\tvalidation-rmse:6.36063 \n", "[134]\tvalidation-rmse:6.36061 \n", "[135]\tvalidation-rmse:6.36046 \n", "[136]\tvalidation-rmse:6.35988 \n", "[137]\tvalidation-rmse:6.35905 \n", "[138]\tvalidation-rmse:6.35841 \n", "[139]\tvalidation-rmse:6.35812 \n", "[140]\tvalidation-rmse:6.35779 \n", "[141]\tvalidation-rmse:6.35783 \n", "[142]\tvalidation-rmse:6.35762 \n", "[143]\tvalidation-rmse:6.35715 \n", "[144]\tvalidation-rmse:6.35698 \n", "[145]\tvalidation-rmse:6.35623 \n", "[146]\tvalidation-rmse:6.35617 \n", "[147]\tvalidation-rmse:6.35580 \n", "[148]\tvalidation-rmse:6.35564 \n", "[149]\tvalidation-rmse:6.35578 \n", "[150]\tvalidation-rmse:6.35539 \n", "[151]\tvalidation-rmse:6.35525 \n", "[152]\tvalidation-rmse:6.35496 \n", "[153]\tvalidation-rmse:6.35474 \n", "[154]\tvalidation-rmse:6.35418 \n", "[155]\tvalidation-rmse:6.35383 \n", "[156]\tvalidation-rmse:6.35354 \n", "[157]\tvalidation-rmse:6.35324 \n", "[158]\tvalidation-rmse:6.35263 \n", "[159]\tvalidation-rmse:6.35313 \n", "[160]\tvalidation-rmse:6.35303 \n", "[161]\tvalidation-rmse:6.35294 \n", "[162]\tvalidation-rmse:6.35265 \n", "[163]\tvalidation-rmse:6.35241 \n", "[164]\tvalidation-rmse:6.35211 \n", "[165]\tvalidation-rmse:6.35218 \n", "[166]\tvalidation-rmse:6.35195 \n", "[167]\tvalidation-rmse:6.35194 \n", "[168]\tvalidation-rmse:6.35211 \n", "[169]\tvalidation-rmse:6.35186 \n", "[170]\tvalidation-rmse:6.35161 \n", "[171]\tvalidation-rmse:6.35155 \n", "[172]\tvalidation-rmse:6.35141 \n", "[173]\tvalidation-rmse:6.35184 \n", "[174]\tvalidation-rmse:6.35186 \n", "[175]\tvalidation-rmse:6.35153 \n", "[176]\tvalidation-rmse:6.35138 \n", "[177]\tvalidation-rmse:6.35120 \n", "[178]\tvalidation-rmse:6.35108 \n", "[179]\tvalidation-rmse:6.35180 \n", "[180]\tvalidation-rmse:6.35091 \n", "[181]\tvalidation-rmse:6.35102 \n", "[182]\tvalidation-rmse:6.35047 \n", "[183]\tvalidation-rmse:6.35022 \n", "[184]\tvalidation-rmse:6.35041 \n", "[185]\tvalidation-rmse:6.35042 \n", "[186]\tvalidation-rmse:6.35134 \n", "[187]\tvalidation-rmse:6.35118 \n", "[188]\tvalidation-rmse:6.35105 \n", "[189]\tvalidation-rmse:6.35130 \n", "[190]\tvalidation-rmse:6.35163 \n", "[191]\tvalidation-rmse:6.35112 \n", "[192]\tvalidation-rmse:6.35091 \n", "[193]\tvalidation-rmse:6.35054 \n", "[194]\tvalidation-rmse:6.35048 \n", "[195]\tvalidation-rmse:6.35045 \n", "[196]\tvalidation-rmse:6.35022 \n", "[197]\tvalidation-rmse:6.35012 \n", "[198]\tvalidation-rmse:6.34985 \n", "[199]\tvalidation-rmse:6.34963 \n", "[200]\tvalidation-rmse:6.34955 \n", "[201]\tvalidation-rmse:6.34941 \n", "[202]\tvalidation-rmse:6.35006 \n", "[203]\tvalidation-rmse:6.34976 \n", "[204]\tvalidation-rmse:6.34979 \n", "[205]\tvalidation-rmse:6.34970 \n", "[206]\tvalidation-rmse:6.34905 \n", "[207]\tvalidation-rmse:6.34851 \n", "[208]\tvalidation-rmse:6.34837 \n", "[209]\tvalidation-rmse:6.34796 \n", "[210]\tvalidation-rmse:6.34767 \n", "[211]\tvalidation-rmse:6.34822 \n", "[212]\tvalidation-rmse:6.34828 \n", "[213]\tvalidation-rmse:6.34813 \n", "[214]\tvalidation-rmse:6.34765 \n", "[215]\tvalidation-rmse:6.34735 \n", "[216]\tvalidation-rmse:6.34749 \n", "[217]\tvalidation-rmse:6.34741 \n", "[218]\tvalidation-rmse:6.34705 \n", "[219]\tvalidation-rmse:6.34728 \n", "[220]\tvalidation-rmse:6.34658 \n", "[221]\tvalidation-rmse:6.34660 \n", "[222]\tvalidation-rmse:6.34643 \n", "[223]\tvalidation-rmse:6.34623 \n", "[224]\tvalidation-rmse:6.34628 \n", "[225]\tvalidation-rmse:6.34643 \n", "[226]\tvalidation-rmse:6.34645 \n", "[227]\tvalidation-rmse:6.34609 \n", "[228]\tvalidation-rmse:6.34722 \n", "[229]\tvalidation-rmse:6.34778 \n", "[230]\tvalidation-rmse:6.34811 \n", "[231]\tvalidation-rmse:6.34802 \n", "[232]\tvalidation-rmse:6.34806 \n", "[233]\tvalidation-rmse:6.34857 \n", "[234]\tvalidation-rmse:6.34849 \n", "[235]\tvalidation-rmse:6.34898 \n", "[236]\tvalidation-rmse:6.34892 \n", "[237]\tvalidation-rmse:6.34917 \n", "[238]\tvalidation-rmse:6.34890 \n", "[239]\tvalidation-rmse:6.34908 \n", "[240]\tvalidation-rmse:6.34910 \n", "[241]\tvalidation-rmse:6.34889 \n", "[242]\tvalidation-rmse:6.34863 \n", "[243]\tvalidation-rmse:6.34906 \n", "[244]\tvalidation-rmse:6.34905 \n", "[245]\tvalidation-rmse:6.34768 \n", "[246]\tvalidation-rmse:6.34783 \n", "[247]\tvalidation-rmse:6.34748 \n", "[248]\tvalidation-rmse:6.34695 \n", "[249]\tvalidation-rmse:6.34686 \n", "[250]\tvalidation-rmse:6.34656 \n", "[251]\tvalidation-rmse:6.34733 \n", "[252]\tvalidation-rmse:6.34744 \n", "[253]\tvalidation-rmse:6.34705 \n", "[254]\tvalidation-rmse:6.34699 \n", "[255]\tvalidation-rmse:6.34751 \n", "[256]\tvalidation-rmse:6.34759 \n", "[257]\tvalidation-rmse:6.34818 \n", "[258]\tvalidation-rmse:6.34826 \n", "[259]\tvalidation-rmse:6.34826 \n", "[260]\tvalidation-rmse:6.34822 \n", "[261]\tvalidation-rmse:6.34782 \n", "[262]\tvalidation-rmse:6.34823 \n", "[263]\tvalidation-rmse:6.34821 \n", "[264]\tvalidation-rmse:6.34830 \n", "[265]\tvalidation-rmse:6.34807 \n", "[266]\tvalidation-rmse:6.34818 \n", "[267]\tvalidation-rmse:6.34769 \n", "[268]\tvalidation-rmse:6.34773 \n", "[269]\tvalidation-rmse:6.34860 \n", "[270]\tvalidation-rmse:6.34892 \n", "[271]\tvalidation-rmse:6.34909 \n", "[272]\tvalidation-rmse:6.34900 \n", "[273]\tvalidation-rmse:6.34908 \n", "[274]\tvalidation-rmse:6.34934 \n", "[275]\tvalidation-rmse:6.34922 \n", "[276]\tvalidation-rmse:6.34929 \n", "[277]\tvalidation-rmse:6.34923 \n", "[12:59:14] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.97830 \n", "[1]\tvalidation-rmse:18.85403 \n", "[2]\tvalidation-rmse:17.81426 \n", "[3]\tvalidation-rmse:16.85295 \n", "[4]\tvalidation-rmse:15.96583 \n", "[5]\tvalidation-rmse:15.14800 \n", "[6]\tvalidation-rmse:14.39458 \n", "[7]\tvalidation-rmse:13.70131 \n", "[8]\tvalidation-rmse:13.06374 \n", "[9]\tvalidation-rmse:12.47844 \n", "[10]\tvalidation-rmse:11.94142 \n", "[11]\tvalidation-rmse:11.45032 \n", "[12]\tvalidation-rmse:11.00120 \n", "[13]\tvalidation-rmse:10.59083 \n", "[14]\tvalidation-rmse:10.21610 \n", "[15]\tvalidation-rmse:9.87506 \n", "[16]\tvalidation-rmse:9.56434 \n", "[17]\tvalidation-rmse:9.28272 \n", "[18]\tvalidation-rmse:9.02637 \n", "[19]\tvalidation-rmse:8.79552 \n", "[20]\tvalidation-rmse:8.58521 \n", "[21]\tvalidation-rmse:8.39580 \n", "[22]\tvalidation-rmse:8.22467 \n", "[23]\tvalidation-rmse:8.07005 \n", "[24]\tvalidation-rmse:7.93051 \n", "[25]\tvalidation-rmse:7.80410 \n", "[26]\tvalidation-rmse:7.69007 \n", "[27]\tvalidation-rmse:7.58661 \n", "[28]\tvalidation-rmse:7.49301 \n", "[29]\tvalidation-rmse:7.40887 \n", "[30]\tvalidation-rmse:7.33305 \n", "[31]\tvalidation-rmse:7.26438 \n", "[32]\tvalidation-rmse:7.20196 \n", "[33]\tvalidation-rmse:7.14575 \n", "[34]\tvalidation-rmse:7.09517 \n", "[35]\tvalidation-rmse:7.04865 \n", "[36]\tvalidation-rmse:7.00649 \n", "[37]\tvalidation-rmse:6.96806 \n", "[38]\tvalidation-rmse:6.93358 \n", "[39]\tvalidation-rmse:6.90165 \n", "[40]\tvalidation-rmse:6.87254 \n", "[41]\tvalidation-rmse:6.84669 \n", "[42]\tvalidation-rmse:6.82293 \n", "[43]\tvalidation-rmse:6.80033 \n", "[44]\tvalidation-rmse:6.78015 \n", "[45]\tvalidation-rmse:6.76149 \n", "[46]\tvalidation-rmse:6.74500 \n", "[47]\tvalidation-rmse:6.73008 \n", "[48]\tvalidation-rmse:6.71570 \n", "[49]\tvalidation-rmse:6.70346 \n", "[50]\tvalidation-rmse:6.69159 \n", "[51]\tvalidation-rmse:6.68082 \n", "[52]\tvalidation-rmse:6.67070 \n", "[53]\tvalidation-rmse:6.66193 \n", "[54]\tvalidation-rmse:6.65374 \n", "[55]\tvalidation-rmse:6.64536 \n", "[56]\tvalidation-rmse:6.63817 \n", "[57]\tvalidation-rmse:6.63138 \n", "[58]\tvalidation-rmse:6.62488 \n", "[59]\tvalidation-rmse:6.61897 \n", "[60]\tvalidation-rmse:6.61347 \n", "[61]\tvalidation-rmse:6.60860 \n", "[62]\tvalidation-rmse:6.60371 \n", "[63]\tvalidation-rmse:6.59894 \n", "[64]\tvalidation-rmse:6.59438 \n", "[65]\tvalidation-rmse:6.59013 \n", "[66]\tvalidation-rmse:6.58568 \n", "[67]\tvalidation-rmse:6.58179 \n", "[68]\tvalidation-rmse:6.57806 \n", "[69]\tvalidation-rmse:6.57506 \n", "[70]\tvalidation-rmse:6.57175 \n", "[71]\tvalidation-rmse:6.56876 \n", "[72]\tvalidation-rmse:6.56586 \n", "[73]\tvalidation-rmse:6.56314 \n", "[74]\tvalidation-rmse:6.56051 \n", "[75]\tvalidation-rmse:6.55814 \n", "[76]\tvalidation-rmse:6.55577 \n", "[77]\tvalidation-rmse:6.55299 \n", "[78]\tvalidation-rmse:6.55090 \n", "[79]\tvalidation-rmse:6.54858 \n", "[80]\tvalidation-rmse:6.54691 \n", "[81]\tvalidation-rmse:6.54539 \n", "[82]\tvalidation-rmse:6.54393 \n", "[83]\tvalidation-rmse:6.54248 \n", "[84]\tvalidation-rmse:6.54157 \n", "[85]\tvalidation-rmse:6.54034 \n", "[86]\tvalidation-rmse:6.53931 \n", "[87]\tvalidation-rmse:6.53832 \n", "[88]\tvalidation-rmse:6.53682 \n", "[89]\tvalidation-rmse:6.53565 \n", "[90]\tvalidation-rmse:6.53431 \n", "[91]\tvalidation-rmse:6.53339 \n", "[92]\tvalidation-rmse:6.53235 \n", "[93]\tvalidation-rmse:6.53139 \n", "[94]\tvalidation-rmse:6.53045 \n", "[95]\tvalidation-rmse:6.52969 \n", "[96]\tvalidation-rmse:6.52886 \n", "[97]\tvalidation-rmse:6.52828 \n", "[98]\tvalidation-rmse:6.52766 \n", "[99]\tvalidation-rmse:6.52664 \n", "[100]\tvalidation-rmse:6.52575 \n", "[101]\tvalidation-rmse:6.52503 \n", "[102]\tvalidation-rmse:6.52449 \n", "[103]\tvalidation-rmse:6.52379 \n", "[104]\tvalidation-rmse:6.52305 \n", "[105]\tvalidation-rmse:6.52237 \n", "[106]\tvalidation-rmse:6.52192 \n", "[107]\tvalidation-rmse:6.52133 \n", "[108]\tvalidation-rmse:6.52072 \n", "[109]\tvalidation-rmse:6.51999 \n", "[110]\tvalidation-rmse:6.51966 \n", "[111]\tvalidation-rmse:6.51926 \n", "[112]\tvalidation-rmse:6.51894 \n", "[113]\tvalidation-rmse:6.51831 \n", "[114]\tvalidation-rmse:6.51801 \n", "[115]\tvalidation-rmse:6.51752 \n", "[116]\tvalidation-rmse:6.51721 \n", "[117]\tvalidation-rmse:6.51686 \n", "[118]\tvalidation-rmse:6.51641 \n", "[119]\tvalidation-rmse:6.51582 \n", "[120]\tvalidation-rmse:6.51557 \n", "[121]\tvalidation-rmse:6.51517 \n", "[122]\tvalidation-rmse:6.51492 \n", "[123]\tvalidation-rmse:6.51434 \n", "[124]\tvalidation-rmse:6.51408 \n", "[125]\tvalidation-rmse:6.51370 \n", "[126]\tvalidation-rmse:6.51347 \n", "[127]\tvalidation-rmse:6.51318 \n", "[128]\tvalidation-rmse:6.51300 \n", "[129]\tvalidation-rmse:6.51269 \n", "[130]\tvalidation-rmse:6.51235 \n", "[131]\tvalidation-rmse:6.51195 \n", "[132]\tvalidation-rmse:6.51177 \n", "[133]\tvalidation-rmse:6.51141 \n", "[134]\tvalidation-rmse:6.51116 \n", "[135]\tvalidation-rmse:6.51098 \n", "[136]\tvalidation-rmse:6.51062 \n", "[137]\tvalidation-rmse:6.51035 \n", "[138]\tvalidation-rmse:6.50990 \n", "[139]\tvalidation-rmse:6.50966 \n", "[140]\tvalidation-rmse:6.50935 \n", "[141]\tvalidation-rmse:6.50923 \n", "[142]\tvalidation-rmse:6.50895 \n", "[143]\tvalidation-rmse:6.50885 \n", "[144]\tvalidation-rmse:6.50859 \n", "[145]\tvalidation-rmse:6.50840 \n", "[146]\tvalidation-rmse:6.50825 \n", "[147]\tvalidation-rmse:6.50789 \n", "[148]\tvalidation-rmse:6.50767 \n", "[149]\tvalidation-rmse:6.50736 \n", "[150]\tvalidation-rmse:6.50718 \n", "[151]\tvalidation-rmse:6.50703 \n", "[152]\tvalidation-rmse:6.50681 \n", "[153]\tvalidation-rmse:6.50652 \n", "[154]\tvalidation-rmse:6.50612 \n", "[155]\tvalidation-rmse:6.50595 \n", "[156]\tvalidation-rmse:6.50580 \n", "[157]\tvalidation-rmse:6.50554 \n", "[158]\tvalidation-rmse:6.50533 \n", "[159]\tvalidation-rmse:6.50513 \n", "[160]\tvalidation-rmse:6.50495 \n", "[161]\tvalidation-rmse:6.50456 \n", "[162]\tvalidation-rmse:6.50441 \n", "[163]\tvalidation-rmse:6.50432 \n", "[164]\tvalidation-rmse:6.50405 \n", "[165]\tvalidation-rmse:6.50379 \n", "[166]\tvalidation-rmse:6.50354 \n", "[167]\tvalidation-rmse:6.50323 \n", "[168]\tvalidation-rmse:6.50307 \n", "[169]\tvalidation-rmse:6.50281 \n", "[170]\tvalidation-rmse:6.50258 \n", "[171]\tvalidation-rmse:6.50241 \n", "[172]\tvalidation-rmse:6.50225 \n", "[173]\tvalidation-rmse:6.50204 \n", "[174]\tvalidation-rmse:6.50169 \n", "[175]\tvalidation-rmse:6.50121 \n", "[176]\tvalidation-rmse:6.50112 \n", "[177]\tvalidation-rmse:6.50094 \n", "[178]\tvalidation-rmse:6.50074 \n", "[179]\tvalidation-rmse:6.50066 \n", "[180]\tvalidation-rmse:6.50037 \n", "[181]\tvalidation-rmse:6.50027 \n", "[182]\tvalidation-rmse:6.50002 \n", "[183]\tvalidation-rmse:6.49983 \n", "[184]\tvalidation-rmse:6.49969 \n", "[185]\tvalidation-rmse:6.49942 \n", "[186]\tvalidation-rmse:6.49929 \n", "[187]\tvalidation-rmse:6.49903 \n", "[188]\tvalidation-rmse:6.49893 \n", "[189]\tvalidation-rmse:6.49868 \n", "[190]\tvalidation-rmse:6.49845 \n", "[191]\tvalidation-rmse:6.49835 \n", "[192]\tvalidation-rmse:6.49798 \n", "[193]\tvalidation-rmse:6.49768 \n", "[194]\tvalidation-rmse:6.49744 \n", "[195]\tvalidation-rmse:6.49719 \n", "[196]\tvalidation-rmse:6.49710 \n", "[197]\tvalidation-rmse:6.49691 \n", "[198]\tvalidation-rmse:6.49659 \n", "[199]\tvalidation-rmse:6.49657 \n", "[200]\tvalidation-rmse:6.49644 \n", "[201]\tvalidation-rmse:6.49632 \n", "[202]\tvalidation-rmse:6.49605 \n", "[203]\tvalidation-rmse:6.49588 \n", "[204]\tvalidation-rmse:6.49564 \n", "[205]\tvalidation-rmse:6.49548 \n", "[206]\tvalidation-rmse:6.49529 \n", "[207]\tvalidation-rmse:6.49523 \n", "[208]\tvalidation-rmse:6.49509 \n", "[209]\tvalidation-rmse:6.49505 \n", "[210]\tvalidation-rmse:6.49483 \n", "[211]\tvalidation-rmse:6.49465 \n", "[212]\tvalidation-rmse:6.49440 \n", "[213]\tvalidation-rmse:6.49414 \n", "[214]\tvalidation-rmse:6.49389 \n", "[215]\tvalidation-rmse:6.49386 \n", "[216]\tvalidation-rmse:6.49368 \n", "[217]\tvalidation-rmse:6.49361 \n", "[218]\tvalidation-rmse:6.49343 \n", "[219]\tvalidation-rmse:6.49331 \n", "[220]\tvalidation-rmse:6.49324 \n", "[221]\tvalidation-rmse:6.49310 \n", "[222]\tvalidation-rmse:6.49297 \n", "[223]\tvalidation-rmse:6.49283 \n", "[224]\tvalidation-rmse:6.49272 \n", "[225]\tvalidation-rmse:6.49262 \n", "[226]\tvalidation-rmse:6.49241 \n", "[227]\tvalidation-rmse:6.49204 \n", "[228]\tvalidation-rmse:6.49188 \n", "[229]\tvalidation-rmse:6.49175 \n", "[230]\tvalidation-rmse:6.49162 \n", "[231]\tvalidation-rmse:6.49155 \n", "[232]\tvalidation-rmse:6.49145 \n", "[233]\tvalidation-rmse:6.49127 \n", "[234]\tvalidation-rmse:6.49114 \n", "[235]\tvalidation-rmse:6.49096 \n", "[236]\tvalidation-rmse:6.49065 \n", "[237]\tvalidation-rmse:6.49051 \n", "[238]\tvalidation-rmse:6.49040 \n", "[239]\tvalidation-rmse:6.49001 \n", "[240]\tvalidation-rmse:6.48989 \n", "[241]\tvalidation-rmse:6.48965 \n", "[242]\tvalidation-rmse:6.48957 \n", "[243]\tvalidation-rmse:6.48955 \n", "[244]\tvalidation-rmse:6.48944 \n", "[245]\tvalidation-rmse:6.48935 \n", "[246]\tvalidation-rmse:6.48916 \n", "[247]\tvalidation-rmse:6.48910 \n", "[248]\tvalidation-rmse:6.48907 \n", "[249]\tvalidation-rmse:6.48901 \n", "[250]\tvalidation-rmse:6.48899 \n", "[251]\tvalidation-rmse:6.48881 \n", "[252]\tvalidation-rmse:6.48855 \n", "[253]\tvalidation-rmse:6.48837 \n", "[254]\tvalidation-rmse:6.48810 \n", "[255]\tvalidation-rmse:6.48785 \n", "[256]\tvalidation-rmse:6.48774 \n", "[257]\tvalidation-rmse:6.48760 \n", "[258]\tvalidation-rmse:6.48763 \n", "[259]\tvalidation-rmse:6.48757 \n", "[260]\tvalidation-rmse:6.48745 \n", "[261]\tvalidation-rmse:6.48735 \n", "[262]\tvalidation-rmse:6.48730 \n", "[263]\tvalidation-rmse:6.48730 \n", "[264]\tvalidation-rmse:6.48719 \n", "[265]\tvalidation-rmse:6.48685 \n", "[266]\tvalidation-rmse:6.48664 \n", "[267]\tvalidation-rmse:6.48655 \n", "[268]\tvalidation-rmse:6.48649 \n", "[269]\tvalidation-rmse:6.48643 \n", "[270]\tvalidation-rmse:6.48637 \n", "[271]\tvalidation-rmse:6.48626 \n", "[272]\tvalidation-rmse:6.48619 \n", "[273]\tvalidation-rmse:6.48611 \n", "[274]\tvalidation-rmse:6.48599 \n", "[275]\tvalidation-rmse:6.48593 \n", "[276]\tvalidation-rmse:6.48581 \n", "[277]\tvalidation-rmse:6.48563 \n", "[278]\tvalidation-rmse:6.48555 \n", "[279]\tvalidation-rmse:6.48553 \n", "[280]\tvalidation-rmse:6.48536 \n", "[281]\tvalidation-rmse:6.48529 \n", "[282]\tvalidation-rmse:6.48517 \n", "[283]\tvalidation-rmse:6.48508 \n", "[284]\tvalidation-rmse:6.48496 \n", "[285]\tvalidation-rmse:6.48479 \n", "[286]\tvalidation-rmse:6.48472 \n", "[287]\tvalidation-rmse:6.48461 \n", "[288]\tvalidation-rmse:6.48458 \n", "[289]\tvalidation-rmse:6.48446 \n", "[290]\tvalidation-rmse:6.48446 \n", "[291]\tvalidation-rmse:6.48417 \n", "[292]\tvalidation-rmse:6.48394 \n", "[293]\tvalidation-rmse:6.48388 \n", "[294]\tvalidation-rmse:6.48369 \n", "[295]\tvalidation-rmse:6.48365 \n", "[296]\tvalidation-rmse:6.48353 \n", "[297]\tvalidation-rmse:6.48353 \n", "[298]\tvalidation-rmse:6.48341 \n", "[299]\tvalidation-rmse:6.48333 \n", "[300]\tvalidation-rmse:6.48320 \n", "[301]\tvalidation-rmse:6.48301 \n", "[302]\tvalidation-rmse:6.48290 \n", "[303]\tvalidation-rmse:6.48276 \n", "[304]\tvalidation-rmse:6.48278 \n", "[305]\tvalidation-rmse:6.48265 \n", "[306]\tvalidation-rmse:6.48262 \n", "[307]\tvalidation-rmse:6.48258 \n", "[308]\tvalidation-rmse:6.48247 \n", "[309]\tvalidation-rmse:6.48234 \n", "[310]\tvalidation-rmse:6.48218 \n", "[311]\tvalidation-rmse:6.48208 \n", "[312]\tvalidation-rmse:6.48187 \n", "[313]\tvalidation-rmse:6.48181 \n", "[314]\tvalidation-rmse:6.48177 \n", "[315]\tvalidation-rmse:6.48174 \n", "[316]\tvalidation-rmse:6.48168 \n", "[317]\tvalidation-rmse:6.48160 \n", "[318]\tvalidation-rmse:6.48155 \n", "[319]\tvalidation-rmse:6.48152 \n", "[320]\tvalidation-rmse:6.48117 \n", "[321]\tvalidation-rmse:6.48123 \n", "[322]\tvalidation-rmse:6.48112 \n", "[323]\tvalidation-rmse:6.48098 \n", "[324]\tvalidation-rmse:6.48094 \n", "[325]\tvalidation-rmse:6.48083 \n", "[326]\tvalidation-rmse:6.48071 \n", "[327]\tvalidation-rmse:6.48060 \n", "[328]\tvalidation-rmse:6.48049 \n", "[329]\tvalidation-rmse:6.48054 \n", "[330]\tvalidation-rmse:6.48040 \n", "[331]\tvalidation-rmse:6.48026 \n", "[332]\tvalidation-rmse:6.48019 \n", "[333]\tvalidation-rmse:6.48015 \n", "[334]\tvalidation-rmse:6.48008 \n", "[335]\tvalidation-rmse:6.47998 \n", "[336]\tvalidation-rmse:6.47986 \n", "[337]\tvalidation-rmse:6.47987 \n", "[338]\tvalidation-rmse:6.47969 \n", "[339]\tvalidation-rmse:6.47963 \n", "[340]\tvalidation-rmse:6.47954 \n", "[341]\tvalidation-rmse:6.47947 \n", "[342]\tvalidation-rmse:6.47936 \n", "[343]\tvalidation-rmse:6.47929 \n", "[344]\tvalidation-rmse:6.47917 \n", "[345]\tvalidation-rmse:6.47908 \n", "[346]\tvalidation-rmse:6.47890 \n", "[347]\tvalidation-rmse:6.47878 \n", "[348]\tvalidation-rmse:6.47876 \n", "[349]\tvalidation-rmse:6.47870 \n", "[350]\tvalidation-rmse:6.47864 \n", "[351]\tvalidation-rmse:6.47859 \n", "[352]\tvalidation-rmse:6.47848 \n", "[353]\tvalidation-rmse:6.47838 \n", "[354]\tvalidation-rmse:6.47827 \n", "[355]\tvalidation-rmse:6.47822 \n", "[356]\tvalidation-rmse:6.47816 \n", "[357]\tvalidation-rmse:6.47816 \n", "[358]\tvalidation-rmse:6.47814 \n", "[359]\tvalidation-rmse:6.47811 \n", "[360]\tvalidation-rmse:6.47808 \n", "[361]\tvalidation-rmse:6.47804 \n", "[362]\tvalidation-rmse:6.47778 \n", "[363]\tvalidation-rmse:6.47765 \n", "[364]\tvalidation-rmse:6.47764 \n", "[365]\tvalidation-rmse:6.47767 \n", "[366]\tvalidation-rmse:6.47763 \n", "[367]\tvalidation-rmse:6.47762 \n", "[368]\tvalidation-rmse:6.47755 \n", "[369]\tvalidation-rmse:6.47747 \n", "[370]\tvalidation-rmse:6.47744 \n", "[371]\tvalidation-rmse:6.47735 \n", "[372]\tvalidation-rmse:6.47719 \n", "[373]\tvalidation-rmse:6.47716 \n", "[374]\tvalidation-rmse:6.47707 \n", "[375]\tvalidation-rmse:6.47704 \n", "[376]\tvalidation-rmse:6.47688 \n", "[377]\tvalidation-rmse:6.47673 \n", "[378]\tvalidation-rmse:6.47673 \n", "[379]\tvalidation-rmse:6.47659 \n", "[380]\tvalidation-rmse:6.47645 \n", "[381]\tvalidation-rmse:6.47619 \n", "[382]\tvalidation-rmse:6.47604 \n", "[383]\tvalidation-rmse:6.47601 \n", "[384]\tvalidation-rmse:6.47581 \n", "[385]\tvalidation-rmse:6.47581 \n", "[386]\tvalidation-rmse:6.47580 \n", "[387]\tvalidation-rmse:6.47568 \n", "[388]\tvalidation-rmse:6.47615 \n", "[389]\tvalidation-rmse:6.47622 \n", "[390]\tvalidation-rmse:6.47617 \n", "[391]\tvalidation-rmse:6.47586 \n", "[392]\tvalidation-rmse:6.47587 \n", "[393]\tvalidation-rmse:6.47576 \n", "[394]\tvalidation-rmse:6.47570 \n", "[395]\tvalidation-rmse:6.47565 \n", "[396]\tvalidation-rmse:6.47552 \n", "[397]\tvalidation-rmse:6.47545 \n", "[398]\tvalidation-rmse:6.47544 \n", "[399]\tvalidation-rmse:6.47544 \n", "[400]\tvalidation-rmse:6.47529 \n", "[401]\tvalidation-rmse:6.47537 \n", "[402]\tvalidation-rmse:6.47532 \n", "[403]\tvalidation-rmse:6.47529 \n", "[404]\tvalidation-rmse:6.47524 \n", "[405]\tvalidation-rmse:6.47522 \n", "[406]\tvalidation-rmse:6.47501 \n", "[407]\tvalidation-rmse:6.47495 \n", "[408]\tvalidation-rmse:6.47474 \n", "[409]\tvalidation-rmse:6.47467 \n", "[410]\tvalidation-rmse:6.47462 \n", "[411]\tvalidation-rmse:6.47460 \n", "[412]\tvalidation-rmse:6.47457 \n", "[413]\tvalidation-rmse:6.47457 \n", "[414]\tvalidation-rmse:6.47461 \n", "[415]\tvalidation-rmse:6.47453 \n", "[416]\tvalidation-rmse:6.47446 \n", "[417]\tvalidation-rmse:6.47444 \n", "[418]\tvalidation-rmse:6.47439 \n", "[419]\tvalidation-rmse:6.47433 \n", "[420]\tvalidation-rmse:6.47418 \n", "[421]\tvalidation-rmse:6.47414 \n", "[422]\tvalidation-rmse:6.47417 \n", "[423]\tvalidation-rmse:6.47404 \n", "[424]\tvalidation-rmse:6.47401 \n", "[425]\tvalidation-rmse:6.47392 \n", "[426]\tvalidation-rmse:6.47393 \n", "[427]\tvalidation-rmse:6.47387 \n", "[428]\tvalidation-rmse:6.47373 \n", "[429]\tvalidation-rmse:6.47371 \n", "[430]\tvalidation-rmse:6.47366 \n", "[431]\tvalidation-rmse:6.47421 \n", "[432]\tvalidation-rmse:6.47422 \n", "[433]\tvalidation-rmse:6.47441 \n", "[434]\tvalidation-rmse:6.47445 \n", "[435]\tvalidation-rmse:6.47443 \n", "[436]\tvalidation-rmse:6.47442 \n", "[437]\tvalidation-rmse:6.47436 \n", "[438]\tvalidation-rmse:6.47426 \n", "[439]\tvalidation-rmse:6.47424 \n", "[440]\tvalidation-rmse:6.47421 \n", "[441]\tvalidation-rmse:6.47416 \n", "[442]\tvalidation-rmse:6.47418 \n", "[443]\tvalidation-rmse:6.47416 \n", "[444]\tvalidation-rmse:6.47412 \n", "[445]\tvalidation-rmse:6.47410 \n", "[446]\tvalidation-rmse:6.47407 \n", "[447]\tvalidation-rmse:6.47401 \n", "[448]\tvalidation-rmse:6.47404 \n", "[449]\tvalidation-rmse:6.47390 \n", "[450]\tvalidation-rmse:6.47384 \n", "[451]\tvalidation-rmse:6.47382 \n", "[452]\tvalidation-rmse:6.47382 \n", "[453]\tvalidation-rmse:6.47377 \n", "[454]\tvalidation-rmse:6.47379 \n", "[455]\tvalidation-rmse:6.47376 \n", "[456]\tvalidation-rmse:6.47370 \n", "[457]\tvalidation-rmse:6.47364 \n", "[458]\tvalidation-rmse:6.47358 \n", "[459]\tvalidation-rmse:6.47355 \n", "[460]\tvalidation-rmse:6.47356 \n", "[461]\tvalidation-rmse:6.47354 \n", "[462]\tvalidation-rmse:6.47355 \n", "[463]\tvalidation-rmse:6.47351 \n", "[464]\tvalidation-rmse:6.47354 \n", "[465]\tvalidation-rmse:6.47349 \n", "[466]\tvalidation-rmse:6.47347 \n", "[467]\tvalidation-rmse:6.47347 \n", "[468]\tvalidation-rmse:6.47349 \n", "[469]\tvalidation-rmse:6.47344 \n", "[470]\tvalidation-rmse:6.47324 \n", "[471]\tvalidation-rmse:6.47309 \n", "[472]\tvalidation-rmse:6.47307 \n", "[473]\tvalidation-rmse:6.47308 \n", "[474]\tvalidation-rmse:6.47289 \n", "[475]\tvalidation-rmse:6.47287 \n", "[476]\tvalidation-rmse:6.47290 \n", "[477]\tvalidation-rmse:6.47287 \n", "[478]\tvalidation-rmse:6.47283 \n", "[479]\tvalidation-rmse:6.47280 \n", "[480]\tvalidation-rmse:6.47281 \n", "[481]\tvalidation-rmse:6.47279 \n", "[482]\tvalidation-rmse:6.47275 \n", "[483]\tvalidation-rmse:6.47270 \n", "[484]\tvalidation-rmse:6.47266 \n", "[485]\tvalidation-rmse:6.47264 \n", "[486]\tvalidation-rmse:6.47258 \n", "[487]\tvalidation-rmse:6.47248 \n", "[488]\tvalidation-rmse:6.47246 \n", "[489]\tvalidation-rmse:6.47244 \n", "[490]\tvalidation-rmse:6.47232 \n", "[491]\tvalidation-rmse:6.47229 \n", "[492]\tvalidation-rmse:6.47227 \n", "[493]\tvalidation-rmse:6.47226 \n", "[494]\tvalidation-rmse:6.47220 \n", "[495]\tvalidation-rmse:6.47211 \n", "[496]\tvalidation-rmse:6.47203 \n", "[497]\tvalidation-rmse:6.47197 \n", "[498]\tvalidation-rmse:6.47195 \n", "[499]\tvalidation-rmse:6.47184 \n", "[500]\tvalidation-rmse:6.47177 \n", "[501]\tvalidation-rmse:6.47177 \n", "[502]\tvalidation-rmse:6.47174 \n", "[503]\tvalidation-rmse:6.47211 \n", "[504]\tvalidation-rmse:6.47213 \n", "[505]\tvalidation-rmse:6.47213 \n", "[506]\tvalidation-rmse:6.47208 \n", "[507]\tvalidation-rmse:6.47201 \n", "[508]\tvalidation-rmse:6.47203 \n", "[509]\tvalidation-rmse:6.47206 \n", "[510]\tvalidation-rmse:6.47201 \n", "[511]\tvalidation-rmse:6.47202 \n", "[512]\tvalidation-rmse:6.47197 \n", "[513]\tvalidation-rmse:6.47196 \n", "[514]\tvalidation-rmse:6.47185 \n", "[515]\tvalidation-rmse:6.47186 \n", "[516]\tvalidation-rmse:6.47185 \n", "[517]\tvalidation-rmse:6.47176 \n", "[518]\tvalidation-rmse:6.47175 \n", "[519]\tvalidation-rmse:6.47173 \n", "[520]\tvalidation-rmse:6.47164 \n", "[521]\tvalidation-rmse:6.47159 \n", "[522]\tvalidation-rmse:6.47157 \n", "[523]\tvalidation-rmse:6.47172 \n", "[524]\tvalidation-rmse:6.47182 \n", "[525]\tvalidation-rmse:6.47191 \n", "[526]\tvalidation-rmse:6.47191 \n", "[527]\tvalidation-rmse:6.47194 \n", "[528]\tvalidation-rmse:6.47190 \n", "[529]\tvalidation-rmse:6.47191 \n", "[530]\tvalidation-rmse:6.47185 \n", "[531]\tvalidation-rmse:6.47190 \n", "[532]\tvalidation-rmse:6.47186 \n", "[533]\tvalidation-rmse:6.47186 \n", "[534]\tvalidation-rmse:6.47179 \n", "[535]\tvalidation-rmse:6.47177 \n", "[536]\tvalidation-rmse:6.47174 \n", "[537]\tvalidation-rmse:6.47175 \n", "[538]\tvalidation-rmse:6.47177 \n", "[539]\tvalidation-rmse:6.47168 \n", "[540]\tvalidation-rmse:6.47166 \n", "[541]\tvalidation-rmse:6.47159 \n", "[542]\tvalidation-rmse:6.47155 \n", "[543]\tvalidation-rmse:6.47152 \n", "[544]\tvalidation-rmse:6.47147 \n", "[545]\tvalidation-rmse:6.47139 \n", "[546]\tvalidation-rmse:6.47133 \n", "[547]\tvalidation-rmse:6.47124 \n", "[548]\tvalidation-rmse:6.47120 \n", "[549]\tvalidation-rmse:6.47115 \n", "[550]\tvalidation-rmse:6.47118 \n", "[551]\tvalidation-rmse:6.47110 \n", "[552]\tvalidation-rmse:6.47112 \n", "[553]\tvalidation-rmse:6.47112 \n", "[554]\tvalidation-rmse:6.47105 \n", "[555]\tvalidation-rmse:6.47101 \n", "[556]\tvalidation-rmse:6.47101 \n", "[557]\tvalidation-rmse:6.47087 \n", "[558]\tvalidation-rmse:6.47088 \n", "[559]\tvalidation-rmse:6.47087 \n", "[560]\tvalidation-rmse:6.47086 \n", "[561]\tvalidation-rmse:6.47087 \n", "[562]\tvalidation-rmse:6.47091 \n", "[563]\tvalidation-rmse:6.47091 \n", "[564]\tvalidation-rmse:6.47079 \n", "[565]\tvalidation-rmse:6.47074 \n", "[566]\tvalidation-rmse:6.47067 \n", "[567]\tvalidation-rmse:6.47065 \n", "[568]\tvalidation-rmse:6.47053 \n", "[569]\tvalidation-rmse:6.47050 \n", "[570]\tvalidation-rmse:6.47041 \n", "[571]\tvalidation-rmse:6.47034 \n", "[572]\tvalidation-rmse:6.47028 \n", "[573]\tvalidation-rmse:6.47027 \n", "[574]\tvalidation-rmse:6.47021 \n", "[575]\tvalidation-rmse:6.47021 \n", "[576]\tvalidation-rmse:6.47017 \n", "[577]\tvalidation-rmse:6.47019 \n", "[578]\tvalidation-rmse:6.47019 \n", "[579]\tvalidation-rmse:6.47019 \n", "[580]\tvalidation-rmse:6.47022 \n", "[581]\tvalidation-rmse:6.47024 \n", "[582]\tvalidation-rmse:6.47026 \n", "[583]\tvalidation-rmse:6.47022 \n", "[584]\tvalidation-rmse:6.47025 \n", "[585]\tvalidation-rmse:6.47030 \n", "[586]\tvalidation-rmse:6.47024 \n", "[587]\tvalidation-rmse:6.47020 \n", "[588]\tvalidation-rmse:6.47015 \n", "[589]\tvalidation-rmse:6.47012 \n", "[590]\tvalidation-rmse:6.47013 \n", "[591]\tvalidation-rmse:6.47008 \n", "[592]\tvalidation-rmse:6.47010 \n", "[593]\tvalidation-rmse:6.47007 \n", "[594]\tvalidation-rmse:6.47015 \n", "[595]\tvalidation-rmse:6.47015 \n", "[596]\tvalidation-rmse:6.47008 \n", "[597]\tvalidation-rmse:6.47004 \n", "[598]\tvalidation-rmse:6.47003 \n", "[599]\tvalidation-rmse:6.47001 \n", "[600]\tvalidation-rmse:6.46995 \n", "[601]\tvalidation-rmse:6.46989 \n", "[602]\tvalidation-rmse:6.46991 \n", "[603]\tvalidation-rmse:6.46993 \n", "[604]\tvalidation-rmse:6.46989 \n", "[605]\tvalidation-rmse:6.46983 \n", "[606]\tvalidation-rmse:6.46982 \n", "[607]\tvalidation-rmse:6.46979 \n", "[608]\tvalidation-rmse:6.46986 \n", "[609]\tvalidation-rmse:6.46990 \n", "[610]\tvalidation-rmse:6.46988 \n", "[611]\tvalidation-rmse:6.46981 \n", "[612]\tvalidation-rmse:6.46998 \n", "[613]\tvalidation-rmse:6.47002 \n", "[614]\tvalidation-rmse:6.47007 \n", "[615]\tvalidation-rmse:6.47008 \n", "[616]\tvalidation-rmse:6.47004 \n", "[617]\tvalidation-rmse:6.47001 \n", "[618]\tvalidation-rmse:6.47002 \n", "[619]\tvalidation-rmse:6.46994 \n", "[620]\tvalidation-rmse:6.46987 \n", "[621]\tvalidation-rmse:6.46980 \n", "[622]\tvalidation-rmse:6.46974 \n", "[623]\tvalidation-rmse:6.46969 \n", "[624]\tvalidation-rmse:6.46965 \n", "[625]\tvalidation-rmse:6.46960 \n", "[626]\tvalidation-rmse:6.46960 \n", "[627]\tvalidation-rmse:6.46961 \n", "[628]\tvalidation-rmse:6.46961 \n", "[629]\tvalidation-rmse:6.46964 \n", "[630]\tvalidation-rmse:6.46962 \n", "[631]\tvalidation-rmse:6.46956 \n", "[632]\tvalidation-rmse:6.46963 \n", "[633]\tvalidation-rmse:6.46967 \n", "[634]\tvalidation-rmse:6.46967 \n", "[635]\tvalidation-rmse:6.46972 \n", "[636]\tvalidation-rmse:6.46971 \n", "[637]\tvalidation-rmse:6.46962 \n", "[638]\tvalidation-rmse:6.46962 \n", "[639]\tvalidation-rmse:6.46958 \n", "[640]\tvalidation-rmse:6.46950 \n", "[641]\tvalidation-rmse:6.46954 \n", "[642]\tvalidation-rmse:6.46949 \n", "[643]\tvalidation-rmse:6.46938 \n", "[644]\tvalidation-rmse:6.46940 \n", "[645]\tvalidation-rmse:6.46940 \n", "[646]\tvalidation-rmse:6.46942 \n", "[647]\tvalidation-rmse:6.46946 \n", "[648]\tvalidation-rmse:6.46941 \n", "[649]\tvalidation-rmse:6.46941 \n", "[650]\tvalidation-rmse:6.46943 \n", "[651]\tvalidation-rmse:6.46947 \n", "[652]\tvalidation-rmse:6.46944 \n", "[653]\tvalidation-rmse:6.46945 \n", "[654]\tvalidation-rmse:6.46954 \n", "[655]\tvalidation-rmse:6.46951 \n", "[656]\tvalidation-rmse:6.46954 \n", "[657]\tvalidation-rmse:6.46956 \n", "[658]\tvalidation-rmse:6.46960 \n", "[659]\tvalidation-rmse:6.46960 \n", "[660]\tvalidation-rmse:6.46965 \n", "[661]\tvalidation-rmse:6.46977 \n", "[662]\tvalidation-rmse:6.46981 \n", "[663]\tvalidation-rmse:6.46994 \n", "[664]\tvalidation-rmse:6.46988 \n", "[665]\tvalidation-rmse:6.46983 \n", "[666]\tvalidation-rmse:6.46975 \n", "[667]\tvalidation-rmse:6.46963 \n", "[668]\tvalidation-rmse:6.46966 \n", "[669]\tvalidation-rmse:6.46958 \n", "[670]\tvalidation-rmse:6.46959 \n", "[671]\tvalidation-rmse:6.46958 \n", "[672]\tvalidation-rmse:6.46959 \n", "[673]\tvalidation-rmse:6.46957 \n", "[674]\tvalidation-rmse:6.46964 \n", "[675]\tvalidation-rmse:6.46962 \n", "[676]\tvalidation-rmse:6.46952 \n", "[677]\tvalidation-rmse:6.46953 \n", "[678]\tvalidation-rmse:6.46947 \n", "[679]\tvalidation-rmse:6.46941 \n", "[680]\tvalidation-rmse:6.46951 \n", "[681]\tvalidation-rmse:6.46953 \n", "[682]\tvalidation-rmse:6.46953 \n", "[683]\tvalidation-rmse:6.46947 \n", "[684]\tvalidation-rmse:6.46948 \n", "[685]\tvalidation-rmse:6.46944 \n", "[686]\tvalidation-rmse:6.46929 \n", "[687]\tvalidation-rmse:6.46949 \n", "[688]\tvalidation-rmse:6.46951 \n", "[689]\tvalidation-rmse:6.46952 \n", "[690]\tvalidation-rmse:6.46957 \n", "[691]\tvalidation-rmse:6.46956 \n", "[692]\tvalidation-rmse:6.46962 \n", "[693]\tvalidation-rmse:6.46957 \n", "[694]\tvalidation-rmse:6.46957 \n", "[695]\tvalidation-rmse:6.46960 \n", "[696]\tvalidation-rmse:6.46955 \n", "[697]\tvalidation-rmse:6.46956 \n", "[698]\tvalidation-rmse:6.46953 \n", "[699]\tvalidation-rmse:6.46954 \n", "[700]\tvalidation-rmse:6.46958 \n", "[701]\tvalidation-rmse:6.46961 \n", "[702]\tvalidation-rmse:6.46966 \n", "[703]\tvalidation-rmse:6.46971 \n", "[704]\tvalidation-rmse:6.46969 \n", "[705]\tvalidation-rmse:6.46969 \n", "[706]\tvalidation-rmse:6.46966 \n", "[707]\tvalidation-rmse:6.46963 \n", "[708]\tvalidation-rmse:6.46965 \n", "[709]\tvalidation-rmse:6.46959 \n", "[710]\tvalidation-rmse:6.46965 \n", "[711]\tvalidation-rmse:6.46963 \n", "[712]\tvalidation-rmse:6.46960 \n", "[713]\tvalidation-rmse:6.46946 \n", "[714]\tvalidation-rmse:6.46950 \n", "[715]\tvalidation-rmse:6.46953 \n", "[716]\tvalidation-rmse:6.47009 \n", "[717]\tvalidation-rmse:6.47049 \n", "[718]\tvalidation-rmse:6.47060 \n", "[719]\tvalidation-rmse:6.47058 \n", "[720]\tvalidation-rmse:6.47056 \n", "[721]\tvalidation-rmse:6.47059 \n", "[722]\tvalidation-rmse:6.47061 \n", "[723]\tvalidation-rmse:6.47063 \n", "[724]\tvalidation-rmse:6.47067 \n", "[725]\tvalidation-rmse:6.47065 \n", "[726]\tvalidation-rmse:6.47056 \n", "[727]\tvalidation-rmse:6.47060 \n", "[728]\tvalidation-rmse:6.47068 \n", "[729]\tvalidation-rmse:6.47065 \n", "[730]\tvalidation-rmse:6.47061 \n", "[731]\tvalidation-rmse:6.47060 \n", "[732]\tvalidation-rmse:6.47059 \n", "[733]\tvalidation-rmse:6.47050 \n", "[734]\tvalidation-rmse:6.47049 \n", "[735]\tvalidation-rmse:6.47057 \n", " 36%|███▌ | 18/50 [23:33<23:33, 44.17s/trial, best loss: 6.321673211235433]" ] } ], "source": [ "search_space = {\n", " 'max_depth': scope.int(hp.quniform('max_depth', 4, 100, 1)),\n", " 'learning_rate': hp.loguniform('learning_rate', -3, 0),\n", " 'reg_alpha': hp.loguniform('reg_alpha', -5, -1),\n", " 'reg_lambda': hp.loguniform('reg_lambda', -6, -1),\n", " 'min_child_weight': hp.loguniform('min_child_weight', -1, 3),\n", " 'objective': 'reg:linear',\n", " 'seed': 42\n", "}\n", "\n", "best_result = fmin(\n", " fn=objective,\n", " space=search_space,\n", " algo=tpe.suggest,\n", " max_evals=50,\n", " trials=Trials()\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "id": "fc4d5283", "metadata": {}, "outputs": [], "source": [ "mlflow.xgboost.autolog(disable=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "0e8cd729", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[11:40:58] WARNING: /Users/runner/work/xgboost/xgboost/python-package/build/temp.macosx-11.0-arm64-3.8/xgboost/src/objective/regression_obj.cu:203: reg:linear is now deprecated in favor of reg:squarederror.\n", "[0]\tvalidation-rmse:19.48425\n", "[1]\tvalidation-rmse:17.95634\n", "[2]\tvalidation-rmse:16.59114\n", "[3]\tvalidation-rmse:15.37412\n", "[4]\tvalidation-rmse:14.29011\n", "[5]\tvalidation-rmse:13.32800\n", "[6]\tvalidation-rmse:12.47570\n", "[7]\tvalidation-rmse:11.72140\n", "[8]\tvalidation-rmse:11.05888\n", "[9]\tvalidation-rmse:10.47583\n", "[10]\tvalidation-rmse:9.96483\n", "[11]\tvalidation-rmse:9.51784\n", "[12]\tvalidation-rmse:9.12620\n", "[13]\tvalidation-rmse:8.78522\n", "[14]\tvalidation-rmse:8.49037\n", "[15]\tvalidation-rmse:8.23332\n", "[16]\tvalidation-rmse:8.01179\n", "[17]\tvalidation-rmse:7.81822\n", "[18]\tvalidation-rmse:7.65209\n", "[19]\tvalidation-rmse:7.50743\n", "[20]\tvalidation-rmse:7.38235\n", "[21]\tvalidation-rmse:7.27382\n", "[22]\tvalidation-rmse:7.17865\n", "[23]\tvalidation-rmse:7.09606\n", "[24]\tvalidation-rmse:7.02481\n", "[25]\tvalidation-rmse:6.96336\n", "[26]\tvalidation-rmse:6.91001\n", "[27]\tvalidation-rmse:6.86273\n", "[28]\tvalidation-rmse:6.82111\n", "[29]\tvalidation-rmse:6.78450\n", "[30]\tvalidation-rmse:6.75253\n", "[31]\tvalidation-rmse:6.72379\n", "[32]\tvalidation-rmse:6.69828\n", "[33]\tvalidation-rmse:6.67533\n", "[34]\tvalidation-rmse:6.65594\n", "[35]\tvalidation-rmse:6.63823\n", "[36]\tvalidation-rmse:6.62237\n", "[37]\tvalidation-rmse:6.60869\n", "[38]\tvalidation-rmse:6.59673\n", "[39]\tvalidation-rmse:6.58612\n", "[40]\tvalidation-rmse:6.57635\n", "[41]\tvalidation-rmse:6.56725\n", "[42]\tvalidation-rmse:6.55951\n", "[43]\tvalidation-rmse:6.55213\n", "[44]\tvalidation-rmse:6.54590\n", "[45]\tvalidation-rmse:6.53959\n", "[46]\tvalidation-rmse:6.53464\n", "[47]\tvalidation-rmse:6.53019\n", "[48]\tvalidation-rmse:6.52650\n", "[49]\tvalidation-rmse:6.52243\n", "[50]\tvalidation-rmse:6.51983\n", "[51]\tvalidation-rmse:6.51696\n", "[52]\tvalidation-rmse:6.51425\n", "[53]\tvalidation-rmse:6.51218\n", "[54]\tvalidation-rmse:6.50939\n", "[55]\tvalidation-rmse:6.50728\n", "[56]\tvalidation-rmse:6.50533\n", "[57]\tvalidation-rmse:6.50282\n", "[58]\tvalidation-rmse:6.50099\n", "[59]\tvalidation-rmse:6.49892\n", "[60]\tvalidation-rmse:6.49719\n", "[61]\tvalidation-rmse:6.49492\n", "[62]\tvalidation-rmse:6.49347\n", "[63]\tvalidation-rmse:6.49178\n", "[64]\tvalidation-rmse:6.49026\n", "[65]\tvalidation-rmse:6.48871\n", "[66]\tvalidation-rmse:6.48779\n", "[67]\tvalidation-rmse:6.48643\n", "[68]\tvalidation-rmse:6.48508\n", "[69]\tvalidation-rmse:6.48346\n", "[70]\tvalidation-rmse:6.48224\n", "[71]\tvalidation-rmse:6.48140\n", "[72]\tvalidation-rmse:6.48045\n", "[73]\tvalidation-rmse:6.47899\n", "[74]\tvalidation-rmse:6.47849\n", "[75]\tvalidation-rmse:6.47771\n", "[76]\tvalidation-rmse:6.47630\n", "[77]\tvalidation-rmse:6.47578\n", "[78]\tvalidation-rmse:6.47497\n", "[79]\tvalidation-rmse:6.47406\n", "[80]\tvalidation-rmse:6.47340\n", "[81]\tvalidation-rmse:6.47235\n", "[82]\tvalidation-rmse:6.47127\n", "[83]\tvalidation-rmse:6.47046\n", "[84]\tvalidation-rmse:6.46950\n", "[85]\tvalidation-rmse:6.46858\n", "[86]\tvalidation-rmse:6.46750\n", "[87]\tvalidation-rmse:6.46680\n", "[88]\tvalidation-rmse:6.46649\n", "[89]\tvalidation-rmse:6.46569\n", "[90]\tvalidation-rmse:6.46511\n", "[91]\tvalidation-rmse:6.46452\n", "[92]\tvalidation-rmse:6.46346\n", "[93]\tvalidation-rmse:6.46263\n", "[94]\tvalidation-rmse:6.46173\n", "[95]\tvalidation-rmse:6.46134\n", "[96]\tvalidation-rmse:6.46066\n", "[97]\tvalidation-rmse:6.46005\n", "[98]\tvalidation-rmse:6.45936\n", "[99]\tvalidation-rmse:6.45918\n", "[100]\tvalidation-rmse:6.45835\n", "[101]\tvalidation-rmse:6.45781\n", "[102]\tvalidation-rmse:6.45731\n", "[103]\tvalidation-rmse:6.45657\n", "[104]\tvalidation-rmse:6.45587\n", "[105]\tvalidation-rmse:6.45561\n", "[106]\tvalidation-rmse:6.45500\n", "[107]\tvalidation-rmse:6.45398\n", "[108]\tvalidation-rmse:6.45347\n", "[109]\tvalidation-rmse:6.45267\n", "[110]\tvalidation-rmse:6.45200\n", "[111]\tvalidation-rmse:6.45156\n", "[112]\tvalidation-rmse:6.45112\n", "[113]\tvalidation-rmse:6.45018\n", "[114]\tvalidation-rmse:6.44976\n", "[115]\tvalidation-rmse:6.44900\n", "[116]\tvalidation-rmse:6.44842\n", "[117]\tvalidation-rmse:6.44762\n", "[118]\tvalidation-rmse:6.44738\n", "[119]\tvalidation-rmse:6.44711\n", "[120]\tvalidation-rmse:6.44638\n", "[121]\tvalidation-rmse:6.44598\n", "[122]\tvalidation-rmse:6.44529\n", "[123]\tvalidation-rmse:6.44480\n", "[124]\tvalidation-rmse:6.44425\n", "[125]\tvalidation-rmse:6.44323\n", "[126]\tvalidation-rmse:6.44282\n", "[127]\tvalidation-rmse:6.44198\n", "[128]\tvalidation-rmse:6.44140\n", "[129]\tvalidation-rmse:6.44101\n", "[130]\tvalidation-rmse:6.44053\n", "[131]\tvalidation-rmse:6.43959\n", "[132]\tvalidation-rmse:6.43899\n", "[133]\tvalidation-rmse:6.43901\n", "[134]\tvalidation-rmse:6.43821\n", "[135]\tvalidation-rmse:6.43787\n", "[136]\tvalidation-rmse:6.43767\n", "[137]\tvalidation-rmse:6.43717\n", "[138]\tvalidation-rmse:6.43644\n", "[139]\tvalidation-rmse:6.43608\n", "[140]\tvalidation-rmse:6.43571\n", "[141]\tvalidation-rmse:6.43506\n", "[142]\tvalidation-rmse:6.43461\n", "[143]\tvalidation-rmse:6.43386\n", "[144]\tvalidation-rmse:6.43347\n", "[145]\tvalidation-rmse:6.43294\n", "[146]\tvalidation-rmse:6.43230\n", "[147]\tvalidation-rmse:6.43166\n", "[148]\tvalidation-rmse:6.43117\n", "[149]\tvalidation-rmse:6.43067\n", "[150]\tvalidation-rmse:6.43030\n", "[151]\tvalidation-rmse:6.42977\n", "[152]\tvalidation-rmse:6.42925\n", "[153]\tvalidation-rmse:6.42872\n", "[154]\tvalidation-rmse:6.42834\n", "[155]\tvalidation-rmse:6.42751\n", "[156]\tvalidation-rmse:6.42705\n", "[157]\tvalidation-rmse:6.42655\n", "[158]\tvalidation-rmse:6.42641\n", "[159]\tvalidation-rmse:6.42602\n", "[160]\tvalidation-rmse:6.42575\n", "[161]\tvalidation-rmse:6.42527\n", "[162]\tvalidation-rmse:6.42492\n", "[163]\tvalidation-rmse:6.42432\n", "[164]\tvalidation-rmse:6.42380\n", "[165]\tvalidation-rmse:6.42329\n", "[166]\tvalidation-rmse:6.42299\n", "[167]\tvalidation-rmse:6.42238\n", "[168]\tvalidation-rmse:6.42203\n", "[169]\tvalidation-rmse:6.42129\n", "[170]\tvalidation-rmse:6.42097\n", "[171]\tvalidation-rmse:6.42056\n", "[172]\tvalidation-rmse:6.42016\n", "[173]\tvalidation-rmse:6.41957\n", "[174]\tvalidation-rmse:6.41916\n", "[175]\tvalidation-rmse:6.41878\n", "[176]\tvalidation-rmse:6.41825\n", "[177]\tvalidation-rmse:6.41814\n", "[178]\tvalidation-rmse:6.41773\n", "[179]\tvalidation-rmse:6.41717\n", "[180]\tvalidation-rmse:6.41681\n", "[181]\tvalidation-rmse:6.41642\n", "[182]\tvalidation-rmse:6.41612\n", "[183]\tvalidation-rmse:6.41553\n", "[184]\tvalidation-rmse:6.41534\n", "[185]\tvalidation-rmse:6.41499\n", "[186]\tvalidation-rmse:6.41474\n", "[187]\tvalidation-rmse:6.41433\n", "[188]\tvalidation-rmse:6.41400\n", "[189]\tvalidation-rmse:6.41337\n", "[190]\tvalidation-rmse:6.41303\n", "[191]\tvalidation-rmse:6.41268\n", "[192]\tvalidation-rmse:6.41231\n", "[193]\tvalidation-rmse:6.41194\n", "[194]\tvalidation-rmse:6.41151\n", "[195]\tvalidation-rmse:6.41114\n", "[196]\tvalidation-rmse:6.41079\n", "[197]\tvalidation-rmse:6.41052\n", "[198]\tvalidation-rmse:6.41007\n", "[199]\tvalidation-rmse:6.40992\n", "[200]\tvalidation-rmse:6.40956\n", "[201]\tvalidation-rmse:6.40909\n", "[202]\tvalidation-rmse:6.40863\n", "[203]\tvalidation-rmse:6.40831\n", "[204]\tvalidation-rmse:6.40787\n", "[205]\tvalidation-rmse:6.40747\n", "[206]\tvalidation-rmse:6.40700\n", "[207]\tvalidation-rmse:6.40670\n", "[208]\tvalidation-rmse:6.40645\n", "[209]\tvalidation-rmse:6.40634\n", "[210]\tvalidation-rmse:6.40602\n", "[211]\tvalidation-rmse:6.40582\n", "[212]\tvalidation-rmse:6.40544\n", "[213]\tvalidation-rmse:6.40531\n", "[214]\tvalidation-rmse:6.40478\n", "[215]\tvalidation-rmse:6.40440\n", "[216]\tvalidation-rmse:6.40421\n", "[217]\tvalidation-rmse:6.40378\n", "[218]\tvalidation-rmse:6.40336\n", "[219]\tvalidation-rmse:6.40309\n", "[220]\tvalidation-rmse:6.40257\n", "[221]\tvalidation-rmse:6.40214\n", "[222]\tvalidation-rmse:6.40190\n", "[223]\tvalidation-rmse:6.40140\n", "[224]\tvalidation-rmse:6.40096\n", "[225]\tvalidation-rmse:6.40073\n", "[226]\tvalidation-rmse:6.40039\n", "[227]\tvalidation-rmse:6.40008\n", "[228]\tvalidation-rmse:6.39980\n", "[229]\tvalidation-rmse:6.39959\n", "[230]\tvalidation-rmse:6.39915\n", "[231]\tvalidation-rmse:6.39874\n", "[232]\tvalidation-rmse:6.39853\n", "[233]\tvalidation-rmse:6.39811\n", "[234]\tvalidation-rmse:6.39816\n", "[235]\tvalidation-rmse:6.39778\n", "[236]\tvalidation-rmse:6.39731\n", "[237]\tvalidation-rmse:6.39706\n", "[238]\tvalidation-rmse:6.39680\n", "[239]\tvalidation-rmse:6.39668\n", "[240]\tvalidation-rmse:6.39620\n", "[241]\tvalidation-rmse:6.39588\n", "[242]\tvalidation-rmse:6.39569\n", "[243]\tvalidation-rmse:6.39555\n", "[244]\tvalidation-rmse:6.39537\n", "[245]\tvalidation-rmse:6.39505\n", "[246]\tvalidation-rmse:6.39490\n", "[247]\tvalidation-rmse:6.39435\n", "[248]\tvalidation-rmse:6.39392\n", "[249]\tvalidation-rmse:6.39374\n", "[250]\tvalidation-rmse:6.39338\n", "[251]\tvalidation-rmse:6.39298\n", "[252]\tvalidation-rmse:6.39281\n", "[253]\tvalidation-rmse:6.39263\n", "[254]\tvalidation-rmse:6.39238\n", "[255]\tvalidation-rmse:6.39207\n", "[256]\tvalidation-rmse:6.39173\n", "[257]\tvalidation-rmse:6.39155\n", "[258]\tvalidation-rmse:6.39141\n", "[259]\tvalidation-rmse:6.39115\n", "[260]\tvalidation-rmse:6.39095\n", "[261]\tvalidation-rmse:6.39069\n", "[262]\tvalidation-rmse:6.39050\n", "[263]\tvalidation-rmse:6.39016\n", "[264]\tvalidation-rmse:6.38974\n", "[265]\tvalidation-rmse:6.38962\n", "[266]\tvalidation-rmse:6.38921\n", "[267]\tvalidation-rmse:6.38887\n", "[268]\tvalidation-rmse:6.38838\n", "[269]\tvalidation-rmse:6.38814\n", "[270]\tvalidation-rmse:6.38786\n", "[271]\tvalidation-rmse:6.38755\n", "[272]\tvalidation-rmse:6.38727\n", "[273]\tvalidation-rmse:6.38673\n", "[274]\tvalidation-rmse:6.38660\n", "[275]\tvalidation-rmse:6.38649\n", "[276]\tvalidation-rmse:6.38615\n", "[277]\tvalidation-rmse:6.38595\n", "[278]\tvalidation-rmse:6.38585\n", "[279]\tvalidation-rmse:6.38558\n", "[280]\tvalidation-rmse:6.38529\n", "[281]\tvalidation-rmse:6.38510\n", "[282]\tvalidation-rmse:6.38480\n", "[283]\tvalidation-rmse:6.38455\n", "[284]\tvalidation-rmse:6.38429\n", "[285]\tvalidation-rmse:6.38410\n", "[286]\tvalidation-rmse:6.38377\n", "[287]\tvalidation-rmse:6.38341\n", "[288]\tvalidation-rmse:6.38321\n", "[289]\tvalidation-rmse:6.38288\n", "[290]\tvalidation-rmse:6.38241\n", "[291]\tvalidation-rmse:6.38218\n", "[292]\tvalidation-rmse:6.38187\n", "[293]\tvalidation-rmse:6.38155\n", "[294]\tvalidation-rmse:6.38099\n", "[295]\tvalidation-rmse:6.38073\n", "[296]\tvalidation-rmse:6.38059\n", "[297]\tvalidation-rmse:6.38034\n", "[298]\tvalidation-rmse:6.38019\n", "[299]\tvalidation-rmse:6.38001\n", "[300]\tvalidation-rmse:6.37986\n", "[301]\tvalidation-rmse:6.37969\n", "[302]\tvalidation-rmse:6.37924\n", "[303]\tvalidation-rmse:6.37890\n", "[304]\tvalidation-rmse:6.37895\n", "[305]\tvalidation-rmse:6.37869\n", "[306]\tvalidation-rmse:6.37842\n", "[307]\tvalidation-rmse:6.37816\n", "[308]\tvalidation-rmse:6.37811\n", "[309]\tvalidation-rmse:6.37783\n", "[310]\tvalidation-rmse:6.37772\n", "[311]\tvalidation-rmse:6.37743\n", "[312]\tvalidation-rmse:6.37729\n", "[313]\tvalidation-rmse:6.37705\n", "[314]\tvalidation-rmse:6.37677\n", "[315]\tvalidation-rmse:6.37649\n", "[316]\tvalidation-rmse:6.37631\n", "[317]\tvalidation-rmse:6.37607\n", "[318]\tvalidation-rmse:6.37611\n", "[319]\tvalidation-rmse:6.37608\n", "[320]\tvalidation-rmse:6.37587\n", "[321]\tvalidation-rmse:6.37530\n", "[322]\tvalidation-rmse:6.37512\n", "[323]\tvalidation-rmse:6.37506\n", "[324]\tvalidation-rmse:6.37484\n", "[325]\tvalidation-rmse:6.37454\n", "[326]\tvalidation-rmse:6.37430\n", "[327]\tvalidation-rmse:6.37402\n", "[328]\tvalidation-rmse:6.37381\n", "[329]\tvalidation-rmse:6.37348\n", "[330]\tvalidation-rmse:6.37324\n", "[331]\tvalidation-rmse:6.37311\n", "[332]\tvalidation-rmse:6.37297\n", "[333]\tvalidation-rmse:6.37277\n", "[334]\tvalidation-rmse:6.37257\n", "[335]\tvalidation-rmse:6.37230\n", "[336]\tvalidation-rmse:6.37213\n", "[337]\tvalidation-rmse:6.37191\n", "[338]\tvalidation-rmse:6.37165\n", "[339]\tvalidation-rmse:6.37154\n", "[340]\tvalidation-rmse:6.37124\n", "[341]\tvalidation-rmse:6.37103\n", "[342]\tvalidation-rmse:6.37061\n", "[343]\tvalidation-rmse:6.37043\n", "[344]\tvalidation-rmse:6.37031\n", "[345]\tvalidation-rmse:6.37003\n", "[346]\tvalidation-rmse:6.36971\n", "[347]\tvalidation-rmse:6.36955\n", "[348]\tvalidation-rmse:6.36942\n", "[349]\tvalidation-rmse:6.36912\n", "[350]\tvalidation-rmse:6.36894\n", "[351]\tvalidation-rmse:6.36858\n", "[352]\tvalidation-rmse:6.36840\n", "[353]\tvalidation-rmse:6.36804\n", "[354]\tvalidation-rmse:6.36803\n", "[355]\tvalidation-rmse:6.36783\n", "[356]\tvalidation-rmse:6.36776\n", "[357]\tvalidation-rmse:6.36764\n", "[358]\tvalidation-rmse:6.36762\n", "[359]\tvalidation-rmse:6.36744\n", "[360]\tvalidation-rmse:6.36724\n", "[361]\tvalidation-rmse:6.36704\n", "[362]\tvalidation-rmse:6.36685\n", "[363]\tvalidation-rmse:6.36665\n", "[364]\tvalidation-rmse:6.36641\n", "[365]\tvalidation-rmse:6.36637\n", "[366]\tvalidation-rmse:6.36607\n", "[367]\tvalidation-rmse:6.36587\n", "[368]\tvalidation-rmse:6.36567\n", "[369]\tvalidation-rmse:6.36541\n", "[370]\tvalidation-rmse:6.36523\n", "[371]\tvalidation-rmse:6.36505\n", "[372]\tvalidation-rmse:6.36473\n", "[373]\tvalidation-rmse:6.36452\n", "[374]\tvalidation-rmse:6.36396\n", "[375]\tvalidation-rmse:6.36372\n", "[376]\tvalidation-rmse:6.36350\n", "[377]\tvalidation-rmse:6.36332\n", "[378]\tvalidation-rmse:6.36308\n", "[379]\tvalidation-rmse:6.36287\n", "[380]\tvalidation-rmse:6.36263\n", "[381]\tvalidation-rmse:6.36248\n", "[382]\tvalidation-rmse:6.36231\n", "[383]\tvalidation-rmse:6.36206\n", "[384]\tvalidation-rmse:6.36214\n", "[385]\tvalidation-rmse:6.36212\n", "[386]\tvalidation-rmse:6.36183\n", "[387]\tvalidation-rmse:6.36132\n", "[388]\tvalidation-rmse:6.36115\n", "[389]\tvalidation-rmse:6.36116\n", "[390]\tvalidation-rmse:6.36061\n", "[391]\tvalidation-rmse:6.36054\n", "[392]\tvalidation-rmse:6.36047\n", "[393]\tvalidation-rmse:6.36021\n", "[394]\tvalidation-rmse:6.36019\n", "[395]\tvalidation-rmse:6.36027\n", "[396]\tvalidation-rmse:6.36014\n", "[397]\tvalidation-rmse:6.35992\n", "[398]\tvalidation-rmse:6.35962\n", "[399]\tvalidation-rmse:6.35944\n", "[400]\tvalidation-rmse:6.35921\n", "[401]\tvalidation-rmse:6.35872\n", "[402]\tvalidation-rmse:6.35841\n", "[403]\tvalidation-rmse:6.35808\n", "[404]\tvalidation-rmse:6.35819\n", "[405]\tvalidation-rmse:6.35802\n", "[406]\tvalidation-rmse:6.35802\n", "[407]\tvalidation-rmse:6.35791\n", "[408]\tvalidation-rmse:6.35773\n", "[409]\tvalidation-rmse:6.35767\n", "[410]\tvalidation-rmse:6.35738\n", "[411]\tvalidation-rmse:6.35727\n", "[412]\tvalidation-rmse:6.35691\n", "[413]\tvalidation-rmse:6.35679\n", "[414]\tvalidation-rmse:6.35674\n", "[415]\tvalidation-rmse:6.35645\n", "[416]\tvalidation-rmse:6.35627\n", "[417]\tvalidation-rmse:6.35604\n", "[418]\tvalidation-rmse:6.35583\n", "[419]\tvalidation-rmse:6.35568\n", "[420]\tvalidation-rmse:6.35537\n", "[421]\tvalidation-rmse:6.35517\n", "[422]\tvalidation-rmse:6.35501\n", "[423]\tvalidation-rmse:6.35494\n", "[424]\tvalidation-rmse:6.35493\n", "[425]\tvalidation-rmse:6.35484\n", "[426]\tvalidation-rmse:6.35466\n", "[427]\tvalidation-rmse:6.35450\n", "[428]\tvalidation-rmse:6.35439\n", "[429]\tvalidation-rmse:6.35428\n", "[430]\tvalidation-rmse:6.35407\n", "[431]\tvalidation-rmse:6.35404\n", "[432]\tvalidation-rmse:6.35378\n", "[433]\tvalidation-rmse:6.35372\n", "[434]\tvalidation-rmse:6.35329\n", "[435]\tvalidation-rmse:6.35308\n", "[436]\tvalidation-rmse:6.35290\n", "[437]\tvalidation-rmse:6.35275\n", "[438]\tvalidation-rmse:6.35250\n", "[439]\tvalidation-rmse:6.35226\n", "[440]\tvalidation-rmse:6.35212\n", "[441]\tvalidation-rmse:6.35214\n", "[442]\tvalidation-rmse:6.35182\n", "[443]\tvalidation-rmse:6.35178\n", "[444]\tvalidation-rmse:6.35177\n", "[445]\tvalidation-rmse:6.35154\n", "[446]\tvalidation-rmse:6.35140\n", "[447]\tvalidation-rmse:6.35129\n", "[448]\tvalidation-rmse:6.35133\n", "[449]\tvalidation-rmse:6.35111\n", "[450]\tvalidation-rmse:6.35098\n", "[451]\tvalidation-rmse:6.35082\n", "[452]\tvalidation-rmse:6.35065\n", "[453]\tvalidation-rmse:6.35056\n", "[454]\tvalidation-rmse:6.35051\n", "[455]\tvalidation-rmse:6.35033\n", "[456]\tvalidation-rmse:6.35020\n", "[457]\tvalidation-rmse:6.34994\n", "[458]\tvalidation-rmse:6.34976\n", "[459]\tvalidation-rmse:6.34979\n", "[460]\tvalidation-rmse:6.34971\n", "[461]\tvalidation-rmse:6.34956\n", "[462]\tvalidation-rmse:6.34961\n", "[463]\tvalidation-rmse:6.34934\n", "[464]\tvalidation-rmse:6.34912\n", "[465]\tvalidation-rmse:6.34890\n", "[466]\tvalidation-rmse:6.34872\n", "[467]\tvalidation-rmse:6.34854\n", "[468]\tvalidation-rmse:6.34831\n", "[469]\tvalidation-rmse:6.34805\n", "[470]\tvalidation-rmse:6.34763\n", "[471]\tvalidation-rmse:6.34753\n", "[472]\tvalidation-rmse:6.34731\n", "[473]\tvalidation-rmse:6.34715\n", "[474]\tvalidation-rmse:6.34699\n", "[475]\tvalidation-rmse:6.34684\n", "[476]\tvalidation-rmse:6.34679\n", "[477]\tvalidation-rmse:6.34682\n", "[478]\tvalidation-rmse:6.34658\n", "[479]\tvalidation-rmse:6.34625\n", "[480]\tvalidation-rmse:6.34618\n", "[481]\tvalidation-rmse:6.34608\n", "[482]\tvalidation-rmse:6.34589\n", "[483]\tvalidation-rmse:6.34588\n", "[484]\tvalidation-rmse:6.34570\n", "[485]\tvalidation-rmse:6.34541\n", "[486]\tvalidation-rmse:6.34537\n", "[487]\tvalidation-rmse:6.34472\n", "[488]\tvalidation-rmse:6.34472\n", "[489]\tvalidation-rmse:6.34462\n", "[490]\tvalidation-rmse:6.34436\n", "[491]\tvalidation-rmse:6.34427\n", "[492]\tvalidation-rmse:6.34432\n", "[493]\tvalidation-rmse:6.34416\n", "[494]\tvalidation-rmse:6.34416\n", "[495]\tvalidation-rmse:6.34394\n", "[496]\tvalidation-rmse:6.34379\n", "[497]\tvalidation-rmse:6.34366\n", "[498]\tvalidation-rmse:6.34359\n", "[499]\tvalidation-rmse:6.34364\n", "[500]\tvalidation-rmse:6.34317\n", "[501]\tvalidation-rmse:6.34308\n", "[502]\tvalidation-rmse:6.34282\n", "[503]\tvalidation-rmse:6.34274\n", "[504]\tvalidation-rmse:6.34261\n", "[505]\tvalidation-rmse:6.34252\n", "[506]\tvalidation-rmse:6.34228\n", "[507]\tvalidation-rmse:6.34228\n", "[508]\tvalidation-rmse:6.34226\n", "[509]\tvalidation-rmse:6.34220\n", "[510]\tvalidation-rmse:6.34206\n", "[511]\tvalidation-rmse:6.34190\n", "[512]\tvalidation-rmse:6.34174\n", "[513]\tvalidation-rmse:6.34137\n", "[514]\tvalidation-rmse:6.34128\n", "[515]\tvalidation-rmse:6.34121\n", "[516]\tvalidation-rmse:6.34110\n", "[517]\tvalidation-rmse:6.34090\n", "[518]\tvalidation-rmse:6.34064\n", "[519]\tvalidation-rmse:6.34045\n", "[520]\tvalidation-rmse:6.34029\n", "[521]\tvalidation-rmse:6.34022\n", "[522]\tvalidation-rmse:6.34006\n", "[523]\tvalidation-rmse:6.33990\n", "[524]\tvalidation-rmse:6.33967\n", "[525]\tvalidation-rmse:6.33965\n", "[526]\tvalidation-rmse:6.33959\n", "[527]\tvalidation-rmse:6.33950\n", "[528]\tvalidation-rmse:6.33934\n", "[529]\tvalidation-rmse:6.33925\n", "[530]\tvalidation-rmse:6.33925\n", "[531]\tvalidation-rmse:6.33922\n", "[532]\tvalidation-rmse:6.33908\n", "[533]\tvalidation-rmse:6.33889\n", "[534]\tvalidation-rmse:6.33886\n", "[535]\tvalidation-rmse:6.33875\n", "[536]\tvalidation-rmse:6.33861\n", "[537]\tvalidation-rmse:6.33832\n", "[538]\tvalidation-rmse:6.33797\n", "[539]\tvalidation-rmse:6.33794\n", "[540]\tvalidation-rmse:6.33782\n", "[541]\tvalidation-rmse:6.33770\n", "[542]\tvalidation-rmse:6.33752\n", "[543]\tvalidation-rmse:6.33739\n", "[544]\tvalidation-rmse:6.33730\n", "[545]\tvalidation-rmse:6.33707\n", "[546]\tvalidation-rmse:6.33694\n", "[547]\tvalidation-rmse:6.33680\n", "[548]\tvalidation-rmse:6.33659\n", "[549]\tvalidation-rmse:6.33672\n", "[550]\tvalidation-rmse:6.33653\n", "[551]\tvalidation-rmse:6.33657\n", "[552]\tvalidation-rmse:6.33651\n", "[553]\tvalidation-rmse:6.33631\n", "[554]\tvalidation-rmse:6.33623\n", "[555]\tvalidation-rmse:6.33601\n", "[556]\tvalidation-rmse:6.33609\n", "[557]\tvalidation-rmse:6.33599\n", "[558]\tvalidation-rmse:6.33582\n", "[559]\tvalidation-rmse:6.33582\n", "[560]\tvalidation-rmse:6.33561\n", "[561]\tvalidation-rmse:6.33555\n", "[562]\tvalidation-rmse:6.33554\n", "[563]\tvalidation-rmse:6.33540\n", "[564]\tvalidation-rmse:6.33525\n", "[565]\tvalidation-rmse:6.33519\n", "[566]\tvalidation-rmse:6.33517\n", "[567]\tvalidation-rmse:6.33522\n", "[568]\tvalidation-rmse:6.33518\n", "[569]\tvalidation-rmse:6.33510\n", "[570]\tvalidation-rmse:6.33491\n", "[571]\tvalidation-rmse:6.33472\n", "[572]\tvalidation-rmse:6.33458\n", "[573]\tvalidation-rmse:6.33443\n", "[574]\tvalidation-rmse:6.33427\n", "[575]\tvalidation-rmse:6.33401\n", "[576]\tvalidation-rmse:6.33395\n", "[577]\tvalidation-rmse:6.33392\n", "[578]\tvalidation-rmse:6.33378\n", "[579]\tvalidation-rmse:6.33362\n", "[580]\tvalidation-rmse:6.33322\n", "[581]\tvalidation-rmse:6.33312\n", "[582]\tvalidation-rmse:6.33298\n", "[583]\tvalidation-rmse:6.33288\n", "[584]\tvalidation-rmse:6.33279\n", "[585]\tvalidation-rmse:6.33271\n", "[586]\tvalidation-rmse:6.33261\n", "[587]\tvalidation-rmse:6.33248\n", "[588]\tvalidation-rmse:6.33243\n", "[589]\tvalidation-rmse:6.33233\n", "[590]\tvalidation-rmse:6.33220\n", "[591]\tvalidation-rmse:6.33225\n", "[592]\tvalidation-rmse:6.33206\n", "[593]\tvalidation-rmse:6.33196\n", "[594]\tvalidation-rmse:6.33162\n", "[595]\tvalidation-rmse:6.33156\n", "[596]\tvalidation-rmse:6.33168\n", "[597]\tvalidation-rmse:6.33147\n", "[598]\tvalidation-rmse:6.33136\n", "[599]\tvalidation-rmse:6.33130\n", "[600]\tvalidation-rmse:6.33126\n", "[601]\tvalidation-rmse:6.33116\n", "[602]\tvalidation-rmse:6.33107\n", "[603]\tvalidation-rmse:6.33093\n", "[604]\tvalidation-rmse:6.33082\n", "[605]\tvalidation-rmse:6.33088\n", "[606]\tvalidation-rmse:6.33082\n", "[607]\tvalidation-rmse:6.33074\n", "[608]\tvalidation-rmse:6.33069\n", "[609]\tvalidation-rmse:6.33065\n", "[610]\tvalidation-rmse:6.33053\n", "[611]\tvalidation-rmse:6.33047\n", "[612]\tvalidation-rmse:6.33048\n", "[613]\tvalidation-rmse:6.33042\n", "[614]\tvalidation-rmse:6.33046\n", "[615]\tvalidation-rmse:6.33046\n", "[616]\tvalidation-rmse:6.33024\n", "[617]\tvalidation-rmse:6.33020\n", "[618]\tvalidation-rmse:6.33003\n", "[619]\tvalidation-rmse:6.32991\n", "[620]\tvalidation-rmse:6.32981\n", "[621]\tvalidation-rmse:6.32971\n", "[622]\tvalidation-rmse:6.32958\n", "[623]\tvalidation-rmse:6.32947\n", "[624]\tvalidation-rmse:6.32937\n", "[625]\tvalidation-rmse:6.32929\n", "[626]\tvalidation-rmse:6.32923\n", "[627]\tvalidation-rmse:6.32900\n", "[628]\tvalidation-rmse:6.32882\n", "[629]\tvalidation-rmse:6.32867\n", "[630]\tvalidation-rmse:6.32856\n", "[631]\tvalidation-rmse:6.32842\n", "[632]\tvalidation-rmse:6.32832\n", "[633]\tvalidation-rmse:6.32810\n", "[634]\tvalidation-rmse:6.32814\n", "[635]\tvalidation-rmse:6.32801\n", "[636]\tvalidation-rmse:6.32790\n", "[637]\tvalidation-rmse:6.32781\n", "[638]\tvalidation-rmse:6.32774\n", "[639]\tvalidation-rmse:6.32761\n", "[640]\tvalidation-rmse:6.32758\n", "[641]\tvalidation-rmse:6.32737\n", "[642]\tvalidation-rmse:6.32715\n", "[643]\tvalidation-rmse:6.32706\n", "[644]\tvalidation-rmse:6.32696\n", "[645]\tvalidation-rmse:6.32696\n", "[646]\tvalidation-rmse:6.32686\n", "[647]\tvalidation-rmse:6.32685\n", "[648]\tvalidation-rmse:6.32672\n", "[649]\tvalidation-rmse:6.32671\n", "[650]\tvalidation-rmse:6.32658\n", "[651]\tvalidation-rmse:6.32669\n", "[652]\tvalidation-rmse:6.32636\n", "[653]\tvalidation-rmse:6.32621\n", "[654]\tvalidation-rmse:6.32593\n", "[655]\tvalidation-rmse:6.32580\n", "[656]\tvalidation-rmse:6.32567\n", "[657]\tvalidation-rmse:6.32573\n", "[658]\tvalidation-rmse:6.32562\n", "[659]\tvalidation-rmse:6.32563\n", "[660]\tvalidation-rmse:6.32540\n", "[661]\tvalidation-rmse:6.32547\n", "[662]\tvalidation-rmse:6.32535\n", "[663]\tvalidation-rmse:6.32540\n", "[664]\tvalidation-rmse:6.32526\n", "[665]\tvalidation-rmse:6.32517\n", "[666]\tvalidation-rmse:6.32512\n", "[667]\tvalidation-rmse:6.32507\n", "[668]\tvalidation-rmse:6.32504\n", "[669]\tvalidation-rmse:6.32511\n", "[670]\tvalidation-rmse:6.32492\n", "[671]\tvalidation-rmse:6.32479\n", "[672]\tvalidation-rmse:6.32472\n", "[673]\tvalidation-rmse:6.32461\n", "[674]\tvalidation-rmse:6.32423\n", "[675]\tvalidation-rmse:6.32426\n", "[676]\tvalidation-rmse:6.32416\n", "[677]\tvalidation-rmse:6.32405\n", "[678]\tvalidation-rmse:6.32411\n", "[679]\tvalidation-rmse:6.32404\n", "[680]\tvalidation-rmse:6.32398\n", "[681]\tvalidation-rmse:6.32386\n", "[682]\tvalidation-rmse:6.32366\n", "[683]\tvalidation-rmse:6.32354\n", "[684]\tvalidation-rmse:6.32353\n", "[685]\tvalidation-rmse:6.32335\n", "[686]\tvalidation-rmse:6.32323\n", "[687]\tvalidation-rmse:6.32323\n", "[688]\tvalidation-rmse:6.32329\n", "[689]\tvalidation-rmse:6.32316\n", "[690]\tvalidation-rmse:6.32317\n", "[691]\tvalidation-rmse:6.32309\n", "[692]\tvalidation-rmse:6.32297\n", "[693]\tvalidation-rmse:6.32285\n", "[694]\tvalidation-rmse:6.32286\n", "[695]\tvalidation-rmse:6.32272\n", "[696]\tvalidation-rmse:6.32262\n", "[697]\tvalidation-rmse:6.32253\n", "[698]\tvalidation-rmse:6.32250\n", "[699]\tvalidation-rmse:6.32242\n", "[700]\tvalidation-rmse:6.32235\n", "[701]\tvalidation-rmse:6.32225\n", "[702]\tvalidation-rmse:6.32213\n", "[703]\tvalidation-rmse:6.32189\n", "[704]\tvalidation-rmse:6.32180\n", "[705]\tvalidation-rmse:6.32164\n", "[706]\tvalidation-rmse:6.32147\n", "[707]\tvalidation-rmse:6.32138\n", "[708]\tvalidation-rmse:6.32127\n", "[709]\tvalidation-rmse:6.32115\n", "[710]\tvalidation-rmse:6.32098\n", "[711]\tvalidation-rmse:6.32092\n", "[712]\tvalidation-rmse:6.32091\n", "[713]\tvalidation-rmse:6.32086\n", "[714]\tvalidation-rmse:6.32074\n", "[715]\tvalidation-rmse:6.32049\n", "[716]\tvalidation-rmse:6.32045\n", "[717]\tvalidation-rmse:6.32040\n", "[718]\tvalidation-rmse:6.32035\n", "[719]\tvalidation-rmse:6.32034\n", "[720]\tvalidation-rmse:6.32033\n", "[721]\tvalidation-rmse:6.32039\n", "[722]\tvalidation-rmse:6.32011\n", "[723]\tvalidation-rmse:6.32003\n", "[724]\tvalidation-rmse:6.31998\n", "[725]\tvalidation-rmse:6.31989\n", "[726]\tvalidation-rmse:6.31984\n", "[727]\tvalidation-rmse:6.31982\n", "[728]\tvalidation-rmse:6.31982\n", "[729]\tvalidation-rmse:6.31957\n", "[730]\tvalidation-rmse:6.31946\n", "[731]\tvalidation-rmse:6.31952\n", "[732]\tvalidation-rmse:6.31942\n", "[733]\tvalidation-rmse:6.31935\n", "[734]\tvalidation-rmse:6.31928\n", "[735]\tvalidation-rmse:6.31909\n", "[736]\tvalidation-rmse:6.31903\n", "[737]\tvalidation-rmse:6.31903\n", "[738]\tvalidation-rmse:6.31895\n", "[739]\tvalidation-rmse:6.31879\n", "[740]\tvalidation-rmse:6.31878\n", "[741]\tvalidation-rmse:6.31856\n", "[742]\tvalidation-rmse:6.31826\n", "[743]\tvalidation-rmse:6.31824\n", "[744]\tvalidation-rmse:6.31824\n", "[745]\tvalidation-rmse:6.31816\n", "[746]\tvalidation-rmse:6.31825\n", "[747]\tvalidation-rmse:6.31809\n", "[748]\tvalidation-rmse:6.31785\n", "[749]\tvalidation-rmse:6.31777\n", "[750]\tvalidation-rmse:6.31764\n", "[751]\tvalidation-rmse:6.31746\n", "[752]\tvalidation-rmse:6.31749\n", "[753]\tvalidation-rmse:6.31734\n", "[754]\tvalidation-rmse:6.31728\n", "[755]\tvalidation-rmse:6.31728\n", "[756]\tvalidation-rmse:6.31711\n", "[757]\tvalidation-rmse:6.31703\n", "[758]\tvalidation-rmse:6.31689\n", "[759]\tvalidation-rmse:6.31687\n", "[760]\tvalidation-rmse:6.31687\n", "[761]\tvalidation-rmse:6.31676\n", "[762]\tvalidation-rmse:6.31672\n", "[763]\tvalidation-rmse:6.31675\n", "[764]\tvalidation-rmse:6.31681\n", "[765]\tvalidation-rmse:6.31674\n", "[766]\tvalidation-rmse:6.31657\n", "[767]\tvalidation-rmse:6.31652\n", "[768]\tvalidation-rmse:6.31651\n", "[769]\tvalidation-rmse:6.31654\n", "[770]\tvalidation-rmse:6.31642\n", "[771]\tvalidation-rmse:6.31625\n", "[772]\tvalidation-rmse:6.31620\n", "[773]\tvalidation-rmse:6.31607\n", "[774]\tvalidation-rmse:6.31611\n", "[775]\tvalidation-rmse:6.31609\n", "[776]\tvalidation-rmse:6.31606\n", "[777]\tvalidation-rmse:6.31605\n", "[778]\tvalidation-rmse:6.31593\n", "[779]\tvalidation-rmse:6.31596\n", "[780]\tvalidation-rmse:6.31588\n", "[781]\tvalidation-rmse:6.31578\n", "[782]\tvalidation-rmse:6.31580\n", "[783]\tvalidation-rmse:6.31577\n", "[784]\tvalidation-rmse:6.31584\n", "[785]\tvalidation-rmse:6.31580\n", "[786]\tvalidation-rmse:6.31578\n", "[787]\tvalidation-rmse:6.31578\n", "[788]\tvalidation-rmse:6.31569\n", "[789]\tvalidation-rmse:6.31562\n", "[790]\tvalidation-rmse:6.31562\n", "[791]\tvalidation-rmse:6.31550\n", "[792]\tvalidation-rmse:6.31538\n", "[793]\tvalidation-rmse:6.31527\n", "[794]\tvalidation-rmse:6.31519\n", "[795]\tvalidation-rmse:6.31519\n", "[796]\tvalidation-rmse:6.31516\n", "[797]\tvalidation-rmse:6.31509\n", "[798]\tvalidation-rmse:6.31505\n", "[799]\tvalidation-rmse:6.31505\n", "[800]\tvalidation-rmse:6.31504\n", "[801]\tvalidation-rmse:6.31493\n", "[802]\tvalidation-rmse:6.31492\n", "[803]\tvalidation-rmse:6.31482\n", "[804]\tvalidation-rmse:6.31462\n", "[805]\tvalidation-rmse:6.31462\n", "[806]\tvalidation-rmse:6.31457\n", "[807]\tvalidation-rmse:6.31451\n", "[808]\tvalidation-rmse:6.31460\n", "[809]\tvalidation-rmse:6.31450\n", "[810]\tvalidation-rmse:6.31440\n", "[811]\tvalidation-rmse:6.31399\n", "[812]\tvalidation-rmse:6.31386\n", "[813]\tvalidation-rmse:6.31385\n", "[814]\tvalidation-rmse:6.31385\n", "[815]\tvalidation-rmse:6.31380\n", "[816]\tvalidation-rmse:6.31375\n", "[817]\tvalidation-rmse:6.31369\n", "[818]\tvalidation-rmse:6.31366\n", "[819]\tvalidation-rmse:6.31363\n", "[820]\tvalidation-rmse:6.31342\n", "[821]\tvalidation-rmse:6.31328\n", "[822]\tvalidation-rmse:6.31317\n", "[823]\tvalidation-rmse:6.31322\n", "[824]\tvalidation-rmse:6.31317\n", "[825]\tvalidation-rmse:6.31318\n", "[826]\tvalidation-rmse:6.31317\n", "[827]\tvalidation-rmse:6.31317\n", "[828]\tvalidation-rmse:6.31309\n", "[829]\tvalidation-rmse:6.31290\n", "[830]\tvalidation-rmse:6.31278\n", "[831]\tvalidation-rmse:6.31271\n", "[832]\tvalidation-rmse:6.31266\n", "[833]\tvalidation-rmse:6.31270\n", "[834]\tvalidation-rmse:6.31273\n", "[835]\tvalidation-rmse:6.31271\n", "[836]\tvalidation-rmse:6.31268\n", "[837]\tvalidation-rmse:6.31260\n", "[838]\tvalidation-rmse:6.31253\n", "[839]\tvalidation-rmse:6.31239\n", "[840]\tvalidation-rmse:6.31230\n", "[841]\tvalidation-rmse:6.31227\n", "[842]\tvalidation-rmse:6.31215\n", "[843]\tvalidation-rmse:6.31216\n", "[844]\tvalidation-rmse:6.31220\n", "[845]\tvalidation-rmse:6.31214\n", "[846]\tvalidation-rmse:6.31200\n", "[847]\tvalidation-rmse:6.31178\n", "[848]\tvalidation-rmse:6.31167\n", "[849]\tvalidation-rmse:6.31149\n", "[850]\tvalidation-rmse:6.31131\n", "[851]\tvalidation-rmse:6.31137\n", "[852]\tvalidation-rmse:6.31137\n", "[853]\tvalidation-rmse:6.31140\n", "[854]\tvalidation-rmse:6.31131\n", "[855]\tvalidation-rmse:6.31122\n", "[856]\tvalidation-rmse:6.31085\n", "[857]\tvalidation-rmse:6.31078\n", "[858]\tvalidation-rmse:6.31097\n", "[859]\tvalidation-rmse:6.31099\n", "[860]\tvalidation-rmse:6.31095\n", "[861]\tvalidation-rmse:6.31070\n", "[862]\tvalidation-rmse:6.31047\n", "[863]\tvalidation-rmse:6.31043\n", "[864]\tvalidation-rmse:6.31033\n", "[865]\tvalidation-rmse:6.31020\n", "[866]\tvalidation-rmse:6.31011\n", "[867]\tvalidation-rmse:6.31008\n", "[868]\tvalidation-rmse:6.31002\n", "[869]\tvalidation-rmse:6.30995\n", "[870]\tvalidation-rmse:6.30987\n", "[871]\tvalidation-rmse:6.30997\n", "[872]\tvalidation-rmse:6.30987\n", "[873]\tvalidation-rmse:6.30980\n", "[874]\tvalidation-rmse:6.30973\n", "[875]\tvalidation-rmse:6.30972\n", "[876]\tvalidation-rmse:6.30968\n", "[877]\tvalidation-rmse:6.30949\n", "[878]\tvalidation-rmse:6.30944\n", "[879]\tvalidation-rmse:6.30935\n", "[880]\tvalidation-rmse:6.30874\n", "[881]\tvalidation-rmse:6.30878\n", "[882]\tvalidation-rmse:6.30872\n", "[883]\tvalidation-rmse:6.30863\n", "[884]\tvalidation-rmse:6.30866\n", "[885]\tvalidation-rmse:6.30861\n", "[886]\tvalidation-rmse:6.30857\n", "[887]\tvalidation-rmse:6.30841\n", "[888]\tvalidation-rmse:6.30834\n", "[889]\tvalidation-rmse:6.30829\n", "[890]\tvalidation-rmse:6.30821\n", "[891]\tvalidation-rmse:6.30811\n", "[892]\tvalidation-rmse:6.30818\n", "[893]\tvalidation-rmse:6.30817\n", "[894]\tvalidation-rmse:6.30813\n", "[895]\tvalidation-rmse:6.30801\n", "[896]\tvalidation-rmse:6.30797\n", "[897]\tvalidation-rmse:6.30800\n", "[898]\tvalidation-rmse:6.30800\n", "[899]\tvalidation-rmse:6.30791\n", "[900]\tvalidation-rmse:6.30796\n", "[901]\tvalidation-rmse:6.30791\n", "[902]\tvalidation-rmse:6.30760\n", "[903]\tvalidation-rmse:6.30756\n", "[904]\tvalidation-rmse:6.30752\n", "[905]\tvalidation-rmse:6.30746\n", "[906]\tvalidation-rmse:6.30742\n", "[907]\tvalidation-rmse:6.30734\n", "[908]\tvalidation-rmse:6.30724\n", "[909]\tvalidation-rmse:6.30714\n", "[910]\tvalidation-rmse:6.30712\n", "[911]\tvalidation-rmse:6.30715\n", "[912]\tvalidation-rmse:6.30709\n", "[913]\tvalidation-rmse:6.30718\n", "[914]\tvalidation-rmse:6.30721\n", "[915]\tvalidation-rmse:6.30722\n", "[916]\tvalidation-rmse:6.30723\n", "[917]\tvalidation-rmse:6.30718\n", "[918]\tvalidation-rmse:6.30709\n", "[919]\tvalidation-rmse:6.30688\n", "[920]\tvalidation-rmse:6.30691\n", "[921]\tvalidation-rmse:6.30683\n", "[922]\tvalidation-rmse:6.30667\n", "[923]\tvalidation-rmse:6.30660\n", "[924]\tvalidation-rmse:6.30665\n", "[925]\tvalidation-rmse:6.30641\n", "[926]\tvalidation-rmse:6.30624\n", "[927]\tvalidation-rmse:6.30625\n", "[928]\tvalidation-rmse:6.30617\n", "[929]\tvalidation-rmse:6.30613\n", "[930]\tvalidation-rmse:6.30627\n", "[931]\tvalidation-rmse:6.30610\n", "[932]\tvalidation-rmse:6.30612\n", "[933]\tvalidation-rmse:6.30606\n", "[934]\tvalidation-rmse:6.30607\n", "[935]\tvalidation-rmse:6.30596\n", "[936]\tvalidation-rmse:6.30597\n", "[937]\tvalidation-rmse:6.30603\n", "[938]\tvalidation-rmse:6.30606\n", "[939]\tvalidation-rmse:6.30587\n", "[940]\tvalidation-rmse:6.30576\n", "[941]\tvalidation-rmse:6.30545\n", "[942]\tvalidation-rmse:6.30536\n", "[943]\tvalidation-rmse:6.30521\n", "[944]\tvalidation-rmse:6.30519\n", "[945]\tvalidation-rmse:6.30513\n", "[946]\tvalidation-rmse:6.30508\n", "[947]\tvalidation-rmse:6.30497\n", "[948]\tvalidation-rmse:6.30495\n", "[949]\tvalidation-rmse:6.30499\n", "[950]\tvalidation-rmse:6.30494\n", "[951]\tvalidation-rmse:6.30492\n", "[952]\tvalidation-rmse:6.30498\n", "[953]\tvalidation-rmse:6.30483\n", "[954]\tvalidation-rmse:6.30486\n", "[955]\tvalidation-rmse:6.30495\n", "[956]\tvalidation-rmse:6.30500\n", "[957]\tvalidation-rmse:6.30516\n", "[958]\tvalidation-rmse:6.30518\n", "[959]\tvalidation-rmse:6.30519\n", "[960]\tvalidation-rmse:6.30516\n", "[961]\tvalidation-rmse:6.30515\n", "[962]\tvalidation-rmse:6.30517\n", "[963]\tvalidation-rmse:6.30516\n", "[964]\tvalidation-rmse:6.30516\n", "[965]\tvalidation-rmse:6.30513\n", "[966]\tvalidation-rmse:6.30518\n", "[967]\tvalidation-rmse:6.30510\n", "[968]\tvalidation-rmse:6.30517\n", "[969]\tvalidation-rmse:6.30511\n", "[970]\tvalidation-rmse:6.30513\n", "[971]\tvalidation-rmse:6.30513\n", "[972]\tvalidation-rmse:6.30510\n", "[973]\tvalidation-rmse:6.30508\n", "[974]\tvalidation-rmse:6.30504\n", "[975]\tvalidation-rmse:6.30485\n", "[976]\tvalidation-rmse:6.30485\n", "[977]\tvalidation-rmse:6.30472\n", "[978]\tvalidation-rmse:6.30462\n", "[979]\tvalidation-rmse:6.30468\n", "[980]\tvalidation-rmse:6.30474\n", "[981]\tvalidation-rmse:6.30474\n", "[982]\tvalidation-rmse:6.30483\n", "[983]\tvalidation-rmse:6.30475\n", "[984]\tvalidation-rmse:6.30474\n", "[985]\tvalidation-rmse:6.30472\n", "[986]\tvalidation-rmse:6.30472\n", "[987]\tvalidation-rmse:6.30470\n", "[988]\tvalidation-rmse:6.30461\n", "[989]\tvalidation-rmse:6.30449\n", "[990]\tvalidation-rmse:6.30449\n", "[991]\tvalidation-rmse:6.30438\n", "[992]\tvalidation-rmse:6.30438\n", "[993]\tvalidation-rmse:6.30429\n", "[994]\tvalidation-rmse:6.30429\n", "[995]\tvalidation-rmse:6.30412\n", "[996]\tvalidation-rmse:6.30410\n", "[997]\tvalidation-rmse:6.30407\n", "[998]\tvalidation-rmse:6.30405\n", "[999]\tvalidation-rmse:6.30398\n" ] } ], "source": [ "with mlflow.start_run():\n", " \n", " train = xgb.DMatrix(X_train, label=y_train)\n", " valid = xgb.DMatrix(X_val, label=y_val)\n", "\n", " best_params = {\n", " 'learning_rate': 0.09585355369315604,\n", " 'max_depth': 30,\n", " 'min_child_weight': 1.060597050922164,\n", " 'objective': 'reg:linear',\n", " 'reg_alpha': 0.018060244040060163,\n", " 'reg_lambda': 0.011658731377413597,\n", " 'seed': 42\n", " }\n", "\n", " mlflow.log_params(best_params)\n", "\n", " booster = xgb.train(\n", " params=best_params,\n", " dtrain=train,\n", " num_boost_round=1000,\n", " evals=[(valid, 'validation')],\n", " early_stopping_rounds=50\n", " )\n", "\n", " y_pred = booster.predict(valid)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", "\n", " with open(\"models/preprocessor.b\", \"wb\") as f_out:\n", " pickle.dump(dv, f_out)\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlflow.xgboost.log_model(booster, artifact_path=\"models_mlflow\")" ] }, { "cell_type": "code", "execution_count": null, "id": "c2108f4b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 23, "id": "87614b82", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/cristian.martinez/miniconda3/envs/exp-tracking-env/lib/python3.9/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor\n", "from sklearn.svm import LinearSVR\n", "\n", "mlflow.sklearn.autolog()\n", "\n", "for model_class in (RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor, LinearSVR):\n", "\n", " with mlflow.start_run():\n", "\n", " mlflow.log_param(\"train-data-path\", \"./data/green_tripdata_2021-01.csv\")\n", " mlflow.log_param(\"valid-data-path\", \"./data/green_tripdata_2021-02.csv\")\n", " mlflow.log_artifact(\"models/preprocessor.b\", artifact_path=\"preprocessor\")\n", "\n", " mlmodel = model_class()\n", " mlmodel.fit(X_train, y_train)\n", "\n", " y_pred = mlmodel.predict(X_val)\n", " rmse = mean_squared_error(y_val, y_pred, squared=False)\n", " mlflow.log_metric(\"rmse\", rmse)\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "6f0813c7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "4c489ec5", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "0848c9d6c7d415ad6c477ff7ff8e98694d1a4aa96d0deee89244642e6b630036" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.3/orchestrate.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task @task(retries=3, retry_delay_seconds=2) def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df @task def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv @task(log_prints=True) def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") return None @flow def main_flow( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.3/orchestrate_pre_prefect.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") return None def main_flow( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.4/orchestrate.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task @task(retries=3, retry_delay_seconds=2) def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df @task def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv @task(log_prints=True) def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") return None @flow def main_flow( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.5/create_s3_bucket_block.py ================================================ from time import sleep from prefect_aws import S3Bucket, AwsCredentials def create_aws_creds_block(): my_aws_creds_obj = AwsCredentials( aws_access_key_id="123abc", aws_secret_access_key="abc123" ) my_aws_creds_obj.save(name="my-aws-creds", overwrite=True) def create_s3_bucket_block(): aws_creds = AwsCredentials.load("my-aws-creds") my_s3_bucket_obj = S3Bucket( bucket_name="my-first-bucket-abc", credentials=aws_creds ) my_s3_bucket_obj.save(name="s3-bucket-example", overwrite=True) if __name__ == "__main__": create_aws_creds_block() sleep(5) create_s3_bucket_block() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.5/orchestrate.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task @task(retries=3, retry_delay_seconds=2) def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df @task def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv @task(log_prints=True) def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") return None @flow def main_flow( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.5/orchestrate_s3.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task from prefect_aws import S3Bucket from prefect.artifacts import create_markdown_artifact from datetime import date @task(retries=3, retry_delay_seconds=2) def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df @task def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv @task(log_prints=True) def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") markdown__rmse_report = f"""# RMSE Report ## Summary Duration Prediction ## RMSE XGBoost Model | Region | RMSE | |:----------|-------:| | {date.today()} | {rmse:.2f} | """ create_markdown_artifact( key="duration-model-report", markdown=markdown__rmse_report ) return None @flow def main_flow_s3( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load s3_bucket_block = S3Bucket.load("s3-bucket-block") s3_bucket_block.download_folder_to_path(from_folder="data", to_folder="data") df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow_s3() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.6/create_s3_bucket_block.py ================================================ from time import sleep from prefect_aws import S3Bucket, AwsCredentials def create_aws_creds_block(): my_aws_creds_obj = AwsCredentials( aws_access_key_id="123abc", aws_secret_access_key="abc123" ) my_aws_creds_obj.save(name="my-aws-creds", overwrite=True) def create_s3_bucket_block(): aws_creds = AwsCredentials.load("my-aws-creds") my_s3_bucket_obj = S3Bucket( bucket_name="my-first-bucket-abc", credentials=aws_creds ) my_s3_bucket_obj.save(name="s3-bucket-example", overwrite=True) if __name__ == "__main__": create_aws_creds_block() sleep(5) create_s3_bucket_block() ================================================ FILE: cohorts/2023/03-orchestration/prefect/3.6/orchestrate_s3.py ================================================ import pathlib import pickle import pandas as pd import numpy as np import scipy import sklearn from sklearn.feature_extraction import DictVectorizer from sklearn.metrics import mean_squared_error import mlflow import xgboost as xgb from prefect import flow, task from prefect_aws import S3Bucket from prefect.artifacts import create_markdown_artifact from datetime import date @task(retries=3, retry_delay_seconds=2) def read_data(filename: str) -> pd.DataFrame: """Read data into DataFrame""" df = pd.read_parquet(filename) df.lpep_dropoff_datetime = pd.to_datetime(df.lpep_dropoff_datetime) df.lpep_pickup_datetime = pd.to_datetime(df.lpep_pickup_datetime) df["duration"] = df.lpep_dropoff_datetime - df.lpep_pickup_datetime df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ["PULocationID", "DOLocationID"] df[categorical] = df[categorical].astype(str) return df @task def add_features( df_train: pd.DataFrame, df_val: pd.DataFrame ) -> tuple( [ scipy.sparse._csr.csr_matrix, scipy.sparse._csr.csr_matrix, np.ndarray, np.ndarray, sklearn.feature_extraction.DictVectorizer, ] ): """Add features to the model""" df_train["PU_DO"] = df_train["PULocationID"] + "_" + df_train["DOLocationID"] df_val["PU_DO"] = df_val["PULocationID"] + "_" + df_val["DOLocationID"] categorical = ["PU_DO"] #'PULocationID', 'DOLocationID'] numerical = ["trip_distance"] dv = DictVectorizer() train_dicts = df_train[categorical + numerical].to_dict(orient="records") X_train = dv.fit_transform(train_dicts) val_dicts = df_val[categorical + numerical].to_dict(orient="records") X_val = dv.transform(val_dicts) y_train = df_train["duration"].values y_val = df_val["duration"].values return X_train, X_val, y_train, y_val, dv @task(log_prints=True) def train_best_model( X_train: scipy.sparse._csr.csr_matrix, X_val: scipy.sparse._csr.csr_matrix, y_train: np.ndarray, y_val: np.ndarray, dv: sklearn.feature_extraction.DictVectorizer, ) -> None: """train a model with best hyperparams and write everything out""" with mlflow.start_run(): train = xgb.DMatrix(X_train, label=y_train) valid = xgb.DMatrix(X_val, label=y_val) best_params = { "learning_rate": 0.09585355369315604, "max_depth": 30, "min_child_weight": 1.060597050922164, "objective": "reg:linear", "reg_alpha": 0.018060244040060163, "reg_lambda": 0.011658731377413597, "seed": 42, } mlflow.log_params(best_params) booster = xgb.train( params=best_params, dtrain=train, num_boost_round=100, evals=[(valid, "validation")], early_stopping_rounds=20, ) y_pred = booster.predict(valid) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) pathlib.Path("models").mkdir(exist_ok=True) with open("models/preprocessor.b", "wb") as f_out: pickle.dump(dv, f_out) mlflow.log_artifact("models/preprocessor.b", artifact_path="preprocessor") mlflow.xgboost.log_model(booster, artifact_path="models_mlflow") markdown__rmse_report = f"""# RMSE Report ## Summary Duration Prediction ## RMSE XGBoost Model | Region | RMSE | |:----------|-------:| | {date.today()} | {rmse:.2f} | """ create_markdown_artifact( key="duration-model-report", markdown=markdown__rmse_report ) return None @flow def main_flow_s3( train_path: str = "./data/green_tripdata_2021-01.parquet", val_path: str = "./data/green_tripdata_2021-02.parquet", ) -> None: """The main training pipeline""" # MLflow settings mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("nyc-taxi-experiment") # Load s3_bucket_block = S3Bucket.load("s3-bucket-block") s3_bucket_block.download_folder_to_path(from_folder="data", to_folder="data") df_train = read_data(train_path) df_val = read_data(val_path) # Transform X_train, X_val, y_train, y_val, dv = add_features(df_train, df_val) # Train train_best_model(X_train, X_val, y_train, y_val, dv) if __name__ == "__main__": main_flow_s3() ================================================ FILE: cohorts/2023/03-orchestration/prefect/README.md ================================================ # 3. Orchestration and ML Pipelines This section of the repo contains Python code to accompany the videos that show how to use Prefect for MLOps. We will create workflows that you can orchestrate and observe. ## 3.1 Introdution to Workflow Orchestration ## 3.2 Introduction to Prefect ## 3.3 Prefect Workflow ## 3.4 Deploying Your Workflow ## 3.5 Working with Deployments ## 3.6 Prefect Cloud (optional) ## 3.7 Homework More information [here](../cohorts/2023/03-orchestration/homework.md). ## Quick setup ### Install packages In a conda environment with Python 3.10.12 or similar, install all package dependencies with ```bash pip install -r requirements.txt ``` ### Start the Prefect server locally Create another window and activate your conda environment. Start the Prefect API server locally with ```bash prefect server start ``` ### Alternative to self-hosted server use Prefect Cloud for added capabilties Signup and use for free at Authenticate through the terminal with ```bash prefect cloud login ``` Use your [Prefect profile](https://docs.prefect.io/latest/concepts/settings/) to switch between a self-hosted server and Cloud. ## Notes Did you take notes? Add them here: * [Prefect local deployment using Google Cloud Storage as data storage](https://github.com/ugm2/mlops-zoomcamp-workshop/tree/main/03-workflow-orchestration/3.5) * Notes/Blog posts by Sagar Thacker * [Inrtoduction to Workflow Orchestratio & Prefect](https://sagarthacker.com/posts/mlops/intro_workflow_orchestration.html) * [Prefect Blocks](https://sagarthacker.com/posts/mlops/prefect-blocks.html) * [Prefect Deployments](https://sagarthacker.com/posts/mlops/prefect-deployment.html) * [Prefect Cloud Deployment](https://sagarthacker.com/posts/mlops/prefect-cloud.html) * Send a PR, add your notes above this line ### Notes 2022 Edition To read the notes from the previous edition, see [here](../cohorts/2022/03-orchestration/README.md) ================================================ FILE: cohorts/2023/03-orchestration/prefect/meta.json ================================================ { "module": { "number": 3, "title": "Orchestration and ML Pipelines" }, "units": [ { "number": 1, "title": "Introdution to Workflow Orchestration", "youtube": "https://www.youtube.com/watch?v=Cqb7wyaNF08" }, { "number": 2, "title": "Introduction to Prefect", "youtube": "https://www.youtube.com/watch?v=rTUBTvXvXvM" }, { "number": 3, "title": "Prefect Workflow", "youtube": "https://www.youtube.com/watch?v=x3bV8yMKjtc" }, { "number": 4, "title": "Deploying Your Workflow", "youtube": "https://www.youtube.com/watch?v=3YjagezFhOo" }, { "number": 5, "title": "Working with Deployments", "youtube": "https://www.youtube.com/watch?v=jVmaaqs63O8" }, { "number": 6, "title": "Prefect Cloud (optional)", "youtube": "https://www.youtube.com/watch?v=y89Ww85EUdo" }, { "number": 7, "title": "Homework", "youtube": "" } ] } ================================================ FILE: cohorts/2023/03-orchestration/prefect/requirements.txt ================================================ black==23.3.0 fastparquet==2023.4.0 hyperopt==0.2.7 mlflow==2.3.1 pandas==2.0.1 prefect==2.10.8 prefect-aws==0.3.1 scikit_learn==1.2.2 seaborn==0.12.2 xgboost==1.7.5 orjson==3.8.1 ================================================ FILE: cohorts/2023/04-deployment/homework/Dockerfile ================================================ FROM python:3.10.0-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ================================================ FILE: cohorts/2023/04-deployment/homework/starter.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "id": "2c51efaa", "metadata": {}, "outputs": [], "source": [ "!pip freeze | grep scikit-learn" ] }, { "cell_type": "code", "execution_count": 1, "id": "0ef880a0", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "7836ccfd", "metadata": {}, "outputs": [], "source": [ "with open('model.bin', 'rb') as f_in:\n", " dv, model = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": 3, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 4, "id": "4854399a", "metadata": {}, "outputs": [], "source": [ "df = read_data('https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_????-??.parquet')" ] }, { "cell_type": "code", "execution_count": 5, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "dicts = df[categorical].to_dict(orient='records')\n", "X_val = dv.transform(dicts)\n", "y_pred = model.predict(X_val)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.0" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2023/04-deployment/homework.md ================================================ ## Homework In this homework, we'll deploy the ride duration model in batch mode. Like in homework 1, we'll use the Yellow Taxi Trip Records dataset. You'll find the starter code in the [homework](homework) directory. ## Q1. Notebook We'll start with the same notebook we ended up with in homework 1. We cleaned it a little bit and kept only the scoring part. You can find the initial notebook [here](homework/starter.ipynb). Run this notebook for the February 2022 data. What's the standard deviation of the predicted duration for this dataset? * 5.28 * 10.28 * 15.28 * 20.28 ## Q2. Preparing the output Like in the course videos, we want to prepare the dataframe with the output. First, let's create an artificial `ride_id` column: ```python df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') ``` Next, write the ride id and the predictions to a dataframe with results. Save it as parquet: ```python df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ``` What's the size of the output file? * 28M * 38M * 48M * 58M __Note:__ Make sure you use the snippet above for saving the file. It should contain only these two columns. For this question, don't change the dtypes of the columns and use pyarrow, not fastparquet. ## Q3. Creating the scoring script Now let's turn the notebook into a script. Which command you need to execute for that? ## Q4. Virtual environment Now let's put everything into a virtual environment. We'll use pipenv for that. Install all the required libraries. Pay attention to the Scikit-Learn version: it should be `scikit-learn==1.2.2`. After installing the libraries, pipenv creates two files: `Pipfile` and `Pipfile.lock`. The `Pipfile.lock` file keeps the hashes of the dependencies we use for the virtual env. What's the first hash for the Scikit-Learn dependency? ## Q5. Parametrize the script Let's now make the script configurable via CLI. We'll create two parameters: year and month. Run the script for March 2022. What's the mean predicted duration? * 7.76 * 12.76 * 17.76 * 22.76 Hint: just add a print statement to your script. ## Q6. Docker container Finally, we'll package the script in the docker container. For that, you'll need to use a base image that we prepared. This is how it looks like: ``` FROM python:3.10.0-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ``` (see [`homework/Dockerfile`](homework/Dockerfile)) We pushed it to [`svizor/zoomcamp-model:mlops-3.10.0-slim`](https://hub.docker.com/layers/svizor/zoomcamp-model/mlops-3.10.0-slim/images/sha256-595bf690875f5b9075550b61c609be10f05e6915609ef4ea4ce9797116c99eff?context=repo), which you should use as your base image. That is, this is how your Dockerfile should start: ```docker FROM svizor/zoomcamp-model:mlops-3.10.0-slim # do stuff here ``` This image already has a pickle file with a dictionary vectorizer and a model. You will need to use them. Important: don't copy the model to the docker image. You will need to use the pickle file already in the image. Now run the script with docker. What's the mean predicted duration for April 2022? * 7.92 * 12.83 * 17.92 * 22.83 ## Bonus: upload the result to the cloud (Not graded) Just printing the mean duration inside the docker image doesn't seem very practical. Typically, after creating the output file, we upload it to the cloud storage. Modify your code to upload the parquet file to S3/GCS/etc. ## Publishing the image to dockerhub This is how we published the image to Docker hub: ```bash docker build -t mlops-zoomcamp-model:v1 . docker tag mlops-zoomcamp-model:v1 svizor/zoomcamp-model:mlops-3.10.0-slim docker push svizor/zoomcamp-model:mlops-3.10.0-slim ``` ## Submit the results * Submit your results here: https://forms.gle/4tnqB5yGeMrTtKKa6 * It's possible that your answers won't match exactly. If it's the case, select the closest one. * You can submit your answers multiple times. In this case, the last submission will be used for scoring. ## Deadline The deadline for submitting is 26 June 2023 (Monday) 23:00 CEST. After that, the form will be closed. ================================================ FILE: cohorts/2023/05-monitoring/homework.md ================================================ ## Homework The goal of this homework is to familiarize users with monitoring for ML batch services, using PostgreSQL database to store metrics and Grafana to visualize them. ## Q1. Prepare the dataset Start with `baseline_model_nyc_taxi_data.ipynb`. Download the March 2023 Green Taxi data. We will use this data to simulate a production usage of a taxi trip duration prediction service. What is the shape of the downloaded data? How many rows are there? * 72044 * 78537 * 62495 * 54396 ## Q2. Metric Let's expand the number of data quality metrics we’d like to monitor! Please add one metric of your choice and a quantile value for the `"fare_amount"` column (`quantile=0.5`). Hint: explore evidently metric `ColumnQuantileMetric` (from `evidently.metrics import ColumnQuantileMetric`) What metric did you choose? ## Q3. Prefect flow Let’s update prefect tasks by giving them nice meaningful names, specifying a number of delays and retries. Hint: use `evidently_metrics_calculation.py` script as a starting point to implement your solution. Check the prefect docs to check task parameters. What is the correct way of doing that? * `@task(retries_num=2, retry_seconds=5, task_name="calculate metrics")` * `@task(retries_num=2, retry_delay_seconds=5, name="calculate metrics")` * `@task(retries=2, retry_seconds=5, task_name="calculate metrics")` * `@task(retries=2, retry_delay_seconds=5, name="calculate metrics")` ## Q4. Monitoring Let’s start monitoring. Run expanded monitoring for a new batch of data (March 2023). What is the maximum value of metric `quantile = 0.5` on the `"fare_amount"` column during March 2023 (calculated daily)? * 10 * 12.5 * 14 * 14.8 ## Q5. Dashboard Finally, let’s add panels with new added metrics to the dashboard. After we customize the dashboard let's save a dashboard config, so that we can access it later. Hint: click on “Save dashboard” to access JSON configuration of the dashboard. This configuration should be saved locally. Where to place a dashboard config file? * `project_folder` (05-monitoring) * `project_folder/config` (05-monitoring/config) * `project_folder/dashboards` (05-monitoring/dashboards) * `project_folder/data` (05-monitoring/data) ## Submit the results * Submit your results here: https://forms.gle/PJaYeWsnWShAEBF79 * You can submit your solution multiple times. In this case, only the last submission will be used * If your answer doesn't match options exactly, select the closest one ## Deadline The deadline for submitting is 7 July (Friday), 23:00 CEST (Berlin time). After that, the form will be closed. ================================================ FILE: cohorts/2023/06-best-practices/homework/Dockerfile ================================================ FROM python:3.10.0-slim RUN pip install -U pip & pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] COPY [ "model.bin", "model.bin" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2023/06-best-practices/homework/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.2.2" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.10" ================================================ FILE: cohorts/2023/06-best-practices/homework/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import pickle import pandas as pd year = int(sys.argv[1]) month = int(sys.argv[2]) input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet' with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PULocationID', 'DOLocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred df_result.to_parquet(output_file, engine='pyarrow', index=False) ================================================ FILE: cohorts/2023/06-best-practices/homework.md ================================================ ## Homework In this homework, we'll take the ride duration prediction model that we deployed in batch mode in homework 4 and improve the reliability of our code with unit and integration tests. You'll find the starter code in the [homework](homework/) directory. ## Q1. Refactoring Before we can start converting our code with tests, we need to refactor it. We'll start by getting rid of all the global variables. * Let's create a function `main` with two parameters: `year` and `month`. * Move all the code (except `read_data`) inside `main` * Make `categorical` a parameter for `read_data` and pass it inside `main` Now we need to create the "main" block from which we'll invoke the main function. How does the `if` statement that we use for this looks like? Hint: after refactoring, check that the code still works. Just run it e.g. for Feb 2022 and see if it finishes successfully. To make it easier to run it, you can write results to your local filesystem. E.g. here: ```python output_file = f'taxi_type=yellow_year={year:04d}_month={month:02d}.parquet' ``` ## Q2. Installing pytest Now we need to install `pytest`: ```bash pipenv install --dev pytest ``` Next, create a folder `tests` and then two files inside. The first one will be the file with tests. We can name it `test_batch.py`. The second file will be `__init__.py`. So, why do we need this second file? - To define a package and specify its boundaries - To manage the import of modules from the package - Both of the above options are correct - To initialize a new object ## Q3. Writing first unit test Now let's cover our code with unit tests. We'll start with the pre-processing logic inside `read_data`. It's difficult to test right now because first reads the file and then performs some transformations. We need to split this code into two parts: reading (I/O) and transformation. So let's create a function `prepare_data` that takes in a dataframe (and some other parameters too) and applies some transformation to it. (That's basically the entire `read_data` function after reading the parquet file) Now create a test and use this as input: ```python data = [ (None, None, dt(1, 2), dt(1, 10)), (1, None, dt(1, 2), dt(1, 10)), (1, 2, dt(2, 2), dt(2, 3)), (None, 1, dt(1, 2, 0), dt(1, 2, 50)), (2, 3, dt(1, 2, 0), dt(1, 2, 59)), (3, 4, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PULocationID', 'DOLocationID', 'tpep_pickup_datetime', 'tpep_dropoff_datetime'] df = pd.DataFrame(data, columns=columns) ``` Where `dt` is a helper function: ```python from datetime import datetime def dt(hour, minute, second=0): return datetime(2022, 1, 1, hour, minute, second) ``` Define the expected output and use the assert to make sure that the actual dataframe matches the expected one Tip: When you compare two Pandas DataFrames, the result is also a DataFrame. The same is true for Pandas Series. Also, a DataFrame could be turned into a list of dictionaries. How many rows should be there in the expected dataframe? - 1 - 2 - 3 - 4 ## Q4. Mocking S3 with Localstack Now let's prepare for an integration test. In our script, we write data to S3. So we'll use Localstack to mimic S3. First, let's run Localstack with Docker compose. Let's create a `docker-compose.yaml` file with just one service: localstack. Inside localstack, we're only interested in running S3. Start the service and test it by creating a bucket where we'll keep the output. Let's call it "nyc-duration". With AWS CLI, this is how we create a bucket: ```bash aws s3 mb s3://nyc-duration ``` Then we need to check that the bucket was successfully created. With AWS, this is how we typically do it: ```bash aws s3 ls ``` In both cases we should adjust commands for localstack. Which option do we need to use for such purposes? - `--endpoint-url` - `--profile` - `--region` - `--version` ## Make input and output paths configurable Right now the input and output paths are hardcoded, but we want to change it for the tests. One of the possible ways would be to specify `INPUT_FILE_PATTERN` and `OUTPUT_FILE_PATTERN` via the env variables. Let's do that: ```bash export INPUT_FILE_PATTERN="s3://nyc-duration/in/{year:04d}-{month:02d}.parquet" export OUTPUT_FILE_PATTERN="s3://nyc-duration/out/{year:04d}-{month:02d}.parquet" ``` And this is how we can read them: ```python def get_input_path(year, month): default_input_pattern = 'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) # rest of the main function ... ``` ## Reading from Localstack S3 with Pandas So far we've been reading parquet files from S3 with using pandas `read_parquet`. But this way we read it from the actual S3 service. Now we need to replace it with our localstack one. For that, we need to specify the endpoint url: ```python options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet('s3://bucket/file.parquet', storage_options=options) ``` Let's modify our `read_data` function: - check if `S3_ENDPOINT_URL` is set, and if it is, use it for reading - otherwise use the usual way ## Q5. Creating test data Now let's create `integration_test.py` We'll use the dataframe we created in Q3 (the dataframe for the unit test) and save it to S3. You don't need to do anything else: just create a dataframe and save it. We will pretend that this is data for January 2022. Run the `integration_test.py` script. After that, use AWS CLI to verify that the file was created. Use this snipped for saving the file: ```python df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) ``` What's the size of the file? - 3667 - 23667 - 43667 - 63667 Note: it's important to use the code from the snippet for saving the file. Otherwise the size may be different depending on the OS, engine and compression. Even if you use this exact snippet, the size of your dataframe may still be a bit off. Just select the closest option. ## Q6. Finish the integration test We can read from our localstack s3, but we also need to write to it. Create a function `save_data` which works similarly to `read_data`, but we use it for saving a dataframe. Let's run the `batch.py` script for "January 2022" (the fake data we created in Q5). We can do that from our integration test in Python: we can use `os.system` for doing that (there are other options too). Now it saves the result to localstack. The only thing we need to do now is to read this data and verify the result is correct. What's the sum of predicted durations for the test dataframe? - 10.50 - 31.51 - 59.28 - 81.22 ## Running the test (ungraded) The rest is ready, but we need to write a shell script for doing that. Let's do that! ## Submit the results * Submit your results here: https://forms.gle/vi7k972SKLmpwohG8 * It's possible that your answers won't match exactly. If it's the case, select the closest one. * You can submit your answers multiple times. In this case, the last submission will be used for scoring. ## Deadline The deadline for submitting is 16 July (Sunday) 23:00 CEST. After that, the form will be closed. ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.2.2" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] pytest = "*" [requires] python_version = "3.10" ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import os import pickle import pandas as pd def prepare_data(df, categorical): df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df def read_data(filename, categorical): S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') if S3_ENDPOINT_URL is not None: options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet(filename, storage_options=options) else: df = pd.read_parquet(filename) return prepare_data(df, categorical) def save_data(filename, df): S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') if S3_ENDPOINT_URL is not None: options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df.to_parquet(filename, engine='pyarrow', index=False, storage_options=options) else: df.to_parquet(filename, engine='pyarrow', index=False) def get_input_path(year, month): default_input_pattern = 'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) categorical = ['PULocationID', 'DOLocationID'] df = read_data(input_file, categorical) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred save_data(output_file, df_result) if __name__ == '__main__': year = int(sys.argv[1]) month = int(sys.argv[2]) main(year=year, month=month) ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/docker-compose.yaml ================================================ services: localstack: image: localstack/localstack ports: - "4566:4566" environment: - SERVICES=s3 - AWS_DEFAULT_REGION=eu-west-1 - AWS_ACCESS_KEY_ID=abc - AWS_SECRET_ACCESS_KEY=xyz ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/integration_test.py ================================================ import os import pandas as pd from datetime import datetime import batch def dt(hour, minute, second=0): return datetime(2022, 1, 1, hour, minute, second) S3_ENDPOINT_URL = os.getenv('S3_ENDPOINT_URL') options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } data = [ (None, None, dt(1, 2), dt(1, 10)), (1, None, dt(1, 2), dt(1, 10)), (1, 2, dt(2, 2), dt(2, 3)), (None, 1, dt(1, 2, 0), dt(1, 2, 50)), (2, 3, dt(1, 2, 0), dt(1, 2, 59)), (3, 4, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PULocationID', 'DOLocationID', 'tpep_pickup_datetime', 'tpep_dropoff_datetime'] df_input = pd.DataFrame(data, columns=columns) input_file = batch.get_input_path(2022, 1) output_file = batch.get_output_path(2022, 1) df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) os.system('python batch.py 2022 1') df_actual = pd.read_parquet(output_file, storage_options=options) print(df_actual['predicted_duration'].sum()) assert abs(df_actual['predicted_duration'].sum() - 31.51) < 0.1 ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/tests/__init__.py ================================================ ================================================ FILE: cohorts/2023/06-best-practices/homework_solution/tests/test_batch.py ================================================ import pandas as pd from datetime import datetime from batch import prepare_data def dt(hour, minute, second=0): return datetime(2022, 1, 1, hour, minute, second) def test_prepare_data(): data = [ (None, None, dt(1, 2), dt(1, 10)), (1, None, dt(1, 2), dt(1, 10)), (1, 2, dt(2, 2), dt(2, 3)), (None, 1, dt(1, 2, 0), dt(1, 2, 50)), (2, 3, dt(1, 2, 0), dt(1, 2, 59)), (3, 4, dt(1, 2, 0), dt(2, 2, 1)), ] categorical = ['PULocationID', 'DOLocationID'] columns = ['PULocationID', 'DOLocationID', 'tpep_pickup_datetime', 'tpep_dropoff_datetime'] df = pd.DataFrame(data, columns=columns) df_actual = prepare_data(df, categorical) data_expected = [ ('-1', '-1', 8.0), ('1', '-1', 8.0), ('1', '2', 1.0), ] columns_test = ['PULocationID', 'DOLocationID', 'duration'] df_expected = pd.DataFrame(data_expected, columns=columns_test) print(df_actual) assert (df_actual['PULocationID'] == df_expected['PULocationID']).all() assert (df_actual['DOLocationID'] == df_expected['DOLocationID']).all() assert (df_actual['duration'] - df_expected['duration']).abs().sum() < 0.0000001 ================================================ FILE: cohorts/2023/07-project/README.md ================================================ ## Course Project The goal of this project is to apply everything we learned in this course and build an end-to-end machine learning project. Remember that to pass the project, you must evaluate 3 peers. If you don't do that, your project can't be considered compelete. ### Submitting #### Project Cohort #1 Project: * Form: https://forms.gle/mRRoDtqDXBytvsoD9 * Deadline: 31 July, 23:00 CEST Peer reviewing: * Peer review assignments: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vTAztxXsLidZV8I18gL9_qtJpxhyvyhJsEeXrP3kFyZoauGgR-S4p6b7H5yJ9kdTbUE5wAAvZgTTZ49/pubhtml?gid=0&single=true) ("project 1" tab) * Form: https://forms.gle/MRMHDuFiP6DFShaj7 * Deadline: 10 August, 23:00 CEST Project feedback: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vTS8Mlu6sWyu6JinFUftUl6OB5mxXlwGT2icIyQCSbhDDmW36WWyAbv2dCFJhng6Nln0o3cwvTchjcU/pubhtml?gid=0&single=true) ("feedback-01" tab) #### Project Cohort #2 Project: * Form: https://forms.gle/o1s3NmYE4UmFSMVD7 * Deadline: 21 August (Monday), 23:00 CEST Peer reviewing: * Peer review assignments: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vTAztxXsLidZV8I18gL9_qtJpxhyvyhJsEeXrP3kFyZoauGgR-S4p6b7H5yJ9kdTbUE5wAAvZgTTZ49/pubhtml?gid=1942033009&single=true) ("project 2" tab) * Form: https://forms.gle/R4Y58WSxGDWsDBFv7 * Deadline: 29 August (Tuesday), 23:00 CEST Project feedback: [link](https://docs.google.com/spreadsheets/d/e/2PACX-1vTS8Mlu6sWyu6JinFUftUl6OB5mxXlwGT2icIyQCSbhDDmW36WWyAbv2dCFJhng6Nln0o3cwvTchjcU/pubhtml?gid=546664034&single=true) ("feedback-02" tab) ### Evaluation criteria See [here](../../../07-project/README.md) ### Misc To get the hash for your project, use this function to hash your email: ```python from hashlib import sha1 def compute_hash(email): return sha1(email.lower().encode('utf-8')).hexdigest() ``` Or use [this website](http://www.sha1-online.com/). ================================================ FILE: cohorts/2023/README.md ================================================ ## MLOps Zoomcamp 2023 Cohort * [Pre-Course Live Q&A](https://www.youtube.com/watch?v=o34Q_61iA4Y&list=PL3MmuxUbc_hKqamJqQ7Ew8HxptJYnXqQM&index=1) * [Technical FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit) * [Course Playlist: Only 2023 Live videos & homeworks](https://www.youtube.com/playlist?list=PL3MmuxUbc_hKqamJqQ7Ew8HxptJYnXqQM) * [Leaderboard](https://docs.google.com/spreadsheets/d/e/2PACX-1vTHTc2eDorvcprX3SRd_ZejSnOjd7SUBlmr7ttYs9NsbS3G9szB9wMlMfCOLVL5XWCB0p8oaDOfffaZ/pubhtml) * [Deadline calendar](https://docs.google.com/spreadsheets/d/e/2PACX-1vRNTwA0Of1lyprYpn2YxU-l0gvNeq-up7g7ITB42nPf2gT9Qd3PTzqTmkjAZjk1s__r7D99CsJfcZEO/pubhtml?gid=0&single=true) [**Module 1: Introduction**](01-intro) * [Homework](01-intro/homework.md) * [Solution](01-intro/homework.ipynb) [**Module 2: Experiment Tracking**](02-experiment-tracking/) * [Homework](02-experiment-tracking/homework.md) * [Workshop: Weights & Biases](02-experiment-tracking/wandb.md) * [Solution MLflow](02-experiment-tracking/solution-mlflow/) [**Module 3: Orchestration and ML pipelines**](03-orchestration/) * [Homework](03-orchestration/homework.md) [**Module 4: Model Deployment**](04-deployment) * [Homework](04-deployment/homework.md) * [Solution](04-deployment/homework_solution) [**Module 5: Model Monitoring**](05-monitoring/) * [Homework](05-monitoring/homework.md) [**Module 6: Best Practices**](06-best-practices) * [Homework](06-best-practices/homework.md) * [Solution](06-best-practices/homework_solution) [**Projects**](07-project/) * [More information](07-project/README.md) ================================================ FILE: cohorts/2024/01-intro/homework.md ================================================ ## Homework The goal of this homework is to train a simple model for predicting the duration of a ride - similar to what we did in this module. ## Q1. Downloading the data We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), but instead of "**Green** Taxi Trip Records", we'll use "**Yellow** Taxi Trip Records". Download the data for January and February 2023. Read the data for January. How many columns are there? * 16 * 17 * 18 * 19 ## Q2. Computing duration Now let's compute the `duration` variable. It should contain the duration of a ride in minutes. What's the standard deviation of the trips duration in January? * 32.59 * 42.59 * 52.59 * 62.59 ## Q3. Dropping outliers Next, we need to check the distribution of the `duration` variable. There are some outliers. Let's remove them and keep only the records where the duration was between 1 and 60 minutes (inclusive). What fraction of the records left after you dropped the outliers? * 90% * 92% * 95% * 98% ## Q4. One-hot encoding Let's apply one-hot encoding to the pickup and dropoff location IDs. We'll use only these two features for our model. * Turn the dataframe into a list of dictionaries (remember to re-cast the ids to strings - otherwise it will label encode them) * Fit a dictionary vectorizer * Get a feature matrix from it What's the dimensionality of this matrix (number of columns)? * 2 * 155 * 345 * 515 * 715 ## Q5. Training a model Now let's use the feature matrix from the previous step to train a model. * Train a plain linear regression model with default parameters, where duration is the response variable * Calculate the RMSE of the model on the training data What's the RMSE on train? * 3.64 * 7.64 * 11.64 * 16.64 ## Q6. Evaluating the model Now let's apply this model to the validation dataset (February 2023). What's the RMSE on validation? * 3.81 * 7.81 * 11.81 * 16.81 ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw1 * If your answer doesn't match options exactly, select the closest one ================================================ FILE: cohorts/2024/02-experiment-tracking/homework/hpo.py ================================================ import os import pickle import click import mlflow import numpy as np from hyperopt import STATUS_OK, Trials, fmin, hp, tpe from hyperopt.pyll import scope from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--num_trials", default=15, help="The number of parameter evaluations for the optimizer to explore" ) def run_optimization(data_path: str, num_trials: int): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) def objective(params): rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 1, 20, 1)), 'n_estimators': scope.int(hp.quniform('n_estimators', 10, 50, 1)), 'min_samples_split': scope.int(hp.quniform('min_samples_split', 2, 10, 1)), 'min_samples_leaf': scope.int(hp.quniform('min_samples_leaf', 1, 4, 1)), 'random_state': 42 } rstate = np.random.default_rng(42) # for reproducible results fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=num_trials, trials=Trials(), rstate=rstate ) if __name__ == '__main__': run_optimization() ================================================ FILE: cohorts/2024/02-experiment-tracking/homework/preprocess_data.py ================================================ import os import pickle import click import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df['lpep_dropoff_datetime'] - df['lpep_pickup_datetime'] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option( "--dest_path", help="Location where the resulting files will be saved" ) def run_data_prep(raw_data_path: str, dest_path: str, dataset: str = "green"): # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-03.parquet") ) # Extract the target target = 'duration' y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': run_data_prep() ================================================ FILE: cohorts/2024/02-experiment-tracking/homework/register_model.py ================================================ import os import pickle import click import mlflow from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" RF_PARAMS = ['max_depth', 'n_estimators', 'min_samples_split', 'min_samples_leaf', 'random_state'] mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): new_params = {} for param in RF_PARAMS: new_params[param] = int(params[param]) rf = RandomForestRegressor(**new_params) rf.fit(X_train, y_train) # Evaluate model on the validation and test sets val_rmse = mean_squared_error(y_val, rf.predict(X_val), squared=False) mlflow.log_metric("val_rmse", val_rmse) test_rmse = mean_squared_error(y_test, rf.predict(X_test), squared=False) mlflow.log_metric("test_rmse", test_rmse) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--top_n", default=5, type=int, help="Number of top models that need to be evaluated to decide which one to promote" ) def run_register_model(data_path: str, top_n: int): client = MlflowClient() # Retrieve the top_n model runs and log the models experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # Select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) # best_run = client.search_runs( ... )[0] # Register the best model # mlflow.register_model( ... ) if __name__ == '__main__': run_register_model() ================================================ FILE: cohorts/2024/02-experiment-tracking/homework/train.py ================================================ import os import pickle import click from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) def run_train(data_path: str): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) if __name__ == '__main__': run_train() ================================================ FILE: cohorts/2024/02-experiment-tracking/homework.md ================================================ ## Homework The goal of this homework is to get familiar with MLflow, the tool for experiment tracking and model management. ## Q1. Install MLflow To get started with MLflow you'll need to install the MLflow Python package. For this we recommend creating a separate Python environment, for example, you can use [conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-envs), and then install the package there with `pip` or `conda`. Once you installed the package, run the command `mlflow --version` and check the output. What's the version that you have? ## Q2. Download and preprocess the data We'll use the Green Taxi Trip Records dataset to predict the duration of each trip. Download the data for January, February and March 2023 in parquet format from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). Use the script `preprocess_data.py` located in the folder [`homework`](homework) to preprocess the data. The script will: * load the data from the folder `` (the folder where you have downloaded the data), * fit a `DictVectorizer` on the training set (January 2023 data), * save the preprocessed datasets and the `DictVectorizer` to disk. Your task is to download the datasets and then execute this command: ``` python preprocess_data.py --raw_data_path --dest_path ./output ``` Tip: go to `02-experiment-tracking/homework/` folder before executing the command and change the value of `` to the location where you saved the data. How many files were saved to `OUTPUT_FOLDER`? * 1 * 3 * 4 * 7 ## Q3. Train a model with autolog We will train a `RandomForestRegressor` (from Scikit-Learn) on the taxi dataset. We have prepared the training script `train.py` for this exercise, which can be also found in the folder [`homework`](homework). The script will: * load the datasets produced by the previous step, * train the model on the training set, * calculate the RMSE score on the validation set. Your task is to modify the script to enable **autologging** with MLflow, execute the script and then launch the MLflow UI to check that the experiment run was properly tracked. Tip 1: don't forget to wrap the training code with a `with mlflow.start_run():` statement as we showed in the videos. Tip 2: don't modify the hyperparameters of the model to make sure that the training will finish quickly. What is the value of the `min_samples_split` parameter: * 2 * 4 * 8 * 10 ## Q4. Launch the tracking server locally Now we want to manage the entire lifecycle of our ML model. In this step, you'll need to launch a tracking server. This way we will also have access to the model registry. Your task is to: * launch the tracking server on your local machine, * select a SQLite db for the backend store and a folder called `artifacts` for the artifacts store. You should keep the tracking server running to work on the next two exercises that use the server. In addition to `backend-store-uri`, what else do you need to pass to properly configure the server? * `default-artifact-root` * `serve-artifacts` * `artifacts-only` * `artifacts-destination` ## Q5. Tune model hyperparameters Now let's try to reduce the validation error by tuning the hyperparameters of the `RandomForestRegressor` using `hyperopt`. We have prepared the script `hpo.py` for this exercise. Your task is to modify the script `hpo.py` and make sure that the validation RMSE is logged to the tracking server for each run of the hyperparameter optimization (you will need to add a few lines of code to the `objective` function) and run the script without passing any parameters. After that, open UI and explore the runs from the experiment called `random-forest-hyperopt` to answer the question below. Note: Don't use autologging for this exercise. The idea is to just log the information that you need to answer the question below, including: * the list of hyperparameters that are passed to the `objective` function during the optimization, * the RMSE obtained on the validation set (February 2023 data). What's the best validation RMSE that you got? * 4.817 * 5.335 * 5.818 * 6.336 ## Q6. Promote the best model to the model registry The results from the hyperparameter optimization are quite good. So, we can assume that we are ready to test some of these models in production. In this exercise, you'll promote the best model to the model registry. We have prepared a script called `register_model.py`, which will check the results from the previous step and select the top 5 runs. After that, it will calculate the RMSE of those models on the test set (March 2023 data) and save the results to a new experiment called `random-forest-best-models`. Your task is to update the script `register_model.py` so that it selects the model with the lowest RMSE on the test set and registers it to the model registry. Tip 1: you can use the method `search_runs` from the `MlflowClient` to get the model with the lowest RMSE, Tip 2: to register the model you can use the method `mlflow.register_model` and you will need to pass the right `model_uri` in the form of a string that looks like this: `"runs://model"`, and the name of the model (make sure to choose a good one!). What is the test RMSE of the best model? * 5.060 * 5.567 * 6.061 * 6.568 ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw2 * If your answer doesn't match options exactly, select the closest one ================================================ FILE: cohorts/2024/02-experiment-tracking/solution/hpo.py ================================================ import os import pickle import click import mlflow import numpy as np from hyperopt import STATUS_OK, Trials, fmin, hp, tpe from hyperopt.pyll import scope from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--num_trials", default=15, help="The number of parameter evaluations for the optimizer to explore" ) def run_optimization(data_path: str, num_trials: int): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) def objective(params): with mlflow.start_run(): mlflow.log_params(params) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) mlflow.log_metric("rmse", rmse) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 1, 20, 1)), 'n_estimators': scope.int(hp.quniform('n_estimators', 10, 50, 1)), 'min_samples_split': scope.int(hp.quniform('min_samples_split', 2, 10, 1)), 'min_samples_leaf': scope.int(hp.quniform('min_samples_leaf', 1, 4, 1)), 'random_state': 42 } rstate = np.random.default_rng(42) # for reproducible results fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=num_trials, trials=Trials(), rstate=rstate ) if __name__ == '__main__': run_optimization() ================================================ FILE: cohorts/2024/02-experiment-tracking/solution/preprocess_data.py ================================================ import os import pickle import click import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df['lpep_dropoff_datetime'] - df['lpep_pickup_datetime'] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option( "--dest_path", help="Location where the resulting files will be saved" ) def run_data_prep(raw_data_path: str, dest_path: str, dataset: str = "green"): # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-03.parquet") ) # Extract the target target = 'duration' y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': run_data_prep() ================================================ FILE: cohorts/2024/02-experiment-tracking/solution/register_model.py ================================================ import os import pickle import click import mlflow from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" RF_PARAMS = ['max_depth', 'n_estimators', 'min_samples_split', 'min_samples_leaf', 'random_state'] mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): for param in RF_PARAMS: params[param] = int(params[param]) rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) # Evaluate model on the validation and test sets val_rmse = mean_squared_error(y_val, rf.predict(X_val), squared=False) mlflow.log_metric("val_rmse", val_rmse) test_rmse = mean_squared_error(y_test, rf.predict(X_test), squared=False) mlflow.log_metric("test_rmse", test_rmse) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--top_n", default=5, type=int, help="Number of top models that need to be evaluated to decide which one to promote" ) def run_register_model(data_path: str, top_n: int): client = MlflowClient() # Retrieve the top_n model runs and log the models experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # Select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) best_run = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.test_rmse ASC"] )[0] # Register the best model run_id = best_run.info.run_id model_uri = f"runs:/{run_id}/model" mlflow.register_model(model_uri, name="rf-best-model") if __name__ == '__main__': run_register_model() ================================================ FILE: cohorts/2024/02-experiment-tracking/solution/train.py ================================================ import os import pickle import click import mlflow from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error mlflow.set_tracking_uri("sqlite:///mlflow.db") mlflow.set_experiment("random-forest-train") def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) def run_train(data_path: str): mlflow.sklearn.autolog() X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) with mlflow.start_run(): rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = mean_squared_error(y_val, y_pred, squared=False) if __name__ == '__main__': run_train() ================================================ FILE: cohorts/2024/03-orchestration/.gitignore ================================================ data/ .ipynb_checkpoints models/* mlruns/* .vscode/ ./DS_Store *.db *.DS_Store ================================================ FILE: cohorts/2024/03-orchestration/3.0/README.md ================================================ # 3.0 Introduction: ML pipelines and Mage ## 3.0.1 ML Pipelines ## 3.0.2 Running Mage In Codespaces On Windows with Docker-Compose # What is MLOps > Operationalizing ML models involves moving them from development to production to drive business value. ## Step 1 Preparing the model for deployment involves optimizing performance, ensuring it handles real-world data, and packaging it for integration into existing systems. ## Step 2 Deploying the model involves moving it from development to production, making it accessible to users and applications. ## Step 3 Once deployed, models must be continuously monitored for accuracy and reliability, and may need retraining on new data and updates to maintain effectiveness. ## Step 4 The operationalized model must be integrated into existing workflows, applications, and decision-making processes to drive business impact. > Effective operationalization enables organizations to move beyond experimentation and drive tangible value from ML at scale, powering intelligent applications that personalize the customer experience and creates real business value. # Why we need to operationalize ML ## 1. Productivity MLOps fosters collaboration between data scientists, ML engineers, and DevOps teams by providing a unified environment for experiment tracking, feature engineering, model management, and deployment. This breaks down silos and accelerates the entire machine learning lifecycle. ## 2. Reliability MLOps ensures high-quality, reliable models in production through clean datasets, proper testing, validation, CI/CD practices, monitoring, and governance. ## 3. Reproducibility MLOps enables reproducibility and compliance by versioning datasets, code, and models, providing transparency and auditability to ensure adherence to policies and regulations. ## 4. Time-to-value MLOps streamlines the ML lifecycle, enabling organizations to successfully deploy more projects to production and derive tangible business value and ROI from AI/ML investments at scale. # How Mage helps MLOps ## 1. Data preparation Mage offers features to build, run, and manage data pipelines for data transformation and integration, including pipeline orchestration, notebook environments, data integrations, and streaming pipelines for real-time data. ## 2. Training and deployment Mage helps prepare data, train machine learning models, and deploy them with accessible API endpoints. ## 3. Standardize complex processes Mage simplifies MLOps by providing a unified platform for data pipelining, model development, deployment, versioning, CI/CD, and maintenance, allowing developers to focus on model creation while improving efficiency and collaboration. --- # Example data pipeline: Quick Start 1. Clone the following respository containing the complete code for this module: ```bash git clone https://github.com/mage-ai/mlops.git cd mlops ``` 1. Launch Mage and the database service (PostgreSQL): ```bash ./scripts/start.sh ``` If don't have bash in your enviroment, modify the following command and run it: ```bash PROJECT_NAME=mlops \ MAGE_CODE_PATH=/home/src \ SMTP_EMAIL=$SMTP_EMAIL \ SMTP_PASSWORD=$SMTP_PASSWORD \ docker compose up ``` It is ok if you get this warning, you can ignore it `The "PYTHONPATH" variable is not set. Defaulting to a blank string.` 1. The subproject that contains all the pipelines and code is named [`unit_3_observability`](https://github.com/mage-ai/mlops/tree/master/mlops/unit_3_observability) ## Run example pipeline 1. Open [`http://localhost:6789`](http://localhost:6789) in your browser. 1. In the top left corner of the screen next to the Mage logo and **`mlops`** project name, click the project selector dropdown and choose the **`unit_0_setup`** option. 1. Click on the pipeline named **`example_pipeline`**. 1. Click on the button labeled **`Run @once`**. ## Resources 1. [Code for example data pipeline](https://github.com/mage-ai/mlops/tree/master/mlops/unit_0_setup) 1. [The definitive end-to-end machine learning (ML lifecycle) guide and tutorial for data engineers](https://mageai.notion.site/The-definitive-end-to-end-machine-learning-ML-lifecycle-guide-and-tutorial-for-data-engineers-ea24db5e562044c29d7227a67e70fd56?pvs=4). ================================================ FILE: cohorts/2024/03-orchestration/3.1/README.md ================================================ # 3.1 Data preparation: ETL and feature engineering # Ingestion ## 3.1.1 Creating a new project In order to create a new project, firstly, you need to right-click on a folder in Text editor, and choose `New Mage project`. Secondly, you need to open `Settings` and click on `Register project`. [Video](https://youtu.be/7hKrQmoARD8) Opening a text editor: * Go to the command center (At the top) * Type "text editor" ## 3.1.2 Data preparation - Ingestion The project `unit_1_data_preparation` now has an empty pipeline, and it can be developed further using blocks. The first one we'll create is an ingestion block, which uses Python code to download the parquet files from January to March of the green taxi datasets and concatenate them. Done that, generate a series of graphs and charts useful for data profiling. * **Note**: If the time chart isn't displayed, insert the following snippet `df['lpep_pickup_datetime_cleaned'] = df['lpep_pickup_datetime'].astype(np.int64) // 10**9` just above the `dfs.append(df)` line in `ingest.py` [Video](https://youtu.be/1lSOdTpoRug) Code: - [`ingest.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/data_loaders/ingest.py) ## 3.1.3 Utility helper functions Utility functions are already created in the `utils` folder. They will be then imported into the transformer block. [Video](https://youtu.be/FBh3P19lXj4) Code - [`cleaning.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/data_preparation/cleaning.py) - [`feature_selector.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/data_preparation/feature_selector.py) - [`splitters.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/data_preparation/splitters.py) ## 2. Data Preparation ### Videos 1. [Data preparation block](https://youtu.be/TcTMVn3BxeY) 1. [Visualize prepared data](https://youtu.be/j0Hfaoc5wRY) To see the correct histogram, change last two lines of the default code to: ```python col = 'trip_distance' x = df_1[df_1[col] <= 20][col] ``` ### Code - [`prepare.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/transformers/prepare.py) --- ## 3. Build training sets ### Videos 1. [Encoding functions](https://youtu.be/z8erMV-6joY) 1. [Training set block](https://youtu.be/qSzcfSHjJoY) ### Code - [`encoders.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/data_preparation/encoders.py) - [`build.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/data_exporters/build.py) --- ## 4. Data validations using built-in testing framework ### Videos 1. [Writing data validations](https://youtu.be/tYPAl4Q8kpw) ### Code - [`build.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/data_exporters/build.py) --- ## Code 1. [Complete code solution](https://github.com/mage-ai/mlops) 1. [Pipeline configuration](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/data_preparation/metadata.yaml) --- ## Resources 1. [Global Data Products](https://docs.mage.ai/orchestration/global-data-products/overview) 1. [Data validations using built-in testing framework](https://docs.mage.ai/development/data-validation) 1. [Data quality checks with Great Expectations integration](https://docs.mage.ai/development/testing/great-expectations) 1. [Unit tests](https://docs.mage.ai/development/testing/unit-tests) 1. [Feature encoding](https://www.mage.ai/blog/qualitative-data) ================================================ FILE: cohorts/2024/03-orchestration/3.2/README.md ================================================ # 3.2 Training: sklearn models and XGBoost ## 1. Training pipeline for sklearn models ### Videos 1. [GDP training set](https://youtu.be/KP68DuJnk4Q?si=tVHWYLCpZ2RpwuNh) 1. [Sklearn training GDP](https://youtu.be/CbHaZcq_uGo) 1. [Load models](https://youtu.be/zsMHFq2C978) 1. [Utility helper functions for loading models](https://youtu.be/fZnxDhtPxYo) 1. [Hyperparameter tuning](https://youtu.be/zfBB4KoZ7TM) 1. [Train sklearn model](https://youtu.be/P7PtegUFk3k) ### Code - [`utils/models/sklearn.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/models/sklearn.py) - [`custom/load_models.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/load_models.py): load sklearn models dynamically - [`transformers/hyperparameter_tuning/sklearn.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/transformers/hyperparameter_tuning/sklearn.py) - [`data_exporters/sklearn.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/data_exporters/sklearn.py) - [`hyperparameters/shared.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/hyperparameters/shared.py) --- ## 2. Training pipeline for XGBoost model ### Videos 1. [Hyperparameter tuning](https://youtu.be/K_Z2Lm1Cyu4) 1. [Train XGBoost model](https://youtu.be/Y2B-ivm7Mug) ### Code - [`utils/models/xgboost.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/models/xgboost.py) - [`transformers/hyperparameter_tuning/xgboost.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/transformers/hyperparameter_tuning/xgboost.py) - [`data_exporters/xgboost.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/data_exporters/xgboost.py) - [`hyperparameters/shared.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/hyperparameters/shared.py) --- ## Code 1. [Complete code solution](https://github.com/mage-ai/mlops) 1. [sklearn training pipeline configuration](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/sklearn_training/metadata.yaml) 1. [XGBoost training pipeline configuration](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/xgboost_training/metadata.yaml) --- ## Resources 1. [Accuracy, precision, recall](https://www.mage.ai/blog/definitive-guide-to-accuracy-precision-recall-for-product-developers) 1. [Regression model performance metrics](https://www.mage.ai/blog/product-developers-guide-to-ml-regression-model-metrics) ================================================ FILE: cohorts/2024/03-orchestration/3.3/README.md ================================================ ## 3.3 Observability: Monitoring and alerting ## 1. Pipeline health monitoring 1. [sklearn training pipeline health](https://youtu.be/jwte-x3VwFE) --- ## 2. Explainability ### Videos 1. [Customize layout](https://youtu.be/Skr-WnxiQ8I) 1. [XGBoost explainability dashboard](https://youtu.be/BvGZTl-UUQY) ### Code - [`custom/dashboard_data_source.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/dashboard_data_source.py): this is used to produce the output needed to generate the SHAP values and chart them. - [SHAP values](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/shap_values.py) - [SHAP values bar chart](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/shap_values_bar.py) - [SHAP values force plot](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/shap_values_force_chart.py) --- ## 3. Model performance dashboard ### Videos 1. [Overview dashboard for entire project](https://youtu.be/ScFZPSaOWK4) 1. [RMSE and MSE using time series chart](https://youtu.be/6kqHoxAL0DY) 1. [RMSE distribution using a histogram](https://youtu.be/GQMgCzI-Qrg) 1. [Training runs by model using bar chart](https://youtu.be/q4Quk6GeVRk) 1. [Training runs by model using pie chart](https://youtu.be/I5qR3OtASXs) ### Code - [Time series RMSE](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/training_metrics__rmse_.py) - [Time series MSE](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/time_series__mse_.py) - [Histogram](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/distribution_of_performance_metrics.py) - [Runs by model](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/charts/total_runs_by_model.py) - [`data.py`](https://github.com/mage-ai/mlops/blob/master/mlops/utils/analytics/data.py) --- ## 4. Alerting ### Videos 1. [Setup email to send alerts](https://youtu.be/DjtE3webtjE) 1. [Setup pipeline alerting](https://youtu.be/H6D7zyqSQMw) ### Code - [Project `metadata.yaml`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/metadata.yaml) --- ## Code 1. [sklearn training pipeline health](https://github.com/mage-ai/mlops/blob/master/mlops/presenters/pipelines/xgboost_training/dashboard/block_layout.yaml) 1. [XGBoost explainability dashboard](https://github.com/mage-ai/mlops/blob/master/mlops/presenters/pipelines/sklearn_training/dashboard/block_layout.yaml) 1. [Model performance dashboard configuration](https://github.com/mage-ai/mlops/blob/master/mlops/presenters/overview/dashboard/block_layout.yaml) --- ## Resources 1. [How to interpret ML models using SHAP values](https://www.mage.ai/blog/how-to-interpret-explain-machine-learning-models-using-shap-values) 1. [Customize dashboards for your project and pipelines](https://docs.mage.ai/visualizations/dashboards) 1. [Confusion matrix](https://www.mage.ai/blog/guide-to-model-metrics-p1-matrix-performance) 1. Set up alerts for pipeline run statuses: 1. [Email](https://docs.mage.ai/integrations/observability/alerting-email) 1. [Opsgenie](https://docs.mage.ai/integrations/observability/alerting-opsgenie) 1. [Slack](https://docs.mage.ai/integrations/observability/alerting-slack) 1. [Teams](https://docs.mage.ai/integrations/observability/alerting-teams) 1. [Discord](https://docs.mage.ai/integrations/observability/alerting-discord) 1. [Telegram](https://docs.mage.ai/integrations/observability/alerting-telegram) ================================================ FILE: cohorts/2024/03-orchestration/3.4/README.md ================================================ # 3.4 Triggering: Inference and retraining ## 1. Retraining pipeline ### Videos 1. [Setup pipeline](https://youtu.be/ywzNac-OzFc) 1. [Trigger pipeline to run](https://youtu.be/6kcBWl3E8So) ### Code - [`detect_new_data.py`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/sensors/detect_new_data.py) - [`custom/retrain/sklearn.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/retrain/sklearn.py): trigger training pipeline for sklearn models - [`custom/retrain/xgboost.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/retrain/xgboost.py): trigger training pipeline for XGBoost model --- ## 2. Inference pipeline ### Videos 1. [Make a prediction](https://youtu.be/KZaS2oG9NDc) 1. [Build pipeline](https://youtu.be/mytcFbH_ooY) 1. [Model inference playground part 1](https://youtu.be/JI0dhR7Bnhk) 1. [Model inference playground part 2](https://youtu.be/v2ls-gBBRac) 1. [Get prediction via API](https://youtu.be/J6ckSZczk8M) ### Code - [`custom/inference.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/inference.py) --- ## Code 1. [Retraining pipeline `metadata.yaml`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/automatic_retraining/metadata.yaml) 1. [Inference pipeline `metadata.yaml`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/predict/metadata.yaml) 1. [Playground configuration settings](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/interactions/playground.yaml) --- ## Resources 1. [No-code UI interactions](https://docs.mage.ai/interactions/overview) 1. [Saving triggers in code](https://docs.mage.ai/orchestration/triggers/configure-triggers-in-code) 1. [Trigger another pipeline from a block](https://docs.mage.ai/orchestration/triggers/trigger-pipeline) 1. [Trigger pipeline via API endpoint](https://docs.mage.ai/orchestration/triggers/trigger-pipeline-api) 1. [Run pipelines on a recurring schedule](https://docs.mage.ai/orchestration/triggers/schedule-pipelines) 1. [Improving model performance through retraining]() ================================================ FILE: cohorts/2024/03-orchestration/3.5/README.md ================================================ # 3.5 Deploying: Running operations in production ## 1. Permissions ### Videos 1. [Configure permissions on AWS](https://youtu.be/TgdFaf4mw38) ### Code - [`custom/permissions.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/permissions.py) --- ## 2. Deploy ### Videos 1. [Setup and deploy using Terraform](https://youtu.be/w9zl3n2a3Wc) ### Code - [`custom/infrastructure_setup.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/infrastructure_setup.py) - [`custom/deploy.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/deploy.py) - [`custom/teardown_deployed_resources.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/teardown_deployed_resources.py) --- ## 3. Continuous deployment and integration ### Videos 1. [CI/CD with GitHub Actions](https://youtu.be/tPkA3WjLSHE) 1. [Mage deployed](https://youtu.be/DMV2zEM50jY) ### Code - [`custom/ci_and_cd.py` block](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/custom/ci_and_cd.py) ## Code 1. [Deployment pipeline `metadata.yaml`](https://github.com/mage-ai/mlops/blob/master/mlops/unit_3_observability/pipelines/deploying_to_production/metadata.yaml) --- ## Resources 1. [Repository setup](https://docs.mage.ai/production/ci-cd/local-cloud/repository-setup) 1. AWS IAM policy permissions 1. [Terraform apply](https://docs.mage.ai/production/deploying-to-cloud/aws/terraform-apply-policy) 1. [Terraform destroy](https://docs.mage.ai/production/deploying-to-cloud/aws/terraform-destroy-policy) 1. [Terraform setup](https://docs.mage.ai/production/deploying-to-cloud/using-terraform) 1. [Configure Terraform for AWS](https://docs.mage.ai/production/deploying-to-cloud/aws/setup) 1. [CI/CD overview](https://docs.mage.ai/production/ci-cd/overview) 1. [Setup GitHub actions for CI/CD](https://docs.mage.ai/production/ci-cd/local-cloud/github-actions#github-actions-setup) ================================================ FILE: cohorts/2024/03-orchestration/README.md ================================================ # 3. Orchestration and ML Pipelines ## [3.0 Introduction: ML pipelines and Mage](3.0/README.md) ## [3.1 Data preparation: ETL and feature engineering](3.1/README.md) ## [3.2 Training: sklearn models and XGBoost](3.2/README.md) ## [3.3 Observability: Monitoring and alerting](3.3/README.md) ## [3.4 Triggering: Inference and retraining](3.4/README.md) ## [3.5 Deploying: Running operations in production](3.5/README.md) ## [3.6 Homework](../cohorts/2024/03-orchestration/homework.md). ## Quickstart See the [Unit 3.0](https://github.com/DataTalksClub/mlops-zoomcamp/blob/main/03-orchestration/3.0/README.md) for a Quick Start guide ## Need help? 1. [Developer documentation](https://docs.mage.ai/introduction/overview) 1. [AI chat bot](https://mageai.slack.com/archives/C05NYC4DADT) 1. Live chat with the [Mage team directly](https://mage.ai/chat) ## Notes Did you take notes? Add them here: * [Marcus' Notes for Ch3](https://github.com/mleiwe/mlops-zoomcamp/blob/Ch3_ML_Notes/cohorts/2024/03-orchestration/ML_Notes.md) * Send a PR, add your notes above this line ### Notes previous editions - [2022 Prefect notes](../cohorts/2022/03-orchestration/README.md) - [2023 Prefect notes](../cohorts/2023/03-orchestration/prefect/README.md) ================================================ FILE: cohorts/2024/03-orchestration/homework.md ================================================ ## Homework Solution: https://www.loom.com/share/802c8c0b843a4d3bbd9dbea240c3593a The goal of this homework is to create a simple training pipeline, use mlflow to track experiments and register best model, but use Mage for it. We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), the **Yellow** taxi data for March, 2023. ## Question 1. Run Mage First, let's run Mage with Docker Compose. Follow the quick start guideline. What's the version of Mage we run? (You can see it in the UI) ## Question 2. Creating a project Now let's create a new project. We can call it "homework_03", for example. How many lines are in the created `metadata.yaml` file? - 35 - 45 - 55 - 65 ## Question 3. Creating a pipeline Let's create an ingestion code block. In this block, we will read the March 2023 Yellow taxi trips data. How many records did we load? - 3,003,766 - 3,203,766 - 3,403,766 - 3,603,766 ## Question 4. Data preparation Let's use the same logic for preparing the data we used previously. We will need to create a transformer code block and put this code there. This is what we used (adjusted for yellow dataset): ```python def read_dataframe(filename): df = pd.read_parquet(filename) df.tpep_dropoff_datetime = pd.to_datetime(df.tpep_dropoff_datetime) df.tpep_pickup_datetime = pd.to_datetime(df.tpep_pickup_datetime) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df.duration = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df ``` Let's adjust it and apply to the data we loaded in question 3. What's the size of the result? - 2,903,766 - 3,103,766 - 3,316,216 - 3,503,766 ## Question 5. Train a model We will now train a linear regression model using the same code as in homework 1. * Fit a dict vectorizer. * Train a linear regression with default parameters. * Use pick up and drop off locations separately, don't create a combination feature. Let's now use it in the pipeline. We will need to create another transformation block, and return both the dict vectorizer and the model. What's the intercept of the model? Hint: print the `intercept_` field in the code block - 21.77 - 24.77 - 27.77 - 31.77 ## Question 6. Register the model The model is trained, so let's save it with MLFlow. If you run mage with docker-compose, stop it with Ctrl+C or ```bash docker-compose down ``` Let's create a dockerfile for mlflow, e.g. `mlflow.dockerfile`: ```dockerfile FROM python:3.10-slim RUN pip install mlflow==2.12.1 EXPOSE 5000 CMD [ \ "mlflow", "server", \ "--backend-store-uri", "sqlite:///home/mlflow_data/mlflow.db", \ "--host", "0.0.0.0", \ "--port", "5000" \ ] ``` And add it to the docker-compose.yaml: ```yaml mlflow: build: context: . dockerfile: mlflow.dockerfile ports: - "5000:5000" volumes: - "${PWD}/mlflow_data:/home/mlflow_data/" networks: - app-network ``` Note that `app-network` is the same network as for mage and postgres containers. If you use a different compose file, adjust it. We should already have `mlflow==2.12.1` in requirements.txt in the mage project we created for the module. If you're starting from scratch, add it to your requirements. Next, start the compose again and create a data exporter block. In the block, we * Log the model (linear regression) * Save and log the artifact (dict vectorizer) If you used the suggested docker-compose snippet, mlflow should be accessible at `http://mlflow:5000`. Find the logged model, and find MLModel file. What's the size of the model? (`model_size_bytes` field): * 14,534 * 9,534 * 4,534 * 1,534 > Note: typically we do last two steps in one code block. ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw3 * If your answer doesn't match options exactly, select the closest one. ================================================ FILE: cohorts/2024/03-orchestration/meta.json ================================================ { "module": { "number": 3, "title": "Orchestration and ML Pipelines" }, "units": [ { "number": 1, "title": "Introdution to Workflow Orchestration", "youtube": "https://www.youtube.com/watch?v=Cqb7wyaNF08" }, { "number": 2, "title": "Introduction to Prefect", "youtube": "https://www.youtube.com/watch?v=rTUBTvXvXvM" }, { "number": 3, "title": "Prefect Workflow", "youtube": "https://www.youtube.com/watch?v=x3bV8yMKjtc" }, { "number": 4, "title": "Deploying Your Workflow", "youtube": "https://www.youtube.com/watch?v=3YjagezFhOo" }, { "number": 5, "title": "Working with Deployments", "youtube": "https://www.youtube.com/watch?v=jVmaaqs63O8" }, { "number": 6, "title": "Prefect Cloud (optional)", "youtube": "https://www.youtube.com/watch?v=y89Ww85EUdo" }, { "number": 7, "title": "Homework", "youtube": "" } ] } ================================================ FILE: cohorts/2024/03-orchestration/requirements.txt ================================================ black==23.3.0 fastparquet==2023.4.0 hyperopt==0.2.7 mlflow==2.3.1 pandas==2.0.1 prefect==2.10.8 prefect-aws==0.3.1 scikit_learn==1.2.2 seaborn==0.12.2 xgboost==1.7.5 orjson==3.8.1 ================================================ FILE: cohorts/2024/04-deployment/homework/starter.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2c51efaa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scikit-learn==1.5.0\n" ] } ], "source": [ "!pip freeze | grep scikit-learn" ] }, { "cell_type": "code", "execution_count": 2, "id": "4acf73a0-51b5-4663-9bb8-8eb947863e17", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.10.13\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": null, "id": "0ef880a0", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": null, "id": "7836ccfd", "metadata": {}, "outputs": [], "source": [ "with open('model.bin', 'rb') as f_in:\n", " dv, model = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": null, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": null, "id": "4854399a", "metadata": {}, "outputs": [], "source": [ "df = read_data('https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_????-??.parquet')" ] }, { "cell_type": "code", "execution_count": null, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "dicts = df[categorical].to_dict(orient='records')\n", "X_val = dv.transform(dicts)\n", "y_pred = model.predict(X_val)" ] }, { "cell_type": "code", "execution_count": null, "id": "bf532ae7-1897-428c-ba0c-875ccaf7d76c", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2024/04-deployment/homework.md ================================================ ## Homework In this homework, we'll deploy the ride duration model in batch mode. Like in homework 1, we'll use the Yellow Taxi Trip Records dataset. You'll find the starter code in the [homework](homework) directory. Solution: [homework_solution/](homework_solution/) ## Q1. Notebook We'll start with the same notebook we ended up with in homework 1. We cleaned it a little bit and kept only the scoring part. You can find the initial notebook [here](homework/starter.ipynb). Run this notebook for the March 2023 data. What's the standard deviation of the predicted duration for this dataset? * 1.24 * 6.24 * 12.28 * 18.28 ## Q2. Preparing the output Like in the course videos, we want to prepare the dataframe with the output. First, let's create an artificial `ride_id` column: ```python df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') ``` Next, write the ride id and the predictions to a dataframe with results. Save it as parquet: ```python df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ``` What's the size of the output file? * 36M * 46M * 56M * 66M __Note:__ Make sure you use the snippet above for saving the file. It should contain only these two columns. For this question, don't change the dtypes of the columns and use `pyarrow`, not `fastparquet`. ## Q3. Creating the scoring script Now let's turn the notebook into a script. Which command you need to execute for that? ## Q4. Virtual environment Now let's put everything into a virtual environment. We'll use pipenv for that. Install all the required libraries. Pay attention to the Scikit-Learn version: it should be the same as in the starter notebook. After installing the libraries, pipenv creates two files: `Pipfile` and `Pipfile.lock`. The `Pipfile.lock` file keeps the hashes of the dependencies we use for the virtual env. What's the first hash for the Scikit-Learn dependency? ## Q5. Parametrize the script Let's now make the script configurable via CLI. We'll create two parameters: year and month. Run the script for April 2023. What's the mean predicted duration? * 7.29 * 14.29 * 21.29 * 28.29 Hint: just add a print statement to your script. ## Q6. Docker container Finally, we'll package the script in the docker container. For that, you'll need to use a base image that we prepared. This is what the content of this image is: ```dockerfile FROM python:3.10.13-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ``` Note: you don't need to run it. We have already done it. It is pushed to [`agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim`](https://hub.docker.com/layers/agrigorev/zoomcamp-model/mlops-2024-3.10.13-slim/images/sha256-f54535b73a8c3ef91967d5588de57d4e251b22addcbbfb6e71304a91c1c7027f?context=repo), which you need to use as your base image. That is, your Dockerfile should start with: ```dockerfile FROM agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim # do stuff here ``` This image already has a pickle file with a dictionary vectorizer and a model. You will need to use them. Important: don't copy the model to the docker image. You will need to use the pickle file already in the image. Now run the script with docker. What's the mean predicted duration for May 2023? * 0.19 * 7.24 * 14.24 * 21.19 ## Bonus: upload the result to the cloud (Not graded) Just printing the mean duration inside the docker image doesn't seem very practical. Typically, after creating the output file, we upload it to the cloud storage. Modify your code to upload the parquet file to S3/GCS/etc. ## Bonus: Use Mage for batch inference Here we didn't use any orchestration. In practice we usually do. * Split the code into logical code blocks * Use Mage to orchestrate the execution ## Publishing the image to dockerhub This is how we published the image to Docker hub: ```bash docker build -t mlops-zoomcamp-model:2024-3.10.13-slim . docker tag mlops-zoomcamp-model:2024-3.10.13-slim agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim docker login --username USERNAME docker push agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim ``` This is just for your reference, you don't need to do it. ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw4 * It's possible that your answers won't match exactly. If it's the case, select the closest one. ================================================ FILE: cohorts/2024/04-deployment/homework_solution/Dockerfile ================================================ FROM python:3.10.13-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ================================================ FILE: cohorts/2024/04-deployment/homework_solution/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.5.0" pandas = "*" pyarrow = "*" [dev-packages] [requires] python_version = "3.10" ================================================ FILE: cohorts/2024/04-deployment/homework_solution/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import os import pickle import pandas as pd year = int(sys.argv[1]) # 2023 month = int(sys.argv[2]) # 4 input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet' MODEL_FILE = os.getenv('MODEL_FILE', 'model.bin') with open(MODEL_FILE, 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PULocationID', 'DOLocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred os.makedirs('output', exist_ok=True) df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ================================================ FILE: cohorts/2024/04-deployment/homework_solution/homework.dockerfile ================================================ FROM agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim RUN pip install -U pip & pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2024/04-deployment/homework_solution/solution.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 2, "id": "960281b9-34a5-40bd-ad56-f6e83aed2882", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd\n", "import sklearn" ] }, { "cell_type": "code", "execution_count": 3, "id": "83d7406e-3be7-4e6b-9c68-da7f67b82647", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'1.5.0'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sklearn.__version__" ] }, { "cell_type": "code", "execution_count": 5, "id": "ef5cbf9e-f962-4d60-8daf-e6f4a791e3bc", "metadata": {}, "outputs": [], "source": [ "year = 2023\n", "month = 3\n", "\n", "input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet'\n", "output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet'" ] }, { "cell_type": "code", "execution_count": 20, "id": "007cfab3-f7a1-4503-88a4-0006162b8d26", "metadata": {}, "outputs": [], "source": [ "!mkdir output" ] }, { "cell_type": "code", "execution_count": 7, "id": "7836ccfd", "metadata": {}, "outputs": [], "source": [ "with open('model.bin', 'rb') as f_in:\n", " dv, lr = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": 8, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 10, "id": "3a1d318c-c4b7-4df8-be68-1ec42d312f22", "metadata": {}, "outputs": [], "source": [ "df = read_data(input_file)\n", "df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str')" ] }, { "cell_type": "code", "execution_count": 11, "id": "9dd40a24-07ce-4863-b4ba-d923de41f9fc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VendorIDtpep_pickup_datetimetpep_dropoff_datetimepassenger_counttrip_distanceRatecodeIDstore_and_fwd_flagPULocationIDDOLocationIDpayment_type...extramta_taxtip_amounttolls_amountimprovement_surchargetotal_amountcongestion_surchargeAirport_feedurationride_id
022023-03-01 00:06:432023-03-01 00:16:431.00.001.0N238422...1.00.50.000.01.011.100.00.0010.0000002023/03_0
122023-03-01 00:08:252023-03-01 00:39:302.012.401.0N1382311...6.00.512.540.01.076.492.51.2531.0833332023/03_1
212023-03-01 00:15:042023-03-01 00:29:260.03.301.0N1401861...3.50.54.650.01.028.052.50.0014.3666672023/03_2
312023-03-01 00:49:372023-03-01 01:01:051.02.901.0N140431...3.50.54.100.01.024.702.50.0011.4666672023/03_3
422023-03-01 00:08:042023-03-01 00:11:061.01.231.0N791371...1.00.52.440.01.014.642.50.003.0333332023/03_4
\n", "

5 rows × 21 columns

\n", "
" ], "text/plain": [ " VendorID tpep_pickup_datetime tpep_dropoff_datetime passenger_count \\\n", "0 2 2023-03-01 00:06:43 2023-03-01 00:16:43 1.0 \n", "1 2 2023-03-01 00:08:25 2023-03-01 00:39:30 2.0 \n", "2 1 2023-03-01 00:15:04 2023-03-01 00:29:26 0.0 \n", "3 1 2023-03-01 00:49:37 2023-03-01 01:01:05 1.0 \n", "4 2 2023-03-01 00:08:04 2023-03-01 00:11:06 1.0 \n", "\n", " trip_distance RatecodeID store_and_fwd_flag PULocationID DOLocationID \\\n", "0 0.00 1.0 N 238 42 \n", "1 12.40 1.0 N 138 231 \n", "2 3.30 1.0 N 140 186 \n", "3 2.90 1.0 N 140 43 \n", "4 1.23 1.0 N 79 137 \n", "\n", " payment_type ... extra mta_tax tip_amount tolls_amount \\\n", "0 2 ... 1.0 0.5 0.00 0.0 \n", "1 1 ... 6.0 0.5 12.54 0.0 \n", "2 1 ... 3.5 0.5 4.65 0.0 \n", "3 1 ... 3.5 0.5 4.10 0.0 \n", "4 1 ... 1.0 0.5 2.44 0.0 \n", "\n", " improvement_surcharge total_amount congestion_surcharge Airport_fee \\\n", "0 1.0 11.10 0.0 0.00 \n", "1 1.0 76.49 2.5 1.25 \n", "2 1.0 28.05 2.5 0.00 \n", "3 1.0 24.70 2.5 0.00 \n", "4 1.0 14.64 2.5 0.00 \n", "\n", " duration ride_id \n", "0 10.000000 2023/03_0 \n", "1 31.083333 2023/03_1 \n", "2 14.366667 2023/03_2 \n", "3 11.466667 2023/03_3 \n", "4 3.033333 2023/03_4 \n", "\n", "[5 rows x 21 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 12, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "dicts = df[categorical].to_dict(orient='records')\n", "X_val = dv.transform(dicts)\n", "y_pred = lr.predict(X_val)" ] }, { "cell_type": "code", "execution_count": 13, "id": "64aadfcb-d82b-4d7b-a40e-c8373d0c3330", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([16.24590642, 26.1347962 , 11.88426424, ..., 11.59533603,\n", " 13.11317847, 12.89999218])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred" ] }, { "cell_type": "markdown", "id": "824811df-af93-476b-8f22-68f878b3ba67", "metadata": {}, "source": [ "### Q1. Standard deviation" ] }, { "cell_type": "code", "execution_count": 17, "id": "d8c487b9-d630-424f-ac3e-7ca31f2bed44", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6.247488852238703" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred.std()" ] }, { "cell_type": "markdown", "id": "079be83b-17bb-4c71-b15f-336673dee2ca", "metadata": {}, "source": [ "### Q2. Preparing the output" ] }, { "cell_type": "code", "execution_count": 18, "id": "92599455-2191-4ed7-afa3-98f510a41e1f", "metadata": {}, "outputs": [], "source": [ "df_result = pd.DataFrame()\n", "df_result['ride_id'] = df['ride_id']\n", "df_result['predicted_duration'] = y_pred" ] }, { "cell_type": "code", "execution_count": 21, "id": "353c91e8-bdf7-4f13-a28b-586fd595d0b3", "metadata": {}, "outputs": [], "source": [ "df_result.to_parquet(\n", " output_file,\n", " engine='pyarrow',\n", " compression=None,\n", " index=False\n", ")" ] }, { "cell_type": "code", "execution_count": 23, "id": "d1b9a4df-ea69-4e7a-a41c-4c19f24820d0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 66M\n", "-rw-rw-rw- 1 codespace codespace 66M Jun 7 19:28 yellow_tripdata_2023-03.parquet\n" ] } ], "source": [ "!ls -lh output" ] }, { "cell_type": "code", "execution_count": null, "id": "982b2006-fd32-440b-a27c-e0f843b53ed1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2024/05-monitoring/homework.md ================================================ ## Homework The goal of this homework is to familiarize users with monitoring for ML batch services, using PostgreSQL database to store metrics and Grafana to visualize them. ## Q1. Prepare the dataset Start with `baseline_model_nyc_taxi_data.ipynb`. Download the March 2024 Green Taxi data. We will use this data to simulate a production usage of a taxi trip duration prediction service. What is the shape of the downloaded data? How many rows are there? * 72044 * 78537 * 57457 * 54396 ## Q2. Metric Let's expand the number of data quality metrics we’d like to monitor! Please add one metric of your choice and a quantile value for the `"fare_amount"` column (`quantile=0.5`). Hint: explore evidently metric `ColumnQuantileMetric` (from `evidently.metrics import ColumnQuantileMetric`) What metric did you choose? ## Q3. Monitoring Let’s start monitoring. Run expanded monitoring for a new batch of data (March 2024). What is the maximum value of metric `quantile = 0.5` on the `"fare_amount"` column during March 2024 (calculated daily)? * 10 * 12.5 * 14.2 * 14.8 ## Q4. Dashboard Finally, let’s add panels with new added metrics to the dashboard. After we customize the dashboard let's save a dashboard config, so that we can access it later. Hint: click on “Save dashboard” to access JSON configuration of the dashboard. This configuration should be saved locally. Where to place a dashboard config file? * `project_folder` (05-monitoring) * `project_folder/config` (05-monitoring/config) * `project_folder/dashboards` (05-monitoring/dashboards) * `project_folder/data` (05-monitoring/data) ## Submit the results * Submit your answers here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw5 ================================================ FILE: cohorts/2024/06-best-practices/homework/Dockerfile ================================================ FROM python:3.10.9-slim RUN pip install -U pip & pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] COPY [ "model.bin", "model.bin" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2024/06-best-practices/homework/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.5.0" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.10" ================================================ FILE: cohorts/2024/06-best-practices/homework/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import pickle import pandas as pd year = int(sys.argv[1]) month = int(sys.argv[2]) input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet' with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PULocationID', 'DOLocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred df_result.to_parquet(output_file, engine='pyarrow', index=False) ================================================ FILE: cohorts/2024/06-best-practices/homework.md ================================================ ## Homework In this homework, we'll take the ride duration prediction model that we deployed in batch mode in homework 4 and improve the reliability of our code with unit and integration tests. You'll find the starter code in the [homework](homework/) directory. ## Q1. Refactoring Before we can start covering our code with tests, we need to refactor it. We'll start by getting rid of all the global variables. * Let's create a function `main` with two parameters: `year` and `month`. * Move all the code (except `read_data`) inside `main` * Make `categorical` a parameter for `read_data` and pass it inside `main` Now we need to create the "main" block from which we'll invoke the main function. How does the `if` statement that we use for this looks like? Hint: after refactoring, check that the code still works. Just run it e.g. for March 2023 and see if it finishes successfully. To make it easier to run it, you can write results to your local filesystem. E.g. here: ```python output_file = f'taxi_type=yellow_year={year:04d}_month={month:02d}.parquet' ``` ## Q2. Installing pytest Now we need to install `pytest`: ```bash pipenv install --dev pytest ``` Next, create a folder `tests` and create two files. One will be the file with tests. We can name it `test_batch.py`. What should be the other file? Hint: to be able to test `batch.py`, we need to be able to import it. Without this other file, we won't be able to do it. ## Q3. Writing first unit test Now let's cover our code with unit tests. We'll start with the pre-processing logic inside `read_data`. It's difficult to test right now because first reads the file and then performs some transformations. We need to split this code into two parts: reading (I/O) and transformation. So let's create a function `prepare_data` that takes in a dataframe (and some other parameters too) and applies some transformation to it. (That's basically the entire `read_data` function after reading the parquet file) Now create a test and use this as input: ```python data = [ (None, None, dt(1, 1), dt(1, 10)), (1, 1, dt(1, 2), dt(1, 10)), (1, None, dt(1, 2, 0), dt(1, 2, 59)), (3, 4, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PULocationID', 'DOLocationID', 'tpep_pickup_datetime', 'tpep_dropoff_datetime'] df = pd.DataFrame(data, columns=columns) ``` Where `dt` is a helper function: ```python from datetime import datetime def dt(hour, minute, second=0): return datetime(2023, 1, 1, hour, minute, second) ``` Define the expected output and use the assert to make sure that the actual dataframe matches the expected one. Tip: When you compare two Pandas DataFrames, the result is also a DataFrame. The same is true for Pandas Series. Also, a DataFrame could be turned into a list of dictionaries. How many rows should be there in the expected dataframe? * 1 * 2 * 3 * 4 ## Q4. Mocking S3 with Localstack Now let's prepare for an integration test. In our script, we write data to S3. So we'll use Localstack to mimic S3. First, let's run Localstack with Docker compose. Let's create a `docker-compose.yaml` file with just one service: localstack. Inside localstack, we're only interested in running S3. Start the service and test it by creating a bucket where we'll keep the output. Let's call it "nyc-duration". With AWS CLI, this is how we create a bucket: ```bash aws s3 mb s3://nyc-duration ``` Then we need to check that the bucket was successfully created. With AWS, this is how we typically do it: ```bash aws s3 ls ``` In both cases we should adjust commands for localstack. What option do we need to use for such purposes? * `--backend-store-uri` * `--profile` * `--endpoint-url` * `--version` ## Make input and output paths configurable Right now the input and output paths are hardcoded, but we want to change it for the tests. One of the possible ways would be to specify `INPUT_FILE_PATTERN` and `OUTPUT_FILE_PATTERN` via the env variables. Let's do that: ```bash export INPUT_FILE_PATTERN="s3://nyc-duration/in/{year:04d}-{month:02d}.parquet" export OUTPUT_FILE_PATTERN="s3://nyc-duration/out/{year:04d}-{month:02d}.parquet" ``` And this is how we can read them: ```python def get_input_path(year, month): default_input_pattern = 'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) # rest of the main function ... ``` ## Reading from Localstack S3 with Pandas So far we've been reading parquet files from S3 with using pandas `read_parquet`. But this way we read it from the actual S3 service. Now we need to replace it with our localstack one. For that, we need to specify the endpoint url: ```python options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet('s3://bucket/file.parquet', storage_options=options) ``` Let's modify our `read_data` function: - check if `S3_ENDPOINT_URL` is set, and if it is, use it for reading - otherwise use the usual way ## Q5. Creating test data Now let's create `integration_test.py` We'll use the dataframe we created in Q3 (the dataframe for the unit test) and save it to S3. You don't need to do anything else: just create a dataframe and save it. We will pretend that this is data for January 2023. Run the `integration_test.py` script. After that, use AWS CLI to verify that the file was created. Use this snipped for saving the file: ```python df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) ``` What's the size of the file? * 3620 * 23620 * 43620 * 63620 Note: it's important to use the code from the snippet for saving the file. Otherwise the size may be different depending on the OS, engine and compression. Even if you use this exact snippet, the size of your dataframe may still be a bit off. Just select the closest option. ## Q6. Finish the integration test We can read from our localstack s3, but we also need to write to it. Create a function `save_data` which works similarly to `read_data`, but we use it for saving a dataframe. Let's run the `batch.py` script for January 2023 (the fake data we created in Q5). We can do that from our integration test in Python: we can use `os.system` for doing that (there are other options too). Now it saves the result to localstack. The only thing we need to do now is to read this data and verify the result is correct. What's the sum of predicted durations for the test dataframe? * 13.08 * 36.28 * 69.28 * 81.08 ## Running the test (ungraded) The rest is ready, but we need to write a shell script for doing that. Let's do that! ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2024/homework/hw6 * It's possible that your answers won't match exactly. If it's the case, select the closest one. ================================================ FILE: cohorts/2024/README.md ================================================ ## MLOps Zoomcamp 2024 Cohort * [Pre-Course Live Q&A](https://www.youtube.com/watch?v=YmllO3ld5LE) * [Course Launch video](https://www.youtube.com/watch?v=2jM7t-NTZxs) and [Slides](https://docs.google.com/presentation/d/1Tp2VVph5_vYIazQ53VR7TYmhJjQg9wuNIKKne3wlZVU/edit?usp=sharing) * [Technical FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit) * TODO: Course Playlist: Only 2024 Live videos & homeworks * [Course management platform](https://courses.datatalks.club/mlops-zoomcamp-2024/) [**Module 1: Introduction**](01-intro) * [Homework](01-intro/homework.md) * [Solution](01-intro/homework.ipynb) [**Module 2: Experiment Tracking**](02-experiment-tracking/) * [Homework](02-experiment-tracking/homework.md) * [Solution](02-experiment-tracking/solution) [**Module 3: Orchestration and ML pipelines**](03-orchestration/) * [Homework](03-orchestration/homework.md) * [Solution](https://www.loom.com/share/802c8c0b843a4d3bbd9dbea240c3593a) [**Module 4: Model Deployment**](04-deployment) * [Homework](04-deployment/homework.md) [**Module 5: Model Monitoring**](05-monitoring/) * [Homework](05-monitoring/homework.md) [**Module 6: Best Practices**](06-best-practices) * [Homework](06-best-practices/homework.md) [**Project**](project.md) * [More information](project.md) ================================================ FILE: cohorts/2024/project.md ================================================ ## Course Project The goal of this project is to apply everything we learned in this course and build an end-to-end machine learning project. Remember that to pass the project, you must evaluate 3 peers. If you don't do that, your project can't be considered compelete. ## Submitting ### Project Attempt #1 * Project: https://courses.datatalks.club/mlops-zoomcamp-2024/project/project1 * Review: https://courses.datatalks.club/mlops-zoomcamp-2024/project/project1/eval ### Project Attempt #2 * Project: https://courses.datatalks.club/mlops-zoomcamp-2024/project/project2 * Review: https://courses.datatalks.club/mlops-zoomcamp-2024/project/project2/eval > **Important**: update your "Certificate name" here: https://courses.datatalks.club/mlops-zoomcamp-2024/enrollment - this is what we will use when generating certificates for you. ## Evaluation criteria See [here](../../../07-project/README.md) ================================================ FILE: cohorts/2025/01-intro/homework.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "bb4186e3-94cf-4bce-b36b-71e89b732710", "metadata": { "id": "bb4186e3-94cf-4bce-b36b-71e89b732710" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\alexe\\anaconda3\\lib\\site-packages\\scipy\\__init__.py:155: UserWarning: A NumPy version >=1.18.5 and <1.25.0 is required for this version of SciPy (detected version 1.26.2\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" ] } ], "source": [ "import pandas as pd\n", "\n", "from sklearn.feature_extraction import DictVectorizer\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_squared_error\n", "\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "id": "97yfKrCqBVSc", "metadata": { "id": "97yfKrCqBVSc" }, "source": [ "### Q1. Downloading the data\n", "\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "cbe379c6-5a79-491b-af10-c85039a1d13c", "metadata": { "id": "cbe379c6-5a79-491b-af10-c85039a1d13c" }, "outputs": [], "source": [ "df = pd.read_parquet('https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2023-01.parquet')" ] }, { "cell_type": "code", "execution_count": 5, "id": "6635ef08-4a6d-43f4-9b36-26c728aec8be", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 270 }, "id": "6635ef08-4a6d-43f4-9b36-26c728aec8be", "outputId": "17104c4c-3224-4dfc-eb71-d1e33d671148" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VendorIDtpep_pickup_datetimetpep_dropoff_datetimepassenger_counttrip_distanceRatecodeIDstore_and_fwd_flagPULocationIDDOLocationIDpayment_typefare_amountextramta_taxtip_amounttolls_amountimprovement_surchargetotal_amountcongestion_surchargeairport_fee
022023-01-01 00:32:102023-01-01 00:40:361.00.971.0N16114129.31.000.50.000.01.014.302.50.00
122023-01-01 00:55:082023-01-01 01:01:271.01.101.0N4323717.91.000.54.000.01.016.902.50.00
222023-01-01 00:25:042023-01-01 00:37:491.02.511.0N48238114.91.000.515.000.01.034.902.50.00
312023-01-01 00:03:482023-01-01 00:13:250.01.901.0N1387112.17.250.50.000.01.020.850.01.25
422023-01-01 00:10:292023-01-01 00:21:191.01.431.0N10779111.41.000.53.280.01.019.682.50.00
\n", "
" ], "text/plain": [ " VendorID tpep_pickup_datetime tpep_dropoff_datetime passenger_count \\\n", "0 2 2023-01-01 00:32:10 2023-01-01 00:40:36 1.0 \n", "1 2 2023-01-01 00:55:08 2023-01-01 01:01:27 1.0 \n", "2 2 2023-01-01 00:25:04 2023-01-01 00:37:49 1.0 \n", "3 1 2023-01-01 00:03:48 2023-01-01 00:13:25 0.0 \n", "4 2 2023-01-01 00:10:29 2023-01-01 00:21:19 1.0 \n", "\n", " trip_distance RatecodeID store_and_fwd_flag PULocationID DOLocationID \\\n", "0 0.97 1.0 N 161 141 \n", "1 1.10 1.0 N 43 237 \n", "2 2.51 1.0 N 48 238 \n", "3 1.90 1.0 N 138 7 \n", "4 1.43 1.0 N 107 79 \n", "\n", " payment_type fare_amount extra mta_tax tip_amount tolls_amount \\\n", "0 2 9.3 1.00 0.5 0.00 0.0 \n", "1 1 7.9 1.00 0.5 4.00 0.0 \n", "2 1 14.9 1.00 0.5 15.00 0.0 \n", "3 1 12.1 7.25 0.5 0.00 0.0 \n", "4 1 11.4 1.00 0.5 3.28 0.0 \n", "\n", " improvement_surcharge total_amount congestion_surcharge airport_fee \n", "0 1.0 14.30 2.5 0.00 \n", "1 1.0 16.90 2.5 0.00 \n", "2 1.0 34.90 2.5 0.00 \n", "3 1.0 20.85 0.0 1.25 \n", "4 1.0 19.68 2.5 0.00 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 6, "id": "f055344d-f050-4fcf-8453-ee4a66407bfe", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "f055344d-f050-4fcf-8453-ee4a66407bfe", "outputId": "68b659fe-15ba-468b-9f87-41122d66ba85" }, "outputs": [ { "data": { "text/plain": [ "19" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df.columns)" ] }, { "cell_type": "markdown", "id": "pWrLGUESBed6", "metadata": { "id": "pWrLGUESBed6" }, "source": [ "### Q2. Computing duration" ] }, { "cell_type": "code", "execution_count": 7, "id": "b186962d-7ee1-4b97-a457-7ef2b2de811a", "metadata": { "id": "b186962d-7ee1-4b97-a457-7ef2b2de811a" }, "outputs": [], "source": [ "df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", "df['duration'] = df.duration.dt.total_seconds() / 60" ] }, { "cell_type": "code", "execution_count": 8, "id": "0e3e89da-45a3-4b12-99bb-8b56457cfa5a", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0e3e89da-45a3-4b12-99bb-8b56457cfa5a", "outputId": "289c84a9-b93f-4400-edd9-300dada8dec0" }, "outputs": [ { "data": { "text/plain": [ "15.668995167332046" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.duration.mean()" ] }, { "cell_type": "code", "execution_count": 10, "id": "9da88772-b29c-4c46-8859-7c28ac2be021", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "9da88772-b29c-4c46-8859-7c28ac2be021", "outputId": "d8bc9a61-e953-400a-98a5-9613b8bc7021", "tags": [] }, "outputs": [ { "data": { "text/plain": [ "42.594351241920904" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.duration.std()" ] }, { "cell_type": "markdown", "id": "ca0c395a-d5cf-4870-aa64-edb4809bc662", "metadata": { "id": "ca0c395a-d5cf-4870-aa64-edb4809bc662" }, "source": [ "### Q3. Dropping outliers" ] }, { "cell_type": "code", "execution_count": 11, "id": "a06d9882-82bc-40eb-954e-ebabde6e5431", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "a06d9882-82bc-40eb-954e-ebabde6e5431", "outputId": "b318ae8f-3d3c-4115-8111-9415bd7def9b" }, "outputs": [ { "data": { "text/plain": [ "98.1220282212598" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df[(df.duration >= 1) & (df.duration <= 60)]) / len(df) * 100" ] }, { "cell_type": "code", "execution_count": 12, "id": "0fd4307e-f3b6-45ba-bf1d-82e4a1c09a9b", "metadata": { "id": "0fd4307e-f3b6-45ba-bf1d-82e4a1c09a9b" }, "outputs": [], "source": [ "df = df[(df.duration >= 1) & (df.duration <= 60)].copy()" ] }, { "cell_type": "markdown", "id": "00b428a6-3438-4482-91fb-04ed17f5fe8d", "metadata": { "id": "00b428a6-3438-4482-91fb-04ed17f5fe8d" }, "source": [ "### Q4. One-hot encoding" ] }, { "cell_type": "code", "execution_count": 13, "id": "96043224-1a51-4922-901c-c660b0bc8a5b", "metadata": { "id": "96043224-1a51-4922-901c-c660b0bc8a5b" }, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']" ] }, { "cell_type": "code", "execution_count": 14, "id": "8853a0e2-7d3f-46e6-a45d-eeadc7c65bd1", "metadata": { "id": "8853a0e2-7d3f-46e6-a45d-eeadc7c65bd1" }, "outputs": [], "source": [ "df[categorical] = df[categorical].astype(str)" ] }, { "cell_type": "code", "execution_count": 15, "id": "3bb3cef4-bb13-4b20-a1ba-0c23b27062de", "metadata": { "id": "3bb3cef4-bb13-4b20-a1ba-0c23b27062de" }, "outputs": [], "source": [ "train_dicts = df[categorical].to_dict(orient='records')" ] }, { "cell_type": "code", "execution_count": 16, "id": "f89a6a92-bc5b-4aac-9366-aa9ea7029df6", "metadata": { "id": "f89a6a92-bc5b-4aac-9366-aa9ea7029df6" }, "outputs": [], "source": [ "dv = DictVectorizer()\n", "X_train = dv.fit_transform(train_dicts)" ] }, { "cell_type": "code", "execution_count": 17, "id": "bfb1d21f-23e8-411d-b70d-748b9b672efb", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "bfb1d21f-23e8-411d-b70d-748b9b672efb", "outputId": "46aafa55-2e06-4f5b-b0cf-a14353d3dd95" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Feature matrix size: (3009173, 515)\n" ] } ], "source": [ "print(f'Feature matrix size: {X_train.shape}')" ] }, { "cell_type": "markdown", "id": "bb9c2670-07b9-4813-9798-d367fc6535fe", "metadata": { "id": "bb9c2670-07b9-4813-9798-d367fc6535fe" }, "source": [ "### Q5. Training a model" ] }, { "cell_type": "code", "execution_count": 18, "id": "098c5ff8-8e41-41a6-a7cd-760f9c79c1f9", "metadata": { "id": "098c5ff8-8e41-41a6-a7cd-760f9c79c1f9" }, "outputs": [], "source": [ "target = 'duration'\n", "y_train = df[target].values" ] }, { "cell_type": "code", "execution_count": 19, "id": "986fd495-62f8-455c-a652-946f144c5832", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "986fd495-62f8-455c-a652-946f144c5832", "outputId": "f71a2119-1f4f-4d05-d60c-ad6dbd72b6c4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train RMSE: 7.64926195987998\n" ] } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train, y_train)\n", "\n", "y_pred = lr.predict(X_train)\n", "\n", "print(f'Train RMSE: {mean_squared_error(y_train, y_pred, squared=False)}')" ] }, { "cell_type": "code", "execution_count": 20, "id": "87051e49-1293-4e56-bda8-38e4f206e0ed", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "id": "87051e49-1293-4e56-bda8-38e4f206e0ed", "outputId": "fb12601f-650e-421b-e120-a8a3236f37aa" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAGdCAYAAAAPLEfqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPp0lEQVR4nO3deXxU1d0/8M+dNQvJEAJJSAGNQhEMWAsWAS0qGrCApbYVxUaoCih7gZetVVvoqwKPC6AgiLigFYl9fi4PVo0JgiiyCKlRtiKFsIgJk0BIMjPJzOTe8/tjMjczmUmYJJPM9nn7SkvuPTNzTgKZT84593slIYQAEREREbVIE+oOEBEREUUChiYiIiKiADA0EREREQWAoYmIiIgoAAxNRERERAFgaCIiIiIKAEMTERERUQAYmoiIiIgCoAt1B6KJoij44YcfkJSUBEmSQt0dIiIiCoAQAjU1NcjMzIRG0/x8EkNTEP3www/o3bt3qLtBREREbXDmzBn06tWr2fMMTUGUlJQEwPVFT05ODnFviIiIKBDV1dXo3bu3+j7eHIamIHIvySUnJzM0ERERRZhLba3hRnAiIiKiADA0EREREQWAoYmIiIgoANzTRERE5EEIgfr6esiyHOquUJBotVrodLp2lwNiaCIiImrgcDhQWloKm80W6q5QkCUkJKBnz54wGAxtfg6GJiIiIrgKFJeUlECr1SIzMxMGg4GFiqOAEAIOhwPl5eUoKSlBv379Wixg2RKGJiIiIrhmmRRFQe/evZGQkBDq7lAQxcfHQ6/X49SpU3A4HIiLi2vT83AjOBERkYe2zkJQeAvG95V/M4iIiIgCwNBERETUDCEEZFnu1A8hRKiH3aLLL78cq1atUj+XJAnvv/9+u54zGM/RGbiniYiIqBmKouDu9V9C6qQlO6EoyJsxElqttlNeLxhKS0uRkpISUNvFixfj/fffR3FxcZufI5QYmoiIiFogaTTQaDonxCid8iquTe/tufTeU0ZGRlg8R2fg8hwREVGEu+mmmzB79mzMnj0bXbt2RWpqKh5//HF1qe/yyy/H3//+d0ydOhUmkwnTpk0DAOzatQs///nPER8fj969e2Pu3LmwWq3q85rNZkyYMAHx8fHIysrCpk2bfF676dLa999/j7vvvhvdunVDYmIihg4dir1792Ljxo1YsmQJvvnmG0iSBEmSsHHjRr/PceDAAdxyyy2Ij49Hamoqpk+fDovFop6fOnUqJk6ciGeeeQY9e/ZEamoqZs2aBafTGcSvqi+GJiIioijw+uuvQ6fTYe/evXj++eexcuVKvPzyy+r5p59+GtnZ2SgqKsITTzyBAwcOYMyYMbjzzjvx7bff4u2338bOnTsxe/Zs9TFTp07FyZMnsW3bNvy///f/sHbtWpjN5mb7YLFYMGrUKPzwww/YsmULvvnmGzzyyCNQFAWTJk3CwoULcfXVV6O0tBSlpaWYNGmSz3PYbDaMHTsWKSkp2LdvH/73f/8XW7du9eoXAGzfvh3Hjx/H9u3b8frrr2Pjxo1qCOsoXJ4jijLuWz9E0p4IImq/3r17Y+XKlZAkCf3798eBAwewcuVKdVbplltuwaJFi9T29913HyZPnoz58+cDAPr164fnn38eo0aNwrp163D69Gl8/PHH2LNnD4YNGwYAeOWVVzBgwIBm+/DWW2+hvLwc+/btQ7du3QAAffv2Vc936dIFOp2uxeW4TZs2oba2Fm+88QYSExMBAGvWrMGECRPwP//zP0hPTwcApKSkYM2aNdBqtbjqqqswbtw4fPrpp+p4OwJnmoiIiKLA9ddf71XBfPjw4Th27Jj6i9TQoUO92hcVFWHjxo3o0qWL+jFmzBi1MvqRI0eg0+m8HnfVVVeha9euzfahuLgY1157rRqY2uLIkSO45ppr1MAEACNHjoSiKDh69Kh67Oqrr/b65bBnz54tzoIFA2eaiIiIYoBnCAFcVwbOmDEDc+fO9Wnbp08fNaC05lYy8fHx7eskXGUemntNz+N6vd7nnKJ07FZ6zjQRERFFgT179vh83q9fv2aX6n/605/i0KFD6Nu3r8+HwWDAgAEDUF9fj/3796uPOXr0KC5evNhsHwYPHozi4mJcuHDB73mDwaDOfDVn4MCBKC4u9tqQ/uWXX0Kj0eDHP/5xi4/taAxNREREUeDMmTNYsGABjh49is2bN2P16tWYN29es+3/+Mc/Yvfu3Zg1axaKi4tx7NgxbNmyBXPmzAEA9O/fH2PHjsW0adOwd+9eFBUV4cEHH2xxNumee+5BRkYGJk6ciC+//BInTpzAO++8g927dwNwXcVXUlKC4uJiVFRUwG63+zzHvffei7i4OEyZMgUHDx7E9u3bMWfOHOTm5qr7mUKFoYmIiKgFQlGgKHKnfIh2LC/dd999qK2txc9+9jPMmjULc+bMwfTp05ttP3jwYOzYsQPHjh3DjTfeiGuvvRZPPPEEevbsqbZ57bXX0Lt3b4waNQp33nknpk+fjrS0tGaf02AwoKCgAGlpafjFL36BQYMGYfny5eps169//WuMHTsWN998M3r06IHNmzf7PEdCQgI++eQTXLhwAddddx1+85vfYPTo0VizZk2bvzbBIolwr9ceQaqrq2EymVBVVYXk5ORQd4diFK+eI2qburo6lJSUICsrC3FxcQBc+2s6ep9MUxqNplX7iABXnaaf/OQnXrc3IW/+vr9ugb5/cyM4ERFRMyRJ4i8gpOLyHFEUcN/ok4iIOg5nmoiIiCLcZ599FuouxATONBEREREFgKGJiIiIKAAMTUREREQBYGgiIiIiCgBDExEREVEAGJqIiIiIAsCSA0RERM0QQsBms3XqayYkJLS6Ini4mjp1Ki5evIj3338/1F0JCoYmIiKiZthsNty77jPojM3fpDaY6u212PTwTUhMTOyU1wOAxYsX4/3330dxcXGnvWakYmgiIiJqgc4Y32mhicIb9zQRRSAhBGRZBu+3TUQAkJ+fjxtuuAFdu3ZFamoqxo8fj+PHj6vnv//+e9x9993o1q0bEhMTMXToUOzduxcbN27EkiVL8M0330CSJEiShI0bN+LkyZOQJMlr9unixYuQJEmtPi7LMh544AFkZWUhPj4e/fv3x3PPPdfJI+9cnGkiikCKomDSui/w9sM38maiRASr1YoFCxZg0KBBsFqt+Mtf/oJf/epXKC4uhs1mw6hRo/CjH/0IW7ZsQUZGBv7973+7fo5MmoSDBw8iPz8fW7duBQCYTCacO3fukq+pKAp69eqFf/7zn+jevTt27dqF6dOno2fPnrjrrrs6esghwdBEFKEkjWui2D3rpNFw4pgoVv3617/2+vyVV15BWloaDh8+jF27dqG8vBz79u1Dt27dAAB9+/ZV23bp0gU6nQ4ZGRmtek29Xo8lS5aon2dlZWHXrl345z//GbWhiT9liSKcoii458UvoChKqLtCRCFy/PhxTJ48GVdccQWSk5ORlZUFADh9+jSKi4tx7bXXqoEpmF588UUMHToUPXr0QJcuXbBhwwacPn066K8TLhiaiKKAxFkmopg2YcIEnD9/Hhs2bMDevXuxd+9eAIDD4UB8fOs3sWs8ZrLdnE6nV5t//vOf+MMf/oD7778fBQUFKC4uxu9//3s4HI52jCS88SctUYRzbQgPdS+IKFTOnz+PI0eO4PHHH8fo0aMxYMAAVFZWqucHDx6M4uJiXLhwwe/jDQYDZFn2OtajRw8AQGlpqXqsaUmCL774AiNGjMDMmTNx7bXXom/fvl6bz6MRQxMREVEES0lJQWpqKl566SX897//xbZt27BgwQL1/D333IOMjAxMnDgRX375JU6cOIF33nkHu3fvBgBcfvnlKCkpQXFxMSoqKmC32xEfH4/rr78ey5cvx+HDh/H555/j8ccf93rdvn37Yv/+/fjkk0/w3Xff4YknnsC+ffs6deydjaGJiIioBfX22k79aC2NRoO8vDwUFRUhOzsbf/jDH/D000+r5w0GAwoKCpCWloZf/OIXGDRoEJYvX65eefvrX/8aY8eOxc0334wePXpg8+bNAIBXX30VTqcTQ4cOxbx58/D3v//d63Ufeugh3HnnnZg0aRKGDRuG8+fPY+bMme34Soc/SbDQS9BUV1fDZDKhqqoKycnJoe4ORTFZlnH3+i+RN2MkZFnGPeu/xOYZI72m2VmKgKh16urqUFJSgqysLMTFxQHgbVSiib/vr1ug798sOUAURWRZhizLDExEQSJJUqfe0oTCG5fniIiIiALA0EREREQUAIYmIiIiogAwNBEREREFgKGJKIq4N4ITUdvxovLoFIzvK0MTERERXDegBdDpJQaoc7i/r+7vc1uw5AARERFctc26du0Ks9kMgPWSooW71pbZbEbXrl3bVZKFoYmIiKhBRkYGAKjBiaJH165d1e9vW4VNaFq2bBn+/Oc/Y968eVi1ahUAVzpcsmQJXnrpJVRWVmLYsGF44YUXcPXVV6uPs9vtWLRoETZv3oza2lqMHj0aa9euRa9evdQ2lZWVmDt3LrZs2QIAuOOOO7B69Wp07dpVbXP69GnMmjUL27ZtQ3x8PCZPnoxnnnkGBoOhU8ZPREShJ0kSevbsibS0NDidzlB3h4JEr9cHpehvWISmffv24aWXXsLgwYO9jj/11FNYsWIFNm7ciB//+Mf4+9//jttuuw1Hjx5FUlISAGD+/Pn44IMPkJeXh9TUVCxcuBDjx49HUVGR+gWaPHkyvv/+e+Tn5wMApk+fjtzcXHzwwQcAXJtnx40bhx49emDnzp04f/48pkyZAiEEVq9e3YlfCSIiCgdarZaV9cmXCLGamhrRr18/UVhYKEaNGiXmzZsnhBBCURSRkZEhli9frratq6sTJpNJvPjii0IIIS5evCj0er3Iy8tT25w9e1ZoNBqRn58vhBDi8OHDAoDYs2eP2mb37t0CgPjPf/4jhBDio48+EhqNRpw9e1Zts3nzZmE0GkVVVVXAY6mqqhIAWvUYoraor68Xv3lhh6ivrxd2u13c+fw2Ybfbhd1uFzabTdTX14e6i0REESPQ9++QXz03a9YsjBs3DrfeeqvX8ZKSEpSVlSEnJ0c9ZjQaMWrUKOzatQsAUFRUBKfT6dUmMzMT2dnZapvdu3fDZDJh2LBhapvrr78eJpPJq012djYyMzPVNmPGjIHdbkdRUVGzfbfb7aiurvb6ICIiougU0uW5vLw8FBUVYf/+/T7nysrKAADp6elex9PT03Hq1Cm1jcFgQEpKik8b9+PLysqQlpbm8/xpaWlebZq+TkpKCgwGg9rGn2XLlmHJkiWXGiYRERFFgZDNNJ05cwbz5s3Dpk2bEBcX12y7ppd7CiEueQlo0zb+2relTVOPPvooqqqq1I8zZ8602C8iIiKKXCELTUVFRTCbzRgyZAh0Oh10Oh127NiB559/HjqdTp35aTrTYzab1XMZGRlwOByorKxssc25c+d8Xr+8vNyrTdPXqayshNPp9JmB8mQ0GpGcnOz1QURERNEpZKFp9OjROHDgAIqLi9WPoUOH4t5770VxcTGuuOIKZGRkoLCwUH2Mw+HAjh07MGLECADAkCFDoNfrvdqUlpbi4MGDapvhw4ejqqoKX331ldpm7969qKqq8mpz8OBBlJaWqm0KCgpgNBoxZMiQDv06EBERUWQI2Z6mpKQkZGdnex1LTExEamqqenz+/PlYunQp+vXrh379+mHp0qVISEjA5MmTAQAmkwkPPPAAFi5ciNTUVHTr1g2LFi3CoEGD1I3lAwYMwNixYzFt2jSsX78egKvkwPjx49G/f38AQE5ODgYOHIjc3Fw8/fTTuHDhAhYtWoRp06Zx9oiIiIgAhEmdpuY88sgjqK2txcyZM9XilgUFBWqNJgBYuXIldDod7rrrLrW45caNG73qa2zatAlz585Vr7K74447sGbNGvW8VqvFhx9+iJkzZ2LkyJFexS2JiIiIAEASgrdzDpbq6mqYTCZUVVVxhoo6lCzLuHv9l8ibMRKyLOOe9V9i84yR6jmDwcDCfEREAQr0/TvkdZqIqO1kWYYsy6HuBhFRTGBoIiIiIgoAQxMRERFRABiaiIiIiALA0EREREQUAIYmIiIiogAwNBEREREFgKGJiIiIKAAMTUREREQBYGgiIiIiCgBDExEREVEAwvqGvUQUON5OhYioY3GmiYiIiCgADE1EREREAWBoIiIiIgoA9zQRRRDuWyIiCh3ONBEREREFgKGJiIiIKAAMTUREREQBYGgiIiIiCgBDE1EUEIrMTeJERB2MoYmIiIgoAAxNRBFIlmUIEepeEBHFFoYmIiIiogAwNBEREREFgKGJiIiIKAAMTUREREQBYGgiIiIiCgBDE1GUkGXWaiIi6kgMTUREREQBYGgiIiIiCgBDE1GE4q1TiIg6F0MTERERUQAYmogilBCi4XYqvJ8KEVFnYGgiilRCwX0v74GiKKHuCRFRTGBoIopgkob/hImIOgt/4hJFIdZsIiIKPoYmIiIiogAwNBEREREFgKGJKAqwZhMRUcdjaCKKQixHQEQUfAxNRFFIURTcs34XyxEQEQURQxNRlGI5AiKi4OJPVaIo0dKSHEsQEBG1H0MTUZRQFAVTX2GFcCKijsLQRBRFuCRHRNRx+BOWiIiIKAAMTUREREQBYGgiilIseElEFFwMTUREREQBYGgiIiIiCgBDExEREVEAGJqIiIiIAsDQRERERBQAhiYiIiKiADA0EREREQWAoYmIiIgoAAxNRERERAFgaCKKcLIsA0KEuhtERFGPoYmIiIgoAAxNRFGK954jIgouhiaiTmC1WmG1WkPdDSIiageGJiIiIqIAMDQRERERBYChiSiKcB8TEVHHYWgiIiIiCgBDE1EE48wSEVHnCWloWrduHQYPHozk5GQkJydj+PDh+Pjjj9XzQggsXrwYmZmZiI+Px0033YRDhw55PYfdbsecOXPQvXt3JCYm4o477sD333/v1aayshK5ubkwmUwwmUzIzc3FxYsXvdqcPn0aEyZMQGJiIrp37465c+fC4XB02NiJiIgosoQ0NPXq1QvLly/H/v37sX//ftxyyy345S9/qQajp556CitWrMCaNWuwb98+ZGRk4LbbbkNNTY36HPPnz8d7772HvLw87Ny5ExaLBePHj/f67Xvy5MkoLi5Gfn4+8vPzUVxcjNzcXPW8LMsYN24crFYrdu7ciby8PLzzzjtYuHBh530xiIJEljn7RETUIUSYSUlJES+//LJQFEVkZGSI5cuXq+fq6uqEyWQSL774ohBCiIsXLwq9Xi/y8vLUNmfPnhUajUbk5+cLIYQ4fPiwACD27Nmjttm9e7cAIP7zn/8IIYT46KOPhEajEWfPnlXbbN68WRiNRlFVVRVw36uqqgSAVj2GYoPFYhEWi6XZ84qiCIvFIhRFafF56uvrRX19vbDb7eJXqwrFr1YWiPPnz4uJz34szGazmPjsx+L8+fOipqZG/GpVobDZbF6PIyIiX4G+f4fNniZZlpGXlwer1Yrhw4ejpKQEZWVlyMnJUdsYjUaMGjUKu3btAgAUFRXB6XR6tcnMzER2drbaZvfu3TCZTBg2bJja5vrrr4fJZPJqk52djczMTLXNmDFjYLfbUVRU1Gyf7XY7qqurvT6I2sJms2HSc/mw2WwBP0YoMgDec46IqLOEPDQdOHAAXbp0gdFoxEMPPYT33nsPAwcORFlZGQAgPT3dq316erp6rqysDAaDASkpKS22SUtL83ndtLQ0rzZNXyclJQUGg0Ft48+yZcvUfVImkwm9e/du5eiJGukMcW16nGspjuGJiKijhTw09e/fH8XFxdizZw8efvhhTJkyBYcPH1bPS5Lk1V4I4XOsqaZt/LVvS5umHn30UVRVVakfZ86cabFfREREFLlCHpoMBgP69u2LoUOHYtmyZbjmmmvw3HPPISMjAwB8ZnrMZrM6K5SRkQGHw4HKysoW25w7d87ndcvLy73aNH2dyspKOJ1OnxkoT0ajUb3yz/1BRERE0SnkoakpIQTsdjuysrKQkZGBwsJC9ZzD4cCOHTswYsQIAMCQIUOg1+u92pSWluLgwYNqm+HDh6OqqgpfffWV2mbv3r2oqqryanPw4EGUlpaqbQoKCmA0GjFkyJAOHS8RERFFBl0oX/zPf/4zbr/9dvTu3Rs1NTXIy8vDZ599hvz8fEiShPnz52Pp0qXo168f+vXrh6VLlyIhIQGTJ08GAJhMJjzwwANYuHAhUlNT0a1bNyxatAiDBg3CrbfeCgAYMGAAxo4di2nTpmH9+vUAgOnTp2P8+PHo378/ACAnJwcDBw5Ebm4unn76aVy4cAGLFi3CtGnTOHtEREREAEIcms6dO4fc3FyUlpbCZDJh8ODByM/Px2233QYAeOSRR1BbW4uZM2eisrISw4YNQ0FBAZKSktTnWLlyJXQ6He666y7U1tZi9OjR2LhxI7Rardpm06ZNmDt3rnqV3R133IE1a9ao57VaLT788EPMnDkTI0eORHx8PCZPnoxnnnmmk74SRMEhhIAsyxBCsFo4EVGQhTQ0vfLKKy2elyQJixcvxuLFi5ttExcXh9WrV2P16tXNtunWrRvefPPNFl+rT58++Ne//tViG6JQEUJAUZRLXwghFDz4+j68dv/14BV1RETBFXZ7mojIl6IomLTuCyiKcsm2kgQ8sPErZiYioiBjaCKKFJIEq9UKIS6dhiSN6582b6lCRBQ8DE1E7SSECDjMtIfsqMPvXvi0VVXDiYgoeBiaiNqpLbdAaSudIb7DX4OIiPxjaCIKgkBvgdJZs1JERBR8DE1EnSjYs1KBlBXgviYiouBgaCLqZG29MS8REYVWSOs0EcUy91IdERFFBoYmog4khIDNZlP3MLn/7N7X9Jtn/g8arQEbZ4wKcU+JiOhSuDxH1IFsNhvuWvUxzGYzzGYz7ltbCIe9DlPX74DNZoPOEAetkVfEERFFAs40EXUwSZIwbf02SFo99AmJAACNIY5Lc0REEYYzTUQdxHPPksYYB62xcQO47LRjxqs7ISu+pQdYloCIKDwxNBF1ACEEysvLcd/aQr/BCIC6LFfvqPOaderMYplERBQ4hiaiIHHPECmKogYmSWcM6HFNAxLLEhARhR+GJqIgcW/6PnXqVMCBCXAt1c3btB/1shK0ZTmhyAC4vEdEFEwMTURBJEkSZry6M+DA5KY1xkF22tWr6gIhFJn7noiIOhFDE1GQtaeEAK+qIyIKXwxNRGHE86o6XkVHRBReGJqIgiCYt0Rxz1TxKjoiovDC0EQUBC3VXWqPtl5Fx/1ORETBx9BEFCTBvB0Kb+ZLRBR+GJqIgqDeUQdFloP2fO6Zq2CUIZBlGXIQ+0ZEFKsYmojClNYY3+oyBERE1HHaFJquuOIKnD9/3uf4xYsXccUVV7S7U0TUSEgSl+qIiMJAm0LTyZMn/U732+12nD17tt2dIiIiIgo3utY03rJli/rnTz75BCaTSf1clmV8+umnuPzyy4PWOaJwxw3bRESxo1WhaeLEiQBct4qYMmWK1zm9Xo/LL78czz77bNA6RxTubDYb7ltbCFkR0Gg75jXcwcxZVwuNVt8xL0JERJfUqtCkKAoAICsrC/v27UP37t07pFNEkURniINcV9thz+++ku7U+VpcdcWPOux1iIioZa0KTW4lJSXB7gdRxOnMpTmdMQ4ag3LJdkIIyA47tHo9JKkTOkZEFEPaFJoA4NNPP8Wnn34Ks9mszkC5vfrqq+3uGFG4cy/NSTpjp76u5z3ppCbJSHba8d0PF/HjTBN0xoRO7RcRUbRrU2hasmQJ/va3v2Ho0KHo2bOnzw9uolihM8QF/dYpLRFCoKKiAnM3fw1Jo4HO6HubFU0bb70SyGsrigKNRsN/80QUk9oUml588UVs3LgRubm5we4PEbVAdtrx8GtfwpDUFZDrA36cEAKyLLcr8CiKgknrvsDbD98IrbaDdr0TEYWxNtVpcjgcGDFiRLD7QkQBaMs97hRFwT3rd/kspbeWpOFNBIgodrXpJ+CDDz6It956K9h9IYoYkVifiYGHiKh92rQ8V1dXh5deeglbt27F4MGDodd7145ZsWJFUDpHFK5CtQmciIhCp02h6dtvv8VPfvITAMDBgwe9znGDKMWKzt4E7kkIgXp7LQRcM1719rqQ9IOIKJa0KTRt37492P0golaQnXb8t7QSGr0RtbUdV1iTiIgatblOExGFlkYfB42ey4NERJ2lTaHp5ptvbnEZbtu2bW3uEBG1jSzLAFpeLnS1AUsGEBG1QZtCk3s/k5vT6URxcTEOHjzocyNfomgTTlfOCSFgs9kgRGj2VhERxZI2haaVK1f6Pb548WJYLJZ2dYgo3IXTlXOi3oE/vXsQxvjW124iIqLWCWrhlt/97ne87xzFBF0H3aqkLbRh1BciomgW1NC0e/duxMXxBzhFr3BamiMios7VpuW5O++80+tzIQRKS0uxf/9+PPHEE0HpGFE4CvXSnBACkHyP1Tvs3NdERNTB2hSaTCaT1+cajQb9+/fH3/72N+Tk5ASlY0ThKpRFLf1RnHacqnLi/PnzDE5ERB2oTaHptddeC3Y/iMJeyJbmhLhkGJIkCX/457fQahT4TEUREVFQtKu4ZVFREY4cOQJJkjBw4EBce+21weoXUdgJ9dLcpegMcRD1Nr/nZFkGOAtFRNQubQpNZrMZd999Nz777DN07doVQghUVVXh5ptvRl5eHnr06BHsfhKFhXBYmmtu1sm1t6kOAiw/QETUEdp09dycOXNQXV2NQ4cO4cKFC6isrMTBgwdRXV2NuXPnBruPRBQA2WlHSUUdoCih7goRUVRq00xTfn4+tm7digEDBqjHBg4ciBdeeIEbwYlCSKM3qjNOGn0crFYr9Hq9Vxv33qyEhIQWb4dERETe2jTTpCiKzw9iANDr9VD4Wy5FoUiqzyTqHTheXguHtRoPvLwTNpv3PiebzYZJz+X7HCciopa1KTTdcsstmDdvHn744Qf12NmzZ/GHP/wBo0ePDlrniMKFexN4qPczBUqjd21W1xrjIMuyzz6ocKpoTkQUKdoUmtasWYOamhpcfvnluPLKK9G3b19kZWWhpqYGq1evDnYficJCRAYNATz42l7OABMRBUGb9jT17t0b//73v1FYWIj//Oc/EEJg4MCBuPXWW4PdPyJqJ0nDfUtERMHQqpmmbdu2YeDAgaiurgYA3HbbbZgzZw7mzp2L6667DldffTW++OKLDukoERERUSi1KjStWrUK06ZNQ3Jyss85k8mEGTNmYMWKFUHrHBG1TWPNJiIiCpZWhaZvvvkGY8eObfZ8Tk4OioqK2t0ponDhvmou0u7pJuodKKmwQShyqLtCRBQ1WhWazp0757fUgJtOp0N5eXm7O0UULiL58nyNPg6KoqDeXhtxoY+IKBy1KjT96Ec/woEDB5o9/+2336Jnz57t7hRROAmHq+bamnlkpx3HzlVHZOgjIgo3rQpNv/jFL/CXv/wFdXV1Pudqa2vx17/+FePHjw9a54jChdVqjZgaTZ5kRx0krSHU3SAiigqtKjnw+OOP491338WPf/xjzJ49G/3794ckSThy5AheeOEFyLKMxx57rKP6SkRERBQyrQpN6enp2LVrFx5++GE8+uij6j4JSZIwZswYrF27Funp6R3SUSJqGyEEbDYb9zUREbVTq4tbXnbZZfjoo49QWVmJ//73vxBCoF+/fkhJSemI/hFRO4l6B+Zs/jcSkvhvlIioPdpUERwAUlJScN111wWzL0TUQbQN96IjIqK2a9O954gokggcN9ew9AARUTsxNBFdgntPECK4vraod+LoD+dRU1MT6q4QEUWskIamZcuW4brrrkNSUhLS0tIwceJEHD161KuNEAKLFy9GZmYm4uPjcdNNN+HQoUNebex2O+bMmYPu3bsjMTERd9xxB77//nuvNpWVlcjNzYXJZILJZEJubi4uXrzo1eb06dOYMGECEhMT0b17d8ydOxcOh6NDxk6RQ3baMfeN3VBkJdRdaReNPvT1poiIIllIQ9OOHTswa9Ys7NmzB4WFhaivr0dOTg6sVqva5qmnnsKKFSuwZs0a7Nu3DxkZGbjtttu8fmOeP38+3nvvPeTl5WHnzp2wWCwYP348ZLnxFhKTJ09GcXEx8vPzkZ+fj+LiYuTm5qrnZVnGuHHjYLVasXPnTuTl5eGdd97BwoULO+eLQWFNY4z8wBGpt4QhIgoXbd4IHgz5+flen7/22mtIS0tDUVERfv7zn0MIgVWrVuGxxx7DnXfeCQB4/fXXkZ6ejrfeegszZsxAVVUVXnnlFfzjH//ArbfeCgB488030bt3b2zduhVjxozBkSNHkJ+fjz179mDYsGEAgA0bNmD48OE4evQo+vfvj4KCAhw+fBhnzpxBZmYmAODZZ5/F1KlT8eSTT/q9STFRJBH1dkx/bTfW5vICDiKitgirPU1VVVUAgG7dugEASkpKUFZWhpycHLWN0WjEqFGjsGvXLgBAUVERnE6nV5vMzExkZ2erbXbv3g2TyaQGJgC4/vrrYTKZvNpkZ2ergQkAxowZA7vdzpsQU/TQSHj4tS8jsro5EVGohXSmyZMQAgsWLMANN9yA7OxsAEBZWRkA+BTMTE9Px6lTp9Q2BoPBp05Uenq6+viysjKkpaX5vGZaWppXm6avk5KSAoPBoLZpym63w263q59XV1cHPF6iYBAN/7WG1hjfQb0hIopuYTPTNHv2bHz77bfYvHmzzzlJkrw+F0L4HGuqaRt/7dvSxtOyZcvUjeUmkwm9e/dusU9EHeHUed6Ml4ioM4RFaJozZw62bNmC7du3o1evXurxjIwMAPCZ6TGbzeqsUEZGBhwOByorK1tsc+7cOZ/XLS8v92rT9HUqKyvhdDqbvTXMo48+iqqqKvXjzJkzrRk2UXBc4hcIf7gpnIio9UIamoQQmD17Nt59911s27YNWVlZXuezsrKQkZGBwsJC9ZjD4cCOHTswYsQIAMCQIUOg1+u92pSWluLgwYNqm+HDh6OqqgpfffWV2mbv3r2oqqryanPw4EGUlpaqbQoKCmA0GjFkyBC//TcajUhOTvb6IIoEstOOqet3NNSfIiKiQIR0T9OsWbPw1ltv4f/+7/+QlJSkzvSYTCbEx8dDkiTMnz8fS5cuRb9+/dCvXz8sXboUCQkJmDx5str2gQcewMKFC5Gamopu3bph0aJFGDRokHo13YABAzB27FhMmzYN69evBwBMnz4d48ePR//+/QEAOTk5GDhwIHJzc/H000/jwoULWLRoEaZNm8YwROGlPZNDAkDDxJTGEAer1YqEhIRLLncTEVGIZ5rWrVuHqqoq3HTTTejZs6f68fbbb6ttHnnkEcyfPx8zZ87E0KFDcfbsWRQUFCApKUlts3LlSkycOBF33XUXRo4ciYSEBHzwwQfQarVqm02bNmHQoEHIyclBTk4OBg8ejH/84x/qea1Wiw8//BBxcXEYOXIk7rrrLkycOBHPPPNM53wxiDoZZ5uIiFonpDNNgeynkCQJixcvxuLFi5ttExcXh9WrV2P16tXNtunWrRvefPPNFl+rT58++Ne//nXJPhGFM/fVdIHMHbmvpHPfKoazTkREzQuLjeBEFFo2mw2TnstXZ524UZyIyBdDE1Ez3MEhmtU76tQx6gyNt4ppGqKIiIihiahZNpsN960tjNjq2QKiXZvGPUMUERGFUUVwonCkM8RFbGgCgJMXbNDoDM2eF0LAYrFwGY6IKAAMTURRTLrEdnDZacf0l7+ARquBMSmlxbZERLGOoYko4riX3YIzO6Q1xkHjUZ6DiIj8454mokgjgBPlltY9gIiI2o2hiSgSBVhKSUCA25WIiIKDoYnIj1goN0BERK3D0ETkR6SXG7gkIdB0CooFLYmIWsbQRNSMWKtTJDvtmPLiZygvL2dwIiLyg6GJiBppNGpwIiIibwxNRFFANPwXFBoNZry6M3qXJomI2oihiSgaCOBkhTWA2BRYvNIa44PTLyKiKMLQRBRhmo08UgB1CARw3FyDQGs3cXM4EVEjhiaiJqK93MClbq3iyWazYdJz+bDZbB3YIyKiyMDQRNRE1JcbaKVYu4qQiKg5DE1EfjAoRP+MGxFRazE0EZFfstPOq+iIiDwwNBFRs4QkQZHlUHeDiCgsMDQRxQrRwpV3LT2MV9AREQFgaCIi+N6HzpPstGPq+h28go6IYh5DExFdkr9il1arlRvFiSimMDQR0SVxiY6IiKGJKIy5ls2axpRQBBfZaccDG76A7Kjr9NcmIgoXDE1EHsKqNpEAjpur4XXLEwGUVLS/f0K0/ga/nkt0nHkioljE0ETkIfyqgfve8iTwm6B0HPfXiZvDiSiWMDQRNcFq4P4JIeCsq4XFYoEQgl8nIoo5DE1EFBDZacd/Tpbinuc+4QwTEcUkhiYiCpjGYITGEBc++76IiDoRQxMRtQrvSUdEsYqhiYhazV+xSyKiaMfQRNQgrMoNEBFR2GFoImoQfuUGgs9VVyk442OtJiKKNQxNRB6i+zJ6gZMVNgQrN8lOOx7auBfl5eUMTkQUExiaiGJJsCtjaiRMXb+DJQiIKCboQt0BIgoF4ZpxCsKUEzeFE1Gs4EwTUcwREELghNkSrO1NREQxgaGJKEZJ4XATOyKiCMLQRERBwyvqiCiaMTQRUbt4BiWbzYZJz+VzYzgRRSWGJqIGVqs1qms0dRTZafe6gs5dtoGzTkQUbRiaiKjdNIY4WCwWWCwW9RhnnYgo2rDkAFEkCGIl70u/Dlq9S1x22pG7pgAAYExKUY9Hd7FQIoo1DE1EFBSs10RE0Y7Lc0REREQBYGgioqDiBnAiilYMTUQUVE2vpiMiihYMTUQUdBpDHKxWa6i7QUQUVAxNRBR0stOOGa/uZN0rIooqDE1EaNyHwzvYBo/n1XTc50RE0YChiQiuQozTNmyDIiuh7krUqHfUQZFlACx0SUTRgaGJqAELMQaf5wwTv75EFOkYmoiow8hOO6a8+BnKy8tD3RUionZjaCKKQZ26t0ij4aZwIooKDE1E1OF4ixUiigYMTUTkRUA03rg3mM/LK+iIKMIxNBFFCCHQIWGms/irFM4gRUSRhKGJYl5jjSbqaE2X6ViKgIgiCUMTxTybzYb71hZyo3InEELAYrHAYrGos0ssRUBEkYKhiQh84+4sstOO3DUFuGvlx5xdIqKIowt1B4gotmiN8dAa4iCEYHAioojCmSYi6nRCCJSXl3NZlIgiCkMTEXU62WnHjFd3QtIZQ90VIqKAMTQRUfNcdQ6C/rT1jjpIOkPQn5eIqCMxNBHFOCGEq6AlERG1iKGJKJaEYTZigUsiihQhDU2ff/45JkyYgMzMTEiShPfff9/rvBACixcvRmZmJuLj43HTTTfh0KFDXm3sdjvmzJmD7t27IzExEXfccQe+//57rzaVlZXIzc2FyWSCyWRCbm4uLl686NXm9OnTmDBhAhITE9G9e3fMnTsXDoejI4ZNYYSFLUPPX6VwIqJwFNLQZLVacc0112DNmjV+zz/11FNYsWIF1qxZg3379iEjIwO33XYbampq1Dbz58/He++9h7y8POzcuRMWiwXjx4+HLMtqm8mTJ6O4uBj5+fnIz89HcXExcnNz1fOyLGPcuHGwWq3YuXMn8vLy8M4772DhwoUdN3gKCyxsGR54Q18iigQhrdN0++234/bbb/d7TgiBVatW4bHHHsOdd94JAHj99deRnp6Ot956CzNmzEBVVRVeeeUV/OMf/8Ctt94KAHjzzTfRu3dvbN26FWPGjMGRI0eQn5+PPXv2YNiwYQCADRs2YPjw4Th69Cj69++PgoICHD58GGfOnEFmZiYA4Nlnn8XUqVPx5JNPIjk5uRO+GtTZ3LNMOkMcQ1OIub8XCQkJkCQp1N0hIvIrbPc0lZSUoKysDDk5Oeoxo9GIUaNGYdeuXQCAoqIiOJ1OrzaZmZnIzs5W2+zevRsmk0kNTABw/fXXw2QyebXJzs5WAxMAjBkzBna7HUVFRc320W63o7q62uuDIgdnmRoJIUJ6M2DZaceUFz9DeXm5GqDcy6bc80RE4SJsQ1NZWRkAID093et4enq6eq6srAwGgwEpKSkttklLS/N5/rS0NK82TV8nJSUFBoNBbePPsmXL1H1SJpMJvXv3buUoKdR4+5QwotF4BSc33tSXiMJF2IYmt6ZT9UKIS07fN23jr31b2jT16KOPoqqqSv04c+ZMi/0iokvQaPxuCme4JaJwELahKSMjAwB8ZnrMZrM6K5SRkQGHw4HKysoW25w7d87n+cvLy73aNH2dyspKOJ1OnxkoT0ajEcnJyV4fRB0nNuopcVM4EYWrsA1NWVlZyMjIQGFhoXrM4XBgx44dGDFiBABgyJAh0Ov1Xm1KS0tx8OBBtc3w4cNRVVWFr776Sm2zd+9eVFVVebU5ePAgSktL1TYFBQUwGo0YMmRIh46TqDVKyoNfHqGDin63GfcwEVG4CunVcxaLBf/973/Vz0tKSlBcXIxu3bqhT58+mD9/PpYuXYp+/fqhX79+WLp0KRISEjB58mQAgMlkwgMPPICFCxciNTUV3bp1w6JFizBo0CD1aroBAwZg7NixmDZtGtavXw8AmD59OsaPH4/+/fsDAHJycjBw4EDk5ubi6aefxoULF7Bo0SJMmzaNs0cU1QQAKcxSk/u+dG/OGYMuXbqEujtERKqQhqb9+/fj5ptvVj9fsGABAGDKlCnYuHEjHnnkEdTW1mLmzJmorKzEsGHDUFBQgKSkJPUxK1euhE6nw1133YXa2lqMHj0aGzduhFarVdts2rQJc+fOVa+yu+OOO7xqQ2m1Wnz44YeYOXMmRo4cifj4eEyePBnPPPNMR38JiEJMoKTCgivTwuuXA40hDhaLBQkJCaHuChGRShKcAw+a6upqmEwmVFVVcYYqAlitVkx6Ll8tOVDvqINGq4fGI3C7tXSuveebPScEjptr0KerDpKkw8kLtoYJIQFIEiBcO5wUpx2SVg9J47va7j6n0WjRMK8ESMDlqQk4daEWfbrqcfJ8Ha5MS1ZfX0BAggRIEurttdDo9NBodWp/rkxLcp3riDF7nBf1MvRx8Vibex3+8M5hbHr4JiQmJvptT0TUHoG+f4ftniYiim1aYxyg0WDGqztRLyuwWCywWCzc60REIcPQRBTWRMyHBK0xHrLTjtw1Bbhr5ces10REIcPQRBTmTpZbPEoNCHWFri0iuWSB1hjPcgREFFIMTUQRIMwucCMiikkMTUQUMVjDiYhCiaGJiCJG0xv7ujFMEVFnYGgiosjS5P50QgiUl5fzpr5E1OEYmigmuWcmwllH32lOiMi9Mk9Ikvr9s9lsuG9tISSdMcS9IqJox9BEMcn9RusubBmzInT4TZfjdIa4EPeIiGIBQxPFLL7RRi7ZacdDG/f67G0iIupIDE1EFJk0kropnIioMzA0EcUyoTT+scN3UXWAhtusxPwyKxF1CoYmohh2siLyrzZjlXAi6iwMTRRzIuHKuZAS7tutRNbsjRDC66a+rN1ERMHG0EQxh1fOtUxA4Li5JtIyk3pT3zv/5z2Ul5fDZrOxdhMRBRVDE8UkXjnnTcA1U+MOShKkkPanrZre1Nfz+8yZJyJqL4YmIgIgcMJcE3kbwf1oLhxx5omI2ouhiYgaAoaECNzK5MOzhlNTnGEkovZgaCIivyKyBIGbRsKMV3eiXla4JEdEQcPQRBSrojxHaI3xkJ12r5v7EhG1hy7UHSCi1gveDJCf5xFRsEbnQWOIg8ViCXU3iCgKMDQRUQPREJh8r6aLZO5SBABg6NIVVqsVCQkJkKTIvEKQiEKHy3MUU1jYsmXqLiaBqLmaDmgsRSA77bj3+XycPHmS+5yIqNUYmiimsLAlmr9CTgAl5dbGk9E6E6PRqFfXCSEgyzJkWQ51r4goAjA0UczhZedAyXmr/2vjojQn+dBIfjeIswAmEbWEoYkoBsVKNmqJe4O4+151AAtgElHLGJqIKCa5N4jf89wnsNls6iwTZyKJqDm8eo6IYpbWGA+NzgCr1QqNRoP71hZCn2AKdbeIKExxpokoLIkO21cTwXW+O4TstOP+lz5HeXk5Z5mIqEUMTUThqOGS/5CnG4Hmw5sQEEJRazuFJSEC6p/QSJjxyheQFcHN4ETULIYmihms0XQpouWQFOW0xngAgN1ahfvWbvfa5xSrXxMi8sbQRDGDNZr8E/Cu/H2ywqNWU4zSGIywWCwwm81eV9NFUohy16CKhL4SRQqGJoop3LPihwBKKiweMcm7IIHrVnSx9cbrvrIud00BJJ1RPR7qkgStKcSpKAomrfsCiqJ0cK+IYgevniMi/9W/3WEpxgKTm3u5TggBi8UCRVFgs9kiKnhLGv5eTBRMDE1EkSBGg0s48LzhLwAYk1LUZbpwuPGve+ZJq9WGtB9EsYC/hhBFgFMXOnkDu1D/h9B4w18hSVBkOeTLdEQUGgxNRBGhs2czmgtMrPLkFknLdEQUHAxNFDOsVmuEXzkXmrjCmOTN8wo6f1fSRdIVdsHUmk3qRJGKoYkorIkQr5IJnKywwd0JIQKsVB7FG8hlpx0zXt0Jh70OU178DGazGTU1Nepm8fLyci7dEUUpbgQnopZdYmVQQEAS8H8FXlgSHh9t67P7yjpoNOomca3eiLW51+Hh13fx/nVEUYozTUTUJq6KBK6ZJ3VOKVxnmDz7JYATZkvQZvDcm8Sh0WDGqzu96jp1BHfRyvr6ei6HEXUyhiaKCY23UAnDN/Sw0xiCWl6KEygpt7rukRdpX9cOmhRzX13nru1ksVjUYBmsfU4sWkkUOgxNFBNsNhumbdgGReYbTas13I9OjVICEEJxBQAJcCcQIRQoounXN1QzT6Gd8XLXdvrtio9gNpt9bsfSXixaSRQa3NNEMUNniIu0+ZBO1+x1cgI4bq4O5AkgJAGp00skILCQJDrvWkD3vif3nidDl65qQUzAFeTDoTgmEQWOv64QUUACfXMXnRhMIoF7z5PstOPe5/Nx8uRJWK1W3LXqY5jNZnUJj4jCH0MTEXWecN0o3lk0Gjy0cS/Ky8shSZK6hFdeXs56T0QRgKGJol7jJnBqG1fQ8Xrzdl+x38rn4RwUAI2EGa/uhKwI9aq7KS9+pgYn999Xq9XKek8xgoVBIwdDE0U9m82G+9YWRng18NBqGnWEEDhZ7nHZvnBfadfcnihXGDh+rrr5NjFErfPkptHg3ufzUVJSArPZjN+u+Ag//PADb9VCFGa4EZxigs4QB7muNtTdiFh+l4jULU4CQlFwosKCK7p3afFy/s7a9OzeVxWSDeltpdFg+stfQKPVQGMwYubruxGXlKJuHpckyWdGwv1nrVYbql4TxRTONFFUi46lOc7MNMvfHikhInbblNYYp85CaY1xkJ12n1u1eAZY7nsi6lycaaKoJYRAeXk57ltb2OFVmslb519B5349qfFzdx0pdzekiJp3aqTRIHfNJ4AANDoDXsi9Do5aG4QQsNls+N0Ln2Lz3BwkJyeHuqdEUY8zTRS13HuZGJiCoA0bv4UQUJSOD08CfvZLNdwqRQiB4+ZqHDdXuwpydmhPOo7WEI8TFRbIQmD6Kztx+MRZtVyBRh/X4mwTZ6OIgoehiaIaN9IGg0DJ+RaWOAV8K4ELAIqAEEqnrS423S+lftrwhxPmGld/IpZrHDpjHCSNhPvXb8P967fB6bDh/pc+96n5JIRAvb2WV+ERBRGX54jokrwWtnxmLARKKqyQJMm1+Vo0LpGdrLDiygxTw8Ma38xDE14iZHGuaXmHZmgN8a5ZPAFAo8HkFR9AF9cFb8y8GYmJiZBlGYdLSmGz2fz+8sBN5EStx5kmonAWpisqTZfcvHcLNWzOFq4z7kOe5QlKyi3wHZx7U7fvxm5/m72b++K0rhqUaAwe7RGCop0CwjV71tB5jTEO0DQWzKyoqICkN6ozTO5lOkVRvG4mTESBY2giIv+aySXuPUQtPe5EeZOrvCBworymcU+2v1kf9/3t2vA+7tp43gYCOH6uOmxLbrqLXTbM0anBTAgBKMJjDbKRu2Dmw699CcVRi4df+xJ1tTacOnUKd636GKdOncJvnvk/3PPcJ2qgslgsMJvNXt+zSCy4GIl9psjC0EREreIvMPmEjuZWwi45IxPkJTS/E1feM0the8PchhDpvyCowAnP4qKAz+xbY+kC133v5m3aD0UAM17dCUlnhMYQB4vFgpqaGpjNZkx5cXuz98LjZnIiF+5pIiK/1GUu7yv5cbLCistTExvenz1Pej24MUh18Pts0xDUzmdr3zJbS1XR26jZTNfKrKc1xjX8vytMyU47pq7dCkgSZIcduoQk5K4pgFZvxMYZo2A0uq461Wq1sNlseOCVnXh73lgkJia2dSjcR0URj6GJiJp16rwNks7Q5P25hXdrAShQAAicOl8Ljd7oChLuekmSO0x5TZEEOfh4PnXgIUY0tC8pr8GVPbt1QGeCpL2zPaLJbJQkQTQkM3egyl1T0NiuIVQZTd1hsVigKI2b+CVJQmJiousigIa6UUlJSeE7e0fUTgxNRGFNNDeX0zla8+bXcP+5k+7yBO5L/d23V2loU1LuUb6goQjm8XPVuCItqW19FPAKApdcQmr2tLvWk58rBUMcAtq8ZyvwF4DP0p7H2IUkQXbakbv6k4YvT0PIapiVSkhIQE1NDR589Uu8Nu3nSExMREJCAmpra9VbwLjH0Z5g1daZquYex5kvai2GJiIKssYy3EKIhs+E92mfh0jqcp9X27beQ06457O8Z7QalxSb6bkkNZ4N9f3rgrl/KOAZtybLsR6PF0LBySonrkxL9gqRk1d8AEmrh0YjQWuMV5f41uZeh9lvFeHVB29EQkICAKjBauP0UejevTtqa2thNBohSZIaXNzByjNsNcWwQ6HC0ERErdD0HdUVK1r9LMI9e+JemnNdXRfQjI6fW7T4LRsgXJulPd94T5TXoE9y5P7YExC+hURb9QSXCIINm8+vTGvuliy+j9MY46DR6qHRuK4rci/xzXh1J7TG+MZQpdUAQkBrjMeUFz9TQ9WG349AQkICdDodEhISUFFRgftf/sJr/5Q7SLkDFlGoRO5PDyLqZI2XvqvzOB5XvbeuPlLDY7xmUyS4CzsKRYHQKBAtXOAbyP3tJFfHmrzXB3OhSzQ7OdPyw9qw7NewR13y2B/WVmoJA7/xqckRNWi1jjs8qaFKq20ct0ajhqrcVR8COj0McQlYm3sdHn59F3TxyV77p2w2G+5/+Qts+P0IdenPZrNBq9Wqe6p8xugxY0UULAxNRNRqJyusft+3T1ZYIUlNgo7ws89ICMiygtMVVlzRw3svk1AUlJTXQNIacGVGw4yHBEj+akZ5LTsFUEm74eo/jb6Vt9dp7nkbZmZc+7E6cAakYd/WqfMWZHVvzd6v5qKsa//WlenJaG2/XVXf4TfwCQCSe+P/JZ7XK1Tp9F5BSnbakbumALLDrs5SaY3xmLp2KzR6A56/56eYs+kraLQGdU8V4L1s577iL2/uGCiKgoSEBJ8gZbVaGaqoVRiaiKj1mpshabiVSlMnK6zwuoTOk2cgaSiMqT6Fu4Cjx2yW6yECQhEoqahBVvfGS+BPmC3ok6z1X4HOa6uUAlmuh6TRNF6517RbDSGscZ9Tc/uC2jPl03TGqemerqZP77PZyHWPP23zYfG4uQaXddX7HA/aMleT4HrcXNOw76n1T+UKUq6vu8YQByFJjbNUDecFBGa9sRs6YwLqnXbc+1y+a+mvoS/ql0wCNIZ4nDx5Eo+8dwQb7h8BnU6H+1/+Aq8+eCMA4PcbPsfL949EUtKlg6jnlYIUuxiaiKhDNd1Do84GNdzMV3i84QKuBSN/EUANMZD8ZxfXNIerjlRacrtX4dxhyv26JyosuLyrAY0zWr4zW0Idn0eNKj+zLi0vjwWX1Jg41b1ffmefvL4XvgLfl97OEQl4zIL5556lcv05Tg1V7qXEEw3Brd5px7y39uN0dT2mrtsKSdKom9Vdtam6qLWqmvKc5QK8rxRsC3+hi3u1Ig9DExGFlKIoHuHC/QdX8FCEAgkadXlKuINRuUUNRmqQ8piWCfgNvrlVN+FegnI1OVFe0+RNraFMQtOlRaHgRLkVV6a7jp8w1+DK9OTGx6qByj0jk+SKlJ4hTMA1e9TiIBo7Jxo2O/nbHK/uQXOHiRZKO7jP+yyvtiSAfWVN2wYSE9sUILz60vh4nTEOkmSF1hivjk1rjPeuTeVvqbHJLBfQUL8KvoGqKX/n/YUuz71aCQkJAV0NKEmS33IO1DkYmppYu3Ytnn76aZSWluLqq6/GqlWrcOONN4a6W0RRxTV74/rTyQorIEmQhO8P/5MVVmR17+Jaimuo75TVI9H1uPNWSBotSiqsuDzV+7f/Uxes0Gg8frwJ73UuAdfyHiTFo4nHnJcASiosrqU/j81U7pkkSTS+satXADY8vecomr6heV4t6H5NSXItofXpqkdJuQVXpiXjeLkFWQ1j8mzfEqEIKLICSaM0Ps5vQ8/BuHvl6rfnmFxj8b/BGlIL5xo/uWSfvR7XsMs90BgmWvkaweCe4fIXqDw1d95f6HLv1QKgFhJtKZA1V84hGNyBzH1PQoYzXwxNHt5++23Mnz8fa9euxciRI7F+/XrcfvvtOHz4MPr06RPq7hFFOO83w1MXXKEHTd6oPd/EAVel6ZKKxoKYJ8otDX9q/CHeGLxcj7/kEpEASs5bkZWa6HXMPVshGi7rFxA4WW5r3FMlFJwwW3BlerL3m7YAjgdYzsAVAGsaJtRc4bFxWc91TIIrtLlnRgKdzfHch6WGIs9JLu8/QFFklJy3+ex5cvelxTfKJrNM3kt/gS49XuLKvBbrS7VcvV39/nRurmpRc6FLXW5sKCTaUiCrd9Rh2obPoU9IVEOYp5ZC16UCmRACq+4ZgoX/WwxJo28xnMXqHi+GJg8rVqzAAw88gAcffBAAsGrVKnzyySdYt24dli1bFuLeUdTzrPocEzdGbfmHrWtGQ6DkvNWjXGbDuaaP9pz1gXuBzz1bAvVc07fxkvNWSJIERZEb358VgZJyCySNxmtWRnh2okltKSGUhtVF4XEe6oZ1Sev+vEkAEsCJihqv0ai3mQnwzcg18yWg7hFTXF83j2zU8NqNe8jc+8JKyq2uVT5FgdB4zJhdInd6zqx5jsX9dTl+rgZXpHUBPJb6vAKd+4gQKDHX4IqMbnBfldfsLXXcIc1zDAAURUDS+AteAifM1bgio5NuidOJ1eOb3kfQqxsthK5AAtm8TfuhT3D9MqGWhfAzQ6YzxOF/F/yiXfcijEQMTQ0cDgeKiorwpz/9yet4Tk4Odu3a5fcxdrsddrtd/byqqgoAUF1dHfT+uS+lpcBZrVbUVl+AkF2zBrLDDuj00Gqa34cAnQ4ajcbnzTWwx/qed79BKg5Hs493v67rki+B0+ctXuFJcTpc93/TSH7DlOu83u9vfOo5TePVRYE+9lKPD/ixkuRRzEm0+7EBj9l9LoDXPlZzwe/jj1kqvd4Ej11wQKPT47uTF71mmr6ruQBJo4EdWjit9airduD0eVdZhqOWSlyWmojTF2z4URcdzlTZIWk0kADUGR2ot7qWQuySHvUWO76zXmzsr+T6m1irr0O9tQqSTo86owNOa21jnywX0KdbIk6aL6J3ajLOVtep59w9/2+lA326J6PeWoc6o+tnlrPhdSUAxypd43J/Tb6ruYA+qV2g0UgQAqi32yHptHBa7KgzOOBOVZLk+vur0esBaHD6fI362t9ZLuCy7klQnPaGr6cGQgCef5VOVdRAcTpQVy2g1eogSYCiAPWWGtQaHVCcDmj0rsKZjXnU9W+kT2oSnJaLOFZrxeU9klxF5RvaOC0W1BrsqLdWoa5KwGmpQ53RCY3H91J22CG0rn/vGj9/j1r6N+/vnOeSZmt/XrTnsU3VO+og6fTQanyDUaDPrTgb/w7V19n8Pl7IMiorK+FwOPw+V0fpqCrw7vftS5UtYWhqUFFRAVmWkZ6e7nU8PT0dZWVlfh+zbNkyLFmyxOd47969O6SPRBTeTjb8/6kmx081Od+0vb9zzbVr+tyex8608BynA3id5l4zkOPtaXvaz7FLPdbzvL+vift8a8dNgesdhQswNTU1MJlMzZ5naGrCZ+Om13Syt0cffRQLFixQP1cUBRcuXEBqampYrPNWV1ejd+/eOHPmDJKTm798N9LFyjiB2BkrxxldYmWcQOyMNdrGKYRATU0NMjMzW2zH0NSge/fu0Gq1PrNKZrPZZ/bJzWg0wmg0eh3r2rVrR3WxzZKTk6PiL/WlxMo4gdgZK8cZXWJlnEDsjDWaxtnSDJNbKwpyRDeDwYAhQ4agsLDQ63hhYSFGjBgRol4RERFRuOBMk4cFCxYgNzcXQ4cOxfDhw/HSSy/h9OnTeOihh0LdNSIiIgoxhiYPkyZNwvnz5/G3v/0NpaWlyM7OxkcffYTLLrss1F1rE6PRiL/+9a8+S4jRJlbGCcTOWDnO6BIr4wRiZ6yxMs6mJHHJ24ITEREREfc0EREREQWAoYmIiIgoAAxNRERERAFgaCIiIiIKAENTlHryyScxYsQIJCQkNFtw8/Tp05gwYQISExPRvXt3zJ07t9PvIxQMa9euRVZWFuLi4jBkyBB88cUXoe5Su3z++eeYMGECMjMzIUkS3n//fa/zQggsXrwYmZmZiI+Px0033YRDhw6FprPtsGzZMlx33XVISkpCWloaJk6ciKNHj3q1iYaxrlu3DoMHD1aLAA4fPhwff/yxej4axujPsmXLIEkS5s+frx6LlrEuXrwYkiR5fWRkZKjno2WcAHD27Fn87ne/Q2pqKhISEvCTn/wERUVF6vloGmsgGJqilMPhwG9/+1s8/PDDfs/Lsoxx48bBarVi586dyMvLwzvvvIOFCxd2ck/b5+2338b8+fPx2GOP4euvv8aNN96I22+/HadP+7ubVWSwWq245pprsGbNGr/nn3rqKaxYsQJr1qzBvn37kJGRgdtuuw01NTV+24erHTt2YNasWdizZw8KCwtRX1+PnJwcWK1WtU00jLVXr15Yvnw59u/fj/379+OWW27BL3/5S/WNJRrG2NS+ffvw0ksvYfDgwV7Ho2msV199NUpLS9WPAwcOqOeiZZyVlZUYOXIk9Ho9Pv74Yxw+fBjPPvus1y/i0TLWgAmKaq+99powmUw+xz/66COh0WjE2bNn1WObN28WRqNRVFVVdWIP2+dnP/uZeOihh7yOXXXVVeJPf/pTiHoUXADEe++9p36uKIrIyMgQy5cvV4/V1dUJk8kkXnzxxRD0MHjMZrMAIHbs2CGEiO6xpqSkiJdffjkqx1hTUyP69esnCgsLxahRo8S8efOEENH1/fzrX/8qrrnmGr/nommcf/zjH8UNN9zQ7PloGmugONMUo3bv3o3s7GyvmxOOGTMGdrvda+o1nDkcDhQVFSEnJ8freE5ODnbt2hWiXnWskpISlJWVeY3ZaDRi1KhRET/mqqoqAEC3bt0AROdYZVlGXl4erFYrhg8fHpVjnDVrFsaNG4dbb73V63i0jfXYsWPIzMxEVlYW7r77bpw4cQJAdI1zy5YtGDp0KH77298iLS0N1157LTZs2KCej6axBoqhKUaVlZX53Ig4JSUFBoPB56bF4aqiogKyLPuMIz09PWLG0FrucUXbmIUQWLBgAW644QZkZ2cDiK6xHjhwAF26dIHRaMRDDz2E9957DwMHDoyqMQJAXl4eioqKsGzZMp9z0TTWYcOG4Y033sAnn3yCDRs2oKysDCNGjMD58+ejapwnTpzAunXr0K9fP3zyySd46KGHMHfuXLzxxhsAout7GijeRiWCLF68GEuWLGmxzb59+zB06NCAnk+SJJ9jQgi/x8NZ0/5G4hhaK9rGPHv2bHz77bfYuXOnz7loGGv//v1RXFyMixcv4p133sGUKVOwY8cO9Xw0jPHMmTOYN28eCgoKEBcX12y7aBjr7bffrv550KBBGD58OK688kq8/vrruP766wFExzgVRcHQoUOxdOlSAMC1116LQ4cOYd26dbjvvvvUdtEw1kBxpimCzJ49G0eOHGnxw/1b+qVkZGT4/CZQWVkJp9Pp81tDuOrevTu0Wq3POMxmc8SMobXcV+hE05jnzJmDLVu2YPv27ejVq5d6PJrGajAY0LdvXwwdOhTLli3DNddcg+eeey6qxlhUVASz2YwhQ4ZAp9NBp9Nhx44deP7556HT6dTxRMNYm0pMTMSgQYNw7NixqPqe9uzZEwMHDvQ6NmDAAPVCm2gaa6AYmiJI9+7dcdVVV7X40dJveJ6GDx+OgwcPorS0VD1WUFAAo9GIIUOGdNQQgspgMGDIkCEoLCz0Ol5YWIgRI0aEqFcdKysrCxkZGV5jdjgc2LFjR8SNWQiB2bNn491338W2bduQlZXldT6axtqUEAJ2uz2qxjh69GgcOHAAxcXF6sfQoUNx7733ori4GFdccUXUjLUpu92OI0eOoGfPnlH1PR05cqRPGZDvvvtOvYl9NI01YCHagE4d7NSpU+Lrr78WS5YsEV26dBFff/21+Prrr0VNTY0QQoj6+nqRnZ0tRo8eLf7973+LrVu3il69eonZs2eHuOetk5eXJ/R6vXjllVfE4cOHxfz580ViYqI4efJkqLvWZjU1Ner3C4BYsWKF+Prrr8WpU6eEEEIsX75cmEwm8e6774oDBw6Ie+65R/Ts2VNUV1eHuOet8/DDDwuTySQ+++wzUVpaqn7YbDa1TTSM9dFHHxWff/65KCkpEd9++63485//LDQajSgoKBBCRMcYm+N59ZwQ0TPWhQsXis8++0ycOHFC7NmzR4wfP14kJSWpP3eiZZxfffWV0Ol04sknnxTHjh0TmzZtEgkJCeLNN99U20TLWAPF0BSlpkyZIgD4fGzfvl1tc+rUKTFu3DgRHx8vunXrJmbPni3q6upC1+k2euGFF8Rll10mDAaD+OlPf6pesh6ptm/f7vd7N2XKFCGE6zLfv/71ryIjI0MYjUbx85//XBw4cCC0nW4Df2MEIF577TW1TTSM9f7771f/fvbo0UOMHj1aDUxCRMcYm9M0NEXLWCdNmiR69uwp9Hq9yMzMFHfeeac4dOiQej5aximEEB988IHIzs4WRqNRXHXVVeKll17yOh9NYw2EJIQQnT69RURERBRhuKeJiIiIKAAMTUREREQBYGgiIiIiCgBDExEREVEAGJqIiIiIAsDQRERERBQAhiYiIiKiADA0EREREQWAoYmIiIgoAAxNRERERAFgaCIiIiIKAEMTERERUQD+P/F4Zn7xZCHZAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.histplot(y_pred, label='prediction')\n", "sns.histplot(y_train, label='actual')\n", "\n", "plt.legend();" ] }, { "cell_type": "markdown", "id": "5259854b-65a5-4fd0-a8b9-87a41ce4835d", "metadata": { "id": "5259854b-65a5-4fd0-a8b9-87a41ce4835d" }, "source": [ "### Q6. Evaluating the model" ] }, { "cell_type": "code", "execution_count": 21, "id": "86965e06-89c1-47eb-bc1a-734721e389cd", "metadata": { "id": "86965e06-89c1-47eb-bc1a-734721e389cd" }, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", "\n", " df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", " df.duration = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 23, "id": "3e3c42e7-4fc2-4478-aa33-3b70bc12597a", "metadata": { "id": "3e3c42e7-4fc2-4478-aa33-3b70bc12597a" }, "outputs": [], "source": [ "df_val = read_data('https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2023-02.parquet')" ] }, { "cell_type": "code", "execution_count": 24, "id": "c3fd052d-029c-4358-8672-81bc50561832", "metadata": { "id": "c3fd052d-029c-4358-8672-81bc50561832" }, "outputs": [], "source": [ "val_dicts = df_val[categorical].to_dict(orient='records')" ] }, { "cell_type": "code", "execution_count": 25, "id": "2ccad0a0-8e05-48e3-963b-5d91e8092867", "metadata": { "id": "2ccad0a0-8e05-48e3-963b-5d91e8092867" }, "outputs": [], "source": [ "X_val = dv.transform(val_dicts) \n", "y_val = df_val.duration.values" ] }, { "cell_type": "code", "execution_count": 26, "id": "4a87e14b-92f8-4fbc-8fa9-77c1afe1ca56", "metadata": { "id": "4a87e14b-92f8-4fbc-8fa9-77c1afe1ca56" }, "outputs": [], "source": [ "y_pred = lr.predict(X_val)" ] }, { "cell_type": "code", "execution_count": 27, "id": "994d39c8-199d-462f-b249-b41aabc12cc1", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "994d39c8-199d-462f-b249-b41aabc12cc1", "outputId": "b8625583-5828-4552-901a-cd4e38f9d2d2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Val RMSE: 7.81181633377777\n" ] } ], "source": [ "print(f'Val RMSE: {mean_squared_error(y_val, y_pred, squared=False)}')" ] }, { "cell_type": "code", "execution_count": null, "id": "db3806b0", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2025/01-intro/homework.md ================================================ ## Homework The goal of this homework is to train a simple model for predicting the duration of a ride - similar to what we did in this module. ## Q1. Downloading the data We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), but instead of "**Green** Taxi Trip Records", we'll use "**Yellow** Taxi Trip Records". Download the data for January and February 2023. Read the data for January. How many columns are there? * 16 * 17 * 18 * 19 ## Q2. Computing duration Now let's compute the `duration` variable. It should contain the duration of a ride in minutes. What's the standard deviation of the trips duration in January? * 32.59 * 42.59 * 52.59 * 62.59 ## Q3. Dropping outliers Next, we need to check the distribution of the `duration` variable. There are some outliers. Let's remove them and keep only the records where the duration was between 1 and 60 minutes (inclusive). What fraction of the records left after you dropped the outliers? * 90% * 92% * 95% * 98% ## Q4. One-hot encoding Let's apply one-hot encoding to the pickup and dropoff location IDs. We'll use only these two features for our model. * Turn the dataframe into a list of dictionaries (remember to re-cast the ids to strings - otherwise it will label encode them) * Fit a dictionary vectorizer * Get a feature matrix from it What's the dimensionality of this matrix (number of columns)? * 2 * 155 * 345 * 515 * 715 ## Q5. Training a model Now let's use the feature matrix from the previous step to train a model. * Train a plain linear regression model with default parameters, where duration is the response variable * Calculate the RMSE of the model on the training data What's the RMSE on train? * 3.64 * 7.64 * 11.64 * 16.64 ## Q6. Evaluating the model Now let's apply this model to the validation dataset (February 2023). What's the RMSE on validation? * 3.81 * 7.81 * 11.81 * 16.81 ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw1 * If your answer doesn't match options exactly, select the closest one ================================================ FILE: cohorts/2025/02-experiment-tracking/homework/hpo.py ================================================ import os import pickle import click import mlflow import numpy as np from hyperopt import STATUS_OK, Trials, fmin, hp, tpe from hyperopt.pyll import scope from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import root_mean_squared_error mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment("random-forest-hyperopt") def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--num_trials", default=15, help="The number of parameter evaluations for the optimizer to explore" ) def run_optimization(data_path: str, num_trials: int): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) def objective(params): rf = RandomForestRegressor(**params) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = root_mean_squared_error(y_val, y_pred) return {'loss': rmse, 'status': STATUS_OK} search_space = { 'max_depth': scope.int(hp.quniform('max_depth', 1, 20, 1)), 'n_estimators': scope.int(hp.quniform('n_estimators', 10, 50, 1)), 'min_samples_split': scope.int(hp.quniform('min_samples_split', 2, 10, 1)), 'min_samples_leaf': scope.int(hp.quniform('min_samples_leaf', 1, 4, 1)), 'random_state': 42 } rstate = np.random.default_rng(42) # for reproducible results fmin( fn=objective, space=search_space, algo=tpe.suggest, max_evals=num_trials, trials=Trials(), rstate=rstate ) if __name__ == '__main__': run_optimization() ================================================ FILE: cohorts/2025/02-experiment-tracking/homework/preprocess_data.py ================================================ import os import pickle import click import pandas as pd from sklearn.feature_extraction import DictVectorizer def dump_pickle(obj, filename: str): with open(filename, "wb") as f_out: return pickle.dump(obj, f_out) def read_dataframe(filename: str): df = pd.read_parquet(filename) df['duration'] = df['lpep_dropoff_datetime'] - df['lpep_pickup_datetime'] df.duration = df.duration.apply(lambda td: td.total_seconds() / 60) df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df def preprocess(df: pd.DataFrame, dv: DictVectorizer, fit_dv: bool = False): df['PU_DO'] = df['PULocationID'] + '_' + df['DOLocationID'] categorical = ['PU_DO'] numerical = ['trip_distance'] dicts = df[categorical + numerical].to_dict(orient='records') if fit_dv: X = dv.fit_transform(dicts) else: X = dv.transform(dicts) return X, dv @click.command() @click.option( "--raw_data_path", help="Location where the raw NYC taxi trip data was saved" ) @click.option( "--dest_path", help="Location where the resulting files will be saved" ) def run_data_prep(raw_data_path: str, dest_path: str, dataset: str = "green"): # Load parquet files df_train = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-01.parquet") ) df_val = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-02.parquet") ) df_test = read_dataframe( os.path.join(raw_data_path, f"{dataset}_tripdata_2023-03.parquet") ) # Extract the target target = 'duration' y_train = df_train[target].values y_val = df_val[target].values y_test = df_test[target].values # Fit the DictVectorizer and preprocess data dv = DictVectorizer() X_train, dv = preprocess(df_train, dv, fit_dv=True) X_val, _ = preprocess(df_val, dv, fit_dv=False) X_test, _ = preprocess(df_test, dv, fit_dv=False) # Create dest_path folder unless it already exists os.makedirs(dest_path, exist_ok=True) # Save DictVectorizer and datasets dump_pickle(dv, os.path.join(dest_path, "dv.pkl")) dump_pickle((X_train, y_train), os.path.join(dest_path, "train.pkl")) dump_pickle((X_val, y_val), os.path.join(dest_path, "val.pkl")) dump_pickle((X_test, y_test), os.path.join(dest_path, "test.pkl")) if __name__ == '__main__': run_data_prep() ================================================ FILE: cohorts/2025/02-experiment-tracking/homework/register_model.py ================================================ import os import pickle import click import mlflow from mlflow.entities import ViewType from mlflow.tracking import MlflowClient from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import root_mean_squared_error HPO_EXPERIMENT_NAME = "random-forest-hyperopt" EXPERIMENT_NAME = "random-forest-best-models" RF_PARAMS = ['max_depth', 'n_estimators', 'min_samples_split', 'min_samples_leaf', 'random_state'] mlflow.set_tracking_uri("http://127.0.0.1:5000") mlflow.set_experiment(EXPERIMENT_NAME) mlflow.sklearn.autolog() def load_pickle(filename): with open(filename, "rb") as f_in: return pickle.load(f_in) def train_and_log_model(data_path, params): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) X_test, y_test = load_pickle(os.path.join(data_path, "test.pkl")) with mlflow.start_run(): new_params = {} for param in RF_PARAMS: new_params[param] = int(params[param]) rf = RandomForestRegressor(**new_params) rf.fit(X_train, y_train) # Evaluate model on the validation and test sets val_rmse = root_mean_squared_error(y_val, rf.predict(X_val)) mlflow.log_metric("val_rmse", val_rmse) test_rmse = root_mean_squared_error(y_test, rf.predict(X_test)) mlflow.log_metric("test_rmse", test_rmse) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) @click.option( "--top_n", default=5, type=int, help="Number of top models that need to be evaluated to decide which one to promote" ) def run_register_model(data_path: str, top_n: int): client = MlflowClient() # Retrieve the top_n model runs and log the models experiment = client.get_experiment_by_name(HPO_EXPERIMENT_NAME) runs = client.search_runs( experiment_ids=experiment.experiment_id, run_view_type=ViewType.ACTIVE_ONLY, max_results=top_n, order_by=["metrics.rmse ASC"] ) for run in runs: train_and_log_model(data_path=data_path, params=run.data.params) # Select the model with the lowest test RMSE experiment = client.get_experiment_by_name(EXPERIMENT_NAME) # best_run = client.search_runs( ... )[0] # Register the best model # mlflow.register_model( ... ) if __name__ == '__main__': run_register_model() ================================================ FILE: cohorts/2025/02-experiment-tracking/homework/train.py ================================================ import os import pickle import click from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import root_mean_squared_error def load_pickle(filename: str): with open(filename, "rb") as f_in: return pickle.load(f_in) @click.command() @click.option( "--data_path", default="./output", help="Location where the processed NYC taxi trip data was saved" ) def run_train(data_path: str): X_train, y_train = load_pickle(os.path.join(data_path, "train.pkl")) X_val, y_val = load_pickle(os.path.join(data_path, "val.pkl")) rf = RandomForestRegressor(max_depth=10, random_state=0) rf.fit(X_train, y_train) y_pred = rf.predict(X_val) rmse = root_mean_squared_error(y_val, y_pred) if __name__ == '__main__': run_train() ================================================ FILE: cohorts/2025/02-experiment-tracking/homework.md ================================================ ## Homework The goal of this homework is to get familiar with MLflow, the tool for experiment tracking and model management. ## Q1. Install MLflow To get started with MLflow you'll need to install the MLflow Python package. For this we recommend creating a separate Python environment, for example, you can use [conda environments](https://docs.conda.io/projects/conda/en/latest/user-guide/getting-started.html#managing-envs), and then install the package there with `pip` or `conda`. Once you installed the package, run the command `mlflow --version` and check the output. What's the version that you have? ## Q2. Download and preprocess the data We'll use the Green Taxi Trip Records dataset to predict the duration of each trip. Download the data for January, February and March 2023 in parquet format from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). Use the script `preprocess_data.py` located in the folder [`homework`](homework) to preprocess the data. The script will: * load the data from the folder `` (the folder where you have downloaded the data), * fit a `DictVectorizer` on the training set (January 2023 data), * save the preprocessed datasets and the `DictVectorizer` to disk. Your task is to download the datasets and then execute this command: ``` python preprocess_data.py --raw_data_path --dest_path ./output ``` Tip: go to `02-experiment-tracking/homework/` folder before executing the command and change the value of `` to the location where you saved the data. How many files were saved to `OUTPUT_FOLDER`? * 1 * 3 * 4 * 7 ## Q3. Train a model with autolog We will train a `RandomForestRegressor` (from Scikit-Learn) on the taxi dataset. We have prepared the training script `train.py` for this exercise, which can be also found in the folder [`homework`](homework). The script will: * load the datasets produced by the previous step, * train the model on the training set, * calculate the RMSE score on the validation set. Your task is to modify the script to enable **autologging** with MLflow, execute the script and then launch the MLflow UI to check that the experiment run was properly tracked. Tip 1: don't forget to wrap the training code with a `with mlflow.start_run():` statement as we showed in the videos. Tip 2: don't modify the hyperparameters of the model to make sure that the training will finish quickly. What is the value of the `min_samples_split` parameter: * 2 * 4 * 8 * 10 ## Q4. Launch the tracking server locally Now we want to manage the entire lifecycle of our ML model. In this step, you'll need to launch a tracking server. This way we will also have access to the model registry. Your task is to: * launch the tracking server on your local machine, * select a SQLite db for the backend store and a folder called `artifacts` for the artifacts store. You should keep the tracking server running to work on the next two exercises that use the server. In addition to `backend-store-uri`, what else do you need to pass to properly configure the server? * `default-artifact-root` * `serve-artifacts` * `artifacts-only` * `artifacts-destination` ## Q5. Tune model hyperparameters Now let's try to reduce the validation error by tuning the hyperparameters of the `RandomForestRegressor` using `hyperopt`. We have prepared the script `hpo.py` for this exercise. Your task is to modify the script `hpo.py` and make sure that the validation RMSE is logged to the tracking server for each run of the hyperparameter optimization (you will need to add a few lines of code to the `objective` function) and run the script without passing any parameters. After that, open UI and explore the runs from the experiment called `random-forest-hyperopt` to answer the question below. Note: Don't use autologging for this exercise. The idea is to just log the information that you need to answer the question below, including: * the list of hyperparameters that are passed to the `objective` function during the optimization, * the RMSE obtained on the validation set (February 2023 data). What's the best validation RMSE that you got? * 4.817 * 5.335 * 5.818 * 6.336 ## Q6. Promote the best model to the model registry The results from the hyperparameter optimization are quite good. So, we can assume that we are ready to test some of these models in production. In this exercise, you'll promote the best model to the model registry. We have prepared a script called `register_model.py`, which will check the results from the previous step and select the top 5 runs. After that, it will calculate the RMSE of those models on the test set (March 2023 data) and save the results to a new experiment called `random-forest-best-models`. Your task is to update the script `register_model.py` so that it selects the model with the lowest RMSE on the test set and registers it to the model registry. Tip 1: you can use the method `search_runs` from the `MlflowClient` to get the model with the lowest RMSE, Tip 2: to register the model you can use the method `mlflow.register_model` and you will need to pass the right `model_uri` in the form of a string that looks like this: `"runs://model"`, and the name of the model (make sure to choose a good one!). What is the test RMSE of the best model? * 5.060 * 5.567 * 6.061 * 6.568 ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw2 * If your answer doesn't match options exactly, select the closest one ================================================ FILE: cohorts/2025/03-orchestration/homework.md ================================================ ## Homework The goal of this homework is to create a simple training pipeline, use mlflow to track experiments and register best model, and a modern data workflow orchestration tool such as Mage or Prefect or others as listed in the course material under '03-orchestration'. We'll use [the same NYC taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page), the **Yellow** taxi data for March, 2023. ## Question 1. Select the Tool You can use the same tool you used when completing the module, or choose a different one for your homework. What's the name of the orchestrator you chose? ## Question 2. Version What's the version of the orchestrator? ## Question 3. Creating a pipeline Let's read the March 2023 Yellow taxi trips data. How many records did we load? - 3,003,766 - 3,203,766 - 3,403,766 - 3,603,766 (Include a print statement in your code) ## Question 4. Data preparation Let's continue with pipeline creation. We will use the same logic for preparing the data we used previously. This is what we used (adjusted for yellow dataset): ```python def read_dataframe(filename): df = pd.read_parquet(filename) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df.duration = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)] categorical = ['PULocationID', 'DOLocationID'] df[categorical] = df[categorical].astype(str) return df ``` Let's apply to the data we loaded in question 3. What's the size of the result? - 2,903,766 - 3,103,766 - 3,316,216 - 3,503,766 ## Question 5. Train a model We will now train a linear regression model using the same code as in homework 1. * Fit a dict vectorizer. * Train a linear regression with default parameters. * Use pick up and drop off locations separately, don't create a combination feature. Let's now use it in the pipeline. We will need to create another transformation block, and return both the dict vectorizer and the model. What's the intercept of the model? Hint: print the `intercept_` field in the code block - 21.77 - 24.77 - 27.77 - 31.77 ## Question 6. Register the model The model is trained, so let's save it with MLFlow. Find the logged model, and find MLModel file. What's the size of the model? (`model_size_bytes` field): * 14,534 * 9,534 * 4,534 * 1,534 ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw3 * If your answer doesn't match options exactly, select the closest one. ================================================ FILE: cohorts/2025/04-deployment/homework/starter.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2c51efaa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scikit-learn==1.5.0\n" ] } ], "source": [ "!pip freeze | grep scikit-learn" ] }, { "cell_type": "code", "execution_count": 2, "id": "4acf73a0-51b5-4663-9bb8-8eb947863e17", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.10.13\n" ] } ], "source": [ "!python -V" ] }, { "cell_type": "code", "execution_count": null, "id": "0ef880a0", "metadata": {}, "outputs": [], "source": [ "import pickle\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": null, "id": "7836ccfd", "metadata": {}, "outputs": [], "source": [ "with open('model.bin', 'rb') as f_in:\n", " dv, model = pickle.load(f_in)" ] }, { "cell_type": "code", "execution_count": null, "id": "41c08294", "metadata": {}, "outputs": [], "source": [ "categorical = ['PULocationID', 'DOLocationID']\n", "\n", "def read_data(filename):\n", " df = pd.read_parquet(filename)\n", " \n", " df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime\n", " df['duration'] = df.duration.dt.total_seconds() / 60\n", "\n", " df = df[(df.duration >= 1) & (df.duration <= 60)].copy()\n", "\n", " df[categorical] = df[categorical].fillna(-1).astype('int').astype('str')\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": null, "id": "4854399a", "metadata": {}, "outputs": [], "source": [ "df = read_data('https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_????-??.parquet')" ] }, { "cell_type": "code", "execution_count": null, "id": "669fda0a", "metadata": {}, "outputs": [], "source": [ "dicts = df[categorical].to_dict(orient='records')\n", "X_val = dv.transform(dicts)\n", "y_pred = model.predict(X_val)" ] }, { "cell_type": "code", "execution_count": null, "id": "bf532ae7-1897-428c-ba0c-875ccaf7d76c", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: cohorts/2025/04-deployment/homework.md ================================================ ## Homework In this homework, we'll deploy the ride duration model in batch mode. Like in homework 1, we'll use the Yellow Taxi Trip Records dataset. You'll find the starter code in the [homework](homework) directory. Solution: [homework_solution/](homework_solution/) ## Q1. Notebook We'll start with the same notebook we ended up with in homework 1. We cleaned it a little bit and kept only the scoring part. You can find the initial notebook [here](homework/starter.ipynb). Run this notebook for the March 2023 data. What's the standard deviation of the predicted duration for this dataset? * 1.24 * 6.24 * 12.28 * 18.28 ## Q2. Preparing the output Like in the course videos, we want to prepare the dataframe with the output. First, let's create an artificial `ride_id` column: ```python df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') ``` Next, write the ride id and the predictions to a dataframe with results. Save it as parquet: ```python df_result.to_parquet( output_file, engine='pyarrow', compression=None, index=False ) ``` What's the size of the output file? * 36M * 46M * 56M * 66M __Note:__ Make sure you use the snippet above for saving the file. It should contain only these two columns. For this question, don't change the dtypes of the columns and use `pyarrow`, not `fastparquet`. ## Q3. Creating the scoring script Now let's turn the notebook into a script. Which command you need to execute for that? ## Q4. Virtual environment Now let's put everything into a virtual environment. We'll use pipenv for that. Install all the required libraries. Pay attention to the Scikit-Learn version: it should be the same as in the starter notebook. After installing the libraries, pipenv creates two files: `Pipfile` and `Pipfile.lock`. The `Pipfile.lock` file keeps the hashes of the dependencies we use for the virtual env. What's the first hash for the Scikit-Learn dependency? ## Q5. Parametrize the script Let's now make the script configurable via CLI. We'll create two parameters: year and month. Run the script for April 2023. What's the mean predicted duration? * 7.29 * 14.29 * 21.29 * 28.29 Hint: just add a print statement to your script. ## Q6. Docker container Finally, we'll package the script in the docker container. For that, you'll need to use a base image that we prepared. This is what the content of this image is: ```dockerfile FROM python:3.10.13-slim WORKDIR /app COPY [ "model2.bin", "model.bin" ] ``` Note: you don't need to run it. We have already done it. It is pushed to [`agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim`](https://hub.docker.com/layers/agrigorev/zoomcamp-model/mlops-2024-3.10.13-slim/images/sha256-f54535b73a8c3ef91967d5588de57d4e251b22addcbbfb6e71304a91c1c7027f?context=repo), which you need to use as your base image. That is, your Dockerfile should start with: ```dockerfile FROM agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim # do stuff here ``` This image already has a pickle file with a dictionary vectorizer and a model. You will need to use them. Important: don't copy the model to the docker image. You will need to use the pickle file already in the image. Now run the script with docker. What's the mean predicted duration for May 2023? * 0.19 * 7.24 * 14.24 * 21.19 ## Bonus: upload the result to the cloud (Not graded) Just printing the mean duration inside the docker image doesn't seem very practical. Typically, after creating the output file, we upload it to the cloud storage. Modify your code to upload the parquet file to S3/GCS/etc. ## Bonus: Use an orchestrator for batch inference Here we didn't use any orchestration. In practice we usually do. * Split the code into logical code blocks * Use a workflow orchestrator for the code execution ## Publishing the image to dockerhub This is how we published the image to Docker hub: ```bash docker build -t mlops-zoomcamp-model:2024-3.10.13-slim . docker tag mlops-zoomcamp-model:2024-3.10.13-slim agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim docker login --username USERNAME docker push agrigorev/zoomcamp-model:mlops-2024-3.10.13-slim ``` This is just for your reference, you don't need to do it. ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw4 * It's possible that your answers won't match exactly. If it's the case, select the closest one. ================================================ FILE: cohorts/2025/05-monitoring/homework.md ================================================ ## Homework The goal of this homework is to familiarize users with monitoring for ML batch services, using PostgreSQL database to store metrics and Grafana to visualize them. ## Q1. Prepare the dataset Start with `baseline_model_nyc_taxi_data.ipynb`. Download the March 2024 Green Taxi data. We will use this data to simulate a production usage of a taxi trip duration prediction service. What is the shape of the downloaded data? How many rows are there? * 72044 * 78537 * 57457 * 54396 ## Q2. Metric Let's expand the number of data quality metrics we’d like to monitor! Please add one metric of your choice and a quantile value for the `"fare_amount"` column (`quantile=0.5`). Hint: explore evidently metric `ColumnQuantileMetric` (from `evidently.metrics import ColumnQuantileMetric`) What metric did you choose? ## Q3. Monitoring Let’s start monitoring. Run expanded monitoring for a new batch of data (March 2024). What is the maximum value of metric `quantile = 0.5` on the `"fare_amount"` column during March 2024 (calculated daily)? * 10 * 12.5 * 14.2 * 14.8 ## Q4. Dashboard Finally, let’s add panels with new added metrics to the dashboard. After we customize the dashboard let's save a dashboard config, so that we can access it later. Hint: click on “Save dashboard” to access JSON configuration of the dashboard. This configuration should be saved locally. Where to place a dashboard config file? * `project_folder` (05-monitoring) * `project_folder/config` (05-monitoring/config) * `project_folder/dashboards` (05-monitoring/dashboards) * `project_folder/data` (05-monitoring/data) ## Submit the results * Submit your answers here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw5 ================================================ FILE: cohorts/2025/06-best-practices/homework/Dockerfile ================================================ FROM python:3.10.9-slim RUN pip install -U pip & pip install pipenv COPY [ "Pipfile", "Pipfile.lock", "./" ] RUN pipenv install --system --deploy COPY [ "batch.py", "batch.py" ] COPY [ "model.bin", "model.bin" ] ENTRYPOINT [ "python", "batch.py" ] ================================================ FILE: cohorts/2025/06-best-practices/homework/Pipfile ================================================ [[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] scikit-learn = "==1.5.0" pandas = "*" pyarrow = "*" s3fs = "*" [dev-packages] [requires] python_version = "3.10" ================================================ FILE: cohorts/2025/06-best-practices/homework/batch.py ================================================ #!/usr/bin/env python # coding: utf-8 import sys import pickle import pandas as pd year = int(sys.argv[1]) month = int(sys.argv[2]) input_file = f'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' output_file = f'output/yellow_tripdata_{year:04d}-{month:02d}.parquet' with open('model.bin', 'rb') as f_in: dv, lr = pickle.load(f_in) categorical = ['PULocationID', 'DOLocationID'] def read_data(filename): df = pd.read_parquet(filename) df['duration'] = df.tpep_dropoff_datetime - df.tpep_pickup_datetime df['duration'] = df.duration.dt.total_seconds() / 60 df = df[(df.duration >= 1) & (df.duration <= 60)].copy() df[categorical] = df[categorical].fillna(-1).astype('int').astype('str') return df df = read_data(input_file) df['ride_id'] = f'{year:04d}/{month:02d}_' + df.index.astype('str') dicts = df[categorical].to_dict(orient='records') X_val = dv.transform(dicts) y_pred = lr.predict(X_val) print('predicted mean duration:', y_pred.mean()) df_result = pd.DataFrame() df_result['ride_id'] = df['ride_id'] df_result['predicted_duration'] = y_pred df_result.to_parquet(output_file, engine='pyarrow', index=False) ================================================ FILE: cohorts/2025/06-best-practices/homework.md ================================================ ## Homework In this homework, we'll take the ride duration prediction model that we deployed in batch mode in homework 4 and improve the reliability of our code with unit and integration tests. You'll find the starter code in the [homework](homework/) directory. ## Q1. Refactoring Before we can start covering our code with tests, we need to refactor it. We'll start by getting rid of all the global variables. * Let's create a function `main` with two parameters: `year` and `month`. * Move all the code (except `read_data`) inside `main` * Make `categorical` a parameter for `read_data` and pass it inside `main` Now we need to create the "main" block from which we'll invoke the main function. How does the `if` statement that we use for this looks like? Hint: after refactoring, check that the code still works. Just run it e.g. for March 2023 and see if it finishes successfully. To make it easier to run it, you can write results to your local filesystem. E.g. here: ```python output_file = f'taxi_type=yellow_year={year:04d}_month={month:02d}.parquet' ``` ## Q2. Installing pytest Now we need to install `pytest`: ```bash pipenv install --dev pytest ``` Next, create a folder `tests` and create two files. One will be the file with tests. We can name it `test_batch.py`. What should be the other file? Hint: to be able to test `batch.py`, we need to be able to import it. Without this other file, we won't be able to do it. ## Q3. Writing first unit test Now let's cover our code with unit tests. We'll start with the pre-processing logic inside `read_data`. It's difficult to test right now because first reads the file and then performs some transformations. We need to split this code into two parts: reading (I/O) and transformation. So let's create a function `prepare_data` that takes in a dataframe (and some other parameters too) and applies some transformation to it. (That's basically the entire `read_data` function after reading the parquet file) Now create a test and use this as input: ```python data = [ (None, None, dt(1, 1), dt(1, 10)), (1, 1, dt(1, 2), dt(1, 10)), (1, None, dt(1, 2, 0), dt(1, 2, 59)), (3, 4, dt(1, 2, 0), dt(2, 2, 1)), ] columns = ['PULocationID', 'DOLocationID', 'tpep_pickup_datetime', 'tpep_dropoff_datetime'] df = pd.DataFrame(data, columns=columns) ``` Where `dt` is a helper function: ```python from datetime import datetime def dt(hour, minute, second=0): return datetime(2023, 1, 1, hour, minute, second) ``` Define the expected output and use the assert to make sure that the actual dataframe matches the expected one. Tip: When you compare two Pandas DataFrames, the result is also a DataFrame. The same is true for Pandas Series. Also, a DataFrame could be turned into a list of dictionaries. How many rows should be there in the expected dataframe? * 1 * 2 * 3 * 4 ## Q4. Mocking S3 with Localstack Now let's prepare for an integration test. In our script, we write data to S3. So we'll use Localstack to mimic S3. First, let's run Localstack with Docker compose. Let's create a `docker-compose.yaml` file with just one service: localstack. Inside localstack, we're only interested in running S3. Start the service and test it by creating a bucket where we'll keep the output. Let's call it "nyc-duration". With AWS CLI, this is how we create a bucket: ```bash aws s3 mb s3://nyc-duration ``` Then we need to check that the bucket was successfully created. With AWS, this is how we typically do it: ```bash aws s3 ls ``` In both cases we should adjust commands for localstack. What option do we need to use for such purposes? * `--backend-store-uri` * `--profile` * `--endpoint-url` * `--version` ## Make input and output paths configurable Right now the input and output paths are hardcoded, but we want to change it for the tests. One of the possible ways would be to specify `INPUT_FILE_PATTERN` and `OUTPUT_FILE_PATTERN` via the env variables. Let's do that: ```bash export INPUT_FILE_PATTERN="s3://nyc-duration/in/{year:04d}-{month:02d}.parquet" export OUTPUT_FILE_PATTERN="s3://nyc-duration/out/{year:04d}-{month:02d}.parquet" ``` And this is how we can read them: ```python def get_input_path(year, month): default_input_pattern = 'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_{year:04d}-{month:02d}.parquet' input_pattern = os.getenv('INPUT_FILE_PATTERN', default_input_pattern) return input_pattern.format(year=year, month=month) def get_output_path(year, month): default_output_pattern = 's3://nyc-duration-prediction-alexey/taxi_type=fhv/year={year:04d}/month={month:02d}/predictions.parquet' output_pattern = os.getenv('OUTPUT_FILE_PATTERN', default_output_pattern) return output_pattern.format(year=year, month=month) def main(year, month): input_file = get_input_path(year, month) output_file = get_output_path(year, month) # rest of the main function ... ``` ## Reading from Localstack S3 with Pandas So far we've been reading parquet files from S3 with using pandas `read_parquet`. But this way we read it from the actual S3 service. Now we need to replace it with our localstack one. For that, we need to specify the endpoint url: ```python options = { 'client_kwargs': { 'endpoint_url': S3_ENDPOINT_URL } } df = pd.read_parquet('s3://bucket/file.parquet', storage_options=options) ``` Let's modify our `read_data` function: - check if `S3_ENDPOINT_URL` is set, and if it is, use it for reading - otherwise use the usual way ## Q5. Creating test data Now let's create `integration_test.py` We'll use the dataframe we created in Q3 (the dataframe for the unit test) and save it to S3. You don't need to do anything else: just create a dataframe and save it. We will pretend that this is data for January 2023. Run the `integration_test.py` script. After that, use AWS CLI to verify that the file was created. Use this snipped for saving the file: ```python df_input.to_parquet( input_file, engine='pyarrow', compression=None, index=False, storage_options=options ) ``` What's the size of the file? * 3620 * 23620 * 43620 * 63620 Note: it's important to use the code from the snippet for saving the file. Otherwise the size may be different depending on the OS, engine and compression. Even if you use this exact snippet, the size of your dataframe may still be a bit off. Just select the closest option. ## Q6. Finish the integration test We can read from our localstack s3, but we also need to write to it. Create a function `save_data` which works similarly to `read_data`, but we use it for saving a dataframe. Let's run the `batch.py` script for January 2023 (the fake data we created in Q5). We can do that from our integration test in Python: we can use `os.system` for doing that (there are other options too). Now it saves the result to localstack. The only thing we need to do now is to read this data and verify the result is correct. What's the sum of predicted durations for the test dataframe? * 13.08 * 36.28 * 69.28 * 81.08 ## Running the test (ungraded) The rest is ready, but we need to write a shell script for doing that. Let's do that! ## Submit the results * Submit your results here: https://courses.datatalks.club/mlops-zoomcamp-2025/homework/hw6 * It's possible that your answers won't match exactly. If it's the case, select the closest one. ================================================ FILE: cohorts/2025/README.md ================================================ ## MLOps Zoomcamp 2025 Cohort * [Pre-Course Live Q&A](https://www.youtube.com/watch?v=rv43YJQsZIw) * [Course Launch video](https://youtube.com/live/qqZU8nBtH90) and [Slides](https://docs.google.com/presentation/d/10dP4KoVpMA1iMGBk-XWp3YcHjukoM7AxZ2v4LuZd9wE/edit?usp=sharing) * [Technical FAQ](https://docs.google.com/document/d/12TlBfhIiKtyBv8RnsoJR6F72bkPDGEvPOItJIxaEzE0/edit) * [Course management platform](https://courses.datatalks.club/mlops-zoomcamp-2025/) [**Module 1: Introduction**](01-intro) * [Homework](01-intro/homework.md) [**Module 2: Experiment Tracking**](02-experiment-tracking/) * [Homework](02-experiment-tracking/homework.md) [**Module 3: Orchestration and ML pipelines**](03-orchestration/) * [Homework](03-orchestration/homework.md) [**Module 4: Model Deployment**](04-deployment) * [Homework](04-deployment/homework.md) [**Module 5: Model Monitoring**](05-monitoring/) * [Homework](05-monitoring/homework.md) [**Module 6: Best Practices**](06-best-practices) * [Homework](06-best-practices/homework.md) [**Project**](project.md) * [More information](project.md) ================================================ FILE: cohorts/2025/competition/README.md ================================================ # MLOps Zoomcamp 2025 Competition Welcome to the MLOps Zoomcamp 2025 Competition! We're hosting this competition to help you practice everything you learn in the course. Unlike traditional Kaggle competitions that focus only on model accuracy, this competition emphasizes the complete MLOps lifecycle, from model development to deployment and monitoring. ## Quick Links - **Competition Platform**: https://youare.bot/ - Register your classifier in the "Register your API" section - View leaderboards and track your performance - [Detailed Overview (Slides)](https://docs.google.com/presentation/d/1-DIRH8wh-Rc251oZLjFNzQF0Fm0yUYe9PmLm00b3SyM/edit?usp=sharing) - [Competition Overview Video](https://www.youtube.com/watch?v=ZxUVBG4z5uE) ## Competition Overview ### What You'll Build **Classifier**: Build an ML model that detects whether a chat participant is a bot or human ### Scoring **Classifiers**: Evaluated on both: - ML metrics: accuracy, ROC, precision, recall, F-score - Technical metrics: latency, uptime, response rate ### Timeline - Competition period: June 2025-August 2025 - Final submission deadline: September 1st, 2025 - Evaluation: Best consecutive 7-day performance - Deploy anytime during the competition period - No need to keep your service running the entire time ### Benefits - Practical MLOps experience in a real-world scenario - Portfolio-worthy project showcasing end-to-end ML system - Course points for participation - $500 of AWS vouchers divided equally among top 10 participants ## Implementation Guide Start with these core components: - FastAPI/Flask for serving your model - PostgreSQL for message history (optional) - MLflow for experiment tracking - Prometheus/Grafana for monitoring As you advance, consider adding: - CI/CD pipeline for automated deployment - Evidently for model quality monitoring - Airflow for automated retraining - Cloud deployment (AWS, Fly.io, etc.) ### Getting Started 1. **Example Implementations**: - [YouAreBot Quickstart Template](https://github.com/open-cu/youarebot-quickstart): Simple Echo Bot with FastAPI endpoint - [YouAreBot Bot Example](https://github.com/open-cu/youarebot-bot): Advanced GPT-based bot (requires OpenAI/DeepSeek API key and additional setup) - [YouAreBot Classifier Example](https://github.com/open-cu/youarebot-classifier): FastAPI service with PostgreSQL storage and random classifier (baseline for you to improve) 2. **Deployment Options**: - Testing: Use quickstart repo with SSH tunneling - Production: Deploy to any cloud provider - AWS (recommended, covered in course) - Fly.io - Your preferred cloud platform ## Support For technical questions, contact Misha: - Telegram: https://t.me/bearcolonel - Email: mikhail.semchinov@gmail.com ================================================ FILE: cohorts/2025/project.md ================================================ ## Course Project The goal of this project is to apply everything we learned in this course and build an end-to-end machine learning project. Remember that to pass the project, you must evaluate 3 peers. If you don't do that, your project can't be considered compelete. ## Submitting ### Project Attempt #1 * Project: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project1 * Review: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project1/eval ### Project Attempt #2 * Project: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project2 * Review: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project2/eval ### Project Attempt #3 * Project: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project3 * Review: https://courses.datatalks.club/mlops-zoomcamp-2025/project/project3/eval > **Important**: update your "Certificate name" here: https://courses.datatalks.club/mlops-zoomcamp-2025/enrollment - this is what we will use when generating certificates for you. ## Evaluation criteria See [here](../../07-project/README.md) ================================================ FILE: generate/generate_pages.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 4, "id": "502b2572", "metadata": {}, "outputs": [], "source": [ "import io\n", "import json\n", "\n", "from pathlib import Path\n", "from urllib.parse import urlparse, parse_qs\n", "\n", "import pandas as pd\n", "import numpy as np\n", "\n", "import requests\n", "import clipboard\n", "\n", "from PIL import Image\n", "from jinja2 import Template" ] }, { "cell_type": "code", "execution_count": 6, "id": "189aae14", "metadata": {}, "outputs": [], "source": [ "module_number = 3\n", "module_title = 'Orchestration and ML Pipelines'\n", "module_folder = Path('..') / '03-orchestration'\n", "\n", "meta_json_file = module_folder / 'meta.json'\n", "playlist_id = 'PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK'" ] }, { "cell_type": "code", "execution_count": 12, "id": "325223ed", "metadata": {}, "outputs": [], "source": [ "module_number = 5\n", "module_title = 'ML Monitoring'\n", "module_folder = Path('..') / '05-monitoring'\n", "\n", "meta_json_file = module_folder / 'meta.json'\n", "playlist_id = 'PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK'" ] }, { "cell_type": "code", "execution_count": 3, "id": "6488e6e6", "metadata": {}, "outputs": [], "source": [ "module_number = 6\n", "module_title = 'Best Practices'\n", "module_folder = Path('..') / '06-best-practices'\n", "\n", "meta_json_file = module_folder / 'meta.json'\n", "playlist_id = 'PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK'" ] }, { "cell_type": "code", "execution_count": 4, "id": "921396f5", "metadata": {}, "outputs": [], "source": [ "module_number = 4\n", "module_title = 'Model Deployment'\n", "module_folder = Path('..') / '04-deployment'\n", "\n", "meta_json_file = module_folder / 'meta.json'\n", "playlist_id = 'PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK'" ] }, { "cell_type": "markdown", "id": "a91381d0", "metadata": {}, "source": [ "## Prepare `meta.json` info" ] }, { "cell_type": "code", "execution_count": 13, "id": "15d0782b", "metadata": {}, "outputs": [], "source": [ "text = \"\"\"\n", "module_number\tmodule_title\tunit_number\tunit_title\tfull_title\tyoutube\n", "5\tMonitoring\t1\tIntro to ML monitoring\tMLOps Zoomcamp 5.1 - Intro to ML monitoring\thttps://www.youtube.com/watch?v=SQ0jBwd_3kk\n", "5\tMonitoring\t2\tEnvironment setup\tMLOps Zoomcamp 5.2 - Environment setup\thttps://www.youtube.com/watch?v=yixA3C1xSxc\n", "5\tMonitoring\t3\tPrepare reference and model\tMLOps Zoomcamp 5.3 - Prepare reference and model\thttps://www.youtube.com/watch?v=IjNrkqMYQeQ\n", "5\tMonitoring\t4\tEvidently metrics calculation\tMLOps Zoomcamp 5.4 - Evidently metrics calculation\thttps://www.youtube.com/watch?v=kP3lzh_HfWY\n", "5\tMonitoring\t5\tDummy monitoring\tMLOps Zoomcamp 5.5 - Dummy monitoring\thttps://www.youtube.com/watch?v=s3G4PMsOMOA\n", "5\tMonitoring\t6\tData quality monitoring\tMLOps Zoomcamp 5.6 - Data quality monitoring\thttps://www.youtube.com/watch?v=fytrmPbcLhI\n", "5\tMonitoring\t7\tSave Grafana Dashboard\tMLOps Zoomcamp 5.7 - Save Grafana Dashboard\thttps://www.youtube.com/watch?v=-c4iumyZMyw\n", "5\tMonitoring\t8\tDebugging with test suites and reports\tMLOps Zoomcamp 5.8 - Debugging with test suites and reports\thttps://www.youtube.com/watch?v=sNSk3ojISh8\"\"\".strip()" ] }, { "cell_type": "code", "execution_count": 14, "id": "43db9fdf", "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv(io.StringIO(text), delimiter='\\t')" ] }, { "cell_type": "code", "execution_count": 15, "id": "38ffbb71", "metadata": {}, "outputs": [], "source": [ "df['youtube'] = df['youtube'].fillna('')" ] }, { "cell_type": "code", "execution_count": 16, "id": "aa4e2fb9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'number': 1,\n", " 'title': 'Intro to ML monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=SQ0jBwd_3kk'},\n", " {'number': 2,\n", " 'title': 'Environment setup',\n", " 'youtube': 'https://www.youtube.com/watch?v=yixA3C1xSxc'},\n", " {'number': 3,\n", " 'title': 'Prepare reference and model',\n", " 'youtube': 'https://www.youtube.com/watch?v=IjNrkqMYQeQ'},\n", " {'number': 4,\n", " 'title': 'Evidently metrics calculation',\n", " 'youtube': 'https://www.youtube.com/watch?v=kP3lzh_HfWY'},\n", " {'number': 5,\n", " 'title': 'Dummy monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=s3G4PMsOMOA'},\n", " {'number': 6,\n", " 'title': 'Data quality monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=fytrmPbcLhI'},\n", " {'number': 7,\n", " 'title': 'Save Grafana Dashboard',\n", " 'youtube': 'https://www.youtube.com/watch?v=-c4iumyZMyw'},\n", " {'number': 8,\n", " 'title': 'Debugging with test suites and reports',\n", " 'youtube': 'https://www.youtube.com/watch?v=sNSk3ojISh8'}]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_units = df[['unit_number', 'unit_title', 'youtube']]\n", "units = df_units \\\n", " .rename(columns={'unit_number': 'number', 'unit_title': 'title'}) \\\n", " .to_dict(orient='records')\n", "units" ] }, { "cell_type": "code", "execution_count": 17, "id": "295d55b6", "metadata": {}, "outputs": [], "source": [ "meta = {\n", " 'module': {\n", " 'number': module_number,\n", " 'title': module_title\n", " },\n", " 'units': units\n", "}" ] }, { "cell_type": "code", "execution_count": 18, "id": "cf6ed0e9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'module': {'number': 5, 'title': 'ML Monitoring'},\n", " 'units': [{'number': 1,\n", " 'title': 'Intro to ML monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=SQ0jBwd_3kk'},\n", " {'number': 2,\n", " 'title': 'Environment setup',\n", " 'youtube': 'https://www.youtube.com/watch?v=yixA3C1xSxc'},\n", " {'number': 3,\n", " 'title': 'Prepare reference and model',\n", " 'youtube': 'https://www.youtube.com/watch?v=IjNrkqMYQeQ'},\n", " {'number': 4,\n", " 'title': 'Evidently metrics calculation',\n", " 'youtube': 'https://www.youtube.com/watch?v=kP3lzh_HfWY'},\n", " {'number': 5,\n", " 'title': 'Dummy monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=s3G4PMsOMOA'},\n", " {'number': 6,\n", " 'title': 'Data quality monitoring',\n", " 'youtube': 'https://www.youtube.com/watch?v=fytrmPbcLhI'},\n", " {'number': 7,\n", " 'title': 'Save Grafana Dashboard',\n", " 'youtube': 'https://www.youtube.com/watch?v=-c4iumyZMyw'},\n", " {'number': 8,\n", " 'title': 'Debugging with test suites and reports',\n", " 'youtube': 'https://www.youtube.com/watch?v=sNSk3ojISh8'}]}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "meta" ] }, { "cell_type": "code", "execution_count": 19, "id": "e0197e13", "metadata": {}, "outputs": [], "source": [ "module_folder.mkdir(parents=True, exist_ok=True)\n", "\n", "with open(meta_json_file, 'wt') as f_out:\n", " json.dump(meta, f_out, indent=2)" ] }, { "cell_type": "code", "execution_count": 20, "id": "a06089d0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " \"module\": {\n", " \"number\": 5,\n", " \"title\": \"ML Monitoring\"\n", " },\n", " \"units\": [\n", " {\n", " \"number\": 1,\n", " \"title\": \"Intro to ML monitoring\",\n", " \"youtube\": \"https://www.youtube.com/watch?v=SQ0jBwd_3kk\"\n" ] } ], "source": [ "!head {meta_json_file}" ] }, { "cell_type": "markdown", "id": "5db87368", "metadata": {}, "source": [ "## Generate page" ] }, { "cell_type": "markdown", "id": "138aa0c4", "metadata": {}, "source": [ "module_folder = Path('..') / '05-monitoring'\n", "meta_json_file = module_folder / 'meta.json'\n", "playlist_id = 'PL3MmuxUbc_hIUISrluw_A7wDSmfOhErJK'" ] }, { "cell_type": "code", "execution_count": 21, "id": "166dadc7", "metadata": {}, "outputs": [], "source": [ "with meta_json_file.open('rt') as f_in:\n", " meta = json.load(f_in)" ] }, { "cell_type": "code", "execution_count": 22, "id": "50fc8f7c", "metadata": {}, "outputs": [], "source": [ "module_info = meta['module']\n", "units = meta['units']" ] }, { "cell_type": "code", "execution_count": 23, "id": "32877ffd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'number': 5, 'title': 'ML Monitoring'}" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "module_info" ] }, { "cell_type": "code", "execution_count": 24, "id": "a6340d93", "metadata": {}, "outputs": [], "source": [ "images_folder = module_folder / 'images'\n", "images_folder.mkdir(parents=True, exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 25, "id": "d92031f3", "metadata": {}, "outputs": [], "source": [ "template_string = \"\"\"\n", "## {{ module_number }}.{{ unit_number }} {{ unit_title }}\n", "\n", "{% if youtube %}\n", " \n", "{% endif %}{% if not youtube %}COMING SOON{% endif %}\n", "\n", "\n", "\"\"\".lstrip()\n", "\n", "template = Template(template_string)" ] }, { "cell_type": "code", "execution_count": 28, "id": "a87656f0", "metadata": {}, "outputs": [], "source": [ "def download_thumbnail(video, module, unit, folder):\n", " if type(unit) in [int, np.int64]:\n", " thumbnail_file = f'thumbnail-{module}-{unit:02d}.jpg'\n", " else:\n", " thumbnail_file = f'thumbnail-{module}-{unit}.jpg'\n", "\n", " thumbnail_file = folder / thumbnail_file\n", "\n", " if thumbnail_file.exists():\n", " print(f'{thumbnail_file} exists')\n", " return thumbnail_file\n", "\n", " video_id = parse_qs(urlparse(video).query)['v'][0]\n", " print(f'processing video {video_id}...')\n", " thumbnail_url = f'https://img.youtube.com/vi/{video_id}/0.jpg'\n", "\n", " response = requests.get(thumbnail_url)\n", " thumbnail = Image.open(io.BytesIO(response.content))\n", " w_img, h_img = thumbnail.size\n", "\n", " play = Image.open(Path('../images/play.png'))\n", " w_play, h_play = play.size\n", " \n", " x0 = w_img // 2 - w_play // 2\n", " y0 = h_img // 2 - h_play // 2\n", "\n", " thumbnail.paste(play, (x0, y0), play)\n", " thumbnail.save(thumbnail_file, quality=90)\n", "\n", " print('saved to', thumbnail_file)\n", "\n", " return thumbnail_file" ] }, { "cell_type": "code", "execution_count": null, "id": "8910fbf3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 29, "id": "b592beb6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "processing video SQ0jBwd_3kk...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-01.jpg\n", "## 5.1 Intro to ML monitoring\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video yixA3C1xSxc...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-02.jpg\n", "## 5.2 Environment setup\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video IjNrkqMYQeQ...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-03.jpg\n", "## 5.3 Prepare reference and model\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video kP3lzh_HfWY...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-04.jpg\n", "## 5.4 Evidently metrics calculation\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video s3G4PMsOMOA...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-05.jpg\n", "## 5.5 Dummy monitoring\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video fytrmPbcLhI...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-06.jpg\n", "## 5.6 Data quality monitoring\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video -c4iumyZMyw...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-07.jpg\n", "## 5.7 Save Grafana Dashboard\n", "\n", "\n", " \n", "\n", "\n", "\n", "processing video sNSk3ojISh8...\n", "saved to ..\\05-monitoring\\images\\thumbnail-5-08.jpg\n", "## 5.8 Debugging with test suites and reports\n", "\n", "\n", " \n", "\n", "\n", "\n" ] } ], "source": [ "module_number = module_info['number']\n", "\n", "parts = []\n", "\n", "for unit in units:\n", " unit_number = unit['number']\n", "\n", " params = {\n", " 'module_number': module_info['number'],\n", " 'module_name': module_info['title'],\n", " 'unit_number': unit['number'],\n", " 'unit_title': unit['title'] \n", " }\n", "\n", " if 'youtube' in unit:\n", " youtube = unit['youtube']\n", " if len(youtube) and youtube.startswith('https'):\n", " thumbnail = download_thumbnail(youtube, module_number, unit_number, images_folder)\n", " thumbnail_path = '/'.join(thumbnail.parts[2:])\n", " params['youtube'] = f'{youtube}&list={playlist_id}'\n", " params['thumbnail'] = thumbnail_path\n", " \n", " template_string = template.render(params)\n", " print(template_string)\n", " parts.append(template_string)" ] }, { "cell_type": "code", "execution_count": 30, "id": "6d6e3584", "metadata": {}, "outputs": [], "source": [ "prefix = f\"\"\"\n", "# {module_info['number']}. {module_info['title']} \n", "\"\"\".strip()\n", "\n", "\n", "final_result = '\\n\\n'.join([prefix] + parts)" ] }, { "cell_type": "code", "execution_count": 31, "id": "4d900666", "metadata": {}, "outputs": [], "source": [ "clipboard.copy(final_result)" ] }, { "cell_type": "code", "execution_count": null, "id": "6ff9d662", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 5 } ================================================ FILE: learning-in-public.md ================================================ # Learning in public Most people learn in private: they consume content but don't tell anyone about it. There's nothing wrong with it. But we want to encourage you to document your progress and share it publicly on social media. It helps you get noticed and will lead to: * Expanding your network: meeting new people and making new friends * Being invited to meetups, conferences and podcasts * Landing a job or getting clients * Many other good things Here's a more compresensive reading on why you want to do it: https://github.com/readme/guides/publishing-your-work ## Learning in Public for Zoomcamps When you submit your homework or project, you can also submit learning in public posts: You can watch this video to see how your learning in public posts may look like: Send a PR if you want to suggest improvements for this document