Construindo um modelo de aprendizado de máquina para prever o rendimento das culturas com base em dados ambientais


10

Eu tenho um conjunto de dados contendo dados sobre temperatura, precipitação e produtividade de soja de uma fazenda por 10 anos (2005 - 2014). Gostaria de prever os rendimentos para 2015 com base nesses dados.

Observe que o conjunto de dados possui valores DIARIOS para temperatura e precipitação, mas apenas 1 valor por ano para o rendimento, uma vez que a colheita da colheita ocorre no final da estação de cultivo.

Quero construir uma regressão ou outro modelo baseado em aprendizado de máquina para prever os rendimentos de 2015, com base em um modelo de regressão / algum outro derivado do estudo da relação entre rendimentos e temperatura e precipitação nos anos anteriores.

Estou familiarizado com a realização de aprendizado de máquina usando o scikit-learn. No entanto, não sei como representar esse problema. A parte complicada aqui é que a temperatura e a precipitação são diárias, mas o rendimento é de apenas 1 valor por ano.

Como abordar isso?


mesmo eu estou tentando construir um modelo para prever o rendimento da colheita. Você poderia compartilhar os detalhes sobre a abordagem que está seguindo?
Nitz

Você conseguiu uma resposta completa. Se não, por favor me avise e eu vou ser feliz para escrever uma resposta detalhada sobre como ir sobre ele deu Eu trabalho no mesmo domínio
89_Simple

@ Crop89, isso seria ótimo! Aguardamos a sua resposta
user308827

Você já descobriu? Estou enfrentando o mesmo problema. Você poderia compartilhar os detalhes se já trabalhou nisso? muito obrigado
eric huang

Respostas:


3

Para iniciantes, você pode prever o rendimento do próximo ano com base nos dados diários do ano anterior. Você pode estimar os parâmetros do modelo considerando os dados de cada ano como um "ponto" e validar o modelo usando a validação cruzada. Você pode estender esse modelo considerando mais do que no ano passado, mas olhe para trás demais e terá problemas para validar seu modelo e super ajuste.


obrigado @Emre, minha confusão é que como eu trato um ano inteiro de dados como 1 ponto? Cada linha de dados (representando um dia) não constitui uma amostra na nomenclatura scikit-learn? Como trato um ano inteiro como uma amostra em vez de 365?
user308827

11
Eu não estava abordando as especificidades do sklearn, mas desde que você perguntou, você deseja usar os sklearn.cross_validationmétodos com "Label" no nome, como sklearn.cross_validation.LabelKFold .
Emre

obrigado @Emre, então a idéia é atribuir a cada ano um único rótulo, certo?
precisa saber é o seguinte

Sim, @ user308827.
Emre

obrigado novamente @Emre, dê uma olhada na pergunta de acompanhamento: datascience.stackexchange.com/questions/9612/…
user308827


1

Você tem 10 pontos de dados com cada ponto de dados com dimensões 365 (temperatura para cada dia) + 365 (precipitação para cada dia). Idealmente, eu primeiro reduziria dimensões através de métodos de aprendizado de máquina, por exemplo, PCA. Em seguida, use métodos de aprendizado de máquina para criar um modelo de previsão. No entanto, devido ao pequeno conjunto de dados, não acho que as técnicas de aprendizado de máquina sejam apropriadas para o seu problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.