2
$\begingroup$

first question here but hopefully you can help. Firstly I'm a web programmer by trade but I've touched a bit of neural networks in my university days.

I've got a project to do with predicting the likely hood of an event occurring. So I thought that this sounded like a job for a neural network. I (after quite a while) got my data together loaded it all into a csv, split into targets and inputs and headed into the MATLAB world of neural networks.

Loaded it all in and despite my attempts the Regression values outputted where always quite low like I think the best way 1.4e-1 (0.14) .I'm presuming this shows quite a poor relationship in neural network world.

I've played with my data chopping bits out filtering inputs that aren't important, trying subsets of the data but still nothing.

I've also modified the hidden neurons - would it be correct to say that the more neurons the more likely it is that the data relationship will be able top learn.

Should I give up and just say that the relationship between my inputs and outputs is unpredictable and hence unlearnable or perhaps there is another input that I don't know that will shed new light but as yet that is equally unknown (or perhaps even not recorded).

Also perhaps there is another method that I can use to learn the relationship that will yield better results?

Thanks for your thoughts/inputs. Richard

edit I tried the liner regression in medcalc. I got these results.

Hi well I had a go with medcalc and it gave me back this

Classification table (cut-off value p=0.5)
Actual group Predicted group Percent correct  
                0      1 
Y = 0         49976    0     100.00% 
Y = 1         61       0     0.00% 
Percent of cases correctly classified 99.88%

They don't look good do they? Richard

Edit 2 I'm a little concerned about divulging more information about the project that I'm working on because it's a little sensitive. It is time based though over several years and over various locations.

Given that you are saying that the relationship between my data and the outcome is based off neural networks and now the liner regression output is really weak - then that tells me that there is either more data out or that the occurrence of the event or output is well a little more random and just down to bad luck.

Richard

$\endgroup$
3
  • 3
    $\begingroup$ Not at all; there are many ways. Logistic regression seems particularly appropriate since you are trying to model a probability. $\endgroup$
    – Emre
    Dec 4, 2014 at 11:46
  • 1
    $\begingroup$ Cheers, I've heard the term around but know well nothing more! I'll have a read up see is I can get some more information. Would you be able to give me a good program to aid me in this learning method - see if it's possible. I like the probability bit that you said it includes because that sounds like it's really what I need. $\endgroup$ Dec 4, 2014 at 12:32
  • $\begingroup$ Had a go and just entered the results but they don't look very promising. $\endgroup$ Dec 4, 2014 at 13:30

2 Answers 2

5
$\begingroup$

Trying to start working towards an answer...

Richard, welcome to CV. As it is, we'll need much more information in order to put together sensible recommendataions. And you'll need to read up basics about statistical modeling and pattern recognition, in order to communicate with us using vocabulary all sides here understand.


Is a neural network the only way to learn input/output relation?

No. Transforming inputs to outputs is something a large number of methods does. Supervised models do so modeling the output as dependent variable. Among them are both regression and classification models.

@Emre already pointed you towards logistic regression as one type of model for describing probablities of events. This is actually somewhere at the boundary between classification and regression - it is a regression technique as continuous probabilities are modeled, but the probabilities can be meant for class membership, which is a classification setting.

(There's an interesting link between neural networks and logistic regression: logistic regression models can be fit by a neural network with logistic sigmoid and no hidden neurons)


Please note that

  • regression (in some fields aka calibration) and classification serve fairly different purposes: regression is for continuous output whereas classification deals with assigning cases to pre-specified groups as output.

  • linear regression is not the same as logistic regression.

  • According to the confusion table in your question your data set is extremely imbalanced: almost all cases belong to class 0. This is a much harder situation to model than fairly balanced data.

  • I suspect this may be a case for one-class classification which is meant for finding out-ouf-specification cases. Again, that is a fairly specialized task.

  • One hugely important rule with statistical modeling/pattern recognition is that the method you employ should be chosen according to the type of problem and data you have. Thus, we need more information about what you actually try to achieve and what your data is.

$\endgroup$
0
0
$\begingroup$

I agree with the answer above - neural networks are definitely not the only way to find input-output relationships. We do need more information for answering. But here are some questions you may want to ask yourself first, before jumping into neural networks:

  1. Did you plot the data to see if there are any trends? Try plotting your output on Y axis with input on X axis to see if there is a visible trend. If there are no visible trends, all is not lost. But having visible trends will help you diagnose if something is going wrong with your attempt to find input-output relationships.
  2. Are you trying to predict a number or a category? For the former, you should do a regression and for the latter, you should do a classification.
  3. If you have numerical data, a reasonable first step (after cleaning data: removing large numbers, outliers, negatives, blanks etc) is looking at the correlation matrix. You can look up what this is - it will help you quickly tell how your all your inputs are related to your outputs (bird's eye view). If you have categorical data, try a boxplot for a bird's eye view.

Only after all this would be it pertinent to decide if neural networks are good way forward or not. Hope this helps.

$\endgroup$

Your Answer

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

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