Fiz essa pergunta no site matemathics stackexchange e foi recomendado fazer aqui.
Estou trabalhando em um projeto de hobby e precisaria de ajuda com o seguinte problema.
Um pouco de contexto
Digamos que haja uma coleção de itens com uma descrição dos recursos e um preço. Imagine uma lista de carros e preços. Todos os carros têm uma lista de recursos, por exemplo, tamanho do motor, cor, potência, modelo, ano etc. Para cada marca, algo como isto:
Ford:
V8, green, manual, 200hp, 2007, $200
V6, red, automatic, 140hp, 2010, $300
V6, blue, manual, 140hp, 2005, $100
...
Indo além, a lista de carros com preços é publicada com algum intervalo de tempo, o que significa que temos acesso a dados históricos de preços. Nem sempre pode incluir exatamente os mesmos carros.
Problema
Gostaria de entender como modelar os preços de qualquer carro com base nessas informações básicas, principalmente os carros que não estão na lista inicial.
Ford, v6, red, automatic, 130hp, 2009
Para o carro acima, é quase o mesmo que o da lista, apenas um pouco diferente em potência e ano. Para determinar o preço, o que é necessário?
O que estou procurando é algo prático e simples, mas também gostaria de ouvir sobre abordagens mais complexas sobre como modelar algo assim.
O que eu tentei
Aqui está o que eu tenho experimentado até agora:
1) usando dados históricos para procurar carro X. Se não encontrado, não há preço. É claro que isso é muito limitado e só se pode usar isso em combinação com algum tempo de deterioração para alterar os preços dos carros conhecidos ao longo do tempo.
2) usando um esquema de ponderação de recurso de carro junto com um carro de amostra com preço. Basicamente, existe um preço base e os recursos apenas alteram isso com algum fator. Com base nisso, o preço de qualquer carro é calculado.
O primeiro mostrou-se insuficiente e o segundo nem sempre estava correto, e talvez eu não tivesse a melhor abordagem para usar os pesos. Isso também parece um pouco pesado para manter pesos, então é por isso que pensei que talvez houvesse alguma maneira de usar os dados históricos como estatísticas de alguma forma para obter pesos ou obter outra coisa. Só não sei por onde começar.
Outros aspectos importantes
- integrar em algum projeto de software que eu tenho. Ou usando bibliotecas existentes ou escrevendo o algoritmo.
- recálculo rápido quando novos dados históricos são recebidos.
Alguma sugestão de como um problema como esse poderia ser abordado? Todas as idéias são mais que bem-vindas.
Agradecemos antecipadamente e estamos ansiosos para ler suas sugestões!