Допустим, я инициализирую случайный фрейм данных следующим образом:
df = pd.DataFrame(np.random.randint(0,100,size=(100, 10)), columns=list('ABCDEFGHIJ'))
Теперь, скажем, score(matrix)
- это функция, которая принимает подмножество фрейма данных и вычисляет оценку.
Я хочу найти подмножество df
, которое максимизирует оценку.Все строки должны быть включены, но столбцы не должны быть смежными.Другими словами, я могу создать подмножество df
для перехода в score()
только с использованием столбцов df
.
Мой первоначальный подход состоял в том, чтобы начать с первого столбца, затем объединить второй столбец и, если счет увеличивается, сохранить столбец, в противном случае продолжать перемещаться к следующему столбцу. В конце мне нужны верхние x
столбцы, которые максимизируют балл, где x<10
.
Я чувствую, что мое решение все еще не найдет оптимального решения, потому что, поскольку я 'Я всегда начинаю с первого столбца, он всегда будет в моем решении.Но что, если оптимальное решение не включает первый столбец?