def METHOD_NAME(
        self,
        train_main,
        train_appliances,
        do_preprocessing=True,
        **load_kwargs):
    train_main = pd.concat(train_main, axis=0)
    train_app_tmp = []
    for app_name, df_list in train_appliances:
        df_list = pd.concat(df_list, axis=0)
        train_app_tmp.append((app_name, df_list))
    train_appliances = train_app_tmp
    print("...............CO partial_fit running.............")
    num_on_states = None
    if len(train_appliances) > 12:
        max_num_clusters = 2
    else:
        max_num_clusters = 3
    appliance_in_model = [d['appliance_name'] for d in self.model]
    for appliance, readings in train_appliances:
        #print(appliance," ",readings)
        if appliance in appliance_in_model:
            #     raise RuntimeError(
            #     "Appliance {} is already in model!"
            #     "  Can't train twice on the same meter!",appliance)
            print("Trained on " + appliance + " before.")
        else:
            states = cluster(readings, max_num_clusters, num_on_states)
            self.model.append({
                'states': states,
                'appliance_name': appliance})