#!/usr/bin/env python3
import sys
import pandas as pd
import pickle
import xgboost as xgb
def load_data():
try:
return pd.read_csv(sys.stdin, delimiter=",", header=None)
except Exception as e:
print(e, file=sys.stderr)
sys.exit(0)
def main():
df = load_data()
print(f"Number of columns in df: {len(df.columns)}\n", file=sys.stderr)
print(f"Number of rows in df: {len(df)}\n", file=sys.stderr)
if df.empty:
sys.exit(0)
category_columns_indices = [1,2,3,4, 6,7,8,10,15]
for col in category_columns_indices:
df[col] = df[col].astype('category')
train = df
x_train = train.iloc[:, 0:15]
y_train = train.iloc[:, 16]
y_train = y_train.map({'yes': 1, 'no': 0})
dtrain_reg = xgb.DMatrix(x_train, y_train, enable_categorical=True)
params = {"objective": "binary:hinge",}
n = 100
model = xgb.train(
params=params,
dtrain=dtrain_reg,
num_boost_round=n,
)
model_file_location = '/lob/model.json'
model.save_model(model_file_location)
print(model_file_location)