I am writing a program that will take a multitude of data, such as chlorophyll levels, water temperature, nitrogen/phosphorous levels, etc., in order to predict the growth of algae in a body of water. There are many factors that could affect the growth of algae. Because of this, I do not know which application I should use in the Scikit-learn library in order to accommodate all of the different columns. The algae level is one of the columns. To be more specific, there are 17 other columns that I want to account for (Half of which are identifiers for if the data is likely to be incorrect). What should I use in order to account for all of the columns?


1 Answer 1


Your problem is not well defined. I suppose you want to estimate/predict the growth based on some explanatory variables, so $y(X)$. First you need to define what $y$ actually is, an (absolute) amount or a growth rate?

You can for instance formulate a linear model like:

$$y = \beta_0 + \beta_1 + X + u$$ to measure the absolute amount of $y$ contingent on some $X$. Alternatively, you can also look at how $y$ changes, when $X$ changes by using a $log$ transformation on either $y$ or $X$. See this for more details. To apply such models, you would generally use linear regression.

However, if you are simply up to making a prediction (and you are not necessarily interested in interpreting regression coefficients in order to find average marginal effects of $X$ on $y$), you can use many different model types in sklearn.

It is standard to include several explanatory variables ($X$), so this is not an issue. See the various sklearn examples, such as this one.

If you are simply up to prediction, you may start with a random forest regression (since this is most robust and often works well). First, split your data into a train and test set. Second, run a random forest on the train set, Third, test your model based on the test set.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.