Exemplo n.º 1
0
 def build(self, factor_values, out):
     assert self.total_columns == out.shape[1]
     out[:] = 1
     for i, column_idxs in enumerate(odometer_iter(self._columns_per_factor)):
         for factor, column_idx in zip(self._factors, column_idxs):
             if factor in self._cat_contrasts:
                 contrast = self._cat_contrasts[factor]
                 out[:, i] *= contrast.matrix[factor_values[factor].ravel(),
                                              column_idx]
             else:
                 assert (factor_values[factor].shape[1]
                         == self._num_columns[factor])
                 out[:, i] *= factor_values[factor][:, column_idx]
Exemplo n.º 2
0
 def build(self, factor_values, out):
     assert self.total_columns == out.shape[1]
     out[:] = 1
     for i, column_idxs in enumerate(odometer_iter(
             self._columns_per_factor)):
         for factor, column_idx in zip(self._factors, column_idxs):
             if factor in self._cat_contrasts:
                 contrast = self._cat_contrasts[factor]
                 out[:, i] *= contrast.matrix[factor_values[factor].ravel(),
                                              column_idx]
             else:
                 assert (factor_values[factor].shape[1] ==
                         self._num_columns[factor])
                 out[:, i] *= factor_values[factor][:, column_idx]
Exemplo n.º 3
0
 def build(self, factor_values, out):
     assert self.total_columns == out.shape[1]
     out[:] = 1
     for i, column_idxs in enumerate(odometer_iter(self._columns_per_factor)):
         for factor, column_idx in zip(self._factors, column_idxs):
             if factor in self._cat_contrasts:
                 contrast = self._cat_contrasts[factor]
                 out[:, i] *= contrast.matrix[factor_values[factor].ravel(),
                                              column_idx]
             else:
                 if not isinstance(factor_values[factor], Series):
                     assert (factor_values[factor].shape[1]
                         == self._num_columns[factor])
                     out[:, i] *= factor_values[factor][:, column_idx]
                     #TODO: is this working right for DFs?
                 else:
                     out[:, i] *= factor_values[factor]
Exemplo n.º 4
0
 def column_names(self):
     if not self._factors:
         return ["Intercept"]
     column_names = []
     for i, column_idxs in enumerate(odometer_iter(self._columns_per_factor)):
         name_pieces = []
         for factor, column_idx in zip(self._factors, column_idxs):
             if factor in self._num_columns:
                 if self._num_columns[factor] > 1:
                     name_pieces.append("%s[%s]"
                                        % (factor.name(), column_idx))
                 else:
                     assert column_idx == 0
                     name_pieces.append(factor.name())
             else:
                 contrast = self._cat_contrasts[factor]
                 suffix = contrast.column_suffixes[column_idx]
                 name_pieces.append("%s%s" % (factor.name(), suffix))
         column_names.append(":".join(name_pieces))
     assert len(column_names) == self.total_columns
     return column_names
Exemplo n.º 5
0
 def column_names(self):
     if not self._factors:
         return ["Intercept"]
     column_names = []
     for i, column_idxs in enumerate(odometer_iter(
             self._columns_per_factor)):
         name_pieces = []
         for factor, column_idx in zip(self._factors, column_idxs):
             if factor in self._num_columns:
                 if self._num_columns[factor] > 1:
                     name_pieces.append("%s[%s]" %
                                        (factor.name(), column_idx))
                 else:
                     assert column_idx == 0
                     name_pieces.append(factor.name())
             else:
                 contrast = self._cat_contrasts[factor]
                 suffix = contrast.column_suffixes[column_idx]
                 name_pieces.append("%s%s" % (factor.name(), suffix))
         column_names.append(":".join(name_pieces))
     assert len(column_names) == self.total_columns
     return column_names