def _create_main_design(self, **kwargs):
r"""
Create design matrix for main effects
Keyword Args:
* *df* (``DataFrame``). specify a new dataframe to create
design matrix from
Returns:
array_like: design matrix in sparse CSR format
"""
df = kwargs.get('df', self.train_df)
df.reset_index(drop=True, inplace=True)
df['row_index'] = df.index
df['intercept'] = 1.0 # assume intercept is always included
id_cols = ['row_index']
melted_df = pd.melt(df[id_cols + self.main_effects], id_cols)
melted_df = melted_df.merge(self.main_map, on='variable')
melted_df['col_index'] = melted_df['main_idx']
row = melted_df.row_index
col = melted_df.col_index
data = melted_df.value
return sparse.coo_matrix((data, (row, col)),
shape=(max(row) + 1, max(col) + 1)).tocsr()
评论列表
文章目录