grace_t.framework.models.base_xgboost_model 源代码

#!/usr/bin/env python
# -*- coding: utf8 -*-
 
import sys
import os
import ConfigParser
import base_model

base_path = os.path.dirname(os.path.abspath(__file__)) + "/../../"
os.sys.path.append(base_path)
DEFAULT_LOG_FILENAME = base_path + "/log/base_xgboost_model"
DEFAULT_MODEL_PATH = base_path + "/model/"

import logging

import numpy

from numpy import loadtxt

import sklearn
from sklearn.metrics import accuracy_score

from xgboost import XGBClassifier
from xgboost import plot_importance
from matplotlib import pyplot

[文档]class BaseXGBoostModel(base_model.BaseModel): ''' base xgboost model based on xgboost's model ''' def __init__(self, **kargs): ''' init ''' import framework.tools.log as log self.kargs = kargs self.dic_params = {} log_filename = self.kargs["basic_params"]["log_filename"] model_path = self.kargs["basic_params"]["model_path"] self.load_data_func = self.kargs["load_data"]["method"] self.create_model_func = self.kargs["create_model"]["method"] loger = log.init_log(log_filename) (self.dataset, self.X, self.Y, self.X_evaluation, self.Y_evaluation) = self.load_data_func(**self.kargs["load_data"]["params"]) self.model_path = model_path dic_params = {}
[文档] def init_model(self): ''' init model ''' self.model = self.create_model_func(**self.kargs["create_model"]["params"])
[文档] def train_model(self, ): ''' train model ''' X = self.X Y = self.Y X_evaluation = self.X_evaluation Y_evaluation = self.Y_evaluation train_params = {"eval_metric": "error", "verbose": True} # "early_stopping_rounds": 100, self.dic_params.update(train_params) self.model.fit(X, Y, **self.dic_params) # Evaluate the model print "feature importances:", self.model.feature_importances_ plot_importance(self.model) pyplot.show()
[文档] def process(self): ''' process ''' #self.init_callbacks() self.init_model() self.train_model()