Пример #1
0
class ArmClassifier(BaseEstimator, ClassifierMixin):
    def __init__(self,n_estimators=100,min_samples_split=2):
        print('ARM: {},{}'.format(n_estimators,min_samples_split))
        self.m_nestimators = n_estimators
        self.m_minsamplessplit = min_samples_split
        self.classy = MultiOutputClassifier(RandomForestClassifier(n_estimators=n_estimators,min_samples_split=min_samples_split))
    
    def fit(self,X,y=None):
        return self.classy.fit(X,y)
        
    def set_params(self, **params):
        print('ARM Setparams: {}'.format(params))
        self.classy.set_params(**params)
    
    def predict(self,X,y=None):
        return self.classy.predict(X)
def build_classifiers_build_params(classifiers_configs):
    '''
    INPUT
    classifiers_configs - dict, a dictionary containing the configuration for each classifier
    

    OUTPUT
    classifiers_params_dict - dict, a dictionary containing the grid params to be used for
    each classifier in the training process
    
    
    This function builds a dictionary with grid params to be used in training process for each
    classifier whose configurations were given as input.
    It can handle a single classifier or a list of classifiers.
    '''
    if len(classifiers_configs) > 1:
        classifiers_params_list = []
        classifiers_params_dict = {}
        for classifier in classifiers_configs:
            classifier_estimator = classifier['estimator']
            classifier_obj = build_estimator_obj(classifier_estimator)
            classifier_obj = MultiOutputClassifier(classifier_obj.set_params(**classifier['params']))
            classifiers_params_list.append(classifier_obj)
        
        classifiers_params_dict['clf'] = classifiers_params_list
    elif len(classifiers_configs) == 1:
        classifier = classifiers_configs[0]
        classifier_estimator = classifier['estimator']
        classifier_obj = build_estimator_obj(classifier_estimator)
        classifier_obj = MultiOutputClassifier(classifier_obj)
        classifiers_params_dict = {'clf' : [classifier_obj]}
        classifiers_params_dict.update(classifier['params'])

    print(classifiers_params_dict)
    return classifiers_params_dict