Ejemplo n.º 1
0
    def regressor(self):
        # print self.name, self.fit, self.__class__.__name__
        is_mean = 'average' in self.fit.lower()
        reg = self._regressor
        if reg is None:
            if is_mean:
                reg = self._mean_regressor_factory()
            else:
                # print 'doing import of regressor {}'.format(self.__class__)
                # st=time.time()
                from pychron.core.regression.ols_regressor import PolynomialRegressor
                # print 'doing import of regressor {}'.format(time.time()-st)

                reg = PolynomialRegressor(tag=self.name,
                                          xs=self.offset_xs,
                                          ys=self.ys,
                                          # fit=self.fit,
                                          # filter_outliers_dict=self.filter_outliers_dict,
                                          error_calc_type=self.error_type)
        elif is_mean and not isinstance(reg, MeanRegressor):
            reg = self._mean_regressor_factory()

        if not is_mean:
            reg.set_degree(fit_to_degree(self.fit), refresh=False)
        reg.filter_outliers_dict = self.filter_outliers_dict

        reg.trait_set(xs=self.offset_xs, ys=self.ys)
        reg.calculate()

        self._regressor = reg
        return reg