Fraud detection using machine learning 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?
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.