Как вы описали свою проблему, вам нужно искать различные методы машинного обучения. Если бы это был я, я бы попытался прочитать о k-NN (k ближайших соседей) для классификации. Когда я говорю классификацию, я имею в виду получение R, если вы знаете P1-P6. Это действительно простая техника, и она должна быть здесь полезной.
Что касается обратного, то, что вам в основном нужно, это репрезентативная выборка вашего населения. Я думаю, что это не так обычно, но вы можете попробовать что-то вроде кластеризации k-средних. Методы кластеризации обычно определяют класс объекта (свойство R) сами по себе, но k-означает, что кластеризация хороша в этой ситуации, потому что вам нужно дать ему количество классов объектов (например, различные возможные значения R), и в конце Вы получаете один репрезентативный образец.
На мой взгляд, вам определенно не следует использовать какие-либо действительно сложные методы (например, нейронные сети), поскольку ваши данные не имеют точной числовой интерпретации, а значения не могут интерпретироваться постепенно.
Рекомендуемые инструменты действительно зависят от вашего базового языка программирования. Есть замечательный инструмент под названием Orange
, основанный на Python, и я предпочитаю его использовать для подобных вещей (особенно с учетом того, что ваши модули Python действительно легко соединить с C / C ++). Если вы предпочитаете Java, есть довольно похожий инструмент под названием Weka
, который вы можете использовать. Я думаю, что Weka
немного лучше задокументировано, но я не люблю Java, поэтому никогда не пробовал.
Оба эти инструмента имеют графический интерактивный интерфейс, в котором вы можете просто загрузить свои данные и выполнить классификацию, поиграть с параметрами и проверить, какой результат вы получите, используя различные методы и различные настройки. Как только вы решите, что получили нужные результаты (или если вам просто не нравятся графические интерфейсы), вы также можете использовать их как библиотеки при программировании (Python для Orange и Java для Weka) и сделать классификацию часть большого проекта.
Если вы посмотрите документацию Orange или Weka, я думаю, что она даст вам несколько идей о том, что вы могли бы на самом деле делать с имеющимися у вас данными, и когда вы знаете несколько методов, которые кажутся вам интересными и применимыми к данные, возможно, вы могли бы получить больше качественных комментариев и информации о нескольких конкретных методах здесь, чем при поиске общего совета.