4-Deployment/Batch/config/solution_lab2.py [73:136]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    boto_sess = boto3.Session()
    region = boto_sess.region_name
    role = sagemaker.get_execution_role()
    sm_sess = sagemaker.session.Session()

    s3_input_train = TrainingInput(s3_data=f's3://{bucket}/{train_dir}', content_type='csv')
    s3_input_validation = TrainingInput(s3_data=f's3://{bucket}/{val_dir}', content_type='csv')

    # Helper to create timestamps
    create_date = lambda: strftime("%Y-%m-%d-%H-%M-%S", gmtime())

    customer_churn_experiment = Experiment.create(experiment_name=f"customer-churn-prediction-xgboost-{create_date()}", 
                                                  description="Using xgboost to predict customer churn", 
                                                  sagemaker_boto_client=boto3.client('sagemaker'))

    hyperparams = {"max_depth":5,
                   "subsample":0.8,
                   "num_round":600,
                   "eta":0.2,
                   "gamma":4,
                   "min_child_weight":6,
                   "objective":'binary:logistic',
                   "verbosity": 0
                  }

    
    entry_point_script = f'{PATH}/xgboost_customer_churn.py'
    trial = Trial.create(trial_name=f'framework-mode-trial-{create_date()}', 
                         experiment_name=customer_churn_experiment.experiment_name,
                         sagemaker_boto_client=boto3.client('sagemaker'))
    
    debug_rules = [
        Rule.sagemaker(rule_configs.loss_not_decreasing()),
        Rule.sagemaker(rule_configs.overtraining()),
        Rule.sagemaker(rule_configs.overfit())
    ]
    
    framework_xgb = XGBoost(image_uri=docker_image_name,
                            entry_point=entry_point_script,
                            role=role,
                            framework_version=framework_version,
                            py_version="py3",
                            hyperparameters=hyperparams,
                            instance_count=1, 
                            instance_type='ml.m4.xlarge',
                            output_path=f's3://{bucket}/{prefix}/output',
                            base_job_name='demo-xgboost-customer-churn',
                            sagemaker_session=sm_sess,
                            rules=debug_rules
                            )


    framework_xgb.fit(inputs={
                          'train': s3_input_train,
                          'validation': s3_input_validation
                             },
                      experiment_config={
                          'ExperimentName': customer_churn_experiment.experiment_name, 
                          'TrialName': trial.trial_name,
                          'TrialComponentDisplayName': 'Training'
                      }
                     )
    
    return framework_xgb
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



4-Deployment/RealTime/config/solution_lab2.py [66:129]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    boto_sess = boto3.Session()
    region = boto_sess.region_name
    role = sagemaker.get_execution_role()
    sm_sess = sagemaker.session.Session()

    s3_input_train = TrainingInput(s3_data=f's3://{bucket}/{train_dir}', content_type='csv')
    s3_input_validation = TrainingInput(s3_data=f's3://{bucket}/{val_dir}', content_type='csv')

    # Helper to create timestamps
    create_date = lambda: strftime("%Y-%m-%d-%H-%M-%S", gmtime())

    customer_churn_experiment = Experiment.create(experiment_name=f"customer-churn-prediction-xgboost-{create_date()}", 
                                                  description="Using xgboost to predict customer churn", 
                                                  sagemaker_boto_client=boto3.client('sagemaker'))

    hyperparams = {"max_depth":5,
                   "subsample":0.8,
                   "num_round":600,
                   "eta":0.2,
                   "gamma":4,
                   "min_child_weight":6,
                   "objective":'binary:logistic',
                   "verbosity": 0
                  }

    
    entry_point_script = f'{PATH}/xgboost_customer_churn.py'
    trial = Trial.create(trial_name=f'framework-mode-trial-{create_date()}', 
                         experiment_name=customer_churn_experiment.experiment_name,
                         sagemaker_boto_client=boto3.client('sagemaker'))
    
    debug_rules = [
        Rule.sagemaker(rule_configs.loss_not_decreasing()),
        Rule.sagemaker(rule_configs.overtraining()),
        Rule.sagemaker(rule_configs.overfit())
    ]
    
    framework_xgb = XGBoost(image_uri=docker_image_name,
                            entry_point=entry_point_script,
                            role=role,
                            framework_version=framework_version,
                            py_version="py3",
                            hyperparameters=hyperparams,
                            instance_count=1, 
                            instance_type='ml.m4.xlarge',
                            output_path=f's3://{bucket}/{prefix}/output',
                            base_job_name='demo-xgboost-customer-churn',
                            sagemaker_session=sm_sess,
                            rules=debug_rules
                            )


    framework_xgb.fit(inputs={
                          'train': s3_input_train,
                          'validation': s3_input_validation
                             },
                      experiment_config={
                          'ExperimentName': customer_churn_experiment.experiment_name, 
                          'TrialName': trial.trial_name,
                          'TrialComponentDisplayName': 'Training'
                      }
                     )
    
    return framework_xgb
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



