def __init__(self, pmml): PMMLBaseRegressor.__init__(self, pmml) OneHotEncodingMixin.__init__(self) # Import coefficients and intercepts model = self.root.find('RegressionModel') if model is None: raise Exception('PMML model does not contain RegressionModel.') tables = model.findall('RegressionTable') self.coef_ = np.array([ _get_coefficients(self, table) for table in tables ]) self.intercept_ = np.array([ float(table.get('intercept')) for table in tables ]) if self.coef_.shape[0] == 1: self.coef_ = self.coef_[0] if self.intercept_.shape[0] == 1: self.intercept_ = self.intercept_[0]
def __init__(self, pmml): PMMLBaseClassifier.__init__(self, pmml) OneHotEncodingMixin.__init__(self) LinearSVC.__init__(self) # Import coefficients and intercepts model = self.root.find('RegressionModel') if model is None: raise Exception('PMML model does not contain RegressionModel.') tables = [ table for table in model.findall('RegressionTable') if table.find('NumericPredictor') is not None ] self.coef_ = [ _linear_get_coefficients(self, table) for table in tables ] self.intercept_ = [float(table.get('intercept')) for table in tables] if len(self.coef_) == 1: self.coef_ = [self.coef_[0]] if len(self.intercept_) == 1: self.intercept_ = [self.intercept_[0]] self.coef_ = np.array(self.coef_) self.intercept_ = np.array(self.intercept_)
def __init__(self, pmml): PMMLBaseClassifier.__init__(self, pmml) OneHotEncodingMixin.__init__(self) LogisticRegression.__init__(self) # Import coefficients and intercepts model = self.root.find('RegressionModel') mining_model = self.root.find('MiningModel') tables = [] if mining_model is not None and self.n_classes_ > 2: self.multi_class = 'ovr' segmentation = mining_model.find('Segmentation') if segmentation.get('multipleModelMethod') not in ['modelChain']: raise Exception('PMML model for multi-class logistic regression should use modelChain method.') # Parse segments segments = segmentation.findall('Segment') valid_segments = [segment for segment in segments if segment.find('True') is not None] models = [segment.find('RegressionModel') for segment in valid_segments] tables = [ models[i].find('RegressionTable') for i in range(self.n_classes_) ] elif model is not None: self.multi_class = 'auto' tables = [ table for table in model.findall('RegressionTable') if table.find('NumericPredictor') is not None ] else: raise Exception('PMML model does not contain RegressionModel or Segmentation.') self.coef_ = [ _get_coefficients(self, table) for table in tables ] self.intercept_ = [ float(table.get('intercept')) for table in tables ] if len(self.coef_) == 1: self.coef_ = [self.coef_[0]] if len(self.intercept_) == 1: self.intercept_ = [self.intercept_[0]] self.coef_ = np.array(self.coef_) self.intercept_ = np.array(self.intercept_) self.solver = 'lbfgs'
def __init__(self, pmml): PMMLBaseClassifier.__init__(self, pmml) OneHotEncodingMixin.__init__(self) # Import coefficients and intercepts model = self.root.find('GeneralRegressionModel') if model is None: raise Exception( 'PMML model does not contain GeneralRegressionModel.') self.coef_ = np.array([_get_coefficients(self, model)]) self.intercept_ = _get_intercept(model)
def __init__(self, pmml): PMMLBaseClassifier.__init__(self, pmml) OneHotEncodingMixin.__init__(self) model = self.root.find('NaiveBayesModel') if model is None: raise Exception('PMML model does not contain NaiveBayesModel.') inputs = model.find('BayesInputs') target_values = { target: self._get_target_values(inputs, target) for target in self.classes_ } try: outputs = model.find('BayesOutput').find( 'TargetValueCounts').findall('TargetValueCount') counts = [int(x.get('count')) for x in outputs] self.class_prior_ = np.array([x / np.sum(counts) for x in counts]) except AttributeError: self.class_prior_ = np.array( [1 / len(self.classes_) for _ in self.classes_]) self.theta_ = np.array( [[float(value.get('mean', 0)) for value in target_values[target]] for target in self.classes_]) try: self.sigma_ = np.array([[ float(value.get('variance', 0)) for value in target_values[target] ] for target in self.classes_]) except AttributeError: self.var_ = np.array([[ float(value.get('variance', 0)) for value in target_values[target] ] for target in self.classes_])
def __init__(self, pmml): PMMLBaseRegressor.__init__(self, pmml) OneHotEncodingMixin.__init__(self) SVR.__init__(self) PMMLBaseSVM.__init__(self)
def __init__(self, pmml): PMMLBaseClassifier.__init__(self, pmml) OneHotEncodingMixin.__init__(self) SVC.__init__(self) PMMLBaseSVM.__init__(self)