DataFrame Multiobjective Sort для определения границы Парето - PullRequest
0 голосов
/ 08 октября 2018

Есть ли в Pandas алгоритмы многоцелевой сортировки?

Я нашел это , которое является алгоритмом NSGA-II (что я и хочу), но требует передачи целевых функций в виде отдельных файлов.В идеальном мире я использовал бы DataFrame для всех данных, вызывал бы метод, подобный multi_of_sort, при этом указав столбцы целевой функции (и другие обязательные параметры), и он возвращал бы другой DataFrame с оптимальными значениями по Парето.

Кажется, с Пандами все должно быть тривиально, но я могу ошибаться.

1 Ответ

0 голосов
/ 08 октября 2018

Как оказалось ... пакет 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...