Регрессия по случайному лесу Scikit-Learn: смешайте два набора истинных значений (y) - PullRequest
0 голосов
/ 24 января 2019

Я тренирую Случайные Леса с двумя наборами «истинных» значений у (эмпирических). Я могу легко сказать, какой из них лучше.

Однако мне было интересно, есть ли простой метод, отличный от грубой силы, для получения значений из каждого набора, которые позволили бы получить лучшую модель. Другими словами, я хотел бы автоматически смешать оба набора y, чтобы получить новый идеальный набор.

Скажите, например, биологическую активность. Разные эксперименты и разные базы данных дают разные значения. Это простой пример, показывающий два разных набора значений y в столбцах 3 и 4.

4a50, DQ7, 47,6, 45,4

3atu, ADP, 47,7,30,7

5i9i, 5HV, 47.7,41.9

5jzn, GUI, 47,7,34,2

4bjx, 73B, 48,0,44,0

4a6c, QG9,48.1,45.5

Я знаю, что столбец 3 лучше, потому что я уже тренировал различные модели для каждой из них, а также потому, что я проверил несколько статей, чтобы проверить, какое значение правильное, а 3 правильнее чаще, чем 4. Однако у меня есть тысячи строк и не может читать тысячи статей.

Итак, я хотел бы знать, существует ли алгоритм, который, например, использовал бы 3 в качестве основы для истинных значений y, но выбрал бы значения из 4, когда модель улучшается таким образом.

Было бы полезно, чтобы он сообщал о последнем столбце y и мог использовать более 2, но я думаю, что смогу это выяснить.

Идея теперь состоит в том, чтобы выяснить, существует ли уже решение, чтобы мне не нужно было изобретать велосипед.

Best

Миро

ПРИМЕЧАНИЕ. Функции (x) находятся в другом файле.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Выберите столбец 3 и столбец 4 вместе в качестве целевых / прогнозируемых / y значений в подгонке модели классификатора Random Forest - и прогнозируйте ее с вашим результатом.Таким образом, ваш алгоритм может отслеживать как значения Y, так и их соотношение с прогнозируемыми значениями.Похоже, ваша проблема заключается в классификации с несколькими выходами , когда, как вы предлагаете, существует несколько целевых / прогнозируемых переменных (несколько значений y).

Случайный лес поддерживает эту классификацию с несколькими выходами, используяслучайный лес.Метод случайного подбора леса (X, y) поддерживает y для массива y: для массива shape = [n_samples, n_outputs]

multioutput-классификация

sklearn.ensemble.RandomForestClassifier.fit

Проверка классификации для нескольких классов и нескольких выходов

0 голосов
/ 24 января 2019

Проблема в том, что один алгоритм не знает, какая метка лучше.

Что вы можете сделать: обучить классификатор на данных, которые, как вы знаете, верны.Используйте классификатор для указания значения для каждой точки данных.Сравните это значение с двумя списками меток, которые у вас уже есть, и выберите метку, которая ближе.

Это решение, очевидно, не является идеальным, поскольку результаты зависят от качества классификатора, который прогнозирует значение, и для обучения классификатора вам все еще нужно достаточно помеченных данных.Кроме того, существует также вероятность того, что классификатор сам по себе предсказывает лучшее значение по сравнению с вашими двумя списками меток.

...