Skip to content

Instantly share code, notes, and snippets.

@donwany
Created April 2, 2018 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save donwany/37b837c5ae7ea0c9a1d70d164d04dbfb to your computer and use it in GitHub Desktop.
Save donwany/37b837c5ae7ea0c9a1d70d164d04dbfb to your computer and use it in GitHub Desktop.
XGBoost Algorithm with AWS SageMaker
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Author : Theophilus Siameh\n",
" Email : theodondre@gmail.com\n",
" \n",
"## Algorithm : Regression Model using XGBoost Algorithm with AWS SageMaker"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"# Define IAM role\n",
"import boto3\n",
"import re\n",
"import sagemaker\n",
"from sagemaker import get_execution_role"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Download files from my github \n",
"\n",
"bike_test https://github.com/donwany/Databricks/blob/master/bike_test.csv\n",
" \n",
"bike_train https://github.com/donwany/Databricks/blob/master/bike_train.csv\n",
" \n",
"bike_validation https://github.com/donwany/Databricks/blob/master/bike_validation.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Initialization"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Region or your own availability zone\n",
"region = \"us-east-2\"\n",
"# bucket name -> create your own unique bucket name\n",
"bucket_name = \"bike-sagemaker\"\n",
"\n",
"# bucket path -> \n",
"bucket_path = \"https://s3.{0}.amazonaws.com/{1}\".format(region,bucket_name)\n",
"\n",
"# training set -> make sure this file is pointing to us-east-2 in the s3 bucket or your own availability zone\n",
"training_file_key = 'bike_train.csv'\n",
"# validation set -> make sure this file is pointing to us-east-2 in the s3 bucket or your own availability zone\n",
"validation_file_key = 'bike_validation.csv'\n",
"# testing set -> make sure this file is pointing to us-east-2 in the s3 bucket or your own availability zone\n",
"test_file_key = 'bike_test.csv'\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Upload Data to S3"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"s3_model_output_location = bucket_path +'/' + 'bike/model'\n",
"s3_training_file_location = bucket_path + '/' + training_file_key\n",
"s3_validation_file_location = bucket_path +'/' + validation_file_key\n",
"s3_test_file_location = bucket_path + '/' + test_file_key"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike/model\n",
"https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike_train.csv\n",
"https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike_validation.csv\n",
"https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike_test.csv\n"
]
}
],
"source": [
"print(s3_model_output_location)\n",
"print(s3_training_file_location)\n",
"print(s3_validation_file_location)\n",
"print(s3_test_file_location)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Upload files to s3 bucket with boto3 api or you upload manually to s3 bucket via the console.\n",
"\n",
"# http://boto3.readthedocs.io/en/latest/guide/s3.html\n",
"def write_to_s3(filename, bucket, key):\n",
" with open(filename,'rb') as f: # Read in binary mode\n",
" print(\"Uploading files to s3 bucket ...\")\n",
" return boto3.Session().resource('s3').Bucket(bucket).Object(key).upload_fileobj(f)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Uploading files to s3 bucket ...\n",
"Uploading files to s3 bucket ...\n",
"Uploading files to s3 bucket ...\n"
]
}
],
"source": [
"write_to_s3('bike_train.csv',bucket_name,training_file_key)\n",
"write_to_s3('bike_validation.csv',bucket_name,validation_file_key)\n",
"write_to_s3('bike_test.csv',bucket_name,test_file_key)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Training Algorithm Docker Image\n",
"### AWS Maintains a separate image for every region and algorithm"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Registry Path for algorithms provided by SageMaker\n",
"containers = {\n",
" 'us-west-2': '433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest',\n",
" 'us-east-1': '811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest',\n",
" 'us-east-2': '825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest',\n",
" 'eu-west-1': '685385470294.dkr.ecr.eu-west-1.amazonaws.com/xgboost:latest'\n",
" }"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"role = get_execution_role()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"arn:aws:iam::660448793972:role/service-role/AmazonSageMaker-ExecutionRole-20180328T173518\n"
]
}
],
"source": [
"# This role contains the permissions needed to train, deploy models\n",
"# SageMaker Service is trusted to assume this role\n",
"print(role)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Build Model"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Region name : us-east-2\n",
"Docker Container Region : 825641698319.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest\n"
]
}
],
"source": [
"sess = sagemaker.Session()\n",
"\n",
"print(\"Region name : {}\".format(sess.boto_region_name))\n",
"\n",
"print(\"Docker Container Region : {}\".format(containers[boto3.Session().region_name]))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Access appropriate algorithm container image\n",
"# Specify how many instances to use for distributed training and what type of machine to use\n",
"# Finally, specify where the trained model artifacts needs to be stored\n",
"# Reference: http://sagemaker.readthedocs.io/en/latest/estimators.html\n",
"# Optionally, give a name to the training job using base_job_name\n",
"\n",
"estimator = sagemaker.estimator.Estimator(containers[boto3.Session().region_name],\n",
" role, \n",
" train_instance_count = 1, \n",
" train_instance_type = 'ml.m4.xlarge',\n",
" output_path = s3_model_output_location,\n",
" sagemaker_session = sess,\n",
" base_job_name = 'xgboost-biketrain-v1')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Specify hyper parameters that appropriate for the training algorithm\n",
"# XGBoost Training Parameter Reference: \n",
"# https://github.com/dmlc/xgboost/blob/master/doc/parameter.md\n",
"\n",
"estimator.set_hyperparameters(max_depth=6,objective=\"reg:linear\",eta=0.1,subsample=0.7,num_round=200)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'eta': 0.1,\n",
" 'max_depth': 6,\n",
" 'num_round': 200,\n",
" 'objective': 'reg:linear',\n",
" 'subsample': 0.7}"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"estimator.hyperparameters()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Specify Training Data Location and Optionally, Validation Data Location"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# content type can be libsvm or csv for XGBoost\n",
"training_input_config = sagemaker.session.\\\n",
" s3_input(s3_data=s3_training_file_location,content_type=\"csv\",distribution='FullyReplicated')\n",
"\n",
"validation_input_config = sagemaker.session.\\\n",
" s3_input(s3_data=s3_validation_file_location,content_type=\"csv\",distribution='FullyReplicated')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'DataSource': {'S3DataSource': {'S3DataDistributionType': 'FullyReplicated', 'S3DataType': 'S3Prefix', 'S3Uri': 'https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike_train.csv'}}, 'ContentType': 'csv'}\n"
]
}
],
"source": [
"print(training_input_config.config)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'DataSource': {'S3DataSource': {'S3DataDistributionType': 'FullyReplicated', 'S3DataType': 'S3Prefix', 'S3Uri': 'https://s3.us-east-2.amazonaws.com/bike-sagemaker/bike_validation.csv'}}, 'ContentType': 'csv'}\n"
]
}
],
"source": [
"print(validation_input_config.config)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train the model - takes 5-6mins"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sagemaker:Creating training-job with name: xgboost-biketrain-v1-2018-04-02-17-48-12-139\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"......................................................................\n",
"\u001b[31mArguments: train\u001b[0m\n",
"\u001b[31m[2018-04-02:17:53:56:INFO] Running standalone xgboost training.\u001b[0m\n",
"\u001b[31m[2018-04-02:17:53:56:INFO] File size need to be processed in the node: 0.65mb. Available memory size in the node: 8673.54mb\u001b[0m\n",
"\u001b[31m/opt/amazon/lib/python2.7/site-packages/sage_xgboost/train_helper.py:315: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support sep=None with delim_whitespace=False; you can avoid this warning by specifying engine='python'.\n",
" df = pd.read_csv(os.path.join(files_path, csv_file), sep=None, header=None)\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 68 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[0]#011train-rmse:3.90378#011validation-rmse:3.91437\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 84 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[1]#011train-rmse:3.52321#011validation-rmse:3.53296\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 84 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[2]#011train-rmse:3.18134#011validation-rmse:3.19004\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 86 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[3]#011train-rmse:2.87361#011validation-rmse:2.88204\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 102 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[4]#011train-rmse:2.59652#011validation-rmse:2.6043\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 86 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[5]#011train-rmse:2.34825#011validation-rmse:2.35502\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 92 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[6]#011train-rmse:2.12564#011validation-rmse:2.13239\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[7]#011train-rmse:1.92455#011validation-rmse:1.93214\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[8]#011train-rmse:1.74447#011validation-rmse:1.75206\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[9]#011train-rmse:1.58428#011validation-rmse:1.59213\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[10]#011train-rmse:1.43941#011validation-rmse:1.44764\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[11]#011train-rmse:1.31063#011validation-rmse:1.31964\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[12]#011train-rmse:1.19469#011validation-rmse:1.20409\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[13]#011train-rmse:1.09018#011validation-rmse:1.10025\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[14]#011train-rmse:0.997136#011validation-rmse:1.0078\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[15]#011train-rmse:0.914545#011validation-rmse:0.92612\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[16]#011train-rmse:0.840772#011validation-rmse:0.853345\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17]#011train-rmse:0.772966#011validation-rmse:0.787042\u001b[0m\n",
"\u001b[31m[17:53:56] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[18]#011train-rmse:0.710976#011validation-rmse:0.726483\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[19]#011train-rmse:0.660268#011validation-rmse:0.677276\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[20]#011train-rmse:0.611532#011validation-rmse:0.631177\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[21]#011train-rmse:0.57132#011validation-rmse:0.592501\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[22]#011train-rmse:0.535417#011validation-rmse:0.558874\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[23]#011train-rmse:0.503394#011validation-rmse:0.528631\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[24]#011train-rmse:0.472544#011validation-rmse:0.499735\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[25]#011train-rmse:0.448229#011validation-rmse:0.476662\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[26]#011train-rmse:0.427032#011validation-rmse:0.456277\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[27]#011train-rmse:0.408749#011validation-rmse:0.439713\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[28]#011train-rmse:0.391427#011validation-rmse:0.423931\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[29]#011train-rmse:0.374456#011validation-rmse:0.409045\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[30]#011train-rmse:0.360554#011validation-rmse:0.396478\u001b[0m\n",
"\u001b[31m[31]#011train-rmse:0.349873#011validation-rmse:0.387071\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[32]#011train-rmse:0.336842#011validation-rmse:0.375773\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[33]#011train-rmse:0.326366#011validation-rmse:0.366423\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[34]#011train-rmse:0.318647#011validation-rmse:0.359544\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[35]#011train-rmse:0.312536#011validation-rmse:0.354312\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[36]#011train-rmse:0.306855#011validation-rmse:0.349732\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[37]#011train-rmse:0.301808#011validation-rmse:0.345871\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[38]#011train-rmse:0.294732#011validation-rmse:0.339555\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[39]#011train-rmse:0.28942#011validation-rmse:0.334908\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[40]#011train-rmse:0.285132#011validation-rmse:0.33155\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[41]#011train-rmse:0.280264#011validation-rmse:0.327347\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[42]#011train-rmse:0.277166#011validation-rmse:0.325323\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[43]#011train-rmse:0.274425#011validation-rmse:0.323352\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[44]#011train-rmse:0.271547#011validation-rmse:0.321015\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[45]#011train-rmse:0.268082#011validation-rmse:0.318221\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[46]#011train-rmse:0.265501#011validation-rmse:0.316499\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[47]#011train-rmse:0.263779#011validation-rmse:0.315646\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[48]#011train-rmse:0.261087#011validation-rmse:0.313297\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[49]#011train-rmse:0.258308#011validation-rmse:0.311327\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[50]#011train-rmse:0.256999#011validation-rmse:0.310731\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[51]#011train-rmse:0.253977#011validation-rmse:0.30817\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[52]#011train-rmse:0.252747#011validation-rmse:0.307705\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[53]#011train-rmse:0.249987#011validation-rmse:0.306038\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[54]#011train-rmse:0.248533#011validation-rmse:0.305156\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[55]#011train-rmse:0.247108#011validation-rmse:0.304376\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[56]#011train-rmse:0.246013#011validation-rmse:0.303869\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[57]#011train-rmse:0.244944#011validation-rmse:0.303464\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[58]#011train-rmse:0.243773#011validation-rmse:0.302914\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[59]#011train-rmse:0.241944#011validation-rmse:0.301577\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[60]#011train-rmse:0.240711#011validation-rmse:0.301235\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[61]#011train-rmse:0.239324#011validation-rmse:0.300291\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[62]#011train-rmse:0.238508#011validation-rmse:0.299964\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[63]#011train-rmse:0.237691#011validation-rmse:0.299291\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[64]#011train-rmse:0.236506#011validation-rmse:0.298612\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[65]#011train-rmse:0.235643#011validation-rmse:0.298264\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 94 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[66]#011train-rmse:0.234891#011validation-rmse:0.297534\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[67]#011train-rmse:0.233427#011validation-rmse:0.296616\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[68]#011train-rmse:0.232454#011validation-rmse:0.296115\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 102 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[69]#011train-rmse:0.23192#011validation-rmse:0.295923\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[70]#011train-rmse:0.230704#011validation-rmse:0.29523\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[71]#011train-rmse:0.229906#011validation-rmse:0.29477\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[72]#011train-rmse:0.228827#011validation-rmse:0.2942\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 90 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[73]#011train-rmse:0.228508#011validation-rmse:0.294088\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[74]#011train-rmse:0.227721#011validation-rmse:0.294054\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 100 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[75]#011train-rmse:0.227225#011validation-rmse:0.293906\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[76]#011train-rmse:0.226421#011validation-rmse:0.293933\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[77]#011train-rmse:0.225672#011validation-rmse:0.293627\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[78]#011train-rmse:0.224915#011validation-rmse:0.293479\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[79]#011train-rmse:0.224028#011validation-rmse:0.293233\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 92 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[80]#011train-rmse:0.223437#011validation-rmse:0.292911\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[81]#011train-rmse:0.222705#011validation-rmse:0.29277\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 72 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[82]#011train-rmse:0.222082#011validation-rmse:0.292247\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 80 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[83]#011train-rmse:0.221157#011validation-rmse:0.2914\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[84]#011train-rmse:0.220436#011validation-rmse:0.291131\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[85]#011train-rmse:0.220072#011validation-rmse:0.291088\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[86]#011train-rmse:0.219094#011validation-rmse:0.290596\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 90 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[87]#011train-rmse:0.218658#011validation-rmse:0.290387\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 100 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[88]#011train-rmse:0.217967#011validation-rmse:0.28999\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[89]#011train-rmse:0.217308#011validation-rmse:0.289746\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[90]#011train-rmse:0.216187#011validation-rmse:0.289082\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[91]#011train-rmse:0.215291#011validation-rmse:0.288507\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[92]#011train-rmse:0.214185#011validation-rmse:0.288086\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[93]#011train-rmse:0.213592#011validation-rmse:0.287844\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[94]#011train-rmse:0.213051#011validation-rmse:0.287752\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[95]#011train-rmse:0.212139#011validation-rmse:0.287481\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 100 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[96]#011train-rmse:0.211716#011validation-rmse:0.287474\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[97]#011train-rmse:0.211152#011validation-rmse:0.287391\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[98]#011train-rmse:0.210522#011validation-rmse:0.287631\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 102 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[99]#011train-rmse:0.210221#011validation-rmse:0.28762\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[100]#011train-rmse:0.209197#011validation-rmse:0.286852\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[101]#011train-rmse:0.20845#011validation-rmse:0.286653\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[102]#011train-rmse:0.207865#011validation-rmse:0.286556\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[103]#011train-rmse:0.207041#011validation-rmse:0.286472\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[104]#011train-rmse:0.206387#011validation-rmse:0.286294\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[105]#011train-rmse:0.205653#011validation-rmse:0.285957\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[106]#011train-rmse:0.204847#011validation-rmse:0.285931\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[107]#011train-rmse:0.203763#011validation-rmse:0.28519\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[108]#011train-rmse:0.203038#011validation-rmse:0.284788\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[109]#011train-rmse:0.202389#011validation-rmse:0.284819\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[110]#011train-rmse:0.201481#011validation-rmse:0.284905\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[111]#011train-rmse:0.200583#011validation-rmse:0.284472\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[112]#011train-rmse:0.199817#011validation-rmse:0.284654\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[113]#011train-rmse:0.19912#011validation-rmse:0.284685\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[114]#011train-rmse:0.198588#011validation-rmse:0.284617\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[115]#011train-rmse:0.19813#011validation-rmse:0.28452\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[116]#011train-rmse:0.197759#011validation-rmse:0.284475\u001b[0m\n",
"\u001b[31m[117]#011train-rmse:0.197325#011validation-rmse:0.284375\u001b[0m\n",
"\u001b[31m[118]#011train-rmse:0.196877#011validation-rmse:0.284292\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[119]#011train-rmse:0.19625#011validation-rmse:0.284216\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[120]#011train-rmse:0.195681#011validation-rmse:0.284159\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[121]#011train-rmse:0.195145#011validation-rmse:0.284138\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[122]#011train-rmse:0.194562#011validation-rmse:0.283972\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 100 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[123]#011train-rmse:0.194155#011validation-rmse:0.2839\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[124]#011train-rmse:0.193494#011validation-rmse:0.283953\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[125]#011train-rmse:0.193079#011validation-rmse:0.283867\u001b[0m\n",
"\u001b[31m[126]#011train-rmse:0.192555#011validation-rmse:0.283843\u001b[0m\n",
"\u001b[31m[127]#011train-rmse:0.192273#011validation-rmse:0.283845\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 76 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[128]#011train-rmse:0.191948#011validation-rmse:0.283654\u001b[0m\n",
"\u001b[31m[129]#011train-rmse:0.19142#011validation-rmse:0.283305\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[130]#011train-rmse:0.191009#011validation-rmse:0.283251\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[131]#011train-rmse:0.190362#011validation-rmse:0.282893\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[132]#011train-rmse:0.189703#011validation-rmse:0.28283\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[133]#011train-rmse:0.189383#011validation-rmse:0.282849\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[134]#011train-rmse:0.189073#011validation-rmse:0.282813\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[135]#011train-rmse:0.188692#011validation-rmse:0.282767\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[136]#011train-rmse:0.188109#011validation-rmse:0.282648\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[137]#011train-rmse:0.18768#011validation-rmse:0.282616\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 90 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[138]#011train-rmse:0.187452#011validation-rmse:0.282522\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[139]#011train-rmse:0.18682#011validation-rmse:0.282348\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[140]#011train-rmse:0.186432#011validation-rmse:0.282336\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[141]#011train-rmse:0.186027#011validation-rmse:0.282374\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[142]#011train-rmse:0.185335#011validation-rmse:0.282333\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 68 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[143]#011train-rmse:0.185176#011validation-rmse:0.282299\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[144]#011train-rmse:0.184736#011validation-rmse:0.282499\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[145]#011train-rmse:0.184386#011validation-rmse:0.282531\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[146]#011train-rmse:0.184007#011validation-rmse:0.282662\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[147]#011train-rmse:0.183645#011validation-rmse:0.282553\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[148]#011train-rmse:0.183208#011validation-rmse:0.282622\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 96 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[149]#011train-rmse:0.182777#011validation-rmse:0.282663\u001b[0m\n",
"\u001b[31m[150]#011train-rmse:0.182385#011validation-rmse:0.282671\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[151]#011train-rmse:0.181917#011validation-rmse:0.282655\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[152]#011train-rmse:0.181541#011validation-rmse:0.282644\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[153]#011train-rmse:0.181237#011validation-rmse:0.282556\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[154]#011train-rmse:0.180703#011validation-rmse:0.282471\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[155]#011train-rmse:0.180186#011validation-rmse:0.282456\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[156]#011train-rmse:0.179946#011validation-rmse:0.28252\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[157]#011train-rmse:0.179565#011validation-rmse:0.282569\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[158]#011train-rmse:0.178967#011validation-rmse:0.282593\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[159]#011train-rmse:0.178286#011validation-rmse:0.282434\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[160]#011train-rmse:0.177799#011validation-rmse:0.282308\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[161]#011train-rmse:0.177457#011validation-rmse:0.282215\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[162]#011train-rmse:0.177125#011validation-rmse:0.282258\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[163]#011train-rmse:0.176676#011validation-rmse:0.282165\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[164]#011train-rmse:0.176236#011validation-rmse:0.282024\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 106 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[165]#011train-rmse:0.175877#011validation-rmse:0.281773\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[166]#011train-rmse:0.175461#011validation-rmse:0.281831\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 108 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[167]#011train-rmse:0.174894#011validation-rmse:0.281815\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[168]#011train-rmse:0.174509#011validation-rmse:0.281688\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[169]#011train-rmse:0.174169#011validation-rmse:0.281519\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 102 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[170]#011train-rmse:0.173948#011validation-rmse:0.281641\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 92 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[171]#011train-rmse:0.173707#011validation-rmse:0.281631\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[172]#011train-rmse:0.173291#011validation-rmse:0.281477\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[173]#011train-rmse:0.172978#011validation-rmse:0.281473\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 104 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[174]#011train-rmse:0.172596#011validation-rmse:0.281592\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[175]#011train-rmse:0.172274#011validation-rmse:0.281546\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[176]#011train-rmse:0.171967#011validation-rmse:0.281577\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[177]#011train-rmse:0.171675#011validation-rmse:0.28163\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[178]#011train-rmse:0.171165#011validation-rmse:0.281476\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[179]#011train-rmse:0.170694#011validation-rmse:0.281534\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[180]#011train-rmse:0.170153#011validation-rmse:0.281373\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 120 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[181]#011train-rmse:0.169545#011validation-rmse:0.281276\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[182]#011train-rmse:0.169216#011validation-rmse:0.281204\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[183]#011train-rmse:0.168968#011validation-rmse:0.281312\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[184]#011train-rmse:0.16862#011validation-rmse:0.28149\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[185]#011train-rmse:0.167953#011validation-rmse:0.281501\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[186]#011train-rmse:0.167491#011validation-rmse:0.281545\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[187]#011train-rmse:0.167099#011validation-rmse:0.281553\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 122 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[188]#011train-rmse:0.166772#011validation-rmse:0.281434\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 114 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[189]#011train-rmse:0.166534#011validation-rmse:0.281509\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[190]#011train-rmse:0.166318#011validation-rmse:0.281575\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 98 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[191]#011train-rmse:0.166011#011validation-rmse:0.281634\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[192]#011train-rmse:0.165517#011validation-rmse:0.281625\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 82 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[193]#011train-rmse:0.165354#011validation-rmse:0.281663\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 118 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[194]#011train-rmse:0.164994#011validation-rmse:0.281817\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 124 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[195]#011train-rmse:0.16462#011validation-rmse:0.281689\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 116 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[196]#011train-rmse:0.164139#011validation-rmse:0.281714\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 126 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[197]#011train-rmse:0.163693#011validation-rmse:0.281493\u001b[0m\n",
"\u001b[31m[198]#011train-rmse:0.163336#011validation-rmse:0.281355\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 110 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[17:53:57] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 112 extra nodes, 0 pruned nodes, max_depth=6\u001b[0m\n",
"\u001b[31m[199]#011train-rmse:0.163079#011validation-rmse:0.281315\u001b[0m\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"===== Job Complete =====\n"
]
}
],
"source": [
"# XGBoost supports \"train\", \"validation\" channels\n",
"# Reference: Supported channels by algorithm\n",
"# https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html\n",
"estimator.fit({'train':training_input_config, 'validation':validation_input_config})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"train-rmse: 0.163079 ,\n",
"validation-rmse: 0.281315"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deploy Model"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sagemaker:Creating model with name: xgboost-2018-04-02-17-56-16-881\n",
"INFO:sagemaker:Creating endpoint with name xgboost-biketrain-v1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"-------------------------------------------------------------!"
]
}
],
"source": [
"# Ref: http://sagemaker.readthedocs.io/en/latest/estimators.html\n",
"predictor = estimator.deploy(initial_instance_count = 1,\n",
" instance_type = 'ml.m4.xlarge',\n",
" endpoint_name = 'xgboost-biketrain-v1')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Run Predictions"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sagemaker.predictor import csv_serializer, json_deserializer\n",
"\n",
"predictor.content_type = 'text/csv'\n",
"predictor.serializer = csv_serializer\n",
"predictor.deserializer = None"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"b'3.87375450134'"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predictor.predict([[3,0,1,2,28.7,33.335,79,12.998,2011,7,7,3]])"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Summary"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Ensure Training, Test and Validation data are in S3 Bucket\n",
"2. Select Algorithm Container Registry Path - Path varies by region\n",
"3. Configure Estimator for training - Specify Algorithm container, instance count, instance type, model output location\n",
"4. Specify algorithm specific hyper parameters\n",
"5. Train model\n",
"6. Deploy model - Specify instance count, instance type and endpoint name\n",
"7. Run Predictions"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "conda_python3",
"language": "python",
"name": "conda_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.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment