0
$\begingroup$

I would like to implement a machine learning algorithm for data like this.

id                Date     Amount isFraud  
1  100 2018-03-20 10:20:10  110.0      No  
2  101 2018-03-25 11:20:20    2.0     Yes  
3  101 2018-03-25 11:20:22    2.5     Yes  
4  101 2018-03-25 11:20:25    1.7     Yes  
5  101 2018-03-25 11:20:27    2.1     Yes  
6  101 2018-03-25 11:20:30    2.9     Yes  
7  102 2018-03-29 11:00:11  290.0      No  
8  110 2018-04-15 08:10:05    1.5     Yes  
9  110 2018-04-15 08:10:09    2.3     Yes  
10 110 2018-04-15 08:10:13    2.7     Yes  
11 110 2018-04-15 08:10:17    1.9     Yes  
12 110 2018-04-15 08:10:21    2.9     Yes  
13 110 2018-04-15 08:10:27    2.2     Yes  
14 110 2018-04-15 08:10:45    2.1     Yes  
15 113 2018-04-15 10:10:05  190.0      No

Algorithm needs to work in the following way. Transactions with lower amount are classified as scam. Frequent transactions from same id with same amount or lower amount are also scam. The above dataset was created for this purpose. For these kinds of problems, should we write our own algorithms by specifying the conditions? Or can we use any existing algorithms?

$\endgroup$
1
  • 2
    $\begingroup$ One thing to consider even before applying machine learning is to try some feature engineering. You have the transaction date/time as a feature in your dataset, but you have domain knowledge that the time between transactions is important. Adding in a new derived feature that represents "time since last transaction" could improve results from whatever downstream method you use to classify. $\endgroup$ – Nuclear Hoagie Jul 24 '18 at 18:00
1
$\begingroup$

should we write our own algorithms by specifying the conditions?

If you know the exact conditions that result in fraud, you can implement a decision tree for that. But, I believe it is going to be really difficult to come up with that set of conditions that can give clear decision boundary. The data you have created makes the problem look easier than it actually would be. Someone who did a transaction of low amount quite a few times might not be a fraud.

Or can we use any existing algorithms?

Yes.

This is a classification problem which can be handled through machine learning techniques like logistic regression, support vector machines, neural networks (Multilayer perceptron), Random forest etc.

You can also try Naive Bayes Classifier, which can outperform complex techniques like support vector machines, neural networks.

$\endgroup$

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