【问题标题】:How do I pickle/save my whole procedures of imputation?我如何腌制/保存我的整个插补程序?
【发布时间】:2021-11-12 12:50:40
【问题描述】:

我编写了多个步骤来估算数据集,我想腌制/保存这些步骤,以便在分析新样本时自动加载和使用。

我为估算所做的步骤是:

imputer = MissForest()
imputed_data = imputer.fit_transform(data)
imputed_data = pd.DataFrame(imputed_data, columns=data.columns)

#Drop 'id'
imputed_data_initial = imputed_data.drop('id', axis = 1)

#Get unique values
def get_unique_values(col_name):
    return data[col_name].dropna().unique().tolist()

#Find closest distance
def find_closest_value(target, unique_values):
    chosen = unique_values[0]
    L2 = (target - chosen) ** 2
    for value in unique_values:
        if (target - value) ** 2 < L2:
            chosen = value
            L2 = (target - chosen) ** 2
    return chosen

#Imputation
for col_name in columns_name_lst:
    columns_name_lst = imputed_data.columns
    row_count = len(imputed_data)
    unique_values = get_unique_values(col_name)
    if len(unique_values) < 2000:
        for i in range(row_count):
            target = imputed_data.iloc[i][col_name]
            imputed_data.iloc[i][col_name] = find_closest_value(target, unique_values)

我想将所有这些步骤作为一个整体进行腌制。我可以在 python 中做什么?谢谢!

【问题讨论】:

    标签: python serialization pickle pipeline


    【解决方案1】:

    您可以使用 sklearn.pipline.Pipeline。制作一个列表并将每个步骤作为一个元组传递。此处描述:https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html

    不过,保存您的管道可能有点困难。请检查这个问题:how to save a scikit-learn pipline with keras regressor inside to disk?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多