PLEASE HELP ME WITH ANN PROBLEM

Hi Guys,

I kindly ask for your help with regards to my DM project. I am working on a project that is related to the field of agriculture and that has as an objective to find the "optimal values" of the operating conditions that affect the outcome (the amount of meat produced i.e. the weight) of an animal production (chicken broilers in my case). To do so, I have to use historical data of previous productions as my training dataset. The length a production cycle is typically around 44 days. For each production, a data acquisition system stores the real-time and historical data of hundreds of parameters. These parameters represent sensor measurements of all the operating conditions (current temperature, set point temperature, humidity, static pressure, etc...) and these are what I refer to as the inputs. The operating costs and the production outcome are what I refer to as outputs. The operating cost is indirectly computed from parameters like water consumption, feed consumption, heater/cooling runtimes, and lighting runtime; and the outcome of a production is defined by parameters like animal mortality and conversion factor (amount of feed in Lbs to produce 1Lb of meat). So the main objective of this project is to find the set of “optimal daily values” (1value/day) for the inputs that would minimize the operating costs and conversion ratio outputs.
The biggest problem I am facing right now is the following: The historical data that I have in the DB are time series for each measured parameter. Some of these time series follow some kind of cyclic pattern (e.g. daily water/feed consumption …) while others follow an increasing/decreasing trend (animal weight, total heater run time, total water/feed consumption…..). My goal is to be able to come up with a model that suggests a set of curves for the optimal daily values throughout the length of the production cycle, one curve for each measured input/output parameter. This model would allow the farmer to closely monitor his production on a daily basis to make sure his production parameters follow the “optimal curves” suggested by my model. I have looked at ANN and I think it might be the solution to my problem since it allows to model multiple input/outputs problems (Am I wrong?), but I could not figure out a way to model the inputs/outputs as time series (an array of values for each parameter). As far as I know, all kinds of classifiers accept only single valued samples.
One approach would be to create one classifier/day (e.g. for day1: extract a single value for each parameter and use these values as a training sample and repeat this for all previous production to construct the training set). The problem with this approach is that 44 or so classifiers will be constructed (hard to manage all of this) and each of these resulting ANN will be some kind of “typical average” of the training data but not necessarily the “optimal values” leading to the best production outcome, if I am not mistaken.
Another approach would be to find a way to feed in the inputs and outputs as time series (an array of 44 daily values for each input/output parameter). In this case, there would be only one resulting ANN and the training samples, would be a set of arrays for each parameter, as opposed to single daily parameter values in the first case. The problem is, I could not find any classifier that would allow me to do that.
Another issue that I have is the amount of data. While a single production cycle could represent 1-2GB of data, the length of the production cycle (44 days) makes it difficult to have 100’s of production cycle historical data, as I could gather data for no more than 7 full cycles/year. Fortunately, a farm can have many production units (5-10 barns/site in big sites), so this makes it possible to have 40-70 cycles/yr. My question is: would this be enough to come up with an acceptably accurate model or is it necessary to have hundreds of samples?
Thanks for taking the time to reading this lengthy e-mail, and I really appreciate your help and thank you in advance.
Cheers.

[4133 byte] By [Dataminer101] at [2008-3-7]
# 1

I really think your problem here is with selecting the right data. If I understand what you are trying to do, you want to predict overall values for production based on operating costs for the entire cycle, not on any particular day. Also, you have somewhere between 250-500 data points. I don't understand how you have 1-2 gb of data for these 44 days given the description, though.

The first thing I would try is to segment the 44 days into something reasonable that makes business sense. Are there known decision points across the cycle? In colder months (AFAIK) chicks are put under heaters until they reach a certain size when they are allowed to run free in the barn, for example. This would be one stage. Inputs at this stage would be all of the operating costs you mentioned above. You can use averages or totals as appropriate. (Maybe you could use also the base material on the barn floor - sawdust, cotton, etc.).

Do this for each seperable stage. If a stage is long, artifically break it such that you have 5-10 stages. When you create models you can create them using our nested tables, which is like using arrays. Your model would look something like this (using DMX for brevity - you can create the same model with tools)

CREATE MINING MODEL ChickenProduction
(
CycleID LONG KEY,
TotalFeed DOUBLE CONTINUOUS REGRESSOR,
... // additional cycle level inputs
Production DOUBLE CONTINUOUS PREDICT_ONLY,
AverageWeight DOUBLE CONTINUOUS PREDICT_ONLY,
MaxWeight DOUBLE CONTINUOUS PREDICT_ONLY,
... // additional outputs
CycleStages TABLE
(
Stage LONG KEY, // or text identifier of the stage if there is business meaning
AverageFeed DOUBLE CONTINUOUS REGRESSOR,
TotalFeed DOUBLE CONTINUOUS REGRESSOR,
... // additional stage level inputs
)
) USING Microsoft_Decision_Trees

I would recommend using Decision Trees and Neural Nets. Our Decision Trees create piecewise linear regressions for each output. With the results, we don't have anything built in to graph the outputs based on the inputs, but you can vary one input across a range while setting all other inputs to their appropriate means to generate those graphs.

HTH - feel free to ask additional questions. The biggest part of this job will be creating the datasets. You may want to take advantage of OLAP Mining Models using OLAP cubes to perform the correct aggregations for you.

-Jamie

JamieMacLennan at 2007-9-9 > top of Msdn Tech,SQL Server,Data Mining...
# 2

I would split the problem into 2 steps/phases:

1. Develop a model to identify optimum outcome (OO) - weight/mortality rate/etc

2. Develop a model to predict OO value of let's say >=70%

Probably OO is best to measure in $ equivalent rather than in actual values so it will take additional efforts

leok at 2007-9-9 > top of Msdn Tech,SQL Server,Data Mining...

SQL Server

Site Classified