3
$\begingroup$

For problems where the data represents online fraud or insurance (where each row represents a transaction), it is typical for the response variable to denote the value of fraud committed in dollars. Such a response value might have less than 5% non-zero values denoting fraudulent transactions.

I have two questions regarding such a dataset:

  1. What algorithms can we use to ensure that the model not only predicts the fraudulent transactions accurately, but also predicts the value of fraud associated with these.
  2. Assuming that we can quantify the cost involved in each false positive (tagging a non-fraudulent transaction as fraudulent) and cost incurred due to a false negative (tagging a fraudulent transaction as non-fraudulent), how can we optimize the model to maximize savings (or minimize losses)?
$\endgroup$
  • $\begingroup$ You'll find lots of hits if you search stats.SE for "imbalanced" data. $\endgroup$ – Emre Nov 12 '14 at 18:13
  • $\begingroup$ @Emre: This question is focused more on the solution to fraud like problems rather than handling imbalance in the dataset (also the fact that we could do both classification and regression and its unclear to me how to go about obtaining the best solution). I tried searching for "imbalanced" and found nothing that relates to this. Could you provide a link in case I have missed something that answers this precise question? $\endgroup$ – Nitesh Nov 12 '14 at 18:31
  • 1
    $\begingroup$ heckman sample selection correction. The regression only applies to records where fraud is observed, controlling for the probability of fraud occuring. Same approach is (famously) taken to estimating labor supply equations when wages are only observed for workers. en.wikipedia.org/wiki/Heckman_correction $\endgroup$ – justin cress Nov 17 '14 at 16:36
  • $\begingroup$ @justincress: Thanks for the comment. If you could go into more detail about how I could pose it as a supervised learning problem, it would be great. $\endgroup$ – Nitesh Nov 17 '14 at 21:02
  • $\begingroup$ I don't really know how to recast econometrics into data science speak. It's just a two stage regression model where the first step is a probit and the second is OLS. To the extent that the models are specified directly (instead of learned from data) doesn't that make the algorithm "supervised" ? Not my expertise, sorry, but I think the heckman correction is exactly what you're looking for. $\endgroup$ – justin cress Nov 25 '14 at 14:23
1
$\begingroup$

How about

  1. Ordinary Least Square (OLS) regression? Since you have a class imbalance, you might want to combine that with boosting algorithms.
  2. If you have a function to quantify the cost involved with FP's and FN's, use any optimization technique you can find. My favorite is genetic algorithms. You may also try linear programming.
| improve this answer | |
$\endgroup$
  • $\begingroup$ So you are suggesting we should treat it as a regression problem (never consider it as a classification one). My hunch was that there must be some way to combine regression and classification together to solve such problems better. $\endgroup$ – Nitesh Nov 17 '14 at 17:32
  • $\begingroup$ What is your class variable? Please answer that question. $\endgroup$ – Jane Wayne Nov 17 '14 at 19:46
  • $\begingroup$ The response denotes the transaction value. That is converted to represent 0 if there is no fraud, and to the transaction value, if there is fraud found. $\endgroup$ – Nitesh Nov 17 '14 at 19:48
  • $\begingroup$ Seems like you'll have many classes then? Try regression, it's a suggestion.If you predict greater than a threshold, fraud, else, not fraud. Very simple and see if that works.you'll need to define the threshold. $\endgroup$ – Jane Wayne Nov 17 '14 at 19:53
  • $\begingroup$ Or you may try logistic regression, and for those detected as fraud, model prediction using ols. $\endgroup$ – Jane Wayne Nov 17 '14 at 19:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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