【问题标题】:DataFrame Multiobjective Sort to Define Pareto BoundaryDataFrame多目标排序来定义帕累托边界
【发布时间】:2019-03-30 03:14:07
【问题描述】:

Pandas 中是否内置了多目标排序算法?

我发现this 是一种 NSGA-II 算法(这是我想要的),但它需要将目标函数作为单独的文件传递。在理想情况下,我会为所有数据使用 DataFrame,在指定目标函数列(和其他必需参数)的同时在其上调用 multi_of_sort 之类的方法,然后它将返回另一个具有帕累托最优值的 DataFrame。

这似乎对 Pandas 来说应该是微不足道的,但我可能错了。

【问题讨论】:

    标签: python pandas sorting optimization


    【解决方案1】:

    事实证明...上面引用的 pareto确实处理 DataFrame 输入。

    import pareto
    import pandas as pd
    
    # load the data
    df = pd.read_csv('data.csv')
    
    # define the objective function column indices
    # optional. default is ALL columns
    of_cols = [4, 5]
    
    # define the convergence tolerance for the OF's
    # optional. default is 1e-9
    eps_tols = [1, 2]
    
    # sort
    nondominated = pareto.eps_sort([list(df.itertuples(False))], of_cols, eps_tols)
    
    # convert multi-dimension array to DataFrame
    df_pareto = pd.DataFrame.from_records(nondominated, columns=list(df.columns.values))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多