def fit()

in fclib/fclib/models/multiple_linear_regression.py [0:0]


def fit(train_df, grain_col_names, fea_col_names=[], target_col_name="target"):
    """Train multiple linear regression models with each being trained on an individual time 
    series specified by columns in grain_col_names.
    
    Args: 
        train_df (pandas.DataFrame): Training data frame including all the features
        grain_col_names (list[str]): List of the column names that specify each time series
        fea_col_names (list[str]): List of the names of columns that we want to use as input features
        target_col_name (str): Name of the target column
        
    Returns:
        dict: Dictionary including all the trained linear regression models
    """
    lr_models = {}
    if not fea_col_names:
        fea_col_names = list(train_df.columns)
        fea_col_names.remove(target_col_name)
    for name, group in train_df.groupby(grain_col_names):
        lr = LinearRegression()
        lr.fit(group[fea_col_names], group[target_col_name])
        lr_models[name] = lr
    return lr_models